Page MenuHomeVyOS Platform

VPP ACL cannot be applied to Ethernet subinterfaces (ethX.<vlan>) from VyOS config
Closed, ResolvedPublicBUG

Description

Applying a VPP ACL to a physical VPP-managed Ethernet interface works as expected, but applying the same ACL to an Ethernet subinterface such as eth1.200 fails during commit.

Example:
set vpp acl ip interface eth1.200 input acl-tag 10 tag-name STATEFUL
commit

Current behavior:

  • VyOS rejects the configuration with: eth1.200 must be a VPP interface for ACL interface
  • However, applying the ACL directly in VPP works, which shows the issue is in VyOS config validation/dependency handling rather than in VPP itself.

Root cause:

  • vpp_acl validated interfaces using cli_ifaces_list(), which includes base VPP interfaces but does not include Ethernet VIF/subinterfaces like ethX.<vlan>.
  • Simply relaxing validation is not enough, because ACLs also need to be reapplied when a VLAN subinterface is removed and created again. Otherwise the config remains present in VyOS, but the ACL is no longer attached in VPP runtime.

Fix:

  • Extend ACL interface validation to include Ethernet VIF/subinterfaces by using cli_ethernet_with_vifs_ifaces() together with the regular VPP interface list.
  • Add a dependency from interfaces_ethernet to vpp_acl so that changes to vif / vif-s on VPP-managed Ethernet interfaces trigger ACL reapplication.
  • This ensures both:
    • ACL commit succeeds for subinterfaces like eth1.200
    • ACLs are restored correctly after subinterface recreation

Result:

  • VPP ACLs can now be assigned to Ethernet subinterfaces from VyOS CLI.
  • ACL configuration remains consistent after VLAN/subinterface changes.

Details

Version
VyOS 1.5-rolling
Is it a breaking change?
Config syntax change (non-migratable)
Issue type
Bug (incorrect behavior)

Event Timeline

One attempt was here https://github.com/vyos/vyos-1x/pull/4916
But the author didn't implement request changes

Viacheslav changed the task status from Open to In progress.Apr 14 2026, 2:10 PM
Viacheslav assigned this task to Russ28.
This comment was removed by Viacheslav.
Viacheslav moved this task from Need Triage to Completed on the VyOS Rolling board.