Commit Graph

32737 Commits

Author SHA1 Message Date
Donald Sharp
6934a1d31d
Merge pull request #13968 from zhengxiang311019/patch-1
doc: fix the error path.
2023-07-11 12:25:40 -04:00
Russ White
b569109b90
Merge pull request #13963 from chiragshah6/fdev4
tools: fix ospf area stub summary in frr-reload
2023-07-11 11:52:02 -04:00
Russ White
916feb7acc
Merge pull request #13885 from donaldsharp/tests_need_to_be_stricter
Tests need to be stricter
2023-07-11 11:49:38 -04:00
Russ White
89aba318f7
Merge pull request #13876 from LabNConsulting/mjs/nhrp_resolving
Allow NHRP routes to validate incoming nexthops
2023-07-11 11:48:16 -04:00
Russ White
6e89a5db22
Merge pull request #13691 from LabNConsulting/aceelindem/ospf-opaque-interface-disable
ospfd: Configurable interface-level 'capability opaque' support
2023-07-11 11:47:32 -04:00
Donald Sharp
c8971388a9
Merge pull request #13958 from opensourcerouting/fix/coverity
Coverity fixes
2023-07-11 11:26:47 -04:00
Russ White
f46dc78367
Merge pull request #13880 from mjstapp/fix_ospf_intf_socket
ospfd: fix per-interface sockets
2023-07-11 10:23:37 -04:00
Russ White
d602e01745
Merge pull request #13936 from ryndia/fix_ospf_lsa_leak
ospfd: fix lsa leak
2023-07-11 10:22:22 -04:00
Alexander Sohn
2dfc9167ab
bgpd: Fix memory leak by moving allocation of json object
Signed-off-by: Alexander Sohn <github@asohn.de>
2023-07-11 16:21:57 +02:00
Russ White
91336417f5
Merge pull request #13947 from opensourcerouting/feature/bgpd_show_version_if_description_is_not_defined
bgpd: Show neighbors software version if description is not set
2023-07-11 10:20:04 -04:00
Russ White
220d7b1a89
Merge pull request #13948 from opensourcerouting/fix/bgpd_rfc7606_adjustments
bgpd: Some rfc7606 adjustments
2023-07-11 10:19:30 -04:00
Russ White
684ab69ca2
Merge pull request #13955 from opensourcerouting/fix/deprecate_orf_bgpd_130
bgpd: Deprecate Prestandard Outbound Route Filtering capability
2023-07-11 10:18:19 -04:00
Russ White
7682b3f5b4
Merge pull request #13956 from chiragshah6/fdev2
bgpd: fix evpn zclient_send_messge return code
2023-07-11 10:16:55 -04:00
Russ White
f0f2c7be41
Merge pull request #13964 from pguibert6WIND/mpls_again
zebra: fix mpls config on ifaces created post frr
2023-07-11 10:12:04 -04:00
Russ White
49bf7b319f
Merge pull request #13970 from ton31337/fix/bgpd_tunnel_encap_attr
bgpd: Get 1 or 2 octets for Sub-TLV length (Tunnel Encap attr)
2023-07-11 10:09:25 -04:00
Russ White
8467a99b02
Merge pull request #13971 from opensourcerouting/fix-bgp-delayopen-expire-test
tests: fix BGP delayopen timer expiration test
2023-07-11 10:09:01 -04:00
Russ White
29e232a443
Merge pull request #13975 from mjstapp/fix_isis_gmtime
isisd: replace gmtime with gmtime_r
2023-07-11 10:05:43 -04:00
Donatas Abraitis
d052f417cb
Merge pull request #13976 from anlancs/fix/cleanup-23
zebra: adjust one debug info
2023-07-11 13:21:09 +03:00
Donatas Abraitis
41e35fe8c0
Merge pull request #13972 from donaldsharp/bgp_sync_issue
bgpd: Fix table manager to use the synchronous client
2023-07-11 12:53:44 +03:00
Donatas Abraitis
7bd42a835c
Merge pull request #13715 from patrasar/pim_nexthop
pimd, pim6d: Added pimEnabled field in "show ip pim nexthop json" cli
2023-07-11 11:25:18 +03:00
anlan_cs
5581a7fc08 zebra: adjust one debug info
Adjust one debug info, separate the ip address from it. Just like it is processed
in `redistribute_update()`.

Before:
```
34:1375.75.75.75/32: Redist del: re 0x55c1112067e0 (0:static), new re 0x55c1112de7c0 (0:static)
```

After:
```
(34:13):75.75.75.75/32: Redist del: re 0x55c1112067e0 (0:static), new re 0x55c1112de7c0 (0:static)
```

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2023-07-11 13:36:09 +08:00
xzheng
c46a231a8d doc: fix the error path
fix the error path.

Signed-off-by: xzheng <zhengxiang311019@163.com>
2023-07-11 09:45:35 +08:00
Mark Stapp
6bbf00fc45 isisd: replace gmtime with gmtime_r
No gmtime() allowed - use gmtime_r()

Signed-off-by: Mark Stapp <mjs@labn.net>
2023-07-10 17:06:17 -04:00
Mark Stapp
bf465adc57 tests: add route-install test using NHRP tunnel
Add a test-case to the NHRP test that installs routes over the
NHRP tunnel endpoint routes. This confirms that zebra will use
NHRP routes when validating incoming routes from other daemons
(sharpd in this test).

Signed-off-by: Mark Stapp <mjs@labn.net>
2023-07-10 16:43:53 -04:00
Mark Stapp
89ff272d38 sharpd: allow sharpd to install non-recursive routes
Add a config option so that sharpd can install routes without
the ALLOW_RECURSION flag, matching IGP behavior.
The default remains 'recursion'.

Signed-off-by: Mark Stapp <mjs@labn.net>
2023-07-10 16:43:53 -04:00
Mark Stapp
bb58cad150 zebra: use NHRP routes as valid in nexthop check
Treat NHRP-installed routes as valid, as if they were
CONNECTED routes, when checking candidate routes'
nexthops for validity. This allows use of NHRP by an
IGP, for example, that doesn't normally want recursive
nexthop resolution.

Signed-off-by: Mark Stapp <mjs@labn.net>
2023-07-10 16:43:53 -04:00
Mark Stapp
281e7685c1 nhrpd: clean up locals in route zapi api
Clean up use of a nexthop pointer - seemed inconsistent.

Signed-off-by: Mark Stapp <mjs@labn.net>
2023-07-10 16:43:53 -04:00
Donatas Abraitis
4bd04364ad zebra: Guard printing an error by checking if VRF is not NULL
Check if vrf_lookup_by_id() didn't return a NULL before dereferencing in
flor_err().

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-07-10 22:37:35 +03:00
Donatas Abraitis
f5fee8dd54 zebra: Check if ifp is not NULL in zebra_if_update_ctx()
Use the same logic as zebra_if_netconf_update_ctx().

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-07-10 22:37:33 +03:00
Donatas Abraitis
803375ac69 zebra: Do not check ifp for NULL
It's already checked at the bottom of the function.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-07-10 22:36:59 +03:00
Donald Sharp
3bde2e3d33 bgpd: Fix table manager to use the synchronous client
bgp_zebra_tm_connect calls bgp_zebra_get_table_range which
just used the global zclient.  Which of course still had
us exposing the global zclient to read and drop important
data from zebra.  This fixes commit 787c61e03c

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-07-10 10:48:43 -04:00
Donald Sharp
1e0b6a601e bgpd: Fix table manager to use the synchronous client
bgp_zebra_tm_connect calls bgp_zebra_get_table_range which
just used the global zclient.  Which of course still had
us exposing the global zclient to read and drop important
data from zebra.  This fixes commit 787c61e03c

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-07-10 10:47:17 -04:00
David Schweizer
59640b7223
tests: fix BGP delayopen timer expiration test
The changes allow the test to correctly pass in case the connection
between two peers is be established in less than 0.5 seconds after the
delayopen timer expires.

Signed-off-by: David Schweizer <dschweizer@opensourcerouting.org>
2023-07-10 15:46:05 +02:00
Donald Sharp
f4c29914b5 zebra: Lookup up nlsock * one time in call tree
Code is looking up the nlsock to generate the batch messages
and then looking it up again to get the response.  Let's
just look it up one time.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-07-10 09:06:40 -04:00
Donald Sharp
162b61ec16 tests: bgp_flowspec expand timings
Attempt to set the hold time in the bgp flowspec exabgp
config.  In addition it was noticed that upstream bgp_flowspec
tests are still not negotiating peering within the time frame
specified.  This is because the first tcp packet is missed
and no keepalive/hold time are negotiated and exabgp will
not attempt a reconnect for quite some time.  Make this
test slower when things go south.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-07-10 09:06:40 -04:00
Donald Sharp
377e92bc89 tests: Fix wrong config line in bgp_l3vpn_to_bgp_vrf
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-07-10 09:06:40 -04:00
Donald Sharp
f5c44adb73 tests: isis_tilfa_topo1 fails sometimes due to insufficient time
The isis_tilfa_topo1 test is failing because insufficient time was
given for isis to converge on the system under system load.  Extend
the time and decrease the hello-interval timers to give it more
of a chance to converge.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-07-10 09:06:40 -04:00
Donald Sharp
ce51339205 tests: bgp_vpnv4_per_nexthop_label is failing
The test is failing because it assumes a json key
is always present when it is not.  Test for it
before having the test fail.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-07-10 09:06:40 -04:00
Donald Sharp
481c540d28 tests: zebra_rib route-map run times fixup
I have a local test run where the sharp route-map usage
was being checked for 5 seconds.  I saw usages going up
for each 1 second check and the 5th one was at 497 out
of 500.  Looks like the system was really loaded.  Let's
give it more time to coalesce under heavy load.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-07-10 09:06:40 -04:00
Donald Sharp
9b38d8fec9 tests: Do not remove core files
Tests are removing core files and we are missing some
of them because of this.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-07-10 09:06:40 -04:00
Donald Sharp
a8510639ad tests: If a core file is generated fail the test
If a .dmp file is found in the test log directories
fail the test.

Issue: #13788
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-07-10 09:06:40 -04:00
Donald Sharp
caa278d0c7 tests: Look for zlog_backtrace in ci system
There are parts of our daemons that upon certain types
of errors that a zlog_backtrace is auto-generated.
It is desirable for this to be caught and have the
test auto-failed.

Issue: #13787
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-07-10 09:06:40 -04:00
Donald Sharp
b35dbae2c2
Merge pull request #13962 from opensourcerouting/fix/ignore_tests/lib/test_darr
tests: Ignore test_darr for git
2023-07-10 09:06:29 -04:00
Donatas Abraitis
79563af564 bgpd: Get 1 or 2 octets for Sub-TLV length (Tunnel Encap attr)
The total number of octets of the Sub-TLV Value field. The Sub-TLV Length field
contains 1 octet if the Sub-TLV Type field contains a value in the range from
0-127. The Sub-TLV Length field contains two octets if the Sub-TLV Type field
contains a value in the range from 128-255.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-07-10 16:05:18 +03:00
Sarita Patra
752c568226 pimd, pim6d: Added pimEnabled field in "show ip pim nexthop json" cli
The cli "show ip pim nexthop json" gives the RPF information.
However it doesn't give PIM enable status on the nexthop interface.

Added pimEnabled field in this clis,
this will tell if PIM is enabled or not on the nexthop interface.

Example:

frr# show ip pim nexthop
Number of registered addresses: 1
 Address    Interface  Nexthop
 108.0.0.2  ens224     108.0.0.2

frr# show ip pim nexthop json
{
  "108.0.0.2":{
    "address":"108.0.0.2",
    "nexthops":[
      {
        "interface":"ens224",
        "pimEnabled":true,
        "nexthop":"108.0.0.2"
      }
    ]
  }
}

frr# configure terminal
frr(config)# int ens224
frr(config-if)# no ip pim
frr(config-if)# end

frr# show ip pim nexthop json
{
  "108.0.0.2":{
    "address":"108.0.0.2",
    "nexthops":[
      {
        "interface":"ens224",
        "pimEnabled":false,
        "nexthop":"108.0.0.2"
      }
    ]
  }
}

Signed-off-by: Sarita Patra <saritap@vmware.com>
2023-07-10 05:03:04 -07:00
Philippe Guibert
71b0b0d3b3 zebra: fix mpls config on ifaces created post frr
The mpls configuration does not work when an interface is
created after having applied the frr configuration. The
below scenario illustrates:

> root@dut:~# modprobe mpls
> root@dut:~# zebra &
> [..]
> dut(config)# interface ifacenotcreated
> dut(config-if)# mpls enable
> dut(config-if)# Ctrl-D
> root@dut:~# ip li show ifacenotcreated
> Device "ifacenotcreated" does not exist.
> root@dut:~# ip li add ifacenotcreated type dummy
> 0

Fix this by forcing the mpls flag when the interface is detected.

> root@dut:~# cat /proc/sys/net/mpls/conf/ifacenotcreat/input
> 1

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2023-07-09 21:57:01 +02:00
Chirag Shah
84f543a8a4 tools: fix ospf area stub summary in frr-reload
OSPFv2 no area x stub no-summary only resets
'no-summary' config. From frr-reload if the config
line 'area x stub no-summary' is removed then
it needs to remove completely. Before this change
it took two frr-roload to remove the config which is
inconsistent behavior.
Fix is to frr-reload to add extra line to delete
'no area x stub'.

Ticket:#3514775
Testing Done:

Running config:

router ospf
 ospf router-id 6.6.6.6
 area 0.0.0.1 stub no-summary
 area 0.0.0.2 stub
exit
!
router ospf vrf sym_1
 area 0.0.1.1 range 24.1.1.0/24
 area 0.0.1.2 stub no-summary
exit

changed frr.conf:
router ospf
 ospf router-id 6.6.6.6
 area 0.0.0.2 stub
exit
!
router ospf vrf sym_1
 area 0.0.1.1 range 24.1.1.0/24
exit

Lines To Delete
===============
router ospf
 no area 0.0.0.1 stub  <<<< newly added
router ospf vrf sym_1
 no area 0.0.1.2 stub  <<<< newly added
router ospf
 no area 0.0.0.1 stub no-summary
router ospf vrf sym_1
 no area 0.0.1.2 stub no-summary

After fix new running-config post reload:
i
router ospf
 ospf router-id 6.6.6.6
 area 0.0.0.2 stub
exit
!
router ospf vrf sym_1
 area 0.0.1.1 range 24.1.1.0/24
exit

Before fix running-config post 1st reload:

router ospf
 ospf router-id 6.6.6.6
 area 0.0.0.1 stub
 area 0.0.0.2 stub
exit
!
router ospf vrf sym_1
 area 0.0.1.1 range 24.1.1.0/24
 area 0.0.1.2 stub
exit

Signed-off-by: Chirag Shah <chirag@nvidia.com>
2023-07-09 11:53:22 -07:00
Donatas Abraitis
bea517b669 tests: Ignore test_darr for git
This file is generated after `make check`.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-07-08 22:41:34 +03:00
Chirag Shah
bad029e92d bgpd: fix evpn zclient_send_message return code
In scaled EVPN route sync from bgp to zebra, return
code can be ZCLIENT_SEND_BUFFERED which was treated
as error and leads to route install/uninstall failure.

Following error logs were seen:
2023-07-07T17:05:59.640899+03:00 vtep12 bgpd[15305]: [WYBZ0-MM8F1][EC
33554471] 0: Failed to uninstall EVPN IMET route in VNI 478
2023-07-07T17:05:59.640913+03:00 vtep12 bgpd[15305]: [Y5VKN-9BV7H][EC
33554471] default (0): Failed to uninstall EVPN [3]:[0]:[32]:[27.0.0.5]
route from VNI 465 IP table
2023-07-07T17:05:59.640927+03:00 vtep12 bgpd[15305]: [WYBZ0-MM8F1][EC
33554471] 0: Failed to uninstall EVPN IMET route in VNI 465
2023-07-07T17:05:59.640940+03:00 vtep12 bgpd[15305]: [Y5VKN-9BV7H][EC
33554471] default (0): Failed to uninstall EVPN [3]:[0]:[32]:[27.0.0.5]
route from VNI 173 IP table

Ticket:#3499957
Testing Done:

Before fix:

root@vtep12:mgmt:/home/cumulus# bridge -d -s fdb show | grep  27.0.0.5 |
wc -l
16010

Once source VTEP withdraws, DUT VTEP still has stale entries
root@vtep12:mgmt:~# bridge -d -s fdb show | grep  27.0.0.5 | wc -l
12990

After fix:

Once source VTEP withdraws, DUT VTEP still is able to delete entries
root@vtep12:mgmt:/home/cumulus# bridge -d -s fdb show | grep  27.0.0.5 |
wc -l
0

Zapi stats:

Client: bgp
[32/133]
------------------------
FD: 76
Connect Time: 00:26:17
Nexthop Registry Time: 00:26:11
Nexthop Last Update Time: 00:23:31
Client will Not be notified about it's routes status
Last Msg Rx Time: 00:21:33
Last Msg Tx Time: 00:23:31
Last Rcvd Cmd: ZEBRA_REMOTE_MACIP_ADD
Last Sent Cmd: ZEBRA_NEXTHOP_UPDATE

Type        Add         Update      Del
==================================================
IPv4        7           0           1
IPv6        0           0           0
Redist:v4   22          0           0
Redist:v6   0           0           0
VRF         2           0           0
Connected   4170        0           0
Interface   9           0           4
Intf Addr   2166        0           0
BFD peer    0           0           0
NHT v4      2           0           1
NHT v6      4           0           0
VxLAN SG    0           0           0
VNI         1010        0           0
L3-VNI      0           0           0
MAC-IP      46010       0           0
ES          2024        0           0
ES-EVI      0           0           0
Errors: 0

Signed-off-by: Chirag Shah <chirag@nvidai.com>
2023-07-07 18:55:04 -07:00
Donatas Abraitis
c76f6146ab bgpd: Deprecate Prestandard Outbound Route Filtering capability
https://www.rfc-editor.org/rfc/rfc8810.html

Not relevant anymore. Use RFC'd version of ORF.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-07-07 23:41:43 +03:00