summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | | | Merge pull request #17885 from LabNConsulting/chopps/fix-gen-cb-regressionDonatas Abraitis9 days1-12/+8
|\ \ \ \ \ \ | |/ / / / / |/| | | | | tools: fix regression in gen_northbound_callback tool
| * | | | | tools: fix regression in gen_northbound_callback toolChristian Hopps10 days1-12/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | | | | Merge pull request #16894 from wenwang00/project-phoenixwing-ysjPhilippe Guibert10 days24-17/+2010
|\ \ \ \ \ \ | | | | | | | | | | | | | | staticd: Add support for SRv6 Static SIDs
| * | | | | | doc: Add support for SRv6 static sid CLIYuqing Zhao11 days1-0/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add the srv6 static sids configuration and show running-config sections in static.rst. Signed-off-by: Yuqing Zhao <galadriel.zyq@alibaba-inc.com>
| * | | | | | tests: Add topotest for SRv6 static SIDsYuqing Zhao11 days5-0/+219
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Yuqing Zhao <galadriel.zyq@alibaba-inc.com>
| * | | | | | vtysh: Add SRv6 static SIDs CLI to vtyshYuqing Zhao11 days1-5/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Yuqing Zhao <galadriel.zyq@alibaba-inc.com>
| * | | | | | staticd: Add CLIs to show SRv6 static SIDsYuqing Zhao11 days1-2/+96
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Yuqing Zhao <galadriel.zyq@alibaba-inc.com>
| * | | | | | staticd: Add CLI for SRv6 static SIDsYuqing Zhao11 days2-0/+221
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Yuqing Zhao <galadriel.zyq@alibaba-inc.com>
| * | | | | | lib: Add CLI node for SRv6 static SIDsYuqing Zhao11 days1-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Yuqing Zhao <galadriel.zyq@alibaba-inc.com>
| * | | | | | staticd: Add Northbound APIs for SRv6Yuqing Zhao11 days3-0/+281
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add Northbound APIs to create/modify/destroy an SRv6 SID Signed-off-by: Yuqing Zhao <galadriel.zyq@alibaba-inc.com>
| * | | | | | staticd: Initialize/cleanup SRv6Yuqing Zhao11 days1-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Yuqing Zhao <galadriel.zyq@alibaba-inc.com>
| * | | | | | staticd: Install SIDs when a dependent interface goes up/downYuqing Zhao11 days3-0/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Yuqing Zhao <galadriel.zyq@alibaba-inc.com>
| * | | | | | staticd: Request/Release SIDs to SID ManagerYuqing Zhao11 days2-0/+663
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Yuqing Zhao <galadriel.zyq@alibaba-inc.com>
| * | | | | | lib, isisd: Move DEFAULT_SRV6_IFNAME to global srv6.h headerYuqing Zhao11 days3-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | | | | | staticd: Add infrastructure for SRv6Yuqing Zhao11 days3-0/+235
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | | | | | lib: Add a function to print SRv6 Endpoint Behavior CodepointsYuqing Zhao11 days1-0/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Yuqing Zhao <galadriel.zyq@alibaba-inc.com>
| * | | | | | staticd: Add debug option for SRv6Yuqing Zhao11 days3-8/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Yuqing Zhao <galadriel.zyq@alibaba-inc.com>
| * | | | | | yang: Add SRv6 to frr-staticd YANG modelYuqing Zhao11 days1-1/+101
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Yuqing Zhao <galadriel.zyq@alibaba-inc.com>
* | | | | | | Merge pull request #17884 from LabNConsulting/chopps/fix-dnode-createDonatas Abraitis10 days1-7/+18
|\ \ \ \ \ \ \ | |_|/ / / / / |/| | | | | | lib: fix dnode_create to use correct libyang function.
| * | | | | | lib: fix dnode_create to use correct libyang function.Christian Hopps11 days1-7/+18
|/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | | | | Merge pull request #17876 from LabNConsulting/chopps/backend-ds-notifyDonald Sharp11 days11-200/+567
|\ \ \ \ \ \ | |_|/ / / / |/| | | | | Handle datastore notifications correctly in backend clients (daemons)
| * | | | | tests: split notify test to regular and datastore notify testsChristian Hopps11 days2-99/+240
| | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Christian Hopps <chopps@labn.net>
| * | | | | mgmtd: testc: add listen for datastore notificationsChristian Hopps11 days2-11/+100
| | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Christian Hopps <chopps@labn.net>
| * | | | | lib: improve error handling for datastore notificationsChristian Hopps11 days1-61/+87
| | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Christian Hopps <chopps@labn.net>
| * | | | | lib: mgmtd: only send notify selectors to backends that provide.Christian Hopps11 days1-18/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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>
| * | | | | lib: mgmt_be_client handles datastore notification using CBsChristian Hopps11 days3-11/+39
| | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Christian Hopps <chopps@labn.net>
| * | | | | lib: yang: add yang_parse_data functionChristian Hopps11 days2-0/+73
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | | | Merge pull request #17880 from LabNConsulting/chopps/ci-armDonatas Abraitis11 days1-39/+187
|\ \ \ \ \ | |/ / / / |/| | | | tests: ci: add ARM to docker based CI test
| * | | | tests: ci: add ARM to docker based CI testChristian Hopps12 days1-39/+187
|/ / / / | | | | | | | | | | | | Signed-off-by: Christian Hopps <chopps@labn.net>
* | | | Merge pull request #17814 from donaldsharp/nhg_removal_in_some_situationsDonatas Abraitis12 days1-2/+13
|\ \ \ \
| * | | | zebra: Uninstall NHG in some situationsDonald Sharp2025-01-101-2/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If you have this series of events: a) Decision to install a NHG is made in zebra, enqueue to DPLANE b) Changes to NHG are made and we remove it in the master pthread Since this NHG is not marked as installed it is not removed but the NHG data structure is deleted c) DPLANE installs the NHG In the end the NHG stays installed but ZEBRA has lost track of it. Modify the removal code to check to see if the NHG is queued. There are 2 cases: a) NHG is kept around for a bit before being deleted. In this case just see that the NHG is Queued and keep it around too. b) NHG is not kept around and we are just removing it. In this case check to see if it is queued and send another deletion event. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* | | | | Merge pull request #17836 from pguibert6WIND/limit_comm_list_countDonatas Abraitis12 days11-0/+242
|\ \ \ \ \ | |_|/ / / |/| | | | limit community list count
| * | | | topotest: add a test to control the community-list countPhilippe Guibert2025-01-144-0/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a test to control the community-list count. Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
| * | | | bgpd: add 'match community-count' command to restrict comm countPhilippe Guibert2025-01-148-0/+160
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a mechanism in route-map to filter out route-map which have a list of communities greater than the given number. Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
* | | | | Merge pull request #17727 from idryzhov/netns-all-daemonsDonald Sharp13 days16-41/+66
|\ \ \ \ \ | | | | | | | | | | | | lib: introduce global -w option for VRF netns backend
| * | | | | tests: use global -w option instead of per-daemon -nIgor Ryzhov14 days6-16/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add ability to enable -w option for all daemons in a topotest and use this option instead of the deprecated -n. Signed-off-by: Igor Ryzhov <idryzhov@gmail.com>
| * | | | | lib: introduce global -w option for VRF netns backendIgor Ryzhov14 days6-5/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Current -n option is only for zebra and mgmtd. All other daemons receive the VRF backend configuration from zebra upon connection to it. This leads to a potential race condition - daemons need to know the backend before they start reading their config, but they can be not connected to zebra yet at this point. As the VRF backend cannot change during runtime, let's introduce a new global -w option for setting netns backend, to make sure that all daemons know their VRF backend immediately after start. The reason for introducing a new option instead of making -n global is that ospfd already uses -n for another purposes. Signed-off-by: Igor Ryzhov <idryzhov@gmail.com>
| * | | | | lib, zebra: move ns context intialization to zebraIgor Ryzhov14 days2-9/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | vrf->ns_ctxt is only ever used in zebra, so move its initialization to zebra's callback. Ideally this pointer shouldn't even be a part of library's vrf struct, and moved to zebra-specific struct, but this is the first step. Signed-off-by: Igor Ryzhov <idryzhov@gmail.com>
| * | | | | lib: remove VRF_BACKEND_UNKNOWNIgor Ryzhov14 days4-11/+1
| | |_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The backend type cannot be unknown. It is configured to VRF_LITE by default in zebra anyway, so just init to VRF_LITE in the lib and remove the UNKNOWN type. Signed-off-by: Igor Ryzhov <idryzhov@gmail.com>
* | | | | Merge pull request #17862 from LabNConsulting/chopps/ldp-snmp-fixDonatas Abraitis14 days2-7/+7
|\ \ \ \ \ | |/ / / / |/| | | | ldp snmp/grpc test fix
| * | | | tests: dont run ldp snmp test if no snmpChristian Hopps14 days1-0/+5
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Christian Hopps <chopps@labn.net>
| * | | | tests: fix missed grpc test requirement for frr-backend additionChristian Hopps14 days1-7/+2
|/ / / / | | | | | | | | | | | | Signed-off-by: Christian Hopps <chopps@labn.net>
* | | | Merge pull request #17838 from opensourcerouting/msdp-topo3Russ White2025-01-153-3/+28
|\ \ \ \ | | | | | | | | | | topotests: improve test reliability
| * | | | topotests: improve test reliabilityRafael Zalamena2025-01-133-3/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Decrease the protocol timers, wait for peers to connect (and test it) then finally wait a bit more for SAs to be propagated. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
* | | | | Merge pull request #17810 from donaldsharp/bgp_connect_refactorRuss White2025-01-1516-141/+133
|\ \ \ \ \ | | | | | | | | | | | | Bgp connect refactor
| * | | | | bgpd: Only update peer connection information when neededDonald Sharp2025-01-103-16/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently bgp is repeatedly grabbing peer connection information. This is a bit overkill. There are two situations: a) Opening a connection to the peer In this case, we know the remote port/address a priori and can get the local information by just asking the OS. b) Peer opening a connection to us. In this case, we know the local port/address a priori and can get the remote information by just asking the OS. Modify the code to just grab this data at the appropriate time. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
| * | | | | bgpd: su_remote and su_local are properties of the connectionDonald Sharp2025-01-1015-133/+117
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | su_local and su_remote in the peer can change based upon if we are initiating the remote connection or receiving it. As such we need to treat it as a property of the connection. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
| * | | | | bgpd: bgp_getsockanme is connection orientedDonald Sharp2025-01-103-5/+7
| | |_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | Let's make it so. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* | | | | Merge pull request #17855 from ↵Donald Sharp2025-01-157-6/+367
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | opensourcerouting/fix/bgp_enhe_capability_via_dynamic_capability bgpd: Handle ENHE capability via dynamic capability
| * | | | | bgpd: Handle ENHE capability via dynamic capabilityDonatas Abraitis2025-01-144-6/+131
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | FRR supports dynamic capability which is useful to exchange the capabilities without tearing down the session. ENHE capability was missed to be included handling via dynamic capability. Let's add it too. This was missed and asked in Slack that it would be useful. Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>