Page MenuHomeVyOS Platform

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

Description

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

VRF

vyos@vyos# set vrf name red table 1000
vyos@vyos# set interfaces ethernet eth0 address 172.18.201.10/24
vyos@vyos# set interfaces ethernet eth1 vrf red
vyos@vyos# set interfaces ethernet eth1 address 172.18.201.10/24
vyos@vyos# commit
vyos@vyos# run show int
Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
Interface        IP Address                        S/L  Description
---------        ----------                        ---  -----------
eth0             172.18.201.10/24                  u/u
eth1             172.18.201.10/24                  u/u
lo               127.0.0.1/8                       u/u
                 ::1/128

Manually add per interface ARP entires

vyos@vyos# sudo arp -i eth0 -s 172.18.201.1 00:01:02:03:04:AA
vyos@vyos# sudo arp -i eth1 -s 172.18.201.1 00:01:02:03:04:BB
vyos@vyos# arp
Address                  HWtype  HWaddress           Flags Mask            Iface
172.18.201.1             ether   00:01:02:03:04:aa   CM                    eth0
172.18.201.1             ether   00:01:02:03:04:bb   CM                    eth1

Migration

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.

Details

Difficulty level
Normal (likely a few hours)
Version
1.4-rolling-202204250217
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.