Changeset View
Changeset View
Standalone View
Standalone View
sys/netinet/tcp_lro.h
Show All 32 Lines | |||||
#include <sys/time.h> | #include <sys/time.h> | ||||
#ifndef TCP_LRO_ENTRIES | #ifndef TCP_LRO_ENTRIES | ||||
/* Define default number of LRO entries per RX queue */ | /* Define default number of LRO entries per RX queue */ | ||||
#define TCP_LRO_ENTRIES 8 | #define TCP_LRO_ENTRIES 8 | ||||
#endif | #endif | ||||
#define TCP_LRO_SEQUENCE(mb) \ | |||||
(mb)->m_pkthdr.PH_loc.thirtytwo[0] | |||||
struct lro_entry { | struct lro_entry { | ||||
LIST_ENTRY(lro_entry) next; | LIST_ENTRY(lro_entry) next; | ||||
struct mbuf *m_head; | struct mbuf *m_head; | ||||
struct mbuf *m_tail; | struct mbuf *m_tail; | ||||
union { | union { | ||||
struct ip *ip4; | struct ip *ip4; | ||||
struct ip6_hdr *ip6; | struct ip6_hdr *ip6; | ||||
} leip; | } leip; | ||||
Show All 23 Lines | |||||
#define le_ip4 leip.ip4 | #define le_ip4 leip.ip4 | ||||
#define le_ip6 leip.ip6 | #define le_ip6 leip.ip6 | ||||
#define source_ip4 lesource.s_ip4 | #define source_ip4 lesource.s_ip4 | ||||
#define dest_ip4 ledest.d_ip4 | #define dest_ip4 ledest.d_ip4 | ||||
#define source_ip6 lesource.s_ip6 | #define source_ip6 lesource.s_ip6 | ||||
#define dest_ip6 ledest.d_ip6 | #define dest_ip6 ledest.d_ip6 | ||||
struct lro_mbuf_sort { | |||||
uint64_t seq; | |||||
struct mbuf *mb; | |||||
}; | |||||
/* NB: This is part of driver structs. */ | /* NB: This is part of driver structs. */ | ||||
struct lro_ctrl { | struct lro_ctrl { | ||||
struct ifnet *ifp; | struct ifnet *ifp; | ||||
struct mbuf **lro_mbuf_data; | struct lro_mbuf_sort *lro_mbuf_data; | ||||
uint64_t lro_queued; | uint64_t lro_queued; | ||||
uint64_t lro_flushed; | uint64_t lro_flushed; | ||||
uint64_t lro_bad_csum; | uint64_t lro_bad_csum; | ||||
unsigned lro_cnt; | unsigned lro_cnt; | ||||
unsigned lro_mbuf_count; | unsigned lro_mbuf_count; | ||||
unsigned lro_mbuf_max; | unsigned lro_mbuf_max; | ||||
unsigned short lro_ackcnt_lim; /* max # of aggregated ACKs */ | unsigned short lro_ackcnt_lim; /* max # of aggregated ACKs */ | ||||
unsigned lro_length_lim; /* max len of aggregated data */ | unsigned lro_length_lim; /* max len of aggregated data */ | ||||
Show All 22 Lines |