Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Propagete NEWADDR for unnumbered interfaces #13

Open
pimvanpelt opened this issue Apr 7, 2024 · 0 comments
Open

Propagete NEWADDR for unnumbered interfaces #13

pimvanpelt opened this issue Apr 7, 2024 · 0 comments

Comments

@pimvanpelt
Copy link
Owner

pimvanpelt commented Apr 7, 2024

linux-cp and lcpng do not honor address additions/deletions on unnumbered interfaces. Take the following example:

root@vpp0-3:/usr/share/vpp/api# vppctl lcp lcp-sync-unnumbered on
root@vpp0-3:/usr/share/vpp/api# ip -br a
lo               UNKNOWN        127.0.0.1/8 ::1/128 
loop0            UNKNOWN        192.168.10.3/32 2001:678:d78:200::3/128 fe80::dcad:ff:fe00:0/64 
e0               UP             192.168.10.3/32 2001:678:d78:200::3/128 fe80::5054:ff:fef0:1130/64 
e1               DOWN           
e2               DOWN           
e3               DOWN           
root@vpp0-3:/usr/share/vpp/api# ip addr add 192.0.2.1/32 dev loop0
root@vpp0-3:/usr/share/vpp/api# ip -br a
lo               UNKNOWN        127.0.0.1/8 ::1/128 
loop0            UNKNOWN        192.168.10.3/32 192.0.2.1/32 2001:678:d78:200::3/128 fe80::dcad:ff:fe00:0/64 
e0               UP             192.168.10.3/32 2001:678:d78:200::3/128 fe80::5054:ff:fef0:1130/64 
e1               DOWN           
e2               DOWN           
e3               DOWN           
root@vpp0-3:/usr/share/vpp/api# ip -br a
lo               UNKNOWN        127.0.0.1/8 ::1/128 
loop0            UNKNOWN        192.168.10.3/32 192.0.2.1/32 2001:678:d78:200::3/128 fe80::dcad:ff:fe00:0/64 
e0               UP             192.168.10.3/32 2001:678:d78:200::3/128 fe80::5054:ff:fef0:1130/64 
e1               DOWN           
e2               DOWN           
e3               DOWN           
root@vpp0-3:/usr/share/vpp/api# vppctl show int addr
GigabitEthernet10/0/0 (up): 
  unnumbered, use loop0
  L3 192.168.10.3/32
  L3 192.0.2.1/32
  L3 2001:678:d78:200::3/128
GigabitEthernet10/0/1 (dn):
GigabitEthernet10/0/2 (dn):
GigabitEthernet10/0/3 (dn):
local0 (dn):
loop0 (up):
  L3 192.168.10.3/32
  L3 192.0.2.1/32
  L3 2001:678:d78:200::3/128
tap0 (up):
tap1 (up):
tap2 (up):
tap3 (up):
tap4 (up):

LCP will consume the addition of NEWADDR/DELADDR for loop0; and e0, because it's unnumbered on loop0, will receive the IPv4 address in VPP, but not Linux.

Two possible solutions:

  1. Propagate the NEWADDR/DELADDR to all unnumbered interfaces keyed off of the loop0 interface (change to linux-cp)
  2. Generate a new ip[46]_add_del_interface_address_callback_t to notify all watches of new addresses on unnumbered interfaces
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant