Commit Graph

33940 Commits

Author SHA1 Message Date
Donatas Abraitis
4d9e220f1d
Merge pull request #14746 from LabNConsulting/valgrind-leak-kinds
tests: add ability to show all types of valgrind memleaks
2023-11-08 09:01:02 +01:00
Christian Hopps
c27b054efe tests: add ability to show all types of valgrind memleaks
Signed-off-by: Christian Hopps <chopps@labn.net>
2023-11-07 15:29:37 -05:00
Russ White
cf51579b5b
Merge pull request #14698 from opensourcerouting/fix/remove_static_arp_entries_on_ifdown_events
zebra: Remove static ARP entries on interface down events
2023-11-07 09:40:01 -05:00
Donald Sharp
6de9f7fbf5 *: Move distance related defines into their own header
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-11-07 06:47:51 -05:00
Donald Sharp
42ddcf71e5 *: Remove APPLE #defines from build
We cannot build on apple machines at all due
to our usage of some gcc extensions that will
probably never see the light of day again.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-11-07 06:46:19 -05:00
Donald Sharp
315aa6cde4 *: Remove netlink headers from lib/zebra.h
The headers associated with netlink code
really only belong in those that need it.
Move these headers out of lib/zebra.h and
into more appropriate places.  bgp's usage
of the RT_TABLE_XXX defines are probably not
appropriate and will be cleaned up in future
commits.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-11-07 06:46:19 -05:00
Igor Ryzhov
b0ce306457 mgmtd: fix local validation
When validating the config, we shouldn't also validate state.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2023-11-07 03:41:31 +02:00
Christian Hopps
bec10915a4 tools: checkpatch updated with darr_foreach iter macros
Also update `checkpatch.sh` so it runs `checkpatch.pl` from the same directory
it resides in. This allows copying them both somewhere else to use a specific
version.

Signed-off-by: Christian Hopps <chopps@labn.net>
2023-11-06 17:44:58 -05:00
Christian Hopps
3184f63a90 lib: yang: restore old API use now that it's fixed
This also avoids a bug in the workaround function if the set variable
wasn't set to NULL the Debug version of libyang would sigsegv.

Signed-off-by: Christian Hopps <chopps@labn.net>
2023-11-06 17:44:58 -05:00
Christian Hopps
a65cda16b2 mgmtd: simplify xpath registries
- move from client id indexed array of uints for register info
  per client to a u64 bitmask.
- add bit walking FOREACH macro

Walk the client IDs whose bits are set in a mask.

Signed-off-by: Christian Hopps <chopps@labn.net>
2023-11-06 17:44:58 -05:00
Donatas Abraitis
f57763eaed
Merge pull request #14729 from donaldsharp/v6_rr_semantics_zrouter
V6 rr semantics zrouter
2023-11-06 23:00:50 +02:00
Mark Stapp
d67c60eda3
Merge pull request #14742 from FRRouting/revert-14648-import_no_no_no
Revert "bgpd: combine import_check_table and nexthop_check_table"
2023-11-06 10:38:06 -05:00
Donald Sharp
c2cedabed1
Revert "bgpd: combine import_check_table and nexthop_check_table" 2023-11-06 10:07:58 -05:00
Donald Sharp
7e1b56ba98 zebra: When using Nexthop groups, use v6 RR semantics
The nexthop group route replace operation was made consistent
across all versions of the kernel.  A v6 route replacement
does not need to do a delete than add when using nexthop
groups

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-11-06 08:56:50 -05:00
Donald Sharp
7fe9333dd7 zebra: Move v6_rr_semantics to be part of zrouter structure
Move global variable v6_rr_semantics from a global data structure
into the zrouter data structure.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-11-06 08:42:30 -05:00
Donald Sharp
4e996e98ec zebra: Add v6_rr_semantics status to show zebra
The v6_rr_semantics variable was being set but never
reported and had to be inferred from watching netlink
messages to the kernel.  Let's add a bit of code
to `show zebra` so that we can know how it is being
used.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-11-06 08:12:04 -05:00
Donald Sharp
5752340415
Merge pull request #14730 from opensourcerouting/fix/doc_releases
doc: Add a quick example on how to use release_notes.py
2023-11-06 08:11:03 -05:00
Donald Sharp
8b9378dccf
Merge pull request #14734 from opensourcerouting/fix/add_missing_documentation_for_community_any
doc: Add missing match community exact-match/any
2023-11-06 08:10:45 -05:00
Donald Sharp
b66dc0909e
Merge pull request #14736 from opensourcerouting/transparent-sockunion
lib: create a transparent union `sockunion`
2023-11-06 08:09:48 -05:00
Donatas Abraitis
a35bb7e2a8 zebra: Remove static ARP entries on interface down events
Without this patch, static ARP entries remain active even if the interface is
down, but the kernel already removed them.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-11-06 15:00:59 +02:00
Igor Ryzhov
23ebea36cb
Merge pull request #14726 from cscarpitta/fix/fix-openfabric-crash
isisd: Fix crash when enabling OpenFabric on an interface
2023-11-05 23:39:14 +02:00
David Lamparter
bf098b4a11 lib: add a transparent union for sockaddrs
As with "prefixptr"/"prefixconstptr", this allows function prototypes to
say "just give me any sockaddr" typing-wise, without having the compiler
complain that a "struct sockaddr_in" is not a "struct sockaddr".

(Split off from other changes that start using this.)

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2023-11-05 18:19:52 +01:00
David Lamparter
19cbc31579 lib: rename prefixtype to uniontype
About to use this for sockunion, which is not a prefix.  `uniontype`
makes more sense, the macros are for defining transparent unions after
all.

(clang-format off thrown in as it otherwise wrecks formatting.)

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2023-11-05 18:19:09 +01:00
Donatas Abraitis
19ac7818ba doc: Add missing match community exact-match/any
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-11-05 08:31:05 +02:00
Donatas Abraitis
b0317265b1 doc: Add a quick example on how to use release_notes.py
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-11-04 16:32:01 +02:00
Donatas Abraitis
4bdba57861
Merge pull request #14724 from donaldsharp/workqueue_cleanup
Workqueue cleanup
2023-11-04 13:58:55 +02:00
Farid MIHOUB
e7adf2762f tests: extend the bmp test to support bmp loc-rib
Configure the bmp monitor unicast loc-rib.
Check the logging messages for the updated/withdrawn prefixes with
the presence of the loc-rib peer-type.

Signed-off-by: Farid MIHOUB <farid.mihoub@6wind.com>
2023-11-04 12:19:30 +01:00
Farid MIHOUB
e65db90567 tests: rework bmp policy message logging
Add "policy" field to the logged bmp messages so policy checks within
topotests would be easier and clearer.

Signed-off-by: Farid MIHOUB <farid.mihoub@6wind.com>
2023-11-04 12:19:30 +01:00
Maxence Younsi
9607070acd bgpd: bmp unset v6 flag + address PR#14188 comments
use CHECK_FLAG
fix comment spaces
change zlog_debug to zlog_warn
safeguard on updated_route
added doc/developer/bmp.rst to subdir.am
other qol changes

Signed-off-by: Maxence Younsi <mx.yns@outlook.fr>
2023-11-04 12:17:48 +01:00
Maxence Younsi
fa17129752 bgpd: skip bmp messages when vrf id is unknown
changed result type of bmp_get_peer_distinguisher to int
added result pointer parameter to bmp_get_peer_distinguisher
bmp_get_peer_distinguisher returns 0 means the result is valid else
  error occured do not use result

Signed-off-by: Maxence Younsi <mx.yns@outlook.fr>
2023-11-04 12:17:48 +01:00
mxyns
66d564a60b bgpd: loc-rib uptime moved to bgp_path_info_extra and set in header
moved loc-rib uptime field "bgp_rib_uptime" to struct bgp_path_info_extra for memory concerns
moved logic into bgp_route_update's callback bmp_route_update
written timestamp in per peer header

Signed-off-by: Maxence Younsi <mx.yns@outlook.fr>
2023-11-04 12:17:48 +01:00
mxyns
1cca53e5c6 bgpd: applied styling and fixed warnings
frrbot found style &/| linter errors
fixed bmp_process_one return value warnings and added safety checks
fixed const modifier warning in bmp_put_vrftablename_info_tlv
added unused attribute to bmp_put_vrftablename_info_tlv
remove unused variables in bmp_process_one and bmp_route_update

Signed-off-by: Maxence Younsi <mx.yns@outlook.fr>
2023-11-04 12:17:48 +01:00
Maxou
19b3ead3f0 bgpd: bmp locrib monitoring unlock node after lookup
bgp_afi_node_lookup calls bgp_node_lookup which locks the node, unlocking it safely after function is finished

Signed-off-by: Maxence Younsi <mx.yns@outlook.fr>
2023-11-04 12:17:48 +01:00
Maxou
8557a13689 bgpd: Update bmp.rst documentation
added documentation for the current state of the bmp implementation

Signed-off-by: Maxence Younsi <mx.yns@outlook.fr>
2023-11-04 12:17:48 +01:00
Maxou
6da477b395 bgpd: refactored bmp_route_update & cleanup TODOs
TODOs that are done/un-necessary now deleted
refactored bmp_route_update to use a modified bmp_process_one function call instead of duplicating similar code

Signed-off-by: Maxence Younsi <mx.yns@outlook.fr>
2023-11-04 12:17:48 +01:00
Maxou
0a09b4905e bgpd: removed temporary dev logs
dev logs cleanup

Signed-off-by: Maxence Younsi <mx.yns@outlook.fr>
2023-11-04 12:17:48 +01:00
Maxou
257ca34e94 bgpd: cleanup bmp_get_peer_distinguisher function
cleaner implementation and use of the new get peer distinguisher function
can be now used for other cases of RFC7854 that are not supported atm

Signed-off-by: Maxence Younsi <mx.yns@outlook.fr>
2023-11-04 12:17:48 +01:00
mxyns
90ffa97e38 bgpd: beginning to add rib_uptime field for loc-rib timestamp
added time_t field to bgp_path_info
set value before bgp dp hook is called
value not set in the msg yet, testing and double checking is needed before

Signed-off-by: Maxence Younsi <mx.yns@outlook.fr>
2023-11-04 12:17:48 +01:00
mxyns
6691e1dc61 bgpd: temporary set timestamp to 0 for loc rib monitoring messages
set timestamp to 0 for loc rib monitoring messages as path selection time is not available atm
this is temporary and tv is meant to be set to the path selection/install time at some point

Signed-off-by: Maxence Younsi <mx.yns@outlook.fr>
2023-11-04 12:17:48 +01:00
mxyns
bbf6cb6867 bgpd: bmp loc-rib end-of-rib message add peer distinguisher
added peer distinguisher for BMP_PEER_TYPE_LOC_RIB_INSTANCE in bmp_eor

Signed-off-by: Maxence Younsi <mx.yns@outlook.fr>
2023-11-04 12:17:48 +01:00
mxyns
24f3d9ff1a bgpd: safer vrf/table name (RFC9069) info tlv
vrf_id_to_name is used for display values only and returns "Unknown" when the vrf is not found
doing a manual lookup and not providing any tlv when the vrf is not found should be better

Signed-off-by: Maxence Younsi <mx.yns@outlook.fr>
2023-11-04 12:17:48 +01:00
mxyns
f83857832f bgpd: bmp loc-rib RFC9069 compliant monitoring messages
set field peer bgp id to the peer's remote id in every case except loc-rib (RFC9069 case) in which we put the bgp instance's router-id if available or 0-filled if not available
set field peer asn to local primary bgp asn in case of loc-rib instance (RFC9069) else it's set to the peer's asn
set field peer address to 0 in loc-rib instance (RFC9069 case) and to the peer's address in other cases
had to pass struct bgp reference to bmp_per_peer_hdr to access router-id and such, but it's always safely accessed when used

Signed-off-by: Maxence Younsi <mx.yns@outlook.fr>
2023-11-04 12:17:48 +01:00
mxyns
f9af3476db bgpd: bmp set peer distinguisher with RD
peer distinguisher set to vrf RD if there is one or to vrf_id if in a vrf
set to 0 if in default vrf

Signed-off-by: Maxence Younsi <mx.yns@outlook.fr>
2023-11-04 12:17:48 +01:00
mxyns
c5512950f5 bgpd: bmp afi/safi sync for loc-rib
added afi/safi monitoring synchronisation for loc-rib
added peer_type_flag to bmp_eor signature, only set to BMP_PEER_TYPE_LOC_RIB and to 0 in other cases like it was before
updated tracelog to include peer_type_flag value

Signed-off-by: Maxence Younsi <mx.yns@outlook.fr>
2023-11-04 12:17:48 +01:00
mxyns
3d07f70f95 bgpd: fixed bmp vpnv4 monitoring withdraws instead of updates
vpnv4 monitoring always sends withdraws bc of wrong lookup call, fixes this

Signed-off-by: Maxence Younsi <mx.yns@outlook.fr>
2023-11-04 12:17:48 +01:00
mxyns
8f0a017e4f bgpd: peer distinguisher set to vrf id
set peer distinguisher to vrf id temporarily until i find out how to use the rd set for export on the vrf instance associated to this bgp instance

Signed-off-by: Maxence Younsi <mx.yns@outlook.fr>
2023-11-04 12:17:48 +01:00
mxyns
2c1900e0d1 bgpd: correct loc rib update queue cleanup
empties out and free the locrib specific queue's memory on bmp_close call

Signed-off-by: Maxence Younsi <mx.yns@outlook.fr>
2023-11-04 12:17:47 +01:00
mxyns
66e0c6f826 bgpd: peer flag set for loc-rib monitoring (left set to 0 in other cases)
set peer type flag to 3 for loc rib monitoring
leave to 0 in other cases like before, even though RFC7854 tells us to set it to 0 1 or 2 depending on the case global/rd/local instance

Signed-off-by: Maxence Younsi <mx.yns@outlook.fr>
2023-11-04 12:17:47 +01:00
Maxence Younsi
9d219585e6 bgpd: basic loc rib monitoring (no syncing yet, not rfc compliant encoding)
bmp loc rib monitoring rfc 9069 debuts, loc-rib monitoring draft/poc

Signed-off-by: Maxence Younsi <mx.yns@outlook.fr>
2023-11-04 12:17:47 +01:00
Donald Sharp
d4c596d77f
Merge pull request #14728 from FRIDM636/rework_debug_pathd_pcep
pathd: rework debug pathd pcep command
2023-11-03 18:08:17 -04:00