Home
last modified time | relevance | path

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

12345

/linux/net/core/
H A 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/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 wit
[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.sh26 ip netns exec $server_ns ./gro "${ARGS[@]}" "--rx" "--iface" "server" \
30 ip netns exec $client_ns ./gro "${ARGS[@]}" "--iface" "client" \
H A DMakefile33 TEST_PROGS += gro.sh
77 TEST_GEN_FILES += gro
H A D.gitignore10 gro
/linux/include/net/
H A 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 …]
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()
/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.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/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>
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()
H A Dip6_offload.h3 * IPV6 GSO/GRO offload support
H A Dudp_offload.c3 * IPV6 GSO/GRO offload support
16 #include <net/gro.h>
/linux/kernel/bpf/
H A 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/Documentation/networking/
H A 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/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 Dudp_offload.c3 * IPV4 GSO/GRO offload support
10 #include <net/gro.h>
20 * Dummy GRO tunnel callback, exists mainly to avoid dangling/NULL
752 * Under small packet flood GRO count could elsewhere grow a lot in udp_gro_receive_segment()
755 * otherwise complete the GRO packet. in udp_gro_receive_segment()
807 * wasn't detected above, do not GRO. in udp_gro_receive()
819 /* no GRO, be sure flush the current packet */ in udp_gro_receive()
829 /* 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>
345 /* If skb is a GRO packet, make sure its gso_size matches prior packet mss. in tcp_gro_receive()
/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/Documentation/networking/device_drivers/ethernet/mellanox/mlx5/
H A 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/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
/linux/include/linux/
H A Dnetdev_features.h83 NETIF_F_GRO_FRAGLIST_BIT, /* Fraglist GRO */
86 NETIF_F_GRO_UDP_FWD_BIT, /* Allow UDP GRO for forwarding */
110 #define NETIF_F_GRO __NETIF_F(GRO)
H A Dudp.h39 UDP_FLAGS_GRO_ENABLED, /* Request GRO aggregation */
85 /* GRO functions for UDP socket */
106 * Accounting for the tunnel GRO fastpath.

12345