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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
John DeNisco [Fri, 30 Sep 2016 12:33:40 +0000 (08:33 -0400)]
Remove RPM package dependency on vpp-devel
Change-Id: Ie6e1b3c8c2e0cf64f06aafe13a693686fd4b486a
Signed-off-by: John DeNisco <jdenisco@cisco.com>
Filip Tehlar [Fri, 30 Sep 2016 10:47:59 +0000 (12:47 +0200)]
VPP-454 Fix LISP GID dictionary issue
GID dictionary IP prefix entries are rewritten with more narrow one
which is not desirable. This patch does exact matching instead of
longest prefix matching.
Change-Id: I0191e23229a69ffe86f82ea4d71e4a5534dbb5b0
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Damjan Marion [Fri, 30 Sep 2016 08:53:30 +0000 (10:53 +0200)]
vat: add pg interfaces to sw_interface_dump (VPP-451)
Change-Id: I976a44dcfb32b1132c14363174239333315b2c6f
Signed-off-by: Damjan Marion <damarion@cisco.com>
Filip Tehlar [Wed, 28 Sep 2016 12:27:59 +0000 (14:27 +0200)]
VPP-450 Fix adding LISP adjacencies via CLI
Change-Id: If90c9c630629e727fffc5d450516045a04433661
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Marek Gradzki [Thu, 29 Sep 2016 11:20:52 +0000 (13:20 +0200)]
VPP-120: include custom types to Python representation of vpe.api
Change-Id: Ide97a8bf55d3baf41a1e86af2c67c6b7b26b657a
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
Marek Gradzki [Wed, 28 Sep 2016 08:12:04 +0000 (10:12 +0200)]
VPP-378: rename jvpp package to the same as groupId of deployed jars
Related changes:
- NSH: https://gerrit.fd.io/r/#/c/3181/
- Honeycomb: https://gerrit.fd.io/r/#/c/3182
Change-Id: Ifdd6b8b575916fdf99794618dbe604c2e17e8e82
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
Jasvinder Singh [Thu, 21 Jul 2016 16:02:19 +0000 (17:02 +0100)]
DPDK HQoS: Enable Hierarchical Scheduler in VPP
This commit extends the vpp framework with new thread type "hqos-threads" that
runs the Hierarchical Quality of Service (HQoS) scheduler associted with output
interface. HQoS Scheduler prioritize the packets from different users and
ensures sufficient bandwidth to pass the more important traffic.
At high level, HQoS scheduler is a buffer that can temporarily store a
large number of packets. In otherwords, it is a collection of large number
of queues organized into hierarchy of 5 levels; the port (i.e. the physical
interface) is at the root of the hierarchy followed by the subport (a set
of users), the pipes (individual users), the traffic classes (each with a
strict priority) and at the leaves, the queues.
In each HQoS scheduler, three operations are performed; classification
(setting HQoS port, subport, pipe, traffic class and queue within traffic
class from packet fields), enqueue (selecting HQoS queue for the packet,
and to drop the packet if the queue is full) and dequeue (schedule the
packet based on its length and available credits, and handover the scheduled
packet to the output interface).
In vpp, the number of hqos threads will be equal to cpu cores specified in
corelist-hqos-threads parameter cpu section of the vpp configuration file.
One hqos thread can run HQoS for multiple output interfaces. A particular HQoS
instance is initialised with default parameters required to configure hqos port,
subport, pipe and queues. Some of them can be re-configured in run-time
through CLI commands as well binary APIs.
Following illustrates the sample startup configuration file with 4x worker
threads feeding 2x hqos threads that handle each HQoS for 1x output interface.
For more details on HQoS configuration please refer to DPDK Programmer's Guide.
dpdk {
socket-mem 16384,16384
dev 0000:02:00.0 {
num-rx-queues 2
hqos
}
dev 0000:06:00.0 {
num-rx-queues 2
hqos
}
num-mbufs
1000000
}
cpu {
main-core 0
corelist-workers 1, 2, 3, 4
corelist-hqos-threads 5, 6
}
Change-Id: I635c3395a7c4ddf0a239ef77b0b0a31a6dfc4767
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
John Lo [Tue, 27 Sep 2016 21:44:02 +0000 (17:44 -0400)]
Fix packet trace for IP4/IP6 lookup/forwarding nodes
Change-Id: Ibf3d2e69dbac28fbef77d8ba20d7f5a60eea0198
Signed-off-by: John Lo <loj@cisco.com>
Christophe Fontaine [Fri, 9 Sep 2016 14:18:43 +0000 (16:18 +0200)]
classify: fix issue with output classify node using wrong sw_if_index
Output classify node should use sw_if_index[VLIB_TX]
Like in l2_output.c, we have to use sw_if_index[VLIB_TX]
to get the appropriate configuration.
Change-Id: I96b1a03ddf5c9e9c45fa3f5df3ea88895ed4345e
Signed-off-by: Christophe Fontaine <christophe.fontaine@qosmos.com>
David Hotham [Tue, 20 Sep 2016 13:34:00 +0000 (13:34 +0000)]
arp: handle ARP proxy after tunnelling
Only rewind the buffer back to the start of the ethernet header,
rather than all the way. We don't want to undo earlier
decapsulation.
Change-Id: I5f4b183eb3e8df690695ce3a97e55f3b0579a266
Signed-off-by: David Hotham <david.hotham@metaswitch.com>
John DeNisco [Tue, 27 Sep 2016 20:43:04 +0000 (16:43 -0400)]
Fix RPM packaging dependencies
Change-Id: Ife1523e11b7225ea0fd41c06c3b802bb171e91f4
Signed-off-by: John DeNisco <jdenisco@cisco.com>
Thomas F Herbert [Mon, 1 Aug 2016 22:33:48 +0000 (18:33 -0400)]
VPP-308: Added workaround for failed vnet build. For some reason
the clock slew is greater with Vagrant 1.8.5 which causes Makefile.am to be
timestamped as newer which causes builds to fail.
Change-Id: Id0d35c41ac66a2841c5aae20dd678f4bc125e41b
Signed-off-by: Thomas F Herbert <therbert@redhat.com>