-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
*: EVPN symmetric routing for IPv6 tenant routes #1806
*: EVPN symmetric routing for IPv6 tenant routes #1806
Conversation
Implement support for EVPN symmetric routing for IPv6 routes. The next hop for EVPN routes is the IP address of the remote VTEP which is only an IPv4 address. This means that for IPv6 symmetric routing, there will be IPv6 destinations with IPv4 next hops. To make this work, the IPv4 next hops are converted into IPv4-mapped IPv6 addresses. As part of support, ensure that "L3" route-targets are not announced with IPv6 link-local addresses so that they won't be installed in the routing table. Signed-off-by: Vivek Venkatraman vivek@cumulusnetworks.com Reviewed-by: Mitesh Kanjariya mitesh@cumulusnetworks.com Reviewed-by: Donald Sharp sharpd@cumulusnetworks.com
💚 Basic BGPD CI results: SUCCESS, 0 tests failedResults table
For details, please contact louberger |
Continuous Integration Result: SUCCESSFULCongratulations, this patch passed basic tests Tested-by: NetDEF / OpenSourceRouting.org CI System CI System Testrun URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-2696/ This is a comment from an EXPERIMENTAL automated CI system. Warnings Generated during build:Checkout code: Successful with additional warnings:
CLANG Static Analyzer Summary
No Changes in Static Analysis warnings compared to base19 Static Analyzer issues remaining.See details at |
Can we get the newline added to ipaddr.h as the analyzer is complaining about it. |
Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Continuous Integration Result: SUCCESSFULCongratulations, this patch passed basic tests Tested-by: NetDEF / OpenSourceRouting.org CI System CI System Testrun URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-2711/ This is a comment from an EXPERIMENTAL automated CI system. CLANG Static Analyzer Summary
No Changes in Static Analysis warnings compared to base19 Static Analyzer issues remaining.See details at |
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.
code LGTM, except for ipv4 mapped ipv6 handling. I have 2 remarks:
- this ipv4_to_ipv4_mapped_ipv6 should be moved to lib/<>
- on the remote side, I guess the IPv6 address will be displayed. don't you try to detect if it is an ipv4 mapped ipv6 address and try to display with the original ipv4 address ?
lib/ipaddr.h
Outdated
@@ -85,4 +85,14 @@ static inline char *ipaddr2str(struct ipaddr *ip, char *buf, int size) | |||
} | |||
return buf; | |||
} | |||
|
|||
static inline void ipv4_to_ipv4_mapped_ipv6(struct in6_addr *in6, |
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.
A comment would be welcome to explain what is an ipv4 mapped address over IPv6.
I mean this function may be used.
This function should be put somewhere in the lib folder.
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.
this is in lib/ already.
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.
I shall add a comment. Also, there is no change to how the routes are exchanged, they are sent with an IPv4 next hop as the EVPN route itself allows that of course. The change is only internal between BGP and zebra and then down to the kernel.
@vivek-cumulus Can you address @pguibert6WIND's Review comments and update so it can be moved on? |
…pv6-tenant-routing Conflicts: zebra/zserv.c
💚 Basic BGPD CI results: SUCCESS, 0 tests failedResults table
For details, please contact louberger |
Continuous Integration Result: SUCCESSFULCongratulations, this patch passed basic tests Tested-by: NetDEF / OpenSourceRouting.org CI System CI System Testrun URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-2774/ This is a comment from an EXPERIMENTAL automated CI system. CLANG Static Analyzer Summary
No Changes in Static Analysis warnings compared to base19 Static Analyzer issues remaining.See details at |
Hi @vivek-cumulus , |
Hi @pguibert6WIND - I already did that as part of the additional commit yesterday. Do you think the comments in lib/ipaddr.h are fine? |
…pv6-tenant-routing Conflicts: bgpd/bgp_evpn.c
💚 Basic BGPD CI results: SUCCESS, 0 tests failedResults table
For details, please contact louberger |
Continuous Integration Result: FAILEDSee below for issues. This is a comment from an EXPERIMENTAL automated CI system. Get source and apply patch from patchwork: SuccessfulBuilding Stage: SuccessfulBasic Tests: FailedUbuntu 16.04 deb pkg check: Successful Topotest tests on Ubuntu 16.04 i386: FailedTopology Test Results are at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-TOPOI386-2834/test Topology Tests failed for Topotest tests on Ubuntu 16.04 i386:
see full log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-2834/artifact/TOPOI386/ErrorLog/log_topotests.txt Topology Tests memory analysis: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-2834/artifact/TOPOI386/MemoryLeaks/CLANG Static Analyzer Summary
No Changes in Static Analysis warnings compared to base19 Static Analyzer issues remaining.See details at |
Continuous Integration Result: SUCCESSFULCongratulations, this patch passed basic tests Tested-by: NetDEF / OpenSourceRouting.org CI System CI System Testrun URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-2834/ This is a comment from an EXPERIMENTAL automated CI system. CLANG Static Analyzer Summary
No Changes in Static Analysis warnings compared to base19 Static Analyzer issues remaining.See details at |
Implement support for EVPN symmetric routing for IPv6 routes. The next hop
for EVPN routes is the IP address of the remote VTEP which is only an IPv4
address. This means that for IPv6 symmetric routing, there will be IPv6
destinations with IPv4 next hops. To make this work, the IPv4 next hops are
converted into IPv4-mapped IPv6 addresses.
As part of support, ensure that "L3" route-targets are not announced with
IPv6 link-local addresses so that they won't be installed in the routing
table.
Signed-off-by: Vivek Venkatraman vivek@cumulusnetworks.com
Reviewed-by: Mitesh Kanjariya mitesh@cumulusnetworks.com
Reviewed-by: Donald Sharp sharpd@cumulusnetworks.com