> On Tue, 2022-02-15 at 14:08 +0100, Lorenzo Bianconi wrote: > > Allow increasing the MTU over page boundaries on veth devices > > if the attached xdp program declares to support xdp fragments. > > Enable NETIF_F_ALL_TSO when the device is running in xdp mode. > > > > Signed-off-by: Lorenzo Bianconi > > --- > > drivers/net/veth.c | 26 +++++++++++--------------- > > 1 file changed, 11 insertions(+), 15 deletions(-) > > > > diff --git a/drivers/net/veth.c b/drivers/net/veth.c > > index a45aaaecc21f..2e048f957bc6 100644 > > --- a/drivers/net/veth.c > > +++ b/drivers/net/veth.c > > @@ -292,8 +292,6 @@ static int veth_forward_skb(struct net_device *dev, struct sk_buff *skb, > > /* return true if the specified skb has chances of GRO aggregation > > * Don't strive for accuracy, but try to avoid GRO overhead in the most > > * common scenarios. > > - * When XDP is enabled, all traffic is considered eligible, as the xmit > > - * device has TSO off. > > * When TSO is enabled on the xmit device, we are likely interested only > > * in UDP aggregation, explicitly check for that if the skb is suspected > > * - the sock_wfree destructor is used by UDP, ICMP and XDP sockets - > > @@ -334,7 +332,8 @@ static netdev_tx_t veth_xmit(struct sk_buff *skb, struct net_device *dev) > > * Don't bother with napi/GRO if the skb can't be aggregated > > */ > > use_napi = rcu_access_pointer(rq->napi) && > > - veth_skb_is_eligible_for_gro(dev, rcv, skb); > > + (rcu_access_pointer(rq->xdp_prog) || > > + veth_skb_is_eligible_for_gro(dev, rcv, skb)); > > Sorry for the late feedback. I think the code would be more readable if > you move the additional check inside 'veth_skb_is_eligible_for_gro' and > adjust veth_skb_is_eligible_for_gro() comment accordingly. Hi Paolo, sure, will do in v3. Regards, Lorenzo > > Thanks! > > Paolo >