-
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
Srv6 default vrf #13309
base: master
Are you sure you want to change the base?
Srv6 default vrf #13309
Conversation
dcb4fd7
to
d278ee5
Compare
Continuous Integration Result: SUCCESSFULContinuous 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-PULLREQ2-10889/ This is a comment from an automated CI system. |
Continuous Integration Result: FAILEDContinuous Integration Result: FAILEDSee below for issues. This is a comment from an automated CI system. Get source / Pull Request: SuccessfulBuilding Stage: SuccessfulBasic Tests: FailedTopotests Ubuntu 18.04 amd64 part 9: Failed (click for details)Topology Test Results are at https://ci1.netdef.org/browse/FRR-PULLREQ2-TOPO9U18AMD64-10891/test Topology Tests failed for Topotests Ubuntu 18.04 amd64 part 9 Topotests Ubuntu 18.04 i386 part 9: Failed (click for details)Topology Test Results are at https://ci1.netdef.org/browse/FRR-PULLREQ2-TOPO9U18I386-10891/test Topology Tests failed for Topotests Ubuntu 18.04 i386 part 9 Topotests debian 10 amd64 part 9: Failed (click for details)Topology Test Results are at https://ci1.netdef.org/browse/FRR-PULLREQ2-TOPO9DEB10AMD64-10891/test Topology Tests failed for Topotests debian 10 amd64 part 9 Successful on other platforms/tests
|
d278ee5
to
a19cdcb
Compare
Continuous Integration Result: FAILEDContinuous Integration Result: FAILEDSee below for issues. This is a comment from an automated CI system. Get source / Pull Request: SuccessfulBuilding Stage: SuccessfulBasic Tests: FailedTopotests debian 10 amd64 part 9: Failed (click for details)Topology Test Results are at https://ci1.netdef.org/browse/FRR-PULLREQ2-TOPO9DEB10AMD64-10933/test Topology Tests failed for Topotests debian 10 amd64 part 9 Successful on other platforms/tests
|
ci:rerun |
Continuous Integration Result: FAILEDContinuous Integration Result: FAILEDSee below for issues. This is a comment from an automated CI system. Get source / Pull Request: SuccessfulBuilding Stage: SuccessfulBasic Tests: FailedTopotests Ubuntu 18.04 amd64 part 9: Failed (click for details)Topology Test Results are at https://ci1.netdef.org/browse/FRR-PULLREQ2-TOPO9U18AMD64-10938/test Topology Tests failed for Topotests Ubuntu 18.04 amd64 part 9 Successful on other platforms/tests
|
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.
looks good
ci errors in ospf setup ... don't seem related ... trying again |
Continuous Integration Result: SUCCESSFULContinuous 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-PULLREQ2-10950/ This is a comment from an automated CI system. |
Do you have any insight into why we were skipping the default VRF prior to these changes? It looks like these commits are just making it so that we no longer skip the default VRF - I don't see anything indicating why those checks were in place to begin with or whether this might tickle a known issue. I think we'll at least want a topotest that does validation before/after configuring + unconfiguring SRv6 export/import in the default VRF -- ideally testing that other tenant VRFs w/ SRv6 already configured aren't disrupted by any dependency on the default VRF that might now get exposed. |
I have no idea why default vrf was processed separately, though I intensively used it in L3VPN tests with MPLS. I just noticed this issue while playing with srv6.
I will do it later by appending changes to the |
a19cdcb
to
830c8f7
Compare
55660e7
to
ceb8c1a
Compare
Continuous Integration Result: FAILEDContinuous Integration Result: FAILEDSee below for issues. This is a comment from an automated CI system. Get source / Pull Request: SuccessfulBuilding Stage: SuccessfulBasic Tests: FailedTopotests debian 10 amd64 part 9: Failed (click for details)Topology Test Results are at https://ci1.netdef.org/browse/FRR-PULLREQ2-TOPO9DEB10AMD64-12064/test Topology Tests failed for Topotests debian 10 amd64 part 9 Successful on other platforms/tests
|
Continuous Integration Result: FAILEDContinuous Integration Result: FAILEDSee below for issues. This is a comment from an automated CI system. Get source / Pull Request: SuccessfulBuilding Stage: SuccessfulBasic Tests: FailedTopotests Ubuntu 18.04 amd64 part 6: Failed (click for details)Topology Test Results are at https://ci1.netdef.org/browse/FRR-PULLREQ2-TOPO6U18AMD64-12069/test Topology Tests failed for Topotests Ubuntu 18.04 amd64 part 6 Topotests debian 10 amd64 part 6: Failed (click for details)Topology Test Results are at https://ci1.netdef.org/browse/FRR-PULLREQ2-TOPO6DEB10AMD64-12069/test Topology Tests failed for Topotests debian 10 amd64 part 6 Topotests Ubuntu 18.04 arm8 part 6: Failed (click for details)Topotests Ubuntu 18.04 arm8 part 6: Unknown Log URL: https://ci1.netdef.org/browse/FRR-PULLREQ2-12069/artifact/TOPO6U18ARM8/TopotestDetails/ Topotests Ubuntu 18.04 arm8 part 6: No useful log foundTopotests Ubuntu 18.04 i386 part 6: Failed (click for details)Topology Test Results are at https://ci1.netdef.org/browse/FRR-PULLREQ2-TOPO6U18I386-12069/test Topology Tests failed for Topotests Ubuntu 18.04 i386 part 6 Successful on other platforms/tests
|
Continuous Integration Result: FAILEDContinuous Integration Result: FAILEDSee below for issues. This is a comment from an automated CI system. Get source / Pull Request: SuccessfulBuilding Stage: SuccessfulBasic Tests: FailedTopotests Ubuntu 18.04 amd64 part 6: Failed (click for details)Topology Test Results are at https://ci1.netdef.org/browse/FRR-PULLREQ2-TOPO6U18AMD64-12071/test Topology Tests failed for Topotests Ubuntu 18.04 amd64 part 6 Topotests Ubuntu 18.04 arm8 part 6: Failed (click for details)Topotests Ubuntu 18.04 arm8 part 6: Unknown Log URL: https://ci1.netdef.org/browse/FRR-PULLREQ2-12071/artifact/TOPO6U18ARM8/TopotestDetails/ Topotests Ubuntu 18.04 arm8 part 6: No useful log foundTopotests debian 10 amd64 part 6: Failed (click for details)Topology Test Results are at https://ci1.netdef.org/browse/FRR-PULLREQ2-TOPO6DEB10AMD64-12071/test Topology Tests failed for Topotests debian 10 amd64 part 6 Topotests Ubuntu 18.04 i386 part 6: Failed (click for details)Topology Test Results are at https://ci1.netdef.org/browse/FRR-PULLREQ2-TOPO6U18I386-12071/test Topology Tests failed for Topotests Ubuntu 18.04 i386 part 6 Successful on other platforms/tests
|
01e5c62
to
938d248
Compare
Continuous Integration Result: FAILEDContinuous Integration Result: FAILEDTest incomplete. See below for issues. This is a comment from an automated CI system. Get source / Pull Request: SuccessfulBuilding Stage: SuccessfulBasic Tests: IncompleteTopotests Ubuntu 18.04 i386 part 6: Failed (click for details)Topology Test Results are at https://ci1.netdef.org/browse/FRR-PULLREQ2-TOPO6U18I386-12111/test Topology Tests failed for Topotests Ubuntu 18.04 i386 part 6 Topotests Ubuntu 18.04 arm8 part 6: Failed (click for details)Topotests Ubuntu 18.04 arm8 part 6: Unknown Log URL: https://ci1.netdef.org/browse/FRR-PULLREQ2-12111/artifact/TOPO6U18ARM8/TopotestDetails/ Topotests Ubuntu 18.04 arm8 part 6: No useful log foundTopotests Ubuntu 18.04 i386 part 7: Failed (click for details)Topology Test Results are at https://ci1.netdef.org/browse/FRR-PULLREQ2-TOPO7U18I386-12111/test Topology Tests failed for Topotests Ubuntu 18.04 i386 part 7 Topotests debian 10 amd64 part 6: Failed (click for details)Topology Test Results are at https://ci1.netdef.org/browse/FRR-PULLREQ2-TOPO6DEB10AMD64-12111/test Topology Tests failed for Topotests debian 10 amd64 part 6 Topotests Ubuntu 18.04 amd64 part 0: Failed (click for details)Topology Test Results are at https://ci1.netdef.org/browse/FRR-PULLREQ2-TOPOU1804-12111/test Topology Tests failed for Topotests Ubuntu 18.04 amd64 part 0 Topotests Ubuntu 18.04 arm8 part 9: Failed (click for details)Topotests Ubuntu 18.04 arm8 part 9: Unknown Log URL: https://ci1.netdef.org/browse/FRR-PULLREQ2-12111/artifact/TOPO9U18ARM8/TopotestDetails/ Topotests Ubuntu 18.04 arm8 part 9: No useful log foundAddresssanitizer topotests part 8: Incomplete(check logs for details)Topotests Ubuntu 18.04 amd64 part 6: Failed (click for details)Topology Test Results are at https://ci1.netdef.org/browse/FRR-PULLREQ2-TOPO6U18AMD64-12111/test Topology Tests failed for Topotests Ubuntu 18.04 amd64 part 6 Successful on other platforms/tests
|
Continuous Integration Result: FAILEDContinuous Integration Result: FAILEDSee below for issues. This is a comment from an automated CI system. Get source / Pull Request: SuccessfulBuilding Stage: SuccessfulBasic Tests: FailedTopotests Ubuntu 18.04 i386 part 6: Failed (click for details)Topology Test Results are at https://ci1.netdef.org/browse/FRR-PULLREQ2-TOPO6U18I386-12112/test Topology Tests failed for Topotests Ubuntu 18.04 i386 part 6 Topotests Ubuntu 18.04 arm8 part 6: Failed (click for details)Topotests Ubuntu 18.04 arm8 part 6: Unknown Log URL: https://ci1.netdef.org/browse/FRR-PULLREQ2-12112/artifact/TOPO6U18ARM8/TopotestDetails/ Topotests Ubuntu 18.04 arm8 part 6: No useful log foundTopotests debian 10 amd64 part 6: Failed (click for details)Topology Test Results are at https://ci1.netdef.org/browse/FRR-PULLREQ2-TOPO6DEB10AMD64-12112/test Topology Tests failed for Topotests debian 10 amd64 part 6 Topotests Ubuntu 18.04 amd64 part 9: Failed (click for details)Topology Test Results are at https://ci1.netdef.org/browse/FRR-PULLREQ2-TOPO9U18AMD64-12112/test Topology Tests failed for Topotests Ubuntu 18.04 amd64 part 9 Topotests Ubuntu 18.04 amd64 part 6: Failed (click for details)Topology Test Results are at https://ci1.netdef.org/browse/FRR-PULLREQ2-TOPO6U18AMD64-12112/test Topology Tests failed for Topotests Ubuntu 18.04 amd64 part 6 Successful on other platforms/tests
|
938d248
to
a582200
Compare
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.
looks good
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
3f2b71f
to
9b06089
Compare
I'm not certain who has blocking changes on this one ... we should clear it up so we can get this fixed up and pushed ... |
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
@pguibert6WIND can you clear the conflicts? We still need to get the blocker cleared so this can go in ... |
@ton31337 can we get the blocker cleared on this? |
9b06089
to
9afe7d6
Compare
9afe7d6
to
6b82440
Compare
done |
Seems we have some crashes here. |
ci:rerun not reproduced locally |
rerunning just the failed test ... maybe this just needs to rebased to clear this problem? the version is pretty old at this point ... |
@Mergifyio rebase |
The 'vpn_leak_postchange_all()' comment indicates that the function is called only upon bgp instance creation. Since now, SRv6 calls it, let us update the comment. Fixes: a0281b2 ("bgpd: cli for srv6-locator assignment (step4)") Fixes: d79ff73 ("bgpd: handle srv6 locator notification and update vpn-rib") Fixes: 0249b8b ("bgpd: add no-cli for srv6 on bgpd-side") Signed-off-by: Philippe Guibert <[email protected]>
An L3VPN network can be configured on the main BGP instance, with an SRv6 SID. By declaring a network, the network is exported, and a VPNv6 update is created, but is not selected. The below BGP VPN configuration in the default VRF has been used: > router bgp 1 > segment-routing srv6 > locator loc1 > exit > ! > address-family ipv6 unicast > sid vpn export auto > rd vpn export 1:30 > rt vpn both 77:77 > import vpn > export vpn > network 2001:7::/64 > exit-address-family The below BGP VPNv6 update is created, but is not selected. Also, no SRv6 SID is allocated. > # show bgp ipv6 vpn > [..] > Network Next Hop Metric LocPrf Weight Path > Route Distinguisher: 1:30 > 2001:7::/64 ::@0< 0 32768 ? > # show bgp segment-routing srv6 > [..] > bgps: > - name: default > vpn_policy[AFI_IP].tovpn_sid: (null) > vpn_policy[AFI_IP6].tovpn_sid: (null) > per-vrf tovpn_sid: (null) > The SID in the main instance has not been updated, whereas in other BGP VRF instances, a SID is available. The update happens in the 'bgp_vpn_leak_postchange_all()' function. The main BGP instance is not parsed, so let us refresh the L3VPN updates of the default BGP instance too. This results in having a selected BGP VPNv6 update, with a SID. > # show bgp segment-routing srv6 > [..] > bgps: > - name: default > vpn_policy[AFI_IP].tovpn_sid: (null) > vpn_policy[AFI_IP6].tovpn_sid: 2001:db8:1:1:100:: > per-vrf tovpn_sid: (null) Fixes: 3bd70bf ("bgpd: fix NULL dereference in vrf-vpn leak config if before default instance") Signed-off-by: Philippe Guibert <[email protected]>
The BGP L3VPN code imports and exports IPv4/IPv6 prefixes from the BGP main instance and from the BGP VRF instances. However, in some scenarios, the BGP L3VPN routes may not be refreshed properly. The first change in the bgp_vpn_leak_unimport() function is related to unimporting route entries when deleting a BGP instance. The second change in the is_bgp_vrf_mplsvpn() function is is related to the visibility of the L3VPN MIB applied to the default VRF instance too. Fixes: ("9ecf931b13cf bgpd: no router bgp cleanup vrf leaked vpn routes") Fixes: 2fceba1 ("bgpd: add utility to check if a vrf is MPLS VPN") Signed-off-by: Philippe Guibert <[email protected]>
When unsetting the default srv6 locator of the main BGP instance, all the SIDs are unallocated, except the one from the main BGP instance. The below configuration uses a locator and request a SID for the main BGP instance: > router bgp 1 > segment-routing srv6 > locator loc1 > exit > ! > address-family ipv6 unicast > redistribute connected > sid vpn export auto > rd vpn export 1:30 > rt vpn both 77:77 > export vpn > import vpn > exit-address-family An SID is allocated for the prefixes imported from the ipv6 address family. But the SID is not unallocated, when unconfiguring the locator: > router bgp 1 > no segment-routing srv6 > do show bgp segment-routing srv6 > bgps: > - name: default > vpn_policy[AFI_IP].tovpn_sid: (null) > vpn_policy[AFI_IP6].tovpn_sid: 2001:db8:1:1:100:: > per-vrf tovpn_sid: (null) The default BGP instance is ignored when the locator is unconfigured. Add the default BGP instance to check if any SIDs should be unallocated or not. Fixes: 0249b8b ("bgpd: add no-cli for srv6 on bgpd-side") Signed-off-by: Philippe Guibert <[email protected]>
Avoid the crash provoked by bgp->name null pointer in snmp context. If bgp->name == NULL, replace it by "defalut" vrf name. Signed-off-by: Dmytro Shytyi <[email protected]>
When importing VPN updates in the default VRF, a crash happens when dumping the L3VPN MIB. To illustrate, the following crash log example is displayed: BGP[7301]: Received signal 11 at 1684255316 (si_addr 0x0, PC 0x7fa09b992b05); aborting... BGP[7301]: /lib/x86_64-linux-gnu/libfrr.so.0(zlog_backtrace_sigsafe+0xb3) [0x7fa09bbd93f2] BGP[7301]: /lib/x86_64-linux-gnu/libfrr.so.0(zlog_signal+0x1b4) [0x7fa09bbd9257] BGP[7301]: /lib/x86_64-linux-gnu/libfrr.so.0(+0x10568d) [0x7fa09bc1c68d] BGP[7301]: /lib/x86_64-linux-gnu/libc.so.6(+0x42520) [0x7fa09b837520] BGP[7301]: /lib/x86_64-linux-gnu/libc.so.6(+0x19db05) [0x7fa09b992b05] BGP[7301]: /usr/lib/x86_64-linux-gnu/frr/modules/bgpd_snmp.so(+0x62ff) [0x7fa09b5f42ff] BGP[7301]: /usr/lib/x86_64-linux-gnu/frr/modules/bgpd_snmp.so(+0x647c) [0x7fa09b5f447c] BGP[7301]: /usr/bin/bgpd(+0x1e1aab) [0x55b1ce417aab] BGP[7301]: /usr/bin/bgpd(+0x1e261b) [0x55b1ce41861b] BGP[7301]: /lib/x86_64-linux-gnu/libfrr.so.0(if_up_via_zapi+0x2c) [0x7fa09bbbe43c] BGP[7301]: /lib/x86_64-linux-gnu/libfrr.so.0(+0x13df63) [0x7fa09bc54f63] BGP[7301]: /lib/x86_64-linux-gnu/libfrr.so.0(+0x14267e) [0x7fa09bc5967e] BGP[7301]: /lib/x86_64-linux-gnu/libfrr.so.0(thread_call+0x1c2) [0x7fa09bc35fcc] BGP[7301]: /lib/x86_64-linux-gnu/libfrr.so.0(frr_run+0x257) [0x7fa09bbcd6e8] BGP[7301]: /usr/bin/bgpd(main+0x4f4) [0x55b1ce2ef98c] BGP[7301]: /lib/x86_64-linux-gnu/libc.so.6(+0x29d90) [0x7fa09b81ed90] BGP[7301]: /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x80) [0x7fa09b81ee40] BGP[7301]: /usr/bin/bgpd(_start+0x25) [0x55b1ce2edae5] BGP[7301]: in thread zclient_read scheduled from /build/make-pkg/output/_packages/cp-routing/src/lib/zclient.c:4397 zclient_event() The 'name' attribute of the BGP instance is attempted to be accessed, in multiple functions. Fix this by using the "default" vrf name, which is returned by the VRF_DEFAULT_NAME macro, wherever the default BGP instance may be used. Signed-off-by: Dmytro Shytyi <[email protected]> Signed-off-by: Philippe guibert <[email protected]>
When the default vrf is submitted, the returned interface may be the loopback interface, which may not be valid. Actually, on vrfs, the vrf interface is bypassed. When being on default vrf, the 'lo' interface should be bypassed too. Fix this by avoiding returning the lo interface too. Fixes: 0760a74 ("lib: add utility to get the next index in a vrf") Signed-off-by: Philippe Guibert <[email protected]>
There is no MPLS VPN test with default VRF. Add a test to ensure that the MPLS VPN MIB also works with the default VRF. An additional check is done to refine the real number of interfaces based on the presence or not of the gre0, gretap, and erspan interfaces. Signed-off-by: Philippe Guibert <[email protected]> Signed-off-by: Louis Scalbert <[email protected]>
✅ Branch has been successfully rebased |
6b82440
to
e6335d1
Compare
default VRF should also be able to import/export srv6 routes.
Do the necessary changes.