-
Notifications
You must be signed in to change notification settings - Fork 376
T7388: IPv6 neighbor discovery not supported by every interface type #4541
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
base: current
Are you sure you want to change the base?
Conversation
…very file To support features that are available on everz IPv6 supporting interface define a "base" file and one or more feature include files like neighbor discovery, as this is not supported on every interface.
👍 |
✅ No issues found in unused-imports check.. Please refer the workflow run |
base = ['interfaces'] | ||
|
||
def migrate(config: ConfigTree) -> None: | ||
for iftype in ['tunnel', 'wireguard', 'vti']: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In theory it should work for encapsulation gretap
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You are right about gretap
- we probably should keep it for tunnel and only remove it for VTI and WireGuard interfaces? What's your opinion on this?
vyos@vyos:~$ sudo tcpdump -ni tun0
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on tun0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
22:07:43.765838 IP6 fe80::f980:afff:fed8:1ecf > ff02::2: ICMP6, router solicitation, length 8
22:07:43.766526 IP6 fe80::f975:49ff:fe15:1e71 > fe80::f980:afff:fed8:1ecf: ICMP6, router advertisement, length 64
22:07:49.110446 IP6 fe80::f975:49ff:fe15:1e71 > fe80::f980:afff:fed8:1ecf: ICMP6, neighbor solicitation, who has fe80::f980:afff:fed8:1ecf, length 32
22:07:49.110495 IP6 fe80::f980:afff:fed8:1ecf > fe80::f975:49ff:fe15:1e71: ICMP6, neighbor advertisement, tgt is fe80::f980:afff:fed8:1ecf, length 24
Tested using:
set interfaces tunnel tun0 encapsulation 'gretap'
set interfaces tunnel tun0 ipv6 address autoconf
set interfaces tunnel tun0 remote '172.18.254.201'
set interfaces tunnel tun0 source-address '172.18.254.202'
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
only remove it for VTI and WireGuard interfaces
Sounds reasonable
Not sure about vti
+ IPv6 peers.
The commit b124f0b ("interface: T4627: support IPv6 Interface Identifier (token) for SLAAC") revealed an incorrect assumption in VyOS: that all interface types in use inherently support SLAAC and IPv6 Neighbor Discovery (ND). However, this assumption does not hold true for WireGuard, Tunnel, and VTI interfaces. Therefore, the corresponding CLI option should not be available for these interface types. Additionally, SLAAC support should be removed for them in a future pull request. To address this, remove the "ipv6 address autoconf" CLI tree from the following interface types using a migration script: * WireGuard * Tunnel (if encapsulation is not gretap or ip6gretap) * VTI
CI integration ❌ failed! Details
|
Change summary
The commit b124f0b ("interface: T4627: support IPv6 Interface Identifier (token) for SLAAC") revealed an incorrect assumption in VyOS: that all nterface types in use inherently support SLAAC and IPv6 Neighbor Discovery (ND).
However, this assumption does not hold true for WireGuard, Tunnel, and VTI interfaces. Therefore, the corresponding CLI option should not be available for these interface types. Additionally, SLAAC support should be removed for them in a future pull request.
To address this, remove the "ipv6 address autoconf" CLI tree from the following interface types using a migration script:
Types of changes
Related Task(s)
Related PR(s)
How to test / Smoketest result
Checklist: