E.g.:
```
% The Graceful Restart command used is not valid at this moment.
zsh: exit 1 vtysh -c configure -c 'router bgp' -c 'no neighbor 127.0.0.1 graceful-restart
1
```
This does not make sense frr-reload to fail.
Instead, just ignore such requests if they are just NOOP.
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
(cherry picked from commit 9ebdb8e80d)
When BGP receives an SRV6_LOCATOR_ADD message from zebra, it calls the
`bgp_zebra_process_srv6_locator_add()` function to process the message.
`bgp_zebra_process_srv6_locator_add()` decodes the message first, and
then if the pointer to the default BGP instance is NULL (i.e. the
default BGP instance is not configured yet), it returns early without
doing anything and without using the decoded message information.
This commit fixes the order of the operations executed by
`bgp_zebra_process_srv6_locator_add()`. We first ensure that the default
BGP instance is ready and we return early if it is not. Then, we decode
the message and do something with the information contained in it.
Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
(cherry picked from commit bdc2c7bc54)
When BGP receives a `SRV6_LOCATOR_DEL` from zebra, it invokes
`bgp_zebra_process_srv6_locator_delete` to process the message.
`bgp_zebra_process_srv6_locator_delete` obtains a pointer to the default
BGP instance and then dereferences this pointer.
If the default BGP instance is not ready / not configured yet, this
pointer this pointer is `NULL` and dereferencing it causes BGP to crash.
This commit fix the issue by adding a a check to verify if the pointer
is `NULL` and returning early if it is.
Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
(cherry picked from commit ae3241b96d)
`point-to-multipoint` was missing on the removal variant of this CLI
command.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
(cherry picked from commit 52734fc8e5)
interface_up also handles changes to the interface type, i.e. broadcast
to ptp to ptmp. Connected routes for these are different and must be
readvertised, which is done in ospf6_interface_recalculate_cost() - but
only if the cost changed. Use the force variant here.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
(cherry picked from commit d7f54c4d56)
The code emitting connected routes was checking against the interface
state (which can also be lo/ptp/ptmp) rather than the interface type.
This was causing wrong IA prefixes for connected routes getting put up
out if the interface was down intermittently.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
(cherry picked from commit 4aa200c7c5)
clang-format doesn't understand `DEFUN` and formats it rather ugly.
Standard approach was to skip these in clang-format, which hasn't
happened here sadly.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
(cherry picked from commit b47657600b)
c-ares has deprecated ares_gethostbyname() in version 1.28.0
Replace it with ares_getaddrinfo().
This fixes a build error on Fedora 40.
Signed-off-by: Andrew Cooks <acooks.at.bda@gmail.com>
(cherry picked from commit 89a2e4d825)
ares_process(...) has been deprecated.
Replace it with ares_process_fd(...)
Signed-off-by: Andrew Cooks <acooks.at.bda@gmail.com>
(cherry picked from commit 4540fa0a3e)
If frr.conf has bgp as-path access-list clause without sequence number
then upon performing frr-rleoad, the running config clause with sequence
number will always be deleted and the new ones without sequence will
be re-added.
This could lead to blackholing until the config gets reapplied.
Testing:
frr.conf:
bgp as-path access-list important_internet_bgp_as_numbers permit _16509_
Running config:
bgp as-path access-list important_internet_bgp_as_numbers seq 5 permit
_16509_
!
Before fix
Upon frr-reload it deletes and readd line as without seq
2024-04-26 03:16:45,772 INFO: Executed "no bgp as-path access-list
important_internet_bgp_as_numbers seq 5 permit _16509_"
'bgp as-path access-list important_internet_bgp_as_numbers permit
_16509_\n'
After fix:
no form is not executed and no delta determine between frr.conf
and running-config.
Signed-off-by: Chirag Shah <chirag@nvidia.com>
(cherry picked from commit 439c6f70b5)
ospfv3 shows this unconditionally, and ospfv2 does not show `ip ospf network ...` if the type of the interface matches the specified network.
Fixes: https://github.com/FRRouting/frr/issues/15817
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
pimd crashs while unconfigure of rp ka timer as we are trying to access
a yand dnode(suppress timer) which does not exist at the moment.
User just configured rp keepalive timer and not suppress timer,
the yang dnode would not be present. Instead of directly accessing
yang_dnode_get_unit16, first check the yang node exist using
the xpath.
Ticket: #3874971
Testing:
Before:
------
tor-11(config)# no ip pim rp keep-alive-timer 3000
vtysh: error reading from pimd: Success (0)Warning: closing connection to pimd because of an I/O error!
Broadcast message from root@tor-11 (somewhere) (Mon Apr 22 17:29:12 2024):
cumulus-core: Running cl-support for core files "pimd.25467.1713806952.core"
After:
-----
tor-11(config)# no ip pim rp keep-alive-timer 3000
tor-11(config)#
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Signed-off-by: Vijayalaxmi Basavaraj <vbasavaraj@nvidia.com>
(cherry picked from commit 0c4b7c1f1f)
In zebra_interface_nhg_reinstall zebra is checking that the
nhg is a singleton and not a blackhole nhg. This was originally
done with checking that the nexthop is a NEXTHOP_TYPE_IFINDEX,
NEXTHOP_TYPE_IPV4_IFINDEX and NEXTHOP_TYPE_IPV6_IFINDEX. This
was excluding NEXTHOP_TYPE_IPV4 and NEXTHOP_TYPE_IPV6. These
were both possible to be received and maintained from the upper
level protocol for when a route is being recursively resolved.
If we have gotten to this point in zebra_interface_nhg_reinstall
the nexthop group has already been installed at least once
and we *know* that it is actually a valid nexthop. What the
test is really trying to do is ensure that we are not reinstalling
a blackhole nexthop group( Which is not possible to even be
here by the way, but safety first! ). So let's change
to test for that instead.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
(cherry picked from commit 29c1ff446e)
If a command is not marked as `YANG`-converted, the current command
batching buffer is flushed before executing the command. We shouldn't
flush the buffer when executing an `exit` command. It should only be
flushed if the next command is not `YANG`-converted, which is checked by
the command itself, not the previous `exit`.
Fixes#15706.
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
(cherry picked from commit 57811a53ba)
if frr.conf file contains 'interface x vrf <name> config
it causes protocol (like ospf) neighbor session flap,
as it deletes interface base config line ('interface x') from
running config and readds with 'interface x vrf <name>'
line from frr.conf.
This deletion and readdition of lines leads to neighborship
flaps.
This issue is by product of (PR-10411 | https://github.com/FRRouting/frr/pull/10411)
(commit id: 788a036fdb)
where running config for interface config no loger displays associated
vrf line.
Ticket: #3858146
Testing:
frr.conf
interface swp1.2 vrf vrf1012
ip ospf network point-to-point
running-config:
interface swp1.2
ip ospf network point-to-point
exit
Before fix:
frr-reload logs:
2024-04-09 00:28:31,096 INFO: Executed "interface swp1.2 no ip ospf
network point-to-point exit"
'interface swp1.2 vrf vrf1012\n ip ospf network
point-to-point\nexit\n',
After fix:
frr-reload strips vrf line, thus no config change between
frr.conf and running config.
Signed-off-by: Chirag Shah <chirag@nvidia.com>
(cherry picked from commit c1356f0e85)
The usage of the `bgp bestpath med missing-as-worst` command
was being accepted and applied during bestpath, but during output
of the routes affected by this it would not give any indication
that this was happening or what med value was being used.
Fixes: #15718
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
(cherry picked from commit bc9885b22e)
The encoded DNSSL length is not set so the value is missing from RA
packet.
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
(cherry picked from commit 8d6f7a4397)
Major highlights:
- Introduce local host routes
- Require libyang 2.1.128
- Add suport to configure a log file per daemon
- BGP BMP Loc-RIB (RFC9069) support
- eBGP-OAD (One Administrative Domain) support
- BGP RPKI VRF support
- BGP SNMP traps for BGP4-MIBV2
- Management (mgmtd) daemon "replace" operation support
- BGP dynamic capabilities for addpath, fqdn, orf capabilities
- SRv6 encapsulation source address feature
- OSPFv3 Point-To-Multipoint mode
- bgpd
* Add clear bgp capabilities command to resend some dynamic capabilities link
* bgpd: Add debug bgp updates detail command link
* Add debug bgp updates <in|out> <X.Y.Z.W> prefix-list <NAME> command link
* Add neighbor capability fqdn command link
* Add redistribute table-direct support link
* Fix match ip address ... + match evpn ... commands for EVPN
* Remove aggregated (summary-only) suppressed routes from EVPN
- mgmtd
* Implement full XPATH 1.0 predicate functionality
* Output staticd configuration from mgmtd
- ospfd
* Fix crash in OSPF TE parsing
- ospf6d
* Advertise local addresses with la bit
* Set loopback interface cost to 0
* Let the user override interface cost for a loopback
- pathd
* Add dynamic candidate path metric [computed] keyword link
* Add no msd command in the pcc context
* Add no pcep command
- vtysh
* Send interface commands to mgmtd
- watchfrr
* Extend the ignore option to the daemon being killed
- zebrad
* Add mpls label dynamic-block command link
* Add JSON support to show debugging label-table link
* Add zebra to mgmtd oper-state
* Allow longer prefix matches for the next hops
* Push all configured IP addresses when the interface comes up
* Remove static ARP entries on interface-down events
* Support to listen teamd netlink message as bond type
* Fix crash when macvlan link-interface is in another netns
Breaking Changes:
- Enable enforce-first-as by default for BGP
- noprefixroute flag for interface prefixes with NetworkManager
- Deprecate confd
Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>