Neale Ranns [Mon, 20 Dec 2021 18:18:42 +0000 (18:18 +0000)]
fib: MPLS EOS chains built for attached prefixes should link to a lookup DPO
Type: fix
Presently a local label associated with an attached or connected prefix will link to the glean. This is a problem since it will never use the adj-fibs that are installed for that attached prefix. Instead link the local label to a lookup in the table in which the attached link is bound.
Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: Iad49fb6168b9ba47216a9a52bd262363b49c3c43
jinsh [Sat, 18 Dec 2021 14:24:26 +0000 (22:24 +0800)]
vrrp:fix vrrp vr delete case memory leak
when vrrp vr delete, vr->config.peer_addrs not free
Type: fix
Signed-off-by: jinsh <jinsh11@chinatelecom.cn>
Change-Id: I9ead188d6409412b475b5f6add767cb58f1af6e0
Florin Coras [Sun, 19 Dec 2021 19:38:30 +0000 (11:38 -0800)]
session: ignore rpc in fifo event lookups
RPCs are not associated to sessions.
Type: fix
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I6b7870a3ebc2e8f32a6c1b10e2552d9e074c7eb3
Florin Coras [Thu, 16 Dec 2021 18:09:17 +0000 (10:09 -0800)]
session: improve sh segment-manager cli
Type: improvement
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I5d669fcba609bcdb35103f57c45e0a270213d84a
Klement Sekera [Fri, 17 Dec 2021 12:47:51 +0000 (12:47 +0000)]
ip: SVR fix race condition
There could be a race condition where two fragments of one chain end up
at the same time on different workers, one overwriting others hash
entry. Add a check for that and restart processing on the unlucky worker
who ends up being second from hash table POV. This will then result in a
proper handover to worker now owning this reassembly.
Type: fix
Fixes:
de34c35fc73226943538149fae9dbc5cfbdc6e75
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Change-Id: I9eb29c5cb1ffe3b5eb1d5a638e17ab7ba2628d28
Neale Ranns [Sun, 19 Dec 2021 15:10:20 +0000 (15:10 +0000)]
fib: Incorrect logic for IPv6 link-local attached export.
Type: fix
IPv6 link-local FIB entries are never needed for attached export.
Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: I08aad78e754d89ad54d07a211fb7a0d7fbc7a0fe
Frédéric Perrin [Fri, 17 Dec 2021 14:38:38 +0000 (14:38 +0000)]
bfd: fix NULL dereference in bfd_api_verify_common
ip6_get_link_local_address() may return NULL if the local interface
is not (or not yet) configured
Type: fix
Signed-off-by: Frédéric Perrin <fred@fperrin.net>
Change-Id: I42bf2081582c4a36fa4e32145ca2f0ff73488110
benker [Tue, 14 Dec 2021 15:31:14 +0000 (15:31 +0000)]
vppinfra: missing __clib_export
Type: fix
hash_resize is available in hash.h file, but missing __clib_export in hash.c
Signed-off-by: Leung Lai Yung <benkerbuild@gmail.com>
Change-Id: Ibb741b532cd1080ec5d8314aae8dbbca87f42502
Florin Coras [Tue, 23 Nov 2021 05:19:01 +0000 (21:19 -0800)]
session: app mq congestion detection
Detect mq congestion and handle it by queueing messages in a fifo and
postponing handling via rpcs. App workers with congested mqs cannot
accept nor connect additional sessions.
Type: feature
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I401d971a1a53896758b88fc60f158cbc31e0c7cb
Damjan Marion [Thu, 16 Dec 2021 12:23:23 +0000 (12:23 +0000)]
vppinfra: clang doesn't know about attribute noclone
Type: fix
Fixes:
88019c40
Change-Id: I219597c95883f49b6ff51e65e6c6c80e3c1518b7
Signed-off-by: Damjan Marion <dmarion@me.com>
Klement Sekera [Mon, 22 Nov 2021 20:25:57 +0000 (21:25 +0100)]
ip: add tests for message size verification
Coverity complained that there is boundary checking in
add_del_punt_redirect_v2 handler. This test proves that such boundary
checking is not necessary as it is handled in the common path.
Type: test
Change-Id: Ibec054c01d4eb057accdc9d5732aba6fe6de51cc
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Benoît Ganne [Tue, 9 Nov 2021 17:34:36 +0000 (18:34 +0100)]
af_xdp: mark API as stable
Type: improvement
Change-Id: I55b080f994eafc4ecfe0e774d7cd05218d715526
Signed-off-by: Benoît Ganne <bganne@cisco.com>
Florin Coras [Wed, 15 Dec 2021 03:30:04 +0000 (19:30 -0800)]
vppinfra: fix clib_fifo_elt_at_index
Type: fix
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I4924420b827bdf7d161a1f723c2bfd5370d43772
Benoît Ganne [Wed, 1 Dec 2021 10:01:58 +0000 (11:01 +0100)]
af_xdp: bump libbpf version to 0.5
Type: improvement
Change-Id: Ia089a82a460b69e0edf69c8b8d3dc2814fa54c35
Signed-off-by: Benoît Ganne <bganne@cisco.com>
Neale Ranns [Wed, 15 Dec 2021 12:59:26 +0000 (12:59 +0000)]
api: Fix reaper functions for socket clients
Type: fix
The pub_sub_handler() stores registrations key'd with the message's client_index (which is in network-order).
The socket-client invokes the reaper function (to cleanup these registrations) using the pool index of the registration. hence the pub-sub registration is not removed.
change the socket-client to pass the network-order client_index.
This approach was chosen in preference to chaning the way the registrations are key'd since the memory-client also uses this registration, and correclty passes the client_index to the reaper.
Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: I6118555c8601149d05801f558e08bcc7aed4fc98
Damjan Marion [Wed, 15 Dec 2021 10:17:04 +0000 (10:17 +0000)]
vppinfra: toeplitz hash four in parallel
Type: improvement
Change-Id: Icb3f39f42d01c51d7b03543cb7d6b5dabad11866
Signed-off-by: Damjan Marion <dmarion@me.com>
Mohsin Kazmi [Mon, 13 Dec 2021 18:32:42 +0000 (18:32 +0000)]
virtio: integrate with new tx infra
Type: improvement
Change-Id: I337ec63d0868f665329d68eadf1744e080b73a0d
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Damjan Marion [Sun, 28 Nov 2021 21:57:15 +0000 (22:57 +0100)]
vppinfra: toeplitz hash
Type: feature
Change-Id: I0ccf280c4b769ee624cfb780146b847a0e8e4942
Signed-off-by: Damjan Marion <dmarion@me.com>
Damjan Marion [Tue, 14 Dec 2021 09:40:48 +0000 (10:40 +0100)]
vppinfra: display cpu frequency in test_vector_funcs perf test
Type: improvement
Change-Id: I350a30eca0d3d7ec8816e4e7c30889621029c694
Signed-off-by: Damjan Marion <damarion@cisco.com>
Nathan Skrzypczak [Tue, 9 Nov 2021 17:18:21 +0000 (18:18 +0100)]
interface: Add interface monitor cli
This adds an interface CLI 'monitor
interface <interface>' that periodically
reports rx/tx pps & bandwidth for a
given interface.
Type: feature
Change-Id: Ia9d59b3443913520a52b38d7bda012190be6f167
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Jieqiang Wang [Mon, 29 Nov 2021 14:25:03 +0000 (14:25 +0000)]
crypto-native: fix build error on Arm using clang-13
Building VPP on Arm using clang-13 as compiler will fail with following
error message. The root cause is the unmatched alignment of parameter
key for functions aes128_key_expand/aes256_key_expand on aarch64.
Fix this error by explicitly declaring parameter key as type u8x16u.
[285/2593] ccache /home/snowball/tasks/benchmark_compilers/clang_13/bin/clang-13 --target=aarch64-linux-gnu -D_FORTIFY_SOURCE=2 -I/home/snowball/tasks/benchmark_compilers/vpp-clang-13/src -ICMakeFiles -I/home/snowball/tasks/benchmark_compilers/vpp-clang-13/src/plugins -ICMakeFiles/plugins -fPIC -g -fPIC -Werror -Wall -Wno-address-of-packed-member -O3 -fstack-protector -fno-common -march=armv8.1-a+crc+crypto -MD -MT CMakeFiles/plugins/crypto_native/CMakeFiles/crypto_native_armv8.dir/aes_cbc.c.o -MF CMakeFiles/plugins/crypto_native/CMakeFiles/crypto_native_armv8.dir/aes_cbc.c.o.d -o CMakeFiles/plugins/crypto_native/CMakeFiles/crypto_native_armv8.dir/aes_cbc.c.o -c /home/snowball/tasks/benchmark_compilers/vpp-clang-13/src/plugins/crypto_native/aes_cbc.c
FAILED: CMakeFiles/plugins/crypto_native/CMakeFiles/crypto_native_armv8.dir/aes_cbc.c.o
ccache /home/snowball/tasks/benchmark_compilers/clang_13/bin/clang-13 --target=aarch64-linux-gnu -D_FORTIFY_SOURCE=2 -I/home/snowball/tasks/benchmark_compilers/vpp-clang-13/src -ICMakeFiles -I/home/snowball/tasks/benchmark_compilers/vpp-clang-13/src/plugins -ICMakeFiles/plugins -fPIC -g -fPIC -Werror -Wall -Wno-address-of-packed-member -O3 -fstack-protector -fno-common -march=armv8.1-a+crc+crypto -MD -MT CMakeFiles/plugins/crypto_native/CMakeFiles/crypto_native_armv8.dir/aes_cbc.c.o -MF CMakeFiles/plugins/crypto_native/CMakeFiles/crypto_native_armv8.dir/aes_cbc.c.o.d -o CMakeFiles/plugins/crypto_native/CMakeFiles/crypto_native_armv8.dir/aes_cbc.c.o -c /home/snowball/tasks/benchmark_compilers/vpp-clang-13/src/plugins/crypto_native/aes_cbc.c
In file included from /home/snowball/tasks/benchmark_compilers/vpp-clang-13/src/plugins/crypto_native/aes_cbc.c:22:
/home/snowball/tasks/benchmark_compilers/vpp-clang-13/src/plugins/crypto_native/aes.h:415:40: error: passing 1-byte aligned argument to 16-byte aligned parameter 2 of 'aes128_key_expand' may result in an unaligned pointer access [-Werror,-Walign-mismatch]
aes128_key_expand (key_schedule, (u8x16u const *) key);
^
/home/snowball/tasks/benchmark_compilers/vpp-clang-13/src/plugins/crypto_native/aes.h:421:40: error: passing 1-byte aligned argument to 16-byte aligned parameter 2 of 'aes256_key_expand' may result in an unaligned pointer access [-Werror,-Walign-mismatch]
aes256_key_expand (key_schedule, (u8x16u const *) key);
^
2 errors generated.
Type: fix
Fixes:
415b4b0bb ("crypto-native: refactor GCM code to use generic types")
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: Ic99a63526031e60760929238922a6e4547388368
Tianyu Li [Mon, 6 Dec 2021 05:15:59 +0000 (13:15 +0800)]
misc: vppctl fix heap-buffer-overflow & memleaks
1. Malloc may return not zero buffer, causing strncat buffer overflow
2. Malloc buffer not freed
Type: fix
Fixes:
31f192434660 ("misc: vppctl - remove the dependency on vppinfra")
Signed-off-by: Tianyu Li <tianyu.li@arm.com>
Change-Id: I5aebaccf3d0f8b7e3617068267f62cc2aa39d827
Steven Luong [Mon, 13 Dec 2021 19:26:30 +0000 (11:26 -0800)]
vxlan: crash on configuring vxlan tunnel on l3 mode
Configure a vxlan tunnel using this CLI and then assign an ip address to
the vxlan tunnel cause VPP to crash immediately
create vxlan tunnel src x.x.x.x dst y.y.y.y vni 1000 decap-next node ethernet-input l3
set interface ip address vxlan_tunnel0 z.z.z.z/24
It looks like when l3 mode is configured, the code calls the wrong function
to register the interface
Type: fix
Fixes:
3e38422ab905d26ab1625c74268e30c94327ea54
Signed-off-by: Steven Luong <sluong@cisco.com>
Change-Id: Ie1a08efc028f37fb528a7dfd7048ff6836bb8ddc
Klement Sekera [Mon, 22 Nov 2021 20:26:20 +0000 (21:26 +0100)]
api: verify message size on receipt
When a message is received, verify that it's sufficiently large to
accomodate any VLAs within message. To do that, we need a way to
calculate message size including any VLAs. This patch adds such
funcionality to vppapigen and necessary C code to use those to validate
message size on receipt. Drop messages which are malformed.
Type: improvement
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Change-Id: I2903aa21dee84be6822b064795ba314de46c18f4
Klement Sekera [Wed, 1 Dec 2021 10:14:38 +0000 (10:14 +0000)]
ip: reassembly: drop zero length fragments
Zero length fragments are invalid and should be dropped. This patch adds
that.
Type: improvement
Change-Id: Ic6466c39ca8bf376efe06bb3b7f5d7f1ae812866
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Damjan Marion [Sun, 12 Dec 2021 21:43:56 +0000 (21:43 +0000)]
vppinfra: multiple perf bundle support in test_vector_funcs
Type: improvement
Change-Id: I93be722f4dabc2b49a5e83f61f4eb1d72f5f7d45
Signed-off-by: Damjan Marion <dmarion@me.com>
Mercury [Sun, 12 Dec 2021 00:45:38 +0000 (08:45 +0800)]
arp: fix arp_vft callback
arp proxy is not enabled correctly by ip4_neighbor_proxy_enable()
Type: fix
Signed-off-by: Mercury <mercury124185@gmail.com>
Change-Id: I672b5d4a9652030b5604e9d39743c39cb93a2531
Mercury [Sat, 11 Dec 2021 07:58:32 +0000 (15:58 +0800)]
tcp: fix the tcp src-address cli
When the src-address to add match a route
without a valid output interface(such as default route 0.0.0.0/0),
fib_entry_get_resolving_interface() will return (u32)~0,
which will cause crash in ip4_neighbor_proxy_enable().
Type: fix
Signed-off-by: Mercury <mercury124185@gmail.com>
Change-Id: I5aee5676a2ff43ec06745ebed4dba2b9e5b98c4d
Klement Sekera [Tue, 7 Dec 2021 09:49:53 +0000 (09:49 +0000)]
ip: reassembly: handle atomic fragments correctly
If a fragment arrives with fragment offset = 0 and M = 0, it means that
this is actually a complete packet and per RFC 8200, it should be
treated independently from other fragments. This patch does that.
Fragmentation header is stripped and fragment is forwarded irregardles
of other existing reassemblies in case of full reassembly and treated
the same way as regular packet in shallow virtual reassembly.
Type: improvement
Change-Id: If3322d5e3160cd755b8465a642702a9166d46cc2
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Florin Coras [Thu, 9 Dec 2021 18:24:31 +0000 (10:24 -0800)]
dpdk: disable l4 csum offload for vmxnet3
TCP csum offload fails although udp seems to work.
Type: fix
Fixes:
fa1fb60
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ie0651887b09920365806eaad776b0d13059faee8
Damjan Marion [Thu, 9 Dec 2021 10:34:44 +0000 (11:34 +0100)]
build: fix PYTHONPYCACHEPREFIX path
Type: make
Change-Id: I20fd245585e5b62ff20fe3adf20b14bfef47a9ca
Signed-off-by: Damjan Marion <damarion@cisco.com>
Florin Coras [Wed, 8 Dec 2021 19:03:08 +0000 (11:03 -0800)]
vcl: validate closed sessions on disconnect and reset
Type: fix
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I0375d639e979e29d287dc9fee16b0434fb5c788b
Han Wu [Thu, 2 Dec 2021 12:13:24 +0000 (20:13 +0800)]
memif: fix the memory leak when memif cli getting wrong parameters inputs
Type: fix
Signed-off-by: Han Wu <wuhan9084@163.com>
Change-Id: I0aeafd273b3d1d01df02d638c72461943f91ef90
Klement Sekera [Thu, 2 Dec 2021 16:36:34 +0000 (16:36 +0000)]
api: improve REPLY_MACRO safety
Improve vppapigen to generate per-message #define indicating whether
said message is dynamically sized (due to VLA or string) or not. Use
these #defines in REPLY_MACROs to prevent improper usage. Fix existing
improper REPLY_MACRO* usage.
Type: improvement
Change-Id: Ia77aaf9f6cf3ed68ea21075a4cc8deda78a68651
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Florin Coras [Tue, 7 Dec 2021 23:12:06 +0000 (15:12 -0800)]
session: stricter tx checks for ct sessions
Type: improvement
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ied4fe0f2b35eeca4e3e82fa21346de7f243aa52a
Florin Coras [Tue, 7 Dec 2021 22:47:12 +0000 (14:47 -0800)]
session: fix duplicate segment del message
Type: fix
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I42b5a5a07aae6708a20ed424c8f26ddbe91278fb
Florin Coras [Sat, 4 Dec 2021 01:24:13 +0000 (17:24 -0800)]
vcl: debug code improvements
Type: improvement
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I18cd4131c692e776c98eba36161813035e9dec53
Florin Coras [Sat, 4 Dec 2021 01:03:37 +0000 (17:03 -0800)]
vcl: handle reordering of disconnect and reset msgs
Type: fix
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I817e8510029a060876697701b81a952286597db1
Jakub Grajciar [Wed, 1 Dec 2021 08:07:09 +0000 (09:07 +0100)]
libmemif: reset memif buffer flags
Reset memif_buffer_t flags in memif_buffer_alloc and
memif_rx_burst
Type: fix
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
Change-Id: If62ba510fad783afb9f7f58411562b6989fa1573
Klement Sekera [Tue, 26 Oct 2021 14:23:11 +0000 (16:23 +0200)]
fib: fix coverity warning/don't dereference NULL
fib_sas6_get is called with NULL dst explicitly so add a NULL check to
avoid a NULL dereference.
Type: fix
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Change-Id: I8ebcba98832f374991f5442c1b83a4b6e64771d0
Florin Coras [Sat, 4 Dec 2021 07:02:13 +0000 (23:02 -0800)]
vcl: fix ldp shared listener bitmap leak
Type: fix
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Id1e273bf80c1cc687ce7e5ea3b8cc6a3ec3862f9
Damjan Marion [Mon, 6 Dec 2021 12:21:33 +0000 (13:21 +0100)]
vppinfra: add 'filter' option to test_vector_funcs
Type: improvement
Change-Id: I5ed9029e5dc1368b7debbef04a3ac439a61af9ea
Signed-off-by: Damjan Marion <damarion@cisco.com>
Damjan Marion [Mon, 6 Dec 2021 11:48:46 +0000 (12:48 +0100)]
vppinfra: sha2 tests
Type: improvement
Change-Id: I8a5d8d5db4e4a8ee3a1164bfbe91badff181d06a
Signed-off-by: Damjan Marion <damarion@cisco.com>
Damjan Marion [Fri, 3 Dec 2021 13:07:41 +0000 (14:07 +0100)]
build: leave to CMake to deal with -fPIE
Type: make
Change-Id: Icced0e09b75b3114b1652d552e288091968ee7cc
Signed-off-by: Damjan Marion <damarion@cisco.com>
Matthew Smith [Wed, 1 Dec 2021 20:02:35 +0000 (20:02 +0000)]
ipsec: fix async buffer leak
Type: fix
Fixes:
f16e9a5507
If an attempt to submit an async crypto frame fails, the buffers that
were added to the frame are supposed to be dropped. This was not
happening and they are leaking, resulting in buffer exhaustion.
There are two issues:
1. The return value of esp_async_recycle_failed_submit() is used to
figure out how many buffers should be dropped. That function calls
vnet_crypto_async_reset_frame() and then returns f->n_elts. Resetting
the frame sets n_elts to 0. So esp_async_recycle_failed_submit() always
returns 0. It is safe to remove the call to reset the frame because
esp_async_recycle_failed_submit() is called in 2 places and a call to
reset the frame is made immediately afterwards in both cases - so it
is currently unnecessary anyway.
2. An array and an index are passed to esp_async_recycle_failed_submit().
The index should indicate the position in the array where indices of the
buffers contained in the frame should be written. Across multiple calls,
the same index value (n_sync) is passed. This means each call may overwrite
the same entries in the array with the buffer indices in the frame rather
than appending them to the entries which were written earlier. Pass n_noop
as the index instead of n_sync.
Change-Id: I525ab3c466965446f6c116f4c8c5ebb678a66d84
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
Mohsin Kazmi [Tue, 9 Nov 2021 17:44:10 +0000 (17:44 +0000)]
interface: add multi tx-queues support for new tx infra
Type: feature
Change-Id: I231f782b3c56dc2b10321e4569ac7acdad1c11da
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Klement Sekera [Fri, 3 Dec 2021 10:48:13 +0000 (10:48 +0000)]
api: refactor to use REPLY_MSG_ID_BASE #define
REPLY_MSG_ID_BASE is the standard way to define reply message id base,
so this refactor makes all the files use that. This is a preparation
patch for future safety add-ons which rely on REPLY_MACRO* parameters to
be preprocessor tokens identifying the message instead,
Type: refactor
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Change-Id: Ibe3e056a3d9326d08af45bbcb25588b11e870141
Ole Troan [Tue, 23 Nov 2021 14:55:39 +0000 (15:55 +0100)]
ip: extension header parsing fails for fragment header
Refactor and improve boundary checking on IPv6 extension header handling.
Limit parsing of IPv6 extension headers to a maximum of 4 headers and a
depth of 256 bytes.
Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: Ide40aaa2b482ceef7e92f02fa0caeadb3b8f7556
Signed-off-by: Ole Troan <ot@cisco.com>
Neale Ranns [Thu, 2 Dec 2021 17:07:14 +0000 (17:07 +0000)]
fib: Fix the display (or lack of) for fib node types in dependent children lists
Type: fix
When registering a new FIB node type, no name was required on the API, and so no name was printed.
Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: I8a99cf29c194637a550061b0a5e9782ffe8b31dd
Filip Tehlar [Tue, 30 Nov 2021 13:55:58 +0000 (13:55 +0000)]
tests: add segment manager tests
Type: test
Change-Id: Ic9fddc9fedd5140984c5901c4cac53dec022dcec
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Damjan Marion [Thu, 2 Dec 2021 16:08:02 +0000 (17:08 +0100)]
perfmon: compile dispatch wrapper once for each number of counters
A bit ugly, but generates faster and less noisy code which
should be important for this particular use case.
Type: improvement
Change-Id: If2bba947dac33ffedb4236a5b3fb50fc783668e1
Signed-off-by: Damjan Marion <damarion@cisco.com>
Damjan Marion [Thu, 2 Dec 2021 10:28:57 +0000 (11:28 +0100)]
vppinfra: add perf testing to test_vector_func
Type: improvement
Change-Id: I7aacd58d113c13036c15655817400032dd8d1932
Signed-off-by: Damjan Marion <damarion@cisco.com>
Ray Kinsella [Thu, 2 Dec 2021 08:06:01 +0000 (08:06 +0000)]
perfmon: refactor perf metric support
Refactoring perf metric support to remove branching on bundle type in
the dispatch wrapper. This change includes caching the rdpmc index at
perfmon_start(), so that the mmap_page.index doesn't need to be looked
up each time. It also exclude the effects of mmap_page.index.
This patch prepares the path for bundles that support general, fixed and
metrics counters simulataneously.
Type: refactor
Signed-off-by: Ray Kinsella <mdr@ashroe.eu>
Change-Id: I9c5b4917bd02fea960e546e8558452c4362eabc4
Damjan Marion [Thu, 2 Dec 2021 13:03:02 +0000 (14:03 +0100)]
build: bump min cmake version to 3.13 and remove workarounds
Type: make
Change-Id: I1cd00257e132e671cbdd7b4710862afb07aa19e6
Signed-off-by: Damjan Marion <damarion@cisco.com>
Damjan Marion [Thu, 2 Dec 2021 12:02:38 +0000 (13:02 +0100)]
vppinfra: vector shuffle cleanup
Type: refactor
Change-Id: I8b3fc2ce30df313467274a174c5ac6adbf296153
Signed-off-by: Damjan Marion <damarion@cisco.com>
Damjan Marion [Thu, 2 Dec 2021 10:39:07 +0000 (11:39 +0100)]
vppinfra: add SIMD masked bitwise ops
Type: improvement
Change-Id: Id73b00a8cb3af799f9f97949bc1302f162a91a57
Signed-off-by: Damjan Marion <damarion@cisco.com>
Matthew Giassa [Fri, 19 Nov 2021 17:06:11 +0000 (17:06 +0000)]
docs: add VPP Container Testbench example and lab
Adding a "VPP container testbench" (pair of Docker containers plus
helper scripts to test Linux and VPP interfaces). Will be part of a
larger set of labs/exercises/tutorials. Putting this baseline setup up
for review first to see if the community sees use/value in it. If so,
additional exercises using the testbench will be added gradually.
Type: improvement
Signed-off-by: Matthew Giassa <mgiassa@cisco.com>
Change-Id: I582310f7355419e907d575f640482ca49cbb282f
Mohsin Kazmi [Mon, 29 Nov 2021 12:00:04 +0000 (13:00 +0100)]
api: add api macros for native endian
Type: improvement
Change-Id: I22fec740b30b89e7a571f8ba2bd55adb2ef305d4
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Mohsin Kazmi [Fri, 26 Nov 2021 16:04:07 +0000 (17:04 +0100)]
interface: add support for outer header checksums
Type: improvement
Change-Id: I7c341dc4a99898dd1f865ac2ebd99de9898bb0bd
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Dave Wallace [Tue, 30 Nov 2021 16:00:23 +0000 (11:00 -0500)]
build rpm-packaging: Remove boost dependencies from VOM
- VOM was deprecated in VPP 21.06, but the boost library
dependencies did not get cleaned up.
Type: make
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: I0fb860a7a37676c1a1a0981c91f383882d9a820a
Florin Coras [Tue, 30 Nov 2021 07:26:19 +0000 (23:26 -0800)]
vcl: improve handling of failed connects
Type: improvement
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: If6235888cb0870ec3e1279ab1856a00715bd6c68
Florin Coras [Tue, 30 Nov 2021 05:00:47 +0000 (21:00 -0800)]
vcl: avoid ip format function vnet dependency
Type: improvement
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I89103d4c99b21c5a466dbe511f0151bd754559a0
Benoît Ganne [Mon, 29 Nov 2021 19:44:36 +0000 (20:44 +0100)]
rdma: bump to rdma-core 38.0
Type: improvement
Change-Id: Ibe3e6f342f3713fa814b684e04a066a3248669d8
Signed-off-by: Benoît Ganne <bganne@cisco.com>
Benoît Ganne [Tue, 30 Nov 2021 08:15:38 +0000 (09:15 +0100)]
rdma: fix rdma-core install
We should not install symlinks to local build directory.
Type: fix
Change-Id: I81e624dd5775ec9c5dd8c58f578ee51c5acfef73
Signed-off-by: Benoît Ganne <bganne@cisco.com>
PiotrX Kleski [Fri, 26 Nov 2021 08:57:22 +0000 (08:57 +0000)]
dpdk: cryptodev AES-CTR+SHA1 support added
Type: improvement
This patch adds AES-CTR-128/192/256 + SHA1 linked algo support to dpdk
cryptodev.
Signed-off-by: PiotrX Kleski <piotrx.kleski@intel.com>
Change-Id: Idc162b29f4075ef8be9577abd3daf6de05f84faa
Dastin Wilski [Fri, 26 Nov 2021 14:57:51 +0000 (14:57 +0000)]
dpdk-cryptodev: scalable session count
Originally cryptodev allocates mempools for seesion and session private
data during its initialization. Moreover the size of these mempools are
fixed resulting in limited session count (up to value specified in
CRYPTODEV_NB_SESSION macro).
This patch allows for session count to scale up by allocating new
mempools as they are needed during session creation.
Type: improvement
Signed-off-by: Dastin Wilski <dastin.wilski@gmail.com>
Change-Id: I6ae240b474d3089d3ff50ca5bc7ff48f149983db
Florin Coras [Tue, 30 Nov 2021 05:48:04 +0000 (21:48 -0800)]
vppinfra: remove duplicate api function definition
vl_api_c_string_to_api_string declared in api_types.h
and defined in api_shared.c. Remove from jsonformat
Type: improvement
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I994c8c13b7246a857464c1f879432f73692c6d1f
Florin Coras [Mon, 29 Nov 2021 16:12:27 +0000 (08:12 -0800)]
vcl: fix build with older gcc
Type: fix
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ic941065aa7d7c0002863a6391c8914089c438445
Florin Coras [Sat, 27 Nov 2021 22:44:59 +0000 (14:44 -0800)]
session: remove segment if empty after writer lock
Make sure segment is empty after writer lock acquired. Other workers
might add fifos in between empty test and writer lock acquire.
Type: fix
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I3400fdd14be98d9d8fb4e415d3a849be1d255241
Florin Coras [Sat, 27 Nov 2021 18:30:03 +0000 (10:30 -0800)]
session: mark first listener segment as protected
Avoid constantly re-mapping a listener's first segment when all its
sessions are closed.
Type: improvement
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Iea7033fb70f4cf9e4408d542b7c0ff2b0c5c2f92
Florin Coras [Sat, 27 Nov 2021 18:54:29 +0000 (10:54 -0800)]
session: no deq notifications after close
Type: improvement
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I3e633f017c68e8c5446e45b577048138a387daf6
Florin Coras [Sat, 27 Nov 2021 18:45:55 +0000 (10:45 -0800)]
session: postpone close notification if still accepting
Acceping sessions might be rejected so the notification might not make
sense.
Type: improvement
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I3ababdce7c2cec62941d9722a9c06fa48ec547db
Paul Atkins [Tue, 23 Nov 2021 10:51:07 +0000 (10:51 +0000)]
ipfix-export: don't check the result of pool_get
The code to check the exp is set after the call to pool_get()
is marked as unreachable in coverity. This is becasue if it
fails in pool_get then the it panics. Remove the unreachable code.
Type: fix
Signed-off-by: Paul Atkins <patkins@graphiant.com>
Change-Id: Iabb51b6b6788b6c12ef37c28dde2118c798de831
wanghanlin [Mon, 29 Nov 2021 07:05:23 +0000 (15:05 +0800)]
session: fix clib_rwlock_writer_unlock lost
Type: fix
Signed-off-by: wanghanlin <wanghanlin@corp.netease.com>
Change-Id: Iab857b056639f7e513f87a6095bea081b7d8349c
Nathan Skrzypczak [Thu, 25 Nov 2021 17:44:01 +0000 (18:44 +0100)]
devices: fix af_packet GSO check
Type: fix
This fixes the GSO size calculation in af_packet
which didn't include the ethernet size.
This is not ideal, as we default to the host
side mtu to check whether a packet is GSO or not
and to set the GSO size. But there doesn't seem
to be more info passed with the packets.
Change-Id: I9769e1dd21d5989b4cf67295352b5535454f88d1
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Florin Coras [Thu, 25 Nov 2021 19:37:33 +0000 (11:37 -0800)]
session: accept reply improvements
- Always check session ownership
- Improve test for main thread rpc
Type: improvement
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I5fa60f7f5de199af0966987f9ce9a4cc8180cf98
Florin Coras [Fri, 26 Nov 2021 00:18:39 +0000 (16:18 -0800)]
session: postpone ct peer disconnect and more checks
- Disconnect ct peer only after tx events have been drained
- Make sure session/connection is in healty state before rx/tx
notifications
Type: improvement
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ic6e684410a98530cc95a9c6c54c05a19c17c11d9
Florin Coras [Thu, 25 Nov 2021 20:14:25 +0000 (12:14 -0800)]
session: only notify server on ct connect failure
Type: fix
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ifcb631ed2913e5f4fc318238de9100286a7990d2
Mohsin Kazmi [Thu, 25 Nov 2021 15:02:24 +0000 (16:02 +0100)]
api: add helper macros for native endian
Type: improvement
Change-Id: Ifa074dfd337f9cd68858468d34abf641fe7f247f
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Stanislav Zaikin [Thu, 4 Nov 2021 08:32:32 +0000 (09:32 +0100)]
vppinfra: will_expand for pool_put and bitmap
Macro for pool_put and put a barrier inside load_balance_destroy when bitmap is actually growing.
Type: improvement
Signed-off-by: Stanislav Zaikin <zstaseg@gmail.com>
Change-Id: Ief2912e8efd744289ebed68373fa6fd0ee83118e
Ole Troan [Tue, 23 Nov 2021 09:49:36 +0000 (10:49 +0100)]
vppapigen: coverity 219549, dead code in generated file
Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: I64804092917f1d8dc520549bacae81672a95cd1e
Ray Kinsella [Mon, 22 Nov 2021 12:50:34 +0000 (12:50 +0000)]
l2: change prefetch to prefetchw
L2 prefetches the vlib_buffer_t and then immediately writes to l2 split
horizon group. Changing to the prefetch to a prefetchw.
Type: improvement
Signed-off-by: Ray Kinsella <mdr@ashroe.eu>
Change-Id: If3b7996978ee80f99c55904692c7b3c905f537ce
Ray Kinsella [Mon, 22 Nov 2021 12:08:04 +0000 (12:08 +0000)]
dpdk: prefetch becomes prefetchw
Changed dpdk-input prefetch of vlib_buffer_t to prefetchw.
vlib_buffer_t was being prefetched without 'ownership', which may
cause a stall when the buffer is subsequently written to. This saves
4 clocks a packet when the buffer is shared a cross cores, and has no
impact when not sharing.
Type: improvement
Signed-off-by: Ray Kinsella <mdr@ashroe.eu>
Change-Id: I317af2a38ef536022e68552351a8507861f62dad
Filip Tehlar [Wed, 24 Nov 2021 10:30:59 +0000 (10:30 +0000)]
session: improve fifo segment allocation
This patch ensures that fifo segment has at least the size that was
requested during allocation.
Type: improvement
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: Iea8a885ac290183e25e5c8f9163bba226c5efa15
Florin Coras [Wed, 24 Nov 2021 00:20:15 +0000 (16:20 -0800)]
session: detach server from client on connect failure
Type: fix
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ie2ed2554578d6a2c671c552dc2bdc081f9754eed
Klement Sekera [Tue, 16 Nov 2021 11:22:25 +0000 (12:22 +0100)]
misc: vppctl - fix coverity warning
Check the return value and log failure in case send() fails.
Type: fix
Fixes:
31f192434660
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Change-Id: I1809598ff4816f67c28a88264b6524b10d7ff6ce
Nathan Skrzypczak [Mon, 22 Nov 2021 16:44:30 +0000 (17:44 +0100)]
docs: add missing 21.10 rlsnotes
This patch extract the release notes that
went into v21.10 & v21.10.1 but that are
missing in master, due to the documentation
refactoring
Type: docs
Change-Id: Icb3c95c71e8cdc255f735990d19ee835e3ce6c6c
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Damjan Marion [Mon, 15 Nov 2021 14:33:11 +0000 (15:33 +0100)]
vppinfra: fallback to builtin memcpy if vector code is not enabled
Type: fix
Fixes:
56f54af
Change-Id: I678ff3622640c911eefb57a9288ef95ed859eeb9
Signed-off-by: Damjan Marion <damarion@cisco.com>
Damjan Marion [Thu, 11 Nov 2021 17:34:01 +0000 (17:34 +0000)]
vppinfra: update CPU list
Type: improvement
Change-Id: Ibe1f23801d5eac6d1dae61c6df1a47d59455d42e
Signed-off-by: Damjan Marion <dmarion@me.com>
Neale Ranns [Mon, 14 Sep 2020 07:41:48 +0000 (07:41 +0000)]
misc: deprecate gbp and its dependents
Type: improvement
Signed-off-by: Neale Ranns <nranns@cisco.com>
Signed-off-by: Benoît Ganne <bganne@cisco.com>
Change-Id: I2f30a4f04fd9a8635ce2d259b5fd5b0c85cee8c3
Ray Kinsella [Wed, 17 Nov 2021 10:03:04 +0000 (10:03 +0000)]
vxlan: multiarch optimization of vxlan
Fixing the mutliarch versions of vxlan, geneve and friends. Ensures that
main struct is correctly sized for all multiarch permutations.
Type: fix
Fixes:
290526e3c
Signed-off-by: Ray Kinsella <mdr@ashroe.eu>
Change-Id: I7c4c435763a5dcb0c3b429cd4f361d373d480c03
Florin Coras [Tue, 23 Nov 2021 05:34:56 +0000 (21:34 -0800)]
devices: support build on older kernels
Type: improvement
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I10af028b5e57b36b8015b02240f1e4e9a42d0898
Florin Coras [Tue, 23 Nov 2021 05:25:39 +0000 (21:25 -0800)]
dpdk: enable vmxnet3 l4 checksum offload
Type: improvement
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ia25e671084dd2c0010c0577649bf51ba6495b6ac
Nathan Skrzypczak [Fri, 20 Aug 2021 13:53:43 +0000 (15:53 +0200)]
ip: unlock_fib on if delete
On interface delete we were not removing
the lock taken by a previous ip_table_bind()
call thus preventing the VRFs to be removed.
Type: fix
Change-Id: I11abbb51a09b45cd3390b23d5d601d029c5ea485
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Filip Varga [Mon, 22 Nov 2021 09:57:32 +0000 (10:57 +0100)]
nat: change nat44-ed test pool address
NAT pool address overlaps with pg4 network 10.0.0.1/24
this is not desirable because of upcoming change [1]. This
change uncovered configuration issue with hairpinning test
that would fail because of already configured pg4 interface
that shares subnet with nat pool address. Packets would
incorectly end up in bad pg interface causing the test to fail.
This patch changes nat pool address to 10.0.10.3 that doesn't
belong to any of the subnets configured on pg interfaces in nat
tests.
[1] https://gerrit.fd.io/r/c/vpp/+/34441
Type: test
Change-Id: I49e63dacbf0847116adbcf1954ff5defd833a657
Signed-off-by: Filip Varga <fivarga@cisco.com>
Benoît Ganne [Fri, 20 Aug 2021 07:18:31 +0000 (09:18 +0200)]
vlib: add virtual time support
Type: feature
Change-Id: Iabd76558e9c72ed8286cfeeb1fbaa4fde4832a90
Signed-off-by: Benoît Ganne <bganne@cisco.com>
Gabriel Oginski [Tue, 2 Nov 2021 11:19:01 +0000 (12:19 +0100)]
wireguard: add local variable in handshake process
Originally handshake process gets pointer to value of index peer.
In the meantime this pointer can be invalid due to resize hash table
for wireguard and passed poison value to another function.
The fixes add local variable to keep index of peer instead of value
from pointer.
Type: fix
Signed-off-by: Gabriel Oginski <gabrielx.oginski@intel.com>
Change-Id: I1b2535c44b4f987d19077c75c778aaa5ed71a457
Mohsin Kazmi [Thu, 21 Oct 2021 20:20:24 +0000 (20:20 +0000)]
gso: implement gso segementation copy with checksum
Type: improvement
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Change-Id: Iec9dacde170533ca16e8117787e62da8af69ae96
Klement Sekera [Thu, 18 Nov 2021 11:32:05 +0000 (12:32 +0100)]
vlib: fix coverity warning
Use correct signed type to allow testing for a failure (-1) from
readlinkat().
Type: fix
Fixes:
5714a49f14
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Change-Id: I06f1c8d91e907c151012ff9758c6b52caca4d625
Klement Sekera [Fri, 19 Nov 2021 10:27:41 +0000 (11:27 +0100)]
dpdk: fix coverity warning
Add a hint so that it's obvious that fall through in switch statement is
intentional.
Type: fix
Fixes:
34c54dff5c
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Change-Id: I12271227424761fb89b03a390f626c2ab466472c