Page MenuHomeVyOS Platform

VPP: interface MTU handling — keep kernel and dataplane in sync
In progress, NormalPublic

Description

On a VPP interface the real MTU limit is set by the NIC in the dataplane, and it depends on the driver. Only VPP knows it; the kernel side is a linux-cp tap that reports a much larger, meaningless maximum. So the kernel and the dataplane can silently end up with different MTUs, on the interface itself and on its VLAN sub-interfaces.

  1. Enforce the NIC's MTU limit (at commit). An MTU larger than the NIC can handle must be rejected during verification, not accepted while the dataplane quietly runs at the NIC maximum. VyOS reads the limit from VPP — a companion patch adds max mtu and driver frame overhead to show hardware-interfaces — and checks the configured MTU against it at commit, so the config always matches the dataplane. Interfaces with no physical NIC, or drivers that don't report a limit, are left unrestricted.
  2. Propagate MTU to VLAN sub-interfaces. An MTU set on a VLAN sub-interface must reach both its VPP dataplane sub-interface and the matching linux-cp tap (linux-cp creates the tap with MTU 0). Today only the parent is updated, so the sub-interface's control-plane side keeps the wrong MTU. A sub-interface with no MTU of its own inherits the parent's. This applies to:
  • Physical (ethernet) interfaces.
  • VPP logical interfaces (bond, loopback)

Details

Version
-
Is it a breaking change?
Perfectly compatible
Issue type
Bug (incorrect behavior)

Event Timeline

natali-rs1985 triaged this task as Normal priority.
natali-rs1985 renamed this task from VPP: interface MTU handling — align with dataplane limits to VPP: interface MTU handling — keep kernel and dataplane in sync.Fri, Sep 4, 11:15 AM
natali-rs1985 changed the task status from Open to In progress.
natali-rs1985 updated the task description. (Show Details)