Commit Graph

2506 Commits

Author SHA1 Message Date
sarita patra
c28e6ef53c tests: Inroduced pim passive test cases
Co-authored-by: Vijay Kumar Gupta <vijayg@vmware.com>
Signed-off-by: sarita patra <saritap@vmware.com>
2022-05-12 23:51:22 -07:00
Igor Ryzhov
2a3807c3ce
Merge pull request #11163 from opensourcerouting/fix/same_type_casting
*: Avoid casting to the same type as on the left
2022-05-10 00:16:30 +03:00
Donatas Abraitis
8998807f69 *: Avoid casting to the same type as on the left
Just not necessary.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-05-08 16:07:42 +03:00
Donald Sharp
4c98b89e5c *: Fix doesnt spelling mistakes
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-05-06 20:38:40 -04:00
Donatas Abraitis
50f1f2e724
Merge pull request #11059 from anlancs/fix/bgpd-evnp-wrong-check-hashget
bgpd: fix memory leak for evpn
2022-05-04 21:19:51 +03:00
Donald Sharp
b7597a8532 tests: Use XCALLOC instead of XMALLOC for threads
Someone decided to do malloc testing over make check.

Fixes: #11120
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-05-02 13:00:47 -04:00
anlan_cs
8e3aae66ce *: remove the checking returned value for hash_get()
Firstly, *keep no change* for `hash_get()` with NULL
`alloc_func`.

Only focus on cases with non-NULL `alloc_func` of
`hash_get()`.

Since `hash_get()` with non-NULL `alloc_func` parameter
shall not fail, just ignore the returned value of it.
The returned value must not be NULL.
So in this case, remove the unnecessary checking NULL
or not for the returned value and add `void` in front
of it.

Importantly, also *keep no change* for the two cases with
non-NULL `alloc_func` -
1) Use `assert(<returned_data> == <searching_data>)` to
   ensure it is a created node, not a found node.
   Refer to `isis_vertex_queue_insert()` of isisd, there
   are many examples of this case in isid.
2) Use `<returned_data> != <searching_data>` to judge it
   is a found node, then free <searching_data>.
   Refer to `aspath_intern()` of bgpd, there are many
   examples of this case in bgpd.

Here, <returned_data> is the returned value from `hash_get()`,
and <searching_data> is the data, which is to be put into
hash table.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2022-05-03 00:41:48 +08:00
Kuldeep Kashyap
4fafd29f0f tests: [PIMv6] Using generic names for pim verification APIs
1. Modified pim APIs name to generic one, same APIs would be used for PIMv4 and PIMv6
verifications
2. Modified all affacted scripts and ran multiple times locally to avoid CI failures

Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
2022-04-30 10:57:31 +05:30
Donald Sharp
fcf6dce79a tests: Correctly align variable type in tests
New compilers are noticing that the tests are compiling with
a pointer for the bgpd_privs variable while the bgp library
that is being linked against is not a pointer.  Since
these tests had the declaration just to make the compiler
happy, let's actually align the variable type to make the
compiler even happier.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-27 08:16:50 -04:00
Donatas Abraitis
77e3d82167 bgpd: Add set as-path replace <any|ASN> cmd for route-maps
```
route-map tstas permit 10
 set as-path replace 1
exit
```

Before:

```
donatas-laptop(config-router-af)# do show ip bgp 10.10.10.10/32
BGP routing table entry for 10.10.10.10/32, version 13
Paths: (1 available, best #1, table default)
  Advertised to non peer-group peers:
  192.168.10.65
  65000 1 2 3 123
    192.168.10.65 from 192.168.10.65 (10.10.10.11)
      Origin IGP, metric 0, valid, external, best (First path received)
      Last update: Mon Apr 25 10:39:50 2022
```

After:

```
donatas-laptop(config-router-af)# do show ip bgp 10.10.10.10/32
BGP routing table entry for 10.10.10.10/32, version 15
Paths: (1 available, best #1, table default)
  Advertised to non peer-group peers:
  192.168.10.65
  65000 65010 2 3 123
    192.168.10.65 from 192.168.10.65 (10.10.10.11)
      Origin IGP, metric 0, valid, external, best (First path received)
      Last update: Mon Apr 25 10:40:16 2022
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-04-25 14:05:22 +03:00
Jafar Al-Gharaibeh
181b6f4377
Merge pull request #7811 from kuldeepkash/multicast_pim_dr_nondr
tests: Add multicast_pim_dr_nondr_test suite
2022-04-20 12:52:46 -05:00
Donald Sharp
4563e2047a tests: Fix spelling of conjuction
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-19 08:28:09 -04:00
Donald Sharp
2b669d3a21 *: Fix spelling of overriden
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-19 08:27:02 -04:00
Donald Sharp
53c7a86eec *: Fix spelling of Verfiy
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-19 08:26:00 -04:00
Donald Sharp
3f1f5852b1 tests: Fix spelling of Initilized
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-19 08:22:47 -04:00
Donald Sharp
3819e4ced7 *: Fix spelling of inteface
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-19 08:21:31 -04:00
Donald Sharp
ce5002c659 *: Fix spelling of comparision
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-19 08:18:43 -04:00
Donald Sharp
e3fde76840 *: Fix spelling of modfiy
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-19 08:17:58 -04:00
Donald Sharp
b515c81a22 tests: Fix spelling of 'registred'
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-19 08:09:36 -04:00
Russ White
1258cfcd8c
Merge pull request #11001 from donaldsharp/system_route_recursion
zebra: Allow system routes to recurse through themselves
2022-04-18 09:47:47 -04:00
kuldeepkash
40c28c860a tests: Add multicast_pim_dr_nondr_test suite
1. Added test cases to test/verify multicast_pim_dr_nondr scenarios

Signed-off-by: kuldeepkash <kashyapk@vmware.com>
2022-04-12 02:39:39 +05:30
Donald Sharp
747aa92e74 tests: Do not turn off multicast stream
The test is testing whether interface flaps are causing
the appropriate pim reactions.  Unfortunately the test
is turning off the multicast stream and the test also
has a keep alive timer of 15 seconds set on all routers.
Which of course means the test has 15 seconds(at most) to finish
testing.  This is not always possible given system loads.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-10 07:47:38 -04:00
Donald Sharp
184ab61ee3 tests: Fix test_multicast_pim_sm_topo3.py from generating a support bundle
The test_multicast_pim_sm_topo3.py test is both spending extra time
looking for state that will never occurr but also generating a support
bundle when it doesn't find it.  Fix the test to come to the correct
solution faster.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-10 07:47:18 -04:00
Donald Sharp
efcd39d87b tests: Add a test case for a kernel route depending on a kernel route
Add a test case where a kernel route depends on a kernel route
and when you perturb an interface, ensure that FRR does not
loose the route.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-09 15:52:58 -04:00
Donald Sharp
91a5a6e75c tests: Add a test to ensure that FRR does not loose kernel routes
Add a test case to ensure that Kernel routes are not lost
when there are multiple overlapping connected routes.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-08 08:15:20 -04:00
Jafar Al-Gharaibeh
eeeed628a3
Merge pull request #10946 from donaldsharp/pim_fhr_lhr_same_pimreg
pimd: Send immediate join( with possible SG RPT prune bit set
2022-04-04 14:00:49 -05:00
Jafar Al-Gharaibeh
a46dd803b6
Merge pull request #10954 from donaldsharp/speell
Speell
2022-04-02 19:08:30 -05:00
Donald Sharp
d94ee2727b tests: Fix spelling of disbale
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-02 07:46:19 -04:00
Donald Sharp
17be83bf99 *: Fix spelling of Gracefull
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-02 07:46:19 -04:00
Donald Sharp
3b52866c0f tests: Fix spelling of neigbors
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-02 07:24:03 -04:00
Christian Hopps
9a33889d89
Merge pull request #10925 from qlyoung/fix-grpc-wants-installed-frr
tests: skip grpc test if frr not installed
2022-04-02 05:22:53 -04:00
Donald Sharp
d60a3f0e71 tests: Fix spelling of daemons
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-01 16:26:38 -04:00
Donald Sharp
953ef1498f tests: Fix spelling of kernel
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-01 16:25:19 -04:00
Donald Sharp
dea6dce388 tests: Fix perticular spelling
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-01 16:24:33 -04:00
Donatas Abraitis
2d5bac3f7e
Merge pull request #10950 from donaldsharp/uninit_test
tests: Fix uninitialized usage of variables in tests
2022-04-01 22:26:53 +03:00
Donald Sharp
515f5f4d7e tests: Fix uninitialized usage of variables in tests
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-01 09:14:11 -04:00
Donald Sharp
de3d6b4db4 tests: Reduce some pim test timings to more manageable levels
a) Remove the retry mechanism to continue looking for 75%
of the time for pim code.

   This alone saves a bunch of time in tests that use lib/pim.py
   Effectively all the times given for retry are already long
   enough.  Additionally some tests are gathering data with
   the expectation that they will not find data so the entire
   time is being taken up in retry's.  Extending the retry
   mechanism makes this even worse.  This is especially bad
   for pim in that keep alive timers are counting down and
   state can be removed due to excessive time waiting.

b) Reduce verify verify_multicast_traffic from 40 seconds
to 20 seconds to gather traffic data.

   A bunch of tests are doing this:
   a) gather pre test start traffic data( taking about 70
   seconds to run, because a bunch of time it was looking
   for data that does not exist yet)
   b) run a change to introduce a different traffic flow
   c) gather post test traffic data ( taking about 70
   seconds to run )

   Why does this matter?  Tests were iterating through
   all the different routers looking for traffic flow
   as well as different mroute state.  This is against
   the keepalive timer of 210 seconds.  It does not take
   long before the stream can be removed and the test is
   still looking for data that is no longer there due
   to state timeout.

   The multicast_pim_sm_topo3/test_multicast_pim_sm_topo3.py
   test reduced run time from 398 seconds to 297 seconds.
   Greatly reducing keepalive timeout problems.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-01 09:01:38 -04:00
Donatas Abraitis
f70c91dcef bgpd: Add %pBP printfrr() extension to print IP(hostname) for BGP peer
Replace existing bgp_peer_hostname() function.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-03-31 21:20:11 +03:00
Quentin Young
9d3a021262 tests: skip grpc test if frr not installed
it wants yang models installed which will only be there if frr has been
installed before, causing `make check` to fail when run on a system on
which frr has not been installed when GRPC is enabled (--enable-grpc)

Signed-off-by: Quentin Young <qlyoung@nvidia.com>
2022-03-29 16:16:35 -04:00
Russ White
c845d58d6f
Merge pull request #10158 from ckishimo/ospf6d_norefresh
ospf6d: stop refreshing type-5 from NSSA
2022-03-29 08:36:05 -04:00
ckishimo
9a974f2292 ospf6d: fix topotest
The routes in the test_nssa_range() are E2

  "routes":{
    "2001:db8:1000::2/128":{
      "destinationType":"Network",
      "installedTimeSince":"00:06:29",
      "changedTimeSince":"00:06:29",
      "numberOfLock":2,
      "flags":"BA--",
      "associatedArea":"0.0.0.2",
      "pathType":"External-2",
      "lsOriginRoutePathType":"NSSA",
      "lsId":"0.0.0.3",
      "lsAdvertisingRouter":"10.254.254.4",
      "options":"--|-|-|--|-|--",
      "routerBits":"--------",
      "prefixOptions":"--|P|--|--|--",
      "metricType":2,
      "metricCost":10,
      "metricCostE2":20,
      "pathsCount":1,
      "nextHopCount":1,
      "nextHops":[
        {
          "nextHop":"::",
          "interfaceName":"r2-eth2"
        }
      ]
    }

This PR fixes the key from `metricCost` to `metricCostE2`

Signed-off-by: ckishimo <carles.kishimoto@gmail.com>
2022-03-28 22:19:53 +02:00
Mobashshera Rasool
3649d8f86c tests: Add the show database for ospfv3 before checking for ospf route
Moved the database dump for ospfv3 before ospf route check.

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2022-03-23 04:08:14 -07:00
Kuldeep Kashyap
98ae5f4f35 tests: Adding bgp_vrf_dynamic_route_leak_topo4 suite
1. Added 3 test cases to veirfy bgp vrf dynamic route leak functionality
Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
2022-03-21 07:42:35 +05:30
Kuldeep Kashyap
133fd9edbe tests: Adding bgp_vrf_dynamic_route_leak_topo3 test suite
1. Added 4 test cases to verify bgp vrf dynamic route leak functionlality

Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
2022-03-21 07:42:35 +05:30
Kuldeep Kashyap
39c661a063 tests: Framework changes to support bgp vrf dynamic route leak automation
1. Enhance framework to support bgp vrf dynamic route leak automation

Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
2022-03-21 07:42:20 +05:30
Christian Hopps
3e771d60be
Merge pull request #10817 from kuldeepkash/micronet_fixes
tests: Fix topotests crash when KeyError found
2022-03-18 12:21:02 -04:00
Martin Winter
f76ce0e0e0
Merge pull request #10705 from kuldeepkash/cut_execution_time
tests: Adding EVPN-GR scenario to evpn_type5 suite
2022-03-17 16:33:59 -07:00
Kuldeep Kashyap
77e578c90e tests: Fix topotests crash when KeyError found
1. Handle KeyError
2. logger object is defined in main function and its not not accessible
   in other functions so defined it in local functions.

Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
2022-03-17 17:29:43 +05:30
Mobashshera Rasool
a73e89ddbc tests: Adding database information in ospfv3 testcase
Improving the test case to show database info as well
to help narrow down whether its a LSA origination problem or
route calculation problem in case of failures.

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2022-03-16 23:59:05 -07:00
Jafar Al-Gharaibeh
51012eb636
Merge pull request #9262 from gpnaveen/ospfv3_basic_tests
tests: adding ospfv3 base cases.
2022-03-16 11:06:19 -05:00
Jafar Al-Gharaibeh
93a7f236ac topotest: enable pim when detecting pim using unified config
Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
2022-03-15 22:29:52 -05:00
nguggarigoud
d1b5fa5b9e tests: adding ospfv3 base cases.
Covers basic test case like route map, rte calc.

Signed-off-by: nguggarigoud <nguggarigoud@vmware.com>
2022-03-15 19:58:51 -07:00
Russ White
5d97021ba3
Merge pull request #10427 from sworleys/Protodown-Reason-Upstream
Add Support for Setting Protodown Reason Code
2022-03-15 19:58:16 -04:00
Donald Sharp
b975463458
Merge pull request #10643 from Jafaral/ospf-multi-vrf
tests: add a topotest for ospf, mutli vrf, and route leaking
2022-03-15 18:58:03 -04:00
Jafar Al-Gharaibeh
83e839d6b6 topotests: pytest mark bgpd
Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
2022-03-15 15:55:26 -05:00
Kuldeep Kashyap
cbeda33d01 tests: Adding EVPN-GR scenario to evpn_type5 suite
1. Adding EVPN-GR scenario to evpn_type5 suite

Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
2022-03-15 07:10:18 +05:30
Donald Sharp
341e1d6e0a
Merge pull request #10738 from LabNConsulting/chopps/fixgrpc
fixes for grpc module
2022-03-14 14:57:59 -04:00
Christian Hopps
e00241ad9f tests: new grpc topotest
Signed-off-by: Christian Hopps <chopps@labn.net>
2022-03-14 11:14:12 -04:00
Christian Hopps
3f264d54f9 tests: analyze should also check /tmp/topotests/topotests.xml
Signed-off-by: Christian Hopps <chopps@labn.net>
2022-03-14 11:14:12 -04:00
Christian Hopps
c451c0296c tests: lib: fix grpc unit-test
Signed-off-by: Christian Hopps <chopps@labn.net>
2022-03-14 11:14:12 -04:00
Donald Sharp
3e553c80ba
Merge pull request #10779 from opensourcerouting/typesafe-backflip
lib: typesafe container reverse iterators
2022-03-13 09:26:26 -04:00
David Lamparter
643ea83be2 lib: add _last and _prev on typesafe RB/DLIST
RB-tree and double-linked-list easily support backwards iteration, and
an use case seems to have popped up.  Let's make it accessible.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2022-03-12 13:23:36 +01:00
Donatas Abraitis
4778843161
Merge pull request #10778 from donaldsharp/command_logging
tests: Make all commands logged
2022-03-12 10:43:57 +02:00
Donald Sharp
a7c0a04f09 tests: Make all commands logged
Do not allow the test system to turn off the logging of commands
Some tests use the reload command that is accidently turning off
the logging.  Just force the tests to ignore it.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-03-11 11:19:29 -05:00
David Lamparter
543a26848d lib: add %pFXh to print prefix w/o prefixlen
Mostly for pimd, for the time being.  May be removed again if unused.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2022-03-11 13:43:19 +01:00
Stephen Worley
0605d4b846 tests: add protodown topotest using sharpd
Add a protodown topotest using sharpd.

Signed-off-by: Stephen Worley <sworley@nvidia.com>
2022-03-09 18:02:44 -05:00
Russ White
82934a6a32
Merge pull request #10701 from rampxxxx/feat_isis_json_show_cmds
Feat isis json show cmds
2022-03-08 11:15:25 -05:00
Jafar Al-Gharaibeh
f73b0cc825 tests: add a topotest for ospf, mutli vrf, and route leaking
Test ospf running with 3 vrfs: default, neno, ray
Route leaking is setup via bgp between default and neno vrfs
Leaked routes include connected and ospf

Included test:
 1- OSPF convergnce
 2- zebra/kernel routes

Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
2022-03-03 23:09:15 -06:00
Javier Garcia
432f143212 topotest: Add test for isis json cmds.
Signed-off-by: Javier Garcia <javier.martin.garcia@ibm.com>
2022-03-02 16:21:29 +01:00
Donald Sharp
4e7a5f06be
Merge pull request #10668 from Jafaral/frr-conf-topotest
topotests: add support for frr.conf as a unified config
2022-02-28 10:28:10 -05:00
Jafar Al-Gharaibeh
a4b4bb5077 topotests: add support for frr.conf as a unified config
This PR adds support for configuring topotest routers using a single file.
  instead of:
```
        router.load_config(
	    TopoRouter.RD_ZEBRA, os.path.join(CWD, "{}/zebra.conf".format(rname))
	    )
	router.load_config(
	    TopoRouter.RD_OSPF, os.path.join(CWD, "{}/ospfd.conf".format(rname))
	    )
	router.load_config(
	    TopoRouter.RD_BGP, os.path.join(CWD, "{}/bgpd.conf".format(rname))
	    )
```
  you can now do:
```
        router.load_frr_config(
	    os.path.join(CWD, "{}/frr.conf".format(rname)),
	    [TopoRouter.RD_ZEBRA, TopoRouter.RD_OSPF, TopoRouter.RD_BGP]
	    )
```
or just:

```
        router.load_frr_config(os.path.join(CWD, "{}/frr.conf".format(rname)))
```
In this latter case, the daemons list will be inferred from frr.conf file.

Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
2022-02-27 20:53:18 -06:00
David Lamparter
9b6ef21e51 tests: use PRNG in checksum test
(And don't try to go beyond fletcher checksum offset special value.)

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2022-02-26 16:49:12 +01:00
David Lamparter
89087f23b5 lib: use iovec for checksum code
... to allow checksumming noncontiguous blurbs of data.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2022-02-26 16:49:12 +01:00
Christian Hopps
7bf63db79b
Merge pull request #10632 from donaldsharp/thread_return_null
*: Change thread->func to return void instead of int
2022-02-24 01:43:48 -05:00
Donald Sharp
cc9f21da22 *: Change thread->func to return void instead of int
The int return value is never used.  Modify the code
base to just return a void instead.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-02-23 19:56:04 -05:00
Russ White
1e982fdbdf
Merge pull request #10385 from iqras23/nh
zebra: Nexthop tracking, route resolution recursive lookup
2022-02-23 16:45:36 -05:00
Igor Ryzhov
474f8e031d
Merge pull request #10585 from ton31337/feature/advmap_set
bgpd: Allow setting attributes over route-maps for conditional advert…
2022-02-23 19:23:03 +03:00
Iqra Siddiqui
9c46c484fe tests: Fix style issues in common_config.py
Signed-off-by: Iqra Siddiqui <imujeebsiddi@vmware.com>
2022-02-22 09:29:48 -08:00
Iqra Siddiqui
055f21c49d tests: Add supporting test to validate NH resolution logic
Co-authored-by: Vijay Kumar Gupta <vijayg@vmware.com>
Signed-off-by: Iqra Siddiqui <imujeebsiddi@vmware.com>
2022-02-22 09:28:00 -08:00
Russ White
85a12b7c59
Merge pull request #10625 from Jafaral/ospf-ns-vrf
topotests: give  a couple of ospf topotests better descriptive names
2022-02-22 11:28:19 -05:00
Louis Scalbert
0bc7685206 topotests: set router name as title in screen and xterm
When running a topotest with the --shell or --vtysh argument, the
window titles of the routers are generic.

Set the router name as title to identify correctly the window.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2022-02-21 10:06:48 +01:00
Louis Scalbert
ce530b418f topotests: fix usage of screen
Opening new tab in screen is not possible when using option --vtysh or
--shell. Error 'No such file or directory'.

Fix the issue.

Fixes: 6a5433ef0b ("tests: NEW micronet replacement for mininet")
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2022-02-21 10:06:44 +01:00
Jafar Al-Gharaibeh
f2f5c98601 tests: rename topotest ospf_topo1_vrf to ospf_netns_vrf
Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
2022-02-20 14:12:43 -06:00
Jafar Al-Gharaibeh
59bc746288 tests: rename topotest ospf_topo2 to ospf_unnumbered
Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
2022-02-20 13:57:56 -06:00
Donatas Abraitis
51c3a7deed bgpd: Allow setting attributes over route-maps for conditional advertisements
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2022-02-18 11:46:05 +02:00
Donald Sharp
8031b96e2e tests: Cleanup test_route_map_topo1.py from pylint
noticed that pylint was complaining about some easily
fixable stuff in test_route_map_topo1.py so let's clean
it up some.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-02-16 15:17:11 -05:00
Russ White
8f689a6e8d
Merge pull request #10546 from ton31337/fix/check_for_null_inside_unintern
bgpd: Check for NULL inside aspath_unintern()
2022-02-15 12:59:45 -05:00
Donald Sharp
e1f79be5ed tests: Fix spelling and grammar mistakes
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-02-14 12:55:20 -05:00
Donatas Abraitis
b7b3e63cc0 bgpd: Check for NULL inside aspath_unintern()
It's not always guarded, just check inside.

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2022-02-09 16:41:14 +02:00
Abhinay Ramesh
0afa645317 tests: Added ospf6 authentication trailer topotest
Have added topotest to verify below combination.
Auth support for md5
Auth support for hmac-sha-256
Auth support with keychain for md5
Auth support with keychain for hmac-sha-256

Have sussessfully run all 4 test cases in my local setup.

Signed-off-by: Abhinay Ramesh <rabhinay@vmware.com>
2022-02-09 01:57:08 +00:00
Donald Sharp
b564209367
Merge pull request #8458 from opensourcerouting/xref-5424
lib: RFC5424 syslog support
2022-02-08 15:56:20 -05:00
Igor Ryzhov
21b5cd1d16 tests: fix strings with topologies
Add `r` prefix to treat backslashes as literals.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2022-02-08 17:00:44 +03:00
Russ White
107f77b56f
Merge pull request #10517 from idryzhov/isis_router_cap_tlv_fixes
isisd: fix router capability TLV parsing issues
2022-02-08 08:35:45 -05:00
Russ White
3f544261af
Merge pull request #10293 from rgirada/ospf_lsid
ospfd: Modifying LSID generation algorithm
2022-02-08 08:33:33 -05:00
Russ White
e735c8073c
Merge pull request #9649 from proelbtn/add-support-for-end-dt4
add support for SRv6 IPv4 L3VPN
2022-02-08 08:30:02 -05:00
Juraj Vijtiuk
9ba865f54d isisd: fix router capability TLV parsing issues
isis_tlvs.c would fail at multiple places if incorrect TLVs were
received causing stream assertion violations.
This patch fixes the issues by adding missing length checks, missing
consumed length updates and handling malformed Segment Routing subTLVs.

Signed-off-by: Juraj Vijtiuk <juraj.vijtiuk@sartura.hr>

Small adjustments by Igor Ryzhov:
- fix incorrect replacement of srgb by srlb on lines 3052 and 3054
- add length check for ISIS_SUBTLV_ALGORITHM
- fix conflict in fuzzing data during rebase

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2022-02-08 11:31:45 +03:00
Olivier Dugeon
62f79ac129 tests: Add CSPF topotest
Add new topotest for the Constraints ShortestPath First (CSPF) algorithm.
This topotest uses IS-IS-TE as base network to populate a Traffic Engineering
Database (TED) and sharpd to call cspf algorithms on this IS-IS-TE topology.

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
2022-02-02 17:04:12 +01:00
Olivier Dugeon
538f34cb20 lib: Correct bug for TE metric wrong assignement
When link-param is enabled for a given interface, TE metric is automatically
assigned to the metric of the interface. However, the metric of the interface
could be unassigned and keep the default value equal to 0. Thus, if the TE
metric is not explicitely modified within the `link-param metric` statement,
TE metric remains set to 0 which is not a valid value especially when
computing constrainted path.

This patch changes the assignement of the default value of the TE metric.
It is set to the metric of the interface only if the latter is not equal to 0.
TE topotests for OSPF and IS-IS have been adjusted accordingly.

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
2022-02-02 17:04:12 +01:00
Mark Stapp
cf8638ed34
Merge pull request #10464 from pguibert6WIND/negogiate
topotests: fix typo about bgp_dont_capability folder name
2022-02-01 13:00:54 -05:00
Russ White
e9a2378119
Merge pull request #10391 from gromit1811/bug_9720_ecmp_inter_area_topotest_3paths
tests: Topotest for checking ECMP inter-area nexthop handling
2022-02-01 10:55:13 -05:00
Philippe Guibert
0a1663ce3a topotests: fix typo about bgp_dont_capability folder name
The folder bgp_dont_capability.. was wrong. Use negotiate
instead of negogiate.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2022-02-01 16:52:20 +01:00
Martin Buck
5a104c8634 tests: Topotest for checking ECMP inter-area nexthop handling
Used to reproduce #9720 and may also serve as a regression test in the
future.

Signed-off-by: Martin Buck <mb-tmp-tvguho.pbz@gromit.dyndns.org>
2022-01-31 08:31:00 +01:00
Donatas Abraitis
7a90d91586
Merge pull request #10408 from idryzhov/no-opaque-by-default
*: do not send opaque data to zebra by default
2022-01-28 12:54:16 +02:00
Donatas Abraitis
9d56cc8750
Merge pull request #10159 from taspelund/retain-peer-asn
bgpd: retain peer asn even with remove-private-AS
2022-01-28 09:22:06 +02:00
Donatas Abraitis
6766acddbf
Merge pull request #9880 from louis-oui/maximum-prefix-out
bgpd: fixes maximum prefix out
2022-01-27 08:49:31 +02:00
Louis Scalbert
49656aeb43 topotests: set bgp peer-group with maximum-prefix-out
Set different combinations of bgp peer-group with a maximum-prefix-out
value.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2022-01-26 16:50:11 +01:00
Louis Scalbert
c7ec458862 topotests: bgp no neighbor X.X.X.X maximum-prefix-out Y
Test the ability to use the following configure command with a Y value:

no neighbor X.X.X.X maximum-prefix-out Y

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2022-01-26 16:38:14 +01:00
Russ White
e48b2fea63
Merge pull request #10411 from idryzhov/if-config-vrf-name
*: do not print vrf name for interface config when using vrf-lite
2022-01-25 11:34:59 -05:00
Trey Aspelund
d20e1bba27 tests: add topotest for remove-private-AS
Introduces a topotest to validate proper AS-Path manipulation when using
"neighbor ... remove-private-AS".

Signed-off-by: Trey Aspelund <taspelund@nvidia.com>
2022-01-24 20:06:50 +00:00
Igor Ryzhov
870791a3b5 *: do not send opaque data to zebra by default
Opaque data takes up a lot of memory when there are a lot of routes on
the box. Given that this is just a cosmetic info, I propose to disable
it by default to not shock people who start using FRR for the first time
or upgrades from an old version.

Fixes #10101.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2022-01-24 22:18:46 +03:00
Igor Ryzhov
788a036fdb *: do not print vrf name for interface config when using vrf-lite
VRF name should not be printed in the config since 574445ec. The update
was done for NB config output but I missed it for regular vty output.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2022-01-24 14:44:05 +03:00
Russ White
2d9e10d095
Merge pull request #10318 from donaldsharp/redistribution
OSPF Redistribution
2022-01-23 22:30:24 -05:00
Russ White
6bc879bb33
Merge pull request #10348 from ton31337/fix/gr_dynamic_neighbors2
bgpd: Graceful-restart / LLGR with dynamic peers
2022-01-23 22:28:34 -05:00
rgirada
1478f0ad11 ospfd: topotest cases for LSID change algo
Description:
	Topotest cases for LSID change (RFC 2328 appendex-E)
	algorithm.

Signed-off-by: Rajesh Girada <rgirada@vmware.com>
2022-01-22 04:10:20 -08:00
Louis Scalbert
f5b25d2c34 topotests: apply bgp maximum-prefix-out without clearing the neighbor
The current maximum-prefix-out topo-test starts a configuration with a
maximum-prefix-out.

Test the application of new maximum-prefix-out value without clearing
the neighbor.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2022-01-20 18:19:37 +01:00
Philippe Guibert
6f48266e1d topotests: isis vrf config changed
Use vrf keyword for interface, and directly configure isis under
that interface.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2022-01-20 16:19:14 +01:00
Donatas Abraitis
77411f45c8 tests: Lower keepalive/hold/connect timers for BGP LLGR test
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2022-01-19 15:02:08 +02:00
Donatas Abraitis
c617ad1d05 tests: Check if LLGR works with dynamic peers as well
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2022-01-19 15:02:08 +02:00
Stephen Worley
91cefe58fb
Merge pull request #10351 from mobash-rasool/topotest-ci-fix
tests: Fix random failure in test_PIM_hello_tx_rx_p1
2022-01-18 16:47:39 -05:00
Russ White
18ed776ca2
Merge pull request #9938 from Orange-OpenSource/isis_ls
isisd: Add Link State Traffic Engineering support
2022-01-18 10:12:08 -05:00
Russ White
05786ac774
Merge pull request #9644 from opensourcerouting/ospf-opaque-attrs
OSPF opaque route attributes
2022-01-18 09:08:38 -05:00
Donald Sharp
40e9c14429 tests: Add ospf_instance_redistribute testing
Redistribution for ospf with instance id's using instance id's
was incorrect.  Add some small tests to make sure it catches the
issues and we don't regress.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-01-18 08:39:40 -05:00
Rafael Zalamena
4e4c027803
Merge pull request #10183 from idryzhov/rework-vrf-rename
*: rework renaming the default VRF
2022-01-17 08:45:12 -03:00
David Lamparter
28297b1e84 tests: fuzzing target for zlog_5424 code
This just tries logging messages in random ways to allow the fuzzer to
do its thing and try to find weird edge cases.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2022-01-17 00:39:00 +01:00
Mobashshera Rasool
3996d25e3c tests: Fix random failure in test_PIM_hello_tx_rx_p1
The test case test_PIM_hello_tx_rx_p1 is failing randomly because
sometimes the hello packet is received and sometimes not received while getting
the stats data.
When the hello packet is received HelloRx gets incremented to 1 and then
shutdown of the interface is executed which resets the stats to 0
and again when "no shutdown" of the interface is done, the stats get incremented to 1.
The test case checks after "no shutdown" of the interface whether the stats is incremented
but in this case although the stats got incremented the before and after value is same.
Hence the test case failed.

Adding correct expectations in the test case.

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2022-01-16 04:00:11 -08:00
Renato Westphal
485e8b5662 tests: check if OSPF opaque attributes are installed in the RIB
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2022-01-15 17:22:27 +01:00
David Lamparter
2c76ba433f lib: add time formatting printfrr exts
Refer to docs in doc/developer for details.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2022-01-14 13:33:57 +01:00
David Lamparter
2c5b4d80ef lib: add s option to pI4/pI6/pIA printfrr
Adding an `s` after these printfrr specifiers replaces 0.0.0.0 / :: in
the output with a star (`*`).  This is primarily intended for use with
multicast, e.g. to print `(*,G)`.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2022-01-14 11:57:46 +01:00
David Lamparter
d51f8b0f1e pimd: move %pSG4 to %pPSG4
Since this is only used in very few places, moving it out of the way is
reasonable.  (`%pSG` will be pim_sgaddr)

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2022-01-12 18:24:07 +01:00
ARShreenidhi
771ac547f1 tests: BGP : Dynamic route leak VRF lite (BGP-GR)
Authored-by: Shreenidhi A R <rshreenidhi@vmware.com>
Signed-off-by: Shreenidhi A R <rshreenidhi@vmware.com>
2022-01-08 10:21:10 -08:00
Donatas Abraitis
c5aef655d8 tests: Adopt bgp_shutdown_message test to a proper encoding
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2022-01-07 22:35:38 +02:00
Jafar Al-Gharaibeh
541b51a5a3
Merge pull request #10301 from donaldsharp/pim_multicast_fix
tools: Give longer for interface traffic in pim to work
2022-01-07 14:18:08 -06:00
Jafar Al-Gharaibeh
23b43aac0f
Merge pull request #10290 from donaldsharp/nhrp_topo_queries
Nhrp topo queries
2022-01-07 14:00:50 -06:00
Donald Sharp
758999b3e0 tests: Ensure packets have a chance to arrive in test_multicast_pim_sm_topo4.py
The test is doing this:

a) gather interface data about packets sent
b) shut interface
c) no shut interface
d) gather interface data about packets sent
e) compare a to d and fail if packets sent/received has not incremented

The problem is, of course, that under heavy system load insufficient time
might not have passed for packets to be sent between c and d.  Add up to
35 seconds of looking for packet data being incremented else heavily
loaded systems may never show that data is being sent.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-01-07 11:03:15 -05:00
Donald Sharp
715d3774aa test: Cleanup via black the test_multicast_pim_sm_topo4.py
The test needed some cleanup via black formatting.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-01-07 11:03:15 -05:00
Donald Sharp
0b01a0bbc4 tests: Rename poorly named function
verify_pim_interface_traffic *fetches* the pim
traffic data.  Rename the function to what it
actually does

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-01-07 11:03:15 -05:00
Donald Sharp
3d162a6950
Merge pull request #10284 from ton31337/fix/adjust_rfc4486
bgpd: Adjust symbolic names for cease notifications according to rfc4486
2022-01-06 07:49:00 -05:00
Donald Sharp
60b5ff877a tests: Fixup output that was incorrect in nhrp_topo
The nhrp_topo test sets up some infrastructure and
was displaying the commands it was outputting
incorrectly.  Fix this.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-01-06 07:33:11 -05:00
Donatas Abraitis
dcbebfd3ff bgpd: Graceful Restart restart-time can be 0
Using with LLGR, this should be allowed setting GR restart-time timer to 0,
to immediately start LLGR timers.

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2022-01-06 11:24:48 +02:00
Donatas Abraitis
0ac7452334 bgpd: Adjust symbolic names for cease notifications according to rfc4486
The following subcodes are defined for the Cease NOTIFICATION
   message:

      Subcode     Symbolic Name

         1        Maximum Number of Prefixes Reached
         2        Administrative Shutdown
         3        Peer De-configured
         4        Administrative Reset
         5        Connection Rejected
         6        Other Configuration Change
         7        Connection Collision Resolution
         8        Out of Resources

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2022-01-06 10:07:41 +02:00
David Lamparter
fbfdb4f23a topotests: require Linux 5.0 for NHRP
It fails on 4.19, so let's go minimum 5.0 for the time being.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2022-01-05 21:00:40 +01:00
Russ White
d962e875fe
Merge pull request #10260 from ton31337/feature/bgp_llgr_helper_mode
bgpd: Implement LLGR helper mode
2022-01-05 10:08:31 -05:00
Russ White
074ad7cb59
Merge pull request #10219 from donaldsharp/l3vpn_to_bgp_vrf_fixes
tests: Further fix bgp_l3vpn_to_bgp_vrf
2021-12-30 18:42:21 -05:00
Donatas Abraitis
dabca69ee7 tests: Add basic BGP Long-lived Graceful restart tests
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-12-28 16:35:57 +02:00
Donatas Abraitis
1182f26489
Merge pull request #8494 from donaldsharp/wfi_failures
bgpd, tests: Add code to handle failed installations
2021-12-22 09:53:44 +02:00
Igor Ryzhov
ac2cb9bf94 *: rework renaming the default VRF
Currently, it is possible to rename the default VRF either by passing
`-o` option to zebra or by creating a file in `/var/run/netns` and
binding it to `/proc/self/ns/net`.

In both cases, only zebra knows about the rename and other daemons learn
about it only after they connect to zebra. This is a problem, because
daemons may read their config before they connect to zebra. To handle
this rename after the config is read, we have some special code in every
single daemon, which is not very bad but not desirable in my opinion.
But things are getting worse when we need to handle this in northbound
layer as we have to manually rewrite the config nodes. This approach is
already hacky, but still works as every daemon handles its own NB
structures. But it is completely incompatible with the central
management daemon architecture we are aiming for, as mgmtd doesn't even
have a connection with zebra to learn from it. And it shouldn't have it,
because operational state changes should never affect configuration.

To solve the problem and simplify the code, I propose to expand the `-o`
option to all daemons. By using the startup option, we let daemons know
about the rename before they read their configs so we don't need any
special code to deal with it. There's an easy way to pass the option to
all daemons by using `frr_global_options` variable.

Unfortunately, the second way of renaming by creating a file in
`/var/run/netns` is incompatible with the new mgmtd architecture.
Theoretically, we could force daemons to read their configs only after
they connect to zebra, but it means adding even more code to handle a
very specific use-case. And anyway this won't work for mgmtd as it
doesn't have a connection with zebra. So I had to remove this option.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-12-21 22:09:29 +03:00
Donald Sharp
9d472a3581
Merge pull request #10098 from opensourcerouting/ospf-gr-topotest-fix
ospfd: fix incorrect detection of topology changes in helper mode
2021-12-21 08:43:32 -05:00
Donald Sharp
be785e356a bgpd, tests: Add code to handle failed installations
Currently the Wait for Install code ( bgp_suppress_fib ) does
not properly handle two states from zebra:  ROUTE_INSTALL_FAILED
and BETTER_ADMIN_DISTANCE_WON.  Pre this change the WFI code
would just never notify our peers about a route install failure
but more is needed.  In the ROUTE_INSTALL_FAILED and the
BETTER_ADMIN_DISTANCE_WON we need to notify our peers with
a withdrawal about the route, else we will continue to
draw traffic to us when we cannot legally do so.

Why is this needed?  In either case imagine that we've already
received a bgp route, installed it and sent to our peers.
In the Better admin distance won case, say a static route is installed
at this point in time we must stop advertising the route through
us since we are not installed.  As such a withdrawal must be sent.

In the ROUTE_INSTALL_FAILED case, the code was not properly handling
the situation where we have Route A, it was successfully installed
and then we received a update to Route A that was attempted to be
installed but failed.  In this case we also need to send a withdrawal

Finally update the bgp_suppress_fib topotest to test both of these
situations.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-12-17 13:28:56 -05:00
Donald Sharp
a3a0d43585 tests: Further fix bgp_l3vpn_to_bgp_vrf
There still existed chances that best path consideration
has not taken place for both bgp_l3vpn_to_bgp_vrf and
bgp_instance_del_test ( since they both used the same
check_routes.py scripting ).  Add some more checks
to ensure that we have all the data.  Prior to this
change I could see one of these two tests failing
every 2-3 runs on my test system.  I am not seeing
this anymore after ~5 complete test runs.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-12-14 07:29:41 -05:00
Donald Sharp
235f1ccd9b tests: test_ospf_lan.py is looking for a certain order enforce it
OSPF when converging will choose a DR / Backup DR based upon
who has already come up.  Irrelevant of priority.  As such if
under system load OSPF comes up first and elects a DR that under
normal circumstances not be the elected one due to priority
OSPF does not go back through and re-elect to keep the system
stable in this case.  Tests are experiencing this:

unet> r0 show ip ospf neigh

Neighbor ID     Pri State           Up Time         Dead Time Address         Interface                        RXmtL RqstL DBsmL
100.1.1.1        99 Full/Backup     4m14s              3.780s 10.0.1.2        r0-s1-eth0:10.0.1.1                  0     0     0
100.1.1.2         0 Full/DROther    4m14s              3.848s 10.0.1.3        r0-s1-eth0:10.0.1.1                  0     0     0
100.1.1.3         0 Full/DROther    4m14s              3.912s 10.0.1.4        r0-s1-eth0:10.0.1.1                  0     0     0

unet> r1 show ip ospf neigh

Neighbor ID     Pri State           Up Time         Dead Time Address         Interface                        RXmtL RqstL DBsmL
100.1.1.0        98 Full/DR         4m15s              3.011s 10.0.1.1        r1-s1-eth1:10.0.1.2                  0     0     0
100.1.1.2         0 Full/DROther    4m19s              3.124s 10.0.1.3        r1-s1-eth1:10.0.1.2                  0     0     0
100.1.1.3         0 Full/DROther    4m19s              3.188s 10.0.1.4        r1-s1-eth1:10.0.1.2                  0     0     0

unet> r2 show ip ospf neigh

Neighbor ID     Pri State           Up Time         Dead Time Address         Interface                        RXmtL RqstL DBsmL
100.1.1.0        98 Full/DR         4m27s              3.483s 10.0.1.1        r2-s1-eth0:10.0.1.3                  0     0     0
100.1.1.1        99 Full/Backup     4m32s              3.527s 10.0.1.2        r2-s1-eth0:10.0.1.3                  0     0     0
100.1.1.3         0 2-Way/DROther   4m32s              3.660s 10.0.1.4        r2-s1-eth0:10.0.1.3                  0     0     0

unet> r3 show ip ospf neigh

Neighbor ID     Pri State           Up Time         Dead Time Address         Interface                        RXmtL RqstL DBsmL
100.1.1.0        98 Full/DR         4m55s              3.786s 10.0.1.1        r3-s1-eth1:10.0.1.4                  0     0     0
100.1.1.1        99 Full/Backup     4m55s              3.829s 10.0.1.2        r3-s1-eth1:10.0.1.4                  0     0     0
100.1.1.2         0 2-Way/DROther   4m54s              3.897s 10.0.1.3        r3-s1-eth1:10.0.1.4                  0     0     0

Modify the test to do a clear to enforce the order we are specifically looking for.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-12-11 12:05:36 -05:00