Commit Graph

1356 Commits

Author SHA1 Message Date
snaramre
73aff479bd tests: BFD python3 changes
Type: fix
Change-Id: Ie441e81fe3971d70f96196c79d74658f910b4875
Signed-off-by: snaramre <snaramre@cisco.com>
2019-12-02 17:38:23 +00:00
Paul Vinciguerra
bfd7d294d0 vlib: add 'wait' cli command
When running exec scripts, there can be a need to wait between statements.

Type: feature

Change-Id: I2a45b390697e09fc222358c9354f28e3368a06ba
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
2019-11-27 17:00:12 +00:00
Benoît Ganne
1a7ed5e3e6 tests: display stdout and stderr when output caching is disabled
Type: fix

Change-Id: I4286ba58bb15dd67c1199f76166bedf3b4e0344c
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2019-11-27 15:25:31 +00:00
Benoît Ganne
9fb6d40eb3 misc: add address sanitizer heap instrumentation
Introduce AddressSanitizer support: https://github.com/google/sanitizers/
This starts with heap instrumentation. vlib_buffer, bihash and stack
instrumentation should follow.

Type: feature

Change-Id: I7f20e235b2f79db72efd0e756f22c75f717a9884
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2019-11-27 10:50:28 +00:00
Neale Ranns
9efcee6e7b fib: Fix crash on cover update to non activated adj source
if the adj source is not active then there is no existing cover
during a cover update

Type: fix
Ticket: VPP-1803
Signed-off-by: Neale Ranns <nranns@cisco.com>
Change-Id: Ie912f1c99345de4fb012bdcd97b443098d4a7351
2019-11-26 23:19:32 +00:00
Neale Ranns
9db6ada779 fib: Table Replace
Type: feature

from the API doc, a table replace is:

"
    The use-case is that, for some unspecified reason, the control plane
    has a very different set of entries it wants in the table than VPP
    currently has. The CP would thus like to 'replace' VPP's current table
    only by specifying what the new set of entries shall be, i.e. it is not
    going to delete anything that already eixts.
    the CP delcartes the start of this procedure with this begin_replace
    API Call, and when it has populated all the entries it wants, it calls
    the below end_replace API. From this point on it is of coursce free
    to add and delete entries as usual.
    The underlying mechanism by which VPP implements this replace is
    purposefully left unspecified.
"

In the FIB, the algorithm is implemented using mark and sweep.

Algorithm goes:
1) replace_begin: this marks all the entries in that table as 'stale'
2) download all the entries that should be in this table
 - this clears the stale flag on those entries
3) signal the table converged: ip_table_replace_end
 - this removes all entries that are still stale

this procedure can be used when an agent first connects to VPP,
as an alternative to dump and diff state reconciliation.

Change-Id: I168edec10cf7670866076b129ebfe6149ea8222e
Signed-off-by: Neale Ranns <nranns@cisco.com>
2019-11-26 09:15:11 +00:00
Paul Vinciguerra
41a817a318 tests: fix typo in test_vlib
Trailing comma made last line of a multi-line command a new command.

Logs:
  22:39:49,695 Return value: cli_inband_reply(_0=794, context=2, retval=0, reply='loop0\n')
  22:39:49,695 CLI: packet-generator new {
   name vlib
   limit 15
   size 128-128
   interface loop0
   node ethernet-input
   data {
     IP6: 00:d0:2d:5e:86:85 -> 00:0d:ea:d0:00:00
     ICMP: db00::1 -> db00::2
     incrementing 30
     }

  22:39:49,695 Calling cli_inband('cmd':'packet-generator new {\n name vlib\n limit 15\n size 128-128\n interface loop0\n node ethernet-input\n data {\n   IP6: 00:d0:2d:5e:86:85 -> 00:0d:ea:d0:00:00\n   ICMP: db00::1 -> db00::2\n   incrementing 30\n   }\n\n','context':3,'_vl_msg_id':792)
  22:39:49,696 Return value: cli_inband_reply(_0=794, context=3, retval=0, reply='')
  22:39:49,696 CLI: }

  22:39:49,696 Calling cli_inband('cmd':'}\n\n','context':4,'_vl_msg_id':792)
  22:39:49,697 Return value: cli_inband_reply(_0=794, context=4, retval=-1, reply="unknown inpu...
  22:39:49,697 }
   FAIL reply unknown input `}'

Type: fix

Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
Change-Id: Iaa82d432677d742e766e42383364adda5bd87665
2019-11-25 14:50:31 +00:00
Dave Barach
e51a9bbe76 vlib: improve code coverage, part deux
Type: test

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: If31f4b50da7a6e4a9704ceb3415c582143c08355
2019-11-20 17:38:49 +00:00
Dave Barach
c17fc44735 vlib: improve code coverage in src/vlib
Type: test

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I2dc4c09730f77931a2b484a6dd5dc669068f8e57
2019-11-18 17:17:40 -05:00
Neale Ranns
1976f36b09 tests: Add UT to test incomplete MPLS adjacencies send ARP requests
Type: test

Change-Id: I81e07233aec54c786e4e9beb8c4f06d0a3dca90f
Signed-off-by: Neale Ranns <nranns@cisco.com>
2019-11-15 16:12:54 +00:00
Neale Ranns
efd7bc2b1c tests: Remove the unrequired VPP IP address/prefix class wrappers
Type: refactor

Change-Id: I204f3f8eebc5f5d5a377e91262f91c615fd00168
Signed-off-by: Neale Ranns <nranns@cisco.com>
2019-11-15 13:19:20 +00:00
Dave Barach
d9ca7c9604 vlib: improve vlib "make test" code coverage
Type: test

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: Idf982fddad9e577595d2e05ac78c39705e9d616d
2019-11-13 20:59:45 +00:00
Jon Loeliger
9485d99bd3 interface: Allow VLAN tag-rewrite on non-sub-interfaces too.
This fix was first made in
    commit fdea5c6a00
but was subsequently lost in
    commit 053204ab03

Added unit test for setting VTR on a non-sub-interface to
help ensure no future regressions of this ability.

Type: fix
Change-Id: I71ce2684fb72383741455829ae2d397ea2e95eae
Signed-off-by: Jon Loeliger <jdl@netgate.com>
2019-11-12 20:37:55 +00:00
Neale Ranns
ea93e48cf6 ip: IP address and prefix types (moved from LISP)
Type: refactor

Change-Id: I2c6b59013bfd21136a2955442c779685f951932b
Signed-off-by: Neale Ranns <nranns@cisco.com>
2019-11-12 18:56:04 +00:00
Ole Troan
eb284a1f8f ip: functional interface to ip fragmentation
This provides a functional interface to IP fragmentation.
Allowing external features to fragment. Supports
arbitrary encap size, for e.g. MPLS or inner fragmentation
of tunnels.

This also removed dual loop in MAP that was fundamentally broken.

Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: Ia89ecec8ee3cbe2416edbe87630fdb714898c2a8
Signed-off-by: Ole Troan <ot@cisco.com>
2019-11-11 12:33:36 +00:00
Neale Ranns
12989b5388 ipsec: remove dedicated IPSec tunnels
APIs for dedicated IPSec tunnels will remain in this release and are
used to programme the IPIP tunnel protect. APIs will be removed in a
future release.

see:
 https://wiki.fd.io/view/VPP/IPSec

Type: feature

Change-Id: I0f01f597946fdd15dfa5cae3643104d5a9c83089
Signed-off-by: Neale Ranns <nranns@cisco.com>
2019-11-08 20:06:56 +00:00
Ole Troan
770a0deaad tests: python3 use byte strings in raw()
Raw('\xaf) and Raw(b'\xaf) are two quite different things in python 2 versus 3.
In most cases this didn't make a difference, apart from those cases where length
of payload actually mattered.

Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: I3cba5c1486e436a3ca8aa10a7b393da75aa9f6b9
2019-11-08 13:25:56 +00:00
Aleksander Djuric
c12eae73f9 interface: shmemioerror while getting name_filter arg
Type: fix

Signed-off-by: Aleksander Djuric <aleksander.djuric@gmail.com>
Change-Id: I5e0eb7024d208040d79e9d6db863f41e2ecf4ee6
Signed-off-by: Ole Troan <ot@cisco.com>
2019-11-07 14:39:02 +00:00
Andrew Yourtchenko
3f8c87132d tests: make threads in punt tests join when finished
The 42693521f6 added the timeout
to the child process join + print the name of the offending
child process.

Upon testing the issue furher, appeared the offenders were
always the same - punt tests. The processes running them
were stuck trying to acquire lock, even if all
the user-accessible execution has finished. Some searching
revealed that one needs to tread carefully when dealing
with Thread and Multiprocessing at the same time.

punt tests used threads but did not call thread.join. Somehow
it worked in some cases but not the others. This fix makes
the threads exit cleanly - which also makes the timeouts
waiting for the process to join disappear.

Type: test
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
Change-Id: I05d99bb48a9987544bbfe45118755c09d7867aa0
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2019-11-07 11:51:16 +00:00
Renato Botelho do Couto
ead1e536d6 misc: Fix python scripts shebang line
Type: fix

Since CentOS 8, RPM build script doesn't accept '#!/usr/bin/env python'
as a valid shebang line.  It requires scripts to explicitly chose
between python2 or python3.

Change all to use python3 as suggested by Paul Vinciguerra.

Depends-On: https://gerrit.fd.io/r/23170

Signed-off-by: Renato Botelho do Couto <renato@netgate.com>
Change-Id: Ie72af9f60fd0609e07f05b70f8d96e738b2754d1
2019-11-05 21:08:59 +00:00
Neale Ranns
0b6a857d85 ip: Fragmentation fixes
Type: fix

if the packet is about to be fragmented, then don't call any of the
actions that expect the rewrite to have been written.
1) don't double count packets thru the adjacency (original & fragments)
2) don't double decrement the TTL for fragments
3) return to ip4-midchain post ip-frag if that's where we started.
4) only run midchain/mcast fixups if not fragmenting (if no errors)

Change-Id: Ib2866787a42713ee5871b87b597d8f74b901044b
Signed-off-by: Neale Ranns <nranns@cisco.com>
2019-11-05 15:34:00 +00:00
Klement Sekera
45a95dd782 tests: support setting random seed
Log the random seed used when running tests and provide means to re-use
it in a later run.

Type: feature

Change-Id: I18d2a36ee802b901d4cca5577df41cec07f09cc0
Signed-off-by: Klement Sekera <ksekera@cisco.com>
2019-11-05 13:07:48 +00:00
Andrew Yourtchenko
42693521f6 tests: avoid test runner hanging on child test process join
In parallel test, the single process is spawning
a bunch of child processes running the tests,
and communicates to them. When the child process
signals that it has finished, the parent calls
child.join(). Sometimes this join never returns.
The result is a lot of defunct python processes,
and the test run just hangs.

I have seen this failure intermittently a fair bit
in a busy containerized environment, and by chance,
consistently reproduced it on a Thinkpad X280
with 8G of RAM and Ubuntu 19.04, which allowed
to diagnose it.

Type: test
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
Change-Id: If0a3110fc2d23e73d77c310d61c3ea90a2b53610
2019-11-05 09:06:15 +00:00
Andrew Yourtchenko
b31d39358b tests: Revert "tests: add sending SIGQUIT to vpp quit sequence"
This reverts commit 4465fe1e30.

That commit makes *every* test to send SIGQUIT to VPP when it is done,
thereby triggering the coredump if there was none.

It is most surely not what we want.

Type: test

Change-Id: I3cc4c96f44c05527d586142f8feccc2f93c3e536
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2019-10-31 11:47:10 +00:00
Paul Vinciguerra
4465fe1e30 tests: add sending SIGQUIT to vpp quit sequence
As suggested in the docs by:
https://fd.io/docs/vpp/master/usecases/contiv/core_files#let-vpp-crash

Type: test

Change-Id: I10caf16220e2507351636c1b26e57e19bcf8a542
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
2019-10-30 19:57:33 +00:00
Jakub Grajciar
3ae5262712 l2: l2tp API cleanup
Use consistent API types.

Type: fix

Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
Change-Id: I9015fc60e8d77e5d5ac36bf2862c1fe794addb81
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
2019-10-30 09:06:33 +00:00
Dave Wallace
97ea2f4ec0 tests: decode worker stdout/stderr output
Type: fix

Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: I309254e9e99920fbeaa50eea503c1c2a9470abfe
2019-10-29 19:12:03 -04:00
Klement Sekera
d743dffcd0 tests: fix TEST= filtering for python3
Type: fix

Change-Id: Iceb60e8a507120434cfc68758476ff5351b05f58
Signed-off-by: Klement Sekera <ksekera@cisco.com>
2019-10-29 11:26:45 +00:00
Ole Troan
4aacc01f2e tests: switch test framework to python3 by default
Type: make
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: I84d32f022d9dc555837c8916feba04a224cd262a
2019-10-28 10:11:29 +00:00
Andrew Yourtchenko
63cb8827e5 tests: make RA tests run on VPP time
the IPv6 RA tests take timing into the account,
but the time inside VPP may go slightly differently compared
to the time inside the driving python thread,
if the machine running the tests is heavily loaded.
Make a sleep function which sleeps "on VPP time" and use it.

Change-Id: I3b34b0164f6e0ec7a619b92ee308089a4a8935e3
Type: test
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2019-10-28 09:16:34 +00:00
Ole Troan
df0191ead2 l2: l2bd nd termination test instability
The test for ND event suppression reused the previous test run
ipv6 address, and would sometimes consider that a duplicate,
and therefore suppressing that one too.

Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: I1b115aa4eba9d57770fa03fcf38b7a1c251cfe88
2019-10-26 20:23:58 +00:00
Ole Troan
2a884db1d1 cdp: re-enable skipped tests for python3
CDP uses the running sytems host name, which
caused different failures on different systems.
The root cause was an python3 specific error in
checksum calculation.

Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: I205436682d46e7e8cbb8c057c03a76dbbcab4d72
2019-10-23 12:19:37 +00:00
haiyanx1.zhang
419d31f817 tests: test tls case
Type: feature

Signed-off-by: haiyanx1.zhang <haiyanx1.zhang@intel.com>
Change-Id: I071f5face0d489dc967cce1edcffbc1f8fac5c7e
Signed-off-by: haiyanx1.zhang <haiyanx1.zhang@intel.com>
2019-10-22 17:13:21 +00:00
Dave Wallace
2456433df4 tests: DEBUG=gdb[server]-all to debug worker(s)
Type: test

Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: I0264451632c1ce780b38a2c15a7e34350fc6d521
2019-10-22 16:30:51 +00:00
Ole Troan
6769473303 geneve: tests support python3
Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: I0ff4d58c181b2bdf483b8b039ad005c2a4915aa8
2019-10-21 20:55:52 +00:00
Ole Troan
f6dee6c8ba bonding: tests support python3
Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: I6cedb43af4437fdabce75f4a845629c5c2f96f6a
2019-10-21 20:53:14 +00:00
Ole Troan
5e56f7511c ip: test support python3
Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: I9c66bce900f78e5fbd435515df94e327ad25c3c6
2019-10-21 20:00:50 +00:00
Ole Troan
3f2a956a44 l2: tests support python3
Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: Id17bcb65d7eb27f865fc7872b3e485c09f1d29a7
2019-10-21 19:53:30 +00:00
Ole Troan
8b76c23d57 ipsec: tests support python3
Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: Id13da9371c71c10c12a0120ec89ba21c1ca47524
2019-10-21 20:55:13 +02:00
Ole Troan
1556b3ad7d classify: tests to support python3
Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: I8af6ee6e5239f0836978baa063a18a01c610279f
2019-10-21 18:32:58 +00:00
Ole Troan
2267429574 bier: tests support python3
Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: I3cf5295f1a85579a66ba38ca1f74678b45474959
2019-10-21 17:55:13 +00:00
Andrew Yourtchenko
586d3edf49 tests: add PID of VPP under test to API dump filename for the test
Some testclasses (e.g. IPSec) have methods with the same names,
this causes a race when running in parallel to save the API and
move it into the test's directory - the name of the file has
only the test method name as a discriminator.

Saving two traces from two VPP instances "succeeds", in that
it silently overwrites the file. But only one mv operation
works - the other gives an error "file not found" and fails the test.

Solution: add the PID of VPP under test to the API dump filename,
this way the filenames become guaranteed unique and the race is avoided.

Change-Id: I1bb47ed73369fea0f1bfbf907588a51e2cabfb7f
Type: test
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2019-10-21 12:55:48 +00:00
Ole Troan
127fbec4d3 ip: reassembly tests python3 support
Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: I990d8d521c128e8d4f482e30b3a49cbc11b632d1
2019-10-21 10:51:00 +00:00
Ole Troan
9cd8f33979 ip: add python3 support to punt tests
Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: Ib918d11fb3278a25a92006dcfe3c7c484e7b33ea
2019-10-18 15:00:55 +00:00
Ole Troan
2915649f29 gso: python3 support in tests
Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: I166019cc69fd01cb43f1a3fad699f3d2e5ec5b19
2019-10-18 14:24:25 +00:00
Ole Troan
197573320d ip: ip vrf tests python3 support
Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: Ie23c9d2d7325be62ef33df2f0562ab41518f7bf4
2019-10-18 13:44:32 +00:00
Ole Troan
5dc5fcf14c udp:: support python3 in tests
Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: Iea19d7bc2dfe9736ddefb4419509ccfda7a67eeb
2019-10-18 14:40:54 +02:00
Ole Troan
64e978b1bf ipsec: make tests support python3
Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: I3255702e7c562c8d04a91a095e245756c6443a9e
2019-10-18 07:49:11 +00:00
snaramre
2bb7151daf tests: python3 changes for span and aclplugin test
Type: fix
Change-Id: Ia9f74f951f831cc5c9b5af863db1bb3f7a1a81ff
Signed-off-by: snaramre <snaramre@cisco.com>
2019-10-17 15:20:44 -07:00
Ole Troan
19cb04df06 classify: make tests support python3
Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: I7c4a12165fa0928fb2b8d99fc1c8d5de16377e7e
2019-10-17 19:41:58 +00:00