Commit Graph

7768 Commits

Author SHA1 Message Date
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
Neale Ranns
12989b5388 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>
2019-11-08 20:06:56 +00:00
Florin Coras
f1653e62fe 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>
2019-11-08 18:12:49 +00:00
Damjan Marion
39807d02c9 tap: add check for vhost-net backend
Type: feature

Change-Id: I402f4c88dee70fbb0b3b61dc4e0a4034d24d8b56
Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-11-08 18:11:24 +00:00
Damjan Marion
0ba86cb1bd tap: fix cli parser
Type: fix

Change-Id: I38ee9efd23774cce7790565825527cca9ba6f200
Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-11-08 18:10:26 +00:00
Florin Coras
07df79150f tcp: fix ip check in lookup validation
Type: fix

Change-Id: Ia18632c8fe22bdcfdf3cb48a4234f8703a7ac1d7
Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-11-08 16:12:42 +00:00
Vratko Polak
4f59985029 session: add space around ternary operator
Type: style

Change-Id: If28a4959c1d60ab1caf22dbc8b72d9adf7060bd4
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
2019-11-08 13:27:30 +00:00
Ole Troan
770a0deaad 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
2019-11-08 13:25:56 +00:00
Fan Zhang
76a36e83e3 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
2019-11-07 22:34:56 +00:00
Damjan Marion
801c7016ad pmalloc: always lock pages
Type: feature

Change-Id: I5bbf37969c9c51e40a013d1fc3ab966838eeb80d
Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-11-07 22:27:28 +00:00
Paul Vinciguerra
86a9441c2c 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>
2019-11-07 21:40:47 +00:00
Christian Hopps
d58419f19b 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>
2019-11-07 21:39:40 +00:00
Fan Zhang
bc2e640db7 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
2019-11-07 21:34:30 +01:00
Florin Coras
bf1f8b7f28 tcp: fix retransmit with no sacks
Type: fix

Change-Id: I6f7df0d358f57f7feadb9b7a3fcffb99558b2af8
Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-11-07 19:37:25 +00:00
Nathan Skrzypczak
5ed3fe3dd4 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>
2019-11-07 18:29:31 +00:00
Nathan Skrzypczak
de6caf481c 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>
2019-11-07 17:30:39 +00:00
Nathan Skrzypczak
7c40a3837a 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>
2019-11-07 17:29:31 +00:00
Nathan Skrzypczak
dcbbf2833d 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>
2019-11-07 17:18:22 +00:00
Nathan Skrzypczak
45ec9f49bc 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>
2019-11-07 17:13:17 +00:00
Nathan Skrzypczak
9d3e1b433f session: fix app attach on error
Type: fix

Change-Id: I57b3c76515544ba3655690b37e0dacb47734ba6d
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2019-11-07 16:46:43 +00:00
Florin Coras
c9dff181c8 svm: fix byte accounting when allocating fifo header
Type: fix

Change-Id: Ie50625271d257da814445ce13c2e6cd98986d523
Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-11-07 16:09:06 +00:00
Aleksander Djuric
c12eae73f9 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>
2019-11-07 14:39:02 +00:00
Andrew Yourtchenko
3f8c87132d tests: make threads in punt tests join when finished
The 42693521f6 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>
2019-11-07 11:51:16 +00:00
Srikanth Akula
cf4c2102d9 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
2019-11-06 18:59:19 -08:00
Dave Barach
8d74caa0a2 misc: add lcov scripts, README.md
See extras/lcov

Type: feature

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: Id229436bd94cd18bcd0f3a3d938eae2b28d5b1f5
2019-11-06 23:58:23 +00:00
John DeNisco
c96d618a5d 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>
2019-11-06 16:15:49 -05:00
Paul Vinciguerra
340c15c6ed 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>
2019-11-06 17:53:42 +00:00
Damjan Marion
4d11b6ceca 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>
2019-11-06 17:36:42 +00:00
Paul Vinciguerra
6b0dd55024 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>
2019-11-06 16:40:11 +00:00
Nathan Skrzypczak
7f39e91fe5 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>
2019-11-06 14:08:32 +00:00
Tarun Gupta
2089c69efb 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>
2019-11-06 00:42:41 +00:00
Renato Botelho do Couto
ead1e536d6 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
2019-11-05 21:08:59 +00:00
Paul Vinciguerra
464e5e0bfe 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>
2019-11-05 21:08:27 +00:00
Paul Vinciguerra
ea1a65135e 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>
2019-11-05 20:47:18 +00:00
Filip Varga
5854b43de4 nat: NAT udp counter & unit test fixes
Ticket: VPP-1798
Type: fix

Change-Id: I42f02d5824575720e95b9fc99cfa864252221a82
Signed-off-by: Filip Varga <fivarga@cisco.com>
2019-11-05 20:45:06 +00:00
Florin Coras
a8e71c8981 session tcp: refactor pacer time
Type: refactor

Change-Id: Ic1c3e1f7987702cd88972acc34849dc1f585d5fe
Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-11-05 15:50:37 +00:00
Neale Ranns
0b6a857d85 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>
2019-11-05 15:34:00 +00:00
Ryujiro Shibuya
3ea17d54a9 tcp: correct validity check return value
Type: fix

Signed-off-by: Ryujiro Shibuya <ryujiro.shibuya@owmobility.com>
Change-Id: Ib59bf664d8da20516d8f16d716c5e8698675da4b
2019-11-05 15:15:18 +00:00
Klement Sekera
45a95dd782 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>
2019-11-05 13:07:48 +00:00
Jakub Grajciar
718a19b8f9 libmemif: reset number of queues on disconnect
Type: fix

Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
Change-Id: If4df47b1109ac90d4d5834b3aa7d326f6b3761d2
2019-11-05 12:55:51 +00:00
Filip Varga
16572355c9 nat: respect udp checksum
Type: fix

Change-Id: I732be02d2e2b854eb589c3fa10f980ef2dbe8dfc
Signed-off-by: Filip Varga <fivarga@cisco.com>
2019-11-05 12:46:41 +00:00
Andrew Yourtchenko
42693521f6 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
2019-11-05 09:06:15 +00:00
Benoît Ganne
f7f49640bb 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>
2019-11-05 08:40:54 +00:00