On Wed, 6 Feb 2019 14:05:34 +0100
Morten Brørup <m...@smartsharesystems.com> wrote:

> Good work, Stephen.
> 
> It should also be documented how PMDs should interpret this MTU.
> 
> Obviously, a VLAN tagged Ethernet frame grows from 1518 to 1522 bytes incl. 
> header and CRC, and should be allowed with an Ethernet MTU of 1500 bytes. 
> There's even a #define ETHER_MAX_VLAN_FRAME_LEN for this, but that's as far 
> as it goes...
> 
> But how about frames with even larger headers, e.g. 4 MPLS labels makes a 
> frame 16 bytes longer, i.e. it grows from 1518 to 1534 bytes... is such a 
> frame acceptable with an MTU of 1500 bytes?

No. According to standard practice in Linux and FreeBSD, only the first VLAN 
tag is free.
After that any other headers count against MTU.

> 
> According to Wikipedia 
> (https://en.wikipedia.org/wiki/Maximum_transmission_unit), MTU describes the 
> maximum payload size, and is not tied to the maximum frame size. However, the 
> Linux kernel (at least the older versions I have been working with) 
> incorrectly ties the MTU directly to the maximum frame size, so the MTU has 
> to increased to support larger headers (e.g. QinQ or an MPLS stack). Do none, 
> all or some DPDK PMDs suffer from the same error?
> 

Maximum Transmission Unit and Maximum Receive Unit (MRU) are separate. On most 
hardware they are the same but
there is variation. Some hardware can receive larger sizes than MTU and some 
have max receive length register.

Reply via email to