]> git.baikalelectronics.ru Git - kernel.git/commit
veth: allow enabling NAPI even without XDP
authorPaolo Abeni <pabeni@redhat.com>
Fri, 9 Apr 2021 11:04:38 +0000 (13:04 +0200)
committerDavid S. Miller <davem@davemloft.net>
Sun, 11 Apr 2021 23:39:28 +0000 (16:39 -0700)
commit0da476264a7fc8a93561acd415a810e47afe72d5
treeb3c92dfd474ae0625223699e8a181860a9067f1c
parenteac70becd67316a510e591b5db3260fe1289b066
veth: allow enabling NAPI even without XDP

Currently the veth device has the GRO feature bit set, even if
no GRO aggregation is possible with the default configuration,
as the veth device does not hook into the GRO engine.

Flipping the GRO feature bit from user-space is a no-op, unless
XDP is enabled. In such scenario GRO could actually take place, but
TSO is forced to off on the peer device.

This change allow user-space to really control the GRO feature, with
no need for an XDP program.

The GRO feature bit is now cleared by default - so that there are no
user-visible behavior changes with the default configuration.

When the GRO bit is set, the per-queue NAPI instances are initialized
and registered. On xmit, when napi instances are available, we try
to use them.

Some additional checks are in place to ensure we initialize/delete NAPIs
only when needed in case of overlapping XDP and GRO configuration
changes.

Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/veth.c