summaryrefslogtreecommitdiffstats
path: root/pimd/pim_msdp.h (unfollow)
Commit message (Collapse)AuthorFilesLines
10 dayspimd: remove temporary variables from MSDP peerRafael Zalamena3-23/+21
Remove from MSDP peer data structure two temporary variables that should only be used when calling library functions. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
11 daystests: PIM AutoRP tests expandedNathan Bahr6-220/+696
Now with a full AutoRP implementation, we can test AutoRP in a full network setup beginning with candidate RP announcements all the way through discovery and active RP selection. Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
11 dayspimd: Implement autorp mapping agentNathan Bahr3-420/+1218
Fully flushed out the AutoRP implementation now with the AutoRP mapping agent. This touched most of AutoRP in order to have common reuse of containers for each section of AutoRP operation (Candidate RP announcement, Mapping agent, Discovery). Many debugs had guards added and many more debug logs added. Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
11 dayspimd: Implement autorp mapping agent CLINathan Bahr5-175/+149
Also exposes BSR cand_addrsel methods for use in AutoRP. Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
11 dayspimd,yang: Add PIMD northbound/yang for AutoRP mapping agentNathan Bahr4-45/+425
Reuses the candidate selection logic from BSR configuration Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
11 daysbfdd: retain remote dplane client socketMark Stapp1-0/+3
When using bfd in remote-dataplane client mode, don't close a new client socket if we're going to try to use it. Signed-off-by: Mark Stapp <mjs@cisco.com>
12 daysbgpd: Disable sending ROV extended community by defaultDonatas Abraitis4-12/+5
https://datatracker.ietf.org/doc/html/rfc8097 defines ROV extended community, but https://datatracker.ietf.org/doc/draft-ietf-sidrops-avoid-rpki-state-in-bgp is against sending it by default even for iBGP peers. Let's do this practice and reverse it. Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
12 daysbgpd: Optimize the way parsing communities if no community alias existsDonatas Abraitis3-11/+30
If at least one community alias is configured, then let's do the work, otherwise we don't need to spend time on splitting stuff and creating a new string. This should improve the performance. Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
12 daystests: Add topotest for OSPF multi-instance default origination.Acee Lindem4-0/+478
This change adds a topotest to test various case of OSPF multi-instance origination including cases where the criteria route is from another instance of OSPF, as well as the same OSPF instance (where a default should not be originated). Signed-off-by: Acee Lindem <acee@lindem.com>
12 daysbgpd: Use int, not long long for route-map action in Lua scriptDonatas Abraitis1-2/+1
This is an issue for big-endian architectures, that causes incorrect castings. lua_tointegerp() uses int*, not long long*. Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
12 dayslib: Fix Lua script unit testDonatas Abraitis1-9/+10
When building for big-endian architectures, this is failing because of long long / int casting issues, let's use a separate integer to get the results. This is especially important when building the Docker images for multiple arches. Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
13 dayspim6d: fix coverity scan warningRafael Zalamena1-2/+6
Fix Coverity Scan CID 1601875: use the return value to tell user about the availability of a next hop to the learned RP (needs debug enabled). Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
13 daystools: Fix syntax raw parsing for make-foobar helperDonatas Abraitis1-1/+1
96 38.93 config.status: creating Makefile 96 39.48 /src/python/makefile.py:55: SyntaxWarning: invalid escape sequence '\s' 96 39.48 "^#\s*include.*_clippy.c", Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
14 daysospfd: OSPF multi-instance default origination fixesAcee Lindem6-21/+96
When originating a default AS-External LSA in one OSPF instance, it wasn't working if the criteria route was installed by another OSPF instance. This required more flexible processing of the OSPF external route information. Also fix problem multi-instance display for "show ip ospf <instance> database ...". Signed-off-by: Acee Lindem <acee@lindem.com>
14 daysbgpd: Optimize the outbound path if RFC8212 is appliedDonatas Abraitis1-21/+21
If we have (default enabled) enabled `bgp ebgp-require-policy`, then first check it before applying the route-maps. Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
14 dayssharpd: Use IPV6_MAX_BITLEN in `sharp send opaque notify`Carmine Scarpitta1-1/+1
Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
14 dayssharpd: Use IPV6_MAX_BITLEN in `sharp install seg6local-routes`Carmine Scarpitta1-1/+1
Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
14 dayssharpd: Fix typo in `sharp install seg6local-routes` help messageCarmine Scarpitta1-1/+1
Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
14 dayssharpd: Fix typo in `sharp install seg6-routes` help messageCarmine Scarpitta1-1/+1
Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
14 dayssharpd: Fix typo in `sharp install routes` help messageCarmine Scarpitta1-1/+1
Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2024-11-15bgpd: Validate both nexthop information (NEXTHOP and NLRI)Donatas Abraitis1-28/+22
If we receive an IPv6 prefix e.g.: 2001:db8:100::/64 with nextop: 0.0.0.0, and mp_nexthop: fc00::2, we should not treat this with an invalid nexthop because of 0.0.0.0. We MUST check for MP_REACH attribute also and decide later if we have at least one a valid nexthop. Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-11-15tests: Check if IPv6 prefix has a valid nexthop if multiple NLRIs existDonatas Abraitis5-0/+176
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-11-15bgpd : backpressure - Fix to pop items off zebra_announce FIFO for few EVPN ↵Rajasekar Raja2-13/+32
triggers In cases such as 'no advertise-all-vni' and L2 VNI DELETE, we need to pop all the VPN routes present in the bgp_zebra_announce FIFO yet to be processed regardless of VNI is configured or not. NOTE: NO need to pop the VPN routes in two cases 1) In free_vni_entry - Called by bgp_free()->bgp_evpn_cleanup(). - Since bgp_delete is called before bgp_free and we pop all the dest pertaining to bgp under delete. 2) evpn_delete_vni() when user configures "no vni" since the withdraw of all routes happen in normal cycle. Fixes: a07df6f7548f6bd1b92acbb7a10c3823de33fe5f ("bgpd : backpressure - Handle BGP-Zebra(EPVN) Install evt Creation") Ticket :#4163611 Signed-off-by: Rajasekar Raja <rajasekarr@nvidia.com>
2024-11-15bgpd: Use tmp_as when parsing color extended communityDonatas Abraitis1-1/+1
as is not initialized and it's assigned only later. CID: 1601739 Fixes: 937cf4d ("bgpd:support of color extended community color-only types") Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-11-15Revert "bgpd: Fix color extended community parsing"Donatas Abraitis1-0/+2
This reverts commit 8e771bda840e189eed2851f63ad80cb1a235f40f.
2024-11-15bgpd: Add more details to ebgp requires policy warningDonatas Abraitis1-4/+4
This will tell explicitly which peer does not have a filter applied. Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-11-14zebra: Put debug guards in zebra_vxlan.cDonald Sharp1-56/+60
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-11-14zebra: zebra_vxlan.c assert on dev escape problemDonald Sharp1-2/+1
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-11-14zebra: Missed debug guard in zebra_evpn.cDonald Sharp1-2/+3
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-11-14bgpd: Depracate no_synchronization_cmd, no_auto_summary_cmd commandsDonatas Abraitis1-0/+6
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-11-13zebra: fix unguarded debug in evpn codeMark Stapp1-1/+2
Guard a debug in the evpn code. Signed-off-by: Mark Stapp <mjs@cisco.com>
2024-11-13pimd: prevent invalid memory accessRafael Zalamena3-0/+11
Signalize termination to functions so they can avoid accessing pointers that might be no longer available. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2024-11-13pimd: fix check-patch warningRafael Zalamena1-2/+1
Remove unnecessary braces. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2024-11-13pim6d: fix channel oil leak on embedded RPRafael Zalamena1-0/+7
When a multicast route is created with embedded RP the channel oil never gets decremented when `clear ipv6 mroute` is called. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2024-11-13doc: document and explain PIM embedded RPRafael Zalamena1-0/+33
Let user know about PIM embedded RP configuration commands. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2024-11-13topotests: new embedded RP topology testRafael Zalamena5-0/+365
Test embedded RP features: - Embedded RP itself - Embedded RP group list filtering - Embedded RP limit Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2024-11-13pim6d: support embedded-rpRafael Zalamena15-2/+621
Implement embedded RP support and configuration commands. Embedded RP is disabled by default and can be globally enabled with the command `embedded-rp` in the PIMv6 configuration node. It supports the following options: - Embedded RP maximum limit - Embedded RP group filtering Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2024-11-13bgpd: Reduce the nesting level for show_adj_route()Donatas Abraitis1-58/+41
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-11-13bgpd: Show neighbor advertised paths including addpathDonatas Abraitis1-10/+23
Without the patch only the best path is displayed. With the patch, display all paths including addpaths, but only for non-JSON output to avoid breaking existing output. E.g.: ``` munet> r2 shi vtysh -c 'sh ip bgp nei 192.168.2.3 advertised-routes' Network Next Hop Metric LocPrf Weight Path *> 172.16.16.254/32 192.168.2.3 0 0 65003 ? * 172.16.16.254/32 192.168.2.4 0 0 65004 ? *> 192.168.2.0/24 192.168.2.3 0 0 65003 ? * 192.168.2.0/24 192.168.2.4 0 0 65004 ? ``` Before it was: ``` munet> r2 shi vtysh -c 'sh ip bgp nei 192.168.2.3 advertised-routes' Network Next Hop Metric LocPrf Weight Path *> 172.16.16.254/32 192.168.2.3 0 0 65003 ? *> 192.168.2.0/24 192.168.2.3 0 0 65003 ? ``` Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-11-13bgpd: Fix color extended community parsingDonatas Abraitis1-2/+0
CID: 1601739 Fixes: 937cf4db1738d768ed7dac8677d16f7585bb75de ("bgpd:support of color extended community color-only types") Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-11-13bfdd: disable echo socket when not using itRafael Zalamena2-48/+105
Lets avoid a performance penalty in forwarding when not using the BFD echo feature. The echo socket uses raw packet capturing along with a BPF filter which causes performance issues. While here change code to use `-1` for closed sockets instead of valid FD number `0`. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2024-11-12tests: add support for ospf instances with unified configsJafar Al-Gharaibeh5-61/+106
Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
2024-11-12isisd: properly display srv6 algorithmDmytro Shytyi1-1/+1
When the segment-routing ipv6 is configured, the SPF algoritm shows S-SPF is used: > rt1# show isis segment-routing srv6 node > Area 1: > IS-IS L1 SRv6-Nodes: > > System ID Algorithm SRH Max SL SRH Max End Pop SRH Max H.encaps SRH Max End D > ----------------------------------------------------------------------------------------- > 0000.0000.0001 S-SPF 3 3 2 5 Actually, the segment-routing ipv6 algo capabilities (SPF) are rewritten. Don't rewrite the algo[0]. > rt1# show isis segment-routing srv6 node > Area 1: > IS-IS L1 SRv6-Nodes: > > System ID Algorithm SRH Max SL SRH Max End Pop SRH Max H.encaps SRH Max End D > ----------------------------------------------------------------------------------------- > 0000.0000.0001 SPF 3 3 2 5 Fixes: ("78774bbcd51b") isisd: add isis flex-algo lsp advertisement Signed-off-by: Dmytro Shytyi <dmytro.shytyi@6wind.com>
2024-11-12tests: Check if BFD session is created with update-source (interface)Donatas Abraitis2-0/+15
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-11-12bgpd: Update source address for BFD sessionDonatas Abraitis1-4/+22
If BFD is down, we should try to detect the source automatically from the given interface. Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-11-11tests: Check if BGP BFD session is created correctly with multihop/update-sourceDonatas Abraitis3-0/+107
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-11-11bgpd: Do not try to uninstall BFD session if the peer is not establishedDonatas Abraitis1-5/+4
Having something like: ``` neighbor 192.168.1.222 ebgp-multihop 32 neighbor 192.168.1.222 update-source 192.168.1.5 neighbor 192.168.1.222 bfd ``` Won't work and the result is (empty): ``` $ show bfd peers BFD Peers: ``` bgp_stop() is called in BGP FSM multiple times (even at startup) that causes intermediate session interruption when update-source/ebgp-multihop is triggered. With this fix, the ordering does not matter and the BFD session's parameters are updated correctly. Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-11-11bgpd: Do not use an existing peer pointer for ALL_LIST_ELEMENTS()Donatas Abraitis1-26/+22
Use a separate `member` in this case. Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-11-11bgpd: fix resolvedPrefix in show nexthop json outputKrishnasamy R1-1/+1
While populating the nexthop info for "show bgp nexthop json", resolvedPrefix is added in parent json object instead of json_nexthop object. This results in displaying wrong resolvedPrefix for nexthops. Fixing the same by adding resolvedPrefix to json_nexthop object, so that the proper resolvedPrefix would be displayed for the respective nexthop Signed-off-by: Krishnasamy R <krishnasamyr@nvidia.com>
2024-11-09bgpd: Fix for match source-protocol in route-map for redistribute cmdRajasekar Raja2-2/+72
A redistribute cmd can have a route-map attached to it and adding the match source-protocol to that route-map means BGP to filter which protocol routes to accept among the bunch of routes zebra is sending. Fixing this since this wasnt implemented earlier. Ticket :#4119692 Signed-off-by: Donald Sharp <sharpd@nvidia.com> Signed-off-by: Rajasekar Raja <rajasekarr@nvidia.com>