2654 Commits

Author SHA1 Message Date
Dave Wallace
33e002b168 Fix session connect_* api message handling.
Change-Id: If7fd125989c90240de12953658d10007b9eb4f07
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2017-09-07 08:18:46 +00:00
Jerome Tollet
4830414138 Support for bridge domain free text tag
Change-Id: I9a75fdafd0c1d87b6f071fda5b77ff5f6b79deb7
Signed-off-by: Jerome Tollet <jtollet@cisco.com>
2017-09-07 07:48:53 +00:00
Florin Coras
d05c155e34 make test: disable L2BD Multi-instance test 5
Change-Id: Iba44aec60a74ada5add41ecf00b25dc44f3ad3a3
Signed-off-by: Florin Coras <fcoras@cisco.com>
2017-09-07 02:56:33 +00:00
Dave Wallace
19296116be Set uid/gid on ssvm segment file.
Change-Id: I482bb9654f4dfe240bace5c2b61056cfd04cf018
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2017-09-06 22:35:52 +00:00
Dave Barach
91f3e744a3 Improve "show segment-manager segments"
Clean up private-segment fifo preallocation

Change-Id: I53c630ed81d48f2832a204992d73635536926983
Signed-off-by: Dave Barach <dave@barachs.net>
2017-09-06 18:30:55 +00:00
Chris Luke
2951d901a5 Fixes for issues raised by Coverity (VPP-972)
Change-Id: I4b1f27b95d67d48b7a13750ff8754c344ed7afa7
Signed-off-by: Chris Luke <chrisy@flirble.org>
2017-09-06 16:29:49 +00:00
Matus Fabian
704018cf11 NAT: Destination NAT44 with load-balancing (VPP-954)
added load-balancing static mappings with unequal load support

Change-Id: Ie505e41f24d46f812b94dd28bdafe3dc170a6060
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2017-09-06 08:49:25 +00:00
Sergio Gonzalez Monroy
030ab4815f dpdk/ipsec: fix setup when using master core only
Change-Id: I62b7aa896dfe218358f11a5197b1228a3dd67152
Signed-off-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
2017-09-06 04:44:26 +00:00
Pierre Pfister
9a244bb5e4 Add pidfile cmdline option
Change-Id: Ibaa61b624eb6683b1be6901a7b29f5f73aad27b2
Signed-off-by: Pierre Pfister <ppfister@cisco.com>
2017-09-05 18:10:40 +02:00
Colin Tregenza Dancer
215961829c Refork worker thread data structures in parallel (VPP-970)
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-05 13:33:51 +00:00
Ole Troan
f7a55ad74c PUNT socket: External control plane processes connected via UNIX domain sockets.
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-05 12:07:22 +00:00
Filip Tehlar
809bc74b5b LISP: re-fetch mapping before it expires
Change-Id: I0581a1bddad55d8d573c546ec84b0b2760abab3d
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2017-09-04 12:13:55 +02:00
John Lo
dbfa574a1d Improve L2FIB PDR/NDR performance (VPP-963)
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-03 01:14:19 +00:00
Marco Varlese
edfa2fddf8 The build system still builds the DPDK plugin when the option
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-01 14:46:23 +00:00
Dave Barach
b7f1faa7fb Add fixed-size, preallocated pool support
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-09-01 14:17:53 +00:00
Ole Troan
774b217916 VPP-959: Python API require minimum CFFI version.
Change-Id: I328689b7d4efe6017412de43630a5e9f3633dd71
Signed-off-by: Ole Troan <ot@cisco.com>
2017-08-31 21:42:00 +00:00
Sergio Gonzalez Monroy
324ad39c1d dpdk/ipsec: update doc regarding startup.conf
Change-Id: Ie449072ab1efec081235b508f1def60a1287ff5f
Signed-off-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
2017-08-31 21:40:18 +00:00
Steven
49a04b9545 vhost: Disallow interrupt mode config if driver opts out interrupt support
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-31 20:48:25 +00:00
Thomas F Herbert
da78c85c55 Add explicit check for Fedora.
Change-Id: I0a5aece190ccc82f0f840e3bc75e1d27433f5b47
Signed-off-by: Thomas F Herbert <therbert@redhat.com>
2017-08-31 12:31:52 -04:00
Damjan Marion
3ea5eeb352 Do arithemtric comparison in Makefile without using bc
Change-Id: I245f56814ba3911b832e7450d42c58f235bc6dc2
Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-08-31 12:05:47 +00:00
Damjan Marion
1211beb572 Revert "add bc to dependency list"
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-31 12:05:33 +00:00
Dave Barach
c8ef08ac63 Fix BIHASH_KVP_CACHE_SIZE == 0 case
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-31 12:02:49 +00:00
Brian Brooks
9746552e98 Native arm64 build: dpdk/Makefile change
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-31 10:46:07 +00:00
dongjuan
9d9265899e Fix vent_data memory leak in function run_ping_ip46_address (VPP-966)
Change-Id: I05d0c8310aa86480a3d283f45e115284c4b4ebd5
Signed-off-by: dongjuan <dong.juan1@zte.com.cn>
2017-08-31 10:22:57 +00:00
Damjan Marion
c67787be51 Set runtime_path properly when running non-root
non-root users should use /run/user/$PID/...

Change-Id: I1ca136df7a339eff193ed9c9a396d6965b192d0e
Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-08-31 07:33:37 +00:00
ShenJibiao
203c079483 Free memory the 'rpaths' pointers, that may incur memory leaks(VPP-965).
Change-Id: I2732c02b97f4602162638bbcf3ab46521c2782da
Signed-off-by: ShenJibiao <shen.jibiao@zte.com.cn>
2017-08-31 14:02:46 +08:00
Keith Burns (alagalah)
9e482bb9bc Improvements to socket_test.sh script
Change-Id: I10c59dc32edb7336a56722b1de8cca1d0ae31c60
Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
2017-08-31 01:41:05 +00:00
Gabriel Ganne
e58c93b276 add bc to dependency list
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-30 19:44:56 +02:00
Damjan Marion
b6a8ed7fa0 Thread safe internal buffer manager, take two
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-30 16:27:59 +00:00
Florin Coras
50958959b5 tcp: re-enable persist timer if no data available to send
Additionally, flush rx fifos for closed sessions.

Change-Id: If2cc563fbda0451e7572650e98b15f0a694a0ff9
Signed-off-by: Florin Coras <fcoras@cisco.com>
2017-08-30 13:15:32 +00:00
Dave Barach
e3434397f2 Offload prep calls needed for IP and UDP checksum offload pkts
Change-Id: I9b29bcff348bddfb49b1c38b1d409249e37bb075
Signed-off-by: Dave Barach <dave@barachs.net>
2017-08-30 08:14:58 -04:00
Steven
978788903b vhost: Cache qsz_mask instead of qsz in vhost_user_vring_t
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-30 06:56:39 +00:00
Hongjun Ni
a894434e30 Fix static mapping lookup issue for NAT plugin
Change-Id: Ic99d1db5360f69126b23bb2b78f29d6404cbbae9
Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
2017-08-29 21:24:56 +00:00
Hongjun Ni
2bd3f8a525 Fix some issue of comment and help for nat feature
Change-Id: I9233e427b5f8874492fefb2bfe7c1ab329e366b2
Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
2017-08-29 20:41:44 +00:00
Keith Burns (alagalah)
0edbef74f0 Add .pybuild to gitignore
Change-Id: I4467a30ec1beff67a0517619296f1a27589ff55b
Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
2017-08-29 19:06:13 +00:00
Florin Coras
c87c91d8b0 session: segment manager improvements
- 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-29 18:53:11 +00:00
Gabriel Ganne
78d5abea85 silence makefile warning on ubuntu
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-29 17:19:59 +02:00
Marco Varlese
47501da34f Fix for bootstrap crash when VPP compiled with gcc-7
See issue VPP-964

Change-Id: I2aed5abdc02e47e7bb5b0ce78cb6589a1ce7302f
Signed-off-by: Marco Varlese <marco.varlese@suse.com>
2017-08-29 15:07:19 +00:00
Pierre Pfister
50b60ebcc3 Flowprobe: Fix flow start time and hash computation
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-29 12:27:44 +00:00
Steven
4ba75f5446 vhost: Remove operation mode in the API
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-28 11:34:47 -07:00
Thomas F Herbert
bd8e242024 Add Build Requirements from Makefile to spec file.
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-26 18:27:06 -04:00
Matej Perina
d05282983a jvpp: adding debug usage into test documentation
added debug version commands to Readme files for example tests

Change-Id: Icc5d5cdd33efb6d7c7512c7a78e22d9dc3d31fdc
Signed-off-by: Matej Perina <mperina@cisco.com>
2017-08-25 22:08:26 +00:00
Dave Barach
d84ba85c00 TCP horizontal scaling
- 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-25 22:04:28 +00:00
Damjan Marion
206b2d4342 dpdk: bump to dpdk 17.08, remove support for dpdk 17.02
Change-Id: I674fb1212e48693939045523df085326a4dd1809
Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-08-25 20:27:38 +00:00
Klement Sekera
fcbf44448b make test: separate test discovery code
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-25 18:05:17 +00:00
Andrew Yourtchenko
6d157c2f91 acl-plugin: warning printed when acl_add_replace already applied ACLs (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-25 17:07:07 +00:00
Florin Coras
1f152cd6fa tcp: retransmit and multi-buffer segment fixes and improvements
- 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-25 16:39:42 +00:00
Marco Varlese
27de761048 Fixed the SUSE dependency on libnuma
Change-Id: I0de13c7fac91c7fc2fcbc9e765ae37720a583aaf
Signed-off-by: Marco Varlese <marco.varlese@suse.com>
2017-08-25 16:32:52 +00:00
Hongjun Ni
c847368bc4 Use Quad-loop to improve gtpu-encap performance
Change-Id: I440fae09e77502392af5cde45dd9c532afa5d976
Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
2017-08-25 16:27:56 +00:00
Matej Perina
d135c19a1f jvpp: introducing callback api and future api tests for all plugins (VPP-591)
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-25 16:26:17 +00:00