summaryrefslogtreecommitdiffstats
path: root/src/plugins/dpdk/device/init.c
AgeCommit message (Collapse)AuthorFilesLines
2019-08-19dpdk: add TSO support in dpdk plugin.Chenmin Sun1-0/+30
Type: feature You can enable tso in starup.conf like this: dev 0000:86:00.0{ tso on } TSO is disabled by default. Change-Id: Ifdbaf5322f768c384aa54e532d7bf45e810ca01c Signed-off-by: Chenmin Sun <chenmin.sun@intel.com>
2019-08-19dpdk: QAT devices update, add c4xxx and xeon d15xxJim Thompson1-1/+2
Type: feature Change-Id: I21f8f4563f5545a684b2666f7410847e0f7bc403 Signed-off-by: Jim Thompson <jim@netgate.com>
2019-07-26dpdk: fix vlan strippingNeale Ranns1-11/+15
Type: fix Fixes: ce3e971 Change-Id: I30bbeced2f5ae7613e65546f2b9b41e2fb514208 Signed-off-by: Damjan Marion <damarion@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 Marion1-123/+1
We have native implementation and we should not maintain both.... Change-Id: Ic09ebffda52cdc733b3cfeff06690e0d3cc08084 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-16init / exit function orderingDave Barach1-5/+2
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-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-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 Zhang1-0/+1
Change-Id: I48cd8052f9509efdf13f64ab279edb66a2d4a0a9 Signed-off-by: Simon Zhang <yuwei1.zhang@intel.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 supportChenminSun1-0/+1
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 Hemminger1-6/+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-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-02Disable hqos part deuxDave Barach1-0/+2
Change-Id: Ieab56e0a20696b8cc97f783f08f10a94a83644eb Signed-off-by: Dave Barach <dave@barachs.net>
2019-02-02dpdk: bump to dpdk 19.02Damjan Marion1-13/+0
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-30buffers: major cleanup and improvementsDamjan Marion1-91/+3
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-20dpdk: add buffer.hDamjan Marion1-0/+1
Change-Id: I998658ad7860b23425444e218ce2e1ec655b885a Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-01-20buffers: don't init metadata, as it is already initializedDamjan Marion1-4/+1
Change-Id: Ia083050389853c25b069f0f8286d50d3f4aef527 Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-12-22dpdk: switch to in-memory mode, deprecate use of socket-memDamjan Marion1-112/+25
Change-Id: I3896bf9d71dc300520c53dbe3c2fd8fcd1470881 Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-12-19vlib: support Hyper-v/Azure VMBusStephen Hemminger1-0/+32
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-19dpdk plugin: blacklist PCI devices by typeDave Barach1-1/+44
Change-Id: I89695c1ad47131ed830f35c677937ce12025a40d Signed-off-by: Dave Barach <dave@barachs.net>
2018-11-29dpdk: bump to DPDK 18.11Damjan Marion1-48/+5
Change-Id: Ib6458e56f546bb5b11c23aa5e1afe0f4b5011c08 Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-11-28dpdk: allow interface name to be specified from startup.confDamjan Marion1-4/+10
Example: dpdk { dev 0000:01:00.0 { name eth0 } dev 0000:02:00.0 { name eth1 } } Change-Id: I11e60e969a7e3548c99ac0c0c3531767819cb157 Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-11-20ethernet-input optimizationsDamjan Marion1-4/+4
Change-Id: I4ec7750ef58363bd8966a16a2baeec6db18b7e9e Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-11-18Enable l4 checksum offload for ThunderX PMDFederico Claramonte1-0/+13
Change-Id: I6a6ab6d8d9aeca9df3ba8a3ac519be25aaa796e8 Signed-off-by: Federico Claramonte <fede.claramonte@caviumnetworks.com>
2018-11-09dpdk: configure ip4 header checksum rx offload properlyDamjan Marion1-0/+6
Change-Id: I3daf8d473aa37b4597d130d19913b782cf7b8511 Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-11-08vnet: store hw interface speed in kbps instead of using flagsDamjan Marion1-48/+4
Change-Id: Idd4471a3adf7023e48e85717f00c786b1dde0cca Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-11-06dpdk: don't automatically whitelist vmxnet3 PCI interfacesSteven1-1/+14
If no PCI address is specified in dpdk config, the default to automatically put all PCIs in the whitelist. For vmxnet3 PCIs, we want to change its default to exclude the vmxnet3 PCIs. That is to put them in the blacklist instead of whitelist. Change-Id: I2b7061d6437910eb0e1b16df19a770cab968c602 Signed-off-by: Steven <sluong@cisco.com>
2018-10-24dpdk: fix hugepage pre-allocDamjan Marion1-1/+2
Change-Id: I88577615bfd3cddca834a7b881979ab32bfd5574 Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-10-24vppinfra: autodetect default hugepage sizeDamjan Marion1-3/+5
Change-Id: I5ff713ad0b254c74c5622e3b9425cca365b5ee97 Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-10-23dpdk: support 18.11 changes to CRC flagsStephen Hemminger1-7/+7
In DPDK 18.11 the device flags for keeping/stripping CRC flags has changed. The old strip flag is gone, and replaced by a CRC keep flag. Change-Id: Iaa162854862a2a0855b418ee8029383fc116d3a2 Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
2018-10-23c11 safe string handling supportDave Barach1-2/+2
Change-Id: Ied34720ca5a6e6e717eea4e86003e854031b6eab Signed-off-by: Dave Barach <dave@barachs.net>
2018-10-22vlib: pci improvementsDamjan Marion1-2/+3
- logging - pass vlib_main_t to all APIs - open vfio container only when needed Change-Id: I897e53e0af3f91c3a99f0c827401d1c0ec2e478a Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-10-22vppinfra: use log2 page size in hugepage functionsDamjan Marion1-1/+1
Change-Id: Ibec32c6df32f4cd9889d378e244f170c93ad295b Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-10-20dpdk: add netvsc PMDStephen Hemminger1-0/+33
Teach DPDK plugin about the netvsc Poll Mode Driver. The speed of the Netvsc device matches the speed of the external port on the underlying vswitch. Therefore 1G, 10G, 25G, 56G and even 100G are possible. Change-Id: I14ab6907b7d8d350b63a083409d45fb9c348a364 Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
2018-10-15dpdk: only look at PCI information on PCI devicesStephen Hemminger1-1/+2
The rte_device is use as a base type of all DPDK devices. It is not valid to use container_of to find PCI information unless the bus of the rte_device is pci. Otherwise, the pointer is looking at some other data, which may or may not be zero. This change introduces a helper function to get rte_pci_device pointer. If device is on PCI bus it returns pointer to rte_pci_device info, otherwise it returns NULL. Change-Id: Ia7446006bb93a7a54844969f3b3dd3b918890dfd Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
2018-09-24Trivial: Clean up some typos.Paul Vinciguerra1-2/+2
Change-Id: I085615fde1f966490f30ed5d32017b8b088cfd59 Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
2018-09-19dpdk: mask and warn if rx/tx offload is not availableDamjan Marion1-24/+7
Warning messsage is displayed in system log: vpp# show log 1970/ 1/ 1 01:00:01:198 warn dpdk unsupported rx offloads requested on port 0: scatter Change-Id: I40021066daf2d37ca5233e3adce55e412f0d3932 Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-09-18disable scatter/gather for ENA with DPDK 18.08Matthew Smith1-1/+5
The scatter/gather rxmode flag was set for ENA when building against DPDK >= 18.08. ENA does not support this, so disable it. It looks like enabling it was a copy/paste error. Also, after offloads are adjusted based on whether "no-multi-seg" is set, those configurations are overwritten by copying port_conf_template over the port config. That should only happen for versions of DPDK older than 18.08 because 18.08 and newer make changes directly on the port config instead of making changes to the template. Make the clib_memcpy() conditional on the DPDK version being less than 18.08. After doing so, compiler errors complain about port_conf_template being declared but not used, so make it's declaration conditional. Change-Id: If81980d71c379a565b51dd700b953f8c811a8703 Signed-off-by: Matthew Smith <mgsmith@netgate.com>
2018-09-10dpdk-plugin: do not request SCTP offload, some cards do not support it while ↵Andrew Yourtchenko1-2/+2
supporting TCP/UDP The DPDK plugin sets all of the offload flags, which may cause an initialization failure on the NICs that do not support SCTP offload. The VPP code does not deal with the SCTP offload at the moment at all, so after discussing with Damjan, we agreed the best approach to fix the issue is to not request the SCTP offload. The output of "show hardware" for the NIC in question before this patch: Name Idx Link Hardware GigabitEthernet1/0/0 1 down GigabitEthernet1/0/0 Ethernet address 00:e0:67:09:90:4b Intel 82540EM (e1000) carrier down flags: pmd pmd-init-fail maybe-multiseg tx-offload intel-phdr-cksum rx queues 1, rx desc 1024, tx queues 1, tx desc 1024 cpu socket 0 Errors: rte_eth_dev_configure[port:0, errno:-22]: Unknown error -22 And the excerpt from "show log": 1970/ 1/ 1 00:00:00:739 notice dpdk Ethdev port_id=0 requested Tx offloads 0x1c doesn't match Tx offloads capabilities 0xf in rte_eth_dev_configure() Change-Id: I159d65c02fc3f044441972205f1f0ac08e52050c Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2018-09-03Deprecate old buffer replication schemeDamjan Marion1-3/+0
Change-Id: I1f54b994425c58776e1445c8d9fe142e7a644d3d Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-08-21VPP-1268: Add option for memory channels DPDK usesJessica Tallon1-0/+2
This adds a `num-mem-channels` option for DPDK enabling support for choosing the number of memory channels used. Change-Id: I1663dd866ac60592b6dd02261af66d87c64acdb1 Signed-off-by: Jessica Tallon <tsyesika@igalia.com>
2018-08-16dpdk: fix rss hash function handlingDamjan Marion1-1/+11
DPDK 18.08 verifies if all set bits are supported and fails if not.... Change-Id: Ia87242fcda11147dff3bebe2e2bef32f0a8891fb Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-08-13dpdk: support for DPDK 18.08Damjan Marion1-23/+60
Change-Id: If1b93341c222160b9a08f127620c024620e55c37 Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-07-19dpdk: fix Mellanox Connect-X3 VF IDMatthew Smith1-1/+1
Fix a typo from previous patch. Change 0x104 to 0x1004. Change-Id: I82230a8a0ec01567eb1d4bc12ac02062c2a98347 Signed-off-by: Matthew Smith <mgsmith@netgate.com>
2018-07-19dpdk: set log write fd to non-blockingMatthew Smith1-7/+15
If a PMD writes too many log messages using rte_vlog(), the pipe for logging can fill and then rte_vlog() will block on fflush() while it waits for something to read from the other side of the pipe. That will never happen since the process node that would read the other side of the pipe runs in the same thread. Set the write fd to non-blocking before the call to rte_openlog_stream(). If the pipe is full, calls to write() or fflush() will fail but execution will continue. Change-Id: I0e5d710629633acda5617ff29897d6582c255d57 Signed-off-by: Matthew Smith <mgsmith@netgate.com>