summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
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>
2016-10-04Update CSIT tests 160925 -> 161002Jan1-1/+1
- update of CSIT operational branch to be used for VPP-patch test Change-Id: I45f35e14e162bc1e8c69bd632f8813dde9f8270b Signed-off-by: Jan Gelety <jgelety@cisco.com>
2016-10-03test: new test infrastructureDamjan Marion14-0/+2436
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>
2016-10-03FIB Memory Usage DiagnosticsNeale Ranns27-387/+333
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>
2016-10-03vhost-user: avoid branching during prefetchDamjan Marion1-5/+2
Change-Id: I1f4421289b2f93b64a2470559d834717ef40e181 Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-10-03vhost: predict map_guest_mem returns similar results over timePierre Pfister1-13/+44
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>
2016-10-03Fix string parsing in lisp map-request itr-rlocs commandFilip Tehlar1-1/+1
Change-Id: Ie17b324492d61130690ba9d05821eaefe10072d4 Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-10-03L2 over LISP and GRE (VPP-457)Neale Ranns57-2423/+3800
Change-Id: I0d7f9c7f41a9f9e0acb0950adedb90d45df08c2a Signed-off-by: Neale Ranns <nranns@cisco.com>
2016-10-03Remove old test filesDamjan Marion20-712/+0
Make space for upcoming test framework. Change-Id: I14da6cf95c645d8ee2b71579a658dc7ef3b9f027 Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-10-03(VPP-455) arp doesn't work when ip4 classifier configured with fib 2.0Neale Ranns7-6/+160
Change-Id: I046de0c00db75d25ed90e33e9910c9dd0ff95580 Signed-off-by: Neale Ranns <nranns@cisco.com>
2016-09-30VPP-363: add ability to change mac address of the interfacePavel Kotucek9-0/+179
Added ability to change interface address. Added new CLI and API functions. Change-Id: Ia336bc75ad8c5858c26f39af851485c4c6f19f58 Signed-off-by: Pavel Kotucek <pkotucek@cisco.com>
2016-09-30Fix double-free crashDavid Hotham1-0/+1
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>
2016-09-30Remove RPM package dependency on vpp-develJohn DeNisco1-1/+1
Change-Id: Ie6e1b3c8c2e0cf64f06aafe13a693686fd4b486a Signed-off-by: John DeNisco <jdenisco@cisco.com>
2016-09-30VPP-454 Fix LISP GID dictionary issueFilip Tehlar2-7/+54
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>
2016-09-30vat: add pg interfaces to sw_interface_dump (VPP-451)Damjan Marion1-0/+5
Change-Id: I976a44dcfb32b1132c14363174239333315b2c6f Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-09-30VPP-450 Fix adding LISP adjacencies via CLIFilip Tehlar6-125/+103
Change-Id: If90c9c630629e727fffc5d450516045a04433661 Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-09-30VPP-120: include custom types to Python representation of vpe.apiMarek Gradzki4-22/+44
Change-Id: Ide97a8bf55d3baf41a1e86af2c67c6b7b26b657a Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2016-09-29VPP-378: rename jvpp package to the same as groupId of deployed jarsMarek Gradzki44-224/+224
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>
2016-09-28DPDK HQoS: Enable Hierarchical Scheduler in VPPJasvinder Singh12-6/+2448
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>
2016-09-28Fix packet trace for IP4/IP6 lookup/forwarding nodesJohn Lo2-11/+8
Change-Id: Ibf3d2e69dbac28fbef77d8ba20d7f5a60eea0198 Signed-off-by: John Lo <loj@cisco.com>
2016-09-27classify: fix issue with output classify node using wrong sw_if_indexChristophe Fontaine1-6/+6
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>
2016-09-27arp: handle ARP proxy after tunnellingDavid Hotham1-3/+4
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>
2016-09-27Fix RPM packaging dependenciesJohn DeNisco1-1/+1
Change-Id: Ife1523e11b7225ea0fd41c06c3b802bb171e91f4 Signed-off-by: John DeNisco <jdenisco@cisco.com>
2016-09-27VPP-308: Added workaround for failed vnet build. For some reasonThomas F Herbert1-0/+1
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>
2016-09-27Fix hugepage detection issueDamjan Marion3-40/+40
Per-numa free hugepages number was not read correctly due to wrong sysfs path. Change-Id: I889111027d7f93c42e2e4673d8d4e8f75ae065b6 Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-09-27Scheduler policy & priority config, few minor fixes (VPP-425)Pavel Kotucek3-20/+31
- scheduler-prio -> scheduler-priority - improve formatting of "show threads" output - add description to "startup.conf" - bail out of priority is set without rr or fifo policy Change-Id: Idf897f7603d989d6c2d0093eea89c5d1653eaa8c Signed-off-by: Pavel Kotucek <pkotucek@cisco.com>
2016-09-27Fix missing output in generated CLI/configChris Luke3-7/+8
The templates were looking for the name of the CLI_COMMAND and CONFIG_FUNCTION structures in the srong place. Change-Id: I709d6716216173ba6a7ed41a260728238f96d2db Signed-off-by: Chris Luke <chrisy@flirble.org>
2016-09-27FIX sysctl configuration directoryMiroslav Miklus2-4/+4
man sysctl.d: ... Packages should install their configuration files in /usr/lib/. Files in /etc/ are reserved for the local administrator, who may use this logic to override the configuration files installed by vendor packages. All configuration files are sorted by their filename in lexicographic order, regardless of which of the directories they reside in. If multiple files specify the same option, the entry in the file with the lexicographically latest name will take precedence. It is recommended to prefix all filenames with a two-digit number and a dash, to simplify the ordering of the files. If the administrator wants to disable a configuration file supplied by the vendor, the recommended way is to place a symlink to /dev/null in the configuration directory in /etc/, with the same filename as the vendor configuration file. ... Change-Id: I24b8b7fddf64ec287282ae195e07c9592c494ebe Signed-off-by: Miroslav Miklus <mmiklus@cisco.com>