summaryrefslogtreecommitdiffstats
path: root/src/plugins/dpdk
AgeCommit message (Collapse)AuthorFilesLines
2019-06-06dpdk: fix clear hw statsFilip Tehlar3-3/+3
.. and remove helper stat struct for keeping last cleared stats. This is not needed anymore as dpdk lib provides rte_eth_dev_reset(). Change-Id: I78076e689aac7ca70836ce688dfa8e704f64cd84 Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2019-06-04dpdk: rework extended statsFilip Tehlar4-47/+33
Change-Id: I421192e1921d4c9c5486a6dcca745582aebf4e3e Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2019-05-31Update vnet hardware flags if link state changesDave Barach1-1/+9
Explains a variety of hard-to-diagnose problems with certain Atom and Denverton NIC types. I finally tripped over a highly-repeatable failure: home gateway use-case bitten by refusal to negotiate a DHCP lease for the trunk port. The dhcp client won't send pkts unless VNET_HW_INTERFACE_FLAG_LINK_UP is set on the tx hw interface: /* Interface(s) down? */ if ((hw->flags & VNET_HW_INTERFACE_FLAG_LINK_UP) == 0) return; Change-Id: I17ef2ba7b39078555fa27d2d874a60c67e1530ee Signed-off-by: Dave Barach <dave@barachs.net>
2019-05-31bonding: add support for numa awarenessZhiyong Yang1-0/+1
This patch enables bonding numa awareness on multi-socket server working in active-backeup mode. The VPP adds capability for automatically preferring slave with local numa node in order to reduces the load on the QPI-bus and improve system overall performance in multi-socket use cases. Users doesn't need to add any extra operation as usual. Change-Id: Iec267375fc399a9a0c0a7dca649fadb994d36671 Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
2019-05-30dpdk: remove bonding codeDamjan Marion6-251/+11
We have native implementation and we should not maintain both.... Change-Id: Ic09ebffda52cdc733b3cfeff06690e0d3cc08084 Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-05-29dpdk: make sure each segment have initalized rte_mbufDamjan Marion1-12/+4
Change-Id: I0e28d059143fb7489d27a10c5b4a152d0d7dfb1f Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-05-27dpdk: vlan strip config does not take effect in default deviceChenmin Sun1-0/+6
copy vlan strip config from default device Change-Id: I4ad1c159bad964fd1900b5ae4960b7014dd9f9b1 Signed-off-by: Chenmin Sun <chenmin.sun@intel.com>
2019-05-27dpdk: fix rss configuration error issueChenmin Sun1-7/+5
Reorder foreach_dpdk_rss_hf to fix rss configuration error issue. Change-Id: Idec45534cd7dfe810b25584b1b27ac52b1c45110 Signed-off-by: Chenmin Sun <chenmin.sun@intel.com>
2019-05-23fix rte_eth_dev_info’ has no member named ‘pci_dev’ when run ↵cohu1-5/+9
show_dpdk_hqos_queue_stats Change-Id: Ic1a900e0fb85ee016af21535764dfca2e6282194 Signed-off-by: cohu <cong.hu@tieto.com>
2019-05-17dpdk-ipsec: fix encrypt/decrypt single queueSergio Gonzalez Monroy6-39/+58
When the same worker thread processes packet for encrypt and decrypt, ie. single worker with bi-directional traffic, given that the queue is shared results in packets to be decrypted being dropped as the encrypt always happens first for each main loop. With this change, each crypto device queue is logically split into two queues, each half the real size, avoiding the described problem. Change-Id: Ifd3f15e316c92fbd6ca05802456b10a7f73f85da Signed-off-by: Sergio Gonzalez Monroy <sgmonroy@gmail.com>
2019-05-16init / exit function orderingDave Barach5-15/+20
The vlib init function subsystem now supports a mix of procedural and formally-specified ordering constraints. We should eliminate procedural knowledge wherever possible. The following schemes are *roughly* equivalent: static clib_error_t *init_runs_first (vlib_main_t *vm) { clib_error_t *error; ... do some stuff... if ((error = vlib_call_init_function (init_runs_next))) return error; ... } VLIB_INIT_FUNCTION (init_runs_first); and static clib_error_t *init_runs_first (vlib_main_t *vm) { ... do some stuff... } VLIB_INIT_FUNCTION (init_runs_first) = { .runs_before = VLIB_INITS("init_runs_next"), }; The first form will [most likely] call "init_runs_next" on the spot. The second form means that "init_runs_first" runs before "init_runs_next," possibly much earlier in the sequence. Please DO NOT construct sets of init functions where A before B actually means A *right before* B. It's not necessary - simply combine A and B - and it leads to hugely annoying debugging exercises when trying to switch from ad-hoc procedural ordering constraints to formal ordering constraints. Change-Id: I5e4353503bf43b4acb11a45fb33c79a5ade8426c Signed-off-by: Dave Barach <dave@barachs.net>
2019-05-14IPSEC: remove unecessary pass by reference of sequence numberNeale Ranns1-1/+1
Change-Id: Id406eb8c69a89c57305d8f138e8e6730037aa799 Signed-off-by: Neale Ranns <nranns@cisco.com>
2019-05-14IPsec: increment tunnel intf tx countersMatthew Smith1-0/+9
Recent changes removed the function that was incrementing the tx counters. Increment them in the esp_encrypt functions. Change-Id: I446333a23ccf66e34893adb2aa49af562cf35507 Signed-off-by: Matthew Smith <mgsmith@netgate.com>
2019-05-09dpdk: fix return variable sizeZhiyong Yang1-2/+2
The function dpdk_ol_flags_extract should return u16 instead of u8. Change-Id: Id0b08b04c93598818f9a2eee5a88733900320dfa Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
2019-04-25Change dpdk thread data flags type to u16 from u8 to get more useful dataSimon Zhang2-6/+7
Change-Id: Idc3763c38f5aa638d4f290f4d4730577601d78b8 Signed-off-by: Simon Zhang <yuwei1.zhang@intel.com>
2019-04-25IPSEC; dpdk backend for tunnel interface encryptionNeale Ranns2-4/+75
Change-Id: Ide2a9df18db371c8428855d7f12f246006d7c04c Signed-off-by: Neale Ranns <nranns@cisco.com>
2019-04-24dpdk: fix interface namingFlorin Coras1-1/+1
Change-Id: Ia092a93a7ac0cbf9338f9d4a5db8b94b23549a13 Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-04-24dpdk: get a rid of "Invalid port_id=" log messageDamjan Marion1-3/+5
Change-Id: I65e7188c6893acca67455ff37f2dfbd0bedd5c09 Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-04-23dpdk_esp_encrypt: add to prefetch dataZhiyong Yang1-3/+13
The memory areas storing vlib_buffer_t and ip4|6_and_esp_header_t are not prefetched. The patch help dpdk_esp_encrypt to reduce 18 clocks/pkt from 149 to 131 on Haswell when running IPsec in tunnel mode. Change-Id: I4f4e9e2b3982a4b7810cab8ed828a5e4631f8f8c Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
2019-04-17Predicate a packet whether be marked by PKT_RX_FDIR_ID instead of PKT_RX_FDIRSimon Zhang1-1/+1
Change-Id: I65b1af5fa0cec4f9789f91f720d1396d06fa0206 Signed-off-by: Simon Zhang <yuwei1.zhang@intel.com>
2019-04-17Default nums of RX/TX descriptors changed to 512 for 2M page on DVNZhiyong Yang1-1/+63
As DVN has fewer DTLB entries supported for 2M page, default numbers of RX/TX descriptors are changed to 512 if nums of RX/TX descriptors are not specified by VPP users. Change-Id: I076493b802b15d12750a5b49d1554da4d19ad460 Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
2019-04-16Add direct packets to specific flow action in dpdk flowSimon Zhang2-4/+17
Change-Id: I48cd8052f9509efdf13f64ab279edb66a2d4a0a9 Signed-off-by: Simon Zhang <yuwei1.zhang@intel.com>
2019-04-16flow: add rte_flow check before creating by rte_flow_validateSimon Zhang1-0/+14
Change-Id: Idfcf1644952d647c6e1b61216d9b365d58b77814 Signed-off-by: Simon Zhang <yuwei1.zhang@intel.com>
2019-04-08rdma: fix DPDK MLX driver conflictBenoît Ganne1-5/+1
VPP rdma driver relies on an internal rdma-core not compatible with DPDK MLX driver. Force the use of external rdma-core through RTE_IBVERBS_LINK_DLOPEN DPDK build option and make sure internal rdma-core symbols are not leaked outside of the rdma plugin. Change-Id: I5b2281259f517c4e109d388d172b72eadd69986f Signed-off-by: Benoît Ganne <bganne@cisco.com>
2019-04-02dpdk: fix build error when mlx support enabledMatthew Smith1-1/+1
When building with environment variables set to enable mlx PMD support in DPDK, an error occurs: CMake Error at plugins/dpdk/CMakeLists.txt:104 (vpp_plugin_find_library): vpp_plugin_find_library Macro invoked with incorrect arguments for macro named: vpp_plugin_find_library Update a call to vpp_plugin_find_library() to include the right number of parameters. Change-Id: Ia0d66f93c6f94fdf822e2c3c4fe3f0ad01a90d57 Signed-off-by: Matthew Smith <mgsmith@netgate.com>
2019-03-28ipsec: USE_EXTENDED_SEQ_NUM -> USE_ESNDamjan Marion3-5/+5
Change-Id: Ib828ea5106f3ae280e4ce233f2462dee363580b7 Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-03-28cmake: add vpp_plugin_find_library macroDamjan Marion1-21/+9
Change-Id: I0b996460e05c40e74766563fb2a94c62a65063ce Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-03-28ipsec: anti-replay code cleanupDamjan Marion1-35/+15
Change-Id: Ib73352d6be26d639a7f9d47ca0570a1248bff04a Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-03-27ipsec: compress ipsec_sa_t so data used by dataplane code fits in cachelineDamjan Marion3-22/+24
Change-Id: I81ecdf9fdcfcb017117b47dc031f93208e004d7c Signed-off-by: Damjan Marion <damarion@cisco.com> Signed-off-by: Neale Ranns <nranns@cisco.com>
2019-03-22dpdk: do not enable VLAN stripping on Cisco VIC adapters by defaultHyong Youb Kim1-11/+22
With the following local patch, VIC adapters remove default vlan tags from ingress packets. So, it is no longer necessary to enable VLAN stripping by default. This change also allows VLAN sub interfaces to work with VIC adapters. patches/dpdk_19.02/0001-net-enic-untag-default-vlan-by-default.patch Change-Id: I2e7d62c62120c351c27d827d90de4a8335efa044 Signed-off-by: Hyong Youb Kim <hyonkim@cisco.com>
2019-03-14dpdk: Add E810 family supportChenminSun3-0/+6
Change-Id: Id5b30d7a394551844a79b3d222d2d26194d033df Signed-off-by: ChenminSun <chenmin.sun@intel.com>
2019-03-13Add the SRIOV variant PCI Device ID of the Cisco VICJay Lubomirski1-1/+2
Change-Id: I572cbba817275d85c200a4b09a63f4650075f638 Signed-off-by: Jay Lubomirski <jlubomir@cisco.com>
2019-03-12dpdk: pass log-level configuration to EALStephen Hemminger3-31/+0
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: 6ca6ac6c887e ("dpdk: support passing log-level") Change-Id: I732cec5f638c9924e3ffb04c4753f957e3633d64 Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
2019-03-01dpdk: update mlx[45] linking optionsMatthew Smith1-1/+1
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-02-26Move pcap rx/tx trace code out of the dpdk pluginDave Barach4-371/+0
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-22Add no-append flag to vlib_frame_tDamjan Marion1-0/+1
Change-Id: I01c4f5755d579282773ac227b0bc24f8ddbb2bd1 Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-02-19dpdk: update Cisco VIC port typeHyong Youb Kim1-4/+1
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-19dpdk: do not shift PKT_RX_FDIRHyong Youb Kim1-1/+1
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-18IPSEC: move SA counters into the stats segmentNeale Ranns2-4/+12
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-15dpdk-ipsec: store buffer index into crypto-op privateKingwel Xie5-44/+115
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-12fix assert failureDave Barach1-0/+6
Change-Id: I9a2e8ea2bf334dd8dabf3d25abbcc91087a43882 Signed-off-by: Dave Barach <dbarach@cisco.com>
2019-02-09buffers: fix typoDamjan Marion1-1/+1
Change-Id: I4e836244409c98739a13092ee252542a2c5fe259 Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-02-07IPSEC: no second lookup after tunnel encapNeale Ranns1-4/+5
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-06buffers: make buffer data size configurable from startup configDamjan Marion1-1/+1
Example: buffers { default data-size 1536 } Change-Id: I5b4436850ca18025c9fdcfc7ed648c2c2732d660 Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-02-06dpdp-crypto: fix cryptodev segfault with dpdk 19.02Sergio Gonzalez Monroy1-11/+16
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-05crypto-input: fix broken buffer trace issueKingwel Xie1-37/+16
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-02Disable hqos part deuxDave Barach2-0/+4
Change-Id: Ieab56e0a20696b8cc97f783f08f10a94a83644eb Signed-off-by: Dave Barach <dave@barachs.net>
2019-02-02dpdk: bump to dpdk 19.02Damjan Marion5-22/+33
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-01-31buffers: vallidate that buffer is allocated during buffer pool putDamjan Marion1-1/+1
Change-Id: I8044b34a37fe1994a8dfa1ca89929f3642c72e8d Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-01-31dpdk-ipsec: use single queue pair per crypto resourceSergio Gonzalez Monroy6-32/+30
Change-Id: I2c796583087c70fbc5cf09e8afd0f2a1f389d346 Signed-off-by: Sergio Gonzalez Monroy <sgmonroy@gmail.com>