Commit Graph

35448 Commits

Author SHA1 Message Date
Donatas Abraitis
4cedd22253
Merge pull request #15766 from louis-6wind/fix-network-rd
bgpd: fix show run of network route-distinguisher
2024-04-24 14:34:19 +03:00
Donald Sharp
3fa7876304
Merge pull request #15819 from louis-6wind/fix-snmp-oid
bgpd, ospfd: fix non increasing SNMP OID
2024-04-24 07:25:22 -04:00
Chirag Shah
da2093ba39 tools: fix frr-reload for no ip msdp peer cmd
no form of 'ip pm msdp peer <> source <>' does not
accept source argument. Stip the 'source <>' part from
config line being deleted via frr-reload.

Ticket: #3874971
Testing:

Config:
vrf blue
 ip msdp peer 1.1.1.1 source 1.1.1.1

frr-reload failure log:
2024-04-23 02:08:32,501  INFO: Failed to execute vrf blue  no ip
msdp peer 1.1.1.1 source 1.1.1.1 exit
2024-04-23 02:08:32,501 ERROR: "vrf blue --  no ip msdp peer 1.1.1.1
source 1.1.1.1 -- exit" we failed to remove this command
2024-04-23 02:08:32,501 ERROR: % Unknown command:  no ip msdp peer
1.1.1.1 source 1.1.1.1

Signed-off-by: Chirag Shah <chirag@nvidia.com>
2024-04-23 13:40:13 -07:00
Chirag Shah
bb52e5ebdc tools: fix pim interface config deletionII
When no ip pim is performed subsequent pim related
configs under the interface also implicitly deleted.
The previous fix was attempting to remove from the same
list which was being integrated.
First collect the lines to remove in separate list
then at the end remove from the original lines_to_del.

commit 623af04e1c does not work properly if tries to delete
an entry from existing list which is being walked on.

Ticket: #3869779

Testing done:

frr.conf:
no interface config

running-config:
--------------
interface swp1
ip pim
ip pim active-active
ip pim allow-rp rp-list sample
ip pim bfd
ip pim use-source 1.1.1.1
ip multicast boundary oil test
exit

frr-reload log pointing only no ip pim config
is removed under interface:
2024-04-18 18:44:37,202  INFO: "frr defaults datacenter" cannot be removed
2024-04-18 18:44:37,202  INFO: "service integrated-vtysh-config" cannot be removed
2024-04-18 18:44:37,504  INFO: Executed "interface swp1  no ip pim exit"
2024-04-18 18:44:37,505  INFO: /var/run/frr/reload-YHS51E.txt content

Signed-off-by: Chirag Shah <chirag@nvidia.com>
2024-04-23 13:40:07 -07:00
Mark Stapp
1c49f93b5f
Merge pull request #15769 from raja-rajasekar/rajasekarr/backpressure_display_i_o_buf
zebra: Actually display I/O buffer sizes (part-2)
2024-04-23 13:01:35 -04:00
Donald Sharp
99ae329047
Merge pull request #15801 from LabNConsulting/chopps/new-munet
Improve coverage functionality
2024-04-23 12:58:48 -04:00
Donald Sharp
d7a33de67f
Merge pull request #15810 from opensourcerouting/fix/enforce_first_as_bgp_peer-group
bgpd: Inherit some peer flags from the peer-group
2024-04-23 12:57:24 -04:00
Donald Sharp
b8f0be9ddd
Merge pull request #15714 from mjstapp/sync_pthread_startup
lib: serialize pthread startup
2024-04-23 12:55:27 -04:00
Lou Berger
cffec3cbad nhrp: replace hard coded retry time with value derived from holdtime
Signed-off-by: Lou Berger <lberger@labn.net>
2024-04-23 11:51:33 -04:00
Donatas Abraitis
1ce626aea6 vtysh: Show ip ospf network ... even if it's not the same as the interface type
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>
2024-04-23 17:13:46 +03:00
Philippe Guibert
a08922256a isis, lib: add isis srv6 capability to ls_node
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2024-04-23 14:27:01 +02:00
Philippe Guibert
196f0d69fa isisd, lib: add link state support for srv6 adjacencies
Add support for endx_lan and endx adjacency.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2024-04-23 14:27:01 +02:00
Philippe Guibert
03d2ad01a4 lib: fix srv6 locator flags propagated to isis
When usid is not used, the isis_srv6_topo1 test does not work.
The SID prefix allocated by isis is different when the usid
flags is set or not. When the flags is not transmitted to isis,
the SID allocated is supposed to be a 128 bit mask length SID,
which is not what the isis_srv6_topo1 test is supposed to obtain.

Fix this by exchanging the flags locator value in the zclient api.

Fixes: 9b7491e1fc ("lib: Add support for flags to the SRv6 locator")

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2024-04-23 14:25:48 +02:00
Philippe Guibert
5e7bb79f11 topotests: lib, fix filter out "At line 73 in /usr/share/snmp/mibs/ietf/SNMPv2-PDU" message
When testing SNMP service on FRR, the following error message may
appear on some distros.

> # snmpwalk -v2c -c public .1.3.6 1.1.1.1 <OID>
> Bad operator (INTEGER): At line 73 in /usr/share/snmp/mibs/ietf/SNMPv2-PDU
> [..then result ..]
>

The error message is due to the /etc/snmp/snmp.conf file. By default, this
file is used by both snmp server and client side. The net-snmp MIB parsing
routing loads MIBS, to bind oids with the naming scheme used by the MIBS.

> # cat /etc/frr/snmp.conf
> [snmp]
> mibs +ALL
>

A potential fix would consist in modifying the SNMPv2-PDU.mib file: the
problem is known on ubuntu distros, as the snmp-mibs-downloader package
has not updated the SNMPv2-PDU.mib file.

The choice is done to not modify the original distro where the test is run
on. Fix the topotests by ignoring the 'SNMPv2-PDU line 73" error message, and
keep the other error messages that may happen, for instance, when an
unknown oid name value is requested.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2024-04-23 14:24:51 +02:00
Mark Stapp
a4e60f3399
Merge pull request #15815 from donaldsharp/blackhole_reinstall
lib, zebra: Check for not being a blackhole route
2024-04-23 08:08:43 -04:00
Louis Scalbert
c1124a44c3 Revert "bgpd: fix pointer arithmetic in bgp snmp module"
This reverts commit d9bd9ebbf1.

The previous code was correct even if the coverity scanner was
complaining.

Fixes: https://github.com/FRRouting/frr/issues/15680
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-04-23 11:39:29 +02:00
Louis Scalbert
c7895ba320 Revert "ospfd: fix some dicey pointer arith in snmp module"
This reverts commit 438ef98701.

The previous code was correct even if the coverity scanner was
complaining.

Fixes: https://github.com/FRRouting/frr/issues/15680
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-04-23 11:36:14 +02:00
Louis Scalbert
3d3a138f5a bgpd: fix show run of network route-distinguisher
Route-distinguisher (RD) is not printed properly in show run:

>  address-family ipv6 vpn
>   network ff01::/64 rd (null) label 7
>   network ff01::/64 rd (null) label 8

ad151f66aa ("bgpd: Refactor bgp_static_set/bgp_static_set_safi") merged
bgp_static_set_safi into bgp_static_set but inadvertently omitted the
handling of prd_pretty.

Copy the pretty RD string if available.

> address-family ipv6 vpn
>  network ff01::/64 rd 75:5 label 7
>  network ff01::/64 rd 85:5 label 8

Fixes: ad151f66aa ("bgpd: Refactor bgp_static_set/bgp_static_set_safi")
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-04-23 10:39:21 +02:00
Igor Ryzhov
166a82ca6a
Merge pull request #15813 from pguibert6WIND/isis_srv6_backup_endx
isisd: fix renaming backup define for ENDX SID
2024-04-23 11:11:08 +03:00
Donatas Abraitis
bb7b0ff01f
Merge pull request #15536 from ak503/bgp_bfd
bgpd: fix disable bfd profile for neighbors.
2024-04-23 11:09:11 +03:00
Donatas Abraitis
0a6f661eae
Merge pull request #15717 from pguibert6WIND/vrf_label_allocate_when_necessary
bgpd: do allocate vrf label only when necessary
2024-04-23 11:08:21 +03:00
Donatas Abraitis
5738263065
Merge pull request #15750 from piotrsuchy/json_show_ip_prefix_list_fix
vtysh, lib: fix 'show ip[v6] prefix-list ... json' JSON display by moving it to vtysh to fix formatting issue
2024-04-23 11:06:44 +03:00
Donatas Abraitis
634d1375fa bgpd: Update IPv6 extended community sub-type for extended link bandwidth
Already assigned by IANA, just the draft is not yet updated.

https://www.iana.org/assignments/bgp-extended-communities/bgp-extended-communities.xhtml#trans-ipv6

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-04-23 08:55:00 +03:00
Donatas Abraitis
593a806510 tests: Check if extended link bandwidth can be more than 25gbps
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-04-22 17:50:08 +03:00
Donatas Abraitis
4d3e679b04 bgpd: Use snprintfrr() to print PRIu64 for ipv6_ecommunity_lb_str()
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-04-22 17:50:08 +03:00
Donatas Abraitis
055cc0488b tests: Check if extended link bandwidth is considered into also
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-04-22 17:50:08 +03:00
Donatas Abraitis
0703ae35cc bgpd: Include IPv6 extended community into multipath considerations
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-04-22 17:50:08 +03:00
Donatas Abraitis
d92a284523 bgpd: Extract link bandwidth from IPv6 extended community if received
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-04-22 17:50:08 +03:00
Donatas Abraitis
a988a0a88a *: Use uint64_t for weight down the path to Zebra
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-04-22 17:50:08 +03:00
Donatas Abraitis
e53bd69326 bgpd: Allow sending extended communities between OAD peers
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-04-22 17:50:08 +03:00
Donatas Abraitis
09e2a362a3 bgpd: Implement draft-li-idr-link-bandwidth-ext-01
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-04-22 17:50:08 +03:00
Donatas Abraitis
b29fdafa3f bgpd: Print IPv6 extended communities for show bgp <prefix>
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-04-22 17:50:08 +03:00
Donatas Abraitis
c8a2532ab3 bgpd: Add neighbor ... extended-link-bandwidth command
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-04-22 17:50:07 +03:00
Donatas Abraitis
540f81c346 bgpd: Print IPv6 extended community for show bgp attribute-info
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-04-22 17:49:16 +03:00
Donatas Abraitis
c4986af74e bgpd: Adopt ecommunity_linkbw_present for IPv6 extended communities
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-04-22 17:49:16 +03:00
Donatas Abraitis
d9219ee847 bgpd: Drop non ieee encoding parsing for ipv6 extended communities
Link-bandwidth is encoded into extended community, not ipv6 extended community.

Thus it's not needed here at all.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-04-22 17:49:00 +03:00
Donatas Abraitis
e0b64f2414 bgpd: Convert 32-bit to 64-bit link bandwidth variable (link_bw)
This is needed to implement and use larger bandwidths rather than limiting only
to theoretical 34Gbps max bandwidth.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-04-22 17:48:37 +03:00
Donatas Abraitis
85292ef926 doc: Add neighbor ... extended-link-bandwidth command
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-04-22 17:48:37 +03:00
Donald Sharp
29c1ff446e lib, zebra: Check for not being a blackhole route
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>
2024-04-22 10:44:55 -04:00
Igor Ryzhov
cb88ce132a lib: fix style and add more comments to NB code
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2024-04-22 16:49:03 +03:00
Igor Ryzhov
3c8336c845 tests: add topotest for mgmtd rpc processing
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2024-04-22 16:36:23 +03:00
Igor Ryzhov
6e0e84491b ripngd: convert RPC commands to mgmtd
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2024-04-22 16:36:23 +03:00
Igor Ryzhov
dbaf05ae3d ripd: convert RPC commands to mgmtd
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2024-04-22 16:36:23 +03:00
Igor Ryzhov
a94f74bc2e lib: add native RPC processing to mgmt frontend client
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2024-04-22 16:36:23 +03:00
Igor Ryzhov
cb6c182852 mgmtd: add native RPC processing
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2024-04-22 16:36:22 +03:00
Igor Ryzhov
5b219644ae mgmtd: add backend xpath map for RPC
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2024-04-22 16:36:22 +03:00
Igor Ryzhov
5c3e95d422 lib: add native RPC processing to mgmt backend client
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2024-04-22 16:36:22 +03:00
Igor Ryzhov
03883ee431 tests: add test for NB RPC callback
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2024-04-22 16:36:22 +03:00
Igor Ryzhov
58a8ebc1fc lib: rework northbound RPC callback
Change input/output arguments of the RPC callback from lists of
(xpath/value) tuples to YANG data trees.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2024-04-22 16:36:22 +03:00
Christian Hopps
7f7bcb1ffa
Merge pull request #15468 from idryzhov/mgmt-native-edit
mgmtd: add support for native 'edit' operation
2024-04-22 05:42:44 -04:00