summaryrefslogtreecommitdiffstats
path: root/lib/frrcu.c (unfollow)
Commit message (Collapse)AuthorFilesLines
9 hourstopotests: topology to test MSDP originator IDRafael Zalamena4-0/+224
Import new topology to test originator ID configuration. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
9 hourspimd: support originator id configurationRafael Zalamena8-20/+122
Allow user to specify the RP field for the SA messages. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
30 hourszebra: Remove tests for allocation failureDonald Sharp1-14/+4
This cannot happen. No need to test Signed-off-by: Donald Sharp <sharpd@nvidia.com>
30 hoursbgpd: Show which prefix is suppressed if debug out is enabledDonatas Abraitis1-1/+1
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
32 hourspimd: move all MSDP code to its own placeRafael Zalamena8-75/+54
Guard MSDP code to compile only on IPv4 and remove all MSDP code from PIMv6. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
32 hourspimd: move MSDP configuration and initializationRafael Zalamena3-19/+18
Reorganize the MSDP initialization code and configuration writing code to its appropriated place. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
32 hourspim6d: ignore more MSDP callbacksRafael Zalamena1-21/+33
PIMv6 does not implement MSDP, users should use PIMv6 embedded RP instead. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
36 hoursbgpd: bmp, add peer type and distinguisher support for stat messagesPhilippe Guibert1-2/+10
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
36 hoursbgpd, topotests: bmp, fix wrong peer distinguisher value for peer vrf up/downPhilippe Guibert2-2/+4
When running the bgp_bmp_2 vrf test, peer vrf up/down events from the pre and post policy are received with a wrong peer distinguisher value. > {"peer_type": "route distinguisher instance", "policy": "pre-policy", > "ipv6": true, "peer_ip": "192:168::2", "peer_distinguisher": "0:0", > "peer_asn": 65502, "peer_bgp_id": "192.168.0.2", "timestamp": > "2024-10-16 21:59:53.111962", "bmp_log_type": "peer up", "local_ip": > "192:168::1", "local_port": 179, "remote_port": 50836, "seq": 5} RFC7854 mentions in 4.2 that if the peer is a "RD Instance Peer", it is set to the route distinguisher of the particular instance the peer belongs to. Fix this by modifying the BMP client, update the peer distinguisher value by filling the peer distinguisher in the bmp_peerstate function. > {"peer_type": "route distinguisher instance", "policy": "pre-policy", > "ipv6": true, "peer_ip": "192:168::2", "peer_distinguisher": "444:1", > "peer_asn": 65502, "peer_bgp_id": "192.168.0.2", "timestamp": > "2024-10-16 21:59:53.111962", "bmp_log_type": "peer up", "local_ip": > "192:168::1", "local_port": 179, "remote_port": 50836, "seq": 5} Add a test to check that peer_distinguisher value is not 0:0 when an RD instance is set. Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
36 hoursbgpd, topotests: bmp, fix wrong peer type for peer up/down eventsPhilippe Guibert3-7/+5
When running the bgp_bmp_2 vrf test, peer up/down events from the pre and post policy are received with a wrong peer type value > {"peer_type": "global instance", "policy": "pre-policy", "ipv6": false, > "peer_ip": "192.168.0.2", "peer_distinguisher": "0:0", "peer_asn": 65502, > "peer_bgp_id": "192.168.0.2", "timestamp": "2024-10-16 21:59:53.111962", > "bmp_log_type": "peer up", "local_ip": "192.168.0.1", "local_port": 179, > "remote_port": 50710, "seq": 4} RFC7854 defines RD instance peer type, and later in 4.2 requests that the peer distinguisher value be set to non zero value when the peer type is not global. This is the case for peer vrf instances. Fix this by modifying the BMP client, update the peer type value by updating the peer type value when sending peer up/down messages. Add a check in the bgp_bmp_2 test to ensure that peer type is correctly set. > {"peer_type": "route distinguisher instance", "policy": "pre-policy", > "ipv6": true, "peer_ip": "192:168::2", "peer_distinguisher": "0:0", > "peer_asn": 65502, "peer_bgp_id": "192.168.0.2", "timestamp": > "2024-10-16 21:59:53.111962", "bmp_log_type": "peer up", "local_ip": > "192:168::1", "local_port": 179, "remote_port": 50836, "seq": 5} Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
36 hoursbgpd, topotests: bmp, fix wrong peer distinguisher for vrf route eventsPhilippe Guibert5-18/+26
When running the bgp_bmp_2 vrf test, peer route messages from the pre and post policy are received with a wrong peer distinguisher value. > {"peer_type": "route distinguisher instance", "policy": "pre-policy", "ipv6": false, > "peer_ip": "192.168.0.2", "peer_distinguisher": "0:0", "peer_asn": 65502, > "peer_bgp_id": "192.168.0.2", "timestamp": "2024-10-31 08:19:58.111963", > "bmp_log_type": "update", "origin": "IGP", "as_path": "65501 65502", > "bgp_nexthop": "192.168.0.2", "ip_prefix": "172.31.0.15/32", "seq": 15} RFC7854 mentions in 4.2 that if the peer is a "RD Instance Peer", it is set to the route distinguisher of the particular instance the peer belongs to. Fix this by modifying the BMP client: - update the peer distinguisher value by unlocking the filling of the peer distinguisher in the function. This change impacts monitoring messages. - add the peer distinguisher computation for mirror messages - modify the bgp_bmp_2 vrf test, update the peer_distinguisher value > {"peer_type": "route distinguisher instance", "policy": "pre-policy", "ipv6": false, > "peer_ip": "192.168.0.2", "peer_distinguisher": "444:1", "peer_asn": 65502, > "peer_bgp_id": "192.168.0.2", "timestamp": "2024-10-31 08:19:58.111963", > "bmp_log_type": "update", "origin": "IGP", "as_path": "65501 65502", > "bgp_nexthop": "192.168.0.2", "ip_prefix": "172.31.0.15/32", "seq": 15} Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
36 hoursbgpd, topotests: bmp, fix wrong peer type for vrf route messagesPhilippe Guibert5-32/+38
When running the bgp_bmp_2 vrf test, peer route messages from the pre and post policy are received with a wrong peer type value > {"peer_type": "global instance", "policy": "pre-policy", "ipv6": false, > "peer_ip": "192.168.0.2", "peer_distinguisher": "0:0", "peer_asn": 65502, > "peer_bgp_id": "192.168.0.2", "timestamp": "2024-10-31 08:19:58.111963", > "bmp_log_type": "update", "origin": "IGP", "as_path": "65501 65502", > "bgp_nexthop": "192.168.0.2", "ip_prefix": "172.31.0.15/32", "seq": 15} In addition to global instance peers, RFC7854 defines RD instance peers. This value can be used for peers which are on a BGP VRF instance, for example with an L3VPN setup. When configuring a BGP VRF instance, the peer type should be seen as an RD instance peer. Fix this by modifying the BMP client: - update the peer type for vrf mirror and monitoring messages - modify bgp_bmp_2 vrf test to control the peer_type value > {"peer_type": "route distinguisher instance", "policy": "pre-policy", "ipv6": false, > "peer_ip": "192.168.0.2", "peer_distinguisher": "0:0", "peer_asn": 65502, > "peer_bgp_id": "192.168.0.2", "timestamp": "2024-10-31 08:19:58.111963", > "bmp_log_type": "update", "origin": "IGP", "as_path": "65501 65502", > "bgp_nexthop": "192.168.0.2", "ip_prefix": "172.31.0.15/32", "seq": 15} Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
36 hoursbgpd: bmp, add peer distinguisher support for peer up/downPhilippe Guibert1-19/+28
All BMP peer up/down messages send a 0:0 peer distinguisher. This will not be ok when adding RD instance type. Add code to get the peer distinguisher value. - modify the API to pass the BGP instance instead of BMP. - implement error cases with an unknown vrf identifier or a peer type with local type value. - handle the error return of the API; consequently, handle the bmp_peerstate() error return in the calling functions. There is no functional change, as the peer type value is either loc-rib or global, both cases are already handled. The next commit will handle the RD instance case. Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
36 hoursbgpd: modify bmp_get_peer_distinguisher to support AFI_UNSPECPhilippe Guibert1-4/+11
If a given L3VRF instance requests a peer distinguisher for a peer up/down message, the AFI_UNSPEC afi parameter will be used; no RD is chosen for this AFI. Fix this by priorizing the AFI_IP value before the AFI_IP6 value. For instance, a router with both RD set for each address-family, peer up/down messages will be sent with the RD set to the one for AFI_IP. Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
36 hourstopotests: bgp_bmp, expose peer_distinguisher in loc-ribPhilippe Guibert4-12/+6
The BMP implementation currently only supports global and loc-rib instance types. When loc-rib is selected, the peer_distinguisher is set to the route distinguisher of the L3VRF where the BGP instance is. This functionality has not been tested until now, because the peer distinguisher value had been explicitly omitted in the bmp messages. Expose the peer distinguisher value in all BMP messages received. This change requires to modify the expected output for loc-rib when the BGP instance is in a L3VRF. The handling of peer distinguisher value for RD instances will follow in the next commits. Link: https://www.rfc-editor.org/rfc/rfc7854.html#section-4.2 Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
36 hoursbgpd, topotests: fix wrong peer type for loc-rib peer eventsPhilippe Guibert1-3/+4
When running the bgp_bmp test, peer_up message from the loc-rib are received with a wrong peer type. > {"peer_type": "global instance", "policy": "pre-policy", "ipv6": false, "peer_ip": "0.0.0.0", > "peer_distinguisher": "0:0", "peer_asn": 0, "peer_bgp_id": "0.0.0.0", > "timestamp": "2024-10-16 21:59:53.111963", "bmp_log_type": "peer up", "local_ip": "0.0.0.0", > "local_port": 0, "remote_port": 0, "seq": 1} RFC9069 mentions in 5.1 that peer address must be set to 0.0.0.0, and the peer_type value must be set to 3. Today, the value set is 0 (global instance). This is wrong. Fix this by modifying the BMP client, update the peer type value to loc-rib on peer up messages. Modify the current BMP test, by checking the peer up messages for the 0.0.0.0 IP address (which is the value used for loc-rib). > {"peer_type": "loc-rib instance", "is_filtered": false, "policy": "loc-rib", > "peer_distinguisher": "0:0", "peer_asn": 65501, "peer_bgp_id": "192.168.0.1", > "timestamp": "2024-10-16 21:59:53.111963", "bmp_log_type": "peer up", "local_ip": "0.0.0.0", > "local_port": 0, "remote_port": 0, "seq": 1} Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2 daysbgpd: Fix bgp core with a possible Intf deleteRajasekar Raja1-3/+4
Although trigger unknown, based on the backtrace in one of the internal testing, we do see some delete in the Intf where we can have the peer ifp pointer null and we try to dereference it while trying to install the route leading to a crash Skip updating the ifindex in such cases and since the nexthop is not properly updated, BGP skips sending it to zebra. BackTrace: 0 0x00007faef05e7ebc in ?? () from /lib/x86_64-linux-gnu/libc.so.6 1 0x00007faef0598fb2 in raise () from /lib/x86_64-linux-gnu/libc.so.6 2 0x00007faef09900dc in core_handler (signo=11, siginfo=0x7ffdde8cb4b0, context=<optimized out>) at lib/sigevent.c:274 3 <signal handler called> 4 0x00005560aad4b7d8 in update_ipv6nh_for_route_install (api_nh=0x7ffdde8cbe94, is_evpn=false, best_pi=0x5560b21187d0, pi=0x5560b21187d0, ifindex=0, nexthop=0x5560b03cb0dc, nh_bgp=0x5560ace04df0, nh_othervrf=0) at bgpd/bgp_zebra.c:1273 5 bgp_zebra_announce_actual (dest=dest@entry=0x5560afcfa950, info=0x5560b21187d0, bgp=0x5560ace04df0) at bgpd/bgp_zebra.c:1521 6 0x00005560aad4bc85 in bgp_handle_route_announcements_to_zebra (e=<optimized out>) at bgpd/bgp_zebra.c:1896 7 0x00007faef09a1c0d in thread_call (thread=thread@entry=0x7ffdde8d7580) at lib/thread.c:2008 8 0x00007faef095a598 in frr_run (master=0x5560ac7e5190) at lib/libfrr.c:1223 9 0x00005560aac65db6 in main (argc=<optimized out>, argv=<optimized out>) at bgpd/bgp_main.c:557 (gdb) f 4 4 0x00005560aad4b7d8 in update_ipv6nh_for_route_install (api_nh=0x7ffdde8cbe94, is_evpn=false, best_pi=0x5560b21187d0, pi=0x5560b21187d0, ifindex=0, nexthop=0x5560b03cb0dc, nh_bgp=0x5560ace04df0, nh_othervrf=0) at bgpd/bgp_zebra.c:1273 1273 in bgpd/bgp_zebra.c (gdb) p pi->peer->ifp $26 = (struct interface *) 0x0 Ticket :#4203904 Signed-off-by: Rajasekar Raja <rajasekarr@nvidia.com>
3 daysbgpd: copy asn of src vrf to evpn type5 routeChirag Shah1-1/+10
When a unicast route from source vrf is imported into evpn as type5 route, prepend the asn of the source vrf into type5 asn path list. The condition of evpn type5 prefix path info is present but source vrf route has been cleared via clear command. In this case existing path info needs to rewrite the source vrf asn. prepends asn of the source vrf, but the further condition for existing path attribute for the same route needs to prepend source vrf asn. Ticket: #2943080 Testing: Before fix: r4# clear ip bgp vrf overlay prefix 0.0.0.0/0 Route Distinguisher: 128.117.243.209:4 *> [5]:[0]:[0]:[0.0.0.0] 203.0.113.1 0 0 194 ? <--- 64512 is missing ET:8 RT:64532:104001 Rmac:06:ec:bf:59:e8:93 After fix: r4# clear ip bgp vrf overlay prefix 0.0.0.0/0 Route's source vrf bgp output containing ASN 64512: r4# show bgp vrf overlay BGP table version is 2, local router ID is 128.117.243.209, vrf id 10 Default local pref 100, local AS 64512 ... Notice after clear command source vrf asn 64512 is retained. Route Distinguisher: 128.117.243.209:4 *> [5]:[0]:[0]:[0.0.0.0] 203.0.113.1 0 0 64512 194 ? ET:8 RT:64532:104001 Rmac:06:ec:bf:59:e8:93 Signed-off-by: Chirag Shah <chirag@nvidia.com>
3 daysbgpd: only import specific route-types into EVIsTrey Aspelund1-17/+17
Prior to this we were only filtering EVPN routes from the import logic if they were not route-type 1/2/3/5, which allowed things like RT-5s to be imported into an L2VNI/MAC-VRF. This adds additional logic to ensure routes are only imported into EVIs where they make sense. No more nonsensical route importing! Ticket: 2848204 Signed-off-by: Trey Aspelund <taspelund@nvidia.com>
3 dayszebra: Fix another ships in the night issue with WFIDonald Sharp1-0/+21
Effectively When bgp would send a route update down to zebra and immediately after that a asic update from the kernel was read. Zebra would choose the asic update and drop the bgp update leaving us in a state where bgp was not used as the true source. Modify the code so that in rib_multipath_nhe we notice that we have an unprocessed route update from bgp. And if so just drop this kernel update about an older version of the route since it is no longer needed. Ticket: 2722533 Signed-off-by: Donald Sharp <sharpd@nvidia.com>
3 dayswatchfrr: increase restart timer 20s -> 90sQuentin Young1-1/+1
This commit: "tools: run `vtysh -b` once for all-startup" changed things so that `vtysh -b` is run after all daemons have started up instead of doing it for each daemon as they are started up. This results in one long `vtysh -b`, which for large configs and many daemons (in the case I saw, 4 daemons and 30,000 line config) can exceed the 20 second timer watchfrr uses to kill "hung" background tasks. Shouldn't be any harm to increasing this to 90 seconds to give us some leeway while still making sure we kill anything truly misbehaving. Signed-off-by: Quentin Young <qlyoung@nvidia.com>
3 dayspbrd: fix vrf_unchanged which may depend on other seqsWesley Coakley1-0/+8
Ticket: 2740911 Signed-off-by: Wesley Coakley <wcoakley@nvidia.com>
3 dayspimd: skip init of mlag roles based on the zebra capabilities messageAnuradha Karuppiah1-1/+0
Looks like the cap setting was added for testing mlag via zebra test cli to config the mlag role. However it is interfering with the valid state updates rxed from the MLAG daemon based on timing (in some cases the MLAG state changes are rxed before the capabilities). Reference logs - >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> root@TORC11:mgmt:/home/cumulus# grep -ri "my_role\|MlagRole" /var/log/frr/bgpd.log 2021/06/18 13:26:40.380130 PIM: pim_mlag_process_mlagd_state_change: msg dump: my_role: SECONDARY, peer_state: DOWN 2021/06/18 13:26:40.380766 PIM: pim_mlag_process_mlagd_state_change: msg dump: my_role: SECONDARY, peer_state: DOWN 2021/06/18 13:26:41.382258 PIM: pim_mlag_process_mlagd_state_change: msg dump: my_role: SECONDARY, peer_state: RUNNING 2021/06/18 13:26:41.382379 PIM: pim_mlag_process_mlagd_state_change: msg dump: my_role: PRIMARY, peer_state: RUNNING 2021/06/18 13:26:52.386071 ZEBRA: Sending capabilities to client pim: MPLS enabled numMultipath 128 GR disabled MaintMode off MlagRole 0 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Ticket: #2691629 Signed-off-by: Anuradha Karuppiah <anuradhak@nvidia.com>
3 dayszebra: Reduce memory usage of streams for encoding packetsDonald Sharp4-23/+21
For those packets that we are not sending 16k of data, but something far less than 256 bytes. Reduce those stream sizes we allocate to something much more reasonable. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
3 daysbgpd: Check L3VNI status before announcing defaultvivek1-1/+3
Check that the L3VNI is "up" before taking action to announce or withdraw the EVPN type-5 default based on configuration. Otherwise, there can be timing conditions where a EVPN type-5 default route gets announced without a VNI and with invalid route targets. Signed-off-by: Vivek Venkatraman <vivek@nvidia.com> Ticket: #2684144 Reviewed By: Chirag Shah Testing Done: 1. Rerun failed test multiple times successfully 2. Some manual testing 3. precommit and partial evpn-smoke
3 dayszebra: Reset MAC's remote sequence number appropriatelyvivek2-0/+3
When a MAC gets deleted but associated neighbors remain, the MAC is kept in the zebra MAC database as an internal ("auto") entry. When this happens, reset the MAC's remote sequence number. This ensures that when the host with the MAC later comes up behind a remote VTEP, the local switch accepts the MAC and installs it into the bridge FDB and we don't end up in a situation where remote MACs are not installed into the bridge FDB. This fix is a corollary of CM-22753 and is this time done for local MACs upon delete. Note: Commit is marked Cumulus-only because I need to evalute more comprehensive changes before upstreaming it. Ticket: CM-29581 Reviewed By: As above Testing Done: 1. Multiple rounds of manual testing 2. Two rounds of evpn-smoke, 1 round of precommit Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com> Acked-by: Chirag Shah <chirag@cumulusnetworks.com> Acked-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
4 daysbgpd: Print the actual prefix when we try to import in vpn_leak_to_vrf_updateDonatas Abraitis1-1/+2
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
4 daysbgpd: Import allowed routes with self AS if desiredDonatas Abraitis1-1/+5
Previously we couldn't install VPN routes with self AS in the path because we never checked if we have allowas-in enabled, or not. Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
4 daystests: Check if vpn routes can be imported if allowas-in is setDonatas Abraitis4-0/+205
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
5 dayszebra: add deprecation notice for no-op netns commandIgor Ryzhov1-0/+3
Signed-off-by: Igor Ryzhov <idryzhov@gmail.com>
5 daysdoc: remove no-op "netns NAMESPACE" command from the docsIgor Ryzhov1-10/+0
Signed-off-by: Igor Ryzhov <idryzhov@gmail.com>
6 dayspimd: Convert boundary_oil_plist to struct prefix_listCorey Siltala6-21/+21
Rather than storing the prefix-list name and looking it up every time we use it, store a pointer to the prefix-list itself. Signed-off-by: Corey Siltala <csiltala@atcorp.com>
6 daysdoc: Expand ACL and multicast boundary documentationCorey Siltala2-8/+65
Add documentation for existing extended access-list functionality and the new "ip multicast boundary" command leveraging that functionality. Signed-off-by: Corey Siltala <csiltala@atcorp.com>
6 daystests: Add basic multicast boundary testCorey Siltala5-0/+616
Add simple test to show filtering of IGMP joins using new "ip multicast boundary" filtering with access-lists, include test of existing prefix- list based "ip multicast boundary oil" command. Signed-off-by: Corey Siltala <csiltala@atcorp.com>
6 dayspimd,yang: Extend multicast boundary functionalityCorey Siltala15-33/+184
Add new interface command ip multicast boundary ACCESSLIST4_NAME. This allows filtering on both source and group using the extended access-list syntax vs. group-only as with the existing "ip multicast boundary oil" command, which uses prefix-lists. If both are configured, the prefix- list is evaluated first. The default behavior for both prefix-lists and access-lists remains "deny", so the prefix-list must have a terminating "permit" statement in order to also evaluate against the access-list. The following example denies groups in range 229.1.1.0/24 and groups in range 232.1.1.0/24 with source 10.0.20.2: ! ip prefix-list pim-oil-plist seq 10 deny 229.1.1.0/24 ip prefix-list pim-oil-plist seq 20 permit any ! access-list pim-acl seq 10 deny ip host 10.0.20.2 232.1.1.0 0.0.0.255 access-list pim-acl seq 20 permit ip any any ! interface r1-eth0 ip address 10.0.20.1/24 ip igmp ip pim ip multicast boundary oil pim-oil-plist ip multicast boundary pim-acl ! Signed-off-by: Corey Siltala <csiltala@atcorp.com>
6 dayspimd: Move ACL handling to pim_util.cCorey Siltala3-49/+46
Move the extended access-list handling from pim_msdp_packet.c to pim_util.c to allow use elsewhere in the daemon. Signed-off-by: Corey Siltala <csiltala@atcorp.com>
7 daysbgpd: Check if as_type is not specified when peer is a peer-group memberDonatas Abraitis1-2/+1
Fixes this sequences: ``` neighbor pg4 peer-group neighbor 127.0.0.4 peer-group pg4 neighbor 127.0.0.4 remote-as 65004 neighbor pg5 peer-group neighbor 127.0.0.5 peer-group pg5 neighbor 127.0.0.5 remote-as internal ``` Fixes: 0dfe256 ("bgpd: Implement neighbor X remote-as auto") Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
7 daystests: Fix invalid escape seq seen in bgp_nexthop_ipv6Donald Sharp1-1/+1
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
7 daystests: Convert to using `neighbor X timers connect 1` for exabgp using testsDonald Sharp25-7/+71
For those tests using exabgp convert them all to use `neighbor X timers connect 1`. I have noticed that occassionally when looking at the support files for tests run that peers are in a wait period for reconnecting which is longer than the test is waiting to converge. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
7 daysbgpd: When bgp notices a change to shared_network inform bfd of itDonald Sharp1-0/+4
When bgp is started up and reads the config in *before* it has received interface addresses from zebra, shared_network can be set to false in this case. Later on once bgp attempts to reconnect it will refigure out the shared_network again( because it has received the data from zebra now ). In this case tell bfd about it. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
7 daysbgpd: shared_network is a bool, convert it to suchDonald Sharp2-5/+5
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
7 daystests: bfd_profiles_topo1 is taking a long time to reconnectDonald Sharp3-0/+4
Make it faster Signed-off-by: Donald Sharp <sharpd@nvidia.com>
7 daystopotests: bmp, test that loc-rib peer up message is sentPhilippe Guibert3-7/+12
Add a test at startup to ensure that peer up message for loc-rib is correctly set. Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
7 daysbgpd: fix peer up message for loc-rib not sentPhilippe Guibert1-5/+9
At startup, there is no peer up message for loc-rib instance peer. Instead, a global peer up message with address 0.0.0.0 is sent. Such message is wrong, violates the RFC and should be dropped by a strict collector. Actually, the peer type message sent is wrong, and should be set to LOC-RIB peer type. Fix this by changing the peer type of peer up message to either loc-rib or global instance peer type. Fixes: 035304c25a38 ("bgpd: bmp loc-rib peer up/down for vrfs") Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
7 daysdoc: document new SA limit commandRafael Zalamena1-0/+4
Let user know about the new MSDP SA limit command. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
7 daystopotests: test new MSDP SA limit featureRafael Zalamena1-0/+36
Test that only the limit amount of SAs is learned from the peer. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
7 dayspimd: implement MSDP peer SA limitingRafael Zalamena4-2/+41
Implement a command to enable/disable per peer MSDP SA limiting. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
7 daysyang,pimd: support shutdown and SA limitRafael Zalamena4-0/+57
Add MSDP shutdown and SA limiting configuration to YANG model. (no implementation, just boiler plate code) Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
7 dayszebra: use macro for one checkanlan_cs1-3/+1
Signed-off-by: anlan_cs <anlan_cs@126.com>
8 dayslib: Speed up reconnection attempts for zapiDonald Sharp1-4/+9
Currently the zapi reconnection is once every 10 seconds for the first 3 times and then once every 60 seconds from then on out. We are seeing interesting behavior under loaded systems where zebra is just slow to come up and daemons are spending a long time waiting to connect. Let's just make things a bit more aggressive. Change the code to attempt to reconnect once every second for 30 seconds and then change to once every 5 seconds from then on out. This should help with non-integrated configuration on system startup. Signed-off-by: Donald Sharp <sharpd@nvidia.com>