Home
last modified time | relevance | path

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

123456

/linux-6.15/net/core/
Dgro.c2 #include <net/gro.h>
253 static void gro_complete(struct gro_node *gro, struct sk_buff *skb) in gro_complete() argument
286 gro_normal_one(gro, skb, NAPI_GRO_CB(skb)->count); in gro_complete()
289 static void __gro_flush_chain(struct gro_node *gro, u32 index, bool flush_old) in __gro_flush_chain() argument
291 struct list_head *head = &gro->hash[index].list; in __gro_flush_chain()
298 gro_complete(gro, skb); in __gro_flush_chain()
299 gro->hash[index].count--; in __gro_flush_chain()
302 if (!gro->hash[index].count) in __gro_flush_chain()
303 __clear_bit(index, &gro->bitmask); in __gro_flush_chain()
307 * gro->hash[].list contains packets ordered by age.
[all …]
/linux-6.15/tools/testing/selftests/net/
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 …]
Dveth.sh227 chk_gro_flag "default - gro flag" $SRC off
228 chk_gro_flag " - peer gro flag" $DST off
237 ip netns exec $NS_DST ethtool -K veth$DST gro on
238 chk_gro_flag "with gro on - gro flag" $DST on
239 chk_gro_flag " - peer gro flag" $SRC off
243 ip netns exec $NS_DST ethtool -K veth$DST rx-udp-gro-forwarding on
250 chk_gro_flag "gro vs xdp while down - gro flag off" $DST off
265 chk_gro_flag "gro vs xdp while down - gro flag on" $DST on
280 ip netns exec $NS_DST ethtool -K veth$DST gro on
281 chk_gro_flag "with gro enabled on link down - gro flag" $DST on
[all …]
Dudpgro_fwd.sh129 # not enable GRO
216 run_test "No GRO" $BM_NET$DST 10 0
221 ip netns exec $NS_DST ethtool -K veth$DST rx-gro-list on
222 run_test "GRO frag list" $BM_NET$DST 1 0
225 # UDP GRO fwd skips aggregation when find an udp socket with the GRO option
228 # use NAT to circumvent GRO FWD check
232 ip netns exec $NS_DST ethtool -K veth$DST rx-udp-gro-forwarding on
235 run_test "GRO fwd" $BM_NET$DST_NAT 1 0 $BM_NET$DST
240 ip netns exec $NS_DST ethtool -K veth$DST rx-udp-gro-forwarding on
241 run_bench "UDP GRO fwd perf" $BM_NET$DST
[all …]
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" && \
Dgro.sh26 ip netns exec $server_ns ./gro "${ARGS[@]}" "--rx" "--iface" "server" \
30 ip netns exec $client_ns ./gro "${ARGS[@]}" "--iface" "client" \
Dudpgro_frglist.sh40 ip netns exec "${PEER_NS}" ethtool -K veth1 rx-gro-list on
66 echo "udp gso and gro - over veth touching data"
/linux-6.15/include/net/
Dgro.h53 /* portion of the cb set to zero at every gro iteration */
62 /* Used in tunnel GRO receive */
65 /* GRO checksum is valid */
86 /* GRO is done by frag_list pointer chaining. */
216 /* GRO checksum functions. These are logical equivalents of the normal
217 * checksum functions (in skbuff.h) except that they operate on the GRO
260 * during GRO. This saves work if we fallback to normal path. in skb_gro_incr_csum_unnecessary()
512 void __gro_flush(struct gro_node *gro, bool flush_old);
514 static inline void gro_flush(struct gro_node *gro, bool flush_old) in gro_flush() argument
516 if (!gro->bitmask) in gro_flush()
[all …]
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()
/linux-6.15/Documentation/netlink/specs/
Dnetdev.yaml271 name: gro-flush-timeout
274 value will also prevent GRO from flushing recent super-frames at
426 name: rx-hw-gro-packets
429 Counts only packets coalesced with the HW-GRO netdevice feature,
433 name: rx-hw-gro-bytes
434 doc: See `rx-hw-gro-packets`.
437 name: rx-hw-gro-wire-packets
439 Number of packets that were coalesced to bigger packetss with the HW-GRO
443 name: rx-hw-gro-wire-bytes
444 doc: See `rx-hw-gro-wire-packets`.
[all …]
/linux-6.15/Documentation/networking/device_drivers/ethernet/intel/
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-6.15/Documentation/networking/
Dnetdev-features.rst162 * rx-gro-hw
164 This requests that the NIC enables Hardware GRO (generic receive offload).
165 Hardware GRO is basically the exact reverse of TSO, and is generally
166 stricter than Hardware LRO. A packet stream merged by Hardware GRO must
168 Hardware GRO is dependent on RXCSUM since every packet successfully merged
Dsegmentation-offloads.rst19 * Generic Receive Offload - GRO
125 assembled by GRO should be segmented to create an identical sequence of
127 able to be reassembled back to the original by GRO. The only exception to
130 altered so that it is when a frame assembled via GRO is segmented via GSO.
/linux-6.15/tools/testing/selftests/bpf/prog_tests/
Dxdp_do_redirect.c178 /* Enable GRO */ in test_xdp_do_redirect()
179 SYS(out, "ethtool -K veth_src gro on"); in test_xdp_do_redirect()
180 SYS(out, "ethtool -K veth_dst gro on"); in test_xdp_do_redirect()
183 if (!ASSERT_OK(err, "veth_src bpf_xdp_query gro on")) in test_xdp_do_redirect()
190 "veth_src query_opts.feature_flags gro on")) in test_xdp_do_redirect()
194 if (!ASSERT_OK(err, "veth_dst bpf_xdp_query gro on")) in test_xdp_do_redirect()
201 "veth_dst query_opts.feature_flags gro on")) in test_xdp_do_redirect()
/linux-6.15/net/ipv6/
Dexthdrs_offload.c3 * IPV6 GSO/GRO offload support
6 * IPV6 Extension Header GSO/GRO support
Dtcpv6_offload.c3 * IPV6 GSO/GRO offload support
6 * TCPv6 GSO/GRO support
11 #include <net/gro.h>
Dip6_offload.c3 * IPV6 GSO/GRO offload support
18 #include <net/gro.h>
23 /* All GRO functions are always builtin, except UDP over ipv6, which lays in
311 /* Common GRO receive for SIT and IP6IP6 */ in sit_ip6ip6_gro_receive()
326 /* Common GRO receive for SIT and IP6IP6 */ in ip4ip6_gro_receive()
Desp6_offload.c3 * IPV6 GSO/GRO offload support
9 * ESP GRO support
19 #include <net/gro.h>
433 MODULE_DESCRIPTION("IPV6 GSO/GRO offload support");
/linux-6.15/kernel/bpf/
Dcpumap.c37 #include <net/gro.h>
71 struct gro_node gro; member
280 * If the ring is empty, to not hold GRO packets in the stack for too in cpu_map_gro_flush()
285 gro_flush(&rcpu->gro, !empty && HZ >= 1000); in cpu_map_gro_flush()
286 gro_normal_list(&rcpu->gro); in cpu_map_gro_flush()
392 gro_receive_skb(&rcpu->gro, skbs[i]); in cpu_map_kthread_run()
470 gro_init(&rcpu->gro); in __cpu_map_entry_alloc()
499 gro_cleanup(&rcpu->gro); in __cpu_map_entry_alloc()
529 gro_cleanup(&rcpu->gro); in __cpu_map_entry_free()
/linux-6.15/net/ipv4/
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()
Desp4_offload.c3 * IPV4 GSO/GRO offload support
9 * ESP GRO support
19 #include <net/gro.h>
412 MODULE_DESCRIPTION("IPV4 GSO/GRO offload support");
Dudp_offload.c3 * IPV4 GSO/GRO offload support
10 #include <net/gro.h>
584 * Under small packet flood GRO count could elsewhere grow a lot in udp_gro_receive_segment()
587 * otherwise complete the GRO packet. in udp_gro_receive_segment()
639 * wasn't detected above, do not GRO. in udp_gro_receive()
651 /* no GRO, be sure flush the current packet */ in udp_gro_receive()
661 /* mark that this skb passed once through the tunnel gro layer */ in udp_gro_receive()
/linux-6.15/Documentation/networking/device_drivers/ethernet/microsoft/
Dnetvsc.rst51 Generic Receive Offload, aka GRO
53 The driver supports GRO and it is enabled by default. GRO coalesces
/linux-6.15/Documentation/networking/device_drivers/ethernet/mellanox/mlx5/
Dcounters.rst191 - Number of received packets processed using hardware-accelerated GRO. The
192 number of hardware GRO offloaded packets received on ring i. Only true GRO
193 packets are counted: only packets that are in an SKB with a GRO count > 1.
197 - Number of received bytes processed using hardware-accelerated GRO. The
198 number of hardware GRO offloaded bytes received on ring i. Only true GRO
199 packets are counted: only packets that are in an SKB with a GRO count > 1.
203 - The number of GRO SKBs constructed from hardware-accelerated GRO. Only SKBs
204 with a GRO count > 1 are counted.
208 - Number of receive packets using hardware-accelerated GRO that have large
/linux-6.15/tools/testing/selftests/bpf/
Dtest_xdp_features.sh26 ethtool -K v1 gro on
28 ip netns exec ${NS} ethtool -K v0 gro on

123456