aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/dpdk
AgeCommit message (Collapse)AuthorFilesLines
2017-08-02Fix tcp tx buffer allocationFlorin Coras1-0/+1
- Make tcp output buffer allocation macro an inline function - Use per ip version per thread tx frames for retransmits and timer events - Fix / parameterize tcp data structure preallocation - Add a couple of gdb-callable show commands - Fix local endpoint cleanup Change-Id: I67b47b7570aa14cb4634b6fd93c57cd2eacbfa29 Signed-off-by: Florin Coras <fcoras@cisco.com> Signed-off-by: Dave Barach <dave@barachs.net>
2017-07-18TCP/UDP checksum offload APIDave Barach3-0/+52
Change-Id: I2cb6ce4e29813f6602b14e6e61713fb381fbcef8 Signed-off-by: Dave Barach <dave@barachs.net>
2017-07-14vnet_buffer_t flags cleanupDamjan Marion1-3/+4
Change-Id: I123eccea98abafeb31f25d2a162501e2eded60d4 Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-07-14Introduce l{2,3,4}_hdr_offset fields in the buffer metadataDamjan Marion1-1/+7
To save space in the first cacheline following is changed: - total_length_not_including_first_buffer moved to the 2nd cacheline. This field is used only when VLIB_BUFFER_TOTAL_LENGTH_VALID and VLIB_BUFFER_NEXT_PRESENT are both set. - free_list_index is now stored in 4bits inside flags, which allows up to 16 free lists. In case we need more we can store index in the 2nd cachelin Change-Id: Ic8521350819391af470d31d3fa1013e67ecb7681 Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-07-13dpdk: fix dpdk_buffer_pool_create nameChris Luke3-3/+6
- vnet_buffer_pool_create should probably be named dpdk_buffer_pool_create since that is what it does. - Its prototype should also be in a DPDK plugin header, not in vlib/buffer_funcs.h, since the implementation is in the plugin and nobody else should be calling it. Change-Id: I7ba259afa4b888bc94f3ad257305e286b41e7370 Signed-off-by: Chris Luke <chrisy@flirble.org>
2017-07-12dpdk: prefetch 2nd cacheline of rte_mbuf during txDamjan Marion1-1/+1
Change-Id: I0db02dd0147dbd47d4296fdb84280d0e7d321f3c Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-07-10vlib: store buffer memory information in the buffer_mainDamjan Marion1-65/+4
Currently, buffer index is calculated as a offset to the physmem region shifted by log2_cacheline size. When DPDK is used we "hack" physmem data with information taken from dpdk mempool. This makes physmem code not usable with DPDK. This change makes buffer memory start and size independent of physmem basically allowing physmem to be used when DPDK plugin is loaded. Change-Id: Ieb399d398f147583b9baab467152a352d58c9c31 Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-07-08lldp packet transmission on a bonded interfaceSteve Shin1-3/+3
LLDP packets are dropped at interface output node if each slave's link is configured as the LLDP interface. The admin state is configured and managed by the bonded interface, so slave link's state is down by default. The checking for the admin state UP should be ignored for the slave link. Change-Id: I06ca250f42fcb8cc50e0ea3a3817a2c5b56865df Signed-off-by: Steve Shin <jonshin@cisco.com>
2017-07-06dpdk: add FiftyGigabitEtherenet interface supportDamjan Marion3-0/+7
Change-Id: Ied8b26179cdf4add34440a9c396cb821716cfb8e Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-07-06unix: mkdir VPP_RUN_DIR before opening a socket in itChris Luke1-9/+5
Change https://gerrit.fd.io/r/#/c/7230/ added a Unix domain CLI socket in the default startup.conf; however unless you had previously run VPP with the DPDK plugin enabled the directory that it is created in. /run/vpp, would not exist and startup would fail. This directory is typically hosted in a tmpfs ramdisk and is thus ephemeral. This patch adds a function that attempts to mkdir VPP_RUN_DIR and uses it in both the DPDK plugin and the CLI code if the CLI socket is to be created in that directory. Change-Id: Ibbf925819099dce2b5eb0fa238b9edca1036d6fd Signed-off-by: Chris Luke <chrisy@flirble.org>
2017-07-06Send GARP/NA on bonded intf slave up/down if in active-backup modeJohn Lo3-8/+85
If a bonded interface is in active-backup mode and configured with IPv4 and/or IPv6 addresses, on slave interface link up/down, send a GARP packet if configured with an IPv4 address and an unsolcited NA if configured with an IPv6 address. These packets can help with faster route convergence in the next hop router/switch. Change-Id: I68ccb11a4a40cda414704fa08ee0171c952befa2 Signed-off-by: John Lo <loj@cisco.com>
2017-06-09dpdk: fix ipsec coverity warningSergio Gonzalez Monroy1-2/+2
CID 170475 Change-Id: I9748dd56bdcb62e68d8f672e5b1619a3be400b8f Signed-off-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
2017-06-07dpdk: ipsec fixesSergio Gonzalez Monroy2-43/+43
- Fix buffer trace from esp_decrypt node - Fix VLIB_REGISTER_NODE macro format - Remove unnecessary code since we do not reconfigure graph unless requirements are met Change-Id: Ic1c2afffb8265e40a6ced0c8a58775c05fadc9e2 Signed-off-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
2017-06-07dpdk: fix ipsec coverity warningsSergio Gonzalez Monroy1-2/+3
CID 161044 and 161045 Change-Id: I50a450e231e387f05e354e3b07dc777ab864d018 Signed-off-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
2017-05-23Added support for Virtio-user interfaces by means of a new VNET_DPDK_PORT_TYPE.Mohammed Hawari3-1/+16
Change-Id: I101e32cee8d9de51227b39ec2639c9fb44da1e6c Signed-off-by: Mohammed Hawari <mhawari@cisco.com>
2017-05-22dpdk: make dpdk global debug level configurableDamjan Marion3-33/+30
Adds startup.conf knob: dpdk { log-level debug } Change-Id: I80dfbc00559528d7b0970958fba9f08d97aa7118 Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-05-17dpdk: Do not check and set rte_mbuf refcnt if dpdk ver >= 17.05Damjan Marion1-0/+4
According to DPDK release notes this is done by DPDK. Also, it fixes assers in debug image. Change-Id: Ida1d25f8cd0c2232110e44eabd7dc3e512336758 Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-05-16Fix regression of setting device to admin-down stateJohn Lo1-5/+4
Change-Id: I0ffa572839405efe1170d6ddb073e53e9af02db7 Signed-off-by: John Lo <loj@cisco.com>
2017-05-15dpdk: Enable hardware CRC strip for Intel VFsDamjan Marion1-0/+5
Change-Id: I60a7795761fe74ae5d57dacd03c343ddb77434d4 Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-05-15dpdk: improve error handling during device initializationDamjan Marion6-79/+98
Change-Id: Ib390164abb07ca0d38fd49e7e2e6b4e9ea856405 Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-05-15[plugins/dpdk] Support for CLIB_HAVE_64 (aarch64)Christophe Fontaine1-0/+13
For platforms which do not support u8x32, such as aarch64, add an alternative implementation of 'dpdk_buffer_init_from_template'. Change-Id: Ia7e8d0a5985fa5925e063ed6e890208c73e39933 Signed-off-by: Christophe Fontaine <christophe.fontaine@enea.com>
2017-05-11dpdk: bump to dpdk 17.05Damjan Marion4-22/+16
Change-Id: I19744387859129c6b8dc104041af158bf5f1d988 Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-05-10dpdk: refactor interface speed detectionDamjan Marion3-98/+42
- Adds VirtualFucntionEthernet for VFs - Enables MLX4 driver Change-Id: I163300e68edbe033227f641bdfcfe5918cbe58cf Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-05-09dpdk: refactor setup, start, stop codeDamjan Marion4-87/+166
Change-Id: I0fec86914ec027383ff511b7092beac2363f55f7 Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-05-09Fix remaining 32-bit compile issuesDamjan Marion1-3/+3
Change-Id: I9664214652229b663c3e3ba7406b4ede96bfb123 Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-05-08dpdk: use speed_capa to detect i40e device speedDamjan Marion3-19/+13
Change-Id: I1decca6fb5ce6de74ccbcd5a262ebd3db6f55cdc Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-05-02Add interface rx mode commands, unify rx mode and placement CLIDamjan Marion1-5/+5
Change-Id: Ib506c3e9d66170f29e3266ad6dc4d32b829befba Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-05-02dpdk: remove unused codeDamjan Marion5-64/+3
Change-Id: I16dcc0de2553c6c1eb87dd1ec4c8d3c649e6f285 Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-04-28dpdk: cryptodev support enabled by defaultSergio Gonzalez Monroy6-28/+8
This patch slightly modifes how to enable DPDK Cryptodev. The startup option 'enable-cryptodev' has been removed and unless not enough cryptodevs are found, DPDK cryptodev will be enabled by default. Change-Id: Ic0ac507802cdc0eeb51f065e04ec43a1885617cf Signed-off-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
2017-04-27dpdk: cleanup, move APIs to separate .c fileDamjan Marion4-327/+336
Change-Id: Id632ff1b30be808d9f270e2f77260391569fbda2 Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-04-25"autoreply" flag: autogenerate standard xxx_reply_t messagesDave Barach1-31/+4
Change-Id: I72298aaae7d172082ece3a8edea4217c11b28d79 Signed-off-by: Dave Barach <dave@barachs.net>
2017-04-22Fix multicast enable on the bonded interfaceSteve Shin2-1/+13
Multicast enable flag should be set when the bonded interface is up. This flag allows multicast packets to be processed from the slave devices of the bonded interface. Also promiscuous mode for all-multicast should be correctly displayed as part of 'show hardware detail' output. Change-Id: Ief0157c4c030a28afb9c45ebf3d6a12710083724 Signed-off-by: Steve Shin <jonshin@cisco.com>
2017-04-11dpdk: use common interface placement infraDamjan Marion6-301/+64
This pathch deprecates "show dpdk placement" and "set dpdk placement" CLI commands. Change-Id: I4e052ec3e8b8e6c54b4816e1e689e5b7a24892db Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-04-07Fix init of ENIC driver to allow receiving of jumbo packetsJohn Lo1-49/+27
Set rxmode.enable_scatter field in DPDK port config parameter so ENIC driver will use multiple mbuf's for receiving jumbo packets. Also remove ENIC driver check to disable setting ENIC MTU as this capability is now working with the new ENIC driver, subject to 9002B limit. Change-Id: I563976201c4968d4538c0759505cef2de876934a Signed-off-by: John Lo <loj@cisco.com>
2017-04-07MPLS McastNeale Ranns1-1/+1
1 - interface-DPO Used in the Data-plane to change a packet's input interface 2 - MPLS multicast FIB entry Same as a unicast entry but it links to a replicate not a load-balance DPO 3 - Multicast MPLS tunnel Update MPLS tunnels to use a FIB path-list to describe the endpoint[s]. Use the path-list to generate the forwarding chain (DPOs) to link to . 4 - Resolve a path via a local label (of an mLDP LSP) For IP multicast entries to use an LSP in the replication list, we need to decribe the 'resolve-via-label' where the label is that of a multicast LSP. 5 - MPLS disposition path sets RPF-ID For a interface-less LSP (i.e. mLDP not RSVP-TE) at the tail of the LSP we still need to perform an RPF check. An MPLS disposition DPO performs the MPLS pop validation checks and sets the RPF-ID in the packet. 6 - RPF check with per-entry RPF-ID An RPF-ID is used instead of a real interface SW if index in the case the IP traffic arrives from an LSP that does not have an associated interface. Change-Id: Ib92e177be919147bafeb599729abf3d1abc2f4b3 Signed-off-by: Neale Ranns <nranns@cisco.com>
2017-04-06Use thread local storage for thread indexDamjan Marion14-49/+52
This patch deprecates stack-based thread identification, Also removes requirement that thread stacks are adjacent. Finally, possibly annoying for some folks, it renames all occurences of cpu_index and cpu_number with thread index. Using word "cpu" is misleading here as thread can be migrated ti different CPU, and also it is not related to linux cpu index. Change-Id: I68cdaf661e701d2336fc953dcb9978d10a70f7c1 Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-03-31dpdk: add support for Mellanox ConnectX-5 devicesDamjan Marion1-1/+4
Change-Id: I3ed2834a326eac50a7cb4faa592f42fd06325d5a Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-03-22Update MAC address kept for Bonded Interface and its SlavesJohn Lo1-23/+32
Change-Id: I9f7f9f840c3c1aad5e8c9a4fa1ba7a58a85cfd9e Signed-off-by: John Lo <loj@cisco.com>
2017-03-22vlib: add description field in plugin registrationDamjan Marion1-0/+1
Change-Id: I88b322a5d602f3d6d3310e971479180a89430e0e Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-03-18Fix bonded interface name to use instance number starting from 0John Lo3-5/+7
With DPDK 17.02, bonded interface device_index does not start from 0 and may vary depends on the existence of other interfaces. Implement instance number for bonded interface so the interface name can make use of instance number starting from 0. Change-Id: Ia8eb7bd530446faa02ee7c7d1f6abdc22ac60b62 Signed-off-by: John Lo <loj@cisco.com>
2017-03-17Fix bonded ethernet PMD name for DPDK 17.02Alexander Popovsky (apopovsk)2-7/+24
In DPDK 17.02 bonded PMD name is changed from rte_bond_pmd to net_bonding. Change-Id: I1a57a16b0ae68b5fa56a561a4f75981112228572 Signed-off-by: Alexander Popovsky (apopovsk) <apopovsk@cisco.com>
2017-03-14Fix packet trace output: dpdk_rx_trace must decode the actual ethertypeDave Barach1-1/+31
As opposed to rubbish (typically) 14 octets past the ethertype. Also fix buffer error code setup in dpdk-input node single loop. Change-Id: Ide7c4097d3bb91e62749ed4e1d69a7b4b90225de Signed-off-by: Dave Barach <dbarach@cisco.com> Signed-off-by: John Lo <loj@cisco.com>
2017-03-13VPP-279: Document changes for vnet/vnet/devicesBilly McFall4-4/+93
Add doxygen documentation for DPDK crypto CLI command. The move of DPDK to a plugin invalidated the local dir.dox. So moved dpdk/dir.dox to dpdk/device/dir.dox to fix. Change-Id: I229e2921c4b0cdd380021adb520cd2089a376afa Signed-off-by: Billy McFall <bmcfall@redhat.com>
2017-03-09vlib_mains == 0 special cases be goneDave Barach1-6/+2
Clean up spurious binary API client link dependency on libvlib.so, which managed to hide behind vlib_mains == 0 checks reached by VLIB_xxx_FUNCTION macros. Change-Id: I5df1f8ab07dca1944250e643ccf06e60a8462325 Signed-off-by: Dave Barach <dave@barachs.net>
2017-03-09include rte_config header before any other dpdk includeGabriel Ganne1-0/+1
Change-Id: Idd28931756a53663512efe85b896eeffcc8cadcb Signed-off-by: Gabriel Ganne <gabriel.ganne@enea.com>
2017-03-08dpdk: dpdk-input optimizations and fixesDamjan Marion3-96/+122
- fix issue caused by assumption that ethertype starts at 0 - intoduce buffer templates to speed-up vlib_buffer_t metadata initialization - avoid check for multiseg buffers inside loop if multiseg is disabled - interleave prefetches to reduce load on L1 cache Change-Id: I3b76e6d3e1e15ed28f01625edb7fbe9f38112e03 Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-03-08Change dpdk input node fixed-sleep units to usecDave Barach3-5/+5
Change-Id: I94e8737cad9222d24602db4ad03bf43c12c62b79 Signed-off-by: Dave Barach <dave@barachs.net>
2017-03-08dpdk: Fixed QAT devices binding, bind the VFs onlyRadu Nicolau1-3/+7
Change-Id: I9ff64b6c583e1c513f91f90798298b55d0793f06 Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
2017-03-06features: take device-input buffer advance value directlyDamjan Marion1-4/+2
Change-Id: Ifac7d9134d03d79164ce6f06ae9413279bbaadb3 Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-03-06dpdk: init.c should be under device/Damjan Marion1-0/+0
Change-Id: I80831cee062a38a0f5ab1f1e56c2dc6dcd512b9d Signed-off-by: Damjan Marion <damarion@cisco.com>