Commit Graph

37856 Commits

Author SHA1 Message Date
Louis Scalbert
dee3fd6f1b bgpd: fix bfd with update-source in peer-group
Fix BFD session not created when the peer is in update-group with the
update-source option.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2025-01-22 17:55:55 +01:00
Louis Scalbert
cb4846c057 tests: check bfd with update-source in peer-group
Check bfd with update-source in peer-group.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2025-01-22 17:55:55 +01:00
Donatas Abraitis
c6c570a7e6
Merge pull request #17899 from chiragshah6/evpn_dev1
bgpd: fix evpn path info get api
2025-01-22 10:23:44 +02:00
Donatas Abraitis
2991b39128
Merge pull request #17889 from louis-6wind/fix-rpki-table-version
tests: remove table version check in bgp rpki topo1
2025-01-22 07:06:25 +02:00
Donatas Abraitis
498bfbe60b
Merge pull request #17894 from pguibert6WIND/bmp_send_peerx_twice
bgpd: fix do not send twice peer up/down messages
2025-01-22 07:03:58 +02:00
Chirag Shah
c358b92c9f bgpd: fix evpn path info get api
EVPN imported routes AF is not AF_EVPN, in that case
the path info extra with EVPN is nver created.
In order to create evpn info under path extra, define
new api which does not specifically check for AF_EVPN
afi type.

Signed-off-by: Chirag Shah <chirag@nvidia.com>
2025-01-21 15:17:20 -08:00
Donald Sharp
6c7de02802
Merge pull request #17895 from LabNConsulting/chopps/fix-coverity-use-after-free
lib: fix coverity use after free issue: CID 1620101
2025-01-21 14:09:41 -05:00
Jafar Al-Gharaibeh
46a1a76783
Merge pull request #17793 from LabNConsulting/working/lb/fix-r8-rpms
Fix Rocky 8 RPMs, add options to build without rpki and docs (default is to include)
2025-01-21 10:32:32 -06:00
Christian Hopps
fb5a71fa95 lib: fix coverity use after free issue: CID 1620101
The code doesn't push more than one group (currently) so wouldn't hit the
bug yet, nice catch by coverity.

Signed-off-by: Christian Hopps <chopps@labn.net>
2025-01-21 16:27:44 +00:00
Philippe Guibert
b002757c26 bgpd: fix do not send twice peer up/down messages
With recent BMP code, on a standard BMP config, the peer up and peer
down messages related to a BGP peer are sent twice, whereas they should
be send only once.

Fix this by better controlling the condition.

Fixes: f8a6933111 ("bgpd: bmp, handle imported bgp instances for peer up/down events")
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2025-01-21 16:01:10 +01:00
Donatas Abraitis
97b7875963
Merge pull request #17888 from krishna-samy/bgpd_mac_hash
bgpd: Fix for local interface MAC cache issue in 'bgp mac hash' table
2025-01-21 16:29:32 +02:00
Donatas Abraitis
5f231287a3
Merge pull request #16723 from jklaiber/fix-reload-interface-deletion
tools: fix reload interface deletion
2025-01-21 16:28:28 +02:00
Louis Scalbert
519c3b5c48 tests: remove table version check in bgp rpki topo1
Remove table version check in bgp rpki topo1.

Fixes: 5f50b98f8e ("tests: add bgp rpki topo1 rpkiValidationState")
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2025-01-21 11:18:32 +01:00
Krishnasamy R
016528364e bgpd: Fix for local interface MAC cache issue in 'bgp mac hash' table
Issue:
During FRR restart, we fail to add some of the local interface's MAC
to the 'bgp mac hash'. Not having local MAC in the hash table can cause
lookup issues while receiving EVPN RT-2.

Currently, we have code to add local MAC(bgp_mac_add_mac_entry) while handling
interface add/up events in BGP(bgp_ifp_up/bgp_ifp_create). But the code
'bgp_mac_add_mac_entry' in bgp_ifp_create is not getting invoked as it
is placed under a specific check(vrf->bgp link check).

Fix:
We can skip this check 'vrf->bgp link existence' as the tenant VRF might
not have BGP instance but still we want to cache the tenant VRF local
MACs. So keeping this check in bgp_ifp_create inline with bgp_ifp_up.

Ticket: #4204154

Signed-off-by: Krishnasamy R <krishnasamyr@nvidia.com>
2025-01-21 01:22:20 -08:00
Jafar Al-Gharaibeh
4f65107d20
Merge pull request #17883 from opensourcerouting/fix/topotest_dynamic_cap_enhe
tests: Fix test_bgp_dynamic_capability_enhe topotest
2025-01-20 13:31:47 -06:00
Jafar Al-Gharaibeh
b2d62e50f1
Merge pull request #17882 from LabNConsulting/chopps/doc-update-mgmtd
small mgmtd-dev doc update and yanglint cleanup
2025-01-20 13:29:37 -06:00
Donatas Abraitis
00eb5cccad
Merge pull request #17874 from pguibert6WIND/bgp_unnumbered_interface_json
Bgp unnumbered interface json
2025-01-20 17:35:26 +02:00
Donatas Abraitis
42b10da079
Merge pull request #17885 from LabNConsulting/chopps/fix-gen-cb-regression
tools: fix regression in gen_northbound_callback tool
2025-01-20 14:26:13 +02:00
Philippe Guibert
50928a93c6 topotests: bgp_ipv6_rtadv, add control over bgp updates
Add a test to control the json values of the incoming BGP update
received by an unnumbered BGP.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2025-01-20 09:32:28 +01:00
Philippe Guibert
0bf47adc64 bgpd: fix display json value of interface for BGP unnumbered
The 'show bgp ipv[4,6] json' command does not display the interface
value of the nexthop, when BGP sessions are unnumbered, whereas the
non json output displays it correctly. The below example indicates
'r1-eth0' wheras in json, the value is not displayed.

> r1# show bgp ipv4
> BGP table version is 3, local router ID is 10.254.254.1, vrf id 0
> Default local pref 100, local AS 101
> Status codes:  s suppressed, d damped, h history, u unsorted, * valid, > best, = multipath,
>                i internal, r RIB-failure, S Stale, R Removed
> Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
> Origin codes:  i - IGP, e - EGP, ? - incomplete
> RPKI validation codes: V valid, I invalid, N Not found
>
>      Network          Next Hop            Metric LocPrf Weight Path
>  *>  10.254.254.1/32  0.0.0.0                  0         32768 ?
>  *>  10.254.254.2/32  r1-eth0                  0             0 102 ?
>
> Displayed 2 routes and 2 total paths

Fix this by adding an 'interface' keyword in the json attributes.

> "nexthops":[{"ip":"2001:db8:1::2","hostname":"r2","afi":"ipv6",
> "scope":"global"},{"interface":"r1-eth0","ip":"fe80::1868:d7ff:fe66:45ae",
> "hostname":"r2","afi":"ipv6","scope":"link-local","used":true}]}]

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2025-01-20 09:32:28 +01:00
Philippe Guibert
084ebc9473
Merge pull request #16894 from wenwang00/project-phoenixwing-ysj
staticd: Add support for SRv6 Static SIDs
2025-01-20 09:20:15 +01:00
Donatas Abraitis
9792795108
Merge pull request #17884 from LabNConsulting/chopps/fix-dnode-create
lib: fix dnode_create to use correct libyang function.
2025-01-20 09:14:59 +02:00
Christian Hopps
2e0387c97b tools: fix regression in gen_northbound_callback tool
When support for new style `get()` was added inadvertently stopped
generating other callbacks and prototypes. Fix this.

Signed-off-by: Christian Hopps <chopps@labn.net>
2025-01-20 06:01:59 +00:00
Christian Hopps
60666745a8 lib: fix dnode_create to use correct libyang function.
The previous use of `lyd_new_path()` returns the first node created, rather
than the xpath target node. The code is lucky in the sense that it is
normally only creating a single node rather than a branch. Fix this to
use `lyd_new_path2()` which returns the target node to actually implement
the semantics expected by callers of `dnode_create()` (i.e., returning the
newly created target node).

Signed-off-by: Christian Hopps <chopps@labn.net>
2025-01-18 23:39:32 +00:00
Donatas Abraitis
3b6dcf03fb tests: Fix test_bgp_dynamic_capability_enhe topotest
Drop redundant function (duplicate), and reset counters for r2 instead of r1.

We check received capabilities on r2, hence we need to flush the counters on r2 too.

Fixes: d1cfd73060 ("tests: Check if ENHE capability can be handled dynamically")

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2025-01-18 23:07:37 +02:00
Donald Sharp
3c3b559706
Merge pull request #17876 from LabNConsulting/chopps/backend-ds-notify
Handle datastore notifications correctly in backend clients (daemons)
2025-01-18 14:42:18 -05:00
Christian Hopps
aa8212d695 doc: add misplaced doc change for mgmtd development
Signed-off-by: Christian Hopps <chopps@labn.net>
2025-01-18 18:18:04 +00:00
Christian Hopps
885c5c496c yang: lint cleanup of test module
Signed-off-by: Christian Hopps <chopps@labn.net>
2025-01-18 18:18:04 +00:00
Christian Hopps
61949e4f79 tests: split notify test to regular and datastore notify tests
Signed-off-by: Christian Hopps <chopps@labn.net>
2025-01-18 16:14:29 +00:00
Christian Hopps
d54ab3b112 mgmtd: testc: add listen for datastore notifications
Signed-off-by: Christian Hopps <chopps@labn.net>
2025-01-18 16:14:29 +00:00
Christian Hopps
597d79a89e lib: improve error handling for datastore notifications
Signed-off-by: Christian Hopps <chopps@labn.net>
2025-01-18 16:14:29 +00:00
Christian Hopps
1f1d166288 lib: mgmtd: only send notify selectors to backends that provide.
- Previously we sent selectors to all backends when a replace was
  done, improve this to only send them to backends that provide
  the selected state.

Signed-off-by: Christian Hopps <chopps@labn.net>
2025-01-18 16:13:54 +00:00
Christian Hopps
94f70c2100 lib: mgmt_be_client handles datastore notification using CBs
Signed-off-by: Christian Hopps <chopps@labn.net>
2025-01-18 16:13:54 +00:00
Christian Hopps
2375a11b08 lib: yang: add yang_parse_data function
This is similar to notify and RPC parsers, but this is for normal datastore
data. This is initially used in handling datastore notifications being sent to
another backend client[s].

Signed-off-by: Christian Hopps <chopps@labn.net>
2025-01-18 16:13:53 +00:00
Donatas Abraitis
13838a87cf
Merge pull request #17880 from LabNConsulting/chopps/ci-arm
tests: ci: add ARM to docker based CI test
2025-01-18 14:58:55 +02:00
Yuqing Zhao
f56a77359b doc: Add support for SRv6 static sid CLI
Add the srv6 static sids configuration and
show running-config sections in static.rst.

Signed-off-by: Yuqing Zhao <galadriel.zyq@alibaba-inc.com>
2025-01-18 10:28:49 +00:00
Yuqing Zhao
2a50c7526a tests: Add topotest for SRv6 static SIDs
Signed-off-by: Yuqing Zhao <galadriel.zyq@alibaba-inc.com>
2025-01-18 10:28:49 +00:00
Yuqing Zhao
52c4028195 vtysh: Add SRv6 static SIDs CLI to vtysh
Signed-off-by: Yuqing Zhao <galadriel.zyq@alibaba-inc.com>
2025-01-18 10:28:49 +00:00
Yuqing Zhao
2d23207290 staticd: Add CLIs to show SRv6 static SIDs
Signed-off-by: Yuqing Zhao <galadriel.zyq@alibaba-inc.com>
2025-01-18 10:28:49 +00:00
Yuqing Zhao
69a49c7359 staticd: Add CLI for SRv6 static SIDs
Signed-off-by: Yuqing Zhao <galadriel.zyq@alibaba-inc.com>
2025-01-18 10:28:49 +00:00
Yuqing Zhao
4d958078b8 lib: Add CLI node for SRv6 static SIDs
Signed-off-by: Yuqing Zhao <galadriel.zyq@alibaba-inc.com>
2025-01-18 10:28:49 +00:00
Yuqing Zhao
07ba1cd8b8 staticd: Add Northbound APIs for SRv6
Add Northbound APIs to create/modify/destroy an SRv6 SID

Signed-off-by: Yuqing Zhao <galadriel.zyq@alibaba-inc.com>
2025-01-18 10:28:49 +00:00
Yuqing Zhao
73fdae9bea staticd: Initialize/cleanup SRv6
Signed-off-by: Yuqing Zhao <galadriel.zyq@alibaba-inc.com>
2025-01-18 10:28:49 +00:00
Yuqing Zhao
33615773c4 staticd: Install SIDs when a dependent interface goes up/down
Signed-off-by: Yuqing Zhao <galadriel.zyq@alibaba-inc.com>
2025-01-18 10:28:49 +00:00
Yuqing Zhao
e80f24df7e staticd: Request/Release SIDs to SID Manager
Signed-off-by: Yuqing Zhao <galadriel.zyq@alibaba-inc.com>
2025-01-18 10:28:49 +00:00
Yuqing Zhao
7aefc15f64 lib, isisd: Move DEFAULT_SRV6_IFNAME to global srv6.h header
This commit moves DEFAULT_SRV6_IFNAME from isis_srv6.h to srv6.h
because there are other daemons that might want to use it (e.g. staticd).

Signed-off-by: Yuqing Zhao <galadriel.zyq@alibaba-inc.com>
2025-01-18 10:28:49 +00:00
Yuqing Zhao
807d90050d staticd: Add infrastructure for SRv6
This commit adds datastructures and helper functions required to support SRv6 in staticd.

* List of locators
* List of SIDs
* Data structure to represent an SRv6 SID
* Functions to allocate/deallocate an SRv6 SID
* Functions to allocate, deallocate and lookup a locator
* Function to initialize/Cleanup SRv6

Signed-off-by: Yuqing Zhao <galadriel.zyq@alibaba-inc.com>
2025-01-18 10:28:49 +00:00
Yuqing Zhao
2025a0c617 lib: Add a function to print SRv6 Endpoint Behavior Codepoints
Signed-off-by: Yuqing Zhao <galadriel.zyq@alibaba-inc.com>
2025-01-18 10:28:49 +00:00
Yuqing Zhao
57031d43ce staticd: Add debug option for SRv6
Signed-off-by: Yuqing Zhao <galadriel.zyq@alibaba-inc.com>
2025-01-18 10:28:49 +00:00
Yuqing Zhao
f792a215cd yang: Add SRv6 to frr-staticd YANG model
Signed-off-by: Yuqing Zhao <galadriel.zyq@alibaba-inc.com>
2025-01-18 10:28:49 +00:00