Bug ID 1470
Summary Testpmd parameter --max-pkt-len does not update MTU of ports bound to a kernel driver
Product DPDK
Version unspecified
Hardware All
OS All
Status UNCONFIRMED
Severity normal
Priority Normal
Component testpmd
Assignee dev@dpdk.org
Reporter jspewock@iol.unh.edu
Target Milestone ---

If testpmd is started with the parameter --max-pkt-len, the expected behavior
would be that the MTU of the port is updated to what that value is set to. In
the case of devices that use a kernel driver while running testpmd (like
mlx5_core for example), `show port info` will show that the MTU is the value
that you set --max-pkt-len to. However, if you look at the network interface
for the same port using the `ip a` command, it will report the unchanged MTU of
the port. Additionally, all packets that are higher than the MTU reported by
the kernel network interface will be dropped, regardless of whether or not the
value given to --max-pkt-len is high enough to handle them.

If, however, you run the command `port config all max-pkt-len 9000`, the mtu of
the kernel network interface will be updated to 8982 and the mtu listed by
`show port info 0` will match. The documentation listed here [1] says that this
command "is equivalent to the --max-pkt-len command-line option." but the two
have different outcomes. Also, as a note, if you set the mtu using `port config
mtu 0 9000`, the mtu of the kernel network interface and the MTU displayed by
`show port info 0` will match and both be 9000.

For example, starting testpmd in interactive mode on a NIC running on the
mlx5_core driver with the parameter `--max-pkt-len=9000` and then running `show
port info 0` will show "MTU: 8982". However, on the same host, while testpmd is
running, if I run `ip a` the MTU of the interface for this port is set to 1500
and any packet larger than 1500 bytes will get dropped. If you then run `port
stop all` followed by `port config all max-pkt-len 9000`, you can run `show
port info 0` and you will see the same mtu value, 8982, but then if you run `ip
a` you will see that the kernel network interface also has this updated MTU
value. Only then, after starting the ports again, can you send packets larger
than 1500 bytes.

The MTU listed in `show port info` seems to be more accurate when bound to
vfio-pci instead, however. 

[1]
https://doc.dpdk.org/guides/testpmd_app_ug/testpmd_funcs.html#port-config-max-pkt-len
          


You are receiving this mail because: