summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2017-09-06NAT: Destination NAT44 with load-balancing (VPP-954)Matus Fabian8-70/+1142
added load-balancing static mappings with unequal load support Change-Id: Ie505e41f24d46f812b94dd28bdafe3dc170a6060 Signed-off-by: Matus Fabian <matfabia@cisco.com>
2017-09-06dpdk/ipsec: fix setup when using master core onlySergio Gonzalez Monroy1-2/+3
Change-Id: I62b7aa896dfe218358f11a5197b1228a3dd67152 Signed-off-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
2017-09-05Add pidfile cmdline optionPierre Pfister3-9/+98
Change-Id: Ibaa61b624eb6683b1be6901a7b29f5f73aad27b2 Signed-off-by: Pierre Pfister <ppfister@cisco.com>
2017-09-05Refork worker thread data structures in parallel (VPP-970)Colin Tregenza Dancer3-136/+214
Change the rebuilding of worker thread clone datastructures to run in parallel on the workers, instead of serially on main. Change-Id: Ib76bcfbef1e51f2399972090f4057be7aaa84e08 Signed-off-by: Colin Tregenza Dancer <ctd@metaswitch.com>
2017-09-05PUNT socket: External control plane processes connected via UNIX domain sockets.Ole Troan5-11/+652
An external (to VPP) process can register (over the VPP binary API) to receive control plane packets over a UNIX domain socket. The packets are prepended with a packet descriptor containing meta-data (if_index of interface, etc). Currently only UDP is supported. The socket supports sending of packets/frames as well. The sent packet is prepended with a descriptor, telling VPP to route the packet (via ip4-lookup, ip6-lookup) or as an pre-formed Ethernet frame that is sent directly to interface-output. The intended use case for this is for an external DHCP client or a RIP implementation. New configuration option: punt { socket <socket path> } To register use the punt_socket API message. TODO: - Add support for pre-routing. I.e send L3 packet to given TX interface, but do ARP/ND (ip[46]-rewrite) - Add test scripts - Support for abstract names (starting with \0) - Add rate limiting (COP) - Support for other protocols, e.g. IPv6 ND Change-Id: I4a0afc8020deebb3d9d74686dde694ee5bcb8d0f Signed-off-by: Ole Troan <ot@cisco.com>
2017-09-04LISP: re-fetch mapping before it expiresFilip Tehlar10-138/+330
Change-Id: I0581a1bddad55d8d573c546ec84b0b2760abab3d Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2017-09-03Improve L2FIB PDR/NDR performance (VPP-963)John Lo4-18/+30
1. Limit MAC entry update per l2-learn call to reduce update burst when wall clock advance to the the next minute so all MAC time stamps are behind current time needing update. 2. Optimize l2-learn node fast path code sequence. 3. Invalidate cache_key when update MAC entry. 4. Change L2 learn hit counter to L2 learn hit-update counter. 5. Increase L2FIB table memory size to 512MB to fit 4M entries 6. Set MAC learn limit at 4M entries Change-Id: I3075ee8fb59645a56850126bac2e3e6d341cef4d Signed-off-by: John Lo <loj@cisco.com>
2017-09-01The build system still builds the DPDK plugin when the optionMarco Varlese1-0/+2
vpp_uses_dpdk is set to "no" in build-data/platforms/vpp.mk causing the build to fail. This patch addresses that issue. Change-Id: Icc1aaa508e730c9b8715119e1259e4c82f974048 Signed-off-by: Marco Varlese <marco.varlese@suse.com>
2017-09-01Add fixed-size, preallocated pool supportDave Barach19-98/+520
Simply call pool_init_fixed(...) before using the pool. Note that fixed, preallocated pools live in individually-mmap'ed address segments, except for the free element bitmap. A large fixed pool can exceed 4gb. Fix tcp buffer allocator leak, remove broken assert Change-Id: I4421082e12a77c41c6e20f7747f3150dcd01fc26 Signed-off-by: Dave Barach <dave@barachs.net>
2017-08-31VPP-959: Python API require minimum CFFI version.Ole Troan1-1/+1
Change-Id: I328689b7d4efe6017412de43630a5e9f3633dd71 Signed-off-by: Ole Troan <ot@cisco.com>
2017-08-31dpdk/ipsec: update doc regarding startup.confSergio Gonzalez Monroy1-10/+7
Change-Id: Ie449072ab1efec081235b508f1def60a1287ff5f Signed-off-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
2017-08-31vhost: Disallow interrupt mode config if driver opts out interrupt supportSteven2-3/+9
According to the spec, supporting interrupt mode from the driver is optional, not a must. When interrupt mode is configured on the interface, we should check to make sure that the driver didn't opt out for the kickfd support and reject the configuration if it did. Change-Id: I7d3dbaddde65458e1a6a802754a3768ae8685a0e Signed-off-by: Steven <sluong@cisco.com>
2017-08-31Add explicit check for Fedora.Thomas F Herbert1-1/+1
Change-Id: I0a5aece190ccc82f0f840e3bc75e1d27433f5b47 Signed-off-by: Thomas F Herbert <therbert@redhat.com>
2017-08-31Do arithemtric comparison in Makefile without using bcDamjan Marion1-1/+1
Change-Id: I245f56814ba3911b832e7450d42c58f235bc6dc2 Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-08-31Revert "add bc to dependency list"Damjan Marion1-4/+3
Adding new dependency is not right solution to this problem. This reverts commit e58c93b2764eb306d286531a2b920c6de080cb77. Change-Id: I08f2af5cf9c26c4302b0dbaccebbb52f0614f80f Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-08-31Fix BIHASH_KVP_CACHE_SIZE == 0 caseDave Barach3-4/+37
Setting the bucket-level LRU cache size to zero removes the bucket-level LRU cache code. Change-Id: Idf2e63d0d508675e957366515863766f79a3479c Signed-off-by: Dave Barach <dbarach@cisco.com>
2017-08-31Native arm64 build: dpdk/Makefile changeBrian Brooks1-2/+11
With this change, the status of `make build': Huawei D02, Linux 4.4.0, gcc 5.4.1 - success AMD Seattle, Linux 4.4.6, gcc 5.3.1 - compiler ICEs Cavium ThunderX, Linux 4.4.49, gcc 5.4.0 - success Before: Huawei D02, Linux 4.4.0, gcc 5.4.1 - fail AMD Seattle, Linux 4.4.6, gcc 5.3.1 - fail Cavium ThunderX, Linux 4.4.49, gcc 5.4.0 - success Change-Id: I49db34a33f9ca0725c7511d4f796706892b5b2da Signed-off-by: Brian Brooks <brian.brooks@arm.com>
2017-08-31Fix vent_data memory leak in function run_ping_ip46_address (VPP-966)dongjuan1-0/+1
Change-Id: I05d0c8310aa86480a3d283f45e115284c4b4ebd5 Signed-off-by: dongjuan <dong.juan1@zte.com.cn>
2017-08-31Set runtime_path properly when running non-rootDamjan Marion2-3/+12
non-root users should use /run/user/$PID/... Change-Id: I1ca136df7a339eff193ed9c9a396d6965b192d0e Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-08-31Free memory the 'rpaths' pointers, that may incur memory leaks(VPP-965).ShenJibiao1-0/+1
Change-Id: I2732c02b97f4602162638bbcf3ab46521c2782da Signed-off-by: ShenJibiao <shen.jibiao@zte.com.cn>
2017-08-31Improvements to socket_test.sh scriptKeith Burns (alagalah)1-8/+8
Change-Id: I10c59dc32edb7336a56722b1de8cca1d0ae31c60 Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
2017-08-30add bc to dependency listGabriel Ganne1-3/+4
replace $(echo "..." | bc) by `echo ... | bc` as they do not seem to behave the same way. Change-Id: Ib8f13f0c8213aaae89d65559427e01bc40f4e8d1 Signed-off-by: Gabriel Ganne <gabriel.ganne@enea.com>
2017-08-30Thread safe internal buffer manager, take twoDamjan Marion3-4/+32
First attempt to make internal buffer manager thread safe was not succesfull, so trying again. This time with more testing. Change-Id: I01b8385a9c26d233934a3339255ea4bd31c865ac Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-08-30tcp: re-enable persist timer if no data available to sendFlorin Coras3-5/+26
Additionally, flush rx fifos for closed sessions. Change-Id: If2cc563fbda0451e7572650e98b15f0a694a0ff9 Signed-off-by: Florin Coras <fcoras@cisco.com>
2017-08-30Offload prep calls needed for IP and UDP checksum offload pktsDave Barach1-1/+4
Change-Id: I9b29bcff348bddfb49b1c38b1d409249e37bb075 Signed-off-by: Dave Barach <dave@barachs.net>
2017-08-30vhost: Cache qsz_mask instead of qsz in vhost_user_vring_tSteven2-32/+28
In the data path, we grab qsz from vhost_user_vring_t to compute qsz_mask and store it in a stack variable to use on many occasions. We never use qsz for any meaningful purpose. It is more useful to cache qsz_mask in vhost_user_vring_t to avoid the needless computation in the data path. Change-Id: Idf4d94a9754d5c75c899f1f4f59602275b9904a6 Signed-off-by: Steven <sluong@cisco.com>
2017-08-29Fix static mapping lookup issue for NAT pluginHongjun Ni1-0/+1
Change-Id: Ic99d1db5360f69126b23bb2b78f29d6404cbbae9 Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
2017-08-29Fix some issue of comment and help for nat featureHongjun Ni1-3/+3
Change-Id: I9233e427b5f8874492fefb2bfe7c1ab329e366b2 Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
2017-08-29Add .pybuild to gitignoreKeith Burns (alagalah)1-0/+1
Change-Id: I4467a30ec1beff67a0517619296f1a27589ff55b Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
2017-08-29session: segment manager improvementsFlorin Coras12-190/+407
- cleanup connects segment manager even if first - fix segment manager allocation for listen sessions - improve handling of process private segments (mheaps/main heap) - added segment manager cli Change-Id: Ic2ca97c3622ab2286d5fb5772aeb57680e64f769 Signed-off-by: Florin Coras <fcoras@cisco.com> Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2017-08-29silence makefile warning on ubuntuGabriel Ganne1-1/+1
shell error on ubuntu when OS_VERSION_ID == 16.04: /bin/sh: 1: [: Illegal number: 16.04 Change-Id: I8db55f751ad7fb677a6565cbbce93a9bc08060b7 Signed-off-by: Gabriel Ganne <gabriel.ganne@enea.com>
2017-08-29Fix for bootstrap crash when VPP compiled with gcc-7Marco Varlese1-1/+1
See issue VPP-964 Change-Id: I2aed5abdc02e47e7bb5b0ce78cb6589a1ce7302f Signed-off-by: Marco Varlese <marco.varlese@suse.com>
2017-08-29Flowprobe: Fix flow start time and hash computationPierre Pfister2-25/+21
Upon hash collision, the flow start time was not reset. The hash computation techniques (crc32 or xxhash) also both had bugs which are now fixed. Change-Id: I94d72997f34018d1699324264f7dded2a5cbd776 Signed-off-by: Pierre Pfister <ppfister@cisco.com>
2017-08-28vhost: Remove operation mode in the APISteven1-6/+0
create/delete/modify vhost_user APIs no longer support the operation mode (polling/interrupt/adaptive). They are now done via the generic interface. Change-Id: I9e9bd503f9b56c953ecd2b271b3e2007da20c72a Signed-off-by: Steven <sluong@cisco.com>
2017-08-26Add Build Requirements from Makefile to spec file.Thomas F Herbert2-21/+33
JIRA: VPP-498 Changes to build to help with downstream distro builds for Fedora, Centos and RHEL distros. Add nasm, automake, libtool, byacc, bison and flex. Remove libconfuse and dependencies. Remove epel-release rpm and dependencies. Add conditionals to work around Python 2 packaging inconsistency in Fed 25. Add numactl to rpm requirements. Change-Id: Ia39f8b931dc87e42df56414d38662eb33c7a4ca7 Signed-off-by: Thomas F Herbert <therbert@redhat.com>
2017-08-25jvpp: adding debug usage into test documentationMatej Perina5-1/+14
added debug version commands to Readme files for example tests Change-Id: Icc5d5cdd33efb6d7c7512c7a78e22d9dc3d31fdc Signed-off-by: Matej Perina <mperina@cisco.com>
2017-08-25TCP horizontal scalingDave Barach6-24/+38
- Remove frame handoff support machinery. We haven't used it in a long time. - Configuration support for the local endpoints bihash table - Drop lookup failure packets in tcp46_syn_sent Change-Id: Icd51e6785f74661c741e76fac23d21c4cc998d17 Signed-off-by: Dave Barach <dave@barachs.net>
2017-08-25dpdk: bump to dpdk 17.08, remove support for dpdk 17.02Damjan Marion6-38/+6
Change-Id: I674fb1212e48693939045523df085326a4dd1809 Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-08-25make test: separate test discovery codeKlement Sekera2-34/+68
Separating test discovery code to it's own script file has the advantage of easily doing e.g. listing of all existing tests. Change-Id: I80dc280263cc7e33e7e13cb0d48b39bf08ece24d Signed-off-by: Klement Sekera <ksekera@cisco.com>
2017-08-25acl-plugin: warning printed when acl_add_replace already applied ACLs ↵Andrew Yourtchenko4-17/+49
(complete the fix for VPP-935) The fix for VPP-935 missed the case that hash_acl_add() and hash_acl_delete() may be called during the replacement of the existing applied ACL, as a result the "applied" logic needs to be replicated for the hash acls separately, since it is a lower layer. Change-Id: I7dcb2b120fcbdceb5e59acb5029f9eb77bd0f240 Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com> (cherry picked from commit ce9714032d36d18abe72981552219dff871ff392)
2017-08-25tcp: retransmit and multi-buffer segment fixes and improvementsFlorin Coras9-182/+319
- set session state as closed on session manager delete - enable retransmit as opposed to persist timer after persist timer completes - properly discard buffer chain bytes when new data overlaps ooo segments - don't use rxt bytes in snd space estimate used on tx path Change-Id: Id9cab686e532e5fe70c775d5440260e8eb890a9f Signed-off-by: Florin Coras <fcoras@cisco.com>
2017-08-25Fixed the SUSE dependency on libnumaMarco Varlese1-1/+1
Change-Id: I0de13c7fac91c7fc2fcbc9e765ae37720a583aaf Signed-off-by: Marco Varlese <marco.varlese@suse.com>
2017-08-25Use Quad-loop to improve gtpu-encap performanceHongjun Ni1-49/+194
Change-Id: I440fae09e77502392af5cde45dd9c532afa5d976 Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
2017-08-25jvpp: introducing callback api and future api tests for all plugins (VPP-591)Matej Perina23-1/+861
test can be run with: make test TEST=test_jvpp memory_shared.c: declaring and assigning variable in if statement makes it usage outside statement impossible. Looks like memory space assigned to variable declared in statement is freed when statement ends svm.c: - fixed case when root path can have a "/" at beggining - added option for test to operate over shared memory space with /vpe-api name and not create new one with name consisting of root path and region name which would require root permisions Change-Id: Iff1170dc6a5c1be134c152f2757c7ab9b919a8ed Signed-off-by: Matej Perina <mperina@cisco.com>
2017-08-25dpdk: required changes for 17.08Sergio Gonzalez Monroy12-243/+567
DPDK 17.08 breaks ethdev and cryptodev APIs. Address those changes while keeping backwards compatibility for DPDK 17.02 and 17.05. Change-Id: Idd6ac264d0d047fe586c41d4c4ca74e8fc778a54 Signed-off-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
2017-08-25Fix crash when TCP client using VPP host stack connects firsttjanciga1-0/+6
VPP is crashing without this fix if there is not any server using VPP host stack and client attemts to connect. Change-Id: I672977f78180bbc5ba9259116b2e165363463ccd Signed-off-by: tjanciga <tomas.janciga@pantheon.tech>
2017-08-25vl_api_sw_interface_set_mtu_t_handler: fix assert in vnet_get_hw_interfaceAndrew Yourtchenko1-3/+10
The handler was calling the routines with sw_if_index instead of hw_if_index, fix that by an extra call to vnet_get_sw_interface, and check that the interface type is VNET_SW_INTERFACE_TYPE_HARDWARE before proceeding. Change-Id: I4a6f65f44e250ecdb2b72d2693c9d7db5a52b966 Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com> (cherry picked from commit 778df28c2a1520f58c293700c578bdd73e61cecf)
2017-08-24Make VPP runtime directory configurableDamjan Marion8-42/+90
New startup config command: unix { runtime-dir /run/vpp } Also, adds recursive mkdir funtion for use in deifferent places like cli-config socket path and dpdk hugepage directory path. Change-Id: I1446ceab9c220c25804e73a743a3ebb383450124 Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-08-24Fix initialization bug in sock_test_clientDave Wallace1-0/+3
Change-Id: Ieeae23a81f6f747b96c2a115bd8a62e8962428cd Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2017-08-24NAT64: Fix error message typo (VPP-961)Matus Fabian1-5/+6
Change-Id: Ieb81c5e157e342cbb532bd65f3b64059e5838691 Signed-off-by: Matus Fabian <matfabia@cisco.com>