Lines Matching refs:lro_mgr
49 #define LRO_INC_STATS(lro_mgr, attr) { lro_mgr->stats.attr++; } argument
246 static struct net_lro_desc *lro_get_desc(struct net_lro_mgr *lro_mgr, in lro_get_desc() argument
253 int max_desc = lro_mgr->max_desc; in lro_get_desc()
272 LRO_INC_STATS(lro_mgr, no_desc); in lro_get_desc()
277 static void lro_flush(struct net_lro_mgr *lro_mgr, in lro_flush() argument
285 if (lro_mgr->features & LRO_F_NAPI) in lro_flush()
290 LRO_INC_STATS(lro_mgr, flushed); in lro_flush()
294 static int __lro_proc_skb(struct net_lro_mgr *lro_mgr, struct sk_buff *skb, in __lro_proc_skb() argument
303 if (!lro_mgr->get_skb_header || in __lro_proc_skb()
304 lro_mgr->get_skb_header(skb, (void *)&iph, (void *)&tcph, in __lro_proc_skb()
311 lro_desc = lro_get_desc(lro_mgr, lro_mgr->lro_arr, iph, tcph); in __lro_proc_skb()
316 !(lro_mgr->features & LRO_F_EXTRACT_VLAN_ID)) in __lro_proc_skb()
323 skb->ip_summed = lro_mgr->ip_summed_aggr; in __lro_proc_skb()
325 LRO_INC_STATS(lro_mgr, aggregated); in __lro_proc_skb()
336 LRO_INC_STATS(lro_mgr, aggregated); in __lro_proc_skb()
338 if ((lro_desc->pkt_aggr_cnt >= lro_mgr->max_aggr) || in __lro_proc_skb()
339 lro_desc->parent->len > (0xFFFF - lro_mgr->dev->mtu)) in __lro_proc_skb()
340 lro_flush(lro_mgr, lro_desc); in __lro_proc_skb()
345 lro_flush(lro_mgr, lro_desc); in __lro_proc_skb()
351 void lro_receive_skb(struct net_lro_mgr *lro_mgr, in lro_receive_skb() argument
355 if (__lro_proc_skb(lro_mgr, skb, priv)) { in lro_receive_skb()
356 if (lro_mgr->features & LRO_F_NAPI) in lro_receive_skb()
364 void lro_flush_all(struct net_lro_mgr *lro_mgr) in lro_flush_all() argument
367 struct net_lro_desc *lro_desc = lro_mgr->lro_arr; in lro_flush_all()
369 for (i = 0; i < lro_mgr->max_desc; i++) { in lro_flush_all()
371 lro_flush(lro_mgr, &lro_desc[i]); in lro_flush_all()