Summary
Static ARP entries are not synchronized after any changes are made to an interface status
How to reproduce
Configure basic settings:
set interfaces ethernet eth9 address '192.168.122.5/24'
Check neighbors:
[edit] vyos@vyos# sudo ip neighbor
Add static ARP entries:
set protocols static arp interface eth9 address 192.168.122.2 mac '00:11:22:33:44:55' set protocols static arp interface eth9 address 192.168.122.3 mac '00:11:22:33:44:66'
Check neighbors again:
[edit]
vyos@vyos# sudo ip neighbor
192.168.122.2 dev eth9 lladdr 00:11:22:33:44:55 PERMANENT
192.168.122.3 dev eth9 lladdr 00:11:22:33:44:66 PERMANENT
[edit] sudo vppctl show ip neighbors
Age IP Flags Ethernet Interface
28.1721 192.168.122.3 S 00:11:22:33:44:66 eth9
28.1734 192.168.122.2 S 00:11:22:33:44:55 eth9Flap the link (externally or with commands provided below):
sudo ip l set eth9 down sudo ip l set eth9 up
Check neighbors again:
[edit] vyos@vyos# sudo ip neighbor
What is expected / Suggested solution
It is expected that static ARP entries will not disappear after an interface status change.
It seems we are missing calling a dependency for protocols static arp after the interfaces reinitialization. We need to ensure that after an interface status is flapped or it is recreated, we will reapply static ARP settings.