Commit Graph

1866 Commits

Author SHA1 Message Date
David Lamparter
53abc26569 tests: simplify docker rsync & support worktrees
The previous, more complex mechanism failed to take into account that
git worktrees only have a stub .git file & copying the worktree itself
is not enough.  Just extract a file list beforehand & don't bother with
git inside the container.

Signed-off-by: David Lamparter <equinox@diac24.net>
2021-03-17 13:42:20 +01:00
David Lamparter
071f5c1664 tests: add libelf-dev to Dockerfile
Signed-off-by: David Lamparter <equinox@diac24.net>
2021-03-17 13:42:20 +01:00
Rafael Zalamena
57e627628d
Merge pull request #8229 from idryzhov/bfdd-echo-rx-tx
bfdd: separate echo rx/tx timers
2021-03-17 10:41:33 +00:00
ckishimo
d205f01e1d tests: fix too many arguments for logging
Signed-off-by: ckishimo <carles.kishimoto@gmail.com>
2021-03-17 09:35:47 +01:00
David Lamparter
80413c2073 *: require semicolon after FRR_DAEMON_INFO & co.
... again ...

Signed-off-by: David Lamparter <equinox@diac24.net>
2021-03-17 06:18:39 +01:00
David Lamparter
960b9a5383 *: require semicolon after DEFINE_<typesafe...>
Again, see previous commits.

Signed-off-by: David Lamparter <equinox@diac24.net>
2021-03-17 06:18:39 +01:00
David Lamparter
bf8d3d6aca *: require semicolon after DEFINE_MTYPE & co
Back when I put this together in 2015, ISO C11 was still reasonably new
and we couldn't require it just yet.  Without ISO C11, there is no
"good" way (only bad hacks) to require a semicolon after a macro that
ends with a function definition.  And if you added one anyway, you'd get
"spurious semicolon" warnings on some compilers...

With C11, `_Static_assert()` at the end of a macro will make it so that
the semicolon is properly required, consumed, and not warned about.

Consistently requiring semicolons after "file-level" macros matches
Linux kernel coding style and helps some editors against mis-syntax'ing
these macros.

Signed-off-by: David Lamparter <equinox@diac24.net>
2021-03-17 06:18:17 +01:00
ckishimo
9b1bb522e0 tests: fix warning when checking ospfv3 convergence
The following error is shown when running the OSPFv3 tests

2021-03-16 23:37:44,792 INFO: Function returned global name 'data_rid' is not defined
2021-03-16 23:37:44,792 INFO: Retry [#1] after sleeping for 2s
2021-03-16 23:37:46,794 INFO: Verifying OSPF6 neighborship on router r1:
2021-03-16 23:37:46,993 INFO: Output for command [ show ipv6 ospf6 neighbor ] on router r1:
Neighbor ID     Pri    DeadTime    State/IfState         Duration I/F[State]
2.2.2.2           1    00:00:03     Full/PointToPoint    00:00:01 r1-r2-eth0[PointToPoint]

Fix the "data_rid" warning by using the correct variable

Signed-off-by: ckishimo <carles.kishimoto@gmail.com>
2021-03-17 00:19:54 +01:00
Igor Ryzhov
4df3e31c3d bfdd: separate echo rx/tx timers
Currently there is a single interval for both RX and TX echo functions.
This commit introduces separate RX and TX timers for echo packets.

The main advantage is to be able to set the receive interval to zero
when we don't want to receive echo packets from the remote system.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-03-16 22:14:57 +03:00
Pat Ruddy
a1997ea033 tests: re-enable RTE tests after removing fixed ifindices
Change ifindex test to grab the correct indices using the API
provided.

Signed-off-by: Pat Ruddy <pat@voltanet.io>
2021-03-16 15:29:20 +00:00
Pat Ruddy
2bf118962f tests: fix formatting error to make black clean
Signed-off-by: Pat Ruddy <pat@voltanet.io>
2021-03-16 15:29:19 +00:00
Karen Schoener
eb44a85454 tests: update LDP SNMP topotest to walk mib objects that are statistics
Signed-off-by: Karen Schoener <karen@voltanet.io>
2021-03-16 10:23:34 -04:00
lynne
83543d89ae test: fix isis-snmp test
Remove ifindex values being tested because it can change
between runs of the test.

Signed-off-by: Lynne Morrison <lynne@voltanet.io>
2021-03-16 08:00:41 -04:00
David Schweizer
83d2076e4f tests: add. iproute2 VRF capability check example
Additional example usage of iproute2_is_vrf_capable check in
isis-topo1-vrf topotest.

Signed-off-by: David Schweizer <dschweizer@opensourcerouting.org>
2021-03-16 09:34:21 +01:00
David Schweizer
ddbc1ad2a0 tests: iproute2 VRF capability check examples
Example usage of iproute2_is_vrf_capable check in bgp_multi_vrf_topo1
and bgp_multi_vrf_topo2 topotests.

Signed-off-by: David Schweizer <dschweizer@opensourcerouting.org>
2021-03-15 12:49:59 +01:00
David Schweizer
0414a76446 tests: check for iproute2 VRF capability
Signed-off-by: David Schweizer <dschweizer@opensourcerouting.org>
2021-03-15 12:48:38 +01:00
Renato Westphal
bfa46e3bdd
Merge pull request #8147 from volta-networks/feat_ldp_snmp_without_stats
ldpd: Add support for read-only snmp mib objects (excluding statistics)
2021-03-14 22:25:00 -03:00
Renato Westphal
e1908ceb42
Merge pull request #7945 from volta-networks/feat_isis_snmp
isisd: add support for read-only snmp mibs objects
2021-03-14 22:14:27 -03:00
Rafael Zalamena
5b2906f4b4 topotests: temporary disable test assert
The test has been failing often recently and it is causing some false
positives for unrelated PRs.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2021-03-14 10:15:20 -03:00
Rafael Zalamena
296951b598 topotests: remove some interface index check
Don't expect the interface index to be always the same.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2021-03-12 17:33:23 -03:00
Rafael Zalamena
0085000b9e topotests: remove some FRR version checks
We version the tests with the source code so we should no longer attempt
to support old versions in development branch.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2021-03-12 17:32:12 -03:00
GalaxyGorilla
17128dea27 tests: Replace ospf-sr-topo1 by ospf-sr-topo2
The new ospf-sr-topo2 tests are much broader and detailed,
hence it makes no sense to keep the old ospf-sr-topo1
tests.

Signed-off-by: GalaxyGorilla <sascha@netdef.org>
2021-03-10 10:37:58 +00:00
GalaxyGorilla
9dd6fc9ded tests: OSPF SR topotests (ospf-sr-topo2)
Signed-off-by: GalaxyGorilla <sascha@netdef.org>
2021-03-10 10:14:38 +00:00
Russ White
7c7e4db935
Merge pull request #8123 from gromit1811/fix_topotest_ipv6_linklocal
tests: Fix determination of IPv6 link-local addresses
2021-03-09 11:25:10 -05:00
David Lamparter
6adedc6fe3
Merge pull request #8176 from LabNConsulting/chopps/fix-locale-fail
tests: Sort expected and actual to avoid locale issues
2021-03-09 12:34:38 +01:00
Donatas Abraitis
f79d311b3e
Merge pull request #8180 from kuldeepkash/topojson_framework
tests: Improve error/assert message logging
2021-03-08 09:32:09 +02:00
Donatas Abraitis
7b94dd35dd
Merge pull request #8195 from qlyoung/fix-community-type-command
tests: fix community-list invalid command
2021-03-07 17:04:57 +02:00
Kuldeep Kashyap
5cbb02ebde tests: Improve error/assert message logging
1. Improved error meesage logging.
2. No functionality changes only put some meaningfull error messages.

Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
2021-03-06 00:51:43 -08:00
Donald Sharp
122a7974dd
Merge pull request #8196 from ton31337/feature/rfc8654_bgpd
bgpd: Add BGP Extended message support
2021-03-05 07:18:42 -05:00
Rafael Zalamena
ee56932473
Merge pull request #8165 from wesleycoakley/misc-qol-fixups
staticd, pimd, tests: small fixups and cov fix
2021-03-05 11:22:47 +00:00
Christian Hopps
00756aa345 tests: Sort expected and actual to avoid locale issues
Avoid undocumented topotest dependency on installing en_US locale.
With this change dependency is removed.

Signed-off-by: Christian Hopps <chopps@labn.net>
2021-03-04 12:33:26 -05:00
Quentin Young
bb4bcaad9a
Merge pull request #8190 from gromit1811/fix_topotest_pylint
tests: Fix topotest.py pylint errors
2021-03-03 15:43:38 -05:00
Donatas Abraitis
8b6ff0de56 tests: Use BGP Extended Message length
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-03-03 22:21:08 +02:00
Rafael Zalamena
fecbc5d2e7
Merge pull request #8189 from idryzhov/topotest-mkdir
tests: don't complain when /tmp/topotests exists
2021-03-03 19:30:11 +00:00
Quentin Young
60e7da0cff tests: fix community-list invalid command
Didn't test this but it's already randomly broken so cant be worse

Hopefully fixes:

raise InvalidCLIError("%s" % output)
InvalidCLIError: line 2: % Command incomplete[4]: bgp
large-community-list standard Test1 permit

Signed-off-by: Quentin Young <qlyoung@nvidia.com>
2021-03-03 13:56:39 -05:00
Martin Buck
67c3bf97c3 tests: Fix topotest.py pylint errors
Fix 2 string formatting errors (cosmetic only - remove unused string
formatting arguments). Also fix obvious typos in empty class FreeBSDRouter
implementation.

Signed-off-by: Martin Buck <mb-tmp-tvguho.pbz@gromit.dyndns.org>
2021-03-03 16:19:59 +01:00
Igor Ryzhov
f60e5fd3d1
Merge pull request #8183 from kuldeepkash/multicast_pim_bsm
tests: Fix for test failure in PR #8158
2021-03-03 18:05:41 +03:00
Igor Ryzhov
cac0ed050e tests: don't complain when /tmp/topotests exists
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-03-03 14:22:15 +03:00
Wesley Coakley
23f3a92e34
tests: address coverity / styling issues in topotests
Signed-off-by: Wesley Coakley <wcoakley@nvidia.com>
2021-03-02 20:44:15 -05:00
Donald Sharp
17d1e8a386 tests: Don't generate support bundles when we get the results we want
We are generating support bundles for tests being run that
are passing.  Tell the system...

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-03-02 13:41:50 -05:00
Donald Sharp
9dfe1acd2a tests: Remove sleep(60) and look for convergence
Sleeping when convergence is not guaranteed in 60 seconds
and then testing the rib to see if it has the data is
not a great way to have a test complete all the time.

Modify the code so that we check for convergence
and if we have converged then look in the rib.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-03-02 13:41:50 -05:00
lynne
0a4340469e tests: Adding test for ISIS SNMP
Adding test to verify walking of the ISIS SNMP MIB

Signed-off-by: Lynne Morrison <lynne@voltanet.io>
Signed-off-by: Karen Schoener <karen@voltanet.io>
2021-03-02 10:06:31 -05:00
Kuldeep Kashyap
d99438d27d tests: Fix for test failure in PR #8158
1. There were few tests where routes were configured with blackhole and
non-blackhole nexthops simultaneously, enhanced tests accordingly and
verified in master branch and with PR #8158 changes.

Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
2021-03-02 05:32:28 -08:00
Donald Sharp
5980ad0ae0 tests: Run black against tests again to clean up formatting
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-03-01 09:18:49 -05:00
Donald Sharp
b9a210f951 tests: Add pytest.mark.snmp
Add the ability to run snmp tests

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-03-01 09:17:53 -05:00
Donald Sharp
5ad1fd54a8 tests: Add some pytest.mark.bgpd
Add some pytest.mark.bgpd.  This is about all I could stomach doing
in one patch.  I'll do another pass at another time.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-03-01 09:11:38 -05:00
Donatas Abraitis
484ff4899b tests: Check if bgp default ipv[46]-unicast commands work
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-02-28 19:51:12 +02:00
Renato Westphal
784f92f052 isisd: handle corner case involving TI-LFA and the SR No-PHP flag
When the last SID in the TI-LFA repair list is an Adj-SID from the
penultimate hop router towards the final hop, the No-PHP flag of the
original Prefix-SID must be honored in the repair list itself since
the penultimate hop router won't have a chance to process that SID
and pop it if necessary.

Reported-by: Fredi Raspall <fredi@voltanet.io>
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2021-02-26 15:54:01 -03:00
Kuldeep Kashyap
5900cf46f7 tests: Fix for blackhole test in test_mcast_pim_bsmp suite
1. Fixed for blackhole test in test_mcast_pim_bsmp suite

Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
2021-02-25 23:49:58 -08:00
Karen Schoener
0534e94c10 tests: add topotest for LDP SNMP
Signed-off-by: Karen Schoener <karen@voltanet.io>
2021-02-24 17:38:02 -05:00
Anuradha Karuppiah
6bf6282da9 tests: increase ping attempts in EVPN MH to fix failures on ARM
There are two fixes to handle slow convergence on ARM -
1. Ping on every re-try attempt to account for initial packet loss
2. Handle incomplete show outputs gracefully

Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
2021-02-24 08:11:26 -08:00
Russ White
a09016c833
Merge pull request #8020 from ton31337/feature/test_aggregator_as_with_0_exabgp
tests: Test if BGP AGGREGATOR attribute is discarded if ASN comes as 0
2021-02-23 11:06:34 -05:00
Donald Sharp
fa17cdc70f
Merge pull request #8125 from opensourcerouting/topotest-labn-jsoncmp
tests: JSON comparison command for LabN topotests
2021-02-22 09:38:03 -05:00
Mark Stapp
6589cae5f8
Merge pull request #7920 from donaldsharp/more_pytest_cleanup
More pytest cleanup
2021-02-22 07:31:22 -05:00
David Schweizer
92cf76677b
tests: example using new "jsoncmp_pass" command
Signed-off-by: David Schweizer <dschweizer@opensourcerouting.org>
2021-02-22 10:49:36 +01:00
David Schweizer
4e3828b771
tests: JSON comparison command for LabN topotests
The changes add the "jsoncmp_pass" and the "jsoncmp_fail" commands to
compare VTY shell's JSON output to an expected JSON object during
topotests using the LabN testing framework. This helps to eliminate
false negative test results (i.e. due to routes beeing out of order
after convergence or cosmetic changes in VTY shell's text output).

Signed-off-by: David Schweizer <dschweizer@opensourcerouting.org>
2021-02-22 10:31:57 +01:00
Martin Buck
fd03dacd03 tests: Fix determination of IPv6 link-local addresses
When parsing the output of "ip -6 address", allow arbitrary base interface
names (the part after "@" in the interface name), not just "if0-9". Without
this, link-local addresses sometimes are attributed to the wrong interface
because we're not matching the interface name but still handle the
interface's addresses.

Signed-off-by: Martin Buck <mb-tmp-tvguho.pbz@gromit.dyndns.org>
2021-02-22 09:48:16 +01:00
Mark Stapp
e9867ca57b tests: report kernel version check failures
Report kernel version check failures in the test log.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2021-02-16 11:55:47 -05:00
Martin Winter
9ee2ebdc82
Merge pull request #8015 from mjstapp/fix_topo_gen_support
tests: make generate support bundle python3
2021-02-16 17:49:18 +01:00
Mark Stapp
70b99f2fff tests: make generate support bundle python3 only
Make the generate-support-bundle script and interactions more
python3-friendly, and use python3 explicitly.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2021-02-15 08:13:06 -05:00
Martin Winter
7a9c641d5c
Merge pull request #7917 from pjdruddy/l3vpn-mpls-snmp-upstream-1
L3vpn mpls snmp upstream 1
2021-02-10 01:37:58 +01:00
Pat Ruddy
f40594ca77 tests: mplsL3vpn SNMP topotest
Tests to exercise the MPLS-L3VPN-STD MIB

Signed-off-by: Pat Ruddy <pat@voltanet.io>
2021-02-09 17:04:49 +00:00
Donald Sharp
350bdbdd95 tests: Modify timers on bgp_blackhole_community
Modify the timers on the bgp_blackhole_community test to
be more aggressive so our test system will recover faster
when we drop packets.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-02-08 19:37:58 -05:00
Quentin Young
5609ba6ad4
Merge pull request #7946 from ckishimo/ospfv3_json_2
tests: add ospf6 support via json files
2021-02-08 01:23:25 -05:00
Quentin Young
658186e8b6
Merge pull request #7937 from pjdruddy/topotest-evpn-svi-advertise
tests: update EVPN VXLAN for SVI behaviour change
2021-02-05 14:30:55 -05:00
Donatas Abraitis
f3e438f21c tests: Test if BGP AGGREGATOR attribute is discarded if ASN comes as 0
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-02-05 20:35:58 +02:00
Donald Sharp
6ddbc710cc
Merge pull request #7218 from kuldeepkash/multicast_pim_bsm
tests: Add multicast-pim-bsm-topo1 suite
2021-02-05 10:20:15 -05:00
Donald Sharp
1889e8e876
Merge pull request #7126 from vijaykug/multicast_with_static_rp
tests: Add multicast-pim-static-rp-topo1 test suite
2021-02-05 09:37:40 -05:00
Donald Sharp
5c0d9617e5
Merge pull request #7998 from volta-networks/fix_isis_attach_bit
isisd: When adjacencies go up and down add support to modify attached-bit
2021-02-04 18:46:19 -05:00
Donald Sharp
efb62eeddf tests: Add pytest.mark.staticd to topotests
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-02-04 18:35:42 -05:00
Donald Sharp
47679d6e44 tests: staticd is not being used in bgp_rr_ibgp test
Clean this up.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-02-04 18:29:46 -05:00
Donald Sharp
785eb4f72f tests: Add pytest.mark.pathd
Go through and mark tests using pathd.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-02-04 18:29:45 -05:00
Donald Sharp
2c647bcdc8 tests: Add pytest.mark.nhrpd
Go through all tests and mark pytest.mark.nhrpd

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-02-04 18:29:04 -05:00
Donald Sharp
3dedee4fe1 tests: Add pytest.mark.ospfd to tests
Add pytest marking for ospfd.  This commit also has some other test markings
because I do not want to have to go through the same test multiple times.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-02-04 18:28:36 -05:00
Donald Sharp
6907ac7e2c tests: Fixup to use the new pytestmark = syntax
Go through all the current tests and convert over to correct syntax

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-02-04 18:20:31 -05:00
Donald Sharp
ad39be1f59 tests: The ldp-sync-isis-topo1 test does not use ospf
We have a ospfd.conf file in the r2 directory but the
ldp-sync-isis-topo1 test does not use ospf.  Let's remove it.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-02-04 17:54:47 -05:00
Mark Stapp
ecd32c7741 tests: fix ospf6_topo1 missing ref files
Only one of the four reference files was present; add the missing
three. The test just silently passed if a ref file was missing:
change that to a failure.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2021-02-03 16:28:18 -05:00
Donald Sharp
cc73a06499
Merge pull request #7314 from kuldeepkash/multicast-sm-topo1
Add multicast-pim-sm-topo1 test suite
2021-02-02 10:43:09 -05:00
Russ White
8f57f7413c
Merge pull request #6766 from opensourcerouting/xref
lib: xrefs - general cross-references & unique IDs
2021-02-02 07:44:21 -05:00
lynne
0883be0c5e tests: restore isis-lsp-bits-topo1 test
Signed-off-by: Lynne Morrison <lynne@voltanet.io>
2021-02-01 16:04:10 -05:00
Stephen Worley
13f93db328 topotests: add test for infinite recursion
Add a test for the infinite recursion case fixed
with 0c4dbb5f8fe8fb188fa0e0aa8ce04764e893b79b

See that commit for details of the problem. This test uses a simpler
version of the repro found there as the test.

Signed-off-by: Stephen Worley <sworley@nvidia.com>
2021-02-01 13:27:28 -05:00
David Lamparter
494d842022 tests: add unit test for xrefs
Signed-off-by: David Lamparter <equinox@diac24.net>
2021-02-01 17:28:11 +01:00
Kuldeep Kashyap
c6d473e53b tests: Add multicast-pim-sm-topo2 test suite
1. Added 8 test cases to verify multicast PIM SM functionality

Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
2021-01-29 16:12:48 +00:00
Kuldeep Kashyap
03e7807be0 tests: Add multicast-pim-sm-topo1 test suite
1. Added 10 test cases to verify multicast PIM SM functionality

Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
2021-01-29 16:12:48 +00:00
Pat Ruddy
0c2b0c0098 tests: update evpn vxlan for svi behaviour change
This test relied on the default addition of SVI MAC in zebra
now this has been fixed the test needs to be updated to work
with the new behaviour.

Signed-off-by: Pat Ruddy <pat@voltanet.io>
2021-01-29 09:52:03 +00:00
Karen Schoener
d34cf8a75b tests: update snmp topotest api test_oid_walk
Update snmp topotest api test_oid_walk to validate a subset
of rows in a mib walk.

Signed-off-by: Karen Schoener <karen@voltanet.io>
2021-01-28 19:05:42 -05:00
lynne
d61731fbe3 tests: temporarily remove isis-lsp-bits-topo1 topotest
Signed-off-by: Lynne Morrison <lynne@voltanet.io>
2021-01-28 13:37:52 -05:00
Donald Sharp
e6d17d2fa9
Merge pull request #7933 from deastoe/show-route-header-sep
lib: restore blank line after show route header
2021-01-28 09:55:52 -05:00
ckishimo
3076de892d tests: add dual stack OSPF topotest
Signed-off-by: ckishimo <carles.kishimoto@gmail.com>
2021-01-27 17:31:12 +01:00
ckishimo
1feb577c63 tests: add verify_ospf6_neighbor
Signed-off-by: ckishimo <carles.kishimoto@gmail.com>
2021-01-27 17:31:12 +01:00
ckishimo
1f661c8c90 tests: start ospf6d daemon
Signed-off-by: ckishimo <carles.kishimoto@gmail.com>
2021-01-27 17:30:52 +01:00
Duncan Eastoe
ec20380c34 tests: more robust show route header stripping
In test_converge_protocols() use sed to match the "show ip(v6) route"
header and strip it, rather than using tail which requires hardcoding
the expected length of the header (which is subject to change).

Signed-off-by: Duncan Eastoe <duncan.eastoe@att.com>
2021-01-27 12:19:52 +00:00
Russ White
aee697b454
Merge pull request #7901 from donaldsharp/pim_marking
tests: Fix to use global variable for pim marking
2021-01-26 07:39:02 -05:00
Russ White
044a731747
Merge pull request #7928 from volta-networks/fix_simple_snmp_add_checks
tests: update simple_snmp_test to check for memory leaks, router failure
2021-01-26 07:34:11 -05:00
Russ White
a9294a8cbd
Merge pull request #7127 from opensourcerouting/ospf_ti-lfa
ospfd: add support for Topology Independent LFA (TI-LFA)
2021-01-26 07:32:04 -05:00
Russ White
1e2daeeb1d
Merge pull request #7843 from volta-networks/feat_isis_attach_bit
isisd: Fix Attach-bit processing
2021-01-26 07:28:20 -05:00
ckishimo
2718dd0251 tests: support ospf6d area config
Signed-off-by: ckishimo <carles.kishimoto@gmail.com>
2021-01-26 11:23:22 +01:00
ckishimo
12011c4015 tests: fix create_router_ospf6 to use ospf6 instead of ospf
Signed-off-by: ckishimo <carles.kishimoto@gmail.com>
2021-01-26 11:19:38 +01:00
ckishimo
889da6763c tests: make __create_ospf_global for both ospfv2/3
Signed-off-by: ckishimo <carles.kishimoto@gmail.com>
2021-01-26 11:15:19 +01:00
ckishimo
6c5fedcfd1 tests: remove unused __create_ospf6_global()
Signed-off-by: ckishimo <carles.kishimoto@gmail.com>
2021-01-26 11:14:56 +01:00
ckishimo
a7394afa52 tests: create_interfaces_cfg add ospfv3 support
Signed-off-by: ckishimo <carles.kishimoto@gmail.com>
2021-01-26 11:01:05 +01:00
ckishimo
3ee31ad131 tests: create_interfaces_cfg add ospf cost
Signed-off-by: ckishimo <carles.kishimoto@gmail.com>
2021-01-26 10:57:06 +01:00
ckishimo
6e7f58da09 tests: create_interfaces_cfg refactor ospf
Signed-off-by: ckishimo <carles.kishimoto@gmail.com>
2021-01-26 10:52:32 +01:00
Karen Schoener
662c057635 tests: update simple_snmp_test to check for memory leaks, router failure
Signed-off-by: Karen Schoener <karen@voltanet.io>
2021-01-25 10:01:24 -05:00
Donatas Abraitis
a5de4a566d tests: Check if BLACKHOLE community prefixes are visible inside local AS
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-01-25 09:11:01 +02:00
Donald Sharp
7ed8fcff2b tests: Fix to use global variable for pim marking
Use the preferred methodology of marking
for pim tests and update new pim tests with
appropriate mark

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-01-22 15:54:31 -05:00
Donald Sharp
f939c3a69f
Merge pull request #7899 from ton31337/fix/bgpd_blackhole_community
bgpd: Massage Blackhole community
2021-01-22 08:36:27 -05:00
Donald Sharp
75691bb7c4
Merge pull request #7904 from volta-networks/fix_test_oid_walk
tests: update snmp test infastructure api test_oid_walk
2021-01-22 08:32:39 -05:00
Donald Sharp
ddbda04e87
Merge pull request #7909 from pjdruddy/snmp-skip-test
test: add snmp skip test
2021-01-22 08:23:56 -05:00
Donald Sharp
f95224c170
Merge pull request #7902 from opensourcerouting/topotest-marker
tests: Standardized Topotest PyTest Markers
2021-01-22 08:23:02 -05:00
Pat Ruddy
fd9f7cacf4 test: add snmp skip test
Since SNMP is a pain to install add a check which will be used
in all SNMP tests in future to silently skip SNMP tests if SNMP
has not been installed on the base system.

Signed-off-by: Pat Ruddy <pat@voltanet.io>
2021-01-22 10:12:47 +00:00
Martin Winter
82b844d8d3
Merge pull request #7765 from gpnaveen/ospf_chaos_test
tests : Adding 3 ospf chaos testcases.
2021-01-21 23:59:29 +01:00
Karen Schoener
6ea2bd40d8 tests: update snmp test infastructure api test_oid_walk
Update test_oid_walk to either validate specific oids or
to validate all rows walked.

Signed-off-by: Karen Schoener <karen@voltanet.io>
2021-01-21 11:43:03 -05:00
David Schweizer
6bd548aa49
tests: pytest markers in topotest templates
Signed-off-by: David Schweizer <dschweizer@opensourcerouting.org>
2021-01-21 17:06:58 +01:00
David Schweizer
309638adb5
tests: pytest marker registrations for all daemons
Signed-off-by: David Schweizer <dschweizer@opensourcerouting.org>
2021-01-21 16:24:02 +01:00
Donald Sharp
8cf7ab7539
Merge pull request #7782 from kuldeepkash/multicast_pim_sm_topo2
tests: Add new scenarios to test multicast-pim-sm
2021-01-21 09:45:38 -05:00
lynne
3db5abf2d0 tests: Adding test for ISIS Attached-bit
Adding test to verify default route is added when attached-bit
receive and send are enabled and not added when feature is disabled.

Signed-off-by: Lynne Morrison <lynne@voltanet.io>
2021-01-21 09:18:18 -05:00
Donatas Abraitis
3130cfd742 tests: Test if prefix is not re-advertised downstream with blackhole community
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-01-21 16:00:53 +02:00
nguggarigoud
a3276d2c76 tests: Adding 3 ospf chaos testcases.
This script involves Restart ospfd,
restart frr with ospf enabled,
staticd with redistribution inside ospf is enabled

Signed-off-by: nguggarigoud <nguggarigoud@vmware.com>
2021-01-21 04:55:58 +05:30
Donatas Abraitis
44ba9e779d
Merge pull request #7832 from pjdruddy/snmp-test-infra
Snmp test infra
2021-01-20 09:15:14 +02:00
Mark Stapp
bdbef5edc6
Merge pull request #7233 from donaldsharp/route_map_optimizations
Route map optimizations
2021-01-19 13:20:02 -05:00
GalaxyGorilla
94dd5670d0 ospfd: Fix P2MP handling when TI-LFA is enabled
Signed-off-by: GalaxyGorilla <sascha@netdef.org>
2021-01-19 15:32:13 +00:00
GalaxyGorilla
f026b24ed9 ospfd: Fix backup path RIB handling
* Inject backup paths with proper flags
  * Add outgoing label on top of the backup label stack
  * Ignore explicit/implicit outgoing labels
  * Adjust tests

Signed-off-by: GalaxyGorilla <sascha@netdef.org>
2021-01-19 15:32:13 +00:00
GalaxyGorilla
be4d276c89 tests: Add topotest for OSPF SR TI-LFA
Signed-off-by: GalaxyGorilla <sascha@netdef.org>
2021-01-19 15:32:13 +00:00
GalaxyGorilla
a4553b5bdb ospfd: Add 'debug ospf ti-lfa' command
Signed-off-by: GalaxyGorilla <sascha@netdef.org>
2021-01-19 15:32:13 +00:00
GalaxyGorilla
bdcfd34a41 ospfd: Add support for non-adjacent TI-LFA P/Q spaces
Signed-off-by: GalaxyGorilla <sascha@netdef.org>
2021-01-19 15:32:13 +00:00
GalaxyGorilla
66dc21bb23 tests: Integrate unit tests for TI-LFA
Signed-off-by: GalaxyGorilla <sascha@netdef.org>
2021-01-19 15:32:13 +00:00
GalaxyGorilla
184b834b6c tests: Add verbosity flag to OSPF TI-LFA unit tests
Signed-off-by: GalaxyGorilla <sascha@netdef.org>
2021-01-19 15:32:13 +00:00
GalaxyGorilla
385a1e07b1 ospfd: Add support for TI-LFA node protection
Signed-off-by: GalaxyGorilla <sascha@netdef.org>
2021-01-19 15:32:13 +00:00
GalaxyGorilla
cc1725bd34 ospfd: Make use of adjacency SIDs in TI-LFA
When P and Q spaces are adjacent then it makes sense to use adjacency SIDs to
from the P node to the Q node. There are some other corner cases where this
makes also sense like when a P/Q node adjacent to root node.

Signed-off-by: GalaxyGorilla <sascha@netdef.org>
2021-01-19 15:32:13 +00:00
GalaxyGorilla
7fd0729f76 ospfd: TI-LFA basic infrastructure and algorithms
Signed-off-by: GalaxyGorilla <sascha@netdef.org>
2021-01-19 15:32:13 +00:00
Russ White
4c35f214b7
Merge pull request #6455 from GalaxyGorilla/bfd_ospf_topotest
tests: Introduce BFD OSPFv2/v3 topotests
2021-01-19 07:39:05 -05:00
kuldeepkash
693a44e183 tests: Add new scenarios to test multicast-pim-sm(different topology)
Add new scenarios to test multicast-pim-sm(different topology)

Signed-off-by: kuldeepkash <kashyapk@vmware.com>
2021-01-18 20:09:07 +00:00
kuldeepkash
eab72dc8e0 tests: Add/enhance framework for multicast-pim-sm automation
1. Add/enhance framework for multicast-pim-sm automation

Signed-off-by: kuldeepkash <kashyapk@vmware.com>
2021-01-18 20:09:07 +00:00
kuldeepkash
c9b5d52c65 tests: Add new scenarios to test multicast-pim-sm
1, Added new scenarios to test multicast-pim-sm

Signed-off-by: kuldeepkash <kashyapk@vmware.com>
2021-01-18 20:08:53 +00:00
Kuldeep Kashyap
6f86321528 tests: Add multicast-pim-bsm-topo2 suite
1. Added 7 testcases to verify PIM BSM functionality. Here we have used Scapy
   to send raw packet, generated using Cisco and FRR. Raw packets are kept in

Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
2021-01-18 18:17:13 +00:00
Kuldeep Kashyap
df94c7e840 tests: Add multicast-pim-bsm-topo1 suite
1. Added 8 testcases to verify PIM BSM functionality. Here we have used Scapy
   to send raw packet, generated using Cisco and FRR. Raw packets are kept in
   JSON file and sent tests on-demand in script.

Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
2021-01-18 18:17:13 +00:00
Kuldeep Kashyap
f40b18e8bb tests: Add framework support for multicast-pim-bsm-topo1
1. Added framework support for multicast-pim-bsm-topo1 suite automation

Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
2021-01-18 18:17:06 +00:00
Donatas Abraitis
fba9c8d2fd
Merge pull request #7874 from donaldsharp/more_pytest_mark
More pytest mark
2021-01-18 10:12:24 +02:00
Vijay Gupta
d25f322e5a tests: Add multicast-pim-static-rp-topo1 test suits
Signed-off-by: Vijay Gupta <vijayg@vmware.com>

1 Added 17 testcases to verify multicast static RP functionality
2 Execution time ~12min
2021-01-17 21:41:20 -08:00
Donald Sharp
e1713aa16d tests: Set default timers to 3/10 for bgp using create_router_bgp
Tests were timing out in our test system due to lost packets and
flakiness of the lower end systems.  Just set the timers to 3/10
and give them plenty of time to converge.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-01-16 08:29:49 -05:00
Donald Sharp
fed1681178 tests: Modify zebra_rib tests to include some basic route-map tests
New test does this:
a) Ensures that we run the correct number of times given two
`ip protocol X` commands( ie we do not run the route-map application
against all routes, only those affected )
b) Ensure that when we modify the route-map the state ends up sane
this includes making a static route depend on a sharp route that
gets removed from the change of the sharp route-map
c) Ensure that the kernel routes are correct.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-01-15 19:34:33 -05:00
Donald Sharp
3771ded194 tests: Add pytest.mark.pbr
Add a mark to topotests that mark pbr tests

`pytest -k pbr`

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-01-15 09:18:59 -05:00
Donald Sharp
3914e57591 tests: Add pytest.mark.isis
Add a mark to topotests that mark isis tests

`pytest -k isis`

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-01-15 09:17:53 -05:00
Donald Sharp
1d0c76b74d tests: Add pytest.mark.bfd
Add a mark to topotests that mark bfd tests.

`pytest -k bfd`

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-01-15 08:58:24 -05:00
Mark Stapp
ea8885d54e
Merge pull request #7870 from donaldsharp/pytest_marking
tests: Start the ability to mark tests
2021-01-15 08:44:51 -05:00
Donatas Abraitis
2f8e365008 tests: Check if peer-group is working in topotests
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-01-15 11:35:57 +02:00
Donald Sharp
b9f3e47f3a tests: Start the ability to mark tests
Add the ability for our topotests to take advantage of pytest `mark`ing.
This effectively allows you to tell pytest to run against certain sets
of tests.  For a demonstration purpose I've added in marks for:
babel
eigrp
ldp
ospf
pim
rip

And setup tests to run against those tests that only test those protocols.

You can run against eigrp tests by running `pytest -k eigrp`
Other combinations are also available based upon simple boolean logic.
Just read the pytest.mark documentation.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-01-14 20:29:14 -05:00
Donald Sharp
f2aee6967c
Merge pull request #7837 from ckishimo/tests_ospf
tests: fix redistribute key in ospf tests
2021-01-13 13:31:32 -05:00
Donatas Abraitis
26542c7138
Merge pull request #7849 from gpnaveen/static_rte_test
tests: Static route cases with admin dist and tag.
2021-01-13 09:09:38 +02:00
Donatas Abraitis
6f860c4618
Merge pull request #7748 from adrianomarto/bgp-listen-on-multiple-addresses
BGP daemon listen for connections on multiple addresses
2021-01-13 08:57:38 +02:00
Pat Ruddy
b300ed94b1 tests: sample snmp test to check infra
Simple test which creates a router running snmp and bgpd and
checks we can read the correct bgpVersion using snmp.

Signed-off-by: Pat Ruddy <pat@voltanet.io>
2021-01-12 19:59:56 +00:00
Olivier Dugeon
4683138cda
Merge pull request #7707 from opensourcerouting/isisd-rlfa
isisd, ldpd: add Remote LFA support
2021-01-12 19:25:15 +01:00
Donald Sharp
484eabb1d7
Merge pull request #7439 from opensourcerouting/bgp-damp-profile2
bgpd: BGP route-flap dampening profiles for peers and peer groups
2021-01-12 11:45:41 -05:00
Russ White
bc560f64d9
Merge pull request #7687 from gpnaveen/ospf_p2mp
tests: Adding ospf p2mp basic test.
2021-01-12 08:03:33 -05:00
nguggarigoud
26bbe9af5e tests: Static route cases with admin dist and tag.
1. Adding api to verify ip nht command.
2. 5 cases of static routes with admin dist and tag
3. Run time = 89Secs

Signed-off-by: nguggarigoud <nguggarigoud@vmware.com>
2021-01-12 17:13:26 +05:30
ckishimo
88b7d3e726 tests: move redistribute function into lib
Signed-off-by: ckishimo <carles.kishimoto@gmail.com>
2021-01-12 11:18:22 +01:00
ckishimo
9458be1aec tests: fix ospf cosmetic output
Signed-off-by: ckishimo <carles.kishimoto@gmail.com>
2021-01-12 11:18:22 +01:00
ckishimo
65980a0224 tests: remove old def for redistribution in ospf
Signed-off-by: ckishimo <carles.kishimoto@gmail.com>
2021-01-12 11:18:22 +01:00
ckishimo
c6b59ef48c tests: use new def for redistribution in ospf
Signed-off-by: ckishimo <carles.kishimoto@gmail.com>
2021-01-12 11:18:22 +01:00
ckishimo
881fa68f05 tests: add new def for redistribution in ospf
Signed-off-by: ckishimo <carles.kishimoto@gmail.com>
2021-01-12 11:18:22 +01:00
nguggarigoud
dc5298d741 tests: Adding ospf p2mp basic test.
This test verifies basic p2mp test

Signed-off-by: nguggarigoud <nguggarigoud@vmware.com>
2021-01-12 09:28:50 +05:30
Babis Chalios
daee3312bf tests: add machinery to test SNMP
Add initial 'walk' and 'get' test APIs for SNMP

Signed-off-by: Babis Chalios <babis@voltanet.io>
Signed-off-by: Pat Ruddy <pat@voltanet.io>
2021-01-11 14:36:41 +00:00
Babis Chalios
92be50e63e tests: API to launch snmpd in a topotest scenario
Prepare the infrastructure to allow configuring and launching an SNMP
daemon as part of testing scenario.

Signed-off-by: Babis Chalios <babis@voltanet.io>
Signed-off-by: Pat Ruddy Chalios <pat@voltanet.io>
2021-01-11 14:36:40 +00:00
Sebastien Merle
f7f6a796e8 pathd: Skip SR-TE topotests if pathd has been disabled
* If pathd binary is not found, skip the SR-TE topotests.
 * Fix some compilation warnings when pathd is not built.

Signed-off-by: Sebastien Merle <sebastien@netdef.org>
2021-01-11 12:52:15 +01:00
Adriano Marto Reis
733367c04e tests: tests for bgpd listing on multiple addresses
* Added a new topotest to test bgpd listening on multiple addresses.
* Updated the existing bgpd tests according to the parameter added to
bgp_master_init.

Signed-off-by: "Adriano Marto Reis" <adrianomarto@gmail.com>
2021-01-11 08:33:52 +00:00
Donald Sharp
7df0e6bb3b
Merge pull request #7756 from pjdruddy/bgplu-fixes
Bgplu fixes
2021-01-09 15:48:22 -05:00
Donald Sharp
537e7e9241 tests: Wait for bgp convergence *after* we re-add the interfaces
In test_bgp_mutli_vrf_topo2.py it's clear that we remove then
re-add the vrf interfaces.  Then the test was immediately
checking to ensure that the routes were available.

BGP needs time to reconverge.  Let's ensure that first.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-01-08 20:58:04 -05:00
Renato Westphal
ef8e91d4a2 tests: add IS-IS RLFA topotest
Add new RLFA topotest that tests all RLFA configuration knobs and
how isisd and ldpd react to various configuration changes that can
occur in the network.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2021-01-08 22:22:11 -03:00
Renato Westphal
c40de29448 tests: add remote LFA unit tests
Extend the existing SPF unit testing infrastructure so that it can
test RLFA as well.

These new unit tests are useful to test the RLFA PQ node
computation on several different network topologies in a timely
manner. Artificial LDP labels (starting from 50000) are used to
activate the computed RLFAs.

It's worth mentioning that the computed backup routing tables
contain both local LFAs and remote LFAs, as running RLFA separately
isn't possible.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2021-01-08 22:22:11 -03:00
Renato Westphal
dc70c83afa
Merge pull request #7816 from pjdruddy/revert_labelmanager_statics
Revert labelmanager statics
2021-01-08 20:57:25 -03:00
Donald Sharp
662aa246aa tests: Fix gr_tests
The bgp_gr_functionality_topo1 test was shutting down an
interface on r2 and then trying to bring it up on r1.
Hijinx ensued.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-01-07 17:30:04 -05:00
Donatas Abraitis
acb92e3524
Merge pull request #7749 from wesleycoakley/bgpd-large-community-format-fix
bgpd: reject malformed large-communities
2021-01-07 10:33:59 +02:00
Donald Sharp
fe035acc87
Merge pull request #7820 from kuldeepkash/topojson_framework
tests: [topojson]Add/Enhance framework to support PIM automation
2021-01-06 08:59:34 -05:00
Wesley Coakley
c850908b9d bgpd: separate lcommunity validation from tokenizer
`lcommunity_gettoken` expects a space-delimeted list of 0 or more large
communities. `lcommunity_list_valid` can perform this check.
`lcommunity_list_valid` now validates large community lists more
accurately based on the following condition: Each quantity in a standard bgp
large community must:

1. Contain at least one digit
2. Fit within 4 octets
3. Contain only digits unless the lcommunity is "expanded"
4. Contain a valid regex if the lcommunity is "expanded"

Moreover we validate that each large community list contains exactly 3
such values separated by a single colon each.

One quirk of our validation which is worth documenting is:

```
bgp large-community-list standard test2 permit 1:c:3
bgp large-community-list expanded test1 permit 1:c:3
```

The first line will throw an error complaining about a "malformed community-list
value". The second line will be accepted because the each value is each treated as
a regex when matching large communities, it simply will never match anything so
it's rather useless.

Signed-off-by: Wesley Coakley <wcoakley@nvidia.com>
2021-01-06 07:18:20 -05:00
Donatas Abraitis
f32fc99078
Merge pull request #7815 from ckishimo/pytests
tests: fix typos and remove duplicate output
2021-01-06 09:08:35 +02:00
kuldeepkash
e58fdb55d6 tests: [topojson]Enhance lib/topojson.py to support PIM automation
1. Enhanced lib/topojson.py for creating topologies with switches and routers
2. Ran it through (black) for expected formatting

Signed-off-by: kuldeepkash <kashyapk@vmware.com>
2021-01-06 05:13:05 +00:00
kuldeepkash
aafca66993 tests: [topojson]Enhance lib/common_config.py to support PIM automation
1. Enhanced lib/common_config.py for common configuration/verification needed
   for PIM automation
2. Ran it through (black) for expected formatting

Signed-off-by: kuldeepkash <kashyapk@vmware.com>
2021-01-06 05:08:31 +00:00
kuldeepkash
e8cd26fdc5 tests: [topojson]Add lib/pim.py to support PIM automation
1. Added lib/pim.py for PIM configuration/verification
2. Ran it through (black) for expected formatting

Signed-off-by: kuldeepkash <kashyapk@vmware.com>
2021-01-06 05:05:30 +00:00
ckishimo
90340b2b82 tests: fix typos
Signed-off-by: ckishimo <carles.kishimoto@gmail.com>
2021-01-05 20:00:19 +01:00
Pat Ruddy
cdb2af427a tests: add test for labelmanager plugin
An external label manager plugin may want to use the following
functions:
    - create_label_chunk
    - assign_label_chunk
    - delete_label_chunk
    - release_label_chunk
This test ensures that they are externally visible.

Signed-off-by: Pat Ruddy <pat@voltanet.io>
2021-01-05 18:20:50 +00:00
Mark Stapp
b04932df02
Merge pull request #7772 from LabNConsulting/ziemba/tests-lutil-timestamp
tests: topotests/lib/lutil.py: add timestamp to log of test start
2021-01-05 11:29:49 -05:00
ckishimo
19185dbac2 tests: remove duplicate output
Signed-off-by: ckishimo <carles.kishimoto@gmail.com>
2021-01-05 17:26:01 +01:00
Russ White
ee117a8bd6
Merge pull request #7507 from ton31337/fix/bgpd_do_not_send_update_if_path_really_did_not_change
bgpd: Do not send BGP UPDATE if the route actually not changed
2021-01-05 10:26:18 -05:00
Pat Ruddy
160ad964e7 tests: add BGPLU label sanity test
This test checks the interactions between the BGP label requesting
code and the labelpool code to ensure the correct number of labels
and label chunks are requested and those labels are freed back into
the pool when the corresponding prefix is removed.

Signed-off-by: Pat Ruddy <pat@voltanet.io>
2021-01-04 14:29:44 +00:00
G. Paul Ziemba
2f17f52a02 tests: topotests/lib/lutil.py: add timestamp to log of test start
Timestamps in test logs are needed for correlation with messages in
    routing protocol log files. Vox populi indicates preference for
    timestamp at beginning of line.

    OLD:
    (#55) scripts/rip-show.py:61 COMMAND:r1:vtysh -c "show ip rip status": 00:0.* 00:0:wait:RIP Peers:

    NEW:
    Sat Dec 19 08:26:45 2020 (#55) scripts/rip-show.py:61 COMMAND:r1:vtysh -c "show ip rip status": 00:0.* 00:0:wait:RIP Peers:

Signed-off-by: G. Paul Ziemba <paulz@labn.net>
2020-12-29 05:34:46 -08:00
Mark Stapp
d4473065f4
Merge pull request #7759 from qlyoung/reformat-tests-again
Reformat tests again
2020-12-23 08:11:00 -05:00
Martin Winter
90cd28e91a
Merge pull request #6212 from gpnaveen/static_routes
tests: Adding static routing topojson automation suites.
2020-12-22 14:11:37 -08:00
Donald Sharp
29c0ce20ef tests: dict_values are not lists in version 3
While accidently running the topotests with version 3
I keep getting:

TypeError: `dict_values` object does not support indexing..

version 2 of python dict.values() returns a list.
version 3 does not

Write some code to allow both to be handled.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2020-12-18 19:12:30 -05:00
Olivier Dugeon
065f7c7cc0
Merge pull request #7351 from opensourcerouting/feature/pathd
Add a new SR-TE policy management daemon and an optional PCEP module
2020-12-18 20:28:22 +01:00
Sebastien Merle
4d7b695d3a pathd: New SR-TE policy management daemon
This new daemon manages Segment-Routing Traffic-Engineering
(SR-TE) Policies and installs them into zebra. It provides
the usual yang support and vtysh commands to define or change
SR-TE Policies.

In a nutshell SR-TE Policies provide the possibility to steer
traffic through a (possibly dynamic) list of Segment Routing
segments to the endpoint of the policy. This list of segments
is part of a Candidate Path which again belongs to the SR-TE
Policy. SR-TE Policies are uniquely identified by their color
and endpoint. The color can be used to e.g. match BGP
communities on incoming traffic.

There can be multiple Candidate Paths for a single
policy, the active Candidate Path is chosen according to
certain conditions of which the most important is its
preference. Candidate Paths can be explicit (fixed list of
segments) or dynamic (list of segment comes from e.g. PCEP, see
below).

Configuration example:

segment-routing
 traffic-eng
  segment-list SL
   index 10 mpls label 1111
   index 20 mpls label 2222
  !
  policy color 4 endpoint 10.10.10.4
   name POL4
   binding-sid 104
   candidate-path preference 100 name exp explicit segment-list SL
   candidate-path preference 200 name dyn dynamic
  !
 !
!

There is an important connection between dynamic Candidate
Paths and the overall topic of Path Computation. Later on for
pathd a dynamic module will be introduced that is capable
of communicating via the PCEP protocol with a PCE (Path
Computation Element) which again is capable of calculating
paths according to its local TED (Traffic Engineering Database).
This dynamic module will be able to inject the mentioned
dynamic Candidate Paths into pathd based on calculated paths
from a PCE.

https://tools.ietf.org/html/draft-ietf-spring-segment-routing-policy-06

Co-authored-by: Sebastien Merle <sebastien@netdef.org>
Co-authored-by: Renato Westphal <renato@opensourcerouting.org>
Co-authored-by: GalaxyGorilla <sascha@netdef.org>
Co-authored-by: Emanuele Di Pascale <emanuele@voltanet.io>
Signed-off-by: Sebastien Merle <sebastien@netdef.org>
2020-12-18 16:34:02 +01:00
whitespace
9fa6ec1473 tests: please follow the style guide
thanks

Signed-off-by: Quentin Young <qlyoung@nvidia.com>
2020-12-17 15:32:55 -05:00
Donald Sharp
9fd80543fe tests: unicode to frr_unicode
Let's standardize on the internal to frr unicode function.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2020-12-17 13:19:52 -05:00
Donatas Abraitis
2beb3d3967 tests: Check if we are not sending duplicate BGP UPDATEs
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2020-12-11 14:51:07 +02:00
nguggarigoud
938d5980d1 tests: Optimised static routing testsuits
1. Removed bgp specific triggers.
2. Removed repeatativ steps.

Signed-off-by: nguggarigoud <nguggarigoud@vmware.com>
2020-12-10 16:44:48 -08:00
naveen
d33a0fcf6f tests : Enhanced scripts to handle support bundle behaviour
1. Added Expected False to not true cases.

Signed-off-by: naveen <nguggarigoud@vmware.com>
2020-12-10 16:44:48 -08:00
naveen
88fedaaa7b tests: Adding static routing topojson automation suites.
Adding API's required for EVPN suite.

Signed-off-by: naveen <nguggarigoud@vmware.com>
2020-12-10 16:44:48 -08:00
naveen
72babe7cf3 tests: Incorporated new static route del behaviour
Updated 2 testcases with static  route deletion with
admin distance as a key.

Signed-off-by: naveen <nguggarigoud@vmware.com>
2020-12-10 16:44:48 -08:00
naveen
93792f5dd0 tests: Updated verify_bgp_rib api for multipaths.
verify_bgp_rib is updated in bgp.py file to
handle multi paths.

Signed-off-by: naveen <nguggarigoud@vmware.com>
2020-12-10 16:44:48 -08:00
Naveen
03cb898f46 tests: Updated doctstring for start & stop router
Actual path for configs is /tmp/topotest/<suite>/<router>
common_config.py is updated.

Signed-off-by: naveen <nguggarigoud@vmware.com>
2020-12-10 16:44:48 -08:00
Naveen Guggarigoudar
f8f6dbe9f7 tests: Enhanced the lib bgp.py for nexthop check
1. Enhanced the lib bgp.py for nexthop check

Signed-off-by: naveen <nguggarigoud@vmware.com>
2020-12-10 16:44:48 -08:00
naveen
eee0457da7 tests: Enhanced lib by removing unnecessary sleep
1. libs modified are bgp.py and common_config.py

Signed-off-by: naveen <nguggarigoud@vmware.com>
2020-12-10 16:44:48 -08:00
naveen
ee51a3d9ec tests: Enchanced static routing testsuits
1. BGP timers are modified to reduce the run time.
2. Static sleeps are removed from the scripts.

Signed-off-by: naveen <nguggarigoud@vmware.com>
2020-12-10 16:44:48 -08:00
naveen
0705f3120d tests: Adding static routing topojson automation suites.
1. Enhanced framework to
a. Verify fib active routes(lib/common_config.py).
b. Verify bgp multi path routes(lib/bgp.py).
c. Create mininet nodes with different names(lib/topojson.py).

4. 12 Test cases of static routing with ibgp.
Test suite execution time is ~30 minutes.

5. 12 Test cases of static routing with ebgp.
Test suite execution time is ~30 minutes.

Signed-off-by: naveen <nguggarigoud@vmware.com>
2020-12-10 16:44:48 -08:00
Mark Stapp
e386d2b154
Merge pull request #7690 from donaldsharp/nht_show_is_not_not_not
zebra, tests: Fix `show ip nht`
2020-12-09 07:58:37 -05:00
Donald Sharp
dda33b6e0c zebra, tests: Fix show ip nht
The `show ip nht` and `show ipv6 nht` commands were broken.
This is because recent code commit: 0154d8ce45

assumed that p must not be NULL and this is not the case.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2020-12-08 15:50:46 -05:00
kuldeepkash
3732ea226a tests: Enhanced auto-rd verification as per changes done in #7652
1. As per recent changes done in PR #7652, we have modified the auto-rd verification logic
2. Dev PR link: https://github.com/FRRouting/frr/pull/7652

Signed-off-by: kuldeepkash <kashyapk@vmware.com>
2020-12-08 15:53:20 +00:00
Donald Sharp
46a0656f7a tests: Close some open handles
I accidently installed something that is telling me about
unlosed handles in the tests.  Let's clean them up.

<and yes I have no idea wtf I did>

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2020-12-05 20:05:52 -05:00
Mark Stapp
e0ea4d0349
Merge pull request #7656 from donaldsharp/bgp_convergence
tests: Wait for convergence first
2020-12-03 14:17:09 -05:00
Donatas Abraitis
3cc92134a3
Merge pull request #7349 from opensourcerouting/bgp-delayopen
bgpd: RFC 4271 optional session attribute DelayOpenTimer
2020-12-03 08:26:44 +02:00
Donald Sharp
cb5a294642
Merge pull request #7590 from opensourcerouting/isisd-lfa
isisd: add support for classic LFA
2020-12-02 20:43:51 -05:00
Donald Sharp
dd2a6ddb3e
Merge pull request #7657 from mjstapp/fix_topo_asan_noise
tests: Cleanup topo asan noise
2020-12-02 20:07:53 -05:00
Donald Sharp
187a74a2c6
Merge pull request #7596 from gpnaveen/ospf_basic
tests : Adding 3 base ospf testcases.
2020-12-02 12:35:43 -05:00
Donald Sharp
d0bd9877b8
Merge pull request #7589 from pguibert6WIND/show_bgp_summary_desc
Show bgp summary desc
2020-12-02 12:18:07 -05:00
Mark Stapp
c46de798de tests: quiet noisy error log about asan files
Turn a noisy error log into a debug - it's just reporting
that we're _looking_ for asan output.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2020-12-02 11:08:38 -05:00
Mark Stapp
6ee4440e66 tests: fix typo in asan variable names
Use AddressSanitizer consistently

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2020-12-02 11:08:03 -05:00
Donald Sharp
bd842270fe
Merge pull request #7615 from gromit1811/feature_topotest_module_noload
tests: Add TOPOTEST_NOLOAD to skip module loading question
2020-12-02 09:23:30 -05:00
Donald Sharp
16845ff4b0 tests: Wait for convergence first
The test_bgp_multi_vrf_topo2.py script had a bunch
of places where it would change an interface status
or add delete routes that would affect bgp convergence
but it was never ensuring that convergence had happened
before the test verified the bgp rib.  I believe this
was leading to many intermittant ci failures in
testing for other PR's to be accepted.  Modify
the code to wait for bgp convergence if we just
made a change to the topology

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2020-12-02 07:26:33 -05:00
Philippe Guibert
aa72bd7e7f bgpd: add peer description for each afi/safi line in show summary
For each afi/safi of 'show bgp summary', display the peer description
each time needed. This information is useful, for instance in the case
of a device connected with multiple peers.
The topotest all_protocol_startup is changed accordingly.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2020-12-01 08:06:37 +00:00
Martin Winter
960c3f25f5
tests: Ignore YANG stderr messages in test_all_protocol_startup test
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2020-11-27 19:45:15 +01:00
Martin Winter
8972e2710c
tests: Fix logging output directory for older tests
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2020-11-27 19:45:15 +01:00
Martin Winter
1a31ada871
tests: Fix FRR process shutdown in failed topotest teardown phase
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2020-11-27 19:45:14 +01:00
Martin Winter
be2656eda2
tests: Fix Topotest runs with newerversion of Address Sanitizer
Fix Address Sanitizer Issue detection with newer ASAN versions

Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2020-11-27 19:45:07 +01:00
Donald Sharp
8fd47beb8b
Merge pull request #7593 from opensourcerouting/bgp_features_ospf_fix
tests: Make ospf in bgp_features testsuite predictable
2020-11-26 18:36:54 -05:00
Donald Sharp
903bd636ca
Merge pull request #7611 from opensourcerouting/docker_key_update
tests: Update topotest Dockerfile to pick up keys from deb repo
2020-11-26 18:33:12 -05:00
Martin Winter
57d89808bc
tests: Update topotest Dockerfile to pick up keys from deb repo
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2020-11-26 18:08:53 +01:00
Martin Buck
d9ee35587c tests: Add TOPOTEST_NOLOAD to skip module loading question
This is the opposite of TOPOTEST_AUTOLOAD: Instead of automatically loading
missing modules, TOPOTEST_NOLOAD prevents module loading and supresses
questions about it.

Signed-off-by: Martin Buck <mb-tmp-tvguho.pbz@gromit.dyndns.org>
2020-11-26 16:12:21 +01:00
Donatas Abraitis
3200009046
Merge pull request #7586 from kuldeepkash/bgp_multi_vrf
tests: Add tests to bgp_multi_vrf_topo2
2020-11-26 09:48:54 +02:00
Martin Winter
3636b6c158
tests: Make ospf convergence predictable by setting if priority
Added OSPF priorities to force a predictable DR/Backup router selection

Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2020-11-26 04:10:05 +01:00
Mark Stapp
3abf06b722
Merge pull request #7607 from pguibert6WIND/topo_python3_preparation
Topo python3 preparation
2020-11-25 14:22:10 -05:00
Philippe Guibert
10870bbc20 topotests: precise importation folder
the topolog importation folder must be precised. otherwise following
error message appears:

root@dut-vm:~/topotests/bgp_flowspec# python3 test_bgp_flowspec_topo.py
Traceback (most recent call last):
  File "test_bgp_flowspec_topo.py", line 96, in <module>
    from lib.lutil import lUtil
  File "/root/topotests/bgp_flowspec/../lib/lutil.py", line 25, in <module>
    from topolog import logger
ImportError: No module named 'topolog'
root@dut-vm:~/topotests/bgp_flowspec#

The same error occurs with lutil and bgprib which are 2 libraries
located under lib/ folder. Some precisions are added too.

PR=71290
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2020-11-25 16:31:45 +00:00
Philippe Guibert
ecff3c7a0c topotests: python3, replace iteritems with items
replace iteritems() calls with items()

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2020-11-25 16:31:45 +00:00
Philippe Guibert
e7294b3200 topotests: python3, rename iterkey() with key() for dictionary usage
dictionary method iterkey() is not used in python3 and is replaced with
key() method.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2020-11-25 16:31:45 +00:00
Philippe Guibert
0e232bb883 topotests: python3, fix error ValueError: can't have unbuffered text I/O
This error occurs when passing some 0 values to open() extra argument.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2020-11-25 16:31:42 +00:00
Philippe Guibert
6cb6c403f1 topotests: python3, replace execfile with exec
python3 does not support execfile implementation.
replace it with open and exec api that are available in both python 2
and 3 implementations.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2020-11-25 16:19:33 +00:00
Kuldeep Kashyap
2f4455fc4c tests: Add tests to bgp_multi_vrf_topo2
1. Added 4 test cases for frr/daemon restart(chaos testing)

Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
2020-11-25 08:57:08 +00:00
Donald Sharp
5a6947e530
Merge pull request #7591 from opensourcerouting/isisd-bug-fixes
isisd: assorted bug fixes
2020-11-24 20:59:50 -05:00
nguggarigoud
816fdbbf53 tests : Adding 3 base ospf testcases.
Test suite execution time is 90 Secs.

Signed-off-by: nguggarigoud <nguggarigoud@vmware.com>
2020-11-25 05:34:06 +05:30
Renato Westphal
66e5fbe08f tests: add IS-IS classic LFA topotest
This new topotest comprises of 13 testing steps and tests essentially
all implemented LFA knobs.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2020-11-24 20:15:52 -03:00
Renato Westphal
c8a4f33195 tests: add IS-IS classic LFA unit tests
These unit tests check the basic LFA loop-free condition on a
variety of different network topologies. None of the implemented
LFA tie-breakers are tested here.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2020-11-24 20:15:52 -03:00
GalaxyGorilla
da78f4fe92 tests: Introduce BFD OSPFv2/v3 topotests
The tests work with the default settings of BFD meaning that bfdd
is able to recognize a 'down' link after ~900ms so a route
recovery should be visible in the RIB after 1 second.

The following topology is used:

                        +---------+
                        |         |
           eth-rt2 (.1) |   RT1   | eth-rt3 (.1)
             +----------+ 1.1.1.1 +----------+
             |          |         |          |
             |          +---------+          |
             |                               |
             |                   10.0.2.0/24 |
             |                               |
             |                       eth-rt1 | (.2)
             | 10.0.1.0/24              +----+----+
             |                          |         |
             |                          |   RT3   |
             |                          | 3.3.3.3 |
             |                          |         |
        (.2) | eth-rt1                  +----+----+
        +----+----+                  eth-rt4 | (.1)
        |         |                          |
        |   RT2   |                          |
        | 2.2.2.2 |              10.0.4.0/24 |
        |         |                          |
        +----+----+                          |
        (.1) | eth-rt5               eth-rt3 | (.2)
             |                          +----+----+
             |                          |         |
             |                          |   RT4   |
             |                          | 4.4.4.4 |
             |                          |         |
             |                          +----+----+
             | 10.0.3.0/24           eth-rt5 | (.1)
             |                               |
             |                               |
             |                   10.0.5.0/24 |
             |                               |
             |          +---------+          |
             |          |         |          |
             +----------+   RT5   +----------+
           eth-rt2 (.2) | 5.5.5.5 | eth-rt4 (.2)
                        |         |
                        +---------+

Route recovery is tested on RT1. The focus here lies on the two
different routes to RT5. Link failures are generated by taking
down interfaces via the mininet Python interface on RT2 and RT3.
Hence routes are supposed to be adjusted to use RT3 when a link
failure happens on RT2 or vice versa.

Note that only failure recognition and recovery is "fast". BFD
does not monitor a link becoming available again.

Signed-off-by: GalaxyGorilla <sascha@netdef.org>
2020-11-24 19:14:21 +00:00
Donald Sharp
7b1d13bb1f
Merge pull request #7560 from opensourcerouting/fix_topotest_logs
topotests: Fix logging by redirecting it to correct file
2020-11-24 11:30:14 -05:00
Mark Stapp
d13964a914 tests: restore route scale test to 1M routes
Restore the scale topotest config to use 1M routes.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2020-11-23 16:53:43 -05:00
Renato Westphal
50ec21859f isisd, tests: fix bug when sending TI-LFA repair paths to zebra
Commit 4c75f7c773 fixed a bug in which the TI-LFA repair paths
weren't preserving the original Prefix-SID of the routes. That
commit, however, didn't update the zebra interface code to account
for backup nexthops that don't have a repair list but do have a
SR label. As a consequence, backup nexthops that didn't have any
repair label were not preserving the original Prefix-SID of the
corresponding routes. Fix this and update the TI-LFA topotest
accordingly.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2020-11-23 15:22:36 -03:00
Renato Westphal
e33b95b4bb isisd: uninstall local routes that don't have any valid nexthop
Once the remote end of a connected link is shut down (or lose
its address), isisd will remove the corresponding route from its
RIB after SPF runs. A new route for the same destination should
be computed based on the local LSP, and that route by definition
doesn't have any nexthop.  The problem is that, when isisd tries
to replace the old route by the new one, it fails because routes
without nexthops can't be installed.  That causes the old invalid
route to remain in the RIB when it shouldn't. To fix this problem,
change the zebra interface code to uninstall a route whenever it
can't be installed (because it lacks nexthops) instead of doing
nothing in that case.

This change should fix occasional failures of the test_isis_sr_topo1
topotest.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2020-11-23 14:50:32 -03:00
Martin Winter
ed827751d3
topotests: Fix logging by redirecting it to correct file
Fix lib to start loggin to correct daemon file on startup
Fix bgp-auth tests for the logging changes
Fixes Issue # 7545

Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2020-11-20 17:48:49 +01:00
Donatas Abraitis
a1477006f9
Merge pull request #7562 from donaldsharp/python_fixes
tests: Fix common_config.py issues
2020-11-20 09:37:58 +02:00
Donatas Abraitis
e9ac289675 tests: Add more descriptive error messages and increase timeouts
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2020-11-19 16:49:44 +02:00
Donald Sharp
a28055a478 tests: Fix common_config.py issues
1) in generate_ips if start_ipaddr does not have a `/` in it
there exists a code path where both mask and step are
null values.  Write a bit of code to ensure this pre-req
is found early and often

2) in verify_rib there exists a code path where static_route
is null when we get to the non static route section.  Change
the code to operate on the advertise_network_dict that
we are iterating over.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2020-11-19 07:40:03 -05:00
Donald Sharp
4abdbea978
Merge pull request #7543 from GalaxyGorilla/fix_refcmp_newline
tests: ignore Windows vs Unix style newlines
2020-11-17 15:30:07 -05:00