Page MenuHomeVyOS Platform

arp: migrate static ARP entry configuration to get_config_dict() and make it VRF aware
Closed, ResolvedPublicFEATURE REQUEST


With the current "old" implementation of the set protocols static arp we have two drawbacks:

  • As this it's a tagNode, once an entry is changed and commit is called, the script which handles ARP entries is called as many times as there are ARP entries. In addition, the entries are added and removed as many times as there are static ARP entries configured.
  • We can not configure "per interface" static ARP entries making it impossible to work with multiple VRF instances


[email protected]# set vrf name red table 1000
[email protected]# set interfaces ethernet eth0 address
[email protected]# set interfaces ethernet eth1 vrf red
[email protected]# set interfaces ethernet eth1 address
[email protected]# commit
[email protected]# run show int
Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
Interface        IP Address                        S/L  Description
---------        ----------                        ---  -----------
eth0                     u/u
eth1                     u/u
lo                            u/u

Manually add per interface ARP entires

[email protected]# sudo arp -i eth0 -s 00:01:02:03:04:AA
[email protected]# sudo arp -i eth1 -s 00:01:02:03:04:BB
[email protected]# arp
Address                  HWtype  HWaddress           Flags Mask            Iface             ether   00:01:02:03:04:aa   CM                    eth0             ether   00:01:02:03:04:bb   CM                    eth1


The interface for a static ARP entry should be enforced.

A migration script must be used to read the current static ARP entries and compare it to the current configured L3 interfaces on a system. If the ARP entry is within an interface, use this interface and re-write the config.


Difficulty level
Normal (likely a few hours)
Why the issue appeared?
Will be filled on close
Is it a breaking change?
Config syntax change (migratable)
Issue type
Improvement (missing useful functionality)

Event Timeline

c-po changed the task status from Open to In progress.Apr 25 2022, 5:17 PM
c-po claimed this task.
c-po created this task.
c-po changed Difficulty level from Unknown (require assessment) to Normal (likely a few hours).
c-po changed Version from - to 1.4-rolling-202204250217.
c-po changed Is it a breaking change? from Unspecified (possibly destroys the router) to Config syntax change (migratable).
c-po changed Issue type from Unspecified (please specify) to Improvement (missing useful functionality).
c-po moved this task from Need Triage to Finished on the VyOS 1.4 Sagitta board.