History log of /vpp/test/
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
28287212 16-Dec-2019 Neale Ranns <nranns@cisco.com>

ipsec: IPSec protection for multi-point tunnel interfaces

Type: feature

Signed-off-by: Neale Ranns <nranns@cisco.com>
Change-Id: Iaba2ab11bfaa1c8db4023434e3043ac39500f938

1284f8c7 18-Feb-2020 Vladimir Isaev <visaev@netgate.com>

ip-neighbor: Fix aging timeout

Before this patch VPP checked age for ARP/NDP records every 1e5 seconds
for any configured aging time. This is 27 hours and it looks like
misprint because 1e5 is the number of 10us ticks in a second.

Also time to wait is now difference between aging time and time alive
for nodes in alive state.

Type: fix
Signed-off-by: Vladimir Isaev <visaev@netgate.com>
Change-Id: Ib5baa85032a44402d5f48c1145245260a42c7bae

a316744b 10-Feb-2020 Klement Sekera <ksekera@cisco.com>

bfd: use tw_timer_template instead of legacy wheel

Type: refactor

Change-Id: I04e71a64e676910dc4c6cbc1ab54ffb0c29aa5b9
Signed-off-by: Klement Sekera <ksekera@cisco.com>

39e9428b 11-Feb-2020 Matthew Smith <mgsmith@netgate.com>

vrrp: add plugin providing vrrp support

Type: feature

Add a new plugin to support HA using VRRPv3 (RFC 5798).

Change-Id: Iaa2c37e6172f8f41e9165f178f44d481f6e247b9
Signed-off-by: Matthew Smith <mgsmith@netgate.com>

efcad1a9 04-Feb-2020 Filip Tehlar <ftehlar@cisco.com>

ipsec: add support for chained buffers

Type: feature

Change-Id: Ie072a7c2bbb1e4a77f7001754f01897efd30fc53
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>

30e7671c 04-Feb-2020 pcamaril <pcamaril@cisco.com>

sr: update NH value for Ethernet payloads

Upon encapsulation of L2 frames, IETF has replaced the NextHeader value from 59 (IPv6 No Next Header) to 143 (Ethernet).
https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml

Type: fix

Signed-off-by: pcamaril <pcamaril@cisco.com>
Change-Id: I88aa5590c81d16700ff7a0bbe6337e113179496e
Signed-off-by: pcamaril <pcamaril@cisco.com>

fa2a3166 11-Feb-2020 Florin Coras <fcoras@cisco.com>

ip: fix ip-local errors

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ie8bc5c9a03e858487cf565b4e9b520e6b496337a

f267d114 07-Feb-2020 Neale Ranns <nranns@cisco.com>

ip-neighbor: fix MLD reports not being sent

Type: fix

Change-Id: I8f81cd6c29ff8cb4f0b4850b8b1f6611d89ddb38
Signed-off-by: Neale Ranns <nranns@cisco.com>

6e6ad64a 04-Feb-2020 Ole Troan <ot@cisco.com>

tests: support python 3.8

Make test framework python3 version independence.

Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: I1ef1eb77b6c1f422ebc4dad0818f87c8e587b34b

72e31bc2 04-Feb-2020 Vladimir Isaev <visaev@netgate.com>

stats: fix state counter removal

Avoid using vec_del1() for directory vector to keep indexes valid all
the time.

There are state counters for each slave in LACP bond mode which can be
dynamically created and removed. Vector index is used to access these
counters. But also vec_del1() is used to remove counter from vector.
This function changes the index of the last element, so after this we
are unable to access ex-last element using old index.

As a result it is not possible to add-del-add two interfaces to the LACP
bond:

DBGvpp# create bond mode lacp
BondEthernet0
DBGvpp# create packet-generator interface pg1
DBGvpp# create packet-generator interface pg2
DBGvpp# bond add BondEthernet0 pg1
DBGvpp# bond add BondEthernet0 pg2
DBGvpp# bond del pg1
DBGvpp# bond del pg2
DBGvpp# bond add BondEthernet0 pg1
DBGvpp# bond add BondEthernet0 pg2
bond add: /if/lacp/1/3/partner-state is already register

Type: fix

Signed-off-by: Vladimir Isaev <visaev@netgate.com>
Change-Id: I2c86e13905eefdef6233369cd4ab5c1b53d123bd

90430b6e 01-Feb-2020 John Lo <loj@cisco.com>

ipsec: set l2_len for GRE-TEB tunnel decap

Type: fix
Ticket: VPP-1831

Signed-off-by: John Lo <loj@cisco.com>
Change-Id: I655964b22021ac38cbced577091a1156286d4fd6

03ce4621 03-Feb-2020 Neale Ranns <nranns@cisco.com>

teib: Rename NHRP to TEIB

Type: refactor

The Tunnel Endpoint Informatiob Base (TEIB) is a better
description of what it is (a mapping between tunnel endpoint
address, in the overlay, and next-hop address, in the underlay)
whereas NHRP is one instanc eof a control protocol that might add
such endpoints.

Signed-off-by: Neale Ranns <nranns@cisco.com>
Change-Id: Idcb2ad0b6543d3e5d9f6e96f9d14dafb5ce2aa85

c25048bd 29-Jan-2020 Dave Barach <dave@barachs.net>

vppinfra: improve clocks_per_second convergence

Apply exponential smoothing to the clock rate update calculation in
clib_time_verify_frequency(), with a half-life of 1 minute and a
sampling frequency of 16 seconds. Within 5 minutes or so, the
calculation converges

With each rate recalculation: reset total_cpu_time based on the kernel
timebase delta since vpp started, and the new clock rate

Improve the "show clock [verbose]" debug CLI command.

BFD echo + echo fail tests marked off until the BFD code can be
reworked a bit.

Type: fix

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I24e88a78819b12867736c875067b386ef6115c5c

e5b94dde 31-Dec-2019 Neale Ranns <nranns@cisco.com>

gre: Tunnel encap/decap flags

Type: feature

common funcitons across IP-in-IP and GRE tunnels for encap/decap
functions

Signed-off-by: Neale Ranns <nranns@cisco.com>
Change-Id: I325b66824878d843af167adfe5a7a96b0ab90566

14053c9d 29-Dec-2019 Neale Ranns <nranns@cisco.com>

ipip: Multi-point interface

Type: feature

plus fixes for gre

Signed-off-by: Neale Ranns <nranns@cisco.com>
Change-Id: I0eca5f94b8b8ea0fcfb058162cafea4491708db6

59ff918e 29-Dec-2019 Neale Ranns <nranns@cisco.com>

tunnel: Common types for IP tunnels

Type: refactor

Signed-off-by: Neale Ranns <nranns@cisco.com>
Change-Id: I18dcdb7af3e327f6cacdbcb1e52b89f13d6ba6e2

4d39f9c6 17-Jan-2020 Klement Sekera <ksekera@cisco.com>

bfd: reset peer discriminator on timeout

More RFC compliance.

Ticket: VPP-1816 BFD: peer discriminator not reset on timeout
Type: fix

Change-Id: I68063c18097d282b3527e3fb485c1d0d1fd1b0c8
Signed-off-by: Klement Sekera <ksekera@cisco.com>

6e20e035 27-Dec-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: fix typo in test doc string

Type: test

Change-Id: I97e02ebc5989eee794511c1ed6049e300be7d64e
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

67a7749c 11-Dec-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: fix TypeError in run_tests.py

Traceback (most recent call last):
File "run_tests.py", line 886, in <module>
exit_code, suites = parse_results(results)
File "run_tests.py", line 732, in parse_results
results_per_suite.print_results()
File "run_tests.py", line 683, in print_results
result.get_testcase_names(failed_test_id)
TypeError: 'NoneType' object is not iterable

Type: test

Change-Id: I2c5ae0b9e11be6bfb4490d9ce057db0b0a84c9bf
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

48bdbcd8 05-Dec-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: fix worker thread initialization

from threading.thread __init__:

This constructor should always be called with keyword arguments.

If a subclass overrides the constructor, it must make sure to invoke
the base class constructor (Thread.__init__()) before doing anything
else to the thread.

Type: test
Change-Id: Ifa89202e97053a4baf19e9a0ca0913430d5087a3
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

f63bf6a7 11-Jan-2020 Andrew Yourtchenko <ayourtch@gmail.com>

tests: disable the tap test for the time being

TAP tests require root access, which breaks
the testing in unprivileged scenario.
Disable the test until we find consensus on how
to deal with it.

Type: test
Change-Id: I66ee2b130723233682d858cad0b6e424ab0b2383
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>

f3a6622c 02-Jan-2020 Neale Ranns <nranns@cisco.com>

ipsec: AH copy destination and source address from template

Type: fix

Change-Id: I63d4df68eed6589763b5ce62bcd7f3fd867c60e1
Signed-off-by: Neale Ranns <nranns@cisco.com>

02950406 20-Dec-2019 Neale Ranns <nranns@cisco.com>

ipsec: Targeted unit testing

Type: fix

1 - big packets; chained buffers and those without enoguh space to add
ESP header
2 - IPv6 extension headers in packets that are encrypted/decrypted
3 - Interface protection with SAs that have null algorithms

Signed-off-by: Neale Ranns <nranns@cisco.com>
Change-Id: Ie330861fb06a9b248d9dcd5c730e21326ac8e973

4ed25985 25-Dec-2019 Dave Barach <dave@barachs.net>

tests: configure 32 mb physmem

Absolutely nothing good happens when we force the kernel to briefly
map and then unmap 16gb as vpp starts. Effect exacerbated when
TEST_JOBS = 20...40, and so forth.

Type: test

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: Id8e3ce1763cad3a0891d5d6c8d2c1e3e610682d7

7ade2f51 06-Dec-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: bfd - move test_poll_response to EXTENDED_TESTS

test_bfd.BFD4TestCase.test_poll_response providing
inconsistent results is the per-patch tests.

Type: test

Change-Id: I8f1864511526fd330a7da1abfa19be3f565c683a
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

fca3c6a3 31-Dec-2019 Neale Ranns <nranns@cisco.com>

ip-neighbor: set link-type ARP on incomplete adjacencies

Type: fix

Change-Id: I05d74da311d6a86ec4eb3df50d53ecaa9c622f50
Signed-off-by: Neale Ranns <nranns@cisco.com>

a42c6ee9 27-Dec-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: test_mpls_v6_ebgp_pic - don't write to stdout

Type: test

Change-Id: I2cccc68b1b4b6c576580ae0eb5d4511ca2f4663d
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

3f7b0f4a 27-Dec-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: tls - don't print skip info to stdout

Type: test

Change-Id: Id1bffbfe698113d85c4c6bf432ddf4908ed2b788
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

29c61321 24-Dec-2019 Dave Barach <dave@barachs.net>

classify: "classify filter ..." debug CLI cleanup

The pcap trace filter initial table index lives in
cm->filter_set_by_sw_if_index [0], which corresponds to the "local0"
interface. Debug cli makes sure that folks don't accidentally specify
the "local0" interface. At least it does now...

Fix the "vlib format.c code coverage" test in test/test_vlib.py.

Type: fix
Change-Id: I35320bc2c8f0c6f1f8c12e3529d1938548185151
Signed-off-by: Dave Barach <dave@barachs.net>

de35cdb7 16-Dec-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: fix skip logic on test_tap

log.txt message:
17:52:59,969 API call failed, expected 0 return value instead of -13 in tap_create_v2_reply(_0=58, context=77019, retval=-13, sw_if_index=4294967295)

Test was failing with log message:
tap: tap0: tap_create_if: ioctl(TUNSETIFF): Operation not permitted

Type: test
Change-Id: I5bcd9d2b0c870ea5eef92b79314b97821399722f
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

4a56f4e4 23-Dec-2019 Neale Ranns <nranns@cisco.com>

ipsec: Test and fix IPSec worker hand-off

Type: fix

Change-Id: I5cb9a3845ddbc5f4de4eb4e9c481f606fe5cec9a
Signed-off-by: Neale Ranns <nranns@cisco.com>

548d5ee7 17-Dec-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: TestL2bdMultiInst - break serial dependency on tests

enable the tests to run out of order/enable running an individual test.
Before:
[gw1] [ 20%] FAILED test/test_l2bd_multi_instance.py::TestL2bdMultiInst::test_l2bd_inst_02
[gw0] [ 40%] PASSED test/test_l2bd_multi_instance.py::TestL2bdMultiInst::test_l2bd_inst_01
[gw1] [ 60%] PASSED test/test_l2bd_multi_instance.py::TestL2bdMultiInst::test_l2bd_inst_04
[gw0] [ 80%] FAILED test/test_l2bd_multi_instance.py::TestL2bdMultiInst::test_l2bd_inst_03
[gw1] [100%] SKIPPED test/test_l2bd_multi_instance.py::TestL2bdMultiInst::test_l2bd_inst_05
-------
After:
[gw1] [ 20%] PASSED test/test_l2bd_multi_instance.py::TestL2bdMultiInst::test_l2bd_inst_02
[gw0] [ 40%] PASSED test/test_l2bd_multi_instance.py::TestL2bdMultiInst::test_l2bd_inst_01
[gw1] [ 60%] PASSED test/test_l2bd_multi_instance.py::TestL2bdMultiInst::test_l2bd_inst_04
[gw0] [ 80%] PASSED test/test_l2bd_multi_instance.py::TestL2bdMultiInst::test_l2bd_inst_03
[gw1] [100%] PASSED test/test_l2bd_multi_instance.py::TestL2bdMultiInst::test_l2bd_inst_05

Type: test

Change-Id: Ie40eb310f5fccacf854c364aa017891bce9b9372
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

c701e571 19-Dec-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: don't prompt to launch gdb for sanity test case

Type: test

Change-Id: I4c54121b76b341381a819cee928c3c2455a83503
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

e090f4db 29-Nov-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

papi: lazily initialize stats client

remove wait-loop on stats socket from test framework.

Type: refactor

Change-Id: I5bb95a7c597707a87f9d9a471215c4b4af1a2280
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

4c16d800 17-Dec-2019 Neale Ranns <nranns@cisco.com>

gre: multipoint ingress lookup fix

Type: fix

Change-Id: I170edd62220a63cb19efea3032e173fb87730b1b
Signed-off-by: Neale Ranns <nranns@cisco.com>

64e9d28d 17-Dec-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

build tests: fail test run if we can't patch scapy

Type: fix

Change-Id: I694e44f449863b3edbbc8b6095e94f770dc20330
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

53131d2a 17-Dec-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: fix cdp patch for scapy 2.4.3

Type: test
Fixes: 5d4b8912d2fe186b4fb920a72b3a2f7b556f4e7d

Change-Id: Ib64ae00eba41b2b6afc728142cbccc02d07f4997
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

568acbb7 18-Dec-2019 Neale Ranns <nranns@cisco.com>

ipsec: Fix decap of IPSEC/GRE in transport mode

Type: fix

in transport mode the header sequence is:
MAC - IP (tun) - ESP - GRE - L2
so popping the GRE header is done in the ESP decrypt node.

Change-Id: Ia125eb65b9300368617d2bffca09683851e43be0
Signed-off-by: Neale Ranns <nranns@cisco.com>

6461b7a3 17-Dec-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: fix import from change to scapy 2.4.3

Type: test
Fixes: 8d27fa73f22803d518993090804724f76350cfcc

Change-Id: I4656a9769011ed2399c1799f6f17520e44f375c7
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

8d27fa73 09-Dec-2019 Benoît Ganne <bganne@cisco.com>

classify: add complex encap packet tracing test

Type: test

Change-Id: I392975c00d7dae86dacedf7559aafa431e71cb14
Signed-off-by: Benoît Ganne <bganne@cisco.com>

e11dce20 17-Dec-2019 Neale Ranns <nranns@cisco.com>

nhrp: mGREv6

Type: test

Change-Id: I7d0496c37e06d3b6eee325a262e5398860282b63
Signed-off-by: Neale Ranns <nranns@cisco.com>

cbe25aab 30-Sep-2019 Neale Ranns <nranns@cisco.com>

ip: Protocol Independent IP Neighbors

Type: feature

- ip-neighbour: generic neighbour handling; APIs, DBs, event handling,
aging
- arp: ARP protocol implementation
- ip6-nd; IPv6 neighbor discovery implementation; separate ND,
MLD, RA
- ip6-link; manage link-local addresses
- l2-arp-term; events separated from IP neighbours, since they are not
the same.

vnet retains just enough education to perform ND/ARP packet
construction.
arp and ip6-nd to be moved to plugins soon.

Change-Id: I88dedd0006b299344f4c7024a0aa5baa6b9a8bbe
Signed-off-by: Neale Ranns <nranns@cisco.com>

3fd99047 16-Dec-2019 Neale Ranns <nranns@cisco.com>

fib: Glean on NBMA interface points to drop

Type: fix

Signed-off-by: Neale Ranns <nranns@cisco.com>
Change-Id: Iaae7a9e120bbf8168c581b06d3ac0e124b32e0e7

5d4b8912 13-Dec-2019 snaramre <snaramre@cisco.com>

tests: changes for scapy 2.4.3 migration

Type: fix
Change-Id: I7e041b666dabd90df23a920a1f1d99db4c10ddfe
Signed-off-by: snaramre <snaramre@cisco.com>

5d4c99f2 26-Sep-2019 Jakub Grajciar <jgrajcia@cisco.com>

devices: vhost API cleanup

Use consistent API types.

Type: fix

Change-Id: I2dec594cb834a45004edc9ca58ad7c7b4bd7ff06
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>

5de4fb70 03-Sep-2019 Jakub Grajciar <jgrajcia@cisco.com>

devices: tap API cleanup

Use consistent API types.

Type: fix

Change-Id: I11cc7f6347b7a60e5fd41e54f0c7994e2d81199f
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>

6b3f25ca 09-Dec-2019 Dave Barach <dave@barachs.net>

vlib: improve test coverage

Add tests.
Remove unused rule-based parser code.

Type: test

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I3ca3a9dd9da8ee8f3a47004c98f2f5644db10057

55636cb6 08-Dec-2019 Ole Troan <ot@cisco.com>

gtpu: use explicit types in api

Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: I16fcbd5e63526dbf062a3032701479324fe2a4f5

04338e85 06-Dec-2019 Ole Troan <ot@cisco.com>

pppoe: use explicit types in api

Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: Ifd1e1907740e55420dc040eb2afbbbf9887aea3c

61e3ade8 05-Dec-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: move bfd over gre to extended tests

This test should be fixed or removed.
EXTENDED_TESTS should not become "BROKEN_TESTS"

Type: test

Change-Id: Id998f0d3b7bd31100f917d076fbd7ddb46d99ed2
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

87d24db6 04-Dec-2019 Dave Barach <dave@barachs.net>

classify: vpp packet tracer support

Configure n-tuple classifier filters which apply to the vpp packet
tracer.

Update the documentation to reflect the new feature.

Add a test vector.

Type: feature

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: Iefa911716c670fc12e4825b937b62044433fec36

66cea092 05-Dec-2019 Klement Sekera <ksekera@cisco.com>

tests: fix wrong checksum error message

This change fixes the error message, which would previously report
mismatch on IPv6 layer instead of TCP layer.

Type: fix

Change-Id: Ie78779685362a420d155f928b3cdb341bc3fb8bc
Signed-off-by: Klement Sekera <ksekera@cisco.com>

fd574087 27-Nov-2019 Ole Troan <ot@cisco.com>

papi: add call stats

Type: feature
Change-Id: Ic6d44122d3e62e09402e3f1946f7e57e9b5e7c5f
Signed-off-by: Ole Troan <ot@cisco.com>

8b2fffd9 02-Dec-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: Revert "Python Tests: Make VppTestCase unit testable."

Type: test
This reverts commit 087c811b63aa6b0575149749e188bb37e7fb0513.

Change-Id: Ica12597f27d5a75c33c12c2d27a227dc4866adcb
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

0c629323 28-Nov-2019 Ole Troan <ot@cisco.com>

tests: add test run time.

Type: feature
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: Id7b30b5fe63e68ae88f3a42aa77d2614ccda724d

e89bfe33 04-Dec-2019 Dave Wallace <dwallacelf@gmail.com>

build: fix vom_test dependency on EXTENDED_TESTS

- Note: This was not caught by CI because the VPP 'make verify'
target always build libvom.so

Type: fix
Fixes: f0797d130

Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: I8663e317e4e793c386b09d1cb887133de1e43faf

1043fd38 03-Dec-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: fix exception handling around vapi.connect()/.disconnect()

vapi.connect() only raises subclasses of vpp_papi.VPPIOError.
vapi.disconnect() doesn't raise any exceptions, removed uneeded try block.

Type: test

Change-Id: Ide6e6db298b205f14382065862e358757619a5ba
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

207083f5 03-Dec-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: add interface function chaining

Type: test

Change-Id: I24e740aa87a8a4061fa98740f2d636997e18f08d
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

3bab8f9c 04-Dec-2019 Neale Ranns <nranns@cisco.com>

fib: Decouple source from priority and behaviour

Type: feature

the fib_source_t enum alone no longer defines the priority and
behaviour, instead each source must be allocated these attributes.
This allows the creation of other sources by the plugins (and
soon over the API).

Signed-off-by: Neale Ranns <nranns@cisco.com>
Change-Id: I890ee820fbc16079ee417ea1fbc163192806e853

5f8f6173 18-Apr-2019 Neale Ranns <nranns@cisco.com>

gre: Multi-point interfaces

Type: feature

Change-Id: I0129ad6ace44a50a8a3b26db8e445cd06b2b49e8
Signed-off-by: Neale Ranns <nranns@cisco.com>

f0797d13 15-Nov-2019 Dave Wallace <dwallacelf@gmail.com>

build: fix make test with distributed src

This patch addresses the functionality that is
missing for distributed make test source files.
In addition it extends the concept of colocating
test source code with functional source code
(eg. src/vcl/test). It also cleans up deficiencies
in the make test makefiles.

NOTE: Due to the way sphinx document tools work,
all test, all of the make test python code is
gathered using soft links into the directory:
.../build-root/build-test/src

Change summary:
- Remove 'make test' help details from
main makefile help output to reduce clutter
and redundant help output
- Move all generated build output to
.../build-root/build-test
- Move test_vcl.py as first usecase for
distributed core feature make test code
- Add test-wipe-all target and fix wipe targets
to remove all generated files
- Fix 'make test-doc' to generate module
documentation for all source files
- Remove unused targets in test/doc/Makefile
- Fix 'make test-shell'
- Fix test/ext Makefile to not generate
bogus output

Type: fix
Fixes: a43c93f8554ad7418e31be3791b3fb71232f60ac

Change-Id: Icc2ddb81d474081c3ede4548ecd7a0624651f62d
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

9534696b 25-Nov-2019 Neale Ranns <nranns@cisco.com>

ipip: Tunnel flags controlling copying data to/from payload/encap

Type: feature

Signed-off-by: Neale Ranns <nranns@cisco.com>
Change-Id: I9467f11775936754406892b8e9e275f989ac9b30

692bfc85 27-Aug-2019 Jakub Grajciar <jgrajcia@cisco.com>

classify: API cleanup

Use consistent API types.

Type: fix

Change-Id: Ib5b1efa76f0a9cecc0bc146f8f8a47c2442fc1db
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
Signed-off-by: Ole Troan <ot@cisco.com>
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

e2ccdf03 02-Dec-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

papi: add a per-call _timeout option

add the ability to override the default timeout value on a per-call
basis.
Use:
rv = self.vapi.papi.cli_inband(cmd='wait 10', _timeout=15)

Type: feature

Change-Id: Ia90a58586a1f63e02118599a2a4b7141e5a0b90d
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

5d440d9c 02-Dec-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: vpp_interface fix ip6 setter

Type: fix
Fixes: efd7bc2b1c8db160933ed3e9ab3cde0d07aaf863

Change-Id: I254f9fe44189f88621b9b0ff3f869efb9966ada5
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

abde62fb 02-Dec-2019 Neale Ranns <nranns@cisco.com>

tests: GRE over IPSec unit tests

Type: test

Signed-off-by: Neale Ranns <nranns@cisco.com>
Change-Id: I4ae1b56f273026aca86775fb61feabcdeb62c62e

5ef9ca6c 02-Dec-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: raise exception in vpp_interface for invalid sw_if_index

Type: test

Change-Id: I34058f2bd20f61a8f8355299a8df95f2948c25eb
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

73aff479 02-Dec-2019 snaramre <snaramre@cisco.com>

tests: BFD python3 changes

Type: fix
Change-Id: Ie441e81fe3971d70f96196c79d74658f910b4875
Signed-off-by: snaramre <snaramre@cisco.com>

bfd7d294 27-Oct-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

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>

1a7ed5e3 21-Nov-2019 Benoît Ganne <bganne@cisco.com>

tests: display stdout and stderr when output caching is disabled

Type: fix

Change-Id: I4286ba58bb15dd67c1199f76166bedf3b4e0344c
Signed-off-by: Benoît Ganne <bganne@cisco.com>

9fb6d40e 15-Apr-2019 Benoît Ganne <bganne@cisco.com>

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>

9efcee6e 26-Nov-2019 Neale Ranns <nranns@cisco.com>

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

9db6ada7 08-Nov-2019 Neale Ranns <nranns@cisco.com>

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>

41a817a3 23-Nov-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

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

e51a9bbe 19-Nov-2019 Dave Barach <dave@barachs.net>

vlib: improve code coverage, part deux

Type: test

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: If31f4b50da7a6e4a9704ceb3415c582143c08355

c17fc447 18-Nov-2019 Dave Barach <dave@barachs.net>

vlib: improve code coverage in src/vlib

Type: test

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I2dc4c09730f77931a2b484a6dd5dc669068f8e57

1976f36b 06-Nov-2019 Neale Ranns <nranns@cisco.com>

tests: Add UT to test incomplete MPLS adjacencies send ARP requests

Type: test

Change-Id: I81e07233aec54c786e4e9beb8c4f06d0a3dca90f
Signed-off-by: Neale Ranns <nranns@cisco.com>

efd7bc2b 11-Nov-2019 Neale Ranns <nranns@cisco.com>

tests: Remove the unrequired VPP IP address/prefix class wrappers

Type: refactor

Change-Id: I204f3f8eebc5f5d5a377e91262f91c615fd00168
Signed-off-by: Neale Ranns <nranns@cisco.com>

d9ca7c96 12-Nov-2019 Dave Barach <dave@barachs.net>

vlib: improve vlib "make test" code coverage

Type: test

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: Idf982fddad9e577595d2e05ac78c39705e9d616d

9485d99b 08-Nov-2019 Jon Loeliger <jdl@netgate.com>

interface: Allow VLAN tag-rewrite on non-sub-interfaces too.

This fix was first made in
commit fdea5c6a00b74971dbb1b7ec4e25839a871006ca
but was subsequently lost in
commit 053204ab039d34a990ff0e14c32ce3b294fcce0e

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>

ea93e48c 12-Nov-2019 Neale Ranns <nranns@cisco.com>

ip: IP address and prefix types (moved from LISP)

Type: refactor

Change-Id: I2c6b59013bfd21136a2955442c779685f951932b
Signed-off-by: Neale Ranns <nranns@cisco.com>

eb284a1f 09-Oct-2019 Ole Troan <ot@cisco.com>

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>

12989b53 26-Sep-2019 Neale Ranns <nranns@cisco.com>

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>

770a0dea 07-Nov-2019 Ole Troan <ot@cisco.com>

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

c12eae73 31-Oct-2019 Aleksander Djuric <aleksander.djuric@gmail.com>

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>

3f8c8713 05-Nov-2019 Andrew Yourtchenko <ayourtch@gmail.com>

tests: make threads in punt tests join when finished

The 42693521f6046997133c8f63bcfc9d615d96f69d 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>

ead1e536 31-Oct-2019 Renato Botelho do Couto <renato@netgate.com>

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

0b6a857d 30-Oct-2019 Neale Ranns <nranns@cisco.com>

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>

45a95dd7 05-Nov-2019 Klement Sekera <ksekera@cisco.com>

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>

42693521 05-Nov-2019 Andrew Yourtchenko <ayourtch@gmail.com>

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

b31d3935 31-Oct-2019 Andrew Yourtchenko <ayourtch@gmail.com>

tests: Revert "tests: add sending SIGQUIT to vpp quit sequence"

This reverts commit 4465fe1e30556b40c9ef8a1a155aa1665102dd22.

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>

4465fe1e 27-Oct-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

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>

3ae52627 28-Oct-2019 Jakub Grajciar <jgrajcia@cisco.com>

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>

97ea2f4e 29-Oct-2019 Dave Wallace <dwallacelf@gmail.com>

tests: decode worker stdout/stderr output

Type: fix

Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: I309254e9e99920fbeaa50eea503c1c2a9470abfe

d743dffc 29-Oct-2019 Klement Sekera <ksekera@cisco.com>

tests: fix TEST= filtering for python3

Type: fix

Change-Id: Iceb60e8a507120434cfc68758476ff5351b05f58
Signed-off-by: Klement Sekera <ksekera@cisco.com>

4aacc01f 23-Oct-2019 Ole Troan <ot@cisco.com>

tests: switch test framework to python3 by default

Type: make
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: I84d32f022d9dc555837c8916feba04a224cd262a

63cb8827 13-Oct-2019 Andrew Yourtchenko <ayourtch@gmail.com>

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>

df0191ea 25-Oct-2019 Ole Troan <ot@cisco.com>

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

2a884db1 23-Oct-2019 Ole Troan <ot@cisco.com>

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

419d31f8 12-Oct-2019 haiyanx1.zhang <haiyanx1.zhang@intel.com>

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>

2456433d 21-Oct-2019 Dave Wallace <dwallacelf@gmail.com>

tests: DEBUG=gdb[server]-all to debug worker(s)

Type: test

Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: I0264451632c1ce780b38a2c15a7e34350fc6d521

67694733 21-Oct-2019 Ole Troan <ot@cisco.com>

geneve: tests support python3

Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: I0ff4d58c181b2bdf483b8b039ad005c2a4915aa8

f6dee6c8 21-Oct-2019 Ole Troan <ot@cisco.com>

bonding: tests support python3

Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: I6cedb43af4437fdabce75f4a845629c5c2f96f6a

5e56f751 21-Oct-2019 Ole Troan <ot@cisco.com>

ip: test support python3

Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: I9c66bce900f78e5fbd435515df94e327ad25c3c6

3f2a956a 21-Oct-2019 Ole Troan <ot@cisco.com>

l2: tests support python3

Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: Id17bcb65d7eb27f865fc7872b3e485c09f1d29a7

8b76c23d 21-Oct-2019 Ole Troan <ot@cisco.com>

ipsec: tests support python3

Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: Id13da9371c71c10c12a0120ec89ba21c1ca47524

1556b3ad 21-Oct-2019 Ole Troan <ot@cisco.com>

classify: tests to support python3

Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: I8af6ee6e5239f0836978baa063a18a01c610279f

22674295 21-Oct-2019 Ole Troan <ot@cisco.com>

bier: tests support python3

Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: I3cf5295f1a85579a66ba38ca1f74678b45474959

586d3edf 21-Oct-2019 Andrew Yourtchenko <ayourtch@gmail.com>

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>

127fbec4 18-Oct-2019 Ole Troan <ot@cisco.com>

ip: reassembly tests python3 support

Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: I990d8d521c128e8d4f482e30b3a49cbc11b632d1

9cd8f339 18-Oct-2019 Ole Troan <ot@cisco.com>

ip: add python3 support to punt tests

Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: Ib918d11fb3278a25a92006dcfe3c7c484e7b33ea

2915649f 18-Oct-2019 Ole Troan <ot@cisco.com>

gso: python3 support in tests

Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: I166019cc69fd01cb43f1a3fad699f3d2e5ec5b19

19757332 18-Oct-2019 Ole Troan <ot@cisco.com>

ip: ip vrf tests python3 support

Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: Ie23c9d2d7325be62ef33df2f0562ab41518f7bf4

5dc5fcf1 18-Oct-2019 Ole Troan <ot@cisco.com>

udp:: support python3 in tests

Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: Iea19d7bc2dfe9736ddefb4419509ccfda7a67eeb

64e978b1 17-Oct-2019 Ole Troan <ot@cisco.com>

ipsec: make tests support python3

Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: I3255702e7c562c8d04a91a095e245756c6443a9e

2bb7151d 16-Oct-2019 snaramre <snaramre@cisco.com>

tests: python3 changes for span and aclplugin test

Type: fix
Change-Id: Ia9f74f951f831cc5c9b5af863db1bb3f7a1a81ff
Signed-off-by: snaramre <snaramre@cisco.com>

19cb04df 17-Oct-2019 Ole Troan <ot@cisco.com>

classify: make tests support python3

Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: I7c4a12165fa0928fb2b8d99fc1c8d5de16377e7e

3030beae 17-Oct-2019 snaramre <snaramre@cisco.com>

tests: python3 fixes for reassembly tests

Type: fix
Change-Id: I0d9b823bd558c48b18af9b0d1e80c30729e64dac
Signed-off-by: snaramre <snaramre@cisco.com>

b8d5e405 16-Oct-2019 Ole Troan <ot@cisco.com>

nat: tests support python3

Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: Ie15ea8f01846f87cb65e90e8762dc941441fc176

45ec5708 16-Oct-2019 Ole Troan <ot@cisco.com>

vppinfra: test support python3

Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: Id1794f38fcb776ded9b769141f5f47d7be75f247

07a0f212 11-Oct-2019 snaramre <snaramre@cisco.com>

tests: python3 changes for ip6 fib tests

Type: fix
Change-Id: Ie7764fec13cbb83b6899c7c33b7b2f8cc5d40c8a
Signed-off-by: snaramre <snaramre@cisco.com>

6ed154f7 15-Oct-2019 Ole Troan <ot@cisco.com>

tests: cli wrapper should return string

Python3 fixes.

Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: I648b2142d45dfab9146a02eeb1b12de11103ff9f
Signed-off-by: Ole Troan <ot@cisco.com>

d6df3acf 29-Aug-2019 snaramre <snaramre@cisco.com>

tests: python3 version check for enum module

Type: fix
Change-Id: Ie210500fba741d3f047e8499957b5b233a78fa36
Signed-off-by: snaramre <snaramre@cisco.com>

29467b53 08-Oct-2019 Mohsin Kazmi <sykazmi@cisco.com>

gso: Add gso feature arc

Type: refactor

Change-Id: Ib4a8e7e64093b2db1deda6663325080bc8337605
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>

8d829f6c 13-Oct-2019 Andrew Yourtchenko <ayourtch@gmail.com>

tests: make pg_start() wait until pg completes

A sizable number of tests call pg_start() to get the packets flowing and then
immediately expect to have the entirety of the packets gone through.
This works on powerful and unstressed hardware, but fails in beautifully random
ways under load.

This also necessitates the complicated logic of remembering the "zombie captures",
then sleeping for some time before cleaning them up....

The solution is simple: in pg_start(), start the generators, wait till they
all finish, clean up, done.

Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
Change-Id: I930e51b7aae39c9841d22dd905a4d13a465a672b
Type: test

4f05a8e4 13-Oct-2019 Andrew Yourtchenko <ayourtch@gmail.com>

tests: log error which happens during connect and wait longer for stats socket

Intermittently, a test would start VPP, but no testcases would execute.
This would be more probable apparent during the high load or if there
is another testcase dumping the core at that moment.
Adding the logging to the connection revealed it was the stats socket
connection erroring with error -2. Increasing the deadline
from 3 seconds to 5 minutes has eliminated this error.

Change-Id: I40bd7e642abb9e2aef0238c612e4c34781de5db2
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
Type: test

3d36f19a 11-Oct-2019 Andrew Yourtchenko <ayourtch@gmail.com>

tests: explicitly wait for the PG to finish before looking for capture file

Rather than only using time-based method of periodically checking
whether the pcap file appeared, first check that the packet generator
has stopped. To make this change fail-safe, have a 5-minute timeout
on this activity, just in case the things go terribly wrong.

Type: test
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
Change-Id: Id16b2802b2de8a4cafb5d9f0a8c9ba62ec89dc32

68bae5b2 10-Oct-2019 Klement Sekera <ksekera@cisco.com>

tests: extra logging in reassembly tests

Type: test

Change-Id: Ia09c3149490e47e49e59544ab1680a8160e60ac8
Signed-off-by: Klement Sekera <ksekera@cisco.com>

5932ce17 09-Oct-2019 Dave Barach <dave@barachs.net>

tests: add cli_return_response to vpp_papi_provider

To improve gcov/lcov code coverage stats, it's necessary to send
incorrect debug CLI commands; to force vpp into debug CLI error paths.

cli_return_response() sends commands and returns the response object,
so test vectors can handle failures.

Type: feature

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I4fab591c9d2e30c996f016e18e4fd69b9c5bed06

2d3282e1 30-Sep-2019 Jakub Grajciar <jgrajcia@cisco.com>

geneve: API cleanup

Use consistent API types.

Type: fix

Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
Change-Id: I1964e4f0afe6f030ae9c8e28fcba5fd81aa1f130

d5262831 30-Sep-2019 Jakub Grajciar <jgrajcia@cisco.com>

dhcp: dhcp6_pd_client_cp API cleanup

Use consistent API types.

Type: fix

Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
Change-Id: If6c102a53d074cba7eca6b6af9855aa4486f38cc

2777ec76 24-Sep-2019 Dave Wallace <dwallacelf@gmail.com>

build: clean up make help output

This change is designed to help the uninformed find the right way
to run extended tests by using the test-all[-debug] targets.
'make test EXTENDED_TESTS=y' fails to build as it has a dependency
on 'vom-install' which is conveniently included in test-all[-debug].

- clarify test-all[-debug] description and
make test-help description
- Also align indentation of make help output

Type: style

Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: Ief54cc8a5af68c052aacb0d660237c5eb63451b5

d6f1c9c5 06-Oct-2019 Rajesh Goel <rajegoel@cisco.com>

mpls: support fragmentation of mpls output packet

Type: fix

Signed-off-by: Rajesh Goel <rajegoel@cisco.com>
Change-Id: Ie4372c5cf58ab215cdec5ce56f8a994daaba2844

6be55648 01-Oct-2019 Klement Sekera <ksekera@cisco.com>

tests: handle unicode charactes in cli output

Type: fix

Change-Id: Ic4fb53e6d10a1de155a3088be81d53d9efeb0c0f
Signed-off-by: Klement Sekera <ksekera@cisco.com>

02bfd641 07-Oct-2019 Neale Ranns <nranns@cisco.com>

dhcp: Move to plugin

Type: feature

Change-Id: I3fe27a8ef577741d9a5c4f090ec91cf68fb44fe3
Signed-off-by: Neale Ranns <nranns@cisco.com>

ac3e72cb 06-Oct-2019 Neale Ranns <nranns@cisco.com>

ip: Fix IP unnumbered dump of one interface

Type: fix

Change-Id: I35fb6fdfba50c4a59cf1ffb94cb51487bcf5afc9
Signed-off-by: Neale Ranns <nranns@cisco.com>

103ba6ba 01-Oct-2019 Jakub Grajciar <jgrajcia@cisco.com>

dhcp: API cleanup

Use consistent API types.

Type: fix

Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
Change-Id: Ia63d920788add2584060a240321acced7a471640

0fc50934 30-Sep-2019 Jakub Grajciar <jgrajcia@cisco.com>

dhcp: dhcp6_ia_na_client_cp API cleanup

Use consistent API types.

Type: fix

Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
Change-Id: Ie2d2c74ed3832d137e808e0b52348b4e660feb6f
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>

b325983a 27-Sep-2019 Neale Ranns <nranns@cisco.com>

ipsec: support 4o6 and 6o4 for tunnel protect

Type: feature

Change-Id: Ib2352ca4c7abf4645f21fa16aaaf27408890a2bf
Signed-off-by: Neale Ranns <nranns@cisco.com>

de34c35f 25-Jun-2019 Klement Sekera <ksekera@cisco.com>

ip: add shallow virtual reassembly functionality

Type: feature

Change-Id: Ibc8334e26c7e6f6120696c3e313b6e11d73dab99
Signed-off-by: Klement Sekera <ksekera@cisco.com>

769145cd 06-Mar-2019 Klement Sekera <ksekera@cisco.com>

ip: respect buffer boundary when searching for ipv6 headers

Type: fix

Change-Id: I5a5461652f8115fa1270e20f748178fb5f5450f2
Signed-off-by: Klement Sekera <ksekera@cisco.com>

896c896a 24-Jun-2019 Klement Sekera <ksekera@cisco.com>

ip: refactor reassembly

this is a preparation step for introducing other reassembly types

Type: refactor

Change-Id: I197e299dbd729b00eead31667913b8ceff915d63
Signed-off-by: Klement Sekera <ksekera@cisco.com>

d5ade023 21-Sep-2019 Dave Wallace <dwallacelf@gmail.com>

tests: fix test-checkstyle to check plugin tests

Type: fix

Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: I93eb0ae4338247fa2479f8e419483d1593436dc7

75761b93 11-Sep-2019 Ole Troan <ot@cisco.com>

api: split vl_api_prefix into two

One type for address with prefix and one type for prefix.

Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: Icfec51d9b7d5cde1d69fbecdd97498688ab7b295
Signed-off-by: Ole Troan <ot@cisco.com>
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Signed-off-by: Ole Troan <ot@cisco.com>

fbc38898 09-Sep-2019 Andrew Yourtchenko <ayourtch@gmail.com>

tests: split up the long running IPSec tests into separate classes

Type: test
Change-Id: Ieeae7f1653f5f2e8e49f258871b389ef8954c90b
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>

bf02d6f4 13-Sep-2019 Damjan Marion <dmarion@me.com>

devices: partial revert of af_packet API cleanup patch

Reverting as make test must me able to run non-root so creating tap interfaces is no-go.

Type: fix
Fixes: 3b2db9002c14f9e0742622f2d503c5801d443827

Change-Id: Ib6eb2679b65b662ed6e88e67f8b199744abae85e
Signed-off-by: Damjan Marion <dmarion@me.com>

3b2db900 26-Aug-2019 Jakub Grajciar <jgrajcia@cisco.com>

devices: af_packet API cleanup

Use consistent API types.

- fix af_packet_dump dumping deleted interface

Type: fix

Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
Change-Id: Ie8d138e30c8c51a2306bb2ad9ac0b7a49d5412bf
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>

3d1ef873 25-Aug-2019 Jakub Grajciar <jgrajcia@cisco.com>

bonding: API cleanup

Use consistent API types.

Type: fix

Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
Change-Id: Idbba4ab6a412b75338e3149e51476693f0862f16
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>

546f955b 21-Aug-2019 Jakub Grajciar <jgrajcia@cisco.com>

memif: API cleanup

Use consistent API types.

memif_create now enables zero-copy by default.
Add no_zero_copy param to memif_create which
if set, disables zero copy.

Type: refactor

Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
Change-Id: I11df8b9212c40de179ee71dc9da14039b982ede5
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>

a1876b84 20-Aug-2019 Steven Luong <sluong@cisco.com>

bonding: add weight support for active-backup mode

Not all interfaces have the same characteristics within the bonding group.
For active-backup mode, we should do our best to select the slave that
performs the best as the primary slave. We already did that by preferring
the slave that is local numa. Sometimes, this is not enough. For example,
when all are local numas, the selection is arbitrary. Some slave interfaces
may have higher speed or better qos than the others. But this is hard to
infer.

One rule does not fit all. So we let the operator to optionally specify the
weight for each slave interface. Our primary slave selection rule is now
1. biggest weight
2. is local numa
3. current primary slave (to avoid churn)
4. lowest sw_if_index (for deterministic behavior)

This selection rule only applies to active-backup mode which only one slave
is used for forwarding traffic until it becomes unreachable. At that time,
the next "best" slave candidate is automatically promoted. The slaves are
sorted according to the preference rule when they are up. So there is no need
to find the next best candidate when the primary slave goes down.

Another good thing about this rule is when the down slave comes back up, it
is selected as the primary slave again unless there is indeed a "better"
slave than this down slave that were added during that period.

To set the weight for the slave interface, do this after the interface is
enslaved

set interface bond <interface-name> weight <value>

Type: feature

Signed-off-by: Steven Luong <sluong@cisco.com>
Change-Id: I59ced6d20ce1dec532e667dbe1afd1b4243e04f9

4682feb1 02-Sep-2019 Jakub Grajciar <jgrajcia@cisco.com>

bfd: API cleanup

Use consistent API types.

Type: fix

Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
Change-Id: I4b91ebe8aadbec8b95716ed1cde4b0a13eee3a3f
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>

e5ff5a36 23-Aug-2019 Ole Troan <ot@cisco.com>

api: enforce vla is last and fixed string type

Enforce that variable length fields are the last element of API messages.

Add a 'fixed' version of string type, since dealing with
multiple variable length strings turned out too painful
for the C language bindings.

The string type is now:
{
string name[64]; // NUL terminated C-string. Essentially decays to u8 name[64]
string name[]; // Variable length string with embedded len field (vl_api_string_t)
};

The latter notation could be made available to other types as well.
e.g.
{
vl_api_address_t addresses[];
}
instead of

{
u32 n_addr;
vl_api_address_t addresses[n_addr];
};

Type: fix
Change-Id: I18fa17ef47227633752ab50453e8d20a652a9f9b
Signed-off-by: Ole Troan <ot@cisco.com>

be2c2a82 02-Sep-2019 Klement Sekera <ksekera@cisco.com>

tests: run vapi tests by default

Type: fix

Change-Id: I7b190507446fca745fc4bc6abbdeed48f55abdb9
Signed-off-by: Klement Sekera <ksekera@cisco.com>

3a350702 02-Sep-2019 Klement Sekera <ksekera@cisco.com>

tests: fix centos detection

Type: fix
Fixes: defde0f870

Change-Id: Ib81e3610bd0fc22901a902dc76692f1951ead2b8
Signed-off-by: Klement Sekera <ksekera@cisco.com>

7adaa226 27-Aug-2019 Ole Troan <ot@cisco.com>

api: revert use string type for strings in memclnt.api

This reverts commit 2959d42feb576c0e00c28c4e27658b25f6c783e9.
Lacks client side fixes.

Type: fix
Change-Id: Ib94b18e74325cede41ed1733e57896f17a952526
Signed-off-by: Ole Troan <ot@cisco.com>

2cdcd0cf 27-Aug-2019 Neale Ranns <nranns@cisco.com>

ipsec: Fix NULL encryption algorithm

Type: fix
Ticket: VPP-1756

the block-size was set to 0 resulting in incorrect placement of the ESP
footer.

add tests for NULL encrypt + integ.

Change-Id: I8ab3afda8e68f9ff649540cba3f2cac68f12bbba
Signed-off-by: Neale Ranns <nranns@cisco.com>

2959d42f 22-Aug-2019 Ole Troan <ot@cisco.com>

api: use string type for strings in memclnt.api

Explicitly using string type in API allows for autogenerating tools to print
strings instead of hex-dumping byte strings.

Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Change-Id: I573962d6b34d5d10aab9dc6a5fdf101c9b12a6a6
Signed-off-by: Ole Troan <ot@cisco.com>

3f1964d2 22-Aug-2019 Mohsin Kazmi <sykazmi@cisco.com>

gso: fix segmentation when gso_size greater than vlib buffer size

Type: fix
Ticket: VPP-1751

Change-Id: I5ffb078492adc97374290de404f2ec0102b75184
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>

a43c93f8 22-Aug-2019 Dave Wallace <dwallacelf@gmail.com>

tests: move plugin tests to src/plugins/*/test

- Relocate plugin tests for 'make test' into
src/plugins/*/test so that plugin test cases
are co-located with the plugin source code.

Type: refactor

Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: I503e6a43528e14981799b735fa65674155713f67
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

34af0ccf 21-Aug-2019 Dave Barach <dave@barachs.net>

dns: make the dns name resolver a plugin

Type: refactor
Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I823c2cd307a4613653a2d20f564dda062d4da31b

4bf88880 21-Aug-2019 Dave Barach <dave@barachs.net>

dns: add basic functional "make test" case

Type: test
Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I88e93b510d8d4f7b59f3e630539dc7e0264afa47

630ab584 19-Jul-2019 Klement Sekera <ksekera@cisco.com>

ip: reassembly: send packet out on correct worker

Note which worker received fragment with offset zero and use this worker
to send out the reassembled packet.

Type: fix
Change-Id: I1d3cee16788db3b230682525239c0100d51dc380
Signed-off-by: Klement Sekera <ksekera@cisco.com>

4ecbf105 31-Jul-2019 Klement Sekera <ksekera@cisco.com>

tests: support worker threads

Add support for specifying the worker thread when adding packet stream.

Type: feature

Change-Id: I8a98b91c211e60cd53e1166f9f51365394ecacfd
Signed-off-by: Klement Sekera <ksekera@cisco.com>

053204ab 18-Mar-2019 Jakub Grajciar <jgrajcia@cisco.com>

api: Cleanup APIs interface.api

Use of consistent API types for interface.api

Type: fix

Change-Id: I88206d7d0907cffd564031f73c9a996df2e5e21a
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>

947a85c7 24-Jul-2019 Klement Sekera <ksekera@cisco.com>

tests: Revert "Tests: Example duplicate code refactoring."

This reverts commit 6955595a577e1b7d316b5b69267bf1d1d951a4ab. The result
is that test filtering for reassembly tests works again.

Type: fix

Change-Id: I4acb094b5b4aa264745986afa0bb0528789807b3
Signed-off-by: Klement Sekera <ksekera@cisco.com>

c02924ec 15-Aug-2019 Andrew Yourtchenko <ayourtch@gmail.com>

acl: fix stats-segment counters validation on acl update

The stats-segment validation/clear logic for acl counters was wrong,
fix it. Also add the code to the unittests to cover that case,
add a vat command to enable/disable counters, clean up
the unnecessary endian conversion and remove the stray clib_warning()

Change-Id: I421297a92e4aeb885c468c72a97cec25981df615
Type: fix
Ticket: VPP-1744
Fixes: f995c7122ba0d024b17bc3232e8edd18d5e25088
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
(cherry picked from commit 4c945dacb9ff9da731301feb26b1edb4ac00e8bd)

ecd1fc7d 05-Aug-2019 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

hsa: Refactor quic_echo to allow other protocols

Type: refactor

Change-Id: Iaef9091e1d057110530255e644fad1c298418966
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

77cc14a2 14-Aug-2019 Dmitry Vakhrushev <dmitry@netgate.com>

ipsec: fix missed IPSEC_INTEG_ALG_MD5_96

This algorithm was missed in last improvements.

Type:fix

Signed-off-by: Dmitry Vakhrushev <dmitry@netgate.com>
Change-Id: Ib818cbdcdd1a6f298e8b0086dac4189cc201baa3

66035677 02-Aug-2019 Benoît Ganne <bganne@cisco.com>

gbp: add local l3out redirect to local SEP unit test

Type: test

Change-Id: Ia6dad86d02f6f665a3e6960812b2527eaabb65f1
Signed-off-by: Benoît Ganne <bganne@cisco.com>

6c92f5ba 07-Aug-2019 Matthew Smith <mgsmith@netgate.com>

ip: allow addrs from the same prefix on intf

Type: feature

Adding a prefix to an interface was not permitted if it overlapped
with another prefix on an interface which used the same FIB.

Loosen the restriction. Allow 2 or more addresses from the same
prefix on a single interface. Reference count the prefix to figure
out when a glean/connected route for the prefix needs to be added
or removed.

Added unit tests to check that the route is only removed when all
addresses in the prefix are removed from the interface.

Change-Id: I1a962ecb5e1ee65fc6d41f98a4cc097a51a55321
Signed-off-by: Matthew Smith <mgsmith@netgate.com>

4ea511c8 02-Aug-2019 Benoît Ganne <bganne@cisco.com>

gbp: add remote EP redirect to remote SEP unit test

Type: test

Change-Id: I4dd685f9acd4d467e0967e6fdd428558ffc8b209
Signed-off-by: Benoît Ganne <bganne@cisco.com>

b8543249 31-Jul-2019 Benoît Ganne <bganne@cisco.com>

gbp: add unknown remote EP redirect unit test

Type: test

Change-Id: I1dfbeef08a4f112551450682fc4040820251485b
Signed-off-by: Benoît Ganne <bganne@cisco.com>

388f418a 31-Jul-2019 Benoît Ganne <bganne@cisco.com>

gbp: add l3out redirect to remote SEP unit test

Type: test

Change-Id: I0fafaebbb1f70488e0bc7d21da778d55fe15c3f5
Signed-off-by: Benoît Ganne <bganne@cisco.com>

d5d7b96e 04-Aug-2019 Neale Ranns <nranns@cisco.com>

tests: UT for MPLS 6PE

Type: test

Change-Id: I48650473591aa181167cf3a86ed2f5da58a81072
Signed-off-by: Neale Ranns <nranns@cisco.com>

adb17a81 04-Aug-2019 Neale Ranns <nranns@cisco.com>

fib tests: IP multicast over GRE

Type: feature

Change-Id: I1632ff23b1bf6d91aa3406c95ebd6ef0aa595f35
Signed-off-by: Neale Ranns <nranns@cisco.com>

3bcf1a94 31-Jul-2019 Prashant Maheshwari <pmahesh2@cisco.com>

ethernet: change to mark the CFI bit in the L2 header.

Type: fix
Fixes: 039cbfe2

Signed-off-by: Prashant Maheshwari <pmahesh2@cisco.com>
Change-Id: Idca91c73758824688dd6ce61df994be66753d838

3b9374fa 01-Aug-2019 Neale Ranns <nranns@cisco.com>

ipsec: Redo the anit-replay check post decrypt

Type: fix

Change-Id: I1fa8c5326d6f22cfb8dd40e97d8a22d11a716922
Signed-off-by: Neale Ranns <nranns@cisco.com>

3efcd0d7 10-Jun-2019 Hongjun Ni <hongjun.ni@intel.com>

lb: vip and as dump/detail api's

- lb_vip_dump/lb_vip_details - get all vip.
- lb_as_dump/lb_as_details - get all as list per vip.
- adds api unit test.
- adds vpp_lb to test framework.

Ticket:
Type: feature

Change-Id: I24be50d62c5234f3535cc840603ddd9df7eb3f07
Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>

c343a17d 31-Jul-2019 Mohsin Kazmi <sykazmi@cisco.com>

gso: fix the test case

Type: fix
Fixes: 22e9cfd760be613f33a4135e9247729b64619cc6

Change-Id: Idb198642e439dc3d54c04d8bde9d3e8382ebf830
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>

4208a4ce 06-May-2019 Steven Luong <sluong@cisco.com>

devices interface tests: vhosst GSO support

Add gso option in create vhost interface to support gso and checksum
offload.

Tested with the following startup options in qemu:
csum=on,gso=on,guest_csum=on,guest_tso4=on,guest_tso6=on,guest_ufo=on,
host_tso4=on,host_tso6=on,host_ufo=on

Type: feature

Change-Id: I9ba1ee33677a694c4a0dfe66e745b098995902b8
Signed-off-by: Steven Luong <sluong@cisco.com>

83832e7c 31-Jul-2019 Neale Ranns <nranns@cisco.com>

qos: Store function

Type: feature

store: write a QoS value into the buffer meta-data
record: Extract a QoS value from a packet header and store it.
mark: Make a change to the content of a packet header by writing a stored
QoS value

Change-Id: I07d1e87dd1ca90d40ac1ae1774fee1b272cab83f
Signed-off-by: Neale Ranns <nranns@cisco.com>

a47a5f20 23-Jul-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

api papi: add alias for timestamp(datetime)/timedelta

Now that we have support for f64:
- create explicit types for timestamp(datetime)/timedelta
- update log_details to use timestamp and remove redundant string representation.
If you need the string representation, in python do str(timestamp).
If you prefer the raw f64 value, the client can pass in the
_no_type_conversion option.

Type: feature

Change-Id: I547b5fa7122d2afa12628b7db0192c23babbbae8
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

cb265c69 25-Jul-2019 Andrew Yourtchenko <ayourtch@gmail.com>

tests: disable pg capture before enabling it

In a lot of places within the unit tests pg_start() starts
the capture with an already existing capture running
for the same test.

If the pcap file already exists, then it is renamed and there
is no problem.

However, there is a potential for race if the previous
pg_start() has enabled the capture, but the check for
renaming it happened just slightly earlier than the first
packet has arrived.

Then a second call to pg_start() will hit a check that
a file exists, and will cause an error. This is especially
visible when running the tests in parallel due to increased
load.

Solution: disable the capture before enabling it.
This will flush the aready running capture and eliminate the race.

The additional delay that flushing of the pcap creates has exposed
several other race conditions:

NAT tests: Some of the NAT reassembly tests
verify that the entries were added to the reassembly data structures,
but do so by comparing the quantities of entries. With the default
timeout being 2s, some of the entries might timeout,
resulting in a bogus test failure.

Solution: Bump the timeout to 20s for the affected tests.

Punt tests: nr_packets == 3 makes test intermittently fail,
nr_packets > 3 make it reliably fail, and nr_packets = 2 works

Solution: set nr_packets == 2 for the time being

IGMP tests: the leave-group calls get a spurious packet
from the time the new groups were configured

Solution: add 1 second delay before starting to delete the groups

Type: test

Change-Id: I931182a7b2860cf670e030ee7da8038f6e87356d
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>

00625a64 31-Jul-2019 Neale Ranns <nranns@cisco.com>

tests: Split IPSec ESP into parameterized tests per engine

Type: feature

Change-Id: Icb1bd3fce768aebf8919c63a104f771ca7fa1d6f
Signed-off-by: Neale Ranns <nranns@cisco.com>

1404698d 29-Jul-2019 Neale Ranns <nranns@cisco.com>

ip: Ensure reassembly runs before IPSec decrypt.

Type: fix

Change-Id: I01eeedf8d5015b07b9422c65afe78bfe8177c22c
Signed-off-by: Neale Ranns <nranns@cisco.com>

2648e447 09-Jul-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

build: add option to wipe/rebuild papi

Previously, the only option was to wipe/rebuild all the test dependencies.

Type: make

Change-Id: Ia95d6e800f67bef033dcf614dbfa249c3e43159d
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

22e9cfd7 23-Jul-2019 Mohsin Kazmi <sykazmi@cisco.com>

pg: add GSO support

Type: feature

Change-Id: I72676495a85fbecc946aa266a75234cce70c3a5e
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>

038e1dfb 19-Jul-2019 Neale Ranns <nranns@cisco.com>

dhcp ip: DSCP settings for transmitted DHCP packets

Type: feature

- Define the ip_dscp_t and use in the IP headers
- Add DSCP setting to the DHCP client for use with packet TX

Change-Id: If220dde0017ea78793747d65f53e11daf23a28fa
Signed-off-by: Neale Ranns <nranns@cisco.com>

99536f4b 25-Jul-2019 Neale Ranns <nranns@cisco.com>

dhcp: send unicast and broadcast packets via the IP adjacency

Type: feature

this means DHCP packets are subject to the IP features configured on the interface
- the unicast packets already were sent throught the adj
- added UT for DHCP client sending a unicast renewal

Change-Id: Id50db0b71822f44bf7cb639a524195cdc9873526
Signed-off-by: Neale Ranns <nranns@cisco.com>

c17c1873 23-Jul-2019 Neale Ranns <nranns@cisco.com>

vom: QoS support

Type: feature

Change-Id: If517d10c318fc17fdbd797fac8d974d9851f6442
Signed-off-by: Neale Ranns <nranns@cisco.com>

f995c712 13-Jun-2019 Andrew Yourtchenko <ayourtch@gmail.com>

acl: implement counters

implement per-acl-number counters in the stats segment.
They are created during the ACL creation,
the counters are incremented in the dataplane using
the new inline function with the extra parameter being
the packet size. Counting in shared segment adds
a noticeable overhead, so add also an API to
turn the counters on.

Type: feature

Change-Id: I8af7b0c31a3d986b68089eb52452aed45df66c7b
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>

025cd9c8 08-Jul-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: add cpu/shm info to test runner output

Type: test
Depends-on: https://gerrit.fd.io/r/#/c/20484/

Change-Id: I140132cfcc4347035fe2bb9919f8e7923342940f
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

5281a902 23-Jul-2019 Neale Ranns <nranns@cisco.com>

qos: QoS dump APIs

Type: feature

Change-Id: I514b40026986f3828c8727453456b20a0a45f3af
Signed-off-by: Neale Ranns <nranns@cisco.com>

1dbcf30b 19-Jul-2019 Neale Ranns <nranns@cisco.com>

fib: Support the POP of a Psuedo Wire Control Word

Type: feature

Change-Id: Ib24547a7c4c73ceb5383d1ca8f14ec40e6a90f01
Signed-off-by: Neale Ranns <nranns@cisco.com>

6afaae15 17-Jul-2019 Neale Ranns <nranns@cisco.com>

ipsec: GCM, Anti-replay and ESN fixess

Type: fix

Several Fixes:
1 - Anti-replay did not work with GCM becuase it overwrote the sequence
number in the ESP header. To fix i added the seq num to the per-packet
data so it is preserved
2 - The high sequence number was not byte swapped during ESP encrypt.
3 - openssl engine was the only one to return FAIL_DECRYPT for bad GCM
the others return BAD_HMAC. removed the former
4 - improved tracing to show the low and high seq numbers
5 - documented the anti-replay window checks
6 - fixed scapy patch for ESN support for GCM
7 - tests for anti-reply (w/ and w/o ESN) for each crypto algo

Change-Id: Id65d96b6d1d4dd821b2ab557e87468fff6d70e5b
Signed-off-by: Neale Ranns <nranns@cisco.com>

a9ed6f70 22-Jul-2019 Gary Boon <gboon@cisco.com>

vppinfra: add mapped pcap file support

Type: feature

Change-Id: Ic720d56a6f8901efde2a58519bc9aa553205a9a6
Signed-off-by: Gary Boon <gboon@cisco.com>
Signed-off-by: Dave Barach <dave@barachs.net>

8adb92be 23-Jul-2019 Aloys Augustin <aloaugus@cisco.com>

tests: pin pip version

New pip releases can break pip-tools. This commit pins the version of
pip used in the test virtualenv to prevent uncontrolled breakage.

This fixes the current issue in make test:
TypeError: __init__() got an unexpected keyword argument 'index_urls'

Change-Id: I3b7ecb31e651401ada0d357e2bf093c91c934565
Type: feature
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>

751e3f38 26-Jun-2019 Zhiyong Yang <zhiyong.yang@intel.com>

bonding: add support for numa-only in lacp mode

If numa-only is set, Only slaves on local numa node
transmit pkts if have at least one, otherwise the bond
interface works as usual.

CLI change:
create bond mode lacp [load-balance { l2 | l23 | l34 } {numa-only}]
[hw-addr <mac-address>] [id <if-id>]

The new member "u8 numa_only;" is also added to bond_create_if_args_t.

Type: feature

Change-Id: Icdccedafb0738d8c9d4a5acce909ce562428c071
Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>

88d29a92 17-Jul-2019 Matthew G Smith <mgsmith@netgate.com>

ip: admin change affects intf IPv4 addr routes

Type: feature

When admin status is changed on an interface, add or delete the
routes for the IPv4 addresses configured on that interface.

This is already being done for IPv6 interface addresses.

Change-Id: Ib1e7dc49c499921dd287e075640243520ffa5589
Signed-off-by: Matthew Smith <mgsmith@netgate.com>

41afb33e 16-Jul-2019 Neale Ranns <nranns@cisco.com>

ipsec: handle UDP keepalives

Type: feature

Change-Id: I87cc1168466f267e8c4bbec318401982f4bdf03a
Signed-off-by: Neale Ranns <nranns@cisco.com>

f7457521 13-Jul-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: fix error in VppDiedError exception

Discovered running test-debug job in CI.

- fix missing paren () around format value.
Type: test

Change-Id: Iebddd3035a435f8ad1cb1d6fa4e8e8c2d4ddaf96
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

79a32a4a 11-Jul-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: remove invalid arguments passed to papi

This changeset removes keys that are invalid in papi kwargs.

Type: test

Change-Id: I6568f91cd240dc1927540396210b429f6ce82c0a
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

719beb70 10-Jul-2019 Neale Ranns <nranns@cisco.com>

ip ipsec: Remove IPSec SPI-0 punt reason

Type: fix

There's no call for an SPI-0 punt reason with UDP encap, since
it's only with UDP encap that the ambiguity between IKE or IPSEC
occurs (and SPI=0 determines IKE).

Enhance the punt API to dum ponly the reason requested, so a client
can use this as a get-ID API

Change-Id: I5c6d72b03885e88c489117677e72f1ef5da90dfc
Signed-off-by: Neale Ranns <nranns@cisco.com>

6d1ba56f 10-Jul-2019 Neale Ranns <nranns@cisco.com>

gbp: An Endpoint can change sclass

Type: feature

Change-Id: I9d3a73a6a6048fa0189f7fa6306a638279977fcd
Signed-off-by: Neale Ranns <nranns@cisco.com>

1105766b 08-Jul-2019 juraj.linkes <juraj.linkes@pantheon.tech>

tests: Re-enable ipsec tests on ARM

Type: fix

* test_ipsec_tun_if_esp.TestIpsecGreTebIfEsp
* test_ipsec_esp.TestIpsecEspAll
add keepalive messages before each algo/engine to prevent test timeout

Change-Id: I726f3f9613bab02a65e65542cee494c68176ded7
Signed-off-by: juraj.linkes <juraj.linkes@pantheon.tech>

bfb9fe34 09-Jul-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: remove unused class attribute in VppTestCase

Identified in post-merge review.

Type: test

Change-Id: I46e19285479437561a43975ba9b5cb68f478736c
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

e28c87cd 05-Jul-2019 Neale Ranns <nranns@cisco.com>

gbp: Ownership of dynamically created vxlan-gbp tunnels managed via gbp_itf

Type: fix

This solves the ownership of vxlan-gbp tunnels. When the last reference of these goes away they need to be deleted. Currently there are two owners; gbp_itf via gef_itf and the lock held by the gbp_endpoint_location_t. The problem is that the
loc removes its reference whilst the fwd still holds the gbp_itf, and things go wrong.
This change moves the lifecycle management of the vxlan-gbp tunnel to the gbp_itf. When the last lock of the gbp_itf goes, so does the tunnel. now both the EP's loc and fwd can hold a lock on the gbp_itf and it's only removed when required.
The other change is the management of the 'user' of the gbp_itf. Since each user can enable and disable different features, it's the job of the gbp_itf to apply the combined set. determining a unique 'uesr' from the caller was near impossible, so I moved that to the gbp_itf, and return the allocated user, hence the 'handle' that encodes both user and interface.

The hash table maps from sw_if_index to pool index.

Change-Id: I4c7bf4c0e5dcf33d1c545f262365e69151febcf4
Signed-off-by: Neale Ranns <nranns@cisco.com>

24cbf77f 09-Jul-2019 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

quic: add back missing test timeout

Type: fix

Change-Id: Ic153b2bc754ee69949f6e5fd412c474f9ed722f0
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

0cbc71d7 03-Jul-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: treat all truthy env vars the same way

Introduce a new class, that returns the truthiness of a env var.
Since an environment variable is just a string, it would normally
be true if not unset. The new class returns true when the env var is
set to a string that would be considered true.

Type: test
Depends-on: https://gerrit.fd.io/r/20484

Change-Id: I90ef010156f6fec246bde5c0e208ced1869b180f
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

32dcd3b2 08-Jul-2019 Dave Barach <dave@barachs.net>

vppinfra: allocate bihash virtual space on demand

Reduces the vpp image virtual size by multiple gigabytes

Add a "show bihash" command which displays configured and current
virtual space in use by bihash tables.

Modify the .py test framework to call "show bihash" on test tear-down

Type: refactor

Change-Id: Ifc1b7e2c43d29bbef645f6802fa29ff8ef09940c
Signed-off-by: Dave Barach <dave@barachs.net>

888640a3 15-May-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

map gbp papi: match endianess of f64

clib_net_to_host_f64, clib_host_to_net_f64 are now implemented as '=',
https://gerrit.fd.io/r/#/c/20406/ set papi to match.
- all f64 api references are now wrapped with
clib_net_to_host_f64 or clib_host_to_net_f64.

IEEE f64 endianess is not defined. If clib_net_to_host_f64 and
clib_host_to_net_f64 are later defined in VPP as big-endian, it is
a single character change in the papi vpp_serializer.

Note: This breaks the api in a manner that would not be detected by
the flag day initiative. The scope is small. This only impacts map.api,
which applied the u64 transformation, while the gbp api uses '='.

The implementation of "=" raises issues for the papi socket implementation
if used between systems of differing endianess. See Vratko's comments.

- Added get_f64_endian_value() to api to allow client to verify endianess of f64's.

Type: fix
Depends-on: https://gerrit.fd.io/r/#/c/20484/

Change-Id: I00fc64a6557ba0190398df211aa0ea5c7eb101df
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

69a85b50 14-Jun-2019 Neale Ranns <nranns@cisco.com>

gbp: More unit tests

Type: test

Change-Id: I0a58cc19bdfb73eabadbf6eb49b57e8db96959b5
Signed-off-by: Neale Ranns <nranns@cisco.com>

03f1af23 26-Jun-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

api: Implement log_dump/log_details

- Replaces the need to screen scrape "show log".
- Adds an api to return the system time. When running over a socket, the
api client may have different time than the vpp host.

expected use:
vpp_time_before_command = self.vapi.show_vpe_system_time_ticks().vpe_system_time_ticks
<run some commands>
log_output = self.vapi.log_dump(start_timestamp=vpp_time_before_command)

Depends-on: https://gerrit.fd.io/r/20484
Depends-on: https://gerrit.fd.io/r/#/c/19581/

==============================================================================
TestVpeApi
==============================================================================
log_details(_0=838, context=3, timestamp_ticks=2.4954863503546518e+48, level=<vl_api_log_level_t.VPE_API_LOG_LEVEL_WARNING: 4>, timestamp=u'2019/07/04 20:35:41:281', msg_class=u'buffer', message=u'vlib_physmem_shared_map_create: clib_mem_create_hugetlb_fd: open: No such file or directory\n\n')
log_details(_0=838, context=3, timestamp_ticks=1.6101902879480125e+159, level=<vl_api_log_level_t.VPE_API_LOG_LEVEL_WARNING: 4>, timestamp=u'2019/07/04 20:35:41:281', msg_class=u'buffer', message=u'falling back to non-hugepage backed buffer pool')
test_log_dump_default (test_vpe_api.TestVpeApi) OK
log_details(_0=838, context=13, timestamp_ticks=2.4954863503546518e+48, level=<vl_api_log_level_t.VPE_API_LOG_LEVEL_WARNING: 4>, timestamp=u'2019/07/04 20:35:41:281', msg_class=u'buffer', message=u'vlib_physmem_shared_map_create: clib_mem_create_hugetlb_fd: open: No such file or directory\n\n')
log_details(_0=838, context=13, timestamp_ticks=1.6101902879480125e+159, level=<vl_api_log_level_t.VPE_API_LOG_LEVEL_WARNING: 4>, timestamp=u'2019/07/04 20:35:41:281', msg_class=u'buffer', message=u'falling back to non-hugepage backed buffer pool')
test_log_dump_timestamp_0 (test_vpe_api.TestVpeApi) OK
test_log_dump_timestamp_future (test_vpe_api.TestVpeApi) SKIP
test_show_vpe_system_time_ticks (test_vpe_api.TestVpeApi) SKIP

==============================================================================
TEST RESULTS:
Scheduled tests: 4
Executed tests: 4
Passed tests: 2
Skipped tests: 2
==============================================================================

Test run was successful

Type: feature

Change-Id: I893fc0a65f39749d2091093c2c604659aadd8447
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

81cfa9cf 04-Jul-2019 Neale Ranns <nranns@cisco.com>

vxlan-gbp: Decap ignores reserved bits

Type: fix

from the draft:
3. Backward Compatibility

VXLAN [RFC7348] requires reserved fields to be set to zero on
transmit and ignored on receive.

Change-Id: I98544907894f1a6eba9595a37c3c88322905630e
Signed-off-by: Neale Ranns <nranns@cisco.com>

3ffe6cad 26-Jun-2019 Florin Coras <fcoras@cisco.com>

sctp: move to plugins, disabled by default

Removed sctp buffer metadata from vnet/buffer.h, added it to the
plugin. Add registration APIs for plugin-based vlib_buffer_opaque /
opaque2 decoders, used by "pcap dispatch trace ..." for display in the
wireshark dissector.

Type:refactor

Not actively maintained.

Change-Id: Ie4cb6ba66f68b3b3a7d7d2c63c917fdccf994371
Signed-off-by: Florin Coras <fcoras@cisco.com>
Signed-off-by: Dave Barach <dave@barachs.net>

ba6abfa0 01-Jul-2019 Benoît Ganne <bganne@cisco.com>

gbp: add unit-tests for anonymous l3out

Type: test

Change-Id: Ib32c87b7f07c0552a6801a895332a0156c3c37f0
Signed-off-by: Benoît Ganne <bganne@cisco.com>

0f46e165 03-Jul-2019 Florin Coras <fcoras@cisco.com>

vcl: disable ldp bidirectional multiple socket tests

Type: fix

Change-Id: I83778d897b6aa37a37ffdfa1d0932bb5e95225e2
Signed-off-by: Florin Coras <fcoras@cisco.com>

3eea9de8 21-Jun-2019 Neale Ranns <nranns@cisco.com>

gbp: Consider data-plane learnt source better than control-plane

Type: feature

Change-Id: Ice8fc0da6450d2aa8ba63ca1277393ac3605aa2c
Signed-off-by: Neale Ranns <nranns@cisco.com>

c2ac2357 02-Jul-2019 Neale Ranns <nranns@cisco.com>

fib: allow route delete with no paths and multipath=0 to remove the
whole route

Type: fix
Fixes: 097fa66b

Change-Id: I017ab5797670eb278c27c6e306cd8cadaacddf9d
Signed-off-by: Neale Ranns <nranns@cisco.com>

b5ef26d1 03-Jul-2019 juraj.linkes <juraj.linkes@pantheon.tech>

tests: fix FORCE_FOREGROUND

Type: fix

Change-Id: I145f9984c1d944d5b7de0487e8b41ae4fdb95b6d
Signed-off-by: juraj.linkes <juraj.linkes@pantheon.tech>

063366eb 30-Jun-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: Have worker return immediately on bad executable

No reason to waste CI cycles if we know the test will not run.

See:
17:55:11 ==============================================================================
17:55:11 VPP Object Model Test
17:55:11 ==============================================================================
17:55:11 Exception in thread Thread-4:
17:55:11 Traceback (most recent call last):
17:55:11 File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
17:55:11 self.run()
17:55:11 File "/w/workspace/vpp-beta-verify-master-ubuntu1804/test/framework.py", line 1475, in run
17:55:11 stdout=subprocess.PIPE, stderr=subprocess.PIPE)
17:55:11 File "/w/workspace/vpp-beta-verify-master-ubuntu1804/test/run/venv/local/lib/python2.7/site-packages/subprocess32.py", line 617, in __init__
17:55:11 restore_signals, start_new_session)
17:55:11 File "/w/workspace/vpp-beta-verify-master-ubuntu1804/test/run/venv/local/lib/python2.7/site-packages/subprocess32.py", line 1415, in _execute_child
17:55:11 raise child_exception_type(errno_num, err_msg)
17:55:11 OSError: [Errno 2] No such file or directory: '/w/workspace/vpp-beta-verify-master-ubuntu1804/test/build/vom_test/vom_test'
17:55:11
17:55:11 17:55:11,328 Timeout! Worker did not finish in 120s
17:55:11 run C++ VOM tests ERROR [ temp dir used by test case: /tmp/vpp-unittest-VOMTestCase-vpMcWF ]
17:55:11

Type: fix

Change-Id: I3d8252807e98a09a8abd70de8a22517151f9d786
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

160c923f 19-Jun-2019 Neale Ranns <nranns@cisco.com>

gbp: VRF scoped contracts

Type: feature

Change-Id: I01772cfc3a0118a5c49bf346339788824e6931b2
Signed-off-by: Neale Ranns <nranns@cisco.com>

01b0a05e 30-Jun-2019 Neale Ranns <nranns@cisco.com>

igmp: accept packets that have more on the wire data than IGMP reports.

IGMPv3 sends a variable length of sources in a query. Today if the
amount of data on the wire does not exactly match that required for the
number of sources the packet is dropped.
Relax this check and instead accept the packet is the amount of wire
data is equal or greater than the number of sources.
Some devices on the wild internet pad small packets.

Type: feature

Change-Id: I102682814b38c0a0614d71816c9a286d90b834df
Signed-off-by: Neale Ranns <nranns@cisco.com>

e82a7ade 22-May-2019 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

quic : Use TX event for app read notification

Type: feature

Change-Id: I1846cdeb35f079249f66a0351aa244c540923a43
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

fea82607 27-Jun-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: handle TypeErrors in calls to VppDiedError

Type: test

Change-Id: I869768ed25efa3350f025fba329466db69805803
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

b4ca8b11 27-Jun-2019 Florin Coras <fcoras@cisco.com>

sctp: add option to enable/disable

Type: feature

By default sctp is disabled to avoid wasting cycles.

Change-Id: I1e2f764c7168b5c15062efbe5895de93dcc2614e
Signed-off-by: Florin Coras <fcoras@cisco.com>

28fa8cbc 21-Jun-2019 Aloys Augustin <aloaugus@cisco.com>

tests: pin python dependencies

This commit ensures that the tests always run with the exact same
version for all the Python dependencies. It uses pip-tools to achieve
that.

Our top-level dependencies are specified in the requirements.txt file.
From this file, pip-tools generates the requirements-{2,3}.txt file,
which pins all the versions of all the recursive dependencies, and is
used to install the packages in the test virtualenv.

To change or add a top-level dependency, update requirements.txt and run
make test as usual with python2 and python3. The requirements-{2,3}.txt
file will be updated and you can verify that nothing breaks. Then add
all requirements* files in your commit.

To refresh the python packages (i.e. get new versions of the recursive
dependencies, or of the dependencies that are not pinned in
requirements.txt), just run:
PYTHON=python2.7 make test-refresh-deps
PYTHON=python3.6 make test-refresh-deps
and this will update the requirements-{2,3}.txt files. Ideally we
should run this after each release.

Type: make
Change-Id: Ic533de3d06ec4019ff38f5231208da6f1025bfc7
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>

706079c9 27-Jun-2019 Aloys Augustin <aloaugus@cisco.com>

quic: fix tests

Reduce the amount of data sent to avoid a hang in the QUIC stack when
the fifos get full. This fixes the QUIC tests in debug mode while
https://gerrit.fd.io/r/c/19823/ is not merged.

Change-Id: I1ed4c5dc3d41c09bc674de808f3778a074b15454
Type: test
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>

44b0b07b 26-Jun-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: rename stream name in tests

PacketGenerator streams were named based on their sw_if_index but without
knowing that, it looked like it was paired with the interface instance value.

Reencode the name to encode the data in a clearer way.

20:48:12,859 CLI: packet-generator new pcap
/tmp/vpp-unittest-TestClassifierPBR-6DVQW2/pg0_in.pcap
source pg0 name pcap0-sw_if_index-1

Change-Id: I5b82193943fee0cf060900d73aaaaecca1247105
Type: style
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

22d009b4 26-Jun-2019 Neale Ranns <nranns@cisco.com>

vom: get the tests working again

Type: fix
Fixes: 097fa66b

Change-Id: Ib73714665e3325c7e1e8f939275933a4d219f96b
Signed-off-by: Neale Ranns <nranns@cisco.com>

c118a220 26-Jun-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: fix test-checkstyle failure in test_memif.py

Type: style

Change-Id: Ifea1fed5a6943605a6111afb33c54a8ff852d087
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

c47b97dd 06-Jun-2019 Benoît Ganne <bganne@cisco.com>

gbp: enforce same endpoint mac and ip src

During packet classification, make sure packets coming from an EP also
matches this specific EP IP address and vice-versa. This prevents and EP
to send a packet on behalf of another EP.

Type: fix

Change-Id: I30287644ec73b90d9b6913952a82b2baedf6a5ff
Signed-off-by: Benoît Ganne <bganne@cisco.com>

ab05508e 06-Jun-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

api: refactor format_vl_api_prefix_t return keys

format_vl_api_prefix_t returns a dict with keys 'address' and 'address_length',
but other format_vl_api_prefix functions return a dict with 'prefix', and 'len'.

Refactor all format_vl_api_prefix_t to return consistent keys 'address' and 'len'.

Type: refactor

Change-Id: I5f9558fc2da8742a303266e011102f5b2db80aad
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

941da4a2 18-Jun-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: set object_id for routes.

Object id's are used as keys in the object repository.
They need to be unique.

Also useful for debugging in log.txt.

Type: test

Change-Id: I69b5f3a7508918a5780ff8f20d27d4a3c34a5699
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

a608afee 26-Jun-2019 Neale Ranns <nranns@cisco.com>

vom: fix test build failure

Type: fix
Fixes: 097fa66b

Change-Id: Id5ae4029f27af6cba76d6527c0d3d7212ab84f3e
Signed-off-by: Neale Ranns <nranns@cisco.com>

7db35de5 25-Jun-2019 Jakub Grajciar <jgrajcia@cisco.com>

tests: fix memif tests

remote_test.py - Remove 'ret' arg from _remote_exec(), so that the function
always reads the reply from the pipe. (fix unmatched request/reply)

memif_test.py - Don't register VppIpRoute to VppObjectRegistry.

Type: fix

Change-Id: I8a51e7ffd68df5f379534f5ddd5ec9367a89be32
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>

9f1b3ff3 25-Jun-2019 Vratko Polak <vrpolak@cisco.com>

tests: one more ipfix flush cli to api replacement

Type: fix
Fixes: 21b83e96d6076cda01ee80343840bc1166557150

Change-Id: I8216127ddbbf3301d2602bab54dbc433233387a2
Signed-off-by: Vratko Polak <vrpolak@cisco.com>

1b534f5a 16-Jun-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: fix test_gbp.py.

A number of VppGbpContractRules were missing the hash_mode_t
and were being replaced by an optional kwarg.

Type: fix

Change-Id: I6ca03c93b69e4355c237a6c9402e1e178b701b21
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

464e1dcd 25-Jun-2019 Chore <s3m2e1.6star@gmail.com>

quic: test_quic.py style is fixed.

Type: test

Change-Id: I943f95ef740a0646b2da363c6a16dff1f4a2bb83
Signed-off-by: Chore <s3m2e1.6star@gmail.com>

5dd6a7b2 19-Jun-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: if vpp is dead, specify the test name in the output

'Exception: VPP is dead when setting up the test'
is more helpful with the test info.

Type: test

Change-Id: I6a262fdcf2ecb33aae17bef3d19745053a0bade8
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

47e77304 05-Jun-2019 Dave Wallace <dwallacelf@gmail.com>

quic: server create streams test case

Type: test

* Refactor quic_echo test app
* Add timinig capabilities
* Add multiple quic tests

Change-Id: I3302c66539b12c1375d1a0c6d46f9ff4c6f2b27c
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

21b83e96 24-Jun-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

api: implement ipfix_flush

-Migrate tests to api and cleanup:
'# FIXME this should be an API call' in tests.

Type: feature

Change-Id: I715f9f8acc0f2af9c974ea221b2aea46692a6218
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

496b0dee 20-Jun-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: refactor VppDiedError.

- Move Exception into same module as TestCase.
- Move the error reporting logic inside the error.
- Allows testing of the returncode and signal_name for tests to consume.
- Fix the signal reporting code:
VppDiedError: VPP subprocess died unexpectedly with returncode -6 [unknown].
displays as:
VppDiedError: VPP subprocess died unexpectedly with return code: -6 [SIGABRT].

Type: test

Change-Id: I8488ab318a596c9b737308829cedfb7e96e57302
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

2f5fd365 20-Jun-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: move output from CI results and put in log

NAT session details are output to the test results.

Twice NAT44 OK
Acquire twice NAT44 addresses from interface OK
21:10:42,661 NAT44 sessions:
-------- thread 0 vpp_main: 1 sessions --------
172.16.1.2: 0 dynamic translations, 1 static translations
i2o 172.16.1.2 proto tcp port 8080 fib 0
o2i 10.0.0.3 proto tcp port 80 fib 0
external host o2i 172.16.2.2:4567 i2o 10.0.1.3:42296
index 1869
last heard 97.99
total pkts 2, total bytes 80
static translation
load-balancing
twice-nat

Twice NAT44 local service load balancing OK
NAT44 translate packet with unknown protocol OK

Type: test

Change-Id: I932a4a1133d597bb82da6e04f2ea833094a481da
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

3a9f11e6 19-Jun-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: add sudo to gdb commands

Prepend sudo to the gdb command line.

Type: test

Change-Id: I09013c3ca512e26de0c46c02f643b21064ba499c
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

c09b7fd0 04-Jun-2019 Klement Sekera <ksekera@cisco.com>

buffers: fix crash

this change is being made to fix a crash when current_data < 0 in buffer
linearization function

Ticket: N/A
Type: fix
Fixes: f883f6a1132ad4bb7aa9d9a79d420274fbcf3b64

Change-Id: Ia4ede823f673780e0c30d075b091db42e183650d
Signed-off-by: Klement Sekera <ksekera@cisco.com>

bc764c8b 19-Jun-2019 Neale Ranns <nranns@cisco.com>

l2: BD ARP termination entry API update

Type: refactor

Change-Id: I492b6e88acadf0ab0e4d7b1c0c5d1cab84c1726f
Signed-off-by: Neale Ranns <nranns@cisco.com>

7d7e3e80 18-Jun-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: send packet output to log - test_punt.py

Move output to log.txt.
11:51:58,111 Verifying against 3 packets in verify_udp_pkts.
11:51:58,111 ###[ Ethernet ]###
dst = 02:fe:4c:62:06:e5
src = 02:01:00:00:ff:02
type = 0x800
\###[ IP ]###
version = 4
ihl = 5
tos = 0x0
len = 128
...

Type: test

Change-Id: Iebaf34c2ac16e7fa8dffbdeadf18ab6c5f4c7494
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

c79b32de 18-Jun-2019 Steven Luong <sluong@cisco.com>

tests: fix checkstyle failure in test_stats_client.py

New job submitted to Jenkins reported checkstyle failure in
test_stats_client.py. It needs a blank line in one place and line is
too long in another place.

Type: fix

Change-Id: I9b18df1df449a287570d614d6c5b514ceb88480c
Signed-off-by: Steven Luong <sluong@cisco.com>

b54a599f 18-Jun-2019 Florin Coras <fcoras@cisco.com>

ipsec: fix ipv6 tunnel protect tests

Type: fix

Change-Id: I1f8007ae659097152046aa1396cc23f126e29018
Signed-off-by: Florin Coras <fcoras@cisco.com>

c87b66c8 07-Feb-2019 Neale Ranns <nranns@cisco.com>

ipsec: ipsec-tun protect

please consult the new tunnel proposal at:
https://wiki.fd.io/view/VPP/IPSec

Type: feature

Change-Id: I52857fc92ae068b85f59be08bdbea1bd5932e291
Signed-off-by: Neale Ranns <nranns@cisco.com>

097fa66b 01-May-2018 Neale Ranns <neale.ranns@cisco.com>

fib: fib api updates

Enhance the route add/del APIs to take a set of paths rather than just one.
Most unicast routing protocols calcualte all the available paths in one
run of the algorithm so updating all the paths at once is beneficial for the client.
two knobs control the behaviour:
is_multipath - if set the the set of paths passed will be added to those
that already exist, otherwise the set will replace them.
is_add - add or remove the set

is_add=0, is_multipath=1 and an empty set, results in deleting the route.

It is also considerably faster to add multiple paths at once, than one at a time:

vat# ip_add_del_route 1.1.1.1/32 count 100000 multipath via 10.10.10.11
100000 routes in .572240 secs, 174751.80 routes/sec
vat# ip_add_del_route 1.1.1.1/32 count 100000 multipath via 10.10.10.12
100000 routes in .528383 secs, 189256.54 routes/sec
vat# ip_add_del_route 1.1.1.1/32 count 100000 multipath via 10.10.10.13
100000 routes in .757131 secs, 132077.52 routes/sec
vat# ip_add_del_route 1.1.1.1/32 count 100000 multipath via 10.10.10.14
100000 routes in .878317 secs, 113854.12 routes/sec

vat# ip_route_add_del 1.1.1.1/32 count 100000 multipath via 10.10.10.11 via 10.10.10.12 via 10.10.10.13 via 10.10.10.14
100000 routes in .900212 secs, 111084.93 routes/sec

Change-Id: I416b93f7684745099c1adb0b33edac58c9339c1a
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
Signed-off-by: Ole Troan <ot@cisco.com>
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

92e30821 15-Jun-2019 Ole Troan <ot@cisco.com>

stats: fix memory leakage when adding / deleting interfaces

This fixes two leaks in registering errors in the stats segment.
- The error name created by vlib_register_errors() was not freed.
- Duplicate error names (when interface readded) was added to the vector.

This fix also adds memory usage statistics for the statistics segment
as /mem/statseg/{used, total}

Change-Id: Ife98d5fc5baef5bdae426a5a1eef428af2b9ab8a
Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>

e849865f 17-Jun-2019 Klement Sekera <ksekera@cisco.com>

ip: reassembly-separate feature and custom code

This change is made fix a crash, because is_feature flag semantics turn
out to be different from "custom app code" semantics. Introduce a flag
which custom plugins/apps can use to instead of tying that code to
is_feature flag.

Change-Id: Ief5898711e68529f9306cfac54c4dc9b3650f9e3
Ticket: N/A
Type: fix
Fixes: 21aa8f1022590b8b5caf819b4bbd485de0f1dfe5
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Signed-off-by: Ole Troan <ot@cisco.com>

a6bee0a1 14-Jun-2019 Neale Ranns <nranns@cisco.com>

ipsec: Correctly rewind the buffer to the IP header when punting UDP encapped SPI-0 packets

Type: fix
Fixes: b71fa75d48

Change-Id: I2d81b373f7659e702759939c096b315afa36f621
Signed-off-by: Neale Ranns <nranns@cisco.com>

7a99823c 07-Jun-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: filter sw_interface_dump in tests.

Type: test

Change-Id: I92921444ef6b0e574701398cf57971c9ecc1cc91
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

52cd4961 05-Jun-2019 Neale Ranns <nranns@cisco.com>

bfd: UT for BFD session over GRE tunnel

Signed-off-by: Neale Ranns <nranns@cisco.com>

Adding UT for BFD over GRE tunnel.

Ticket: none
Type: test

Change-Id: I03eca4a0c7114cdc16fde9be4cd6db6216b8c845
Signed-off-by: Neale Ranns <nranns@cisco.com>

b02d230d 07-Jun-2019 Neale Ranns <nranns@cisco.com>

VOM-test: fix the UT post BVI and Bridge-domain changes

Change-Id: Ibd9059e616f46f7017e397262bf4c0606d81eb0c
Signed-off-by: Neale Ranns <nranns@cisco.com>

499ea648 15-Mar-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: framework gracefully handle 'VppTransportShmemIOError'

Catches:
----
Traceback (most recent call last):
File "/vpp/test/framework.py", line 593, in tearDown
self.logger.info(self.vapi.ppcli("api trace save %s" % api_trace))
File "/vpp/test/vpp_papi_provider.py", line 413, in ppcli
return cli + "\n" + str(self.cli(cli))
File "/vpp/test/vpp_papi_provider.py", line 402, in cli
r = self.papi.cli_inband(cmd=cli)
File "/vpp/src/vpp-api/python/vpp_papi/vpp_papi.py", line 100, in __call__
return self._func(**kwargs)
File "/vpp/src/vpp-api/python/vpp_papi/vpp_papi.py", line 414, in f
return self._call_vpp(i, msg, multipart, **kwargs)
File "/vpp/src/vpp-api/python/vpp_papi/vpp_papi.py", line 634, in _call_vpp
msg = self.transport.read()
File "/vpp/src/vpp-api/python/vpp_papi/vpp_transport_shmem.py", line 120, in read
raise VppTransportShmemIOError(rv, 'vac_read failed')
VppTransportShmemIOError: [Errno -1] vac_read failed
----

Change-Id: I767e48c4d03081eb5df6a8aa67da7e192d25e4cc
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

20344a1e 06-Jun-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: fix broken test test_gtpu.py TestGtpuUDP

Test failing due to call to super.tearDown in setUp.

==============================================================================
FAIL: test UDP ports
------------------------------------------------------------------------------
Traceback (most recent call last):
File "/vpp/test/test_gtpu.py", line 77, in test_udp_port
self._check_udp_port_ip4(False)
File "/vpp/test/test_gtpu.py", line 48, in _check_udp_port_ip4
self.assertEqual(err, self.ip4_err + 1)
AssertionError: 0L != 1


Type: fix

Change-Id: Iec4ef5edd3ee11bcd962b77cc8159dee9cb15687
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

92207750 03-Jun-2019 Neale Ranns <nranns@cisco.com>

IP-Punt-redirect: allow the use of a FIB path to describe how to
redirect

Change-Id: I2a3ba2a3d73ea8511e3a511855b041432328f0a8
Signed-off-by: Neale Ranns <nranns@cisco.com>

286921ee 05-Jun-2019 Benoît Ganne <bganne@cisco.com>

gbp: fix lpm classification with vlan

Fix GBP LPM packet classification in the presence of a VLAN header.

Change-Id: I2ff63b34f7475d696b10b5a245ff802bbb1ff01a
Signed-off-by: Benoît Ganne <bganne@cisco.com>

59fa121f 22-May-2019 Neale Ranns <nranns@cisco.com>

L3 cross connect

- all packets input on interface X are load-balanced over the set of
paths provided.

Change-Id: Ic27cb88c4cd5d6d3462570632daff7a43d5a652d
Signed-off-by: Neale Ranns <nranns@cisco.com>

e6be7023 04-Jun-2019 Neale Ranns <nranns@cisco.com>

IPSEC: some CLI fixes

Change-Id: I45618347e37440263270baf07b2f82f653f754a5
Signed-off-by: Neale Ranns <nranns@cisco.com>

4b58a86d 28-May-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

Tests: simple refactor in vpp_pg_interface.

Pull common code into a single method.

Type: refactor

Change-Id: Ic540d23eebbd17f838ed7a1a9dee80815a27847c
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

68577d29 04-Jun-2019 Neale Ranns <nranns@cisco.com>

punt: fix the set_punt API/CLI which was rejecting valid ports

add a UT for the API

Change-Id: I93fb6ec2c5f74b991bf7f229250a30c0395b8e24
Signed-off-by: Neale Ranns <nranns@cisco.com>

b538dd86 21-May-2019 Neale Ranns <nranns@cisco.com>

Punt: specify packets by IP protocol Type

Change-Id: I0c2d6fccd95146e52bb88ca4a6e84554d5d6b2ed
Signed-off-by: Neale Ranns <nranns@cisco.com>

288e0936 28-May-2019 Ole Troan <ot@cisco.com>

ipip: refactor ipip.api with explicit types

Use explicit types vl_api_address/prefix in ipip.api.

Change-Id: Ib3133cebdbe4437742924efd49cde4009c4cc31b
Type: refactor
Signed-off-by: Ole Troan <ot@cisco.com>

ebae4196 23-May-2019 Jakub Grajciar <jgrajcia@cisco.com>

gtpu: unit-test check udp ports

Change-Id: I3efbbb1aefb43ecdf7016541b97343f9ca41f842
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>

02d576b7 28-May-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

Tests: vpp_pg_interface. Don't rewrite Dot1AD ethertype.

Type: Refactor

Change-Id: I42f65bcc76e4b0fcfbfe051c1c382a940bff1b3a
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

6aa58b73 16-May-2019 Klement Sekera <ksekera@cisco.com>

make test: fix packet counter assert

Change-Id: Ic6e6ac0629bbf07f7dad1803a85aabfdccbc2035
Signed-off-by: Klement Sekera <ksekera@cisco.com>

4d376f67 24-May-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

map: Use vl_api_string macros.

* Add optional tag to api call in tests
* Add test for map_domain_dump() for api code coverage.

Type: fix

Change-Id: I2f7784aecdca4bf9e94de3319f959786e3d2c607
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

f34f1a42 26-May-2019 Jakub Grajciar <jgrajcia@cisco.com>

l2tp: l2tp-decap-local don't accept packets unless configured

Change-Id: I2e48eb772dc44912192d0684b8ee631d8d975e9e
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>

a618e208 07-May-2019 Alexandre Poirrier <apoirrie@cisco.com>

make test: add option in pg interfaces for duplicating packets

Change-Id: Ia6d6de5de0414291d5637fb4b8c1480925f646d3
Signed-off-by: Alexandre Poirrier <apoirrie@cisco.com>

50f0ac0f 15-May-2019 Neale Ranns <nranns@cisco.com>

Punt: socket register for exception dispatched/punted packets based on reason

- add to the Punt API to allow different descriptions of the desired packets: UDP or exceptions
- move the punt nodes into punt_node.c
- improve tests (test that the correct packets are punted to the registered socket)

Change-Id: I1a133dec88106874993cba1f5a439cd26b2fef72
Signed-off-by: Neale Ranns <nranns@cisco.com>

9080096f 24-May-2019 Dave Barach <dave@barachs.net>

Add an ip6 local hop-by-hop protocol demux table

Add a minimal ip6 hbh header processing test.

ioam plugin: use ip6_local_hop_by_hop_register_protocol() in
udp_ping_init().

Please test the ioam plugin udp_ping path AYEC, so I can
publish the patch.

Change-Id: I74e35276d6c38c31022026cfd238fad5e4a54485
Signed-off-by: Dave Barach <dave@barachs.net>

f03becac 24-May-2019 Jakub Grajciar <jgrajcia@cisco.com>

gre: don't register gre input nodes unless a gre tunnel is created

Change-Id: Id5c0f420e32e0504cea660fed2013f3ad28088aa
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>

cbd0824d 26-May-2019 Neale Ranns <nranns@cisco.com>

IPIP tunnel: use address types on API

Change-Id: Ida6a8f96bd858246e993250087bed45e7084ede1
Signed-off-by: Neale Ranns <nranns@cisco.com>

34641f2d 22-May-2019 Klement Sekera <ksekera@cisco.com>

make test: fix bug due to concurrent commits

Change-Id: I912745950fe6e3f1688ef66b430ef86cdddd04cd
Signed-off-by: Klement Sekera <ksekera@cisco.com>

1f37a7bd 20-May-2019 Dave Wallace <dwallacelf@gmail.com>

make test: Fix QUIC External apps transfer test

Change-Id: Idc4cd1d3b29d4656f2df998162e6f99116518a58
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

233e4681 16-May-2019 Ole Troan <ot@cisco.com>

stats: support multiple works for error counters

The current code only allowed access to the main thread error counters.
That is not so useful for a multi worker instance.
No return a vector indexed by thread of counter_t values.

Type: fix

Change-Id: Ie322c8889c0c8175e1116e71de04a2cf453b9ed7
Signed-off-by: Ole Troan <ot@cisco.com>

f4805078 17-May-2019 Vladimir Ratnikov <vratnikov@netgate.com>

openssl plugin 3des routine iv_len fix

Since 3DES has 8 bytes of initialization vector and
code contains hardcode for 16 bytes, check added to
determine if crypto algorythm is 3DES_CBC and set
corresponding iv_len param

Change-Id: Iac50c8a8241e321e3b4d576c88f2496852bd905c
Signed-off-by: Vladimir Ratnikov <vratnikov@netgate.com>

3a343d42 16-May-2019 Klement Sekera <ksekera@cisco.com>

reassembly: prevent long chain attack

limit max # of fragments to 3 per packet by default
add API option to configure the limit at runtime

Change-Id: Ie4b9507bf5c6095b9a5925972b37fe0032f4f9e8
Signed-off-by: Klement Sekera <ksekera@cisco.com>

b7658201 17-May-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

Tests: Refactor. Remove copies of enums.

Use the enums provided from the api definitions instead.

Change-Id: I43b7591df920c984e439efc4b3ec3c4121c539d8
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

0d144c78 16-May-2019 Dave Wallace <dwallacelf@gmail.com>

make test: Add QUIC serial transfer test

Change-Id: I7ed68dd199daa31269d45d67e0a4fa632e1a08d1
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

9673e3e6 11-May-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

Tests: Raise exception if API cli_inband command fails.

* Configure tests to raise exception if cli_inband fails.
* Fix failing tests.
* Add filename detail to pcap.stat clib_error_return for debugging.

Note: this change identifies spurious issues with packet-generator such as:
CliFailedCommandError: packet-generator capture: pcap file
'/tmp/vpp-unittest-Test6RD-v09RPA/pg0_out.pcap' does not exist.

These issues resolve themselves on remaining test passes.

Change-Id: Iecbd09daee954d892306d11baff3864a43c5b603
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

fe52dea0 18-Apr-2019 Mohsin Kazmi <sykazmi@cisco.com>

gbp: Add unit tests for contracts

Change-Id: Ib6615739b1db44b7788f462196cd477b6e23d67e
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>

4271c971 14-May-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: refactor. Replace literal constant w/ named constant.

* change literal packet count vlaues from 65 to a named constant of 67.
(This value was recommended to exercise single, dual, and quad loops)

Change-Id: Ieb1738dddacb8b6ea7fa25883032ac01a98399e1
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

19542299 18-Mar-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

vpp_papi: remove dependency on environment var. VPP_API_DIR.

Change-Id: I9e3af8674e8aae27079fd03f6286f165d777814f
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

38404db1 14-May-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: test_pipe.py. Fix missing import.

* Fix missing import (does not impact 'make test', fixes issue
running under 'make test-shell')

Change-Id: I634378a8809df5c5b9671555932e797d04a2abbb
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

80b5e4f6 09-May-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: fix TestMPLSPIC tests in test_mpls.py.

* Corrected stray ARP/ND packets in captures interfering with test results.
* Added tests to match counts of recv'd pkts against sent.
* Changes the number of packets to 67 for exercising single,
dual, and quad-loops.

Change-Id: I9147b8578988607ea4444741d10854e4d8683191
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

07c0a9d0 13-May-2019 Dave Wallace <dwallacelf@gmail.com>

make test: vcl fix OSError exception handling

Change-Id: I4bf7da6752d85e384a8e8f3110964c4b142edcb5
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

3bffd4be 13-May-2019 Dave Wallace <dwallacelf@gmail.com>

make test: Add QUIC external echo transfer test

- Add namespace configuration to echo_client
- Add external echo transfer testcase
- Refactor quic test class to reduce unnecessary method args
- Increase default fifo size to 64 and data transfer to 10 mbytes
- Remove sleep() between starting internal server & client apps

Change-Id: Ia9de46a314d58e7809f005f6a5211760e63789bf
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

72d8758f 09-May-2019 Ole Troan <ot@cisco.com>

cli: Add return value in cli_inband

Even when a CLI command called through the cli_inband API failed
the API would return 0 (SUCCESS). This patch fixes that,
but since most CLI handlers return error->code == 0,
in most failure cases it will return -1 (UNSPECIFIED ERROR).

Type: fix

Change-Id: Ic83f3b23e8e8954bb8aa211301baba24e8c20ef6
Signed-off-by: Ole Troan <ot@cisco.com>

bff9f2f2 09-May-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: test/vpp_papi_provider.py Specify exception to catch.

Change-Id: If936b198bcac7a317d52f958561c3e19d158450a
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

7d31ab2a 08-May-2019 Dave Barach <dave@barachs.net>

add mactime plugin unit / code coverage tests

The unit and code coverage tests are boring. The rest of the patch
involves test and packet-generator infra cleanups.

Teach the "make test-xxx" family of targets to set the api test plugin
path correctly, to make "binary-api <api-message-name> <args>" debug
CLI commands work correctly in the "make test"
environment. Unfortunately involves both the top-level and test
Makefiles.

Add a minor pg cli feature, a CLI to manually set
s->sw_if_index[VLIB_TX].

Consider the case where one configures an interface with both a
device-input and an output feature. To test the output feature using
the pg, it's necessary to inject packets into the interface output
node with both b->sw_if_index[VLIB_TX] and b->sw_if_index[VLIB_RX] set
correctly. For example:

packet-generator new {
name tx
limit 15
size 128-128
interface local0 # rx: device input feature not configured on local0
tx-interface loop0 # tx: output node requires b->sw_if_index[VLIB_TX]
node loop0-output
data {
hex 0x01005e7ffffa000dead0000008000102030405060708090a0b0c0d0e0f0102030405
}
}

Fix a longstanding bug in the packet generator stream setup. Remove
kludges which set b->sw_if_index[VLIB_TX] to ~0 [in multiple places]
instead of using the stream value s->sw_if_index[VLIB_TX], and setting
THAT datum correctly.

Change-Id: I1097a18e8db73661ded6b822c1d718f7e5cf36ed
Signed-off-by: Dave Barach <dave@barachs.net>

211b28a1 09-May-2019 Dave Wallace <dwallacelf@gmail.com>

make test: add quic multistream test case

- Also refactor test_quic.py to prepare for
external echo tests & ipv6 tests

Change-Id: I7dff60b375ed67d920e73294e0bf491cd3206d56
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

f40ee3a2 06-May-2019 Klement Sekera <ksekera@cisco.com>

make test: introduce COREDUMP_COMPRESS option

setting COREDUMP_COMPRESS=y (or =1) indicates that any core file
is to be compressed by the test framework unless DEBUG=core is set.

Change-Id: Ib0d6d30a7398dbeb6ab5e5dbb411bf5c641b5206
Signed-off-by: Klement Sekera <ksekera@cisco.com>

c7834e05 02-Mar-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

VPP-1508: Fix zip() under python3.

Under py3, zip() returns an iterator. Fix so no longer needed in a list contex.

Change-Id: I64b4560d990686cc87fd26d703030f9fb2494f12
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

749a89c3 07-May-2019 Dave Barach <dave@barachs.net>

Improve lcov reported code coverage stats

Remove unused code from the vppinfra build
Add a bihash test case

Change-Id: Ia930309efa28620dd1c0d69aaec432e2d8bd962c
Signed-off-by: Dave Barach <dave@barachs.net>

cc991497 07-May-2019 Alexandre Poirrier <apoirrie@cisco.com>

make test: add python3 compatibility in extend_packet

Change-Id: I342ff8e44e0d1ebd9f2c8cc386372b2f5a731080
Signed-off-by: Alexandre Poirrier <apoirrie@cisco.com>

3e9b7a21 10-Apr-2019 Dave Wallace <dwallacelf@gmail.com>

make test: Fix truncated core file

- Wait for coredump to complete before killing VPP.

Change-Id: Ib7b96b339f796f9ef7e0eadff81d181464b8a03a
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

ad64687e 06-May-2019 Dave Barach <dave@barachs.net>

gcov / test framework: sigterm not sigkill

Otherwise, gcov data vanishes without a trace.

Add a __gcov_flush() call to the unix signal handler, under #ifdef
CLIB_GCOV. Add -DCLIB_GCOV to vpp_gcov_TAG_CFLAGS.

Change-Id: I2726e671b26dfbe7fae88f46a8207bb2b5106884
Signed-off-by: Dave Barach <dave@barachs.net>

04bb642d 04-May-2019 Filip Varga <fivarga@cisco.com>

NAT: VPP-1646 test case asserts

Change-Id: I466cea5cbe82a34d4b0b20a76bf5df4d529670e4
Signed-off-by: Filip Varga <fivarga@cisco.com>

f4749ca4 25-Apr-2019 Filip Varga <fivarga@cisco.com>

NAT: VPP-1661 - test case cleanup and refactoring

Change-Id: I0eb85252d4b489ba25dcf59252e2bcf3b0cd5c6a
Signed-off-by: Filip Varga <fivarga@cisco.com>

9a29f795 01-May-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

vpp_papi_provider.py: update defautmapping.

Add missing create_bvi/delete_bvi to defaultmapping.
Correct typo in interface.api documentation.

Change-Id: I8aa187f3b33c21fb2fcd55311ef79777c81d94d4
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

4cb83811 24-Apr-2019 Damjan Marion <damarion@cisco.com>

crypto_ipsecmb: use pre-expanded keys

Change-Id: Ie1d34b7e71554516595e0cd228e2cd54a3b8d629
Signed-off-by: Damjan Marion <damarion@cisco.com>

a829b139 24-Apr-2019 Damjan Marion <damarion@cisco.com>

ipsec: drop runts in esp-decrypt

Change-Id: Id7fcaf8590f9f2dcccdebea0ad31c7ecd1cbc8af
Signed-off-by: Damjan Marion <damarion@cisco.com>

5e6f7348 05-Apr-2019 Mohsin Kazmi <sykazmi@cisco.com>

l2: Add support for arp unicast forwarding

Change-Id: I79fc55f36a9b83957f84619bdf8cef08acc8ec24
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>

dd1e3e78 15-Apr-2019 Filip Varga <fivarga@cisco.com>

NAT: VPP-1531 api cleanup & update

Change-Id: I2492400a67b39a3adbc24ab7cf1ba17a409e95a8
Signed-off-by: Filip Varga <fivarga@cisco.com>

4ff09ae3 15-Apr-2019 Ole Troan <ot@cisco.com>

API: Python and Unix domain socket improvement

Handle the case where buffer overflows.
Then SOCK_SEQPACKET assumption that multiple API messages
are not returned by recv() is broken. Use SOCK_STREAM for
API exchanges instead.

Add support for running tests over sockets.
make test SOCKET=1

Change-Id: Ibe5fd69b1bf617de4c7ba6cce0a7c2b3f97a2821
Signed-off-by: Ole Troan <ot@cisco.com>

89fec713 23-Apr-2019 Ole Trøan <otroan@employees.org>

Revert "NAT: VPP-1531 api cleanup & update"

This reverts commit bed1421b9f1b3643d93384084972337b596aec73.

/vpp/master3/src/plugins/nat/nat_api.c: In function ‘send_nat_worker_details’:
/vpp/master3/src/vppinfra/clib.h:62:33: error: division ‘sizeof (u8 * {aka unsigned char *}) / sizeof (u8 {aka unsigned char})’ does not compute the number of array elements [-Werror=sizeof-pointer-div]
#define ARRAY_LEN(x) (sizeof (x)/sizeof (x[0]))
^
/vpp/master3/src/plugins/nat/nat_api.c:205:43: note: in expansion of macro ‘ARRAY_LEN’
rmp = vl_msg_api_alloc (sizeof (*rmp) + ARRAY_LEN (w->name) - 1);
^~~~~~~~~

Change-Id: Ie82672c145fb2f6580827f95e535435307bc7a23
Signed-off-by: Ole Troan <ot@cisco.com>

bed1421b 15-Apr-2019 Filip Varga <fivarga@cisco.com>

NAT: VPP-1531 api cleanup & update

Change-Id: I519d7efc8ee3c86381d96be2e2a46017cd948895
Signed-off-by: Filip Varga <fivarga@cisco.com>

1b582b8e 19-Apr-2019 Neale Ranns <nranns@cisco.com>

IPSEC: IPv6 ESP transport mode incorrect packet length and checksum (VPP-1654)

Change-Id: Ia3474e5bfea5764eae9b2987bf78296535df6778
Signed-off-by: Neale Ranns <nranns@cisco.com>

f682facb 19-Apr-2019 Florin Coras <fcoras@cisco.com>

svm: move fifo tests to a separate file

Change-Id: Iac9ac9f5a6873aae1882316af4f6c919788a0cef
Signed-off-by: Florin Coras <fcoras@cisco.com>

d207fd7e 19-Apr-2019 Neale Ranns <nranns@cisco.com>

IPSEC: ESP IPv6 transport mode payload length incorrect (VPP-1653)

Change-Id: I8977100d7a22b50260858bd1ea9db419b53284ff
Signed-off-by: Neale Ranns <nranns@cisco.com>

5a8844bd 16-Apr-2019 Neale Ranns <nranns@cisco.com>

GRE: API update

Change-Id: I5010cd34123c6498230dedac6ba8dd774a1085f9
Signed-off-by: Neale Ranns <nranns@cisco.com>

06a6a30f 17-Apr-2019 Florin Coras <fcoras@cisco.com>

tls: allow engines to customize close

Change-Id: I11ac3e4f59206902e5dfc326f815c877c5dd6643
Signed-off-by: Florin Coras <fcoras@cisco.com>

d6c9e82f 17-Apr-2019 Neale Ranns <nranns@cisco.com>

IPSEC: tunnel rekey fix and test (VPP-1652)

Change-Id: I1c2b3e40c689bedcdcea7887792b6b6b6aeb48d5
Signed-off-by: Neale Ranns <nranns@cisco.com>

317b8e08 17-Apr-2019 Florin Coras <fcoras@cisco.com>

vcl/session: tx notifications for cut-thru sessions

Change-Id: I076c753e419bbb177d2d28609190715e9895b398
Signed-off-by: Florin Coras <fcoras@cisco.com>

6407ba56 04-Apr-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

api: Add to interface crud - read by sw_if_index.

Change-Id: I02c857da4cf6da5e0e55c1e48b63716af7ade0a9
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

80f6fd53 16-Apr-2019 Neale Ranns <nranns@cisco.com>

IPSEC: Pass the algorithm salt (used in GCM) over the API

Change-Id: Ia8cea13f7b937294e6a080a55fb2ceff30063acf
Signed-off-by: Neale Ranns <nranns@cisco.com>

d8cfbebc 16-Apr-2019 Neale Ranns <nranns@cisco.com>

crypto-ipsecmb: enable GCM

Change-Id: I670d7899bcc63a419daf481167dc445a6386cce8
Signed-off-by: Neale Ranns <nranns@cisco.com>

e60dfd7a 16-Apr-2019 Mohsin Kazmi <sykazmi@cisco.com>

gbp: Add support for allow sclass/dclass 1

Change-Id: I51f61a399e3eace93011f9431cbd7968e9be627c
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>

47feb114 11-Apr-2019 Neale Ranns <nranns@cisco.com>

IPSEC: support GCM in ESP

Change-Id: Id2ddb77b4ec3dd543d6e638bc882923f2bac011d
Signed-off-by: Neale Ranns <nranns@cisco.com>

49e7ef60 10-Apr-2019 Neale Ranns <nranns@cisco.com>

IPSEC: ESP with ESN tests and fixes

Change-Id: Ie42b26e6d5cdb7b23f370ea2933c65079e8d1089
Signed-off-by: Neale Ranns <nranns@cisco.com>

21ada3bd 11-Apr-2019 Neale Ranns <nranns@cisco.com>

IPSEC-MB: Use random & non-repeating IV (VPP-1642)

hard code IV and key lengths based on cipher.
Init IV from random data, use AES instruction to rotate.

Change-Id: I13a6507d12267b823c528660a903787baeba47a0
Signed-off-by: Neale Ranns <nranns@cisco.com>

90cf21b5 13-Mar-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

Tests: Refactor tearDown show command logging, add lifecycle markers.

This change adds a consistent interface for adding test-specific show commands to
log.txt.

It also adds log markers for the execution of setUp[Class], tearDown[Class]
in the logs.

Change-Id: I7d42e396e594a59e866a7d55dac0af25548e657a
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

3f86ca3e 10-Apr-2019 Dave Wallace <dwallacelf@gmail.com>

make test: fix redundant setUp() in template_ipsec.py

Change-Id: I81b3888816b064bd6bf0f38f5380dae93d7bb349
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

92e93844 08-Apr-2019 Neale Ranns <nranns@cisco.com>

crypto: Intel IPSEC-MB engine

A plugin to use Intel IPSec MB library as a VPP crypto engine

This changes uses concepts from:
https://gerrit.fd.io/r/#/c/17301/
hence that author's work is acknowledge below

Change-Id: I2bf3beeb10f3c9706fa5efbdc9bc023e310f5a92
Signed-off-by: Neale Ranns <nranns@cisco.com>
Signed-off-by: Klement Sekera <ksekera@cisco.com>

b063ad00 10-Apr-2019 Dave Wallace <dwallacelf@gmail.com>

make test: Initial QUIC test

- QUIC echo client/server transfer test

Change-Id: I69874975c9789fe9b4e85c5993bf09b7255d87d0
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

4f33c80c 10-Apr-2019 Neale Ranns <nranns@cisco.com>

IPSEC: for each engine and algorithm tests

refactor the IPSEC tests a bit so we can parameterise
the setup.

Change-Id: I777e5eb8f29ca1dce3dd273ebd05dae5846790af
Signed-off-by: Neale Ranns <nranns@cisco.com>

7f9b7f9f 13-Mar-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

Tests Cleanup: Fix missing calls to setUpClass/tearDownClass.

Continuation/Part 2 of https://gerrit.fd.io/r/#/c/17092/

Change-Id: Id0122d84eaf2c05d29e5be63a594d5e528ee7c9a
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

2e1c8967 10-Apr-2019 Ole Troan <ot@cisco.com>

API: Fix shared memory only action handlers.

Some API action handlers called vl_msg_ai_send_shmem()
directly. That breaks Unix domain socket API transport.

A couple (bond / vhost) also tried to send a sw_interface_event
directly, but did not send the message to all that had
registred interest. That scheme never worked correctly.
Refactored and improved the interface event code.

Change-Id: Idb90edfd8703c6ae593b36b4eeb4d3ed7da5c808
Signed-off-by: Ole Troan <ot@cisco.com>

796c84b2 28-Mar-2019 Neale Ranns <nranns@cisco.com>

GBP: drop and contract counters

Change-Id: Ib436512a26e53f70f7b5e47bf34224ab73e5244e
Signed-off-by: Neale Ranns <nranns@cisco.com>

f324dec0 08-Apr-2019 Jim Thompson <jim@netgate.com>

fixing typos

Change-Id: I215e1e0208a073db80ec6f87695d734cf40fabe3
Signed-off-by: Jim Thompson <jim@netgate.com>

1091c4aa 08-Apr-2019 Neale Ranns <nranns@cisco.com>

IPSEC TEST: various hash alogrithms

Change-Id: I925aa5bf9472e81f98072d63df499b19e6ddf43d
Signed-off-by: Neale Ranns <nranns@cisco.com>

7363d479 04-Apr-2019 Mohsin Kazmi <sykazmi@cisco.com>

gbp: Add gbp bd flags unit test

Change-Id: I5b18cb84bec88f5514cacd2df61b5ce3c70abd77
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>

b71fa75d 04-Apr-2019 Neale Ranns <nranns@cisco.com>

IPSEC: punt reasons; SPI=0, no-tunnel

Change-Id: If76992e283a27fa193a6865257ab3aa764066e48
Signed-off-by: Neale Ranns <nranns@cisco.com>

8ea109e4 22-Mar-2019 Mohsin Kazmi <sykazmi@cisco.com>

gbp: Add bd flags

Add flags for unknown unicast drop, multicast and broadcast
drop and arp unicast.

Change-Id: I1203137510b8bee0a20ecfe5f2efad8043d4bac6
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>

2b600184 29-Mar-2019 Neale Ranns <nranns@cisco.com>

GBP: iVXLAN reflection check

packets should not egress on an iVXLAN tunnel if they
arrived on one.

Change-Id: I9adca30252364b4878f99e254aebc73b70a5d4d6
Signed-off-by: Neale Ranns <nranns@cisco.com>

f05e732e 29-Mar-2019 Neale Ranns <nranns@cisco.com>

IPSEC-GRE; tests

failing test disabled on ARM

Change-Id: I6b7535cd8f51fdaf9786ba77f9f61a7d8d049bbd
Signed-off-by: Neale Ranns <nranns@cisco.com>

d1a12ef8 28-Mar-2019 Andrew Yourtchenko <ayourtch@gmail.com>

vppinfra: fix sparse_vec_index() returning non-zero index for some nonexistent elements

If we are testing for an index whose membership bitmask happens to sit in LSB of uword,
and there is nothing else set in that uword in the member bitmask, the shortcut path
returning the valid index is taken even if the element with a given index doesn't
exist in the sparse vector. This happens because the count of leading zeroes on the
value of 0 is zero, which is equal to the value taken modulo bitsize uword.

Take care of that case.

Also add unittests showing the problem and verifying that sparse_vec_index2 does not
have the same issue.

Change-Id: I19117e13817c3e5de579b9250bb741de42491985
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>

95c0ca42 28-Mar-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: test/vpp_l2.py fix missing name.

test/vpp_l2.py:213:26: F821 undefined name 'L2_VTR_OP'
self.itf.set_vtr(L2_VTR_OP.L2_DISABLED)

Move L2_VTR_OP enum to vpp_sub_interface.py where the VTR code is found.

Change-Id: I9eb9a3a2c679813c221ce1d0c4fa8aac6076c443
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

3593a917 28-Mar-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: refactor vpp_object.py

Move __str__ to super for all subclasses of VppObject
Implement __repr__ in VppObject
Implement __hash__ and __eq__

Change-Id: Ibd4ea37b84b17f499ab86630fb5b9ed9c8b4b1c2
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

d7603d97 28-Mar-2019 Neale Ranns <nranns@cisco.com>

IPSEC: tunnel fragmentation

Change-Id: I63741a22bc82f5f861e1c0f26a93b5569cc52061
Signed-off-by: Neale Ranns <nranns@cisco.com>

1e3aa5e2 28-Mar-2019 Damjan Marion <damarion@cisco.com>

ipsec: USE_EXTENDED_SEQ_NUM -> USE_ESN

Change-Id: Ib828ea5106f3ae280e4ce233f2462dee363580b7
Signed-off-by: Damjan Marion <damarion@cisco.com>

76b5649d 28-Sep-2018 Neale Ranns <nranns@cisco.com>

Punt Infra

A punt/exception path that provides:
1) clients that use the infra
2) clients can create punt reasons
3) clients can register to recieve packets that are punted
for a given reason to be sent to the desired node.
4) nodes which punt packets fill in the {reason,protocol} of the
buffere (in the meta-data) and send to the new node "punt-dispatch"
5) punt-dispatch sends packets to the registered nodes or drops

Change-Id: Ia4f144337f1387cbe585b4f375d0842aefffcde5
Signed-off-by: Neale Ranns <nranns@cisco.com>

987aea8e 27-Mar-2019 Neale Ranns <nranns@cisco.com>

IPSEC: 4o6 and 6o4 for tunnel interfaces

Change-Id: I4d3ba18ab5205317219989de55b6e50d3b1d8a79
Signed-off-by: Neale Ranns <nranns@cisco.com>

25edf143 22-Mar-2019 Neale Ranns <nranns@cisco.com>

IPSEC: run encrpyt as a feautre on the tunnel

Change-Id: I6527e3fd8bbbca2d5f728621fc66b3856b39d505
Signed-off-by: Neale Ranns <nranns@cisco.com>

8feeaff5 27-Mar-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

Typos. A bunch of typos I've been collecting.

Change-Id: I53ab8d17914e6563110354e4052109ac02bf8f3b
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

64f7530f 27-Mar-2019 Naveen Joy <najoy@cisco.com>

make-test: fix ValueError raised by hook in python3

Without this patch, the hook module raises a ValueError
when tests are run using python3. This patch updates the
exception being caught by ipaddress to ValueError.

Change-Id: I5e11e292a05ddf350fc04ebaf19cfd7dad2bd9d0
Signed-off-by: Naveen Joy <najoy@cisco.com>

4dd4cf4f 27-Mar-2019 Neale Ranns <nranns@cisco.com>

GBP: fixes for l3-out routing

Change-Id: I4d73b712da911588d511a8401b73cdc3c66346fe
Signed-off-by: Neale Ranns <nranns@cisco.com>

32ee2f1d 20-Mar-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

VPP-1508: Tests: Update version of syslog_rfc5424_parser.

Bump to version v0.3.1.
Fixes an issue with stdlib enum imports under python3.5.

Change-Id: I7d8cb9e8ae9321beb4cb2ba052b08e776590c75d
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

03dd90ad 25-Mar-2019 Dave Wallace <dwallacelf@gmail.com>

VCL: add TLS opt to socket_test.sh

- add TLS transport opt to socket_test.sh
- resolve clash in vcl_test* args with
socket_test.sh opts

Change-Id: I952d5b64942664bc3af1098f67445e0f4b93ab32
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

3833ffd6 21-Mar-2019 Neale Ranns <nranns@cisco.com>

IPSEC tests fnd fix or Extended Sequence Numbers

Change-Id: Iad6c4b867961ec8036110a4e15a829ddb93193ed
Signed-off-by: Neale Ranns <nranns@cisco.com>

00a44206 21-Mar-2019 Neale Ranns <nranns@cisco.com>

IPSEC: test for packet drop on sequence number wrap

Change-Id: Id546c56a4904d13d4278055f3c5a5e4548e2efd0
Signed-off-by: Neale Ranns <nranns@cisco.com>

f7f13347 19-Mar-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: update test_lb.py to use api call lb_conf.

Change-Id: I96a1d4b2b3ae22cf164c0acd6db9b323cd70f51a
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

192b13f9 15-Mar-2019 Neale Ranns <nranns@cisco.com>

BVI Interface

a new dedicated BVI interface as opposed to [re]using a loopback.

benefits:
- removes ambiguity over the purpose of a loopback interface
- TX node dedicated to BVI only functions.

Change-Id: I749d6b38440d450ac5b909a28053c75ec9df946a
Signed-off-by: Neale Ranns <nranns@cisco.com>

2ac885c6 20-Mar-2019 Neale Ranns <nranns@cisco.com>

IPSEC: Mutli-tunnel tests

Change-Id: I46f1db6579835c6613fdbb2b726246cc62b135fe
Signed-off-by: Neale Ranns <nranns@cisco.com>

1ba5bc8d 20-Mar-2019 Kingwel Xie <kingwel.xie@ericsson.com>

ipsec: add ipv6 support for ipsec tunnel interface

Change-Id: I6a76907dc7bed2a81282b63669bea2219d6903c9
Signed-off-by: Kingwel Xie <kingwel.xie@ericsson.com>
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>

76ef6094 19-Mar-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: cdp plugin. Replace cdp enable cli command with API call.

Change-Id: Ic2d21b535a58c1c618ec9e652d30858ad45a7d43
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

ec850a80 19-Mar-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: replace CLI command with API for flowprobe params.

Change-Id: If446a0d111b89f0a761db41696e0d6ca912312f0
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

2e2c91f9 19-Mar-2019 Neale Ranns <nranns@cisco.com>

Revert "tests: Deprecate the use of CLI commands in tests."

This reverts commit e2e8f02165f27ae04e6d20ce0c628e29271a8db6.

Change-Id: Ie23dcb8a5b3e96f77e0d117a6887c43064c79669
Signed-off-by: Neale Ranns <nranns@cisco.com>

c0692a44 16-Mar-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: Speedup tests by 30%.

Baseline:
2598325153 function calls (2598296959 primitive calls) in 2257.698 seconds

Post-changeset:
1495427 function calls (1467233 primitive calls) in 1572.080 seconds

Change-Id: I191b68b29c9e0f19964bf0b8879ddf357c9cbd5c
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

b5f15bdd 17-Mar-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

Tests: Trivial. Define constants once.

Change-Id: Iaf106962598d04708e8740e016d5c55ff35432c9
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

e2e8f021 17-Mar-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: Deprecate the use of CLI commands in tests.

Since the stated policy regarding CLI commands is:
"Note that the debug CLI is a developer's tool
- no warranty express or implied - and that
we may choose not to fix debug CLI bugs.",

this change emits a deprecation warning whenever a test case calls a CLI command.

Change-Id: I91b30e86ae1b2fca36732837f36cdda762cdf458
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

3b0d7e42 15-Mar-2019 Ole Trøan <otroan@employees.org>

Revert "API: Cleanup APIs interface.api"

This reverts commit e63325e3ca03c847963863446345e6c80a2c0cfd.

Allow time for CSIT to accommodate.

Change-Id: I59435e4ab5e05e36a2796c3bf44889b5d4823cc2
Signed-off-by: ot@cisco.com

e63325e3 01-Mar-2019 Jakub Grajciar <jgrajcia@cisco.com>

API: Cleanup APIs interface.api

Use of consistent API types for interface.api

Change-Id: Ieb54cebb4ac96b432a3f0b41596718aa2f34885b
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>

4ba4edd1 14-Mar-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

Add @deprecated decorator.

import deprecation

@deprecation.deprecated(deprecated_in="1.0", removed_in="2.0",
current_version=__version__,
details="Use the bar function instead")
def foo():
"""Do some stuff"""
return 1

Change-Id: Ib2ec5dd90445c9967eb39dbf6543cafd48b7f866
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

e3a0e6e8 14-Mar-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

Tests: test/test_flowprobe.py Fix TypeError.

TypeError: not all arguments converted during string formatting

Change-Id: I0b4b27e37ba47e737aeb639c9787f8bc08a92dce
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

e5468b32 13-Mar-2019 Andrew Yourtchenko <ayourtch@gmail.com>

acl-plugin: fix the l2l3 unittest to actually verify the pcap

Thanks to Paul Vinciguerra for spotting it.

Change-Id: I1f776c3c21865dbc52c4d659c62cbfa4967e15e9
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>

6348074b 13-Mar-2019 Neale Ranns <nranns@cisco.com>

TEST: link-state up/down notifications on FIB forwarding

Change-Id: I478c4e5feb9603b7443efdf2967f98f9bde7ea0f
Signed-off-by: Neale Ranns <nranns@cisco.com>

4c2bff06 14-Mar-2019 Neale Ranns <nranns@cisco.com>

GBP: get source address from ARP packets for LPM classification

Change-Id: I1370c1882f8ba9b709e54e62356d2c57d47d20fc
Signed-off-by: Neale Ranns <nranns@cisco.com>

22364e49 13-Mar-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

Tests: post-merge review comments for https://gerrit.fd.io/r/#/c/18081/

Change-Id: I2195b3264b5db34d869facf669f3e71a04fe3ff9
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

c599c6f0 13-Mar-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

Tests: Raise exception, don't raise string.

This was deprecated ~ python 2.4, and causes a TypeError as sideEffect.

>>> raise "foo"
Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: exceptions must derive from BaseException

Change-Id: I4117b6d60ae896eaa1ef2a73a323d8d241f8c3a7
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

36abbf10 12-Mar-2019 Neale Ranns <nranns@cisco.com>

GBP: L3 out fixes

Change-Id: I0562d597fd45c7ddcb6db42cf17d3ffb569eb140
Signed-off-by: Neale Ranns <nranns@cisco.com>

f726f539 11-Mar-2019 Neale Ranns <nranns@cisco.com>

FIB: path parsing, table-id not fib-index (VPP-1586)

Change-Id: Ib27952935393163eaabf005c69b1cbc2feca2b98
Signed-off-by: Neale Ranns <nranns@cisco.com>

fa0ac2c5 12-Mar-2019 Neale Ranns <nranns@cisco.com>

GBP: contracts API fixed length of allowed ethertypes

VAPI does not handle two VLAs in one struct.

Change-Id: I259c998bef4398ead2bbb9e788350d50c2f05694
Signed-off-by: Neale Ranns <nranns@cisco.com>

5995482d 11-Mar-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

VPP-1486: Unittest for stat segment file descriptor leak.

Verifies: https://gerrit.fd.io/r/#/c/18167/

Before patch:

==============================================================================
Test Stats Client
==============================================================================
Test file descriptor count - VPP-1486 FAIL [ temp dir used by test case: /tmp/vpp-unittest-StatsClientTestCase-EAp0e7 ]

==============================================================================
FAIL: Test file descriptor count - VPP-1486
------------------------------------------------------------------------------
Traceback (most recent call last):
File "/vpp/test/test_stats_client.py", line 39, in test_client_fd_leak
initial_fds, ending_fds))
AssertionError: initial client side file descriptor count: 20 is not equal to ending client side file descriptor count: 120

04:55:38,038 Symlink to failed testcase directory: /tmp/vpp-failed-unittests/vpp-unittest-StatsClientTestCase-EAp0e7-FAILED -> vpp-unittest-StatsClientTestCase-EAp0e7

==============================================================================
TEST RESULTS:
Scheduled tests: 1
Executed tests: 1
Passed tests: 0
Failures: 1
FAILURES AND ERRORS IN TESTS:
Testcase name: Test Stats Client
FAILURE: Test file descriptor count - VPP-1486 [test_stats_client.StatsClientTestCase.test_client_fd_leak]
=============================================================================

After patch:

==============================================================================
Test Stats Client
==============================================================================
Test file descriptor count - VPP-1486 OK

==============================================================================
TEST RESULTS:
Scheduled tests: 1
Executed tests: 1
Passed tests: 1
==============================================================================

Test run was successful

Change-Id: I055e473ecf0566ebfbfbadd58ec6eaf11fc77d68
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

a5b2eec0 11-Mar-2019 Ole Troan <ot@cisco.com>

vpp_papi_provider: Remove more wrapper functions.

Split this work up into pieces.
Please don't add new wrappers to vpp_papi_provider.py.

Change-Id: I0f8f2afc4cd2bba07ea70ddecea2d7319f7b2e10
Signed-off-by: Ole Troan <ot@cisco.com>

22ab6f7c 08-Mar-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

VPP-1508: Tests: Fix vpp_api struct.error under py3.

Fix struct.error: expected bytes object got <class 'str'>

Change-Id: I837ae6e97e44c789a9372677151b157956525334
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

a7427ec6 10-Mar-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

VPP-1508: Use scapy.compat to manage packet level library differences.

Change-Id: Icdf6abc9e53d33b26fd1d531c7dda6be0bb9cb55
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

0f6602cb 10-Mar-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

Tests: fix time.sleep(0) # yield. Reduce sleep related log messages.

Reduce the incidence of:
20:04:23,606 unexpected time.sleep() result - slept for 2.187967e-03s instead of ~6.837845e-04s!

Change-Id: Ic576fda7f75e571c9019111588a6a936ee2cf5c2
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

d3a9be2c 10-Mar-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

Tests: remote_test.py. Private member test catching dunder names.

Private member check also catches __iter__, since it starts with '_'.

Fixes:
Captured traceback:
~~~~~~~~~~~~~~~~~~
b'Traceback (most recent call last):'
b' File "/vpp/test/test_memif.py", line 47, in tearDown'
b' remove_all_memif_vpp_config(self.remote_test)'
b' File "/vpp/test/vpp_memif.py", line 36, in remove_all_memif_vpp_config'
b' for d in dump:'
b"TypeError: 'SerializableClassCopy' object is not iterable"
b''

Change-Id: I6a3f3e0f2b1b2d0a2b97faa23bf542ff8f92de43
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

9a6dafd5 06-Mar-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

Tests: use self.assertNotIn().

Many tests use self.assertEqual(error.find("failed"), -1)
Use self.assertNotIn("failed", error) to provide more meaningful errors such as
AssertionError: 'Failed' not found in '' instead of 0 != -1.

Change-Id: I670acdc977b788b2cedf94cfeafc12097781463f
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

f70cead5 10-Mar-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

Tests: 'Fix' __del__ in test/remote_test.py.

This is not a fix as much as supressing a warning.
__del__ is not a destructor.

test/remote_test.py:385:13: F821 undefined name 'cls'
cls.vpp.poll()
^
test/remote_test.py:386:16: F821 undefined name 'cls'
if cls.vpp.returncode is None:
^
test/remote_test.py:387:17: F821 undefined name 'cls'
cls.vpp.terminate()
^
test/remote_test.py:388:17: F821 undefined name 'cls'
cls.vpp.communicate()

Change-Id: I6f0ecf3ae5dee7f279a4e25994cc1c49470bca26
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

a1bfb3a4 08-Mar-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

Test: Fix hook.py: AttributeError

File "/vpp/test/hook.py", line 84, in on_crash
self.testcase.vpp_bin, core_path)
AttributeError: 'PollHook' object has no attribute 'testcase'

Change-Id: I84d9d86a5c6a5769a43a91cf23ce8a1141f7cd12
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

eaea421e 06-Mar-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

Tests: Refactor payload_to_info()

All callers of payload_to_info were required to wrap payload with str().
Refactor to call scapy's payload.load for raw payloads or specify the
specific fieldname.

Change-Id: I1c80599d4df8dc129dbb8274733afaad406d5bcf
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

ea2450fa 06-Mar-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

VPP-1508: Python3 tests. Explicitly specify string formatting.

.format() doesn't understand what to do with binary values by default.
Specify that we expect coersion to string.

Change-Id: Ic4b697f70852124dc85ab231f76b7934d0d71f4d
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

4a4cea02 07-Mar-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

VPP-1508: test_acl_plugin vapi changes for Python3.

Change-Id: I0863cefa523a6d7c11e48649b03f058130e5a4ee
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

42bdba80 07-Mar-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

vpp_papi: Adjust aenum import for python3.

The stdlib introduced IntEnum in python 3.4 and IntFlag in python 3.6.

Change-Id: I3ac278a9d5a97eefa9fc4f1491f0cd030e40c3b2
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

2cbf2fb0 06-Mar-2019 Naveen Joy <najoy@cisco.com>

make-test: Python pep8 compliance for sequences

For sequences, (strings, lists, tuples), use the fact that
empty sequences are false. A tiny change towards getting
full pep8 compliance, which will look good.
Yes: if not seq:
if seq:
No: if len(seq):
if not len(seq):
(https://www.python.org/dev/peps/pep-0008/)

Change-Id: I6b565bef424f81afc66aba3b0041a5029a9f8954
Signed-off-by: Naveen Joy <najoy@cisco.com>

9a475373 05-Mar-2019 Ole Troan <ot@cisco.com>

test framework: vpp_papi_provider.py - further cleanup

Part of further cleanups of this file.
Removed most wrappers that don't have conflicting signature with
message API.

Change-Id: I6acd93d20291feb7731eb35ab2eb8c9f22f4632c
Signed-off-by: Ole Troan <ot@cisco.com>

c0737e96 04-Mar-2019 Florin Coras <fcoras@cisco.com>

session: use session index instead of fifo for evt

Avoids derefrencing fifo pointers whose segments could have been
unmapped.

Change-Id: Ifb0b7399e424f145f3f94b769391a6f4e31bb4e6
Signed-off-by: Florin Coras <fcoras@cisco.com>

653e43f0 04-Mar-2019 Florin Coras <fcoras@cisco.com>

session: use vpp to switch io events for ct sessions

Instead of allocating pairs of message queues per cut-thru session and
having the applications map them, this uses vpp as an io event message
switch.

Change-Id: I51db1c7564df479a7d1a3288342394251fd188bb
Signed-off-by: Florin Coras <fcoras@cisco.com>

4ba67723 28-Feb-2019 Neale Ranns <nranns@cisco.com>

GBP: use sclass in the DP for policy

Change-Id: I154e18f22ec7708127b8ade98e80546ab1dcd05b
Signed-off-by: Neale Ranns <nranns@cisco.com>

6955595a 01-Mar-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

Tests: Example duplicate code refactoring.

Refactor of duplicate methods in test/test_reassembly.py.

Change-Id: I46f880da6a0ced2acae1fa33c6892d0148b26139
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

8da9fc65 04-Mar-2019 Neale Ranns <nranns@cisco.com>

GBP: learn from ARP and L2 packets

Change-Id: I8af7bca566ec7c9bd2b72529d49e04c6e649b44a
Signed-off-by: Neale Ranns <nranns@cisco.com>

7ab99702 05-Mar-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

Test: vpp_papi_provider. __getattr__

Replace custom __getattr__ with custom __getattribute__.

Change-Id: Ib96176abc07eefedba305ed874621001a810eb0d
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

32f6d8e0 05-Mar-2019 Neale Ranns <nranns@cisco.com>

GBP: per-group EP retention policy

Change-Id: I3ed4e2e92f74f15b07fcd3e7fbc3fa8718d5249d
Signed-off-by: Neale Ranns <nranns@cisco.com>

e1ade684 04-Mar-2019 Ole Troan <ot@cisco.com>

test framework: Fix wrapper functions to match API message names.

In preparation to remove the wrappers in vpp_papi_provider.py, ensure
names used in tests match the actual API message names.

Change-Id: I230ca4eb75aa727ff68d702e085a2edbbc6b6d19
Signed-off-by: Ole Troan <ot@cisco.com>

f159f58d 28-Feb-2019 Ole Troan <ot@cisco.com>

test framework: add factory function and default parameters

This is the first step to be able to remove all the API message
wrappers in vpp_papi_provider.py. This allows to remove all
functions that do not override parameters (different from zero),
and a separate dictionary for messages requiring different defaults.

The general requirement is that all new tests should use named
arguments directly. Not positional arguments through the wrapper.

Note when removing functions, the calls in vpp_papi_provider
wrappers do not necessarily follow message order.

Change-Id: If64916c07f8622c138db3a9d7c4a98b93a058e68
Signed-off-by: Ole Troan <ot@cisco.com>

beded852 01-Mar-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

Tests: Trivial fox use of 'is'.

'is' evaluates diffently depending on the value.

>>> x=-10
>>> x is -10
False

>>> x=10
>>> x is 10
True
>>>

Change-Id: If72ec7c47e3e95180a4d08a773984253c80154d6
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

a279d9cf 28-Feb-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

Tests: Remove all wildcard imports.

They mask dependencies and confuse third party tools.

Change-Id: I24ee16bfa0d746a8e8cb99891ba8b20523048b69
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

e8fece85 28-Feb-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

Tests: Refactor duplicated code.

Naveen suggested earlier today that we should refactor duplicate code.
This commit kicks off the effort.

Change-Id: I855b0f40d41d1f3a2e673f3b254b76b596409656
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

5ad273ad 28-Feb-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

test/vpp_ip_route.py: Trivial. Remove duplicate key.

Change-Id: I2c347daeecd5441b8fe3e3f7527a8e21844668d0
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

05e18829 28-Feb-2019 Naveen Joy <najoy@cisco.com>

Remove unused imports from hooks

Change-Id: I087b057da526c18f8cce1902dcb594dd5ce0a4b8
Signed-off-by: Naveen Joy <najoy@cisco.com>

53f526b6 25-Feb-2019 Neale Ranns <nranns@cisco.com>

TEST: IPSEC NAT-T with UDP header

Change-Id: I5ef8b3f4be40a7a0b0f1cb90dc0e15a4711e8664
Signed-off-by: Neale Ranns <nranns@cisco.com>

34931eb4 26-Feb-2019 Matus Fabian <matfabia@cisco.com>

NAT44: active-passive HA (VPP-1571)

session synchronization so that we can build a plain active-passive HA NAT pair

Change-Id: I21db200491081ca46b7af3e82afc677c1985abf4
Signed-off-by: Matus Fabian <matfabia@cisco.com>

3bce8ebf 25-Nov-2018 Paul Vinciguerra <pvinci@vinciconsulting.com>

VPP-1508 Python3 abstract classes

Update the syntax to support abstract classes in python 2 and python 3.

Depends on: new style classes -- https://gerrit.fd.io/r/16166

Change-Id: Iad2c1240149f38b3faca1b37ab95d3d210e1daee
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

d73dbd2d 20-Feb-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

make test: Stop downloading pip.

Use the installed version of pip. If a newer version of pip is needed,
it can be specified in requirements.txt. This is to improve idempotence
by providing some control over upstream changes.

Change-Id: I07b7651f8ddba6005bf85d11fef9e3343ee2dcd2
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

38a4ec73 28-Nov-2018 Paul Vinciguerra <pvinci@vinciconsulting.com>

make test: Add exception handling around subprocess.

This cleans up exception catching to identify oserrors. By raising the
specific exception closer to the offending call, we get additional stack history
and can add clearer error logging to assist in troubleshooting.

Change-Id: I592e4d46844b822a816485bf54910f8daed92088
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

1e18eb20 26-Nov-2018 Paul Vinciguerra <pvinci@vinciconsulting.com>

VPP-1508 python tests: unicode

Change unicode references to use text_type

Change-Id: Ia71c16e3235bc509abd3b1c651ae125f892ab108
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

0b1f8a7e 20-Feb-2019 Jakub Grajciar <jgrajcia@cisco.com>

Remote Test: fix serialization (dict, Enum)

Change-Id: Ia3f8616cbf424c7f2d29d16cf7a457be6cd1b33a
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>

5637e653 22-Feb-2019 Neale Ranns <nranns@cisco.com>

VOM: De-template the ACL code.

there's something going wrong with the dependency ordering.
i have added hacks in the past, but these are not reliable
across compiler versions.

Change-Id: I34b4aae4c7ed7beaa424cd692ff34cba21ba802a
Signed-off-by: Neale Ranns <nranns@cisco.com>

53322005 22-Feb-2019 Neale Ranns <nranns@cisco.com>

VOM: fix tests and namespacify l2_vtr

Change-Id: Ie59220a622c3a5195485cd6857b45f57d6eeaf95
Signed-off-by: Neale Ranns <nranns@cisco.com>

eb414435 20-Feb-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

TESTS: refactor framework send_and_expect.

Create a common pg_send method for cases when results are just discarded.

Change-Id: I786960d2d7bbb96dcb407f6e59aa96951b7b19e7
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

51a423dc 20-Feb-2019 Florin Coras <fcoras@cisco.com>

session: fix local sessions disconnects

Change-Id: Ib4ca472aa2413ced7f82d87e4fee65ca86ab1f2b
Signed-off-by: Florin Coras <fcoras@cisco.com>

2cc29a52 13-Feb-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

make test-doc: Clean up import errors.

Mock additional 3rd party modules and replace wildcard imports that
were confusing sphinx.

Change-Id: Ia9e599901a2a3fad854d3631dd0991183ae6d715
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

8a140616 19-Feb-2019 Florin Coras <fcoras@cisco.com>

tls: add vcl test

Change-Id: If4c7efaf6506a827e7a95a56c2f6b6060df03fa1
Signed-off-by: Florin Coras <fcoras@cisco.com>

cae98b72 19-Feb-2019 Klement Sekera <ksekera@cisco.com>

reassembly: fix buffer usage counter

Change-Id: I713904f8eb2f724cb08dba494c160c14cc8b24a1
Signed-off-by: Klement Sekera <ksekera@cisco.com>

4e633e10 31-Jan-2019 Michal Cmarada <mcmarada@cisco.com>

VPP-1504: Remove JVPP

As part of JVPP migration this removes JVPP completely from VPP.

Change-Id: I6b74e7961aa474ae471e63fe43a624cd9fc3659b
Signed-off-by: Michal Cmarada <mcmarada@cisco.com>

eba31ece 17-Feb-2019 Neale Ranns <nranns@cisco.com>

IPSEC: move SA counters into the stats segment

1) stats are accessed via the stat segment which is more condusive to
monitoring
2) stats are accurate in the presence of multiple threads. There's no
guarantee that an SA is access from only one worker.

Change-Id: Id5e217ea253ddfc9480aaedb0d008dea031b1148
Signed-off-by: Neale Ranns <nranns@cisco.com>

593635d4 07-Feb-2019 Klement Sekera <ksekera@cisco.com>

make test: make test-ext working again

Change-Id: Ib30d0c6b8794488119f258f7617fce494aa28f1f
Signed-off-by: Klement Sekera <ksekera@cisco.com>

6fef74ad 12-Feb-2019 Neale Ranns <nranns@cisco.com>

VOM: neighbour API flags

Change-Id: Ia664cd4c77f1c5b4bc46c5e191bb57704b3ccc46
Signed-off-by: Neale Ranns <nranns@cisco.com>

8d7c5020 06-Feb-2019 Neale Ranns <nranns@cisco.com>

IPSEC: no second lookup after tunnel encap

in the same maaner as with other tunnel tyeps we use
the FIB to cache and track the destination used to reach
the tunnel endpoint. Post encap we can then ship the packet
straight to this adjacency and thus elide the costly second
lookup.

- SA add and del function so they can be used both directly
from the API and for tunnels.
- API change for the SA dump to use the SA type
- ipsec_key_t type for convenience (copying, [un]formating)
- no matching tunnel counters in ipsec-if-input

Change-Id: I9d144a59667f7bf96442f4ca66bef5c1d3c7f1ea
Signed-off-by: Neale Ranns <nranns@cisco.com>

a09c1ff5 04-Feb-2019 Neale Ranns <nranns@cisco.com>

IPSEC: SPD counters in the stats sgement

- return the stats_index of each SPD in the create API call
- no ip_any in the API as this creates 2 SPD entries. client must add both v4 and v6 explicitly
- only one pool of SPD entries (rhter than one per-SPD) to support this
- no packets/bytes in the dump API. Polling the stats segment is much more efficient
(if the SA lifetime is based on packet/bytes)
- emit the policy index in the packet trace and CLI commands.

Change-Id: I7eaf52c9d0495fa24450facf55229941279b8569
Signed-off-by: Neale Ranns <nranns@cisco.com>

8d991d92 25-Jan-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

VTL Cleanup: Fix missing calls to setUpClass/tearDownClass, fix numerous TypeErrors.

* TypeError: assertIsNotNone() got an unexpected keyword argument 'msg'

* Correct missing calls to setUpClass/tearDownClass.
If you want the setUpClass and tearDownClass on base classes called then you must call up to them yourself.
The implementations in TestCase are empty.
https://docs.python.org/2/library/unittest.html#setupclass-and-teardownclass

Cleans up issues in parallel test mode:
-------------
FAILURES AND ERRORS IN TESTS:
Testcase name: VCL Thru Host Stack Bidir Nsock
FAILURE: test_vcl.VCLThruHostStackBidirNsock.test_vcl_thru_host_stack_bi_dir_nsock [test_vcl.VCLThruHostStackBidirNsock.test_vcl_thru_host_stack_bi_dir_nsock]
Testcase name: Bidirectional Forwarding Detection (BFD) (changing auth)
ERROR: test_bfd.BFDAuthOnOffTestCase.test_auth_change_key_delayed [test_bfd.BFDAuthOnOffTestCase.test_auth_change_key_delayed]
ERROR: test_bfd.BFDAuthOnOffTestCase.test_auth_change_key_immediate [test_bfd.BFDAuthOnOffTestCase.test_auth_change_key_immediate]
ERROR: test_bfd.BFDAuthOnOffTestCase.test_auth_off_delayed [test_bfd.BFDAuthOnOffTestCase.test_auth_off_delayed]
ERROR: test_bfd.BFDAuthOnOffTestCase.test_auth_off_immediate [test_bfd.BFDAuthOnOffTestCase.test_auth_off_immediate]
ERROR: test_bfd.BFDAuthOnOffTestCase.test_auth_on_delayed [test_bfd.BFDAuthOnOffTestCase.test_auth_on_delayed]
ERROR: test_bfd.BFDAuthOnOffTestCase.test_auth_on_immediate [test_bfd.BFDAuthOnOffTestCase.test_auth_on_immediate]
Testcase name: Punt Socket for IPv4
ERROR: test_punt.TestIP4PuntSocket.test_punt_socket_dump [test_punt.TestIP4PuntSocket.test_punt_socket_dump]
ERROR: test_punt.TestIP4PuntSocket.test_punt_socket_traffic_multi_port_multi_sockets [test_punt.TestIP4PuntSocket.test_punt_socket_traffic_multi_port_multi_sockets]
ERROR: test_punt.TestIP4PuntSocket.test_punt_socket_traffic_multi_ports_single_socket [test_punt.TestIP4PuntSocket.test_punt_socket_traffic_multi_ports_single_socket]
ERROR: test_punt.TestIP4PuntSocket.test_punt_socket_traffic_single_port_single_socket [test_punt.TestIP4PuntSocket.test_punt_socket_traffic_single_port_single_socket]
Testcase name: Bidirectional Forwarding Detection (BFD) (IPv6)
ERROR: test_bfd.BFD6TestCase.test_echo [test_bfd.BFD6TestCase.test_echo]
ERROR: test_bfd.BFD6TestCase.test_echo_looped_back [test_bfd.BFD6TestCase.test_echo_looped_back]
ERROR: test_bfd.BFD6TestCase.test_intf_deleted [test_bfd.BFD6TestCase.test_intf_deleted]
ERROR: test_bfd.BFD6TestCase.test_session_up [test_bfd.BFD6TestCase.test_session_up]
ERROR: test_bfd.BFD6TestCase.test_session_up_by_ip [test_bfd.BFD6TestCase.test_session_up_by_ip]
Testcase name: Bidirectional Forwarding Detection (BFD) (CLI)
ERROR: test_bfd.BFDCLITestCase.test_add_mod_del_bfd_udp [test_bfd.BFDCLITestCase.test_add_mod_del_bfd_udp]
ERROR: test_bfd.BFDCLITestCase.test_add_mod_del_bfd_udp6 [test_bfd.BFDCLITestCase.test_add_mod_del_bfd_udp6]
ERROR: test_bfd.BFDCLITestCase.test_add_mod_del_bfd_udp6_auth [test_bfd.BFDCLITestCase.test_add_mod_del_bfd_udp6_auth]
ERROR: test_bfd.BFDCLITestCase.test_add_mod_del_bfd_udp_auth [test_bfd.BFDCLITestCase.test_add_mod_del_bfd_udp_auth]
ERROR: test_bfd.BFDCLITestCase.test_admin_up_down [test_bfd.BFDCLITestCase.test_admin_up_down]
ERROR: test_bfd.BFDCLITestCase.test_auth_on_off [test_bfd.BFDCLITestCase.test_auth_on_off]
ERROR: test_bfd.BFDCLITestCase.test_auth_on_off_delayed [test_bfd.BFDCLITestCase.test_auth_on_off_delayed]
ERROR: test_bfd.BFDCLITestCase.test_set_del_meticulous_sha1_key [test_bfd.BFDCLITestCase.test_set_del_meticulous_sha1_key]
ERROR: test_bfd.BFDCLITestCase.test_set_del_sha1_key [test_bfd.BFDCLITestCase.test_set_del_sha1_key]
ERROR: test_bfd.BFDCLITestCase.test_set_del_udp_echo_source [test_bfd.BFDCLITestCase.test_set_del_udp_echo_source]
ERROR: test_bfd.BFDCLITestCase.test_show [test_bfd.BFDCLITestCase.test_show]
Testcase name: VAPI test
ERROR: test_vapi.VAPITestCase.test_vapi_c [test_vapi.VAPITestCase.test_vapi_c]
Testcase name: Container integration extended testcases
ERROR: test_container.ContainerIntegrationTestCase.test_0010_basic_conn_test [test_container.ContainerIntegrationTestCase.test_0010_basic_conn_test]
ERROR: test_container.ContainerIntegrationTestCase.test_0011_basic_conn_test [test_container.ContainerIntegrationTestCase.test_0011_basic_conn_test]
ERROR: test_container.ContainerIntegrationTestCase.test_0050_loopback_prepare_test [test_container.ContainerIntegrationTestCase.test_0050_loopback_prepare_test]
ERROR: test_container.ContainerIntegrationTestCase.test_0110_basic_conn_test [test_container.ContainerIntegrationTestCase.test_0110_basic_conn_test]
ERROR: test_container.ContainerIntegrationTestCase.test_0111_basic_conn_test [test_container.ContainerIntegrationTestCase.test_0111_basic_conn_test]
ERROR: test_container.ContainerIntegrationTestCase.test_0200_basic_conn_test [test_container.ContainerIntegrationTestCase.test_0200_basic_conn_test]
ERROR: test_container.ContainerIntegrationTestCase.test_0210_basic_conn_test [test_container.ContainerIntegrationTestCase.test_0210_basic_conn_test]
ERROR: test_container.ContainerIntegrationTestCase.test_0211_basic_conn_test [test_container.ContainerIntegrationTestCase.test_0211_basic_conn_test]
ERROR: test_container.ContainerIntegrationTestCase.test_0300_unconfigure_commands [test_container.ContainerIntegrationTestCase.test_0300_unconfigure_commands]
ERROR: test_container.ContainerIntegrationTestCase.test_0410_spoof_test [test_container.ContainerIntegrationTestCase.test_0410_spoof_test]
ERROR: test_container.ContainerIntegrationTestCase.test_0411_spoof_test [test_container.ContainerIntegrationTestCase.test_0411_spoof_test]
Testcase name: Re-enable IPFIX
ERROR: test_flowprobe.ReenableIPFIX.test_0011 [test_flowprobe.ReenableIPFIX.test_0011]
Testcase name: VXLAN over IPv6 Test Case
ERROR: setUpClass [setUpClass (test_vxlan6.TestVxlan6)]
Testcase name: JVPP Core Test Case
ERROR: test_jvpp.TestJVpp.test_vpp_acl_callback_api [test_jvpp.TestJVpp.test_vpp_acl_callback_api]
ERROR: test_jvpp.TestJVpp.test_vpp_acl_future_api [test_jvpp.TestJVpp.test_vpp_acl_future_api]
ERROR: test_jvpp.TestJVpp.test_vpp_core_callback_api [test_jvpp.TestJVpp.test_vpp_core_callback_api]
ERROR: test_jvpp.TestJVpp.test_vpp_core_future_api [test_jvpp.TestJVpp.test_vpp_core_future_api]
ERROR: test_jvpp.TestJVpp.test_vpp_ioamexport_callback_api [test_jvpp.TestJVpp.test_vpp_ioamexport_callback_api]
ERROR: test_jvpp.TestJVpp.test_vpp_ioamexport_future_api [test_jvpp.TestJVpp.test_vpp_ioamexport_future_api]
ERROR: test_jvpp.TestJVpp.test_vpp_ioampot_callback_api [test_jvpp.TestJVpp.test_vpp_ioampot_callback_api]
ERROR: test_jvpp.TestJVpp.test_vpp_ioampot_future_api [test_jvpp.TestJVpp.test_vpp_ioampot_future_api]
ERROR: test_jvpp.TestJVpp.test_vpp_ioamtrace_callback_api [test_jvpp.TestJVpp.test_vpp_ioamtrace_callback_api]
ERROR: test_jvpp.TestJVpp.test_vpp_ioamtrace_future_api [test_jvpp.TestJVpp.test_vpp_ioamtrace_future_api]
ERROR: test_jvpp.TestJVpp.test_vpp_snat_callback_api [test_jvpp.TestJVpp.test_vpp_snat_callback_api]
ERROR: test_jvpp.TestJVpp.test_vpp_snat_future_api [test_jvpp.TestJVpp.test_vpp_snat_future_api]
Testcase name: LDP Cut Thru Tests
FAILURE: test_vcl.LDPCutThruTestCase.test_ldp_cut_thru_iperf3 [test_vcl.LDPCutThruTestCase.test_ldp_cut_thru_iperf3]
Testcase name: ACL plugin connection-oriented extended testcases
ERROR: test_acl_plugin_conns.ACLPluginConnTestCase.test_0000_conn_prepare_test [test_acl_plugin_conns.ACLPluginConnTestCase.test_0000_conn_prepare_test]
ERROR: test_acl_plugin_conns.ACLPluginConnTestCase.test_0001_basic_conn_test [test_acl_plugin_conns.ACLPluginConnTestCase.test_0001_basic_conn_test]
ERROR: test_acl_plugin_conns.ACLPluginConnTestCase.test_0002_basic_conn_test [test_acl_plugin_conns.ACLPluginConnTestCase.test_0002_basic_conn_test]
ERROR: test_acl_plugin_conns.ACLPluginConnTestCase.test_0005_clear_conn_test [test_acl_plugin_conns.ACLPluginConnTestCase.test_0005_clear_conn_test]
ERROR: test_acl_plugin_conns.ACLPluginConnTestCase.test_0006_clear_conn_test [test_acl_plugin_conns.ACLPluginConnTestCase.test_0006_clear_conn_test]
ERROR: test_acl_plugin_conns.ACLPluginConnTestCase.test_0011_active_conn_test [test_acl_plugin_conns.ACLPluginConnTestCase.test_0011_active_conn_test]
ERROR: test_acl_plugin_conns.ACLPluginConnTestCase.test_0012_active_conn_test [test_acl_plugin_conns.ACLPluginConnTestCase.test_0012_active_conn_test]
ERROR: test_acl_plugin_conns.ACLPluginConnTestCase.test_1001_basic_conn_test [test_acl_plugin_conns.ACLPluginConnTestCase.test_1001_basic_conn_test]
ERROR: test_acl_plugin_conns.ACLPluginConnTestCase.test_1002_basic_conn_test [test_acl_plugin_conns.ACLPluginConnTestCase.test_1002_basic_conn_test]
ERROR: test_acl_plugin_conns.ACLPluginConnTestCase.test_1005_clear_conn_test [test_acl_plugin_conns.ACLPluginConnTestCase.test_1005_clear_conn_test]
ERROR: test_acl_plugin_conns.ACLPluginConnTestCase.test_1006_clear_conn_test [test_acl_plugin_conns.ACLPluginConnTestCase.test_1006_clear_conn_test]
ERROR: test_acl_plugin_conns.ACLPluginConnTestCase.test_1011_active_conn_test [test_acl_plugin_conns.ACLPluginConnTestCase.test_1011_active_conn_test]
ERROR: test_acl_plugin_conns.ACLPluginConnTestCase.test_1012_active_conn_test [test_acl_plugin_conns.ACLPluginConnTestCase.test_1012_active_conn_test]
ERROR: test_acl_plugin_conns.ACLPluginConnTestCase.test_2000_prepare_for_tcp_test [test_acl_plugin_conns.ACLPluginConnTestCase.test_2000_prepare_for_tcp_test]
ERROR: test_acl_plugin_conns.ACLPluginConnTestCase.test_2001_tcp_transient_conn_test [test_acl_plugin_conns.ACLPluginConnTestCase.test_2001_tcp_transient_conn_test]
ERROR: test_acl_plugin_conns.ACLPluginConnTestCase.test_2002_tcp_transient_conn_test [test_acl_plugin_conns.ACLPluginConnTestCase.test_2002_tcp_transient_conn_test]
ERROR: test_acl_plugin_conns.ACLPluginConnTestCase.test_2003_tcp_transient_conn_test [test_acl_plugin_conns.ACLPluginConnTestCase.test_2003_tcp_transient_conn_test]
ERROR: test_acl_plugin_conns.ACLPluginConnTestCase.test_2004_tcp_transient_conn_test [test_acl_plugin_conns.ACLPluginConnTestCase.test_2004_tcp_transient_conn_test]
ERROR: test_acl_plugin_conns.ACLPluginConnTestCase.test_2005_tcp_transient_teardown_conn_test [test_acl_plugin_conns.ACLPluginConnTestCase.test_2005_tcp_transient_teardown_conn_test]
ERROR: test_acl_plugin_conns.ACLPluginConnTestCase.test_2006_tcp_transient_teardown_conn_test [test_acl_plugin_conns.ACLPluginConnTestCase.test_2006_tcp_transient_teardown_conn_test]
ERROR: test_acl_plugin_conns.ACLPluginConnTestCase.test_3001_tcp_transient_conn_test [test_acl_plugin_conns.ACLPluginConnTestCase.test_3001_tcp_transient_conn_test]
ERROR: test_acl_plugin_conns.ACLPluginConnTestCase.test_3002_tcp_transient_conn_test [test_acl_plugin_conns.ACLPluginConnTestCase.test_3002_tcp_transient_conn_test]
ERROR: test_acl_plugin_conns.ACLPluginConnTestCase.test_3003_tcp_transient_conn_test [test_acl_plugin_conns.ACLPluginConnTestCase.test_3003_tcp_transient_conn_test]
ERROR: test_acl_plugin_conns.ACLPluginConnTestCase.test_3004_tcp_transient_conn_test [test_acl_plugin_conns.ACLPluginConnTestCase.test_3004_tcp_transient_conn_test]
ERROR: test_acl_plugin_conns.ACLPluginConnTestCase.test_3005_tcp_transient_teardown_conn_test [test_acl_plugin_conns.ACLPluginConnTestCase.test_3005_tcp_transient_teardown_conn_test]
ERROR: test_acl_plugin_conns.ACLPluginConnTestCase.test_3006_tcp_transient_teardown_conn_test [test_acl_plugin_conns.ACLPluginConnTestCase.test_3006_tcp_transient_teardown_conn_test]
Testcase name: LDP Thru Host Stack Echo
FAILURE: test_vcl.LDPThruHostStackEcho.test_ldp_thru_host_stack_echo [test_vcl.LDPThruHostStackEcho.test_ldp_thru_host_stack_echo]
Testcase name: Bidirectional Forwarding Detection (BFD) - API
ERROR: test_bfd.BFDAPITestCase.test_activate_auth [test_bfd.BFDAPITestCase.test_activate_auth]
ERROR: test_bfd.BFDAPITestCase.test_add_auth_nonexistent_key [test_bfd.BFDAPITestCase.test_add_auth_nonexistent_key]
ERROR: test_bfd.BFDAPITestCase.test_add_bfd [test_bfd.BFDAPITestCase.test_add_bfd]
ERROR: test_bfd.BFDAPITestCase.test_add_bfd6 [test_bfd.BFDAPITestCase.test_add_bfd6]
ERROR: test_bfd.BFDAPITestCase.test_add_bfd_sha1 [test_bfd.BFDAPITestCase.test_add_bfd_sha1]
ERROR: test_bfd.BFDAPITestCase.test_add_sha1_keys [test_bfd.BFDAPITestCase.test_add_sha1_keys]
ERROR: test_bfd.BFDAPITestCase.test_change_key [test_bfd.BFDAPITestCase.test_change_key]
ERROR: test_bfd.BFDAPITestCase.test_deactivate_auth [test_bfd.BFDAPITestCase.test_deactivate_auth]
ERROR: test_bfd.BFDAPITestCase.test_double_add [test_bfd.BFDAPITestCase.test_double_add]
ERROR: test_bfd.BFDAPITestCase.test_double_add_sha1 [test_bfd.BFDAPITestCase.test_double_add_sha1]
ERROR: test_bfd.BFDAPITestCase.test_mod_bfd [test_bfd.BFDAPITestCase.test_mod_bfd]
ERROR: test_bfd.BFDAPITestCase.test_set_del_udp_echo_source [test_bfd.BFDAPITestCase.test_set_del_udp_echo_source]
ERROR: test_bfd.BFDAPITestCase.test_shared_sha1_key [test_bfd.BFDAPITestCase.test_shared_sha1_key]
Testcase name: LDP Thru Host Stack Iperf
FAILURE: test_vcl.LDPThruHostStackIperf.test_ldp_thru_host_stack_iperf3 [test_vcl.LDPThruHostStackIperf.test_ldp_thru_host_stack_iperf3]
Testcase name: Bidirectional Forwarding Detection (BFD) (SHA1 auth)
ERROR: test_bfd.BFDSHA1TestCase.test_session_up [test_bfd.BFDSHA1TestCase.test_session_up]
Testcase name: Punt Socket for IPv6
ERROR: test_punt.TestIP6PuntSocket.test_punt_socket_dump [test_punt.TestIP6PuntSocket.test_punt_socket_dump]
ERROR: test_punt.TestIP6PuntSocket.test_punt_socket_traffic_multi_port_multi_sockets [test_punt.TestIP6PuntSocket.test_punt_socket_traffic_multi_port_multi_sockets]
ERROR: test_punt.TestIP6PuntSocket.test_punt_socket_traffic_multi_ports_single_socket [test_punt.TestIP6PuntSocket.test_punt_socket_traffic_multi_ports_single_socket]
ERROR: test_punt.TestIP6PuntSocket.test_punt_socket_traffic_single_port_single_socket [test_punt.TestIP6PuntSocket.test_punt_socket_traffic_single_port_single_socket]
Testcase name: Disable Flowprobe feature
ERROR: test_flowprobe.DisableFP.test_0001 [test_flowprobe.DisableFP.test_0001]
Testcase name: Disable IPFIX
ERROR: test_flowprobe.DisableIPFIX.test_0001 [test_flowprobe.DisableIPFIX.test_0001]
Testcase name: VPP Object Model Test
ERROR: test_vom.VOMTestCase.test_vom_cpp [test_vom.VOMTestCase.test_vom_cpp]
Testcase name: BFD-FIB interactions (IPv6)
ERROR: test_bfd.BFDFIBTestCase.test_session_with_fib [test_bfd.BFDFIBTestCase.test_session_with_fib]
Testcase name: Bidirectional Forwarding Detection (BFD)
ERROR: test_bfd.BFD4TestCase.test_echo [test_bfd.BFD4TestCase.test_echo]
ERROR: test_bfd.BFD4TestCase.test_echo_looped_back [test_bfd.BFD4TestCase.test_echo_looped_back]
ERROR: test_bfd.BFD4TestCase.test_intf_deleted [test_bfd.BFD4TestCase.test_intf_deleted]
ERROR: test_bfd.BFD4TestCase.test_session_down [test_bfd.BFD4TestCase.test_session_down]
ERROR: test_bfd.BFD4TestCase.test_session_up [test_bfd.BFD4TestCase.test_session_up]
ERROR: test_bfd.BFD4TestCase.test_session_up_by_ip [test_bfd.BFD4TestCase.test_session_up_by_ip]
Testcase name: VXLAN-GPE Test Case
ERROR: test_vxlan_gpe.TestVxlanGpe.test_decap [test_vxlan_gpe.TestVxlanGpe.test_decap]
ERROR: test_vxlan_gpe.TestVxlanGpe.test_encap [test_vxlan_gpe.TestVxlanGpe.test_encap]
ERROR: test_vxlan_gpe.TestVxlanGpe.test_ucast_flood [test_vxlan_gpe.TestVxlanGpe.test_ucast_flood]
Testcase name: Re-enable Flowprobe feature
ERROR: test_flowprobe.ReenableFP.test_0001 [test_flowprobe.ReenableFP.test_0001]
Testcase name: LDP IPv6 Cut Thru Tests
FAILURE: test_vcl.LDPIpv6CutThruTestCase.test_ldp_ipv6_cut_thru_echo [test_vcl.LDPIpv6CutThruTestCase.test_ldp_ipv6_cut_thru_echo]
TESTCASES WHERE NO TESTS WERE SUCCESSFULLY EXECUTED:
VXLAN over IPv6 Test Case
==============================================================================

0 attempt(s) left.

Change-Id: Id202ed6ee7f57670f34ec87380244c568b509416
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

895e2f85 09-Jan-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

Fix inheritance problem in test/hook.py.

Subclasses cannot modify the signature of their constructors.

def __init__(self, test):
- super(PollHook, self).__init__(test.logger)
+ super(PollHook, self).__init__(test)

Change-Id: I764df8871128f9198a03fac4ec2f45528547467a
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

9e315958 29-Jan-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

VTL: Fix issue with ipaddress library use under python2.

If you pass in a non-unicode 4-byte ipv6 address to ip_address,
ipaddress interprets this as an IPv4Address.

Under python2, ip_address interprets 'a7::' as a packed ipv4:
97.55.58.58

You can test with:
---
import ipaddress
try:
text_type = unicode
except NameError:
text_type = str

addr = ipaddress.ip_address('a7::')
print(addr)
---

Change-Id: I06c561e0ab7315869cc89d0bb08c05e743a90982
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

0ede47aa 29-Jan-2019 Klement Sekera <ksekera@cisco.com>

make test: fix logging

Change-Id: I3867d50746f0f424c8e94929171363e5b2e4d470
Signed-off-by: Klement Sekera <ksekera@cisco.com>

17dcec0b 10-Jan-2019 Neale Ranns <nranns@cisco.com>

IPSEC: API modernisation

- use enums to enumerate the algoritms and protocols that are supported
- use address_t types to simplify encode/deocde
- use typedefs of entry objects to get consistency between add/del API and dump

Change-Id: I7e7c58c06a150e2439633ba9dca58bc1049677ee
Signed-off-by: Neale Ranns <nranns@cisco.com>

64abeeca 24-Jan-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

VTL: Makefile: Don't install pip twice.

Pip is installed via virtualenv. No need to reinstall it again.

Change-Id: I45bea1f9db841ca4309b763ab852623180937727
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

f6e9b014 25-Jan-2019 Neale Ranns <nranns@cisco.com>

DHCP-test: more robust sleep check

Change-Id: I48c382797239dc305e01cc35124140d6ce16149a
Signed-off-by: Neale Ranns <nranns@cisco.com>

37029305 10-Aug-2018 Neale Ranns <nranns@cisco.com>

Use IP and MAC API types for neighbors

use address_t and mac_address_t for IPv6 and ARP entries
and all other API calls in ip.api aprat from the route ones,
that will follow in a separate commit

Change-Id: I67161737c2184d3f8fc1e79ebd2b55121c5b0191
Signed-off-by: Neale Ranns <nranns@cisco.com>

776e46d7 29-Jan-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

VTL: Fix pep8 test/test_syslog.py

Change-Id: I8894a7a8f2be117a4c1cec9ce5134a1572da7ec7
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

bf613955 29-Jan-2019 Klement Sekera <ksekera@cisco.com>

make test: remove generic imports

Change-Id: I55b89f0d9fb082c7763b64b09ab14573468c6704
Signed-off-by: Klement Sekera <ksekera@cisco.com>

311124e2 24-Jan-2019 Neale Ranns <nranns@cisco.com>

IPSEC: tests use opbject registry

this means we test the dumps - to some extent

Change-Id: I8d90745701012012b41a7b3aaf9be97b4dd2bdf8
Signed-off-by: Neale Ranns <nranns@cisco.com>

8e4a89bf 23-Jan-2019 Neale Ranns <nranns@cisco.com>

IPSEC Tests: to per-test setup and tearDown

don't do the setup and teardown in class methods so that with
each test the config is added and deleted. that way we test that
delete actually removes state.
more helpful error codes from VPP for existing IPSEC state.

Change-Id: I5de1578f73b935b420d4cdd85aa98d5fdcc682f6
Signed-off-by: Neale Ranns <nranns@cisco.com>

7425f928 23-Jan-2019 Neale Ranns <nranns@cisco.com>

IP route local and connected

allow routes that are local and connected to be added via the API.
this emulates the addition of a second address in the same subnet
added to an interface.

Change-Id: Ib18a08c26956be9a07b3360664210c8cf6734c84
Signed-off-by: Neale Ranns <nranns@cisco.com>

31df49c3 23-Jan-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

VTL: Test against latest version of syslog_rfc5424_parser.

The latest version moved to lark from pyparsing. The developers were
kind enough to verify that their new grammar works with our tests.

Change-Id: I260b7e4641f6e283862f706c1e52199e28facc5c
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

879d11c2 22-Jan-2019 Neale Ranns <nranns@cisco.com>

GBP: Sclass to src-epg conversions

Change-Id: Ica88268fd6a6ee01da7e9219bb4e81f22ed2fd4b
Signed-off-by: Neale Ranns <nranns@cisco.com>

1ec06fff 16-Jan-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

VTL: VppTestResult: Must implement empty constructor.

Subclasses of (unittest.TestResult|unittest.TextTestResult) must implement an empty constructor.

The standard python library unittests depend on the empty constructor.

Change-Id: I6d1bd2e7d6996d85a9da66cb7d40af0ed3c30e2b
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

a0d82d68 21-Jan-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

VTL: test/lisp.py Fix recursion error.

Accessing priority causes a recursion error.

Change-Id: Ic8cc5c9e198b7da955bc24ea116e9826004cad5e
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

6d9e045b 21-Jan-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

VTL: test/lisp.py. Add missing method: object_id().

Change-Id: I7609a7b173cbfc1de10b346cc8075bca5a40ef3a
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

b951ad84 09-Jan-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

Simplify test/util.py:ppp.

Change-Id: I10596335c7e8f51afc4bcee75132b7a25ebf2a4e
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

9889402b 14-Jan-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

VTL: Add **kwargs to VppTestRunner constructor.

Subclasses should accept **kwargs to ensure compatibility as the
interface changes.

https://github.com/python/cpython/blob/master/Lib/unittest/runner.py#L133

Change-Id: Ia64ffd88899d207a5422f066700d2f7f9c77622e
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

8467919e 13-Jan-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

VTL: Fix sphinx doc generation.

Remove unnecessary envvar magic for sphinx builds.
Just provide the proper mock objects.

Change-Id: I151513eb47d2f71cf221651145dbcdc153448772
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

5011c670 18-Jan-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

VTL: Use latest version of syslog_rfc5424_parser (0.2.0) released: 190117

Upstream changes not compatable with: https://gerrit.fd.io/r/#/c/16797/

Running tests using custom test runner
Active filters: file=test_syslog.py, class=None, function=None
Adding tests from directory tree /vpp/test
1 out of 914 tests match specified filters
Not running extended tests (some tests will be skipped)
==============================================================================
Syslog Protocol Test Cases
==============================================================================
Syslog Protocol test OK

==============================================================================
TEST RESULTS:
Scheduled tests: 1
Executed tests: 1
Passed tests: 1
==============================================================================

Test run was successful

Change-Id: I42f86ae3e7f062c0343025ba16bc6e8d2c34ed50
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

d7532098 14-Jan-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

VTL: Don't swallow exceptions from syslog_rfc5424_parser

Change-Id: I4e93073ceb7b75476e847ae8d56301770c8b264f
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

4fbc41af 13-Jan-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

VTL: Move doc generation and linting to python3.

* running linting/pycodestyle under python3 provides the additional benefit
of access to the python3 AST.

Change-Id: I659dbd2733471285867be95eec078f7415aa0bcd
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

d91fa61e 15-Jan-2019 Klement Sekera <ksekera@cisco.com>

make test: raise packet tracing limit to 1000

Change-Id: I4309cefe13ee861342e7962c7652919a47748656
Signed-off-by: Klement Sekera <ksekera@cisco.com>

04575c5e 13-Jan-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

VTL: vpp_papi_provider: Don't shortcircuit vpp_papi jasonfile detection.

The detection login in vpp_papi is significantly more advanced than
the implementation in vpp_papi_provider.

Let's take full advantage of it and ensure consistent behavior.

Change-Id: I786e6d5f4588a0d74e863cce1b0bc1a93fa0e614
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

dd3c5d25 14-Jan-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

VTL: Allow running simple unittest.TestCases.

It came to my attention that Ole added a simple test in:
https://gerrit.fd.io/r/#/c/16381/ and the framework forced him
to launch an instance of VPP to test the formatting of a mac address.

This change allows the test framework to run standard unittest.TestCases
without the need to spawn a VPP instance.

Change-Id: I56651ab27c4c6bf920081a526f168a743d643201
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

262e064b 14-Jan-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

VTL: New version of pyparsing breaks tests.

Specify use of version <2.3.1 released Jan 13, 2019

Change-Id: I23cfb802a677956b77897e0c2b690fac50e18541
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

ad9d5283 13-Dec-2018 Alexander Chernavin <achernavin@netgate.com>

bonding: support custom interface IDs

Change-Id: I78fe58144fa3ba2e1c7135897a13a2541f235c91
Signed-off-by: Alexander Chernavin <achernavin@netgate.com>

46e8e91b 09-Jan-2019 juraj.linkes <juraj.linkes@pantheon.tech>

Fix interactive tests

When running tests interactively (i.e. not using child process) the
tests are split into small suites each containing tests from a
VPPTestCase, but only the first suite is run. Fix this by creatin a new
suite with all of these small suites in it and running that suite.

Change-Id: I0236f4a980d01765eb993f41d54d98640bb2cd39
Signed-off-by: juraj.linkes <juraj.linkes@pantheon.tech>

6ad7231c 10-Jan-2019 Neale Ranns <nranns@cisco.com>

VOM: IP route ECMP support

Change-Id: Iede0c30aacfe7289f428062bb9540410097c40e2
Signed-off-by: Neale Ranns <nranns@cisco.com>

45db885a 09-Jan-2019 Neale Ranns <nranns@cisco.com>

ARP/ND: copy opaque2 persistent fields to new packet

Change-Id: Ic65f686aaccaf8450732d88d7471b587faccaa9d
Signed-off-by: Neale Ranns <nranns@cisco.com>

e33cab39 20-Dec-2018 juraj.linkes <juraj.linkes@pantheon.tech>

Enable random reassembly test for ARM

The underlying failure has been fixed and now the test can be
re-enabled.

Change-Id: I75251f6150ef1771dc23ea079799229690cf87d9
Signed-off-by: juraj.linkes <juraj.linkes@pantheon.tech>

23c9a2e5 21-Dec-2018 juraj.linkes <juraj.linkes@pantheon.tech>

Enable GBP tests for ARM

The underlying failure has been fixed.

Change-Id: If2ca92a17cfed1c2d7253e46ab161f301f847f29
Signed-off-by: juraj.linkes <juraj.linkes@pantheon.tech>

f0769631 09-Jan-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

test/vpp_papi_provider.py: Fix simple copy/paste error.

Change-Id: I8993132bdd0931c96ba8bc879ec3b4ae938a46c5
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

8aeb2207 08-Jan-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

test framework. Remove unused code.

Change-Id: I1bd14d5aff4918b58aef18fa0a9264e033989f6e
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

7c03ed47 27-Dec-2018 Neale Ranns <nranns@cisco.com>

VOM: mroutes

- fixes in ip.api for dumping mroute path flags

Change-Id: I13b0cfb15d374250ed71bd4e13dda9b798c18204
Signed-off-by: Neale Ranns <nranns@cisco.com>

3c6f1045 19-Dec-2018 Paul Vinciguerra <pvinci@vinciconsulting.com>

VPP-1508: Python3: Support simultaneous p2/p3 venvs.

Change-Id: I24cf3e390f6f0b98be939ef717048742d3f183d6
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

4a7cbcd0 02-Jan-2019 Florin Coras <florin.coras@gmail.com>

Revert "add ipsecmb plugin"

This reverts commit be16020c5034bc69df25a8ecd7081aec9898d93c.

The arm verify job actually failed but the result was overwritten by an x86 ubuntu retry.

Change-Id: Idcae7691fc575053563b8ff8bcad661c15891668
Signed-off-by: Florin Coras <fcoras@cisco.com>

be16020c 08-Nov-2018 Klement Sekera <ksekera@cisco.com>

add ipsecmb plugin

Change-Id: I99c0737dfeeec2db267773625ddc9b55324fd237
Signed-off-by: Klement Sekera <ksekera@cisco.com>

b0f662fe 27-Dec-2018 Florin Coras <fcoras@cisco.com>

vcl/ldp: add write msg function and fine tuning

Allows app to push data. Additionally, ensure reset/close replies are
not sent unless vcl closes the session.

Change-Id: Icbbf933cf57b55cfbcc7b802af0f83919a066f65
Signed-off-by: Florin Coras <fcoras@cisco.com>

1c17e2ec 20-Dec-2018 Neale Ranns <nranns@cisco.com>

GBP: add allowed ethertypes to contracts

Change-Id: I74782d3b9b71a071bb500c34866a017b8ee15767
Signed-off-by: Neale Ranns <nranns@cisco.com>

fc7344f9 20-Dec-2018 Jon Loeliger <jdl@netgate.com>

MAP: Convert from DPO to input feature.

Change-Id: I25c86aea23dff19656449b23133db27b1f062ac0
Signed-off-by: Jon Loeliger <jdl@netgate.com>
Signed-off-by: Ole Troan <ot@cisco.com>

a45dc07c 21-Dec-2018 Ole Troan <ot@cisco.com>

Revert "tests: Rework vpp config generation."

This reverts commit 919efad2671993d4c6d5a0dba8eeb99d5c60edf1.

Change-Id: I5ec4fa08a03f508dac684dc1ddbd7e6b85c49b97
Signed-off-by: Ole Troan <ot@cisco.com>

087c811b 15-Dec-2018 Paul Vinciguerra <pvinci@vinciconsulting.com>

Python Tests: Make VppTestCase unit testable.

* This allows for VppTestCase to instantiated with an empty constructor.

Change-Id: Ib71d3bfb4529e113f9b73c39de9b95f12ee9cfb4
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

919efad2 18-Dec-2018 Paul Vinciguerra <pvinci@vinciconsulting.com>

tests: Rework vpp config generation.

* Allows test cases to configure the VPP runtime config
during fixture setup.

* Sample use in a TestCase:
@classmethod
def setUpConstants(cls):
tempdir = cls.tempdir
cls.config.add('punt', 'socket', '%s/socket_punt' % cls.tempdir)
super(TestPuntSocket, cls).setUpConstants()
# enable/disabe a plugin via:
#cls.config.add_plugin('dpdk_plugin.so', 'disable')

* Supports the following config stanzas:
'unix',
'acl-plugin'
'api-queue'
'api-trace'
'api-segment'
'cj'
'cpu'
'dns'
'dpdk
# currently don't support dynamic keys
# 'heapsize'
'l2learn'
'l2tp'
'mactime'
'mc'
'nat'
'oam'
'plugins'
'punt'
'session'
'socksvr'
'statseg'
'tapcli'
'tcp'
'tuntap'
'vhost-user'

Change-Id: I44f276487267d26eaa46f87e730bdd861003b234
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

00a469d9 20-Dec-2018 Neale Ranns <nranns@cisco.com>

GBP: test case hardening against timing races

Change-Id: I3b5d369a37233c7bb2113ce31479371c610977ef
Signed-off-by: Neale Ranns <nranns@cisco.com>

fd0d5087 18-Dec-2018 Matus Fabian <matfabia@cisco.com>

NAT: total users and sessions gauges (VPP-1484)

Change-Id: I41a82e21571d5c64d01af72cd88c3983afac26ed
Signed-off-by: Matus Fabian <matfabia@cisco.com>

775f73c6 20-Dec-2018 Neale Ranns <nranns@cisco.com>

FIB: encode the label stack in the FIB path during table dump

Change-Id: I28e8a99b980ad343a4209e673201791b91ceab4e
Signed-off-by: Neale Ranns <nranns@cisco.com>

a3aaa61e 09-Dec-2018 Paul Vinciguerra <pvinci@vinciconsulting.com>

test/vpp_ip.py: Correct usage of 'is'

* Correct 'is' (identity) usage where equality is needed '=='.
* Change raise 'Exception' to log message and return NotImplemented.
(see: https://docs.python.org/3/library/constants.html#NotImplemented)
* Remove duplicate property: bytes.
* Remove duplicate method: __eq__.

Change-Id: Id3ae4f92f985eb7cef334e2679f19ecc971007c1
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

852f5ef9 15-Dec-2018 Paul Vinciguerra <pvinci@vinciconsulting.com>

VPP-1508 python3 tests: raw_input

'raw_input' does not exist in python3.

Change-Id: I95d916db2834fab83e5e791f35103a4513e610b8
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

defde0f8 06-Dec-2018 Paul Vinciguerra <pvinci@vinciconsulting.com>

Tests: Cleanup @skip decorator.

The runnning environment is static as of module load time,
so only evalute the conditions once at module load time.

Track-by: VPP-1518

Change-Id: I73b0d17ae1ff90789e70307f168d43921829aec8
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

d0f70a34 14-Dec-2018 Klement Sekera <ksekera@cisco.com>

reassembly: replace asserts with error counters

Change-Id: Iaa39aea990bc04147f6a049215e990a567d30106
Signed-off-by: Klement Sekera <ksekera@cisco.com>

65eb7723 14-Dec-2018 Paul Vinciguerra <pvinci@vinciconsulting.com>

VPP-1508: Have test/Makefile honor PYTHON= envvar.

Change-Id: Iff71a5982b73c97e3f546beb1cf52935a267f5f5
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

b686508c 06-Dec-2018 Matus Fabian <matfabia@cisco.com>

NAT44: nat44_add_del_lb_static_mapping enhancements (VPP-1514)

Change-Id: I5419e06592b0402e911e132796368800321f355a
Signed-off-by: Matus Fabian <matfabia@cisco.com>

003d5da2 17-Dec-2018 Ole Troan <ot@cisco.com>

VAPI/VOM: Removing legacy stats tests, add string type.

Fix misc VAPI/VOM generation and test cases.

Change-Id: I1abf9ecdb6f8a2129f11e0a9ed1c0fe04cdf5c47
Signed-off-by: Ole Troan <ot@cisco.com>

8006c6aa 16-Dec-2018 Ole Troan <ot@cisco.com>

PAPI: Add MACAddress object wrapper for vl_api_mac_address_t

Change the definition of vl_api_mac_address_t to an aliased type.

Change-Id: I1434f316d0fad6a099592f39bceeb8faeaf1d134
Signed-off-by: Ole Troan <ot@cisco.com>

9edb83a3 11-Dec-2018 Pavel Kotucek <pavel.kotucek@pantheon.tech>

punt: additional tests for multi clients

Change-Id: I0e25c23fc7b44b465f1b0d05a881fbe9816a0264
Signed-off-by: Pavel Kotucek <pavel.kotucek@pantheon.tech>

b6d92d81 02-Dec-2018 Klement Sekera <ksekera@cisco.com>

make test: add option for adding extra vpp config

Change-Id: Ief316756635794dadf2f0f4190aa20745df5e53c
Signed-off-by: Klement Sekera <ksekera@cisco.com>

4eed7474 16-Dec-2018 Paul Vinciguerra <pvinci@vinciconsulting.com>

Fix TestIPv4FibCrud interdependencies.

The tests fail if run independently or out of order.
This change breaks the dependency between the tests.

ERROR: Add 1k routes
------------------------------------------------------------------------------
Traceback (most recent call last):
File "/vpp/test/test_ip4.py", line 514, in test_3_add_new_routes
self.deleted_routes.remove(x)
ValueError: list.remove(x): x not in list

Change-Id: I344ceba6bd8b86556f92e50080be6c43092b9faf
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

4ee633e8 13-Dec-2018 Klement Sekera <ksekera@cisco.com>

VPP-1523: harden reassembly

Change-Id: I00d7b38bd99e81e3921ce08cce50d613f11de36e
Signed-off-by: Klement Sekera <ksekera@cisco.com>

ae809835 23-Nov-2018 Neale Ranns <nranns@cisco.com>

IP6-MFIB: replace the radix tree with bihash (VPP-1526)

Change-Id: I7a48890c075826fbd8c75436dfdc5ffff230a693
Signed-off-by: Neale Ranns <nranns@cisco.com>

a5e73762 14-Dec-2018 Matus Fabian <matfabia@cisco.com>

NAT: counters (VPP-1484)

Change-Id: I5d1852a09712adfe7547c200d161539736aca6f5
Signed-off-by: Matus Fabian <matfabia@cisco.com>

2eca70db 13-Dec-2018 juraj.linkes <juraj.linkes@pantheon.tech>

Fix test results

In a rare case a failure can occur in a VppTestCase which hasn't been
part of the original TestSuite, such as in memif testcases. Fix the
reporting after test run in these cases.

Change-Id: Ib2a34fc195179605c22b95bd0e2c7cebca17012f
Signed-off-by: juraj.linkes <juraj.linkes@pantheon.tech>

400f6d8c 13-Dec-2018 Klement Sekera <ksekera@cisco.com>

reassembly: fix internal buffer count accounting

Change-Id: I6af2c8552aeafe0abc8b8c3e5af1a05640e95919
Signed-off-by: Klement Sekera <ksekera@cisco.com>

14d7e907 10-Dec-2018 Klement Sekera <ksekera@cisco.com>

VPP-1522: harden reassembly code

Change-Id: Ib5a20bff7d8a340ecf50bcd4a023d6bf36382ba3
Signed-off-by: Klement Sekera <ksekera@cisco.com>

1314ec61 12-Dec-2018 Paul Vinciguerra <pvinci@vinciconsulting.com>

test/hook.py. Add human-friendly annotations to log msgs.

* Add human-friendly annotations to packed data values in
the logs.

Examples:
vpp-unittest-TestNAT66-_JdbMS/log.txt:22:31:29,152 API: ip_neighbor_add_del (is_static=0, is_no_adj_fib=0, is_add=1, sw_if_index=2, dst_address='\xfd\x01\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02 (fd01:2::2)', mac_address='\x02\x02\x00\x00\xff\x02 (02:02:00:00:ff:02)', is_ipv6=1)

vpp-unittest-TestACL_dot1ad_bridged-xEdhrj/log.txt:22:31:17,130 API: ip_neighbor_add_del (is_static=0, is_no_adj_fib=0, is_add=1, sw_if_index=5, dst_address='\xfd\x01\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc9 (fd01:5::c9)', mac_address='\x02\x05\xc9\x00\xff\xc9 (02:05:c9:00:ff:c9)', is_ipv6=1)
vpp-unittest-TestACL_dot1ad_bridged-xEdhrj/log.txt:22:31:17,240 API: sw_interface_add_del_address (address_length=24, del_all=0, is_add=1, sw_if_index=6, address='\xac\x10\x06\x01 (172.16.6.1)', is_ipv6=0)
vpp-unittest-TestACL_dot1ad_bridged-xEdhrj/log.txt:22:31:17,314 API: sw_interface_add_del_address (address_length=64, del_all=0, is_add=1, sw_if_index=6, address='\xfd\x01\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01 (fd01:6::1)', is_ipv6=1)

Change-Id: Id6991569ee0ff853f76fae8fac941e8a26468a19
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

413f4a5b 28-Nov-2018 Ole Troan <ot@cisco.com>

API: Use string type instead of u8.

The new string type is modelled after string in proto3.
It is always variable length.

Change-Id: I64884067e28a80072c8dac31b7c7c82d6e306051
Signed-off-by: Ole Troan <ot@cisco.com>
Signed-off-by: Michal Cmarada <mcmarada@cisco.com>
Signed-off-by: Ole Troan <ot@cisco.com>

51edc3ab 21-Nov-2018 Mohsin Kazmi <sykazmi@cisco.com>

vom: Add support for new stats

This patch deprecates old stats and adds support for
new stats.

This implements the PULL design where client will enable
stats on objects (i.e. interfaces, etc), register a call
back function which will run once stats will be ready for
enabled object and call HW::read_stats() periodically to
read stats for enabled objects from VPP.

Change-Id: I32525a417427be87408d01f8bc93a731602ff690
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>

cf3ecb1a 11-Dec-2018 Neale Ranns <nranns@cisco.com>

VOM: vxlan-tunnel takes egress interface for multicast

Change-Id: I23b44d883fbd7919bf55b96b180f97837fd6dae9
Signed-off-by: Neale Ranns <nranns@cisco.com>

ca7f53a1 10-Dec-2018 Lijian.Zhang <Lijian.Zhang@arm.com>

Fix CDP failure in make test

Once the hostname is longer than 15 bytes,
the name of device in the output of show cdp command will be truncated,
and CDP test case will fail with below message.

==============================================================================
FAIL: test_send_cdp_packet (test_cdp.TestCDP)
------------------------------------------------------------------------------
Traceback (most recent call last):
File "vpp/test/test_cdp.py", line 92, in test_send_cdp_packet
"CDP received invalid device id")
File "vpp/test/framework.py", line 804, in assert_equal
self.assertEqual(real_value, expected_value, msg)
AssertionError: Invalid CDP received invalid device id: net-x86-supermi does not match expected value net-x86-supermicro-02

Change-Id: Ia32b92c6cd1bb6070adcee3ec45e38399ec382a7
Signed-off-by: Lijian Zhang <Lijian.Zhang@arm.com>

0bcad32b 11-Dec-2018 Ole Troan <ot@cisco.com>

PAPI: Allow ipaddress object as argument and return values from API calls

The API calls that use any of vl_api_address_t, vl_api_ip4_address,
vl_api_ip6_address_t, vl_api_prefix_t, vl_api_ip4_prefix_t,
vl_api_ip6_prefix_t now accepts either the old style dictionary,
a text string (2001:db8::/32) or an ipaddress ojbect.

Unless it is called with '_no_type_conversion':True, it will
also return an appropriate ipaddress object.

Change-Id: I84e4a1577bd57f6b5ae725f316a523988b6a955b
Signed-off-by: Ole Troan <ot@cisco.com>

185e6490 28-Nov-2018 juraj.linkes <juraj.linkes@pantheon.tech>

Fix typo in sanity test description

Change-Id: Icd575b8ed62c340c57857ff6576f65557434f3e0
Signed-off-by: juraj.linkes <juraj.linkes@pantheon.tech>

193c47d9 10-Dec-2018 Neale Ranns <nranns@cisco.com>

VOM: vxlan-gbp

Change-Id: I5f4464435f1346207f2f9b497369795eb82b58b6
Signed-off-by: Neale Ranns <nranns@cisco.com>

be2286b0 09-Dec-2018 Neale Ranns <nranns@cisco.com>

IP-local: any IP can appear as the source (VPP-1522)

Change-Id: Ib0d9b533d72c899b77c9a7bd1daa9b4a55b7221c
Signed-off-by: Neale Ranns <nranns@cisco.com>

6919b0de 09-Dec-2018 Paul Vinciguerra <pvinci@vinciconsulting.com>

test/framework.py: change logger to return 'e' format.

* When the framework logs an unexpected sleep time,
display the units in the same format. Typically,
it has been returning a float and an 'e'.
ex. unexpected time.sleep() result - slept for 0.000107049942017s instead of ~4.88758087158e-05s!

* Defer logger interpolation.

Change-Id: I543ad6d41c7f263d61615341437f80973c0017de
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

7f99183a 06-Dec-2018 Ole Troan <ot@cisco.com>

Test framework: StringIO fixes for Python3

Add 2/3 support to binarytomac and mactobinary and move to vpp_mac.py

Change-Id: I3dc7e4a24486aee22140c781aae7e44e58935877
Signed-off-by: Ole Troan <ot@cisco.com>

521a8d7d 06-Dec-2018 Neale Ranns <nranns@cisco.com>

FIB recusrion loop checks traverse midchain adjacencies

if a tunnel's destination address is reachable through the tunnel
(see example config belwo) then search for and detect a recursion
loop and don't stack the adjacency. Otherwise this results in a
nasty surprise.

DBGvpp# loop cre
DBGvpp# set int state loop0 up
DBGvpp# set int ip addr loop0 10.0.0.1/24
DBGvpp# create gre tunnel src 10.0.0.1 dst 1.1.1.1
DBGvpp# set int state gre0 up
DBGvpp# set int unnum gre0 use loop0
DBGvpp# ip route 1.1.1.1/32 via gre0

DBGvpp# sh ip fib 1.1.1.1
ipv4-VRF:0, fib_index:0, flow hash:[src dst sport dport proto ] locks:[src:plugin-hi:2, src:default-route:1, ]
1.1.1.1/32 fib:0 index:11 locks:4 <<< this is entry #11
src:CLI refs:1 entry-flags:attached, src-flags:added,contributing,active,
path-list:[14] locks:2 flags:shared,looped, uPRF-list:12 len:1 itfs:[2, ]
path:[14] pl-index:14 ip4 weight=1 pref=0 attached-nexthop: oper-flags:recursive-loop,resolved, cfg-flags:attached,
1.1.1.1 gre0 (p2p)
[@0]: ipv4 via 0.0.0.0 gre0: mtu:9000 4500000000000000fe2fb0cc0a0000010101010100000800
stacked-on entry:11: <<<< and the midchain forwards via entry #11
[@2]: dpo-drop ip4

src:recursive-resolution refs:1 src-flags:added, cover:-1

forwarding: unicast-ip4-chain
[@0]: dpo-load-balance: [proto:ip4 index:13 buckets:1 uRPF:12 to:[0:0]]
[0] [@6]: ipv4 via 0.0.0.0 gre0: mtu:9000 4500000000000000fe2fb0cc0a0000010101010100000800
stacked-on entry:11:
[@2]: dpo-drop ip4

DBGvpp# sh adj 1
[@1] ipv4 via 0.0.0.0 gre0: mtu:9000 4500000000000000fe2fb0cc0a0000010101010100000800
stacked-on entry:11:
[@2]: dpo-drop ip4
flags:midchain-ip-stack midchain-looped <<<<< this is a loop
counts:[0:0]
locks:4
delegates:

children:
{path:14}

Change-Id: I39b82bd1ea439be4611c88b130d40289fa0c1b59
Signed-off-by: Neale Ranns <nranns@cisco.com>

e88865d7 28-Nov-2018 Pavel Kotucek <pavel.kotucek@pantheon.tech>

VPP-1506: dump local punts and registered punt sockets

Change-Id: If7835e9b80ec9402404bfc8d271eb11a10ef992b
Signed-off-by: Pavel Kotucek <pavel.kotucek@pantheon.tech>

e6b58cf8 29-Nov-2018 juraj.linkes <juraj.linkes@pantheon.tech>

Test reader thread hardening

The test reader thread could get stuck in case an unexpected Exception
was raised during test runs in parent thread. Catch the Exception, close
the thread and raise the Exception to avoid this.

Change-Id: I3a9298d593c334d96d04b6207d604b684572a2ac
Signed-off-by: juraj.linkes <juraj.linkes@pantheon.tech>

91afaab0 30-Nov-2018 Paul Vinciguerra <pvinci@vinciconsulting.com>

Fix L2BD arp termination Test Case

This patch is a followup to: https://gerrit.fd.io/r/#/c/16307/ which is
currently causing ubuntu1804 to complain.

See: https://logs.fd.io/production/vex-yul-rot-jenkins-1/vpp-beta-verify-master-ubuntu1804/3837/console-timestamp.log.gz
s/RuntimeError/ for details.

==============================================================================
L2BD arp termination Test Case
==============================================================================
12:02:21,850 Couldn't stat : /tmp/vpp-unittest-TestL2bdArpTerm-_h44qo/stats.sock
L2BD arp term - add 5 hosts, verify arp responses OK
L2BD arp term - delete 3 hosts, verify arp responses OK
L2BD arp term - recreate BD1, readd 3 hosts, verify arp responses OK
L2BD arp term - 2 IP4 addrs per host OK
L2BD arp term - create and update 10 IP4-mac pairs OK
L2BD arp/ND term - hosts with both ip4/ip6 OK
L2BD ND term - Add and Del hosts, verify ND replies OK
L2BD ND term - Add and update IP+mac, verify ND replies OK
L2BD arp term - send garps, verify arp event reports OK
L2BD arp term - send duplicate garps, verify suppression OK
L2BD arp term - disable ip4 arp events,send garps, verify no events OK
L2BD ND term - send NS packets verify reports OK
L2BD ND term - send duplicate ns, verify suppression OK
L2BD ND term - disable ip4 arp events,send ns, verify no events OK

==============================================================================
TEST RESULTS:
Scheduled tests: 14
Executed tests: 14
Passed tests: 14
==============================================================================

Test run was successful

Change-Id: If66f22412f8aa36b183131cd22af4b3e7a20da46
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

f18eb86c 03-Dec-2018 juraj.linkes <juraj.linkes@pantheon.tech>

Rename VPP_TEST_FAILED_DIR to FAILED_DIR

15999 renamed VPP_TEST_FAILED_DIR, but not in all files. Fix this in the
one remaining file.

Change-Id: I159cdc86bfd5dd33af74256830873a8d081f1a73
Signed-off-by: juraj.linkes <juraj.linkes@pantheon.tech>

68ebc83e 29-Nov-2018 juraj.linkes <juraj.linkes@pantheon.tech>

Skip failing ARM testcases for CI

There are a few tests that fail on ARM and thus we can't enable testing
in CI. Skip the failing tests until they're fixed so that we catch new
failures in CI (when we enable testing for the remaining tests).

Change-Id: Ie896ef5c449ef965029633e38d317a8d5ac26352
Signed-off-by: juraj.linkes <juraj.linkes@pantheon.tech>

f0cbcea4 06-Dec-2018 Paul Vinciguerra <pvinci@vinciconsulting.com>

Test framework: fix import logic for sphynx.

* Simplify conditional import. Remove global variable.
* Fix vpp_l2 import side effect.

Change-Id: I3945cf2a0cf8844004af2cd636f92d73ddc60f93
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

8c8acc02 27-Nov-2018 Ole Troan <ot@cisco.com>

API: Change ip4_address and ip6_address to use type alias.

Change-Id: Id8669bbadd1d6b2054865a310a654e9b38d1667d
Signed-off-by: Ole Troan <ot@cisco.com>

661f91fe 29-Nov-2018 Paul Vinciguerra <pvinci@vinciconsulting.com>

VPP-1508: Python3 compatible print

Change-Id: I7d2597f2a9589f2463e213da6ca67b1b7593095e
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

a6fe463c 25-Nov-2018 Paul Vinciguerra <pvinci@vinciconsulting.com>

VPP-1508 python3 tests: xrange

xrange is not supported. Use six.range.

py27 runtests: commands[5] | stestr --test-path ./test run --slowest test_ip4 test_ip6
==============================================================================
IPv4 disabled
==============================================================================
==============================================================================
ICMP Echo Test Case
==============================================================================
{0} test.test_ip4.TestIPDisabled.test_ip_disabled [5.256819s] ... ok
07:24:41,902 Couldn't stat : /tmp/vpp-unittest-TestICMPEcho-hU4IsB/stats.sock
{1} test.test_ip4.TestICMPEcho.test_icmp_echo [0.367035s] ... ok
==============================================================================
IPv4 Deaggregate Routes
==============================================================================
==============================================================================
IPv4 Input Exceptions
==============================================================================
07:24:47,314 Couldn't stat : /tmp/vpp-unittest-TestIPDeag-eE1VgC/stats.sock
{1} test.test_ip4.TestIPDeag.test_ip_deag [5.895646s] ... ok
{0} test.test_ip4.TestIPInput.test_ip_input [5.819001s] ... ok
==============================================================================
IPv4 longest Prefix Match

... output truncated ...

==============================
Failed 4 tests - output below:
==============================

test.test_ip4.TestIPv4FibCrud.test_3_add_new_routes
---------------------------------------------------

Captured traceback:
~~~~~~~~~~~~~~~~~~
Traceback (most recent call last):
File "/vpp/test/test_ip4.py", line 509, in test_3_add_new_routes
self.deleted_routes.remove(x)
ValueError: list.remove(x): x not in list

test.test_ip4.TestIPv4FibCrud.test_2_del_routes
-----------------------------------------------

Captured traceback:
~~~~~~~~~~~~~~~~~~
Traceback (most recent call last):
File "/vpp/test/test_ip4.py", line 478, in test_2_del_routes
self.configured_routes.remove(x)
ValueError: list.remove(x): x not in list

test.test_ip4_vrf_multi_instance.TestIp4VrfMultiInst.test_ip4_vrf_03
--------------------------------------------------------------------

Captured traceback:
~~~~~~~~~~~~~~~~~~
Traceback (most recent call last):
File "/vpp/test/test_ip4_vrf_multi_instance.py", line 465, in test_ip4_vrf_03
self.create_vrf_and_assign_interfaces(1)
File "/vpp/test/test_ip4_vrf_multi_instance.py", line 189, in create_vrf_and_assign_interfaces
pg_if.set_table_ip4(vrf_id)
File "/vpp/test/vpp_interface.py", line 322, in set_table_ip4
self.sw_if_index, 0, self.ip4_table_id)
File "/vpp/test/vpp_papi_provider.py", line 264, in sw_interface_set_table
'vrf_id': table_id})
File "/vpp/test/vpp_papi_provider.py", line 196, in api
raise UnexpectedApiReturnValueError(msg)
test.vpp_papi_provider.UnexpectedApiReturnValueError: API call failed, expected 0 return value instead of -114 in sw_interface_set_table_reply(_0=91, context=1007, retval=-114)

test.test_ip4_vrf_multi_instance.TestIp4VrfMultiInst.test_ip4_vrf_02
--------------------------------------------------------------------

Captured traceback:
~~~~~~~~~~~~~~~~~~
Traceback (most recent call last):
File "/vpp/test/test_ip4_vrf_multi_instance.py", line 445, in test_ip4_vrf_02
self.reset_vrf_and_remove_from_vrf_list(1)
File "/vpp/test/test_ip4_vrf_multi_instance.py", line 208, in reset_vrf_and_remove_from_vrf_list
self.vapi.reset_fib(vrf_id, is_ipv6=0)
File "/vpp/test/vpp_papi_provider.py", line 1137, in reset_fib
'is_ipv6': is_ipv6,
File "/vpp/test/vpp_papi_provider.py", line 196, in api
raise UnexpectedApiReturnValueError(msg)
test.vpp_papi_provider.UnexpectedApiReturnValueError: API call failed, expected 0 return value instead of -3 in reset_fib_reply(_0=259, context=1198, retval=-3)

======
Totals
======
Ran: 57 tests in 266.0000 sec.
- Passed: 53
- Skipped: 0
- Expected Fail: 0
- Unexpected Success: 0
- Failed: 4
Sum of execute time for each test: 157.3925 sec.

==============
Worker Balance
==============
- Worker 0 (29 tests) => 0:03:52.608995
- Worker 1 (28 tests) => 0:04:08.615473
Test id Runtime (s)
--------------------------------------------- -----------
test.test_ip_mcast.TestIPMcast.test_ip6_mcast 8.535
test.test_ip4.TestIPPunt.test_ip_punt 8.082
test.test_ip6.TestIP6Punt.test_ip_punt 6.582
test.test_ip6.TestIPDeag.test_ip_deag 6.175
test.test_ip6.TestIPv6.test_ns 6.171
test.test_ip4.TestIPDeag.test_ip_deag 5.896
test.test_ip6.TestIPv6.test_fib 5.846
test.test_ip4.TestIPInput.test_ip_input 5.819
test.test_ip6.TestIPv6.test_rs 5.737
test.test_ip4.TestIPv4.test_fib 5.267
ERROR: InvocationError for command '/vpp/.tox/py27/bin/stestr --test-path ./test run --slowest test_ip4 test_ip6' (exited with code 1)
______________________________________________________ summary ______________________________________________________
ERROR: py27: commands failed
Change-Id: Id9f6ecb4897386f790d82ab908963e4971a3aac8
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

dc2e2513 04-Dec-2018 Florin Coras <fcoras@cisco.com>

vcl: test refactor and improvements

Change-Id: I92f415bf253d6e051ec9d94ebeb98f081b2a0293
Signed-off-by: Florin Coras <fcoras@cisco.com>

de847277 28-Nov-2018 Neale Ranns <nranns@cisco.com>

IPSEC-AH: anti-replay testing

Change-Id: Ia5d45db73e4bdb32214ed4f365d5eec8e28115f3
Signed-off-by: Neale Ranns <nranns@cisco.com>

b0598497 25-Oct-2018 Steven <sluong@cisco.com>

vppinfra: c11 safe string functions

Add memcmp_s, strcmp_s, strncmp_s, strcpy_s, strncpy_s, strcat_s, strncat_s,
strtok_s, strnlen_s, and strstr_s C11 safe string API. For migrating extant
unsafe API, add also the corresponding macro version of each safe API,
clib_memcmp, clib_strcmp, etc.

In general, the benefits of the safe string APIs are to provide null pointer
checks, add additional argument to specify the string length of the passed
string rather than relying on the null terminated character, and src/dest
overlap checking for the the string copy operations.

The macro version of the API takes the same number of arguments as the unsafe
API to provide easy migration. However, it does not usually provide the full
aformentioned benefits. In some cases, it is necessary to move to the safe
API rather than using the macro in order to avoid some unpredictable problems
such as accessing memory beyond what it is intended due to the lack of the
passed string length.

dbarach: add a "make test" vector, and a doxygen file header cookie.

Change-Id: I5cd79b8928dcf76a79bf3f0b8cbc1a8f24942f4c
Signed-off-by: Steven <sluong@cisco.com>
Signed-off-by: Dave Barach <dave@barachs.net>

dd89173c 30-Nov-2018 Paul Vinciguerra <pvinci@vinciconsulting.com>

Fix L2BD arp termination Test Case

==============================================================================
L2BD arp termination Test Case
==============================================================================
12:02:21,850 Couldn't stat : /tmp/vpp-unittest-TestL2bdArpTerm-_h44qo/stats.sock
L2BD arp term - add 5 hosts, verify arp responses OK
L2BD arp term - delete 3 hosts, verify arp responses OK
L2BD arp term - recreate BD1, readd 3 hosts, verify arp responses OK
L2BD arp term - 2 IP4 addrs per host OK
L2BD arp term - create and update 10 IP4-mac pairs OK
L2BD arp/ND term - hosts with both ip4/ip6 OK
L2BD ND term - Add and Del hosts, verify ND replies OK
L2BD ND term - Add and update IP+mac, verify ND replies OK
L2BD arp term - send garps, verify arp event reports OK
L2BD arp term - send duplicate garps, verify suppression OK
L2BD arp term - disable ip4 arp events,send garps, verify no events OK
L2BD ND term - send NS packets verify reports OK
L2BD ND term - send duplicate ns, verify suppression OK
L2BD ND term - disable ip4 arp events,send ns, verify no events OK

==============================================================================
TEST RESULTS:
Scheduled tests: 14
Executed tests: 14
Passed tests: 14
==============================================================================

Test run was successful

Change-Id: I6bb1ced11b88080ffaa845d22b0bc471c4f91683
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

33177d69 30-Nov-2018 Klement Sekera <ksekera@cisco.com>

make test: print TEST= values for failed tests

This prints the format strings required to rerun the failed test next to
the failures.

Change-Id: I973d8ae025f026129826356bce265b1e70086d2f
Signed-off-by: Klement Sekera <ksekera@cisco.com>

774356ad 29-Nov-2018 Neale Ranns <nranns@cisco.com>

GBP: UT more robust for endpoint timeout

Change-Id: Ib78c747fa3e304f7158f8182d060e11e4e778400
Signed-off-by: Neale Ranns <nranns@cisco.com>

0ae445ea 30-Nov-2018 Florin Coras <fcoras@cisco.com>

vcl/test: increase wait time before connect

Also split tests into smaller groups

Change-Id: I35809607b7a59029606bb34b90cfeffd1985fe60
Signed-off-by: Florin Coras <fcoras@cisco.com>

d85de68e 30-Nov-2018 Florin Coras <fcoras@cisco.com>

vcl: wait for segments with segment handle

Instead of waiting for notification from binary api.

Change-Id: I5ecab857d6bcdbed62d6bb06709570c4cf6b19ea
Signed-off-by: Florin Coras <fcoras@cisco.com>

978aa643 25-Nov-2018 Paul Vinciguerra <pvinci@vinciconsulting.com>

Tests: Fix traceback.

self.assertTrue(packet.haslayer(msg_type))
File "/usr/lib/python2.7/unittest/case.py", line 422, in assertTrue
raise self.failureException(msg)
AssertionError: 0 is not true

* Scapy packet.haslayer() returns 1 or 0.
Replace with assertEqual(packet.haslayer(), 1) to fix tracebacks.

* Scapy has multiple layers called TCP/UDP
Specify the module name to prevent namespace collisions.

* Remove duplicate import.

Change-Id: I600f9f330075cd40e1da50f8b2ceb24f645f2c20
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

55882253 29-Nov-2018 Neale Ranns <nranns@cisco.com>

GRE: UT uses new pkt send functions

Change-Id: Icb1767b31421aa1e427498adc82d79307835ee1a
Signed-off-by: Neale Ranns <nranns@cisco.com>

10d066ea 13-Nov-2018 Klement Sekera <ksekera@cisco.com>

make test: verify packet counters in ipsec tests

Change-Id: Ia15b40f9d91daf3a325cb8d707b22a1dbc68d9cc
Signed-off-by: Klement Sekera <ksekera@cisco.com>

56d68cb2 27-Nov-2018 Paul Vinciguerra <pvinci@vinciconsulting.com>

Trivial: test_container.py

First argument of a classmethod should be named 'cls'.

Change-Id: Iff4b8d856e57c13a3404dbf6780c1d4add45b36a
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

741865bb 27-Nov-2018 Paul Vinciguerra <pvinci@vinciconsulting.com>

Trivial: test/test_ipip.py

First argument of a method should be named 'self'.

Change-Id: I7260916ce9d96108202b650dbf7ac8ce4b3aafdc
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

b6a47953 21-Nov-2018 Neale Ranns <nranns@cisco.com>

GBP: l3-out subnets

Change-Id: Id4a20066fc5be716c61a497dfcb4d00dc1dbb28d
Signed-off-by: Neale Ranns <nranns@cisco.com>

d40c3e65 21-Nov-2018 Mohsin Kazmi <sykazmi@cisco.com>

gbp: Add support for flow hash profile

Change-Id: Ibea87f21b3403045cc0d865903b94396fe670e79
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>

ad1f3e14 29-Nov-2018 Matus Fabian <matfabia@cisco.com>

NAT: syslog - sessions logging (VPP-1139)

Change-Id: I6e0b7cf37c1a9ac66f8ac011db29504e57844ee9
Signed-off-by: Matus Fabian <matfabia@cisco.com>

2eb42e70 29-Nov-2018 Florin Coras <fcoras@cisco.com>

test: use smaller timeouts for vcl/ldp tests

Change-Id: Idebd110cbf5f0ddc5d9da5a1975b5d278825d131
Signed-off-by: Florin Coras <fcoras@cisco.com>

743ee3e1 29-Nov-2018 Neale Ranns <nranns@cisco.com>

GRE: fix VRF unit-tests

Change-Id: Ic6d011065bf062a84fdccdb1726ed3e5ed99cfbc
Signed-off-by: Neale Ranns <nranns@cisco.com>

609e1210 27-Nov-2018 Pavel Kotucek <pavel.kotucek@pantheon.tech>

VPP-1507: Added binary api to dump configured ip_punt_redirect

Change-Id: I790f7785e183cc9aaffd5b593617c4e12a32e20d
Signed-off-by: Pavel Kotucek <pavel.kotucek@pantheon.tech>

b8c72a4a 08-Nov-2018 Klement Sekera <ksekera@cisco.com>

make test: create virtualenv under /test/

instead of using build-root, use /test/venv directory for virtualenv
similarly, don't pollute build-root with test-built binaries

Change-Id: I1e63c04037eaee718b27b34ef16c9eb0252afa53
Signed-off-by: Klement Sekera <ksekera@cisco.com>

53fffa1d 12-Nov-2018 Ole Troan <ot@cisco.com>

API: Add support for type aliases

Previously all types are compound. This adds support for aliases,
so one can do things like:

typedef u32 interface_index;

or
typedef u8 ip4_address[4];

Change-Id: I0455cad0123fc88acb491d2a3ea2725426bdb246
Signed-off-by: Ole Troan <ot@cisco.com>
Signed-off-by: Klement Sekera <ksekera@cisco.com>

526ad04e 27-Nov-2018 Paul Vinciguerra <pvinci@vinciconsulting.com>

test/remote_test.py: Fix missing import

Change-Id: I192c33d36f43ae2df0dda509e118f2b920d561ac
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

f1f2aa6b 25-Nov-2018 Paul Vinciguerra <pvinci@vinciconsulting.com>

VPP-1508 python3 tests: use six.iteritems

This replaces dictionary.iteritems() on Python 2 and dictionary.items() on Python 3.

Change-Id: I58a3ded7d284c59e28d484b0c285aac435bfc229
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

6e4c6ad9 25-Nov-2018 Paul Vinciguerra <pvinci@vinciconsulting.com>

VPP-1508 python3 tests: .encode('hex')

Change to binascii.hexlify() for consistent bahavior.

Change-Id: Ie430cdd1ffeb6510db4aa037546e42d85992093b
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

6c746172 26-Nov-2018 Paul Vinciguerra <pvinci@vinciconsulting.com>

VPP-1508 Fix for bug introduced in tests on use of repr.

This fixes the change from https://gerrit.fd.io/r/#/c/16175/

...

======
Totals
======
Ran: 856 tests in 2123.0000 sec.
- Passed: 667
- Skipped: 157
- Expected Fail: 0
- Unexpected Success: 0
- Failed: 32
Sum of execute time for each test: 1641.0832 sec.

==============
Worker Balance
==============
- Worker 0 (416 tests) => 0:35:06.788054
- Worker 1 (440 tests) => 0:31:13.814911
Test id Runtime (s)
-------------------------------------------------------------------------------------- -----------
test.test_vcl.VCLCutThruTestCase.test_ldp_cut_thru_bi_dir_nsock 120.382
test.test_vcl.VCLThruHostStackGroupBTestCase.test_ldp_thru_host_stack_bi_dir_nsock 60.368
test.test_vcl.VCLIpv6ThruHostStackGroupBTestCase.test_ldp_thru_host_stack_bi_dir_nsock 60.356
test.test_igmp.TestIgmp.test_igmp_host 47.411
test.test_reassembly.TestFIFReassembly.test_fif6 38.561
test.test_reassembly.TestFIFReassembly.test_fif4 37.045
test.test_gbp.TestGBP.test_gbp 30.041
test.test_dhcp.TestDHCP.test_dhcp_proxy 29.339
test.test_vcl.VCLCutThruTestCase.test_ldp_cut_thru_iperf3 20.489
test.test_neighbor.ARPTestCase.test_arp 19.004

Change-Id: Ic1565f14962f157d5041230de3aeeab0b85f21e1
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

abec0129 16-Nov-2018 juraj.linkes <juraj.linkes@pantheon.tech>

Split non-parallel testsuite

Split one big suite into smaller suites when not running tests in
parallel. This results in all tests being executed in one iteration.

Change-Id: I0d3d357a95d9cc596b606d5911a5819e8ffdeee5
Signed-off-by: juraj.linkes <juraj.linkes@pantheon.tech>

3d2df215 25-Nov-2018 Paul Vinciguerra <pvinci@vinciconsulting.com>

Python3 tests: Fix asserts.

Use assert(Not)Equal()
Use assert{Greater,Less}[Equal]

Change-Id: I7c14570b8dce463ee13a67e9c1f10beb1a0308a8
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

162989e0 26-Nov-2018 Ole Trøan <otroan@employees.org>

Revert "VPP-1508 python3 tests: raw_input"

This reverts commit 72f0004ac5f6e201cbe042593d76df6f2491d743.

Reason for revert: Traceback (most recent call last):
File "/home/ksekera/vpp/test/test_ipsec_ah.py", line 36, in
setUpClass
super(TemplateIpsecAh, cls).setUpClass()
File "/home/ksekera/vpp/test/template_ipsec.py", line 105, in
setUpClass
super(TemplateIpsec, cls).setUpClass()
File "/home/ksekera/vpp/test/framework.py", line 459, in setUpClass
cls.quit()
File "/home/ksekera/vpp/test/framework.py", line 475, in quit
six.input("When done debugging, press ENTER to kill the "
AttributeError: 'module' object has no attribute 'input'

Change-Id: Idf0bbfea231730b37bae5dcb4557a0f82ab1b810
Signed-off-by: Ole Troan <ot@cisco.com>

76f3a2b6 25-Nov-2018 Paul Vinciguerra <pvinci@vinciconsulting.com>

test_fib.py: Remove empty methods

Remove methods that only call super.

py27 runtests: commands[5] | stestr --test-path ./test run --slowest test_fib
==============================================================================
FIB Test Case
==============================================================================
==============================================================================
IPv6 Test Case
==============================================================================
12:19:23,856 Couldn't stat : /tmp/vpp-unittest-TestFIB-BcLbkQ/stats.sock
{1} test.test_fib.TestFIB.test_fib [0.216340s] ... ok
==============================================================================
IPv4 Test Case
==============================================================================
{0} test.test_ip6.TestIPv6.test_fib [5.328127s] ... ok
12:19:33,921 Couldn't stat : /tmp/vpp-unittest-TestIPv4-AoGvoK/stats.sock
{1} test.test_ip4.TestIPv4.test_fib [5.071083s] ... ok

======
Totals
======
Ran: 3 tests in 34.0000 sec.
- Passed: 3
- Skipped: 0
- Expected Fail: 0
- Unexpected Success: 0
- Failed: 0
Sum of execute time for each test: 10.6155 sec.

==============
Worker Balance
==============
- Worker 0 (1 tests) => 0:00:05.328127
- Worker 1 (2 tests) => 0:00:10.251002
Test id Runtime (s)
------------------------------- -----------
test.test_ip6.TestIPv6.test_fib 5.328
test.test_ip4.TestIPv4.test_fib 5.071
test.test_fib.TestFIB.test_fib 0.216
______________________________________________________ summary ______________________________________________________
py27: commands succeeded
congratulations :)
vagrant@vpp:/vpp$

Change-Id: Ia07fe13affe2672ea2df774678312c6db8ea63fb
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

ab9e20b7 23-Nov-2018 Paul Vinciguerra <pvinci@vinciconsulting.com>

VPP-1508 Add support for environment markers.

Add the ability to specify a specific python library version
based on the interpreter/platform/etc.

Change-Id: I027acdf22ad839b5cff63b319f0aa100b0f336c8
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

9db94454 25-Nov-2018 Paul Vinciguerra <pvinci@vinciconsulting.com>

VPP-1508 python3 tests locals()

Do not use locals() for string formatting.

Change-Id: I2e811f479198159b4005fa69c09ad903944d8ae3
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

86ebba6b 21-Nov-2018 Paul Vinciguerra <pvinci@vinciconsulting.com>

Fix swapped decorators in VppTestCase.

Change-Id: I39b5a8e368f0e0b5c83203141d01f22d909b6f9d
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

72f0004a 25-Nov-2018 Paul Vinciguerra <pvinci@vinciconsulting.com>

VPP-1508 python3 tests: raw_input

Raw input does not exist in python3 use six.input.

Change-Id: Ie461696ff869057bcc3969a7571602dde570f5b8
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

00671cf9 25-Nov-2018 Paul Vinciguerra <pvinci@vinciconsulting.com>

VPP-1508 python3 tests: python3 repr.

Use six.reprlib. Uses repr for python 2 and reprlib for python 3.

Change-Id: Ia343a492d533bd511ed57166381e10a37e452d36
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

61e63bf4 25-Nov-2018 Paul Vinciguerra <pvinci@vinciconsulting.com>

make test: Fix too wide subprocess exceptions

When a command fails, CalledProcessError is raised. testing with except: masks other failures.

Change-Id: I7e3a6739411cb6a4c13e96dd123aff9159213fea
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

c29a0ea6 25-Nov-2018 Paul Vinciguerra <pvinci@vinciconsulting.com>

Fix typo in test/test_acl_plugin_conns.py

first argument of a classmethod should be named 'cls'

Change-Id: I1462be1edbfd42cbc6ad3f93d73f23b70d95e70c
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

0c794531 25-Nov-2018 Paul Vinciguerra <pvinci@vinciconsulting.com>

Fix Typo: test/test_mtu.py

first argument of a method should be named 'self'.

Change-Id: Iab84a333baba9b9dfb6ffd6da66df4da331a6b11
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

4a144b49 23-Nov-2018 Paul Vinciguerra <pvinci@vinciconsulting.com>

VPP-1505 VPP-1508 Remove dep.: py_lispnetworking

test_lisp.py No longer needs the external dependency to run.

py27 runtests: commands[6] | stestr --test-path ./test run --slowest test_lisp
==============================================================================
Basic LISP test
==============================================================================
{0} test.test_lisp.TestLisp.test_lisp_basic_encap [0.487960s] ... ok

======
Totals
======
Ran: 1 tests in 18.0000 sec.
- Passed: 1
- Skipped: 0
- Expected Fail: 0
- Unexpected Success: 0
- Failed: 0
Sum of execute time for each test: 0.4880 sec.

==============
Worker Balance
==============
- Worker 0 (1 tests) => 0:00:00.487960
Test id Runtime (s)
--------------------------------------------- -----------
test.test_lisp.TestLisp.test_lisp_basic_encap 0.488
______________________________________________________ summary ______________________________________________________
py27: commands succeeded
congratulations :)
vagrant@vpp:/vpp$

Change-Id: I35b35f8ddaed79066b3ed62fa0460c9ea83273c2
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

e61ad8d6 15-Nov-2018 Klement Sekera <ksekera@cisco.com>

make test: remove test-ext, fix test*-all targets

build extended binaries, vom & friends when test*-all targets are run,
remove unneeded test-ext target (which is semantically same as
test-debug-all)

Change-Id: Id710e061fdc93e286a4ed91be6a0cdcf75a2dafd
Signed-off-by: Klement Sekera <ksekera@cisco.com>

ccfead6e 21-Nov-2018 juraj.linkes <juraj.linkes@pantheon.tech>

Fix test framework keepalive

The pipe used for sending keepalive messages was being added to an
instance of KeepAliveReporter and then used by the class itself. This
worked in the past but doesn't anymore. Fix the issue by adding the pipe
to the class instead of an instance.

Change-Id: If7cdca2de23ca78448e80569b155e9e29e81ff94
Signed-off-by: juraj.linkes <juraj.linkes@pantheon.tech>

3d9b92a0 21-Nov-2018 juraj.linkes <juraj.linkes@pantheon.tech>

Fix test logging propagation

When running tests with child processes the logs from child processes
would propagate to root logger, potentially resulting in some logs
being emitted twice. Fix this by disabling log propagation to parent
loggers in child processes.

Change-Id: I31eb265c2b7f7bceff627043956a67d6def3da2b
Signed-off-by: juraj.linkes <juraj.linkes@pantheon.tech>

7303ee83 21-Nov-2018 Pavel Kotucek <pavel.kotucek@pantheon.tech>

VPP-1476: L2fib failures in master

Overlaping range of BDs.

Change-Id: I96d2caf98b94206cd6b145961819720727f13c61
Signed-off-by: Pavel Kotucek <pavel.kotucek@pantheon.tech>

7f8a8dba 22-Nov-2018 Matus Fabian <matfabia@cisco.com>

NAT44: improve expired sessions reuse (VPP-1503)

Change-Id: Iab506f127136c94a641df31ded108016de26260b
Signed-off-by: Matus Fabian <matfabia@cisco.com>

ffba3c37 21-Nov-2018 Ole Troan <ot@cisco.com>

MAP: Use explicit address/prefix types in API

Change-Id: Ic751fecc4a060eedcdb9eaf5d02e1416c838fd63
Signed-off-by: Ole Troan <ot@cisco.com>

5ba9159a 22-Nov-2018 Ole Trøan <otroan@employees.org>

Revert "Fix instance method call in test/framework.py"

This reverts commit c32023b9fd6970ed1cac1b3c7f36233b536d9968.

Change-Id: Ic934d223b10028093b0262e28515bde3ae1ccb71
Signed-off-by: Ole Troan <ot@cisco.com>

c32023b9 21-Nov-2018 Paul Vinciguerra <pvinci@vinciconsulting.com>

Fix instance method call in test/framework.py

Instance method breaking encapsulation by calling a global fn.

Change-Id: Ifde2a207951143764aed75f1b191aed0bac83704
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

b4515b4b 19-Nov-2018 Matus Fabian <matfabia@cisco.com>

Add RFC5424 syslog protocol support (VPP-1139)

Syslog protocol logging transport event messages across network over UDP
protocol based on RFC5426.

Change-Id: Ica74b40bcc2e6d0fbd41e9bf78e76395fbabab3c
Signed-off-by: Matus Fabian <matfabia@cisco.com>

15e8e681 21-Nov-2018 Matus Fabian <matfabia@cisco.com>

NAT44: Apply transitory timeout on TCP RST (VPP-1494)

RFC7857 section 2.2.

Change-Id: I031af5fe379b72262e83fd8565c34fa1b772f2c8
Signed-off-by: Matus Fabian <matfabia@cisco.com>

45cd3a3e 26-Jun-2018 Dave Wallace <dwallacelf@gmail.com>

make test: Shorten VCL extended test times

- And include them in regular CI testing

Change-Id: I519fd07e1482baf6808601b3c928b825f9691c87
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

111add7e 20-Nov-2018 Matus Fabian <matfabia@cisco.com>

NAT44: fix virtual fragmentation reassembly in forwarding mode (VPP-1501)

Change-Id: Id86d8aa8753b9b2ff4c709b11e3901ba8d552918
Signed-off-by: Matus Fabian <matfabia@cisco.com>

c7b03fe8 18-Nov-2018 Paul Vinciguerra <pvinci@vinciconsulting.com>

VPP-1498: test/framework.py: AttributeError

Traceback if .send_keep_alive is called before pipe is configured.

Traceback (most recent call last):
File "/vpp/test/test_span.py", line 27, in setUpClass
super(TestSpan, cls).setUpClass()
File "/vpp/test/framework.py", line 411, in setUpClass
cls.reporter.send_keep_alive(cls, 'setUpClass')
File "/vpp/test/framework.py", line 172, in send_keep_alive
if self.pipe is None:
File "/vpp/test/framework.py", line 160, in pipe
return self._pipe
AttributeError: 'KeepAliveReporter' object has no attribute '_pipe'

Change-Id: I561d2748441702478a84fbb4580a4d2667d70ffd
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

6c01dcee 16-Nov-2018 Matus Fabian <matfabia@cisco.com>

NAT44: fix bug in TCP close with output-feature interface (VPP-1493)

Change-Id: If8c883d6b1ee58de9a03012d3567ec82211a0225
Signed-off-by: Matus Fabian <matfabia@cisco.com>

dd4b2bb3 15-Nov-2018 Paul Vinciguerra <pvinci@vinciconsulting.com>

VPP-1495: Fix intermittent stat sock test failures.

Loosen polling loop while waiting for stats socket.

==============================================================================
Classifier IP6 UDP proto Test Case
==============================================================================
connect: No such file or directory
==============================================================================
ERROR: setUpClass (test_ip4.TestIPLoadBalance)
------------------------------------------------------------------------------
Traceback (most recent call last):
File "/vpp/test/framework.py", line 424, in setUpClass
cls.statistics = VPPStats(socketname=cls.stats_sock)
File "build/bdist.linux-x86_64/egg/vpp_papi/vpp_stats.py", line 120, in _init_
raise IOError()
IOError

Change-Id: I80523122f96eafc41b3ebbf27bee73f6c637d781
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

18668840 15-Nov-2018 Neale Ranns <nranns@cisco.com>

QoS: fix always recoding as IP

Change-Id: I7a54cdfa26652c04971999ad1f8144566e13c7bf
Signed-off-by: Neale Ranns <nranns@cisco.com>

13a08cc0 07-Nov-2018 Neale Ranns <nranns@cisco.com>

GBP: redirect contracts

Change-Id: I463b153de93cfec29a9c15e8e84e41f6003d4c5f
Signed-off-by: Neale Ranns <nranns@cisco.com>

b4d30534 08-Nov-2018 Klement Sekera <ksekera@cisco.com>

ipsec: infra for selecting backends

Change-Id: Ifa6d8391b1b2413a88b7720fc434e0bc849a149a
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>

dfb5f2af 09-Nov-2018 juraj.linkes <juraj.linkes@pantheon.tech>

Fix logging into multiple files

When running tests in one process, only one logger was used and each
testcase added its own file handler, which resulted in logs appearing in
multiple files. Fix this by restoring the creation of new loggers
for each testcase and only reuse the stream handler from parent process.

Change-Id: I5b8471e041dc769128fddb433d33812bfcb5ecf6
Signed-off-by: juraj.linkes <juraj.linkes@pantheon.tech>

a8f53818 08-Nov-2018 Florin Coras <fcoras@cisco.com>

tcp: separate unit and throughput tests

Change-Id: I249e68874dcf38b07179e0e769f6eb49a43377b7
Signed-off-by: Florin Coras <fcoras@cisco.com>

005a3331 08-Nov-2018 Klement Sekera <ksekera@cisco.com>

make test: remove unnecessary check

Change-Id: I90ee144a5c5a2e753e36d45c0ce98c9a8b477f15
Signed-off-by: Klement Sekera <ksekera@cisco.com>

7d6afb3c 08-Nov-2018 Klement Sekera <ksekera@cisco.com>

make test: bfd refactor

Change-Id: I14a126521d8c8138904c8b9da05d4144c72c51a5
Signed-off-by: Klement Sekera <ksekera@cisco.com>

03a3e76f 08-Nov-2018 Klement Sekera <ksekera@cisco.com>

make test: rename dummy test name

Change-Id: I5727b08bdc8bdaaf83a9f08d171d76bd6f67564e
Signed-off-by: Klement Sekera <ksekera@cisco.com>

f37c3ba9 08-Nov-2018 Klement Sekera <ksekera@cisco.com>

make test: p2p ethernet refactor

Change-Id: I48b4b3eaa84e4174e4d0305594675bf983184fa0
Signed-off-by: Klement Sekera <ksekera@cisco.com>

c29c0af4 07-Nov-2018 Neale Ranns <nranns@cisco.com>

GBP: Endpoints with VLAN tags and birdges that don't learn

Change-Id: I20192f3a8f4f01f47e775746f6fde7c685f185ee
Signed-off-by: Neale Ranns <nranns@cisco.com>

93cc3ee3 10-Oct-2018 Neale Ranns <neale.ranns@cisco.com>

GBP Endpoint Learning

Learning GBP endpoints over vxlan-gbp tunnels

Change-Id: I1db9fda5a16802d9ad8b4efd4e475614f3b21502
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>

6ccff02d 06-Nov-2018 Dave Wallace <dwallacelf@gmail.com>

VCL: Fix socket_test.sh to build test apps.

- Replace autoconf base test app build detection
with appropriate cmake based incantation.
- Use the dpdk_devbind.py that is in the VPP tree.

Change-Id: I4cdc11d159e2413d6bdb9c5ffcf1ed2d787b1cc5
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

4d5b917b 24-Oct-2018 Neale Ranns <nranns@cisco.com>

BD ARP entry use common API types

Change-Id: I29f20dbaf2c2d735faff297cee552ed648f6f61b
Signed-off-by: Neale Ranns <nranns@cisco.com>

0f7af53e 06-Nov-2018 Neale Ranns <nranns@cisco.com>

IGMP: Improved handling of (*,G) join and leave

Change-Id: I48a92035b58d83420eb3eed3f05a75ba283543c2
Signed-off-by: Neale Ranns <nranns@cisco.com>

3206bb15 05-Nov-2018 Filip Varga <filip.varga@pantheon.tech>

VPP-1481: fixed tlv length checking & added tests

Change-Id: I9375bca5f5136c84d801dbd635929bb1c37d75b4
Signed-off-by: Filip Varga <filip.varga@pantheon.tech>

eb601240 31-Oct-2018 Filip Varga <fivarga@cisco.com>

cdp scapy protocol & cdp unit tests

Change-Id: Ieb362523f81f7ae3e1a9dceb341c499ff1f402c8
Signed-off-by: Filip Varga <fivarga@cisco.com>

12fe878a 30-Oct-2018 Mohsin Kazmi <sykazmi@cisco.com>

vom: Add igmp 'host' support in vom

Change-Id: Ibdb19d21b8ec7fb340a057e32df207b7723dba9b
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>

2b4c49e6 31-Oct-2018 Mohsin Kazmi <sykazmi@cisco.com>

make-test: Fix the vapi test

Change-Id: I5a4dc3894818f92368d6c906ff43e093c16c1d19
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>

cd35e53c 31-Aug-2018 Neale Ranns <nranns@cisco.com>

Use throttle_t for ND throttling

Change-Id: I93c6b7bccd1a1ab71625ae29c99c974581186c4d
Signed-off-by: Neale Ranns <nranns@cisco.com>

5665cedf 26-Oct-2018 Florin Coras <fcoras@cisco.com>

session: extend connect api for internal apps

Change-Id: Ie4c5cfc4c97acb321a46b4df589dc44de1b616ba
Signed-off-by: Florin Coras <fcoras@cisco.com>

8797168f 04-Oct-2018 Marco Varlese <marco.varlese@suse.com>

SCTP: DATA chunk padding fix and hardening

According to the RFC 4096 (section 3.3.1) the DATA chunk needs to be
padded to a boundary of 4 bytes with zeros. This patch addresses that
requirement.
At the same time, this patch takes care of adding some hardening for
corner-cases where the transmitted tag could be wrong.

Change-Id: I3b653926e9933d0d3d46bc5f37eaceefd932e874
Signed-off-by: Marco Varlese <marco.varlese@suse.com>

b7b92993 17-Oct-2018 Dave Barach <dave@barachs.net>

c11 safe string handling support

Change-Id: Ied34720ca5a6e6e717eea4e86003e854031b6eab
Signed-off-by: Dave Barach <dave@barachs.net>

a26373bd 22-Oct-2018 Ole Troan <ot@cisco.com>

GBP: Revert back to using VppIpPrefix wrapper

Change-Id: I33567b9c5822008e6b75c7cc04f63853dee88654
Signed-off-by: Ole Troan <ot@cisco.com>

68b7cb8f 15-Oct-2018 Juraj Sloboda <jsloboda@cisco.com>

Fix buffer overflow when fragmenting packets (VPP-1383)

Change-Id: Idcda9ae55fa2efb0b2e928bac3e8e86ff8d19eba
Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>

31555a34 22-Oct-2018 Ole Troan <ot@cisco.com>

PAPI: Add support for format/unformat functions.

With the introduction of new types, like vl_api_address_t
it is now possible to call a message using one of those
functions with a string representation. E.g. for an IP address

ip_add_address(address="1.1.1.1/24")

The language wrapper will automatically convert the string
into the vl_api_address_t representation. Currently
the caller must do the reverse conversion from the returned
named tuple with the unformat function.
rv = get_address_on_interface(sw_if_index=1)
print(VPPFormat.unformat(rv.address))

Change-Id: Ic872b4560b2f4836255bd5260289bfa38c75bc5d
Signed-off-by: Ole Troan <ot@cisco.com>

c1f87942 06-Oct-2018 Andrew Yourtchenko <ayourtch@gmail.com>

acl-plugin: use the L2 feature arc infrastructure instead of L2 classifier for plumbing

This makes ACL plugin use the new feature arcs, which slightly increases performance.

Since for ethertype whitelisting we were using the L2 classifier, to retain
the functionality, make a simple node doing that, and plug it into non-ip
L2 feature arc whenever needed.

Change-Id: I3add377a6c790117dd3fd056e5615cb4c4438cf4
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>

da41d729 19-Oct-2018 Matus Fabian <matfabia@cisco.com>

NAT44: fix ICMP virtual fragmentation reassembly (VPP-1466)

Change-Id: I8006bca02948d9121f474a3d14f0576747bb3c51
Signed-off-by: Matus Fabian <matfabia@cisco.com>

0685da4a 16-Oct-2018 Ole Troan <ot@cisco.com>

PAPI: Expose API enums to tests / applications

e.g:
from vpp_papi import VppEnum

VppEnum.vl_api_address_family_t.ADDRESS_IP4

Change-Id: I10c22d57234a1a06e98a889cf80b19085b468ed3
Signed-off-by: Ole Troan <ot@cisco.com>

97748cae 04-Oct-2018 Jakub Grajciar <jgrajcia@cisco.com>

IGMP: proxy device

Create 'proxy device' per VRF and add one upstream
and one or many downstream interfaces.

Change-Id: I1cef05fb01e73a5b483c7a2f4debaaeffe2c8155
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>

59a82953 11-Oct-2018 mu.duojiao <mu.duojiao@zte.com.cn>

VPP-1448: Fix error when recurse on down the trie.

Change-Id: Idfed8243643780d3f52dfe6e6ec621c440daa6ae
Signed-off-by: mu.duojiao <mu.duojiao@zte.com.cn>

7ff7453a 06-Oct-2018 Andrew Yourtchenko <ayourtch@gmail.com>

acl-plugin: make each test in test_acl_plugin runnable separately

And improve the robustness of the ethertype whitelist test coverage

Change-Id: I64fe3a25208dbc619ae5cd6404f6122e69394a38
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>

565409b2 11-Oct-2018 juraj.linkes <juraj.linkes@pantheon.tech>

Add parallel test run info to test/doc

An overview of parallel test runs, describing the library used, results
gathering, stdout and stderr handling and how to execute a parallel run.

Change-Id: Ic83cd689751ee46914e3b858b0b24a74b083f99f
Signed-off-by: juraj.linkes <juraj.linkes@pantheon.tech>

82b4ceb8 11-Oct-2018 Matus Fabian <matfabia@cisco.com>

NAT44: identity NAT fix (VPP-1441)

Change-Id: Ic4affc54d15d08b9b730f6ec6146ee053b28b4b6
Signed-off-by: Matus Fabian <matfabia@cisco.com>

d29cc889 10-Oct-2018 Neale Ranns <nranns@cisco.com>

L2: BM traffic does not use UU-FWD (VPP-1445)

Change-Id: I5495c37da2fb8ff48c4af14ccba021d64eac52b6
Signed-off-by: Neale Ranns <nranns@cisco.com>

40dd73bc 21-Sep-2018 juraj.linkes <juraj.linkes@pantheon.tech>

Setup, teardown, DEBUG=core, FAILFAST fixes

- Fixed a bug when an error occuring in tearDownClass would not result in
test being marked as failed
- Improved test results reporting in cases when an error occurs in setUpClass
and tearDownClass
- Fixed DEBUG=core when the core is produced in setUpClass or
tearDownClass
- Reworked DEBUG=core to always be handled after all tests have been
executed
- Fixed FAILFAST=1 for parallel test runs

Change-Id: I3e9cd3b97ba6fa802fa0aa2dd7678ff82eee09ec
Signed-off-by: juraj.linkes <juraj.linkes@pantheon.tech>

b9fa29d5 02-Oct-2018 Neale Ranns <nranns@cisco.com>

L2-flood: no clone for 1 replication

Change-Id: If178dd38e7920f35588f5d821ff097168b078026
Signed-off-by: Neale Ranns <nranns@cisco.com>

99743917 08-Oct-2018 Jakub Grajciar <jgrajcia@cisco.com>

Test FW: Use unittest temp dir as unix runtime dir

Change-Id: I5273d5f3f59cc3c43da0a15bb0c4a4056098adcf
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>

e2f4e2f1 08-Oct-2018 Matus Fabian <matfabia@cisco.com>

NAT44: do not create session record for identity mapping (VPP-1439)

Change-Id: I39a3146a4e4ba8eadf50af7113b9ae6b1c1d688f
Signed-off-by: Matus Fabian <matfabia@cisco.com>

ccc70f6c 02-Oct-2018 Neale Ranns <nranns@cisco.com>

Source VRF Select tests

Change-Id: Id6c16462fccf890eaa0e526ad048e032c9da8800
Signed-off-by: Neale Ranns <nranns@cisco.com>

b3f90503 04-Oct-2018 Juraj Sloboda <jsloboda@cisco.com>

vhost_user: Add test for interface states and events

Change-Id: I2c330945bb0b07f649f574a055bfbea455e5d0b3
Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>

3048b63d 02-Oct-2018 Juraj Sloboda <jsloboda@cisco.com>

Support reassembly for fragments coming to ip4-local node

Change-Id: I3aa4708c1c3cdda344f282d56b617677080eaaa1
Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>

3e42ebe6 04-Oct-2018 Neale Ranns <neale.ranns@cisco.com>

MFIB-API: when programming an (S,G) fix the grp-len

Change-Id: I97052d29080501de53fe95499c860faf0765e81d
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>

29d22c52 04-Oct-2018 Marco Varlese <marco.varlese@suse.com>

VPP-1430: remove unnecessary padding

A copy/paste mistake caused to add padding to the buffer used to send
data.

Change-Id: I04d8dfec4ae195927be1675c5ce8b30230d5b376
Signed-off-by: Marco Varlese <marco.varlese@suse.com>

d760f79c 03-Oct-2018 Andrew Yourtchenko <ayourtch@gmail.com>

test framework: add shell-style wildcard matching to filenames

Currently, one can either use "*" to denote all filenames,
or to give the specific file name to run the tests in.
This commit adds the possibility to run all tests
matching the shell wildcard, e.g. TEST="test_acl_plugin*"
will execute all ACL plugin testcases.

Change-Id: I9048a601958947c7b757c3dfd57b19cdd8a1e3c0
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>

611864f4 26-Sep-2018 Klement Sekera <ksekera@cisco.com>

ipsec: add missing ipv6 ah code & ipv6 tests

Change-Id: I89e90193ded1beb6cb0950c15737f9467efac1c3
Signed-off-by: Klement Sekera <ksekera@cisco.com>

2d3c7b9c 02-Oct-2018 Matus Fabian <matfabia@cisco.com>

BFD: add get echo source API (VPP-1367)

Change-Id: I45f540128e038ddb17ba96ce30965e8f7c732067
Signed-off-by: Matus Fabian <matfabia@cisco.com>

d1e68ab7 01-Oct-2018 Neale Ranns <nranns@cisco.com>

Source VRF Select

match against a packet's source address to determine
the VRF for the subsequent destination address lookup.

Change-Id: I48ee0ef54dcb891f0ec7f879e4d3b925a0ed0081
Signed-off-by: Neale Ranns <nranns@cisco.com>

14260393 28-Sep-2018 Neale Ranns <neale.ranns@cisco.com>

Add adjacency counters to the stats segment

Change-Id: I6b59df939c9daf40e261d73d19f500bd90abe6ff
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>

904a8508 20-Sep-2018 Yalei Wang <william.wangyalei@huawei.com>

Fix the path error inside vcl socket_test.sh

Change-Id: I5bcfbd436839e7a6dd82dc57cdb3b7fb6200a69c
Signed-off-by: Yalei Wang <william.wangyalei@huawei.com>
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

28c142e3 07-Sep-2018 Neale Ranns <nranns@cisco.com>

mroute routers in the stats segment

Change-Id: I798e4fb6470ae9e763f8de1c290ff0fc3c0b7f9e
Signed-off-by: Neale Ranns <nranns@cisco.com>

c17776e9 26-Sep-2018 Neale Ranns <nranns@cisco.com>

IGMP: handle (*,G) report with no source addresses

Change-Id: I363370b9d4a27b992bad55c48fc930a2fbea2165
Signed-off-by: Neale Ranns <nranns@cisco.com>

9382673d 27-Sep-2018 Marco Varlese <marco.varlese@suse.com>

SCTP: fix overflow issue with timestamp

Change-Id: I03bb47a2baa4375b7bf9347d95c4cc8de37fe510
Signed-off-by: Marco Varlese <marco.varlese@suse.com>

762d83c1 27-Sep-2018 Mohsin Kazmi <sykazmi@cisco.com>

vom: Fix the l2 port type in bridge domain

Change-Id: I8aba11142daeacce892ec529c2229ec54ee427e2
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>

9be93c8f 28-Sep-2018 Ole Troan <ot@cisco.com>

MAP: Add check for well known ports.

And more unit-tests.

Change-Id: I4667d82d928b7ba8d96b5a5648d464115b3ed216
Signed-off-by: Ole Troan <ot@cisco.com>

f94c63ea 26-Sep-2018 Ole Troan <ot@cisco.com>

stats: Split stat_segment and stats code in preparation for deprecation.

Split the stat_segment.c code from stats.c.
Rename stats.[ch] to prepare for removing (19.01?)
In addition stats.api can be removed.

Since the stats aggregation for the stat segment does not use the API, that
part is now done on the main thread. (Old stats aggregator is also left in place).

Change-Id: I9867429f4fc547b1a7ab7f88bc4f3625428d681b
Signed-off-by: Ole Troan <ot@cisco.com>

b1be2a0b 19-Sep-2018 Jakub Grajciar <jgrajcia@cisco.com>

memif: Memif Test Case

Change-Id: Ic0d5fc6ccbd496afcc870b908ef799af7c804c30
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>

8e26f6db 19-Sep-2018 juraj.linkes <juraj.linkes@pantheon.tech>

Test typo fixes

Renamed one acl testcase class which was copy-pasted and fixed one
inheritance issue.

Renamed one bihash testcase class.

Change-Id: I70d911ee7872d8d9ddba96c7f721dd099f0152f7
Signed-off-by: juraj.linkes <juraj.linkes@pantheon.tech>

282093f1 18-Sep-2018 Ole Troan <ot@cisco.com>

IPIP and IPv6 fragmentation

- Error where ICMPv6 error code doesn't reset VLIB_TX = -1
Leading to crash for ICMP generated on tunnelled packets
- Missed setting VNET_BUFFER_F_LOCALLY_ORIGINATED, so
IP in IPv6 packets never got fragmented.
- Add support for fragmentation of buffer chains.
- Remove support for inner fragmentation in frag code itself.

Change-Id: If9a97301b7e35ca97ffa5c0fada2b9e7e7dbfb27
Signed-off-by: Ole Troan <ot@cisco.com>

e23edac3 25-Sep-2018 Mohsin Kazmi <sykazmi@cisco.com>

vom: Add ip punt redirect

Change-Id: I5c7b925b22b53f18b0c45374883a6a4bff580c75
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>

fae83379 26-Sep-2018 Andrew Yourtchenko <ayourtch@gmail.com>

acl-plugin: fix the stateful ICMP handling and add testcases

The stateful ICMP/ICMPv6 handling got broken.
Fix that and introduce testcases to catch in the future.

Change-Id: Ie602e72d6ac613d64ab0bf6693b6d75afb1a9552
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>

f5fa5ae2 26-Sep-2018 Neale Ranns <neale.ranns@cisco.com>

MPLS tunnel dump: use sw_if_index not tunnel_index

Change-Id: I6c0d5aec6ee96a0d40358f0e09a0901b22265063
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>

b474380f 05-Sep-2018 Neale Ranns <nranns@cisco.com>

L2 BD: introduce a BD interface on which to send UU packets

Change-Id: I21ad6b04c19c8735d057174b1f260a59f2812241
Signed-off-by: Neale Ranns <nranns@cisco.com>

6a30b5f9 25-Sep-2018 Neale Ranns <neale.ranns@cisco.com>

MPLS tunnel dump fix

Change-Id: I9d3d5243841d5b888f079e3ea5dc1e2e8befd1dc
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>

fe4e48f6 25-Sep-2018 Neale Ranns <neale.ranns@cisco.com>

BIER; bi-dir to/from underlay

set and check a special RX interface value as the packet enters and
exits a BIER domain

Change-Id: I5ff2f0e2d1b3ce0f3598b935f518fc11eb0896ee
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>

8fdc015d 24-Sep-2018 Matus Fabian <matfabia@cisco.com>

NAT44: endpoint-dependent mode session timeout improvement (VPP-1423)

Change-Id: I630f3da1ea4e6e50a50f1352c097becef1efe3c0
Signed-off-by: Matus Fabian <matfabia@cisco.com>

4a6cb83d 18-Sep-2018 Damjan Marion <damarion@cisco.com>

rename vpp-dpdk-dev to vpp-ext-deps

We need to have new tenants in the development package.
This is first of series of patches which will allow us to have multiple
external libs and tools packaged for developer's convenience.

Change-Id: I884bd75fba96005bbf8cea92774682b2228e0e22
Signed-off-by: Damjan Marion <damarion@cisco.com>

9c0a3c42 07-Sep-2018 Neale Ranns <nranns@cisco.com>

UDP-Encap: name counters for the stats segment

change the ADD api so that is returns the 'ID' that can be used
by the client to read the stats from the stats segment and to
delete the object. Previously a similar value used required
to be chosen by the client, now VPP allocates one (like it
does e.g. for interfaces)

Change-Id: I563cf6092276eb990c52d5457c86e72546bcf69e
Signed-off-by: Neale Ranns <nranns@cisco.com>

0e88e851 18-Sep-2018 Florin Coras <fcoras@cisco.com>

session/svm: add want_tx_event flag to fifo

Have applications use explicit flag to request events from vpp when it
transmits from a full fifo.

Change-Id: I687c8f050a066bd5ce739d880eaec1f286038d95
Signed-off-by: Florin Coras <fcoras@cisco.com>

008dbe10 07-Sep-2018 Neale Ranns <nranns@cisco.com>

Route counters in the stats segment

route ADD API changed to return the stats segment index to use to read the counters

Change-Id: I2ef41e01eaa2f9cfaa49d9c88968897793825925
Signed-off-by: Neale Ranns <nranns@cisco.com>

ee2e58f6 21-Aug-2018 Mohsin Kazmi <sykazmi@cisco.com>

vhost-user: Add disable feature support in api

Two flags to disable mergable rx buffers and indirect
descriptors are added to api.

Change-Id: Iba0ee9c48d19dfc3d3420a3fdaf44a1a1d325e99
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>

fe0aa764 22-Jul-2018 Juraj Sloboda <jsloboda@cisco.com>

NAT44 virtual fragmentation reassembly for endpoint-dependent mode (VPP-1325)

Change-Id: I36ece2ef2eaef9fa559d69ec7f7f07e7c16a7a9d
Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>

cae64f89 19-Sep-2018 juraj.linkes <juraj.linkes@pantheon.tech>

VPP-1421: Reworked results gathering

The previous version sent the whole VPPTestResult object through pipe,
which uses pickle to transfer objects. Pickle does not support sending
any arbitrary objects and was causing issues. Now just a tuple of
(test_id, result) is sent.

Change-Id: I3a3a9e6f1b9ac9b05889babfc1f7560c7ac4471c
Signed-off-by: juraj.linkes <juraj.linkes@pantheon.tech>

2646c80d 19-Sep-2018 Neale Ranns <nranns@cisco.com>

GRE: fix 4o6 and 6o4 adj stacking

Change-Id: I13dc5eab8835c4f3b95906816d42dccfeee8b092
Signed-off-by: Neale Ranns <nranns@cisco.com>

6c7bda91 18-Sep-2018 Klement Sekera <ksekera@cisco.com>

fix TEST_JOBS=auto max jobs detection

Change-Id: I63f747e92d239e878550392df24fb7aac2b5a3e3
Signed-off-by: Klement Sekera <ksekera@cisco.com>

58492a83 04-Sep-2018 Ole Troan <ot@cisco.com>

STATS: Dynamically mapped shared memory segment

Move from using a hash to a vector with offsets into shared memory.
Limit exposure of VPP data structures and include files to
external stats library and applications.

Change-Id: Ic06129f12d10cf4c4946a86d9bc734eacff2c7da
Signed-off-by: Ole Troan <ot@cisco.com>

ef90ed08 13-Sep-2018 Neale Ranns <nranns@cisco.com>

BIER API and load-balancing fixes

Change-Id: Ibda19d786070c942c75016ab568c8361de2f24af
Signed-off-by: Neale Ranns <nranns@cisco.com>

bb4e0225 13-Sep-2018 Matus Fabian <matfabia@cisco.com>

NAT: TCP MSS clamping

NAT plugin changes the MSS value in TCP SYN packets to avoid fragmentation.
If the negotiated MSS value is greater than the configured value it is changed
to the configured value. If the negotiated MSS value is smaller than the
configured value it remains unchanged.

Change-Id: Ic3c4f94a2f1b76e2bf79f50f3ad36a4097f3f188
Signed-off-by: Matus Fabian <matfabia@cisco.com>

79dcbc74 12-Sep-2018 Damjan Marion <damarion@cisco.com>

Always use 'lib' instead of 'lib64'

It is packaging responsibility to put libs in the right place.
Use of lib64 resulted in huge amount of files with hardcoded lib64.
This patch simplifies things...

Change-Id: Iab0dea0583e480907732c5d2379eb951a00fa9e6
Signed-off-by: Damjan Marion <damarion@cisco.com>

79a05f54 11-Sep-2018 Neale Ranns <nranns@cisco.com>

VXLAN-GBP: use common types on the API

Change-Id: I11ec0d7048d36c30a97d437e5b0abd05f06ab0eb
Signed-off-by: Neale Ranns <nranns@cisco.com>

c0a93143 05-Sep-2018 Neale Ranns <neale.ranns@cisco.com>

GBP Endpoint Updates

- common types on the API
- endpoints keyed in various ways for DP lookup
- conparison functions for VPP IP address types

Change-Id: If7ec0bbc5cea71fd0983fe78987d147ec1bd7ec8
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>

61b94c6b 20-Aug-2018 Mohsin Kazmi <sykazmi@cisco.com>

vxlan-gbp: Add support for vxlan gbp

This patch implements vxlan with extension of group based
policy support.

Change-Id: I70405bf7332c02867286da8958d9652837edd3c2
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>

3b81a1e5 06-Sep-2018 Neale Ranns <nranns@cisco.com>

L2 BVI/FIB: Update L2 FIB table when BVI's MAC changes

also some moving of l2 headers to reduce dependencies

Change-Id: I7a700a411a91451ef13fd65f9c90de2432b793bb
Signed-off-by: Neale Ranns <nranns@cisco.com>

3b93be5d 07-Sep-2018 Neale Ranns <nranns@cisco.com>

IP route update fix when multipath and drop set

Change-Id: I9cec7486cb6e3c5261d74d2b15a4d19469285a30
Signed-off-by: Neale Ranns <nranns@cisco.com>

ab2f6dbf 31-Aug-2018 Florin Coras <fcoras@cisco.com>

session: support multiple worker binds

Allows app workers to listen on the same session endpoint. Incoming
connects are spread across the workers in a round-robin fashion

Change-Id: Ib5f5817230d9abc6127a85cdbdcad70d980c0f7f
Signed-off-by: Florin Coras <fcoras@cisco.com>

a7f8b228 05-Sep-2018 Matus Fabian <matfabia@cisco.com>

NAT: fix maximum out of order fragments (VPP-1399)

All fragments should be dropped when max_frag is 1 and 2 non-initial fragments are received before first fragment.

Change-Id: Id0c968f45629698e347e8226c5926f27b48b82d6
Signed-off-by: Matus Fabian <matfabia@cisco.com>

05ca4a36 05-Sep-2018 Matus Fabian <matfabia@cisco.com>

NAT: test cleanup (VPP-1252)

"assertEqual(len(capture), <expected packet count>)" no more needed since it is done by get_capture

Change-Id: I1cbe223cf55198cec946b8ea0883f2a4fa632005
Signed-off-by: Matus Fabian <matfabia@cisco.com>

721872e0 05-Sep-2018 juraj.linkes <juraj.linkes@pantheon.tech>

Fix test summary and retries

There was an issue when tests crashed and weren't properly retried.

Change-Id: Id5ef828ecc9a8dc0f08c50183721db06e162e6c3
Signed-off-by: juraj.linkes <juraj.linkes@pantheon.tech>

573c7af1 05-Sep-2018 Ole Troan <ot@cisco.com>

STATS: Update Prometheus port

Update temporary port allocation with fixed allocated from:
https://github.com/prometheus/prometheus/wiki/Default-port-allocations

Change-Id: I99a7e069fb95d00884458aeacaba06e4713fbb76
Signed-off-by: Ole Troan <ot@cisco.com>

5d28c7af 04-Sep-2018 Matus Fabian <matfabia@cisco.com>

NAT: add support for configurable port range (VPP-1346)

Change-Id: I6882b6daa05db866fe6e78a62b380ec331507f74
Signed-off-by: Matus Fabian <matfabia@cisco.com>

ea5b5be4 03-Sep-2018 Matus Fabian <matfabia@cisco.com>

NAT44: client-IP based session affinity for load-balancing (VPP-1297)

Enable client-IP based session affinity per LB NAT rule with specific timeout.

Change-Id: I9aade152e330218d21dfda99cc5e984d769ab806
Signed-off-by: Matus Fabian <matfabia@cisco.com>

73202107 30-Aug-2018 Ole Troan <ot@cisco.com>

STATS: Python binding to access VPP statistics and counters.

from vpp_papi.vpp_stats import VPPStats
s = VPPStats(socketname='/var/run/stats.sock')
c = s.ls('/if/rx')
counters = s.dump(c)
print(s.set_error_str())

Change-Id: I203ebe60b0c9ee5742aadc737c0f29051757959d
Signed-off-by: Ole Troan <ot@cisco.com>

855e2686 24-Aug-2018 Damjan Marion <damarion@cisco.com>

Switch to cmake

Change-Id: I982b69390c55b5ffbd744f355efc0aaf425b360c
Signed-off-by: Damjan Marion <damarion@cisco.com>

219cc90c 28-Jun-2018 Hongjun Ni <hongjun.ni@intel.com>

Support lb on both vip and per-port-vip case

Previously, a service is specified by vip.
This patch extend that a service is specified
by both vip and per-port-vip cases.

Change-Id: Icbfd1f972c6bafde7d85c6abb498576bd9ba250d
Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>

c8352bc4 29-Aug-2018 Neale Ranns <neale.ranns@cisco.com>

Refactor the ARP throttle into a common type so it can be reused

Change-Id: Ic7f7af983d5b6d756748023aa0c650f53e9285cf
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>

7c922dc4 30-Aug-2018 Neale Ranns <nranns@cisco.com>

SR-MPLS: fixes and tests

- the FIB path takes a vector of type fib_mpls_label_t not u32 so the untype safe vec_add did not work
- write som eSR-MPLS tests
- allow an MPLS tunnel to resolve through a SR BSID

Change-Id: I2a18b9a9bf43584100ac269c4ebc286c9e3b3ea5
Signed-off-by: Neale Ranns <nranns@cisco.com>

5e2c54d0 30-Aug-2018 juraj.linkes <juraj.linkes@pantheon.tech>

Fix hanging test runner when child process dies

When fixing the test summary after a test run doesn't finish properly I
introduced a bug where child process which died would leave the whole
run hanging. This patch fixed the bug while still having the correct
test summary.

Change-Id: I206b1a7dab4032d24cbc50667b8dd0bdcebb67a6
Signed-off-by: juraj.linkes <juraj.linkes@pantheon.tech>

be460e72 28-Aug-2018 juraj.linkes <juraj.linkes@pantheon.tech>

Fix the default step when using STEP=1 while testing

Change-Id: I6b2950dfd0d9023b20e24845b3bce20cf4ba66df
Signed-off-by: juraj.linkes <juraj.linkes@pantheon.tech>

1732e476 28-Aug-2018 Klement Sekera <ksekera@cisco.com>

VAPI: bugfixes

Change-Id: I20cfbae8b704ca68fd8dda9c811dc282ce723871
Signed-off-by: Klement Sekera <ksekera@cisco.com>

878c646a 23-Aug-2018 Matus Fabian <matfabia@cisco.com>

NAT44: add support for session timeout (VPP-1272)

NAT44 (vanilla/simple and endpoint-dependent mode) now lazily delete expired
sessions. When inserting to session lookup hash and bucket is full, expired
session is overwritten.

Change-Id: Ib1b34959f60f0ca4f5b13525b1d41dd2f992288d
Signed-off-by: Matus Fabian <matfabia@cisco.com>

0219b8df 24-Aug-2018 juraj.linkes <juraj.linkes@pantheon.tech>

Fix logging to file and summary for crashed tests

Logging was not being logged to log.txt
Crashed tests were not reported properly when running tests in one
process

Change-Id: Ica2d703d88351cc8a94bad86764ae4376dc79590
Signed-off-by: juraj.linkes <juraj.linkes@pantheon.tech>

038d2614 23-Aug-2018 Marco Varlese <marco.varlese@suse.com>

sctp: https://jira.fd.io/browse/VPP-1396

Reducing the number of clients and mbytes transferred to make the test a
functional test rather than a stress one.

Change-Id: I715ab5db087b96c40da37d4221f3030b10519fd0
Signed-off-by: Marco Varlese <marco.varlese@suse.com>

184870ac 16-Jul-2018 juraj.linkes <juraj.linkes@pantheon.tech>

CSIT-1139: Implement parallel test execution

The implementation of parallel test execution in VPP Test Framework.
- VPPTestCase test methods are grouped together
- tests are running in separate processes
- VPP instances spawned by tests are assigned to different cores
- output from these processes is redirected through pipes and printed
out testcase by testcase
- TEST_JOBS env var is used to specify the number of parallel processes
- improved test summary
- a bit of code cleanup

Change-Id: I9ca93904d9fe2c3daf980500c64a8611838ae28c
Signed-off-by: juraj.linkes <juraj.linkes@pantheon.tech>

42954247 04-Jul-2018 Francois Clad <fclad@cisco.com>

srv6-ad: Adding support for L2 traffic

Change-Id: I3c14555113c2b58f3be629600051beb7f6716cfe
Signed-off-by: Francois Clad <fclad@cisco.com>

bcd4c4a2 26-Jul-2018 Francois Clad <fclad@cisco.com>

srv6-ad: Adding test cases

Change-Id: I32704267cf2ff6628f86335a5e7da1c3b116df1d
Signed-off-by: Francois Clad <fclad@cisco.com>

61502115 22-Aug-2018 Neale Ranns <neale.ranns@cisco.com>

IPIP and SIXRD tunnels create API needs table-IDs not fib-indexes

Change-Id: Ifaef196a24fa9b6924f2b9692318f69763cee5e1
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>

69ce30d6 22-Aug-2018 Matus Fabian <matfabia@cisco.com>

NAT: update nat_show_config_reply API (VPP-1403)

Change-Id: I85383e428cb54c4c09ab387811dd6390f7c61d97
Signed-off-by: Matus Fabian <matfabia@cisco.com>

32445449 20-Aug-2018 Klement Sekera <ksekera@cisco.com>

make test: remove excessive prints

Change-Id: Iad57387991d4330d7797cb85fef1157a36e8e897
Signed-off-by: Klement Sekera <ksekera@cisco.com>

b3655e55 16-Aug-2018 Ole Troan <ot@cisco.com>

VPP-1392: VXLAN fails with IP fragmentation

Not only is it wasteful to send all fragments back through ip4-lookup, but
it doesn't work with tunnel mechanisms that don't have IP enabled on their
payload side.

Change-Id: Ic92d95982dddaa70969a2a6ea2f98edec7614425
Signed-off-by: Ole Troan <ot@cisco.com>

a60c3ed1 17-Aug-2018 juraj.linkes <juraj.linkes@pantheon.tech>

Add psutil to testing virtualenv

Change-Id: I650c9f226bcdc6328a7b4ff2dc4bd20cea8a512a
Signed-off-by: juraj.linkes <juraj.linkes@pantheon.tech>

182e37e3 14-Aug-2018 Matus Fabian <matfabia@cisco.com>

NAT44: fix next_src_nat (VPP-1384)

Use rx_fib_index instead of sm->inside_fib_index for session lookup key.

Change-Id: I2d6cce5b9376fa8ac4d75a9bbfa8498be0fd1493
Signed-off-by: Matus Fabian <matfabia@cisco.com>

8fed4240 14-Aug-2018 Matus Fabian <matfabia@cisco.com>

NAT64: fix TCP session expire (VPP-1390)

Add missing call of nat64_tcp_session_set_state to set TCP session state.

Change-Id: Ifd297ea3ffe20870e1e34a95449b5c9404ec13eb
Signed-off-by: Matus Fabian <matfabia@cisco.com>

7eb9d960 10-Aug-2018 Ole Troan <ot@cisco.com>

IP fragmentation buffer chains, part 2.

Change-Id: I8d1072cf9ff9f502302fd906c5590e0f3698dc60
Signed-off-by: Ole Troan <ot@cisco.com>

4146c65f 08-Aug-2018 Ole Troan <ot@cisco.com>

IP fragmentation to handle buffer chains.

Change-Id: Iff557f566ebc9ab170d75da1233997d83b8c8a66
Signed-off-by: Ole Troan <ot@cisco.com>

d0df49f2 08-Aug-2018 Neale Ranns <nranns@cisco.com>

Use IP address types on UDP encap API

Change-Id: I3c714c519b6d0009329b50947ce250c18ee2a85a
Signed-off-by: Neale Ranns <nranns@cisco.com>

404d88ed 08-Aug-2018 Neale Ranns <neale.ranns@cisco.com>

Add test of the IP unnumbered dump

Change-Id: Ic3e978faf58b43adb8a9fd0dea36eb4513fe0c64
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>

68ba8807 08-Aug-2018 Matus Fabian <matfabia@cisco.com>

NAT44: delete user with zero sessions (VPP-1282)

Change-Id: I756e3ad3de9ffe1494221ef95c1943c8591f8f50
Signed-off-by: Matus Fabian <matfabia@cisco.com>

75282457 12-Jun-2018 Juraj Sloboda <jsloboda@cisco.com>

Fix "Old Style VLA" build warnings

Change-Id: I8d42f6ed58ec34298d41edcb3d783e7e9ded3eec
Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>

9da2e542 08-Aug-2018 Neale Ranns <neale.ranns@cisco.com>

Remove unnecessary routes during vrf-multi-instances tests

Change-Id: I0a7fd0df90eff522366cb55ad224fe24a3121e56
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>

ce9e0b4d 01-Aug-2018 Neale Ranns <neale.ranns@cisco.com>

loop counter to prevent infiinte number of look ups per-packet

Change-Id: I59235d11baac18785a4c90cdaf14e8f3ddf06dab
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>

c6c0d2a0 20-Jul-2018 Matus Fabian <matfabia@cisco.com>

NAT44: LB NAT - local backends in multiple VRFs (VPP-1345)

Add support for local backends in multiple VRFs for load-balancing NAT rules.

Change-Id: I64e6818bd67a7e69985003498cf1f16f7200c334
Signed-off-by: Matus Fabian <matfabia@cisco.com>

cc4a5e80 30-Jul-2018 Damjan Marion <damarion@cisco.com>

Move java api to extras/

Change-Id: Ibd5cbbdfb22a235442cddaebc9eae9a3c4e35ec9
Signed-off-by: Damjan Marion <damarion@cisco.com>

54693d23 17-Jul-2018 Florin Coras <fcoras@cisco.com>

vcl: use events for epoll/select/read/write

Have vcl poll and wait on the event message queues as opposed to
constantly polling the session fifos. This also adds event signaling to
cut through sessions.

On the downside, because we can't wait on multiple condvars, i.e., when
we have multiple message queues because of cut-through registrations, we
do timed waits.

Change-Id: I29ade95dba449659fe46008bb1af502276a7c5fd
Signed-off-by: Florin Coras <fcoras@cisco.com>

055b231d 20-Jul-2018 Neale Ranns <neale.ranns@cisco.com>

L2 Flood: use the buffer clone API rather than buffer recycle

Change-Id: I40e4efd8061369efc535f0d49b2f63668b6d1d15
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>

e8b68a3d 13-Jul-2018 Jan Gelety <jgelety@cisco.com>

make_test: Add equal-cost multi-path routing tests

Jira: CSIT-1181

Change-Id: I78f85cf58696369070314bdf05ae8b3acf2ca84c
Signed-off-by: Jan Gelety <jgelety@cisco.com>

8b5dc4fd 23-Jul-2018 Dave Barach <dave@barachs.net>

Create a unit-test plugin

Move the tcp unit test to the plugin
Add a bihash unit test and a "make test" program to call it
Adjust framework.py to load the plugin, which is disabled by default

Change-Id: Ic229d386a56a9d28dbd54974f231149053ca8f93
Signed-off-by: Dave Barach <dave@barachs.net>

16782368 23-Jul-2018 Neale Ranns <nranns@cisco.com>

test frame work pump thread exit: set flag then wake

Change-Id: Id95b8a7ad1bf550f615c50d77b16a530cc8fc2c4
Signed-off-by: Neale Ranns <nranns@cisco.com>

c79396e1 23-Jul-2018 Matus Fabian <matfabia@cisco.com>

NAT44: fix forwarding feature bug (VPP-1349)

Change-Id: I5009fcfde5c627d59dea3edda15486b9392134a2
Signed-off-by: Matus Fabian <matfabia@cisco.com>

b7d41fc1 16-Jul-2018 Neale Ranns <nranns@cisco.com>

make test-ext: a new test target that builds VOM (existing one no longer do)

Change-Id: If590e90b2a1c3b884863ec15a92ea4353ac9eb7c
Signed-off-by: Neale Ranns <nranns@cisco.com>

1855b8e4 11-Jul-2018 Neale Ranns <nranns@cisco.com>

IP directed broadcast

with ip direct broadcast enable a packet to the interface's
subnet broadcast address with be sent L2 broadcast on the
interface. dissabled, it will be dropped. it is disabled by
default, which preserves current behaviour

Change-Id: If154cb92e64834e97a541b32624354348a0eafb3
Signed-off-by: Neale Ranns <nranns@cisco.com>

0809f6c0 16-Jul-2018 Neale Ranns <nranns@cisco.com>

QoS: marking and recording for MPLS and VLAN

Change-Id: Icec79aa9039d5d7835d311fde0b7c1a0c76c9eb1
Signed-off-by: Neale Ranns <nranns@cisco.com>

7064c338 18-Jul-2018 Marek Gradzki <mgradzki@cisco.com>

test_jvpp: improve error message when JVpp JARS are missing

The java command fails with missing class error,
when some of the JARs given by -cp are missing,
which may be missleading.

This patch fixes that by adding os.path.isfile check to test_jvpp.py.

Change-Id: I3a0b6ef338c7f70cfd0ba78ee0888efe0b0957b3
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>

22b3b846 17-Apr-2018 Mohsin Kazmi <sykazmi@cisco.com>

gbp: Add support for ACL

Change-Id: I7513c41307e62068ab5d9739cac393675c6066f8
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>

2a3fb1a2 27-Jun-2018 Jan Gelety <jgelety@cisco.com>

make_test: dhcp - add lease time test and wrong XID in OFFER test

- negative test with wrong XID in OFFER not implemented as issue
reported in Jira ticket VPP-99 still not fixed

Jira: CSIT-1147

Change-Id: I4ebc622bd81fed421919bc0397a12e32cb26fa1d
Signed-off-by: Jan Gelety <jgelety@cisco.com>

208c29aa 11-Apr-2018 Neale Ranns <neale.ranns@cisco.com>

VOM: support for pipes

Change-Id: I5c381dfe2f926f94a34ee8ed8f1b9ec6038d5fe2
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>

b02f3b7b 04-Jul-2018 Francois Clad <fclad@cisco.com>

srv6-as: Adding support for L2 traffic

Change-Id: I72978c5957cb1acf154c9de7ad153092bac37785
Signed-off-by: Francois Clad <fclad@cisco.com>

0928da90 09-Jul-2018 Francois Clad <fclad@cisco.com>

srv6-as: Adding test cases

Change-Id: I597a88d255c2f7cff552b1fa12ed4a7c4579b91c
Signed-off-by: Francois Clad <fclad@cisco.com>

d47da680 09-Jul-2018 Francois Clad <fclad@cisco.com>

srv6: Fixing SRH parsing bug in Scapy 2.4

Change-Id: Ib2cb345d07665735697bf54ad48d353ba4112eda
Signed-off-by: Francois Clad <fclad@cisco.com>

059d1d0e 03-Jul-2018 Jan Gelety <jgelety@cisco.com>

make_test: Add missing classifier tests

Jira: CSIT-1172

Change-Id: I04e726aab97efb96ed835d2a6db293a2acab0add
Signed-off-by: Jan Gelety <jgelety@cisco.com>

8008d7cd 09-Jul-2018 Matus Fabian <matfabia@cisco.com>

NAT44: multiple outside FIB tables (VPP-1314)

Change-Id: I56eb15f8fd2d3049845287dc3df7870582764f8b
Signed-off-by: Matus Fabian <matfabia@cisco.com>

c746a152 09-Jul-2018 Juraj Sloboda <jsloboda@cisco.com>

Do not translate packets destined for NAT64 inside interface (VPP-1331)

Change-Id: Ieb8020f57ed5ad20daf552cd62ae3fdd8c573926
Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>

947ea622 08-Jun-2018 Neale Ranns <nranns@cisco.com>

IGMP improvements

- Enable/Disable an interface for IGMP
- improve logging
- refactor common code
- no orphaned timers
- IGMP state changes in main thread only
- Large groups split over multiple state-change reports
- SSM range configuration API.
- more tests

Change-Id: If5674f1044e7e97274a711f47807c9ba689d7b9a
Signed-off-by: Neale Ranns <nranns@cisco.com>

dd47ecad 08-Jul-2018 Eyal Bari <ebari@cisco.com>

vxlan:use bihash_16_8 for ipv4 lookup

Change-Id: I0d4630c88d6caacffcd073ebaa12766dfc893f70
Signed-off-by: Eyal Bari <ebari@cisco.com>

17ff3c1f 04-Jul-2018 Neale Ranns <neale.ranns@cisco.com>

Pipes

A pipe resembles a unix pipe. Each end of the pipe is a full
VPP interface.
pipes can be used for e.g. packet recirculation, inter-BD, etc.

Change-Id: I185bb9fb43dd233ff45da63ac1b85ae2e1ceca16
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>

dab732a1 04-Jul-2018 Klement Sekera <ksekera@cisco.com>

VPP-1335 vapi crash when memclnt_keepalive received

Change-Id: If33a7cc6c76147fd3ea9d8118370e7a508819b81
Signed-off-by: Klement Sekera <ksekera@cisco.com>

64526229 14-Jun-2018 Klement Sekera <ksekera@cisco.com>

fix VPP-1312 Invalid UDP packet length in ipsec

Change-Id: Ibfd0a2e7010e6e74c32244c538f60e0713bea03f
Signed-off-by: Klement Sekera <ksekera@cisco.com>

6b1cdd3a 29-Jun-2018 Mohsin Kazmi <sykazmi@cisco.com>

vom: Add cross connect support

Change-Id: Ia316730d8f9fe9836200aa96e0b5fd827dc71c98
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>

e6c78ee8 25-Jun-2018 Jan Gelety <jgelety@cisco.com>

make_test: add icmp packet size sweep and icmp echo tests

Jira: CSIT-1141

Change-Id: I162bb4e718bff188abefc7b2f33501de9c55bb03
Signed-off-by: Jan Gelety <jgelety@cisco.com>

c667ffd4 28-Jun-2018 Neale Ranns <nranns@cisco.com>

IP4 Router Alert option handling for IGMP

and a new ip4-options node, inserted between ip4-input and ip4-punt,
that checks for IP-router-alert option + IGMP combination and sends
the packet to the ip4-local. This is required because some IGMP
packets are sent to the group address and not the all-routers address.
All IGMP packets are sent with the router alert option.

Change-Id: I01f478d4d98ac9f806e0bcba0f6da6e4e7d26e2a
Signed-off-by: Neale Ranns <nranns@cisco.com>

01551581 28-Jun-2018 Klement Sekera <ksekera@cisco.com>

make test: fix profiling

Change-Id: Iad45ca8c167a017029b20ddd0a0b59087fa69498
Signed-off-by: Klement Sekera <ksekera@cisco.com>

bbfa5fdf 27-Jun-2018 Klement Sekera <ksekera@cisco.com>

make test: easy profiling via make test PROFILE=1

Change-Id: Ib845578485f523b7f14e98c83d05f78db382ecde
Signed-off-by: Klement Sekera <ksekera@cisco.com>

235a47e3 25-Jun-2018 Matus Fabian <matfabia@cisco.com>

NAT44: fix nat44_ed_not_translate_output_feature (VPP-1329)

Change-Id: Iddb0b848c53da03116524e203c7112c82b401ac5
Signed-off-by: Matus Fabian <matfabia@cisco.com>

6fb0d9b2 07-Jun-2018 Hongjun Ni <hongjun.ni@intel.com>

L3DSR fix ip checksum issue and add test

Change-Id: Iedebbac71d3e694b915d6a126c80ecc3b5473a4a
Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>

d16ba629 21-Jun-2018 Jan Gelety <jgelety@cisco.com>

Add negative tests for leaking across different VRFs - ip4/6

Jira: CSIT-1140

Change-Id: I5c6dd44d3efb298f203e61b14345a2f13680bd34
Signed-off-by: Jan Gelety <jgelety@cisco.com>

4c5422ee 22-Jun-2018 Klement Sekera <ksekera@cisco.com>

make test: fix RETRIES when setUpClass throws

This change adds handling of special case when setUpClass throws. In
this case TestResults receives a mock object called _ErrorHolder.
By parsing its description, we find test class name and use it to lookup
the test class in test suite to be able to add it to the list of failures
for re-running.

Change-Id: I656f21e38aa450fc567cdcbcf6e586967f947a64
Signed-off-by: Klement Sekera <ksekera@cisco.com>

beaded5e 24-Jun-2018 Klement Sekera <ksekera@cisco.com>

make test: fix broken interfaces #2

Change-Id: I9d5b5d925fd2c09a1113fc51e433a16d729a241b
Signed-off-by: Klement Sekera <ksekera@cisco.com>

b9ef2739 24-Jun-2018 Klement Sekera <ksekera@cisco.com>

Revert "Revert "make test: fix broken interfaces""

This reverts commit c8efa29b6f9a91381897b54f1147daf922ed7164.

Change-Id: I1d5c5773d5f86a63073e255336bd9de628e26179
Signed-off-by: Klement Sekera <ksekera@cisco.com>

31da2e30 24-Jun-2018 Klement Sekera <ksekera@cisco.com>

Revert "Revert "ipsec: VPP-1316 calculate IP/TCP/UDP inner checksums""

This reverts commit e0d2bd6bd7fc59c0c6ac48195d7f825dc99bfd91.

Change-Id: If491e16f9ea66b2493a6a7c7f3c684ed585f8f51
Signed-off-by: Klement Sekera <ksekera@cisco.com>

e0d2bd6b 22-Jun-2018 Ole Troan <ot@cisco.com>

Revert "ipsec: VPP-1316 calculate IP/TCP/UDP inner checksums"

This reverts commit a98346f664aae148d26a8e158008b773d73db96f.

Change-Id: Iee5b3a5ddff0e8fd3a30fe5973cee24de434fe12
Signed-off-by: Ole Troan <ot@cisco.com>

c8efa29b 22-Jun-2018 Ole Troan <ot@cisco.com>

Revert "make test: fix broken interfaces"

This reverts commit d5c60b96a3fd93916fc4af5c8d6d25625c28242e.

Change-Id: I3632b9c3f76c615aee897f28f76d094e7031e689
Signed-off-by: Ole Troan <ot@cisco.com>

d5c60b96 22-Jun-2018 Klement Sekera <ksekera@cisco.com>

make test: fix broken interfaces

Change-Id: I2e092774f81503e04b53cc6c6b5d357fe3fc52ab
Signed-off-by: Klement Sekera <ksekera@cisco.com>

a7564e80 12-Jun-2018 Ole Troan <ot@cisco.com>

Python API: Add enum and union support.

As well as a rewrite of the encoders/decoders to make it more readable and extensible.
(Re-commit after fix to verify build.)

Change-Id: Ic244d3cebe070bb2570491f8a24f4a1e203f889a
Signed-off-by: Ole Troan <ot@cisco.com>

cef1e2a8 18-Jun-2018 Eyal Bari <ebari@cisco.com>

test:vxlan over ipv6 tests

Change-Id: Id910db0e3a07ecc6f469e2f0d1e97f39ba48cc60
Signed-off-by: Eyal Bari <ebari@cisco.com>

a98346f6 16-May-2018 Klement Sekera <ksekera@cisco.com>

ipsec: VPP-1316 calculate IP/TCP/UDP inner checksums

Calculate IP/TCP/UDP checksums in software before adding authentication.

Change-Id: I3e121cb00aeba667764f39ade8d62170f18f8b6b
Signed-off-by: Klement Sekera <ksekera@cisco.com>

dd3b8f7a 04-May-2018 Juraj Sloboda <jsloboda@cisco.com>

Implement DHCPv6 IA NA client (VPP-1094)

Change-Id: I682a47d6cf9975aca6136188d28ee93eaadf4fe3
Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>

3337bd22 19-Jun-2018 Pablo Camarillo <pcamaril@cisco.com>

Fixed bugs in SRv6 API

Jira ticket VPP-1196
Jira ticket VPP-1081
Jira ticket VPP-1078
Jira ticket VPP-1217

Change-Id: Id7e85229cae1017acb0aa4ca63ced334e6dafb8d
Signed-off-by: pcamaril <pcamaril@cisco.com>
Signed-off-by: Pablo Camarillo <pcamaril@cisco.com>
Signed-off-by: pcamaril <pcamaril@cisco.com>
Signed-off-by: Michal Cmarada <michal.cmarada@pantheon.tech>

61debaaa 18-Jun-2018 Ole Trøan <otroan@employees.org>

Revert "Python API: Add enum and union support."

This reverts commit a5ee900fb75201bbfceaf13c8bc57a13ed094988.

Some of the unit tests breaks. Backing out until fixed.

Change-Id: I1846fb417db44a2a772f7b59cda8bcfe6d39f8c3
Signed-off-by: Ole Troan <ot@cisco.com>

a5ee900f 12-Jun-2018 Ole Troan <ot@cisco.com>

Python API: Add enum and union support.

As well as a rewrite of the encoders/decoders to make it more readable and extensible.

Change-Id: I253369ac76303922bf9c11377622c8974fa92f19
Signed-off-by: Ole Troan <ot@cisco.com>

d9778c2b 12-Jun-2018 Juraj Sloboda <jsloboda@cisco.com>

Update DHCPv6 DUID code and fix coverity warnings

- Generate client DUID only when DHCPv6 PD feature is enabled
- Change client DUID type from DUID-LLT to DUID-LL
- Fix coverity warnings

Change-Id: I20e518fc9a1c5f3f7ea9add7e7e03a487c99e978
Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>

a6110b6e 13-Jun-2018 Matus Fabian <matfabia@cisco.com>

NAT44: endpoint dependent mode (VPP-1273)

To enable NAT plugin endpoint dependent mode add following to statrup config:
nat { endpoint-dependent }

Enable endpoint dependent filtering and mapping for all sessions.
Move some existing functionality such as service load balancing, twice nat,
out2in-only static mappings and unknown protocol dynamic translations, which
use endpoint dependent lookup hash tables before. Basically split to vanilla
NAT44 and extra features NAT44.

Change-Id: I3925eb5ddcc8f1ec4cf6af4e2a618a7ec7aa9735
Signed-off-by: Matus Fabian <matfabia@cisco.com>

313f7e2f 10-Apr-2018 Ole Troan <ot@cisco.com>

MTU: IP fragmentation added to ip4-rewrite and ip6-rewrite

Change-Id: Ibae260273f25a319153be37470aed49ff73e957a
Signed-off-by: Ole Troan <ot@cisco.com>

40903ac3 10-Jun-2018 Florin Coras <fcoras@cisco.com>

udp: fix for multiple workers and add test

Since the main thread is not used for session polling anymore, when vpp
is started with multiple wokers, allocate connections on the first. Also
add a simple udp make test.

Change-Id: Id869f5d89e0fced51048f0384fa86a5022258b7c
Signed-off-by: Florin Coras <fcoras@cisco.com>

d723161e 07-Jun-2018 Ole Troan <ot@cisco.com>

MTU: Software interface / Per-protocol MTU support

This patch separates setting of hardware interfaec and software
interface MTU. Software MTU is L2 payload MTU (i.e. not including L2
header). Per-protocol MTU for IPv4, IPv6 and MPLS can also be set.
Currently only IP4, IP6 are enabled in adjacency / rewrite code.

Documentation in src/vnet/MTU.md

Change-Id: Iee2fd6f0bbc8210748dd8e073ab9fab87d323690
Signed-off-by: Ole Troan <ot@cisco.com>

81119e86 25-May-2018 Juraj Sloboda <jsloboda@cisco.com>

Implement DHCPv6 PD client (VPP-718, VPP-1050)

Change-Id: I72a1ccdfdd5573335ef78fc01d5268934c73bd31
Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>

59ae61ee 08-Jun-2018 Neale Ranns <neale.ranns@cisco.com>

Gratuitous ARP packet handling

only learn from a GARP packet if it is an update to an existing entry.

Change-Id: I4c1b59cfedb911466e5e4c9756cf53a6676e1909
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>

daff1784 16-May-2018 Neale Ranns <neale.ranns@cisco.com>

DHCP Client Dump

- use types on the DHCP API so that the same data is sent in comfing messages and in dumps
- add the DHCP client dump API
- update VOM to refelct API changes
- rename VOM class dhcp_config* dhcp_client*
- the VOM dhcp_client class maintains the lease data (which it reads on a dump) for clients to read

Change-Id: I2a43463937cbd80c01d45798e74b21288d8b8ead
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>

ff4ba35f 30-May-2018 Klement Sekera <ksekera@cisco.com>

make test: VPP-1288 fix bogus sw_if_index values

Change-Id: I9a61538f4c832f09269c6ddfcd55f909003b8694
Signed-off-by: Klement Sekera <ksekera@cisco.com>

229c1aaf 28-May-2018 Matus Fabian <matfabia@cisco.com>

NAT44: code cleanup and refactor (VPP-1285)

Change-Id: I088163f10ae5515d7a9115781cc13ef563fafed5
Signed-off-by: Matus Fabian <matfabia@cisco.com>

41141d50 18-May-2018 Sirshak Das <sirshak.das@arm.com>

Fixes make test errors with clang compiler on aarch64

(VAPI_*BIN).d targets didnt have fake.api.vapi.h* as dependencies
this causes the compilation to proceed before the python script
generates the header files.
Explicit linking of stdc++ is required for clang as errors like
undefined reference to 'new operator' pop up.

Change-Id: I3ca0ef048f392c4a032160ce0e4f7ae759f4c79d
Signed-off-by: Sirshak Das <sirshak.das@arm.com>
Reviewed-by: Brian Brooks <brian.brooks@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>

0d88301a 11-May-2018 Steven <sluong@cisco.com>

bond: performance harvesting

- hash is great. But it is a bit too slow for the DP. Use direct array indexing
to quickly retrieve the slave interface.
- the algorithm used by flow hash is great. But it is a bit too slow for the DP.
Use l2_hash_hash() extracted from lb_hash.h which ECMP is using. It makes use
of intrinsic crc32 instruction set.
- shortcut modulo arithmetic when the operand is 2**x (where x up to 4) to
avoid division instruction.
- special case for link count == 1 in bond_tx_fn()
- use clib_mem_unaligned to access data for the packet to avoid alignment error
- Fix some typos for packet tracing.

Change-Id: I8eae3ad497061c5473aa675ba894ee0211120d25
Signed-off-by: Steven <sluong@cisco.com>

0053de63 22-May-2018 Neale Ranns <nranns@cisco.com>

ARP proxy dumps

Change-Id: I8335ebf266becf2f42bb3f28a17dfed8d9b08f97
Signed-off-by: Neale Ranns <nranns@cisco.com>

d57f6369 24-May-2018 Ole Troan <ot@cisco.com>

VPP-1277: IPIP - Copy TOS/TC from inner packet to outer.

Add support for either copying TOS/TC from inner packet to outer,
or set to fixed value.

Change-Id: I716a95f875349acec94317b266c8cf9f2f81a785
Signed-off-by: Ole Troan <ot@cisco.com>

c798bc5b 23-May-2018 Klement Sekera <ksekera@cisco.com>

make test: VPP-1288 fix from sw_if_index values

Change-Id: I80297e78d93d8cf0d347863e4d2fdb12ea9294ac
Signed-off-by: Klement Sekera <ksekera@cisco.com>

da6e11b4 23-May-2018 Ole Troan <ot@cisco.com>

VPP-1283: IPv6 PMTU missing MTU value in ICMP6 message.

Fix GRE/IPv6 setting of ip->payload_length (which has never worked).

Change-Id: Ie68f1cc7bbb70489d6ec97356132c783f2345e1e
Signed-off-by: Ole Troan <ot@cisco.com>

8a9c8f14 18-May-2018 Ole Troan <ot@cisco.com>

VPP-1283: IPv4 PMTU missing MTU value in ICMP4 message.

Change-Id: I7a4133c59ff45b0744b48e246a049d9f015026fc
Signed-off-by: Ole Troan <ot@cisco.com>

8f6dd328 17-May-2018 Neale Ranns <neale.ranns@cisco.com>

IP table bind allowed only if table exists

Change-Id: If01400e3434b25b2da36ba28ceb8444b216d0e38
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>

d92a0b55 06-Feb-2018 Hongjun Ni <hongjun.ni@intel.com>

Rework kube-proxy into LB plugin

Add support of NAT66

Change-Id: Ie6aa79078a3835f989829b9a597c448dfd2f9ea3
Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>

70a26ac0 14-May-2018 Matus Fabian <matfabia@cisco.com>

NAT44: nat44_del_session and nat44_user_session_details API update (VPP-1271)

Change-Id: I484d79000c1bbd87ff83847cf567bf3414a719d3
Signed-off-by: Matus Fabian <matfabia@cisco.com>

d81ae418 16-May-2018 Klement Sekera <ksekera@cisco.com>

make test: unify packet checksum verifications

Change-Id: If9cc7c5e32ebecff398fd38b39e8f485754a4ad4
Signed-off-by: Klement Sekera <ksekera@cisco.com>

744902e3 14-Aug-2017 Neale Ranns <nranns@cisco.com>

No overlapping sub-nets on any interface in the same table/VRF (VPP-943)

DBGvpp# set int ip addr loop0 10.10.10.10/24
DBGvpp# set int ip addr loop0 10.10.10.11/24
set interface ip address: failed to add 10.10.10.11/24 which conflicts with 10.10.10.10/24 for interface loop0

Change-Id: Iba63ffafbd36b6146ce86adb78139da9d55b40ba
Signed-off-by: Neale Ranns <nranns@cisco.com>

17e5cfbe 11-May-2018 Matus Fabian <matfabia@cisco.com>

NAT44: delete closed TCP session (VPP-1274)

Change-Id: Id25b447bddccb7b321123e4abc4134e7261a0807
Signed-off-by: Matus Fabian <matfabia@cisco.com>

84c62049 11-May-2018 Klement Sekera <ksekera@cisco.com>

make test: reorganize ipsec_ah test code

Change-Id: Ie0eb0127affd3d771d19bb7c60e79c31858d82cd
Signed-off-by: Klement Sekera <ksekera@cisco.com>

132dc49e 09-May-2018 Matus Fabian <matfabia@cisco.com>

NAT44: sessions counters per user fix (VPP-1270)

Change-Id: I6306b81e0e1c3e1c591f929a76bb265c1c1d0859
Signed-off-by: Matus Fabian <matfabia@cisco.com>

4b089f27 17-Apr-2018 Klement Sekera <ksekera@cisco.com>

ipsec: support UDP encap/decap for NAT traversal

Change-Id: I65c12617ad49e4d5ef242e53988782f0cefa5684
Signed-off-by: Klement Sekera <ksekera@cisco.com>

ebdf190a 04-May-2018 Matus Fabian <matfabia@cisco.com>

NAT44: TCP connection close detection (VPP-1266)

Change-Id: Iba1cc1179ee80478e29888790a6476571d1904dc
Signed-off-by: Matus Fabian <matfabia@cisco.com>

7220f42c 07-May-2018 Marco Varlese <marco.varlese@suse.com>

opensuse: OS_ID field content changed for SUSE

Change-Id: I4bb582d55b1071d3581155eb158995ca5153ba3c
Signed-off-by: Marco Varlese <marco.varlese@suse.com>

5b4a0201 01-May-2018 Neale Ranns <neale.ranns@cisco.com>

Scapy; update to release 2.4.0

Change-Id: Ibcae49ab106efa9cd0ff60be60904ac5a2fc0b65
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>

c7b8f203 25-Apr-2018 Neale Ranns <nranns@cisco.com>

IPv6 NS: use the mcast rewrite node to fill in the destination MAC

- move the IPv6 incomplete and glean node to ip6_neighbour.c (so it has access to ip6_neighbour_main_t)
- use the RA info config on the interface to find the multicast adj to use

Change-Id: I835e419072abe54fb09dafb0e7eb0a9e50eba1af
Signed-off-by: Neale Ranns <nranns@cisco.com>

164e5f8c 25-Apr-2018 Damjan Marion <damarion@cisco.com>

Move VOM to extras/vom

Change-Id: Iea174f03dfba3bd06024db0f0cc373532300dcae
Signed-off-by: Damjan Marion <damarion@cisco.com>

4a6d0233 24-Apr-2018 Neale Ranns <neale.ranns@cisco.com>

GBPv6: NAT66 actions for GBP

Change-Id: I379150a88f2d53d6281be41e8bad6fc4f4e88a71
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>

a15cd027 24-Apr-2018 Matus Fabian <matfabia@cisco.com>

NAT44: one-armed NAT and identity mapping (VPP-1212)

Change-Id: I228728bacfca6056dc409a96de1bffb9cadcd3e6
Signed-off-by: Matus Fabian <matfabia@cisco.com>

1e5c07d3 10-Apr-2018 Juraj Sloboda <jsloboda@cisco.com>

Add special Twice-NAT feature (VPP-1221)

When enabled then Twice-NAT is applied only when
source IP equals destination IP after DNAT

Change-Id: I58a9d1d222b2a10c83eafffb2107f32c1b4aa3a8
Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>

701625b8 18-Apr-2018 Andrey "Zed" Zaikin <zed.0xff@gmail.com>

typo fix: UNKOWN -> UNKNOWN

Change-Id: I008a4d7ad7160d1f07e7ceef712a5318a9368308
Signed-off-by: Andrey "Zed" Zaikin <zed.0xff@gmail.com>

2629c841 07-Mar-2018 Hongjun Ni <hongjun.ni@intel.com>

Fix PPPoE test case issues

Change-Id: I8b57250d5578ec7979c99da15d0ed7d0b70a8872
Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>

07a38572 21-Jan-2018 Damjan Marion <damarion@cisco.com>

Add logging support

Change-Id: Ieac9cf50156dbbb4962411e900d59256441915ef
Signed-off-by: Damjan Marion <damarion@cisco.com>
Signed-off-by: Klement Sekera <ksekera@cisco.com>

e821ab10 01-Jun-2017 Neale Ranns <nranns@cisco.com>

IP mcast: allow unicast address as a next-hop

Change-Id: I5e679f2601e37688f2768620479dc2efb7d19ca3
Signed-off-by: Neale Ranns <nranns@cisco.com>

669d07dc 17-Nov-2017 Andrew Yourtchenko <ayourtch@gmail.com>

ACL based forwarding

A poor man's flow switching or policy based rounting.

An ACL is used to match packets and is associated with a [set of] forwarding paths
that determine how to forward matched packets - collectively this association is a
'policy'.
Policies are then 'attached', in a priority order, to an interface when thaey are
encountered as an input feature. If a packet matches no policies it is forwarded
normally in the IP FIB.

This commit is used to test the "ACL-as-a-service" functionality,
which currently compiles, and the existing traffic ACL tests pass in both hash and linear modes.

Change-Id: I0b274ec9f2e645352fa898b43eb54c457e195964
Signed-off-by: Neale Ranns <nranns@cisco.com>
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
Signed-off-by: Ole Troan <ot@cisco.com>

28fb03fc 17-Apr-2018 Klement Sekera <ksekera@cisco.com>

make test: ipsec test cleanup

Change-Id: If813346b665468b25aaf5d95629bcad87212aa3e
Signed-off-by: Klement Sekera <ksekera@cisco.com>

e8fa6209 30-Aug-2017 Steven <sluong@cisco.com>

vhost: add vhost interface add/delete/dump API test cases to make test

The vhost binary APIs for add/delete/dump interface were available long ago.
But no unit tests were ever added in make test. This patch is to retrofit
the missing unit tests.

Change-Id: I489521b5ae359a1168ac5880a1f13a5f7e93ce4a
Signed-off-by: Steven <sluong@cisco.com>

fe7d4a2e 13-Apr-2018 Damjan Marion <damarion@cisco.com>

Revert "MTU: Setting of MTU on software interface (instead of hardware interface)"

This reverts commit 70083ee74c3141bbefb185525315f1b34497dcaa.

Reverting as this patch is causing following crash:

0: /home/damarion/cisco/vpp3/build-data/../src/vnet/devices/devices.h:131 (vnet_get_device_input_thread_index) assertion `queue_id < vec_len (hw->input_node_thread_index_by_queue)' fails
Aborted

Change-Id: Ie2a365032110b1f67be7a9d832885b9899813d39
Signed-off-by: Damjan Marion <damarion@cisco.com>

9341e34b 12-Apr-2018 Juraj Sloboda <jsloboda@cisco.com>

NAT66: Do not translate if packet not aimed at outside interface

Change-Id: Id5a2a90d81cc9cb87cb6fb89ac2f4ca3cbcb51e2
Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>

70083ee7 27-Mar-2018 Ole Troan <ot@cisco.com>

MTU: Setting of MTU on software interface (instead of hardware interface)

Change-Id: I98bd454a761a1032738a21edeb0fe847e801f901
Signed-off-by: Ole Troan <ot@cisco.com>

25b04948 04-Apr-2018 Neale Ranns <neale.ranns@cisco.com>

GBP V2

update the GBP plugin to implement the full NAT feature set of opflex agent

Change-Id: Ic06a039c889445ed0b9087fa1f292634192b0f8d
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>

95c87b5a 27-Feb-2017 Jan Gelety <jgelety@cisco.com>

Enable check of VRF reset - IPv4

Change-Id: I60818a22f543f9a3c3f62f9c67f5e4239e5b045a
Signed-off-by: Jan Gelety <jgelety@cisco.com>

410bcca4 23-Mar-2018 Keith Burns (alagalah) <alagalah@gmail.com>

VCL IOEvent external API callback

Change-Id: I417357b00c43b27872aa3f681335bdc1ef574eca
Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

d042194b 10-Apr-2018 Chris Luke <chrisy@flirble.org>

test: Fix issues with new version of pycodestyle (VPP-1232)

- Ignore warnings W504 (newline after binary operator) which otherwise
occurs a significant number of times.
- Fix two instances of lines >79 chars.

Change-Id: I8cef56f8afc237187995e638e610c8c0554e2bb5
Signed-off-by: Chris Luke <chrisy@flirble.org>

cefa41f8 05-Apr-2018 Marek Gradzki <mgradzki@cisco.com>

jvpp: log error output of Java process on test failure

helps troubleshooting JVpp test failures.

Change-Id: I4747832a0610ace168285bfe423c506ba4e00700
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>

9690e906 08-Apr-2018 Klement Sekera <ksekera@cisco.com>

make test: fix failure on centos

Change-Id: I1fcc742699a60ef99ce97b35f7b964ee6ad29ddf
Signed-off-by: Klement Sekera <ksekera@cisco.com>

56ccc23f 02-Apr-2018 Ed Kern <ejk@cisco.com>

Makefile: Alter VPP_PYTHON_PREFIX for preloading deps

Allow setting of VPP_PYTHON_PREFIX to alternate location
so the python prereqs can be installed into base image
Also added test-dep trigger to isolate dependency install
from actual test run

Change-Id: Ia80f5dbf71bc24eb46cd6586bcadd474ef822704
Signed-off-by: Ed Kern <ejk@cisco.com>

3ecc2211 27-Mar-2018 Klement Sekera <ksekera@cisco.com>

reassembly: bug fixes

This change fixes a bug which would corrupt features infra by making
feature infra resistant to double-removal. It also fixes 'out of memory'
issue by properly initializing the bihash tables.

Change-Id: I78ac03139234a9a0e0b48e7bdfac1c38a0069e82
Signed-off-by: Klement Sekera <ksekera@cisco.com>

57612ebc 28-Mar-2018 Andrew Yourtchenko <ayourtch@gmail.com>

make test: print a warning in case a core_pattern contains a filter program

The default config on Ubuntu 16.04.4 desktop results in truncated cores
when running make test which coredumps. Uninstalling the filter program
(apport) makes the corefiles normal size. Print a warning about that fact,
so the others potentially affected didn't have to wonder.

Change-Id: Iba4b0a2765a25100d6e24fd7f4de0e0339efd835
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>

f3a3bad8 28-Mar-2018 Florin Coras <fcoras@cisco.com>

ip6: fix ip6-local urpf checking

Use sw_if_index[VLIB_TX] if set as fib index when doing the urpf check.

Change-Id: I5ec3e7f7a54c6782704d91e9a5614fd0f7f9e3de
Signed-off-by: Florin Coras <fcoras@cisco.com>

56b39f6a 28-Mar-2018 Florin Coras <fcoras@cisco.com>

tcp: fix fib index buffer tagging

Change-Id: I373cc252df3621d44879b8eca70aed17d7752a2a
Signed-off-by: Florin Coras <fcoras@cisco.com>

ea2600ae 28-Mar-2018 Matus Fabian <matfabia@cisco.com>

NAT44: make 1:1NAT for DHCP addressed interface persistent

Static mapping is not deleted from resolution vector after address is set on
interface.

Change-Id: Ib7c45ca2e307123d101248c5a1b17d130ac32cd0
Signed-off-by: Matus Fabian <matfabia@cisco.com>

f0404e9f 27-Mar-2018 Neale Ranns <neale.ranns@cisco.com>

test: fix VppNeighbor.query_vpp_config

Change-Id: I2a879ee9d5065a14eb351eccd0350693eb1ff521
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>

ed76ee24 01-Mar-2018 Mohsin Kazmi <sykazmi@cisco.com>

VOM: bond: Add support for LACP

Change-Id: I0245263b212142858d3305b0f365d8342912dbb9
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>

de910068 20-Mar-2018 Dave Wallace <dwallacelf@gmail.com>

VCL: add IPv6 to socket_test.sh and make test

Change-Id: If3827828062a46f1cce43642535333f677f06e62
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

e1ace19b 23-Mar-2018 Klement Sekera <ksekera@cisco.com>

make test: fix DEBUG=gdb/gdbserver options

Change-Id: I5a7fa3b1c247ad5611907db27835724dcd31f575
Signed-off-by: Klement Sekera <ksekera@cisco.com>

b6866046 22-Mar-2018 Klement Sekera <ksekera@cisco.com>

make test: fix ext build on centos

Change-Id: I2b01f73c4b10a230310a65b6f35526818bf4f76d
Signed-off-by: Klement Sekera <ksekera@cisco.com>

3d6edf5a 21-Mar-2018 Klement Sekera <ksekera@cisco.com>

make test: use vpp-dev repo for py-lispnetworking

Change-Id: Ia87d55cad1d466a4cc624f06abbc322cddb5608c
Signed-off-by: Klement Sekera <ksekera@cisco.com>

9b6ece79 23-Mar-2018 Klement Sekera <ksekera@cisco.com>

make test: enhance core-file information

Change-Id: I1283960a9a49f6d70b9d7b7793cfb345c22ccdea
Signed-off-by: Klement Sekera <ksekera@cisco.com>

1f2f4b70 23-Mar-2018 Neale Ranns <nranns@cisco.com>

Add client hw address to DHCP offer and ack in test case

Change-Id: Ifc9bb4ea39b504372a6a39bbf56c29761d0c6111
Signed-off-by: Neale Ranns <nranns@cisco.com>

563a8531 23-Mar-2018 Andrew Yourtchenko <ayourtch@gmail.com>

acl-plugin: improvements in 'show acl-plugin macip acl' CLI

- allow to optionally specify the specific MACIP ACL index:
'show acl-plugin macip acl [index N]'
- after showing the MACIP ACL, show the sw_if_index of
interface(s) where it is applied.

Also, add some executions of this debug commands
to the MACIP test case for easy verification.

Change-Id: I56cf8272abc20b1b2581b60d528d27a70d186b18
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>

4585eb86 23-Mar-2018 Dave Barach <dbarach@cisco.com>

Drop dhcp pkts w/ hardware address mismatches

Add a few dhcp client rx packet/state counters

Temporarily disable the dhcp client unit test, since it trips over the
newly-added hardware address check.

Change-Id: I7f68607e6ed3d738cba357c3fe76664a99b71cd8
Signed-off-by: Dave Barach <dave@barachs.net>

beca2662 22-Mar-2018 Andrew Yourtchenko <ayourtch@gmail.com>

acl-plugin: make test: do not use a debug CLI where API can be used

Parsing the list of applied ACLs from the debug CLI output
is not a good idea, since the debug CLI can and will change.
Fix that.

Change-Id: Ia47214863f2658a54219f59cb974b5cbc536f862
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>

13a83ef4 20-Mar-2018 Klement Sekera <ksekera@cisco.com>

make test: code cleanup

Change-Id: Ic689de569e5b6e6209d16d6acdb13c489daca1f5
Signed-off-by: Klement Sekera <ksekera@cisco.com>

de3682f5 23-Mar-2018 Andrew Yourtchenko <ayourtch@gmail.com>

acl-plugin: make test: add a test which deletes an interface with applied ACL

There was no test coverage for a scenario of an interface having an
ACL and that interface being deleted. Add a basic sanity test which
applies an ACL to an interface and then deletes that interface.

Change-Id: Ib6462e02cf69f1173125ac2481c608f68eb389ac
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>

0e89dfc9 23-Mar-2018 Andrew Yourtchenko <ayourtch@gmail.com>

acl-plugin: make test: shuffle applied ACLs as part of the tests

During the testing of 94f9a6de3f706243d138e05b63fef1d5c8174f6c
I realized there was no test coverage for the cases where
the ACLs are added then modified while having beein applied.

This change adds some simple shuffling to l2l3 ACL test set,
whereby after each of the ACLs being applied, a few extra ACLs
are applied at the front and the back of the list, and are changed
several times, the base for the changes being the set of all the
ACEs that are being applied previously.

After these few shuffles, the routine restores the applied ACLs
and proceeds to the test as usual.

Change-Id: Ieda2aa5b7963746d62484e54719309de9c1ee752
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>

5237c77c 21-Mar-2018 Neale Ranns <neale.ranns@cisco.com>

IGMP: coverity fixes and remove checks for scapy IGMPv3

Change-Id: Ic2eddc803f9ba8215e37388a686004830211cf6f
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>

4d023c8c 22-Mar-2018 Matus Fabian <matfabia@cisco.com>

NAT44: interface output feature and dst NAT (VPP-1200)

Do not translate packet which go out via nat44-in2out-output and was tranlated
in nat44-out2in before. On way back forward packet to nat44-in2out node.

Change-Id: I934d69856f0178c86ff879bc691c9e074b8485c8
Signed-off-by: Matus Fabian <matfabia@cisco.com>

9cd2d7a5 20-Dec-2017 Steven <sluong@cisco.com>

bond: Add bonding driver and LACP protocol

Add bonding driver to support creation of bond interface which composes of
multiple slave interfaces. The slave interfaces could be physical interfaces,
or just any virtual interfaces. For example, memif interfaces.

The syntax to create a bond interface is
create bond mode <lacp | xor | acitve-backup | broadcast | round-robin>

To enslave an interface to the bond interface,
enslave interface TenGigabitEthernet6/0/0 to BondEthernet0

Please see src/plugins/lacp/lacp_doc.md for more examples and additional
options.

LACP is a control plane protocol which manages and monitors the status of
the slave interfaces. The protocol is part of 802.3ad standard. This patch
implements LACPv1. LACPv2 is not supported.
To enable LACP on the bond interface, specify "mode lacp" when the bond
interface is created. The syntax to enslave a slave interface is the same as
other bonding modes.

Change-Id: I06581d3b87635972f9f0e1ec50b67560fc13e26c
Signed-off-by: Steven <sluong@cisco.com>

43b1f445 20-Mar-2018 Neale Ranns <nranns@cisco.com>

UDP Encap counters

Change-Id: Ib5639981dca0b11b2d62acf2c0963cc95c380f70
Signed-off-by: Neale Ranns <nranns@cisco.com>

4c53313c 22-Feb-2018 Klement Sekera <ksekera@cisco.com>

reassembly: feature/concurrency

This change makes ip reassembly an interface feature, while adding
concurrency support. Due to this, punt is no longer needed to test
reassembly.

Change-Id: I467669514ec33283ce935be0f1dd08f07684f0c7
Signed-off-by: Klement Sekera <ksekera@cisco.com>

2303cb18 21-Feb-2018 Neale Ranns <nranns@cisco.com>

FIB Interpose Source

The interpose source allows the source/provider to insert/interpose
a DPO in the forwarding chain of the FIB entry ahead of the forwarding
provided by the next best source. For example if the API source (i.e
the 'control plane') has provided an adjacency for forwarding, then
an interpose source (e.g. a monitoring service) couold interpose a
replicatte DPO to copy the traffic to another location AND forward
using the API's adjacency.
To use the interose feature an existing source (i.e FIB_SOURCE_PLUGIN_HI)
cn specifiy as a flag FIB_ENTRY_FLAG_INTERPOSE and provide a DPO to
interpose. One might also consider using interpose in conjunction with
FIB_ENTRY_FLAG_COVER_INHERIT to ensure the interpose object affects
all prefixes in the sub-tree.

Change-Id: I8b2737b985f8f7c08123406d0491881def347b52
Signed-off-by: Neale Ranns <nranns@cisco.com>

7b867a8e 08-Dec-2017 Jakub Grajciar <jgrajcia@cisco.com>

IGMP plugin

- host mode:
igmp_listen - API to signal that the host has joined an (S,G)

- route mode:
igmp_enable - API to enable the reception of host IGMP messages
igmp_event - API to report the host join/leave from an (S,G)

Change-Id: Id180ec27dee617d33ab3088f5dcf6125d3aa9c8f
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>

2bc94027 25-Feb-2018 Neale Ranns <nranns@cisco.com>

Scapy upgrade to 2.4.0.rc5

- many of the patches fd.io applies in test/patches/2.3.3 are now upstreamed in 2.4
- 2.4 adds support for IGMPv3 which is my main motivation for the upgrade

Change-Id: If2c0a524e3cba320b4a5d8cd07817c6ea2bf0c5a
Signed-off-by: Neale Ranns <nranns@cisco.com>

2ae2bc53 16-Mar-2018 Neale Ranns <nranns@cisco.com>

Remove unnumbered configuration on interface delete

Change-Id: Iae5532c3d53e208831f3b2782242d9e59d367087
Signed-off-by: Neale Ranns <nranns@cisco.com>

039cbfe2 27-Feb-2018 Neale Ranns <nranns@cisco.com>

QoS recording and marking

Change-Id: Ie5a50def4ec1e4a3b3404a8b6ab9ec248bc16744
Signed-off-by: Neale Ranns <nranns@cisco.com>

c0374234 01-Feb-2018 Juraj Sloboda <jsloboda@cisco.com>

IPv6 ND Router discovery control plane (VPP-1095)

Change-Id: I4b5b60e7c6f618bb935eab1e96a2e79bbb14f58f
Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>

bce6b7bc 16-Mar-2018 Neale Ranns <nranns@cisco.com>

remove spurious print statements from DVR tests

Change-Id: I3b1c71b144b4760922a467086fcdb410cd225c57
Signed-off-by: Neale Ranns <nranns@cisco.com>

4b9669dc 15-Jan-2018 Juraj Sloboda <jsloboda@cisco.com>

IPv6 ND Router discovery data plane (VPP-1095)

Add API call to send Router Solicitation messages.
Save info from incoming Router Advertisement messages and notify listeners.

Change-Id: Ie518b5492231e03291bd4c4280be4727bfecab46
Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>

816833f0 15-Mar-2018 Dave Wallace <dwallacelf@gmail.com>

make test: Add VCL iperf3 tests

Change-Id: I101a44aa4913bee8d9a1aa37822e8e7e61c7aa1d
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

46c1c11b 14-Mar-2018 Ole Troan <ot@cisco.com>

IPIP: Linter on test_*.py

Change-Id: Icd491e382a2da0e5d55a673458605bc37e39b669
Signed-off-by: Ole Troan <ot@cisco.com>

05742265 14-Mar-2018 Klement Sekera <ksekera@cisco.com>

make test: early core detection, code cleanup

Change-Id: I503d69f902f1c8d3107fb3f2b9f31b0083ebb747
Signed-off-by: Klement Sekera <ksekera@cisco.com>

298c6951 07-Mar-2018 Ole Troan <ot@cisco.com>

IPIP: Add IP{v4,v6} over IP{v4,v6} configured tunnel support.

Change-Id: I166301c9e2388bae5f70ec0179d663a2703e27f5
Signed-off-by: Ole Troan <ot@cisco.com>

1c5ddbb2 13-Mar-2018 Dave Wallace <dwallacelf@gmail.com>

socket_test.sh: Don't hard code debug image with gdb.

Change-Id: Idd6c175b9102c74621c027136ab4550821a23ecc
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

833e7615 13-Mar-2018 Klement Sekera <ksekera@cisco.com>

make test: handle multiple failures in one case

Change-Id: I5451ddec4bfdede12653415f90bf991e81494033
Signed-off-by: Klement Sekera <ksekera@cisco.com>

e23c99ec 14-Mar-2018 John Lo <loj@cisco.com>

Improve l2_macs_events API to provide MAC move information

Change mac_entry layout in l2_macs_event API message so the MAC
entry can be either add, delete or move where the sw_if_index of
an existing MAC entry changed. Also added a 8-bit flags field
in mac_entry for any future expansion.

Change-Id: I3bf9e1cf2556f2938202025a5d0772c2ce2fc99f
Signed-off-by: John Lo <loj@cisco.com>

04def741 07-Mar-2018 Mohsin Kazmi <sykazmi@cisco.com>

VOM: acl: Add support for acl ethertype unbind and dump

Change-Id: I667b9ccabe54c8f9cff5b1a2e63864965f5064f5
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>

8145842b 12-Mar-2018 Neale Ranns <nranns@cisco.com>

Common form of fib-path reproting in dumps

Change-Id: I8f6fdbbeef2ac7e9fe5d87490ae5cba6e9a0b294
Signed-off-by: Neale Ranns <nranns@cisco.com>

2aad876b 07-Mar-2018 Matus Fabian <matfabia@cisco.com>

NAT44: fix nat_not_translate_output_feature for ICMP (VPP-1191)

Change-Id: I1552e1418b704fdf1f1fa2c0174313b9b82a37a3
Signed-off-by: Matus Fabian <matfabia@cisco.com>

fef3f7bd 09-Mar-2018 Dave Wallace <dwallacelf@gmail.com>

make test: Force VCL test timeouts to FAIL test.

Change-Id: Ie8d3bcb9021d9272bd27dba35d30e5081023f061
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

31ed7440 23-Feb-2018 Neale Ranns <nranns@cisco.com>

MPLS Unifom mode

- support both pipe and uniform modes for all MPLS LSP
- all API programming for output-labels requires that the mode (and associated data) is specificed
- API changes in MPLS, BIER and IP are involved
- new DPO [sub] types for MPLS labels to handle the two modes.

Change-Id: I87b76401e996f10dfbdbe4552ff6b19af958783c
Signed-off-by: Neale Ranns <nranns@cisco.com>

fbbb07c3 08-Mar-2018 Dave Wallace <dwallacelf@gmail.com>

VCL: Add full hoststack test option to socket_test.sh

Change-Id: I3e5e179daa9d6f1c46adb85b05dd810bdd312054
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

7139e757 07-Mar-2018 Damjan Marion <damarion@cisco.com>

test: disable reassembly tests and system modification script

One of basic requirements from day one for maek test is that it should
run unpriviledged, so modifying system paremeters is unacceptable.

Disabling script and reassembly tests as they need to be done in
different way.

Change-Id: I063c73eb82f2ebd7499e8adb1574a9fd2475fb5b
Signed-off-by: Damjan Marion <damarion@cisco.com>

d85075e6 02-Mar-2018 Dave Wallace <dwallacelf@gmail.com>

make test: VCL extended test cases

- Add VCL cut thru uni-direction test over multiple sockets
- Add VCL cut thru bi-direction test over multiple sockets
- Add LDP cut thru uni-directional test over multiple sockets
- Add LDP cut thru bi-directional test over multiple sockets
- Add VCL thru host stack uni-direction test over multiple sockets
- Add VCL thru host stack bi-direction test over multiple sockets
- Add LDP thru host stack uni-directional test over multiple sockets
- Add LDP thru host stack bi-directional test over multiple sockets
- Fix validateResults to ensure worker_server process is killed if
it still exists after running the test.

Change-Id: I77ea9acef172667558dbcec23af1e4c72b29f376
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

05e4f9b3 02-Mar-2018 Dave Wallace <dwallacelf@gmail.com>

make test: add "EXTENDED_TESTS" to help output.

Change-Id: I89540e93f3c8839bf6fc4363f4736e9c01d91927
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

204591d1 01-Mar-2018 Matus Fabian <matfabia@cisco.com>

NAT44: interface output feature and service host direct access (VPP-1176)

forwarding mode:
session initiaded from service host - translate
session initiaded from remote host - do not translate

Change-Id: I48170ee8e4ad14d3d3083ee31a40ef8d10d6ff32
Signed-off-by: Matus Fabian <matfabia@cisco.com>

6ee40511 12-Feb-2018 Ole Troan <ot@cisco.com>

6RD: Rewritten 6RD RFC5969 support.

Change-Id: Ic30fbcb2630f39e45345d7215babf5d7ed4b33a0
Signed-off-by: Ole Troan <ot@cisco.com>

2bf8b815 27-Feb-2018 John Lo <loj@cisco.com>

Fix ERSPAN encap to set EN bits in the header and add test case

For ERSPAN encap, both bits in the EN field of the header should
be set to indicate any VLAN tag in the original Ethernet frame is
preserved.
Added SPAN L2 test case where the mirrored packet output is a GRE
ERSPAN tunnel.

Change-Id: Ie7a40992a9278469c24aa6fa9e122b4505797d10
Signed-off-by: John Lo <loj@cisco.com>

9f11c010 28-Feb-2018 Dave Wallace <dwallacelf@gmail.com>

make test: Add VCL LD_PRELOAD tests

- Refactor test code into VclTestCase object.
- Add LDP cut thru and thru host stack tests.

Change-Id: I2b16473df108004c79cc86fe1b7a789485b2dc5b
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

42996c0f 26-Feb-2018 Dave Wallace <dwallacelf@gmail.com>

make test: refactor vcl test cases

- Reduce replicated code in test cases
- Configure separate namespace secrets for thru hoststack
test case to validate namespace secret functionality.
- Pass per-instance environment variables to Worker class
init function.

Change-Id: I3cd5d4538f105cbfb09671c4d761541b40714b8f
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

767fcb67 25-Feb-2018 Marco Varlese <marco.varlese@suse.com>

Python: addressing PEP8 deprecation

PEP8 has been deprecated and python users are being asked to migrate to
pycodestyle.

Change-Id: I52d5f7b2bf72156216a9966e8322ec58763f24d4
Signed-off-by: Marco Varlese <marco.varlese@suse.com>

cbcc84ba 25-Feb-2018 Neale Ranns <nranns@cisco.com>

update BIER scapy patch to match the scapy repo PR

Change-Id: I4953b8444b49d1ad445c98a199ae8fd1635e24a5
Signed-off-by: Neale Ranns <nranns@cisco.com>

04e5d64c 23-Feb-2018 Marco Varlese <marco.varlese@suse.com>

SCTP: fix connection memory corruption

A bug was found when multiple SCTP connections were being opened to the
same SCTP server. This patch addresses that problem, removing the use of
the 'parent' pointer approach for sub-connection and saving instead
within the sub-connection itself the ID representing its position. That
facilitates pointer-arithmetic to be computed in the
get_connection_from_transport().

Change-Id: Iaa1f4efc501590be1c93e42fd6fe3d6e02f635eb
Signed-off-by: Marco Varlese <marco.varlese@suse.com>

3ee1fe16 23-Feb-2018 Dave Wallace <dwallacelf@gmail.com>

LDP: Refactor epoll_ctl wrapper.

- Add AF_UNIX transaction to sock_test_client/server
echo test to verify mixed epoll ldp implementation.
- Misc cleanup / refactoring of ldp code.
- Fix LDP_DEBUG in test/socket_test.sh

Change-Id: Ib524c824728f109007d8c4d07d74603b6c687902
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

4ef42262 20-Feb-2018 Neale Ranns <neale.ranns@cisco.com>

VOM: vhost-use interfaces

Change-Id: Iee1574d1f0f081ccc4a90fd9825a0b5e254aa642
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>

de0203ed 22-Feb-2018 Klement Sekera <ksekera@cisco.com>

make test: tidy worker subprocess output

Change-Id: I362765a67762a59775863af12b712abb47445b3a
Signed-off-by: Klement Sekera <ksekera@cisco.com>

cae7134a 22-Feb-2018 Klement Sekera <ksekera@cisco.com>

make test: build test/ext when doing coverage

This makes VAPI/VOM tests part of code coverage report.

Change-Id: I66511b0a59880c2a64daecd37088268bdf5e1269
Signed-off-by: Klement Sekera <ksekera@cisco.com>

a67a03e3 20-Feb-2018 Dave Wallace <dwallacelf@gmail.com>

make test: Add VCL thru hoststack test case.

Change-Id: I7deb1fa4624cc1b7d7bc2f68034d4ce7589d4ef1
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

fa5fb2d1 21-Feb-2018 Klement Sekera <ksekera@cisco.com>

make test: disable broken kubeproxy tests

Change-Id: I8de2594596053a7331c81b342c63df2358548ca3
Signed-off-by: Klement Sekera <ksekera@cisco.com>

cfcf2f47 16-Feb-2018 Dave Wallace <dwallacelf@gmail.com>

make test: Add VPP VCL cut-thru test.

Change-Id: Id3ec196bfeb90b141123adee97f15d9712351680
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

b5a86eed 16-Feb-2018 Dave Wallace <dwallacelf@gmail.com>

VCL: config api prefix using env var.

- Configure vpp api prefix using VCL_API_PREFIX
environment variable.
- Prepend api prefix to vpp api filename when
connecting to vpp.
- Fix stale vcl_cfg ptr after heap allocation.
- Cleanup misleading warning messages wrt.
reading the vcl config file.

Change-Id: I908c9b567ff4f6f0c21ae43a4627a1a3202a3290
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

d91d1409 14-Feb-2018 Mohsin Kazmi <sykazmi@cisco.com>

VOM: acl: Some necessary fixes

It:
1. changes ethertype_rule_t to hold actual objects instead of
reference to them.
2. fixes acl_ethertype 'update' function
3. fixes pretty-print of acl-list-update.
4. adds l3-acl update unit test.

Change-Id: Iec72212806e96bd0574b46b563de79f0744cb248
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>

ebbaf55e 17-Feb-2018 Klement Sekera <ksekera@cisco.com>

make test: add test framework debugging

New option TEST_DEBUG=1 turns on test framework debugging, which
currently consists of printing difference in allocated objects/memory
and also creates reference graphs for any unfreed VppPapiProvider/VPP
objects - these take a lot of memory and thus should be freed regularly.

Change-Id: I29db0c1341009d4b5c5df9222d14f3095883fd0f
Signed-off-by: Klement Sekera <ksekera@cisco.com>

545be52c 16-Feb-2018 Klement Sekera <ksekera@cisco.com>

make test: detect child crash

This change causes parent process to detect child crash in seconds
instead of waiting for timeout to pass.

Change-Id: Ib45e86b7fc97e687d99c554be4212aaeea781dcc
Signed-off-by: Klement Sekera <ksekera@cisco.com>

c819fc61 16-Feb-2018 Neale Ranns <neale.ranns@cisco.com>

Allow providers to override glean behaviour
and update glean address on local interface MAC change

Change-Id: I530826d60c7e9db2b0fa2d45754139d82c5ea807
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>

438f6309 15-Feb-2018 Ole Trøan <otroan@employees.org>

Revert "Allow interface types to override glean adjacency behaivour"

This reverts commit 8b30e471df4d42214619e1d6c50cc8298426b45f.

Change-Id: I99edb236eb0a7f8ba3fba333c3481a710ebcb59c
Signed-off-by: Ole Troan <ot@cisco.com>

8b30e471 12-Feb-2018 Neale Ranns <nranns@cisco.com>

Allow interface types to override glean adjacency behaivour

update the glean adj on a local interface MAC change

Change-Id: Ia5c5cde424ed0fea3431532cc5abf22b364bbab5
Signed-off-by: Neale Ranns <nranns@cisco.com>

a43ccaef 13-Feb-2018 John Lo <loj@cisco.com>

Optimize GRE Tunnel and add support for ERSPAN encap

Change GRE tunnel to use the interface type where the same encap
node is used as output node for all GRE tunnels, instead of having
dedicated output and tx node for each tunnel. This allows for more
efficient tunnel creation and deletion at scale tested at 1000's
of GRE tunnels.

Add support for ERSPAN encap as another tunnel type, in addition
to the existing L3 and TEB types. The GRE ERSPAN encap supported
is type 2 thus GRE encap need to include sequence number and GRE-
ERSPAN tunnel can be created with user secified ERSPAN session ID.
The GRE tunnel lookup hash key is updated to inclue tunnel type
and session ID, in addition to SIP/DIP and FIB index.
Thus, GRE-ERSPAN tunnel can be created, with the appropriate
session ID, to be used as output interface for SPAN config to
send mirrored packets.

Change interface naming so that all GRE tunnels, irrespective of
tunnel type, uses "greN" where N is the instance number. Removed
interface reuse on tunnel creation and deletion to enable unfied
tunnel interface name.

Add support of user specified instance on GRE tunnel creation.
Thus, N in the "greN" interface name can optionally be specified
by user via CLI/API.

Optimize GRE tunnel encap DPO stacking to bypass load-balance DPO
node since packet output on GRE tunnel always belong to the same
flow after 5-tupple hash.

Change-Id: Ifa83915744a1a88045c998604777cc3583f4da52
Signed-off-by: John Lo <loj@cisco.com>

f8f516a8 08-Feb-2018 Florin Coras <fcoras@cisco.com>

session: support local sessions and deprecate redirects

Memfd backed shared memory segments can only be negotiated over sockets.
For such scenarios, the existing redirect mechanism that establishes
cut-through sessions does not work anymore as the two peer application
do not share such a socket.

This patch adds support for local sessions, as opposed to sessions
backed by a transport connection, in a way that is almost transparent to
the two applications by reusing the existing binary api messages.
Moreover, all segment allocations are now entirely done through the
segment manager valloc, so segment overlaps due to independent
allocations previously required for redirects are completely avoided.
The one notable characteristic of local sessions (cut-through from app
perspective) notification messages is that they carry pointers to two
event queues, one for each app peer, instead of one. For
transport-backed sessions one of the queues can be inferred but for
local session they cannot.

Change-Id: Ia443fb63e2d9d8e43490275062a708f039038175
Signed-off-by: Florin Coras <fcoras@cisco.com>

5ba5837b 13-Feb-2018 Dave Wallace <dwallacelf@gmail.com>

make-test: use api custom-dump to reduce log size.

- Reduce log size by using "api trace custom-dump" instead
of "api trace dump".
- Fix custom-dump output of cli_inband_t api message to include
cli command being executed.

New output:
DBGvpp# api trace custom-dump /tmp/test
vl_api_memclnt_delete_t:
index: 2
handle: 0x301d8e10
SCRIPT: memclnt_create name vpp_api_test
SCRIPT: sw_interface_dump all
SCRIPT: control_ping
SCRIPT: exec show run

Old output:
DBGvpp# api trace dump /tmp/test
---------- trace 0 -----------
vl_api_memclnt_delete_t:
index: 33554432
handle: 0x108e1d3000000000
---------- trace 1 -----------
vl_api_memclnt_create_t:
name: vpp_api_test
input_queue: 0x808e1d3000000000
context: 0
ctx_quota: 0
---------- trace 2 -----------
vl_api_sw_interface_dump_t:
_vl_msg_id: 61
client_index: 33554432
context: 0
name_filter_valid: 0
---------- trace 3 -----------
vl_api_control_ping_t:
_vl_msg_id: 712
client_index: 33554432
context: 0
---------- trace 4 -----------
vl_api_cli_inband_t:
_vl_msg_id: 715
client_index: 33554432
context: 0
length: 9

Change-Id: If740c861649a3a59b8cc7a777c23c3cf94b8ff87
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

49c7f0ca 07-Feb-2018 Mohsin Kazmi <sykazmi@cisco.com>

VOM: ACL: Add Object Model for acl ethertype

Change-Id: I2b572ebd4b7bb26381f127912a4cc0825c04fc34
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>

ffd78d1e 09-Feb-2018 Neale Ranns <neale.ranns@cisco.com>

Improve MTU handling

- setting MTU on an interface updates the L3 max bytes too
- value cached in the adjacency is also updated
- MTU exceeded generates ICMP to sender

Change-Id: I343ec71d8e903b529594c4bd0543f04bc7f370b3
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>

bc27d1be 05-Feb-2018 Neale Ranns <neale.ranns@cisco.com>

GBP plugin

Group Base Policy (GBP) defines:
- endpoints: typically a VM or container that is connected to the
virtual switch/router (i.e. to VPP)
- endpoint-group: (EPG) a collection of endpoints
- policy: rules determining which traffic can pass between EPGs a.k.a
a 'contract'

Here, policy is implemented via an ACL.
EPG classification for transit packets is determined by:
- source EPG: from the packet's input interface
- destination EPG: from the packet's destination IP address.

Change-Id: I7b983844826b5fc3d49e21353ebda9df9b224e25
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>

08118f00 08-Feb-2018 Andrew Yourtchenko <ayourtch@gmail.com>

classifier-based ACL: testcases for L2 ACLs + fix the enabling of outbound L2 ACL

There was no test coverage for the L2 ACL (other than indirect by
means of ACL plugin tests), so the enabling of the outbound ACL
got fumbled throughout the revisions of the refactoring.

Fix both issues - the error and the lack of test coverage for L2 ACL.

Change-Id: Ib7f42780ef84b4a4f70bd88d7319aeeda866cf06
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>

97cabc96 08-Feb-2018 Gabriel Ganne <gabriel.ganne@enea.com>

Geneve - reduce unit-test run time

Reduce the number of tunnels created/destroyed to reduce the load of the tests
without changing the code covered.
These are functional tests, not performance tests.

This reduced the test time down to 10s from 4 minutes on my machine.

Change-Id: Ifcaddc0b0628a21392c5cb247196f56bc28a53a2
Signed-off-by: Gabriel Ganne <gabriel.ganne@enea.com>

c43b3f98 06-Feb-2018 Andrew Yourtchenko <ayourtch@gmail.com>

acl-plugin: add whitelisted ethertype mode (VPP-1163)

Currently, ACL plugin largely does not care about the
ethertypes other than 0x0800 (IPv4) and 0x86dd (IPv6),
the only exception being 0x0806 (ARP), which is
dealt with by the MACIP ACLs.

The other ethertypes in L2 mode are just let through.

This adds a new API message acl_interface_set_etype_whitelist,
which allows to flip the mode of a given interface
into "ethertype whitelist mode": the caller of this message
must supply the two lists (inbound and outbound) of the ethertypes
that are to be permitted, the rest of the ethertypes are
dropped.

The whitelisting for a given interface and direction takes
effect only when a policy ACL is also applied.

This operates on the same classifier node as the one used for
dispatching the policy ACL, thus, if one wishes for most of the
reasonable IPv4 deployments to continue to operate within
the whitelist mode, they must permit ARP ethertype (0x0806)

The empty list for a given direction resets the processing
to allow the unknown ethertypes. So, if one wants to just
permit the IPv4 and IPv6 and nothing else, one can add
their ethertypes to the whitelist.

Add the "show acl-plugin interface" corresponding outputs
about the whitelists, vat command, and unittests.

Change-Id: I4659978c801f36d554b6615e56e424b77876662c
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>

1c6e5cf6 05-Feb-2018 Andrew Yourtchenko <ayourtch@gmail.com>

acl-plugin: an elog-based tracing implementation for troubleshooting the conn cleaner threads interactions

This replaces some of the early-stage commented-out printf()s with
an elog-based debug collector.

It is aimed to be "better than nothing" initial implementation to be available
in the field. It will be refined/updated based on use. This initial code
is focused on the main/worker threads interactions, hence uses just
the worker tracks.

This code adds a developer debug CLI "set acl-plugin session table event-trace 1",
which allows to gather the events pertaining to connection cleaning.
The CLI is deliberately not part of the online help, as the express
declaration that the semantics/trace levels, etc. are subject to change
without notice.

Change-Id: I3536309f737b73e50639cd5780822dcde667fc2c
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>

3d460bd9 01-Feb-2018 Jon Loeliger <jdl@netgate.com>

VXLAN: Allow user to specify a custom vxlan tunnel instance id.

If one is not selected by the user, the next available id
will be allocated, thus maintaining backward compatibility.

Change-Id: I4691ed0638b8072f9cfa9f20b9fe4f981e708800
Signed-off-by: Jon Loeliger <jdl@netgate.com>

815d7d56 07-Feb-2018 Andrew Yourtchenko <ayourtch@gmail.com>

classifier-based ACL: refactor + add output ACL

For implementation of MACIP ACLs enhancement (VPP-1088), an outbound
classifier-based ACL would be needed. There was an existing incomplete
code for outbound ACLs, it looked almost exact copy of input ACLs, minus
the various enhancements, trying to sync that code seemed error-prone
and cumbersome to maintain in the longer run.

This change refactors the input+output ACLs processing into a unified
routine (thus any changes will have effect on both), and also adds
the API to set the output interface ACL, with the same format
and semantics as the existing input one (except working on output
ACL of course).

WARNING: IP outbound ACL in L3 mode clobbers the ip.* fields
in the vnet_buffer_opaque_t, since the code is using l2_classify.*
The net_buffer (p0)->ip.save_rewrite_length is rescued into
l2_classify.pad.l2_len, and used to rewind the header in case of
drop, so that ipX_drop prints something sensible.

Change-Id: I62f814f1e3650e504474a3a5359edb8a0a8836ed
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>

e060ed1e 06-Feb-2018 Klement Sekera <ksekera@cisco.com>

make test: don't test/set parameters in docker

Do not set UDS related system parameters if DOCKER_TEST is set to "True"
as docker environment doesn't contain the necessary /proc/... entries.

Change-Id: Id85e4512c7bba6b3feb6e6fd1fbe1e05aa10a341
Signed-off-by: Klement Sekera <ksekera@cisco.com>

f051072f 31-Jan-2018 Neale Ranns <neale.ranns@cisco.com>

BIER: fix support for longer bit-string lengths

Change-Id: I2421197b76be58099e5f8ed5554410adff202109
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>

a332c46a 31-Jan-2018 Florin Coras <fcoras@cisco.com>

session: segment manager refactor

- use valloc as a 'central' segment baseva manager
- use per segment manager segment pools and use rwlocks to guard them
- add session test that exercises segment creation
- embed segment manager properties into application since they're shared
- fix rw locks

Change-Id: I761164c147275d9e8a926f1eda395e090d231f9a
Signed-off-by: Florin Coras <fcoras@cisco.com>

96867baa 02-Feb-2018 Klement Sekera <ksekera@cisco.com>

make test: use random seed

This fixes a constant setting of random seed forgotten from testing.

Change-Id: Ie3c4db8bb2b4b73ba33de1ffc02cb563391fd31c
Signed-off-by: Klement Sekera <ksekera@cisco.com>

647f609a 23-Jan-2018 Hongjun Ni <hongjun.ni@intel.com>

Add L3DSR feature in LB plugin

L3DSR is used to overcome Layer 2 limitations
of Direct Server Return Load Balancing.
It maps VIP to DSCP bits, and reuse TOS bits to transfer it
to server, and then server will get VIP from DSCP-to-VIP mapping.
Please refer to https://www.nanog.org/meetings/nanog51/presentations/Monday/NANOG51.Talk45.nanog51-Schaumann.pdf

Change-Id: I403ffeadfb04ed0265086eb2dc41f2e17f8f34cb
Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>

75e7d130 20-Sep-2017 Klement Sekera <ksekera@cisco.com>

IPv4/6 reassembly

Change-Id: Ic5dcadd13c88b8a5e7896dab82404509c081614a
Signed-off-by: Klement Sekera <ksekera@cisco.com>

f2a23cc8 22-Jan-2018 Matus Fabian <matfabia@cisco.com>

NAT66 1:1 mapping (VPP-1108)

Support the 1:1 translation of source address for IPv6

Change-Id: I934d18e5ec508bf7422d796ee5f172b79c048011
Signed-off-by: Matus Fabian <matfabia@cisco.com>

f7ad5cbe 30-Jan-2018 Matus Fabian <matfabia@cisco.com>

NAT44: in2out output feature skip translation for already translated packets (VPP-1156)

Change-Id: I5395245c9e49f741a949ada1f725c34f9379c249
Signed-off-by: Matus Fabian <matfabia@cisco.com>

b793d097 31-Jan-2018 Matus Fabian <matfabia@cisco.com>

NAT44: Delete dynamic sessions matching new 1:1NAT (VPP-1158)

Change-Id: Ib99b597502b8335e57ecfa122b12e2e5aa45ee1a
Signed-off-by: Matus Fabian <matfabia@cisco.com>

9dba7816 31-Jan-2018 Matus Fabian <matfabia@cisco.com>

NAT44: nat44_static_mapping_details protocol=0 if addr_only=0 (VPP-1158)

Change-Id: I1e3cfc751e7657464fc850dc56ddf763df45f62e
Signed-off-by: Matus Fabian <matfabia@cisco.com>

4399c2eb 25-Jan-2018 Florin Coras <fcoras@cisco.com>

session: move builtin apps to their own folder

This consolidates builtin apps under session-apps folder. It also
removes duplicate builtin echo server/client implementations.

Change-Id: I75ed879399c5aa9b75b1eb38b33aedf69dd8df3f
Signed-off-by: Florin Coras <fcoras@cisco.com>

87233b51 26-Jan-2018 Matus Fabian <matfabia@cisco.com>

NAT44: fix ICMP error translation for endpoint dependent sessions (VPP-1150)

Change-Id: I85c799f28c4246884107e569a36482af10d9be9d
Signed-off-by: Matus Fabian <matfabia@cisco.com>

5f22499e 26-Jan-2018 Matus Fabian <matfabia@cisco.com>

NAT44: add opaque string tag to static mapping APIs (VPP-1147)

Change-Id: I620e2081285ca8ac5c2da8efc12fe6f540ea4fd1
Signed-off-by: Matus Fabian <matfabia@cisco.com>

82119542 25-Jan-2018 Matus Fabian <matfabia@cisco.com>

NAT: nat.c refactor (split out CLI) (VPP-1140)

Moved CLI from nat.c to nat44_cli.c
Split "show nat44" to:
show nat44 addresses
show nat44 interfaces
show nat44 static mappings
show nat44 interface address
show nat44 sessions detail
show nat44 deterministic mappings
show nat44 deterministic timeouts
show nat44 deterministic sessions
show nat workers

Change-Id: I2d1be8941dd0e4a9e037f4a4d2cd192389beb8ed
Signed-off-by: Matus Fabian <matfabia@cisco.com>

da38715f 24-Jan-2018 Klement Sekera <ksekera@cisco.com>

make test: verify that /dev/shm is big enough

Verify that /dev/shm size is >= 512M, which should be enough for `make
test' needs. If the verification fails, try to enlarge it automatically.
This helps avoid docker vpp/make test crashes (seen as SIGBUS).

Change-Id: I4e23d59ff8bf8befc320fa229fb6c9bfeb809a8f
Signed-off-by: Klement Sekera <ksekera@cisco.com>

191a5940 30-Oct-2017 Marco Varlese <marco.varlese@suse.com>

SCTP stack (RFC4960)

== CONTENT ==
* SCTP chunks definition as per RFC4960;
* Helper functions to set/get values to/from the corresponding chunks;
* Hooks to the session/application layers;
* Complete state-machine handling;
* Implementation for unexpected chunk received in a certain
state (state-machine error handling)
* Support for 1-single connection;
* Sample application to test receive/transmit data-path;
* Test to validate SCTP stack;

Change-Id: I1b55c455ab400be9513f4e094dadfc3181d2ebc9
Signed-off-by: Marco Varlese <marco.varlese@suse.com>

ce111d2e 23-Jan-2018 Neale Ranns <nranns@cisco.com>

Improve the error reporting for a IP multicast RPF miss.

now we get:

00:00:04:288925: pg-input
...
00:00:04:289345: ethernet-input
...
00:00:04:289524: ip6-input
...
00:00:04:289553: ip6-mfib-forward-lookup
...
00:00:04:289584: ip6-mfib-forward-rpf
entry 14 itf 2 flags Forward,
00:00:04:289754: ip6-drop
UDP: 2002::1 -> ff01:2::255
tos 0x00, flow label 0x0, hop limit 64, payload length 21
UDP: 1234 -> 1234
length 21, checksum 0x90d1
00:00:04:289802: error-drop
ip4-input: Multicast RPF check failed

08:36:44,517 Count Node Reason
182 ip4-input Multicast RPF check failed
8 ip6-icmp-input neighbor advertisements sent
8 ip6-icmp-input router advertisements sent
8 arp-input ARP replies sent

Change-Id: I1b29cda4ec77a88db45bfb25c7473cd64bbf501a
Signed-off-by: Neale Ranns <nranns@cisco.com>

d95c39e8 23-Jan-2018 Matus Fabian <matfabia@cisco.com>

NAT44: asymmetrical static mapping and one-armed NAT (VPP-1138)

One-armed NAT should work for asymmetrical static mappings without adding external address to the NAT44 pool.

Change-Id: Ie886b75b55c3b552d1029a50bd967625fde80f09
Signed-off-by: Matus Fabian <matfabia@cisco.com>

54c6dc45 17-Jan-2018 Neale Ranns <nranns@cisco.com>

For DHCP client configuration control the setting of the broadcast flag in the
DISCOVER message sent.

According to RFC2131:

In the case of a client using DHCP for initial configuration (before
the client's TCP/IP software has been completely configured), DHCP
requires creative use of the client's TCP/IP software and liberal
interpretation of RFC 1122. The TCP/IP software SHOULD accept and
forward to the IP layer any IP packets delivered to the client's
hardware address before the IP address is configured; DHCP servers
and BOOTP relay agents may not be able to deliver DHCP messages to
clients that cannot accept hardware unicast datagrams before the
TCP/IP software is configured.

To work around some clients that cannot accept IP unicast datagrams
before the TCP/IP software is configured as discussed in the previous
paragraph, DHCP uses the 'flags' field [21]. The leftmost bit is
defined as the BROADCAST (B) flag. The semantics of this flag are
discussed in section 4.1 of this document. The remaining bits of the
flags field are reserved for future use. They MUST be set to zero by
clients and ignored by servers and relay agents. Figure 2 gives the
format of the 'flags' field.

this changes means VPP conforms to the:
"SHOULD accept and forward to the IP layer any IP packets delivered
to the client's hardware address before the IP address is configured"
with the caveat that VPP allows DHCP packets destined to the stanard client
DHCP port to be delivered. With this enhancement the control-plane is now
able to choose the setting of the broadcast flag.

Change-Id: Ia4eb2c9bb1e30c29f9192facc645e9533641955a
Signed-off-by: Neale Ranns <nranns@cisco.com>

3fca567f 04-Jan-2018 Mohsin Kazmi <sykazmi@cisco.com>

svm: queue sub: Add conditional timed wait

On reviece side svm queue only permits blocking and
non-blocking calls. This patch adds timed wait blocking
functionality which returns either on signal/event or
on given time out.

It also preserves the original behavior, so it will not
hurt client applications which are using svm queue.

Change-Id: Ic10632170330a80afb8bc781d4ccddfe4da2c69a
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>

e82488f1 18-Jan-2018 Matus Fabian <matfabia@cisco.com>

NAT44: asymmetrical static mapping rule (VPP-1135)

add option to NAT44 static mapping API/CLI to make rule asymmetrical (rule match only out2in direction)

Change-Id: If262a3ff375a24d3059f0de1f1ac387a4fe09475
Signed-off-by: Matus Fabian <matfabia@cisco.com>

048b1d6a 04-Jan-2018 Dave Wallace <dwallacelf@gmail.com>

LD_PRELOAD: stateless LDP

- Refactor LDP to be stateless.
- Use upper bit of fd to identify
tag as VCL session.
- Clean up debug output.
- Add VCOM config env vars for
app name and sid bit.
- Add VCL get/set attributes
- Add VCL poll implementation.

Change-Id: I4603ae88254c460a024fdb79fe91c6d1ef9bc7b9
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

240b5ef5 11-Jan-2018 Matus Fabian <matfabia@cisco.com>

NAT44: asymmetrical load balancing static mapping rule (VPP-1132)

Add option to NAT44 load balancing static mapping API/CLI to make rule asymmetrical (rule match only in out2in direction).

Change-Id: I325ecef5591e4bf44ce4469a24d44fe56c3bb2e9
Signed-off-by: Matus Fabian <matfabia@cisco.com>

c5c6a334 09-Jan-2018 Juraj Sloboda <jsloboda@cisco.com>

Add basic support for DS-Lite CE (VPP-1059)

Change-Id: Ifcca60da3f77c0a4959f98b3365c846badbdc2d0
Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>

f068c3ed 03-Jan-2018 Neale Ranns <nranns@cisco.com>

DVR: run L3 output features

- rename l2_bridged to is_dvr. Including on the ip.api
this was new in the 18.01 release so no compatability issues.
- steal the free space in vnet_buffer_opaque_t for use with flags.
- run the ipX-output feature arc from the DVR DPO

Change-Id: I040e5976d1dbe076fcdda3a40a7804f56337ce3f
Signed-off-by: Neale Ranns <nranns@cisco.com>

eea537a2 09-Jan-2018 Neale Ranns <neale.ranns@cisco.com>

BIER: missing endian swap for imposition object in API return

Change-Id: Iddd754d00ace3d042336e5c2c40431566275051a
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>

52fae862 08-Jan-2018 Neale Ranns <nranns@cisco.com>

test: consolidate the multiple versions of send_and_*

Change-Id: I7fa7d0ebf73dab8264a2e5ddbd412600d78ead05
Signed-off-by: Neale Ranns <nranns@cisco.com>

a431ad1c 04-Jan-2018 Matus Fabian <matfabia@cisco.com>

NAT64: IPFix (VPP-1106)

Change-Id: Ib90dc5613c9fdac0344b3bd7f163e2f7163c64d8
Signed-off-by: Matus Fabian <matfabia@cisco.com>

b4c42cdc 23-Dec-2017 zhaoqingling <zhao.qingling@zte.com.cn>

VPP-1110 BVI reply ARP that doesn't request BVI loacl IP.

Change-Id: I66ae618edaa12c2b4e4afe276da689673b02c9cd
Signed-off-by: zhaoqingling <zhao.qingling@zte.com.cn>

cba6936c 19-Dec-2017 Juraj Sloboda <jsloboda@cisco.com>

Add support for 464XLAT NAT44 mode (VPP-1045)

Change-Id: I24e7a26972bbbfcea100292b212b29ae7a349335
Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>

b795bd0c 14-Dec-2017 Florin Coras <fcoras@cisco.com>

tcp: add builtin server/client transfer test

Change-Id: Iab0baabf2f27bc7ad7fbf2d2789a493752b07d8a
Signed-off-by: Florin Coras <fcoras@cisco.com>

55d03788 21-Oct-2017 Neale Ranns <nranns@cisco.com>

L2 Emulation

L2 Emulation is a feautre that is applied to L2 ports to 'extract'
IP packets from the L2 path and inject them into the L3 path (i.e.
into the appropriate ip[4|6]_input node).
L3 routes in the table_id for that interface should then be configured
as DVR routes, therefore the forwarded packet has the L2 header
preserved and togehter the L3 routed system behaves like an L2 bridge.

Change-Id: I8effd7e2f4c67ee277b73c7bc79aa3e5a3e34d03
Signed-off-by: Neale Ranns <nranns@cisco.com>

4c8a4549 19-Dec-2017 Gabriel Ganne <gabriel.ganne@enea.com>

fix kubeproxy some tests

* NAT46: fix test cleanup, missing del keyword
* NAT66: fix kube-proxy vip, is ipv6
* add some missing kp_put_writer_lock
* wipe flowtable after each unit test
* Add new cli api: "test kube-proxy flowtable flush" to flushes everything
* Call this new cli function after the end of each kube-proxy unit test.
* same as commit b3d1b203579226ca5136b9d6a2744577d07cfcc6 for the lb plugin

Change-Id: I4146f44841328ec96eb66729e3bae3d40f33e4aa
Signed-off-by: Gabriel Ganne <gabriel.ganne@enea.com>

7b929793 23-Nov-2017 Juraj Sloboda <jsloboda@cisco.com>

Translate matching packets using NAT (VPP-1069)

Add API function which enables forwarding of packets not matching
existing translation or static mapping instead of dropping them.

When forwarding is enabled matching packets will be translated
while non-matching packets will be forwarded without translation.

Change-Id: Ic13040cbad16d3a1ecdc3e02a497171bef6aa413
Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>

b932d26e 18-Dec-2017 Matus Fabian <matfabia@cisco.com>

NAT: Twice NAT44 (VPP-969)

Translation of both source and destination addresses and ports for 1:1 NAT
session initiated from outside network (ExternalIP K8 use case).

Change-Id: Ic0000497cf71619aac996d6d580844f0ea0edc14
Signed-off-by: Matus Fabian <matfabia@cisco.com>

c91f5024 28-Aug-2017 Hongjun Ni <hongjun.ni@intel.com>

Support kube-proxy data plane

This plugin provides kube-proxy data plane on user space,
which is used to replace linux kernal's kube-proxy based on iptables.
The idea is largely inspired from VPP LB plugin.

Currently, kube-proxy plugin supports three service types:
1) Cluster IP plus Port: support any protocols, including TCP, UDP.
2) Node IP plus Node Port: currently only support UDP.
3) External Load Balancer.

Please refer to kp_plugin_doc.md for details.

Change-Id: I36690e417dd26ad5ec1bd77c7ea4b8100416cac6
Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>

034e0556 14-Dec-2017 Ole Troan <ot@cisco.com>

PAPI: Add docstrings to unit tests.

Change-Id: I0e20100c9e2ca4e951f605a79d48c04ff47864cb
Signed-off-by: Ole Troan <ot@cisco.com>

33ce60d6 14-Dec-2017 Neale Ranns <nranns@cisco.com>

GRE tunnel key includes the FIB table

- GRE tunnels with the same src,dst addresses are not the same tunnel
- Two data-plane improvements:
- the cached key was never updated and so useless
- no need to dereference the tunnel's HW interface to get the sw_if_index

Change-Id: I2f2ea6e08c759a810b753cec22c497e921a2ca01
Signed-off-by: Neale Ranns <nranns@cisco.com>

8e66b9bf 14-Dec-2017 Gabriel Ganne <gabriel.ganne@enea.com>

Use crc32 wrapper (VPP-1086)

This allows arm platforms to also take advantage of crc32 hardware
acceleration.

* add a wrapper for crc32_u64. It's the only one really used. Using it
instead of a call to clib_crc32c() eases building symmetrical hash
functions.
* replace #ifdef on SSE4 by a test on clib_crc32c_uses_intrinsics.
Note: keep the test on i386
* fix typo in lb test log

Change-Id: I03a0897b70f6c1717e6901d93cf0fe024d5facb5
Signed-off-by: Gabriel Ganne <gabriel.ganne@enea.com>

0e789423 15-Dec-2017 Gabriel Ganne <gabriel.ganne@enea.com>

make test: disable tests which require CXX >= 5.3 on rhel

same as commit d3e671e0dbb879d90f00bdee608ee0bb5f6357ae did for centos

Change-Id: If57765490d1ef41042a42db433b704af2f0c0ffd
Signed-off-by: Gabriel Ganne <gabriel.ganne@enea.com>

23f0c451 11-Dec-2017 “mystarrocks” <mystarrocks@yahoo.com>

ESP_AH_test_automation_scripts rev1

Change-Id: I941abdc4a02e4c52c66b9d299e380b27caca7c1d
Signed-off-by: “mystarrocks” <mystarrocks@yahoo.com>

ceb4d05b 13-Dec-2017 Neale Ranns <nranns@cisco.com>

BIER disposition default route

Change-Id: I7196ad8bf6afaf356674789c05e23ac000bc038e
Signed-off-by: Neale Ranns <nranns@cisco.com>

cf3561bd 13-Dec-2017 Neale Ranns <nranns@cisco.com>

IP bi-direction multicast - same cable check on egress

Change-Id: I655382f7f74181dd7c795a2b22f151f76b50e793
Signed-off-by: Neale Ranns <nranns@cisco.com>

7e665d64 17-Nov-2017 Gabriel Ganne <gabriel.ganne@enea.com>

make "test-all" target pass again

The "test-all" target is still never called as part of any continuous
test (as it probably should) but at least it can now be expected to
succeed.

VXLAN-GPE:
* decapsulate Ethernet to "l2-input" instead of "ethernet-input"
otherwise the inner mac address get checked against the interface one
(external) and packet gets dropped (mac mismatch)
* set packet input sw_if_index to unicast vxlan tunnel for learning

TEST:
* VXLAN:
* reduce the number of share tunnels:
=> reduce test duration by half
=> no functional change
* VXLAN-GPE:
* fix test TearDown() cli: command is "show vxlan-gpe" only
* remove vxlan-gpe specific tests as the were a duplicated of the
BridgeDomain one and already inherited.
* disable test_mcast_rcv() and test_mcast_flood() tests
* P2PEthernetAPI:
* remove test: "create 100k of p2p subifs"
there already is a "create 1k p2p subifs" so this one is a load test
and not a unit test.
See: lists.fd.io/pipermail/vpp-dev/2017-November/007280.html

Change-Id: Icafb83769eb560cbdeb3dc6d1f1d3c23c0901cd9
Signed-off-by: Gabriel Ganne <gabriel.ganne@enea.com>

8716e6bf 13-Dec-2017 Neale Ranns <nranns@cisco.com>

GRE: fix single loop decap and add test

Change-Id: I64e8a76a17057ae69de72a5a80c0a194cd0c21cb
Signed-off-by: Neale Ranns <nranns@cisco.com>

51e759fd 08-Dec-2017 Matus Fabian <matfabia@cisco.com>

NAT64: multi-thread support (VPP-891)

Change-Id: Iebf859b6d86482e4465423bad598eecf87e53ec4
Signed-off-by: Matus Fabian <matfabia@cisco.com>

331acc63 08-Dec-2017 Matus Fabian <matfabia@cisco.com>

NAT: DS-Lite AFTR tunnel endpoint address respond to ICMPv6 echo request (VPP-1090)

Change-Id: I361c043979274eac1aefcd95abdf1624a3ef2756
Signed-off-by: Matus Fabian <matfabia@cisco.com>

3ea6ce23 11-Dec-2017 Florin Coras <fcoras@cisco.com>

tcp/session: add make tests

Change-Id: Icb93ab80c5a6432d7b2b698a47e8b612c6f06fbd
Signed-off-by: Florin Coras <fcoras@cisco.com>

d7834910 09-Dec-2017 Andrew Yourtchenko <ayourtch@gmail.com>

acl-plugin: unapply/reapply the classifier-based inacls when performing macip_acl_add_replace on an existing MACIP ACL

The classifier tables layout might (and most always will) change during the MACIP ACL modification.
Furthermore, vnet_set_input_acl_intfc() is quite a picky creature - it quietly does nothing
if there is an existing inacl applied, even if the number is different, so a simple "reapply"
does not work. So, cleanly remove inacl, then reapply when the new tables are ready.

Also, fix the testcase which was supposed to test this exact behavior.

Thanks to Jon Loeliger for spotting this issue.

Change-Id: I7e4bd8023d9de7e914448bb4466c1b0ef6940f58
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>

9128637e 05-Dec-2017 Neale Ranns <nranns@cisco.com>

BIER in non-MPLS netowrks

as decsribed in section 2.2
ihttps://tools.ietf.org/html/draft-ietf-bier-mpls-encapsulation-10
with BIFT encoding from:
https://tools.ietf.org/html/draft-wijnandsxu-bier-non-mpls-bift-encoding-00

changes:
1 - introduce the new BIFT lookup table. BIER tables that have an associated
MPLS label are added to the MPLS-FIB. Those that don't are added to the
BIER table
2 - BIER routes that have no associated output MPLS label will add a BIFT label.
3 - The BIER FMask has a path-list as a member to resolve via any possible path.

Change-Id: I1fd4d9dbd074f0e855c16e9329b81460ebe1efce
Signed-off-by: Neale Ranns <nranns@cisco.com>

d3464b5b 07-Dec-2017 Neale Ranns <neale.ranns@cisco.com>

VOM: prefix bit fiddling

Change-Id: I4fbf4a574f455628d56e78cefc1a76adc06bc801
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>

e2e9ce5c 01-Dec-2017 Mohsin Kazmi <sykazmi@cisco.com>

VOM: l2fib: Add bvi flag support

Change-Id: I03d7508649e80a538fcf9541815e2c29224bc87a
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>

ab7a805f 28-Nov-2017 Matus Fabian <matfabia@cisco.com>

NAT44: identity NAT (VPP-1073)

Identity mapping translate an IP address to itself.

Change-Id: Icc0ca5102d32547a4b0c75720b5f5bf41ed69c71
Signed-off-by: Matus Fabian <matfabia@cisco.com>

a2ee029d 29-Nov-2017 Neale Ranns <neale.ranns@cisco.com>

VOM: logging, populate and stats fixes

logging: allow a client to register a callback handler to recieve log messages
that way the client can maintain a correctly sequenced log
populate: fix the creation of interface and the setting of the handle
stats: the reset promise idea is not defined behaviour.
Use an eanble/disable command pair

Change-Id: I347720bb65df2874c7619e722d593bc863ee2bf1
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>

ee45d41a 25-Nov-2017 Dave Wallace <dwallacelf@gmail.com>

VCL: improve debug output

- Refactor debug output to include vpp handle associated
with session id where appropriate.
- Fix vcom_connect return value on error.
- Refactor vcom_socket_epoll_pwait().
- Fix sock_test_server/client connect failure handling.

Change-Id: I2649596aa4b8a77d9bd876409a76810cb2785797
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

fd920609 23-Nov-2017 Neale Ranns <neale.ranns@cisco.com>

VOM: Additions to allow uses to UT applications that use VOM

- find object by key
- compare objects

Change-Id: I36ec8612be9482bcef7ceced2a59f7403f77b3e8
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>

4878cbe2 21-Nov-2017 Dave Wallace <dwallacelf@gmail.com>

VCL: close-on-empty state transition refactoring.

- Refactor session disconnect/close state
transitions. Only remove session state
when app calls close(). Add HUP/reset
feedback by returning ECONNRESET.
- Update debug messages.
- Use VCL_LOCK_AND_GET_SESSION macro more
extensively

Change-Id: I23d372834b901a6726e6d6c1061df73ad967882f
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

ad2ddb1c 17-Nov-2017 Hongjun Ni <hongjun.ni@intel.com>

Replace tap interface using general interface

Change-Id: Icd73f00162fb6aabe296c8bb6f2174ad4f6a17b7
Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>

70bfcaf4 14-Nov-2017 John Lo <loj@cisco.com>

Add Support of DHCP VSS Type 0 where VPN-ID is ASCII

Enhence support of DHCP VSS (Virtual Subnet Selection) to include
VSS type 0 where VSS info is a NVT (Network Virtual Terminal)
ASCII VPN ID where the ASCII string MUST NOT be terminated with a
zero byte. Existing code already support VSS type 1, where VSS
information is a RFC 2685 VPN-ID of 7 bytes with 3 bytes OUI
and 4 bytes VPN index, and VSS type 255 indicating global VPN.

Change-Id: I54edbc447c89a2aacd1cc9fc72bd5ba386037608
Signed-off-by: John Lo <loj@cisco.com>

3904a0c7 15-Nov-2017 Gabriel Ganne <gabriel.ganne@enea.com>

vxlan extended tests - fix scapy-related issues

- Add vxlan-gpe binding on udp port 4790 (taken from scapy upstream)
- VXLAN.VNI -> VXLAN.vni

Change-Id: If7ad38fa04fbfec01e01c81a06e88ffe70183672
Signed-off-by: Gabriel Ganne <gabriel.ganne@enea.com>

352ea0c4 14-Nov-2017 Neale Ranns <neale.ranns@cisco.com>

VOM: interface RD update reconfigures L3 bindings

Change-Id: I273e1ea28c3c146e4a88d031c790c1cc56dccf00
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>

10e7a9f8 14-Nov-2017 Neale Ranns <neale.ranns@cisco.com>

VOM: bridge-domain learning mode and route help commands

Change-Id: I2fa219d6530f1e7a3b8ae32d35a0c60ba57c5129
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>

27cadd23 10-Nov-2017 Jon Loeliger <jdl@netgate.com>

ACLs: Use better error return codes than "-1" everywhere.

Added two new errors:
ACL_IN_USE_INBOUND
ACL_IN_USE_OUTBOUND

Update ACL tests to expect new, precise return values.

Change-Id: I644861a18aa5b70cce5f451dd6655641160c7697
Signed-off-by: Jon Loeliger <jdl@netgate.com>

62fe07c8 31-Oct-2017 Neale Ranns <nranns@cisco.com>

MPLS disposition actions at the tail of unicast LSPs

Change-Id: I8c42e26152f2ed1246f91b789887bfc923418bdf
Signed-off-by: Neale Ranns <nranns@cisco.com>

e1783999 07-Nov-2017 Klement Sekera <ksekera@cisco.com>

make test: fix logic for CACHE_OUTPUT option

Change-Id: I9938c0154c860913e27cecb18ec68f247943a2e6
Signed-off-by: Klement Sekera <ksekera@cisco.com>

8527f12b 02-Oct-2017 Gabriel Ganne <gabriel.ganne@enea.com>

add classify session action set-sr-policy-index

This allows to use the classifier to steer source routing packets instead
of using the "sr steer" command.
This way we can steer on anything instead of only the dst ip address.

test:
* add add_node_next function to the VppPapiProvider class.
* add simple test scenario using the classifier to steer packets with
dest ip addr == a7::/8 to the source routing insert node.
* use new interface indexes (3,4) instead of (0,1) to prevent a cleanup
conflict with the other tests which attach a specific fib to the
interface.

The test creates interfaces sepsrated from the other tests to prevent a
conflict in the cleaning of the ip6 fib index 1 which causes vpp not to
be able to find a default route on this table.

Change-Id: Ibacb30fab3ce53f0dfe848ca6a8cdf0d111d8336
Signed-off-by: Gabriel Ganne <gabriel.ganne@enea.com>

6a6f4f7f 09-Nov-2017 Klement Sekera <ksekera@cisco.com>

make test: automatically seed random generator

Change-Id: I286b61d41cc2b557de3eb8801ff95c643f680acd
Signed-off-by: Klement Sekera <ksekera@cisco.com>

498b3a56 09-Nov-2017 Dave Wallace <dwallacelf@gmail.com>

VCL: Set debug output level from env var

Change-Id: Ia99047715ed652eca1aea1e4144e407f9608d59e
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

d792d9c0 21-Oct-2017 Neale Ranns <nranns@cisco.com>

BIER

- see draft-ietf-bier-mpls-encapsulation-10
- midpoint, head and tail functions
- supported payload protocols; IPv4 and IPv6 only.

Change-Id: I59d7363bb6fdfdce8e4016a68a9c8f5a5e5791cb
Signed-off-by: Neale Ranns <nranns@cisco.com>

2769710f 09-Nov-2017 Matus Fabian <matfabia@cisco.com>

Port restricted NAT44 (VPP-1048)

For the MAP-E CE limit port choice based on PSID
CLI: nat44 addr-port-assignment-alg map-e psid <n> psid-offset <n> psid-len <n>

Change-Id: Iecceee61fca372cb5790c16993a82fbdc9930f0f
Signed-off-by: Matus Fabian <matfabia@cisco.com>

c36ee5ff 09-Nov-2017 Neale Ranns <neale.ranns@cisco.com>

Remove boost-log link dependency from test/ext/Makefile

Change-Id: I388526c31c75e6af694b96141497c0c67d8fe310
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>

8daa80a4 25-Sep-2017 Pavel Kotucek <pkotucek@cisco.com>

ACL plugin support tagged subinterfaces

Change-Id: I92b351895c7efb26533c05512b91ead8ddbfb9c8
Signed-off-by: Pavel Kotucek <pkotucek@cisco.com>

0938dcf1 08-Nov-2017 Matus Fabian <matfabia@cisco.com>

NAT64 to use IPv4 address from interface (VPP-1051)

Change-Id: I326429c31dea6958a342ee152ef86cb975f4b12c
Signed-off-by: Matus Fabian <matfabia@cisco.com>

efcd1e9e 15-Aug-2017 Matus Fabian <matfabia@cisco.com>

SNAT: IP fragmentation (VPP-890)

Translation of fragmented packets.

Change-Id: I9b1f2e9433ce273638080f32c2d3bff39c49899d
Signed-off-by: Matus Fabian <matfabia@cisco.com>

810086d8 06-Nov-2017 Neale Ranns <nranns@cisco.com>

UDP Encapsulation.

A UDP-encap object that particiapates in the FIB graph and contributes
DPO to teh output chain. It thereofre resembles a tunnel but without the
interface. FIB paths (and henace routes) can then be created to egress
through the UDP-encap. Said routes can have MPLS labels, hence this also
allows MPLSoUPD.
Encap is uni-directional. For decap, one still registers with the UDP port
dispatcher.

Change-Id: I23bd345523b20789a1de1b02022ea1148ca50797
Signed-off-by: Neale Ranns <nranns@cisco.com>

8ebe6253 06-Nov-2017 Matus Fabian <matfabia@cisco.com>

NAT: DS-Lite (VPP-1040)

Dual-Stack Lite enables a broadband service provider to share IPv4 addresses among customers by combining two well-known technologies: IPv4-in-IPv6 and NAT.

Change-Id: I039740f8548c623cd1ac89b8ecda1a6cc4aafb9c
Signed-off-by: Matus Fabian <matfabia@cisco.com>

59179392 07-Nov-2017 Dave Wallace <dwallacelf@gmail.com>

VCL-LDPRELOAD: enable accept4() wrapper

Change-Id: I56567953fb8329315393047913e30fc7f2242bdb
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

a3d933c8 06-Nov-2017 Klement Sekera <ksekera@cisco.com>

make test: add CACHE_OUTPUT option

This option allows one to toggle whether captured VPP stdout/stderr
output is printed inline (each line logged immediately after being
collected). Default setting is 0/no (behaviour same as before).

This allows one to see the output in case of vpp crashing during test
run even if test framework gets stuck waiting for shared memory mutex
(which crashed vpp can no longer unlock).

Complete stdout/stderr output is always printed as a block to the
logger after test finishes.

Change-Id: If3645a9b85562dba26ed9c87daa27ea5ef34f2e5
Signed-off-by: Klement Sekera <ksekera@cisco.com>

b90be67b 10-Oct-2017 Klement Sekera <ksekera@cisco.com>

make test: fix DEBUG=core error

Change-Id: I703b2866a1607d6a2fad215e90b5cf2d7afdfd0d
Signed-off-by: Klement Sekera <ksekera@cisco.com>

9ef1c0ad 03-Nov-2017 Neale Ranns <neale.ranns@cisco.com>

VOM reshuffle

split the VOM into two halves; a top/front-end and a bottom/backend.
Only the backend includes the auto-generated VAPI.
This serves two purposes:
1 - improves ompile times for VOM, since the VAPI is included
only in the backend.
2 - does not expose VAPI to users of VOM

Change-Id: I17b93aeaef10c0eba8612016d9034aca5628d9f7
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>

e695cb4d 03-Nov-2017 Dave Wallace <dwallacelf@gmail.com>

VCL_LDPRELOAD: mixed libc/vcl epoll fd's

Change-Id: Ibc82781ddef5ea0517220b9054db3d53ec348c6c
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

774169bd 02-Nov-2017 Dave Wallace <dwallacelf@gmail.com>

VCL: application proxy configuration

- Add support to configure VCL to set
application proxy transport types
and app_is_proxy flag via vcl
config file or env vars.
- Clean up debug output.
- Rename session_scope -> app_scope.

Change-Id: I6e35f3cdd84daf0112133af8f33acd0152f87ca3
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

812ed39f 16-Oct-2017 Neale Ranns <neale.ranns@cisco.com>

VPP Object Model (VOM)

The VOM is a C++ library for use by clients/agents of VPP for programming
state. It uses the binary APIs to do so. Various other common client side
functions are also provided. Please see om.hpp for a more detailed description.

Change-Id: Ib756bfe99817093815a9e26ccf464aa5583fc523
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
Co-authored-by: Mohsin Kazmi <sykazmi@cisco.com>

ca3b6f1b 31-Oct-2017 Ole Troan <ot@cisco.com>

VPP PAPI: Error in unserializer for non-array compound types.

A bug in the decoder of messages when there was a non-array compound type.
The typical result was an error message from the struct library:
"error:unpack_from requires a buffer of at least 4 bytes"

Change-Id: Ie30fec6fc39b9f4177b54fa4adc4fc69674f0e12
Signed-off-by: Ole Troan <ot@cisco.com>

57938f63 27-Oct-2017 Mohsin Kazmi <sykazmi@cisco.com>

l2fib: MAC: Fix uint64 to u8 byte array

As per proposal on the mailing list, this patch fixes
the represntation of MAC address in VPP API calls for
· L2fib_add_del
· L2_fib_table_details

Change-Id: I31e17efd1a6314cded69666e693cb8fc33158d02
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>

4c7c8e55 21-Oct-2017 Neale Ranns <nranns@cisco.com>

Refactor IP input checks for re-use at MPLS disposition

Change-Id: I7aafdecd6f370411138e6ab67b2ff72cda6e0666
Signed-off-by: Neale Ranns <nranns@cisco.com>

b3d1b203 30-Oct-2017 Gabriel Ganne <gabriel.ganne@enea.com>

lb plugin tests - wipe flowtable after each unit test

Add new cli api: "test lb flowtable flush" which flushes everything.
Call this new cli function after the end of each lb unit test.

Change-Id: I71d04a7bfba398f7d4dd9cc3ed24bba786943663
Signed-off-by: Gabriel Ganne <gabriel.ganne@enea.com>

5ba86f72 26-Oct-2017 Matus Fabian <matfabia@cisco.com>

NAT: delete session API/CLI (VPP-1041)

Administratively delete NAT44 session for specific inside/outside addresses and port pair.

Change-Id: If5ab500ac3592c7153d6d8f2cc0297df7309fbc3
Signed-off-by: Matus Fabian <matfabia@cisco.com>

8af2054b 26-Oct-2017 Dave Wallace <dwallacelf@gmail.com>

VCL: add session namespace support.

Change-Id: I04f1b63e66260d99c0dd180b0295a55a9b750df7
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

4f6c3a9a 24-Oct-2017 Dave Wallace <dwallacelf@gmail.com>

VCL: Fix vcl test scripts to check vcl.am instead of uri.am

Change-Id: I34ab79ddf0a612be1f2a4223e46811516e5b317e
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

895b6e8b 20-Oct-2017 Ole Troan <ot@cisco.com>

VPP-1033: Python API support arbitrary sized input parameters.

Dynamically calculate the required buffer size to pack into based on
message definition. Also add input parameter length checking.

Change-Id: I7633bec596e4833bb328fbf63a65b866c7985de5
Signed-off-by: Ole Troan <ot@cisco.com>

5f3fcb96 25-Oct-2017 Andrew Yourtchenko <ayourtch@gmail.com>

L3 proxy FIB source for container networking

Change-Id: I4164c4c19c8dbfd73e6ddf94a12056325cc093b9
Signed-off-by: Neale Ranns <nranns@cisco.com>
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>

36ea2d6d 24-Oct-2017 Matus Fabian <matfabia@cisco.com>

One armed NAT (VPP-1035)

Use a single physical interface in order to accomplish NAT44/NAT64.

Change-Id: I0c8138953a7a4075df306172e125abad771315e4
Signed-off-by: Matus Fabian <matfabia@cisco.com>

5c7cf1cc 24-Oct-2017 Dave Wallace <dwallacelf@gmail.com>

VCL-LDPRELOAD: statically link vppcom into libvcl-ldpreload.so

- Move VCL & VCL-LDPRELOAD source into src/vcl
- Statically link vppcom into libvcl-ldpreload.so

Change-Id: I778300b37e8b06640d9dbc01caf297edf7a6edb7
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

aa0dda48 24-Oct-2017 Gabriel Ganne <gabriel.ganne@enea.com>

fix test_lb_ip4_gre6() cleanup

missing "del" keyword, and as a result, we were trying to add the as
twice.

Change-Id: If78ce03f0c71591c05ff6f4748fd9c929d0f861f
Signed-off-by: Gabriel Ganne <gabriel.ganne@enea.com>

f3de674e 19-Oct-2017 Gabriel Ganne <gabriel.ganne@enea.com>

test bfd - DPO_PROTO_IP6 is part of DpoProto

Change-Id: I63d336a1ba366a60a2a8f1124e3f37f742cccb65
Signed-off-by: Gabriel Ganne <gabriel.ganne@enea.com>

41a9e51f 17-Oct-2017 Klement Sekera <ksekera@cisco.com>

make test: control sanity via SANITY=yes|no option

Allow skipping sanity when using DEBUG=gdb/gdbserver options to speed
up development process by supplying SANITY=no option to make test.

Change-Id: I6e619229f6866b22bdeb75654b4e750232ae22bd
Signed-off-by: Klement Sekera <ksekera@cisco.com>

0164a06d 13-Oct-2017 Marek Gradzki <mgradzki@cisco.com>

Remove unused 'not_last' parameter from ip_add_del_route

Vat supports setting value for the parameter, but
'not_last' is ignored by ip_add_del_route handler,
so can be removed.

This patch
- updates ip.api,
- removes vat handlers
- updates vpp_papi_provider.py
(also mpls_route_add_del with unused not_last)

Change-Id: Ife15de123db4bc8247103a29b90bce1988e46534
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>

17142b20 16-Oct-2017 Eyal Bari <ebari@cisco.com>

TEST,SPAN:add broadcast+QiniQ tests

Change-Id: I89c6923370af97bbd09db81a33b6d17f9424a049
Signed-off-by: Eyal Bari <ebari@cisco.com>

cdeb7f2a 15-Oct-2017 Eyal Bari <ebari@cisco.com>

TEST,SPAN: add rx+tx span test

also refactored verify function

Change-Id: Ib93c99c833dd7c75e416374530c631f954957d98
Signed-off-by: Eyal Bari <ebari@cisco.com>

68a40c86 16-Oct-2017 Dave Wallace <dwallacelf@gmail.com>

VCL: refactor VCL_LDPRELOAD env vars.

- Update vcl-ldpreload references to use $WS_ROOT.

Change-Id: I8e79f7c5e330eda6548a2baf84613b0a4d360811
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

d0a59722 15-Oct-2017 Florin Coras <florin.coras@gmail.com>

Revert "Enforce FIB table creation before use"

This reverts commit f9342023c19887da656133e2688a90d70383b0c5.

Reverting to unblock master. No idea why jjb +1ed this patch! On closer inspection it looks like it -1ed it and subsequently changed opinion. CSIT tests should be fixed before re-merging.

Change-Id: I26608912a962c52083073e16c7c9d2cc44a3cc8d
Signed-off-by: Florin Coras <fcoras@cisco.com>

054c03ac 13-Oct-2017 Neale Ranns <nranns@cisco.com>

Source Lookup progammable via API

Change-Id: I5d5d4f22b6369d504455a644f73076d772fbcfb4
Signed-off-by: Neale Ranns <nranns@cisco.com>

f9342023 13-Oct-2017 Neale Ranns <nranns@cisco.com>

Enforce FIB table creation before use

last i the serise of the use of the FIB table create/delete API. VPP now forces the tables to have been explicitly creted before they are used.

Change-Id: Ifde3b1bbb76697a01ab71bce4f5264e6d1725467
Signed-off-by: Neale Ranns <nranns@cisco.com>

5f1231c5 10-Oct-2017 Marco Varlese <marco.varlese@suse.com>

Remove libsubunit 'dependency' for openSUSE and fix NASM

This patch addresses the unrequired dependency on libsubunit for
opensuse; it also adds the required new dependency on check (add
check-devel to the top-level Makefile).
It adds some extra logic to install the correct NASM version to support
AESNI.

Change-Id: Ie368dd8f8485a67ab125e735fd12cbe25b9b588f
Signed-off-by: Marco Varlese <marco.varlese@suse.com>

df2b980d 05-Oct-2017 Klement Sekera <ksekera@cisco.com>

make test: add RETRIES option

Change-Id: Ibe31e932bc997f0101a8947e01df90a90d1f100f
Signed-off-by: Klement Sekera <ksekera@cisco.com>

d91c1dbd 31-Jul-2017 Neale Ranns <nranns@cisco.com>

punt and drop features:
- new IPv4 and IPv6 feature arcs on the punt and drop nodes
- new features:
- redirect punted traffic to an interface and nexthop
- police punted traffic.

Change-Id: I53be8bf4e06545add8a3619e462de5ffedd0a95c
Signed-off-by: Neale Ranns <nranns@cisco.com>

755b1403 08-Oct-2017 Eyal Bari <ebari@cisco.com>

TEST,L2-FIB:refactor test-removing shared state

and remove dependencies between tests

Change-Id: I6ceacfdeb65b2d3c64811309358c3bfd47b213ef
Signed-off-by: Eyal Bari <ebari@cisco.com>

f7f809c2 03-Oct-2017 Dave Wallace <dwallacelf@gmail.com>

VCL: add epoll_* functions.

Change-Id: Ife27795ea96919c116fb6ff33d106663b54df72d
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

b598f1d3 19-Sep-2017 Marco Varlese <marco.varlese@suse.com>

Initial GENEVE TUNNEL implementation and tests.

Notes on this first implementation:
* First version of the implementation does NOT support GENEVE OPTIONS
HEADER: it isn't well understood what the purpose of the OPTIONS will be and/or
what content would be placed in the variable option data;

Once the IETF work will evolve and further information will be available
it could be possible to modify the frame rewrite to contemplate the
actual GENEVE OPTIONS.

Change-Id: Iddfe6f408cc45bb0800f00ce6a3e302e48a4ed52
Signed-off-by: Marco Varlese <marco.varlese@suse.com>

6f631156 03-Oct-2017 Neale Ranns <nranns@cisco.com>

Distributed Virtual Router Support

A distributed virtual router works by attmpeting to switch a packet, but on failing to find a local consumer (i.e. the packet is destined to a locally attached host) then the packet is sent unmodified 'upstream' to where the rest of the 'distributed' router is present. When L3 switching a packet this means the L2 header must not be modifed. This patch adds a 'l2-bridge' object to the L3 FIB which re-injects packets from the L3 path back into the L2 path - use with extreme caution.

Change-Id: I069724eb45956647d7980cbe40a80a788ee6ee82
Signed-off-by: Neale Ranns <nranns@cisco.com>

c6038c91 02-Oct-2017 eyal bari <royalbee@gmail.com>

L2FIB,TEST:add max macs in event test

Change-Id: Ied72d44f8695af524751ffc54196cc3ac1addc85
Signed-off-by: Eyal Bari <ebari@cisco.com>

e2efd12b 01-Oct-2017 Dave Wallace <dwallacelf@gmail.com>

make test: Copy api_post_mortem.$$ file tmp test dir for archiving.

Change-Id: I4baf89ef383dbc2f309081a6b56b13ebcb8fc2df
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

24db0ec7 27-Sep-2017 Eyal Bari <ebari@cisco.com>

L2-FIB:add mac learn events test

fixes an issue where events were not sent if BD doesn't enable mac aging

Change-Id: Iddc53cb5c45e560633e6c5cff2731dccfc70ad5b
Signed-off-by: Eyal Bari <ebari@cisco.com>

981fadf9 30-Sep-2017 Dave Wallace <dwallacelf@gmail.com>

make test: Create link to failed test dir on timeout.

- Also change default coredump configuration from
"coredump-size unlimited" to "full-coredump"

Change-Id: Iefedc2636f2d9696b7575b34e91dd7be49f601fa
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

25dc1671 30-Sep-2017 Dave Wallace <dwallacelf@gmail.com>

make test: archive failed test data with build logs.

- Fix invocation of compress_failed.sh
- Fix compress_failed to copy compressed results
files to $WORKSPACE/archives and return failure
exit code.

Failed test case data will be copied to logs.fd.io
and found in the archives/<make test data dir>-FAILED
directory in the build log link in the
vpp-verify-master-ubuntu1604 jenkins job page.

For example:
https://logs.fd.io/production/vex-yul-rot-jenkins-1/vpp-verify-master-ubuntu1604/7353/archives/

Change-Id: Ife9a0737115e69c0a8441e3bb0133af1528d909b
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

d3e671e0 28-Sep-2017 Klement Sekera <ksekera@cisco.com>

make test: fix/disable VAPI tests on centos

Workaround old `check' library on centos.
Disable building/running of C++ VAPI test as centos's gcc can't compile
our C++ code (vapi.hpp) due to bug.

Change-Id: If9da9c7f1bc076f7cdfb9bd3016dfe60a08afa36
Signed-off-by: Klement Sekera <ksekera@cisco.com>

987abe9e 27-Sep-2017 Andrew Yourtchenko <ayourtch@gmail.com>

acl-plugin: take 2 at VPP-991 fix, this time with a test case which verifies it.

The replacement of [] with pool_elt_at_index and subsequent fixing it
was incorrect - it was equivalent to &[], since it returns a pointer to
the element. I've added VPP-993 previously to create a testcase,
so this commit partially fulfills that one as well.

Change-Id: I5b15e3ce48316f0429232aacf885e8f7c63d9522
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>

a61d1251 27-Sep-2017 Klement Sekera <ksekera@cisco.com>

make test: clean ext binaries when doing test-wipe

Change-Id: I9f5212ee670ea91c6b35f1406c256d0687b9c6b5
Signed-off-by: Klement Sekera <ksekera@cisco.com>

d94c3e5b 26-Sep-2017 Klement Sekera <ksekera@cisco.com>

make test: don't recompile ext if not needed

Skip recompilation of test binaries from test/ext if these are
up-to-date. This speeds up repeated test runs.

Change-Id: I96dbfafc372398e3d858d8419219ef35c47bd0f3
Signed-off-by: Klement Sekera <ksekera@cisco.com>

6912a051 25-Sep-2017 Matej Perina <mperina@cisco.com>

jvpp: lowering verbosity level for jvpp tests


Change-Id: Ie38dad209cce6d546379b4a5e449b34fbcadf171
Signed-off-by: Matej Perina <mperina@cisco.com>

51d2651e 14-Sep-2017 Andrew Yourtchenko <ayourtch@gmail.com>

acl-plugin: test: move the API calls to vpp_papi_provider.py

Change-Id: I1d3818027b8a1fcb1ec12016e3476b5c22a2d5a5
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>

3d67449d 25-Sep-2017 Dave Wallace <dwallacelf@gmail.com>

Refactor multi-host socket_test.sh for bare-metal.

Change-Id: I4fcde6652e0c66315a453250c6e02cd32176833d
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

c125eccc 20-Sep-2017 Eyal Bari <ebari@cisco.com>

IP-MAC,ND:wildcard events,fix sending multiple events

wildcard ND events publisher was sending the last event mutiple times

Change-Id: I6c30f2de03fa825e79df9005a3cfaaf68ff7ea2f
Signed-off-by: Eyal Bari <ebari@cisco.com>

dc15be2c 12-Jun-2017 Klement Sekera <ksekera@cisco.com>

Add C++ API

Change-Id: Iff634f22d43470e2dc028387b3816257fd7b4156
Signed-off-by: Klement Sekera <ksekera@cisco.com>

8f2a4eaf 04-May-2017 Klement Sekera <ksekera@cisco.com>

Add new C API

Change-Id: I717ce3cd7c867c155de149ec56623269d26d0ff7
Signed-off-by: Klement Sekera <ksekera@cisco.com>

057704eb 14-Sep-2017 Pavel Kotucek <pkotucek@cisco.com>

ACL plugin enable macip for ip4/ip6 traffic

Plus fixed problem with acl heap.

Change-Id: I3d91db549ebe4595f1dab9b8780f90722540024b
Signed-off-by: Pavel Kotucek <pkotucek@cisco.com>

2019748a 12-Sep-2017 Eyal Bari <ebari@cisco.com>

L2BD,ARP-TERM:fix arp query report mechanism+test

previous mechanism was emitting duplicates of last event, when handling multiple arp queries.
tests:
* arp events sent for graps
* duplicate suppression
* verify no events when disabled

Change-Id: I84adc23980d43b819261eccf02ec056b5cec61df
Signed-off-by: Eyal Bari <ebari@cisco.com>

1948161b 15-Sep-2017 Dave Wallace <dwallacelf@gmail.com>

Add multi-vm Vagrantfile for vcl-test.

- Existing Vagrantfile is symbolic link to the
default Vagrantfile.
- In order to run the multi-host vcl test,
change Vagrantfile -> Vagrantfile.vcl_test
- Fix socket_test.sh & vppcom bugs.

Change-Id: I965b7f799135c86e989c08bf6c5909677ef38dea
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

2297af01 12-Sep-2017 Neale Ranns <nranns@cisco.com>

Add a name to the creation of an IP and MPLS table

Change-Id: I4b4648831551519b2ffb6f93255d28a4b8726c22
Signed-off-by: Neale Ranns <nranns@cisco.com>

c29940c5 07-Sep-2017 Pavel Kotucek <pkotucek@cisco.com>

ACL-plugin add "replace" semantics for adding a new MacIP acl

Change-Id: Ia5c869b2d8b8ad012b9e89fb6720c9c32d9ee065
Signed-off-by: Pavel Kotucek <pkotucek@cisco.com>

1500254b 10-Sep-2017 Neale Ranns <nranns@cisco.com>

FIB table add/delete API

part 2;
- this adds the code to create an IP and MPLS table via the API.
- but the enforcement that the table must be created before it is used is still missing, this is so that CSIT can pass.

Change-Id: Id124d884ade6cb7da947225200e3bb193454c555
Signed-off-by: Neale Ranns <nranns@cisco.com>

b2d2fc7f 11-Sep-2017 Matus Fabian <matfabia@cisco.com>

NAT: fixed hairpinning for in2out translation as an output feature (VPP-976)

Test whether the hairpinning flag is set only for packets from NAT inside interface.

Change-Id: I4a4fdd2084a76a70ce9dfe3e2b8332c02fa2eccd
Signed-off-by: Matus Fabian <matfabia@cisco.com>

932f7419 07-Sep-2017 Pavel Kotucek <pkotucek@cisco.com>

ACL-plugin MACIP ACLs tests

Change-Id: Ie40c837358454cfe9475cb2c14fdf20b24fa6602
Signed-off-by: Pavel Kotucek <pkotucek@cisco.com>

3079a64e 06-Sep-2017 Dave Wallace <dwallacelf@gmail.com>

Fix socket_test.sh vagrant based multi-host tests.

Change-Id: I8ef75a0c702098030c6814c127d3443820122327
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

92dc12a0 07-Sep-2017 Andrew Yourtchenko <ayourtch@gmail.com>

test: factor out "L4_Conn" into a class within util.py (VPP-931)

It seems a useful abstraction for the purposes of writing
fine-grained tests, to be able to create a "connection" object
which would be bound to two VPP interfaces, and hold some
information about the state, allowing to send the packets
back and forth with minimal amount of arguments.

Change-Id: Idb83b6b82b38bded5b7e1756a41bb2df4cd58e3a
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>

6be72cd8 10-Aug-2017 Andrew Yourtchenko <ayourtch@gmail.com>

acl-plugin: match index set to first portrange element if non-first portrange matches on the same hash key (VPP-937)

Multiple portranges that land on the same hash key will always report the match
on the first portrange - even when the subsequent portranges have matched.
Test escape, so make a corresponding test case and fix the code so it passes.

(the commit on stable/1707 has erroneously mentioned VPP-938 jira ticket)

Change-Id: Idbeb8a122252ead2468f5f9dbaf72cf0e8bb78f1
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
(cherry picked from commit fb088f0a201270e949469c915c529d75ad13353e)
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>

d05c155e 05-Sep-2017 Florin Coras <fcoras@cisco.com>

make test: disable L2BD Multi-instance test 5

Change-Id: Iba44aec60a74ada5add41ecf00b25dc44f3ad3a3
Signed-off-by: Florin Coras <fcoras@cisco.com>

704018cf 04-Sep-2017 Matus Fabian <matfabia@cisco.com>

NAT: Destination NAT44 with load-balancing (VPP-954)

added load-balancing static mappings with unequal load support

Change-Id: Ie505e41f24d46f812b94dd28bdafe3dc170a6060
Signed-off-by: Matus Fabian <matfabia@cisco.com>

9e482bb9 30-Aug-2017 Keith Burns (alagalah) <alagalah@gmail.com>

Improvements to socket_test.sh script

Change-Id: I10c59dc32edb7336a56722b1de8cca1d0ae31c60
Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>

fcbf4444 17-Aug-2017 Klement Sekera <ksekera@cisco.com>

make test: separate test discovery code

Separating test discovery code to it's own script file has the
advantage of easily doing e.g. listing of all existing tests.

Change-Id: I80dc280263cc7e33e7e13cb0d48b39bf08ece24d
Signed-off-by: Klement Sekera <ksekera@cisco.com>

d135c19a 18-Jul-2017 Matej Perina <mperina@cisco.com>

jvpp: introducing callback api and future api tests for all plugins (VPP-591)

test can be run with:
make test TEST=test_jvpp

memory_shared.c:
declaring and assigning variable in if statement
makes it usage outside statement impossible. Looks like memory
space assigned to variable declared in statement is freed when
statement ends
svm.c:
- fixed case when root path can have a "/" at beggining
- added option for test to operate over shared memory space
with /vpe-api name and not create new one with name consisting of
root path and region name which would require root permisions

Change-Id: Iff1170dc6a5c1be134c152f2757c7ab9b919a8ed
Signed-off-by: Matej Perina <mperina@cisco.com>

2ba92e32 21-Aug-2017 Matus Fabian <matfabia@cisco.com>

NAT: Rename snat plugin to nat (VPP-955)

Change-Id: I30a7e3da7a4efc6038a91e27b48045d4b07e2764
Signed-off-by: Matus Fabian <matfabia@cisco.com>

91074439 22-Jun-2017 Kris Michielsen <kmichiel@cisco.com>

SRv6 tests

Change-Id: Ib1d2fc5a83d9d007a0468591a73881675f1bec9b
Signed-off-by: Kris Michielsen <kmichiel@cisco.com>

43161a87 12-Aug-2017 Neale Ranns <nranns@cisco.com>

PPPoE usses a midchain adjacency stack on an interface-tx DPO

1) introduce an interface-tx DPO. This is a simple wrapper around a sw_if_index. enhance DPO stacking functions to allow per-instance next-nodes and hence allow children to stack onto the interface per-instance tx node and not on 'interface-output'.
2) update PPPoE code to use ta midchain stack on a interface-tx DPO of the encap-interface. This remove the need for pppoe_encap node (which is replaced by the adj-midchain-tx) and interface-output node is no longer used (see above). Since PPPoE encap node is no longer needed, the PPPoE seesion does not need to be retrieved in the data-path, hence the cahce misses are removed.

Change-Id: Id8b40f53daa14889a9c51d802e14fed7fba4399a
Signed-off-by: Neale Ranns <nranns@cisco.com>

8712ada6 16-Aug-2017 Klement Sekera <ksekera@cisco.com>

make test: fix broken passing of return value

Change-Id: I2cb83caaf55ca9a29c06d71c6d20f8273ec062b3
Signed-off-by: Klement Sekera <ksekera@cisco.com>

30fb4a2f 17-Aug-2017 Dave Wallace <dwallacelf@gmail.com>

Fix socket_test.sh to run iperf3 in docker.

Change-Id: I47018fee4283b7b257f16e21b82bf7e497a7d985
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

f413bef1 15-Aug-2017 Klement Sekera <ksekera@cisco.com>

make test: collect symlinks to failed tests

Compress files in temporary directories of failed tests and symlink
the directories under /tmp/vpp-failed-unittests location - preparation
for jenkins archivation. Automatically cleanup the directory at start
of test run.

The compression is performed only when environment variable
COMPRESS_FAILED_TEST_LOGS is set to one of "yes", "y", "1".
This is set in verify target, but left unset by default, so when
invoking make test by hand, files won't be compressed.

Change-Id: I84c8f1c6aa79aa9c0b753357022b1f195f17a283
Signed-off-by: Klement Sekera <ksekera@cisco.com>

ab9a59c1 16-Aug-2017 Matus Fabian <matfabia@cisco.com>

SNAT: Make proto optional in nat64_bib_dump (VPP-942)

make proto optional in nat64_bib_dump and nat64_st_dump

Change-Id: Idd102ce2b1555d38783fd22c84e46b4c48570edc
Signed-off-by: Matus Fabian <matfabia@cisco.com>

f8cd5817 11-Jul-2017 Matus Fabian <matfabia@cisco.com>

NAT64: Fallback to 3-tuple key for non TCP/UDP sessions (VPP-884)

Change-Id: I4cafc8291725feb499355092bd429433e649b5b2
Signed-off-by: Matus Fabian <matfabia@cisco.com>

24b170aa 15-Aug-2017 Neale Ranns <nranns@cisco.com>

Support proxy ARP on mirrored TAP interfaces

When VPP has an interface whose address is also applied to a TAP
interface on the host, then VPP's TAP interface will be unnumbered
to the 'real' interface and do proxy ARP from the host.
the curious aspect of this setup is that ARP requests from the host
will come from the VPP's own address.

Change-Id: Ia238790e1034ba3cd3facdab29387b65a31525f2
Signed-off-by: Neale Ranns <nranns@cisco.com>

69126282 15-Aug-2017 Matus Fabian <matfabia@cisco.com>

SNAT: fix overlapping address space test

change address/network of the second interface within VRF 10

Change-Id: Iab9772a419fb3e8f1a193756bdaa68cd8cdbb121
Signed-off-by: Matus Fabian <matfabia@cisco.com>

d69f4f41 14-Aug-2017 Dave Wallace <dwallacelf@gmail.com>

Fix VCL LD_PRELOAD lib location in socket_test.sh

- Use VCL_LDPRELOAD_LIB_DIR env. var if set.
- Default to /usr/local/lib where it will be installed.
- Change library name to libvcl_ldpreload.so.0.0.0

Change-Id: I4fc30b581c8406c5895f875d859aa44bb9ef19b5
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

db4e84cf 11-Aug-2017 Klement Sekera <ksekera@cisco.com>

make test: properly handle ctrl-c

Change-Id: Iab88886ebc1582626813777ea45ce97fc8e36443
Signed-off-by: Klement Sekera <ksekera@cisco.com>

3f6ff19a 11-Aug-2017 Klement Sekera <ksekera@cisco.com>

make test: fix broken DEBUG=gdb* options

Change-Id: I5d80982eeab78a629760f567eda3b1539d96e3a8
Signed-off-by: Klement Sekera <ksekera@cisco.com>

a07bd708 07-Aug-2017 Neale Ranns <neale.ranns@cisco.com>

Dedicated SW Interface Event

Change-Id: I06a10a4291e61aec3f1396d2514ed6fe3901897a
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>

543852a4 03-Aug-2017 Dave Wallace <dwallacelf@gmail.com>

Add VPP Communications Library (VCL)

- VCL library
- client/server test application
- test script (make test integration tbd)
- gdb command file templates
- vppcom test config file

Change-Id: I21eab7aa09b4e5dc3412acf5c2eab07415c2fc0f
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

fa3eb7a9 10-Aug-2017 Klement Sekera <ksekera@cisco.com>

make test: bump default test timeout to 10 minutes

Change-Id: I25d88966376d712ff61f29227a45880a59e8ecf2
Signed-off-by: Klement Sekera <ksekera@cisco.com>

909a6a1e 08-Aug-2017 Klement Sekera <ksekera@cisco.com>

make test: detect hung tests

Run tests in a forked process with a set of pipes to communicate
keep-alives and overall result. This allows us to detect when e.g.
vpp dies mid-API call causing the test to hang waiting for response
(which will never come since vpp died).

Support setting a (per test case) TIMEOUT make test option to set timeout,
with a default timeout of 120 seconds.

Example - fail the test suite if any test-case fails to finish within
300s:

make TIMEOUT=300 test

Change-Id: I0d04f26a7232968f4bf043adf5d5b508f5018717
Signed-off-by: Klement Sekera <ksekera@cisco.com>

b639b593 09-Aug-2017 Andrew Yourtchenko <ayourtch@gmail.com>

acl-plugin: all TCP sessions treated as transient (VPP-932)

The packet that was creating the session was not tracked,
consequently the TCP flags seen within the session record
never got the value for the session to get treated as
being in the established state.

Test-escape, so add the TCP tests which test the
three phases of the TCP session life and make them all pass.

Change-Id: Ib048bc30c809a7f03be2de7e8361c2c281270348
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
(cherry picked from commit 754370f1b55d4102d21dd94676f2bda3170c7df0)

62f9cdd8 04-Jul-2017 Hongjun Ni <hongjun.ni@intel.com>

Add PPPoE Plugin

Supports 64K PPPoE sessions

This plugin adds three graph nodes:
1) pppoe-input for PPPoE decapsulation
2) pppoe-encap for PPPoE encapsulation
3) pppoe-tap-dispatch for control plane process

Below is the configuration to make PPPoE CP and DP work:
vim /etc/vpp/startup.conf
tuntap {
enable
ethernet
name newtap
}

create pppoe tap tap-if-index 1

//Configure it after a subscriber's PPPoE discovery and PPP link establishment succeeds:
create pppoe session client-ip 100.1.2.1 session-id 1 client-mac 00:11:01:00:00:01

show pppoe fib
show pppoe session

Change-Id: I73e724b6bf7c3e4181a9914c5752da1fa72d7e60
Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>

da78f957 24-May-2017 Neale Ranns <nranns@cisco.com>

L2 over MPLS

[support for VPWS/VPLS]
- switch to using dpo_proto_t rather than fib_protocol_t in fib_paths so that we can describe L2 paths
- VLIB nodes to handle pop/push of MPLS labels to L2

Change-Id: Id050d06a11fd2c9c1c81ce5a0654e6c5ae6afa6e
Signed-off-by: Neale Ranns <nranns@cisco.com>

94384e4d 11-Jul-2017 Klement Sekera <ksekera@cisco.com>

make test: kill all remaining subprocesses on exit

This change introduces a wrapper script which kills all processes in
the same process group as itself (with the exception of the script).
Using this script to run the unit tests should prevent stale processes
left behind in some cases (e.g. when test framework crashes).

Change-Id: If3b9201c06b87fa6be095721436893207d09b5e4
Signed-off-by: Klement Sekera <ksekera@cisco.com>

808c5b21 02-Aug-2017 Neale Ranns <nranns@cisco.com>

DHCP Client: receive unicast ACKs

despite VPP DHCP client setting neither ciaddr nor giaddr and setting the broadcast bit (see RFC 2131 section 4.1) some DHCP servers will still send a unicast DCHPACK. So as not to drop this VPP must have both 1) a receive FIB entry for the OFFERED IP adress and 2) a 'don't drop me because of uRPF' FIB entry for the DHCP server's address.

Change-Id: I167d858deb45629318cbdccf5bf67d971730a42f
Signed-off-by: Neale Ranns <nranns@cisco.com>

42e6b097 31-Jul-2017 Neale Ranns <nranns@cisco.com>

Tests for recursive load-balancing with no choices.

Change-Id: I90bb3369576741d03628a818ffa63cc99d6e4c98
Signed-off-by: Neale Ranns <nranns@cisco.com>

15ac81c1 20-Jun-2017 Pavel Kotucek <pkotucek@cisco.com>

P2P Ethernet

Change-Id: Idb97e573961b3bc2acdeef77582314590795f8c3
Signed-off-by: Pavel Kotucek <pkotucek@cisco.com>

001fd406 16-Jul-2017 Eyal Bari <ebari@cisco.com>

SPAN:add l2 mirror

added span feature nodes for l2-input / l2-output

Change-Id: Ib6e0ce60d0811901b6edd70209e6a4c4a35cd8ff
Signed-off-by: Eyal Bari <ebari@cisco.com>

161c59c7 21-Jul-2017 Matus Fabian <matfabia@cisco.com>

SNAT: in2out translation as an output feature hairpinning (VPP-913)

Change-Id: I3790739683c6090ffb2aefb4758bd4275856c09a
Signed-off-by: Matus Fabian <matfabia@cisco.com>

93d84c9f 19-Jul-2017 Matus Fabian <matfabia@cisco.com>

SNAT: in2out translation as an output feature (VPP-903)

in2out translation as an output feature on the outside interface (postrouting)

Change-Id: I32c0311be09bdf102b9a0885b8b89c7588cb558f
Signed-off-by: Matus Fabian <matfabia@cisco.com>

60c1223a 18-Jul-2017 Klement Sekera <ksekera@cisco.com>

make test: improve console output messages

Remove the word derp and replace it with a proper, more gramatically
correct message.

Change-Id: I04fd44cc67dace1a31ca48fc8ce67b246162ba79
Signed-off-by: Klement Sekera <ksekera@cisco.com>

51822bf0 18-Jul-2017 Neale Ranns <nranns@cisco.com>

DHCP client option 61 "client_id"

the existing seeting of client_id to a VPP version number was unused and so overridden

Change-Id: If9ebea936336f1fcca8d07e67186c95f8f8f0ccd
Signed-off-by: Neale Ranns <nranns@cisco.com>

a2fbf6ba 18-Jul-2017 Neale Ranns <nranns@cisco.com>

DHCP client - remove interface address when DHCP de-configured

Change-Id: I63c59e3c13859b51999d283774f7783ef0a6a5ed
Signed-off-by: Neale Ranns <nranns@cisco.com>

758137a7 05-Jul-2017 Eyal Bari <ebari@cisco.com>

TEST:add l2bd nd term tests

Change-Id: I67633175d50a70a0b8ae4f85c659b93070f8e1fb
Signed-off-by: Eyal Bari <ebari@cisco.com>

7968e6ca 06-Jul-2017 Matus Fabian <matfabia@cisco.com>

SNAT: Fallback to 3-tuple key for non TCP/UDP sessions (VPP-884)

Change-Id: I4868ff6e81c579b29d3ea066976ae145f8b83e9e
Signed-off-by: Matus Fabian <matfabia@cisco.com>

c86e592f 02-Jul-2017 Eyal Bari <ebari@cisco.com>

TEST:add L2BD arp term tests

Change-Id: I42414da9663ecfc8dfe5baf3e6615cf3b9b02e22
Signed-off-by: Eyal Bari <ebari@cisco.com>

7c0aecc9 03-Jul-2017 Matus Fabian <matfabia@cisco.com>

SNAT: fix failing test_session_limit_per_user (VPP-896)

Change-Id: Idf46a03803125babd9bb880363686359fbcca27d
Signed-off-by: Matus Fabian <matfabia@cisco.com>
(cherry picked from commit 860af5ad2b023f9c57d622a7a9d3bd0099e480b1)

31a71ab4 25-Jun-2017 Eyal Bari <ebari@cisco.com>

L2-LEARN:fix l2fib entry seq num not updated on hit (VPP-888)

fixed instability in l2bd_multi_instnce test - sometimes failing with extra
packets captured

it appears l2-learn was not updating hit entries but rather a copy of them.

if the ager did not have a chance to run before the test was running the
learning cycle - entries were not updated with the packet's seq num - causing
packets to flood when hitting the stale seq_num in l2-fwd - hence the extra
packets

fixed handling of filter entries

revert workaround for instability in test

Change-Id: I16d918e6310a5bf40bad5b7335b2140c2867cb71
Signed-off-by: Eyal Bari <ebari@cisco.com>
(cherry picked from commit 25ff2ea3a31e422094f6d91eab46222a29a77c4b)

ed92925f 13-Jun-2017 Ole Troan <ot@cisco.com>

FLOWPROBE: Add flowstartns, flowendns and tcpcontrolbits

- fixed problem with tcp_flag
- changed flowtimestamp into NTP format
Change-Id: I4ef05d6c69c5c078a0c80d59c5ccb0c85b924ba6
Signed-off-by: Ole Troan <ot@cisco.com>

eb46754e 21-Jun-2017 Andrew Yourtchenko <ayourtch@gmail.com>

acl-plugin: CLI to clear all sessions

It is useful to have the CLI to clear the existing sessions.
There was a work-in-progress CLI but it did not work properly.
Fix it and split into a separate "clear acl-plugin sessions",
and add a unit test into the extended connection-oriented tests.

Change-Id: I55889165ebcee139841fdac88747390903a05394
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>

428dc911 21-Jun-2017 Matus Fabian <matfabia@cisco.com>

NAT64: custom prefix

Change-Id: If397b49861468eed29b964fa64b186f80eb0eceb
Signed-off-by: Matus Fabian <matfabia@cisco.com>

ca193612 14-Jun-2017 Neale Ranns <nranns@cisco.com>

ARP: ignore non-connected routes and non-interface sources when determing if source is connected

Change-Id: I39fb0ec44cc322eaa12c0ff0700fc405d3982bfc
Signed-off-by: Neale Ranns <nranns@cisco.com>

284293a3 06-Jun-2017 Eyal Bari <ebari@cisco.com>

L2-VTR: add vtr tests

re-enable l2 fib flush tests
reorder l2bd multi instance tests - move flags test as last
enabling of uu-flood will now flood when entry is stale

Change-Id: I052663ec3eb4acee5f296fb7525dd535924e0003
Signed-off-by: Eyal Bari <ebari@cisco.com>

1e8db5fb 20-Jun-2017 Matus Fabian <matfabia@cisco.com>

SNAT: unknow protocol hairpinning fix

Change-Id: I15813167e7c8529f229143de4a8f64f0fb530951
Signed-off-by: Matus Fabian <matfabia@cisco.com>

0f360dc3 14-Jun-2017 Eyal Bari <ebari@cisco.com>

L2FWD:fix seq_num overwritten + validate l2fib entries when forwarding

l2_classify memeber table_index was overlaid over l2.l2fib_seq_num
which over written when table_index gets initialized in l2_input_classify

solved by overlaying both table_index and opaque_index as only one is used

seperated l2fib seq num from l2_input configs
for better handling of theoretical ABA issue where an entry for a deleted
interface is considered valid by the ager because a different interface with
same sw_if_index and seq_num was created before the ager got a chance to delete

Change-Id: I7b0eeded971627406f1c80834d7e02c0ebe62136
Signed-off-by: Eyal Bari <ebari@cisco.com>

328dbc88 19-Jun-2017 Matus Fabian <matfabia@cisco.com>

SNAT: NAT packet with unknown L4 protocol if match 1:1 NAT

Change-Id: Ic81c6098d615fdb6a874e532921efd833fed872c
Signed-off-by: Matus Fabian <matfabia@cisco.com>

7f4d577d 24-May-2017 Andrew Yourtchenko <ayourtch@gmail.com>

acl-plugin: bihash-based ACL lookup

Add a bihash-based ACL lookup mechanism and make it a new default.
This changes the time required to lookup a 5-tuple match
from O(total_N_entries) to O(total_N_mask_types), where
"mask type" is an overall mask on the 5-tuple required
to represent an ACE.

For testing/comparison there is a temporary debug CLI
"set acl-plugin use-hash-acl-matching {0|1}", which,
when set to 0, makes the plugin use the "old" linear lookup,
and when set to 1, makes it use the hash-based lookup.

Based on the discussions on vpp-dev mailing list,
prevent assigning the ACL index to an interface,
when the ACL with that index is not defined,
also prevent deleting an ACL if that ACL is applied.

Also, for the easier debugging of the state, there are
new debug CLI commands to see the ACL plugin state at
several layers:

"show acl-plugin acl [index N]" - show a high-level
ACL representation, used for the linear lookup and
as a base for building the hashtable-based lookup.
Also shows if a given ACL is applied somewhere.

"show acl-plugin interface [sw_if_index N]" - show
which interfaces have which ACL(s) applied.

"show acl-plugin tables" - a lower-level debug command
used to see the state of all of the related data structures
at once. There are specifiers possible, which make
for a more focused and maybe augmented output:

"show acl-plugin tables acl [index N]"
show the "bitmask-ready" representations of the ACLs,
we well as the mask types and their associated indices.

"show acl-plutin tables mask"
show the derived mask types and their indices only.

"show acl-plugin tables applied [sw_if_index N]"
show the table of all of the ACEs applied for a given
sw_if_index or all interfaces.

"show acl-plugin tables hash [verbose N]"
show the 48x8 bihash used for the ACL lookup.

Change-Id: I89fff051424cb44bcb189e3cee04c1b8f76efc28
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>

029f3d2c 15-Jun-2017 Matus Fabian <matfabia@cisco.com>

NAT64: Hairpinning (VPP-699)

Change-Id: I83a6c277fa211ac2c2ca2d603650c992886af0a7
Signed-off-by: Matus Fabian <matfabia@cisco.com>

89111d04 12-Jun-2017 Pavel Kotucek <pkotucek@cisco.com>

Flowprobe - tests speed-up

Updated test to reduce tests runtime.

Change-Id: I7904628fc19d349d6c26502e49d4c990cb8816ff
Signed-off-by: Pavel Kotucek <pkotucek@cisco.com>

4b30ceb1 09-Jun-2017 Matus Fabian <matfabia@cisco.com>

SNAT: fix 1:1 NAT without port hairpinning TCP checksum update

Change-Id: I5077fcf3671a6116b475f87e43120efc10ecaa08
Signed-off-by: Matus Fabian <matfabia@cisco.com>

b823df5a 12-Jun-2017 Eyal Bari <ebari@cisco.com>

L2FIB:fix crash in show with deleted subif entries

after deleting a sub interface it's l2fib entries are left with a dangling
sw_if_index (while waiting for the ager to delete them).
changed "show l2fib" to reflect that state with "Deleted" as the interface name.

added sleep in test_l2_fib as a workaround for packets still passing after flush
will investigate...

Change-Id: Id998d7d3c6a073ef5005c5f3009e1cfb7febf7db
Signed-off-by: Eyal Bari <ebari@cisco.com>

732036d6 08-Jun-2017 Matus Fabian <matfabia@cisco.com>

NAT64: ICMP error support

Added ICMP error messages translation.
Added check for multi thread (not supported yet, so init failed).
Added API definition for custom NAT64 refix.

Change-Id: Ice2f04631af63e594aecc09087a1cf59f3b676fb
Signed-off-by: Matus Fabian <matfabia@cisco.com>

06596c54 06-Jun-2017 Matus Fabian <matfabia@cisco.com>

NAT64: Add NAT64 support for snat plugin (VPP-699)

Basic NAT64 feature (no hairpinning, no multi-thread).

Change-Id: I392fccbce93e70c117f4a9a7ec7cf08d6c537f2d
Signed-off-by: Matus Fabian <matfabia@cisco.com>

3658adca 07-Jun-2017 Klement Sekera <ksekera@cisco.com>

make test: improve debugability

Introduce faulthandler to print stack trace to stderr on python crash.
Don't disable automatic garbage collection to decrease the chances of
running out of memory.

Change-Id: I6927a5f6ea9569735d084d4ed3d258950a400d74
Signed-off-by: Klement Sekera <ksekera@cisco.com>

30d0fd48 30-May-2017 Neale Ranns <nranns@cisco.com>

Packets recieved on VLAN-0 map to the main interface

Change-Id: I21b1ad39275495d4d006023b58f630a213445854
Signed-off-by: Neale Ranns <nranns@cisco.com>

8a0a0ae6 27-May-2017 Hongjun Ni <hongjun.ni@intel.com>

Rework vxlan-gpe to support FIB 2.0 and bypass mode

Change-Id: I0324f945bdb4dd3b19151be6f3ce24a47a000104
Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>

6fa74c60 05-Jun-2017 Matus Fabian <matfabia@cisco.com>

SNAT: fix ICMP hairpinning

Change-Id: I9d63133bd1db72917571ade868040c4597c896a1
Signed-off-by: Matus Fabian <matfabia@cisco.com>

c2aad53a 30-May-2017 Neale Ranns <nranns@cisco.com>

IP Mcast - recalculate on interface up/dowm

Change-Id: Ie5b88fd7187ed62218a2e4e0e493c33e3e9ecc2f
Signed-off-by: Neale Ranns <nranns@cisco.com>

26261594 01-Jun-2017 Klement Sekera <ksekera@cisco.com>

make test: add suddenly missing dependency (six module)

Change-Id: I121eaee6b752a6b3bfe1d5ecf803f67147c77beb
Signed-off-by: Klement Sekera <ksekera@cisco.com>

5c749734 13-Mar-2017 Ole Troan <ot@cisco.com>

Flowprobe: Stateful flows and IPv6, L4 recording

Change-Id: I67839281623721bf42f0a918a53356143d9dc78a
Signed-off-by: Ole Troan <ot@cisco.com>
Signed-off-by: Pavel Kotucek <pkotucek@cisco.com>
Signed-off-by: Ole Troan <ot@cisco.com>

6af1c04f 26-May-2017 Neale Ranns <nranns@cisco.com>

MPLS lookup DPO does not pop the label (nor does it handle replicate)

Change-Id: I7de6b96631d1645d0eadd38525860d84d78e316d
Signed-off-by: Neale Ranns <nranns@cisco.com>

dcd6d625 26-May-2017 Neale Ranns <nranns@cisco.com>

ARP/ND use path_remove to complement path_add

don't add duplicate extensions.

Change-Id: Icf72d6e1b004d0dda532bec2b51f6b74544925bb
Signed-off-by: Neale Ranns <nranns@cisco.com>

71275e3d 25-May-2017 Neale Ranns <nranns@cisco.com>

MPLS hash function improvements

Change-Id: I28e98f445c01493562b6196a4f5b532a51f178af
Signed-off-by: Neale Ranns <nranns@cisco.com>

6631e9c1 24-May-2017 Matus Fabian <matfabia@cisco.com>

SNAT: fix IPFIX data src and dst port

Change-Id: Ifa9582962710a3601fcccbbf388529043fc7f08a
Signed-off-by: Matus Fabian <matfabia@cisco.com>

31426c6f 24-May-2017 Neale Ranns <nranns@cisco.com>

Missing VLIB node for IPv6 disposition from mcast MPLS LSP

Change-Id: Ibc0e1910a4926fdfbf74571efb5fd5810bfa09da
Signed-off-by: Neale Ranns <nranns@cisco.com>

13eaf3e6 23-May-2017 Neale Ranns <nranns@cisco.com>

Leak locks and tables in the Classifier

Change-Id: Iae04c57bba87ab3665388eadd0805f75171636a5
Signed-off-by: Neale Ranns <nranns@cisco.com>

521202b4 24-May-2017 Eyal Bari <ebari@cisco.com>

TEST/L2BD:fix flush tests

flush tests will now enable learning on the bridge, and send broadcast packets
to add dynamic entries to the l2_fib. it will then disable learning, flush, and
will verify packets are not forwarded to flushed "hosts".

Change-Id: Ie6f123e59f6c89af511bdc5a02dd199420c424e9
Signed-off-by: Eyal Bari <ebari@cisco.com>

8c4611b3 23-May-2017 Neale Ranns <nranns@cisco.com>

Labelled attached paths via an MPLS tunnel

Change-Id: Ic86617c9c3217122043656ce2ea70bb106df5b2d
Signed-off-by: Neale Ranns <nranns@cisco.com>

4b8d3be9 22-May-2017 Neale Ranns <nranns@cisco.com>

Skip L2 FIB flush tests

These tests attempt to flush static entries from a bridge-domain that has no aging configured. for both reasons it will fail.
The fact thtat they occationally pass is due to the fact that the assert_nothing_cpatured does not actually capture packets, so it misses the fact that there are some.

Change-Id: Ie5c98a42944e29a3d482156f7e9246511380372f
Signed-off-by: Neale Ranns <nranns@cisco.com>

cb9ab47f 17-May-2017 Matthew Smith <mgsmith@netgate.com>

VPP-719: Accept ARP replies from VRRP hw addr

Check whether an ARP src hw addr starts with 00:00:5e:00:01
before rejecting due to a mismatch between ARP src hw addr
and ethernet frame src addr.

Change-Id: Ia3ecd5d6dba34876aca8d90bc622a0a1397e48fb
Signed-off-by: Matthew Smith <mgsmith@netgate.com>

d5b6aa13 16-May-2017 Neale Ranns <nranns@cisco.com>

ARP learning fixes (VPP-843)

learn ARP peers if, 1) it's a reply to a local address, 2) we are sending a response to a request.
send proxy ARP responses only in the interface the request was sent.

Change-Id: I22b949c65122824233076492b7dd537daca07bc2
Signed-off-by: Neale Ranns <nranns@cisco.com>

93b503e1 15-May-2017 Eyal Bari <ebari@cisco.com>

L2FIB: add flush test

add tests for flush int/bd/all

Change-Id: Ia589ec5925b9c8acbb2fc16dafbf4842aa1a6eff
Signed-off-by: Eyal Bari <ebari@cisco.com>

ef486b15 12-Apr-2017 Hongjun Ni <hongjun.ni@intel.com>

Add GTP-U plugin. VPP-694

Basic GTP-U feature

Change-Id: I31226f890a92c5303ac06e112ed7820cae52d9bd
Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>

cd6cb986 11-May-2017 Klement Sekera <ksekera@cisco.com>

make test: support coverage for out-of-tree plugins

Change-Id: Ibd7828b1e1c699630ff450122d8aa317b1c9da26
Signed-off-by: Klement Sekera <ksekera@cisco.com>

c83c8ed1 10-May-2017 Eyal Bari <ebari@cisco.com>

L2BD/TEST:fix l2bd multiinstance test

Change-Id: If864182ec656cc6c6353be642e22910a4fc89870
Signed-off-by: Eyal Bari <ebari@cisco.com>

57d7dbc8 02-May-2017 Andrew Yourtchenko <ayourtch@gmail.com>

Avoid active connection prevent timeout of idle conns after it

Fix a logic error related to timing out of the connections
following the active one. To avoid this class of issue in
the future, create corresponding testcases, as well as some
trivial sanity testcases for both IPv4 and IPv6.

Since these tests are timing-dependent and take up time,
mark them as extended tests.

Change-Id: I2c72bad5efda7db8aa9cb05801fe47928dc47927
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>

406eb1df 04-May-2017 Martin Gálik <magalik@cisco.com>

SNAT: Additional tests for SNAT interfaces without a configured ip address

Change-Id: I7edea5d7b105ba66e0e04d509968b92cfb64c84a
Signed-off-by: Martin Gálik <magalik@cisco.com>

f3bcdbf0 02-May-2017 Klement Sekera <ksekera@cisco.com>

BFD: don't crash if interface is deleted

Instead, drop the BFD session associated with it..

Change-Id: Ie09877d5c94844be2e833900d9dde7f23edaf8cd
Signed-off-by: Klement Sekera <ksekera@cisco.com>

f7e655d6 27-Apr-2017 Martin Gálik <magalik@cisco.com>

CGN: Send ICMP error packet if user is out of sessions available

Change-Id: I19a6015fde7342588cfa9c7a4f07016aa339cc72
Signed-off-by: Martin Gálik <magalik@cisco.com>

227038a4 21-Apr-2017 Neale Ranns <nranns@cisco.com>

IP Flow Hash Config fixes

- the flow hash config is (and was) cached on the load-balance object so the fib_table_t struct is not used a switch time. Therefore changes to the table's flow hash config need to be propagated to all load-balances and hance all FIB entries in the table.
- enable API for setting the IPv6 table flow hash config
- use only the hash config in the fib_table_t object and not on the ipX_fib_t
- add tests.

Change-Id: Ib804c11162c6d4972c764957562c372f663e05d4
Signed-off-by: Neale Ranns <nranns@cisco.com>

9806eae1 25-Apr-2017 Martin Gálik <magalik@cisco.com>

CGN: Session dump, test naming for ports fixed

Change-Id: Ib542b2b3ee023fbe3d0e01ceaf4b4ab7a0ec80dc
Signed-off-by: Martin Gálik <magalik@cisco.com>

6bc8c649 19-Apr-2017 Martin Gálik <magalik@cisco.com>

CGNAT: close session API and CLI commands.

Change-Id: I9c8636bd2c4b8da2907e8e4a4f2be1a2c3a8e0bb
Signed-off-by: Martin Gálik <magalik@cisco.com>

b68ad1e9 21-Apr-2017 Klement Sekera <ksekera@cisco.com>

make test: mark all BFD tests as extended

Change-Id: Iaed59cca1c9fd69eadb86c15be6417a956cb9d5a
Signed-off-by: Klement Sekera <ksekera@cisco.com>

f12a83f5 18-Apr-2017 Neale Ranns <nranns@cisco.com>

Improve Load-Balance MAPs

- only build them for popular path-lists (where popular means more than 64 children)
the reason to have a map is to improve convergence speed for recursive prefixes - if there are only a few this technique is not needed
- only build them when there is at least one path that has recursive constraints, i.e. a path that can 'fail' in a PIC scenario.
- Use the MAPS in the switch path.
- PIC test cases for functionality (not convergence performance)

Change-Id: I70705444c8469d22b07ae34be82cfb6a01358e10
Signed-off-by: Neale Ranns <nranns@cisco.com>

2f2db1c2 18-Apr-2017 Matus Fabian <matfabia@cisco.com>

CGN: IPFIX logging

maximum entries per user exceeded event

Change-Id: Ie35d7f40f55001e2ef4a38f934f176594f25b189
Signed-off-by: Matus Fabian <matfabia@cisco.com>

3cfa558a 19-Apr-2017 Klement Sekera <ksekera@cisco.com>

make test: improve bfd reliability

Change-Id: Iaf446a2d7d8e595c3379fb9ed61a954351c17b90
Signed-off-by: Klement Sekera <ksekera@cisco.com>

24beb840 18-Apr-2017 Andrew Yourtchenko <ayourtch@gmail.com>

Clean up old datapath code in ACL plugin.

Change-Id: I3d64d5ced38a68f3fa208be00c49d20c4e6d4d0e
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>

2a3ea49d 19-Apr-2017 Neale Ranns <nranns@cisco.com>

Learn IP6 link-local ND entries from NSs sourced from link-local address

Change-Id: I4c3ce4d58df7977490fc94991291422ea1e31ee3
Signed-off-by: Neale Ranns <nranns@cisco.com>

937bf301 07-Apr-2017 vagrant <vagrant@localhost.localdomain>

make test: python interpreter customization

Allow using custom python interpreter via 'PYTHON' env variable.
E.g. env PYTHON=pypy make test.
Get latest pip automatically to properly function in environments,
where old pip is available and a proxy is required. This allows
testing pypy in a centos vagrant-provided vm.

Change-Id: I67a658fc927303468cc67f0ac192317ca2907625
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Signed-off-by: Damjan Marion <damarion@cisco.com>

d3677682 14-Apr-2017 Juraj Sloboda <jsloboda@cisco.com>

Support ping from outside network in 1:1 NAT (VPP-695)

Change-Id: Iec8fd4c2bd26874bd8bda82172af797e9b92592c
Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>

977c1cbc 31-Mar-2017 Martin Gálik <magalik@cisco.com>

CGN: additional tests

Change-Id: Ib9ae10e0fdc6de08120d92c3eebd76e71b379a06
Signed-off-by: Martin Gálik <magalik@cisco.com>

e7b6734b 18-Apr-2017 Pavel Kotucek <pkotucek@cisco.com>

ACL-plugin does not match UDP next-header, VPP-687

Change-Id: Ide4f9bd6158fb64d069540fb43f4e593e39d6ff3
Signed-off-by: Pavel Kotucek <pkotucek@cisco.com>

027dbd52 11-Apr-2017 Klement Sekera <ksekera@cisco.com>

make test: don't rely on cPython GC to close fds

This code improvement allows running in pypy (and other interpreters)
without exhausting file descriptors.

Change-Id: Icb692a0fe1343c12cbbb15af6c58753420e74330
Signed-off-by: Klement Sekera <ksekera@cisco.com>

6a0946f0 12-Apr-2017 Matus Fabian <matfabia@cisco.com>

CGN: configurable timeouts

add API and CLI configuration of deterministic NAT session timeout for TCP, UDP
and ICMP protocol

Change-Id: I577440452e7eaedcb5d80501a7fd4b76e31e8c9c
Signed-off-by: Matus Fabian <matfabia@cisco.com>

3747c75a 10-Apr-2017 Klement Sekera <ksekera@cisco.com>

make test: automatic "vpp finishes startup" check

Add code which checks if vpp doesn't crash/exit immediately after
startup to aid debugging stuff like mistyped graph node name or so.
Refuse to run tests if the vpp is unable to start, complain loudly
and print vpp's stderr at critical log level if this happens to make
spotting these problems in jenkins easy.

Change-Id: I40d3fbd05c822c0534713bae6bef05ecfb0e0c1d
Signed-off-by: Klement Sekera <ksekera@cisco.com>

d927834a 06-Apr-2017 Eyal Bari <ebari@cisco.com>

VXLAN/TEST:validate vxlan del reply has valid sw_if_index

Change-Id: Icf7420b7ee212e9341f63f005dc287d019fd8e4c
Signed-off-by: Eyal Bari <ebari@cisco.com>

0f26c5a0 01-Mar-2017 Neale Ranns <nranns@cisco.com>

MPLS Mcast

1 - interface-DPO
Used in the Data-plane to change a packet's input interface
2 - MPLS multicast FIB entry
Same as a unicast entry but it links to a replicate not a load-balance DPO
3 - Multicast MPLS tunnel
Update MPLS tunnels to use a FIB path-list to describe the endpoint[s]. Use the path-list to generate the forwarding chain (DPOs) to link to .
4 - Resolve a path via a local label (of an mLDP LSP)
For IP multicast entries to use an LSP in the replication list, we need to decribe the 'resolve-via-label' where the label is that of a multicast LSP.
5 - MPLS disposition path sets RPF-ID
For a interface-less LSP (i.e. mLDP not RSVP-TE) at the tail of the LSP we still need to perform an RPF check. An MPLS disposition DPO performs the MPLS pop validation checks and sets the RPF-ID in the packet.
6 - RPF check with per-entry RPF-ID
An RPF-ID is used instead of a real interface SW if index in the case the IP traffic arrives from an LSP that does not have an associated interface.

Change-Id: Ib92e177be919147bafeb599729abf3d1abc2f4b3
Signed-off-by: Neale Ranns <nranns@cisco.com>

d1b05647 04-Apr-2017 Andrew Yourtchenko <ayourtch@gmail.com>

acl-plugin: make the IPv4/IPv6 non-first fragment handling in line with ACL (VPP-682)

This fixes the previously-implicit "drop all non-first fragments" behavior
to be more in line with security rules: a non-first fragment is treated
for the purposes of matching the ACL as a packet with the port
match succeeding. This allows to change the behavior to permit
the fragmented packets for the default "permit specific rules"
ruleset, but also gives the flexibility to block the non-initial
fragments by inserting into the begining a bogus rule
which would deny the L4 traffic.

Also, add a knob which allows to potentially turn this behavior off
in case of a dire need (and revert to dropping all non-initial fragments),
via a debug CLI.

Change-Id: I546b372b65ff2157d9c68b1d32f9e644f1dd71b4
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
(cherry picked from commit 9fc0c26c6b28fd6c8b8142ea52f52eafa7e8c7ac)

88fc83eb 05-Apr-2017 Neale Ranns <nranns@cisco.com>

BFD-FIB interactions

- single-hop BFD: attach a delegate to the appropriate adjacency
- multi-hop BFD [not supported yet]: attach a delegate to the FIB entry.

adjacency/fib_entry state tracks the BFD session state. when the state is down the object does not contribute forwarding hence and hence dependent objects will not use it.
For example, if a route is ECMP via two adjacencies and one of them is BFD down, then only the other is used to forward (i.e. we don't drop half the traffic).

Change-Id: I0ef53e20e73b067001a132cd0a3045408811a822
Signed-off-by: Neale Ranns <nranns@cisco.com>

7eac916e 30-Sep-2016 Ciara Loftus <ciara.loftus@intel.com>

GRE over IPv6

Refactors the GRE node to work with both IPv4 and IPv6 transports.

Note that this changes the binary configuration API to support both
address families; each address uses the same memory for either
address type and a flag to indicate which is in use.

The CLI and VAT syntax remains unchanged; the code detects whether
an IPv4 or an IPv6 address was given.

Configuration examples:

IPv4 CLI: create gre tunnel src 192.168.1.1 dst 192.168.1.2
IPv6 CLI: create gre tunnel src 2620:124:9000::1 dst 2620:124:9000::2

IPv4 VAT: gre_add_del_tunnel src 192.168.1.1 dst 192.168.1.2
IPv6 VAT: gre_add_del_tunnel src 2620:124:9000::1 dst 2620:124:9000::2

Change-Id: Ica8ee775dc101047fb8cd41617ddc8fafc2741b0
Signed-off-by: Ciara Loftus <ciara.loftus@intel.com>

2e01dfa2 03-Apr-2017 Klement Sekera <ksekera@cisco.com>

make test: relax BFD time intervals

Increased time intervals mean longer test runs, but also reduce
the chance of getting annoying (especially in gerrit) random failures.
Now that tests are split into `basic' and `all', the increased runtime
of BFD tests (of which majority doesn't run in basic case) doesn't
matter too much..

Change-Id: I4a15bb4facad634f123bc9cc6f45eddbf4976fd1
Signed-off-by: Klement Sekera <ksekera@cisco.com>

a657e4e7 03-Apr-2017 Klement Sekera <ksekera@cisco.com>

make test: tweak helper scripts

Change-Id: Iee6016757e45c832e8868f0bdcfd4192dd3380c8
Signed-off-by: Klement Sekera <ksekera@cisco.com>

799e26d5 13-Mar-2017 Klement Sekera <ksekera@cisco.com>

make test: add scripts for easy test looping

Allows easy running of test(s) in a loop with configurable
action (e.g. git pull) run between test runs and possible
email notification on failure.

Usage:

test-loop.sh [-p <pre-exec-cmd>] [-m <email>] -- <make test options>

Example:

Run 'make test-debug' in a loop until a failure is encountered,
upon which an email is fired to ksekera@cisco.com. In between test
runs, update the workspace using via 'git pull' and if anything changed,
perform 'git clean' before running another 'make test-debug':

test/scripts/test-loop.sh -p test/scripts/git_pull_or_clean.sh \
-m ksekera@cisco.com -- test-debug

Change-Id: I114321c6c152d2c7e181e915fc8c51aab1ff3693
Signed-off-by: Klement Sekera <ksekera@cisco.com>

e3d52803 24-Mar-2017 Andrew Yourtchenko <ayourtch@gmail.com>

VPP-669: ping: fix coverity check error 165075 + add ping testcase

Fix the bug and add the unit test to start with ping test coverage

Change-Id: Ibeacbed1f1660e677faa2dbb2ebe386216693e96
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>

6ae5ee7a 23-Mar-2017 Eyal Bari <ebari@cisco.com>

VXLAN:validate mcast encapsulation ip/mac

Change-Id: I399257e372f83f4d12dc7873617980af6e46a9bc
Signed-off-by: Eyal Bari <ebari@cisco.com>

9a69a609 26-Mar-2017 Neale Ranns <nranns@cisco.com>

Sub-net broadcast addresses for IPv4

Change-Id: Ib2189d01e8bc61de57404159690fb70f89c47277
Signed-off-by: Neale Ranns <nranns@cisco.com>

d7f75cdf 27-Mar-2017 Martin Gálik <magalik@cisco.com>

NAT: Test refactoring to avoid redundant code for verification and creating packet streams in additional test cases

Change-Id: I2265f8acfa63a7ea920a7cb981819a14806a3d58
Signed-off-by: Martin Gálik <magalik@cisco.com>

0c8ad446 24-Mar-2017 Klement Sekera <ksekera@cisco.com>

make test: properly propagate exit status

Change-Id: Ie9f48a0d5e0a9cd08eb8f07d49149eee40f04131
Signed-off-by: Klement Sekera <ksekera@cisco.com>

2e7fbcc0 15-Mar-2017 Neale Ranns <nranns@cisco.com>

Mcast rewrite no memcpy

use a 32bit mask in the adjacency to AND with the IP address and OR into the rewrite.

Change-Id: I80b0f246c18fd74f3e43c5d49e25833412f34665
Signed-off-by: Neale Ranns <nranns@cisco.com>

6abbc288 24-Mar-2017 Klement Sekera <ksekera@cisco.com>

make test: fix broken plugin paths

Change-Id: I25a6882ec503fc5bb3694411fbdc2eb1f1e1fafc
Signed-off-by: Klement Sekera <ksekera@cisco.com>

47e275bb 21-Mar-2017 Klement Sekera <ksekera@cisco.com>

make test: support out-of-tree plugins

usage:

env EXTERN_PLUGINS=/path/to/plugins make test

Change-Id: I8eece726dfafeff1cffd921c1e18cd3eb7eb64ed
Signed-off-by: Klement Sekera <ksekera@cisco.com>

993e0edf 16-Mar-2017 Klement Sekera <ksekera@cisco.com>

make test: support out-of-tree tests

env EXTERN_TESTS="/path/to/extra/tests" make test

causes to run the default test set and tests collected from
test_*.py files under subtree specified in EXTERN_TESTS.

Change-Id: I58c5471dd6010730278a5b47d4318737d920bc28
Signed-off-by: Klement Sekera <ksekera@cisco.com>

b616e9fd 14-Mar-2017 Martin <magalik@cisco.com>

SNAT: added actual delete to snat_det_map

Change-Id: I8187b43129b80fadd90ea493afb922064f79abbe
Signed-off-by: Martin <magalik@cisco.com>

d2a59bed 21-Mar-2017 Andrew Yourtchenko <ayourtch@gmail.com>

ACL plugin 1.2

L3 path support, L2+L3 unified processing node, skip IPv6 EH support.

Change-Id: Iac37a466ba1c035e5c2997b03c0743bfec5c9a08
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>

180279b9 16-Mar-2017 Neale Ranns <nranns@cisco.com>

Fix IP feature ordering.

Drop comes before lookup when enabled. is_first_or_last is not required when setting a feature, the anchor is added in find_config_with_features().
Don't make the PG interfaces automatically L3 enabled, this way we can have tests that check the L3 protocol disbaled behaviour.

Change-Id: Icef22a920b27ff9cec6ab2da6b05f05c532cb60f
Signed-off-by: Neale Ranns <nranns@cisco.com>

4b919a56 11-Mar-2017 Neale Ranns <nranns@cisco.com>

Attached hosts

allow this config to function:
set int ip address loop0 169.254.1.1/32 (the default GW address for attached hosts)
set int unnumbered af_packet0 use loop0 ('enable' IP on the host interface)
ip route add 192.168.1.1/32 via af_packet0 (where to find the host)
repeat for each host and host interface.
Inter-host communication is throught the /32 routes.
To allow this:
1 - attached host routes have the ATTACHED flag set, so the ARP code accepts then as legitimate sources
2 - unnumbered interfaces inherit the source address from the IP interface

Change-Id: Ib66c5f0e848c528f79372813adc3a0c11b50717f
Signed-off-by: Neale Ranns <nranns@cisco.com>

3983ac23 10-Mar-2017 Neale Ranns <nranns@cisco.com>

Adjacency refinement; check the cover's interface against the adjacency's

Change-Id: I3fa2f35056b74e479288bb956f2713f727a81c72
Signed-off-by: Neale Ranns <nranns@cisco.com>

3cc49718 07-Mar-2017 Ole Troan <ot@cisco.com>