Compare commits

...

47 Commits

Author SHA1 Message Date
Benoît Ganne 2ef2ac780e ipsec: fix AES CBC IV generation (CVE-2022-46397)
For AES-CBC, the IV must be unpredictable (see NIST SP800-38a Appendix
C). Chaining IVs like is done by ipsecmb and native backends for the
VNET_CRYPTO_OP_FLAG_INIT_IV is fully predictable.
Encrypt a counter as part of the message, making the (predictable)
counter-generated IV unpredictable.

Fixes: VPP-2037
Type: fix

Change-Id: If4f192d62bf97dda553e7573331c75efa11822ae
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2023-02-07 18:30:24 +01:00
Benoît Ganne bb25fbf28c rdma: fix rdma-core install
We should not install symlinks to local build directory.

Type: fix

Change-Id: I81e624dd5775ec9c5dd8c58f578ee51c5acfef73
Signed-off-by: Benoît Ganne <bganne@cisco.com>
(cherry picked from commit 521a9f8eb9)
2021-11-30 21:09:30 +00:00
Dave Wallace 90e6edf15c build: Remove boost dependencies from VOM
- VOM was deprecated in VPP 21.06, but the boost library
  dependencies did not get cleaned up.

Type: make

Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: I0fb860a7a37676c1a1a0981c91f383882d9a820a
(cherry picked from commit bfcd239682)
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2021-11-30 16:01:41 -05:00
Fan Zhang bb7418cf9b dpdk: fix missing symbol
Type: fix

This patch fixes the missing symbol of dpdk_plugin.so when
creating symmetric key. The solution is to add dependency
of libssl to dpdk cryptodev and disable cryptodev engine
when libssl is not presented.

Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Change-Id: I30aa6e3e3af1faefa82883bad613e1d82235a2ec
(cherry picked from commit 3f3da0d27d)
2021-07-07 08:58:27 +00:00
Andrew Yourtchenko fc83f8cc67 misc: 21.06 Release Notes
Change-Id: Iedd1263a971e50aceb2d579982484dd8873814dc
Type: docs
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2021-06-30 13:11:13 +00:00
Florin Coras 3001c0344e session: free ctrl event data on connect rpc
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I56c4682aef59ed0e69073f9001341c425e65bd48
(cherry picked from commit 595724a490)
2021-06-29 21:26:59 +00:00
wanghanlin f68dcb720c vcl: Don't use app_socket_api to notify VPP in parent when child exited
Type: fix

Signed-off-by: wanghanlin <wanghanlin@corp.netease.com>
Change-Id: Icd2fc3cc2d0a0a6060abfb262044cf9e09ab4ba2
(cherry picked from commit b940fd4d5a)
2021-06-29 18:49:15 +00:00
Florin Coras 803ac6389d vcl: epoll fix postponed evt handling
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I3d208f8ef4638e7557929f4b2bca4d640af85baa
(cherry picked from commit 87f7600dd6)
2021-06-29 14:32:18 +00:00
Arthur de Kerhor e19fef7c88 stats: fix race conditions in vpp-api stats client
Type: fix

Signed-off-by: Arthur de Kerhor <arthurdekerhor@gmail.com>
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: Ie5c197f6ec0d41d5e405b22662701d83ad94d29e
(cherry picked from commit c9ae8cfacc)
2021-06-25 08:35:55 -04:00
Florin Coras c5111d4fa0 session: avoid reordering unlisten and connect msg
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ibe32f7965f8cf457c39845713b029c8a4647ee55
(cherry picked from commit c53eb72931)
2021-06-22 23:31:20 +00:00
Dave Barach 0a4b9ad148 vlib: fix coverity warning
Type: fix

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: Ib563e2c09d46cc26fb983ffde3d5fcb88166f6a5
(cherry picked from commit bfb9a66fab)
2021-06-21 18:45:11 +00:00
Florin Coras 1cb93827f9 vcl: fix worker cleanup
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I575068df56623f24c0290fa42b8d301548a089d4
(cherry picked from commit cba215dad3)
2021-06-17 19:23:04 +00:00
jxm d1fd73a93d tls: increase engine bits room in handle to support custom engine type
Type: improvement
Signed-off-by: jxm <jiangxiaoming@outlook.com>
Change-Id: I80a51e841f9727b68d1de713b6b6d51675ef53c5
(cherry picked from commit 975fde82b1)
2021-06-17 17:41:39 +00:00
Florin Coras a95292ffdb vcl: fix fifo sharing
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Iec1fe8315a057214901250d5fb06d1c1e33dda46
(cherry picked from commit 8eb8d50ecf)
2021-06-16 23:25:44 +00:00
Florin Coras 8b297dbceb session: fix listener ct transport retrieval on accept
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ied2608e7a28c59c908803ca676abbe93072fadb8
(cherry picked from commit ba02641cc7)
2021-06-14 19:46:02 +00:00
Florin Coras a34aad732b tcp: fix proto in port reuse check
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I338e61654a62ed6308ecd8bb15e1a8b13cd859b9
(cherry picked from commit 41a6fbada1)
2021-06-14 15:54:10 +00:00
Dave Barach 6b6f413b5c vlib: fix dangling reference in node_by_name hash
When recycling a debug CLI process node, unix_cli_file_add() needs to
delete and recreate the related node_by_name hash table entry.

Type: fix

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I635da4918509d5b22eae37627c2d9b3608380ca6
(cherry picked from commit 52c33d60bc)
2021-06-13 17:43:18 +00:00
Damjan Marion 6510663c7a memif: fix crash with zero-copy slave
Type: fix
Change-Id: I456cc0b0a6f2dc32b14791baf9d4a7f67279e8df
Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-06-11 17:38:03 +00:00
Florin Coras 3558a9a0ba session: half-open free only on main thread
TCP and (D)TLS clean up half-opens on main without a lock/barrier so
cleanup initiated from first worker, e.g., cut-throughs, can corrupt the
session pool.

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I2e5162831c0e201b22454f17fe55bfac44b85fa9
(cherry picked from commit 6bd54caf46)
2021-06-11 16:16:24 +00:00
Dave Barach 7dabce4024 docs: cleanup, remove stale material
Point https://fd.io/docs/vpp/master/links/index.html at docs.fd.io/vpp
instead of at one specific stale release

Remove https://fd.io/docs/vpp/master/featuresbyrelease/index.html

Remove https://fd.io/docs/vpp/master/events/index.html

Remove dead projects from
https://fd.io/docs/vpp/master/relatedprojects/index.html

Remove unsupported distros from
https://fd.io/docs/vpp/master/whatisvpp/supported.html

Reduce (doxygen) list of test framework doc files to actively
supported releases

Type: docs

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I179966fbbe09ac123e5f2647787a8dea93190b5c
(cherry picked from commit 3db2c670a1)
2021-06-11 14:00:42 +00:00
Florin Coras 50797cda3a vcl: touch fifo on epoll del only if session open
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I0971c18a183319d09486459b0da08d44ce38acef
(cherry picked from commit f1ddeeb155)
2021-06-10 17:53:50 +00:00
Benoît Ganne d0f23a3164 fib: make sure dpo is valid even when path pool expands
The path pool can expand during in fib_path_attached_next_hop_get_adj()
when calling adj_nbr_add_or_lock(). If dpo points to a path->fp_dpo, its
reference becomes stale.
Use a temporary copy instead.

Type: fix

Change-Id: Ie966cb5f3f7b416425964dca12f1f586bfc2010c
Signed-off-by: Benoît Ganne <bganne@cisco.com>
(cherry picked from commit e9d7b0982d)
2021-06-09 15:16:10 +00:00
Benoît Ganne 655c377607 fib: make sure adj is valid during walk
The adj can be deleted during fib_walk_sync(), make sure it can happen
only after clearing the SYNC_WALK_ACTIVE flag.

Type: fix

Change-Id: I68be00e9602e2783d9dced71c51547c38b7e8a00
Signed-off-by: Benoît Ganne <bganne@cisco.com>
(cherry picked from commit 9f10edbb46)
2021-06-09 15:14:48 +00:00
Benoît Ganne 6ac910e0d6 ipsec: fix crypto ops in esp decrypt
When both chained and non-chained buffers are processed in the same
vector, make sure the non-chained buffers are processed as non-chained
crypto ops.

Type: fix

Change-Id: I19fc02c25a0d5e2e8a1342e2b88bbae3fe92862f
Signed-off-by: Benoît Ganne <bganne@cisco.com>
(cherry picked from commit e631ece4aa)
2021-06-09 12:18:52 +00:00
Dave Barach f9d10e7dd5 vppinfra: pool_free_elts() now supports fixed-size pools
Test added to the unittest plugin / test_vlib.py

Type: improvement
Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I73445e57918347c102ff6f5e8c9ddb9bd96f1407
(cherry picked from commit 4de5f9be88)
2021-06-08 15:24:29 +00:00
Florin Coras e9b33fcbde vcl: avoid multiple reads on peek
Only try once and return what was found.

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I50b1d26babf1b7431d36f6b7472a1fb01475bb35
(cherry picked from commit 2336831806)
2021-06-07 21:31:53 +00:00
Florin Coras b635851ee2 vcl: avoid updating errno on ldp init check
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I7f5887865aa29c9881b5063be1d7d42369a493c1
2021-06-07 21:31:36 +00:00
Simon Zhang dd6fe0c539 tls: change picotls plugin crypto module to accommodate new version picotls
Type: fix

Change-Id: I58931e235535be7d596ca578790f389b64a4fbd2
Signed-off-by: Simon Zhang <yuwei1.zhang@intel.com>
(cherry picked from commit 778b3186fc)
2021-06-07 21:31:18 +00:00
Florin Coras 53af06a214 vcl: accept zero length writes
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I84985f59274e77219a38ea6ac865fc73ac635d72
(cherry picked from commit 0b0d28e9bf)
2021-06-07 21:25:49 +00:00
Florin Coras 2fea186aee vcl: epoll error handling fixes and improvements
- return VPPCOM_EEXIST if attempting to re-add a session
- return VPPCOM_ENOENT if the session to be removed is not epolled
- generate EPOLLIN if adding it through a mod operation on a session
that has data and did not have the event previously set.

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I728a06b8cf84af8d8c1dea7406e284de8886dffc
(cherry picked from commit 2645f68985)
2021-06-07 21:25:09 +00:00
pibr 1c20c2f774 dpdk: silence coverity warning on use of uninitialized value
Type: fix

Signed-off-by: Piotr Bronowski <piotrx.bronowski@intel.com>
Change-Id: I76923ad5035498aae821db4fd42a127617476fbb
(cherry picked from commit d838e533f1)
2021-06-07 16:02:02 +00:00
Tianyu Li ce4716f4e2 build: fix build error after make wipe
ninja: error: '/home/vpp/src/vpp-api/vapi/fake.api.json',
needed by 'CMakeFiles/vpp-api/vapi/fake.api.vapi.h',
missing and no known rule to make it

Recent fake.api.json has been moved from test/ to src/,
update make wipe to reflect the movement.

Type: fix

Signed-off-by: Tianyu Li <tianyu.li@arm.com>
Change-Id: I1e8ef414a3f8a2fce11767e0778fe21e14d54e6f
(cherry picked from commit 0b65213475)
2021-06-07 14:56:58 +00:00
Ruslan Babayev f1bd293ff2 nat: fix broken nat44-ed cli
snat_set_frame_queue_nelts has been replaced with
nat44_ed_set_frame_queue_nelts.

Type: fix
Signed-off-by: Ruslan Babayev <ruslan@babayev.com>
Change-Id: I8d970be71376fdbb2bfd383d4d5824a8def93bb3
2021-06-07 14:10:26 +00:00
Dave Wallace b3e5909e80 build: fix centos-8 cmake missing package dependency
Type: fix

Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: I199fea4607cf38a127ed31b2ddf1dd993a2462ba
(cherry picked from commit e20d3c8c00)
2021-06-05 21:37:21 +00:00
Neale Ranns e027d88521 tests: Fix 'test-wipe'
Type: fix

Error:
vagrant@ ~/vpp (make-test-wipe) $ make test-wipe
make[1]: Entering directory '/home/vagrant/vpp/test'
make[2]: Entering directory '/home/vagrant/vpp/test'
make[2]: *** ext: No such file or directory.  Stop.
make[2]: Leaving directory '/home/vagrant/vpp/test'
make[1]: *** [Makefile:239: wipe] Error 2
make[1]: Leaving directory '/home/vagrant/vpp/test'
make: *** [Makefile:440: test-wipe] Error 2

Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: I3615a962882d5d56c394aa628e9942fed07cde84
(cherry picked from commit 46cb4c4094)
2021-06-04 13:33:06 +00:00
Juraj Linkeš 4b0882c9a9 dpdk: disable i40evf in favor of iavf patch
Fix an issue where multiple VPP instances with DPDK starting at the
same time would not initialize VFs properly. This is done by using the
iavf PMD (where the issue can't be reproduced) instead of the i40evf
PMD.

Type: fix
Ticket: VPP-1943
Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech>
Change-Id: I444bd24722f81faec836478851e7cc3c72143227
2021-06-03 19:11:59 +00:00
Florin Coras 76189089b5 svm: release mem order for fifo chunk list CAS
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: Ifad679f46abd6e9c18a3eaf7e55800a09f3791ab
(cherry picked from commit 324d161963)
2021-06-03 19:11:27 +00:00
Florin Coras 5b6d2c1ae2 session: avoid ct connects loop
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I99af136ecab9be1f9e00de6d197b8f1c74ab4b20
(cherry picked from commit 821b5002bf)
2021-06-03 19:11:06 +00:00
Florin Coras d5f89e04ae session: lcl transport info on accept
Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ia46b0b8afed30f84b244c06f0457303f9e8832cd
(cherry picked from commit 67c90a32b7)
2021-06-03 19:10:35 +00:00
Florin Coras afb0194b5a srtp: cleanup build and default to disabled
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I62fb56257445a05105e556d1ea6cc6280b5eeccc
(cherry picked from commit 427feb6fdd)
2021-06-03 19:08:42 +00:00
Arthur de Kerhor 27777bd890 misc: bug fixes and improvements for stats Fuse fs
Added syslogs
Added support for symlinks
Relocated make commands in a local Makefile
Dumping stats on index instead of paths
Updated README
Added go.mod and go.sum with relevant dependencies for the module

Type: fix
Change-Id: I2c91317939b2f4d765771ab7038372ae27d3109d
Signed-off-by: Arthur de Kerhor <arthurdekerhor@gmail.com>
(cherry picked from commit 9cfbd3b786)
2021-06-03 07:38:21 +00:00
Dave Barach cd01b3a735 interface: fix vnet_sw_interface_update_unnumbered
Unless a software interface is actually unnumbered, do not set
ip[46]_main.lookup_main.if_address_pool_index_by_sw_if_index [sw_if_index]
to ~0

Fixes this scenario:

loop create
set int state loop0 up
create sub-interface loop0 1
set interface ip addr loop0.1 192.168.1.1/24
delete sub-interface loop0.1
set int ip addr loop0 192.168.1.1/24

Type: fix

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I46141d862fa57d70b93d7bb0c105403708165264
(cherry picked from commit 64d20e76b9)
2021-06-01 14:46:57 +00:00
Florin Coras ce48c87744 tls: fix handling of failed accepts
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I34b53dcaf4f049157b538ea40a39033d43e525a5
(cherry picked from commit b6fe52f3da)
2021-06-01 14:45:52 +00:00
Florin Coras b39fac168b hsa: proxy listener support addition of fifo segments
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I59218f784140ef5ecb8468af6aebfe25fd7703a4
(cherry picked from commit b740fdc8ff)
2021-05-29 16:51:45 +00:00
Dave Wallace f5d9237c56 svm: fix inadequate atomic load for chunk mgr
- Fixes intermittent LDP cut thru iperf3 test
  failure on AARCH64

Type: fix

Change-Id: Id21a078d642e03d974bacacd1f4d0faa42fb6652
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
(cherry picked from commit 5c520919e8)
2021-05-28 16:08:32 +00:00
Florin Coras 88b2269a45 vppinfra: explicit blocking mode for sock connects
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I3a33230de13fef613dc9523cf24a9968d200c2e5
(cherry picked from commit 57e0af924b)
2021-05-26 18:48:32 +00:00
Andrew Yourtchenko e82d59f381 misc: Initial changes for stable/2106 branch
Change-Id: Ia484268463cc504902402cde2243f0cfdb02d101
Type: docs
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2021-05-26 13:05:36 +00:00
139 changed files with 2314 additions and 2762 deletions
+1
View File
@@ -2,3 +2,4 @@
host=gerrit.fd.io
port=29418
project=vpp
defaultbranch=stable/2106
+2 -30
View File
@@ -131,7 +131,7 @@ else ifeq ($(OS_ID)-$(OS_VERSION_ID),centos-8)
RPM_DEPENDS += compat-openssl10 openssl-devel
RPM_DEPENDS += python2-devel python36-devel python3-ply
RPM_DEPENDS += python3-virtualenv python3-jsonschema
RPM_DEPENDS += cmake
RPM_DEPENDS += libarchive cmake
RPM_DEPENDS_GROUPS = 'Development Tools'
else
RPM_DEPENDS += yum-utils
@@ -220,7 +220,6 @@ help:
@echo " docs - Build the Sphinx documentation"
@echo " docs-venv - Build the virtual environment for the Sphinx docs"
@echo " docs-clean - Remove the generated files from the Sphinx docs"
@echo " stats-fs-help - Help to build the stats segment file system"
@echo ""
@echo "Make Arguments:"
@echo " V=[0|1] - set build verbosity level"
@@ -362,7 +361,7 @@ wipedist:
.PHONY: wipe
wipe: wipedist test-wipe $(BR)/.deps.ok
$(call make,$(PLATFORM)_debug,$(addsuffix -wipe,$(TARGETS)))
@find . -type f -name "*.api.json" ! -path "./test/*" -exec rm {} \;
@find . -type f -name "*.api.json" ! -path "./src/*" -exec rm {} \;
.PHONY: rebuild
rebuild: wipe build
@@ -669,33 +668,6 @@ featurelist: centos-pyyaml
checkfeaturelist: centos-pyyaml
@extras/scripts/fts.py --validate --all
# Build vpp_stats_fs
.PHONY: stats-fs-install
stats-fs-install:
@extras/vpp_stats_fs/install.sh install
.PHONY: stats-fs-start
stats-fs-start:
@extras/vpp_stats_fs/install.sh start
.PHONY: stats-fs-cleanup
stats-fs-cleanup:
@extras/vpp_stats_fs/install.sh cleanup
.PHONY: stats-fs-help
stats-fs-help:
@extras/vpp_stats_fs/install.sh help
.PHONY: stats-fs-force-unmount
stats-fs-force-unmount:
@extras/vpp_stats_fs/install.sh unmount
.PHONY: stats-fs-stop
stats-fs-stop:
@extras/vpp_stats_fs/install.sh stop
#
# Build the documentation
#
+1273 -5
View File
File diff suppressed because it is too large Load Diff
+3 -3
View File
@@ -42,12 +42,12 @@ endef
define rdma-core_install_cmds
mkdir -p $(rdma-core_install_dir)/lib/pkgconfig
cp -av $(rdma-core_build_dir)/include $(rdma-core_install_dir) > $(rdma-core_install_log)
cp -v $(rdma-core_build_dir)/lib/pkgconfig/libibverbs.pc \
cp -avL $(rdma-core_build_dir)/include $(rdma-core_install_dir) > $(rdma-core_install_log)
cp -avL $(rdma-core_build_dir)/lib/pkgconfig/libibverbs.pc \
$(rdma-core_build_dir)/lib/pkgconfig/libmlx5.pc \
$(rdma-core_build_dir)/lib/pkgconfig/libmlx4.pc \
$(rdma-core_install_dir)/lib/pkgconfig >> $(rdma-core_install_log)
cp -v $(rdma-core_build_dir)/lib/statics/libibverbs.a \
cp -avL $(rdma-core_build_dir)/lib/statics/libibverbs.a \
$(rdma-core_build_dir)/lib/statics/libmlx5.a \
$(rdma-core_build_dir)/lib/statics/libmlx4.a \
$(rdma-core_build_dir)/util/librdma_util.a \
@@ -0,0 +1,232 @@
From 7b44e3f10ac886eaece0ee3ed217ba7219ec41c1 Mon Sep 17 00:00:00 2001
From: Robin Zhang <robinx.zhang@intel.com>
Date: Mon, 19 Apr 2021 03:05:39 +0000
Subject: [PATCH] net/iavf: deprecate i40evf pmd
The i40evf PMD will be deprecated, iavf will be the only VF driver for
Intel 700 serial (i40e) NIC family. To reach this, there will be 2 steps:
Step 1: iavf will be the default VF driver, while i40evf still can be
selected by devarg: "driver=i40evf".
This is covered by this patch, which include:
1) add all 700 serial NIC VF device ID into iavf PMD
2) skip probe if devargs contain "driver=i40evf" in iavf
3) continue probe if devargs contain "driver=i40evf" in i40evf
Step 2: i40evf and related devarg are removed, this will happen at DPDK
21.11
Between step 1 and step 2, no new feature will be added into i40evf except
bug fix.
Signed-off-by: Robin Zhang <robinx.zhang@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Beilei Xing <beilei.xing@intel.com>
---
doc/guides/nics/intel_vf.rst | 6 +++
doc/guides/rel_notes/deprecation.rst | 8 ++++
drivers/common/iavf/iavf_devids.h | 2 +
drivers/net/i40e/i40e_ethdev_vf.c | 45 ++++++++++++++++++++++
drivers/net/iavf/iavf_ethdev.c | 57 +++++++++++++++++++++++++++-
5 files changed, 116 insertions(+), 2 deletions(-)
diff --git a/doc/guides/nics/intel_vf.rst b/doc/guides/nics/intel_vf.rst
index 529ff4a955..fcea8151bf 100644
--- a/doc/guides/nics/intel_vf.rst
+++ b/doc/guides/nics/intel_vf.rst
@@ -88,6 +88,12 @@ For more detail on SR-IOV, please refer to the following documents:
assignment in hypervisor. Take qemu for example, the device assignment should carry the IAVF device id (0x1889) like
``-device vfio-pci,x-pci-device-id=0x1889,host=03:0a.0``.
+ Starting from DPDK 21.05, the default VF driver for Intel® 700 Series Ethernet Controller will be IAVF. No new feature
+ will be added into i40evf except bug fix until it's removed in DPDK 21.11. Between DPDK 21.05 and 21.11, by using the
+ ``devargs`` option ``driver=i40evf``, i40evf PMD still can be used on Intel® 700 Series Ethernet Controller, for example::
+
+ -a 81:02.0,driver=i40evf
+
When IAVF is backed by an Intel® E810 device, the "Protocol Extraction" feature which is supported by ice PMD is also
available for IAVF PMD. The same devargs with the same parameters can be applied to IAVF PMD, for detail please reference
the section ``Protocol extraction for per queue`` of ice.rst.
diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
index 82c1a90a37..ea41be51a7 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -125,3 +125,11 @@ Deprecation Notices
* cmdline: ``cmdline`` structure will be made opaque to hide platform-specific
content. On Linux and FreeBSD, supported prior to DPDK 20.11,
original structure will be kept until DPDK 21.11.
+
+* i40e: As there are both i40evf and iavf pmd, the functions of them are
+ duplicated. And now more and more advanced features are developed on iavf.
+ To keep consistent with kernel driver's name
+ (https://patchwork.ozlabs.org/patch/970154/), i40evf is no need to maintain.
+ Starting from 21.05, the default VF driver of i40e will be iavf, but i40evf
+ can still be used if users specify the devarg "driver=i40evf". I40evf will
+ be deleted in DPDK 21.11.
diff --git a/drivers/common/iavf/iavf_devids.h b/drivers/common/iavf/iavf_devids.h
index 722c2e4f49..0f98375a09 100644
--- a/drivers/common/iavf/iavf_devids.h
+++ b/drivers/common/iavf/iavf_devids.h
@@ -13,5 +13,7 @@
#define IAVF_DEV_ID_VF_HV 0x1571
#define IAVF_DEV_ID_ADAPTIVE_VF 0x1889
#define IAVF_DEV_ID_X722_VF 0x37CD
+#define IAVF_DEV_ID_X722_A0_VF 0x374D
+
#endif /* _IAVF_DEVIDS_H_ */
diff --git a/drivers/net/i40e/i40e_ethdev_vf.c b/drivers/net/i40e/i40e_ethdev_vf.c
index 2909b4d894..b5706a6a7f 100644
--- a/drivers/net/i40e/i40e_ethdev_vf.c
+++ b/drivers/net/i40e/i40e_ethdev_vf.c
@@ -1656,9 +1656,53 @@ i40evf_dev_uninit(struct rte_eth_dev *eth_dev)
return 0;
}
+static int
+i40evf_check_driver_handler(__rte_unused const char *key,
+ const char *value, __rte_unused void *opaque)
+{
+ if (strcmp(value, "i40evf"))
+ return -1;
+
+ return 0;
+}
+
+static int
+i40evf_driver_selected(struct rte_devargs *devargs)
+{
+ struct rte_kvargs *kvlist;
+ const char *key = "driver";
+ int ret = 0;
+
+ if (devargs == NULL)
+ return 0;
+
+ kvlist = rte_kvargs_parse(devargs->args, NULL);
+ if (kvlist == NULL)
+ return 0;
+
+ if (!rte_kvargs_count(kvlist, key))
+ goto exit;
+
+ /* i40evf driver selected when there's a key-value pair:
+ * driver=i40evf
+ */
+ if (rte_kvargs_process(kvlist, key,
+ i40evf_check_driver_handler, NULL) < 0)
+ goto exit;
+
+ ret = 1;
+
+exit:
+ rte_kvargs_free(kvlist);
+ return ret;
+}
+
static int eth_i40evf_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
struct rte_pci_device *pci_dev)
{
+ if (!i40evf_driver_selected(pci_dev->device.devargs))
+ return 1;
+
return rte_eth_dev_pci_generic_probe(pci_dev,
sizeof(struct i40e_adapter), i40evf_dev_init);
}
@@ -1681,6 +1725,7 @@ static struct rte_pci_driver rte_i40evf_pmd = {
RTE_PMD_REGISTER_PCI(net_i40e_vf, rte_i40evf_pmd);
RTE_PMD_REGISTER_PCI_TABLE(net_i40e_vf, pci_id_i40evf_map);
RTE_PMD_REGISTER_KMOD_DEP(net_i40e_vf, "* igb_uio | vfio-pci");
+RTE_PMD_REGISTER_PARAM_STRING(net_i40e_vf, "driver=i40evf");
static int
i40evf_dev_configure(struct rte_eth_dev *dev)
diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c
index 4d37722022..721cdcc14e 100644
--- a/drivers/net/iavf/iavf_ethdev.c
+++ b/drivers/net/iavf/iavf_ethdev.c
@@ -127,6 +127,10 @@ static int iavf_set_mc_addr_list(struct rte_eth_dev *dev,
static const struct rte_pci_id pci_id_iavf_map[] = {
{ RTE_PCI_DEVICE(IAVF_INTEL_VENDOR_ID, IAVF_DEV_ID_ADAPTIVE_VF) },
+ { RTE_PCI_DEVICE(IAVF_INTEL_VENDOR_ID, IAVF_DEV_ID_VF) },
+ { RTE_PCI_DEVICE(IAVF_INTEL_VENDOR_ID, IAVF_DEV_ID_VF_HV) },
+ { RTE_PCI_DEVICE(IAVF_INTEL_VENDOR_ID, IAVF_DEV_ID_X722_VF) },
+ { RTE_PCI_DEVICE(IAVF_INTEL_VENDOR_ID, IAVF_DEV_ID_X722_A0_VF) },
{ .vendor_id = 0, /* sentinel */ },
};
@@ -2331,10 +2335,59 @@ iavf_dcf_cap_selected(struct rte_devargs *devargs)
return ret;
}
+static int
+iavf_drv_i40evf_check_handler(__rte_unused const char *key,
+ const char *value, __rte_unused void *opaque)
+{
+ if (strcmp(value, "i40evf"))
+ return -1;
+
+ return 0;
+}
+
+static int
+iavf_drv_i40evf_selected(struct rte_devargs *devargs, uint16_t device_id)
+{
+ struct rte_kvargs *kvlist;
+ const char *key = "driver";
+ int ret = 0;
+
+ if (device_id != IAVF_DEV_ID_VF &&
+ device_id != IAVF_DEV_ID_VF_HV &&
+ device_id != IAVF_DEV_ID_X722_VF &&
+ device_id != IAVF_DEV_ID_X722_A0_VF)
+ return 0;
+
+ if (devargs == NULL)
+ return 0;
+
+ kvlist = rte_kvargs_parse(devargs->args, NULL);
+ if (kvlist == NULL)
+ return 0;
+
+ if (!rte_kvargs_count(kvlist, key))
+ goto exit;
+
+ /* i40evf driver selected when there's a key-value pair:
+ * driver=i40evf
+ */
+ if (rte_kvargs_process(kvlist, key,
+ iavf_drv_i40evf_check_handler, NULL) < 0)
+ goto exit;
+
+ ret = 1;
+
+exit:
+ rte_kvargs_free(kvlist);
+ return ret;
+}
+
static int eth_iavf_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
struct rte_pci_device *pci_dev)
{
- if (iavf_dcf_cap_selected(pci_dev->device.devargs))
+ if (iavf_dcf_cap_selected(pci_dev->device.devargs) ||
+ iavf_drv_i40evf_selected(pci_dev->device.devargs,
+ pci_dev->id.device_id))
return 1;
return rte_eth_dev_pci_generic_probe(pci_dev,
@@ -2357,7 +2410,7 @@ static struct rte_pci_driver rte_iavf_pmd = {
RTE_PMD_REGISTER_PCI(net_iavf, rte_iavf_pmd);
RTE_PMD_REGISTER_PCI_TABLE(net_iavf, pci_id_iavf_map);
RTE_PMD_REGISTER_KMOD_DEP(net_iavf, "* igb_uio | vfio-pci");
-RTE_PMD_REGISTER_PARAM_STRING(net_iavf, "cap=dcf");
+RTE_PMD_REGISTER_PARAM_STRING(net_iavf, "cap=dcf driver=i40evf");
RTE_LOG_REGISTER(iavf_logtype_init, pmd.net.iavf.init, NOTICE);
RTE_LOG_REGISTER(iavf_logtype_driver, pmd.net.iavf.driver, NOTICE);
#ifdef RTE_LIBRTE_IAVF_DEBUG_RX
--
2.20.1
-50
View File
@@ -1,50 +0,0 @@
.. _archive:
########
Archive
########
.. toctree::
*****
2018
*****
`<https://docs.fd.io/vpp/18.11>`_
`<https://docs.fd.io/vpp/18.10>`_
`<https://docs.fd.io/vpp/18.07.1>`_
`<https://docs.fd.io/vpp/18.04>`_
`<https://docs.fd.io/vpp/18.01.2>`_
`<https://docs.fd.io/vpp/18.01.1>`_
`<https://docs.fd.io/vpp/18.01>`_
*****
2017
*****
`<https://docs.fd.io/vpp/17.10>`_
`<https://docs.fd.io/vpp/17.07.01>`_
`<https://docs.fd.io/vpp/17.07>`_
`<https://docs.fd.io/vpp/17.04>`_
`<https://docs.fd.io/vpp/17.01.1>`_
`<https://docs.fd.io/vpp/17.01>`_
*****
2016
*****
`<https://docs.fd.io/vpp/16.09>`_
`<https://docs.fd.io/vpp/16.12>`_
@@ -1,23 +0,0 @@
.. _2016_04_28_pariseventproposal:
.. toctree::
########################################
2016 May 31st Paris FD.io event proposal
########################################
Event
-----
This presentation was held on May 31st 206.
Speakers
--------
Pierre Pfister
Presentation
------------
`Powerpoint <https://wiki.fd.io/images/d/d1/2016_May_Paris_FD.io_Traing_proposal.pptx>`_
-15
View File
@@ -1,15 +0,0 @@
.. _TSCmeeting:
.. toctree::
########################
April 2016 - TSC Meeting
########################
.. toctree::
:maxdepth: 1
2016_04_28_pariseventproposal.rst
@@ -1,22 +0,0 @@
.. _2017_04_25_buildingincontainerspoc:
.. toctree::
##########################
Building In Containers PoC
##########################
Event
-----
This presentation was held on April 27, 2017
Speakers
--------
Ed Kern
Presentation
------------
`PDF <https://wiki.fd.io/images/a/a8/Building_in_Containers_PoC.pdf>`_
-14
View File
@@ -1,14 +0,0 @@
.. _VPPCall:
.. toctree::
#####################
April 2017 - VPP Call
#####################
.. toctree::
:maxdepth: 1
2017_04_25_buildingincontainerspoc.rst
@@ -1,22 +0,0 @@
.. _2017_06_26_vppcontainernetwork:
.. toctree::
#########################################
VPP and container networking at 110Gbps
#########################################
Event
-----
This presentation was held on June 26th, 2017.
Speakers
--------
Keith Burns
Slideshow
---------
`Powerpoint Presentation <https://wiki.fd.io/images/7/7b/Cisco_Live_VPP_and_container_networking_%28BRKSDN-2119%29.pptx>`_
@@ -1,12 +0,0 @@
.. _CiscoLiveUS:
.. toctree::
#########################
June 2017 - Cisco Live US
#########################
.. toctree::
:maxdepth: 1
2017_06_26_vppcontainernetwork.rst
@@ -1,22 +0,0 @@
.. _2016_08_24_introfdio:
.. toctree::
##############
Intro to FD.io
##############
Event
-----
This presentation was held on August 24th, 2016.
Speakers
--------
Ed Warnicke
Presentation
-------------
`Powerpoint <https://wiki.fd.io/images/8/87/Fd.io_intro_-_Linuxcon_NA_2016.pptx>`_
@@ -1,22 +0,0 @@
.. _2016_08_24_onelispintro:
.. toctree::
###############
ONE-LISP Intro
###############
Event
-----
This presentation was held on August 24th, 2016.
Speakers
--------
Florin Coras
Presentation
------------
`Powerpoint <https://wiki.fd.io/images/3/3e/ONE-LISP_-_Linuxcon_NA_2016.pptx>`_
@@ -1,13 +0,0 @@
.. _Linuxcon:
.. toctree::
##############################
August 2017 - Linuxcon NA 2016
##############################
.. toctree::
:maxdepth: 1
2016_08_24_introfdio
2016_08_24_onelispintro
@@ -1,22 +0,0 @@
.. _2017_05_11_40gbpsipsec:
.. toctree::
##################################
40Gbps IPsec on commodity hardware
##################################
Event
-----
This presentation was held on May 11th, 2017.
Speakers
--------
Jim Thompson
Slideshow
---------
`PDF <https://wiki.fd.io/images/1/1d/40_Gbps_IPsec_on_commodity_hardware.pdf>`_
-13
View File
@@ -1,13 +0,0 @@
.. _OSCON:
.. toctree::
################
May 2017 - OSCON
################
.. toctree::
:maxdepth: 1
2017_05_11_40gbpsipsec.rst
@@ -1,22 +0,0 @@
.. _2017_07_11_fdiouniversalterabitnetwork:
.. toctree::
############################################
FD.io: A Universal Terabit Network Dataplane
############################################
Event
-----
This presentation was held on July 11, 2017
Speakers
--------
Maciek Konstantynowicz
Slideshow
---------
`PDF <https://wiki.fd.io/images/2/24/Fdio-Purley-Demo-v9-mathsfix-pdf.pdf>`_
@@ -1,12 +0,0 @@
.. _FDIOVPPTerabit:
.. toctree::
#############################
July 2017 - FD.io VPP Terabit
#############################
.. toctree::
:maxdepth: 1
2017_07_11_fdiouniversalterabitnetwork.rst
@@ -1,23 +0,0 @@
.. _2017_06_13_fdiointeldevsdnnfvdevlab:
.. toctree::
###############################
Clear Containers + VPP Overview
###############################
Event
-----
This presentation was held on June 13, 2017
Speakers
--------
Manohar Castelino,
Eric Erns
Slideshow
---------
`PDF <https://wiki.fd.io/images/1/16/Clear_Containers%2BVPP-overview-JuneDevLab.pdf>`_
@@ -1,23 +0,0 @@
.. _2017_06_13_fdiointeldevsdnnfvdevlab:
.. toctree::
##############
FD.io Overview
##############
Event
-----
This presentation was held on June 13, 2017
Speakers
--------
Jerome Tollet,
Ed Warnicke
Presentation
------------
https://wiki.fd.io/images/8/87/Fdio-Intel_Developer_SDN_NFV_Dev_Lab.pptx
-12
View File
@@ -1,12 +0,0 @@
.. _IntelSDN:
.. toctree::
#################################
June 2017 - Intel SDN/NFV Dev Lab
#################################
.. toctree::
2017_06_13_fdiooverview
2017_06_13_clearcontainers
@@ -1,24 +0,0 @@
.. _2016_08_30_introtodpdkcryptoandvpp:
.. toctree::
###################################
Intro to DPDK Cryptodev and VPP PoC
###################################
Event
-----
This presentation was held on August 30, 2016
Speakers
--------
Tommy Long,
Sergio Gonzalez Monroy
Slideshow
---------
`Powerpoint <https://wiki.fd.io/images/2/2a/FDio_Cryptodev_Pres_Final_v2.pptx>`_
-14
View File
@@ -1,14 +0,0 @@
.. _TWSMeeting:
.. toctree::
#########################
August 2016 - TWS Meeting
#########################
.. toctree::
:maxdepth: 1
2016_08_30_introtodpdkcryptoandvpp.rst
@@ -1,23 +0,0 @@
.. _2016_05_25_softwaredataplanes:
.. toctree::
##########################################
FD.io is the Future of Software Dataplanes
##########################################
Event
-----
This presentation was held on May, 5 2016
Speakers
--------
Ed Warnicke
Slideshow
---------
`Powerpoint <https://wiki.fd.io/images/8/8b/Fdio_is_the_future_of_software_dataplanes_-_v2.pptx>`_
-12
View File
@@ -1,12 +0,0 @@
.. _fdioWebinar:
.. toctree::
########################
May 2016 - FD.io Webinar
########################
.. toctree::
:maxdepth: 1
2016_05_25_softwaredataplanes
@@ -1,34 +0,0 @@
.. _2016_08_10_tldkintro:
.. toctree::
##########
TLDK intro
##########
Event
-----
This presentation describes the Transport Layer Development Kit (TLDK),
which is an FD.io project that provides a set of libraries to accelerate L4-L7 protocol
processing for DPDK-based applications. The initial implementation supports UDP,
with work on TCP in progress. The project scope also includes integration of
TLDK libraries into Vector Packet Processing (VPP) graph nodes to provide a host stack.
This presentation was held during the DPDK US Summit on August 10th, 2016.
Speakers
--------
* Konstantin Ananyev
Slideshow
---------
`Presentation Powerpoint <https://wiki.fd.io/images/d/d3/Tldk%40160805u2.pptx>`_
Video
-----
`Video Presentation <https://www.youtube.com/watch?v=GiEXLrJuAxg>`_
@@ -1,12 +0,0 @@
.. _2016:
.. toctree::
#########################
August 2016 - DPDK Summit
#########################
.. toctree::
:maxdepth: 1
2016_08_10_tldkintro.rst
@@ -1,37 +0,0 @@
.. _2017_11_15_dpdkvppandpfsense:
.. toctree::
#########################
DPDK, VPP and pfSense 3.0
#########################
Event
-----
pfSense is a open source firewall/vpn appliance,
based on FreeBSD, started in 2006 with over 1M active installs.
We are basing pfSense release 3.0 on FD.io's VPP,
leveraging key DPDK components including cryptodev,
while adding a CLI and RESTCONF layer,
leveraging FRRouting and Strongswan.
This presentation was held during the 2017 DPDK Summit
on September 26th, 2017.
Speakers
--------
* Jim Thompson
Slideshow
---------
`Presentation PDF <dpdksummit.com/Archive/pdf/2017Userspace/DPDK-Userspace2017-Day2-9-pfSense.pdf>`_
Video
-----
`Video Presentation <https://www.youtube.com/watch?v=lMJy8vKm47E>`_
@@ -1,42 +0,0 @@
.. _2017_11_15_vpphoststack:
.. toctree::
##############
VPP Host Stack
##############
Event
-----
Although packet forwarding with VPP and DPDK can now scale to tens of millions
of packets per second per core, lack of alternatives to kernel-based
sockets means that containers and host applications cannot
take full advantage of this speed. To fill this gap, VPP
was recently added functionality specifically designed
to allow containerized or host applications to communicate
via shared-memory if co-located, or via a high-performance
TCP stack inter-host.
This presentation was held during the 2017 DPDK Summit
on September 26th, 2017.
Speakers
--------
* Florin Coras
* Dave Barach
* Keith Burns
* Dave Wallace
Slideshow
---------
`Presentation PDF <https://wiki.fd.io/images/f/f2/Vpp-hoststack.pdf>`_
Video
-----
`Video Presentation <https://www.youtube.com/watch?v=NWG7A0are00>`_

Some files were not shown because too many files have changed in this diff Show More