Commit Graph

3338 Commits

Author SHA1 Message Date
Donatas Abraitis
06c1e53036
Merge pull request #14727 from fdumontet6WIND/bgp4v2_snmp
bgpd: fix bgp4v2 MIB NLRI INDEX format and order
2023-11-09 10:20:33 +01:00
Francois Dumontet
7df8e65e81 tests: take into account fix for NLRI Index
Signed-off-by: Francois Dumontet <francois.dumontet@6wind.com>
2023-11-08 21:20:17 +01:00
Donatas Abraitis
c12b976c0a tests: Check received prefixes before immediately sending dynamic capabilities
If we send capabilities immediately, before receiving an UPDATE message, we end up
with a notification received from the neighbor. Let's wait until we have the fully
converged topology and do the stuff.

Tested locally and can't replicate the failure, let's see how happy is the CI this time.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-11-08 16:39:08 +02:00
Christian Hopps
c27b054efe tests: add ability to show all types of valgrind memleaks
Signed-off-by: Christian Hopps <chopps@labn.net>
2023-11-07 15:29:37 -05:00
Farid MIHOUB
e7adf2762f tests: extend the bmp test to support bmp loc-rib
Configure the bmp monitor unicast loc-rib.
Check the logging messages for the updated/withdrawn prefixes with
the presence of the loc-rib peer-type.

Signed-off-by: Farid MIHOUB <farid.mihoub@6wind.com>
2023-11-04 12:19:30 +01:00
Farid MIHOUB
e65db90567 tests: rework bmp policy message logging
Add "policy" field to the logged bmp messages so policy checks within
topotests would be easier and clearer.

Signed-off-by: Farid MIHOUB <farid.mihoub@6wind.com>
2023-11-04 12:19:30 +01:00
Donald Sharp
2a65f05d77 lib: Remove unused WQ_RETRY_XXX enums
These enum's have been around since 2005 and FRR
still does not have any users of these particular
values.  After almost 20 years, let's simplify the
code slightly and remove them.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-11-03 18:06:01 +00:00
Donald Sharp
d4aa24ba7d *: Introduce Local Host Routes to FRR
Create Local routes in FRR:

S   0.0.0.0/0 [1/0] via 192.168.119.1, enp39s0, weight 1, 00:03:46
K>* 0.0.0.0/0 [0/100] via 192.168.119.1, enp39s0, 00:03:51
O   192.168.119.0/24 [110/100] is directly connected, enp39s0, weight 1, 00:03:46
C>* 192.168.119.0/24 is directly connected, enp39s0, 00:03:51
L>* 192.168.119.224/32 is directly connected, enp39s0, 00:03:51
O   192.168.119.229/32 [110/100] via 0.0.0.0, enp39s0 inactive, weight 1, 00:03:46
C>* 192.168.119.229/32 is directly connected, enp39s0, 00:03:46

Create ability to redistribute local routes.

Modify tests to support this change.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-11-01 17:13:06 -04:00
Donald Sharp
8e3a96e846
Merge pull request #14546 from adrianomarto/ospf6-point-to-multipoint
OSPF6 point to multipoint
2023-10-31 18:20:04 -04:00
Russ White
644386fe48
Merge pull request #14388 from pguibert6WIND/redistribute_table_bgp_2
Redistribute table bgp without copying data to the default routing table
2023-10-31 13:23:57 -04:00
Russ White
95f841c9be
Merge pull request #14661 from opensourcerouting/feature/enable_enforce_first_as_by_default
bgpd: Enable `enforce-first-as` by default
2023-10-31 10:40:23 -04:00
Russ White
49dc248e5c
Merge pull request #14343 from pguibert6WIND/bgp_label_manual_allocate_label_mgr
Bgp label manual allocate label mgr
2023-10-31 10:31:11 -04:00
Christian Hopps
62af972148 tests: add gdb integration with valgrind
Allows you to run daemons under valgrind integrated with gdb. When daemons are
run with the ``--gdb-daemons/--gdb-routers`` options they will be wired up to
valgrind using vgdb (valgrind tool) so gdb will stop when valgrind errors are
encountered.

Signed-off-by: Christian Hopps <chopps@labn.net>
2023-10-30 07:12:27 -04:00
mobash-rasool
ed0cfbecc7
Merge pull request #14635 from opensourcerouting/fix/ospf6d_loopback_cost
ospf6d: Set loopback interface cost to 0
2023-10-30 09:49:58 +05:30
Donald Sharp
2fef2017ed
Merge pull request #14662 from opensourcerouting/fix/drop_broken_tests
tests: Drop a couple unnecessary unit tests
2023-10-27 10:14:40 -04:00
Donatas Abraitis
322462920e bgpd: Enable enforce-first-as by default
It's been for a while disabled by default, but this seems reasonable to flip it.

We had `bgp enforce-first-as` as a global BGP knob to enable/disable this
behavior globally, later we introduced `enforce-first-as` per neighbor, with disabled
by default. Now let's enable this by default by bringing a global `bgp enforce-first-as`
command back.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-10-27 14:27:02 +03:00
Donatas Abraitis
26d0f530a3 tests: Disable debug log for bgp_vpnv4_asbr.r2
For the same reason as we disable debug logs for CI everywhere.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-10-27 14:09:02 +03:00
Christian Hopps
8e630c2946 tests: have unit-test check more paths for the grpc.so module
Signed-off-by: Christian Hopps <chopps@labn.net>
2023-10-26 21:39:13 -04:00
Donatas Abraitis
dede6261d8 bgpd: Drop unnecessary unit test for software-version capability
It's tested above, and was just copied from extended-nexthop as an example
which is broken too.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-10-26 17:24:42 +03:00
Donatas Abraitis
39d6b2888c tests: Drop broken unit test for extended-nexthop capability
extended-nexthop capability can't be unset to interface-based peers.

Anyway, this is always silently ignored:

```
✖ [test] peer\capability extended-nexthop
► prepare: initialize bgp test environment
► case 01: set peer-flag [capability extended-nexthop] on [IP-TEST]
► error: execution of command [no neighbor IP-TEST capability extended-nexthop] has failed with code [13]
failed
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-10-26 17:22:02 +03:00
Donatas Abraitis
8aeb17d692 tests: Adopt ospf6_gr_topo1 tests for OSPFv3 loopback cost as 0
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-10-26 07:39:29 +03:00
Donatas Abraitis
d7e9714643 tests: Use igpMetric as 10 not 20, after OSPFv3 loopback cost changes
Fixes: fa3140f7927838c432a02ee4f1c1847387b7be6d ("ospf6d: Set loopback interface cost to 0")

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-10-26 07:39:29 +03:00
Donatas Abraitis
e8615867d0 tests: Check if OSPFv3 loopback interface gets cost as 0
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-10-25 10:33:50 +03:00
Russ White
f239b0f05a
Merge pull request #14639 from donaldsharp/zebra_nexthop_search_up
zebra: Allow longer prefix matches for nexthops
2023-10-24 16:13:20 -04:00
Donatas Abraitis
26373fbedd
Merge pull request #14333 from fdumontet6WIND/bgp4v2_snmp
bgpd: add support of traps for bgp4-mibv2
2023-10-24 21:34:47 +03:00
Francois Dumontet
9d14c70b88 tests: add bgp4v2 MIB traps test
Signed-off-by: Francois Dumontet <francois.dumontet@6wind.com>
2023-10-24 17:16:47 +02:00
Francois Dumontet
50c95b6be9 tests: add bgp4 MIB traps test
Signed-off-by: Francois Dumontet <francois.dumontet@6wind.com>
2023-10-24 17:16:47 +02:00
Francois Dumontet
6261c2b994 tests: lib add support of snmptrapd daemon
Signed-off-by: Francois Dumontet <francois.dumontet@6wind.com>
2023-10-24 17:16:47 +02:00
Russ White
27a78f80d8
Merge pull request #13979 from gpnaveen/bgp_unique_rid
tests: Adding a bgp router id chaos test case.
2023-10-24 06:09:58 -04:00
Donatas Abraitis
614d7873d5
Merge pull request #14634 from LabNConsulting/chopps/gdb-use-emacs
tests: add --gdb-use-emacs option
2023-10-24 08:58:40 +03:00
Sososhas
b52f969f3d isisd:change ngh lvl when int circuit type setted
I added a new variable to calculate the required level of neighborhood,
as well as checking if the interfaces are in the same area,
in accordance with cisco

Signed-off-by: Sososhas <1248756005hfh@gmail.com>

isis:fixed adj level in topotests

fixed adj level on rt6

Signed-off-by: Sososhas <1248756005hfh@gmail.com>
2023-10-23 17:11:16 +03:00
Donald Sharp
a272a2b364 zebra: Allow longer prefix matches for nexthops
Zebra currently does a shortest prefix match for
resolving nexthops for a prefix.  This is typically
an ok thing to do but fails in several specific scenarios.
If a nexthop matches to a route that is not usable, nexthop
resolution just gives up and refuses to use that particular
route.  For example if zebra currently has a covering prefix
say a 10.0.0.0/8.  And about the same time it receives a
10.1.0.0/16 ( a more specific than the /8 ) and another
route A, who's nexthop is 10.1.1.1.  Imagine the 10.1.0.0/16
is processed enough to know we want to install it and the
prefix is sent to the dataplane for installation( it is queued )
and then route A is processed, nexthop resolution will fail
and the route A will be left in limbo as uninstallable.

Let's modify the nexthop resolution code in zebra such that
if a nexthop's most specific match is unusable, continue looking
up the table till we get to the 0.0.0.0/0 route( if it's even
installed ).  If we find a usable route for the nexthop accept
it and use it.

The bgp_default_originate topology test is frequently failing
with this exact problem:

B>* 0.0.0.0/0 [200/0] via 192.168.1.1, r2-r1-eth0, weight 1, 00:00:21
B   1.0.1.17/32 [200/0] via 192.168.0.1 inactive, weight 1, 00:00:21
B>* 1.0.2.17/32 [200/0] via 192.168.1.1, r2-r1-eth0, weight 1, 00:00:21
C>* 1.0.3.17/32 is directly connected, lo, 00:02:00
B>* 1.0.5.17/32 [20/0] via 192.168.2.2, r2-r3-eth1, weight 1, 00:00:32
B>* 192.168.0.0/24 [200/0] via 192.168.1.1, r2-r1-eth0, weight 1, 00:00:21
B   192.168.1.0/24 [200/0] via 192.168.1.1 inactive, weight 1, 00:00:21
C>* 192.168.1.0/24 is directly connected, r2-r1-eth0, 00:02:00
C>* 192.168.2.0/24 is directly connected, r2-r3-eth1, 00:02:00
B>* 192.168.3.0/24 [20/0] via 192.168.2.2, r2-r3-eth1, weight 1, 00:00:32
B   198.51.1.1/32 [200/0] via 192.168.0.1 inactive, weight 1, 00:00:21
B>* 198.51.1.2/32 [20/0] via 192.168.2.2, r2-r3-eth1, weight 1, 00:00:32

Notice that the 1.0.1.17/32 route is inactive but the nexthop
192.168.0.1 is covered by both the 192.168.0.0/24 prefix( shortest match )
*and* the 0.0.0.0/0 route ( longest match ).  When looking at the logs
the 1.0.1.17/32 route was not being installed because the matching
route was not in a usable state, which is because the 192.168.0.0/24
route was in the process of being installed.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-10-23 08:15:11 -04:00
Christian Hopps
a921202a85 tests: add --gdb-use-emacs option
When specified `--gdb-use-emacs` will launch the daemon with gdb inside a
running emacs server using `emacsclient --eval` commands.

Signed-off-by: Christian Hopps <chopps@labn.net>
2023-10-23 05:11:32 -04:00
Philippe Guibert
deac143c6e topotests: add bgp_redistribute_table test
There is no test that ensures the test of the 'redistribute
table-direct' facility. Add a test that checks that routes
created before and after BGP is started, is correctly imported.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2023-10-20 13:28:52 +02:00
Donatas Abraitis
3c94151258 tests: Check if BGP conditional advertisement works fine with static routes
If we modify the prefix-list that is used to define the routes to be
advertised, all of them MUST be advertised.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-10-20 12:58:33 +03:00
Donald Sharp
627888864d
Merge pull request #14614 from opensourcerouting/feature/bgpd_handle_orf_capability_via_dynamic_capability
bgpd: Handle ORF capability using dynamic capabilities
2023-10-19 16:01:24 -04:00
Louis Scalbert
3cae026428 topotests: add bgp_l3vpn_label_export test
There is no test that checks for the label allocation mechanisms
involved when using BGP and/or LDP.
- Some configuration changes are applied in the BGP configuration,
and the impact is checked on the BGP contexts, and on the label
manager.
- The label manager dynamic range is reconfigured, BGP auto mode
is checked against the new range, along with LDP when restarting.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2023-10-18 17:46:28 +02:00
Philippe Guibert
8a400bb70a topotests: bgp_srv6l3vpn_to_bgp_vrf[2,3], ignore tableVersion
The expected tableVersion is wrong, when checking r1 table.

The tableVersion value increments at each route updates. The
previous commit brought an additional route update with the
'vpn_leak_postchange_all()' call.

Keep the function call, and do not check the table version
in bgp_srv6l3vpn_to_bgp_vrf[2,3] tests.

Fixes: 205b62ffae2c ("bgpd: fix hardset l3vpn label available in mpls pool")

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2023-10-18 17:45:29 +02:00
Donatas Abraitis
4b843e759b tests: Rename test_bgp_dynamic_capability_role
Was copied, but forgot to rename accordingly.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-10-18 12:31:22 +03:00
Philippe Guibert
dfb56806af topotests: fix bgp_vpnv[4,6]_per_nexthop prefix not updated
The bgp_vpnv[4,6]_table_check() functions analyze the
expected label value of VPN prefixes present in the BGP table.
However, it doesn't verify if the prefixes exist before doing
this. Consequently, the tests will fail if the prefixes do not
show up immediately.
Ensure that all expected VPN prefixes are present before
executing the function.

Fixes: ae5a6bc1f6 ("topotests: add bgp mpls allocation per next-hop test")
Fixes: 37a02a8dcb ("topotests: add bgp_vpnv6 test allocation")

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2023-10-18 09:41:02 +02:00
Philippe Guibert
9d32589b58 zebra, test: mark mpls label chunks as dynamic or static
The zebra label manager stores the mpls label chunks,
but does not record if the label request was for a
dynamic or a static chunk.

For all label requests accepted, mark the label chunk
if the 'base' parameter is set to MPLS_LABEL_BASE_ANY,
unmark it otherwise.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2023-10-18 09:41:02 +02:00
Philippe Guibert
4a81210169 topotests: fix accept_own test, bgp label value conflict with ldp
When configuring manual label value in BGP L3VPN, the label
allocation conflicts with the LDP label pool which is in use.
Choose BGP label values different that the ones from LDP.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2023-10-18 09:41:02 +02:00
Philippe Guibert
cb86d8e3a4 bgpd: fix label allocation should not be allocated at startup
BGP always asks zebra for a chunk of MPLS label even if it doesn't need it.
Fix this by correcting the rounding up "labels_needed" formula.

Fixes: 80853c2ec7 ("bgpd: improve labelpool performance at scale")
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2023-10-18 09:41:02 +02:00
Donatas Abraitis
1fb08e91d7 tests: Check if ORF capability works with BGP dynamic capabilities
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-10-17 16:00:00 +03:00
Donald Sharp
c8d568487c
Merge pull request #14599 from opensourcerouting/fix/issue_14419
tests: Check if evpn route-map match by route type works
2023-10-16 10:20:23 -04:00
Donatas Abraitis
c7a9af861a tests: Check if evpn route-map match by route type works
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-10-15 19:46:34 +03:00
Donald Sharp
50e6ba26a4
Merge pull request #14582 from cloudscale-ch/denis/topotest-for-14488
tests: Add OSPF test for issue 14488
2023-10-14 09:42:49 -04:00
Donatas Abraitis
0a8ce5f3f3
Merge pull request #14553 from donaldsharp/zebra_weighted_ecmp
Zebra weighted ecmp
2023-10-13 23:09:18 +03:00
Denis Krienbühl
616e1fa9df
tests: Add OSPF test for issue 14488
OSPF on IPv4/IPv6 removes the wrong routes in certain cases, causing
issues when removing and re-enabling interfaces. This test proofs that.

These tests all pass with https://github.com/FRRouting/frr/pull/13340
and the latest master (d2324b7b4a).

See https://github.com/FRRouting/frr/issues/14488

Signed-off-by: Denis Krienbühl <denis.krienbuehl@cloudscale.ch>
2023-10-13 17:16:19 +02:00
Igor Ryzhov
7d67b9ff28 build: add -Wimplicit-fallthrough
Also:
- replace all /* fallthrough */ comments with portable fallthrough;
pseudo keyword to accomodate both gcc and clang
- add missing break; statements as required by older versions of gcc
- cleanup some code to remove unnecessary fallthrough

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2023-10-12 21:23:18 +03:00
Donald Sharp
3d8ba5c5ac tests: Fixup bgp_link_bw_ip test to new behavior
Old behavior was metric values between 1-100,
now we have metric values between 1-255.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-10-12 13:35:48 -04:00
Russ White
97d8e5cecd
Merge pull request #14537 from opensourcerouting/feature/bgpd_aod
bgpd: Implement EBGP-OAD peering type
2023-10-11 10:22:26 -04:00
Russ White
9ff1a8c550
Merge pull request #14528 from opensourcerouting/feature/bgpd_handle_addpath_capability_via_dynamic_capability
bgpd: Handle Addpath capability using dynamic capabilities
2023-10-11 10:16:18 -04:00
Donald Sharp
0dc12c9003 Revert "lib: register bgp link-state afi/safi"
This reverts commit 1642a68d60.
2023-10-10 16:45:57 -04:00
Donald Sharp
c4edb3a453 Revert "tests: add bgp_linkstate_topo1"
This reverts commit a0e6cd4c8f.
2023-10-10 16:43:17 -04:00
Donald Sharp
547a0d02aa Revert "tests: add link-state attribute display in bgp_linkstate_topo1"
This reverts commit 5727195cbf.
2023-10-10 16:33:07 -04:00
Adriano Marto Reis
108adcddbb tests: Ajusting the test to the new OSPF6 behaviour
Now OSPF6 shares the /128 prefix by default. Adjusting the expected
number of next hops according to that.

Signed-off-by: Adriano Marto Reis <adrianomarto@gmail.com>
2023-10-10 12:09:07 +10:00
Adriano Marto Reis
a5677ca1e0 tests: OSPF6 point-to-multipoint topotest
* Check if FRR is running
* Check if OSPFv3 converges
* Check OSPFv3 Routing Tables
* Check Linux Kernel Routing Table

Signed-off-by: Adriano Marto Reis <adrianomarto@gmail.com>
2023-10-10 08:10:49 +10:00
Donatas Abraitis
ba67eb6bd0 tests: Check if EBGP-OAD works
https://datatracker.ietf.org/doc/html/draft-uttaro-idr-bgp-oad

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-10-06 21:53:43 +03:00
Donald Sharp
c516447847
Merge pull request #14534 from mjstapp/fix_topo_nhgid
tests: locate nhg id from json output in all_proto_startup
2023-10-05 15:36:27 -04:00
Mark Stapp
22fb94a248 tests: locate nhg id from json output in all_proto_startup
Don't hard-code a sharpd nhg id: those values aren't stable
if the daemons/protos/route-types change. Use json show output
to find the id in the 'resilient' nhg test case in
the all_protocol_startup suite.

Signed-off-by: Mark Stapp <mjs@labn.net>
2023-10-05 13:47:17 -04:00
Donatas Abraitis
51255e1118 tests: Check if addpath capability is exchanged dynamically
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-10-03 17:44:19 +03:00
Russ White
373d46d0f7
Merge pull request #14511 from opensourcerouting/fix/bgpd_software_version_capability
bgpd: Validate maximum length of software version when handling via dynamic caps
2023-10-03 10:36:21 -04:00
Philippe Guibert
85caa21dff topotests: add bgp_large_comm_list_match test
Add a topotest to check for proper functioning of the
bgp large community list match operation under a route-map.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2023-10-02 15:24:18 +02:00
Philippe Guibert
aa511000e0 bgpd: add 'match community-list any' function
There is no match mechanism to match one community from the
incoming community-list. Add the 'any' keyword to the 'match
route-map' command of communit-list and large-community-list.

> match community-list AAA any
> match large-community-list AAA any

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2023-10-02 15:24:18 +02:00
Donatas Abraitis
0e43f80ab9 tests: Make sure we have a valid FRRouting software version string
It can't begin with anything else, otherwise something is broken on the wire.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-09-29 12:15:24 +03:00
Russ White
8e755a03a3
Merge pull request #12649 from louis-6wind/bgp-link-state
bgpd: add basic support of BGP Link-State RFC7752
2023-09-26 10:07:02 -04:00
Donatas Abraitis
56d8305481
Merge pull request #14473 from cscarpitta/bugfix/fix-srv6-topotest-warning
tests: Fix DeprecationWarning in SRv6 L3VPN topotest
2023-09-24 20:47:07 +03:00
Donald Sharp
4f0db0daaf
Merge pull request #14470 from opensourcerouting/fix/rewrite_dynamic_capabilities_tests
tests: Improve BGP dynamic capability tests
2023-09-23 09:50:43 -04:00
Carmine Scarpitta
71ed1868d6 tests: Fix DeprecationWarning in SRv6 L3VPN topotest
Fix the following warning:

tests/topotests/bgp_srv6l3vpn_sid/test_bgp_srv6l3vpn_sid.py:42
  /media/SharedUTM/workspace/frr/tests/topotests/bgp_srv6l3vpn_sid/test_bgp_srv6l3vpn_sid.py:42: DeprecationWarning: invalid escape sequence '\ '

In test_bgp_srv6l3vpn_sid.py we have a comment containing some '\'
characters. Python mistakenly tries to interpret such "\" characters
as escape sequences, which leads to the above warning.

Let's tell Python to treat the comment as a raw string,
so that it simply treats backslashes as literal characters rather than
escape sequences.

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2023-09-22 18:43:42 +02:00
Donald Sharp
eceb1cab6d
Merge pull request #14450 from kuldeepkash/general_fixes
tests: Adding BGP convergence verification before starting PIM tests
2023-09-22 09:53:03 -04:00
Donatas Abraitis
fa5783bbab tests: Check notification/capability received message stats instead of reset/established
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-09-22 15:50:27 +03:00
Donatas Abraitis
64b4a93d81 tests: Use frr.conf for bgp_dynamic_capabily tests
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-09-22 15:20:22 +03:00
Kuldeep Kashyap
8824e302bf tests: Fix for issue when RP is changed
Issue: https://github.com/FRRouting/frr/issues/14057
Fix: Added some sleep to make sure prune is received before
RP is changed.

Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
2023-09-20 13:11:31 +00:00
Kuldeep Kashyap
0cf046c647 tests: Adding BGP convergence verification before starting PIM tests
Issue: Sometimes BGP neighbors are not up before doing any PIM
operation, that is causing some tests failures.
https://github.com/FRRouting/frr/issues/14441

Fix: Added BGP convergence for all tests where BGP is used to make
sure all BGP neigbhors

Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
2023-09-20 13:11:19 +00:00
Dmytro Shytyi
9f3ceabd49 tests: add srv6 multiple segs SIDs topotest
Configure and verify the installed srv6 route with multiple segs SIDs

Signed-off-by: Dmytro Shytyi <dmytro.shytyi@6wind.com>
2023-09-20 15:07:15 +02:00
Donald Sharp
4e5627fb20
Merge pull request #14442 from mjstapp/fix_no_ctime
bgpd, pathd: replace ctime() with ctime_r()
2023-09-20 07:32:51 -04:00
Donatas Abraitis
da1cf4f151
Merge pull request #14440 from fdumontet6WIND/fix_oid_bgp4v2
bgpd: fix  SNMP oid in bgp4v2
2023-09-20 09:58:58 +03:00
Mark Stapp
5b4610fa59 tests: replace ctime with ctime_r
Replace ctime with ctime_r in bgp test.

Signed-off-by: Mark Stapp <mjs@labn.net>
2023-09-19 16:25:01 -04:00
Russ White
ffbff9b515
Merge pull request #14436 from opensourcerouting/fix/set_mss_for_passive_nodes
bgpd: Set TCP MSS for the socket even if the session is set to passive
2023-09-19 10:18:14 -04:00
Russ White
fd8b00ed53
Merge pull request #14420 from opensourcerouting/fix/remove_private_asn_after_route_map
bgpd: Remove private ASNs after we modify the as-path with the route-map
2023-09-19 10:16:33 -04:00
Russ White
a9a89805ec
Merge pull request #14398 from m-varasteh/ospfd-rfc5709
ospfd: add support for RFC 5709 OSPFv2 HMAC-SHA Cryptographic Authentication
2023-09-19 10:14:14 -04:00
Russ White
1e00784731
Merge pull request #14382 from opensourcerouting/feature/long_lived_graceful_restart_dynamic_capability_split
bgpd: Handle LLGR capability using dynamic capabilities
2023-09-19 10:12:35 -04:00
Francois Dumontet
b8fe1c16de bgpd: snmp MIB bgp4v2 fix indexes in OID
currently snmpwalk give results such :
BGP4V2-MIB::bgp4V2PeerRemoteAddrType.1.ipv6z.10.125.0.2 = INTEGER: ipv4(1)
BGP4V2-MIB::bgp4V2PeerRemoteAddrType.2.dns.253.0.1.37.0.0.0.0.0.0.0.0.0.0.0.3 = INTEGER: ipv6(2)
BGP4V2-MIB::bgp4V2PeerRemoteAddr.1.ipv6z.10.125.0.2 = Hex-STRING: 0A 7D 00 02
BGP4V2-MIB::bgp4V2PeerRemoteAddr.2.dns.253.0.1.37.0.0.0.0.0.0.0.0.0.0.0.3 = Hex-STRING: FD 00 01 25 00 00 00 00 00 00 00 00 00 00 00 03

the expected result is the following

BGP4V2-MIB::bgp4V2PeerRemoteAddrType.1.ipv4.10.125.0.2 = INTEGER: ipv4(1)
BGP4V2-MIB::bgp4V2PeerRemoteAddrType.1.ipv6.253.0.1.37.0.0.0.0.0.0.0.0.0.0.0.3 =
 INTEGER: ipv6(2)
BGP4V2-MIB::bgp4V2PeerRemoteAddr.1.ipv4.10.125.0.2 = Hex-STRING: 0A 7D 00 02
BGP4V2-MIB::bgp4V2PeerRemoteAddr.1.ipv6.253.0.1.37.0.0.0.0.0.0.0.0.0.0.0.3 = Hex
-STRING: FD 00 01 25 00 00 00 00 00 00 00 00 00 00 00 03

in draft-ietf-idr-bgp4-mibv2-11

INDEX for Bgp4V2PeerEntry is define as follows
INDEX {
          bgp4V2PeerInstance,
          bgp4V2PeerRemoteAddrType,
          bgp4V2PeerRemoteAddr
      }

the peer instance is defined as follows
OBJECT bgp4V2PeerInstance
        SYNTAX Unsigned32 (1..4294967295)

more this interpretation is conformant with the snmpwalk implementation
for instance we obtain the following result

swBgp.bgp4V2.bgp4V2Objects.bgp4V2PeerTable.bgp4V2PeerEntry.bgp4V2PeerRemotePort.1.ipv6.253.0.1.37.0.0.0.0.0.0.0.0.0.0.0.3 = Gauge32: 179

swBgp.bgp4V2.bgp4V2Objects.bgp4V2PeerTable.bgp4V2PeerEntry.bgp4V2PeerRemoteAs.1.ipv4.10.125.0.2 = Gauge32: 65200

since currently we are not supporting  multi instance for bgp peer in
SNMP the bgp4V2PeerInstance value is set to 1 coforming to:

"Implementations that do not support multiple routing instances should return 1 for this object."

test is updated accordingly to fix.
currently index for bgp4V2NlriEntry is not coformant to MIB definition

Signed-off-by: Francois Dumontet <francois.dumontet@6wind.com>
2023-09-19 14:26:41 +02:00
Donatas Abraitis
6cd8f13fac tests: Check if TCP MSS is synced if using a passive neighbor
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-09-18 22:54:53 +03:00
Louis Scalbert
5727195cbf tests: add link-state attribute display in bgp_linkstate_topo1
Add some attributes to display in the injector and check the output.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-09-18 15:07:34 +02:00
Louis Scalbert
a0e6cd4c8f tests: add bgp_linkstate_topo1
Use an external BGP injector tool in router r1. Check that bgpd on r2 is
able to decode BGP-LS prefixes and re-encode to the r3 instance.

Link: https://github.com/louis-6wind/bgp_injector
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-09-18 15:06:23 +02:00
Louis Scalbert
1642a68d60 lib: register bgp link-state afi/safi
Register BGP Link-State AFI/SAFI values from RFC7752.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
2023-09-18 14:22:51 +02:00
Mahdi Varasteh
f5011cd5dd [ospfd]: add support for RFC 5709 HMAC-SHA Auth
This patch includes:
* Implementation of RFC 5709 support in OSPF. Using
openssl library and FRR key-chain,
one can use SHA1, SHA256, SHA384, SHA512 and
keyed-MD5( backward compatibility with RFC 2328) HMAC algs.
* Updating documentation of OSPF
* add topotests for new HMAC algorithms

Signed-off-by: Mahdi Varasteh <varasteh@amnesh.ir>
2023-09-16 07:38:23 +03:30
Donatas Abraitis
adb1c9aa51 tests: Check if private ASNs are removed if modified by route-map
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-09-14 21:52:21 +03:00
Russ White
abaa68f213
Merge pull request #14162 from opensourcerouting/feature/turn_on_nht_resolve_via_default_for_traditional_profile
zebra: Turn on `nht resolve-via-default` by default for traditional profile
2023-09-13 05:57:49 -04:00
Donatas Abraitis
6bd5afca22 tests: Check if LLGR settings can be changed via BGP dynamic capabilities
LLGR stale-time setting.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-09-13 11:30:47 +03:00
Donatas Abraitis
e32fa3edcb
Merge pull request #14400 from louis-6wind/local-no-retain
bgpd: fix import from a local VRF with no bgp retain
2023-09-13 11:23:42 +03:00
Donald Sharp
afe11d5edf tests: snmp tests sometimes fail with Unable to bind
the snmp tests are using zebra.conf to setup the
address that they are binding to and immediately
after that they are starting snmpd.  If snmpd
starts up *before* zebra has installed the address
the bind on the address will fail.  Causing the entire
test to fail.  Modify the snmpd.conf for all our
snmp tests to bind to all addresses.  Things still
work and we no longer have an issue.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-09-12 13:05:05 -04:00
Louis Scalbert
7acdaff7e2 topotests: check route import in bgp_vpnv4_noretain
Check route import in bgp_vpnv4_noretain

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-09-12 15:18:02 +02:00
Louis Scalbert
142c029725 topotest: fix bgp_vpnv4_noretain test descriptions
Fix bgp_vpnv4_noretain test descriptions

Fixes: 22dfa04b78 ("topotests: more tests in bgp_vpnv4_noretain")
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-09-12 15:18:02 +02:00
Russ White
7b8f81bcb6
Merge pull request #14379 from donaldsharp/peer_connection_part_two
Peer connection part two
2023-09-12 08:51:50 -04:00
Russ White
48d6039e14
Merge pull request #13724 from cscarpitta/feature/isisd-srv6-support
isisd: Add support for SRv6 uSID (RFC 9352)
2023-09-12 08:33:42 -04:00
Carmine Scarpitta
6d22a6e5db tests: Add isis_srv6_topo1 test for IS-IS SRv6
Add a new topotest `isis_srv6_topo1` for verifying SRv6 functionalities
in IS-IS (RFC 9352).

This topotest consists of nine tests:

* Network convergence after applying SRv6 configuration
* Disable SRv6 Locator on zebra on r1
* Enable SRv6 Locator on zebra on r1
* Disable SRv6 Locator on ISIS on r1
* Enable SRv6 Locator on ISIS on r1
* Disable SRv6 on ISIS on r1
* Enable SRv6 on ISIS on r1
* Disable SRv6 on zebra on r1
* Enable SRv6 on zebra on r1

Signed-off-by: Carmine Scarpitta <carmine.scarpitta@uniroma2.it>
2023-09-11 22:11:58 +02:00
Carmine Scarpitta
0078f6f53a tests: Update fuzz test to match expected output
Update IS-IS fuzz test to match corrected output after the introduction
of SRv6-related TLVs.

The update was performed using wuschl [1] like this:

$ wuschl rebuild tests/isisd/test_fuzz_isis_tlv
$ gzip -9 tests/isisd/test_fuzz_isis_tlv_tests.h

[1] https://pypi.org/project/wuschl/

Signed-off-by: Carmine Scarpitta <carmine.scarpitta@uniroma2.it>
2023-09-11 22:11:52 +02:00