bgpd: Allow proper shutdown of bgp dynamic peers in rare caseThere exists a series of events that causes dynamic peers to
accept new connections on a existing connection and leaving
everything in a weird state.
Series of events:
a) Interface down event
b) BGP places peering on queue to be cleared in the future
*note* that BGP is completely swamped and doesn't get to
this in a timely manner
c) Interface comes up
d) Peer is not loaded and attempts to rec...
tools: increase the number of FD in frr.serviceIn scale vrrp setup of 255 sessions, the current number of FD limit is
not enough. Hence increasing the FD limit 2048.
Each vrrp address family session open 2 socket(tx,rx), 4 socket per
ipv4&ipv6 session.
vrrpd process without any session have 18 FDs for various functionality
including garp and ND.
vrrpd 664325 frr 0r CHR 1,3 0t0 ...
tests: add test for multiple labels in BGP-LUAnnounce three routes with label stacks 777/10006, 90, 11/22/33/44/55,
check that `show bgp ipv6 PREFIX json` has proper labels in
`remoteLabels`.
Test for issue #19506
Signed-off-by: Kyrylo Yatsenko <hedrok@gmail.com>
bgpd: Support multiple labels in BGP-LUUpdated behaviour for SAFI_LABELED_UNICAST to support multiple labels:
* Change BGP_MAX_LABELS 2 -> 10 (maximum possible number of labels for
BGP-LU), previously for SAFI_LABELED_UNICAST only one label was
supported
* Save all labels when receiving an update event in
`bgp_nlri_get_labels`, send them all to zebra in
`bgp_zebra_announce_parse_nexthop`
One of uses of multiple labels is S...
zebra: fix crash due to lack of control of received number of srv6 SID from netlinkwe encounter the following crash;
(gdb) bt
at ./nptl/pthread_kill.c:44
at ./nptl/pthread_kill.c:78
at ./nptl/pthread_kill.c:89
context=0x7fffa2e82b80)
at /build/make-pkg/output/_packages/cp-routing/src/lib/sigevent.c:248
at ./nptl/pthread_kill.c:44
at ./nptl/pthread_kill.c:78
at ./nptl/pthread_kill.c:89
at ../sysdeps/posix/raise.c:26
fmt=fmt@entry=0x7a4f...
ospfd: Fix DO_NOT_AGE flag handlinglsa->data->ls_age is in network byte order, not in host order.
Ensure that endianness is taken properly into account in flag ops.
Ensure that DO_NOT_AGE bit is not lost on LS Age increment or when
maxaging.
DO_NOT_AGE flag must also be masked out when time in seconds is needed.
Signed-off-by: Ari Kauppi <kauppi@papupata.org>
tools: fix checkpatch.pl for 'FOO < BAR && ...'In the check $to gets value from $LvalOrFunc in regular expression that
ends with '\s*', so in case of check for
if (FOO < BAR && somethingelse)
$to equals 'BAR ' and check that on right side there is also a constant
fails.
Simple fix: add '\s*' to re that checks whether $to is constant.
Signed-off-by: Kyrylo Yatsenko <hedrok@gmail.com>
lib: Medium coverity fix - Dereference null return valueCID 109379: Dereferencing vrf, which is known to be NULL
Signed-off-by: Krishnasamy <krishnasamyr@nvidia.com>
lib: Medium coverity fix - Dereference null return valueCID 18907: Dereferencing bit, which is known to be NULL
Signed-off-by: Krishnasamy <krishnasamyr@nvidia.com>
lib: Medium coverity fix - Dereference null return valueCID 73544: Dereferencing vrf, which is known to be NULL
Signed-off-by: Krishnasamy <krishnasamyr@nvidia.com>
lib: Medium coverity fix - Dereference null return valueCID 20305: dereference: Dereferencing ifp, which is known to be NULL.
Signed-off-by: Krishnasamy <krishnasamyr@nvidia.com>
lib: Medium coverity fix - Dereference null return valueCID 19206: Dereferencing ifp, which is known to be NULL.
We’re tearing down the tree by repeatedly deleting a node
(if_delete(&ifp) removes it from the RB trees and frees it) until it’s
empty. Adding safe-check to satisfy coverity.
Signed-off-by: Krishnasamy <krishnasamyr@nvidia.com>
pimd: Prevent crash on interface removalPrevent a crash when we remove interfaces from pim configuration
at scale.
Ticket: CM-32197
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
zebra: ensure zif mac_list exists before unlinking macEnsure that an ifp's evpn mac_list still exists before trying
to reference it, when unlinking a mac object.
Signed-off-by: Mark Stapp <mstapp@nvidia.com>
ospfd: Reflect forwarding-address-self parameter in `show ip ospf`r1# show ip ospf json
{
...
"forwardingAddressSelf":true,
...
}
or
r1# show ip ospf
OSPF Routing Process, Router ID: 240.0.0.100
...
Forwarding address is set to self for external LSAs <<<<<<
...
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
ospfd: Implement `forwarding-address-self` commandThis command will be used to force external LSAs to be generated with the
Forwarding Address to be set to self to allow receiving routers sending the
traffic directly to the ASBR router instead of relying on the FD.
The use case is for ECMP if we receive an external LSA with the identical FD.
So in this case only a single entry will be installed into the RIB.
r3# show ip ospf database externa...
bgpd: be careful parsing incoming label in nlriOnly look at octets we think are valid when parsing a label
stack in an NLRI
Signed-off-by: Mark Stapp <mjs@cisco.com>
bgpd: Fix some CI warnings< WARNING: Prefer 'unsigned int' to bare use of 'unsigned'
< #895: FILE: /tmp/f1-3241746/bgp_aspath.c:895:
< WARNING: Prefer 'unsigned int' to bare use of 'unsigned'
< #898: FILE: /tmp/f1-3241746/bgp_aspath.c:898:
< WARNING: Missing a blank line after declarations
< #927: FILE: /tmp/f1-3241746/bgp_aspath.c:927:
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
tests: Add BGP maximum-prefix session recovery topotestTest BGP session recovery after maximum-prefix overflow when limit
is increased or unset for regular neighbors and peer-groups.
Signed-off-by: Rajasekar Raja <rajasekarr@nvidia.com>
ospfd: fix sign comparison warnings in SNMP codeFix compiler warnings about comparing signed and unsigned integers
by casting arithmetic expressions to size_t to match the type of
*length parameter.
Fixed in functions:
- ospfAreaRangeLookup
- ospfHostLookup
- ospfIfLookup
- ospfIfMetricLookup
- ospfVirtIfLookup
- ospfNbrLookup
- ospfExtLsdbLookup
Signed-off-by: jared mauch <jared@puck.nether.net>
bgpd: Fix maximum-prefix session recovery for peers and peer-groupsWhen a BGP session goes down due to maximum-prefix overflow, modifying
the configuration should allow the session to recover. However, the
session remains in Idle state because PEER_STATUS_PREFIX_OVERFLOW is
not cleared.
Fix three scenarios:
1. Increasing maximum-prefix limit on regular neighbor
2. Increasing maximum-prefix limit on peer-group member
3. Unsetting maximum-prefix on peer-group m...