vpp.git
2 years agonat: NAT44 ED api fix and improvement 22/33622/7
Filip Varga [Mon, 30 Aug 2021 14:23:38 +0000 (16:23 +0200)]
nat: NAT44 ED api fix and improvement

Backward compatibility fix returns erroneous behavior that lets user
add internally unused inside interface for the purpose
of complying with the old add/dump/details API behavior.
Change introduced in https://gerrit.fd.io/r/c/vpp/+/32951 removed
extra inside interface that wasn't required or any how used by the
output feature. This patch also changed outside interface flags to
inside & outside. This fix returns the old behavior by imitating
the old behavior through dummy registratoin data.

Added new API calls nat44_ed_add_del_output_interface
and nat44_ed_output_interface_get/details as a
replacement of old API's. New API introduces
simplified and cleaner way of configuring outside
feature without requirement of config flags.

Type: improvement
Signed-off-by: Filip Varga <fivarga@cisco.com>
Change-Id: I7a170f7325727c04da5e2e3ffbe3f02179531284

2 years agointerface: free the output_node_thread_runtimes 40/33940/2
Mohsin Kazmi [Mon, 4 Oct 2021 09:29:08 +0000 (11:29 +0200)]
interface: free the output_node_thread_runtimes

Type: fix

output_node_thread_runtimes was not freed when an interface
is deleted. This patch fixes it.

Change-Id: I763b0109be1904d43839528a346f3b9aa8927205
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2 years agointerface: remove the redundant vec_free on rx_queue_indices 29/33929/3
Mohsin Kazmi [Mon, 4 Oct 2021 09:21:57 +0000 (11:21 +0200)]
interface: remove the redundant vec_free on rx_queue_indices

Type: fix

vnet_delete_hw_interface() calls vec_free on rx_queue_indices.
function vnet_hw_if_unregister_all_rx_queues() is used to free
rx_queue_indices which is also called by vnet_delete_hw_interface().
So, second vec_free is redundant.

Change-Id: Ibda4be38fd122d33532bb384c97b0b9e5f441134
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2 years agobuild: Allow ipsec-mb plugin to build with libipsec_mb 0.55 29/33829/8
Nick Brown [Mon, 27 Sep 2021 15:53:23 +0000 (16:53 +0100)]
build: Allow ipsec-mb plugin to build with libipsec_mb 0.55

The 0.55 version of libipsec_mb does not support the chacha functions
used in the plugin.

The missing symobls are:
ipsecmb_ops_chacha_poly
ipsecmb_ops_chacha_poly_chained
IMB_CIPHER_DIRECTION

Check for ipsecmb_ops_chacha_poly() and conditionalise the chacha code
in the plugin on this.

ipsec_mb 0.55 is the version currently found in Debian Stable (bullseye)

Type: make
Signed-off-by: Nick Brown <nickbroon@gmail.com>
Change-Id: I88c962ac4f99a58b5cd61fb9b75f692e27d4ec30

2 years agomemif: integrate with new tx infra 47/33947/2
Mohsin Kazmi [Thu, 30 Sep 2021 09:28:07 +0000 (09:28 +0000)]
memif: integrate with new tx infra

Type: improvement

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

2 years agovcl: remove unsed configs 33/33933/2
Florin Coras [Fri, 1 Oct 2021 21:57:03 +0000 (14:57 -0700)]
vcl: remove unsed configs

Type: refactor

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

2 years agohsa: do not drop the barrier when creating echo server 14/33814/2
Filip Tehlar [Fri, 24 Sep 2021 06:21:25 +0000 (06:21 +0000)]
hsa: do not drop the barrier when creating echo server

Type: fix

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: I25d3ac72360bea130f567095b486d8e295d2f2f7

2 years agowireguard: use the same udp-port for multi-tunnel 43/32443/11
Artem Glazychev [Tue, 25 May 2021 05:06:42 +0000 (12:06 +0700)]
wireguard: use the same udp-port for multi-tunnel

now we can reuse udp-port for many wireguard interfaces

Type: improvement
Change-Id: I14b5a9dbe917d83300ccb4d6907743d88355e5c5
Signed-off-by: Artem Glazychev <artem.glazychev@xored.com>
2 years agovppinfra: fix potential memory access error in _pool_init_fixed 24/33324/4
Jieqiang Wang [Thu, 29 Jul 2021 17:03:16 +0000 (17:03 +0000)]
vppinfra: fix potential memory access error in _pool_init_fixed

_pool_init_fixed uses mmap to initialize a fixed-size and preallocated
pool, whose size is the sum of vector_size and free_index_size with
alignment to the CLIB_CACHE_LINE_BYTES and page size. In this way
vector_size equals to pool_header_t + vec_header_t + elt_size * max_elts
so moving to the end of the pool space should be pool_header_t pointer +
vector_size, instead of vec_header_t pointer + vector_size.

Simple code to reproduce this error:

u64 *pool;
pool_init_fixed(pool, 2042);

Improve unit test to cover this case

Type: fix

Signed-off-by: Jieqiang Wang <jieqiang.wang@arm.com>
Reviewed-by: Lijian Zhang <lijian.zhang@arm.com>
Reviewed-by: Tianyu Li <tianyu.li@arm.com>
Change-Id: If088ef89b3dcb2d874ee837ae9da60983b14615c
Signed-off-by: Dave Barach <dave@barachs.net>
2 years agovirtio: remove control queue support from virtio_show() for tap/tun 45/33945/2
Mohsin Kazmi [Mon, 4 Oct 2021 11:43:19 +0000 (13:43 +0200)]
virtio: remove control queue support from virtio_show() for tap/tun

Type: fix

Tap/Tun interfaces do not have control queue.
This patch removes the support of control queue
from virtio_show() which is used by show tap/tun cli.

Change-Id: Ib89144ad488ed548fb1ce50ee232a1b8659ccf29
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2 years agofib: fix unitialized padding in fib_api_next_hop_decode 41/33941/2
Benoît Ganne [Fri, 1 Oct 2021 17:20:02 +0000 (19:20 +0200)]
fib: fix unitialized padding in fib_api_next_hop_decode

If the type is IPv4, makes sure the padding bytes are set to 0 as this
is used by ip46_address_is_ip4() to detect the type.

Type: fix

Change-Id: I6a81fa05a6b227086853901bf3dcdc66e6d04d2c
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2 years agoip: fix punt for ipv6 42/33942/1
Benoît Ganne [Mon, 4 Oct 2021 10:03:20 +0000 (12:03 +0200)]
ip: fix punt for ipv6

Type: fix

Change-Id: I583c30e9b63c0b0b6cd5fef0b2cb9ed7ec9856e2
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2 years agoperfmon: topdown events as peusdo events 20/33920/2
Ray Kinsella [Thu, 30 Sep 2021 15:02:04 +0000 (16:02 +0100)]
perfmon: topdown events as peusdo events

Topdown events are peusdo events exposed by linux,
and are only present on Intel platforms.
Change to clarifies this.

Type: fix

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

2 years agodocs: plugin comment nitfixes 22/33922/2
Nathan Skrzypczak [Wed, 29 Sep 2021 13:37:34 +0000 (15:37 +0200)]
docs: plugin comment nitfixes

Type: improvement

Change-Id: Ib7e2f5f314144064de7b6be0fade3db2f9c943fe
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2 years agointerface: remove the input_node_thread_index_by_queue 30/33930/2
Mohsin Kazmi [Fri, 1 Oct 2021 17:01:48 +0000 (19:01 +0200)]
interface: remove the input_node_thread_index_by_queue

Type: fix

input_node_thread_index_by_queue is not being used anymore.

Change-Id: I0141fa0d024affb39771acf7516e064c5c8acfe9
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2 years agohsa: proxy app worker thread deadlock 17/33917/2
Sivaprasad Tummala [Thu, 30 Sep 2021 13:43:46 +0000 (19:13 +0530)]
hsa: proxy app worker thread deadlock

proxy main lock not released in certain cases and resulting in deadlock.

Type: fix

Signed-off-by: Sivaprasad Tummala <Sivaprasad.Tummala@intel.com>
Change-Id: Ib869f459b447189bb921c05fd260f3691c2ac787

2 years agompls: Save the L3 header offset in the meta-data before label imposition 90/33390/2
Neale Ranns [Fri, 6 Aug 2021 09:03:45 +0000 (09:03 +0000)]
mpls: Save the L3 header offset in the meta-data before label imposition

Type: improvement

Subsequent features in the data-path can thus easily find the l3 header
without parsing the label stack.

Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: I26f7d4bbe9186aeb8654706579c72424e8ecca2c

2 years agodevices: add support for pseudo header checksum 21/31321/13
Mohsin Kazmi [Tue, 23 Feb 2021 14:55:04 +0000 (15:55 +0100)]
devices: add support for pseudo header checksum

Type: improvement

Linux uses pseudo header checksum when checksum of l4 is offloaded.
This patch adds similar support in virtual interfaces.

Change-Id: I6a94d1104e59356f95057e7c122e3be9cd8659a3
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2 years agowireguard: move adjacency processing from wireguard_peer to wireguard_interface 13/32413/9
Artem Glazychev [Thu, 20 May 2021 05:33:52 +0000 (12:33 +0700)]
wireguard: move adjacency processing from wireguard_peer to wireguard_interface

now we should add routes manually

Type: improvement
Change-Id: I877511a18854efdfad02939267d38a216b2ccec3
Signed-off-by: Artem Glazychev <artem.glazychev@xored.com>
2 years agofib: doc nitfixes 93/33893/2
Nathan Skrzypczak [Wed, 29 Sep 2021 13:28:26 +0000 (15:28 +0200)]
fib: doc nitfixes

Type: improvement

Change-Id: I29346c849a5e1ff3c2ea399671f9f50d075e9f18
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2 years agobuild: consistent use of CMAKE_INSTALL_LIBDIR 89/33889/2
Nick Brown [Wed, 29 Sep 2021 15:13:23 +0000 (16:13 +0100)]
build: consistent use of CMAKE_INSTALL_LIBDIR

Set the RPATH to based on CMAKE_INSTALL_LIBDIR so that libraries are
correctly found.

Type: make
Change-Id: I82d649345edea2c5d3f6b3f43e3e5869b9e580a7
Signed-off-by: Nick Brown <nickbroon@gmail.com>
2 years agonat: doc nitfixes 85/33885/2
Nathan Skrzypczak [Wed, 29 Sep 2021 13:34:29 +0000 (15:34 +0200)]
nat: doc nitfixes

Type: improvement

Change-Id: I9a4303030b9657c28bbd73168def72c7daa13483
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2 years agovat2: do not require _crc field in API messages 88/33888/2
Filip Tehlar [Wed, 29 Sep 2021 14:20:49 +0000 (14:20 +0000)]
vat2: do not require _crc field in API messages

Type: improvement

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: Icc2ce594225c3197c9e5be8faa3dc2ee5b0a553e

2 years agomisc: package the devtool plugins 63/33863/2
Andrew Yourtchenko [Tue, 28 Sep 2021 08:26:26 +0000 (10:26 +0200)]
misc: package the devtool plugins

a274c3a2ed8c4f1f38cb6f126326b4e6798869d2 has split the devtool plugins into a separate component,
which caused them not to be packaged as part of the existing .deb, however this can still be useful
to have them.

This commit adds the new deb vpp-plugin-devtools which contains that component.

Change-Id: I3cf44493745c3d4951ffd2194c6ae539e8ad5926
Type: fix
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2 years agonat: nat44-ed add session timing out indicator in api (2) 20/33720/6
Alexander Chernavin [Mon, 30 Aug 2021 08:55:27 +0000 (08:55 +0000)]
nat: nat44-ed add session timing out indicator in api (2)

Type: improvement

Currently, NAT44-ED users sessions details are returned for both active
and timed out NAT sessions. It may confuse users that expect to see only
active sessions in the response and make them think that timeouts for
NAT sessions do not work.

With this change, introduce an indicator of timing out for NAT sessions
returned in NAT44-ED user session details.

Signed-off-by: Alexander Chernavin <achernavin@netgate.com>
Change-Id: Ib4d689f77cec4b0b0cc8484019e13733cc8bdc0d

2 years agoikev2: build only when deps requirements are met 19/32419/4
Filip Tehlar [Sun, 23 May 2021 18:40:40 +0000 (18:40 +0000)]
ikev2: build only when deps requirements are met

Type: improvement

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: I89bcc1ba804ded676b194dbda52704cd0c54a67e

2 years agoclassify: fix message IDs on API replies 79/33879/2
Matthew Smith [Tue, 28 Sep 2021 21:02:10 +0000 (16:02 -0500)]
classify: fix message IDs on API replies

Type: fix

When the API cleanup of classify messages was done, the code was not
updated to add the message enums to REPLY_MSG_ID_BASE. So the wrong
message IDs are being sent back in replies to classify API requests.

Add REPLY_MSG_ID_BASE when populated vl_msg_id on a reply.

Change-Id: Ic7c828f14d42a346fc58fc9ff062b954f494cdbd
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
2 years agoipsec: Record the number of packets lost from an SA 71/33771/3
Neale Ranns [Tue, 21 Sep 2021 12:34:19 +0000 (12:34 +0000)]
ipsec: Record the number of packets lost from an SA

Type: feature

Gaps in the sequence numbers received on an SA indicate packets that were lost.
Gaps are identified using the anti-replay window that records the sequences seen.

Publish the number of lost packets in the stats segment at /net/ipsec/sa/lost

Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: I8af1c09b7b25a705e18bf82e1623b3ce19e5a74d

2 years agotap: Fix tap create with ns 94/33794/3
Nathan Skrzypczak [Wed, 22 Sep 2021 15:46:02 +0000 (17:46 +0200)]
tap: Fix tap create with ns

This fixes the interface creation passing
a netns. [0] made the renaming of the new
tuntap interface before switching netns
Thus, preventing creating an interface in
another netns if one exists in VPP's netns
with the same name.
This also fixes restore netns on errors

Type: fix

[0] https://gerrit.fd.io/r/c/vpp/+/33696

Change-Id: I5c83bb37d664057bcf231cd0c636f0e51aa542ad
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2 years agolibmemif: Fix abstract sockets 80/33180/7
Nathan Skrzypczak [Fri, 7 May 2021 17:39:07 +0000 (19:39 +0200)]
libmemif: Fix abstract sockets

This fixes size computation when using
abstract sockets with libmemif

Type: fix

Change-Id: I3a686e4ff2132b9fb295bbe30633958dcfec672b
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2 years agofib: add barrier lock for fib_urpf_list_pool and fib_entry_pool 74/33874/2
Stanislav Zaikin [Tue, 28 Sep 2021 16:31:32 +0000 (18:31 +0200)]
fib: add barrier lock for fib_urpf_list_pool and fib_entry_pool

Pools fib_urpf_list_pool and fib_entry_pool can grow while ip6_urpf_loose_check/fib_entry_get_flags_for_source are being executed. That may result as a crash in mt environment.

Type: fix

Change-Id: I44ca2cb70255e7aaf2e1f7a7d2eecd25cbdd0aaa
Signed-off-by: Stanislav Zaikin <zstaseg@gmail.com>
2 years agoapi: API trace improvements 52/32652/27
Filip Tehlar [Fri, 23 Jul 2021 08:51:10 +0000 (08:51 +0000)]
api: API trace improvements

Type: improvement

 * add support for JSON format in API trace
 * add ability to replay JSON API trace in both VPP and VAT2
 * use CRC for backward compatibility check during JSON API replay
 * fix API trace CLI (and remove duplicits)
 * remove custom dump
 * remove vppapitrace.py
 * update docs accordingly

Change-Id: I5294f68bebe6cbe738630f457f3a87720e06486b
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Signed-off-by: Ole Troan <ot@cisco.com>
2 years agomisc: vpe.api messages dynamically allocated 56/33856/6
Ole Troan [Mon, 27 Sep 2021 15:11:34 +0000 (17:11 +0200)]
misc: vpe.api messages dynamically allocated

This is the last in the series of moving API messages from vpp/api/vpe.api to vlibmemory/memclnt.api.
This patch makes the remaining vpe.api messages dynamic, to help VAT2 binary-api command.
Moves the VAT test code to a separate file and removes the now unnused API meta files.

Type: improvement
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: I01dd78eaff1d3715dff17d2643bf0f7f0089935b
Signed-off-by: Ole Troan <ot@cisco.com>
2 years agodevices: Add queues params in create_if 71/32871/6
Nathan Skrzypczak [Wed, 23 Jun 2021 09:28:39 +0000 (11:28 +0200)]
devices: Add queues params in create_if

Type: feature

Change-Id: I027ff2c5c905a7ccebd3705a58e35218a94f4880
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2 years agoaf_xdp: fix init lock for shared txq 78/33778/5
arikachen [Wed, 22 Sep 2021 03:13:11 +0000 (11:13 +0800)]
af_xdp: fix init lock for shared txq

Type: fix

Signed-off-by: arikachen <eaglesora@gmail.com>
Change-Id: Idb5e66d7a2a7ccb6fb5155341df54586186eb11f

2 years agonat: NAT44 ED & EI session filtering CLI 41/33741/3
Július Milan [Fri, 10 Sep 2021 07:43:31 +0000 (09:43 +0200)]
nat: NAT44 ED & EI session filtering CLI

Improving session filtering capabilities of
show nat44 sessions CLI command for EI and ED NAT
plugins. Adding filtering options: saddr, sport,
daddr, dport, proto for both i2o and o2i flows.

Type: improvement

Change-Id: I70bc94a2e922cddf9451eb7dcbf4a7be21ebf0df
Signed-off-by: Filip Varga <fivarga@cisco.com>
2 years agostats: add name vectors to prometheus exporter output 44/33744/3
Alexander Chernavin [Fri, 17 Sep 2021 12:37:48 +0000 (12:37 +0000)]
stats: add name vectors to prometheus exporter output

Type: improvement

Counters are labeled with interface indices in the Prometheus exporter
output. For example:

  # TYPE _if_drops counter
  _if_drops{thread="0",interface="0"} 0
  _if_drops{thread="0",interface="1"} 0
  _if_drops{thread="0",interface="2"} 2112
  [..]

Currently, it's unable to map interface indices to the interface names
using only output provided by the Prometheus exporter. However, this
mapping is present in the vpp_get_stats output:

  # vpp_get_stats dump /if/names
  [0]: local0 /if/names
  [1]: GigabitEthernet0/8/0 /if/names
  [2]: GigabitEthernet0/9/0 /if/names
  [..]

With this change, add name vectors to Prometheus exporter output as info
metrics. Thus exposing interfaces and their indices:

  # TYPE _if_names_info gauge
  _if_names_info{index="0",name="local0"} 1
  _if_names_info{index="1",name="GigabitEthernet0/8/0"} 1
  _if_names_info{index="2",name="GigabitEthernet0/9/0"} 1
  [..]

Signed-off-by: Alexander Chernavin <achernavin@netgate.com>
Change-Id: Iff86c4d6fea8805e71fb04fccf278bae855e88d1

2 years agoaf_xdp: fix free mem in tx while no free slot 64/33864/3
arikachen [Tue, 28 Sep 2021 10:43:44 +0000 (18:43 +0800)]
af_xdp: fix free mem in tx while no free slot

Type: fix

Signed-off-by: arikachen <eaglesora@gmail.com>
Change-Id: Id305b9d311b2d0d11583db1a14a45d9187a1e628

2 years agobuild: complete python3 support, no hardcode path 36/33736/4
Nick Brown [Thu, 16 Sep 2021 09:56:33 +0000 (10:56 +0100)]
build: complete python3 support, no hardcode path

find_package(Python3) will not set variables that are later used, so set
those needed. Perhaps the python2 support, which is EOL, could be
dropped?

Use DESTDIR, instead of hardcoding the path. This allows system
packaging, or local installs, to work properly.

Type: make
Signed-off-by: Nick Brown <nickbroon@gmail.com>
Change-Id: I045516c61473c612ab70858cd9b58c4e2838b347

2 years agosr: add API test files 74/33674/5
Filip Tehlar [Thu, 2 Sep 2021 10:32:40 +0000 (10:32 +0000)]
sr: add API test files

Type: improvement

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: Iefc88107ae96915570ae425a527c3969f7ce7b1d

2 years agoikev2: support variable-length nonces 34/33834/2
Benoît Ganne [Mon, 27 Sep 2021 13:37:48 +0000 (15:37 +0200)]
ikev2: support variable-length nonces

IKEv2 nonces can be 16 to 256 bytes.

Type: fix

Change-Id: Ib332028594355c9e5b462bddb7e4dffbcdc9a927
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2 years agotests: don't install vapi_c{,pp}_test 59/33759/2
Dmitry Valter [Sun, 19 Sep 2021 20:47:19 +0000 (23:47 +0300)]
tests: don't install vapi_c{,pp}_test

Don't install vapi_c{,pp}_test. It confuses dpkg-shlibdeps to think we
need libsubunit as shared lib dependency

Type: fix
Fixes: a2d6d352c6926d2f8d4e50aeb1ec59802f32b37b
Signed-off-by: d-valter@yandex-team.ru
Change-Id: Ifb702a61be32b37e79b48780cc61cb0838e87153

2 years agolibmemif: refactor connection establishment 72/30572/6
Jakub Grajciar [Mon, 4 Jan 2021 10:10:42 +0000 (11:10 +0100)]
libmemif: refactor connection establishment

per_thread_ namespace fuctionality replaced by memif socket.
Interfaces are grouped by memif socket which holds interface database.
Each thread can create it's unique memif socket. The path name
can be equal across threads so that the app only uses one
UNIX socket. In case of listener socket, listener fd
can be obtained and set using APIs.

This change allows:
  - No lookup on file descriptor events
    - improves interrupt handling
  - Loopback support (connect two interfaces in one app)
    - usefull for debugging and testing
  - Improves code readability by providing control channel
    abstraction for each interface and listener sockets

Type: refactor

Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
Change-Id: I1b8261042431c0376646ab4c4c831f6e59dd3eed

2 years agolibmemif: remove per_thread_ namespace 71/30571/5
Jakub Grajciar [Mon, 4 Jan 2021 09:39:30 +0000 (10:39 +0100)]
libmemif: remove per_thread_ namespace

Type: refactor

Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
Change-Id: Ib5a88132ad28860553fc82f5aaaf84e0a1b8e8bf

2 years agolibmemif: remove old examples 96/30596/4
Jakub Grajciar [Mon, 4 Jan 2021 14:01:54 +0000 (15:01 +0100)]
libmemif: remove old examples

Type: refactor

Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
Change-Id: I2331f6fb43ca533afb32f7d448adda27b19689ac

2 years agolibmemif: remove outdated unit tests 70/30570/3
Jakub Grajciar [Mon, 4 Jan 2021 09:17:46 +0000 (10:17 +0100)]
libmemif: remove outdated unit tests

Type: refactor

Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
Change-Id: Ie42c03980cf2cc0766308043d7d3ea5301a59b75

2 years agobuild: Stricter git tag version parsing 32/33832/3
Nick Brown [Mon, 27 Sep 2021 11:11:23 +0000 (12:11 +0100)]
build: Stricter git tag version parsing

Only consider git tags that begin with 'v', as these are far more likely
to be vpp version tags, and thus parsed by the version script properly.

This needed when working with git clone to which additional tags may
have been added.

eg tags like:

upstream/21.06_rc0+20210622
debian/21.06+20210811-1myvendor2

should be ingored, as they will not be parsed correctly.

Type: make
Change-Id: I7a6d185acd029335abaea5a9dac48839f1397135
Signed-off-by: Nick Brown <nickbroon@gmail.com>
2 years agoclassify: Large and nested classifer unit tests 85/33785/7
Ray Kinsella [Wed, 22 Sep 2021 10:24:06 +0000 (11:24 +0100)]
classify: Large and nested classifer unit tests

Type: test

Large and nested unit tests to test AVX-512 optimized versions of the classify
hash and match algorithims.

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

2 years agofib: fix crash on exporter tracker remove 22/33822/3
Vladislav Grishenko [Sat, 18 Sep 2021 12:32:17 +0000 (17:32 +0500)]
fib: fix crash on exporter tracker remove

Exported entries are tracked only when the prefix found in the export
FIB is really attached, exporter tracker is not set if the export
entry is not valid for export, ex. for special FIB entries - default
route, zeronet, mcast and broadcast prefixes.
When imported entries need to be purged, such unset exporter tracker is
being removed by non-initialized index with absent delegate entries,
causing corresponding assert and crash.

Type: fix
Signed-off-by: Vladislav Grishenko <themiron@yandex-team.ru>
Change-Id: Ib24a2e7853a03a960577872480213e1e8097da5a

2 years agovirtio: Still init unused txq 83/32483/3
Nathan Skrzypczak [Fri, 28 May 2021 11:44:24 +0000 (13:44 +0200)]
virtio: Still init unused txq

Type: fix

For some virtio backends, packets don't seem to flow
if all the queues that have been requested are not
initialized

Change-Id: I41765d668497ff954e6d69d36836590947fd93b1
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2 years agogso: do not gro on small packets 69/31869/19
Aloys Augustin [Wed, 15 Sep 2021 14:06:04 +0000 (16:06 +0200)]
gso: do not gro on small packets

This has two benefits: fix an issue where small packets can be
padded to 64 bytes by the ethernet layer, and we included these bytes
in the tcp stream; and also if we receive a small packet, it signals
that this tcp stream is likely more latency-sensitive than throughput-
sensitive, and skipping gro buffering should be beneficial.

Type: fix
Change-Id: I165b97673d8cdce95ebf0a66c362ae9f9e6f3f34
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
2 years agotap: move the api msg_id_base to tap_main_t 97/33797/3
Mohsin Kazmi [Wed, 22 Sep 2021 20:03:28 +0000 (20:03 +0000)]
tap: move the api msg_id_base to tap_main_t

Type: fix

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

2 years agogomemif: Add mode support 78/33178/3
Nathan Skrzypczak [Fri, 7 May 2021 17:39:07 +0000 (19:39 +0200)]
gomemif: Add mode support

Type: feature

Change-Id: I0bc51288bc63a0583b98314e4e2a62383b0d6e43
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2 years agomisc: api move continued 32/33732/10
Florin Coras [Wed, 15 Sep 2021 16:02:08 +0000 (09:02 -0700)]
misc: api move continued

Move control ping and change dependencies from vpe.api_types to
memclnt.api_types

Type: refactor

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

2 years agoip: fix ip table allocation randomness 23/33823/3
Aloys Augustin [Sun, 26 Sep 2021 16:26:15 +0000 (18:26 +0200)]
ip: fix ip table allocation randomness

This prevents going through the same sequence every time the api is
called.

Type: fix
Change-Id: I3ca3587ab5d1c060e2913ca88501b8dbcdd9c196
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
2 years agomisc: move part of vpe apis to vlibmemory 28/33728/20
Florin Coras [Wed, 15 Sep 2021 01:54:45 +0000 (18:54 -0700)]
misc: move part of vpe apis to vlibmemory

VPE apis are actually vlib apis. This moves those that are not tightly
coupled with vapi to vlib_api

Type: refactor

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I456a64ce49a0cdeff4a0931c6ea513cb639f683e
Signed-off-by: Ole Troan <ot@cisco.com>
2 years agoip: set error number on failed intf addr 20/33820/1
Matthew Smith [Fri, 24 Sep 2021 20:27:36 +0000 (15:27 -0500)]
ip: set error number on failed intf addr

Type: fix

A subinterface that does not have exact match enabled cannot have
an IP address configured on it. When this is validated in the functions
which add an interface IP address for IPv4 and IPv6, a clib_error_t * is
returned but api_errno is not set. The API handler uses the value of
vnet_main.api_errno to set the return value in it's reply. Since it was
not set, the API reports the operation succeeded.

Set vnet_main.api_errno if vnet_sw_interface_supports_addressing() returns
a non-null value when adding/deleting an interface IP address.

Change-Id: I257a30d21788986102a2a719235e714ff16a24e8
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
2 years agovcl: grab wrk create lock sooner 11/33811/3
Florin Coras [Thu, 23 Sep 2021 22:08:05 +0000 (15:08 -0700)]
vcl: grab wrk create lock sooner

Type: fix

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

2 years agoclassify: use AVX-512 to find entry 92/33792/3
Damjan Marion [Wed, 22 Sep 2021 13:50:35 +0000 (15:50 +0200)]
classify: use AVX-512 to find entry

Type: improvement
Change-Id: I10f4084907ad714aded86e0b7a1a4d1c5fa1f140
Signed-off-by: Damjan Marion <damarion@cisco.com>
2 years agoclassify: use AVX-512 to calculate hash on x86 68/33768/4
Damjan Marion [Wed, 22 Sep 2021 13:28:29 +0000 (15:28 +0200)]
classify: use AVX-512 to calculate hash on x86

Type:improvement
Change-Id: I9f9f16eabf64203db11cd4338948d76ca5e0ef12
Signed-off-by: Damjan Marion <damarion@cisco.com>
2 years agomisc: Initial 22.02-rc0 commit 62/33762/2 v22.02-rc0
Andrew Yourtchenko [Mon, 20 Sep 2021 12:59:07 +0000 (14:59 +0200)]
misc: Initial 22.02-rc0 commit

  - Add 22.02 Release Notes placeholder
  - Add test framework link

Type:docs
Change-Id: I0128df2be71057add64a5843603a5539e8d340c7
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2 years agowireguard: fix wg-output-tun feature configuration 93/33793/2
Aloys Augustin [Wed, 22 Sep 2021 15:17:28 +0000 (17:17 +0200)]
wireguard: fix wg-output-tun feature configuration

The removed code caused the feature to be wrongly removed on the wg
interface.

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

2 years agosvm: remove unused fifo functions 99/33799/2
Florin Coras [Wed, 22 Sep 2021 23:34:49 +0000 (16:34 -0700)]
svm: remove unused fifo functions

Type: refactor

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

2 years agostats: revert stat_validate_counter_vector3 non-static 81/33681/6
Ray Kinsella [Tue, 7 Sep 2021 12:45:08 +0000 (13:45 +0100)]
stats: revert stat_validate_counter_vector3 non-static

This reverts commit c30157811e4c8e870d2680b08ecd3a38dff2d53b.

Type: refactor

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

2 years agotap: remove cxq_vring from tap/tun 98/33798/1
Mohsin Kazmi [Wed, 22 Sep 2021 20:22:05 +0000 (20:22 +0000)]
tap: remove cxq_vring from tap/tun

Type: fix

virtio_if_t is shared data struct between tap, tun and virtio pci.
cxq_vring is virtio pci specific element. It shouldn't be set or
accessed in tap driver.

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

2 years agovirtio: fix the type of argument in virtio_show() 96/33796/3
Mohsin Kazmi [Wed, 22 Sep 2021 18:56:05 +0000 (18:56 +0000)]
virtio: fix the type of argument in virtio_show()

Type: fix

virtio have three different interfaces (tap, tun and native virtio).
virtio_show() is used by CLI commands to show information about these
interfaces. It uses interface type to print interface specific information.
virtio_show() should use proper type for virtio interfaces (TAP, TUN, VIRTIO).

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

2 years agoping: set fib_index for lookup_node 29/33729/2
Artem Glazychev [Wed, 15 Sep 2021 12:35:51 +0000 (19:35 +0700)]
ping: set fib_index for lookup_node

lookup node uses this field later to set fib_index for buffer

Type: fix

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

2 years agointerface: allow an interface's index to be given in 'sh int' 84/33784/2
Neale Ranns [Wed, 22 Sep 2021 10:49:43 +0000 (10:49 +0000)]
interface: allow an interface's index to be given in 'sh int'

Type: improvement

e.g.:
DBGvpp# sh int 3
              Name               Idx    State  MTU (L3/IP4/IP6/MPLS)     Counter          Count
loop2                             3     down         9000/0/0/0

Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: Ie296167ab2b1b9576b46f6d4d9fb9546aef3a0da

2 years agomisc: update MAINTAINERS file 83/33783/2
Fan Zhang [Wed, 22 Sep 2021 08:50:22 +0000 (09:50 +0100)]
misc: update MAINTAINERS file

Type: improvement

Add myself as maintainer for crypto related components.

Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Change-Id: Ib43bd30b69c52c6370e3dda9ad9ed9a04374d817

2 years agohash: fix the initialization warning error on gcc-10 70/33770/2
Mohsin Kazmi [Tue, 21 Sep 2021 11:05:15 +0000 (11:05 +0000)]
hash: fix the initialization warning error on gcc-10

Type: fix

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

2 years agoip: add ip_table_allocate to api 75/33675/6
Aloys Augustin [Thu, 16 Sep 2021 18:53:14 +0000 (20:53 +0200)]
ip: add ip_table_allocate to api

Set tableID = ~0 for auto selection unused ID

https://jira.fd.io/browse/VPP-1993

Type: improvement
Change-Id: I4eec2cc1d18fc025196cb6ac4c9a4b374388eb56
Signed-off-by: Artem Glazychev <artem.glazychev@xored.com>
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
2 years agoclassify: improve vnet_classify_hash 65/33765/6
Damjan Marion [Mon, 20 Sep 2021 15:51:31 +0000 (17:51 +0200)]
classify: improve vnet_classify_hash

Type: improvement
Change-Id: I8b129b71f91b12ab2d8b05fe3891a7ab8926f072
Signed-off-by: Damjan Marion <damarion@cisco.com>
2 years agoclassify: simplify vnet_classify_find_entry_inline 64/33764/5
Damjan Marion [Mon, 20 Sep 2021 15:36:49 +0000 (17:36 +0200)]
classify: simplify vnet_classify_find_entry_inline

Type: improvement
Change-Id: I3de4450b95f6fa76705923d983cf93c21b02a635
Signed-off-by: Damjan Marion <damarion@cisco.com>
2 years agovppinfra: make default hugepage size configurable 66/33766/2
Damjan Marion [Tue, 21 Sep 2021 09:38:04 +0000 (11:38 +0200)]
vppinfra: make default hugepage size configurable

i.e.

memory {
  default-hugepage-size 1G
}

Type: improvement
Change-Id: I822afb51712ae92f4e4992b8ffa33dcb15ccaef1
Signed-off-by: Damjan Marion <damarion@cisco.com>
2 years agointerface: fix poll vector realloc 75/33775/3
Mohammed Hawari [Tue, 21 Sep 2021 15:44:26 +0000 (17:44 +0200)]
interface: fix poll vector realloc

Change-Id: I60815b5827b4406228fd6b490f4ac1f874bac974
Signed-off-by: Mohammed Hawari <mohammed@hawari.fr>
Type: fix

2 years agopnat: fix the version of the PNAT plugin from the hardcoded 0.0.1 58/32458/6
Andrew Yourtchenko [Wed, 26 May 2021 17:27:50 +0000 (17:27 +0000)]
pnat: fix the version of the PNAT plugin from the hardcoded 0.0.1

Type: fix
Change-Id: I35db6763f3c5bd73169a222a4a93a917e8f468e6
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
Signed-off-by: Ole Troan <ot@cisco.com>
2 years agovapi: compile vpp-api folder before the plugins 61/33761/2
Arthur de Kerhor [Mon, 20 Sep 2021 12:47:47 +0000 (14:47 +0200)]
vapi: compile vpp-api folder before the plugins

Allows to use vapi symbols in a plugin.

Type: feature
Change-Id: Ic4534f266964127af54651b7d19c3b611b277860
Signed-off-by: Arthur de Kerhor <arthurdekerhor@gmail.com>
2 years agosession: implement app_ns deletion 79/33379/9
Nathan Skrzypczak [Thu, 5 Aug 2021 08:22:52 +0000 (10:22 +0200)]
session: implement app_ns deletion

Type: feature

Change-Id: If0edbb21a0283d66c648a9e190d238c8cfa56353
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2 years agoclassify: improve find entry performance 63/33763/1
Damjan Marion [Mon, 20 Sep 2021 15:12:03 +0000 (17:12 +0200)]
classify: improve find entry performance

Type: improvement
Change-Id: I5245fc3f35b7a70833916db2ebf33f7c87398915
Signed-off-by: Damjan Marion <damarion@cisco.com>
2 years agoclassify: avoid dependent read of classify mask 54/33754/5
Damjan Marion [Mon, 20 Sep 2021 11:39:37 +0000 (13:39 +0200)]
classify: avoid dependent read of classify mask

Type: improvement
Change-Id: I176f08c74eb58a78f7fbdb48fd4592e6ddf74d34
Signed-off-by: Damjan Marion <damarion@cisco.com>
2 years agosession: use table_format in sh app ns 48/33748/2
Nathan Skrzypczak [Fri, 17 Sep 2021 09:53:25 +0000 (11:53 +0200)]
session: use table_format in sh app ns

Type: refactor

Change-Id: I99162d80280e0f45344671b18b1ea96db90d4282
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2 years agovppinfra: format table improvements 47/33747/4
Nathan Skrzypczak [Fri, 17 Sep 2021 12:32:03 +0000 (14:32 +0200)]
vppinfra: format table improvements

This adds a way to define default fg, bg colors
and alignement for cell tables.
It also allows removing the table title by not
setting it.
It also removes the trailing newline, for usage
inside a format("%U", format_table, ...)

Type: improvement

Change-Id: I27d7a04c4a919b34d0170b04e24a56831f581ea1
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2 years agohash: add support for hashing infra 40/32940/28
Mohsin Kazmi [Wed, 30 Jun 2021 18:26:25 +0000 (18:26 +0000)]
hash: add support for hashing infra

Type: feature

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

2 years agobuild: use GNUInstallDirs install destinations 31/33731/2
Nick Brown [Wed, 15 Sep 2021 13:25:40 +0000 (14:25 +0100)]
build: use GNUInstallDirs install destinations

So as to be compliant with distribution layouts, as recommend by:
https://cmake.org/cmake/help/latest/command/install.html#installing-files

Type: make
Change-Id: Ic46ace4f26aab1aa4902cbd013c40a92c480680d
Signed-off-by: Nick Brown <nickbroon@gmail.com>
2 years agodpdk: enable ENA tx offload 50/33750/3
Benoît Ganne [Fri, 17 Sep 2021 15:48:12 +0000 (17:48 +0200)]
dpdk: enable ENA tx offload

Type: improvement

Change-Id: Ic7c2ac4237ecd192def7c3530ae5f788c62cf9ad
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2 years agovppinfra: move format_table from perfmon 46/33746/2
Nathan Skrzypczak [Fri, 17 Sep 2021 09:51:46 +0000 (11:51 +0200)]
vppinfra: move format_table from perfmon

This code seems really usefull for reuse in
other plugins, for pretty table formatting

Type: feature

Change-Id: Ib5784a0dfc81b7d5a5d1f5ccdd02072e460a50fb
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2 years agomisc: put devtools plugins into separate component/package 14/33614/2
Damjan Marion [Fri, 27 Aug 2021 15:41:41 +0000 (17:41 +0200)]
misc: put devtools plugins into separate component/package

Type: make
Change-Id: I2958e9eddadee6434766ecd3cdb3b9cea742ed64
Signed-off-by: Damjan Marion <damarion@cisco.com>
2 years agoebuild: cleanup of DPDK options in external.mk 94/33694/3
Mohammed Hawari [Wed, 8 Sep 2021 15:54:43 +0000 (17:54 +0200)]
ebuild: cleanup of DPDK options in external.mk

With the move to meson, most DPDK options in external.mk are not used
anymore

Type: improvement
Change-Id: I603ccd30c9e52bdc89a69aa4bece2394b3eed1fe
Signed-off-by: Mohammed Hawari <mohammed@hawari.fr>
2 years agomemif: avoid double pool_put on a clib_file 25/33725/4
Steven Luong [Tue, 14 Sep 2021 14:07:17 +0000 (07:07 -0700)]
memif: avoid double pool_put on a clib_file

When memif CP processes the socket connection error, it may go through
the following code paths which may eventually cause double pool_put on a
clib_file

memif_master_conn_fd_error:633 -> memif_disconnect ->
memif_socket_close -> memif_file_del_by_index ->
clib_file_del_by_index -> clib_file_del -> pool_put

After memif_master_conn_fd_error:633, the code continues on

memif_maser_conn_fd_error:651 -> memif_file_del -> clib_file_del ->
pool_put

The fix is to skip calling memif_file_del in
memif_master_conn_fd_error:651 if uf->file_descriptor == ~0 to catch
problem from all possible paths in memif_master_conn_fd_error

Type: fix

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

2 years agodpdk: fix checksum offload 38/33738/1
Florin Coras [Fri, 17 Sep 2021 03:50:12 +0000 (20:50 -0700)]
dpdk: fix checksum offload

Type: fix

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

2 years agoavf: fix RSS hash key 05/33705/2
Benoît Ganne [Thu, 9 Sep 2021 14:27:37 +0000 (16:27 +0200)]
avf: fix RSS hash key

Toeplitz hash key must respect certain properties, it cannot be purely
random. Use the default one from i40e.

Type: fix

Change-Id: Ic8e67a0426de8adfecc1fcdaa99879e13ae38cc9
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2 years agosession: Add sock_name option to add_ns 01/33301/8
Nathan Skrzypczak [Wed, 28 Jul 2021 17:35:08 +0000 (19:35 +0200)]
session: Add sock_name option to add_ns

This adds a new API call to add session namespaces
It now takes a netns and a sock_name.
(1) If no netns is passed, sock_name will be used as
socket path. Defaulting to /run/vpp/app_ns_sockets/${ns_id}
(2) If a netns is passed, the sock_name has to be
abstract (i.e. start with '@'). It will default to
`@vpp/session/${ns_id}` and will be created in the provided
netns.

Type: feature

Change-Id: I90e9a8e5ecca2cabe7c05335663e33c8506dc9e7
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2 years agovxlan: improve to use the hardware offload 72/32772/6
Mohsin Kazmi [Thu, 17 Jun 2021 17:29:27 +0000 (17:29 +0000)]
vxlan: improve to use the hardware offload

Type: improvement

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

2 years agodpdk: add support for outer udp and ipv4 checksums 71/32771/5
Mohsin Kazmi [Thu, 17 Jun 2021 17:20:02 +0000 (17:20 +0000)]
dpdk: add support for outer udp and ipv4 checksums

Type: improvement

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

2 years agodpdk: fix the outer ipv4 checksum 63/32763/3
Mohsin Kazmi [Wed, 15 Sep 2021 13:57:29 +0000 (15:57 +0200)]
dpdk: fix the outer ipv4 checksum

Type: fix

Change-Id: Ibc476b807ba0310f0cc926b0e386831ef0cbcc25
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2 years agoip6-nd: add ip6-nd proxy 21/31921/11
Mohsin Kazmi [Wed, 7 Apr 2021 17:50:35 +0000 (19:50 +0200)]
ip6-nd: add ip6-nd proxy

Type: feature

Change-Id: I91f72f5802db195d1a15424d67c1b6e518168f9f
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2 years agovlib: add option to plugin registration to prefer deep binding 30/33730/1
Damjan Marion [Wed, 15 Sep 2021 13:08:28 +0000 (15:08 +0200)]
vlib: add option to plugin registration to prefer deep binding

Type: improvement
Change-Id: I9ce7e1ee7e7afe8e9befe36ae8c59291beaaaf36
Signed-off-by: Damjan Marion <damarion@cisco.com>
2 years agotap: set device name on creation via TUNSETIFF 96/33696/3
Duncan Eastoe [Wed, 8 Sep 2021 18:11:33 +0000 (19:11 +0100)]
tap: set device name on creation via TUNSETIFF

Type: fix

Currently when a new TAP/TUN device is created from tap_create_if()
via the TUNSETIFF ioctl(), a name is allocated by the kernel (eg.
tap0). If the caller supplied a name this is subsequently set via
netlink, after the device has been created.

Now we request the kernel to create the new device with the caller's
requested name in the first instance, thus avoiding the need to
rename the device, and therefore avoiding a window where the device
exists with a different name.

This can be beneficial, for example, when writing systemd-udevd link
files [1]. Having the TAP/TUN devices created with the requested name
ensures they can be correctly matched by the OriginalName option.

Writing link files might be necessary, for example, to avoid VPP and
systemd-udevd racing to set the MAC address on a newly created TAP
interface. systemd-udevd can be configured to not manipulate the MAC
addresses of matched interfaces.

These changes also resolve an issue where the created device would not
be renamed if the caller requested it be moved to a different network
namespace, since vnet_netlink_set_link_name() was not called in that
case.

[1] https://www.freedesktop.org/software/systemd/man/systemd.link.html

Signed-off-by: Duncan Eastoe <duncan@graphiant.com>
Change-Id: I3d657632856d03979d6b914225c3c841c379e0a1

2 years agovlib: add graceful termination with status 19/33719/4
Pierre Pfister [Fri, 10 Sep 2021 14:38:03 +0000 (16:38 +0200)]
vlib: add graceful termination with status

This commit allows a non-VPP thread to request VPP to gracefully
shutdown and return a specific process status value.

Type: improvement
Change-Id: I9bf52b789e7ee28eb272630eaea495fd94349f79
Signed-off-by: Pierre Pfister <ppfister@cisco.com>
2 years agomisc: volunteer as extra maintainer for DPDK 92/33692/3
Mohammed Hawari [Wed, 8 Sep 2021 13:52:15 +0000 (15:52 +0200)]
misc: volunteer as extra maintainer for DPDK

Signed-off-by: Mohammed Hawari <mohammed@hawari.fr>
Change-Id: I97fa566612641f78c2e9850a251cfe9f2d7cfde1
Type: docs