vpp.git
3 years agoquic: fix coverity warning 96/28796/2
Aloys Augustin [Thu, 10 Sep 2020 15:28:18 +0000 (15:28 +0000)]
quic: fix coverity warning

Change-Id: Ic31cde8564a0705710d91e0a7b90dcc6cf2f8db6
Type: fix
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
3 years agoaf_xdp: documents incompatibility with 1GB hugepages and high buffers-per-numa. 53/28553/2
Mohammed Hawari [Thu, 10 Sep 2020 13:10:45 +0000 (15:10 +0200)]
af_xdp: documents incompatibility with 1GB hugepages and high buffers-per-numa.

Type: docs
Change-Id: If8602d4b73cc1f04e42d19b8df60a05f67aa90c9
Signed-off-by: Mohammed Hawari <mohammed@hawari.fr>
(cherry picked from commit 5d2091da2a96cb1092b0744cdee8bb481788a6dc)

3 years agodpdk: fix coverity defect #214232, #182930 02/28802/2
Chenmin Sun [Fri, 11 Sep 2020 14:32:51 +0000 (22:32 +0800)]
dpdk: fix coverity defect #214232, #182930

Type: fix

Signed-off-by: Chenmin Sun <chenmin.sun@intel.com>
Change-Id: Ie328834159687cdb4314c37d36697f2fb9081fbd
(cherry picked from commit 504bcb7c29da6ab45656f54cda394cccb0d97dae)

3 years agomisc: edit the MAINTAINERS entries for crypto plugins for common style 03/28803/1
Andrew Yourtchenko [Fri, 11 Sep 2020 15:54:43 +0000 (15:54 +0000)]
misc: edit the MAINTAINERS entries for crypto plugins for common style

Change-Id: Ic40bf11210cf1c36420578281f5a42668bad9801
Type: docs
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
(cherry picked from commit f8b319359cd2a24271dbe7cebfc8a4147ab89727)

3 years agomisc: Initial changes for stable/2009 branch 31/28731/1 v20.09-rc1
Andrew Yourtchenko [Wed, 9 Sep 2020 21:54:44 +0000 (21:54 +0000)]
misc: Initial changes for stable/2009 branch

Change-Id: Ibb982c877427c8382a30ee561c23d878adc9c28d
Type: docs
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
3 years agodocs: Improve new plugin doc & add govpp API doc 88/28688/4
Nathan Skrzypczak [Fri, 4 Sep 2020 16:31:23 +0000 (18:31 +0200)]
docs: Improve new plugin doc & add govpp API doc

Type: docs

Change-Id: I5f20ac0232c5cdc3cf64015185b0d0fc5c4a3100
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
3 years agodocs: Update and improve indent install 12/28712/3
Nathan Skrzypczak [Tue, 8 Sep 2020 16:09:59 +0000 (18:09 +0200)]
docs: Update and improve indent install

Type: docs

Change-Id: I1a37450261e0bcedf90685243b14027f3cf23704
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
3 years agol2: check secondary macs on BVI interface 40/28640/3
Matthew Smith [Mon, 31 Aug 2020 19:55:17 +0000 (14:55 -0500)]
l2: check secondary macs on BVI interface

Type: fix

VRRP cannot be used on a BVI interface currently because packets sent
to the virtual mac address of the VR fail the destination mac check in
l2_to_bvi().

Apparently people want to use VRRP on BVI interfaces, so update the
check in l2_to_bvi() so that it will check any secondary mac addresses
which have been added to the ethernet interface if the destination mac
address does not match the primary mac address for the interface.

An equivalent check is already done in ethernet_input_inline() for L3
interfaces which are in promiscuous mode.

Change-Id: I7c5bf624dafda8744fea236c704e8e17e5f53b35
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
3 years agodocs: Fix create memif cli 23/28723/2
Nathan Skrzypczak [Wed, 9 Sep 2020 15:57:12 +0000 (17:57 +0200)]
docs: Fix create memif cli

Type: docs

Change-Id: I91a954abf77335e1ddcbd1468633d9d7980bbac2
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
3 years agosvm: fix non-null-terminated string 18/28718/2
Benoît Ganne [Wed, 9 Sep 2020 08:00:34 +0000 (10:00 +0200)]
svm: fix non-null-terminated string

Type: fix

Change-Id: Ia9cd71ce12584cd8ef90bfe357cf762dd7653f71
Signed-off-by: Benoît Ganne <bganne@cisco.com>
3 years agomisc: Merge 20.05.1, 19.08.3 RELEASE.md sections 98/28698/2
Andrew Yourtchenko [Mon, 7 Sep 2020 18:04:16 +0000 (18:04 +0000)]
misc: Merge 20.05.1, 19.08.3 RELEASE.md sections

also, remove a duplicate 17.01.1 section and wrong page tag for 20.09

Change-Id: Ia2cc77faa75cccab38972ad46517762cb7456466
Type: docs
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
3 years agowireguard: initial implementation of wireguard protocol 03/28503/36
Artem Glazychev [Mon, 31 Aug 2020 10:12:30 +0000 (17:12 +0700)]
wireguard: initial implementation of wireguard protocol

Type: feature

The main information about plugin you can see in README.md

vpp# wireguard ?
  wireguard create                         wireguard create listen-port <port> private-key <key> src <IP> [generate-key]
  wireguard delete                         wireguard delete <interface>
  wireguard peer add                       wireguard peer add <wg_int> public-key <pub_key_other>endpoint <ip4_dst> allowed-ip <prefix>dst-port [port_dst] persistent-keepalive [keepalive_interval]
  wireguard peer remove                    wireguard peer remove <index>

Change-Id: I85eb0bfc033ccfb2045696398d8a108b1c64b8d9
Signed-off-by: Artem Glazychev <artem.glazychev@xored.com>
Signed-off-by: Damjan Marion <damarion@cisco.com>
Signed-off-by: Jim Thompson <jim@netgate.com>
Signed-off-by: Neale Ranns <nranns@cisco.com>
Signed-off-by: Damjan Marion <damarion@cisco.com>
3 years agocrypto: change cryptodev with new cryptodev API 19/28419/10
Fan Zhang [Thu, 3 Sep 2020 16:10:57 +0000 (17:10 +0100)]
crypto: change cryptodev with new cryptodev API

Type: feature

This patch updateds cryptodev engine uses new DPDK Cryptodev
API planned to be upstreamed in DPDK 20.11.

Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Signed-off-by: Piotr Bronowski <piotrX.bronowski@intel.com>
Change-Id: I8dd1a8ac643f1e952deb787e466b76ea7aa5f420

3 years agointerface: support configuring RSS steering queues 94/27794/10
Chenmin Sun [Mon, 6 Jul 2020 00:20:39 +0000 (08:20 +0800)]
interface: support configuring RSS steering queues

This patch adds the RSS steering queues set interface, and it's
implementation in DPDK device:

/* Interface to set rss queues of the interface */
typedef clib_error_t *(vnet_interface_rss_queues_set_t)
  (struct vnet_main_t * vnm, struct vnet_hw_interface_t * hi,
   clib_bitmap_t *bitmap);

This patch also introduces a command line to set the RSS queues:
  set interface rss queues <interface> <list <queue-list>>
To display the rss queues, use "show hardware-interfaces"

Below is the example to configure rss queues for interface Gig0:
vpp# set interface rss queues Gig0 list 0,2,4-7
vpp# show hardware-interfaces brief
              Name                Idx   Link  Hardware
VirtualFunctionEthernet18/1/0      1    down  VirtualFunctionEthernet18/1/0
  Link speed: unknown
  RSS queues: 0 2 4 5 6 7
local0                             0    down  local0
  Link speed: unknown
vpp#

Users can also configure the rss queues on a dpdk interface in
startup.conf:
dpdk {
    dev 0000:18:01.0 {
        rss-queues 0,2,5-7
    }
}

Type: feature

Signed-off-by: Chenmin Sun <chenmin.sun@intel.com>
Change-Id: I1835595a1c54016a84eabee9fd62ce137935385d

3 years agostats: Fix stat_segment to set timeout directly 54/28654/3
Rajesh Goel [Thu, 3 Sep 2020 13:08:03 +0000 (18:38 +0530)]
stats: Fix stat_segment to set timeout directly

Type: fix

Signed-off-by: Rajesh Goel <rajegoel@cisco.com>
Change-Id: Ib37802f4270fe894a31e871c7fbb12b5a1cdf058

3 years agotcp: fix the tcp unittest to work 16/28716/1
Ryujiro Shibuya [Wed, 9 Sep 2020 04:14:11 +0000 (04:14 +0000)]
tcp: fix the tcp unittest to work

Type: fix

Signed-off-by: Ryujiro Shibuya <ryujiro.shibuya@owmobility.com>
Change-Id: If5a8313262da828616db8b1d9ef831d42b11d952

3 years agodpdk-ipsec: don't leak buffers on crypto alloc failure 66/28666/4
Christian Hopps [Tue, 14 Jul 2020 12:39:30 +0000 (08:39 -0400)]
dpdk-ipsec: don't leak buffers on crypto alloc failure

Type: fix
Signed-off-by: Christian Hopps <chopps@labn.net>
Change-Id: I4dee2ea723631e1bd95b33a74b9431d984565aef

3 years agodpdk: fix extended stat strings 67/28667/2
Christian Hopps [Sat, 22 Aug 2020 14:44:33 +0000 (14:44 +0000)]
dpdk: fix extended stat strings

- These were displaying blank, apparently dpdk extended stat strings
must be within the heap so they are identified as vectors by
format_c_identifier even though they are not.

Type: fix
Change-Id: I2b153b100203b9856ce3af6d5ecb2daae410fb5b
Signed-off-by: Christian Hopps <chopps@labn.net>
3 years agodpdk: fix interface counters to never go backward 68/28668/3
Christian Hopps [Sun, 23 Aug 2020 13:37:34 +0000 (13:37 +0000)]
dpdk: fix interface counters to never go backward

Was seeing imissed counter become negative. Reuse the RX_ERROR code for all
three error counters to avoid the problem.

Type: fix
Change-Id: I99a69c8816326682745785ecd30e18a131ac2969
Signed-off-by: Christian Hopps <chopps@labn.net>
3 years agosvm session: document unsupported fifo deq combinations 87/28687/3
Florin Coras [Fri, 4 Sep 2020 15:57:27 +0000 (08:57 -0700)]
svm session: document unsupported fifo deq combinations

Type: fix

- Document that ooo dequeues with ooo lookups cannot be done in
combination with in order dequeues.
- Added assert to capture this scenario and de-initialized rbtrees for
cut-through tx fifo

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ic40d020b3f0391fcf022ea3c906b86121744144f

3 years agoipsec: fix padding/alignment for native IPsec encryption 89/28689/6
Christian Hopps [Sun, 3 Nov 2019 12:02:15 +0000 (07:02 -0500)]
ipsec: fix padding/alignment for native IPsec encryption

Not all ESP crypto algorithms require padding/alignment to be the same
as AES block/IV size. CCM, CTR and GCM all have no padding/alignment
requirements, and the RFCs indicate that no padding (beyond ESPs 4 octet
alignment requirement) should be used unless TFC (traffic flow
confidentiality) has been requested.

  CTR: https://tools.ietf.org/html/rfc3686#section-3.2
  GCM: https://tools.ietf.org/html/rfc4106#section-3.2
  CCM: https://tools.ietf.org/html/rfc4309#section-3.2

- VPP is incorrectly using the IV/AES block size to pad CTR and GCM.
These modes do not require padding (beyond ESPs 4 octet requirement), as
a result packets will have unnecessary padding, which will waste
bandwidth at least and possibly fail certain network configurations that
have finely tuned MTU configurations at worst.

Fix this as well as changing the field names from ".*block_size" to
".*block_align" to better represent their actual (and only) use. Rename
"block_sz" in esp_encrypt to "esp_align" and set it correctly as well.

test: ipsec: Add unit-test to test for RFC correct padding/alignment

test: patch scapy to not incorrectly pad ccm, ctr, gcm modes as well

- Scapy is also incorrectly using the AES block size of 16 to pad CCM,
CTR, and GCM cipher modes. A bug report has been opened with the
and acknowledged with the upstream scapy project as well:

  https://github.com/secdev/scapy/issues/2322

Ticket: VPP-1928
Type: fix
Signed-off-by: Christian Hopps <chopps@labn.net>
Change-Id: Iaa4d6a325a2e99fdcb2c375a3395bcfe7947770e

3 years agomarvell: add cli options to configure rxq and txq sizes 60/22360/6
Christian E. Hopps [Fri, 27 Sep 2019 18:05:09 +0000 (14:05 -0400)]
marvell: add cli options to configure rxq and txq sizes

Add the ability to configure the pp2 rx and tx queue sizes in the CLI.

Type: improvement
Signed-off-by: Christian E. Hopps <chopps@chopps.org>
Change-Id: I6a824f92e22fa47fec3d84525cc2d82524ddf639

3 years agovlib: vlib_get_node_by_name fails via API 50/28650/2
Nathan Skrzypczak [Thu, 3 Sep 2020 09:37:56 +0000 (11:37 +0200)]
vlib: vlib_get_node_by_name fails via API

Type: fix

Calling vlib_get_node_by_name via the VPE api
doesn't work due to hash weirdness. Haven't
gotten around the real cause of this. But this
fixes it.

Change-Id: I89f95dba2bcd9573b8f1f435e063e9dd57f9ca93
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
3 years agodocs: Improve & link cnat doc 85/28685/2
Nathan Skrzypczak [Fri, 4 Sep 2020 14:27:20 +0000 (16:27 +0200)]
docs: Improve & link cnat doc

Type: docs

Change-Id: Ib985ed6a644ae3f4c330bf6a27dc69c49a489a2f
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
3 years agocnat: fix cnat_set_snat() debug CLI 90/28690/1
Dave Barach [Fri, 4 Sep 2020 20:32:24 +0000 (16:32 -0400)]
cnat: fix cnat_set_snat() debug CLI

Otherwise, the debug CLI command is unusable in a script because it
will eat (and complain about) subsequent lines in the script. Missing
this guitar lick, etc:

/* Get a line of input. */
 if (!unformat_user (input, unformat_line_input, line_input))
   return 0;

Type: fix

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: Id328e6f1cc4d2e1672c3946db3865ab5a1a3af8d

3 years agocnat: fix snat ip v6 tests 31/28631/4
MathiasRaoul [Tue, 1 Sep 2020 14:30:02 +0000 (14:30 +0000)]
cnat: fix snat ip v6 tests

Type: fix

Change-Id: I9e102e0028274cc084e59c106d1cd4be174b1205
Signed-off-by: MathiasRaoul <mathias.raoul@gmail.com>
3 years agovirtio: remove kernel virtio header dependencies 22/28622/3
Mohsin Kazmi [Mon, 31 Aug 2020 15:17:16 +0000 (17:17 +0200)]
virtio: remove kernel virtio header dependencies

Type: refactor

tap, virtio and vhost use virtio/vhost header files from linux
kernel. Different features are supported on different kernel
versions, making it difficult to use those in VPP. This patch
removes virtio/vhost based header dependencies to local header
files.

Change-Id: I064a8adb5cd9753c986b6f224bb075200b3856af
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
3 years agovrrp: improve RFC compliance for ARP/ND 46/28646/2
Matthew Smith [Wed, 2 Sep 2020 21:42:55 +0000 (16:42 -0500)]
vrrp: improve RFC compliance for ARP/ND

Type: fix

The ARP/ND feature nodes reply to requests for a VR virtual IP address
when a VR is in the master state. If the VR is in the backup state, the
request is passed to the next node on the feature arc.

This can cause an incorrect response to be sent. If some other feature
(e.g. NAT) causes a virtual IP address to be configured as a "local"
address on the system, a later node on the feature arc may respond to
an ARP/ND request with the real MAC address of the interface.

RFC 5798 says that a router must respond to ARP/ND requests for VR
virtual IP addresses with the VR virtual MAC address. And it says a
router must not respond to ARP/ND requests for VR virtual IP addresses
when the VR is in the backup state. Ensure that ARP/ND requests for
VR virtual IP addresses are dropped when in the backup state rather
than allowing them to continue on the feature arc where another node
may end up responding.

In order to do this, enable/disable the feature nodes when leaving
or entering the init state instead of the master state.

Change-Id: I416f83e125cbf91deb90c3b6eb00ba3207de24ad
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
3 years agobuffers: improve cache occupancy 79/28679/2
Damjan Marion [Fri, 4 Sep 2020 10:34:58 +0000 (12:34 +0200)]
buffers: improve cache occupancy

Adjust buffer allocation so it always have odd number of cache lines.
That should result in better distribution of cachelines among cache sets.

Type: improvement
Change-Id: I0d39d4cf01cff36ad6f70a700730823a96448c22
Signed-off-by: Damjan Marion <damarion@cisco.com>
3 years agodpdk-ipsec: use init function instead of one-time process 64/28664/3
Christian Hopps [Mon, 13 Jul 2020 10:49:56 +0000 (06:49 -0400)]
dpdk-ipsec: use init function instead of one-time process

Use VLIB_MAIN_LOOP_ENTER_FUNCTION to do post init initialization for
dpdk crypto rather than create a one-time process to do the same.

Type: fix
Signed-off-by: Christian Hopps <chopps@labn.net>
Change-Id: I06e480b028c8e1fc1b0024a66b2338eb21a797ca

3 years agovpp: Fix node APIs 51/28651/4
Nathan Skrzypczak [Thu, 3 Sep 2020 10:45:20 +0000 (12:45 +0200)]
vpp: Fix node APIs

Type: fix

Change-Id: Ic6e2b7e05b50945a8e2222019c2942a6ee52e465
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
3 years agodpdk-ipsec: fix show output 65/28665/2
Christian Hopps [Tue, 14 Jul 2020 13:41:43 +0000 (09:41 -0400)]
dpdk-ipsec: fix show output

Fix the shown crypto inflight counts which were reversed. Also improve a
couple error descriptions to tell them apart when viewed.

Type: fix
Signed-off-by: Christian Hopps <chopps@labn.net>
Change-Id: I6d4054c64aa842658cfcde8969c7aa48f6d21207

3 years agoipsec: fix trace of GRE_teb packets 61/28661/3
Christian Hopps [Tue, 25 Aug 2020 16:40:40 +0000 (12:40 -0400)]
ipsec: fix trace of GRE_teb packets

The issue is not easily hit. When GRE_teb packets are received the post
crypto processing adjusts the l2.l2_len value in the vnet_buffer opaque
data. This is overwriting the ipsec opaque data. Later the trace code
fetches the sa_index from the ipsec opaque data. It's just an accident
that this currently works, if the ipsec data is changed so that the
sa_index moves around it will be overwritten by the l2_len modification.
Indeed, this was found b/c local development changes had moved the
sa_index so it was over-lapping with the l2_len memory space, and the UT
failed.

Type: fix
Change-Id: Iaecfa750cf0b36653fd9e75b4d799f323a14d932
Signed-off-by: Christian Hopps <chopps@labn.net>
3 years agoipsec: cli: add missing flags for SA add 59/28659/2
Christian Hopps [Fri, 17 Jul 2020 13:53:18 +0000 (09:53 -0400)]
ipsec: cli: add missing flags for SA add

Add missing cli options for setting IPsec SA flags, inbound,
use-anti-replay, and use-esn.

Type: fix
Change-Id: Ia7a91b4b0a12be9e4dd0e684be3e04d8ccafb9d4
Signed-off-by: Christian Hopps <chopps@labn.net>
3 years agoip: enhance vtep4_check of tunnel by vector way 15/27815/13
Zhiyong Yang [Wed, 8 Jul 2020 20:28:36 +0000 (20:28 +0000)]
ip: enhance vtep4_check of tunnel by vector way

This patch aims to improve decap performance by reducing expensive
hash_get callings as less as possible using AVX512 on XEON.
e.g. vxlan, vxlan_gpe, geneve, gtpu.

For the existing code, if vtep4 of the current packet match the last
vtep4_key_t well, expensive hash computation can be avoided and the
code returns directly.

This patch improves tunnel decap multiple flows case greatly by
leveraging 512bit vector register on XEON accommodating 8 vtep4_keys.
It enhances the possiblity of avoiding unnecessary hash computing
once hash key of the current packet hits any one of 8 in the 512bit
cache.

The oldest element in vtep4_cache_t is updated in round-robin order.

vlib_get_buffers is also leveraged in the meanwhile.

Type: improvement

Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
Signed-off-by: Ray Kinsella <mdr@ashroe.eu>
Signed-off-by: Junfeng Wang <drenfong.wang@intel.com>
Change-Id: I313103202bd76f2dd638cd942554721b37ddad60

3 years agoapi: fix ipsec custom_dump function 53/28653/2
Christian Hopps [Wed, 2 Sep 2020 14:33:25 +0000 (10:33 -0400)]
api: fix ipsec custom_dump function

The protocol value was changed to 50 and 51 (rather than 0 and 1), but
the custom_dump function wasn't updated to reflect this. Also the is_add
value wasn't being shown. Fix both these issues.

Type: fix
Change-Id: I429b4616d6c7937f73308b644154370fab32eaae
Signed-off-by: Christian Hopps <chopps@labn.net>
3 years agomisc: l2tp: cli: fix overly generic CLI commands 56/28656/4
Christian Hopps [Mon, 13 Jan 2020 00:44:08 +0000 (00:44 +0000)]
misc: l2tp: cli: fix overly generic CLI commands

"clear counters" is not appropriate for a protocol to own. Change
to "clear l2tp counters" (and "test l2tp counter").

Type: fix
Signed-off-by: Christian Hopps <chopps@labn.net>
Change-Id: I3faac3907c4697c1c95df34ac7d31e48063869a8

3 years agovlib: exit 0 (nocore) on SIGHUP 62/28662/2
Christian Hopps [Fri, 24 Apr 2020 08:39:59 +0000 (04:39 -0400)]
vlib: exit 0 (nocore) on SIGHUP

Scenarios where SIGHUP is sent would include the user closing an xterm
while in interactive/nodaemon mode, or similarly when running vpp in the
same mode during testing (e.g., using ssh to run VPP on a DUT). VPP
should exit in these cases; however, generating a core is unwanted.

Type: fix
Signed-off-by: Christian Hopps <chopps@labn.net>
Change-Id: Ibccfe5e676547e913c8a205ff16ab56d9abb1c82

3 years agocrypto: Add async crypto APIs 19/28619/3
Nathan Skrzypczak [Mon, 31 Aug 2020 13:33:57 +0000 (15:33 +0200)]
crypto: Add async crypto APIs

Type: feature

This adds api calls for the following CLIs:
* set sw_scheuduler worker <N> crypto on|off
* set crypto async dispatch polling|interrupt
* set crypto handler
* set crypto async handler

Change-Id: Ic701d149c440e42ea4575da42b9f69e4c8759602
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
3 years agocrypto: SW scheduler async crypto engine 76/27176/11
PiotrX Kleski [Wed, 8 Jul 2020 12:36:34 +0000 (14:36 +0200)]
crypto: SW scheduler async crypto engine

Type: feature

This patch adds new sw_scheduler async crypto engine.
The engine transforms async frames info sync crypto ops and
delegates them to active sync engines. With the patch it
is possible to increase the single worker crypto throughput
by offloading the crypto workload to multiple workers.

By default all workers in the system will attend the crypto
workload processing. However a worker's available cycles
are limited. To avail more cycles to one worker to process
other workload (e.g. the worker core that handles the RX/TX
and IPSec stack processing), a useful cli command is added
to remove itself (or add it back later) from the heavy
crypto workload but only let other workers to process the
crypto. The command is:

 - set sw_scheduler worker <idx> crypto <on|off>

It also adds new interrupt mode to async crypto dispatch node.
This mode signals the node when new frames are enqueued
as opposed to polling mode that continuously calls dispatch node.

New cli commands:
 - set crypto async dispatch [polling|interrupt]
 - show crypto async status (displays mode and nodes' states)

Signed-off-by: PiotrX Kleski <piotrx.kleski@intel.com>
Signed-off-by: DariuszX Kazimierski <dariuszx.kazimierski@intel.com>
Reviewed-by: Fan Zhang <roy.fan.zhang@intel.com>
Change-Id: I332655f347bb9e3bc9c64166e86e393e911bdb39

3 years agovcl: handle svm fifo write failure 48/28648/1
Florin Coras [Thu, 3 Sep 2020 03:52:58 +0000 (20:52 -0700)]
vcl: handle svm fifo write failure

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I4b132cad8ff906ef24846cc43935ccfd6aa7b4ec

3 years agotcp: fix connection refused error 44/28644/2
Florin Coras [Wed, 2 Sep 2020 17:51:10 +0000 (10:51 -0700)]
tcp: fix connection refused error

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I436741e061f11685980a71fb3989befc7af1e081

3 years agonat: twice-nat static mapping pool address 09/28609/5
Filip Varga [Sun, 30 Aug 2020 19:19:55 +0000 (21:19 +0200)]
nat: twice-nat static mapping pool address

Let twice-nat static mapping pick specific
address from the twice-nat pool.

Type: improvement

Change-Id: Iadaa036af2fa3b0e6e9a68ff6e68b4bbe1650eb1
Signed-off-by: Filip Varga <fivarga@cisco.com>
3 years agofib: IPv6 lookup data structure MP safe when prefixes change 70/27270/4
Neale Ranns [Tue, 26 May 2020 13:12:17 +0000 (13:12 +0000)]
fib: IPv6 lookup data structure MP safe when prefixes change

Type: fix

adding routes should be MP safe. When new prefixes with differrent
prefix lengths are added, adjust the sorted list in an MP safe way.

Change-Id: Ib73a3c84d01eb86d17f8e79ea2bd2505dd9afb3d
Signed-off-by: Neale Ranns <nranns@cisco.com>
3 years agofib: fix ADJ_NBR_ITF_OK param error 08/28608/2
yedg [Sat, 29 Aug 2020 06:12:20 +0000 (14:12 +0800)]
fib: fix ADJ_NBR_ITF_OK param error

Type: fix
Signed-off-by: yedonggang <yedg@wangsu.com>
Change-Id: I3bf67070ed01df40626f3b90f2762158b6c3ce05

3 years agobonding: add bond_create2 API to include gso option 12/28112/6
Steven Luong [Thu, 30 Jul 2020 14:31:40 +0000 (07:31 -0700)]
bonding: add bond_create2 API to include gso option

gso option is available for the debug CLI version of bond create.
This patch is to create a new API to have the corresponding option in
the binary API. The old binary API bond_create is marked deprecated.

Type: improvement

Signed-off-by: Steven Luong <sluong@cisco.com>
Change-Id: Id9501b8e6d267ae09e2b411957f181343da459c0

3 years agosession: fix non-blocking msg enqueue to vpp mq 36/28636/3
Florin Coras [Tue, 1 Sep 2020 22:25:50 +0000 (15:25 -0700)]
session: fix non-blocking msg enqueue to vpp mq

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I7228a01d38e61cc00358419b2512ca0da4f76ff5

3 years agoipsec: add ipsec set async mode api 16/28416/3
Yulong Pei [Fri, 14 Aug 2020 10:21:08 +0000 (18:21 +0800)]
ipsec: add ipsec set async mode api

Type: improvement

Signed-off-by: Yulong Pei <yulong.pei@intel.com>
Change-Id: I841f4407ed8c1a448e5102059fc79ae1f7d461de

3 years agomisc: fix pcap [rx|tx|drop] filename stem overflow 63/27963/2
Benoît Ganne [Fri, 17 Jul 2020 09:49:56 +0000 (11:49 +0200)]
misc: fix pcap [rx|tx|drop] filename stem overflow

Type: fix

Change-Id: I2b6b7b6f28cbf7accf883743e390b0031dd13bbb
Signed-off-by: Benoît Ganne <bganne@cisco.com>
3 years agotap: add the static assert for api flags 39/28639/1
Mohsin Kazmi [Wed, 2 Sep 2020 11:59:37 +0000 (11:59 +0000)]
tap: add the static assert for api flags

Type: improvement

Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Change-Id: Ia1276d00dded36ee28b4b2e93b4cc7c1df6b1eef

3 years agovirtio: add virtio 1.1 api flags 35/28635/3
Mohsin Kazmi [Tue, 1 Sep 2020 17:17:44 +0000 (17:17 +0000)]
virtio: add virtio 1.1 api flags

Type: feature

Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Change-Id: I95d7fc1cc8db5199570c66535f45e867a7cae676

3 years agobuild: Fix 'make build VPP_EXTRA_CMAKE_ARGS=-DVPP_ENABLE_SANITIZE_ADDR=ON' error... 90/28590/3
jiangxiaoming [Thu, 27 Aug 2020 08:00:16 +0000 (16:00 +0800)]
build: Fix 'make build VPP_EXTRA_CMAKE_ARGS=-DVPP_ENABLE_SANITIZE_ADDR=ON' error on Centos 7

Type: fix

Signed-off-by: jiangxiaoming <jiangxiaoming@outlook.com>
Change-Id: Ic47f5e8627923c951333c70004850b53ed4cab06

3 years agotap: add virtio 1.1 API flag 26/28526/6
Mohsin Kazmi [Wed, 26 Aug 2020 09:07:48 +0000 (11:07 +0200)]
tap: add virtio 1.1 API flag

Type: feature

Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Change-Id: I3e00deb94943c545d1649865b2efdf7d51b90f4d

3 years agocrypto-openssl: add chacha20-poly1305 to crypto-openssl 15/28615/6
Artem Glazychev [Mon, 31 Aug 2020 08:42:40 +0000 (15:42 +0700)]
crypto-openssl: add chacha20-poly1305 to crypto-openssl

Type: feature

Signed-off-by: Artem Glazychev <artem.glazychev@xored.com>
Change-Id: Iec28fb11b6edff1bee23117f56aa3a3e5729541a
Signed-off-by: Damjan Marion <damarion@cisco.com>
3 years agovirtio: fix the bar starting index 34/28634/1
Mohsin Kazmi [Tue, 1 Sep 2020 16:18:48 +0000 (18:18 +0200)]
virtio: fix the bar starting index

Type: fix

Change-Id: Ia28161b583ea26ab820a494332a79b64add7004d
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
3 years agovirtio: fix the NULL deference 33/28633/1
Mohsin Kazmi [Tue, 1 Sep 2020 15:45:56 +0000 (17:45 +0200)]
virtio: fix the NULL deference

Type: fix

Change-Id: I8d55c2bfdd3c4607044370ebabf40cbac78b4996
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
3 years agovirtio: fix the error return 32/28632/2
Mohsin Kazmi [Tue, 1 Sep 2020 15:12:50 +0000 (17:12 +0200)]
virtio: fix the error return

Type: fix

Change-Id: I12b08333f3f69aaa882e8801f4f69bca2d7bd558
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
3 years agomisc: fix uninitialized use warnings with gcc-{8,9} 29/28629/3
Aloys Augustin [Tue, 1 Sep 2020 13:59:46 +0000 (15:59 +0200)]
misc: fix uninitialized use warnings with gcc-{8,9}

Change-Id: I4930c3c2a8025ec9ceb17e994137be67d88d455f
Type: fix
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
3 years agovppapigen: supports backwards compatible marking of enums 16/28616/5
Ole Troan [Mon, 31 Aug 2020 11:54:47 +0000 (13:54 +0200)]
vppapigen: supports backwards compatible marking of enums

enum bar_enum {
  BAR1 = 0,
  BAR2,
  BAR3 [backwards_compatible],
  BAR4 = 9 [backwards_compatible],
};

This allows adding backwards compatible (as guaranteed by the developer) enums.
The enums marked backwards compatible are not considered in the CRC calculation.

Type: improvement
Change-Id: I6fc0c21b19e1a02cff7f5d279a0f3a32d2f8b630
Signed-off-by: Ole Troan <ot@cisco.com>
3 years agocrypto: add chacha20-poly1305 algo 14/28614/2
Artem Glazychev [Mon, 31 Aug 2020 08:37:39 +0000 (15:37 +0700)]
crypto: add chacha20-poly1305 algo

Type: feature

Signed-off-by: Artem Glazychev <artem.glazychev@xored.com>
Change-Id: I3697cf7fab7abb7c3d2f61ef326c9116bc1eed66

3 years agoip: fix ip zero checksum verification 23/28623/5
Benoît Ganne [Mon, 31 Aug 2020 16:59:34 +0000 (18:59 +0200)]
ip: fix ip zero checksum verification

In one's complement, there are two representations of zero: the all
zero and the all one bit values, often referred to as +0 and -0. See
RFC 1624 section 3 for more details.
This used to be taken care of in ip4_header_checksum(), but it is no
longer the case. The check ip->checksum == ip4_header_checksum (ip) is
no longer correct in the -0 case.
Always use ip4_header_checksum_is_valid() instead (which behaves
correctly since 9a79a1ab931c3b5a7ae07d6f0fcfef7c4368a2c4).

Type: fix
Fixes: e5f0050c7a5d411f96af6401797529d58825e2af

Change-Id: Iacc6b60645a834287b085aecb9e3fdb4554cf0cf
Signed-off-by: Benoît Ganne <bganne@cisco.com>
3 years agodpdk: fix mac address length was wrong 96/28596/4
jiangxiaoming [Fri, 28 Aug 2020 01:28:09 +0000 (09:28 +0800)]
dpdk: fix mac address length was wrong

Type: fix

Signed-off-by: jiangxiaoming <jiangxiaoming@outlook.com>
Change-Id: I87c6f423ea8fdd9fb764693055eb1509f994d6f1

3 years agofib: detect wrong adj neighbour bugs 53/28353/2
Benoît Ganne [Thu, 13 Aug 2020 09:16:56 +0000 (11:16 +0200)]
fib: detect wrong adj neighbour bugs

Type: improvement

Change-Id: Ie063ee0a0c59a9ad632200ce2b23703bc0d936e6
Signed-off-by: Benoît Ganne <bganne@cisco.com>
3 years agompls: fix adjacencies walk in case of restack 59/27959/4
Benoît Ganne [Fri, 17 Jul 2020 09:38:58 +0000 (11:38 +0200)]
mpls: fix adjacencies walk in case of restack

Adjacencies are only defined for IPv4 and IPv6.

Type: fix
Fixes: 20aec3db441074ee5a861a40d6e02fad2f3dcb37

Change-Id: I19b2b7f6958da49f41c6eabc9f248840769acbbb
Signed-off-by: Benoît Ganne <bganne@cisco.com>
3 years agovppinfra: Fix bihash coverity warning 27/28627/2
Nathan Skrzypczak [Tue, 1 Sep 2020 07:35:31 +0000 (09:35 +0200)]
vppinfra: Fix bihash coverity warning

Type: fix

Hitting a code not reachable when setting
BIHASH_KVP_AT_BUCKET_LEVEL = 1

Change-Id: I24d539df67ae7650a3b1969f5709a6f7366d786b
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
3 years agocnat: Fix typo in ts handling 26/28626/2
Nathan Skrzypczak [Tue, 1 Sep 2020 07:27:55 +0000 (09:27 +0200)]
cnat: Fix typo in ts handling

Type: fix

Change-Id: I5287f6326726780c09e515eede0992bafb413bb2
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
3 years agoip: improve ip4_header_checksum_is_valid 24/28624/4
Damjan Marion [Mon, 31 Aug 2020 17:54:19 +0000 (19:54 +0200)]
ip: improve ip4_header_checksum_is_valid

It is cheaper to include checksum field in calculation and simply
compare result with zero.

Type: improvement

Change-Id: I6f77632c0a4d2f2c632d044d3a5d2fcf2b5bac62
Signed-off-by: Damjan Marion <damarion@cisco.com>
3 years agonat: fix type in api message 96/27796/5
Klement Sekera [Mon, 6 Jul 2020 09:20:01 +0000 (09:20 +0000)]
nat: fix type in api message

Translation memory size is internally a uword, but in api it was u32,
resulting in the returned value being 0 all the time.

Fix the "incorrect" API reply to return a u32 capped to 0xffffffff if
the u64 is larger than that, introduce the message with
the correct type, deprecate the message with the incorrect type.

Also, while we are updating the message definition,
add the max translations / max users per worker thread
into the new message.

Type: fix
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Change-Id: I92e38a6a2bcb70fc8d1b129bbe416bf7f9e54280
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
3 years agovlib: extend telnet protocol guard 13/28213/3
Vladimir Isaev [Tue, 11 Aug 2020 14:15:58 +0000 (17:15 +0300)]
vlib: extend telnet protocol guard

There is a number of TERMs with big length, such as
'screen.konsole-256color' (23). These TERMs can not
be processed properly by vpp because maximum telnet
byte stream supported is 24 and we need 6 more service
bytes to send TTYPE.

So I extended maximum depth guard to 32.

Type: fix
Signed-off-by: Vladimir Isaev <visaev@netgate.com>
Change-Id: I9ca506996a97e9567d06483c5f020d6cc394329c

3 years agovppinfra: convert A_extend_to_B to B_from_A format of vector inlines 20/28620/3
Damjan Marion [Mon, 31 Aug 2020 15:18:26 +0000 (17:18 +0200)]
vppinfra: convert A_extend_to_B to B_from_A format of vector inlines

Make it shorter and same format when converting to biggor or smaller
types.

Type: refactor

Change-Id: I443d67e18ae65d779b4d9a0dce5406f7d9f0e4ac
Signed-off-by: Damjan Marion <damarion@cisco.com>
3 years agovpp_config: update node variants to skx and icl 21/28421/2
Ray Kinsella [Fri, 14 Aug 2020 14:27:10 +0000 (15:27 +0100)]
vpp_config: update node variants to skx and icl

Node variant names have changed to skx and icl.

Type: fix

Signed-off-by: Ray Kinsella <mdr@ashroe.eu>
Change-Id: I5be832aa59e4e440df53869077d801c011e3defa

3 years agoip: fix compiling error with gcc-10 52/28252/4
Jieqiang Wang [Fri, 7 Aug 2020 14:18:04 +0000 (14:18 +0000)]
ip: fix compiling error with gcc-10

Building VPP using gcc-10 fails because of the array bounds check
error for function ip4_header_checksum(), with option field in IPv4
header exceeding the ip4_header_t bound. Fix this error by turning
off the array bounds check option for function ip4_header_checksum().

Change-Id: I68cc241ae9e403d35ac2e320549506dc6565a0b6
Type: fix
Signed-off-by: Jieqiang Wang <jieqiang.wang@arm.com>
3 years agoaf_xdp: AF_XDP input plugin 97/16597/21
Benoît Ganne [Fri, 12 Jun 2020 06:47:34 +0000 (08:47 +0200)]
af_xdp: AF_XDP input plugin

Type: feature

Change-Id: I85aa4ad6b68c1aa0e51938002dc691a4b11c545c
Signed-off-by: Damjan Marion <damarion@cisco.com>
Signed-off-by: Benoît Ganne <bganne@cisco.com>
3 years agordma: bugfix in the descriptor refill logic. In case of a partial allocation, the... 21/28621/3
Mohammed Hawari [Mon, 31 Aug 2020 15:23:45 +0000 (17:23 +0200)]
rdma: bugfix in the descriptor refill logic. In case of a partial allocation, the remainder modulo 8 must be returned to the pool so that the number of kept buffers is a multiple of 8.

Type: fix
Change-Id: Ifd97b03ea220300e7e6fe81a8ff4a25060fea6c1
Signed-off-by: Mohammed Hawari <mohammed@hawari.fr>
3 years agosession: format app_ns_name with %v rather than %s 13/28613/2
jiangxiaoming [Mon, 31 Aug 2020 09:38:11 +0000 (17:38 +0800)]
session: format app_ns_name with %v rather than %s

Type: fix

Signed-off-by: jiangxiaoming <jiangxiaoming@outlook.com>
Change-Id: Ie29dec803aa4ee02755190b09573c23f9b5f0ada

3 years agoflow: code refactor 72/28072/6
Chenmin Sun [Mon, 27 Jul 2020 09:40:17 +0000 (17:40 +0800)]
flow: code refactor

This is the code refactor for vnet/flow infra and the dpdk_plugin flow
implementation. The main works of the refactor are:
1. Added two base flow type: VNET_FLOW_TYPE_IP4 and VNET_FLOW_TYPE_IP6
   as the base the flow type
2. All the other flows are derived from the base flow types
3. Removed some flow types that are not currently supported by
   the hardware, and VPP won't leverage them either:
   IP4_GTPU_IP4, IP4_GTPU_IP6, IP6_GTPC, IP6_GTPU,
   IP6_GTPU_IP4, IP6_GTPU_IP6
4. Re-implemented the vnet/flow cli as well as the dpdk_plugin
   implementation
5. refine cli prompt
6. refine display info in command "show flow entry"

Type: refactor

Signed-off-by: Chenmin Sun <chenmin.sun@intel.com>
Change-Id: Ica5e61c5881adc73b28335fd83e36ec1cb420c96

3 years agocnat: Destination based NAT 62/27162/27
Neale Ranns [Tue, 19 May 2020 07:17:19 +0000 (07:17 +0000)]
cnat: Destination based NAT

Type: feature

Signed-off-by: Neale Ranns <nranns@cisco.com>
Change-Id: I64a99a4fbc674212944247793fd5c1fb701408cb

3 years agovirtio: fix the coverity warning 30/28530/4
Mohsin Kazmi [Thu, 20 Aug 2020 15:18:56 +0000 (17:18 +0200)]
virtio: fix the coverity warning

Type: fix

Change-Id: I6c6d66ad8aa158be8d2b9d111de7d46473b9dc02
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
3 years agovppinfra: add clib_mem_destroy_mspace(void *ms) 01/28601/2
Dave Barach [Fri, 28 Aug 2020 14:39:00 +0000 (10:39 -0400)]
vppinfra: add clib_mem_destroy_mspace(void *ms)

Also clib_mem_destroy() to destroy the current mspace.

Handy when an application wants to make a memory allocation arena
disappear.

Type: improvement

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I020db902fbe2473545506fecbc230c2b048992f8

3 years agoipsec: Deprecate old interface API 91/28591/2
Neale Ranns [Thu, 27 Aug 2020 09:09:56 +0000 (09:09 +0000)]
ipsec: Deprecate old interface API

Type: feature

Change-Id: Ib5d7b7e4735a5dec6c3ed74068206a86782588ca
Signed-off-by: Neale Ranns <nranns@cisco.com>
3 years agosession: limit max number of ct sessions per dispatch 82/28582/3
Florin Coras [Wed, 26 Aug 2020 02:07:02 +0000 (19:07 -0700)]
session: limit max number of ct sessions per dispatch

Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ia67662a5b988b3b5351cea21d6d92fb3a86629b5

3 years agovppinfra: Multiarch support for OCTEONTX2 SoC 79/28579/2
Nitin Saxena [Tue, 25 Aug 2020 14:28:37 +0000 (19:58 +0530)]
vppinfra: Multiarch support for OCTEONTX2 SoC

Type: feature

- Added multiarch support for Marvell OCTEONTX2
- Corrected Marvell THUNDERX2 spelling

Signed-off-by: Nitin Saxena <nsaxena@marvell.com>
Change-Id: I42d3654aeda89759a2db9d695592ee3227b26c2b

3 years agodpdk: fix blacklists 18/28418/5
Vladimir Ratnikov [Fri, 14 Aug 2020 12:25:30 +0000 (08:25 -0400)]
dpdk: fix blacklists

When we have both format blacklisted devices like:
blacklist 1234:5678
blacklist 1234:56:78.0

unformat with fmt=%x:%x matches for both strings
 and the rest 78.0 substring is kept in input
 and it can't be parsed for init args

This patch checks first if device format matches PCI address and
 just then if it matches Vendor and Product

Type: fix
Change-Id: If111762c0e0a424b052e4f6dc0f67731bf89dc2a
Signed-off-by: Vladimir Ratnikov <vratnikov@netgate.com>
3 years agotests: "force solo" testcase support 86/28586/8
Andrew Yourtchenko [Wed, 26 Aug 2020 14:33:54 +0000 (14:33 +0000)]
tests: "force solo" testcase support

Some of the tests are time-sensitive, and at present require a non-trivial
modification in order to run at high concurrency.

Without these modifications, they intermittently fail, and require
the test retries.

Rather than setting them to the extended tests and forgetting
about them, put them into a "solo" set, which gets run in a
single-threaded mode after the rest of the tests are done.

Mark a few of the tests that showed errors during TEST_JOBS=48
as forced-solo.

Also, give a better diagnostic if the testcase misses a docstring
needed to represent it in the diagnostic outputs.

Type: fix

Change-Id: I33fe62eb17edc1885bd2c3523892051d52da6546
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
3 years agovppinfra: elog multi-track g2 test pattern 78/28578/2
Dave Barach [Tue, 25 Aug 2020 13:35:42 +0000 (09:35 -0400)]
vppinfra: elog multi-track g2 test pattern

Type: test

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: Ia4504629cb5e87067a337d16f43e044399b87cac

3 years agodpdk: bump to DPDK 20.08 80/28580/3
Damjan Marion [Tue, 25 Aug 2020 20:29:19 +0000 (22:29 +0200)]
dpdk: bump to DPDK 20.08

Type: improvement

Change-Id: Id864c80ac0c9e6f3514a99e516fed82a998effff
Signed-off-by: Damjan Marion <damarion@cisco.com>
3 years agovcl: fix duplicated key of session_index_to_vlsh_table in multiple 35/28535/4
hanlin [Fri, 21 Aug 2020 03:05:36 +0000 (11:05 +0800)]
vcl: fix duplicated key of session_index_to_vlsh_table in multiple
threads vcl workers scenario

Type: fix

In multiple threads vcl workers scenario, multiple vcl workes can create
sessions with same index. Because only one vls worker created, key of
session_index_to_vlsh_table is duplicated.

Signed-off-by: hanlin <hanlin_wang@163.com>
Change-Id: I7e1f5bc471adc5378194452aef85e611f5d0df1d

3 years agordma: bump rdma-core version to v31.0 07/28507/2
Benoît Ganne [Wed, 19 Aug 2020 08:23:16 +0000 (10:23 +0200)]
rdma: bump rdma-core version to v31.0

Type: improvement

Change-Id: If02deabea1fe47bbe82c53182e24a97cff68f8ec
Signed-off-by: Benoît Ganne <bganne@cisco.com>
3 years agovcl: cleanup non-blocking connect 70/28570/5
Florin Coras [Tue, 25 Aug 2020 04:23:51 +0000 (21:23 -0700)]
vcl: cleanup non-blocking connect

Make sure session is in non-closed state after non-blocking connect to
ensure cleanup is performed, if needed.

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ic1533b9864828f875c840dfdfeed08bf32d10651

3 years agoflow: add vnet/flow formal API 68/28068/5
Chenmin Sun [Mon, 27 Jul 2020 09:54:40 +0000 (17:54 +0800)]
flow: add vnet/flow formal API

This patch adds the API for vnet/flow infra.
Currently this API supports the below flow types:
    VNET_FLOW_TYPE_IP4_N_TUPLE
    VNET_FLOW_TYPE_IP6_N_TUPLE
    VNET_FLOW_TYPE_IP4_N_TUPLE_TAGGED
    VNET_FLOW_TYPE_IP6_N_TUPLE_TAGGED
    VNET_FLOW_TYPE_IP4_L2TPV3OIP
    VNET_FLOW_TYPE_IP4_IPSEC_ESP
    VNET_FLOW_TYPE_IP4_IPSEC_AH
    VNET_FLOW_TYPE_IP4_GTPU

All the above flows are tested with Intel E810/X710 NIC

Type: feature

Signed-off-by: Chenmin Sun <chenmin.sun@intel.com>
Change-Id: Icb8ae20cab9bdad6b120dddc3bd4fb1d85634f3f

3 years agoip-neighbor: skip probe for disabled interfaces 80/28180/2
Matthew Smith [Tue, 4 Aug 2020 20:26:16 +0000 (15:26 -0500)]
ip-neighbor: skip probe for disabled interfaces

Type: fix

In ip6_neighbor_probe(), if the interface is not enabled for ip6,
return NULL and skip trying to build a packet.

If the interface is not enabled, its mcast adjacency will be set to
~0 and a seg fault will ensue.

Change-Id: I825c9f40a0d5b2a77f788ac8dbd618138706383d
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
3 years agoapi: register endian handlers for reply messages 66/28566/2
Ole Troan [Mon, 24 Aug 2020 10:22:01 +0000 (12:22 +0200)]
api: register endian handlers for reply messages

Endian handlers was not registered for reply messages.
Causing endian-neutral handlers to crash.

Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: Id14173300ee1ab2601e92d58c70d2fa260814b69

3 years agobonding: enhance binary api handling 06/28206/4
Steven Luong [Mon, 10 Aug 2020 16:34:07 +0000 (09:34 -0700)]
bonding: enhance binary api handling

- check input sw_if_index to make sure it is sane. Coverity actually
complains about it.
- return rv. Some of the APIs handlers were not passing back the rv.

Type: improvement

Signed-off-by: Steven Luong <sluong@cisco.com>
Change-Id: I8378ea948af561ba2bd9b02fb10bf4f9df2a2cd2

3 years agovmxnet3: enhance debug CLI error handling 81/28181/3
Steven Luong [Wed, 5 Aug 2020 19:30:42 +0000 (12:30 -0700)]
vmxnet3: enhance debug CLI error handling

- Display the interface name upon successfully creating the interface.
- Don't go silent when error occurs. Be explicit about it.

Type: improvement

Signed-off-by: Steven Luong <sluong@cisco.com>
Change-Id: Ie4fdaf323f8b3833ad4a7af3872290141204aba8

3 years agohsa: set connected mode for udp server 63/28563/2
jiangxiaoming [Sat, 22 Aug 2020 11:25:49 +0000 (19:25 +0800)]
hsa: set connected mode for udp server

Type: fix

Signed-off-by: jiangxiaoming <jiangxiaoming@outlook.com>
Change-Id: I32a28a944fcee11657c4dd0ba34ad6d73de89263

3 years agovppinfra: add format_one_elog_event 24/28524/2
Dave Barach [Thu, 20 Aug 2020 12:30:39 +0000 (08:30 -0400)]
vppinfra: add format_one_elog_event

To avoid ridiculous pointer gymnastics in golang

Type: improvement

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: Ic5a641c18281970e2b9bc3013a54cfc3ae92e372

3 years agovppapigen: Fix missing api dir 57/28557/1
Nathan Skrzypczak [Fri, 21 Aug 2020 09:16:44 +0000 (11:16 +0200)]
vppapigen: Fix missing api dir

Type: fix

pci_types.api lives in vlib/pci which wasn't included
in the generate_json.py script

Change-Id: I15649786282584b7aefb9ace83c5154eb697b50b
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
3 years agotcp: track reorder with sacks 10/28110/18
Florin Coras [Thu, 30 Jul 2020 06:03:39 +0000 (23:03 -0700)]
tcp: track reorder with sacks

Type: feature

Change-Id: I041bff2e8d589c171661de286fa1503531dff891
Signed-off-by: Florin Coras <fcoras@cisco.com>
3 years agotap: fix flags in custom-dump 25/28525/2
Mohsin Kazmi [Thu, 20 Aug 2020 12:54:07 +0000 (14:54 +0200)]
tap: fix flags in custom-dump

Type: fix

Change-Id: I4cd0b1855eab05344897686dc17b7df44de6c786
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
3 years agovirtio: add modern device support 66/27566/10
Mohsin Kazmi [Thu, 20 Aug 2020 08:25:12 +0000 (10:25 +0200)]
virtio: add modern device support

Type: feature

Change-Id: I205f7c146a213d603d9d1e46fcf5195a876608dc
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>