Changeset View
Changeset View
Standalone View
Standalone View
sys/netinet/tcp_lro.h
Show First 20 Lines • Show All 85 Lines • ▼ Show 20 Lines | struct lro_ctrl { | ||||
struct ifnet *ifp; | struct ifnet *ifp; | ||||
struct mbuf **lro_mbuf_data; | struct mbuf **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_ack_append_lim; | |||||
hselasky: Might be worth set this limit to unsigned instead of unsigned short. Technically we can LRO… | |||||
Not Done Inline ActionsMy intention here is too keep the size of lro_ctrl unchanged on amd64 (I think there is an implicit 4 bytes padding after lro_mbuf_max :). But I am fine to change them into unsigned int. Does anyone know any drawbacks to change these two fields into unsigned int? If not, I would change them into unsigned int after Chinese New Year :) sepherosa_gmail.com: My intention here is too keep the size of lro_ctrl unchanged on amd64 (I think there is an… | |||||
unsigned short lro_data_append_lim; | |||||
struct lro_head lro_active; | struct lro_head lro_active; | ||||
struct lro_head lro_free; | struct lro_head lro_free; | ||||
}; | }; | ||||
int tcp_lro_init(struct lro_ctrl *); | int tcp_lro_init(struct lro_ctrl *); | ||||
int tcp_lro_init_args(struct lro_ctrl *, struct ifnet *, unsigned, unsigned); | int tcp_lro_init_args(struct lro_ctrl *, struct ifnet *, unsigned, unsigned); | ||||
void tcp_lro_free(struct lro_ctrl *); | void tcp_lro_free(struct lro_ctrl *); | ||||
Show All 10 Lines |
Might be worth set this limit to unsigned instead of unsigned short. Technically we can LRO more than 64KBytes worth of data!