39#ifndef TCP_LRO_ENTRIES
41#define TCP_LRO_ENTRIES 8
57#define TSTMP_LRO 0x1000
58#define TSTMP_HDWR 0x2000
59#define HAS_TSTMP 0x4000
64#define TCP_LRO_CPU_DECLARATION_THRESH 50
72#define LRO_TYPE_NONE 0
73#define LRO_TYPE_IPV4_TCP 1
74#define LRO_TYPE_IPV6_TCP 2
75#define LRO_TYPE_IPV4_UDP 3
76#define LRO_TYPE_IPV6_UDP 4
78#define LRO_FLAG_DECRYPTED 1
94#define LRO_RAW_ADDRESS_MAX \
95 (sizeof(union lro_address) / sizeof(u_long))
105 if (pa->
raw[i] != pb->
raw[i])
193#define M_ACKCMP M_PROTO4
194#define M_LRO_EHDRSTRP M_PROTO6
196#define TCP_LRO_LENGTH_MAX (65535 - 255)
197#define TCP_LRO_ACKCNT_MAX 65535
210#define TCP_LRO_NO_ENTRIES -2
211#define TCP_LRO_CANNOT -1
212#define TCP_LRO_NOT_SUPPORTED 1
struct lro_head * lro_hash
struct bintime lro_last_queue_time
uint32_t lro_cnt_of_same_cpu
unsigned short lro_ackcnt_lim
struct lro_mbuf_sort * lro_mbuf_data
struct lro_head lro_active
LIST_ENTRY(lro_entry) next
LIST_ENTRY(lro_entry) hash_next
struct mbuf * m_last_mbuf
struct bintime alloc_time
void tcp_lro_flush_all(struct lro_ctrl *)
LIST_HEAD(lro_head, lro_entry)
void tcp_lro_flush_inactive(struct lro_ctrl *, const struct timeval *)
int tcp_lro_init_args(struct lro_ctrl *, struct ifnet *, unsigned, unsigned)
void tcp_lro_queue_mbuf(struct lro_ctrl *, struct mbuf *)
void tcp_lro_reg_mbufq(void)
struct lro_parser __aligned
void tcp_lro_dereg_mbufq(void)
void tcp_lro_flush(struct lro_ctrl *, struct lro_entry *)
#define LRO_RAW_ADDRESS_MAX
int tcp_lro_init(struct lro_ctrl *)
static bool lro_address_compare(const union lro_address *pa, const union lro_address *pb)
void tcp_lro_free(struct lro_ctrl *)
int tcp_lro_rx(struct lro_ctrl *, struct mbuf *, uint32_t)
union lro_address::@41::@44 d_addr
union lro_address::@41::@43 s_addr