aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/dpdk/device
AgeCommit message (Collapse)AuthorFilesLines
2019-09-24vlib: add flag to explicitelly mark nodes which can init per-node packet traceDamjan Marion1-0/+1
Type: feature Change-Id: I913f08383ee1c24d610c3d2aac07cef402570e2c Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-09-12dpdk: fix null-termination of stringsElias Rudberg1-0/+3
Fix problem with some strings not being null-terminated, by using the vec_terminate_c_string macro in two places. The problem was found using AddressSanitizer. (Also make sure indentation is OK for those changes.) Ticket: VPP-1772 Type: fix Signed-off-by: Elias Rudberg <elias.rudberg@bahnhof.net> Change-Id: Ib7826e3c322e58b649e2d7f6053786da618a5e9e
2019-09-11dpdk: apply dual loop unrolling in DPDK TXLijian.Zhang1-0/+57
Too many prefetches within loop unrollings induce bottleneck and performance degradation on some CPUs which have less cache line fill buffers, e.g, Arm Cortex-A72. Apply dual loop unrolling and tune prefetches manually to remove hot-spot with prefetch instructions, to get throughput improvement. It brings about 1% throughput improvement and saves 8% clocks with the target node on Cortex-A72. Type: feature Change-Id: If3a64a04a77e90cd0240bc4d1186dbb09dac7df0 Signed-off-by: Lijian Zhang <Lijian.Zhang@arm.com>
2019-09-05dpdk: fix extended statsFilip Tehlar1-1/+1
Extended stats are not displayed due to incorrect condition. Type: fix Change-Id: Ie04664e6274137462dce832bf7ee06204cd77be5 Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2019-08-30dpdk: enable checksum offload for Intel SRIOV NIC driversJohn Lo1-0/+8
Type: fix Signed-off-by: John Lo <loj@cisco.com> Change-Id: I3ee59106ba45164a4ee3788bf4dcf5bf4c2dc1c2
2019-08-21dpdk: bump DPDK version to 19.08Damjan Marion3-7/+4
Type: feature Change-Id: I16b8cdf0b6af6715a5f01ad84365a8c8a1b76237 Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-08-19dpdk: add TSO support in dpdk plugin.Chenmin Sun3-1/+44
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-08-06dpdk: remove SFP eeprom dump from 'show hardware-interfaces' and 'show ↵Lijian.Zhang1-2/+5
hardware-interfaces verbose' Type: fix It's time-consuming to execute 'show hardware-interfaces detail' in CSIT script. 'show hardware-interfaces' dumps SFP eeprom, via a software emulated I2C bus. Currently 'show hardware-interfaces', 'show hardware-interfaces verbose' and 'show hardware-interfaces detail' give exactly the same output, and they all will dump SFP eeprom. Will move the SFP eeprom dump to 'show hardware-interfaces detail' only, and use “show hardware-interfaces verbose” in CSIT script to save time. Change-Id: I1a6e5a0ca5fce5b4f0b9a6eb4e9dfd76d45b2487 Signed-off-by: Lijian Zhang <Lijian.Zhang@arm.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-07-24dpdk: Prefetch correct size of rte_mbufNitin Saxena1-1/+1
sizeof(rte_mbuf) is 128 byte but 2* CLIB_CACHE_LINE_BYTES is 256 byte for ThunderX/OCTEONTx targets. Type: fix Change-Id: If6893b168cf1c55c44bf4669a888ce858f2ef487 Signed-off-by: Nitin Saxena <nsaxena@marvell.com>
2019-07-18vlib: convert frame_index into real pointersAndreas Schultz1-1/+1
The fast path almost always has to deal with the real pointers. Deriving the frame pointer from a frame_index requires a load of the 32bit frame_index from memory, another 64bit load of the heap base pointer and some calculations. Lets store the full pointer instead and do a single 64bit load only. This helps avoiding problems when the heap is grown and frames are allocated below vm->heap_aligned_base. Type: refactor Change-Id: Ifa6e6e984aafe1e2755bff80f0a4dfcddee3623c Signed-off-by: Andreas Schultz <andreas.schultz@travelping.com> Signed-off-by: Dave Barach <dave@barachs.net>
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-16init / exit function orderingDave Barach3-5/+9
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-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-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-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-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-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-12fix assert failureDave Barach1-0/+6
Change-Id: I9a2e8ea2bf334dd8dabf3d25abbcc91087a43882 Signed-off-by: Dave Barach <dbarach@cisco.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 Marion3-14/+8
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: add missing ref_count = 1 in driversDamjan Marion1-0/+1
Change-Id: I6aa030429c1740f7376e95daf82fce49efa6716b Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-01-30buffers: major cleanup and improvementsDamjan Marion6-193/+35
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 Marion7-13/+5
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>
2019-01-18deprecate clib_memcpy64_x4Damjan Marion1-16/+15
Storing buffer in local template seems to be better option.... Change-Id: I1a2fdd68cb956f99a5b36d2cd810fc623e089bcf Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-01-13dpdk: show hardware may display the wrong information for rss activeSteven1-0/+1
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>
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 Barach2-1/+47
Change-Id: I89695c1ad47131ed830f35c677937ce12025a40d Signed-off-by: Dave Barach <dave@barachs.net>