vpp.git
3 years agoip: convert u32 entry_flags to vl_api_mfib_entry_flags_t on mroute API 42/29542/3
Neale Ranns [Tue, 20 Oct 2020 07:20:17 +0000 (07:20 +0000)]
ip: convert u32 entry_flags to vl_api_mfib_entry_flags_t on mroute API

Type: fix

This is not an API change, it's the same values, just a different named
type.
also use VppEnum values in tests

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

3 years agoikev2: fix setting responder/initiator addresses 91/29391/3
Filip Tehlar [Wed, 7 Oct 2020 23:52:37 +0000 (23:52 +0000)]
ikev2: fix setting responder/initiator addresses

Type: fix

Change-Id: Ic406aa914d92e802a5fb0f27c2ffa1b98db012b0
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
3 years agoikev2: prevent crash after no IP address 27/28527/12
Filip Tehlar [Wed, 7 Oct 2020 19:17:00 +0000 (19:17 +0000)]
ikev2: prevent crash after no IP address

Type: fix
Ticket: VPP-1900

This fixes a crash when initiating IKE connection using interface
without any IP address.
It also ensures that the IKE connection is automatically retried once the
interface obtains an address.

Signed-off-by: jan_cavojsky <Jan.Cavojsky@pantheon.tech>
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: Ia1919c349e64b3a0a4198365e075e177e3ba3de5

3 years agocnat: allow max_u16 translation backends 40/29440/5
Nathan Skrzypczak [Tue, 13 Oct 2020 15:26:47 +0000 (17:26 +0200)]
cnat: allow max_u16 translation backends

Type: fix

Allow for 65536 backends for a translation.
- use u32 instead of u8
- filter out back_walk with more than
FIB_PATH_LIST_POPULAR backends
- we're still limited by u16 lb_n_buckets
in src/vnet/dpo/load_balance.h

Change-Id: Ib37b958e59b25ef5ef9f92b82008d626860faddd
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
3 years agovirtio: run process to send interrupts to input nodes 89/29389/4
Mohsin Kazmi [Mon, 12 Oct 2020 11:01:24 +0000 (13:01 +0200)]
virtio: run process to send interrupts to input nodes

Type: improvement

virtio interfaces support packet coalescing and buffering which
depends on timer expiry to flush the stored packets periodically.

virtio input node checks timer expiry and schedules tx queue
accordingly. In poll mode, timer expiry is handled naturally,
as input node runs periodically. In interrupt mode, virtio
input node depends on the interrupts send from backend.
Stored packets could starve, if there would not be interrupts
to input node.

This patch implements a process node which periodically
sends interrupt to virtio input node given coalescing or buffering
feature is enabled on an interface.

Change-Id: Ic38f749f74b001073d4d0579dca149d0a4cea039
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
3 years agoipsec: Add to the SA info directly in the bihash 30/29530/4
Neale Ranns [Mon, 19 Oct 2020 13:23:33 +0000 (13:23 +0000)]
ipsec: Add to the SA info directly in the bihash

Type: improvement

this save the cache miss on the protect structure.

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

3 years agovcl: wait for sendto to connect if needed 62/29562/2
Florin Coras [Wed, 21 Oct 2020 01:44:41 +0000 (18:44 -0700)]
vcl: wait for sendto to connect if needed

Type: fix

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

3 years agomisc: fix tracedump graph api initialization overflow 70/29570/2
Benoît Ganne [Wed, 21 Oct 2020 10:18:58 +0000 (12:18 +0200)]
misc: fix tracedump graph api initialization overflow

vppapigen does not create config entries for services stream messages.
It is not needed anyway as the api handler does not rely on VPPAPI
macros.

Type: fix

Change-Id: Iba188b0fc6388c478d7e4d0c7ee2c05ed672e23f
Signed-off-by: Benoît Ganne <bganne@cisco.com>
3 years agoaf_xdp: fix NUMA node parsing 22/29522/3
Benoît Ganne [Mon, 19 Oct 2020 07:49:09 +0000 (09:49 +0200)]
af_xdp: fix NUMA node parsing

Non-NUMA systems might report -1 as NUMA node.

Type: fix

Change-Id: I092c817ea670009d6f530cc70ad13d45e15fd363
Signed-off-by: Benoît Ganne <bganne@cisco.com>
3 years agostn: remove dependency on tcp and udp headers 59/29559/3
Florin Coras [Tue, 20 Oct 2020 20:40:17 +0000 (13:40 -0700)]
stn: remove dependency on tcp and udp headers

Type: improvement

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

3 years agogso: remove dependency on tcp proto implementation 60/29560/3
Florin Coras [Tue, 20 Oct 2020 20:45:51 +0000 (13:45 -0700)]
gso: remove dependency on tcp proto implementation

Type: improvement

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

3 years agosvm: fix ASAN annotations for external chunks 52/29552/2
Benoît Ganne [Tue, 20 Oct 2020 12:31:55 +0000 (14:31 +0200)]
svm: fix ASAN annotations for external chunks

Chunks can be allocated from another process. We need to manually
mark them as accessible for ASAN.

Type: fix

Change-Id: Ifbeef3346e9cee2c1231f80cbcf7f9673b5b54be
Signed-off-by: Benoît Ganne <bganne@cisco.com>
3 years agovppinfra: fix ASAN annotation 66/29566/2
Benoît Ganne [Wed, 21 Oct 2020 08:02:18 +0000 (10:02 +0200)]
vppinfra: fix ASAN annotation

Type: fix

Change-Id: I90b537eba7f56dbb1928f0ab5f157218affb43f5
Signed-off-by: Benoît Ganne <bganne@cisco.com>
3 years agosvm: fix fifo unit test 67/29567/2
Benoît Ganne [Wed, 21 Oct 2020 09:13:24 +0000 (11:13 +0200)]
svm: fix fifo unit test

 - fix fifo initialization overflowing chunk size
 - stick to the default base virtual address to initialize fifo. ASAN
   can be picky about address space

Type: fix

Change-Id: If9a29138d2c207859d72845e928290c808c4a982
Signed-off-by: Benoît Ganne <bganne@cisco.com>
3 years agovirtio: improve input node performance 33/29533/2
Damjan Marion [Mon, 19 Oct 2020 15:15:58 +0000 (17:15 +0200)]
virtio: improve input node performance

 - Avoid feature arc lookup per packet, as all packets belong to the
   same interface

 - don't validate enqueue for l2 packets, as they all have same
   destionation

Type: improvement
Change-Id: I32ddd801f219eab9281736abafdc91a4ff9e0989
Signed-off-by: Damjan Marion <damarion@cisco.com>
3 years agovirtio: move lock and kick to outer function 46/29546/2
Damjan Marion [Tue, 20 Oct 2020 10:11:06 +0000 (12:11 +0200)]
virtio: move lock and kick to outer function

Type: improvement
Change-Id: I4fdcb40142e8cc9f5f1d0035116659543d5d92fe
Signed-off-by: Damjan Marion <damarion@cisco.com>
3 years agomisc: minimize dependencies on udp.h 61/29561/9
Florin Coras [Tue, 20 Oct 2020 21:59:43 +0000 (14:59 -0700)]
misc: minimize dependencies on udp.h

Type: improvement

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

3 years agotls: enable cert key pair setting for connect 63/29563/2
jiangxiaoming [Wed, 21 Oct 2020 01:54:33 +0000 (09:54 +0800)]
tls: enable cert key pair setting for connect

Type: improvement
Signed-off-by: jiangxiaoming <jiangxiaoming@outlook.com>
Change-Id: Ie0e6d48d65b0b8b493e9d49cfdf93c645523659a

3 years agodpdk: Disable VLAN filtering for VLAN sub-interface in i40e driver 11/29411/3
Dimitrios Markou [Mon, 12 Oct 2020 10:44:38 +0000 (12:44 +0200)]
dpdk: Disable VLAN filtering for VLAN sub-interface in i40e driver

When creating a VLAN sub-interface on a Fortville i40e DPDK VF,
the data plane does not work properly.

Enabling vlan filter offload overrides the VLAN strip offload setting to on.
The VLAN strip offload must be disabled for VPP VLAN sub-interfaces to work.

Ticket: https://jira.fd.io/browse/VPP-1933
Type: fix

Signed-off-by: Dimitrios Markou <dimitrios.markou@est.tech>
Change-Id: I02c6980e3b01870b69a9375f281125ad48477827

3 years agovppinfra: export elog_read_file_not_inline() 58/29558/2
Dave Barach [Tue, 20 Oct 2020 19:17:50 +0000 (15:17 -0400)]
vppinfra: export elog_read_file_not_inline()

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

3 years agostats: crash when adding/deleting interfaces 53/29553/2
Ole Troan [Tue, 20 Oct 2020 12:36:13 +0000 (14:36 +0200)]
stats: crash when adding/deleting interfaces

create tap
delete tap tap0
create loopback interface
delete loopback interface intfc loop0
create tap <- here I hit a segmentation fault

Type: fix
Fixes: 148c7b768721231325a349fa82db693190513b53
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: If270cc57610e2ded7422e7030d8c1f9fadd4d233

3 years agovcl: confirm reset on transport cleanup 65/28165/4
Florin Coras [Tue, 4 Aug 2020 01:55:40 +0000 (18:55 -0700)]
vcl: confirm reset on transport cleanup

Type: fix

Change-Id: Ife579f305409bf987639634213008a7d7f35acd7
Signed-off-by: Florin Coras <fcoras@cisco.com>
3 years agovcl: more session struct cleanup 38/29538/5
Florin Coras [Tue, 20 Oct 2020 03:51:36 +0000 (20:51 -0700)]
vcl: more session struct cleanup

Type: improvement

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

3 years agowireguard: reset secret data before freeing it 49/29549/3
Benoît Ganne [Tue, 20 Oct 2020 12:12:20 +0000 (14:12 +0200)]
wireguard: reset secret data before freeing it

Type: fix

Change-Id: I880bdd55ae5da0b9775a3fb548d44512348a7bc6
Signed-off-by: Benoît Ganne <bganne@cisco.com>
3 years agovcl: convert vep variables into flags 37/29537/4
Florin Coras [Tue, 20 Oct 2020 01:36:48 +0000 (18:36 -0700)]
vcl: convert vep variables into flags

Type: improvement

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

3 years agoipsec: Stack the adj from the destination in the SA's TX table 44/29544/1
Neale Ranns [Tue, 20 Oct 2020 08:49:31 +0000 (08:49 +0000)]
ipsec: Stack the adj from the destination in the SA's TX table

Type: fix

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

3 years agovcl: cleanup read and write ready 19/29519/8
Florin Coras [Mon, 19 Oct 2020 03:17:49 +0000 (20:17 -0700)]
vcl: cleanup read and write ready

Type: improvement

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

3 years agovppinfra: minor refactor in lock.h 35/29535/2
Dave Barach [Mon, 19 Oct 2020 20:05:07 +0000 (16:05 -0400)]
vppinfra: minor refactor in lock.h

For whatever reason, "typedef struct { ... } *foo_t" gives cgo a
horrible case of indigestion. A minor refactor makes the pain go away.

Type: refactor

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

3 years agoip: Move the IP6 fib into ip6_[m]fib.c 32/29532/2
Neale Ranns [Mon, 19 Oct 2020 14:47:20 +0000 (14:47 +0000)]
ip: Move the IP6 fib into ip6_[m]fib.c

Type: improvement

reduce the compile time by moving the bihash includes out of ip[46].h

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

3 years agohsa: refactor socket client app 18/29518/3
Florin Coras [Sun, 18 Oct 2020 23:52:48 +0000 (16:52 -0700)]
hsa: refactor socket client app

Type: refactor

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

3 years agohsa: cleanup sock server test 88/29488/9
Florin Coras [Sat, 17 Oct 2020 00:57:36 +0000 (17:57 -0700)]
hsa: cleanup sock server test

Type: refactor

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

3 years agoipsec: Layout and prefetching of SA struct 17/29517/2
Neale Ranns [Fri, 16 Oct 2020 14:03:55 +0000 (14:03 +0000)]
ipsec: Layout and prefetching of SA struct

Type: improvement

- collect all DP used variables onto 1st or 2nd cache line
- prefetch the 2nd cache line
- in encrypt prefetch the likely location of the trailer.

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

3 years agovirtio: fix compilation time 16/29516/2
Damjan Marion [Sun, 18 Oct 2020 12:00:43 +0000 (14:00 +0200)]
virtio: fix compilation time

There is no need to inline 3 times virtio_refill_vring()...

Type: fix
Change-Id: Ic26e24fd7911af743fedd0e2282784b715e86c3c
Signed-off-by: Damjan Marion <damarion@cisco.com>
3 years agogso: add checksum validation in gro 65/29265/3
Mohsin Kazmi [Tue, 6 Oct 2020 09:58:40 +0000 (11:58 +0200)]
gso: add checksum validation in gro

Type: improvement

Change-Id: I0680c1626a46c8afcb7b6e665cc0734b7b37fd18
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
3 years agomisc: don't export symbols from plugins 91/29491/7
Damjan Marion [Sat, 17 Oct 2020 11:33:32 +0000 (13:33 +0200)]
misc: don't export symbols from plugins

Type: improvement
Change-Id: I2a176fe2871d2e54b010bffc4f1f7a3616f0c455
Signed-off-by: Damjan Marion <damarion@cisco.com>
3 years agovppinfra: add export symbols 95/29495/2
Dave Barach [Sun, 18 Oct 2020 10:54:31 +0000 (06:54 -0400)]
vppinfra: add export symbols

format_one_elog_event()
vec_len_not_inline()
vec_free_not_inline()

Type: fix

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

3 years agovppinfra: export elog_get_events() 92/29492/2
Dave Barach [Sat, 17 Oct 2020 21:22:47 +0000 (17:22 -0400)]
vppinfra: export elog_get_events()

Type: fix

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

3 years agovppinfra: explicitly export symbols 90/29490/4
Damjan Marion [Sat, 17 Oct 2020 11:32:25 +0000 (13:32 +0200)]
vppinfra: explicitly export symbols

Type: improvement
Change-Id: I57a9f85f7df1fc48656b72592349f4c544302f77
Signed-off-by: Damjan Marion <damarion@cisco.com>
3 years agomisc: move gmod to extras/ 89/29489/1
Damjan Marion [Sat, 17 Oct 2020 09:53:31 +0000 (11:53 +0200)]
misc: move gmod to extras/

Type: make
Change-Id: I057237ec5cef4dbecf6b6cd5a0adb4b7dfa78337
Signed-off-by: Damjan Marion <damarion@cisco.com>
3 years agotap: replaces strlen to vec_len 14/29314/2
Mohsin Kazmi [Thu, 8 Oct 2020 15:44:36 +0000 (17:44 +0200)]
tap: replaces strlen to vec_len

Type: fix

Change-Id: I478b6fc54c47f0e77a1470ed29fdd56774671441
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
3 years agobuild: backport dpdk usertools support python3 only patch 72/29472/4
Dave Wallace [Thu, 15 Oct 2020 19:53:50 +0000 (15:53 -0400)]
build: backport dpdk usertools support python3 only patch

- On Centos-8, 'make install-ext-deps' fails due to the
  bpr-mangle-shebangs script failing the dpdk usertools
  python scripts containing '#!/usr/bin/env python'.
  Backport usertools section of the DPDK patch which
  fixes this issue:
  http://git.dpdk.org/dpdk/commit/?id=3f6f83626cf4967a99382a6518a614a1bf3d2c20

- Also fix README to reflect name change of dpdk master
  branch to 'main'.

Type: fix

Change-Id: I487b1ff2da786a4a3fd8fb0f859436b0e1885f1b
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
3 years agovcl: remove accept state and rename connect to ready 69/29469/3
Florin Coras [Thu, 15 Oct 2020 17:54:47 +0000 (10:54 -0700)]
vcl: remove accept state and rename connect to ready

Type: refactor

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

3 years agomisc: deprecate VOM 83/29483/5
Damjan Marion [Fri, 16 Oct 2020 13:28:47 +0000 (15:28 +0200)]
misc: deprecate VOM

Type: make
Change-Id: Ifb3e52af93d24fcc2f2e6a0c408e16902a2fe553
Signed-off-by: Damjan Marion <damarion@cisco.com>
3 years agoacl: do vlib_buffer_enqueue_to_next in outer function 71/29371/2
Damjan Marion [Fri, 9 Oct 2020 14:43:43 +0000 (16:43 +0200)]
acl: do vlib_buffer_enqueue_to_next in outer function

Improves compilation time and reduces object file size for 1MB

Type: improvement
Change-Id: Ibe4840c0ced22070248d93822ea61afe20aff65c
Signed-off-by: Damjan Marion <damarion@cisco.com>
3 years agoipsec: fix instance, and cli del for new ipsec interface 71/29471/4
Eric Kinzie [Wed, 14 Oct 2020 00:02:11 +0000 (20:02 -0400)]
ipsec: fix instance, and cli del for new ipsec interface

- use user instance number in interface name

Restore the behavior of previous versions where the IPsec tunnel
interface name contained the value of the user-provided instance number.
For example, a command similar to

create ipsec tunnel local-ip . . . instance 5

would result in the creation of interface "ipsec5".

- ipsec: delete tunnel protection when asked

The "ipsec tunnel protect" command will parse a "del" argument but does
not undo the tunnel protection, leaving the SAs hanging around with
reference counts that were incremented by a previous invocation of the
command. Allow the tunnel protection to be deleted and also update the
help text to indicate that deletion is an option.

- test: ipsec: add test for ipsec interface instance

Also cleanup (unconfig) after TestIpsecItf4 NULL algo test.

Type: fix
Fixes: dd4ccf2623b5 ("ipsec: Dedicated IPSec interface type")
Signed-off-by: Eric Kinzie <ekinzie@labn.net>
Signed-off-by: Christian Hopps <chopps@labn.net>
Change-Id: Idb59ceafa0633040344473c9942b6536e3d941ce

3 years agomisc: bump debian compatibility level to 10 76/29476/2
Damjan Marion [Fri, 16 Oct 2020 09:23:48 +0000 (11:23 +0200)]
misc: bump debian compatibility level to 10

Level 9 is deprecated in new ubuntu release.

Type: improvement
Change-Id: I9376b5f7a1aa0860e35475c5d32f3626257d2f01
Signed-off-by: Damjan Marion <damarion@cisco.com>
3 years agonat: error in input parameter of init_nat_k 83/29383/2
Dengfeng Liu [Mon, 12 Oct 2020 06:45:28 +0000 (02:45 -0400)]
nat: error in input parameter of init_nat_k

Type: fix
Signed-off-by: Dengfeng Liu <liudf0716@gmail.com>
Change-Id: I3e7ee771d0cf5b7b1b9fbbc833776d523dfa9f09

3 years agobuild: Add missing debian dependencies 74/29474/2
Chuan Han [Thu, 15 Oct 2020 21:16:49 +0000 (14:16 -0700)]
build: Add missing debian dependencies

Otherwise, vpp install will fail.

Type: improvement

Signed-off-by: Chuan Han <chuan.han.comm@gmail.com>
Change-Id: Ifb4d7b8f6fb7b333b8205ba6b424176f8554cfdc

3 years agovlib: add cgo-friendly plugin registration support 73/29473/1
Dave Barach [Thu, 15 Oct 2020 21:07:03 +0000 (17:07 -0400)]
vlib: add cgo-friendly plugin registration support

Allows us to declare plugin registrations in a non-disgusting way:

var plugin_reg = vpp.PluginRegistration{
        Description: "The CGO plugin",
        Version:     "My Version",
        Overrides:   "sample_plugin.so",
}

It turns out that the specific compiler setup generates (.data section
offset, length) pairs in the .vlib_plugin_r2 section:

Contents of section .vlib_plugin_r2:
 1ba9d0 00000000 00000000 50a81800 00000000  ........P.......
 1ba9e0 0a000000 00000000 00000000 00000000  ................
 1ba9f0 00000000 00000000 00000000 00000000  ................
 1baa00 00000000 00000000 00000000 00000000  ................
 1baa10 00000000 00000000 70a81800 00000000  ........p.......
 1baa20 0e000000 00000000                    ........

Contents of section .data:
 18a800 00a81800 00000000 00000000 00000000  ................
 18a810 00000000 00000000 00000000 00000000  ................
 18a820 00000000 00000000 00000000 00000000  ................
 18a830 00000000 00000000 00000000 00000000  ................
 18a840 00000000 00000000 14000000 00000000  ................
 18a850 4d792056 65727369 6f6e0000 00000000  My Version......
 18a860 00000000 00000000 14000000 00000000  ................
 18a870 54686520 45474f20 706c7567 696e0000  The CGO plugin..
 18a880 00000000 00000000 0c000000 00000000  ................
 <etc>

Unfortunately, it seems impossible to torture clang / gcc into
producing anything like this. This patch fabricates a plausible
vlib_plugin_registration_t from the so-called vlib_plugin_r2_t.

Type: improvement

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

3 years agobuild: forward dependencies to arch-specific libs 37/29437/2
Aloys Augustin [Tue, 13 Oct 2020 13:43:00 +0000 (15:43 +0200)]
build: forward dependencies to arch-specific libs

Without this, if a multiarch source depends on a generated api header
for instance, the build would be racy between the api header generation
and the multiarch object compilation.

Type: improvement
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
Change-Id: I08fcd0e5a1c51398ac1a8f37cf6562064b400d4a

3 years agoethernet: fix Ethernet DMAC checks 61/29461/3
Ivan Shvedunov [Thu, 15 Oct 2020 10:19:35 +0000 (13:19 +0300)]
ethernet: fix Ethernet DMAC checks

Type: fix

Due to confusion between ethernet flags and hw interface flags, DMAC
filtering was not happening, most of the time.

Signed-off-by: Ivan Shvedunov <ivan4th@gmail.com>
Change-Id: I95209e1ea0f95f9be0b1a82ec9fcbc80955428d2

3 years agovcl: refactor session state enum 55/29455/6
Florin Coras [Wed, 14 Oct 2020 23:35:58 +0000 (16:35 -0700)]
vcl: refactor session state enum

Only allow one state instead of using flags.

Type: improvement

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

3 years agomisc: 20.09 Release Notes 29/29429/2
Andrew Yourtchenko [Fri, 25 Sep 2020 14:06:34 +0000 (14:06 +0000)]
misc: 20.09 Release Notes

Type: docs
Change-Id: I1b12f1d14a1a68504767c01ceac0eed115fb7ba6
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
Signed-off-by: Ray Kinsella <mdr@ashroe.eu>
(cherry picked from commit 3c5414029bb432e51820e39e86f26fd6b39c6447)

3 years agocrypto: fixed ipsec_mb lib dependencies 67/29367/7
PiotrX Kleski [Mon, 12 Oct 2020 13:33:11 +0000 (15:33 +0200)]
crypto: fixed ipsec_mb lib dependencies

Type: fix

This patch re-enables libIPSec_MB build for the ipsecmb crypto engine
plugin.

Also since DPDK meson build relies on system installed libIPSec_MB.so
that may be inconsistent with VPP compiled one (system installed
version vs VPP locally compiled version for example), this patch also
disables all libIPSec_MB dependant PMDs from DPDK build.

Also ipsec-mb version is incresed to 0.54.

Signed-off-by: PiotrX Kleski <piotrx.kleski@intel.com>
Reviewed-by: Fan Zhang <roy.fan.zhang@intel.com>
Change-Id: I2ff9e7cd0c35cff9fa642895301a26a5350ea94e

3 years agompls: no per-MPLS-tunnel tx node 04/29304/4
Neale Ranns [Thu, 8 Oct 2020 10:06:32 +0000 (10:06 +0000)]
mpls: no per-MPLS-tunnel tx node

Type: improvement

do not add a per-MPLS tunnel tx node. per-tunnl nodes limit the number
of tunnels that can be created to the number o fnodes that can be
created (64k).
improve the tx node.

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

3 years agonat: Fix ICMP bypass session creation 77/29277/3
Vladimir Isaev [Wed, 7 Oct 2020 11:55:11 +0000 (14:55 +0300)]
nat: Fix ICMP bypass session creation

After get_icmp_o2i_ed_key() bihash key may include
IP protocol and addresses from inner ICMP packet.

It is OK for session lookup, but we should not create
a session on ICMP error message receiving.

Type: fix

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

3 years agocnat: Fix backend LB 49/29449/2
Nathan Skrzypczak [Wed, 14 Oct 2020 11:26:57 +0000 (13:26 +0200)]
cnat: Fix backend LB

Type: fix

Change-Id: I4ea263270bcc38e505e88d512acacef7439f3823
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
3 years agobuild: add missing dnf-plugins-core package on centos-8 82/28982/4
Dave Wallace [Mon, 21 Sep 2020 17:07:29 +0000 (13:07 -0400)]
build: add missing dnf-plugins-core package on centos-8

Type: fix

Change-Id: I1a4d9a7a8089cbf488dcd6f09eec6b4e0d0d72fe
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
3 years agovlib: avoid clipping in show error 41/29441/2
Florin Coras [Tue, 13 Oct 2020 22:10:29 +0000 (15:10 -0700)]
vlib: avoid clipping in show error

Type: improvement

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

3 years agovcl: set STATE_UPDATED state when connect with non-blocking socket! 09/29409/5
fanyf [Tue, 13 Oct 2020 09:07:16 +0000 (17:07 +0800)]
vcl: set STATE_UPDATED state when connect with non-blocking socket!

State set to STATE_UPDATED to ensure the session is not assumed to be open and to also allow the app to close it prior to vpp's connected reply!

Type: fix

Signed-off-by: fanyf <fanyufei521@outlook.com>
Change-Id: I7a6d0914599cb9296d112205dac725ecd11a5d0f

3 years agovcl: app_name format type error 12/29412/2
jiangxiaoming [Tue, 13 Oct 2020 06:23:29 +0000 (14:23 +0800)]
vcl: app_name format type error

Type: fix
Signed-off-by: jiangxiaoming <jiangxiaoming@outlook.com>
Change-Id: I9f017ec84320ebc56f557385d73893ecf8f25bcd

3 years agotcp: fix bt acked_sacked on recovery 74/29374/3
Florin Coras [Fri, 9 Oct 2020 19:04:50 +0000 (12:04 -0700)]
tcp: fix bt acked_sacked on recovery

Type: fix

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

3 years agosession: listeners verbose format alignment 38/29438/2
Florin Coras [Tue, 13 Oct 2020 14:40:42 +0000 (07:40 -0700)]
session: listeners verbose format alignment

Type: improvement

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

3 years agosvm: fix coverity warning 05/29405/3
Florin Coras [Tue, 13 Oct 2020 02:08:22 +0000 (19:08 -0700)]
svm: fix coverity warning

Type: fix

Change-Id: I6c6255e66dd4cd0e4174b2a1658a3b8be40f0f7a
Signed-off-by: Florin Coras <fcoras@cisco.com>
3 years agotcp: fix listener trace coverity warning 04/29404/3
Florin Coras [Tue, 13 Oct 2020 02:03:52 +0000 (19:03 -0700)]
tcp: fix listener trace coverity warning

Type: fix

Change-Id: I75c0bd862260e188f625271c3bd545a7ab37af5d
Signed-off-by: Florin Coras <fcoras@cisco.com>
3 years agosession: allow custom config of segment baseva 03/29403/3
Florin Coras [Tue, 13 Oct 2020 01:39:44 +0000 (18:39 -0700)]
session: allow custom config of segment baseva

Type: improvement

Change-Id: If9ea09d652c228004492cf47854a7f6c1f8b3bc2
Signed-off-by: Florin Coras <fcoras@cisco.com>
3 years agostats: counters data model 96/29296/4
Ole Troan [Wed, 7 Oct 2020 16:05:37 +0000 (18:05 +0200)]
stats: counters data model

This adds a new data model for counters.
Specifying the errors severity and unit.
A later patch will update vpp_get_stats to take advantage of this.
Only the map plugin is updates as an example.

New .api language:
A new "counters" keyword to define counter sets.

counters map {
  none {
    severity info;
    type counter64;
    units "packets";
    description "valid MAP packets";
  };
  bad_protocol {
    severity error;
    type counter64;
    units "packets";
    description "bad protocol";
  };
};

Each counter has 4 keywords. severity, which is one of error, info or warn.
A type, which is one of counter64 or gauge64.
units, which is a text field using units from YANG.

paths {
  "/err/ip4-map" "map";
  "/err/ip6-map" "map";
  "/err/ip4-t-map" "map";
  "/err/ip6-t-map" "map";
};

A new paths keyword that maps the counter-set to a path in the stats segment KV store.

Updated VPP CLI to include severity so user can see error counter severity.
DBGvpp# show errors
   Count               Node                    Reason        Severity
        13        ethernet-input              no error         error

Type: feature
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: Ib2177543f49d4c3aef4d7fa72476cff2068f7771
Signed-off-by: Ole Troan <ot@cisco.com>
3 years agoikev2: fix initial contact cleanup 52/28452/5
Filip Tehlar [Wed, 23 Sep 2020 11:20:12 +0000 (11:20 +0000)]
ikev2: fix initial contact cleanup

When looking for existing SA connection to clean up search all per
thread data, not only current one.

Type: fix

Change-Id: I59312e08a07ca1f474b6389999e59320c5128e7d
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
3 years agoikev2: fix coverity warning 63/29263/4
Filip Tehlar [Tue, 6 Oct 2020 08:04:10 +0000 (08:04 +0000)]
ikev2: fix coverity warning

Type: fix

Change-Id: Iee96b3ea3e71ec248c3c3c98d153a08372b5faf0
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
3 years agoikev2: fix memory leak in auth routine 35/29235/2
Filip Tehlar [Mon, 5 Oct 2020 12:30:44 +0000 (12:30 +0000)]
ikev2: fix memory leak in auth routine

Type: fix

Change-Id: I93529b069925fcef32cdb22e27975b802b4c3b97
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
3 years agol2: mark l2 fib uninitialized after clearing 02/29402/1
Matthew Smith [Mon, 12 Oct 2020 20:04:39 +0000 (15:04 -0500)]
l2: mark l2 fib uninitialized after clearing

Type: fix

After clearing the l2fib with 'vppctl clear l2fib', a SEGV occurs the
next time a MAC address is learned.

In l2fib_clear_table(), the l2fib bihash is freed and then
l2fib_table_init() is called to reinitialize it. l2fib_table_init()
will not do anything if l2fib_main.mac_table_initialized is set to 1.
Reset the value of l2fib_main.mac_table_initialized to 0 before
calling l2fib_table_init().

Change-Id: I87f1a3f9a46c951f36c1c0a5ab795b0ec08c81a8
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
3 years agomisc: clang-11 and gcc-10 support 78/29378/3
Damjan Marion [Sat, 10 Oct 2020 17:17:58 +0000 (19:17 +0200)]
misc: clang-11 and gcc-10 support

clang-11 complains:

 error: field 'buffer_template' with variable sized type 'vlib_buffer_t' not at the end of a struct or class is a GNU extension [-Werror,-Wgnu-variable-sized-type-not-at-end]

Type: improvement
Change-Id: I2cb6b4fde723a05b42cf33dd8130df074f0362ab
Signed-off-by: Damjan Marion <damarion@cisco.com>
3 years agoip: IP6 incorrectly disabled on removing first ip6 prefix 90/29390/2
Neale Ranns [Mon, 12 Oct 2020 11:46:53 +0000 (11:46 +0000)]
ip: IP6 incorrectly disabled on removing first ip6 prefix

Type: fix

reference counting on the ip6 state was broken, meaning that disabling
one of serveral ip6 configs on an interface, completely ip6 disabled the
interface.

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

3 years agotcp: use 100us timer resolution 60/29360/4
Florin Coras [Thu, 8 Oct 2020 23:59:54 +0000 (16:59 -0700)]
tcp: use 100us timer resolution

Experimental reduction of tcp timer resolution from 100ms that
allows for finer grained timers, if needed. Please report
issues if any encountered.

Type: improvement

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

3 years agovcl svm: segments improvements 80/29380/6
Florin Coras [Sun, 11 Oct 2020 18:05:04 +0000 (11:05 -0700)]
vcl svm: segments improvements

Type: improvement

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

3 years agotcp: fix connection reuse with no listener 81/29381/4
Florin Coras [Sun, 11 Oct 2020 18:20:56 +0000 (11:20 -0700)]
tcp: fix connection reuse with no listener

Type: fix

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

3 years agonat: set fib index for bypass session 66/29266/2
Vladimir Isaev [Tue, 6 Oct 2020 09:59:47 +0000 (12:59 +0300)]
nat: set fib index for bypass session

Bihash key already contains rx_fib_index for lookup
but fib value for session itself is set to 0.

In the result bihash is allocated with key with fib index
set, but free function is looking for key with fib index set
to zero. It leads to use-after-free because session itself is
removed from pool but bihash is not because of key mismatch.

Type: fix

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

3 years agolldp: fix typo in mac address constant 79/29379/2
Dmitry Vakhrushev [Sun, 11 Oct 2020 17:32:27 +0000 (20:32 +0300)]
lldp: fix typo in mac address constant

Type: fix
Fixes: 149fd3fbd069a5f7be86e68472578ee7af229cb6
Signed-off-by: Dmitry Vakhrushev <dmitry@netgate.com>
Change-Id: I06956f3ed3689172c3682d6b707991613255cabd

3 years agolldp: fix memory leakage 88/29388/2
Dmitry Vakhrushev [Mon, 12 Oct 2020 10:43:39 +0000 (13:43 +0300)]
lldp: fix memory leakage

1. Typo in usage of vnet_hw_interface_add_del_mac_address(),
   which returns 0 when it succeeds instead non zero value.

2. Generated error doesn't clean allocated resources for
   an interface.

3. Returned value from vnet_hw_interface_add_del_mac_address()
   should be erased or reported.

Type: fix
Fixes: 149fd3fbd069a5f7be86e68472578ee7af229cb6

Signed-off-by: Dmitry Vakhrushev <dmitry@netgate.com>
Change-Id: Ia6b28ae70fea127d15eb0102223ff972358766bc
Signed-off-by: Dmitry Vakhrushev <dmitry@netgate.com>
3 years agosession: app_name should format with %v 75/29375/3
jiangxiaoming [Sat, 10 Oct 2020 07:23:54 +0000 (15:23 +0800)]
session: app_name should format with %v

Type: fix
Signed-off-by: jiangxiaoming <jiangxiaoming@outlook.com>
Change-Id: Ib096ad14e6ddbaff52429a416ea4d245703a368d

3 years agomisc: clib_unix_warning usage error 77/29377/1
jiangxiaoming [Sat, 10 Oct 2020 09:32:11 +0000 (17:32 +0800)]
misc: clib_unix_warning usage error

Type: fix
Signed-off-by: jiangxiaoming <jiangxiaoming@outlook.com>
Change-Id: Ibc4e961388d0976b55b9b936d6a37d36cddab5fe

3 years agoavf: add add_del_mac_address handler 07/29307/8
Damjan Marion [Thu, 8 Oct 2020 11:21:22 +0000 (13:21 +0200)]
avf: add add_del_mac_address handler

Type: improvement
Change-Id: I4d0b1cd87cf2f58a653f40a300da4b7a43348a06
Signed-off-by: Damjan Marion <damarion@cisco.com>
3 years agoacl: move nonip nodes to separate file 69/29369/2
Damjan Marion [Fri, 9 Oct 2020 14:10:59 +0000 (16:10 +0200)]
acl: move nonip nodes to separate file

Type: refactor
Change-Id: Idcef8effa86d6421e4b3e5f747695ddb2982e78f
Signed-off-by: Damjan Marion <damarion@cisco.com>
3 years agowireguard: park the timer process 72/29372/2
Dave Barach [Fri, 9 Oct 2020 15:33:55 +0000 (11:33 -0400)]
wireguard: park the timer process

Until the feature is configured. It would make sense to push more of
the feature init code into the newly-added wg_feature_init()
function. This patch fixes a severe hemorrhoid.

Type: improvement

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

3 years agovlib: save signal handler data to global vbls 70/29370/2
Dave Barach [Fri, 9 Oct 2020 14:17:22 +0000 (10:17 -0400)]
vlib: save signal handler data to global vbls

Turns out that clang is a bit too enthusiastic about mapping static
variables to registers, which makes it hard to extract (especially)
the faulting VA from an optimized core file.

Type: improvement

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

3 years agonat: ipfix logging separation & refactor 49/29149/6
Filip Varga [Tue, 29 Sep 2020 14:53:20 +0000 (16:53 +0200)]
nat: ipfix logging separation & refactor

Type: refactor

Change-Id: I8785e4987e4f60361072440d0c3c6954c9c12394
Signed-off-by: Filip Varga <fivarga@cisco.com>
3 years agotcp: treat pending timers as active 59/29359/4
Florin Coras [Thu, 8 Oct 2020 20:33:20 +0000 (13:33 -0700)]
tcp: treat pending timers as active

Type: fix

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

3 years agotcp: custom geometry for timer wheel 56/29356/4
Florin Coras [Thu, 8 Oct 2020 16:28:32 +0000 (09:28 -0700)]
tcp: custom geometry for timer wheel

Type: refactor

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

3 years agovppinfra: memory leak be gone 58/29358/1
Dave Barach [Thu, 8 Oct 2020 20:04:30 +0000 (16:04 -0400)]
vppinfra: memory leak be gone

Type: fix
Fixes: ab1a50cf7407e31097b550226c2b6954d6371bea / gerrit 29272

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

3 years agopg: Choose the input interface from the stream's rx 12/29312/1
Neale Ranns [Thu, 8 Oct 2020 14:02:35 +0000 (14:02 +0000)]
pg: Choose the input interface from the stream's rx

Type: fix

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

3 years agogre: MPLS over GRE does not select correct fixup function 03/29303/2
Neale Ranns [Thu, 8 Oct 2020 08:10:34 +0000 (08:10 +0000)]
gre: MPLS over GRE does not select correct fixup function

Type: fix

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

3 years agol2: Fix compile error on unused next_index 05/29305/1
Neale Ranns [Thu, 8 Oct 2020 10:39:07 +0000 (10:39 +0000)]
l2: Fix compile error on unused next_index

Type: fix

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

3 years agointerface: shorten vnet_hw_if_rx_mode 98/29298/2
Damjan Marion [Wed, 7 Oct 2020 18:59:07 +0000 (20:59 +0200)]
interface: shorten vnet_hw_if_rx_mode

This is part of bigger refactor.

Type: refactor
Change-Id: I6fc2c0a1e2d217a70952901bcf775b8485bd3c20
Signed-off-by: Damjan Marion <damarion@cisco.com>
3 years agopci: add vlib_pci_get_msix_file_index 97/29297/2
Damjan Marion [Wed, 7 Oct 2020 18:00:39 +0000 (20:00 +0200)]
pci: add vlib_pci_get_msix_file_index

Type: improvement
Change-Id: Ibc15aa6f75e989b2b7caa9a57e3665b1ffc7cc18
Signed-off-by: Damjan Marion <damarion@cisco.com>
3 years agoip-neighbor: Grat ARPs from different subnet are dropped 35/29035/3
Neale Ranns [Wed, 23 Sep 2020 11:25:21 +0000 (11:25 +0000)]
ip-neighbor: Grat ARPs from different subnet are dropped

Type: test

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

3 years agol2: input performance 32/29232/5
Neale Ranns [Tue, 29 Sep 2020 15:38:51 +0000 (15:38 +0000)]
l2: input performance

Type: improvement

- cache the values form the BD on the input config to avoid loading
- avoid the short write long read on the sequence number
- use vlib_buffer_enqueue_to_next

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

3 years agovirtio: fix the trace 76/29276/2
Mohsin Kazmi [Wed, 7 Oct 2020 11:23:55 +0000 (13:23 +0200)]
virtio: fix the trace

Type: fix

This patch fixes the commit e347acbc31111504c015531e8ad764a86d489309

Change-Id: Icee7a6e250c94ae93e606d7869acc55c7a5806b1
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
3 years agonat: use proper type for counters 79/29279/2
Klement Sekera [Wed, 7 Oct 2020 12:19:44 +0000 (12:19 +0000)]
nat: use proper type for counters

Type: improvement
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Change-Id: I330822c5d675cdfa57ab75ceb0223f11e0ebb7d2

3 years agoipsec: Allow SAs with NULL auth &crypto on IPSec interface 82/29282/2
Neale Ranns [Wed, 7 Oct 2020 13:58:56 +0000 (13:58 +0000)]
ipsec: Allow SAs with NULL auth &crypto on IPSec interface

Type: improvement

on the dedicated IPSec interface, the SA describes the peer, so it is
not possible to forward to a peer for which there is no SA. Therefore if
an SA is added with NULL auth and integ then this explicitly states that
this is what the peer desires.
on the contrary on the IP-IP/GRE interface, in the absence of protection
and an SA, then the traffic is sent in the clear. So adding NULL
auth/crypto iSA is a means to describe that the peer should not be sent
traffic.

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

3 years agofib: Register multicast MAC with interface for accepting interfaces 74/29274/2
Neale Ranns [Mon, 5 Oct 2020 12:26:47 +0000 (12:26 +0000)]
fib: Register multicast MAC with interface for accepting interfaces

Type: fix

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