Mohammed Hawari [Fri, 29 Jan 2021 09:12:53 +0000 (10:12 +0100)]
interface: automask interrupts to polling rxqs
Sometimes, vnet_hw_if_rx_queue_set_int_pending is called on rxqs which
are not in interrupt mode. Currently, it segfaults due to a too small
clib_interrupt_t structure. This change prevents that and makes the
framework slightly more robust to driver bugs (that might be subtle
to track in some cases involving concurrency...)
Change-Id: I9643b9b1aa37e6852754b93f10cd2f96ed9e6118
Signed-off-by: Mohammed Hawari <mohammed@hawari.fr>
Type: fix
Mohsin Kazmi [Thu, 10 Dec 2020 10:22:34 +0000 (10:22 +0000)]
virtio: use vpp clib_memset instead glibc memset
Type: improvement
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Change-Id: Ib3cefe5d27286c4853eb0c0e1803a94787a62c97
Mohsin Kazmi [Thu, 10 Dec 2020 09:49:21 +0000 (09:49 +0000)]
virtio: add atomic call for kicking
Type: fix
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Change-Id: I41faa2ca249ff75e564a732af896e6b5d76bf665
Neale Ranns [Mon, 8 Feb 2021 09:53:10 +0000 (09:53 +0000)]
ipsec: Checking wrong DB for initialistation
Type: fix
Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: I2325d311a6fd7343c7041dc516777f4db0029823
Andrew Yourtchenko [Wed, 20 Jan 2021 20:30:36 +0000 (20:30 +0000)]
tests: allow for externally supplied VPP workers config for tests
Allow to supply the external VPP worker config for tests which
do not specify the workers config explicitly, and use
the tags infra to flag those that need attention in this configuration.
This commit shows one example use of such a tag, there will be
a separate commit with the rest of the places needing it,
since that change is rather mechanical.
Thus, the assumption is that the test should by default be agnostic
of the VPP configuration, unless it explicitly specifies so.
Type: test
Change-Id: I3c0077e4e22a75cb9561fb98d3b783b93486b2be
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
Ivan Shvedunov [Mon, 1 Feb 2021 11:11:10 +0000 (14:11 +0300)]
ping: fix aborting on keypress
Type: fix
Currently ping stops on events like SOCKET_READ_EVENT,
which makes it hard to use over e.g. govpp as it aborts
immediately most of the time. With this patch, ping only
stops upon real CLI read / quit events.
Signed-off-by: Ivan Shvedunov <ivan4th@gmail.com>
Change-Id: Id7a8d0b0fdeb7bbc7b85240e398d27bd5199345b
Neale Ranns [Thu, 4 Feb 2021 11:02:52 +0000 (11:02 +0000)]
tunnel: support copying TTL and flow label from inner to outer
Type: feature
The added functionality is to support copying TTL and flow label from
inner to outer. The .api was extened to support expressing this and also
adding a common tunnel endpoint type. i find it best to make API changes
in one patch so there are less versions of the API.
Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: I755c1e3f4c475058792af39c1abeda92129efb76
Ole Troan [Wed, 2 Dec 2020 13:19:49 +0000 (14:19 +0100)]
misc: support api generated dependency for multiarch source
Fix dependency issues where multi-arch file is using API generated file.
Type: improvement
Change-Id: I5d4af7a630529bc138c35841723e38938f36d963
Signed-off-by: Ole Troan <ot@cisco.com>
Andrew Yourtchenko [Fri, 29 Jan 2021 14:18:12 +0000 (14:18 +0000)]
libmemif: fix insecure uses of strncpy
A calling patterm of "strncpy(dst, src, strlen(src))" invites a lot of troubles.
However, even using the target size may result in a problem if the string is
longer, since then the termination is not done.
Use strlcpy(dst, src, sizeof(dst)), which will always null-terminate
the string.
Change-Id: I8ddaf3dc8380a78af08914e81849279dae7ab24a
Type: fix
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
Jakub Grajciar [Thu, 14 Jan 2021 12:23:48 +0000 (13:23 +0100)]
libmemif: set data offset for memif buffer
Update descriptor offset based on data pointer
in memif_buffer_t.
Slave only, master will not modify the descriptor.
Type: feature
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
Change-Id: Ice1e94cec366face650c58df81795f4dea727010
Andrew Yourtchenko [Sat, 6 Feb 2021 12:28:52 +0000 (12:28 +0000)]
vppinfra: do not crash if format string is null
Sending 128 bytes of zeroes via API shared memory interface (or putting any other message ID that results in
null message name - e.g. 2,4,5) results in this crash:
Program received signal SIGSEGV, Segmentation fault.
va_format (s=0x7fffb5643a60 "memclnt_create", fmt=0x0, va=0x7fffa739ccf0) at /home/ubuntu/vpp/src/vppinfra/format.c:395
395 c = *f;
(gdb) bt
0 va_format (s=0x7fffb5643a60 "memclnt_create", fmt=0x0, va=0x7fffa739ccf0) at /home/ubuntu/vpp/src/vppinfra/format.c:395
1 0x00007ffff50e7259 in elog_string (em=0x7ffff5f2fbc8 <vlib_global_main+968>, fmt=0x0) at /home/ubuntu/vpp/src/vppinfra/elog.c:592
2 0x00007ffff7bc4cec in vl_msg_api_handler_with_vm_node (am=0x7ffff7dd1c90 <api_global_main>, vlib_rp=0x130023000, the_msg=0x130086d50, vm=0x7ffff5f2f800 <vlib_global_main>,
node=0x7fffb5edd4c0, is_private=0 '\000') at /home/ubuntu/vpp/src/vlibapi/api_shared.c:585
3 0x00007ffff7ba6c86 in void_mem_api_handle_msg_i (am=0x7ffff7dd1c90 <api_global_main>, vlib_rp=0x130023000, vm=<optimized out>, node=<optimized out>, is_private=0 '\000')
at /home/ubuntu/vpp/src/vlibmemory/memory_api.c:696
4 vl_mem_api_handle_msg_main (vm=0x7ffff5f2f800 <vlib_global_main>, node=0x7fffb5edd4c0) at /home/ubuntu/vpp/src/vlibmemory/memory_api.c:707
5 0x00007ffff7bb573e in vl_api_clnt_process (vm=0x7ffff5f2f800 <vlib_global_main>, node=0x7fffb5edd4c0, f=<optimized out>) at /home/ubuntu/vpp/src/vlibmemory/vlib_api.c:338
6 0x00007ffff5cb3bb7 in vlib_process_bootstrap (_a=<optimized out>) at /home/ubuntu/vpp/src/vlib/main.c:1477
7 0x00007ffff514088c in clib_calljmp () from /home/ubuntu/vpp/build-root/install-vpp-native/vpp/lib/libvppinfra.so.21.01
8 0x00007fffa95b0550 in ?? ()
9 0x00007ffff5ca93e2 in vlib_process_startup (vm=0x7ffff5f2f800 <vlib_global_main>, p=0x7fffb5edd4c0, f=0x0) at /home/ubuntu/vpp/src/vlib/main.c:1502
10 dispatch_process (vm=0x7ffff5f2f800 <vlib_global_main>, p=0x7fffb5edd4c0, f=0x0, last_time_stamp=<optimized out>) at /home/ubuntu/vpp/src/vlib/main.c:1558
11 0x0000000000000000 in ?? ()
(gdb)
I am not sure if this place is better to fix it or the 4-5 places in vl_msg_api_handler_with_vm_node that it gets called from,
but submitting this one since it is the shortest
Type: fix
Change-Id: I659d2bea7405d8763181336f35ef468682f64cf2
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
jan_cavojsky [Fri, 18 Sep 2020 10:17:42 +0000 (12:17 +0200)]
flowprobe: set collector port for data from setting
Type: fix
Ticket: VPP-1859
Signed-off-by: jan_cavojsky <Jan.Cavojsky@pantheon.tech>
Change-Id: Iaa5045001621ec99dc8579e8e989adf81dc60525
Mohammed Hawari [Fri, 5 Feb 2021 18:04:42 +0000 (19:04 +0100)]
ipsec: CLI improvement for udp port encap
Change-Id: I59f55db7209549ad43a1205470a2f5ea9ea8a1c7
Signed-off-by: Mohammed Hawari <mohammed@hawari.fr>
Type: feature
Florin Coras [Tue, 29 Dec 2020 17:42:58 +0000 (09:42 -0800)]
tcp: fix port reuse with multiple listeners
The check in listen state that the listener is not valid is not enough
if the time wait session's index overlaps an actual listener's index.
Thanks wanghanlin@corp.netease.com for the report!
Type: fix
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I3dff0cb134940a8265ff908faa607c67dba5e56b
Nathan Skrzypczak [Mon, 1 Feb 2021 16:13:59 +0000 (17:13 +0100)]
devices: af-packet gso mtu
Type: fix
Set the GSO flag when buffer length exceeds the
linux mtu. Don't listen for mtu changes on linux
side for now.
This also fixes a TX issue, as we only search for
valid frames on tx to the extent of n_left, we might
stay stuck.
Change-Id: Idf0bdd88990254a614962c2f7bc3e0292ccfd61a
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Florin Coras [Tue, 26 Jan 2021 04:31:27 +0000 (20:31 -0800)]
session svm: non blocking mq
Avoid synchronizing producers and the consumer. Instead, only use mutex
or spinlock (if eventfds are configured) to synchronize producers.
Type: improvement
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ie2aafbdc2e07fced5d5e46ee2df6b30a186faa2f
Neale Ranns [Fri, 5 Feb 2021 14:34:11 +0000 (14:34 +0000)]
ip: Remove unused include file
Type: refactor
Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: Iae135cbca372def29b1dd5e9f29b7db546ef1a3e
Jakub Grajciar [Tue, 26 Jan 2021 06:38:30 +0000 (07:38 +0100)]
libmemif: fix memif_refill_queue
Fix arithmetic error in memif_refill_queue., where
some of the buffers didn't get properly refilled.
Type: fix
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
Change-Id: I9815a8ac9b899216581452c352e75e2a0454cbce
Jakub Grajciar [Fri, 8 Jan 2021 14:32:43 +0000 (15:32 +0100)]
libmemif: set next free buffer
Adds memif_set_next_free_buffer - set internal pointer
to next free descriptor for any tx queue.
Type: feature
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
Change-Id: Ia24345a886a52c25c1723c6dbce023f2aed4a42c
Ole Troan [Tue, 12 Jan 2021 20:49:38 +0000 (21:49 +0100)]
nat: 1:1 policy NAT
A NAT sub-plugin doing statically configured match/rewrite on IP4 input or output.
It's stateless (no connection tracking).
Currently it supports rewriting of SA, DA and TCP/UDP ports.
It should be simple to add new rewrites if required.
API:
pnat_binding_add, pnat_binding_del, pnat_bindings_get, pnat_interfaces_get
CLI:
set pnat translation interface <name> match <5-tuple> rewrite <5-tuple> {in|out} [del]
show pnat translations
show pnat interfaces
Trying a new C based unit testing scheme. Where the graph node is tested
in isolation. See pnat/pnat_test.c.
Also added new cmake targets to generate coverage directly.
E.g.:
make test_pnat-ccov-report
File '/vpp/sdnat/src/plugins/nat/pnat/pnat.c':
Name Regions Miss Cover Lines Miss Cover
------------------------------------------------------------------------------------
pnat_interface_by_sw_if_index 39 8 79.49% 13 0 100.00%
pnat_instructions_from_mask 9 0 100.00% 13 0 100.00%
pnat_binding_add 64 8 87.50% 31 2 93.55%
pnat_flow_lookup 4 4 0.00% 10 10 0.00%
pnat_binding_attach 104 75 27.88% 33 6 81.82%
pnat_binding_detach 30 5 83.33% 23 2 91.30%
pnat_binding_del 97 33 65.98% 17 3 82.35%
pnat.c:pnat_calc_key_from_5tuple 9 1 88.89% 14 1 92.86%
pnat.c:pnat_interface_check_mask 10 2 80.00% 11 2 81.82%
pnat.c:pnat_enable 5 0 100.00% 11 0 100.00%
pnat.c:pnat_enable_interface 107 26 75.70% 60 15 75.00%
pnat.c:pnat_disable_interface 91 30 67.03% 32 7 78.12%
pnat.c:pnat_disable 7 2 71.43% 13 7 46.15%
------------------------------------------------------------------------------------
TOTAL 576 194 66.32% 281 55 80.43%
File '/vpp/sdnat/src/plugins/nat/pnat/pnat_node.h':
Name Regions Miss Cover Lines Miss Cover
------------------------------------------------------------------------------------
pnat_test.c:pnat_node_inline 67 11 83.58% 115 1 99.13%
pnat_test.c:pnat_calc_key 9 2 77.78% 14 2 85.71%
pnat_test.c:pnat_rewrite_ip4 55 11 80.00% 60 12 80.00%
pnat_test.c:format_pnat_trace 1 1 0.00% 12 12 0.00%
pnat_node.c:pnat_node_inline 63 63 0.00% 115 115 0.00%
pnat_node.c:pnat_calc_key 9 9 0.00% 14 14 0.00%
pnat_node.c:pnat_rewrite_ip4 55 55 0.00% 60 60 0.00%
pnat_node.c:format_pnat_trace 5 5 0.00% 12 12 0.00%
------------------------------------------------------------------------------------
TOTAL 264 157 40.53% 402 228 43.28%
Type: feature
Change-Id: I9c897f833603054a8303e7369ebff6512517c9e0
Signed-off-by: Ole Troan <ot@cisco.com>
Benoît Ganne [Fri, 22 Jan 2021 17:03:09 +0000 (18:03 +0100)]
ipsec: add support for AES CTR
Type: feature
Change-Id: I9f7742cb12ce30592b0b022c314b71c81fa7223a
Signed-off-by: Benoît Ganne <bganne@cisco.com>
Filip Tehlar [Thu, 4 Feb 2021 17:07:30 +0000 (17:07 +0000)]
ikev2: fix bad ip in logs
Type: fix
Change-Id: Icd01491043e9fd1bb8f51f4f55e1252fd78512de
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Neale Ranns [Mon, 14 Dec 2020 16:50:33 +0000 (16:50 +0000)]
interface: RX/TX direction type in API
Type: feature
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
Change-Id: I982205b48615395f19cbb36c73854fb5c3db45e8
Paul Vinciguerra [Wed, 16 Dec 2020 17:37:57 +0000 (17:37 +0000)]
papi: remove unused name from __all__
missed in https://gerrit.fd.io/r/c/vpp/+/30238
Type: fix
Change-Id: I342868a77d7ca87896d97847ca6525ad1abcd1b6
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
Elias Rudberg [Tue, 26 Jan 2021 12:56:45 +0000 (13:56 +0100)]
nat: configurable handoff frame queue size
Make number of worker handoff frame queue elements configurable as
a set nat frame-queue-nelts command. The default value is 64 which
is the same value that was previously hard-coded. The idea is that
allowing larger values can be useful in some cases, to avoid
congestion drops. Also add nat_set_fq_options API support and a
corresponding test case.
Type: improvement
Change-Id: I5c321eb2d7997f76fac2703d9c4a5b2516375db3
Signed-off-by: Elias Rudberg <elias.rudberg@bahnhof.net>
Artem Glazychev [Mon, 30 Nov 2020 19:39:21 +0000 (02:39 +0700)]
vxlan: add udp-port configuration support
Type: improvement
Signed-off-by: Artem Glazychev <artem.glazychev@xored.com>
Change-Id: Ie30d51ab4df5599b52f7335f863b930cd69dbdc1
Tetsuya Murakami [Mon, 1 Feb 2021 00:38:56 +0000 (16:38 -0800)]
sr: Fix the issue that L3VPN SRv6 encapsulated packets could not be forwarded.
Type: fix
Signed-off-by: Tetsuya Murakami <tetsuya.mrk@gmail.com>
Change-Id: Ia12feee9e46d4951519d5c6f9d1a21d89701dc0f
Signed-off-by: Tetsuya Murakami <tetsuya.mrk@gmail.com>
Filip Tehlar [Wed, 27 Jan 2021 18:08:21 +0000 (18:08 +0000)]
tests: ikev2: non-default table id test
Test whether responder sends info requests using correct ip table
Type: test
Change-Id: I9e97576f9d80686961f92de3cbc3e6f8d6341587
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Neale Ranns [Thu, 4 Feb 2021 10:54:22 +0000 (10:54 +0000)]
mpls: MPLS Hash fixes
Type: fix
MPLS hash includes the IP hash at the bottom of the stack. Default this
to the IP default and use the value passed in to the compute function.
Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: I3f8cb0f7c4fe98ea903a752c2b5fd3d7e26d449a
Filip Tehlar [Tue, 26 Jan 2021 22:06:48 +0000 (22:06 +0000)]
ikev2: add hint to the log when IDs do not match
Type: improvement
Ticket: VPP-1908
Change-Id: I1d86ea18fcb6174b86c449d5d9403fd0e5715318
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Filip Tehlar [Tue, 26 Jan 2021 15:08:25 +0000 (15:08 +0000)]
ikev2: fix msgid
Type: fix
In responder initialize msgid in requests to 1 as the previous value (0) was
causing retransmision on the initiator.
Change-Id: I8f5b84331ecac5943129f4c9a377076768fec455
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Benoît Ganne [Fri, 22 Jan 2021 17:41:06 +0000 (18:41 +0100)]
crypto-ipsecmb: add support for AES CTR
Type: feature
Change-Id: Ide2901f5d2111a518b2c8212aa84468cef1d72ca
Signed-off-by: Benoît Ganne <bganne@cisco.com>
Florin Coras [Tue, 2 Feb 2021 23:40:35 +0000 (15:40 -0800)]
vppinfra: fix mem map mt issue due to snprintf
Type: fix
Apparently snprintf is not thread safe!?
Thread 6 "vpp_wk_3" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ffeed1a3700 (LWP 819375)]
0x00007ffff58fc2b4 in __GI__IO_default_xsputn (n=<optimized out>,
data=<optimized out>, f=<optimized out>) at genops.c:394
394 genops.c: No such file or directory.
(gdb) bt
0 0x00007ffff58fc2b4 in __GI__IO_default_xsputn (n=<optimized out>,
data=<optimized out>, f=<optimized out>) at genops.c:394
1 __GI__IO_default_xsputn (f=0x7ffeec35e050, data=<optimized out>,
n=9) at genops.c:370
2 0x00007ffff58e127c in __vfprintf_internal (s=s@entry=0x7ffeec35e050,
format=format@entry=0x7ffff5f833ce "%s",
ap=ap@entry=0x7ffeec35e1d0, mode_flags=mode_flags@entry=2) at
../libio/libioP.h:948
3 0x00007ffff58f611a in __vsnprintf_internal (string=0x7ffed57ed018
"", maxlen=<optimized out>, format=0x7ffff5f833ce "%s",
args=args@entry=0x7ffeec35e1d0, mode_flags=2) at vsnprintf.c:114
4 0x00007ffff5997fd1 in ___snprintf_chk (s=<optimized out>,
maxlen=<optimized out>, flag=<optimized out>, slen=<optimized out>,
format=<optimized out>) at snprintf_chk.c:38
5 0x00007ffff5f7fd74 in clib_mem_vm_map_internal (base=<optimized
out>, log2_page_sz=<optimized out>, size=<optimized out>,
fd=<optimized out>, offset=<optimized out>, name=0x0) at
/scratch/fcoras/vpp/src/vppinfra/linux/mem.c:502
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I8ff7cfed422273dbdc55068772e11f5e550a9b60
Damjan Marion [Wed, 27 Jan 2021 14:21:36 +0000 (14:21 +0000)]
vlib: "revert startup multi-arch variant configuration fix for interfaces"
Type: fix
This reverts commit
5a48b3b9d88fa2793793e2bf3db8bf156fe2951f.
Change-Id: Ifa91b18bdbbc32bb729abc09d95637d9cdf42c3b
Signed-off-by: Damjan Marion <damarion@cisco.com>
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
Klement Sekera [Tue, 26 Jan 2021 11:18:53 +0000 (12:18 +0100)]
nat: reduce number of hash tables for EI NAT
Making code more simple and storing thread index along with session
index as a preparation step for fixing thread safety patches.
Type: improvement
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Change-Id: Ib0c531e9f1f64b1f1ee912d4a83279200638e931
Neale Ranns [Thu, 28 Jan 2021 11:38:16 +0000 (11:38 +0000)]
api: Fold the empty pool check into the main macro
Type: improvement
the empty pool chekc is always required, so make it alwayd happen.
Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: I3879e752036a7dd49fff7e16dc6d9ea02563aa7a
Neale Ranns [Thu, 24 Dec 2020 09:16:09 +0000 (09:16 +0000)]
linux-cp: Linux Interface Mirroring for Control Plane Integration
Type: feature
please see FEATURE.yaml for details.
Signed-off-by: Neale Ranns <nranns@cisco.com>
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
Signed-off-by: Jon Loeliger <jdl@netgate.com>
Signed-off-by: Pim van Pelt <pim@ipng.nl>
Change-Id: I04a45c15c0838906aa787e06660fa29f39f755fa
Neale Ranns [Thu, 4 Feb 2021 11:33:32 +0000 (11:33 +0000)]
ipsec: one thread index per-SA
Type: improvement
AN SA is uni-drectional therefore it can be used only for encrypt or
decrypt, not both. So it only needs one thread ID. free up some space on
the 1st cacheline.
Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: I21cb7cff70a763cbe2bffead860b574bc80b3136
Miklos Tirpak [Tue, 12 Jan 2021 14:14:02 +0000 (15:14 +0100)]
vlib: increase the stats epoch only when necessary
When the counter vectors are validated and they are already long enough
to fit the given index in memory, there is no need to increase the stats
segment epoch. In this case, the counter vectors do not change as a
result of the validation.
This optimization is necessary for the case when the configuration is
changed at multiple thousands per second rate. The counter vectors grow
at the beginning and their size stabilizes after a while. Without this
improvement, it can still take several seconds for a stats reader to
succeed.
Type: improvement
Signed-off-by: Miklos Tirpak <miklos.tirpak@gmail.com>
Change-Id: I5a6c30255832716a1460018d0bd0f63031de102b
Ray Kinsella [Thu, 28 Jan 2021 17:09:45 +0000 (17:09 +0000)]
vxlan: fix interface naming
Previous commit broke naming of vxlan interfaces.
Type:fix
Fixes:
a4b0541f6
Signed-off-by: Ray Kinsella <mdr@ashroe.eu>
Change-Id: I5e304821be73547b4e47c35ad9632283f153830f
Neale Ranns [Tue, 2 Feb 2021 09:21:52 +0000 (09:21 +0000)]
vppapigen: Support an 'autoendian' keyword for message definitions in
.api files
Type: feature
Make the auto-endian nature explicit, rather than hidden in the x_api.c
file.
Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: Ibe647117ceeaf6f99a38a96576a5a41a3cbb1615
Paul Vinciguerra [Sun, 13 Dec 2020 04:12:55 +0000 (04:12 +0000)]
vppapigen: fix enum types
enums can return signed or unsigned integers
enumflags are unsigned integers
Type: fix
Change-Id: Iafc8f8f09c96679c5983d2cb807699fcf90ca0d7
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
Brian Russell [Wed, 27 Jan 2021 14:45:22 +0000 (14:45 +0000)]
tests: verify policer stats in punt tests
Add verification of policer stats in the IP[46] punt paths.
Type: test
Signed-off-by: Brian Russell <brian@graphiant.com>
Change-Id: I8b1035afc2d3abe4e98bdb3a76e87a0dd131ef4b
Brian Russell [Wed, 27 Jan 2021 11:34:33 +0000 (11:34 +0000)]
policer: add counters
Add counters to the policer against each of the 3 possible results:
conform, exceed and violate.
Type: improvement
Signed-off-by: Brian Russell <brian@graphiant.com>
Change-Id: Ia98a2f5655df6873259197d6bbf0ff2709b7d60e
Florin Coras [Mon, 1 Feb 2021 19:59:49 +0000 (11:59 -0800)]
vcl: remove verbose output from vcl iperf tests
For high throughput tests the amount of debug output can be
considerable.
Type: improvement
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Icc9f2092918ebca432502af960da11b154818a02
Mathias Raoul [Wed, 27 Jan 2021 15:35:54 +0000 (15:35 +0000)]
quic: clean setup_cipher function
Type: fix
Change-Id: I02e473440a8732ddfb1a13ad6552779adaa67f60
Signed-off-by: Mathias Raoul <mathias.raoul@gmail.com>
Vratko Polak [Mon, 1 Feb 2021 17:42:04 +0000 (18:42 +0100)]
misc: remove duplicated gbp entry in maintainers
Type: style
Change-Id: Iba79915b78daf6eec6affa4efce66d3670d3f3c0
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
Vratko Polak [Mon, 1 Feb 2021 17:25:59 +0000 (18:25 +0100)]
misc: mark vnet and plugin in maintainers
Type: style
Change-Id: Ibbc33d92e3663aea0b33a2f961a9ceebc975b51c
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
Vratko Polak [Mon, 1 Feb 2021 17:20:06 +0000 (18:20 +0100)]
misc: use tab as separator in maintainers file
Type: style
Change-Id: I9bf61b0b9fd35941fda52c0eef99c7c95db9cba8
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
Paul Atkins [Tue, 19 Jan 2021 15:22:23 +0000 (15:22 +0000)]
vppinfra: add defines for bihash add and delete
When calling the bihash_add_del... functions some callers add a comment
beside the value to indicate this is the is_add param. Make the code
easier to read by adding defines for add and delete that the callers
can use instead of having to use 0 or 1.
Type: improvement
Signed-off-by: Paul Atkins <patkins@graphiant.com>
Change-Id: Iab5f7c8e8df12ac62fc7e726ca1798622dcdb42c
Neale Ranns [Mon, 1 Feb 2021 10:19:15 +0000 (10:19 +0000)]
misc: Volunteer as maintainer for the policer
Type: improvement
I volunteer myself as maintainer of the policer code.
Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: Ia843f031372cf2ca834e884ed2ba4774bf7fcd21
Neale Ranns [Mon, 1 Feb 2021 10:15:01 +0000 (10:15 +0000)]
misc: Remove duplicate "classify" entry in MAINTAINER list
Type: fix
Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: I5466838353f3286941333f752f9ef6d336db0de4
Andrew Yourtchenko [Wed, 27 Jan 2021 13:53:42 +0000 (13:53 +0000)]
docs: fix up the markdown
Type: docs
Change-Id: Ia541839e1f1ceddfae4579dece43b9cc820702e2
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
(cherry picked from commit
de569048a504cf211d80b86882e6781684301790)
Andrew Yourtchenko [Wed, 16 Dec 2020 22:28:30 +0000 (22:28 +0000)]
misc: 21.01 Release Notes
Change-Id: I8fa48e631b9405f2882ea975927c42dbbd32cf1f
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
Signed-off-by: Ray Kinsella <mdr@ashroe.eu>
Type: docs
(cherry picked from commit
3d2d96e5547484290c9368bac0a420afa8c4c068)
Neale Ranns [Mon, 1 Feb 2021 10:21:33 +0000 (10:21 +0000)]
misc: Update my email address in MAINTAINERS
Type: fix
Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: I87cc517535f8d8dd5bf786bb8e00863b004df808
Neale Ranns [Tue, 26 Jan 2021 12:08:25 +0000 (12:08 +0000)]
fib: Changes to interpose source
Type: improvement
1) stack the interpose on any path-extensions (e.g. labels) from the
next best source
2) allow more than 1 source to contribute a DPO for a given prefix
Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: Idc2fbb36cfbd2387081765d8af0f1fbe61612160
Mohsin Kazmi [Wed, 27 Jan 2021 14:16:56 +0000 (14:16 +0000)]
tap: fix the interrupt handling
Type: fix
Interrupt are suppressed from kernel on tx path.
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Change-Id: I9f39f343b7e16bad09910766adf0b09654721f67
Benoît Ganne [Tue, 24 Nov 2020 17:15:07 +0000 (18:15 +0100)]
interface: fix interface name overflow in logs
hi->name is a non-NULL-terminated vector.
Type: fix
Change-Id: I1a9f128f24f137b43cb47169677cc4288043fbd7
Signed-off-by: Benoît Ganne <bganne@cisco.com>
Steven Luong [Tue, 17 Nov 2020 23:56:10 +0000 (15:56 -0800)]
misc: fix a trunccation on vhost dump
feature is u64. We need to print it with %llx and enough precision to
avoid truncation
Type: fix
Signed-off-by: Steven Luong <sluong@cisco.com>
Change-Id: I9f5dd523400473b4881b01b8e6cecf439a8060d9
Kommula Shiva Shankar [Thu, 28 Jan 2021 07:35:59 +0000 (13:05 +0530)]
vlib: acquire barrier before exit call
Type: fix
A plugin exit callback function registered via
VLIB_MAIN_LOOP_EXIT_FUNCTION() is called without stopping worker cores
doing data path processing. Following error is observed while exiting
vpp.
error log:
vppctl# q
0: /vpp_master/src/vnet/interface.c:1058 (vnet_delete_hw_interface) assertion `ii == 0 || this_vlib_main->parked_at_barrier == 1' fails
This patch calls all exit() functions after acquiring barrier
Signed-off-by: Kommula Shiva Shankar <kshankar@marvell.com>
Reviewed-by: Nitin Saxena <nsaxena@marvell.com>
Change-Id: I2fd565f0afaa62cb0fb0389922f49e4d382f028c
Florin Coras [Thu, 28 Jan 2021 19:39:27 +0000 (11:39 -0800)]
vcl: support set/get vrf attribute
Type: improvement
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I011faa52939d44bdc90de69ad381dc1eea8c8eb3
Florin Coras [Wed, 27 Jan 2021 23:33:51 +0000 (15:33 -0800)]
vcl: fix select want deq ntf for ct sessions
Type: fix
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I2d008a12da6c6e68ad8955a638b44d09e4febd8d
Florin Coras [Thu, 28 Jan 2021 02:08:25 +0000 (18:08 -0800)]
svm vcl: add helper fn that discovers mqs in segment
Type: improvement
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I1b083ee793a7cf91b1001bfe88353fa5e6515c42
Florin Coras [Thu, 28 Jan 2021 00:05:24 +0000 (16:05 -0800)]
vcl: honor time wait in eventfd epoll wait
Type: fix
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I4bfdeb4bfbdcf333cfd4047a80edd04e35a371fc
Nathan Skrzypczak [Fri, 4 Dec 2020 09:23:34 +0000 (10:23 +0100)]
cnat: Fix session with deleted tr
Type: fix
When a translation gets deleted, hiting a
session pointing to it sefaults. We're better
off directly storing the next node index.
Change-Id: I4f0716d775202b4ecf54d6cdb827bbeebd23056c
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Nathan Skrzypczak [Mon, 16 Nov 2020 17:57:52 +0000 (18:57 +0100)]
cnat: Fix throttle hash & cleanup
Type: fix
This fixes two issues :
- We used a hash to throttle RPC for adding fib entries,
but as we rely on a refcount, we cannot accept loosing an
entry, which could happen in case of a collision.
- On client cleanup we weren't freeing the fib entry correctly
which resulted in crashes when recreating an entry.
Added a test that ensures proper cleanup
Change-Id: Ie6660b0b02241f75092737410ae2299f8710d6b9
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Brian Russell [Tue, 19 Jan 2021 16:58:34 +0000 (16:58 +0000)]
tests: add ip6 punt policer handoff test
Add a test for ip6 punt policer thread handoff. A child class is
created that uses common punt test setup but is configured to have 2
worker threads.
Type: test
Signed-off-by: Brian Russell <brian@graphiant.com>
Change-Id: I65c44f5d79455129accd7cf405c15920a5a9b678
Brian Russell [Tue, 19 Jan 2021 16:58:14 +0000 (16:58 +0000)]
tests: move ip6 punt setup to its own class
Move interface and packet setup for the ip6 punt test to its own
class so that child classes can be created that use it.
Type: test
Signed-off-by: Brian Russell <brian@graphiant.com>
Change-Id: I14acedc1bcd12cb320835a36833cd32303c5f793
Brian Russell [Tue, 19 Jan 2021 16:57:42 +0000 (16:57 +0000)]
tests: add ip4 punt policer handoff test
Add a test for ip4 punt policer thread handoff. A child class is
created that uses common punt test setup but is configured to have 2
worker threads.
Type: test
Signed-off-by: Brian Russell <brian@graphiant.com>
Change-Id: I34defee85bc5636f9355d0b9aaa007bfaf5e001e
Brian Russell [Tue, 19 Jan 2021 16:56:32 +0000 (16:56 +0000)]
tests: move ip4 punt setup to its own class
Move interface and packet setup for the ip4 punt test to its own
class so that child classes can be created that use it.
Type: test
Signed-off-by: Brian Russell <brian@graphiant.com>
Change-Id: I1a976e8fc0e8a44a86fe923a3ae093fe0c9057a8
Brian Russell [Thu, 21 Jan 2021 14:44:09 +0000 (14:44 +0000)]
ip: do policer thread handoff from punt policers
Pass packets arriving at the ip[46] punt policer nodes to punt policer
handoff nodes if the worker thread they arrive on is not the same one
configured in the policer. Initially, the policer will be tied to the
worker thread that it first received a packet on. This will be expanded
in future to be a configuration API option.
Type: improvement
Signed-off-by: Brian Russell <brian@graphiant.com>
Change-Id: Ic39d936084c354af1859ad3d946da6cd0f6e34d9
Brian Russell [Tue, 19 Jan 2021 16:50:56 +0000 (16:50 +0000)]
policer: add policer handoff
Add thread handoff for packets being policed. Note that the handoff
currently requires the policer index to be passed in. This is suitable
for use in the ip[46] punt paths where each policer node will only
ever use a single policer. For the more general case, this will be
expanded in future to use a policer index stored in packet metadata.
Type: improvement
Signed-off-by: Brian Russell <brian@graphiant.com>
Change-Id: I85a0ecbcfb025f8844e763224cd3de1561249aca
Brian Russell [Tue, 19 Jan 2021 16:48:56 +0000 (16:48 +0000)]
ip: add frame queues to punt policer nodes
The policer is not thread safe. In order that handoff could be
performed, add a frame queue to each of the punt policer nodes.
Type: improvement
Signed-off-by: Brian Russell <brian@graphiant.com>
Change-Id: Iee50267ee7e36f0e6c95b9b43bf651648198b834
Brian Russell [Tue, 19 Jan 2021 16:46:08 +0000 (16:46 +0000)]
policer: add thread index to policer
Add a thread index field to the policer structure. The policer is not
thread safe. The thread index will be used to tie it to one worker
thread and other workers can use thread handoff.
Type: improvement
Signed-off-by: Brian Russell <brian@graphiant.com>
Change-Id: I650e983a9ed800bf660d6f06368717484c4a83bf
Neale Ranns [Fri, 22 Jan 2021 16:12:38 +0000 (16:12 +0000)]
ip: Router ID included in flow hash
Type: feature
A device/router needs to have a unique ID which is included in the flow
has so that flows are not polarised through the network, i.e. each deice
in the network chooses the same nth link for the same flow.
Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: I963e03674adbb085902b4084fdc4886b88f5734c
Benoît Ganne [Wed, 27 Jan 2021 16:43:41 +0000 (17:43 +0100)]
crypto-openssl: fix iv size for AES CTR
Type: fix
Change-Id: I79258a95cfb75587685dffae671255063f57cbef
Signed-off-by: Benoît Ganne <bganne@cisco.com>
Mohammed Hawari [Fri, 22 Jan 2021 13:30:56 +0000 (14:30 +0100)]
build: do not _FORTIFY_SOURCE in debug mode
When compiling in -O0, the glibc feature.h ignores _FORTIFY_SOURCE and,
in some distributions, throws a #warning, which fails the build. This
patch removes -D_FORTIFY_SOURCE in all debug configurations.
Change-Id: Ic30229c038353e49ff9419779e082a7083c1ea5f
Type: fix
Signed-off-by: Mohammed Hawari <mohammed@hawari.fr>
hemant_mnkcg [Tue, 19 Jan 2021 19:20:04 +0000 (14:20 -0500)]
Change unformat_init_string API in doc to match code
Signed-off-by: hemant_mnkcg <hemant@mnkcg.com>
Change-Id: I4ec487054f928d52fe06d530df095b30edf66ae5
Steven Luong [Wed, 27 Jan 2021 07:44:19 +0000 (23:44 -0800)]
vhost: vhost interface hardware address not set
The check args->hwaddr is always true and it always copies the
mac address from args->hwaddr even though none was set.
Check args->use_custom_mac instead.
Type: fix
Fixes: gerrit 29970
Signed-off-by: Steven Luong <sluong@cisco.com>
Change-Id: I0c51bf1ea79b02c4fbdc3c52e694f186bdd96600
Filip Tehlar [Mon, 25 Jan 2021 10:09:27 +0000 (10:09 +0000)]
ikev2: add per SA stats
Type: feature
Change-Id: Ic502d806410ea3c8f3f1eac70b694114ccb053bf
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Florin Coras [Tue, 26 Jan 2021 22:10:43 +0000 (14:10 -0800)]
session: clear ct fifo flag prior to notification
Type: fix
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I6db15780d87426eee852aa020c50cbdf45dc1f95
Mohammed Hawari [Fri, 8 Jan 2021 16:19:09 +0000 (17:19 +0100)]
interface: remove vnet_device_input_runtime_t
Change-Id: I85a463b4ca15baf11e3eb70189f5190ba2585170
Type: refactor
Signed-off-by: Mohammed Hawari <mohammed@hawari.fr>
Dave Barach [Tue, 26 Jan 2021 15:51:13 +0000 (10:51 -0500)]
misc: fix snap image build
Clean up snapcraft.yaml bit rot, switch to Ubuntu 20.04, add README.md
Type: improvement
Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I2e0d3925cf43541e70b59083f8c91af539aa34e6
Florin Coras [Fri, 22 Jan 2021 23:05:14 +0000 (15:05 -0800)]
svm: add custom q implementation for mq
Add separate queue implementation for the message queue as it's custom
tailored for fifo segments as opposed to binary api.
Also move eventfds to the private data structures.
Type: refactor
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I6df0c824ecd94c7904516373f92a9fffc6b04736
Benoît Ganne [Mon, 5 Oct 2020 12:55:00 +0000 (14:55 +0200)]
vlib: add show trace limit warning at the end of output too
Users tend to miss the warning too often, add it to the end of the
output in hope it would be easier to catch.
Type: improvement
Change-Id: I264df7e3b6ab1ffb1a383807f4444d9cbaf40999
Signed-off-by: Benoît Ganne <bganne@cisco.com>
Benoît Ganne [Fri, 22 Jan 2021 17:43:14 +0000 (18:43 +0100)]
crypto-ipsecmb: more explicit errors reporting
Use error counters related to ipsec-mb return codes instead of
'bad-hmac' only.
Type: improvement
Change-Id: I9329da300a70d76b4d4ab30fa45f0a2a85d6519b
Signed-off-by: Benoît Ganne <bganne@cisco.com>
Radu Nicolau [Wed, 2 Dec 2020 11:45:11 +0000 (11:45 +0000)]
vlib: startup multi-arch variant configuration fix for interfaces
Propagate the multi-arch variant selection to interfaces.
Type: fix
Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
Change-Id: I99c4a7896f172f0d14d2ded22a27383825529a7d
Benoît Ganne [Wed, 20 Jan 2021 18:10:59 +0000 (19:10 +0100)]
svm: use standard function to reset stale mutex
Avoid accessing the private data structure of mutexes which is
implementation-dependent, eg. musl is different from glibc.
Type: improvement
Change-Id: I20ec0c1c9faef0749d89a1969cd2430c80ac04b3
Signed-off-by: Benoît Ganne <bganne@cisco.com>
Mathias Raoul [Tue, 19 Jan 2021 14:02:34 +0000 (14:02 +0000)]
quic: quicly v0.1.2 update
- update quic plugin with new quicly/picotls API
- remove packet allocator
- remove crypto batching
- update picotls plugin
- add cli for quicly congestion control configuration
Type: feature
Change-Id: If76ef31c43b430eea2f7674539b2112aee0f351e
Signed-off-by: Mathias Raoul <mathias.raoul@gmail.com>
Andrew Yourtchenko [Thu, 14 Jan 2021 10:19:08 +0000 (10:19 +0000)]
tests: add generalized tags for tests, use them for run-solo tests
We have accumulated several scenarios in prod or wishlists
where it would be useful to have a general infra to say yes/no
about a certain test, and potentially make decisions based on that,
for example:
- runs solo (aka 'time-dependent')
- (wishlist) part of quick smoke-test set
- (wishlist) intermittent failure unrelated to timing
- (wishlist) test broken with a multi-worker config in vpp
Refactor the current "run-solo" code to allow for this extension.
Type: test
Change-Id: Ia5b3810e57c0543753c8e0dc4dc0cfb4a30b36ac
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Dave Barach [Wed, 20 Jan 2021 17:20:13 +0000 (12:20 -0500)]
docs: vpp stateless traffic generator
Add a use-case writeup.
Type: docs
Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: Ib6e79e80455edbdeedcc96943dd98f16c57c559e
Mohammed Hawari [Fri, 11 Dec 2020 18:36:37 +0000 (19:36 +0100)]
interface: fix rx-placement api/cli for new infra
Change-Id: Ic977ffe761efc2129c61aec581da5479fe4838da
Type: fix
Signed-off-by: Mohammed Hawari <mohammed@hawari.fr>
Mohammed Hawari [Mon, 21 Dec 2020 17:19:46 +0000 (18:19 +0100)]
interface: let drivers control polling when down
Change-Id: I03e164d8d5a329497f422e99f8b0058135241b4e
Signed-off-by: Mohammed Hawari <mohammed@hawari.fr>
Type: fix
Mohammed Hawari [Fri, 18 Dec 2020 15:29:45 +0000 (16:29 +0100)]
devices: adapt af_packet to new rxq framework
Change-Id: If8077280cef501599f810ad9255efa2a5a451ced
Signed-off-by: Mohammed Hawari <mohammed@hawari.fr>
Type: improvement
Mohammed Hawari [Tue, 22 Dec 2020 14:12:27 +0000 (15:12 +0100)]
interface: fix vnet_hw_if_update_runtime_data
Take into account pending interrupts when resizing rxq_interrupts
Type: fix
Signed-off-by: Mohammed Hawari <mohammed@hawari.fr>
Change-Id: I64f6f4404738c90ed5a2c10d72c7ce59cf96a644
Jakub Horn [Thu, 21 Jan 2021 12:14:58 +0000 (12:14 +0000)]
sr: SRv6 FlowLabel Added
Type: improvement
Signed-off-by: Jakub Horn <jhorn@cisco.com>
Change-Id: I06401a8645615d139893dca27d07bb3b3214bea7
Somnath Kotur [Mon, 30 Nov 2020 02:54:45 +0000 (08:24 +0530)]
dpdk: do not use TSO for small packets
Asking for TSO (TCP Segmentation Offload) on packets that are already
smaller than (headers + MSS) does not make sense and may not work
on some HW.
Fix to only set the TSO flag when a segmentation offload is
really required, i.e when packet is large enough.
Type: improvement
Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com>
Change-Id: I7830ae8474581c8e518fb4910f7863e10346bb62
Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com>
Radu Nicolau [Thu, 14 Jan 2021 10:25:02 +0000 (10:25 +0000)]
avf: use write combining store for queues tail update
Performance improvement: on supported platforms, currently only Intel Tremont,
use a write combining store to update the tail pointers.
Also, Tremont node variant is added for all.
Type: improvement
Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
Change-Id: Ie9606e403b7d9655184f778e3ffee3027c8c9edd
Jakub Grajciar [Fri, 8 Jan 2021 14:01:13 +0000 (15:01 +0100)]
libmemif: buffer enqueue refactor
Refactored memif_buffer_enq_tx - dequeue buffers from any queue (rx/tx) and
enqueue them to any tx queue.
Added memif_buffer_requeue - swap descriptors of provided buffers.
Type: refactor
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
Change-Id: I8482824df920aaaf8325d52a297ed57a815aaba6
Chenmin Sun [Mon, 11 Jan 2021 12:03:13 +0000 (20:03 +0800)]
dpdk: dpdk i40e patch cherry-pick
This patch fixes flex payload flow creation failure issue
Type: fix
Signed-off-by: Chenmin Sun <chenmin.sun@intel.com>
Change-Id: I3ac0a168dadd033a668d7bd6f5e78798aedb61a5