vpp.git
5 years agoMake the loss / delay sim available as an output feature 71/18671/9
Dave Barach [Wed, 3 Apr 2019 15:20:06 +0000 (11:20 -0400)]
Make the loss / delay sim available as an output feature

Add binary api and debug cli support.

Rewrite for speed: enqueue vlib_buffer_t's to the wheel, instead of
memcpy'ing data. Quad-loop the output feature / x-connect (interior)
node. Prefetch wheel entries in the input node.

Save packet-generator-based unit-test setup in extras/nsim.

Simple config example:

set nsim delay 20 ms bandwidth 1 gbit packet-size 1024
nsim output-feature enable-disable GigabitEthernet3/0/0

Change-Id: I852a32d4eb596e7e2aa1d9b30bf3b53525e39fd1
Signed-off-by: Dave Barach <dave@barachs.net>c
5 years agoudp: fix copyright typo 94/18794/2
Florin Coras [Wed, 10 Apr 2019 14:08:01 +0000 (07:08 -0700)]
udp: fix copyright typo

Change-Id: I74a61e941176321da0767affff0fb023f4c54c35
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agoInitial 19.08-rc0 commit 03/18803/1 v19.08-rc0
Dave Wallace [Wed, 10 Apr 2019 21:51:47 +0000 (17:51 -0400)]
Initial 19.08-rc0 commit

- Add 19.08 Release notes placeholder.

Change-Id: Ide5978b584e608298c37a15175360c4b16c46f30
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
5 years agomake test: fix redundant setUp() in template_ipsec.py 98/18798/2
Dave Wallace [Wed, 10 Apr 2019 16:46:43 +0000 (12:46 -0400)]
make test: fix redundant setUp() in template_ipsec.py

Change-Id: I81b3888816b064bd6bf0f38f5380dae93d7bb349
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
5 years agocmake: fix errors in external when building past point-release 51/18551/2
Andrew Yourtchenko [Wed, 27 Mar 2019 14:22:40 +0000 (15:22 +0100)]
cmake: fix errors in external when building past point-release

Change-Id: I23b4816e4ef2c6a2fa825fbd063ea25ff2024151
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
5 years agocrypto: Intel IPSEC-MB engine 48/18748/8
Neale Ranns [Mon, 8 Apr 2019 07:36:50 +0000 (07:36 +0000)]
crypto: Intel IPSEC-MB engine

A plugin to use Intel IPSec MB library as a VPP crypto engine

This changes uses concepts from:
  https://gerrit.fd.io/r/#/c/17301/
hence that author's work is acknowledge below

Change-Id: I2bf3beeb10f3c9706fa5efbdc9bc023e310f5a92
Signed-off-by: Neale Ranns <nranns@cisco.com>
Signed-off-by: Klement Sekera <ksekera@cisco.com>
5 years agoethernet: fix packet tracing 93/18793/3
Benoît Ganne [Wed, 10 Apr 2019 12:21:11 +0000 (14:21 +0200)]
ethernet: fix packet tracing

Node tracing condition was wrongly reversed by commit "5ecd5a5d15 Move
pcap rx/tx trace code out of the dpdk plugin".
This prevented packet tracing in ethernet-input node and also impacted
performance in the no tracing case.

Change-Id: I345a11191d027c6c4ec474a2901995338050680a
Signed-off-by: Benoît Ganne <bganne@cisco.com>
5 years agomake test: Initial QUIC test 78/18778/3
Dave Wallace [Wed, 10 Apr 2019 01:01:09 +0000 (21:01 -0400)]
make test: Initial QUIC test

- QUIC echo client/server transfer test

Change-Id: I69874975c9789fe9b4e85c5993bf09b7255d87d0
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
5 years agoIPSEC: for each engine and algorithm tests 95/18795/4
Neale Ranns [Wed, 10 Apr 2019 12:39:10 +0000 (12:39 +0000)]
IPSEC: for each engine and algorithm tests

refactor the IPSEC tests a bit so we can parameterise
the setup.

Change-Id: I777e5eb8f29ca1dce3dd273ebd05dae5846790af
Signed-off-by: Neale Ranns <nranns@cisco.com>
5 years agosession: binary api app names as vectors 75/18775/3
Florin Coras [Tue, 9 Apr 2019 23:13:18 +0000 (16:13 -0700)]
session: binary api app names as vectors

Change-Id: Iae358365de8ccbc0441b14f21ba6b365cbfec09a
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agoTests Cleanup: Fix missing calls to setUpClass/tearDownClass. 30/18230/4
Paul Vinciguerra [Wed, 13 Mar 2019 02:23:27 +0000 (19:23 -0700)]
Tests Cleanup: Fix missing calls to setUpClass/tearDownClass.

Continuation/Part 2 of https://gerrit.fd.io/r/#/c/17092/

Change-Id: Id0122d84eaf2c05d29e5be63a594d5e528ee7c9a
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
5 years agoAPI: Fix shared memory only action handlers. 85/18785/2
Ole Troan [Wed, 10 Apr 2019 07:44:23 +0000 (09:44 +0200)]
API: Fix shared memory only action handlers.

Some API action handlers called vl_msg_ai_send_shmem()
directly. That breaks Unix domain socket API transport.

A couple (bond / vhost) also tried to send a sw_interface_event
directly, but did not send the message to all that had
registred interest. That scheme never worked correctly.
Refactored and improved the interface event code.

Change-Id: Idb90edfd8703c6ae593b36b4eeb4d3ed7da5c808
Signed-off-by: Ole Troan <ot@cisco.com>
5 years agoquic: add dummy accepted cb 77/18777/2
Florin Coras [Wed, 10 Apr 2019 00:13:11 +0000 (17:13 -0700)]
quic: add dummy accepted cb

Add dummy function to avoid session layer warning. Also, decrease
default debug level to avoid startup quic init notifications.

Change-Id: I2964fc15a8d93d78c976ed7c333e0cc5746c069e
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agoIPSEC: remove double byte swap of IP addresses 86/18786/1
Neale Ranns [Wed, 10 Apr 2019 08:24:03 +0000 (08:24 +0000)]
IPSEC: remove double byte swap of IP addresses

Change-Id: I8c03c4aa90fb0056e11e0f234999c25d7839d759
Signed-off-by: Neale Ranns <nranns@cisco.com>
5 years agoMake tcp/udp/icmp compute checksum safer for buffer-chain case 65/18765/3
John Lo [Tue, 9 Apr 2019 14:23:56 +0000 (10:23 -0400)]
Make tcp/udp/icmp compute checksum safer for buffer-chain case

Change-Id: I046e481a67fbeffdaa8504c8d77d232b986a61ee
Signed-off-by: John Lo <loj@cisco.com>
5 years agordma: add multiqueue support 68/18768/2
Benoît Ganne [Wed, 3 Apr 2019 13:16:28 +0000 (15:16 +0200)]
rdma: add multiqueue support

Add support for multiqueue for RDMA devices.

Change-Id: I78a2481cec6747494c670cc776475828be3af55b
Signed-off-by: Benoît Ganne <bganne@cisco.com>
5 years agordma-core: add debug build option 67/18767/2
Benoît Ganne [Tue, 9 Apr 2019 07:00:42 +0000 (09:00 +0200)]
rdma-core: add debug build option

Add option RDMA_CORE_DEBUG=[yn] build option. rdma-core package is built
in Release (-O2) mode by default, but Debug (-O0 -g) mode can be
selected by eg.
 make install-ext-deps RDMA_CORE_DEBUG=y

Change-Id: Id4db5ef1e7b13c44d478755a0bfbdbe56cfc13df
Signed-off-by: Benoît Ganne <bganne@cisco.com>
5 years agosession: fix session flags 69/18769/3
Florin Coras [Tue, 9 Apr 2019 18:05:13 +0000 (11:05 -0700)]
session: fix session flags

Change-Id: I681169b82c661b7f0bf19f09d07d76ac1d3ed173
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agoFix some python3, cleanup cpu allocation 15/18715/3
jdenisco [Fri, 5 Apr 2019 16:25:50 +0000 (12:25 -0400)]
Fix some python3, cleanup cpu allocation

Change-Id: I97cecc964f341720d8c4894656637082db5886d7
Signed-off-by: jdenisco <jdenisco@cisco.com>
5 years agonat: initialize fq_in2out_output_index 25/18625/4
Matthew Smith [Mon, 1 Apr 2019 21:27:00 +0000 (16:27 -0500)]
nat: initialize fq_in2out_output_index

When using the output feature ('postrouting') outbound translation,
no packets are passed when using worker threads. The frame queue for
in2out packets to be handed off between threads is never allocated.
This is because that allocation only happens if the value of
fq_in2out_output_index == ~0, but fq_in2out_output_index is never
initialized prior to checking that.

Initialize fq_in2out_output_index to ~0 so a frame queue will be
allocated when there are worker threads.

Change-Id: I0836685eb611348643c11ac7e4d0cab935a29384
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
5 years agoGBP: drop and contract counters 94/18594/7
Neale Ranns [Thu, 28 Mar 2019 14:56:23 +0000 (07:56 -0700)]
GBP: drop and contract counters

Change-Id: Ib436512a26e53f70f7b5e47bf34224ab73e5244e
Signed-off-by: Neale Ranns <nranns@cisco.com>
5 years agofixing typos 32/18732/4
Jim Thompson [Mon, 8 Apr 2019 08:22:21 +0000 (03:22 -0500)]
fixing typos

Change-Id: I215e1e0208a073db80ec6f87695d734cf40fabe3
Signed-off-by: Jim Thompson <jim@netgate.com>
5 years agovirtio: Fix the coverity warnings 36/18736/2
Mohsin Kazmi [Mon, 8 Apr 2019 08:36:18 +0000 (10:36 +0200)]
virtio: Fix the coverity warnings

Change-Id: I7c6e4bf2abf08193e54a736510c07eeacd6aebe7
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
5 years agoIPSEC TEST: various hash alogrithms 47/18747/3
Neale Ranns [Mon, 8 Apr 2019 14:48:23 +0000 (14:48 +0000)]
IPSEC TEST: various hash alogrithms

Change-Id: I925aa5bf9472e81f98072d63df499b19e6ddf43d
Signed-off-by: Neale Ranns <nranns@cisco.com>
5 years agohost stack: update stale copyright 46/18746/3
Florin Coras [Mon, 8 Apr 2019 14:42:30 +0000 (07:42 -0700)]
host stack: update stale copyright

Change-Id: I33cd6e44d126c73c1f4c16b2041ea607b4d7f39f
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agordma: fix DPDK MLX driver conflict 41/18741/2
Benoît Ganne [Mon, 8 Apr 2019 11:45:33 +0000 (13:45 +0200)]
rdma: fix DPDK MLX driver conflict

VPP rdma driver relies on an internal rdma-core not compatible with DPDK
MLX driver. Force the use of external rdma-core through
RTE_IBVERBS_LINK_DLOPEN DPDK build option and make sure internal
rdma-core symbols are not leaked outside of the rdma plugin.

Change-Id: I5b2281259f517c4e109d388d172b72eadd69986f
Signed-off-by: Benoît Ganne <bganne@cisco.com>
5 years agovlib-punt: fix error node counting 38/18738/2
Neale Ranns [Mon, 8 Apr 2019 09:37:40 +0000 (02:37 -0700)]
vlib-punt: fix error node counting

Change-Id: I271aa8b8f4917c187ad52db774e4ad26677e2b82
Signed-off-by: Neale Ranns <nranns@cisco.com>
5 years agovppinfra: u32x8 transpose 34/18734/2
Damjan Marion [Mon, 8 Apr 2019 08:14:51 +0000 (10:14 +0200)]
vppinfra: u32x8 transpose

Change-Id: I7d39cb184f1f9ad24276183c29969327681a1f82
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agominor spelling errors (both in comments) 27/18727/2
Jim Thompson [Mon, 8 Apr 2019 07:19:03 +0000 (02:19 -0500)]
minor spelling errors (both in comments)

Change-Id: I9282a838738d0ba54255bef347abf4735be29820
Signed-off-by: Jim Thompson <jim@netgate.com>
5 years agoGBP: coverity uninitialised variable warning 24/18724/1
Neale Ranns [Mon, 8 Apr 2019 06:03:05 +0000 (23:03 -0700)]
GBP: coverity uninitialised variable warning

Change-Id: Ic6e23f497fd91dcb1441f9f4d88a182712e69d3f
Signed-off-by: Neale Ranns <nranns@cisco.com>
5 years agocrypto: add support for AEAD and AES-GCM 13/18713/4
Damjan Marion [Fri, 29 Mar 2019 12:47:54 +0000 (13:47 +0100)]
crypto: add support for AEAD and AES-GCM

Change-Id: Iff6f81a49b9cff5522fbb4914d47472423eac5db
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agohttp_server: add timer wheel for session cleanup 20/18720/6
Florin Coras [Sat, 6 Apr 2019 01:23:08 +0000 (18:23 -0700)]
http_server: add timer wheel for session cleanup

Change-Id: I494a6a7f4818a224376ec9150cff3872a3aec659
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agocrypto: coverity issues 01/18701/5
Damjan Marion [Fri, 5 Apr 2019 09:11:04 +0000 (11:11 +0200)]
crypto: coverity issues

Change-Id: I9db1b74097c9df587b9265b14a969d347bcb731a
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agoPipe: fix double count on TX (TX counting is done in interface-output) 99/18699/3
Neale Ranns [Fri, 5 Apr 2019 08:35:57 +0000 (01:35 -0700)]
Pipe: fix double count on TX (TX counting is done in interface-output)

Change-Id: I550313a36ae02eb3faa2f1a5e3614f55275a00cf
Signed-off-by: Neale Ranns <nranns@cisco.com>
5 years agogbp: Add gbp bd flags unit test 79/18679/4
Mohsin Kazmi [Thu, 4 Apr 2019 11:22:15 +0000 (13:22 +0200)]
gbp: Add gbp bd flags unit test

Change-Id: I5b18cb84bec88f5514cacd2df61b5ce3c70abd77
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
5 years agoDoxygen: clean up vec.h 11/18711/3
Dave Wallace [Fri, 5 Apr 2019 14:30:44 +0000 (10:30 -0400)]
Doxygen: clean up vec.h

Change-Id: I2294982e6df41a13e61783e18f947da0bdd4b499
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
5 years agoquic: support addition of fifo segments 19/18719/2
Florin Coras [Fri, 5 Apr 2019 22:25:50 +0000 (15:25 -0700)]
quic: support addition of fifo segments

Change-Id: I8cb03ee832e77d2b21d47aa7a44579c283fb1054
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agomake the output of "show api dump file <filename> compare-current" doxygen-friendly 37/16937/6
Andrew Yourtchenko [Mon, 21 Jan 2019 15:28:48 +0000 (16:28 +0100)]
make the output of "show api dump file <filename> compare-current" doxygen-friendly

The current output of the API diff requires some massaging
to appear like a table in the docs generated by doxygen.
This change eliminates this need.

Change-Id: Ic9269a0e5e232e4d01a0695561e4f90eee287327
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
5 years agoquic: update app ns on connect 17/18717/2
Florin Coras [Fri, 5 Apr 2019 20:35:21 +0000 (13:35 -0700)]
quic: update app ns on connect

Change-Id: I0aa220b1f5a72d8bbc6d147830766790d7f6d9bf
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agocrypto: fix init dependency 91/18691/3
Filip Tehlar [Thu, 4 Apr 2019 16:32:18 +0000 (16:32 +0000)]
crypto: fix init dependency

Change-Id: Ie8dcd9fa0d0487b146eaa62113a5ee06bd3e7d3b
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
5 years agordma: more batching, compile rdma-core in release mode 00/18700/3
Benoît Ganne [Wed, 3 Apr 2019 14:03:37 +0000 (16:03 +0200)]
rdma: more batching, compile rdma-core in release mode

rx: add batching for WC processing and release
tx: improve batching for WC submission and processing
rdma-core: compile in release mode to remove assert()

Change-Id: I5fb8736db36b50f8b758cd688100477b67e72d80
Signed-off-by: Benoît Ganne <bganne@cisco.com>
5 years agosession: fix app name formatting 95/18695/3
Florin Coras [Fri, 5 Apr 2019 05:31:50 +0000 (22:31 -0700)]
session: fix app name formatting

Change-Id: Iea88ce5f6628e131e507ba45a3dbb2de7e6c1498
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agofix pcap_trace cli output issue 29/18529/3
Jack Xu [Tue, 26 Mar 2019 17:46:00 +0000 (13:46 -0400)]
fix pcap_trace cli output issue

Change-Id: Ia2be56e198c960788430705b356170f8cc12c450
Signed-off-by: Jack Xu <jack.c.xu@ericsson.com>
5 years agoFix failing centos jobs due to yum replacing python34 with python36. 09/18709/2
Paul Vinciguerra [Fri, 5 Apr 2019 13:45:56 +0000 (06:45 -0700)]
Fix failing centos jobs due to yum replacing python34 with python36.

vppapigen is failing because the ply library is installed under
python34.

09:04:49 Dependencies Resolved
09:04:49
09:04:49 ================================================================================
09:04:49  Package                Arch           Version               Repository    Size
09:04:49 ================================================================================
09:04:49 Installing:
09:04:49  python36               x86_64         3.6.6-5.el7           epel          66 k
09:04:49      replacing  python34.x86_64 3.4.9-2.el7
09:04:49  python36-libs          x86_64         3.6.6-5.el7           epel         8.5 M
09:04:49      replacing  python34-libs.x86_64 3.4.9-2.el7

----
09:07:27 cd /w/workspace/vpp-verify-master-centos7/build-root/build-vpp-native/vpp/vlibmemory && mkdir -p /w/workspace/vpp-verify-master-centos7/build-root/build-vpp-native/vpp/vlibmemory && /w/workspace/vpp-verify-master-centos7/src/tools/vppapigen/vppapigen --includedir /w/workspace/vpp-verify-master-centos7/src --input /w/workspace/vpp-verify-master-centos7/src/vlibmemory/memclnt.api JSON --output /w/workspace/vpp-verify-master-centos7/build-root/build-vpp-native/vpp/vlibmemory/memclnt.api.json
09:07:27 Traceback (most recent call last):
09:07:27   File "/w/workspace/vpp-verify-master-centos7/src/tools/vppapigen/vppapigen", line 4, in <module>
09:07:27     import ply.lex as lex
09:07:27 ModuleNotFoundError: No module named 'ply'

Change-Id: Ica3b408991d26262418576cffc848fb2a8cb0224
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
5 years agovlib: fix "foo_msg" and "foo_msg_reply" in API message table triggering the "definini... 39/16939/3
Andrew Yourtchenko [Mon, 21 Jan 2019 15:39:33 +0000 (16:39 +0100)]
vlib: fix "foo_msg" and "foo_msg_reply" in API message table triggering the "defininion changed" output

strncmp() succeeds if the i+1th message is "foo_reply",
because the comparison terminates early after "foo" -
which triggers the "definition changed" rather than
"only in ..." message.

Fix also the case where i+1th element does not exist.

Change-Id: I127136410491d9dd102e160fd831fcf6f0bd3a9f
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
5 years agoQUIC: Build cleanup 90/18690/2
Dave Wallace [Thu, 4 Apr 2019 16:30:03 +0000 (12:30 -0400)]
QUIC: Build cleanup

- Remove redundant CMAKE variable definition.

Change-Id: I04992ec921cb5f175741c1bdd13613cfc291aeab
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
5 years agoIPSEC: punt reasons; SPI=0, no-tunnel 87/18687/3
Neale Ranns [Thu, 4 Apr 2019 12:43:36 +0000 (12:43 +0000)]
IPSEC: punt reasons; SPI=0, no-tunnel

Change-Id: If76992e283a27fa193a6865257ab3aa764066e48
Signed-off-by: Neale Ranns <nranns@cisco.com>
5 years agotcp: do not delete session on establish pop 75/18675/5
Florin Coras [Thu, 4 Apr 2019 00:52:43 +0000 (17:52 -0700)]
tcp: do not delete session on establish pop

Also:
- force reset if wait close pops in fin-wait-1 with unsent data
- adds more event logging.

Change-Id: I4ddada046214fa71e17514cdec57b3026f84a283
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agoldp: ignore TCP_CORK socket option 92/18692/1
Florin Coras [Thu, 4 Apr 2019 19:55:30 +0000 (12:55 -0700)]
ldp: ignore TCP_CORK socket option

Change-Id: Iffc3d2fbb478d5cd228959f4f2653d0508887489
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agosession: fix http server rpc to main 88/18688/3
Florin Coras [Thu, 4 Apr 2019 15:27:58 +0000 (08:27 -0700)]
session: fix http server rpc to main

Change-Id: I3e3820da5a9de97070bceecd3ea53b5351654319
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agotcp: properly validate acks between snd_nxt and una_max 60/18660/2
Florin Coras [Wed, 3 Apr 2019 04:43:38 +0000 (21:43 -0700)]
tcp: properly validate acks between snd_nxt and una_max

Change-Id: I37af3cb5fe3fe8556acbf8350f88663dca9ca8a9
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agoipsec: trunc_size -> icv_size 78/18678/2
Damjan Marion [Thu, 4 Apr 2019 10:25:44 +0000 (12:25 +0200)]
ipsec: trunc_size -> icv_size

Change-Id: Idb661261c2191adda963a7815822fd7a27a9e7a0
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agocrypto: pass multiple ops to handler 74/18674/5
Damjan Marion [Wed, 3 Apr 2019 16:39:27 +0000 (18:39 +0200)]
crypto: pass multiple ops to handler

Change-Id: I438ef1f50d83560ecc608f898cfc61d7f51e1724
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agoGBP: Counters per-contract 76/18676/3
Neale Ranns [Thu, 4 Apr 2019 07:35:37 +0000 (00:35 -0700)]
GBP: Counters per-contract

Change-Id: I28bb9e3d3ea3a99a9e24801ef5241a0099186108
Signed-off-by: Neale Ranns <nranns@cisco.com>
5 years agotcp: shorten wait in fin-wait-1 with fin rcvd 59/18659/6
Florin Coras [Wed, 3 Apr 2019 02:03:23 +0000 (19:03 -0700)]
tcp: shorten wait in fin-wait-1 with fin rcvd

Change-Id: Ifddc32ab3da0e691ac3df74ff26e19f6fa00fef7
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agoAdd crypto_ia32 plugin 45/18645/9
Damjan Marion [Tue, 2 Apr 2019 17:06:50 +0000 (19:06 +0200)]
Add crypto_ia32 plugin

Currently this plugin provies AES CBC optimized code. Encryption code
supports parallel encryption of 4 buffers with different size and key
which improves performance 4x compared to standard serialized aproach.

On Skylake Server measured performance is around 0.71 clocks/byte with
256 buffers with size in range between 7000 and 8000 bytes.
Measured performance includes overhead of processing crypto ops.

Change-Id: I5ec2afee708fcdf16a4234926534dd64ff1155c3
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agogbp: Add bd flags 84/18484/6
Mohsin Kazmi [Fri, 22 Mar 2019 14:13:31 +0000 (15:13 +0100)]
gbp: Add bd flags

Add flags for unknown unicast drop, multicast and broadcast
drop and arp unicast.

Change-Id: I1203137510b8bee0a20ecfe5f2efad8043d4bac6
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
5 years agoFix problem building rdma-core. 00/18600/3
Thomas F Herbert [Fri, 29 Mar 2019 19:41:48 +0000 (15:41 -0400)]
Fix problem building rdma-core.

Recent patches add rdma-core.
They are not building in Centos because of differences
in cmake. This patch fixes that problem by defining
CMAKE for all external builds.

Change-Id: I3eea869226385207500c5a1217bd7330140ca462
Signed-off-by: Thomas F Herbert <therbert@redhat.com>
5 years agolacp: passive mode support [VPP-1551] 35/18035/4
Steven Luong [Tue, 5 Mar 2019 17:38:33 +0000 (09:38 -0800)]
lacp: passive mode support [VPP-1551]

By definition, passive mode means the node does not start sending lacp pdu until
it first hears from the partner or remote.

- Rename ptx machine's BEGIN state to NO_PERIODIC state.
- Put periodic machine in NO_PERIDOIC state when the interface is enabled for
lacp. ptx machine will transition out of NO_PERIODIC state when the local node
hears from the remote or when the local node is configured for active mode.
- Also add send and receive statistics for debugging.

Change-Id: I747953b9595ed31328b2f4f3e7a8d15d01e04d7f
Signed-off-by: Steven Luong <sluong@cisco.com>
5 years agoIPSEC: correctly size per-thread data 67/18667/2
Neale Ranns [Wed, 3 Apr 2019 13:36:56 +0000 (13:36 +0000)]
IPSEC: correctly size per-thread data

Change-Id: Idfc05cd0e09b50a26eaf747b7c49f720b009159a
Signed-off-by: Neale Ranns <nranns@cisco.com>
5 years agovirtio: Add support for multiqueue 06/17306/8
Mohsin Kazmi [Tue, 2 Apr 2019 11:45:08 +0000 (11:45 +0000)]
virtio: Add support for multiqueue

Change-Id: Id71ffa77e977651f219ac09d1feef334851209e1
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
5 years agopci: Fix the crash on deleting the pci device 35/18635/2
Mohsin Kazmi [Tue, 2 Apr 2019 11:09:49 +0000 (11:09 +0000)]
pci: Fix the crash on deleting the pci device

clib_file_index is 0 if it is not initialized result in
following assertion on deleteing the pci device.

vpp/src/vppinfra/file.h:122 (clib_file_del_by_index) assertion `! pool_is_free (um->file_pool, _e)' fails

This patch fixes the issue by initializing the clib_file_index to -1.

Change-Id: I51d23f18e7ccf3143a4765d05aafc1363a007737
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
5 years agordma: tx: fix stats and add batching 63/18663/3
Benoît Ganne [Mon, 1 Apr 2019 14:05:22 +0000 (16:05 +0200)]
rdma: tx: fix stats and add batching

Tx stats are no longer counted twice.
Submit tx packets as a single batch per vector instead of per-packet

Change-Id: I26820b21f23842b3a67ace0b939095f3550d3856
Signed-off-by: Benoît Ganne <bganne@cisco.com>
5 years agoIPSEC: show CLI improvements 65/18665/2
Neale Ranns [Wed, 3 Apr 2019 13:17:50 +0000 (13:17 +0000)]
IPSEC: show CLI improvements

Change-Id: I48a4b0a16f71cbab04dd0955d3ec4001074b57ed
Signed-off-by: Neale Ranns <nranns@cisco.com>
5 years agoGBP: iVXLAN reflection check 91/18591/4
Neale Ranns [Fri, 29 Mar 2019 12:08:27 +0000 (05:08 -0700)]
GBP: iVXLAN reflection check

packets should not egress on an iVXLAN tunnel if they
arrived on one.

Change-Id: I9adca30252364b4878f99e254aebc73b70a5d4d6
Signed-off-by: Neale Ranns <nranns@cisco.com>
5 years agoQUIC: Build system update 19/18619/3
Aloys Augustin [Mon, 1 Apr 2019 14:43:29 +0000 (16:43 +0200)]
QUIC: Build system update

Download a single tarball with the sources of quicly and its dependencies from github instead of cloning submodules.

Change-Id: Id9955565d46f595b3a14ba3408c24045d4acd296
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
5 years agosession: allow more fifos in preallocated segments 56/18656/4
Florin Coras [Tue, 2 Apr 2019 23:45:50 +0000 (16:45 -0700)]
session: allow more fifos in preallocated segments

Change-Id: I335c092a8965c5dbec58603e9f5063dc8e3fc3ed
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agosession: fix cli for sessions in created state 58/18658/3
Florin Coras [Wed, 3 Apr 2019 00:47:03 +0000 (17:47 -0700)]
session: fix cli for sessions in created state

Change-Id: Ie154afdc20000b905ff71e39823154db4d23eea4
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agosession: do not enable pre-input node with 0 workers 57/18657/2
Florin Coras [Wed, 3 Apr 2019 00:06:05 +0000 (17:06 -0700)]
session: do not enable pre-input node with 0 workers

Change-Id: I5c9e27b664ff1a8a74a6c1388f98af63571db7a5
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agostat-segment: scaling improvement 39/18639/2
Neale Ranns [Tue, 2 Apr 2019 11:53:26 +0000 (11:53 +0000)]
stat-segment: scaling improvement

don't walk the entire list of entries each time a new one is added

approximate/indicative numbers recorded on a VM:
after:
  50000 tunnels in 1.124443 secs, 44466.45 tunnels/sec
before:
  50000 tunnels in 5.202779 secs, 9610.25 tunnels/sec

Change-Id: Ie1155416be76f55f2a0a88360ce53e15aeace785
Signed-off-by: Neale Ranns <nranns@cisco.com>
5 years agosession: remove session logic from io rx evt sender 46/18646/3
Florin Coras [Tue, 2 Apr 2019 17:17:48 +0000 (10:17 -0700)]
session: remove session logic from io rx evt sender

Change-Id: I54fff6986ea6455aff25e0cf1b83117860859e10
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agosession: use app cb function wrappers 51/18651/2
Florin Coras [Tue, 2 Apr 2019 18:38:51 +0000 (11:38 -0700)]
session: use app cb function wrappers

Change-Id: I77ad9eb4d4c7699397aa4be6a973ef37c60db4c5
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agovppinfra: add u32x4 min / max sse4.2 inlines 44/18644/1
Damjan Marion [Tue, 2 Apr 2019 17:06:50 +0000 (19:06 +0200)]
vppinfra: add u32x4 min / max sse4.2 inlines

Change-Id: I38e0be777199654ece286fdd1a42931ed99bbe8a
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agotcp: improve rcv process ack processing 12/18612/8
Florin Coras [Mon, 1 Apr 2019 00:17:11 +0000 (17:17 -0700)]
tcp: improve rcv process ack processing

- Avoid doing cc in closing states.
- Rest connections closed with unread data

Change-Id: I97d46b0459f03ea5439eeb0f233b6c17d3e06dfd
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agolisp: use crypto lib instead of openssl directly 38/18638/2
Filip Tehlar [Thu, 21 Mar 2019 12:56:59 +0000 (05:56 -0700)]
lisp: use crypto lib instead of openssl directly

Change-Id: I9667ed16939dede55b24959045737742d1c7c449
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
5 years agoIPSEC-GRE; tests 03/18603/3
Neale Ranns [Fri, 29 Mar 2019 20:23:58 +0000 (20:23 +0000)]
IPSEC-GRE; tests

failing test disabled on ARM

Change-Id: I6b7535cd8f51fdaf9786ba77f9f61a7d8d049bbd
Signed-off-by: Neale Ranns <nranns@cisco.com>
5 years agoIPSEC: tunnel scaling - don't stack the inbould SA 32/18632/3
Neale Ranns [Tue, 2 Apr 2019 10:15:40 +0000 (10:15 +0000)]
IPSEC: tunnel scaling - don't stack the inbould SA

Change-Id: I0b47590400aebea09aa1b27de753be638e1ba870
Signed-off-by: Neale Ranns <nranns@cisco.com>
5 years agoIPSEC: remove pointless feature ordering 36/18636/1
Neale Ranns [Tue, 2 Apr 2019 12:43:34 +0000 (05:43 -0700)]
IPSEC: remove pointless feature ordering

Change-Id: Ic1b657794d23cb4d1664fc749ad2468339e376df
Signed-off-by: Neale Ranns <nranns@cisco.com>
5 years agodpdk: fix build error when mlx support enabled 26/18626/2
Matthew Smith [Mon, 1 Apr 2019 23:38:59 +0000 (18:38 -0500)]
dpdk: fix build error when mlx support enabled

When building with environment variables set to enable mlx PMD
support in DPDK, an error occurs:

CMake Error at plugins/dpdk/CMakeLists.txt:104 (vpp_plugin_find_library):
  vpp_plugin_find_library Macro invoked with incorrect arguments for macro
  named: vpp_plugin_find_library

Update a call to vpp_plugin_find_library() to include the right
number of parameters.

Change-Id: Ia0d66f93c6f94fdf822e2c3c4fe3f0ad01a90d57
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
5 years agovppinfra: fix sparse_vec_index() returning non-zero index for some nonexistent elements 79/18579/6
Andrew Yourtchenko [Thu, 28 Mar 2019 19:36:56 +0000 (20:36 +0100)]
vppinfra: fix sparse_vec_index() returning non-zero index for some nonexistent elements

If we are testing for an index whose membership bitmask happens to sit in LSB of uword,
and there is nothing else set in that uword in the member bitmask, the shortcut path
returning the valid index is taken even if the element with a given index doesn't
exist in the sparse vector. This happens because the count of leading zeroes on the
value of 0 is zero, which is equal to the value taken modulo bitsize uword.

Take care of that case.

Also add unittests showing the problem and verifying that sparse_vec_index2 does not
have the same issue.

Change-Id: I19117e13817c3e5de579b9250bb741de42491985
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
5 years agodpdk 19.02: fixed speed capability error issue 59/18559/2
Chenmin Sun [Thu, 28 Mar 2019 13:36:45 +0000 (21:36 +0800)]
dpdk 19.02: fixed speed capability error issue

Device speed capability should be specified based on different phy types
instead of a fixed value, this patch fix the issue.

Change-Id: Ia76231aefbcb0fe8370867b6e86a0d3bb9e169a0
Signed-off-by: Chenmin Sun <chenmin.sun@intel.com>
5 years agoEnhance vlib_buffer_clone to change headroom space for packet 20/18620/1
John Lo [Mon, 1 Apr 2019 15:30:07 +0000 (11:30 -0400)]
Enhance vlib_buffer_clone to change headroom space for packet

Add function vlib_buffer_clone_at_offset() so that the cloned
packets' 1st buffer will have the original packet header copied
at the specified offset (instead of current_data). This can be
used to increase headroom in the cloned packet to allow large
header encaps in case the stdandard 128B predata is not enough.
The original vlib_buffer_clone() still works the same as before.

Change-Id: I3b50c8ad7e3952568bc141710567c99a3dacddce
Signed-off-by: John Lo <loj@cisco.com>
5 years agoVPP-1576: fix a class of spurious warnings 11/18611/2
Dave Barach [Sat, 30 Mar 2019 14:24:28 +0000 (10:24 -0400)]
VPP-1576: fix a class of spurious warnings

Change-Id: I52198e97397bb6f3b5c0c30c44aac34c17650d4d
Signed-off-by: Dave Barach <dave@barachs.net>
5 years agovppinfra: add few more cpuid flags 10/18610/1
Damjan Marion [Sat, 30 Mar 2019 11:56:37 +0000 (12:56 +0100)]
vppinfra: add few more cpuid flags

Change-Id: Ic2a61c45face18b6dd23d5509d75367d3b2441e9
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agoSPAN: Add pending frame on current thread, not on main 07/18607/1
Igor Mikhailov (imichail) [Sat, 30 Mar 2019 02:25:15 +0000 (19:25 -0700)]
SPAN: Add pending frame on current thread, not on main

Previously, all frames were put for next node on the main thread,
even if the execution was happening on a worker thread.

Also, refactor to use API function vnet_get_main()

Change-Id: Ibefb1b3871563a78aa30352a37b9216537e15bf7
Signed-off-by: Igor Mikhailov (imichail) <imichail@cisco.com>
5 years agoConvince Coverity that s = format (0, ...) is OK 05/18605/1
Dave Barach [Fri, 29 Mar 2019 23:41:50 +0000 (19:41 -0400)]
Convince Coverity that s = format (0, ...) is OK

Change-Id: Ia88c7228a46e251b8a7815240da6ddbbcde08bc7
Signed-off-by: Dave Barach <dave@barachs.net>
5 years agoMinor bug fixes 99/18599/3
Dave Barach [Fri, 29 Mar 2019 18:08:45 +0000 (14:08 -0400)]
Minor bug fixes

Drop the session reader lock across vlib_process_suspend(...) calls.
Fix the debug CLI command.

Change-Id: Ic0266dda1fdfa90971f2cb935248941317c01205
Signed-off-by: Dave Barach <dave@barachs.net>
5 years agorevert quicly related build/external changes 01/18601/1
Damjan Marion [Fri, 29 Mar 2019 20:22:09 +0000 (21:22 +0100)]
revert quicly related build/external changes

We dont't want git pull there, there is simple way to grab tarball
from github for every single commit

Change-Id: I7a98cab7660750e48084279d8b9892cdf229bceb
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agoIPSEC-GRE: fixes and API update to common types. 91/17691/14
Neale Ranns [Tue, 19 Feb 2019 15:22:46 +0000 (15:22 +0000)]
IPSEC-GRE: fixes and API update to common types.

Change-Id: Icdcbac7453baa837a9c0c4a2401dff4a6aa6cba0
Signed-off-by: Neale Ranns <nranns@cisco.com>
5 years agotests: test/vpp_l2.py fix missing name. 82/18582/2
Paul Vinciguerra [Thu, 28 Mar 2019 20:07:00 +0000 (13:07 -0700)]
tests: test/vpp_l2.py fix missing name.

test/vpp_l2.py:213:26: F821 undefined name 'L2_VTR_OP'
        self.itf.set_vtr(L2_VTR_OP.L2_DISABLED)

Move L2_VTR_OP enum to vpp_sub_interface.py where the VTR code is found.

Change-Id: I9eb9a3a2c679813c221ce1d0c4fa8aac6076c443
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
5 years agovls: add pthread check on vls_attr 97/18597/3
Florin Coras [Fri, 29 Mar 2019 15:29:25 +0000 (08:29 -0700)]
vls: add pthread check on vls_attr

Change-Id: I455d108dfe52d45d040167fecb37b33e9d630c3c
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agotests: refactor vpp_object.py 78/18578/3
Paul Vinciguerra [Thu, 28 Mar 2019 16:53:44 +0000 (09:53 -0700)]
tests: refactor vpp_object.py

Move __str__ to super for all subclasses of VppObject
Implement __repr__ in VppObject
Implement __hash__ and __eq__

Change-Id: Ibd4ea37b84b17f499ab86630fb5b9ed9c8b4b1c2
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
5 years agoIntegrate first QUIC protocol implementation 78/18378/11
Nathan Skrzypczak [Tue, 19 Mar 2019 12:57:31 +0000 (13:57 +0100)]
Integrate first QUIC protocol implementation

Currently supports on single stream exposed through standard internal APIs
Based on libquicly & picotls by h2o

Change-Id: I7bc1ec0e399d1fb02bfd1da91aa7410076d08d14
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
5 years agoVOM: recurive route update fix 93/18593/2
Neale Ranns [Fri, 29 Mar 2019 12:59:01 +0000 (05:59 -0700)]
VOM: recurive route update fix

Change-Id: Iff61904804d8218c4e02897521368f696002343d
Signed-off-by: Neale Ranns <nranns@cisco.com>
5 years agoBVI: coverity error fix 89/18589/2
Neale Ranns [Fri, 29 Mar 2019 11:37:59 +0000 (11:37 +0000)]
BVI: coverity error fix

Change-Id: Idc1e1747035638777240b7ea9afcf675b22be7f1
Signed-off-by: Neale Ranns <nranns@cisco.com>
5 years agoUpdate MAINTAINERS 90/18590/1
Dave Barach [Fri, 29 Mar 2019 12:17:20 +0000 (08:17 -0400)]
Update MAINTAINERS

Change-Id: I1b041edb6f20a9f9c867fb243922985398485054
Signed-off-by: Dave Barach <dave@barachs.net>
5 years agoipsec: esp-decrypt rework 38/18538/7
Damjan Marion [Mon, 25 Mar 2019 14:54:40 +0000 (15:54 +0100)]
ipsec: esp-decrypt rework

Change-Id: Icf83c876d0880d1872b84e0a3d34be654b76149f
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agoIPSEC: tunnel fragmentation 68/18568/4
Neale Ranns [Thu, 28 Mar 2019 08:56:10 +0000 (08:56 +0000)]
IPSEC: tunnel fragmentation

Change-Id: I63741a22bc82f5f861e1c0f26a93b5569cc52061
Signed-off-by: Neale Ranns <nranns@cisco.com>
5 years agotcp: remove sent rcv wnd 0 flag 87/18587/2
Florin Coras [Thu, 28 Mar 2019 23:31:52 +0000 (16:31 -0700)]
tcp: remove sent rcv wnd 0 flag

Change-Id: If6c672d1caa8884eb5d819311606a79a3de81200
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agodhcp: only register UDP ports that are needed 54/18554/3
Matthew Smith [Wed, 27 Mar 2019 17:30:29 +0000 (12:30 -0500)]
dhcp: only register UDP ports that are needed

When configuring a DHCP client, both the UDP ports for DHCP client
and server are registered. Packets to the server port end up being
dropped unless you have also configured a DHCP proxy.

This breaks a common home/office gateway use case where the WAN
interface gets configured using a DHCP client and devices attached
to a LAN interface attempt to configure themselves using DHCP. If
you try to punt to an external DHCP daemon to handle the LAN client
requests, the packets never make it to the external daemon because
of the server port being registered.

Modify dhcp_maybe_register_udp_ports() to accept a parameter that
controls which ports get registered. For a DHCP client, only the
client port is registered. For a DHCP proxy, both client and server
ports are registered.

Change-Id: I2182d9827e4c7424b03ebb94952c3d2dc37abdb6
Signed-off-by: Matthew Smith <mgsmith@netgate.com>