Home
last modified time | relevance | path

Searched full:gro (Results 1 – 25 of 102) sorted by relevance

12345

/linux/net/core/
H A Dgro.c3 #include <net/gro.h>
252 static void gro_complete(struct gro_node *gro, struct sk_buff *skb) in gro_complete() argument
266 /* NICs can feed encapsulated packets into GRO */ in gro_complete()
287 gro_normal_one(gro, skb, NAPI_GRO_CB(skb)->count); in gro_complete()
290 static void __gro_flush_chain(struct gro_node *gro, u32 index, bool flush_old) in __gro_flush_chain() argument
292 struct list_head *head = &gro->hash[index].list; in __gro_flush_chain()
299 gro_complete(gro, skb); in __gro_flush_chain()
300 gro->hash[index].count--; in __gro_flush_chain()
303 if (!gro->hash[index].count) in __gro_flush_chain()
304 __clear_bit(index, &gro->bitmask); in __gro_flush_chain()
[all …]
/linux/tools/testing/selftests/net/
H A Dudpgro.sh39 ip netns exec "${PEER_NS}" ethtool -K veth1 gro on
91 # fool the GRO engine changing the destination address ...
94 # ... so that GRO will match the UDP_GRO enabled socket, but packets
160 run_test "no GRO" "${ipv4_args} -M 10 -s 1400" "-4 -n 10 -l 1400"
164 # when GRO does not take place
165 run_test "no GRO chk cmsg" "${ipv4_args} -M 10 -s 1400" "-4 -n 10 -l 1400 -S -1"
172 run_test "GRO" "${ipv4_args} -M 1 -s 14720 -S 0 " "-4 -n 1 -l 14720"
174 run_test "GRO chk cmsg" "${ipv4_args} -M 1 -s 14720 -S 0 " "-4 -n 1 -l 14720 -S 1472"
176 run_test "GRO with custom segment size" "${ipv4_args} -M 1 -s 14720 -S 500 " "-4 -n 1 -l 14720"
178 …run_test "GRO with custom segment size cmsg" "${ipv4_args} -M 1 -s 14720 -S 500 " "-4 -n 1 -l 1472…
[all …]
H A Dudpgro_fwd.sh129 # not enable GRO
249 run_test "No GRO" $BM_NET$DST 10 0
254 ip netns exec $NS_DST ethtool -K veth$DST rx-gro-list on
255 run_test "GRO frag list" $BM_NET$DST 1 0
258 # UDP GRO fwd skips aggregation when find an udp socket with the GRO option
261 # use NAT to circumvent GRO FWD check
265 ip netns exec $NS_DST ethtool -K veth$DST rx-udp-gro-forwarding on
268 run_test "GRO fwd" $BM_NET$DST_NAT 1 0 $BM_NET$DST
273 ip netns exec $NS_DST ethtool -K veth$DST rx-udp-gro-forwarding on
274 run_bench "UDP GRO fwd perf" $BM_NET$DST
[all …]
H A Dbig_tcp.sh138 ip net exec $ROUTER_NS ethtool -K link1 gro $gw_gro
140 ip net exec $SERVER_NS ethtool -K link3 gro $ser_gro
160 echo "CLI GSO | GW GRO | GW GSO | SER GRO" && \
H A Dgro.sh
H A D.gitignore
/linux/Documentation/netlink/specs/
H A Dnetdev.yaml278 name: gro-flush-timeout
281 value will also prevent GRO from flushing recent super-frames at
441 name: rx-hw-gro-packets
444 device. Counts only packets coalesced with the HW-GRO netdevice
448 name: rx-hw-gro-bytes
449 doc: See `rx-hw-gro-packets`.
452 name: rx-hw-gro-wire-packets
455 HW-GRO netdevice feature. LRO-coalesced packets are not counted.
458 name: rx-hw-gro-wire-bytes
459 doc: See `rx-hw-gro-wire-packets`.
[all …]
/linux/Documentation/networking/device_drivers/ethernet/intel/
H A Dfm10k.rst89 Generic Receive Offload, aka GRO
91 The driver supports the in-kernel software implementation of GRO. GRO has
93 utilization can be significantly reduced when under large Rx load. GRO is an
94 evolution of the previously-used LRO interface. GRO is able to coalesce
/linux/tools/testing/selftests/bpf/prog_tests/
H A Dxdp_do_redirect.c187 /* Enable GRO */ in test_xdp_do_redirect()
188 SYS(out, "ethtool -K veth_src gro on"); in test_xdp_do_redirect()
189 SYS(out, "ethtool -K veth_dst gro on"); in test_xdp_do_redirect()
192 if (!ASSERT_OK(err, "veth_src bpf_xdp_query gro on")) in test_xdp_do_redirect()
199 "veth_src query_opts.feature_flags gro on")) in test_xdp_do_redirect()
203 if (!ASSERT_OK(err, "veth_dst bpf_xdp_query gro on")) in test_xdp_do_redirect()
210 "veth_dst query_opts.feature_flags gro on")) in test_xdp_do_redirect()
/linux/tools/testing/selftests/drivers/net/
H A DMakefile9 gro \
14 gro.py \
/linux/net/ipv6/
H A Dexthdrs_offload.c3 * IPV6 GSO/GRO offload support
6 * IPV6 Extension Header GSO/GRO support
H A Dtcpv6_offload.c3 * IPV6 GSO/GRO offload support
6 * TCPv6 GSO/GRO support
11 #include <net/gro.h>
H A Dip6_offload.c3 * IPV6 GSO/GRO offload support
18 #include <net/gro.h>
304 /* Common GRO receive for SIT and IP6IP6 */ in ipv6_gro_receive()
319 /* Common GRO receive for SIT and IP6IP6 */ in sit_ip6ip6_gro_receive()
H A Desp6_offload.c3 * IPV6 GSO/GRO offload support
9 * ESP GRO support
19 #include <net/gro.h>
435 MODULE_DESCRIPTION("IPV6 GSO/GRO offload support");
H A Dip6_offload.h3 * IPV6 GSO/GRO offload support
/linux/include/net/
H A Dbusy_poll.h131 const struct gro_node *gro) in __skb_mark_napi_id() argument
138 skb->napi_id = gro->cached_napi_id; in __skb_mark_napi_id()
145 __skb_mark_napi_id(skb, &napi->gro); in skb_mark_napi_id()
H A Dudp.h605 * Segmentation in UDP receive path is only for UDP GRO, drop udp in udp_rcv_segment()
620 * CHECKSUM_NONE in __udp_gso_segment. UDP GRO indeed builds partial in udp_rcv_segment()
651 /* UDP-lite can't land here - no GRO */ in udp_post_segment_fix_csum()
656 * UDP tunnel(xmit) -> veth (segmentation) -> veth (gro) -> UDP tunnel (rx) in udp_post_segment_fix_csum()
661 * have a valid checksum, as the GRO engine validates the UDP csum in udp_post_segment_fix_csum()
/linux/net/ipv4/
H A Dgre_offload.c3 * IPV4 GSO/GRO offload support
13 #include <net/gro.h>
147 * for GRO, this is problematic for GSO hence can not be enabled in gre_gro_receive()
148 * here because a GRO pkt may end up in the forwarding path, thus in gre_gro_receive()
H A Desp4_offload.c3 * IPV4 GSO/GRO offload support
9 * ESP GRO support
19 #include <net/gro.h>
414 MODULE_DESCRIPTION("IPV4 GSO/GRO offload support");
H A Dudp_offload.c3 * IPV4 GSO/GRO offload support
10 #include <net/gro.h>
20 * Dummy GRO tunnel callback, exists mainly to avoid dangling/NULL
748 * Under small packet flood GRO count could elsewhere grow a lot in udp_gro_receive_segment()
751 * otherwise complete the GRO packet. in udp_gro_receive_segment()
804 * wasn't detected above, do not GRO. in udp_gro_receive()
816 /* no GRO, be sure flush the current packet */ in udp_gro_receive()
826 /* mark that this skb passed once through the tunnel gro layer */ in udp_gro_receive()
H A Dtcp_offload.c3 * IPV4 GSO/GRO offload support
6 * TCPv4 GSO/GRO support
11 #include <net/gro.h>
318 /* If skb is a GRO packet, make sure its gso_size matches prior packet mss. in tcp_gro_receive()
/linux/tools/testing/selftests/net/netfilter/
H A Dnft_queue.sh622 # Only queue unconfirmed fraglist gro skbs to userspace.
640 …ip netns exec "$nsrouter" ethtool -K "veth0" rx-udp-gro-forwarding on rx-gro-list on generic-recei…
677 ip netns exec "$nsrouter" ethtool -K "veth0" rx-udp-gro-forwarding off
678 ip netns exec "$nsrouter" ethtool -K "veth1" rx-udp-gro-forwarding off
681 # happens when gro did not build at least on aggregate
706 echo "PASS: fraglist gro skb passed with conntrack entry"
708 echo "$errprefix fraglist gro skb passed without conntrack entry"
/linux/Documentation/networking/device_drivers/ethernet/microsoft/
H A Dnetvsc.rst51 Generic Receive Offload, aka GRO
53 The driver supports GRO and it is enabled by default. GRO coalesces
/linux/kernel/bpf/
H A Dcpumap.c38 #include <net/gro.h>
73 struct gro_node gro; member
282 * If the ring is empty, to not hold GRO packets in the stack for too in cpu_map_gro_flush()
287 gro_flush_normal(&rcpu->gro, !empty && HZ >= 1000); in cpu_map_gro_flush()
393 gro_receive_skb(&rcpu->gro, skbs[i]); in cpu_map_kthread_run()
472 gro_init(&rcpu->gro); in __cpu_map_entry_alloc()
506 gro_cleanup(&rcpu->gro); in __cpu_map_entry_alloc()
536 gro_cleanup(&rcpu->gro); in __cpu_map_entry_free()
/linux/tools/testing/selftests/bpf/
H A Dtest_xdp_features.sh26 ethtool -K v1 gro on
28 ip netns exec ${NS} ethtool -K v0 gro on

12345