Andrew Yourtchenko [Mon, 18 Nov 2019 10:37:24 +0000 (10:37 +0000)]
map: fix coverity issue 205684
ip4_map_get_domain returns d0 = 0 in case of no domain,
and sets error MAP_ERROR_NO_DOMAIN. Rearrange the clauses
in the logical check that relies on dereferencing d0
such that boolean shortcutting takes care of not
referencing the null pointer.
Change-Id: I378adc120836ea920fc530808ac3c1f98ab8d593
Type: fix
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
Filip Varga [Mon, 9 Sep 2019 14:55:19 +0000 (16:55 +0200)]
nat: respect arc features (multi worker)
Type: fix
Ticket: VPP-1747
Change-Id: If282aae3e584d7017c200f897b99c8a37eb1b2e5
Signed-off-by: Filip Varga <fivarga@cisco.com>
Jon Loeliger [Thu, 14 Nov 2019 22:44:40 +0000 (16:44 -0600)]
map: Fix TCP MSS clamping for MAP-E traffic.
Original MSS clamp patch by Vladimir Ratnikov.
Modified to apply only to TCP packets.
Type: fix
Test: Wrote new unit test to ensure MAP-E TCP MSS clamping.
Change-Id: I77c69714a2e3cc3b7473aa12b645243bb595c2a2
Signed-off-by: Vladimir Ratnikov <vratnikov@netgate.com>
Signed-off-by: Jon Loeliger <jdl@netgate.com>
Srikanth Akula [Mon, 18 Nov 2019 19:56:51 +0000 (11:56 -0800)]
session: Increasing the Header lengthe size
Type: feature
For some deployments(mobile traffic) we need few extra bytes of space
Signed-off-by: Srikanth Akula <srakula@cisco.com>
Change-Id: I3367561dc23dbb8b266dea583e23b9430fd7dcab
Srikanth Akula [Mon, 18 Nov 2019 19:49:58 +0000 (11:49 -0800)]
session: extra checks in session validation
Type: fix
Adding few extra checks while doign session validationwq!
Signed-off-by: Srikanth Akula <srakula@cisco.com>
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I4d18b5ad97d1802ce38a07aeb56b5f35939c1187
Dave Barach [Mon, 18 Nov 2019 22:16:49 +0000 (17:16 -0500)]
vlib: improve code coverage in src/vlib
Type: test
Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I2dc4c09730f77931a2b484a6dd5dc669068f8e57
Dave Barach [Thu, 14 Nov 2019 13:03:48 +0000 (08:03 -0500)]
api: configurable binary api client rx pthread fcn
Add vl_client_connect_to_vlib_thread_fn (...) and export the
memory_client_main_t definition.
If you use this new API, make sure not to miss the setjmp / longjmp
dance shown in .../src/vlibmemory/memory_client.c:rx_thread_fn(...),
which is required for the rx pthread to terminate cleanly; please
process client delete reply messages in the rx thread...
Type: refactor
Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: Ia67038ec59e2e14b174c67afca15b2c3f67a4d20
Neale Ranns [Fri, 15 Nov 2019 15:03:27 +0000 (15:03 +0000)]
ipsec: Coverity warnings
Type: fix
Signed-off-by: Neale Ranns <nranns@cisco.com>
Change-Id: I6bb6c6be62f98ac9a059469c81a5f4476b96e96e
Dave Barach [Sun, 17 Nov 2019 23:38:07 +0000 (18:38 -0500)]
nsim: add FEATURE.yaml
Type: docs
Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I75d1efc503135bdc224f563b4e02b449904bfa08
Alexander Chernavin [Thu, 31 Oct 2019 14:38:43 +0000 (10:38 -0400)]
bfd: allow IPv6 link-local address as local address
Type: fix
Change-Id: Ia3dacd2628591f7ba9710e8e4d68df97ae21935c
Signed-off-by: Alexander Chernavin <achernavin@netgate.com>
Florin Coras [Fri, 15 Nov 2019 07:32:08 +0000 (23:32 -0800)]
tcp: close session on retransmit failure
Type: fix
Since the connection is closed, also mark the session as closed.
Change-Id: Ica3849c3ff12fa7a65ba64e563a60d6c94f5ceca
Signed-off-by: Florin Coras <fcoras@cisco.com>
Dave Wallace [Fri, 15 Nov 2019 23:18:59 +0000 (18:18 -0500)]
quic: replace quicly patch with upstreamed fix
- Replace the solution to the quicly time skew assert
with h2o/quicly PR#222 which was merged upstream
after verification that it resolved the vpp issue.
Type: refactor
Change-Id: I26df08e4108b054a28f50c964ddff1c80a592339
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Dave Wallace [Fri, 15 Nov 2019 21:58:48 +0000 (16:58 -0500)]
build: fix docs/doxygen targets
- Add missing dependencies
- Fix clean/wipe to remove generated files
- Fix doxygen src variable
Type: fix
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: If6b2797e8af3f2e735759fab5841a0b4576ed7cc
Dave Wallace [Thu, 14 Nov 2019 17:19:32 +0000 (12:19 -0500)]
build: make checkstyle-* targets and cleanup
- Add new make targets:
checkstyle-commit
checkstyle-test (alias test-checkstyle)
checkstyle-all
test-wipe-papi (papi-wipe deprecated)
retest-all
retest-all-debug
install-deps (alias install-dep)
install-ext-dep (alias install-ext-deps)
- Fix .PHONY dependencies
- Cleanup redundant target commands
Type: refactor
Change-Id: I08b0ef459d421a09fb929aee5cd6baec329931b7
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Neale Ranns [Wed, 6 Nov 2019 13:13:01 +0000 (13:13 +0000)]
tests: Add UT to test incomplete MPLS adjacencies send ARP requests
Type: test
Change-Id: I81e07233aec54c786e4e9beb8c4f06d0a3dca90f
Signed-off-by: Neale Ranns <nranns@cisco.com>
Neale Ranns [Mon, 11 Nov 2019 08:32:34 +0000 (08:32 +0000)]
tests: Remove the unrequired VPP IP address/prefix class wrappers
Type: refactor
Change-Id: I204f3f8eebc5f5d5a377e91262f91c615fd00168
Signed-off-by: Neale Ranns <nranns@cisco.com>
Aleksander Djuric [Tue, 12 Nov 2019 09:36:08 +0000 (12:36 +0300)]
ikev2: add definitions for libssl
Type: fix
Signed-off-by: Aleksander Djuric <aleksander.djuric@gmail.com>
Change-Id: I2fe36e2e4e8ce2906a6573301c7fca3cbab571c3
Aleksander Djuric [Mon, 11 Nov 2019 12:30:24 +0000 (15:30 +0300)]
ikev2: correct byte order in api handlers
Type: fix
Signed-off-by: Aleksander Djuric <aleksander.djuric@gmail.com>
Change-Id: I186286b8959ae138528a5171c22d3e1b00f46baf
Signed-off-by: Aleksander Djuric <aleksander.djuric@gmail.com>
Andy Gospodarek [Tue, 12 Nov 2019 22:55:01 +0000 (17:55 -0500)]
dpdk: Enable bnxt PMD
This adds support to compile the bnxt PMD that supports Broadcom's
10/25/40/50/100/200 Gbps NICs. Tested with modified DPDK driver on
x86_64 and aarch64 targets that is pending upstream acceptance, but
should compile just fine today.
Type: feature
Signed-off-by: Andy Gospodarek <gospo@broadcom.com>
Change-Id: I735a991c4cae4fa77e5605094facea54b781a1db
Damjan Marion [Fri, 8 Nov 2019 16:41:06 +0000 (17:41 +0100)]
virtio: refactor virtio-pci logging
Type: refactor
Change-Id: I34306c1206b2bf5f521be6c6b78074ccf9259a08
Signed-off-by: Damjan Marion <damarion@cisco.com>
Alexander Chernavin [Wed, 6 Nov 2019 14:58:18 +0000 (09:58 -0500)]
interface: send proper link/admin status in event
Type: fix
Change-Id: I7cba9f911abe1ae82d8381a48f65e81b615ede76
Signed-off-by: Alexander Chernavin <achernavin@netgate.com>
Neale Ranns [Wed, 6 Nov 2019 11:17:54 +0000 (11:17 +0000)]
fib: Copy the prefix before use in case the underlying entry reallocs.
Type: fix
all other uses of the fib_entry_get_preifx in the code base don't pass
the prefix into recursive functions.
Change-Id: Ic1c56acd406a733b215ee2fd98b6bed58b490a4f
Signed-off-by: Neale Ranns <nranns@cisco.com>
Carl Smith [Wed, 13 Nov 2019 01:37:39 +0000 (14:37 +1300)]
vcl: Handle newer Glibc (>2.28) where fcntl is actually fcntl64
Glibc 2.28 now provides fcntl64 which is used instead of fcntl
by defining fcntl as fcntl64 in fcntl.h
Type: fix
Change-Id: I87fedfbf3e0d241aafdc920e90f824d71353e0e6
Signed-off-by: Carl Smith <carl.smith@alliedtelesis.co.nz>
Dave Barach [Wed, 13 Nov 2019 22:12:47 +0000 (17:12 -0500)]
dhcp: option 61 add missing type field
Apparently some dhcp servers care about it. Also fixed the unit-test.
Type: fix
Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: If0af70d624f4122b0339f20f84be047053776fe8
Dave Barach [Tue, 12 Nov 2019 22:51:18 +0000 (17:51 -0500)]
vlib: improve vlib "make test" code coverage
Type: test
Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: Idf982fddad9e577595d2e05ac78c39705e9d616d
Dave Wallace [Wed, 13 Nov 2019 17:32:28 +0000 (12:32 -0500)]
build: Revert "build: fix make checkstyle"
This reverts commit
069e2a734cf75f4d151efe49d1efc51bc82cedb2.
Reason for revert: The vpp-verify-checkstyle-master build executor now
runs 'make install-dep'
Type: fix
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: I2ab6bee642b7ed631d2aa06203c76c3d0ca01c9e
Benoît Ganne [Fri, 25 Oct 2019 14:53:10 +0000 (16:53 +0200)]
gtpu: check packet has enough data for gtpu header
Type: fix
Change-Id: I604e4dd2b29962bfcd8e950a0074637dab53c79e
Signed-off-by: Benoît Ganne <bganne@cisco.com>
Damjan Marion [Wed, 13 Nov 2019 09:12:53 +0000 (10:12 +0100)]
virtio: feature arc have higher priority than redirect
Type: fix
Fixes:
8389fb9
Change-Id: Ie159eb444b28b36a7af86049b80fba4e49be93cb
Signed-off-by: Damjan Marion <damarion@cisco.com>
Benoît Ganne [Wed, 6 Nov 2019 13:21:07 +0000 (14:21 +0100)]
crypto: do not crash if no crypto engine loaded
Do not overflow ops_handlers vector.
Type: fix
Change-Id: I8d5e7fb8125a7bd87ecfe6f4f1390fb9f43dad8f
Signed-off-by: Benoît Ganne <bganne@cisco.com>
Florin Coras [Wed, 13 Nov 2019 05:47:41 +0000 (21:47 -0800)]
build: fix make checkstyle
Type: fix
Comment out yamllint for now.
Change-Id: Id40a5aef3fa15b2c6e9d7fe6fd6201923593b4cd
Signed-off-by: Florin Coras <fcoras@cisco.com>
Paul Vinciguerra [Tue, 12 Nov 2019 17:11:00 +0000 (12:11 -0500)]
papi: enhance MACAddress() equality
Allows for comparison without needing str(MACAddress())
Traceback (most recent call last):
File "/vpp/test/test_ip6.py", line 1074, in test_icmpv6_echo
self.assertEqual(ether.dst, self.pg0.remote_mac)
AssertionError: '02:01:00:00:ff:02' != MACAddress(02:01:00:00:ff:02)
Type: feature
Change-Id: Ife1cbfc74d477695d15b33a19da7dd2fa241a348
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
Paul Vinciguerra [Wed, 30 Oct 2019 01:53:25 +0000 (01:53 +0000)]
tap: Move client registration check to top
Type: fix
Change-Id: I33dc4cf7b6c69f74c7bf4971ce59442678b878ef
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
Paul Vinciguerra [Mon, 11 Nov 2019 23:34:59 +0000 (18:34 -0500)]
docs: update logging configuration section.
Type: docs
Change-Id: I6359623b2eadb404fc391e4c4608fff86020f53f
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
Damjan Marion [Tue, 12 Nov 2019 10:00:27 +0000 (11:00 +0100)]
virtio: remove unused code
Type: refactor
Change-Id: I25f1cc3969c6a6ec1384079dc437537acd2ec152
Signed-off-by: Damjan Marion <damarion@cisco.com>
Jon Loeliger [Fri, 8 Nov 2019 21:05:23 +0000 (15:05 -0600)]
interface: Allow VLAN tag-rewrite on non-sub-interfaces too.
This fix was first made in
commit
fdea5c6a00b74971dbb1b7ec4e25839a871006ca
but was subsequently lost in
commit
053204ab039d34a990ff0e14c32ce3b294fcce0e
Added unit test for setting VTR on a non-sub-interface to
help ensure no future regressions of this ability.
Type: fix
Change-Id: I71ce2684fb72383741455829ae2d397ea2e95eae
Signed-off-by: Jon Loeliger <jdl@netgate.com>
Carl Smith [Tue, 12 Nov 2019 01:57:37 +0000 (14:57 +1300)]
vcl: fix nonblocking accept with >1 event in the queue
We discard unwanted events until we get an ACCEPTED.
But if we are non-blocking we need to check the queue
length every time and EAGAIN if empty before waiting.
Type: fix
Signed-off-by: Carl Smith <carl.smith@alliedtelesis.co.nz>
Change-Id: Ie0c7e5cb00f0d37d2e1534f8bb384221ff56f2e3
Neale Ranns [Tue, 12 Nov 2019 17:16:47 +0000 (17:16 +0000)]
ip: IP address and prefix types (moved from LISP)
Type: refactor
Change-Id: I2c6b59013bfd21136a2955442c779685f951932b
Signed-off-by: Neale Ranns <nranns@cisco.com>
Ole Troan [Mon, 14 Oct 2019 21:07:06 +0000 (23:07 +0200)]
papi: add wrapper to validate crc manifest
If a client application is built against 19.08, it can dump the "manifest" of API signatures.
Either the all APIs (--dump) or the APIs it is interested in (--dumpfiltered).
When the developers of said client application wants to verify that it works with VPP 20.01.
It can connect to VPP and --validate the old mainfest file, and will be told a list of
messages (both request and reply) that has changed.
import argparse
from vpp_papi import VPP
import sys
import argparse
parser = argparse.ArgumentParser()
group = parser.add_mutually_exclusive_group()
group.add_argument("--dump", action="store_true")
group.add_argument("--dumpfiltered", action="store_true")
group.add_argument("--validate", action="store_true")
args = parser.parse_args()
vpp = VPP(use_socket=True)
vpp.connect(name='apimanifest')
if args.validate:
# Verify manifest
message_table = eval(sys.stdin.read())
missing = vpp.validate_message_table(message_table)
print ('Changed message signatures: {}'.format(missing))
elif args.dump:
# Output manifest to stdout
print('{}'.format(vpp.dump_message_table()))
elif args.dumpfiltered:
# Output manifest to stdout
filterlist = eval(sys.stdin.read())
print('{}'.format(vpp.dump_message_table_filtered(filterlist)))
vpp.disconnect()
Type: feature
Change-Id: I7e708b36f599ed88e4864970c8593cc2fe5fbf61
Signed-off-by: Ole Troan <ot@cisco.com>
Nathan Skrzypczak [Thu, 7 Nov 2019 16:55:01 +0000 (17:55 +0100)]
session: session enable in multiworker
Having session enable in config file wasn't
working for multiple workers
Type: fix
Change-Id: Ib29ba540a6e1d714e7e470f4c7518e3d266fe7ca
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Florin Coras [Mon, 11 Nov 2019 21:58:34 +0000 (13:58 -0800)]
tls: fix picotls coverity warnings
Type: fix
Change-Id: Ib5c9de9c9053b8339f514ff648a75c3b56b55215
Signed-off-by: Florin Coras <fcoras@cisco.com>
Benoît Ganne [Wed, 6 Nov 2019 13:36:38 +0000 (14:36 +0100)]
bonding: fix non-null terminated vector
Type: fix
Change-Id: Iea7d73a304236b525b95bdad3bfdb41e711f8cdb
Signed-off-by: Benoît Ganne <bganne@cisco.com>
Lijian Zhang [Fri, 27 Sep 2019 08:25:35 +0000 (16:25 +0800)]
crypto: not use vec api with opt_data[VNET_CRYPTO_N_OP_IDS]
opt_data is defined as a array, while in some code, e.g., function
vnet_crypto_get_op_type, it's used as vec.
vec api is not applicable to static arraies.
src/vnet/crypto/crypto.h:234:70: error: address of array 'cm->opt_data' will always evaluate to 'true' [-Werror,-Wpointer-bool-conversion]
vnet_crypto_op_data_t *od = ({ do { if ((0 > 0) && ! ((id) < ((cm->opt_data) ? (((vec_header_t *) (cm->opt_data) - 1)->len) : 0)))
Type: fix
Change-Id: I0b6754406e4216ca975bc1da4b5d4ce293a9bb45
Signed-off-by: Lijian Zhang <Lijian.Zhang@arm.com>
Florin Coras [Fri, 8 Nov 2019 01:00:15 +0000 (17:00 -0800)]
svm: improve fifo segment verbose cli
Type: feature
Also make sure that size for dlmalloc allocated private segments is
accurate.
Change-Id: I6ec81ff99a13dd29b9664d768835a68019f0c96c
Signed-off-by: Florin Coras <fcoras@cisco.com>
Dave Barach [Fri, 8 Nov 2019 13:22:28 +0000 (08:22 -0500)]
vlib: fix handoff queue sequencing bug
Set vm->check_frame_queues after actually enqueuing a frame. Under
obscure circumstances, the code managed to set check_frame_queues so
far in advance that 100 dispatch cycles could elapse before the frame
enqueue succeeded. That resulted in permanent lack of queue service.
Type: fix
Ticket: VPP-1734
Fixes: 18191
Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: If2d398202b4ba2b96581d25e8142daef3f74c9e5
Florin Coras [Wed, 30 Oct 2019 16:22:14 +0000 (09:22 -0700)]
tcp: improve lost rxt heuristic
Type: feature
- retransmit first unacked segment if newer retransmitted packets
are acked
- avoid spurious retransmits if recovery ends with sacked bytes
Change-Id: Ic1b56d22e025822edb7609afb136e47440ea6032
Signed-off-by: Florin Coras <fcoras@cisco.com>
Ole Troan [Wed, 9 Oct 2019 11:33:19 +0000 (13:33 +0200)]
ip: functional interface to ip fragmentation
This provides a functional interface to IP fragmentation.
Allowing external features to fragment. Supports
arbitrary encap size, for e.g. MPLS or inner fragmentation
of tunnels.
This also removed dual loop in MAP that was fundamentally broken.
Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: Ia89ecec8ee3cbe2416edbe87630fdb714898c2a8
Signed-off-by: Ole Troan <ot@cisco.com>
Dave Barach [Sun, 10 Nov 2019 20:46:31 +0000 (15:46 -0500)]
dhcp: ipv6 prefix delegation improvements
Autoconfigure router advertisements for delegated prefixes.
Clean up a longstanding issue. If vpp receives a dhcpv6 renew reply,
do NOT reset per-delegated-prefix timers. That prevented vpp from
sending a solicit to renew the delegation on time. That, in turn
caused the RA code to send advertisements with valid_time =
preferred_time = 0. That causes almost any downstream client to throw
away its delegated address.
Miscellaneous changes
o src/vnet/ip/ip6_neighbor.c - always memset elements allocated from pools
to zero. DGMS.
o Remove debug spew from the ipv6 connection-tracker plugin
Type: feature
Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I428feccdc47efdc413898600e0d62916928a6eb7
Simon Zhang [Mon, 14 Oct 2019 11:41:51 +0000 (19:41 +0800)]
tls: picotls engine basic enabling for TLS
Type: feature
Change-Id: I700d999771d837604dd0571741f4f0bcbec82403
Signed-off-by: Simon Zhang <yuwei1.zhang@intel.com>
Florin Coras [Fri, 8 Nov 2019 23:32:05 +0000 (15:32 -0800)]
session: re-set tx fifo event if out of buffers
Type: fix
Change-Id: I7416e827fbc5c63d082273656441c81dd6246d8a
Signed-off-by: Florin Coras <fcoras@cisco.com>
Florin Coras [Thu, 7 Nov 2019 20:33:12 +0000 (12:33 -0800)]
tcp: avoid retransmits post reset
Type: fix
Change-Id: Ib6a8f5ca597389700e5746f089a5cec7eee65ab5
Signed-off-by: Florin Coras <fcoras@cisco.com>
Dave Barach [Sat, 9 Nov 2019 01:20:17 +0000 (20:20 -0500)]
dhcp: fix dhcpv6 client and dhcpv6 prefix delegation
Keep trying even if the interface in question is not "admin-up,
link-up." In real life, it's normal for link autonegotiation to take a
good fraction of a second. The driver layer takes care of packets sent
to an interface which can't transmit at the moment.
Renew address leases at the preferred renewal time, not at the
expiration time.
Type: fix
Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I68ec1c52cc1f4a8aa256185820748b845e92f7c1
Paul Vinciguerra [Thu, 7 Nov 2019 14:59:39 +0000 (09:59 -0500)]
build: Fix typo introduced in src/plugins/mdata/FEATURE.yaml
Type: fix
Fixes: Ide0bb276659119c59bdbbc8b8155e37562a648b8
Change-Id: I4db18508910d5fe5f5df4d902e15cf19b10c0621
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
Damjan Marion [Thu, 7 Nov 2019 10:32:16 +0000 (11:32 +0100)]
build: use cmake build types
Type: make
Change-Id: If822c85d6ff26982516ea1d597ca81aa84773b2b
Signed-off-by: Damjan Marion <damarion@cisco.com>
Benoît Ganne [Tue, 5 Nov 2019 16:46:17 +0000 (17:46 +0100)]
rdma: fix next node rx redirect
Type: fix
Change-Id: I694db40c3a0361852d01b84c7a45e32e39e9f4af
Signed-off-by: Benoît Ganne <bganne@cisco.com>
Benoît Ganne [Wed, 6 Nov 2019 16:24:51 +0000 (17:24 +0100)]
rdma: fix name auto-generation on create
When creating rdma interface without specifying a name, we need to
generate one instead of NULL.
Type: fix
Change-Id: If41870691dec47e8e673d48ac4b4ddffd2385a03
Signed-off-by: Benoît Ganne <bganne@cisco.com>
Neale Ranns [Thu, 26 Sep 2019 16:20:19 +0000 (16:20 +0000)]
ipsec: remove dedicated IPSec tunnels
APIs for dedicated IPSec tunnels will remain in this release and are
used to programme the IPIP tunnel protect. APIs will be removed in a
future release.
see:
https://wiki.fd.io/view/VPP/IPSec
Type: feature
Change-Id: I0f01f597946fdd15dfa5cae3643104d5a9c83089
Signed-off-by: Neale Ranns <nranns@cisco.com>
Florin Coras [Wed, 6 Nov 2019 23:41:37 +0000 (15:41 -0800)]
vcl: fix epoll connected events sid
Type: fix
Use sid returned by vcl_session_connected_handler instead of trying to
infer it from vpp session handle.
Change-Id: Ic0fbb90ec2bd851b435fc3f2a34265ac9a8ab29f
Signed-off-by: Florin Coras <fcoras@cisco.com>
Damjan Marion [Fri, 8 Nov 2019 12:52:28 +0000 (13:52 +0100)]
tap: add check for vhost-net backend
Type: feature
Change-Id: I402f4c88dee70fbb0b3b61dc4e0a4034d24d8b56
Signed-off-by: Damjan Marion <damarion@cisco.com>
Damjan Marion [Fri, 8 Nov 2019 14:15:11 +0000 (15:15 +0100)]
tap: fix cli parser
Type: fix
Change-Id: I38ee9efd23774cce7790565825527cca9ba6f200
Signed-off-by: Damjan Marion <damarion@cisco.com>
Florin Coras [Thu, 7 Nov 2019 16:26:06 +0000 (08:26 -0800)]
tcp: fix ip check in lookup validation
Type: fix
Change-Id: Ia18632c8fe22bdcfdf3cb48a4234f8703a7ac1d7
Signed-off-by: Florin Coras <fcoras@cisco.com>
Vratko Polak [Fri, 8 Nov 2019 09:32:39 +0000 (10:32 +0100)]
session: add space around ternary operator
Type: style
Change-Id: If28a4959c1d60ab1caf22dbc8b72d9adf7060bd4
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
Ole Troan [Thu, 7 Nov 2019 12:52:21 +0000 (13:52 +0100)]
tests: python3 use byte strings in raw()
Raw('\xaf) and Raw(b'\xaf) are two quite different things in python 2 versus 3.
In most cases this didn't make a difference, apart from those cases where length
of payload actually mattered.
Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: I3cba5c1486e436a3ca8aa10a7b393da75aa9f6b9
Fan Zhang [Mon, 4 Nov 2019 15:56:55 +0000 (15:56 +0000)]
crypto-ipsecmb: improve gcm performance using dedicated API.
This patch improves the GCM encrypt and decrypt performance using
the dedicated API provided by intel-ipsec-mb library. This helps
remove the overhead caused by the JOB API.
Type: feature
Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Change-Id: I00c9ab3ed9f2660093fb2584feb8bca4979acee8
Damjan Marion [Wed, 30 Oct 2019 17:07:35 +0000 (18:07 +0100)]
pmalloc: always lock pages
Type: feature
Change-Id: I5bbf37969c9c51e40a013d1fc3ab966838eeb80d
Signed-off-by: Damjan Marion <damarion@cisco.com>
Paul Vinciguerra [Fri, 26 Oct 2018 12:55:18 +0000 (05:55 -0700)]
build: Fix 3rd party CI systems.
Commit https://gerrit.fd.io/r/#/c/15525/ breaks 3rd party CI jobs.
This suggests an alternative solution that supports both use cases.
Type: feature
Change-Id: I966210cf4594651735e6a8bffa32dd52b4539a13
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
Christian Hopps [Sun, 3 Nov 2019 05:02:18 +0000 (01:02 -0400)]
dpdk: ipsec gcm fixes
- Fix AAD initialization. With use-esn the aad data consists of the SPI
and the 64-bit sequence number in big-endian order. Fix the u32 swapped
code.
- Remove salt-reinitialization. The GCM code seems inspired by the GCM
RFCs recommendations on IKE keydata and how to produce a salt
value (create an extra 4 octets of keying material). This is not IKE
code though and the SA already holds the configured salt value which
this code is blowing away. Use the configured value instead.
Type: fix
Change-Id: I5e75518aa7c1d91037bb24b2a40fe4fc90bdfdb0
Signed-off-by: Christian Hopps <chopps@labn.net>
Fan Zhang [Mon, 4 Nov 2019 16:01:59 +0000 (16:01 +0000)]
crypto: fix crypto perf unittest crash
Type: fix
crypto perf test crashes for key size different than 16 bytes.
This patch fixes the issue
Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Change-Id: Ic8a8ca83ca189c879815dc5d065b8c6f7826cd41
Florin Coras [Mon, 4 Nov 2019 22:39:33 +0000 (14:39 -0800)]
tcp: fix retransmit with no sacks
Type: fix
Change-Id: I6f7df0d358f57f7feadb9b7a3fcffb99558b2af8
Signed-off-by: Florin Coras <fcoras@cisco.com>
Nathan Skrzypczak [Thu, 7 Nov 2019 15:00:57 +0000 (16:00 +0100)]
api: fix dead client scan heap issue
Type: fix
On multiworker setup when an app client dies, the
vec_reset_length call fails the assert in
clib_mem_is_heap_object. Same thing might happen for
the clib_warnings
Change-Id: I369f9d2dbe60407c84994a4e8d25f6df7848ca93
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Nathan Skrzypczak [Wed, 9 Oct 2019 12:41:48 +0000 (14:41 +0200)]
session: Add crypto context
Type: feature
Crypto contexts are a per protocol cache for storing
crypto related connection data. They share a common
interface with generic properties : cert, key, engine
and session refcount.
Change-Id: I8165e05afbcc6ecb3777b6abeab62c369d2fe9ed
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Nathan Skrzypczak [Wed, 6 Nov 2019 13:12:23 +0000 (14:12 +0100)]
hsa: Add ckpair & crypto engine in vpp_echo
Type: feature
* vpp echo adds and dels a cert and key pair for each run
* it passes the crypto engine to be used (openssl, picotls, vpp, mbedtls)
Change-Id: Iaba1de2e6abb510e6c4edbe84b2324b2f4843f26
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Nathan Skrzypczak [Wed, 6 Nov 2019 15:33:37 +0000 (16:33 +0100)]
quic: Add support for ckpair & crypto engine
quic choice used ckpair is now the one passed to
connect or listen via mq.
The crypto engine is chosen with the value passed to
connect or listen via mq:
* If NONE(0) is provided, we default to quic_main.
default_crypto_engine (picotls at init, can be changed
via debug cli : quic set crypto api [crypto engine])
* If PICTOLS/VPP is provided, use this one
* Other values return an error
Type: feature
Change-Id: Ifab893d6d03c83f202e6c7e7a9936f546a4b1530
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Nathan Skrzypczak [Wed, 6 Nov 2019 13:47:40 +0000 (14:47 +0100)]
session: ckpair store & crypto engine as mq params
Type: feature
This patch adds the logic to pass to connect &
listen msg in the mq the following parameters
* ckpair index
* crypto engine (for now only used in quic)
Change-Id: I7213d8b581cb4532a9a6b18c4b3fe021287b7733
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Nathan Skrzypczak [Thu, 7 Nov 2019 09:29:24 +0000 (10:29 +0100)]
session: fix app attach on error
Type: fix
Change-Id: I57b3c76515544ba3655690b37e0dacb47734ba6d
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Florin Coras [Thu, 7 Nov 2019 00:24:29 +0000 (16:24 -0800)]
svm: fix byte accounting when allocating fifo header
Type: fix
Change-Id: Ie50625271d257da814445ce13c2e6cd98986d523
Signed-off-by: Florin Coras <fcoras@cisco.com>
Aleksander Djuric [Thu, 31 Oct 2019 11:35:21 +0000 (14:35 +0300)]
interface: shmemioerror while getting name_filter arg
Type: fix
Signed-off-by: Aleksander Djuric <aleksander.djuric@gmail.com>
Change-Id: I5e0eb7024d208040d79e9d6db863f41e2ecf4ee6
Signed-off-by: Ole Troan <ot@cisco.com>
Andrew Yourtchenko [Tue, 5 Nov 2019 18:38:08 +0000 (19:38 +0100)]
tests: make threads in punt tests join when finished
The
42693521f6046997133c8f63bcfc9d615d96f69d added the timeout
to the child process join + print the name of the offending
child process.
Upon testing the issue furher, appeared the offenders were
always the same - punt tests. The processes running them
were stuck trying to acquire lock, even if all
the user-accessible execution has finished. Some searching
revealed that one needs to tread carefully when dealing
with Thread and Multiprocessing at the same time.
punt tests used threads but did not call thread.join. Somehow
it worked in some cases but not the others. This fix makes
the threads exit cleanly - which also makes the timeouts
waiting for the process to join disappear.
Type: test
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
Change-Id: I05d99bb48a9987544bbfe45118755c09d7867aa0
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
Srikanth Akula [Thu, 7 Nov 2019 02:53:13 +0000 (18:53 -0800)]
tcp: validate the IP address while checking TCP connection
Type: feature
Along with the port information, we need to validate the IP address details as well.
This is very useful in the case port re-use scenario
Signed-off-by: Srikanth Akula <srakula@cisco.com>
Change-Id: I11e1ebcd3e56aae47ac235a89606a83c928aa6bb
Dave Barach [Wed, 6 Nov 2019 21:58:48 +0000 (16:58 -0500)]
misc: add lcov scripts, README.md
See extras/lcov
Type: feature
Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: Id229436bd94cd18bcd0f3a3d938eae2b28d5b1f5
John DeNisco [Wed, 6 Nov 2019 18:58:28 +0000 (10:58 -0800)]
docs: Rewrite the what is VPP (first) section, also fix the build
Signed-off-by: John DeNisco <jdenisco@cisco.com>
Change-Id: Ifb558171f8976a721703e74afea997d006273b5f
Signed-off-by: Dave Barach <dave@barachs.net>
Paul Vinciguerra [Tue, 5 Nov 2019 20:34:36 +0000 (15:34 -0500)]
docs: add spellcheck to 'make docs' sphinx docs
The CI gate will fail if there are typos in the docs.
writing output... [ 21%] events/Summits/OpensourceSummit...
writing output... [ 22%] events/Summits/UKNO/2017_04_30_...
featuresbyrelease/vpp16.06.rst:34:Rasberry:vpp16.06
writing output... [100%] usecases/vppinazure
Spelling checker messages written to /vpp/docs/_build/html/output.txt
Warning, treated as error:
Found 1 misspelled words
Makefile:31: recipe for target 'html' failed
make[1]: *** [html] Error 2
make[1]: Leaving directory '/vpp/docs'
If you introduce a term that is not recognized,
please add it to custom dictionary at
docs/spelling_wordlist.txt.
Type: feature
Change-Id: Id49be4fbee617f544f1ab8e78e7de8a4df36448b
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
Damjan Marion [Wed, 6 Nov 2019 14:40:21 +0000 (15:40 +0100)]
dpdk: conditionally revert rte_vfio_dma_map patch
DPDK have bug which will be fixed in 19.11.
Type: fix
Change-Id: I6c0058928e5991d61b3c5fcba706f35e6886b0f2
Signed-off-by: Damjan Marion <damarion@cisco.com>
Paul Vinciguerra [Sun, 3 Nov 2019 23:44:31 +0000 (18:44 -0500)]
build: add yaml file linting to make checkstyle
Type: feature
fts and trex rely on yaml config files. Verify
that they are valid, so comitters can catch
errors early.
Change-Id: Ide0bb276659119c59bdbbc8b8155e37562a648b8
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
Nathan Skrzypczak [Tue, 5 Nov 2019 13:47:48 +0000 (14:47 +0100)]
quic: free qctx after udp cleanup
Type: fix
As udp_session.opaque is qctx index, qctx free
needs to happen after session cleanup. This patch
also introduces
* assert timer stop on ctx free
* debug cli for listing quic ctx
Change-Id: I3a58d226b094a0bbdf090b4f3eccbc2e11c6329b
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Tarun Gupta [Tue, 5 Nov 2019 00:35:59 +0000 (16:35 -0800)]
tcp: IPv6 flow label support
Type:feature
For cases when proxy is in use IPv6 flow label received in origin pkt needs to be added
to ipv6 header of outgoing pkts from proxy to original destination and vice versa.
Signed-off-by: Tarun Gupta <tarungup@cisco.com>
Change-Id: I143f7e67237c0f865333078628a016b50ad5e630
Signed-off-by: Tarun Gupta <tarungup@cisco.com>
Renato Botelho do Couto [Thu, 31 Oct 2019 18:31:07 +0000 (13:31 -0500)]
misc: Fix python scripts shebang line
Type: fix
Since CentOS 8, RPM build script doesn't accept '#!/usr/bin/env python'
as a valid shebang line. It requires scripts to explicitly chose
between python2 or python3.
Change all to use python3 as suggested by Paul Vinciguerra.
Depends-On: https://gerrit.fd.io/r/23170
Signed-off-by: Renato Botelho do Couto <renato@netgate.com>
Change-Id: Ie72af9f60fd0609e07f05b70f8d96e738b2754d1
Paul Vinciguerra [Fri, 1 Nov 2019 19:07:32 +0000 (15:07 -0400)]
docs: fix 'make doxygen' under python3
The 'make doxygen' component has this cool vpp specific customization called siphon.
This updates the siphon component so that 'make doxygen' works with python3.
Needed-By: https://gerrit.fd.io/r/23159
Type: docs
Change-Id: Ie29f1602bf3460b637058acbb0a2f19b128a8824
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
Paul Vinciguerra [Fri, 1 Nov 2019 06:34:32 +0000 (02:34 -0400)]
docs: fix issues with src/scripts/fts.py
- packaging issue
- yaml deprecation
- yaml formatting
Type: fix
Change-Id: Ia8808cbc83271a3067164f2db2418f071b35607a
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
Filip Varga [Tue, 5 Nov 2019 13:14:08 +0000 (14:14 +0100)]
nat: NAT udp counter & unit test fixes
Ticket: VPP-1798
Type: fix
Change-Id: I42f02d5824575720e95b9fc99cfa864252221a82
Signed-off-by: Filip Varga <fivarga@cisco.com>
Florin Coras [Wed, 23 Oct 2019 02:01:39 +0000 (19:01 -0700)]
session tcp: refactor pacer time
Type: refactor
Change-Id: Ic1c3e1f7987702cd88972acc34849dc1f585d5fe
Signed-off-by: Florin Coras <fcoras@cisco.com>
Neale Ranns [Wed, 30 Oct 2019 17:34:14 +0000 (17:34 +0000)]
ip: Fragmentation fixes
Type: fix
if the packet is about to be fragmented, then don't call any of the
actions that expect the rewrite to have been written.
1) don't double count packets thru the adjacency (original & fragments)
2) don't double decrement the TTL for fragments
3) return to ip4-midchain post ip-frag if that's where we started.
4) only run midchain/mcast fixups if not fragmenting (if no errors)
Change-Id: Ib2866787a42713ee5871b87b597d8f74b901044b
Signed-off-by: Neale Ranns <nranns@cisco.com>
Ryujiro Shibuya [Tue, 5 Nov 2019 07:24:32 +0000 (07:24 +0000)]
tcp: correct validity check return value
Type: fix
Signed-off-by: Ryujiro Shibuya <ryujiro.shibuya@owmobility.com>
Change-Id: Ib59bf664d8da20516d8f16d716c5e8698675da4b
Klement Sekera [Tue, 5 Nov 2019 11:18:25 +0000 (11:18 +0000)]
tests: support setting random seed
Log the random seed used when running tests and provide means to re-use
it in a later run.
Type: feature
Change-Id: I18d2a36ee802b901d4cca5577df41cec07f09cc0
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Jakub Grajciar [Tue, 5 Nov 2019 09:58:00 +0000 (10:58 +0100)]
libmemif: reset number of queues on disconnect
Type: fix
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
Change-Id: If4df47b1109ac90d4d5834b3aa7d326f6b3761d2
Filip Varga [Mon, 21 Oct 2019 16:18:00 +0000 (18:18 +0200)]
nat: respect udp checksum
Type: fix
Change-Id: I732be02d2e2b854eb589c3fa10f980ef2dbe8dfc
Signed-off-by: Filip Varga <fivarga@cisco.com>
Andrew Yourtchenko [Tue, 5 Nov 2019 00:08:26 +0000 (01:08 +0100)]
tests: avoid test runner hanging on child test process join
In parallel test, the single process is spawning
a bunch of child processes running the tests,
and communicates to them. When the child process
signals that it has finished, the parent calls
child.join(). Sometimes this join never returns.
The result is a lot of defunct python processes,
and the test run just hangs.
I have seen this failure intermittently a fair bit
in a busy containerized environment, and by chance,
consistently reproduced it on a Thinkpad X280
with 8G of RAM and Ubuntu 19.04, which allowed
to diagnose it.
Type: test
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
Change-Id: If0a3110fc2d23e73d77c310d61c3ea90a2b53610
Benoît Ganne [Fri, 25 Oct 2019 13:26:27 +0000 (15:26 +0200)]
ipsec: ipsec-input: check for too-short packets
Make sure packet is big enough before processing it.
Policy matching is done speculatively but is discarded if packet is too
short.
Type: fix
Change-Id: I647db2c4e568b0d9bf2cfd5056e1b1c2e25132fe
Signed-off-by: Benoît Ganne <bganne@cisco.com>
Dave Wallace [Fri, 1 Nov 2019 20:36:28 +0000 (20:36 +0000)]
quic: enhance error reporting
Type: refactor
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: I710d00e4a6c4356d0f00f7592bf14b55596ec6ae
Dave Wallace [Fri, 1 Nov 2019 18:41:29 +0000 (14:41 -0400)]
quic: fix quicly rtt time skew
- This patch to quicly fixes an intermittent failure
in the rtt calculation when there is a time skew
Type: fix
Change-Id: If89c47401ee75c88f0eb65ae888b6914695b2aec
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Dave Wallace [Wed, 30 Oct 2019 23:40:33 +0000 (23:40 +0000)]
quic: remove redundant function calls
- session_transport_delete_notify() is called before
and inside quic_connection_delete()
Type: fix
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: I5c79a3269e36c4aab5aa99fdfdac06c1334f0f6f