aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2017-06-02Fix mac_age process crash in multi-threaded environmentSteve Shin1-2/+1
VPP crash is observed when MAC aging is enabled with multi-threaded mode. If a thread other-than-zero expands the working_copies vector, working_copy_lengths should be initialized with vec_validate_init_empty(..., -1) to fill -1 across lower-numbered working_copy_lengths vector element. Change-Id: I60959fc6511306b33acae323df9c6898fc6c50ce Signed-off-by: Steve Shin <jonshin@cisco.com>
2017-06-02memif: fix coverity warningsSteven1-0/+2
Check -1 for return from read prior to using the data Change-Id: Ibab7309244de488737ea7938b334fab495bf855d Signed-off-by: Steven <sluong@cisco.com>
2017-06-02Add option to build sample plugin in top-level makefileDamjan Marion1-12/+23
Change-Id: Ibf15eeb5fef2a3761089e6386783a1606d2e2b79 Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-06-02Add debian 8 support in extras/vagrant/build.shkhers1-0/+9
Change-Id: I03f73615f4355163afd9fb5062dcea7c2df5a49a Signed-off-by: khers <s3m2e1.6star@gmail.com>
2017-06-02Update CSIT tests 170518 -> 170529Peter Mikus1-1/+1
Change-Id: I33de2948019683961b5ab576db2c3303c8d2bd5e Signed-off-by: Peter Mikus <pmikus@cisco.com>
2017-06-02vhost: add debug vhost-user on | off CLISteven2-20/+59
Add runtime debug vhost-user on | off CLI to facilitate troubleshooting. This feature is needed to avoid recompiling the code to debug vhost issues. The debugging messages should not be on the data path to avoid performance hit. Change-Id: I4c40f65dbb222557cba3fb8706fa3b7b62eec95f Signed-off-by: Steven <sluong@cisco.com>
2017-06-02Add l3 routing for GTP-U decapHongjun Ni10-14/+25
Change-Id: Ic3c8cd58cb2b02622299cf74c9efcabd2ef2b513 Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
2017-06-01Fix 'ip probe' on /32Neale Ranns3-44/+48
Change-Id: Ib874ad93357500b2c425d75cf48834264b2183fc Signed-off-by: Neale Ranns <nranns@cisco.com>
2017-06-01MPLS trace the EOS bit correctlyNeale Ranns1-1/+2
Change-Id: I6c3fd612c19d9305f48ae0e429e12e96679e3b29 Signed-off-by: Neale Ranns <nranns@cisco.com>
2017-06-01Support to install dependencies on openSUSE distributionMarco Varlese1-1/+7
This patch allows to use the "make install-dep" on openSUSE. Change-Id: Ib0586ffebbf882032468e4f4c0df2d5d8e99d7c9 Signed-off-by: Marco Varlese <marco.varlese@suse.com>
2017-06-01IP Mcast - recalculate on interface up/dowmNeale Ranns4-78/+115
Change-Id: Ie5b88fd7187ed62218a2e4e0e493c33e3e9ecc2f Signed-off-by: Neale Ranns <nranns@cisco.com>
2017-06-01Improve fifo allocator performanceDave Barach21-265/+534
- add option to preallocate fifos in a segment - track active fifos with doubly linked list instead of vector - update udp redirect test code to read fifo pointers from API call instead of digging them up from fifo segment header - input-node based active-open session generator Change-Id: I804b81e99d95f8690d17e12660c6645995e28a9a Signed-off-by: Dave Barach <dave@barachs.net> Signed-off-by: Florin Coras <fcoras@cisco.com> Signed-off-by: Dave Barach <dbarach@cisco.com>
2017-06-01make test: add suddenly missing dependency (six module)Klement Sekera1-1/+1
Change-Id: I121eaee6b752a6b3bfe1d5ecf803f67147c77beb Signed-off-by: Klement Sekera <ksekera@cisco.com>
2017-05-31Revert "dpdk: build sw cryptodev support with make verify"Peter Mikus2-16/+9
This reverts commit 0e2e10b77d63196bfb93ae5be1251bbc1a1b561a. Change-Id: I3c1737f391b6ed127f92416f06449216e79859bb Signed-off-by: Peter Mikus <pmikus@cisco.com>
2017-05-31memif: multi-queues supportSteven7-73/+167
- Add rx-queues and tx-queues option to the create memif CLI - Add vlib_worker_thread_barrier_sync () to memif_conn_fd_read_ready () as the latter function may disconnect the ring and clean up the shared memory. - On transmit, write the rid (queue number) to the socket. - On receive, read the rid and trigger the interrupt for the corresponding thread. Change-Id: If1c7e26c7124174678f047909cbc33e931eaac8c Signed-off-by: Steven <sluong@cisco.com>
2017-05-31Revert "Update CSIT tests 170518 -> 170529"Dave Wallace1-1/+1
This reverts commit 9757325c52c223d85abfad834b071077365d4808. Change-Id: I3bee0fe7d48be723334f2bd9fffd3240658b9e71 Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2017-05-30Flowprobe: Stateful flows and IPv6, L4 recordingOle Troan29-2106/+3417
Change-Id: I67839281623721bf42f0a918a53356143d9dc78a Signed-off-by: Ole Troan <ot@cisco.com> Signed-off-by: Pavel Kotucek <pkotucek@cisco.com> Signed-off-by: Ole Troan <ot@cisco.com>
2017-05-30dpdk: build sw cryptodev support with make verifySergio Gonzalez Monroy2-9/+16
Change-Id: Ica95b5d3d44563c93c89b2a3233171c3aa1f048d Signed-off-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
2017-05-30LISP: L2 ARP handlingFilip Tehlar10-36/+833
Change-Id: I1ec328cda73f7eaf7867cd8a2a17852ee0cd23f1 Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2017-05-29Relocate Coverity scriptsChris Luke3-53/+70
- Move Coverity scripts from build-root/scripts to extras/scripts - Update coverity-build with new path and add some comments Change-Id: I1be8069fb574aaacbac9b7f2c9c80b9aad1790ec Signed-off-by: Chris Luke <chrisy@flirble.org>
2017-05-29Update CSIT tests 170518 -> 170529Jan Gelety1-1/+1
- update of CSIT operational branch to be used for VPP-patch test Change-Id: I66357690f41e23dd1b924cc50a951a6c3696e071 Signed-off-by: Jan Gelety <jgelety@cisco.com>
2017-05-29Add Debian Jessie support in toplevel makefileDamjan Marion1-4/+11
Change-Id: I805800503f5330c14d2e654c02bf43e21e7ce917 Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-05-29memif: master instance crashes when typing quit on slaveSteven1-15/+29
When I type in 'quit' on the slave instance, the master instance crashes on this line. 0: /home/sluong/vpp-master/vpp/build-data/../src/vlib/unix/input.c:200 (linux_epoll_input) assertion `! pool_is_free (um->file_pool, _e)' fails Aborted (core dumped) Below is the decode from gdb line_number=0, fmt=0x7f57af6cc9a0 "%s:%d (%s) assertion `%s' fails") at /home/sluong/vpp-master/vpp/build-data/../src/vppinfra/error.c:143 vm=0x7f57af8e2400 <vlib_global_main>, node=0x7f576d40ad80, frame=0x0) at /home/sluong/vpp-master/vpp/build-data/../src/vlib/unix/input.c:200 vm=0x7f57af8e2400 <vlib_global_main>, node=0x7f576d40ad80, type=VLIB_NODE_TYPE_PRE_INPUT, dispatch_state=VLIB_NODE_STATE_POLLING, frame=0x0, last_time_stamp=1525665215050617) at /home/sluong/vpp-master/vpp/build-data/../src/vlib/main.c:1016 vm=0x7f57af8e2400 <vlib_global_main>, is_main=1) at /home/sluong/vpp-master/vpp/build-data/../src/vlib/main.c:1500 I am able to reproduce the problem consistently with the below procedure. 1. Create 3 memif interfaces between slave and master instances. 2. Type 'quit' on the slave. Neither crashes the first time. 3. Bring back the slave. Type 'quit' on the master. Neither crashes. 4. Bring back the master. Type 'quit' on the slave. The master crashes. There are two places the interrupt line is disconnected and the unix file is removed via the call unix_file_del () 1. memif_int_fd_read_ready () 2. memif_disconnect () which is called via multiple places in memif. When the crash happens, the unix file was removed from memif_disconnect () via memif_conn_fd_read_ready () with size of the message == 0 in recvmsg (). It is noted when the unix file was removed from memif_int_fd_read_ready (), it never crashes. It is a race condition. However, if I follow the aformentioned procedure, the crash always happens. The reason the crash happens when memif_disconnect () removes the unix file is because there may still be pending input in linux_epoll_input (). When linux_epoll_input () tries to access the unix file via the line 200 unix_file_t *f = pool_elt_at_index (um->file_pool, i); it crashes. We could add code in linux_epoll_input () to avoid the crash if the index for the particular file_pool is already free. Or we could fix memif to not remove the unix file in memif_conn_fd_read_ready () when recvmsg () got 0 byte and just postpone the unix file deletion in memif_int_fd_read_ready () later after linux_epoll_input () got a chance to run to empty the input stream. I choose to fix the problem in the latter approach. I split the function memif_disconnect () into two parts. For the code path which memif_conn_fd_read_ready () calls memif_disconnect (), it does not remove the unix file. All other calls to memif_disconnect () will continue to do what it uses to do to avoid regression. Please let me know if I should fix the problem other way. Change-Id: I8efe2a3d24c6581609bc7b6fe82c2b59c22d8e4b Signed-off-by: Steven <sluong@cisco.com>
2017-05-29Show example syntax for setting plugin pathBurt Silverman1-0/+9
Change-Id: I7972273d0e9bd36e3fd6e12ab0268341ba572313 Signed-off-by: Burt Silverman <burtms@gmail.com>
2017-05-26MPLS lookup DPO does not pop the label (nor does it handle replicate)Neale Ranns5-84/+165
Change-Id: I7de6b96631d1645d0eadd38525860d84d78e316d Signed-off-by: Neale Ranns <nranns@cisco.com>
2017-05-26ARP/ND use path_remove to complement path_addNeale Ranns6-16/+263
don't add duplicate extensions. Change-Id: Icf72d6e1b004d0dda532bec2b51f6b74544925bb Signed-off-by: Neale Ranns <nranns@cisco.com>
2017-05-26Improve jvppgen object array member instantiationRobert Varga1-1/+1
Since all objects of the array have the same type, the object constructor is a loop invariant. Move the lookup out of the loop, making things faster. Change-Id: I631c72b59c6c63eccd49ede41c6dc0541c325db9 Signed-off-by: Robert Varga <robert.varga@pantheon.tech> Signed-off-by: Robert Varga <nite@hq.sk>
2017-05-26LISP: do not try to delete paths when fwd entry is negativeFilip Tehlar1-4/+7
Change-Id: I50a0cbc7d8ecc94ad494df4720bb4199673e9793 Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2017-05-26Fix JNI templatesRobert Varga1-0/+3
The JNI templates around array and object handling are wrong in the sense that they fail to delete local references for objects which have been assigned to fields/arrays. Fix this by invoking DeleteLocalRef. Change-Id: I1c31d81f4235d821ccd51c96be7b176f64284928 Signed-off-by: Robert Varga <robert.varga@pantheon.tech> Signed-off-by: Robert Varga <nite@hq.sk>
2017-05-25MPLS hash function improvementsNeale Ranns6-48/+206
Change-Id: I28e98f445c01493562b6196a4f5b532a51f178af Signed-off-by: Neale Ranns <nranns@cisco.com>
2017-05-25MPLS interface output feature not explicitly enabledNeale Ranns1-2/+0
Change-Id: I54cb5113ec8e37f5da321041d7925393cae31aa5 Signed-off-by: Neale Ranns <nranns@cisco.com>
2017-05-25af_packet: fix coverity errorRay Kinsella1-2/+19
Fix coverity error associated with fd. Change-Id: I0648aebaf356308bc03cc7217922479bfc4e22f7 Signed-off-by: Ray Kinsella <ray.kinsella@intel.com>
2017-05-24Add p2p flag to IPsec tunnel interface hw classMatthew Smith1-0/+1
Change-Id: I4ac05ee5974f5e7ab3685d325446a6e77048a948 Signed-off-by: Matthew Smith <mgsmith@netgate.com>
2017-05-24MPLS tunnels; path-list lock leak and debug CLI imrpovementsNeale Ranns1-7/+16
Change-Id: Ifb51b49d4dac1f07027b12398314a52b5cce343e Signed-off-by: Neale Ranns <nranns@cisco.com>
2017-05-24SNAT: fix IPFIX data src and dst portMatus Fabian2-6/+31
Change-Id: Ifa9582962710a3601fcccbbf388529043fc7f08a Signed-off-by: Matus Fabian <matfabia@cisco.com>
2017-05-24IPv6 Performance bugsNeale Ranns9-74/+63
- inline the FIB lookup function; this requires access to the bihash, so for files that use more than one type this casues problems. those files that include ip6_fib.h unnecessarily have been updated - better use of the feature arcs. ip6-lookup and interface-output are now sentinels (end-node-index in the cm speak) rather than enabled features. Change-Id: I9d1375fee63f7dbb2d327da6124d8e60b63367ec Signed-off-by: Neale Ranns <nranns@cisco.com>
2017-05-24Missing VLIB node for IPv6 disposition from mcast MPLS LSPNeale Ranns3-9/+101
Change-Id: Ibc0e1910a4926fdfbf74571efb5fd5810bfa09da Signed-off-by: Neale Ranns <nranns@cisco.com>
2017-05-24vlib: use driver_override in sysfs for binding pci devs to vfio/uio driversDamjan Marion1-12/+30
Change-Id: I262e455792fd95d286ee3ebc0049e2352ae5899f Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-05-24MPLS trace fixesNeale Ranns2-1/+7
Change-Id: I141a14e1098e562bdb3c3ac576754f4f19dbcb04 Signed-off-by: Neale Ranns <nranns@cisco.com>
2017-05-24Leak locks and tables in the ClassifierNeale Ranns5-9/+84
Change-Id: Iae04c57bba87ab3665388eadd0805f75171636a5 Signed-off-by: Neale Ranns <nranns@cisco.com>
2017-05-24Fix tab-completion coverity issueYoann Desmouceaux1-1/+2
Change-Id: I051d015e7eee621dbef273b2c57449ea4c44b768 Signed-off-by: Yoann Desmouceaux <ydesmouc@cisco.com>
2017-05-24TEST/L2BD:fix flush testsEyal Bari1-66/+107
flush tests will now enable learning on the bridge, and send broadcast packets to add dynamic entries to the l2_fib. it will then disable learning, flush, and will verify packets are not forwarded to flushed "hosts". Change-Id: Ie6f123e59f6c89af511bdc5a02dd199420c424e9 Signed-off-by: Eyal Bari <ebari@cisco.com>
2017-05-24ipfix: make IPFIX work for all skip_n_vectors values (VPP-204)Juraj Sloboda1-22/+23
Change-Id: Id2ffcd048b93d8efc8f825744cf2aeef5c436d53 Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>
2017-05-24Simple script to 'git blame' on new Coverity issuesChris Luke1-0/+36
- Pass an email in to stdin and the script produces output similar to: Hi, Please find the latest report on new defect(s) introduced to fd.io VPP found with Coverity Scan. New defect(s) Reported-by: Coverity Scan Showing 2 of 2 defect(s) ** CID 167726: Resource leaks (RESOURCE_LEAK) /src/vnet/devices/af_packet/device.c: 215 in af_packet_interface_admin_up_down() ________________________________________________________________________________________________________ *** CID 167726: Resource leaks (RESOURCE_LEAK) /src/vnet/devices/af_packet/device.c: 215 in af_packet_interface_admin_up_down() >>> CID 167726: Resource leaks (RESOURCE_LEAK) >>> Handle variable "fd" going out of scope leaks the handle. 00a9dcad vnet/vnet/devices/af_packet/device.c (Damjan Marion 2016-08-17 209) af_packet_if_t *apif = 00a9dcad vnet/vnet/devices/af_packet/device.c (Damjan Marion 2016-08-17 210) pool_elt_at_index (apm->interfaces, hw->dev_instance); 83cc4e14 vnet/vnet/devices/af_packet/device.c (Alpesh Patel 2016-04-05 211) u32 hw_flags; c855b73f src/vnet/devices/af_packet/device.c (Ray Kinsella 2017-04-21 212) int rv, fd = socket (AF_UNIX, SOCK_DGRAM, 0); c855b73f src/vnet/devices/af_packet/device.c (Ray Kinsella 2017-04-21 213) struct ifreq ifr; c855b73f src/vnet/devices/af_packet/device.c (Ray Kinsella 2017-04-21 214) c855b73f src/vnet/devices/af_packet/device.c (Ray Kinsella 2017-04-21 215) /* if interface is a bridge ignore */ c855b73f src/vnet/devices/af_packet/device.c (Ray Kinsella 2017-04-21 216) if (apif->host_if_index < 0) 2038ad01 src/vnet/devices/af_packet/device.c (Ray Kinsella 2017-05-18 217) goto error; /* no error */ c855b73f src/vnet/devices/af_packet/device.c (Ray Kinsella 2017-04-21 218) c855b73f src/vnet/devices/af_packet/device.c (Ray Kinsella 2017-04-21 219) /* use host_if_index in case host name has changed */ c855b73f src/vnet/devices/af_packet/device.c (Ray Kinsella 2017-04-21 220) ifr.ifr_ifindex = apif->host_if_index; ** CID 167725: Error handling issues (NEGATIVE_RETURNS) /src/vnet/devices/af_packet/device.c: 252 in af_packet_interface_admin_up_down() ________________________________________________________________________________________________________ *** CID 167725: Error handling issues (NEGATIVE_RETURNS) /src/vnet/devices/af_packet/device.c: 252 in af_packet_interface_admin_up_down() >>> CID 167725: Error handling issues (NEGATIVE_RETURNS) >>> "fd" is passed to a parameter that cannot be negative. c855b73f src/vnet/devices/af_packet/device.c (Ray Kinsella 2017-04-21 246) } c855b73f src/vnet/devices/af_packet/device.c (Ray Kinsella 2017-04-21 247) c855b73f src/vnet/devices/af_packet/device.c (Ray Kinsella 2017-04-21 248) if ((rv = ioctl (fd, SIOCSIFFLAGS, &ifr)) < 0) c855b73f src/vnet/devices/af_packet/device.c (Ray Kinsella 2017-04-21 249) { c855b73f src/vnet/devices/af_packet/device.c (Ray Kinsella 2017-04-21 250) clib_unix_warning ("af_packet_%s error: %d", c855b73f src/vnet/devices/af_packet/device.c (Ray Kinsella 2017-04-21 251) apif->is_admin_up ? "up" : "down", rv); 2038ad01 src/vnet/devices/af_packet/device.c (Ray Kinsella 2017-05-18 252) goto error; c855b73f src/vnet/devices/af_packet/device.c (Ray Kinsella 2017-04-21 253) } 83cc4e14 vnet/vnet/devices/af_packet/device.c (Alpesh Patel 2016-04-05 254) 00a9dcad vnet/vnet/devices/af_packet/device.c (Damjan Marion 2016-08-17 255) vnet_hw_interface_set_flags (vnm, hw_if_index, hw_flags); 83cc4e14 vnet/vnet/devices/af_packet/device.c (Alpesh Patel 2016-04-05 256) 2038ad01 src/vnet/devices/af_packet/device.c (Ray Kinsella 2017-05-18 257) error: Change-Id: I9756c16ea24e7520704155ae1f6c5f132087e3bc Signed-off-by: Chris Luke <chrisy@flirble.org>
2017-05-23Add TAB-based auto-completion to the CLIYoann Desmouceaux3-0/+259
Hitting tab: - in the middle of a uniquely defined subcommand will expand the subcommand - in the middle of a non-uniquely defined (or empty) subcommand will display all possible subcommands, and possibly expand to the lowest common prefix Change-Id: Ib858eefdb0353cd2c3aad472799d15cd537455a0 Signed-off-by: Yoann Desmouceaux <ydesmouc@cisco.com>
2017-05-23Labelled attached paths via an MPLS tunnelNeale Ranns6-42/+94
Change-Id: Ic86617c9c3217122043656ce2ea70bb106df5b2d Signed-off-by: Neale Ranns <nranns@cisco.com>
2017-05-23Added support for Virtio-user interfaces by means of a new VNET_DPDK_PORT_TYPE.Mohammed Hawari3-1/+16
Change-Id: I101e32cee8d9de51227b39ec2639c9fb44da1e6c Signed-off-by: Mohammed Hawari <mhawari@cisco.com>
2017-05-23ARP/ND entries for the same address on different interfaces (VPP-848)Neale Ranns18-735/+1194
there are, intentionally, no validation checks in the ARP/ND code to prevent an ARP/ND entry from being installed for an address that is not local to the interface's sub-net. This is ok, since the adjacency/FIB code is designed to handle this case using the 'refinement' criteria - i.e. only installing a FIB entry for the address if the address 'refines' (i.e. is more specific than) the interface's sub-net. However, the refinement criteria currently operates on the FIB entry's prefix (which is a /32, so on the address) and not on the next-hop in the path. So, enter multiple ARP entries for the same address on different links, and this refinement criteria uses only the last added path, and so will remove the FIB entry should the ARP entries be added in the 'wrong' order. This fix updates the refinement criteria to work on each path of the FIB entry. The entry is installed if one of the paths refines the covers and only paths refining the cover contribute forwarding. Per-path refinement checks are stored in path-extensions. The patch is rather large as path-extension, which were previously used only for out-going MPLS labels, have been generalized. Change-Id: I00be359148cb948c32c52109e832a70537a7920a Signed-off-by: Neale Ranns <nranns@cisco.com>
2017-05-22vhost: migrate to use device infra for worker thread assignment, rx-mode.Steven6-556/+342
and add adaptive mode support to receive queue - Migrate vhost to use device infra which does the interface/queue to worker thread assignment. - Retire vhost thread CLI and corresponding code which assigns interface/queue to worker thread. set interface placement should be used instead to customize the interface/queue to worker thread assignment. - Retire vhost interrupt/polling option when creating vhost-user interface. Instead, set interface rx-mode should be used. - Add code in vnet_device_input_unassign_thread to change the node state to interrupt if the last polling interface has left the worker thread for the device of the corresponding interface/queue. - Add adaptive mode support. The node state is set to interrupt initially. When the scheduler detects a burst of traffic, it switches the input node to polling. Then we inform the device that we don't need interrupt notification. When the traffic subsides, the scheduler switches the input node back to interrupt. Then we immediately tell the driver that we want interrupt notification again. - Remove some duplicate code in vlib/main.c Change-Id: Id19bb1b9e50e6521c6464f470f5825c26924d3a8 Signed-off-by: Steven <sluong@cisco.com>
2017-05-22dpdk: make dpdk global debug level configurableDamjan Marion3-33/+30
Adds startup.conf knob: dpdk { log-level debug } Change-Id: I80dfbc00559528d7b0970958fba9f08d97aa7118 Signed-off-by: Damjan Marion <damarion@cisco.com>