vpp.git
5 years agoBIER API and load-balancing fixes 01/14801/2
Neale Ranns [Thu, 13 Sep 2018 15:45:12 +0000 (08:45 -0700)]
BIER API and load-balancing fixes

Change-Id: Ibda19d786070c942c75016ab568c8361de2f24af
Signed-off-by: Neale Ranns <nranns@cisco.com>
5 years agoRemove scaffolding 26/14826/2
Dave Barach [Fri, 14 Sep 2018 13:27:42 +0000 (09:27 -0400)]
Remove scaffolding

Change-Id: I4acebbf76556428bb45356c8e5b85c72a85a1656
Signed-off-by: Dave Barach <dave@barachs.net>
5 years agocpack: add deb/rpm packaging to VPP module 04/14804/4
Damjan Marion [Thu, 13 Sep 2018 18:02:12 +0000 (20:02 +0200)]
cpack: add deb/rpm packaging to VPP module

This allows easy packaging of external projects, including
VOM and sample plugin.

i.e.

$ make -C build-root PLATFORM=vpp TAG=vpp sample-plugin-install

$ ninja -C build-root/build-vpp-native/sample-plugin package

ninja: Entering directory `build-root/build-vpp-native/sample-plugin'
[0/1] Run CPack packaging tool...
CPack: Create package using DEB
CPack: Install projects
CPack: - Install project: sample-plugin
CPack: -   Install component: vpp-plugin-sample
CPack: -   Install component: vpp-plugin-sample-dev
CPack: Create package
CPack: - package: build-root/build-vpp-native/sample-plugin/vpp-plugin-sample_18.10~rc0~413~g1433e9d1-1_amd64.deb generated.
CPack: - package: build-root/build-vpp-native/sample-plugin/vpp-plugin-sample-dev_18.10~rc0~413~g1433e9d1-1_amd64.deb generated.

Change-Id: I6b3ec2433961e53edd976b19659ce214d272c40a
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agodpdk: add detection of mellanox PMDs 22/14822/4
Damjan Marion [Fri, 14 Sep 2018 09:35:14 +0000 (11:35 +0200)]
dpdk: add detection of mellanox PMDs

Change-Id: I523fc489f5e73ba726ab0711eab3fdde53dc35e8
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agovlib: introduce user flags in vlib_frame_t 24/14824/2
Damjan Marion [Fri, 14 Sep 2018 12:38:53 +0000 (14:38 +0200)]
vlib: introduce user flags in vlib_frame_t

Those flags have local significance and they can be used for
sending hints to the next node.

Change-Id: Ic2596ee81c64cd16f96344365370e8fcdc465354
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agoacl-plugin: do not do clib_smp_atomic_add on per-worker counters 95/14795/4
Andrew Yourtchenko [Thu, 13 Sep 2018 09:13:13 +0000 (11:13 +0200)]
acl-plugin: do not do clib_smp_atomic_add on per-worker counters

Just do a regular increment, since we are not contending for these counters.
This also makes the tests pass on ARM ThunderX (VPP-1395).

Change-Id: I333aaa11d4145d13d322868900bc114df85a020d
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
5 years agoRevert "L2-input: use vlib_buffer_enqueue_to_next" 17/14817/2
John Lo [Thu, 13 Sep 2018 22:10:25 +0000 (22:10 +0000)]
Revert "L2-input: use vlib_buffer_enqueue_to_next"

The patch did not improve single input link performance and
degrade performance with multiple input links.

This reverts commit b1232555e91b286feab5667b5a22f29aa8e96626.

Change-Id: Ib9336a2e0610088b9145a43cacbdadb52dabd522
Signed-off-by: John Lo <loj@cisco.com>
5 years agoEhnance and fix vpp_api_test and custom_dump to support SR-MPLS 05/14805/2
John Lo [Thu, 13 Sep 2018 18:08:59 +0000 (14:08 -0400)]
Ehnance and fix vpp_api_test and custom_dump to support SR-MPLS

Change-Id: I2e06de176f4272b4b7475857b42fe0d106382b6f
Signed-off-by: John Lo <loj@cisco.com>
5 years agovcl: keep track of unexpected events 93/14793/7
Florin Coras [Wed, 12 Sep 2018 23:08:01 +0000 (16:08 -0700)]
vcl: keep track of unexpected events

If sessions are marked as blocking, events for other sessions received
while waiting for the blocking sessions, are added to a pending list and
processed later.

Change-Id: Ia6c71006b1c2bcb78af708390da0cd436af397cc
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agocmake: use VPP package in VOM 02/14802/2
Damjan Marion [Thu, 13 Sep 2018 16:43:19 +0000 (18:43 +0200)]
cmake: use VPP package in VOM

Change-Id: I83b244be920521e580085beffb7e40613e67c8ee
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agoFix memory leak in API/CLI to create/modify SR policies 06/14806/2
John Lo [Thu, 13 Sep 2018 19:08:08 +0000 (15:08 -0400)]
Fix memory leak in API/CLI to create/modify SR policies

The segment list vector built by the API/CLI is not freed after
SR policy creation or modification.

Change-Id: If439005481cada6c6af7cb560fe7a4381dd49384
Signed-off-by: John Lo <loj@cisco.com>
5 years agoAdd a polling configure to make thread bind with hardware engine 00/14800/2
Ping Yu [Thu, 13 Sep 2018 22:41:33 +0000 (18:41 -0400)]
Add a polling configure to make thread bind with hardware engine

Change-Id: Ib4130098dd9bf45370bdee9a04e4804074df58b1
Signed-off-by: Ping Yu <ping.yu@intel.com>
5 years agoL2-FWD: use vlib_buffer_enqueue_to_next and cache prefetch fix 75/14775/5
Neale Ranns [Wed, 12 Sep 2018 10:53:03 +0000 (06:53 -0400)]
L2-FWD: use vlib_buffer_enqueue_to_next and cache prefetch fix

before:
  l2-fwd ...  1.72e1  256.00
after:
  l2-fwd ...  1.49e1  256.00

Change-Id: I24b29b799435776abc6e60df0dd0301b74aac99b
Signed-off-by: Neale Ranns <nranns@cisco.com>
5 years agovppinfra: optmize clib_count_equal functions 92/14792/5
Damjan Marion [Wed, 12 Sep 2018 20:37:30 +0000 (22:37 +0200)]
vppinfra: optmize clib_count_equal functions

Change-Id: Ia4c79d560bfa1118d4683a89a1209a08c5f546b3
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agoNAT: TCP MSS clamping 97/14797/1
Matus Fabian [Thu, 13 Sep 2018 09:36:25 +0000 (02:36 -0700)]
NAT: TCP MSS clamping

NAT plugin changes the MSS value in TCP SYN packets to avoid fragmentation.
If the negotiated MSS value is greater than the configured value it is changed
to the configured value. If the negotiated MSS value is smaller than the
configured value it remains unchanged.

Change-Id: Ic3c4f94a2f1b76e2bf79f50f3ad36a4097f3f188
Signed-off-by: Matus Fabian <matfabia@cisco.com>
5 years agoTrivial: Fix lisp flag label 94/14794/1
Paul Vinciguerra [Thu, 13 Sep 2018 01:02:21 +0000 (18:02 -0700)]
Trivial: Fix lisp flag label

Change-Id: Ic5339169124edc8ea1f82ffcba7cde8b7f224e83
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
5 years agoIP-neighbor: add and delete internal API 76/14776/4
Neale Ranns [Fri, 7 Sep 2018 18:04:52 +0000 (11:04 -0700)]
IP-neighbor: add and delete internal API

Change-Id: I4d1ab5ff0c8f0756e91bf63e045f88513bb7d039
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
5 years agoFix: vppapigen make build fails on fresh install 91/14791/5
Paul Vinciguerra [Wed, 12 Sep 2018 20:40:13 +0000 (13:40 -0700)]
Fix: vppapigen make build fails on fresh install

Steps to reproduce:
  vagrant@localhost:/vagrant$ build-root/vagrant/build.sh
  ...
  @@@@ Building vpp in /vagrant/build-root/build-vpp-native/vpp @@@@
  [51/1169] Generating API header /vagrant/build-root/build-vpp-native/vpp/vlibmemory/memclnt.api.json
  FAILED: cd /vagrant/build-root/build-vpp-native/vpp/vlibmemory && mkdir -p /vagrant/build-root/build-vpp-native/vpp/vlibmemory && /vagrant/src/tools/vppapigen/vppapigen --includedir /vagrant/src --input /vagrant/src/vlibmemory/memclnt.api JSON --output /vagrant/build-root/build-vpp-native/vpp/vlibmemory/memclnt.api.json
  AttributeError: 'module' object has no attribute 'dumps'

  This seems to be due to JSON.py namespace colliding with the standard lib json.py

Change-Id: If389e4e05ef0c166b0c2b3bef7ec0185298679a8
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
5 years agoL2-input: use vlib_buffer_enqueue_to_next 83/14783/2
Neale Ranns [Wed, 12 Sep 2018 13:42:50 +0000 (09:42 -0400)]
L2-input: use vlib_buffer_enqueue_to_next

use the same trick as l2-ouput to group the processing of packets
on the same interface.

Change-Id: Ib2a6a1b5f362372936197f5bb2fdd0fe9439226b
Signed-off-by: Neale Ranns <nranns@cisco.com>
5 years agofix bihash test code 89/14789/2
Dave Barach [Wed, 12 Sep 2018 16:08:13 +0000 (12:08 -0400)]
fix bihash test code

Change-Id: Ie71b99385c33122cbf55f80ebabdc2ccdb4cf2ae
Signed-off-by: Dave Barach <dave@barachs.net>
5 years agocmake: create cmake VPP module, update sample-plugin so it uses it 73/14773/4
Damjan Marion [Wed, 12 Sep 2018 10:12:36 +0000 (12:12 +0200)]
cmake: create cmake VPP module, update sample-plugin so it uses it

Change-Id: I32e91ba8e55797ffe169f98b09bdb42caa5c7de2
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agoAlways use 'lib' instead of 'lib64' 80/14780/3
Damjan Marion [Wed, 12 Sep 2018 12:01:10 +0000 (14:01 +0200)]
Always use 'lib' instead of 'lib64'

It is packaging responsibility to put libs in the right place.
Use of lib64 resulted in huge amount of files with hardcoded lib64.
This patch simplifies things...

Change-Id: Iab0dea0583e480907732c5d2379eb951a00fa9e6
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agoFix LB memory leak and remove useless code 77/14777/2
Pierre Pfister [Wed, 12 Sep 2018 12:08:53 +0000 (14:08 +0200)]
Fix LB memory leak and remove useless code

Vector sort_arr was actually never freed.

This change also removes some nearby code which
happens to be totally useless.

Change-Id: I2f265c1b4770cbcd75a2fb69ea54e46e1b54245a
Signed-off-by: Pierre Pfister <ppfister@cisco.com>
5 years agofix missing extern in vnet/ethernet/node.c 74/14774/3
Damjan Marion [Wed, 12 Sep 2018 11:32:01 +0000 (13:32 +0200)]
fix missing extern in vnet/ethernet/node.c

Change-Id: Idabdd1112ba7e390a7b14a83cc7fbd198c8754df
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agoL2-Learn: use vlib_buffer_enqueue_to_next 78/14778/2
Neale Ranns [Wed, 12 Sep 2018 11:37:43 +0000 (07:37 -0400)]
L2-Learn: use vlib_buffer_enqueue_to_next

before:
  l2-learn ... 2.00e1 256.00
after:
  l2-learn ... 1.77e1 256.00

Change-Id: I22fe9ab4ec995ee22c547cfe16bf88c04838520c
Signed-off-by: Neale Ranns <nranns@cisco.com>
5 years agovhost: Fix VPP crash when reloading VM with mixed-type ports [VPP-1406] 45/14545/6
Yichen Wang [Wed, 29 Aug 2018 06:05:27 +0000 (23:05 -0700)]
vhost: Fix VPP crash when reloading VM with mixed-type ports [VPP-1406]

When VM is having mixed type of vhost-user and SRIOV ports, QEMU (RedHat
v2.10) will not send disconnect signal to VPP, and just gives the new
memory region directly. VPP is not able to handle new memory region
mapping without disconnect signal first, which will result in a SEGV.
The fix will handle the VM reboot scenario without explict disconnect
signal from QEMU.

The fix is to invalidate the avail, desc, and used pointers in the txvq
when the new memory regions are received. This is because these pointers
are not valid anymore with the new memory regions. In the input node, check
to make sure the avail pointer is valid and punt if not.

Change-Id: Ieb8b427b202f4442a58907dab1661d63a03650de
Signed-off-by: Yichen Wang <yicwang@cisco.com>
5 years agoVXLAN-GBP: use common types on the API 63/14763/3
Neale Ranns [Tue, 11 Sep 2018 14:39:43 +0000 (07:39 -0700)]
VXLAN-GBP: use common types on the API

Change-Id: I11ec0d7048d36c30a97d437e5b0abd05f06ab0eb
Signed-off-by: Neale Ranns <nranns@cisco.com>
5 years agodevice flags will set in dpdk_update_link_state. 47/14647/8
Khers [Tue, 4 Sep 2018 12:00:37 +0000 (16:30 +0430)]
device flags will set in dpdk_update_link_state.

Change-Id: If74acb0168bed2201d2a8b47bf3f860540d1574b
Signed-off-by: Khers <s3m2e1.6star@gmail.com>
5 years agoAdd patch for ixgbe x550 SFP+ to DPDK 18.08 66/14766/2
Matthew Smith [Tue, 11 Sep 2018 18:50:48 +0000 (13:50 -0500)]
Add patch for ixgbe x550 SFP+ to DPDK 18.08

Patch for ixgbe which has been used with DPDK 18.02, 18.05.
If the link flaps before link status has been successfully
collected, the MAC will be reset and the PMD will not wait
long enough for it to come back up before giving up, which
will continue happening every time an attempt is made to
check the link status.

This patch was submitted to upstream DPDK in July 2018 but
it has not been included in a release yet.

Change-Id: Ib2100b33d2a986f3cf74e42fc5538412f76f42c7
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
5 years agoAdd and enable u32x4_extend_to_u64x2_high for aarch64 NEON intrinsics. 06/14606/7
Sirshak Das [Wed, 22 Aug 2018 00:46:52 +0000 (08:46 +0800)]
Add and enable u32x4_extend_to_u64x2_high for aarch64 NEON intrinsics.

This is the high version of extendto. This function accomplishes the
same task as both shuffling and extending done by SSE intrinsics.
This enables the NEON version for buffer indexes to buffer pointer
translation.

Change-Id: I52d7bbf3d76ba69c9acb0e518ff4bc6abf3bbbd4
Signed-off-by: Sirshak Das <sirshak.das@arm.com>
Reviewed-by: Steve Capper <steve.capper@arm.com>
Reviewed-by: Yi He <yi.he@arm.com>
Verified-by: Lijian Zhang <lijian.zhang@arm.com>
5 years agoFix create memif socket 24/13824/2
Ed Warnicke [Mon, 30 Jul 2018 20:48:32 +0000 (15:48 -0500)]
Fix create memif socket

create interface memif [id <id>] [socket-id <socket-id>] ...

Can optionally take a socket-id.

You create a socket-id with:

create memif socket [id <id>] [filename <path>]

Unfortunately, this doesn't work because "create memif" was
deprecated.  It results in:

vpp# create memif socket id 0 filename /run/vpp/test.socket
command deprecated. Please use 'create interface memif' instead.

This fixes it by clipping out the

create memif

command entirely.

Change-Id: If503758706bf758b6cb46e958200527a5856c600
Signed-off-by: Ed Warnicke <hagbard@gmail.com>
5 years agovcl: add apis that expos fifo as buffer 68/14768/3
Florin Coras [Tue, 11 Sep 2018 23:33:36 +0000 (16:33 -0700)]
vcl: add apis that expos fifo as buffer

Change-Id: I4bd9c9f73499711e04b38d53daa5c917a4285bf5
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agovcl: improve read and fifo event handling 64/14764/9
Florin Coras [Tue, 11 Sep 2018 07:10:41 +0000 (00:10 -0700)]
vcl: improve read and fifo event handling

Change-Id: Ic1c51818b8aa8dbd164e70bb3b7471868e5af6f6
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agobihash 32/64 bit shared memory interop 67/14767/1
Dave Barach [Tue, 11 Sep 2018 21:20:23 +0000 (17:20 -0400)]
bihash 32/64 bit shared memory interop

This patch makes 32/64 bit interoperable shared memory bihash tables
work regardless of where they're mapped.

Change-Id: If5b4a37ccdaa75410eba755c7d7195633de1b30b
Signed-off-by: Dave Barach <dave@barachs.net>
5 years agoindent off in ip_lookup_set_buffer_fib_index 62/14762/2
Neale Ranns [Tue, 11 Sep 2018 12:55:50 +0000 (05:55 -0700)]
indent off in ip_lookup_set_buffer_fib_index

when the name of the structure crosses a line boundary it's painful to parse...

Change-Id: I5d0606900802fb8d64a065f31f3e2a53bd8a5f40
Signed-off-by: Neale Ranns <nranns@cisco.com>
5 years agoL2-learn; cache prefetch fix 40/14740/4
Neale Ranns [Sun, 9 Sep 2018 08:41:02 +0000 (04:41 -0400)]
L2-learn; cache prefetch fix

the header is written (STORE) the data is only read (LOAD)

Change-Id: Ia3ac0c81224a0db736c329ed3e2e55b7417f08a0
Signed-off-by: Neale Ranns <nranns@cisco.com>
5 years agoGBP Endpoint Updates 09/14709/8
Neale Ranns [Wed, 5 Sep 2018 22:42:26 +0000 (15:42 -0700)]
GBP Endpoint Updates

- common types on the API
- endpoints keyed in various ways for DP lookup
- conparison functions for VPP IP address types

Change-Id: If7ec0bbc5cea71fd0983fe78987d147ec1bd7ec8
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
5 years agovat: remove the endiness for u8 59/14759/2
Mohsin Kazmi [Tue, 11 Sep 2018 11:06:42 +0000 (13:06 +0200)]
vat: remove the endiness for u8

Change-Id: I9636a4e631cacf22d3189e292888c34f615298b0
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
5 years agoVAT: plugin load errors 56/14756/3
Ole Troan [Tue, 11 Sep 2018 09:26:12 +0000 (11:26 +0200)]
VAT: plugin load errors

- NSH plugin overrode vat_api_hookup()
- Missing format function in mactime.

Change-Id: I2dcbc2522d8f525d223c2ee3bb667111d1b3b78e
Signed-off-by: Ole Troan <ot@cisco.com>
5 years agoremove libvlib from libvlibmemoryclient libs 39/14739/3
Matthew Smith [Fri, 7 Sep 2018 22:14:30 +0000 (17:14 -0500)]
remove libvlib from libvlibmemoryclient libs

On CentOS 7, having libvlibmemoryclient link libvlib causes
a SEGV when a program or library is run which links against
libvlibmemoryclient and dlopen() is called. This is because
dlopen() executes any functions with __attribute((constructor))
set. The VLIB_CLI_COMMAND macro creates CLI registration
functions that have this attribute set. So CLI registration
functions end up being run by applications which are clients
of the VPP API.

This doesn't occur on ubuntu 16.04, because ld seems to
omit shared libraries that were listed on the command line
if they are not used to resolve any symbols.

Removing the link to libvlib on vlibmemoryclient to fix this
problem results in another problem. Tests of libvcl_preload
fail when running 'make test'. This happens because
libvcl_preload calls dlopen but does not link against libdl.
When libvlibmemoryclient had libvlib linked, these errors
did not occur since libvlib links libdl. Adjusted the build
of libvcl_preload to explicitly link libdl.

Change-Id: I271ba2f9226ce1602e1f6c1525f3b093bb0345ed
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
5 years agonat: fix busy ports of each thread 42/14642/8
dongjuan [Tue, 4 Sep 2018 09:40:53 +0000 (17:40 +0800)]
nat: fix busy ports of each thread

which can create dead loop in
nat_alloc_addr_and_port_default function

Change-Id: I468c25ce0f0a0b3f881de564623dea208b2ca700
Signed-off-by: dongjuan <dong.juan1@zte.com.cn>
5 years agoReplacing vtbl NEON intrinsic with rev NEON intrinsic for byte_swap. 07/14607/6
Sirshak Das [Wed, 22 Aug 2018 04:02:04 +0000 (12:02 +0800)]
Replacing vtbl NEON intrinsic with rev NEON intrinsic for byte_swap.

Using rev16 vector intrinsic to reverse byteorder in each word
independently.

Change-Id: I071c40780baffe0bda614ec5d9dd92858f574b0d
Signed-off-by: Sirshak Das <sirshak.das@arm.com>
Reviewed-by: Steve Capper <steve.capper@arm.com>
Reviewed-by: Brian Brooks <brian.brooks@arm.com>
Reviewed-by: Yi He <yi.he@arm.com>
Verified-by: Lijian Zhang <lijian.zhang@arm.com>
5 years agoAdd u32x4_extend_to_u64x2 for aarch64 using NEON intrinsics 08/14608/5
Sirshak Das [Wed, 22 Aug 2018 06:04:33 +0000 (14:04 +0800)]
Add u32x4_extend_to_u64x2 for aarch64 using NEON intrinsics

This is used in vlib_get_buffers_with_offset.

Change-Id: If4ff776bc97d21a22e870300b164eeb6a5ec3638
Signed-off-by: Sirshak Das <sirshak.das@arm.com>
Reviewed-by: Steve Capper <steve.capper@arm.com>
Reviewed-by: Brian Brooks <brian.brooks@arm.com>
Reviewed-by: Yi He <yi.he@arm.com>
Verified-by: Lijian Zhang <lijian.zhang@arm.com>
5 years agoAdd horizontal add (hadd) vector intrinsic via NEON. 04/14604/5
Sirshak Das [Fri, 3 Aug 2018 16:24:51 +0000 (11:24 -0500)]
Add horizontal add (hadd) vector intrinsic via NEON.

Having the NEON equivalent of u32x4_hadd for CLIB_HAVE_VEC128

Change-Id: I210f96f7ecb9b80b4753311a68e5e09ccda7e95b
Signed-off-by: Sirshak Das <sirshak.das@arm.com>
Reviewed-by: Steve Capper <steve.capper@arm.com>
Reviewed-by: Brian Brooks <brian.brooks@arm.com>
Reviewed-by: Yi He <yi.he@arm.com>
Verified-by: Lijian Zhang <lijian.zhang@arm.com>
5 years agovapi: support VLAs in typedefs 04/14704/4
Klement Sekera [Thu, 6 Sep 2018 17:31:36 +0000 (19:31 +0200)]
vapi: support VLAs in typedefs

Change-Id: I3af3916b68189c2174020e5ecc29a7bc45b25efa
Signed-off-by: Klement Sekera <ksekera@cisco.com>
5 years agodpdk: clean interface link information on admin down / stop 48/14748/3
Damjan Marion [Mon, 10 Sep 2018 11:55:46 +0000 (13:55 +0200)]
dpdk: clean interface link information on admin down / stop

Change-Id: Ie68814c8afc6cd67eb75da0b95dffa7b404cb7ba
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agodpdk-plugin: do not request SCTP offload, some cards do not support it while supporti... 50/14750/3
Andrew Yourtchenko [Mon, 10 Sep 2018 15:26:36 +0000 (15:26 +0000)]
dpdk-plugin: do not request SCTP offload, some cards do not support it while supporting TCP/UDP

The DPDK plugin sets all of the offload flags, which may cause an initialization failure
on the NICs that do not support SCTP offload. The VPP code does not deal with the SCTP
offload at the moment at all, so after discussing with Damjan, we agreed
the best approach to fix the issue is to not request the SCTP offload.

The output of "show hardware" for the NIC in question before this patch:

            Name                Idx   Link  Hardware
GigabitEthernet1/0/0               1    down  GigabitEthernet1/0/0
  Ethernet address 00:e0:67:09:90:4b
  Intel 82540EM (e1000)
    carrier down
    flags: pmd pmd-init-fail maybe-multiseg tx-offload intel-phdr-cksum
    rx queues 1, rx desc 1024, tx queues 1, tx desc 1024
    cpu socket 0
  Errors:
    rte_eth_dev_configure[port:0, errno:-22]: Unknown error -22

And the excerpt from "show log":

1970/ 1/ 1 00:00:00:739 notice     dpdk       Ethdev port_id=0 requested Tx offloads 0x1c doesn't match Tx offloads capabilities 0xf in rte_eth_dev_configure()

Change-Id: I159d65c02fc3f044441972205f1f0ac08e52050c
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
5 years agocmake VOM: j factor chosen based on number of cores 49/14749/2
Neale Ranns [Mon, 10 Sep 2018 12:42:56 +0000 (05:42 -0700)]
cmake VOM: j factor chosen based on number of cores

Change-Id: If1c27359cd93f6de6da9a93c3573997a51201959
Signed-off-by: Neale Ranns <nranns@cisco.com>
5 years agonew multiversioning on ethernet input nodes 46/14746/2
Damjan Marion [Mon, 10 Sep 2018 11:09:21 +0000 (13:09 +0200)]
new multiversioning on ethernet input nodes

Change-Id: I1aa196756b3ff4969b8ff2f117778d2cd87d6dd5
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agovxlan-gbp: Add support for vxlan gbp 71/14371/15
Mohsin Kazmi [Mon, 20 Aug 2018 16:32:39 +0000 (18:32 +0200)]
vxlan-gbp: Add support for vxlan gbp

This patch implements vxlan with extension of group based
policy support.

Change-Id: I70405bf7332c02867286da8958d9652837edd3c2
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
5 years agocmake: put vpp_api_test back to packaging 44/14744/2
Damjan Marion [Mon, 10 Sep 2018 08:11:17 +0000 (10:11 +0200)]
cmake: put vpp_api_test back to packaging

Change-Id: I1ccd9bd2861d5d8e57b1bd7f9e2439147f603a58
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agosession: lock app worker mq for io events 43/14743/5
Florin Coras [Sun, 9 Sep 2018 16:40:51 +0000 (09:40 -0700)]
session: lock app worker mq for io events

Also fixes vcl client/server stats and closing procedure.

Change-Id: I7d5a274ea0a3c8ea13062bf61bf402248dfe1a19
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agovlib: crash in linux_epoll_input_inline for accessing free file index [VPP-1412] 41/14741/2
Steven [Sat, 8 Sep 2018 21:06:16 +0000 (14:06 -0700)]
vlib: crash in linux_epoll_input_inline for accessing free file index [VPP-1412]

Under rare scenario, epoll may still post an event to VPP although the file
descriptor is already deleted via epoll_ctl (EPOLL_CTL_DEL) and the file
descriptor is close. VPP tries to access the free file index entry and crash.

The fix is to throw away the events which the file descriptor is already deleted.

Change-Id: Ieca3a1873aecb28630c3abc42c40341f27c2faa7
Signed-off-by: Steven <sluong@cisco.com>
(cherry picked from commit aec7297ba012e1fe4bbf85cdaec8e810aa476cea)

5 years agocmake: Move VOM to cmake 28/14628/11
Mohsin Kazmi [Mon, 3 Sep 2018 13:25:43 +0000 (15:25 +0200)]
cmake: Move VOM to cmake

Change-Id: I352dbb8e972e59a4caae4acd507153446470ce6b
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
5 years agoL2 BVI/FIB: Update L2 FIB table when BVI's MAC changes 02/14702/5
Neale Ranns [Thu, 6 Sep 2018 16:50:26 +0000 (09:50 -0700)]
L2 BVI/FIB: Update L2 FIB table when BVI's MAC changes

also some moving of l2 headers to reduce dependencies

Change-Id: I7a700a411a91451ef13fd65f9c90de2432b793bb
Signed-off-by: Neale Ranns <nranns@cisco.com>
5 years agovcl: set worker pthread stop key 37/14737/4
Florin Coras [Sat, 8 Sep 2018 00:09:35 +0000 (17:09 -0700)]
vcl: set worker pthread stop key

Otherwise the key destructor is not called on pthread_exit.

Change-Id: I11e6b9683a926eecd3f40a44aab41924ff9c3101
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agovcl: register workers in order 36/14736/2
Florin Coras [Fri, 7 Sep 2018 21:32:58 +0000 (14:32 -0700)]
vcl: register workers in order

Change-Id: Ibc74e7f7587f8b17fc0dcec20cc4530b9dd4c3ca
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agosession: detect namespace for transport apps 35/14735/4
Florin Coras [Fri, 7 Sep 2018 20:29:17 +0000 (13:29 -0700)]
session: detect namespace for transport apps

Change-Id: I770607cb213d538a29d7bd5762682981b01e9d18
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agosession: fix reentrant listens 33/14733/2
Florin Coras [Fri, 7 Sep 2018 16:13:15 +0000 (09:13 -0700)]
session: fix reentrant listens

Change-Id: I72d400401a308012b43513179870823f6f921e44
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agoupdate regex used by rpm build to find lib files 05/14705/2
Matthew Smith [Thu, 6 Sep 2018 15:59:49 +0000 (10:59 -0500)]
update regex used by rpm build to find lib files

The old expression was '*.so.*.*.*' to find shared library
files with 3 components in the version.

Building from master gives you files with 2 components in
the version (e.g. libvnet.so.18.10). So most libs were not
getting included in vpp-lib.

Change-Id: Ib89d2f5aeb2417eed1b6b851089b9d22f540a226
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
5 years agoImprove NTP / kernel time change event handling 31/14731/3
Dave Barach [Fri, 7 Sep 2018 15:12:27 +0000 (11:12 -0400)]
Improve NTP / kernel time change event handling

clib_time_verify_frequency(...) rejects clock frequency changes
greater than 1%.

vlib_worker_thread_barrier_sync_int (...) continuously checks that the
barrier hold-down timer is not unreasonably far in the future.

Change-Id: I00ecb4c20e44de5d6a9c1499fa933e3dd834d11a
Signed-off-by: Dave Barach <dbarach@cisco.com>
5 years agocmake: set packaging component for different files 19/14719/2
Damjan Marion [Fri, 7 Sep 2018 10:39:02 +0000 (12:39 +0200)]
cmake: set packaging component for different files

Change-Id: I033a1f5cdb24f77462cb5ec90a62226d93f52925
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agoCavium OcteonTX: cache line fix 16/14716/3
Marco Varlese [Fri, 7 Sep 2018 09:02:26 +0000 (11:02 +0200)]
Cavium OcteonTX: cache line fix

According to Nitin Saxena ThunderX2 machine has 64B cache line whilst
all others are 128B. According to Damjan, Nitin's previous patch broke
compilation for all non-Cavium machines. This patch should make
everything happy again.

Change-Id: I8c5c2661f9f2f9c3e9b0965a277712f9a1eefa5f
Signed-off-by: Marco Varlese <marco.varlese@suse.com>
5 years agoVPP-API: Cancel timeout thread without sending READ_TIMEOUT message. 15/14715/2
Ole Troan [Fri, 7 Sep 2018 09:01:47 +0000 (11:01 +0200)]
VPP-API: Cancel timeout thread without sending READ_TIMEOUT message.

This caused a spurious message to be sent on the API ring causing debug messages.

Change-Id: Ief4ca655ae048aad386a88fed11e8c1114378dc7
Signed-off-by: Ole Troan <ot@cisco.com>
5 years agoL2-FIB: replace bit-fields with flags 99/14699/4
Neale Ranns [Thu, 6 Sep 2018 13:22:56 +0000 (06:22 -0700)]
L2-FIB: replace bit-fields with flags

Change-Id: Ic31da442a0e0477569d53b4a72627bbb25e93365
Signed-off-by: Neale Ranns <nranns@cisco.com>
5 years agoIP route update fix when multipath and drop set 14/14714/2
Neale Ranns [Fri, 7 Sep 2018 08:48:54 +0000 (01:48 -0700)]
IP route update fix when multipath and drop set

Change-Id: I9cec7486cb6e3c5261d74d2b15a4d19469285a30
Signed-off-by: Neale Ranns <nranns@cisco.com>
5 years agoPAPI: Unpack embedded types with variable length arrays. 07/14707/2
Ole Troan [Thu, 6 Sep 2018 20:58:05 +0000 (22:58 +0200)]
PAPI: Unpack embedded types with variable length arrays.

Change-Id: Ic952ed5b837ac8409fd95e2b5cb92eb028ba0c40
Signed-off-by: Ole Troan <ot@cisco.com>
5 years agopost move-to-cmake cleanup 62/14662/3
Damjan Marion [Tue, 4 Sep 2018 10:36:11 +0000 (12:36 +0200)]
post move-to-cmake cleanup

Change-Id: I87b8f054bbb54895429578dfe565e72331beb5b2
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agoRemove qsort.c from vppinfra 11/14711/2
Damjan Marion [Fri, 7 Sep 2018 08:26:04 +0000 (10:26 +0200)]
Remove qsort.c from vppinfra

Change-Id: Ifcc2717efd242ae2016563d6f3e5cd57fe161e00
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agovcl: refactor test client to support workers 59/14659/10
Florin Coras [Wed, 5 Sep 2018 05:07:27 +0000 (22:07 -0700)]
vcl: refactor test client to support workers

Change-Id: I7fcfddc2bc7d9a64f8aa0d57ba5d11d325a15ce1
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agoAdd flush flag on del as command 02/14402/5
Hongjun Ni [Wed, 22 Aug 2018 12:21:19 +0000 (20:21 +0800)]
Add flush flag on del as command

This patch depends on https://gerrit.fd.io/r/#/c/13260

Change-Id: If94968342935ebd24cf4ebed238e6a27d94959b7
Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
5 years agogeneve: fix variable initial value 56/14656/2
Zhiyong Yang [Wed, 5 Sep 2018 01:43:57 +0000 (21:43 -0400)]
geneve: fix variable initial value

It is not good enough to initialize sw_if_index0 = 0,
sw_if_index1 = 0, as it maybe causes the first two
incoming packets to miss necessary computation.

Change-Id: Ifcab408d9514820e0daa280f4c73956db13b59be
Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
5 years agodocs: what is vpp and features and performance 94/14694/2
Scott Keeler [Thu, 6 Sep 2018 11:52:59 +0000 (07:52 -0400)]
docs: what is vpp and features and performance

Change-Id: I5a9ae39ed0429b3de001b5109268d577a281cd46
Signed-off-by: Scott Keeler <skeeler@cisco.com>
5 years agolibmemif: slave connecting bugfix 64/14664/4
Jakub Grajciar [Wed, 5 Sep 2018 10:11:35 +0000 (12:11 +0200)]
libmemif: slave connecting bugfix

in case first connecting slave fails continue connecting others
add disconnect string to memif details

Change-Id: I9d83db4724de1cab60786dca566e004016cf1e59
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
5 years agocmake: Fix compilation for OCTEONTx 01/14701/2
Nitin Saxena [Thu, 6 Sep 2018 13:45:41 +0000 (13:45 +0000)]
cmake: Fix compilation for OCTEONTx

Change-Id: I7b7183b4603076e5afac096545d820091ee7c495
Signed-off-by: Nitin Saxena <nitin.saxena@cavium.com>
5 years agoSilence warning over ignored return value (CID 187932) 06/14706/2
Chris Luke [Thu, 6 Sep 2018 19:37:28 +0000 (15:37 -0400)]
Silence warning over ignored return value (CID 187932)

- We deliberately ignore the return value.

Change-Id: If467911b019e7336cf9dc6d4c95c2cd53a5af33f
Signed-off-by: Chris Luke <chrisy@flirble.org>
5 years agovxlan: improve encap performance 60/14660/2
Zhiyong Yang [Wed, 5 Sep 2018 02:45:17 +0000 (22:45 -0400)]
vxlan: improve encap performance

1. For vxlan, prefetching one cacheline is enough.
2. Reduce vlib_increment_combined_counter functtion calling
if possible.

Change-Id: If3a72ac40c8988caaf0d5915b695f86d799f15a9
Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
5 years agoeth_mac_equal takes const pointers 00/14700/2
Neale Ranns [Thu, 6 Sep 2018 12:49:55 +0000 (08:49 -0400)]
eth_mac_equal takes const pointers

Change-Id: I5a47d30d783dcf000e3ca2bcdc46e7d93654cc37
Signed-off-by: Neale Ranns <nranns@cisco.com>
5 years agovxlan_gpe: optimize encap performance 44/14644/4
Zhiyong Yang [Tue, 4 Sep 2018 10:33:18 +0000 (06:33 -0400)]
vxlan_gpe: optimize encap performance

The patch can reduce 13 cycles per packet for the graph node
vxlan-gpe-encap and increases 5% or so vxlan_gpe encap throughput
on Haswell platform for the best case (All pkts have the same
sw_if_index).

Change-Id: I9c70fd3e0f2f0a9d922cf64970d0b0d51b772024
Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
5 years agoDOC ONLY: cmake / ninja build system doc 52/14652/2
Dave Barach [Tue, 4 Sep 2018 20:55:53 +0000 (16:55 -0400)]
DOC ONLY: cmake / ninja build system doc

Change-Id: I69cdcf3f0940f8a5f60203034688a0c63446f65c
Signed-off-by: Dave Barach <dave@barachs.net>
5 years agoFix Telnet option processing issue 84/14684/2
Chris Luke [Thu, 6 Sep 2018 01:00:52 +0000 (21:00 -0400)]
Fix Telnet option processing issue

- A check for the length of the buffer should have used the provided
  'len' variable, not 'vec_len' since the buffer pointer may be
  within a vector, but not the start of one. 'vec_len' reports 0
  in that case, causing premature exit from the options processing
  loop and a wait for further input before it checks the next option.
- Also add TCP_NODELAY to CLI sockets to disable Nagle on TCP
  connections for a possible improvement in interactive response.

Change-Id: Ie1f53c003ca7d66bed51f437d298183215bad38c
Signed-off-by: Chris Luke <chrisy@flirble.org>
5 years agoacl-plugin: VPP-1400: fix crash when removing a session entry 92/14692/1
Andrew Yourtchenko [Wed, 5 Sep 2018 10:30:35 +0000 (12:30 +0200)]
acl-plugin: VPP-1400: fix crash when removing a session entry

bihash deletion operation may in turn do underlying memory operations,
so ensure it is using the correct (private) heap.

Change-Id: Ibef7ad7f9db6fa83da02316bf7509072ce579bc0
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
(cherry picked from commit f74b4d2b559b1d5697fd625d9c8e0f76ba5a4463)

5 years agovcl/session/svm: fix coverity warnings 57/14657/3
Florin Coras [Wed, 5 Sep 2018 02:47:52 +0000 (19:47 -0700)]
vcl/session/svm: fix coverity warnings

Change-Id: I27532b3ab244dc95955e836a42b229a6e4e32818
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agosession: support multiple worker binds 03/14603/15
Florin Coras [Fri, 31 Aug 2018 21:31:41 +0000 (14:31 -0700)]
session: support multiple worker binds

Allows app workers to listen on the same session endpoint. Incoming
connects are spread across the workers in a round-robin fashion

Change-Id: Ib5f5817230d9abc6127a85cdbdcad70d980c0f7f
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agoEnum type on the API for QoS sources 80/14680/3
Neale Ranns [Wed, 5 Sep 2018 16:36:05 +0000 (09:36 -0700)]
Enum type on the API for QoS sources

Change-Id: I877541ede6e26581c659821502f23b777903b82f
Signed-off-by: Neale Ranns <nranns@cisco.com>
5 years agoNAT: fix maximum out of order fragments (VPP-1399) 72/14672/2
Matus Fabian [Wed, 5 Sep 2018 13:01:55 +0000 (06:01 -0700)]
NAT: fix maximum out of order fragments (VPP-1399)

All fragments should be dropped when max_frag is 1 and 2 non-initial fragments are received before first fragment.

Change-Id: Id0c968f45629698e347e8226c5926f27b48b82d6
Signed-off-by: Matus Fabian <matfabia@cisco.com>
5 years agoNAT: test cleanup (VPP-1252) 61/14661/2
Matus Fabian [Wed, 5 Sep 2018 06:45:13 +0000 (23:45 -0700)]
NAT: test cleanup (VPP-1252)

"assertEqual(len(capture), <expected packet count>)" no more needed since it is done by get_capture

Change-Id: I1cbe223cf55198cec946b8ea0883f2a4fa632005
Signed-off-by: Matus Fabian <matfabia@cisco.com>
5 years agoFix test summary and retries 79/14679/2
juraj.linkes [Wed, 5 Sep 2018 16:13:45 +0000 (18:13 +0200)]
Fix test summary and retries

There was an issue when tests crashed and weren't properly retried.

Change-Id: Id5ef828ecc9a8dc0f08c50183721db06e162e6c3
Signed-off-by: juraj.linkes <juraj.linkes@pantheon.tech>
5 years agoSTATS: Update Prometheus port 70/14670/3
Ole Troan [Wed, 5 Sep 2018 12:16:54 +0000 (14:16 +0200)]
STATS: Update Prometheus port

Update temporary port allocation with fixed allocated from:
https://github.com/prometheus/prometheus/wiki/Default-port-allocations

Change-Id: I99a7e069fb95d00884458aeacaba06e4713fbb76
Signed-off-by: Ole Troan <ot@cisco.com>
5 years agoAdd missing API MAC address encode implementation 73/14673/1
Neale Ranns [Wed, 5 Sep 2018 12:56:29 +0000 (08:56 -0400)]
Add missing API MAC address encode implementation

Change-Id: I4cb073f23a7f24f0fc16f2eda8b869dbe657f71b
Signed-off-by: Neale Ranns <nranns@cisco.com>
5 years agoacl-plugin: VPP-1400: VPP may crash when performing ACL modifications on applied... 34/14634/3
Andrew Yourtchenko [Wed, 29 Aug 2018 15:23:03 +0000 (17:23 +0200)]
acl-plugin: VPP-1400: VPP may crash when performing ACL modifications on applied ACLs

The partition_split() did not increment the refcount when using a mask type index,
thus subsequent modifications potentially resulted in double frees and in the best case
immediate crash, in the worst case delayed crash in another place.

Introduce the lock_mask_type_index() and call it, move the mask type index
related functions closer to the top of the file.

Make the assignment of the new mask type indices
for the tuplemerge case to use the assign_mask_type_index().

Keep some debugs in case we need to investigate this further at some point.

Change-Id: Iae370f5cd92e1fe1442480db34656a8a3442dbc0
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
(cherry picked from commit 1edc406da3d4f6e63de2f278360b5753f55c00df)

5 years agoNAT: add support for configurable port range (VPP-1346) 43/14643/2
Matus Fabian [Tue, 4 Sep 2018 10:55:45 +0000 (03:55 -0700)]
NAT: add support for configurable port range (VPP-1346)

Change-Id: I6882b6daa05db866fe6e78a62b380ec331507f74
Signed-off-by: Matus Fabian <matfabia@cisco.com>
5 years agoAdd Load Balancer plugin Maintainers 36/14636/3
Hongjun Ni [Tue, 4 Sep 2018 09:45:06 +0000 (17:45 +0800)]
Add Load Balancer plugin Maintainers

Change-Id: Ic6da1584ad8e03f2142fe10a8348fb0278c5060b
Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
5 years agoavf: fix random rss key 41/14641/2
Jakub Grajciar [Tue, 4 Sep 2018 09:20:23 +0000 (11:20 +0200)]
avf: fix random rss key

Change-Id: I622cdb969ea489d333888b90c15ab57c1820e2db
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
5 years agol2_output:skip processing if no features are enabled 14/14614/3
Eyal Bari [Sun, 2 Sep 2018 14:08:22 +0000 (17:08 +0300)]
l2_output:skip processing if no features are enabled

Change-Id: I7fcc082376b451c6179ec2ef58f98c931adfed27
Signed-off-by: Eyal Bari <ebari@cisco.com>
5 years agoAdd JVPP for NSH plugin 49/14649/2
Hongjun Ni [Tue, 4 Sep 2018 22:46:20 +0000 (06:46 +0800)]
Add JVPP for NSH plugin

Change-Id: Ie904cbaf571165021e49c6c1052cee3205cde3ae
Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
5 years agovcl: refactor test apps to use multiple workers 85/14585/8
Florin Coras [Fri, 31 Aug 2018 01:49:13 +0000 (18:49 -0700)]
vcl: refactor test apps to use multiple workers

Change-Id: Ia931377004c2996826a5f504d16c3c934ca3b70d
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agoFixed showing negative count in stats show CLI 37/14637/2
Naoyuki Mori [Tue, 4 Sep 2018 01:36:54 +0000 (10:36 +0900)]
Fixed showing negative count in stats show CLI

Some counters (bytes, pkts) are formatted as signed instead of unsigned
in "show hardware-interfaces" and "show lb".
These stats counters are declared as u64.

Change-Id: Id1b588188bff4e36402beb8d07f779e9a5193956
Signed-off-by: Naoyuki Mori <naoyuki.mori@intel.com>
5 years agoadd option to allow user to set ciphers 90/14490/2
Ping Yu [Mon, 27 Aug 2018 13:07:13 +0000 (09:07 -0400)]
add option to allow user to set ciphers

Orignal code hard code TLS ciphers, and this patch allows user to
set ciphers via CLI, so that user can perform the TLS testing
without re-building the code.

Change-Id: I0d497f6d906af25bc7a33cee5747f9a1d63e0683
Signed-off-by: Ping Yu <ping.yu@intel.com>
5 years agoDeprecate old buffer replication scheme 27/14627/4
Damjan Marion [Mon, 3 Sep 2018 13:41:45 +0000 (15:41 +0200)]
Deprecate old buffer replication scheme

Change-Id: I1f54b994425c58776e1445c8d9fe142e7a644d3d
Signed-off-by: Damjan Marion <damarion@cisco.com>