vpp.git
7 years agorefactor test framework 45/3345/17
Klement Sekera [Tue, 11 Oct 2016 09:47:09 +0000 (11:47 +0200)]
refactor test framework

Change-Id: I31da3b1857b6399f9899276a2d99cdd19436296c
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Signed-off-by: Matej Klotton <mklotton@cisco.com>
Signed-off-by: Jan Gelety <jgelety@cisco.com>
Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>
7 years agodpdk: remove support for dpdk 16.04 75/3575/2
Damjan Marion [Tue, 25 Oct 2016 16:53:41 +0000 (18:53 +0200)]
dpdk: remove support for dpdk 16.04

This also removes old DPDK vhost-user code which doesn't help
much with DPDK 16.07 or newer.

Change-Id: Ic996df1eaccc33acd3fa6cabeaf7381a672c2a90
Signed-off-by: Damjan Marion <damarion@cisco.com>
7 years agodpdk: remove support for dpdk 2.2 74/3574/2
Damjan Marion [Tue, 25 Oct 2016 16:38:29 +0000 (18:38 +0200)]
dpdk: remove support for dpdk 2.2

Change-Id: I2d1a7063f3776a9070e75a627beb5d0e45a67874
Signed-off-by: Damjan Marion <damarion@cisco.com>
7 years agodpdk: remove KNI support 73/3573/2
Damjan Marion [Tue, 25 Oct 2016 16:27:29 +0000 (18:27 +0200)]
dpdk: remove KNI support

This code is outdated and without real use case

Change-Id: I30628cc4ca293e5249aea3891173507cbfad8b61
Signed-off-by: Damjan Marion <damarion@cisco.com>
7 years agoUse only 24 bits for vni in lisp-gpe data packets 70/3570/3
Florin Coras [Tue, 25 Oct 2016 14:47:52 +0000 (16:47 +0200)]
Use only 24 bits for vni in lisp-gpe data packets

Change-Id: I5a8ff12dfa8d4d9f24275590ff8293e7eb7ffbb6
Signed-off-by: Florin Coras <fcoras@cisco.com>
7 years agopython api - vla - allow the user to pass in a normal python list 33/3233/2
Gabriel Ganne [Thu, 22 Sep 2016 19:00:17 +0000 (21:00 +0200)]
python api - vla - allow the user to pass in a normal python list

Only add support for named variable-length-arrays as some api fo not
follow the expected order of length preceding the value.

Change-Id: I4c22c9b3c05f23edb3edc1cbc445be87b0a69162
Signed-off-by: Gabriel Ganne <gabriel.ganne@qosmos.com>
7 years agodpdk: remove dpdk_pmd_constructor_init 68/3568/2
Damjan Marion [Tue, 25 Oct 2016 13:45:10 +0000 (15:45 +0200)]
dpdk: remove dpdk_pmd_constructor_init

This is not needed anymore, likely because we use --whole-archive
parameter during linking.

Change-Id: Iab0f2ec647b63c59663faceacfbc60aa4a4b84a6
Signed-off-by: Damjan Marion <damarion@cisco.com>
7 years agoImprove equals generation for jvpp DTOs 56/3556/2
Marek Gradzki [Tue, 25 Oct 2016 05:57:30 +0000 (07:57 +0200)]
Improve equals generation for jvpp DTOs

Variable 'other' is no longer defined in equals method
of DTOs without defined fileds.
Fixes dead local store coverity issues.

Change-Id: I69eddf2b4b3f433149ff4d49e49c46515572d61a
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
7 years agoImprove JNI code generation (array truncation) 37/3537/4
Marek Gradzki [Mon, 24 Oct 2016 08:34:16 +0000 (10:34 +0200)]
Improve JNI code generation (array truncation)

Fixes DEADCODE coverity issue:

size_t max_size = 0;
if (max_size != 0 && ...)

Change-Id: I0e3ea4e4ddddb476519490c6f00208379089397c
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
7 years agoSupport IETF routing Yang models (VPP-503). 02/3502/5
Neale Ranns [Thu, 20 Oct 2016 12:39:34 +0000 (13:39 +0100)]
Support IETF routing Yang models (VPP-503).

Add support for special routes to send ICMP unreachable or admin prohibited.

Change-Id: Ia1ac65b0e5e925c0f9ebc7824141833b4e18f05e
Signed-off-by: Neale Ranns <nranns@cisco.com>
7 years agoUpdate CSIT tests 161017 -> 161024 53/3553/2
Jan [Mon, 24 Oct 2016 21:17:45 +0000 (23:17 +0200)]
Update CSIT tests 161017 -> 161024

- update of CSIT operational branch to be used for VPP-patch test

Change-Id: Icb36e5a68f6c1ef5edbc5159f2af3d255cecbdeb
Signed-off-by: Jan <jgelety@cisco.com>
7 years agoAdd API call of sw_interface_set_mpls_enable to vpp_api_test 55/3555/3
John Lo [Tue, 25 Oct 2016 00:20:11 +0000 (20:20 -0400)]
Add API call of sw_interface_set_mpls_enable to vpp_api_test

Change-Id: If0e98c111b3dfa38cb2c619dde4ddb3e52ee8dfa
Signed-off-by: John Lo <loj@cisco.com>
7 years agoDisable colored output for tests, when not tty 63/3563/3
Peter Ginchev [Tue, 25 Oct 2016 10:22:15 +0000 (13:22 +0300)]
Disable colored output for tests, when not tty

Change-Id: I73f01bd3a8e7caa00c75b845b9e61d3cb0f34877
Signed-off-by: Peter Ginchev <pginchev@cisco.com>
7 years agoAdd generated python bindings to .gitignore 62/3562/1
Marek Gradzki [Tue, 25 Oct 2016 10:17:33 +0000 (12:17 +0200)]
Add generated python bindings to .gitignore

Change-Id: I05b5955afa9fee5dd213a98126982626eae4d9ca
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
7 years agoFix LISP src/dst based policy 93/3493/5
Filip Tehlar [Mon, 17 Oct 2016 14:20:18 +0000 (16:20 +0200)]
Fix LISP src/dst based policy

Change-Id: Ibcc58ad50e33cd26367fd28f60334e29f45a094c
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
7 years agoFix VXLAN tunnel delete crash 44/3544/1
John Lo [Mon, 24 Oct 2016 16:13:27 +0000 (12:13 -0400)]
Fix VXLAN tunnel delete crash

Change-Id: I610648f28b7504798da9e377ea099629aa7a5150
Signed-off-by: John Lo <loj@cisco.com>
7 years agoFix jvpp coverity issues #2 36/3536/2
Marek Gradzki [Mon, 24 Oct 2016 06:06:52 +0000 (08:06 +0200)]
Fix jvpp coverity issues #2

- synchronize AbstractFutureJvppInvoker.getRequests
- handle registry & jvpp close in API usage examples

Change-Id: I918bf864b8212fde04f0d9194037f1c6a810fc3f
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
7 years agovppinfra: clib_memcpy optimization 31/3531/3
Damjan Marion [Fri, 21 Oct 2016 17:30:42 +0000 (19:30 +0200)]
vppinfra: clib_memcpy optimization

This patch allows copiler to select which SIMD instructions
will be used for copying 16 and 32 byte block.

Immediate effect of this change will occur in avx2 variants of
graph node functions. So far 128 byte registers were used
even in code optimized for avx2 due to macro nature of
clib_memcpy. With this patch gcc should pick 256 byte registers
in such cases.

Change-Id: I3510ee9b3bf01f3f0a9184e1a3f8e1bd827f8eee
Signed-off-by: Damjan Marion <damarion@cisco.com>
7 years agoDual Loop Lookup and Adj-midchain 34/3534/2
Neale Ranns [Sat, 22 Oct 2016 22:17:21 +0000 (15:17 -0700)]
Dual Loop Lookup and Adj-midchain

Change-Id: Id78b6dc637626c01b64bd5868d22425a30318348
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
7 years agoVPP-504: Permissions Error on Centos Vagrant VPP VM 04/3504/3
Billy McFall [Thu, 20 Oct 2016 12:50:11 +0000 (08:50 -0400)]
VPP-504: Permissions Error on Centos Vagrant VPP VM

Change-Id: I5e63538e0ba2395fb13f99f0c7c2ca3123a34e59
Signed-off-by: Billy McFall <bmcfall@redhat.com>
7 years agoFix Coverity Errors in FIB. This is mainly consolidating the vnet_link_t and fib_link... 87/3487/3
Neale Ranns [Wed, 19 Oct 2016 07:25:46 +0000 (08:25 +0100)]
Fix Coverity Errors in FIB. This is mainly consolidating the vnet_link_t and fib_link_t enums into just vnet_link_t.

Change-Id: Id2147afec1a28e95fec86dfd524088cd56563f63
Signed-off-by: Neale Ranns <nranns@cisco.com>
7 years agoQuad-loop ip4_lookup_inline, add _x4 validate buffer enqueue 77/3477/2
Dave Barach [Tue, 18 Oct 2016 19:25:35 +0000 (15:25 -0400)]
Quad-loop ip4_lookup_inline, add _x4 validate buffer enqueue

Change-Id: I80a25fa90d8a65db619b8697cede2b98bed37cea
Signed-off-by: Dave Barach <dave@barachs.net>
7 years agoPretty-print vl_api_api_get_first_msg_id_t msgs 30/3530/2
Dave Barach [Fri, 21 Oct 2016 16:58:51 +0000 (12:58 -0400)]
Pretty-print vl_api_api_get_first_msg_id_t msgs

Change-Id: I380bef59d64c8c647a437026085dfa20b27727e1
Signed-off-by: Dave Barach <dave@barachs.net>
7 years agoJava api generation for ioam trace plugin 87/3387/6
Shwetha [Thu, 13 Oct 2016 00:46:19 +0000 (01:46 +0100)]
Java api generation for ioam trace plugin

Makefile, configure, jvpp changes follow snat plugin jvpp
Fixes trace api handling for endianess

Change-Id: Id5c950ed3c85d5e0dc28ba31b580987baa1b133f
Signed-off-by: Shwetha <shwethab@cisco.com>
7 years agoCandidate fix for race condition in building jvpp_common and jvpp_registry 11/3511/2
Ed Warnicke [Thu, 20 Oct 2016 16:47:54 +0000 (16:47 +0000)]
Candidate fix for race condition in building jvpp_common and jvpp_registry

Change-Id: I244c4e02befc8c4d30915b219abe36ab03c4291d
Signed-off-by: Ed Warnicke <hagbard@gmail.com>
7 years agovppinfra: add 256-bit vector typedefs 99/3499/1
Damjan Marion [Thu, 20 Oct 2016 09:08:03 +0000 (10:08 +0100)]
vppinfra: add 256-bit vector typedefs

Change-Id: Ic07c1c25f5ad99225209c73b5ff4deb9c52f3b1e
Signed-off-by: Damjan Marion <damarion@cisco.com>
7 years agoimprove java build process 86/3486/2
Klement Sekera [Wed, 19 Oct 2016 10:31:25 +0000 (12:31 +0200)]
improve java build process

Change-Id: Ia4c7503ee31fca74fa45da4ff883f3b80b42e85e
Signed-off-by: Klement Sekera <ksekera@cisco.com>
7 years agoFix coverity issues in jvpp (newlines + CompletableDumpFuture.ctxId) 22/3422/2
Marek Gradzki [Fri, 14 Oct 2016 09:45:00 +0000 (11:45 +0200)]
Fix coverity issues in jvpp (newlines + CompletableDumpFuture.ctxId)

Change-Id: I2931982ac1ae64313a6ab781212793620af24585
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
7 years agoDeprecate MPLSoGRE tunnels (VPP-502) 67/3467/6
Neale Ranns [Sun, 16 Oct 2016 19:01:42 +0000 (12:01 -0700)]
Deprecate MPLSoGRE tunnels (VPP-502)

Add shared memory APIs for MPLS routes and MPLS to IP prefix bindings.

Change-Id: I85b074a4dadc8249c410fdabd8ea019d20479cf8
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
7 years agoDO_NOT_MERGE: Update CSIT tests 161002 -> 161017 38/3438/4
pmikus [Mon, 17 Oct 2016 10:03:42 +0000 (11:03 +0100)]
DO_NOT_MERGE: Update CSIT tests 161002 -> 161017

- Update of CSIT operational branch with 16.04

Change-Id: I47346a5756e0944f29bee7760540912eb36081fa
Signed-off-by: pmikus <pmikus@cisco.com>
7 years agoFix test target build 17/3417/3
Peter Ginchev [Fri, 14 Oct 2016 07:23:37 +0000 (10:23 +0300)]
Fix test target build

Change-Id: Ib06b40292858f32df9c62e747808e0ef140bd9dd
Signed-off-by: Peter Ginchev <pginchev@cisco.com>
7 years agoUpdate tx and output node runtime when recycling interface 47/3447/3
Pierre Pfister [Mon, 17 Oct 2016 14:58:29 +0000 (15:58 +0100)]
Update tx and output node runtime when recycling interface

When an interface is removed, and another one is created,
the nodes from the previous interface are reused. The current
code fails when the new interface type differs from the original.
It is necessary to update the node runtime, in particular the
node function, and the node format function.

Jira: VPP-460

Change-Id: I2fc3c609e0173a7f62597230768669039853ab03
Signed-off-by: Pierre Pfister <ppfister@cisco.com>
7 years agoLoad-balancing in IP4 dual loop typos. (VPP-501) 69/3469/1
Neale Ranns [Tue, 18 Oct 2016 13:25:34 +0000 (14:25 +0100)]
Load-balancing in IP4 dual loop typos. (VPP-501)

Change-Id: I7b70d52d11c228ec5e790632a91b042b34b38d28
Signed-off-by: Neale Ranns <nranns@cisco.com>
7 years agoLoadBal: Use intrinsics and use protocol number 94/3394/3
Pierre Pfister [Thu, 13 Oct 2016 12:36:18 +0000 (13:36 +0100)]
LoadBal: Use intrinsics and use protocol number

This patch modifies the load balancer hash table such that
it uses vector operations.

It also fixes the hash computation logic such that the port
is only looked-up for TCP and UDP.
Some additional work is still needed for other types of traffic.

Change-Id: I788b4c782a9923d3792f3985f0580c0c81b3aad3
Signed-off-by: Pierre Pfister <ppfister@cisco.com>
7 years agoVPP-491: Update CLI Command documentation for "show ip fib" and "show ip6 fib". 54/3454/2
Billy McFall [Mon, 17 Oct 2016 15:35:32 +0000 (11:35 -0400)]
VPP-491: Update CLI Command documentation for "show ip fib" and "show ip6 fib".

Change-Id: I9d1d02ffbb3cdbe8c4a3f335ece40f3dcbd848a7
Signed-off-by: Billy McFall <bmcfall@redhat.com>
7 years agoSupport MPLSoGRE with the new FIB 2.0 31/3431/3
John Lo [Sat, 15 Oct 2016 21:45:35 +0000 (17:45 -0400)]
Support MPLSoGRE with the new FIB 2.0

Note that the new way to provision MPLSoGRE is using the "normal"
GRE tunnel such as in the following example:
  create gre tunnel src 10.0.3.1 dst 10.0.3.3
  set in state gre0 up
  set int ip addr gre0 10.0.4.1/30
  set int mpls gre0 enable
  ip route table 4 6.0.0.0/24 via 10.0.4.2 gre0 out-label 30
  mpls local-label add 30 eos ip4-lookup-in-table 4

The previous CLIs/APIs used to configure MPLSoGRE tunnel such as
"create mpls gre tunnel...", "mpls encap|decap add label .." and
"show mpls tunnel", etc. can not be used. They will be deprecated
in a later update to the VPP code base.

Change-Id: I244916841924dc2b87d2143691cd8476716c06b1
Signed-off-by: John Lo <loj@cisco.com>
7 years agooam: fix compilation with gcc6 41/3441/2
Damjan Marion [Mon, 17 Oct 2016 11:54:59 +0000 (13:54 +0200)]
oam: fix compilation with gcc6

gcc6 reports:

vpp/oam/oam.c:560:531: error: self-comparison always evaluates to true
[-Werror=tautological-compare]

Change-Id: I7a086099c14c6661d0c6b4cf0370631fc06bc23d
Signed-off-by: Damjan Marion <damarion@cisco.com>
7 years agostyle: fix VLIB_NODE_FUNCTION_MULTIARCH indent 40/3440/2
Damjan Marion [Mon, 17 Oct 2016 10:51:18 +0000 (12:51 +0200)]
style: fix VLIB_NODE_FUNCTION_MULTIARCH indent

Change-Id: I9c23ddbbd576e8c900ba82425572ed7a3c4f56e3
Signed-off-by: Damjan Marion <damarion@cisco.com>
7 years agoVPP-492: Fix ability to change mac address of the interface 19/3419/4
Pavel Kotucek [Fri, 14 Oct 2016 08:20:59 +0000 (10:20 +0200)]
VPP-492: Fix ability to change mac address of the interface

Fixed Coverity complaining about the clib_memcpy used in
/vnet/vnet/interface.c

Change-Id: I401f05aea1066d829abac1555021e1180b4a161e
Signed-off-by: Pavel Kotucek <pkotucek@cisco.com>
7 years agoVPP-488: Fix build errors, which uncovered IPv6 load balance lookup bug. 27/3427/2
Billy McFall [Fri, 14 Oct 2016 13:51:49 +0000 (09:51 -0400)]
VPP-488: Fix build errors, which uncovered IPv6 load balance lookup bug.

Change-Id: Id17fcb9154c5337908f29b7ce3a282b6a4b72d64
Signed-off-by: Billy McFall <bmcfall@redhat.com>
7 years agoVPP-490: vpp crash in show ip6 neighbor 28/3428/1
Billy McFall [Fri, 14 Oct 2016 14:45:49 +0000 (10:45 -0400)]
VPP-490: vpp crash in show ip6 neighbor

Change-Id: I003f95db85ce5085045c607f0b1daaefa792c910
Signed-off-by: Billy McFall <bmcfall@redhat.com>
7 years agoVPP-489: CLI Command "test lookup" crashes with invalid fib-index. 24/3424/2
Billy McFall [Fri, 14 Oct 2016 11:37:33 +0000 (07:37 -0400)]
VPP-489: CLI Command "test lookup" crashes with invalid fib-index.

Change-Id: If4c47b91e949483675cf569cd474b6c85fecef05
Signed-off-by: Billy McFall <bmcfall@redhat.com>
7 years agoFIB2.0: Adjacency complete pull model (VPP-487) 99/3399/4
Neale Ranns [Sat, 8 Oct 2016 12:03:40 +0000 (13:03 +0100)]
FIB2.0: Adjacency complete pull model (VPP-487)

Change the adjacency completion model to pull not push.

A complete adjacency has a rewirte string, an incomplete one does not. the re-write string for a peer comes either from a discovery protocol (i.e. ARP/ND) or can be directly derived from the link type (i.e. GRE tunnels). Which method it is, is interface type specific.
For each packet type sent on a link to a peer there is a corresponding adjacency. For example, if there is a peer 10.0.0.1 on Eth0 and we need to send to it IPv4 and MPLS packets, there will be two adjacencies; one for the IPv4 and one for the MPLS packets. The adjacencies are thus distinguished by the packets the carry, this is known as the adjacency's 'link-type'. It is not an L3 packet type, since the adjacency can have a link type of Ethernet (for L2 over GRE).
The discovery protocols are not aware of all the link types required - only the FIB is. the FIB will create adjacencies as and when they are required, and it is thus then desirable to 'pull' from the discovery protocol the re-write required. The alternative (that we have now) is that the discovery protocol pushes (i.e. creates) adjacencies for each link type - this creates more adjacencies than we need.
To pull, FIB now requests from the interface-type to 'complete' the adjacency. The interface can then delegate to the discovery protocol (on ethernet links) or directly build the re-write (i.e on GRE).

Change-Id: I61451789ae03f26b1012d8d6524007b769b6c6ee
Signed-off-by: Neale Ranns <nranns@cisco.com>
7 years agoAdd macro for sending large data structures to API clients 08/3408/1
Florin Coras [Thu, 13 Oct 2016 14:19:40 +0000 (16:19 +0200)]
Add macro for sending large data structures to API clients

Change-Id: I1c4ec4dd02ce5a16e33aa0908a606496ad0d64cc
Signed-off-by: Florin Coras <fcoras@cisco.com>
7 years agoadd xxx_or_null(...) message buffer allocation variants 07/3407/1
Dave Barach [Thu, 13 Oct 2016 21:35:09 +0000 (17:35 -0400)]
add xxx_or_null(...) message buffer allocation variants

Useful when attempting to serialize potentially very large data
structures and send them to API clients. NULL pointer checks are
MANDATORY when calling xxx_or_null(...) variant functions.

Change-Id: I6ae272deb7150a2c5aa82ec45a206e5bddee7a02
Signed-off-by: Dave Barach <dave@barachs.net>
7 years agofeature: rename vnet_ip_feature_* to vnet_feature_* 02/3402/2
Damjan Marion [Thu, 13 Oct 2016 12:10:10 +0000 (14:10 +0200)]
feature: rename vnet_ip_feature_* to vnet_feature_*

Change-Id: Idf68266f705b0455e5ab0ac73d23c7e0f4120d5b
Signed-off-by: Dave Barach <dave@barachs.net>
Signed-off-by: Damjan Marion <damarion@cisco.com>
7 years agoAdd clib_mem_alloc_or_null(...) 00/3400/1
Dave Barach [Thu, 13 Oct 2016 14:53:26 +0000 (10:53 -0400)]
Add clib_mem_alloc_or_null(...)

Change-Id: I5177d6d3349384beb551b4f2f52b30b044ce335b
Signed-off-by: Dave Barach <dave@barachs.net>
7 years agoVPP-286: Add CLI Command documentation via doxygen comments for vnet/vnet/ip. 93/3393/1
Billy McFall [Thu, 13 Oct 2016 12:27:31 +0000 (08:27 -0400)]
VPP-286: Add CLI Command documentation via doxygen comments for vnet/vnet/ip.

Change-Id: Ie1be9dc057d07c250852952ea159ed3c44c25f5f
Signed-off-by: Billy McFall <bmcfall@redhat.com>
7 years agovhost-user: Add reconnect support 90/3390/2
Damjan Marion [Thu, 13 Oct 2016 08:02:19 +0000 (10:02 +0200)]
vhost-user: Add reconnect support

QEMU 2.7 introduces reconnect support. However it doesn't send
last state of last_avail_idx in the SET_VRING_BASE.

With this patch we are overriding SET_VRING_BASE with value taken
from used->idx.

It is a bit hackish as it basically overrides SET_VRING_BASE
provided value but it should work in most of the cases.
This is what author of reconnect code is also suggesting in his post:

https://lists.gnu.org/archive/html/qemu-devel/2016-06/msg01495.html

Change-Id: I10e5f401c409d2989bf6c43eaea377800a9c76df
Signed-off-by: Damjan Marion <damarion@cisco.com>
7 years agoVPP-446: 1:1 SNAT Inside overlapping interfaces 94/3294/2
Matus Fabian [Thu, 6 Oct 2016 11:28:29 +0000 (04:28 -0700)]
VPP-446: 1:1 SNAT Inside overlapping interfaces

Change-Id: Idabf89bd27ee95769da16331a6bd1439497b2765
Signed-off-by: Matus Fabian <matfabia@cisco.com>
7 years agoVPP-453: SNAT delete and dump addresses 40/3240/3
Matus Fabian [Tue, 4 Oct 2016 10:23:43 +0000 (03:23 -0700)]
VPP-453: SNAT delete and dump addresses

Delete operation for SNAT addresses
Dump API for SNAT addresses

Change-Id: I84e888d20286ec2523fbd4ca7e68e3eef5927984
Signed-off-by: Matus Fabian <matfabia@cisco.com>
7 years agoVPP-483: Fixed IPSec tunnel interface 81/3381/2
Matus Fabian [Wed, 12 Oct 2016 13:23:58 +0000 (06:23 -0700)]
VPP-483: Fixed IPSec tunnel interface

Change-Id: I570f57218293a4824f83b38575eacdbe3da540d8
Signed-off-by: Matus Fabian <matfabia@cisco.com>
7 years agovpp_lite: add cpu pinning support (VPP-467) 32/3332/8
Pavel Kotucek [Fri, 7 Oct 2016 06:37:28 +0000 (08:37 +0200)]
vpp_lite: add cpu pinning support (VPP-467)

Proper cpu pinning in vpp_lite platform, like in normal vpp image.
Extended “show threads” command to show propper information.
Changed handling of coreID and socketID for threads in "show threads"
CLI, pthread_getaffinity is used instead of info stored in DPDK.

Change-Id: Ic8299ec5e284472bb10a37a95fadeed57b6edae8
Signed-off-by: Pavel Kotucek <pkotucek@cisco.com>
7 years agoFix coverity warnings, VPP-486 85/3385/1
Dave Barach [Wed, 12 Oct 2016 21:32:39 +0000 (17:32 -0400)]
Fix coverity warnings, VPP-486

Change-Id: I7a14d9a28514cdb49f65fab1b120b53239fed7e3
Signed-off-by: Dave Barach <dave@barachs.net>
7 years agoVPP-213: vnet classifier does not work for l3 ip4 rules 14/3214/5
Ole Troan [Fri, 30 Sep 2016 07:22:36 +0000 (09:22 +0200)]
VPP-213: vnet classifier does not work for l3 ip4 rules

The classifier was written with the assumption that next-indicies
of IP4 and IP6 IP_LOOKUP_NEXT nodes are equal. That's not true,
and this patch splits the classifier session for IP4 and IP6.

Change-Id: Id0368f17bb1d3f145b771d2dc283b56871264e99
Signed-off-by: Ole Troan <ot@cisco.com>
7 years agoCoverity warnings in new FIB code (VPP-484) 78/3378/3
Neale Ranns [Wed, 12 Oct 2016 12:51:05 +0000 (13:51 +0100)]
Coverity warnings in new FIB code (VPP-484)

Change-Id: Ie221e246dd8c6a1b3c76e7aa85924762d4397782
Signed-off-by: Neale Ranns <nranns@cisco.com>
7 years agoVPP-362 Implement dumping of LISP adjacencies 47/3147/9
Filip Tehlar [Fri, 23 Sep 2016 08:00:52 +0000 (10:00 +0200)]
VPP-362 Implement dumping of LISP adjacencies

Change-Id: Ieea56f3bf9e749878d9f2b35d39d9f7a9cdabde4
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
7 years agoRename ip_feature_init_cast(...) to vnet_feature_arc_init(...), VPP-481 61/3361/2
Dave Barach [Tue, 11 Oct 2016 20:16:02 +0000 (16:16 -0400)]
Rename ip_feature_init_cast(...) to vnet_feature_arc_init(...), VPP-481

Eliminate an unused parameter in vnet_feature_arc_init(...) which
eliminates a spurious relationship between feature arcs and ip.

Add doxygen tags for 2x debug CLI commands, and for
vnet_feature_arc_init(...)

Change-Id: If83589539bcbbbd4d85e84458dd7eb7eb08837a0
Signed-off-by: Dave Barach <dave@barachs.net>
7 years agoVPP-474 Revert "FIX sysctl configuration directory" 48/3348/2
Miroslav Miklus [Tue, 11 Oct 2016 11:35:26 +0000 (13:35 +0200)]
VPP-474 Revert "FIX sysctl configuration directory"

This reverts commit 822af5c95d080a58cda504228df4b5f3896e72b6.
Reason for revert is a bug in procps upstart script.

Change-Id: Ie9e501c9b52e65d8d0f31ce6600823021e89fb6f
Signed-off-by: Miroslav Miklus <mmiklus@cisco.com>
7 years agovppinfra: use crc32q instruction instead of xxhash in bihash_8_8 39/3339/3
Damjan Marion [Tue, 11 Oct 2016 07:53:12 +0000 (09:53 +0200)]
vppinfra: use crc32q instruction instead of xxhash in bihash_8_8

xxhash calculation takes 10 clock cycles on Haswell so it makes sense
to use crc32q insutrction when available.

Change-Id: Iab5e7d9c8ec0125626bbcd067e5dc30574c8febc
Signed-off-by: Damjan Marion <damarion@cisco.com>
7 years agoRebind kernel drivers on VPP uninstall 51/3351/2
Peter Ginchev [Tue, 11 Oct 2016 12:34:24 +0000 (15:34 +0300)]
Rebind kernel drivers on VPP uninstall

Change-Id: Icb0ce47134146c3a212b234f088c682982480128
Signed-off-by: Peter Ginchev <pginchev@cisco.com>
7 years agoTest: Add test case for Load Balancer plugin 20/3320/3
Pierre Pfister [Fri, 7 Oct 2016 15:31:57 +0000 (16:31 +0100)]
Test: Add test case for Load Balancer plugin

This adds a basic test for the four existing encap modes
for the load balancer plugin.
- ip4 over gre4
- ip4 over gre6
- ip6 over gre4
- ip6 over gre6

Apparently, scapy does not support GRE and IPv6 combinations.
Hence, those tests do send packets through VPP, but only
ip4 over gre4 output is actually parsed and verified.

Change-Id: I7cedb0f88fd0788ee51b1428ddf9cff7c037511f
Signed-off-by: Pierre Pfister <ppfister@cisco.com>
7 years agoipfix: add l4 unformat support for mask and match (VPP-204) 63/2263/13
Juraj Sloboda [Mon, 8 Aug 2016 06:46:45 +0000 (23:46 -0700)]
ipfix: add l4 unformat support for mask and match (VPP-204)

Change-Id: Iff32c488af9b71acbc4e572c6741afae0a67333c
Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>
7 years agoipfix: add classification nodes for flow statistics (VPP-204) 62/2262/13
Juraj Sloboda [Mon, 8 Aug 2016 06:45:24 +0000 (23:45 -0700)]
ipfix: add classification nodes for flow statistics (VPP-204)

In order to have meaningfull IPFIX implementation we should be able
to classify all packets flowing through vpp. But existing IPv4 and IPv6
classifier nodes are called only if destination IP address is local
to vpp. This commit adds new IPv4 and IPv6 classifier nodes that should
be used for collecting flow statistics.

Change-Id: I60e60105663ba15b5200862a23bb817047fe4d1a
Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>
7 years agoAdd signal handling 30/3330/5
Dave Barach [Sun, 9 Oct 2016 21:43:22 +0000 (17:43 -0400)]
Add signal handling

Please send SIGTERM to stop vpp_api_test, especially during
long-running operations such as a high-count asynchronous set of
ip_add_del_routes.

Otherwise, there's every chance that the data plane to vpp_api_test
message queue will fill and cause an easily-avoided deadlock.

Change-Id: I09309b445c354e1a692fed708dd5ea44d1ea9882
Signed-off-by: Dave Barach <dave@barachs.net>
7 years agoplatform: rewrote vppctl script to include history 40/3040/6
Padraig [Wed, 21 Sep 2016 13:59:02 +0000 (14:59 +0100)]
platform: rewrote vppctl script to include history

Added more ability to search history to vppctl shell
*Up and down keys give history
*Script now written in Python 2.7.6
*Contains all original functionality
*Added Python dependency for deb/rpms

Change-Id: I5088f7b018fce92b9b5411df0bffc34709810dec
Signed-off-by: Padraig Connolly <padraig.connolly@intel.com>
7 years agoFIB2.0: memory leaks during load-balance update (VPP-475) 16/3316/3
Neale Ranns [Fri, 7 Oct 2016 14:14:33 +0000 (15:14 +0100)]
FIB2.0: memory leaks during load-balance update (VPP-475)

some other fixes and enhancemets to address failures in the IPv6 Scale testing:
 - The rate at which VPP sends ARP/ND requests, 1 per-millisecond, is too high. This is reduced to 1 every 10 ms. probably still too high.
 - If an ARP/ND response is received that does not contain a change to the known MAC address, no further processing is done.
 - Added stats to get info about the async FIB walks.
 - When walking FIB entries and performing a load-balance update, it is not necessary to re-insert the LB in the forwarding table.

Change-Id: Ifd47e4bdbce94495f44aaf1b78e7d1395ed870d1
Signed-off-by: Neale Ranns <nranns@cisco.com>
7 years agoFix double free in af_packet api/cli 23/3323/3
Ivan Kelly [Fri, 7 Oct 2016 16:02:43 +0000 (18:02 +0200)]
Fix double free in af_packet api/cli

The api was allocating a vector for the name, passing it, then freeing
it, on create. The cli allocated, passed then forgot about it.

af_packet_create_if was storing a reference to the name, which in the
case of the api, meant it was referencing dead memory. On
af_packet_delete_if this reference was freed, so in the api case, there
was a double free.

Also, the cli for delete leaked the name.

Change-Id: I4d572bd2936eaf8ea7a0a8ff282e83ac2bf1b062
Signed-off-by: Ivan Kelly <ivan@midokura.com>
7 years agoHONEYCOMB-228 Snat plugin jvpp support 14/2314/21
Marek Gradzki [Tue, 9 Aug 2016 11:23:08 +0000 (13:23 +0200)]
HONEYCOMB-228 Snat plugin jvpp support

Change-Id: I5510a0ae3ecfeb5bd41c3a73e6e05465ebd96165
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
Signed-off-by: Maros Marsalek <mmarsale@cisco.com>
7 years agoTest Infra: Add plugin support 19/3319/2
Pierre Pfister [Fri, 7 Oct 2016 15:30:03 +0000 (16:30 +0100)]
Test Infra: Add plugin support

This patch adds plugin path to vpp commandline arguments
when 'make test' is run.
Hence, test cases can test plugins.

Change-Id: Ib90efa1f62e03b45b84533c49c7a5d040aa8cddf
Signed-off-by: Pierre Pfister <ppfister@cisco.com>
7 years agounicast RPF for FIB2.0 02/3302/5
Neale Ranns [Mon, 3 Oct 2016 12:05:48 +0000 (13:05 +0100)]
unicast RPF for FIB2.0

In a heirarchical FIB performing a unicast RPF check would require the traversal of the data-plane graph to seek out all the adjacency objects and then read those to find their interface. This is not efficient. Instead, for each path-list we construct a list of unique input interfaces and link this uRPF-list against the entry in the prefix table. In the data-plane the uRPF list can be retrieved from the load-balance lookup result and the RPF check is a simple and efficient walk across the minimal interface list. The uRPF-list is maintained as the routing heirarchy changes, in a similar way to the data-plane object graph.
We also provide a knob to allow an arbitrary prefix to pass the loose check.

Change-Id: Ie7c0ae3c4483ef467cfd5b136ee0315ff98ec15b
Signed-off-by: Neale Ranns <nranns@cisco.com>
7 years agoVPP-395 Add udp-punt node(s) and API 88/3288/5
Alexander Popovsky (apopovsk) [Thu, 6 Oct 2016 05:31:23 +0000 (22:31 -0700)]
VPP-395 Add udp-punt node(s) and API

Uses existing UDP local API in order to register
requested UDP port punt to the host.

CLI: set punt udp [del] <port>
API: punt protocol <l4-protocol> [ip <ver>] [port <l4-port>] [del]
* Only UDP (l4-protocol = 17) is supported at this time

Change-Id: I9232af1c891d1ed174d77f3e0dfe60c4b9d85e40
Signed-off-by: Alex Popovsky <apopovsk@cisco.com>
7 years agoVPP-466: PG pg_create_interface API returns wrong interface index 06/3306/3
Pavel Kotucek [Fri, 7 Oct 2016 06:38:45 +0000 (08:38 +0200)]
VPP-466: PG pg_create_interface API returns wrong interface index

Change-Id: Ife7b2907012a79e6893cfa7f2cf61c7a54865248
Signed-off-by: Pavel Kotucek <pkotucek@cisco.com>
7 years agoVPP-464: Fix IPSec-GRE tunnel input with FIB 2.0 08/3308/2
Matus Fabian [Fri, 7 Oct 2016 10:29:09 +0000 (03:29 -0700)]
VPP-464: Fix IPSec-GRE tunnel input with FIB 2.0

Change-Id: Ic29592d39f1d672cb6e7e32b4af6123683e022a7
Signed-off-by: Matus Fabian <matfabia@cisco.com>
7 years agoAdd some useful scripts 01/3301/1
Damjan Marion [Thu, 6 Oct 2016 14:53:32 +0000 (16:53 +0200)]
Add some useful scripts

Change-Id: Ic7ae9b43020ab4d26214bfab71b19ee259771c52
Signed-off-by: Damjan Marion <damarion@cisco.com>
7 years agoFix IP6 ND solicitation termination to allow link-local source IP 86/3286/2
John Lo [Wed, 5 Oct 2016 22:16:24 +0000 (18:16 -0400)]
Fix IP6 ND solicitation termination to allow link-local source IP

Move check for link-local source IP address for MAC/IP notification
only. Allow generation of response to IP6 ND solicitation request
if a match is found for target IP irrespective of source IP type.

Change-Id: Ib79d4b75fb4fe8aece625fd8cd26c8b9fc75ea47
Signed-off-by: John Lo <loj@cisco.com>
7 years agoFix sw_interface_set_unnumbered API for FIB2.0 87/3287/1
Igor Mikhailov (imichail) [Wed, 5 Oct 2016 22:58:35 +0000 (15:58 -0700)]
Fix sw_interface_set_unnumbered API for FIB2.0

ip[4|6]_sw_interface_enable_disable() should be called for
the unnumbered interface (and not on the interface with IP address)

Change-Id: Iffd347c539567c1302fa8136eea9c4e06b24d1bd
Signed-off-by: Igor Mikhailov (imichail) <imichail@cisco.com>
7 years agodon't require root privileges when running the tests 78/3278/2
Klement Sekera [Wed, 5 Oct 2016 12:05:33 +0000 (14:05 +0200)]
don't require root privileges when running the tests

Change-Id: Ib67bf1a898e3c1e4038698f1cb068ae9099d7921
Signed-off-by: Klement Sekera <ksekera@cisco.com>
7 years agoFix crash caused by "show trace" due to incorrect usage of IP adjacency. 83/3183/4
Vengada Govindan [Wed, 28 Sep 2016 09:45:57 +0000 (02:45 -0700)]
Fix crash caused by "show trace" due to incorrect usage of IP adjacency.

Change-Id: Ice0a6939b399eed150b0c58139b79dd4bed91113
Signed-off-by: Vengada Govindan <venggovi@cisco.com>
7 years agoFix LISP map-request resend deadlock 77/3277/3
Florin Coras [Wed, 5 Oct 2016 13:05:34 +0000 (16:05 +0300)]
Fix LISP map-request resend deadlock

Change-Id: I2cc57079741279669241b88d0317853e1312e8c5
Signed-off-by: Florin Coras <fcoras@cisco.com>
7 years agoVPP-339: SNAT static mapping 16/2516/10
Matus Fabian [Fri, 26 Aug 2016 12:45:27 +0000 (05:45 -0700)]
VPP-339: SNAT static mapping

1:1 NAT
1:1 NAT with ports
1:1 NAT static mapping only - add "static mapping only [connection tracking]"
                              to snat startup config

Change-Id: I37cd06a9d71d1943eb6618034d7c547c4a9348c4
Signed-off-by: Matus Fabian <matfabia@cisco.com>
7 years agoPython API: Add support for shared memory prefix 74/3274/3
Ole Troan [Wed, 5 Oct 2016 09:10:50 +0000 (11:10 +0200)]
Python API: Add support for shared memory prefix

Recheck.
This is to support multiple VPP instances on same host.

Change-Id: Ibe511b1f790fc8771900085577423f7e71dc45df
Signed-off-by: Ole Troan <ot@cisco.com>
7 years agoLoad Balancer: Use FIB 2.0 73/3273/2
Pierre Pfister [Wed, 5 Oct 2016 08:38:21 +0000 (09:38 +0100)]
Load Balancer: Use FIB 2.0

This patch fixes load balancer, which was not working
since FIB 2.0.

Two FIB DPO types are defined:
- One for IPv4 GRE
- One for IPv6 GRE

When an AS is created, the plugin automatically uses
the result from the FIB in order to transmit the packet.
Therefore, the packet does not need to visit ip-lookup twice.

The 'bypass' command was removed, as it is now done
automatically using this process.

Change-Id: Ib505ba31bfc67897eaff752821087821c360360a
Signed-off-by: Pierre Pfister <ppfister@cisco.com>
7 years agodpdk: fix issue in parsing startup.conf dpdk section 71/3271/2
Damjan Marion [Wed, 5 Oct 2016 07:50:38 +0000 (09:50 +0200)]
dpdk: fix issue in parsing startup.conf dpdk section

Change-Id: Ibbcce6f54bc76b8922b1c649278643c6294d13f9
Signed-off-by: Damjan Marion <damarion@cisco.com>
7 years agoFix mutex/condvar sleep when adding API msgs, VPP-461 65/3265/3
Dave Barach [Tue, 4 Oct 2016 20:53:56 +0000 (16:53 -0400)]
Fix mutex/condvar sleep when adding API msgs, VPP-461

Simply put, threads cannot sleep waiting for the vlib memory api main
input queue to drain. If, say, thread i (i !=0) fills the vlib api
main input queue with rpc requests - and then blocks trying to add
another request - the game is over.

RPCs attempt a barrier synchronization, which fails with Pr = {1.0}
because thread i is in a mutex/condvar sleep.

Add a main-thread cut-through path, which directly invokes the RPC
callback function when called on the main thread.

Change-Id: Ib036f0cc43b5738455c3a111cff64a132537152e
Signed-off-by: Dave Barach <dave@barachs.net>
7 years agoFix CLI 'set interface unnumbered' to work with FIB 2.0 67/3267/1
Igor Mikhailov (imichail) [Wed, 5 Oct 2016 03:09:41 +0000 (20:09 -0700)]
Fix CLI 'set interface unnumbered' to work with FIB 2.0

Commit of the patch from Neale Ranns

Change-Id: Ia0480ef56036dd0aec990c3892a93b99eb9fb893
Signed-off-by: Igor Mikhailov (imichail) <imichail@cisco.com>
7 years agoMinor tweaks to hqos doc 64/3264/2
Chris Luke [Tue, 4 Oct 2016 20:17:56 +0000 (16:17 -0400)]
Minor tweaks to hqos doc

- correct formatting errors
- add to user_doc tree
- unix line endings, not windows(!)

Change-Id: I9aa5511c398fc33ecb25fb33ae64c8e666c56dd8
Signed-off-by: Chris Luke <chrisy@flirble.org>
7 years agoFix LISP L2 fwd entry updates 50/3250/3
Florin Coras [Tue, 4 Oct 2016 15:03:49 +0000 (18:03 +0300)]
Fix LISP L2 fwd entry updates

Change-Id: I554041bf47aa82dd6f6e0563c68d8bbd3b18b255
Signed-off-by: Florin Coras <fcoras@cisco.com>
7 years agoVPP-355: add PBB (802.1ah) tag rewrite 20/2520/12
Pavel Kotucek [Fri, 26 Aug 2016 14:11:36 +0000 (16:11 +0200)]
VPP-355: add PBB (802.1ah) tag rewrite

- new API/CLI to define pbb tag rewrite on interface
- encapsulation/decapsulation of PBB tags
- tracing of PBB header
- PBB tag rewrite operations

Change-Id: I538b3025a8b2e41cdeed9f10fea94bbcd28b5f5f
Signed-off-by: Pavel Kotucek <pkotucek@cisco.com>
7 years agoUpdate CSIT tests 160925 -> 161002 49/3249/1
Jan [Tue, 4 Oct 2016 14:23:49 +0000 (16:23 +0200)]
Update CSIT tests 160925 -> 161002

- update of CSIT operational branch to be used for VPP-patch test

Change-Id: I45f35e14e162bc1e8c69bd632f8813dde9f8270b
Signed-off-by: Jan Gelety <jgelety@cisco.com>
7 years agotest: new test infrastructure 37/3237/2
Damjan Marion [Mon, 3 Oct 2016 17:44:57 +0000 (19:44 +0200)]
test: new test infrastructure

Change-Id: I73ca19c431743f6b39669c583d9222a6559346ef
Signed-off-by: Jan Gelety <jgelety@cisco.com>
Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>
Signed-off-by: Stefan Kobza <skobza@cisco.com>
Signed-off-by: Matej Klotton <mklotton@cisco.com>
Signed-off-by: Maciek Konstantynowicz <mkonstan@cisco.com>
Signed-off-by: Damjan Marion <damarion@cisco.com>
7 years agoFIB Memory Usage Diagnostics 35/3235/3
Neale Ranns [Sun, 2 Oct 2016 20:20:15 +0000 (21:20 +0100)]
FIB Memory Usage Diagnostics

add two new CLI commands:
 show fib memory
 show dpo memory
to display the memory usage of the FIB and DPO object types respectively.

Change-Id: I759e149a0b6fbb58d59c139362221dc33531cffa
Signed-off-by: Neale Ranns <nranns@cisco.com>
7 years agovhost-user: avoid branching during prefetch 36/3236/2
Damjan Marion [Mon, 3 Oct 2016 15:44:24 +0000 (17:44 +0200)]
vhost-user: avoid branching during prefetch

Change-Id: I1f4421289b2f93b64a2470559d834717ef40e181
Signed-off-by: Damjan Marion <damarion@cisco.com>
7 years agovhost: predict map_guest_mem returns similar results over time 20/3020/6
Pierre Pfister [Wed, 21 Sep 2016 07:08:55 +0000 (08:08 +0100)]
vhost: predict map_guest_mem returns similar results over time

It is very likely that all packets are being stored in the same
memory area.
It is also likely that all indirect descriptors are being
allocated from the same area.

This patch takes this into account by predicting the value
returned by map_guest_mem will be the same as the previous one.
It falls back to slow mode otherwise.

Change-Id: Ic1044a172fc4abe77387ba2e19e11cd1f39ad1e3
Signed-off-by: Pierre Pfister <ppfister@cisco.com>
7 years agoFix string parsing in lisp map-request itr-rlocs command 31/3231/2
Filip Tehlar [Mon, 3 Oct 2016 12:08:59 +0000 (14:08 +0200)]
Fix string parsing in lisp map-request itr-rlocs command

Change-Id: Ie17b324492d61130690ba9d05821eaefe10072d4
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
7 years agoL2 over LISP and GRE (VPP-457) 27/3227/2
Neale Ranns [Mon, 3 Oct 2016 08:40:25 +0000 (09:40 +0100)]
L2 over LISP and GRE (VPP-457)

Change-Id: I0d7f9c7f41a9f9e0acb0950adedb90d45df08c2a
Signed-off-by: Neale Ranns <nranns@cisco.com>
7 years agoRemove old test files 26/3226/2
Damjan Marion [Fri, 30 Sep 2016 16:10:26 +0000 (18:10 +0200)]
Remove old test files

Make space for upcoming test framework.

Change-Id: I14da6cf95c645d8ee2b71579a658dc7ef3b9f027
Signed-off-by: Damjan Marion <damarion@cisco.com>
7 years ago(VPP-455) arp doesn't work when ip4 classifier configured with fib 2.0 28/3228/1
Neale Ranns [Sun, 2 Oct 2016 15:39:06 +0000 (16:39 +0100)]
(VPP-455) arp doesn't work when ip4 classifier configured with fib 2.0

Change-Id: I046de0c00db75d25ed90e33e9910c9dd0ff95580
Signed-off-by: Neale Ranns <nranns@cisco.com>
7 years agoVPP-363: add ability to change mac address of the interface 48/2548/8
Pavel Kotucek [Mon, 26 Sep 2016 08:40:02 +0000 (10:40 +0200)]
VPP-363: add ability to change mac address of the interface

Added ability to change interface address.
Added new CLI and API functions.

Change-Id: Ia336bc75ad8c5858c26f39af851485c4c6f19f58
Signed-off-by: Pavel Kotucek <pkotucek@cisco.com>
7 years agoFix double-free crash 25/3225/1
David Hotham [Fri, 30 Sep 2016 15:32:18 +0000 (16:32 +0100)]
Fix double-free crash

loop0 interfaces were transmitting the same packets multiple times,
eventually causing them to be freed multiple times

Change-Id: I32fcf5cfa10e58bb9e9bbbbc1b9312518d00ee9f
Signed-off-by: David Hotham <david.hotham@metaswitch.com>