Commit Graph

315 Commits

Author SHA1 Message Date
ChenminSun
53ba544d78 dpdk: Add E810 family support
Change-Id: Id5b30d7a394551844a79b3d222d2d26194d033df
Signed-off-by: ChenminSun <chenmin.sun@intel.com>
2019-03-14 13:25:12 +00:00
Jay Lubomirski
69becfcd5e Add the SRIOV variant PCI Device ID of the Cisco VIC
Change-Id: I572cbba817275d85c200a4b09a63f4650075f638
Signed-off-by: Jay Lubomirski <jlubomir@cisco.com>
2019-03-13 11:55:38 +00:00
Stephen Hemminger
890fab2c82 dpdk: pass log-level configuration to EAL
The log-level dpdk config value should be transparently
forwarded to DPDK via EAL argument.  Since DPDK now supports
naming log-levels, VPP no longer needs to parse and call
rte_set_loglevel().

This was the other part of the DPDK log-level change.
It must have got missed during my initial checkin.
Without it passing dynamic log-level values like are silently
ignored.

Fixes: 6ca6ac6c88 ("dpdk: support passing log-level")
Change-Id: I732cec5f638c9924e3ffb04c4753f957e3633d64
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
2019-03-12 19:10:30 +00:00
Matthew Smith
84caa17a9d dpdk: update mlx[45] linking options
Upstream DPDK changed the names of the options to use dlopen()
with libibverbs and libmlx[45] from RTE_LIBRTE_MLX[45]_DLOPEN_DEPS
to RTE_IBVERBS_LINK_DLOPEN (handles both mlx4 and mlx5).

VPP's build option to enable this configuration when building DPDK
no longer worked starting when VPP moved to DPDK 19.02. Update VPP's
build options to enable the correct option name.

Change-Id: I8e34e1d3fc4ee8aac4fd6f2a7d27177f2b0dea50
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
2019-03-01 20:26:47 +00:00
Dave Barach
5ecd5a5d15 Move pcap rx/tx trace code out of the dpdk plugin
Moved code to the ethernet input node, and the interface output
path(s). Since we no longer skip ethernet-input, there's no reason
for device drivers to know anything about pcap rx tracing, etc.

Change-Id: I08d32fb1b90cbee1bd4f609837d533e047b36fa4
Signed-off-by: Dave Barach <dave@barachs.net>
2019-02-26 11:30:29 +00:00
Damjan Marion
296988d358 Add no-append flag to vlib_frame_t
Change-Id: I01c4f5755d579282773ac227b0bc24f8ddbb2bd1
Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-02-22 01:25:08 +00:00
Hyong Youb Kim
aed6180194 dpdk: update Cisco VIC port type
Recent VIC models can support 25, 50, and 100Gbps links. Use the
helper (port_type_from_link_speed) to set the port type as it supports
all possible link speeds.

Change-Id: I748d8ac716a6393d116a9db8a599151c70a9000a
Signed-off-by: Hyong Youb Kim <hyonkim@cisco.com>
2019-02-19 14:21:59 +00:00
Hyong Youb Kim
30a83d9f16 dpdk: do not shift PKT_RX_FDIR
PKT_RX_FDIR is a bit flag, not a bit position.

Change-Id: Ib31ec9257e906b045522fa7c2b515b7b0c13bb32
Signed-off-by: Hyong Youb Kim <hyonkim@cisco.com>
2019-02-19 14:14:07 +00:00
Neale Ranns
eba31ecebe IPSEC: move SA counters into the stats segment
1) stats are accessed via the stat segment which is more condusive to
   monitoring
2) stats are accurate in the presence of multiple threads. There's no
   guarantee that an SA is access from only one worker.

Change-Id: Id5e217ea253ddfc9480aaedb0d008dea031b1148
Signed-off-by: Neale Ranns <nranns@cisco.com>
2019-02-18 13:05:17 +00:00
Kingwel Xie
3b3464eef5 dpdk-ipsec: store buffer index into crypto-op private
don't have to convert from mbuf to vlib_buffer then buffer index
save a few clock cycles in crypto-input

plus, a bit improvements of CLI
1. show more information, resource placement & qp stats
2. clear dpdk qp statistics

cleanup cli as sugguested by Sergio Gonzalez Monroy

Change-Id: Ic4fd65bfa9a6b05b344a9a40c554990dde072d19
Signed-off-by: Kingwel Xie <kingwel.xie@ericsson.com>
2019-02-15 14:58:33 +00:00
Dave Barach
22ad815d65 fix assert failure
Change-Id: I9a2e8ea2bf334dd8dabf3d25abbcc91087a43882
Signed-off-by: Dave Barach <dbarach@cisco.com>
2019-02-12 14:55:11 +00:00
Damjan Marion
8934a04596 buffers: fix typo
Change-Id: I4e836244409c98739a13092ee252542a2c5fe259
Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-02-09 23:29:26 +01:00
Neale Ranns
8d7c502002 IPSEC: no second lookup after tunnel encap
in the same maaner as with other tunnel tyeps we use
the FIB to cache and track the destination used to reach
the tunnel endpoint. Post encap we can then ship the packet
straight to this adjacency and thus elide the costly second
lookup.

- SA add and del function so they can be used both directly
  from the API and for tunnels.
- API change for the SA dump to use the SA type
- ipsec_key_t type for convenience (copying, [un]formating)
- no matching tunnel counters in ipsec-if-input

Change-Id: I9d144a59667f7bf96442f4ca66bef5c1d3c7f1ea
Signed-off-by: Neale Ranns <nranns@cisco.com>
2019-02-07 19:13:32 +00:00
Damjan Marion
5de3fec531 buffers: make buffer data size configurable from startup config
Example:

buffers {
	default data-size 1536
}

Change-Id: I5b4436850ca18025c9fdcfc7ed648c2c2732d660
Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-02-06 18:00:17 +00:00
Sergio Gonzalez Monroy
ef20f0eff7 dpdp-crypto: fix cryptodev segfault with dpdk 19.02
DPDK 19.02 adds two new fields to struct rte_cryptodev_qp_conf,
which the current code was not initializing properly.

Also session mempools are now required to have specific private data.
For that just use the new API to create symmetric session pools.

Change-Id: Ie732d4e10b908aeaea322717d6011113e3e7172c
Signed-off-by: Sergio Gonzalez Monroy <sgmonroy@gmail.com>
2019-02-06 17:25:29 +00:00
Kingwel Xie
b8999b1070 crypto-input: fix broken buffer trace issue
dpdk_crypto_input_trace was called before vlib_buffer_enqueue_to_next
then VLIB_FRAME_TRACE of next_frame->flag will be overwritten by
vlib_next_frame_change_ownership(), leading to a broken trace.

now it is working:

Packet 1

00:00:15:654983: dpdk-crypto-input
  dev_id 0 next-index 1
  00:00:15:654999: ip4-lookup
  fib 0 dpo-idx 0 flow hash: 0x00000000
  IPSEC_ESP: 18.1.0.71 -> 18.1.0.241
      tos 0x00, ttl 254, length 168, checksum 0x96ea
......

Change-Id: I73d77c06c11db8911866adb6240b2565b690f469
Signed-off-by: Kingwel Xie <kingwel.xie@ericsson.com>
2019-02-05 15:02:53 +00:00
Dave Barach
9793de0218 Disable hqos part deux
Change-Id: Ieab56e0a20696b8cc97f783f08f10a94a83644eb
Signed-off-by: Dave Barach <dave@barachs.net>
2019-02-02 14:33:38 -05:00
Damjan Marion
1a6ece3435 dpdk: bump to dpdk 19.02
HQoS requires fixes to work with dpdk 19.02 so code is disabled and
pending deprecation unless active maintainer is found.

Change-Id: I3569c4287b6dfdd2c29e02375eb53bf01fa6ae84
Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-02-02 16:31:07 +00:00
Damjan Marion
f646d74392 buffers: vallidate that buffer is allocated during buffer pool put
Change-Id: I8044b34a37fe1994a8dfa1ca89929f3642c72e8d
Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-01-31 22:25:44 +00:00
Sergio Gonzalez Monroy
35467f112a dpdk-ipsec: use single queue pair per crypto resource
Change-Id: I2c796583087c70fbc5cf09e8afd0f2a1f389d346
Signed-off-by: Sergio Gonzalez Monroy <sgmonroy@gmail.com>
2019-01-31 22:07:10 +00:00
Damjan Marion
6f70e913c5 dpdk: populate mempool mem_list
Mellanox driver needs it

Change-Id: I28423805f977089d18d32e85cf08e9e7e1fcf5b2
Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-01-31 22:13:57 +01:00
Damjan Marion
31392ac150 dpdk: store buffer poool index in mempool pool_id
Change-Id: I2c225a4932dcf326e10fe93de3ee4fdaef4dd3d0
Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-01-31 22:13:57 +01:00
Damjan Marion
24dcbe4520 buffers: reinitialize metadata, add additional validation
- DPDK overwrites metadata as part of rte_pktmbuf_init(...) so we need
  reinitialize it

- additional checks added to ensure ref_count is never < 1

Change-Id: Ida336f81c4723e8f2e0ad4a70cb7b1ecfff978a0
Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-01-31 12:33:16 +01:00
Damjan Marion
94519aaed6 buffers: add missing ref_count = 1 in drivers
Change-Id: I6aa030429c1740f7376e95daf82fce49efa6716b
Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-01-30 22:16:19 +01:00
Damjan Marion
910d3694e8 buffers: major cleanup and improvements
This patch introduces following changes:
- deprecated free lists which are not used and not compatible
  with external buffer managers (i.e. DPDK)
- introduces native support for per-numa buffer pools
- significantly improves performance of buffer alloc and free

Change-Id: I4a8e723ae47056717afd6cac0efe87cb731b5be7
Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-01-30 16:19:22 +00:00
Damjan Marion
f23a885b89 cmake: parse DPDK config without compilation
Previous scheme was not cross-compile friendly...

Change-Id: Ib103b136231673157a02b8750312aa6073052c7e
Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-01-26 20:32:00 +00:00
Damjan Marion
ff42693005 cmake: add support for linking with DPDK shared libs
Change-Id: I3423191c53ab6100ee9ecc4e24b06506ff1b25c8
Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-01-26 14:12:25 +01:00
Kingwel Xie
955ee28028 crypto-input: fix crash bug
as this node is refactored in new style with
vlib_buffer_enqueue_to_next, we have to check if the 'count'
is greater than 0. otherise, the next_index would be invalid
then lead to a crash

Change-Id: If7c323b59c02b5c16bd9d77b65c946512cc972c1
Signed-off-by: Kingwel Xie <kingwel.xie@ericsson.com>
2019-01-21 03:40:39 +00:00
Damjan Marion
a5c308e68d dpdk: add buffer.h
Change-Id: I998658ad7860b23425444e218ce2e1ec655b885a
Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-01-20 22:59:03 +00:00
Damjan Marion
b67196d823 buffers: remove vlib_buffer_delete_free_list
Change-Id: I5fe01e918b534d1ac1d47f0d7610536f45c3158c
Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-01-20 19:28:27 +00:00
Damjan Marion
6434430fd5 buffers: don't init metadata, as it is already initialized
Change-Id: Ia083050389853c25b069f0f8286d50d3f4aef527
Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-01-20 19:24:46 +00:00
Damjan Marion
d50e347763 buffers: keep buffer_main in vlib_main_t
Change-Id: I3bb1d9f83dd08f4b93acd4a281bfec0674e39c2e
Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-01-20 19:23:53 +00:00
Damjan Marion
36eb7c2142 buffers: remove free-list information from buffer metadata
Change-Id: I6048c6a51efa826ac333f7d15919cb87dd766d74
Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-01-19 00:17:51 +00:00
Damjan Marion
e58041f242 deprecate clib_memcpy64_x4
Storing buffer in local template seems to be better option....

Change-Id: I1a2fdd68cb956f99a5b36d2cd810fc623e089bcf
Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-01-18 22:00:27 +00:00
Damjan Marion
dd3952923a cmake: initial cross-compilation support
Change-Id: Ib9c2aba1eda08a22465441e33553b9b744c79d56
Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-01-17 20:43:27 +00:00
Simon Zhang
a704f5b2a9 Fix ASSERT usage issue in cryptodev
Change-Id: I764c6565f96e0cb9078503e54e3cf3bb3fd9ff3f
Signed-off-by: Simon Zhang <yuwei1.zhang@intel.com>
2019-01-17 10:13:30 +00:00
Simon Zhang
ef080e1f9b fix dpdk cryptodev enable issue
Change-Id: I47d021522cfc92cfb3877449333cbf31022c06f4
Signed-off-by: Simon Zhang <yuwei1.zhang@intel.com>
2019-01-16 18:32:44 +00:00
Simon Zhang
0a9dd3cab7 remove useless line in dpdk cryptodev
Change-Id: I2ef33c7c15b3eb1f55bbfd5cbdd230d6a4d58936
Signed-off-by: Simon Zhang <yuwei1.zhang@intel.com>
2019-01-13 13:41:19 +00:00
Steven
e589b38f98 dpdk: show hardware may display the wrong information for rss active
Some dpdk driver does not support rte_eth_dev_rss_hash_conf_get. When that
happens, we display whatever that was in the stack variable for rss_hf which
is confusing.

The fix is to clear rss_hf prior to the call.

Before the fix
--------------
DBGvpp# sh hard
              Name                Idx   Link  Hardware
format_dpdk_device:599: rte_eth_dev_rss_hash_conf_get returned -95
GigabitEthernet13/0/0              2     up   GigabitEthernet13/0/0
  Link speed: 10 Gbps
  Ethernet address 00:0c:29:c4:8c:eb
  VMware VMXNET3
  ...
    rss avail:         ipv4 ipv4-tcp ipv6 ipv6-tcp
    rss active:        ipv4 ipv4-frag ipv4-tcp ipv4-udp ipv4-other

After the fix
-------------
DBGvpp# sh hard
              Name                Idx   Link  Hardware
format_dpdk_device:600: rte_eth_dev_rss_hash_conf_get returned -95
GigabitEthernet13/0/0              2     up   GigabitEthernet13/0/0
  Link speed: 10 Gbps
  Ethernet address 00:0c:29:c4:8c:eb
  VMware VMXNET3
  ..
    rss avail:         ipv4 ipv4-tcp ipv6 ipv6-tcp
    rss active:        none

Change-Id: If8f8327f0012eecc8d23cd7f3f9cc581ca025654
Signed-off-by: Steven <sluong@cisco.com>
2019-01-13 13:35:55 +00:00
David Johnson
d9818dd68c Fixes for buliding for 32bit targets:
* u32/u64/uword mismatches
  * pointer-to-int fixes
  * printf formatting issues
  * issues with incorrect "ULL" and related suffixes
  * structure alignment and padding issues

Change-Id: I70b989007758755fe8211c074f651150680f60b4
Signed-off-by: David Johnson <davijoh3@cisco.com>
2019-01-02 10:55:55 -05:00
Damjan Marion
671e60e656 buffers: remove unused code
Change-Id: If2bbfbc52994f5de0879763e0b7a7864498debb6
Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-01-01 14:57:54 +00:00
Kingwel Xie
4270808205 crypto-input: bug fix check-op
fix a copy-paste bug, and a typo of function name

Change-Id: Ib408522d2bb6fde7a7492de6f5d5369b461d77c9
Signed-off-by: Kingwel Xie <kingwel.xie@ericsson.com>
2018-12-24 15:45:10 +00:00
Damjan Marion
16d227aa14 dpdk: switch to in-memory mode, deprecate use of socket-mem
Change-Id: I3896bf9d71dc300520c53dbe3c2fd8fcd1470881
Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-12-22 16:32:39 +00:00
Kingwel Xie
b9894ee69f crypto-input impprovement:
1. multi-loop, and new style with vlib_buffer_enqueue_to_next
2. add error counter for AUTH-FAILURE
3. buffer trace changed. now it supports 'trace add dpdk-crypto-input 10'
   just like the other input nodes

Actual measurement shows >10 clocks per packets are saved, under QAT
or openssl PMD case

Change-Id: I6ea34e4ae3b08c381219ff6bc8adda2d927fbfd5
Signed-off-by: Kingwel Xie <kingwel.xie@ericsson.com>
2018-12-22 11:50:14 +00:00
Stephen Hemminger
6fbef23228 vlib: support Hyper-v/Azure VMBus
This patch adds support for VMBus to the VPP infrastructure.
Since the only device that matters is the netvsc Poll Mode Driver
in DPDK, the infrastructure is much simpler than PCI.

Change-Id: Ie96c897ad9c426716c2398e4528688ce2217419b
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
2018-12-19 08:34:39 +01:00
Dave Barach
4d3739dddb dpdk plugin: blacklist PCI devices by type
Change-Id: I89695c1ad47131ed830f35c677937ce12025a40d
Signed-off-by: Dave Barach <dave@barachs.net>
2018-12-19 07:24:56 +00:00
Kingwel Xie
6b4a32ded6 dpdk-ipsec-mempool: allocate from dpdk mem specified by socket-mem in startup.conf
otherwise, these pools will occupy an entire huge page for each even
they are very small.

Change-Id: I08919714de9b6cd4b8dddb546ca54364b56ec99f
Signed-off-by: Kingwel Xie <kingwel.xie@ericsson.com>
2018-12-01 00:33:51 +00:00
Kingwel Xie
8861c1a1f2 coding-style: missing coding-style-patch
fix coding style

Change-Id: I458d81fa80c509b71edb2021468a89715cb32ae3
Signed-off-by: Kingwel Xie <kingwel.xie@ericsson.com>
2018-11-30 17:04:03 +00:00
Kingwel Xie
040950a59d dpdk-ipsec-nodes multiarch: nodes are formatted in VLIB_NODE_FN style
crypto-input,esp encrypt/decrypt are indicated in CMakefiles

Change-Id: I18ba851c1d4e5633d07c5de61cdaeae938e94982
Signed-off-by: Kingwel Xie <kingwel.xie@ericsson.com>
2018-11-29 08:20:40 +00:00
Damjan Marion
14033aaebd dpdk: bump to DPDK 18.11
Change-Id: Ib6458e56f546bb5b11c23aa5e1afe0f4b5011c08
Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-11-29 08:12:56 +00:00