]>
git.puffer.fish Git - mirror/frr.git/log
Donald Sharp [Fri, 2 Feb 2024 02:18:50 +0000 (21:18 -0500)]
lib: Warn operator when fd limit is set too large
It's unlikely that an operator will ever set a fd
limit of over 100k. Let's warn the operator that
things are in a bit of a wonky state.
Fixes: #15280
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Igor Ryzhov [Thu, 1 Feb 2024 08:54:30 +0000 (10:54 +0200)]
Merge pull request #15268 from LabNConsulting/chopps/quieter-code
lowercase and localize debug/err macros
Christian Hopps [Thu, 1 Feb 2024 01:06:14 +0000 (20:06 -0500)]
mgmtd: convert MGMTD_FE_CLIENT_DBG() to debug_fe_client()
Signed-off-by: Christian Hopps <chopps@labn.net>
Christian Hopps [Thu, 1 Feb 2024 01:01:41 +0000 (20:01 -0500)]
mgmtd: convert MGMTD_BE_CLIENT_DBG() to debug_be_client()
Signed-off-by: Christian Hopps <chopps@labn.net>
Christian Hopps [Thu, 1 Feb 2024 00:52:26 +0000 (19:52 -0500)]
mgmtd: convert MGMT_FE_ADAPTER_DBG() to __dbg()
Signed-off-by: Christian Hopps <chopps@labn.net>
Christian Hopps [Thu, 1 Feb 2024 00:50:23 +0000 (19:50 -0500)]
mgmtd: convert MGMT_BE_ADAPTER_DBG() to __dbg()
Signed-off-by: Christian Hopps <chopps@labn.net>
Christian Hopps [Wed, 31 Jan 2024 00:53:38 +0000 (19:53 -0500)]
mgmtd: convert MGMT_DS_DBG() to __dbg()
Signed-off-by: Christian Hopps <chopps@labn.net>
Christian Hopps [Wed, 31 Jan 2024 00:50:52 +0000 (19:50 -0500)]
mgmtd: convert MGMT_TXN_DBG() to __dbg()
Signed-off-by: Christian Hopps <chopps@labn.net>
Donatas Abraitis [Wed, 31 Jan 2024 13:06:40 +0000 (15:06 +0200)]
Merge pull request #15258 from louis-6wind/fix-adj-in-attr
bgpd: fix attr comparaison bgp_adj_in_set
Igor Ryzhov [Wed, 31 Jan 2024 13:06:25 +0000 (15:06 +0200)]
Merge pull request #15251 from qlyoung/fix-doc-nbcli-numlist
doc: fix misformatted list in nbapi docs
Christian Hopps [Wed, 31 Jan 2024 11:04:04 +0000 (06:04 -0500)]
Merge pull request #15246 from idryzhov/mgmt-get-data-improvements
mgmt get-data improvements
Igor Ryzhov [Mon, 29 Jan 2024 22:34:21 +0000 (00:34 +0200)]
tests: add tests for mgmt get-data with-defaults parameter
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Sun, 28 Jan 2024 23:05:14 +0000 (01:05 +0200)]
mgmtd: add our own format definitions for frontend messages
It allows people not familiar with libyang and FRR internals to use
mgmtd FE API by looking only at `mgmt_msg_native.h` header. We still use
the same values to avoid a lot of mapping code, and ensure that any
change doesn't slip unnoticed by using static asserts.
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Sun, 28 Jan 2024 00:35:14 +0000 (02:35 +0200)]
mgmtd: fix printing an empty data tree
We don't need to create an actual tree to print an empty tree, libyang
handles NULL just fine. The actual problem is that `yang_dnode_new`
creates a tree by validating it, and the validation creates all implicit
default nodes. Therefore, when called with "with-default" flags, instead
of getting an empty tree, we get a tree with all top-level default set.
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Fri, 26 Jan 2024 01:08:55 +0000 (03:08 +0200)]
mgmtd: add ability to choose datastore to get data from
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Mon, 29 Jan 2024 20:50:26 +0000 (22:50 +0200)]
mgmtd: add support for with-defaults parameter to get-data
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Thu, 25 Jan 2024 21:51:13 +0000 (23:51 +0200)]
yang: add more ietf models
These models are needed to use LYD_PRINT_WD_ALL_TAG flag of libyang.
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Wed, 31 Jan 2024 00:18:20 +0000 (02:18 +0200)]
Merge pull request #15254 from LabNConsulting/chopps/notifications
Add YANG notifications
Igor Ryzhov [Tue, 30 Jan 2024 21:02:18 +0000 (23:02 +0200)]
Merge pull request #14764 from mjstapp/nb_gen_tool
tools, vtysh: add the cli write callback, unhide an NB show command
Igor Ryzhov [Tue, 30 Jan 2024 19:53:31 +0000 (14:53 -0500)]
build: build: make mgmtd test client build conditional
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Christian Hopps [Tue, 30 Jan 2024 06:27:35 +0000 (01:27 -0500)]
mgmtd: backend subscriptions to notifications
Signed-off-by: Christian Hopps <chopps@labn.net>
Russ White [Tue, 30 Jan 2024 20:08:08 +0000 (15:08 -0500)]
Merge pull request #15257 from opensourcerouting/fix/reinstall_aggregate_route_if_rmap
bgpd: Reinstall aggregated routes if using route-maps and it was changed
Christian Hopps [Tue, 30 Jan 2024 08:06:11 +0000 (03:06 -0500)]
tests: add YANG notification test
Signed-off-by: Christian Hopps <chopps@labn.net>
Quentin Young [Mon, 29 Jan 2024 20:30:19 +0000 (15:30 -0500)]
doc: update [no] recommendation
Signed-off-by: Quentin Young <qlyoung@qlyoung.net>
Jafar Al-Gharaibeh [Tue, 30 Jan 2024 16:24:57 +0000 (10:24 -0600)]
Merge pull request #15163 from opensourcerouting/fix/pam_account
packaging: Require account validation with pam_unix.so if PAM enabled
Donald Sharp [Tue, 30 Jan 2024 15:56:35 +0000 (10:56 -0500)]
Merge pull request #15250 from opensourcerouting/fix/memory_optimizations
bgpd: Some memory optimizations
Donald Sharp [Tue, 30 Jan 2024 15:54:23 +0000 (10:54 -0500)]
Merge pull request #15252 from mjstapp/fix_bitfield_init
lib: init new bitfield word after realloc
Louis Scalbert [Tue, 30 Jan 2024 14:18:43 +0000 (15:18 +0100)]
bgpd: fix attr comparaison bgp_adj_in_set
In bgp_adj_in_set(), attr has not yet been interned. adj->attr is always
different from attr. adj->attr is always uninterned and interned even if
attr and adj->attr are identical.
Fix the comparison.
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
Donatas Abraitis [Tue, 30 Jan 2024 13:54:04 +0000 (15:54 +0200)]
tests: Check if attributes are reapplied for aggregate routes with route-maps
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
Donatas Abraitis [Tue, 30 Jan 2024 13:44:38 +0000 (15:44 +0200)]
bgpd: Reinstall aggregated routes if using route-maps and it was changed
Without this change when we change the route-map, we never reinstall the route
if the route-map has changed.
We checked only some attributes like aspath, communities, large-communities,
extended-communities, but ignoring the rest of attributes.
With this change, let's check if the route-map has changed.
bgp_route_map_process_update() is triggered on route-map change, and we set
`changed` to true, which treats aggregated route as not the same as it was before.
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
Mark Stapp [Tue, 21 Nov 2023 20:35:10 +0000 (15:35 -0500)]
doc: add doc for show configuration running
Add a doc entry for the newly-unhidden 'show configuration
running ...' command.
Signed-off-by: Mark Stapp <mjs@labn.net>
Mark Stapp [Thu, 9 Nov 2023 15:27:42 +0000 (10:27 -0500)]
vtysh: un-hide the show configuration nb cli
The "show configuration running" cli is pretty useful when
doing NB work; unhide it so it's easier to use.
Signed-off-by: Mark Stapp <mjs@labn.net>
Mark Stapp [Thu, 9 Nov 2023 15:26:06 +0000 (10:26 -0500)]
tools: add config-write callbacks to nb templates
Add the cli_show (config write) callback when emitting the
create or modify callback in the northbound template. Split
the config-handling and config-output callbacks into two
structs/arrays; this seems to be helpful when doing mgmtd
conversion.
Signed-off-by: Mark Stapp <mjs@labn.net>
Christian Hopps [Tue, 30 Jan 2024 08:05:18 +0000 (03:05 -0500)]
lib: mgmtd: add YANG notification support
Signed-off-by: Christian Hopps <chopps@labn.net>
Donatas Abraitis [Tue, 30 Jan 2024 06:21:05 +0000 (08:21 +0200)]
Merge pull request #15238 from louis-6wind/bgp-leak-network
bgpd: fix VRF leaking with 'network import-check'
Donatas Abraitis [Mon, 29 Jan 2024 14:21:21 +0000 (16:21 +0200)]
bgpd: Optimize memory usage for bgp_damp_config struct
```
struct bgp_damp_config {
unsigned int suppress_value; /* 0 4 */
unsigned int reuse_limit; /* 4 4 */
time_t max_suppress_time; /* 8 8 */
time_t half_life; /* 16 8 */
unsigned int reuse_list_size; /* 24 4 */
unsigned int reuse_index_size; /* 28 4 */
unsigned int ceiling; /* 32 4 */
unsigned int decay_rate_per_tick; /* 36 4 */
unsigned int decay_array_size; /* 40 4 */
unsigned int reuse_scale_factor; /* 44 4 */
double scale_factor; /* 48 8 */
double * decay_array; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
int * reuse_index; /* 64 8 */
struct bgp_damp_info * * reuse_list; /* 72 8 */
int reuse_offset; /* 80 4 */
safi_t safi; /* 84 4 */
struct bgp_damp_info * no_reuse_list; /* 88 8 */
struct event * t_reuse; /* 96 8 */
afi_t afi; /* 104 4 */
/* size: 112, cachelines: 2, members: 19 */
/* padding: 4 */
/* last cacheline: 48 bytes */
}; /* saved 8 bytes! */
```
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
Donatas Abraitis [Mon, 29 Jan 2024 14:18:54 +0000 (16:18 +0200)]
bgpd: Optimize memory usage for bgp_aggregate struct
```
struct bgp_aggregate {
uint8_t summary_only; /* 0 1 */
uint8_t as_set; /* 1 1 */
uint8_t origin; /* 2 1 */
_Bool med_mismatched; /* 3 1 */
_Bool med_initialized; /* 4 1 */
_Bool match_med; /* 5 1 */
/* XXX 2 bytes hole, try to pack */
struct {
char * name; /* 8 8 */
struct route_map * map; /* 16 8 */
} rmap; /* 8 16 */
long unsigned int count; /* 24 8 */
long unsigned int incomplete_origin_count; /* 32 8 */
long unsigned int egp_origin_count; /* 40 8 */
struct hash * community_hash; /* 48 8 */
struct hash * ecommunity_hash; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
struct hash * lcommunity_hash; /* 64 8 */
struct hash * aspath_hash; /* 72 8 */
struct community * community; /* 80 8 */
struct ecommunity * ecommunity; /* 88 8 */
struct lcommunity * lcommunity; /* 96 8 */
struct aspath * aspath; /* 104 8 */
safi_t safi; /* 112 4 */
uint32_t med_matched_value; /* 116 4 */
char * suppress_map_name; /* 120 8 */
/* --- cacheline 2 boundary (128 bytes) --- */
struct route_map * suppress_map; /* 128 8 */
/* size: 136, cachelines: 3, members: 22 */
/* sum members: 134, holes: 1, sum holes: 2 */
/* last cacheline: 8 bytes */
};
```
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
Donatas Abraitis [Mon, 29 Jan 2024 14:00:07 +0000 (16:00 +0200)]
bgpd: Optimize memory usage for bgp_static struct
```
struct bgp_static {
int backdoor; /* 0 4 */
uint32_t label_index; /* 4 4 */
uint8_t valid; /* 8 1 */
/* XXX 1 byte hole, try to pack */
uint16_t encap_tunneltype; /* 10 2 */
uint32_t igpmetric; /* 12 4 */
struct in_addr igpnexthop; /* 16 4 */
uint32_t atomic; /* 20 4 */
struct {
char * name; /* 24 8 */
struct route_map * map; /* 32 8 */
} rmap; /* 24 16 */
struct prefix_rd prd __attribute__((__aligned__(8))); /* 40 16 */
char * prd_pretty; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
mpls_label_t label; /* 64 4 */
/* XXX 4 bytes hole, try to pack */
esi_t * eth_s_id; /* 72 8 */
struct ethaddr * router_mac; /* 80 8 */
struct prefix gatewayIp __attribute__((__aligned__(8))); /* 88 56 */
/* size: 144, cachelines: 3, members: 14 */
/* sum members: 139, holes: 2, sum holes: 5 */
/* forced alignments: 2 */
/* last cacheline: 16 bytes */
} __attribute__((__aligned__(8))); /* saved 8 bytes! */
```
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
Donatas Abraitis [Mon, 29 Jan 2024 13:56:07 +0000 (15:56 +0200)]
bgpd: Optimize memory usage for attr struct
```
struct attr {
struct aspath * aspath; /* 0 8 */
struct community * community; /* 8 8 */
long unsigned int refcnt; /* 16 8 */
_uint64_t flag; /* 24 8 */
struct in_addr nexthop; /* 32 4 */
uint32_t med; /* 36 4 */
uint32_t local_pref; /* 40 4 */
ifindex_t nh_ifindex; /* 44 4 */
uint8_t origin; /* 48 1 */
uint8_t es_flags; /* 49 1 */
uint8_t router_flag; /* 50 1 */
uint8_t default_gw; /* 51 1 */
enum pta_type pmsi_tnl_type; /* 52 4 */
uint32_t rmap_change_flags; /* 56 4 */
struct in6_addr mp_nexthop_global; /* 60 16 */
/* --- cacheline 1 boundary (64 bytes) was 12 bytes ago --- */
struct in6_addr mp_nexthop_local; /* 76 16 */
ifindex_t nh_lla_ifindex; /* 92 4 */
struct ecommunity * ecommunity; /* 96 8 */
struct ecommunity * ipv6_ecommunity; /* 104 8 */
struct lcommunity * lcommunity; /* 112 8 */
struct cluster_list * cluster1; /* 120 8 */
/* --- cacheline 2 boundary (128 bytes) --- */
struct transit * transit; /* 128 8 */
struct in_addr mp_nexthop_global_in; /* 136 4 */
struct in_addr aggregator_addr; /* 140 4 */
struct in_addr originator_id; /* 144 4 */
uint32_t weight; /* 148 4 */
as_t aggregator_as; /* 152 4 */
uint8_t mp_nexthop_len; /* 156 1 */
uint8_t mp_nexthop_prefer_global; /* 157 1 */
uint8_t sticky; /* 158 1 */
uint8_t distance; /* 159 1 */
uint16_t encap_tunneltype; /* 160 2 */
uint8_t df_alg; /* 162 1 */
/* XXX 1 byte hole, try to pack */
route_tag_t tag; /* 164 4 */
uint32_t label_index; /* 168 4 */
mpls_label_t label; /* 172 4 */
struct bgp_attr_srv6_vpn * srv6_vpn; /* 176 8 */
struct bgp_attr_srv6_l3vpn * srv6_l3vpn; /* 184 8 */
/* --- cacheline 3 boundary (192 bytes) --- */
struct bgp_attr_encap_subtlv * encap_subtlvs; /* 192 8 */
struct bgp_attr_encap_subtlv * vnc_subtlvs; /* 200 8 */
struct bgp_route_evpn evpn_overlay; /* 208 36 */
uint32_t mm_seqnum; /* 244 4 */
uint32_t mm_sync_seqnum; /* 248 4 */
struct ethaddr rmac; /* 252 6 */
/* --- cacheline 4 boundary (256 bytes) was 2 bytes ago --- */
uint16_t df_pref; /* 258 2 */
uint32_t rmap_table_id; /* 260 4 */
uint32_t link_bw; /* 264 4 */
esi_t esi; /* 268 10 */
/* XXX 2 bytes hole, try to pack */
uint32_t srte_color; /* 280 4 */
uint32_t otc; /* 284 4 */
enum nexthop_types_t nh_type; /* 288 4 */
enum blackhole_type bh_type; /* 292 4 */
_uint64_t aigp_metric; /* 296 8 */
/* size: 304, cachelines: 5, members: 53 */
/* sum members: 301, holes: 2, sum holes: 3 */
/* last cacheline: 48 bytes */
}; /* saved 16 bytes! */
```
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
Igor Ryzhov [Mon, 29 Jan 2024 18:52:00 +0000 (20:52 +0200)]
Merge pull request #15248 from LabNConsulting/chopps/fix-comp-warning
zebra: fix compiler warning about truncation.
Mark Stapp [Mon, 29 Jan 2024 17:56:28 +0000 (12:56 -0500)]
lib: init new bitfield word after realloc
Realloc doesn't init - ensure a newly-allocated word is inited.
Signed-off-by: Mark Stapp <mjs@labn.net>
Quentin Young [Mon, 29 Jan 2024 17:28:32 +0000 (09:28 -0800)]
doc: fix misformatted list in nbapi docs
Signed-off-by: Quentin Young <qlyoung@qlyoung.net>
Donatas Abraitis [Mon, 29 Jan 2024 13:37:23 +0000 (15:37 +0200)]
bgpd: Optimize memory usage for bgp_nlri struct
```
struct bgp_nlri {
uint16_t afi; /* 0 2 */
uint8_t safi; /* 2 1 */
/* XXX 1 byte hole, try to pack */
bgp_size_t length; /* 4 2 */
/* XXX 2 bytes hole, try to pack */
uint8_t * nlri; /* 8 8 */
/* size: 16, cachelines: 1, members: 4 */
/* sum members: 13, holes: 2, sum holes: 3 */
/* last cacheline: 16 bytes */
}; /* saved 8 bytes! */
```
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
Christian Hopps [Mon, 29 Jan 2024 13:18:01 +0000 (08:18 -0500)]
zebra: fix compiler warning about truncation.
Signed-off-by: Christian Hopps <chopps@labn.net>
Donatas Abraitis [Mon, 29 Jan 2024 13:29:25 +0000 (15:29 +0200)]
bgpd: Optimize memory usage for bgp_notify struct
```
struct bgp_notify {
uint8_t code; /* 0 1 */
uint8_t subcode; /* 1 1 */
bgp_size_t length; /* 2 2 */
_Bool hard_reset; /* 4 1 */
/* XXX 3 bytes hole, try to pack */
char * data; /* 8 8 */
uint8_t * raw_data; /* 16 8 */
/* size: 24, cachelines: 1, members: 6 */
/* sum members: 21, holes: 1, sum holes: 3 */
/* last cacheline: 24 bytes */
}; /* saved 16 bytes! */
```
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
Christian Hopps [Mon, 29 Jan 2024 12:46:23 +0000 (07:46 -0500)]
Merge pull request #15181 from idryzhov/zebra-mgmtd
zebra interfaces NB conversion
Louis Scalbert [Fri, 26 Jan 2024 12:30:24 +0000 (13:30 +0100)]
topotests: vpnv4 route leaking with import-check
Test vpnv4 route leaking with import-check
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
Louis Scalbert [Thu, 5 May 2022 16:06:24 +0000 (18:06 +0200)]
bgpd: fix VRF leaking with 'network import-check' (4/4)
The following configuration creates an infinite routing leaking loop
because 'rt vpn both' parameters are the same in both VRFs.
> router bgp 5227 vrf r1-cust4
> no bgp network import-check
> bgp router-id 192.168.1.1
> address-family ipv4 unicast
> network 28.0.0.0/24
> rd vpn export 10:12
> rt vpn both 52:100
> import vpn
> export vpn
> exit-address-family
> !
> router bgp 5227 vrf r1-cust5
> no bgp network import-check
> bgp router id 192.168.1.1
> address-family ipv4 unicast
> network 29.0.0.0/24
> rd vpn export 10:13
> rt vpn both 52:100
> import vpn
> export vpn
> exit-address-family
The previous commit has added a routing leak update when a nexthop
update is received from zebra. It indirectly calls
bgp_find_or_add_nexthop() in which a static route triggers a nexthop
cache entry registration that triggers a nexthop update from zebra.
Do not register again the nexthop cache entry if the BGP_STATIC_ROUTE is
already set.
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
Louis Scalbert [Fri, 29 Apr 2022 12:26:04 +0000 (14:26 +0200)]
bgpd: fix VRF leaking with 'network import-check' (3/4)
If 'bgp network import-check' is defined on the source BGP session,
prefixes that are defined with the network command cannot be leaked to
the other VRFs BGP table even if they are present in the origin VRF RIB
if the 'rt import' statement is defined after the 'network <prefix>'
ones.
When a prefix nexthop is updated, update the prefix route leaking. The
current state of nexthop validation is now stored in the attributes of
the bgp path info. Attributes are compared with the previous ones at
route leaking update so that a nexthop validation change now triggers
the update of destination VRF BGP table.
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
Louis Scalbert [Tue, 5 Jul 2022 13:22:12 +0000 (15:22 +0200)]
bgpd: fix VRF leaking with 'network import-check' (2/4)
"if not XX else" statements are confusing.
Replace two "if not XX else" statements by "if XX else" to prepare next
commits. The patch is only cosmetic.
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
Louis Scalbert [Thu, 28 Apr 2022 16:32:20 +0000 (18:32 +0200)]
bgpd: fix VRF leaking with 'network import-check' (1/4)
If 'bgp network import-check' is defined on the source BGP session,
prefixes that are defined with the network command cannot be leaked to
the other VRFs BGP table even if they are present in the origin VRF RIB.
Always validate the nexthop of BGP static routes (i.e. defined with the
network statement) if 'network import-check' is defined on the source
BGP session and the prefix is present in source RIB.
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
Christian Hopps [Mon, 29 Jan 2024 01:19:59 +0000 (20:19 -0500)]
Merge pull request #15245 from idryzhov/disable-irdp
zebra, build: disable irdp by default
Igor Ryzhov [Wed, 24 Jan 2024 03:11:07 +0000 (05:11 +0200)]
zebra, build: disable irdp by default
IRDP client (rdisc) was deleted from iputils more than 2 years ago. It's
time to drop IRDP, but first let's stop building and including it in the
packages by default to see if anyone will be complaining.
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Sun, 28 Jan 2024 21:23:57 +0000 (23:23 +0200)]
lib, mgmtd, zebra: cleanup of zebra conversion to mgmtd
- use `apply_finish` callback when possible to avoid multiple applies per commit
- move table range working to the CLI handler
- remove unnecessary conditional compilation
- remove unnecessary boolean conversion
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Wed, 24 Jan 2024 21:04:23 +0000 (23:04 +0200)]
zebra: convert to mgmtd
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Sat, 27 Jan 2024 04:20:22 +0000 (06:20 +0200)]
build: remove mgmtd exception from xref2vtysh
We may actually need to send CLI commands to mgmtd and another daemon at
the same time, for example, if this daemon is not mgmtd-converted. The
only daemon this exception protects is staticd. But we don't actually
need any configuration commands in staticd, so just remove the exception
and don't install unnecessary commands to staticd.
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Wed, 24 Jan 2024 20:59:07 +0000 (22:59 +0200)]
lib: use shared candidate between vty and mgmtd client
When the daemon is partially mgmtd-converted, it receives configuration
from vty and mgmtmd simultaneosly. This configuration must be
synchronized.
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Wed, 24 Jan 2024 20:53:00 +0000 (22:53 +0200)]
lib: convert affinity-map to mgmtd
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Wed, 24 Jan 2024 20:26:47 +0000 (22:26 +0200)]
lib: fix yang_dnode_dup
When duplicating nodes, we should always keep flags, especially the
LYD_NEW flag that indicates not validated data. This allows to select a
new choice's case without the need to explicitly remove the existing one.
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Sat, 27 Jan 2024 17:38:06 +0000 (19:38 +0200)]
zebra: convert vrf configuration output to NB
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Sat, 27 Jan 2024 11:11:08 +0000 (13:11 +0200)]
zebra: make vrf netns commands do nothing
These commands don't really provide any functionality. VRF is associated
with netns automatically based on its name, and it's not possible to
associate VRF and netns with different names with these commands:
- When trying to assosiate a VRF with an already existing netns with a
different name:
`NS /run/netns/test is already configured with VRF 1(test)`
- When trying to assiciate a VRF with a non-existing netns, so they
become linked once the netns is created:
`Invalid pathname for /run/netns/test: No such file or directory`
- When doing "no netns" to unlink the netns and link it back to the same
VRF:
`VRF 1 is already configured with VRF test`
- When doing "no netns" to unlink the netns and link it to another VRF:
`Can not associate NS
4294967295 with NETNS /run/netns/test`
As shown above, not a single usecase is working. We can't remove them
completely to preserve backwards-compatibility, so just make them empty.
The main reason for this change is not to spend a lot of time trying to
figure out how to convert them to northbound.
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Sat, 27 Jan 2024 03:00:27 +0000 (05:00 +0200)]
zebra: convert table range command to NB
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Sat, 27 Jan 2024 02:04:28 +0000 (04:04 +0200)]
zebra: convert resolve-via-default commands to NB
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Sat, 27 Jan 2024 01:36:20 +0000 (03:36 +0200)]
zebra: fix vni NB conversion
- unnecessary command duplication
- usage of oper data during validation
- unnecessary checks for things that can't happen
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Sat, 27 Jan 2024 00:15:56 +0000 (02:15 +0200)]
zebra: convert route-map delay-timer command to NB
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Fri, 26 Jan 2024 23:51:33 +0000 (01:51 +0200)]
zebra: convert ip nht commands to NB
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Fri, 26 Jan 2024 23:50:04 +0000 (01:50 +0200)]
zebra: convert ip protocol commands to NB
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Fri, 26 Jan 2024 22:16:17 +0000 (00:16 +0200)]
zebra: convert router-id commands to NB
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Wed, 24 Jan 2024 14:50:26 +0000 (16:50 +0200)]
zebra: convert interface configuration output to NB
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Wed, 24 Jan 2024 02:35:03 +0000 (04:35 +0200)]
zebra: fix build with --disable-rtadv
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Wed, 24 Jan 2024 01:03:50 +0000 (03:03 +0200)]
zebra: convert PTM configuration to NB
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Wed, 24 Jan 2024 01:02:15 +0000 (03:02 +0200)]
lib: add support for "features" when loading YANG modules
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Tue, 23 Jan 2024 21:00:45 +0000 (23:00 +0200)]
zebra: convert interface ipv6 nd dnssl command to NB
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Tue, 23 Jan 2024 20:14:53 +0000 (22:14 +0200)]
zebra: convert interface ipv6 nd rdnss command to NB
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Tue, 23 Jan 2024 19:32:16 +0000 (21:32 +0200)]
zebra: convert interface ipv6 nd prefix command to NB
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Tue, 23 Jan 2024 16:57:29 +0000 (18:57 +0200)]
zebra: convert interface ipv6 nd router-preference command to NB
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Tue, 23 Jan 2024 16:31:27 +0000 (18:31 +0200)]
zebra: convert interface ipv6 nd home-agent-lifetime command to NB
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Tue, 23 Jan 2024 16:30:29 +0000 (18:30 +0200)]
zebra: convert interface ipv6 nd home-agent-preference command to NB
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Tue, 23 Jan 2024 16:29:36 +0000 (18:29 +0200)]
zebra: convert interface ipv6 nd adv-interval-option command to NB
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Tue, 23 Jan 2024 16:28:33 +0000 (18:28 +0200)]
zebra: convert interface ipv6 nd home-agent-config-flag command to NB
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Tue, 23 Jan 2024 16:25:31 +0000 (18:25 +0200)]
zebra: convert interface ipv6 nd ra-fast-retrans command to NB
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Tue, 23 Jan 2024 15:20:22 +0000 (17:20 +0200)]
zebra: convert interface ipv6 nd ra-hop-limit command to NB
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Tue, 23 Jan 2024 15:19:41 +0000 (17:19 +0200)]
zebra: convert interface ipv6 nd ra-retrans-interval command to NB
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Tue, 23 Jan 2024 15:18:41 +0000 (17:18 +0200)]
zebra: convert interface ipv6 nd mtu command to NB
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Tue, 23 Jan 2024 15:17:48 +0000 (17:17 +0200)]
zebra: convert interface ipv6 nd other-config-flag command to NB
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Tue, 23 Jan 2024 15:16:50 +0000 (17:16 +0200)]
zebra: convert interface ipv6 nd managed-config-flag command to NB
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Tue, 23 Jan 2024 14:28:43 +0000 (16:28 +0200)]
zebra: convert interface ipv6 nd reachable-time command to NB
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Tue, 23 Jan 2024 14:04:39 +0000 (16:04 +0200)]
zebra: convert interface ipv6 nd ra interval/lifetime commands to NB
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Tue, 23 Jan 2024 12:20:49 +0000 (14:20 +0200)]
zebra: convert interface ipv6 nd suppress-ra command to NB
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Mon, 22 Jan 2024 20:21:38 +0000 (22:21 +0200)]
zebra: convert interface evpn mh uplink command to NB
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Mon, 22 Jan 2024 20:21:04 +0000 (22:21 +0200)]
zebra: convert interface evpn mh bypass command to NB
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Mon, 22 Jan 2024 19:52:09 +0000 (21:52 +0200)]
zebra: convert interface evpn mh es-df-pref command to NB
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Mon, 22 Jan 2024 19:34:35 +0000 (21:34 +0200)]
zebra: convert interface evpn mh es-id commands to NB
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Sat, 20 Jan 2024 01:55:42 +0000 (03:55 +0200)]
zebra: convert interface link-params packet-loss command to NB
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Sat, 20 Jan 2024 01:43:18 +0000 (03:43 +0200)]
lib: fix conversion of yang decimal64 to double
Current denominators are not integers and some of them lose precision
because of that, for example, 1e-6 is actually stored as
9.
9999999999999995e -07 and 1-e12 is stored as 9.
9999999999999998e -13.
When multiplying by such denominators, we receive incorrect values.
Changing denominators to integers and using division instead of
multiplication improves precision and solves the problem.
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Fri, 19 Jan 2024 23:38:26 +0000 (01:38 +0200)]
zebra: convert interface link-params delay commands to NB
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Fri, 19 Jan 2024 23:02:37 +0000 (01:02 +0200)]
zebra: convert interface link-params neighbor command to NB
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Fri, 19 Jan 2024 22:13:14 +0000 (00:13 +0200)]
zebra: convert interface link-params bandwidth commands to NB
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Fri, 19 Jan 2024 16:49:52 +0000 (18:49 +0200)]
lib: don't set LP_EXTEND_ADM_GRP by default
It shouldn't be set unless some affinity is configured. NB callbacks
set this flag correctly when necessary.
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Igor Ryzhov [Fri, 19 Jan 2024 12:34:27 +0000 (14:34 +0200)]
zebra: convert interface link-params metric command to NB
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>