summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2016-10-15VPP-488: Fix build errors, which uncovered IPv6 load balance lookup bug.Billy McFall12-35/+74
Change-Id: Id17fcb9154c5337908f29b7ce3a282b6a4b72d64 Signed-off-by: Billy McFall <bmcfall@redhat.com>
2016-10-14VPP-490: vpp crash in show ip6 neighborBilly McFall1-8/+11
Change-Id: I003f95db85ce5085045c607f0b1daaefa792c910 Signed-off-by: Billy McFall <bmcfall@redhat.com>
2016-10-14VPP-489: CLI Command "test lookup" crashes with invalid fib-index.Billy McFall1-1/+8
Change-Id: If4c47b91e949483675cf569cd474b6c85fecef05 Signed-off-by: Billy McFall <bmcfall@redhat.com>
2016-10-14FIB2.0: Adjacency complete pull model (VPP-487)Neale Ranns54-1525/+1971
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>
2016-10-14Add macro for sending large data structures to API clientsFlorin Coras1-3/+18
Change-Id: I1c4ec4dd02ce5a16e33aa0908a606496ad0d64cc Signed-off-by: Florin Coras <fcoras@cisco.com>
2016-10-13add xxx_or_null(...) message buffer allocation variantsDave Barach2-6/+39
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>
2016-10-13feature: rename vnet_ip_feature_* to vnet_feature_*Damjan Marion8-54/+54
Change-Id: Idf68266f705b0455e5ab0ac73d23c7e0f4120d5b Signed-off-by: Dave Barach <dave@barachs.net> Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-10-13Add clib_mem_alloc_or_null(...)Dave Barach4-12/+36
Change-Id: I5177d6d3349384beb551b4f2f52b30b044ce335b Signed-off-by: Dave Barach <dave@barachs.net>
2016-10-13VPP-286: Add CLI Command documentation via doxygen comments for vnet/vnet/ip.Billy McFall14-164/+1105
Change-Id: Ie1be9dc057d07c250852952ea159ed3c44c25f5f Signed-off-by: Billy McFall <bmcfall@redhat.com>
2016-10-13vhost-user: Add reconnect supportDamjan Marion1-0/+1
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>
2016-10-13VPP-446: 1:1 SNAT Inside overlapping interfacesMatus Fabian4-18/+32
Change-Id: Idabf89bd27ee95769da16331a6bd1439497b2765 Signed-off-by: Matus Fabian <matfabia@cisco.com>
2016-10-13VPP-453: SNAT delete and dump addressesMatus Fabian3-26/+243
Delete operation for SNAT addresses Dump API for SNAT addresses Change-Id: I84e888d20286ec2523fbd4ca7e68e3eef5927984 Signed-off-by: Matus Fabian <matfabia@cisco.com>
2016-10-13VPP-483: Fixed IPSec tunnel interfaceMatus Fabian1-1/+10
Change-Id: I570f57218293a4824f83b38575eacdbe3da540d8 Signed-off-by: Matus Fabian <matfabia@cisco.com>
2016-10-13vpp_lite: add cpu pinning support (VPP-467)Pavel Kotucek8-38/+86
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>
2016-10-12Fix coverity warnings, VPP-486Dave Barach4-4/+11
Change-Id: I7a14d9a28514cdb49f65fab1b120b53239fed7e3 Signed-off-by: Dave Barach <dave@barachs.net>
2016-10-12VPP-213: vnet classifier does not work for l3 ip4 rulesOle Troan1-26/+34
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>
2016-10-12Coverity warnings in new FIB code (VPP-484)Neale Ranns9-7/+27
Change-Id: Ie221e246dd8c6a1b3c76e7aa85924762d4397782 Signed-off-by: Neale Ranns <nranns@cisco.com>
2016-10-12VPP-362 Implement dumping of LISP adjacenciesFilip Tehlar10-5/+364
Change-Id: Ieea56f3bf9e749878d9f2b35d39d9f7a9cdabde4 Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-10-11Rename ip_feature_init_cast(...) to vnet_feature_arc_init(...), VPP-481Dave Barach9-306/+341
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>
2016-10-11VPP-474 Revert "FIX sysctl configuration directory"Miroslav Miklus2-4/+4
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>
2016-10-11vppinfra: use crc32q instruction instead of xxhash in bihash_8_8Damjan Marion2-0/+11
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>
2016-10-11Rebind kernel drivers on VPP uninstallPeter Ginchev2-1/+46
Change-Id: Icb0ce47134146c3a212b234f088c682982480128 Signed-off-by: Peter Ginchev <pginchev@cisco.com>
2016-10-10Test: Add test case for Load Balancer pluginPierre Pfister3-3/+223
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>
2016-10-10ipfix: add l4 unformat support for mask and match (VPP-204)Juraj Sloboda3-18/+402
Change-Id: Iff32c488af9b71acbc4e572c6741afae0a67333c Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>
2016-10-10ipfix: add classification nodes for flow statistics (VPP-204)Juraj Sloboda13-6/+955
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>
2016-10-10Add signal handlingDave Barach3-1/+78
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>
2016-10-10platform: rewrote vppctl script to include historyPadraig3-32/+98
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>
2016-10-10FIB2.0: memory leaks during load-balance update (VPP-475)Neale Ranns13-334/+659
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>
2016-10-10Fix double free in af_packet api/cliIvan Kelly2-3/+7
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>
2016-10-10HONEYCOMB-228 Snat plugin jvpp supportMarek Gradzki7-1/+307
Change-Id: I5510a0ae3ecfeb5bd41c3a73e6e05465ebd96165 Signed-off-by: Marek Gradzki <mgradzki@cisco.com> Signed-off-by: Maros Marsalek <mmarsale@cisco.com>
2016-10-07Test Infra: Add plugin supportPierre Pfister2-2/+7
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>
2016-10-07unicast RPF for FIB2.0Neale Ranns23-223/+1245
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>
2016-10-07VPP-395 Add udp-punt node(s) and APIAlexander Popovsky (apopovsk)9-13/+505
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>
2016-10-07VPP-466: PG pg_create_interface API returns wrong interface indexPavel Kotucek1-2/+3
Change-Id: Ife7b2907012a79e6893cfa7f2cf61c7a54865248 Signed-off-by: Pavel Kotucek <pkotucek@cisco.com>
2016-10-07VPP-464: Fix IPSec-GRE tunnel input with FIB 2.0Matus Fabian2-0/+10
Change-Id: Ic29592d39f1d672cb6e7e32b4af6123683e022a7 Signed-off-by: Matus Fabian <matfabia@cisco.com>
2016-10-06Add some useful scriptsDamjan Marion3-0/+133
Change-Id: Ic7ae9b43020ab4d26214bfab71b19ee259771c52 Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-10-06Fix IP6 ND solicitation termination to allow link-local source IPJohn Lo2-5/+3
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>
2016-10-05Fix sw_interface_set_unnumbered API for FIB2.0Igor Mikhailov (imichail)1-4/+4
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>
2016-10-05don't require root privileges when running the testsKlement Sekera2-3/+3
Change-Id: Ib67bf1a898e3c1e4038698f1cb068ae9099d7921 Signed-off-by: Klement Sekera <ksekera@cisco.com>
2016-10-05Fix crash caused by "show trace" due to incorrect usage of IP adjacency.Vengada Govindan1-9/+9
Change-Id: Ice0a6939b399eed150b0c58139b79dd4bed91113 Signed-off-by: Vengada Govindan <venggovi@cisco.com>
2016-10-05Fix LISP map-request resend deadlockFlorin Coras1-4/+7
Change-Id: I2cc57079741279669241b88d0317853e1312e8c5 Signed-off-by: Florin Coras <fcoras@cisco.com>
2016-10-05VPP-339: SNAT static mappingMatus Fabian6-155/+2017
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>
2016-10-05Python API: Add support for shared memory prefixOle Troan5-9/+16
Recheck. This is to support multiple VPP instances on same host. Change-Id: Ibe511b1f790fc8771900085577423f7e71dc45df Signed-off-by: Ole Troan <ot@cisco.com>
2016-10-05Load Balancer: Use FIB 2.0Pierre Pfister4-402/+358
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>
2016-10-05dpdk: fix issue in parsing startup.conf dpdk sectionDamjan Marion1-1/+1
Change-Id: Ibbcce6f54bc76b8922b1c649278643c6294d13f9 Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-10-05Fix mutex/condvar sleep when adding API msgs, VPP-461Dave Barach1-2/+39
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>
2016-10-04Fix CLI 'set interface unnumbered' to work with FIB 2.0Igor Mikhailov (imichail)1-0/+4
Commit of the patch from Neale Ranns Change-Id: Ia0480ef56036dd0aec990c3892a93b99eb9fb893 Signed-off-by: Igor Mikhailov (imichail) <imichail@cisco.com>
2016-10-04Minor tweaks to hqos docChris Luke2-290/+408
- correct formatting errors - add to user_doc tree - unix line endings, not windows(!) Change-Id: I9aa5511c398fc33ecb25fb33ae64c8e666c56dd8 Signed-off-by: Chris Luke <chrisy@flirble.org>
2016-10-04Fix LISP L2 fwd entry updatesFlorin Coras1-7/+10
Change-Id: I554041bf47aa82dd6f6e0563c68d8bbd3b18b255 Signed-off-by: Florin Coras <fcoras@cisco.com>
2016-10-04VPP-355: add PBB (802.1ah) tag rewritePavel Kotucek12-108/+697
- 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>