Rafael Zalamena
d43cd0fd62
isis-topo1: simplify dictionary key removal code
...
Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2018-11-27 20:22:13 -05:00
Rafael Zalamena
88f83773d9
isis-topo1: check ipv6 zebra route installation
...
Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2018-11-27 20:22:13 -05:00
Rafael Zalamena
fc7752c118
isis-topo1: skip test on FRR 2.0
...
It was noticed that this topology doesn't converge when there are IPv6
configurations, so this commit makes the tests to be skipped when the
version is 2.X.Y.
Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org
2018-11-27 20:22:13 -05:00
Rafael Zalamena
5836fac223
isis-topo1: add IPv6 ISIS topology test
...
Configure IPv6 addresses and ISIS distribution, then test the topology
for the newly configured addresses.
This commit also adds support for parsing IPv6 data from the ISIS
topology output while updating the routers topology JSON files.
Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2018-11-27 20:22:13 -05:00
Rafael Zalamena
29614f56c5
isis-topo1: add support for stable versions
...
Allow isis-topo1 tests to run on stable versions (2.0.2 and 3.0.2).
There are two differences between the stable versions and master:
1. ISIS nexthops don't show interfaceName nor interfaceIndex
(on 'show ip route json')
2. New FRR version install ISIS routes in Linux with a different proto
type identification.
Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2018-11-27 20:22:13 -05:00
Rafael Zalamena
2d013cdabc
isis-topo1: check ISIS kernel route installation
...
Check if the ISIS learned routes are being installed in the underlying
OS.
Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2018-11-27 20:22:13 -05:00
Rafael Zalamena
e4d08d5be7
isis-topo1: test ISIS route installation
...
Check the 'show ip route json' output for installed ISIS routes.
Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2018-11-27 20:22:13 -05:00
Rafael Zalamena
67f1e9ed09
isis-topo1: test ISIS topology convergence
...
Add function to parse 'show isis topology' and expect the correct
convergence result.
Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2018-11-27 20:22:13 -05:00
Rafael Zalamena
74bd8dd9ba
isis-topo1: add topology graph
...
Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2018-11-27 20:22:13 -05:00
Rafael Zalamena
3aefe20797
isis-topo1: import topology
...
Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2018-11-27 20:22:13 -05:00
Martin Winter
4649eef8e1
ldp-vpls-topo1: new format for ospf neighbor json
...
Accept new format in ospf neighbor json output in addition to
old version. New format was introduced with PR1659
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2018-11-27 20:22:13 -05:00
Lou Berger
8ab91133c7
lib: ltemplate - fix handling of CallOnFail (take 2)
...
Signed-off-by: Lou Berger <lberger@labn.net>
2018-11-27 20:22:13 -05:00
Lou Berger
5859c4be6b
lib: ltemplate - fix handling of CallOnFail
...
Signed-off-by: Lou Berger <lberger@labn.net>
2018-11-27 20:22:13 -05:00
Lou Berger
3eff4cc9dd
bgp_l3vpn_to_bgp_direct: fix hook routines for ltemplate
...
Signed-off-by: Lou Berger <lberger@labn.net>
2018-11-27 20:22:13 -05:00
Lou Berger
2eddcd9ff3
bgp_l3vpn_to_bgp_direct: rename bgp_direct_to_bgp_vpn Rename BGP L3VPN test to have L3VPN at start of test name Also remove unused/pre-ltemplate files
...
Signed-off-by: Lou Berger <lberger@labn.net>
2018-11-27 20:22:13 -05:00
Lou Berger
c30e3e40a6
bgp_direct_to_bgp_vpn: enable mpls forwarding, add more details on adjacencies
...
Signed-off-by: Lou Berger <lberger@labn.net>
2018-11-27 20:22:13 -05:00
Lou Berger
db2dbd246e
bgp_direct_to_bgp_vpn: convert to lib/ltemplate
...
Signed-off-by: Lou Berger <lberger@labn.net>
2018-11-27 20:22:13 -05:00
Lou Berger
df437d254a
lib: add LabN testing template
...
Signed-off-by: Lou Berger <lberger@labn.net>
2018-11-27 20:22:12 -05:00
Martin Winter
d75f5f94cd
ospf-topo1: Allow IPv6 ECMP version to pass
...
Check ospf IPv6 routes for ECMP version first and fallback
to previous version if needed.
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2018-11-27 20:22:12 -05:00
Martin Winter
a1f1550fc2
ospf-topo1: Add IPv6 addresses to diagram
...
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2018-11-27 20:22:12 -05:00
Lou Berger
50b15737c9
lib: lutil - make it easier to spot command output and null output
...
Signed-off-by: Lou Berger <lberger@labn.net>
2018-11-27 20:22:12 -05:00
Lou Berger
2fdcc34250
lib: lutil - make requested error logging change
...
Signed-off-by: Lou Berger <lberger@labn.net>
2018-11-27 20:22:12 -05:00
Lou Berger
bd15005d3a
bgp_direct_to_bgp_vpn: scripts - avoid race condition, and test for predicable results
...
Signed-off-by: Lou Berger <lberger@labn.net>
2018-11-27 20:22:12 -05:00
Lou Berger
ffdac4dbd8
bgp_direct_to_bgp_vpn: add some progress output
...
Signed-off-by: Lou Berger <lberger@labn.net>
2018-11-27 20:22:12 -05:00
Lou Berger
e437365bb9
bgp_direct_to_bgp_vpn: general cleanup use moved lutil.py improve error information adjust to new luCommand default timeout sdd support for CliOnFail, remove no_test_call_mininet_cli scripts - update to correct stable values use topo test's log dir
...
Signed-off-by: Lou Berger <lberger@labn.net>
2018-11-27 20:22:12 -05:00
Lou Berger
a582a8e9c5
lib: lutil cleanup move utilities/lutil.py -> lib/lutil.py add: luShowFail, CallOnFail, luStart parameter to set log dir change default wait to 10sec
...
Signed-off-by: Lou Berger <lberger@labn.net>
2018-11-27 20:22:12 -05:00
Lou Berger
7ed102b925
bgp_direct_to_bgp_vpn: convert to new template, skip tests on pre-3.1 versions
...
Signed-off-by: Lou Berger <lberger@labn.net>
2018-11-27 20:22:12 -05:00
Lou Berger
6d0dbb7996
bgp_direct_to_bgp_vpn: initial version
...
Signed-off-by: Lou Berger <lberger@labn.net>
2018-11-27 20:22:12 -05:00
Lou Berger
199a7c79c1
lutil: initial version
...
Signed-off-by: Lou Berger <lberger@labn.net>
2018-11-27 20:22:12 -05:00
Rafael Zalamena
e600b2d93c
topotest: remove pid files
...
Remove PID files after a SIGKILL or confirmation that the pid file no
longer contains a running PID.
Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2018-11-27 20:22:12 -05:00
Rafael Zalamena
065bd557f8
topotest: improve informational messages
...
Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2018-11-27 20:22:12 -05:00
Rafael Zalamena
63038f4b02
topotest: show the user that we are waiting
...
Add a log message to tell the user that we are waiting for zebra.
Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2018-11-27 20:22:12 -05:00
Lou Berger
3a568b9ca6
lib: speed up router shutdown stopRouter: report when a process is being killed only sleep if actually killed a process add option to not sleep or conduct -7 kill topogen stop: add wait parameter (defaults to old/wait) when stopping routers, first stop all without waiting then do a second pass where will wait if needed
...
Signed-off-by: Lou Berger <lberger@labn.net>
2018-11-27 20:22:12 -05:00
Rafael Zalamena
08533b7bce
topotest: always show diff on json_cmp failure
...
Append diffs on all json_cmp failures so the reader can compare JSON
field differences.
2018-11-27 20:22:12 -05:00
Rafael Zalamena
479b98aacd
topotest: specify why we are waiting
...
This shows the user why the router teardown is taking 2 seconds long.
2018-11-27 20:22:12 -05:00
Rafael Zalamena
28a9b4f56e
doc: update README and add code snippets
...
Add some pointers in the README documentation that might help users get
ready to use topotest.
2018-11-27 20:22:12 -05:00
Rafael Zalamena
222ea88b2a
topotest/topogen: demote some messages level
...
The messages level of this commit were downgraded because some of them
happen on 'non-error' situations. This should help diminish the error
log verbosity on the CI-system run.
2018-11-27 20:22:12 -05:00
Rafael Zalamena
034237db12
topotest: fix a regression in version_cmp
...
It was found a regression on an edge case when the second number in the
comparison was (at least) 2 numbers longer the comparison would fail
with a wrong return value. It succeeded for some cases because the
first comparison in the exception was correct, but not the second.
2018-11-27 20:22:12 -05:00
Martin Winter
a018893f7c
bgp-ecmp-topo1: Workaround for version check
...
temp workaround for Issue #43
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2018-11-27 20:22:12 -05:00
Martin Winter
3d6c6f01ac
ldp-vpls-topo1: Allow ospf neighbor json command with list (new) and dict (old)
...
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2018-11-27 20:22:12 -05:00
Rafael Zalamena
968afc2848
ldp-vpls-topo1: fix a json_cmp result assert
...
Use the 'right' assert to show more detailed failure report and remove
a unused variable.
2018-11-27 20:22:12 -05:00
Martin Winter
dd3ddc0663
Fix output to allow it on generic Debian
...
- Generic Debian only has a single space in front of “proto” in the linux shell routing outptu
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2018-11-27 20:22:12 -05:00
Rafael Zalamena
7c1f9631fc
eigrp-topo1: solve output ordering problem
...
Transform 'show ip eigrp topo' output into data structures and compare
using json_cmp() to avoid expecting output order.
2018-11-27 20:22:12 -05:00
Renato Westphal
13e8bc063f
ldp-topo1: Remove check for protocol in installed LSPs
...
PR #1213 in FRR changed the protocol of installed LSPs. To avoid breaking
older outstanding Pull Requests, remove the protocol check.
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2018-11-27 20:22:12 -05:00
Martin Winter
ad59d1f5bb
eigrp-topo1: Remove check for EIGRP distance
...
- Distance used to be wrong (0), new commit fixes this (90). To avoid breaking older outstanding Pull Requests, remove the distance check
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2018-11-27 20:22:12 -05:00
Rafael Zalamena
7bd28cfc67
topotest: improve json error messages
...
Show a diff of the JSON values instead of dumping the whole
data structures.
2018-11-27 20:22:12 -05:00
Rafael Zalamena
2db5888df5
topotest: json_cmp_result split error lines
...
When the API user wanted to show newlines we have to break them manually
to get the propper format.
2018-11-27 20:22:12 -05:00
Rafael Zalamena
bc2872fd17
topotest: allow passing options to difflib
...
Extend the topotest diff functions to allow receiving difflib options.
2018-11-27 20:22:12 -05:00
Rafael Zalamena
566567e9be
topotest: remove unused json_cmp unused parameter
2018-11-27 20:22:12 -05:00
Martin Winter
6ae351e837
all-protocol-startup/isis: Fix check for "show isis interface" to allow different circuit ids than 1
2018-11-27 20:22:12 -05:00
Rafael Zalamena
fcfbc7696b
topogen: fix diagnostics failure
...
Don't try to log to file if directory doesn't exist.
2018-11-27 20:22:12 -05:00
Rafael Zalamena
d34f613477
topogen: save zebra version output
...
Keep the zebra version output for later problem diagnostics.
2018-11-27 20:22:12 -05:00
Rafael Zalamena
7547ebd8cd
topogen: log diagnostics to file
2018-11-27 20:22:12 -05:00
Martin Winter
1b46274d5c
eigrp-topo1: Cleanup leftover comments from previous commit
...
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2018-11-27 20:22:12 -05:00
Martin Winter
ee4523a215
eigrp-topo1: Change Route verification to use json
...
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2018-11-27 20:22:12 -05:00
Martin Winter
555451faa5
all-protocol-starup: Fix triple-output of same vtysh stderr/stdout messages.
...
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2018-11-27 20:22:12 -05:00
Martin Winter
7551168cba
lib: Use SIGTERM for killing daemons first and only SIGBUS (7) if the daemons fail to exit.
...
- This allows daemons to free up memory and avoid false memory leak reports
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2018-11-27 20:22:12 -05:00
Martin Winter
8e957dbb04
multiple_topos: Don't report about StdErr Output if there is no output
...
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2018-11-27 20:22:12 -05:00
Donald Sharp
9057cd2cc3
eigrp-topo1: Correct eigrp test results.
...
The values saved for the route table and eigrp topo
were a bit off because they have been corrected
in the eigrp daemon
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-11-27 20:22:12 -05:00
Martin Winter
8ee1273e44
Enable eigrp-topo1
...
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2018-11-27 20:22:12 -05:00
Martin Winter
44a592b2a6
lib: check for eigrpd available and return warning if missing instead of failing
2018-11-27 20:22:12 -05:00
Rafael Zalamena
e5355a016f
eigrp-topo1: convert to topogen
2018-11-27 20:22:12 -05:00
Rafael Zalamena
c267e5b112
topogen: add support for eigrpd and nhrp
2018-11-27 20:22:12 -05:00
Rafael Zalamena
57c5075b7b
topogen: router startup failure triggers errors
...
Makes `router_have_failure()` detect frr startup errors.
2018-11-27 20:22:12 -05:00
Rafael Zalamena
b3b1b1d16c
topogen: treat some corner cases on vtysh failure
...
Don't throw unneeded tracebacks when 'show version' doesn't show us what
we expect, instead gracefully fail.
2018-11-27 20:22:12 -05:00
Rafael Zalamena
1eb633c012
topogen: show pretty output for skipped messages
...
Format them properly instead of printing a dictionary.
2018-11-27 20:22:12 -05:00
Rafael Zalamena
333139b22e
ldp_vpls_topo1: set an error instead of exit
...
It will have the same effect and code will not have to be repeated since
all functions must call `routers_have_failure()`.
2018-11-27 20:22:12 -05:00
Renato Westphal
f13a242c76
ldp_vpls_topo1: don't use pytest.mark.skipif
...
This feature from pytest can not be used to detect runtime errors.
Also, remove test_router_running() since all tests should actually check
if all daemons are up and running.
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2018-11-27 20:22:12 -05:00
Renato Westphal
c4057baab7
ldp_vpls_topo1: skip all tests on stable/2.0
...
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2018-11-27 20:22:12 -05:00
Renato Westphal
6fcaea2bc6
ldp_vpls_topo1: add new topology for ldp pseudowires
...
This is a very simple topology for testing LDP pseudowires.
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2018-11-27 20:22:12 -05:00
Donald Sharp
2dad85f432
Basic EIGRP topo test working
...
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-11-27 20:22:12 -05:00
Donald Sharp
1fccd8e958
Exclude eigrp test from running normally yet
...
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-11-27 20:22:12 -05:00
Donald Sharp
a4e471cfc5
Add a basic EIGRP topology.
...
Nothing fancy here, just add 3 routers in a row
attempt to let eigrp come up and start a mininet
xterm to debug, since eigrp doesn't work yet.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-11-27 20:22:12 -05:00
Donald Sharp
cda83bee9f
Allow topotests to work with eigrp and nhrp
...
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-11-27 20:22:12 -05:00
Martin Winter
be7286cc82
ldp-topo1: Use 'label implicit-null' for implicit labels
...
Signed-off-by: Martin Winter <mwinter@netdef.org>
2018-11-27 20:22:12 -05:00
David Lamparter
91733ef85e
topotests: change from "context" to "unified" diff
...
context diff:
*** before.py
2018-11-27 20:22:12 -05:00
Rafael Zalamena
5684f8100d
topotests: add topology name to assert output
...
Make it easy to identify which topology test we are running.
2018-11-27 20:22:12 -05:00
Rafael Zalamena
e7ba3cd11c
topotests: make asserts show up in stderr
...
Code was based on the pytest default makereport code:
c92760dca8/_pytest/runner.py (L264)
2018-11-27 20:22:12 -05:00
Martin Winter
9427b78f65
lib: Change topology to output INFO and DEBUG to stdout and other levels to stderr
...
Previously, all logs were sent to stderr
2018-11-27 20:22:12 -05:00
Martin Winter
c11c4cc7d3
lib: add check for mpls kernel modules to diagnose_env()
...
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2018-11-27 20:22:12 -05:00
Martin Winter
b431b5540f
lib: Enhance daemon_available() function to check for mpls modules in case of LDPd
...
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2018-11-27 20:22:12 -05:00
Martin Winter
e1b2ce6a70
lib: Add check for MPLS kernel modules to exist before trying LDP tests
...
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2018-11-27 20:22:12 -05:00
Martin Winter
1380ecb1ce
ospf-topo1: Remove check for spfLastDurationMsecs value
...
json check accidently checked for the spfLastDurationMsecs which
isn't always 0 for slower system in our tests. ARM7 sometimes has
a slightly higher value (1).
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2018-11-27 20:22:12 -05:00
Martin Winter
67651166b6
bgp-ecmp-topo1: Check number of routes received for convergence
...
Add check for number of routes to convergence. InQ=0, OutQ=0
together with correct number of routes received shows that
BGP has converged
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2018-11-27 20:22:12 -05:00
Rafael Zalamena
9a950d76bd
bgp-ecmp-topo: add support for FRR 2.0
...
The FRR 2.0 json output is different from newer version, so add the
appropriate treatment.
2018-11-27 20:22:12 -05:00
Rafael Zalamena
35a00f240f
bgp-ecmp-topo: test BGP convergence
...
Add a test that waits for BGP convergence.
2018-11-27 20:22:12 -05:00
Rafael Zalamena
62271fe3fa
bgp-ecmp-topo: use the new sleep function
2018-11-27 20:22:12 -05:00
Rafael Zalamena
570f25d80a
topotest: log sleep function
...
Added a wrapper for the sleep function that should be used to register
in the log files the amount of time spent sleeping.
2018-11-27 20:22:12 -05:00
Rafael Zalamena
1f4c4aec44
bgp-ecmp-topo1: add convergence test
...
Assert that we got the routes from ExaBGP and they are multipath
enabled.
2018-11-27 20:22:12 -05:00
Rafael Zalamena
91a4415704
bgp-ecmp-topo1: convert to topogen
2018-11-27 20:22:12 -05:00
Rafael Zalamena
0c68b87abc
bgp-ecmp-topo1: fix exabgp configuration file
...
Using relative path to start the exabgp python scripts didn't work out
of the box in my enviroment, so be more specific since we already know
where the scripts are.
2018-11-27 20:22:12 -05:00
Martin Winter
ac1087fa7b
bgp-ecmp-topo1: Add BGP Topology for rcmp testing
...
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2018-11-27 20:22:12 -05:00
Martin Winter
0e8ccff311
ospf-topo: Mask IPv6 local-addressess instead of removing them
...
Just mask out the random part makes the diff output better readable
2018-11-27 20:22:12 -05:00
Rafael Zalamena
99dca1a0b8
ospf-topo: show areas in the topology dot/jpg
2018-11-27 20:22:12 -05:00
Rafael Zalamena
4524522dc8
ospf-topo: skip on tests on router failure
...
Update the test by adding the routers_have_failure() check. While here,
bump the amount of time to expect for convergence by 15 seconds.
2018-11-27 20:22:12 -05:00
Rafael Zalamena
a61e85ab38
ospf-topo: remove log file specification
...
We don't need to set logging file per-daemon as topogen will already do
that for us. Also, remove hostname line as it seems to have no effect.
2018-11-27 20:22:12 -05:00
Rafael Zalamena
f9b48d8b42
topogen: allow daemon spec in vtysh_cmd
...
Allow commands to be run per-daemon basis. While here make daemon
logging file configuration per-daemon.
2018-11-27 20:22:12 -05:00
Rafael Zalamena
d1c3108673
ospf: test route kernel installation
...
Added tests to validate that OSPF routes are being installed/uninstalled
in the Linux kernel.
2018-11-27 20:22:12 -05:00
Rafael Zalamena
99a7a912fd
topotest: implement 'ip route' functions
...
Implement an abstraction to the commands 'ip route' to get the node
current routing table state.
2018-11-27 20:22:12 -05:00
Rafael Zalamena
f175c4eb97
ospf: add IPv6 OSPF convergence test
...
Add more tests to the ospf-topo1 to include IPv6 testing. Since both IP
versions are running together, there is no need to wait OSPF convergence
per IP version.
2018-11-27 20:22:12 -05:00