Commit Graph

30207 Commits

Author SHA1 Message Date
Jafar Al-Gharaibeh
a221745a40
Merge pull request #11058 from opensourcerouting/fix/redhat_debian_logrotate
packaging: Reuse frr.logrotate for Debian and Redhat builds
2022-11-15 22:15:45 -06:00
Stephen Worley
3448b62542 bgpd: debug guard inQ limit
Add a debug guard for the inQ limit.

Signed-off-by: Stephen Worley <sworley@nvidia.com>
2022-11-15 15:28:09 -05:00
Stephen Worley
1ee3556e5f
Merge pull request #12291 from anlancs/pimd/mtrace-fd
pimd: delay creating the socket
2022-11-15 11:46:27 -05:00
Philippe Guibert
f874552557 bgpd: authorise to select bgp self peer prefix on rr case
This commit addresses an issue that happens when using bgp
peering with a rr client, with a received prefix which is the
local ip address of the bgp session.

When using bgp ipv4 unicast session, the local prefix is
received by a peer, and finds out that the proposed prefix
and its next-hop are the same. To avoid a route loop locally,
no nexthop entry is referenced for that prefix, and the route
will not be selected.

When the received peer is a route reflector, the prefix has
to be selected, even if the route can not be installed locally.

Fixes: ("fb8ae704615c") bgpd: prevent routes loop through itself

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2022-11-15 09:49:38 +01:00
Donatas Abraitis
53317d66d1
Merge pull request #12307 from mtomaschewski/declare-a-check
tools: remove backslash from declare check regex
2022-11-15 09:13:33 +02:00
Donatas Abraitis
01637c3819
Merge pull request #12315 from donaldsharp/dplane_sorry
Dplane sorry
2022-11-15 09:11:33 +02:00
Donatas Abraitis
213e4807ef
Merge pull request #12045 from patrasar/pimv6_rpf_fix
pimd, pim6d: Update upstream IIF when pim disabled and enabled on an interface
2022-11-14 22:05:15 +02:00
Philippe Guibert
ec139f60f1 pathd: display SRTE policy status when removing policy
Create a function that logs the status of a given SR-TE policy.
Add a call to this function when a policy is being removed.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2022-11-14 17:42:55 +01:00
Philippe Guibert
b5ca313856 pathd: some traces are added to 'debug pathd ted' command.
Some traces initially displayed will be hidden behind the
vty command: 'debug pathd ted'.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2022-11-14 17:42:55 +01:00
Philippe Guibert
c1657d2669 pathd: use a define to store the the length of endpoint string
The endpoint string is a 46 byte length buffer. Use a single
place to store the length of that buffer.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2022-11-14 17:42:55 +01:00
Philippe Guibert
116f9b45ed pathd: add 'debug pathd policy' command
Add a new cli command to troubleshoort pathd daemon.
Some traces initially enabled are hidden behind this
cli command.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2022-11-14 17:42:44 +01:00
Philippe Guibert
96cb277eb2 pathd: display path ted debugging status
On 'show debugging' call, display the status about
ted debugging.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2022-11-14 17:42:27 +01:00
Donatas Abraitis
84f784fafa
Merge pull request #12219 from cscarpitta/feature/srv6-usid-behavior-support
bgpd, zebra: Add support for SRv6 uSID Behaviors
2022-11-14 16:13:39 +02:00
Donald Sharp
551fa8c354 zebra: Fix dplane_fpm_nl to allow for fast configuration
If you have this order in your configuration file:

no fpm use-next-hop-groups
fpm address 127.0.0.1

the dplane code was using the same event thread t_event and the second
add event in the code was going, you already have an event scheduled
and as such the second event does not overwrite it.  Leaving
no code to actually start the whole processing.  There are probably
other cli iterations that will cause this fun as well, but I'm
not going to spend the time sussing them out at the moment.

Fixes: #12314
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-11-14 08:31:18 -05:00
Donald Sharp
dc31de93e1 zebra: Use the enum, luke
Use the enum and let the compiler help us figure out
what cases are being missed.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-11-14 08:06:16 -05:00
Donald Sharp
edb904e81c
Merge pull request #12234 from opensourcerouting/fix/bgp_regex_pcre
docker: Use PCRE2 for Alpine
2022-11-14 07:57:47 -05:00
Donatas Abraitis
ff18b7b078 bgpd: Implement SNMP BGP4V2-MIB (bgp4V2PeerEntry)
http://www.circitor.fr/Mibs/Mib/B/BGP4V2-MIB.mib

Compared with Arista BGP4V2-MIB implementation, almost identical (despite that
Arista has slightly some additional MIBs).

Example:

```
iso.3.6.1.3.5.1.1.2.1.1.1.4.192.168.10.64 = Gauge32: 0
iso.3.6.1.3.5.1.1.2.1.1.1.4.192.168.10.65 = Gauge32: 0
iso.3.6.1.3.5.1.1.2.1.1.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 0
iso.3.6.1.3.5.1.1.2.1.1.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.121 = Gauge32: 0
iso.3.6.1.3.5.1.1.2.1.1.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.128 = Gauge32: 0
iso.3.6.1.3.5.1.1.2.1.2.1.4.192.168.10.64 = INTEGER: 0
iso.3.6.1.3.5.1.1.2.1.2.1.4.192.168.10.65 = INTEGER: 0
iso.3.6.1.3.5.1.1.2.1.2.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 2
iso.3.6.1.3.5.1.1.2.1.2.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.121 = INTEGER: 0
iso.3.6.1.3.5.1.1.2.1.2.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.128 = INTEGER: 0
iso.3.6.1.3.5.1.1.2.1.3.1.4.192.168.10.64 = Hex-STRING: 00 00 00 00
iso.3.6.1.3.5.1.1.2.1.3.1.4.192.168.10.65 = Hex-STRING: 00 00 00 00
iso.3.6.1.3.5.1.1.2.1.3.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Hex-STRING: 2A 02 47 80 01 23 00 00 00 00 00 00 00 00 00 01
iso.3.6.1.3.5.1.1.2.1.3.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.121 = Hex-STRING: 00 00 00 00
iso.3.6.1.3.5.1.1.2.1.3.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.128 = Hex-STRING: 00 00 00 00
iso.3.6.1.3.5.1.1.2.1.4.1.4.192.168.10.64 = INTEGER: 0
iso.3.6.1.3.5.1.1.2.1.4.1.4.192.168.10.65 = INTEGER: 0
iso.3.6.1.3.5.1.1.2.1.4.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 2
iso.3.6.1.3.5.1.1.2.1.4.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.121 = INTEGER: 0
iso.3.6.1.3.5.1.1.2.1.4.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.128 = INTEGER: 0
iso.3.6.1.3.5.1.1.2.1.5.1.4.192.168.10.64 = Hex-STRING: 00 00 00 00
iso.3.6.1.3.5.1.1.2.1.5.1.4.192.168.10.65 = Hex-STRING: 00 00 00 00
iso.3.6.1.3.5.1.1.2.1.5.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Hex-STRING: 2A 02 47 80 01 23 00 00 00 00 00 00 00 00 00 02
iso.3.6.1.3.5.1.1.2.1.5.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.121 = Hex-STRING: 00 00 00 00
iso.3.6.1.3.5.1.1.2.1.5.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.128 = Hex-STRING: 00 00 00 00
iso.3.6.1.3.5.1.1.2.1.6.1.4.192.168.10.64 = Gauge32: 0
iso.3.6.1.3.5.1.1.2.1.6.1.4.192.168.10.65 = Gauge32: 0
iso.3.6.1.3.5.1.1.2.1.6.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 179
iso.3.6.1.3.5.1.1.2.1.6.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.121 = Gauge32: 0
iso.3.6.1.3.5.1.1.2.1.6.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.128 = Gauge32: 0
iso.3.6.1.3.5.1.1.2.1.7.1.4.192.168.10.64 = Gauge32: 65000
iso.3.6.1.3.5.1.1.2.1.7.1.4.192.168.10.65 = Gauge32: 65000
iso.3.6.1.3.5.1.1.2.1.7.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 65000
iso.3.6.1.3.5.1.1.2.1.7.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.121 = Gauge32: 65000
iso.3.6.1.3.5.1.1.2.1.7.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.128 = Gauge32: 65000
iso.3.6.1.3.5.1.1.2.1.8.1.4.192.168.10.64 = Hex-STRING: C0 00 02 FC
iso.3.6.1.3.5.1.1.2.1.8.1.4.192.168.10.65 = Hex-STRING: C0 00 02 FC
iso.3.6.1.3.5.1.1.2.1.8.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Hex-STRING: C0 00 02 FC
iso.3.6.1.3.5.1.1.2.1.8.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.121 = Hex-STRING: C0 00 02 FC
iso.3.6.1.3.5.1.1.2.1.8.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.128 = Hex-STRING: C0 00 02 FC
iso.3.6.1.3.5.1.1.2.1.9.1.4.192.168.10.64 = Gauge32: 0
iso.3.6.1.3.5.1.1.2.1.9.1.4.192.168.10.65 = Gauge32: 0
iso.3.6.1.3.5.1.1.2.1.9.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 54814
iso.3.6.1.3.5.1.1.2.1.9.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.121 = Gauge32: 0
iso.3.6.1.3.5.1.1.2.1.9.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.128 = Gauge32: 0
iso.3.6.1.3.5.1.1.2.1.10.1.4.192.168.10.64 = Gauge32: 65002
iso.3.6.1.3.5.1.1.2.1.10.1.4.192.168.10.65 = Gauge32: 65002
iso.3.6.1.3.5.1.1.2.1.10.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 65002
iso.3.6.1.3.5.1.1.2.1.10.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.121 = Gauge32: 65001
iso.3.6.1.3.5.1.1.2.1.10.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.128 = Gauge32: 65001
iso.3.6.1.3.5.1.1.2.1.11.1.4.192.168.10.64 = Hex-STRING: 00 00 00 00
iso.3.6.1.3.5.1.1.2.1.11.1.4.192.168.10.65 = Hex-STRING: 00 00 00 00
iso.3.6.1.3.5.1.1.2.1.11.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = STRING: "dddd"
iso.3.6.1.3.5.1.1.2.1.11.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.121 = Hex-STRING: 00 00 00 00
iso.3.6.1.3.5.1.1.2.1.11.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.128 = Hex-STRING: 00 00 00 00
iso.3.6.1.3.5.1.1.2.1.12.1.4.192.168.10.64 = INTEGER: 2
iso.3.6.1.3.5.1.1.2.1.12.1.4.192.168.10.65 = INTEGER: 2
iso.3.6.1.3.5.1.1.2.1.12.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 2
iso.3.6.1.3.5.1.1.2.1.12.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.121 = INTEGER: 2
iso.3.6.1.3.5.1.1.2.1.12.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.128 = INTEGER: 2
iso.3.6.1.3.5.1.1.2.1.13.1.4.192.168.10.64 = INTEGER: 1
iso.3.6.1.3.5.1.1.2.1.13.1.4.192.168.10.65 = INTEGER: 3
iso.3.6.1.3.5.1.1.2.1.13.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 1
iso.3.6.1.3.5.1.1.2.1.13.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.121 = INTEGER: 3
iso.3.6.1.3.5.1.1.2.1.13.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.128 = INTEGER: 1
iso.3.6.1.3.5.1.1.2.1.14.1.4.192.168.10.64 = Hex-STRING: 4F 4B 00
iso.3.6.1.3.5.1.1.2.1.14.1.4.192.168.10.65 = Hex-STRING: 4F 4B 32 00
iso.3.6.1.3.5.1.1.2.1.14.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Hex-STRING: 69 70 76 36 00
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-11-14 10:43:03 +02:00
Sarita Patra
31b66ed67d pimd, pim6d: Don't allow pim disabled interface as nexthop
While doing nexthop lookup, only allow the nexthop
interafce which is PIM enabled.

Issue: #10782
Issue: #11931

Signed-off-by: Sarita Patra <saritap@vmware.com>
2022-11-14 00:17:48 -08:00
Sarita Patra
93d4f4f0dd pimd, pim6d: Update upstream rpf disable/enable pim on interface
Problem:
When "no ip pim" is executed on source connected interface, its
ifp->info is set to NULL. But KAT on this interface is still
running, it wrongly dereferences NULL. This leads to crash.

Root Cause:
pim upstream IIF is still pointing towards the source connected
interface which is not pim enabled and Mroute is still present in
the kernel.

Fix:
When “no ip pim” command gets executed on source connected interface,
then loop through all the pnc->nexthop, if any new nexthop found,
then update the upstream IIF accordindly, if not found then update
the upstream IIF as Unknown and uninstall the mroute from kernel.

When “ip pim” command gets executed on source connected interface,
then also loop through all the pnc->nexthop  and update the upstream IIF,
install the mroute in kernel.

Issue: #10782
Issue: #11931

Signed-off-by: Sarita Patra <saritap@vmware.com>
2022-11-14 00:17:48 -08:00
Sarita Patra
12211791a9 pimd, pim6d: Introduce pnc_hash_walk_data structure
This structure will contain pim_instance and interface
data.

Signed-off-by: Sarita Patra <saritap@vmware.com>
2022-11-14 00:17:48 -08:00
Sarita Patra
78623256b6 pim6d: Handle IPV6 for "no ipv6 pim"
Issue: #11931

Signed-off-by: Sarita Patra <saritap@vmware.com>
2022-11-14 00:17:48 -08:00
Donatas Abraitis
2c7c09d94c
Merge pull request #12308 from mtomaschewski/pam-account-warning
pam: declare root as sufficient frr pam account
2022-11-12 22:35:53 +02:00
Marius Tomaschewski
6031b8a322 pam: declare root as sufficient frr pam account
https://github.com/FRRouting/frr/pull/11465 enabled account verification,
but the pam config declares rootok as sufficient in authentication only
and not in account verification, what causes warning in the log:

vtysh[3747]: pam_warn(frr:account): function=[pam_sm_acct_mgmt]
             flags=0 service=[frr] terminal=[<unknown>] user=[root]
	     ruser=[<unknown>] rhost=[<unknown>]

Signed-off-by: Marius Tomaschewski <mt@suse.com>
2022-11-11 15:55:09 +01:00
Marius Tomaschewski
5216a05b32 tools: remove backslash from declare check regex
The backslash in `grep -q '^declare \-a'` is not needed and
causes `grep: warning: stray \ before -` warning in grep-3.8.

Signed-off-by: Marius Tomaschewski <mt@suse.com>
2022-11-11 15:43:59 +01:00
Jafar Al-Gharaibeh
744de7c695
Merge pull request #12303 from donaldsharp/relax_if_type_check
zebra: relax if_type check to allow early ES config creation
2022-11-11 00:14:41 -06:00
Jafar Al-Gharaibeh
2bb16f6472
Merge pull request #12269 from pguibert6WIND/ospf_external_lsa_crash
ospfd: prevent from crashing when processing external lsa
2022-11-10 13:20:50 -06:00
Anuradha Karuppiah
3fa177eed2 zebra: relax if_type check to allow early ES config creation
The API for configuring ES in zebra had a strict check for if_type
"isBond" that prevented the ES config from being created before the
interface.

Ticket: CM-29454

Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
2022-11-10 12:43:23 -05:00
Philippe Guibert
e5309c1a6e ospfd: prevent from crashing when processing external lsa
When using debug mode, the ei parameter may be NULL. In that
case, do not display the log trace, otherwise a crash will
happen.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2022-11-10 15:11:53 +01:00
Jafar Al-Gharaibeh
e07ff2ce13
Merge pull request #12297 from donaldsharp/pim_warn_to_debug
pimd: Convert zlog_warn to debug
2022-11-09 16:17:14 -06:00
Alexander Kanavin
a82d704b1e m4/ax_python.m4: check for python-x.y-emded.pc, not python-x.y.pc
Only the embed version includes necessary linker flags to link
with libpython.

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
2022-11-09 20:31:54 +01:00
Donatas Abraitis
8979fb74df
Merge pull request #12287 from donaldsharp/bgp_rpki_takes_too_long
Bgp rpki takes too long
2022-11-09 21:25:44 +02:00
Donald Sharp
7d7206a534 pimd: Convert zlog_warn to debug
The unable to find a nexthop should not be a warning it should
be a debug.  Switching over.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2022-11-09 13:51:46 -05:00
Donatas Abraitis
12853c02c4
Merge pull request #11736 from kuldeepkash/pim_v6
[PIMv6] Add new scenarios to multicast static_rp suite
2022-11-09 17:56:32 +02:00
Donatas Abraitis
1de753a735
Merge pull request #12281 from SaiGomathiN/11279
tools: Add pim6d support bundle commands
2022-11-09 15:14:46 +02:00
anlan_cs
b46fd50029 pimd: delay creating the socket
Bring error handling up front and delay creating socket so that
we don't think too much about closing the socket in error cases.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2022-11-09 04:11:23 -05:00
Jafar Al-Gharaibeh
25bc53234d
Merge pull request #12280 from opensourcerouting/fix/ospv6_show_passive_interface
ospf6d: Show if the interface is passive for `show ipv6 ospf6 interface`
2022-11-08 23:25:39 -06:00
Jafar Al-Gharaibeh
7c45db33c3
Merge pull request #12286 from ffontaine/master
zebra/netconf_netlink.c: fix build without AF_MPLS
2022-11-08 23:24:34 -06:00
Carmine Scarpitta
439d4c9b03 doc: Add documentation for behavior usid command
Add the documentation for the `behavior usid` command to zebra.

When the `behavior usid` command is set, a flag is added to the locator
to indicate that the locator is a uSID locator. When a locator is
specified as a uSID locator, the bgpd will install SRv6 behaviors with
the uSID in the dataplane and use the SRv6 uSID codepoints in the BGP
update message.

Signed-off-by: Carmine Scarpitta <carmine.scarpitta@uniroma2.it>
2022-11-08 22:44:24 +01:00
Carmine Scarpitta
c891f9ce0d tests: Add topotest for SRv6 uSID Locator
This test ensures that the command `behavior usid` works properly.

When the `behavior usid` command is set, a flag is added to the locator
to indicate that the locator is a uSID locator. This test verifies that
the locator works correctly when you set / unset the `behavior usid`
command.

Signed-off-by: Carmine Scarpitta <carmine.scarpitta@uniroma2.it>
2022-11-08 22:44:24 +01:00
Carmine Scarpitta
3a7e1f656e zebra: Add behavior usid command to VTY
Install a new command `behavior usid` into the `SRV6_LOC_NODE` CLI node.

This command allows the user to set/unset the `SRV6_LOCATOR_USID` flag
for an SRv6 locator. The `SRV6_LOCATOR_USID` flag indicates whether a
locator is a uSID locator or not. When the flag is set, the routing
daemons (e.g., bgpd) will install SRv6 behaviors with the uSID in the
dataplane.

Signed-off-by: Carmine Scarpitta <carmine.scarpitta@uniroma2.it>
2022-11-08 22:44:24 +01:00
Carmine Scarpitta
7e975421bd zebra: Add helpers to notify locator add/delete
In this commit, we add two helper functions
`zebra_notify_srv6_locator_add` and `zebra_notify_srv6_locator_delete`.
These functions are used to notify locator additions/deletions to
zclients.

Signed-off-by: Carmine Scarpitta <carmine.scarpitta@uniroma2.it>
2022-11-08 22:44:23 +01:00
Carmine Scarpitta
a3ff3dff3f lib,zebra: Add SRv6 uSID info to VTY output
In this commit, we extend to print the `SRV6_LOCATOR_USID` flag.
The output appears as follows:

```
{
  "locators":[
    {
      "name":"loc1",
      "prefix":"fc00:0:1::/48",
      "blockBitsLength":32,
      "nodeBitsLength":16,
      "functionBitsLength":16,
      "argumentBitsLength":0,
      "uSID":true,
      "statusUp":true,
      "chunks":[
        {
          "prefix":"fc00:0:1::/48",
          "proto":"bgp"
        }
      ]
    }
  ]
}
```

Signed-off-by: Carmine Scarpitta <carmine.scarpitta@uniroma2.it>
2022-11-08 22:44:23 +01:00
Carmine Scarpitta
05d99980f3 bgpd: Use SRv6 codepoints in the BGP Advertisement
Currently bgpd uses the opaque codepoint (0xFFFF) in the BGP
advertisement. In this commit, we update bgpd to use the SRv6 codepoints
defined in the IANA SRv6 Endpoint Behaviors Registry
(https://www.iana.org/assignments/segment-routing/segment-routing.xhtml)

Signed-off-by: Carmine Scarpitta <carmine.scarpitta@uniroma2.it>
2022-11-08 22:44:23 +01:00
Carmine Scarpitta
0494782554 lib: Add support for SRv6 Behavior codepoints
In this commit, we introduce a new enumeration to encode the SRv6
Endpoint Behaviors codepoints defined in the IANA SRv6 Endpoint
Behaviors Registry
(https://www.iana.org/assignments/segment-routing/segment-routing.xhtml).

Signed-off-by: Carmine Scarpitta <carmine.scarpitta@uniroma2.it>
2022-11-08 22:44:23 +01:00
Donald Sharp
31d0363ffc bgpd: rpki was decrementing the node lock one time too many
The code was this:

1)        match = bgp_table_subtree_lookup(rrp->bgp->rib[rrp->afi][rrp->safi],
                                         &rrp->prefix);

2)        node = match;

        while (node) {
                if (bgp_dest_has_bgp_path_info_data(node)) {
                        revalidate_bgp_node(node, rrp->afi, rrp->safi);
                }

3)               node = bgp_route_next_until(node, match);
        }

	if (match)
4)              bgp_dest_unlock_node(match);

At 1) match was locked and became +1
At 2) match and node are now equal
At 3) On first iteration, match is decremented( as that node points
at it ) and the next item is locked, if it is found, and returned which becomes node

If 3 is run again because node is non-null then, current node is decremented
and the next node found is incremented and returned which becomes node again.

So if we get to 4) match is unlocked again which is now a double unlock
which, frankly, is not good.  In all code paths that I can see the
test for `if (match) ...` is not needed so let's just remove it.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-11-08 14:47:00 -05:00
Donatas Abraitis
0b280b334c
Merge pull request #11302 from punith-shivakumar/master
ospf6d: add missing ABR task on interface start and change default task delay to 5
2022-11-08 21:28:30 +02:00
Pushpasis Sarkar
5b86dc9f0f
Merge pull request #11594 from louis-6wind/lfa-netlink
isisd: apply fast-reroute as soon an interface or an adjacency falls down
2022-11-08 23:19:39 +05:30
Fabrice Fontaine
fa60f2c2fa zebra/netconf_netlink.c: fix build without AF_MPLS
Fix the following build failure raised since version 8.4 and
d53dc9bd81:

zebra/netconf_netlink.c: In function 'netlink_netconf_change':
zebra/netconf_netlink.c:109:32: error: 'AF_MPLS' undeclared (first use in this function)
  109 |         if (ncm->ncm_family == AF_MPLS)
      |                                ^~~~~~~

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
2022-11-08 18:48:41 +01:00
Jafar Al-Gharaibeh
195ad0e793
Merge pull request #12258 from opensourcerouting/bgp-local-var-gcc-12
bgpd: fix "storing the address of local variable"
2022-11-08 10:36:36 -06:00
Donald Sharp
7f1f931447 bgpd: Break up rpki prefix revalidation by bgp structure
RPKI revalidation is an possibly expensive operation.  Break up
revalidation on a prefix basis by the `struct bgp` pointer.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-11-08 08:11:52 -05:00