Commit Graph

7810 Commits

Author SHA1 Message Date
Dave Barach
c17fc44735 vlib: improve code coverage in src/vlib
Type: test

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I2dc4c09730f77931a2b484a6dd5dc669068f8e57
2019-11-18 17:17:40 -05:00
Dave Barach
920180e5e0 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
2019-11-18 15:03:21 +00:00
Neale Ranns
d14fccd6d5 ipsec: Coverity warnings
Type: fix

Signed-off-by: Neale Ranns <nranns@cisco.com>
Change-Id: I6bb6c6be62f98ac9a059469c81a5f4476b96e96e
2019-11-18 12:48:32 +00:00
Dave Barach
210c74531c nsim: add FEATURE.yaml
Type: docs

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I75d1efc503135bdc224f563b4e02b449904bfa08
2019-11-17 18:39:07 -05:00
Alexander Chernavin
845f51ffe2 bfd: allow IPv6 link-local address as local address
Type: fix

Change-Id: Ia3dacd2628591f7ba9710e8e4d68df97ae21935c
Signed-off-by: Alexander Chernavin <achernavin@netgate.com>
2019-11-16 18:42:17 +00:00
Florin Coras
52be67435e 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>
2019-11-16 18:39:36 +00:00
Dave Wallace
504d023d3b 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>
2019-11-16 14:23:38 +00:00
Dave Wallace
47e092733c 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
2019-11-15 16:58:48 -05:00
Dave Wallace
e790690607 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>
2019-11-15 16:39:35 +00:00
Neale Ranns
1976f36b09 tests: Add UT to test incomplete MPLS adjacencies send ARP requests
Type: test

Change-Id: I81e07233aec54c786e4e9beb8c4f06d0a3dca90f
Signed-off-by: Neale Ranns <nranns@cisco.com>
2019-11-15 16:12:54 +00:00
Neale Ranns
efd7bc2b1c tests: Remove the unrequired VPP IP address/prefix class wrappers
Type: refactor

Change-Id: I204f3f8eebc5f5d5a377e91262f91c615fd00168
Signed-off-by: Neale Ranns <nranns@cisco.com>
2019-11-15 13:19:20 +00:00
Aleksander Djuric
5ae7f0db43 ikev2: add definitions for libssl
Type: fix

Signed-off-by: Aleksander Djuric <aleksander.djuric@gmail.com>
Change-Id: I2fe36e2e4e8ce2906a6573301c7fca3cbab571c3
2019-11-14 19:52:10 +00:00
Aleksander Djuric
50c99b4a86 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>
2019-11-14 19:38:53 +00:00
Andy Gospodarek
c3731ac89d 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
2019-11-14 19:31:50 +00:00
Damjan Marion
f41244f423 virtio: refactor virtio-pci logging
Type: refactor

Change-Id: I34306c1206b2bf5f521be6c6b78074ccf9259a08
Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-11-14 17:54:51 +00:00
Alexander Chernavin
aa27dcb84c interface: send proper link/admin status in event
Type: fix

Change-Id: I7cba9f911abe1ae82d8381a48f65e81b615ede76
Signed-off-by: Alexander Chernavin <achernavin@netgate.com>
2019-11-14 16:24:33 +00:00
Neale Ranns
320dfcf2aa 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>
2019-11-14 12:24:58 +00:00
Carl Smith
e16707b5b2 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>
2019-11-14 00:34:37 +00:00
Dave Barach
211b9f6ad3 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
2019-11-13 17:13:26 -05:00
Dave Barach
d9ca7c9604 vlib: improve vlib "make test" code coverage
Type: test

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: Idf982fddad9e577595d2e05ac78c39705e9d616d
2019-11-13 20:59:45 +00:00
Dave Wallace
ed32c6391f build: Revert "build: fix make checkstyle"
This reverts commit 069e2a734c.

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
2019-11-13 17:45:24 +00:00
Benoît Ganne
318fbfe89d gtpu: check packet has enough data for gtpu header
Type: fix

Change-Id: I604e4dd2b29962bfcd8e950a0074637dab53c79e
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2019-11-13 15:51:44 +00:00
Damjan Marion
06c194d91b virtio: feature arc have higher priority than redirect
Type: fix
Fixes: 8389fb9

Change-Id: Ie159eb444b28b36a7af86049b80fba4e49be93cb
Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-11-13 15:26:22 +00:00
Benoît Ganne
6545df7913 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>
2019-11-13 14:48:48 +00:00
Florin Coras
069e2a734c build: fix make checkstyle
Type: fix

Comment out yamllint for now.

Change-Id: Id40a5aef3fa15b2c6e9d7fe6fd6201923593b4cd
Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-11-13 12:51:07 +00:00
Paul Vinciguerra
6af62565e3 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>
2019-11-13 09:43:04 +00:00
Paul Vinciguerra
44d06916b9 tap: Move client registration check to top
Type: fix

Change-Id: I33dc4cf7b6c69f74c7bf4971ce59442678b878ef
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
2019-11-12 23:52:36 +00:00
Paul Vinciguerra
867b9ec6ab docs: update logging configuration section.
Type: docs

Change-Id: I6359623b2eadb404fc391e4c4608fff86020f53f
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
2019-11-12 20:56:22 +00:00
Damjan Marion
adb71a74d9 virtio: remove unused code
Type: refactor

Change-Id: I25f1cc3969c6a6ec1384079dc437537acd2ec152
Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-11-12 20:53:51 +00:00
Jon Loeliger
9485d99bd3 interface: Allow VLAN tag-rewrite on non-sub-interfaces too.
This fix was first made in
    commit fdea5c6a00
but was subsequently lost in
    commit 053204ab03

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>
2019-11-12 20:37:55 +00:00
Carl Smith
592a909a30 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
2019-11-12 19:35:37 +00:00
Neale Ranns
ea93e48cf6 ip: IP address and prefix types (moved from LISP)
Type: refactor

Change-Id: I2c6b59013bfd21136a2955442c779685f951932b
Signed-off-by: Neale Ranns <nranns@cisco.com>
2019-11-12 18:56:04 +00:00
Ole Troan
c046d709e1 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>
2019-11-12 17:59:18 +00:00
Nathan Skrzypczak
31bd035621 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>
2019-11-12 17:50:13 +00:00
Florin Coras
55a9dacbb8 tls: fix picotls coverity warnings
Type: fix

Change-Id: Ib5c9de9c9053b8339f514ff648a75c3b56b55215
Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-11-12 17:21:51 +00:00
Benoît Ganne
a03c7d5b92 bonding: fix non-null terminated vector
Type: fix

Change-Id: Iea7d73a304236b525b95bdad3bfdb41e711f8cdb
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2019-11-12 16:57:52 +00:00
Lijian Zhang
b15d796dbf 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>
2019-11-12 16:57:11 +00:00
Florin Coras
f8461bfb48 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>
2019-11-12 01:37:07 +00:00
Dave Barach
320998a812 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
2019-11-11 19:03:15 +00:00
Florin Coras
b3dce89a76 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>
2019-11-11 18:45:14 +00:00
Ole Troan
eb284a1f8f 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>
2019-11-11 12:33:36 +00:00
Dave Barach
d318a996b7 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
2019-11-10 15:54:28 -05:00
Simon Zhang
f83194c2f4 tls: picotls engine basic enabling for TLS
Type: feature

Change-Id: I700d999771d837604dd0571741f4f0bcbec82403
Signed-off-by: Simon Zhang <yuwei1.zhang@intel.com>
2019-11-10 18:44:44 +00:00
Florin Coras
aa43914df6 session: re-set tx fifo event if out of buffers
Type: fix

Change-Id: I7416e827fbc5c63d082273656441c81dd6246d8a
Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-11-10 03:33:31 +00:00
Florin Coras
fd4c3fe364 tcp: avoid retransmits post reset
Type: fix

Change-Id: Ib6a8f5ca597389700e5746f089a5cec7eee65ab5
Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-11-10 00:22:09 +00:00
Dave Barach
20b962d3e4 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
2019-11-09 17:28:14 +00:00
Paul Vinciguerra
3c80c106a8 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>
2019-11-09 13:44:25 +00:00
Damjan Marion
2baa115da3 build: use cmake build types
Type: make

Change-Id: If822c85d6ff26982516ea1d597ca81aa84773b2b
Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-11-08 22:57:47 +00:00
Benoît Ganne
972d71da86 rdma: fix next node rx redirect
Type: fix

Change-Id: I694db40c3a0361852d01b84c7a45e32e39e9f4af
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2019-11-08 20:55:41 +00:00
Benoît Ganne
a50892e150 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>
2019-11-08 20:55:02 +00:00