Re: [PATCH net-next v2] net: pppoe: implement GRO support

From: Felix Fietkau
Date: Tue Jul 22 2025 - 11:00:36 EST


On 22.07.25 16:47, Paolo Abeni wrote:
On 7/22/25 4:04 PM, Eric Dumazet wrote:
On Wed, Jul 16, 2025 at 1:14 AM Felix Fietkau <nbd@xxxxxxxx> wrote:

Only handles packets where the pppoe header length field matches the exact
packet length. Significantly improves rx throughput.

When running NAT traffic through a MediaTek MT7621 devices from a host
behind PPPoE to a host directly connected via ethernet, the TCP throughput
that the device is able to handle improves from ~130 Mbit/s to ~630 Mbit/s,
using fraglist GRO.

Signed-off-by: Felix Fietkau <nbd@xxxxxxxx>
---

Shouldn't we first add GSO support ?

I *think* the current __skb_gso_segment() should be able to segment a
pppoe GSO packet, as the pppoe header is static/constant, skb->mac_len
will include both eth/pppoe and skb->protocol should be the actual L3.

If the packet is received on a ppp device, __skb_gso_segment works afterwards.
However, for the bridge forwarding case, Eric is correct. In this case, skb->protocol will not be the L3 protocol.

I will add GSO support in v3.

Thanks,

- Felix