Commit Graph

3955 Commits

Author SHA1 Message Date
Louis Scalbert
aceae79ae0 tests: clarify bgp_vpnv4_asbr
Clarify bgp_vpnv4_asbr. Cosmetic change.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-11-06 16:46:02 +01:00
Russ White
fe20f83286
Merge pull request #17326 from anlancs/fix/zebra-no-ifp-down
zebra: fix missing kernel routes
2024-11-05 10:20:36 -05:00
Russ White
ab2117d328
Merge pull request #17115 from LabNConsulting/jmuthii/nhrpd-retry-resolution-topotest
nhrpd: fix passphrase handling, add topotest for resolution request
2024-11-05 10:10:12 -05:00
Nathan Bahr
5b3c3b1710 tests: Remove unnecessary fields from expected JSON
Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
2024-11-01 16:46:41 +00:00
Donatas Abraitis
a69f66176d
Merge pull request #17312 from donaldsharp/remove_in6addr_cmp
Remove in6addr cmp
2024-11-01 18:06:04 +02:00
anlan_cs
0073a870d1 test: add test case for kernel blackhole routes
The test verifies that a kernel blackhole route is not affected by
interface's link change.

Signed-off-by: anlan_cs <anlan_cs@126.com>
2024-11-01 22:43:00 +08:00
Donald Sharp
eded1e9c76
Merge pull request #17328 from opensourcerouting/fix/allow_setting_netlink_buffer_size_for_zebra
tests: Do not set by default netlink receive buffer size for Zebra
2024-11-01 10:00:18 -04:00
Donald Sharp
66feece071
Merge pull request #17281 from nabahr/mrib-import
Add support to import alternate URIB tables into the main MRIB
2024-10-31 13:28:57 -04:00
Donatas Abraitis
6dc03df8cb tests: Do not set by default netlink receive buffer size for Zebra
If we want to override this value - we can't because it's set by default to
90000000.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-10-31 17:00:20 +02:00
Donald Sharp
1cb6b71b40 lib, tests: Remove in6addr_cmp function from the system
This function should just be memcmp.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-10-31 10:04:19 -04:00
Jafar Al-Gharaibeh
35dbbacc3b
Merge pull request #17317 from opensourcerouting/feature/allow_setting_custom_params_for_daemons_unified_config
tests: Add an ability to specify daemon params with unified config
2024-10-31 08:55:23 -05:00
Nathan Bahr
180e1a0d77 tests: Add zebra rib import-table tests
Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
2024-10-31 12:44:05 +00:00
Donatas Abraitis
879466731b tests: Add an ability to specify daemon params with unified config
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-10-31 10:43:28 +02:00
Donatas Abraitis
5f11235614
Merge pull request #17296 from LabNConsulting/liambrady/core-rlimit-respect-hard-limit
tests: respect RLIMIT_CORE hard limit
2024-10-31 10:19:55 +02:00
Joshua Muthii
d599aa1da6 nhrpd: Add topotest for retrying resolution request
Modified nhrp_topo topotest to test for newly added resolution
request retry feature. Changes to the topotest include adding a spoke to the
existing nhrp_topo topotest so that a topology with two spokes and hub
can be used to create shortcuts and test the sending/resending of
resolution requests and responses between spoke and hub. The resolution
request retry feature was tested by blocking incoming resolution requests on a
receiving nodes to stop the creation of a successful shortcut - which
then triggered the sending spoke to retry sending resolution requests

Signed-off-by: Joshua Muthii <jmuthii@labn.net>
2024-10-29 13:15:16 -04:00
Liam Brady
b4dc01b3de tests: respect RLIMIT_CORE hard limit
In the case that the RLIMIT_CORE hard limit cannot
be raised on a system, do not fail due to an exception.
Instead, attempt to increase the soft limit to as large
a value as possible (e.g. to the set hard limit).

Signed-off-by: Liam Brady <lbrady@labn.net>
2024-10-29 13:07:57 -04:00
Russ White
574a71516a
Merge pull request #17226 from louis-6wind/fix-bmp-tests
tests: fix bmp tests random failure
2024-10-29 10:12:11 -04:00
Russ White
b5c3b44de1
Merge pull request #17190 from baozhen-H3C/202410180176
isisd: The command "'show isis vrf all summary json" has no output.
2024-10-29 10:08:28 -04:00
Russ White
4a6e1c0acb
Merge pull request #16990 from lsang6WIND/label-per-nexthop
bgpd: fix prefix same as nexthop in label per nexthop
2024-10-29 10:05:37 -04:00
Donatas Abraitis
200d54f54e
Merge pull request #17216 from Jafaral/fix-bsr
pimd, tests: fix bsr assert and expand topotest to pimv6
2024-10-27 21:11:23 +02:00
Jafar Al-Gharaibeh
a7e7cc301d tests: expand bsr topotest to cover ipv6
Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
2024-10-25 09:00:50 -05:00
Louis Scalbert
a235dbc65b tests: fix bgp_bmp_vrf race condition
The bgp_bmp_vrf topotest is randomly failing with similar messages:

> 2024-10-24 16:59:03,037 ERROR: topo: test failed at "bgp_bmp.test_bgp_bmp/test_bmp_bgp_unicast": Checking the updated prefixes has failed ! Generated JSON diff error report:
>
> $->pre-policy->update: expected has key '172.31.0.15/32' which is not present in output

It is particularly unsuccessful when run with valgrind:

> python3 -m pytest -vvss --valgrind-leak-kinds=all --valgrind-extra --valgrind-memleaks bgp_bmp_vrf

bgp_bmp_vrf is configuring a BMP policy on r1 and then some static BGP
prefixes on r2. If for some reasons, the BGP UPDATE arrives to r1 before
the BMP configuration is operational, the UPDATE is not sent to the BMP
server and the test fails.

Pre-configure the BMP policies at startup to avoid this race condition.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-10-25 14:17:20 +02:00
Louis Scalbert
771284474d tests: fix bgp_bmp race condition
The bgp_bmp topotest is randomly failing with similar messages:

> 2024-10-24 16:59:03,037 ERROR: topo: test failed at "bgp_bmp.test_bgp_bmp/test_bmp_bgp_unicast": Checking the updated prefixes has failed ! Generated JSON diff error report:
>
> $->pre-policy->update: expected has key '172.31.0.15/32' which is not present in output

It is particularly unsuccessful when run with valgrind:

> python3 -m pytest -vvss --valgrind-leak-kinds=all --valgrind-extra --valgrind-memleaks bgp_bmp

bgp_bmp is configuring a BMP policy on r1 and then some static BGP
prefixes on r2. If for some reasons, the BGP UPDATE arrives to r1 before
the BMP configuration is operational, the UPDATE is not sent to the BMP
server and the test fails.

Pre-configure the BMP policies at startup to avoid this race condition.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-10-25 14:17:20 +02:00
Louis Scalbert
14eed3ab8b tests: factorize code in bgp_bmp_vrf
Factorize code in bgp_bmp_vrf

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-10-25 14:17:20 +02:00
Louis Scalbert
e29abfdbd5 tests: factorize code in bgp_bmp
Factorize code in bgp_bmp

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-10-25 14:17:20 +02:00
Louis Scalbert
19a6621424 tests: rework bgp_bmp_vrf
The BGP BMP VRF topotest is difficult to debug. It does not say which
prefix is not received by BGP or BMP when it fails.

Rework the test to convert the actual BMP logs to JSON and compare the
BGP table and BMP server logs output to expected reference JSON files.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-10-25 14:17:17 +02:00
Louis Scalbert
44c6f579c3 tests: rework bgp_bmp
The BGP BMP topotest is difficult to debug. It does not say which prefix
is not received by BGP or BMP when it fails.

Rework the test to convert the actual BMP logs to JSON and compare the
BGP table and BMP server logs output to expected reference JSON files.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-10-25 14:16:55 +02:00
Louis Scalbert
a7fc9a27f0 tests: augment bgp bmp test wait time
Augment bgp bmp test wait time

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-10-25 10:00:56 +02:00
Loïc Sang
3c2949e1ba topotests: supress bgp_vpnv4/6_per_nexthop_label warning
WARNING: topo: Waiting time is too small
(count=10, wait=0.5), using default values (count=20, wait=3)

Supress warning by inscreasing wait time.

Signed-off-by: Loïc Sang <loic.sang@6wind.com>
2024-10-25 09:31:12 +02:00
Loïc Sang
6975228d66 bgpd: fix prefix same as nexthop in label per nexthop
When a prefix is imported using the "network" command under a vrf, which
is a connected prefix, and in the context of label allocation per
nexthop:

..
>router bgp 1 vrf vrf1
> address-family ipv4 unicast
>  redistribute static
>  network 172.16.0.1/32  <--- connected network
>  network 192.168.106.0/29
>  label vpn export auto
>  label vpn export allocation-mode per-nexthop
..

We encounter an MPLS entry where the nexthop is the prefix itself:

> 18             BGP   172.16.0.1     -

Actually, when using the "network" command, a bnc context is used, but
it is filled by using the prefix itself instead of the nexthop for other
BGP updates. Consequently, when picking up the original nexthop for
label allocation, the function behaves incorrectly. Instead ensure that
the nexthop type of bnc->nexthop is not a nexthop_ifindex; otherwise
fallback to the per vrf label.

Update topotests.

Signed-off-by: Loïc Sang <loic.sang@6wind.com>
2024-10-25 09:30:32 +02:00
Donatas Abraitis
3f446ecb6b
Merge pull request #17199 from enkechen-panw/aigp-fix5
bgpd: compare aigp after local route check in bgp_path_info_cmp()
2024-10-25 09:59:29 +03:00
Donatas Abraitis
2606f84b31
Merge pull request #17207 from louis-6wind/bmpserver-log
tests: add bmpserver logging
2024-10-25 09:58:57 +03:00
Donald Sharp
274c98628f
Merge pull request #17155 from opensourcerouting/memstats-zlog
lib: `debug memstats-at-exit` improvements
2024-10-24 21:07:09 -04:00
Enke Chen
1a2c3d684a tests: add a new BGP AIGP topotest
The topotest verifies that a local route is favored irrespective
of its AIGP value.

Signed-off-by: Enke Chen <enchen@paloaltonetworks.com>
2024-10-24 10:42:41 -07:00
Louis Scalbert
c8ed08b22f tests: add bmpserver logging
Add bmpserver logging

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-10-24 16:37:23 +02:00
Louis Scalbert
ad6c107f91 tests: bmpserver, detect session close immediately
bmpserver infinitely loops after the clients has closed the TCP session.
In this situation, recv() returns empty data.

Detect session close immediately.

Fixes: 875511c466 ("topotests: add basic bmp collector")
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-10-24 16:37:23 +02:00
Louis Scalbert
6bb0c91d10 tests: apply black to bmpserver
Apply black to bmpserver

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-10-24 16:37:23 +02:00
baozhen-H3C
66ef3576af isisd: The command "'show isis vrf all summary json" has no output.
When input 'show isis vrf all summary', output is as follow:
sonic# show isis vrf all summary
vrf             : default
Process Id      : 55
System Id       : 0000.0000.0006
Symbolic name   : RouterA
Up time         : 4d01h52m ago
Number of areas : 1
Area 10:
  Net: 10.0000.0000.0006.00
  IS_name: RouterA
  TX counters per PDU type:
     L1 IIH: 365003
     L1 LSP: 20468
    L1 PSNP: 8
   LSP RXMT: 0
  RX counters per PDU type:
     L1 IIH: 361577
     L2 IIH: 434
     L1 LSP: 10492
    L1 CSNP: 114260
  Level-1:
    LSP0 regenerated: 4840
         LSPs purged: 0
    SPF:
      minimum interval  : 1
    IPv4 route computation:
      last run elapsed  : 00:01:02 ago
      last run duration : 327 usec
      run count         : 12053
However, json display is null.

After the commit:
sonic# show isis vrf all summary json
{
  "vrfs":[
    {
      "vrf":"default",
      "process-id":56,
      "system-id":"0000.0000.0007",
      "up-time":"20:40:33",
      "number-areas":1,
      "areas":[
        {
          "area":"10",
          "net":"10.0000.0000.0007.00",
          "tx-pdu-type":{
            "l1-iih":52234,
            "l1-lsp":1053,
            "l1-csnp":8269,
            "l1-psnp":1,
            "lsp-rxmt":0
          },
          "rx-pdu-type":{
            "l1-iih":52245,
            "l2-iih":26116,
            "l1-lsp":1388,
            "l1-csnp":8269
          },
          "levels":[
            {
              "id":1,
              "lsp0-regenerated":89,
              "lsp-purged":0,
              "spf":"no pending",
              "minimum-interval":1,
              "last-run-elapsed":"00:00:05",
              "last-run-duration-usec":192,
              "last-run-count":1454
            }
          ]
        }
      ]
    }
  ]
}

Signed-off-by: baozhen-H3C <bao.zhen@h3c.com>
2024-10-23 13:27:45 +08:00
Russ White
df0dd1b39e
Merge pull request #17165 from opensourcerouting/fix/bgp_community_no_export_oad
bgpd: Do not filter no-export community for BGP OAD
2024-10-22 11:05:38 -04:00
Donatas Abraitis
524627216a tests: Check if non-transitive link-bandwidth communities are sent/received correctly
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-10-22 09:01:04 +03:00
Enke Chen
7e7f65cc00 tests: add a topotest bgp_aigp_rr
In this topotest, the route reflector advertises a route with the
aigp attribute to its client, some with the nexthop unchanged and
some with the nexthp changed. Different aigp values are sent to
the clients depending on the nexthop setting.

Signed-off-by: Enke Chen <enchen@paloaltonetworks.com>
2024-10-21 17:49:19 -07:00
Donatas Abraitis
7eaec540ec tests: Check if BGP no-export community is passed to BGP OAD peers
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-10-18 22:51:37 +03:00
Liam Brady
1b38f33041 tests: logger masked in topotest.py
a local logger masks the global logger and prevents errors from being
gracefully handled within topotest.py

Signed-off-by: Liam Brady <lbrady@labn.net>
2024-10-17 13:36:39 -04:00
David Lamparter
b3e4007197 lib: refactor memstats logging, fix ACTIVEATEXIT
Move the various destinations handling into lib/memory.c, include
"normal" logging as target, and make `ACTIVEATEXIT` properly non-error
as it was intended to be.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2024-10-17 13:58:57 +02:00
Enke Chen
51612593f7 tests: add a new topotest to bgp_aigp
Add a new topotest for getting the aigp from the "igp-metric"
for a redistributed route (ospf route in the test).

Signed-off-by: Enke Chen <enchen@paloaltonetworks.com>
2024-10-16 11:19:28 -07:00
Russ White
75e34c032b
Merge pull request #16452 from louis-6wind/fix-ipv4-mapped-ipv6-display
lib, test: fix display ipv4 mapped ipv6 addresses
2024-10-16 13:01:52 -04:00
Russ White
80dc863d92
Merge pull request #16946 from opensourcerouting/fix/match_src-peer
bgpd: Implement match src-peer ... command
2024-10-16 07:51:20 -04:00
Louis Scalbert
3c430cd4e0 tests: update fuzz after ipv4 mapped ipv6 print change
Update IS-IS fuzz test to match corrected output after change in the
display of IPv4 mapped IPv6 address.

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: Louis Scalbert <louis.scalbert@6wind.com>
2024-10-16 13:45:54 +02:00
Louis Scalbert
84ab0213fc lib, test: fix display ipv4 mapped ipv6 addresses
Display ipv4 mapped ipv6 addresses in the format ::ffff:A.B.C.D.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-10-16 13:45:46 +02:00
Jafar Al-Gharaibeh
df482a0f79
Merge pull request #17107 from donaldsharp/actuallY_call_the_command
tests: iproute2_check_path_selection call the actual command
2024-10-15 21:24:33 -05:00