41 Commits

Author SHA1 Message Date
Sergio Gonzalez Monroy
fa80f2e421 dpdk: fix plugin linking with sw crypto libraries
Change-Id: I3e3bf786ab3c7672ff2cc7acd221421072e3ac8b
Signed-off-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
2017-03-22 10:47:22 +00:00
Damjan Marion
f7c379403a dpdk: retire support for dpdk 16.07
Change-Id: I8585552c026415340fe9fd0458cb8450da3c4ae2
Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-02-28 23:26:30 +01:00
Radu Nicolau
2e3677bb20 cryptodev: Automatically download and build ISA-L Crypto library
Change-Id: I5454053461e6fb98e7f58f9562efde3590bb7cb5
Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
2017-02-21 22:21:57 +00:00
Radu Nicolau
6ca42d333b dpdk: updated build to automatically download Intel(R) Multi-Buffer Crypto for IPsec Library
Change-Id: I58182edb7b0d314bb6dfa1daf7b00012196fd3e1
Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
2017-02-20 10:53:37 +00:00
Damjan Marion
4983e47c37 dpdk: bump to DPDK 17.02
Change-Id: I4563208d97c43a200fcee948db491706a8d3e211
Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-02-17 00:26:17 +00:00
Damjan Marion
78edb8e722 Multiple platofrm support for dpdk/Makefile, fix optimizations
Using -march=native was causing SIGILLs on Atoms.

Change-Id: I98c7fdaa139e3db70c972950dc9c167bf5803656
Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-02-07 20:24:49 +00:00
Steve Shin
460bc633b1 ENIC driver patch to fix MAC address add and remove
The mac_addr_add callback function was simply replacing the primary MAC
address instead of adding new ones and the mac_addr_remove callback would
only remove the primary MAC form the adapter. Fix the functions to add or
remove new address. Allow up to 64 MAC addresses per port.

Change-Id: Ieff396ae27505c4c09f028911eff907757b03c7d
Signed-off-by: Steve Shin <jonshin@cisco.com>
2017-02-02 12:36:45 +00:00
Steve Shin
676112f81e Bump up PKG_SUFFIX to vpp3
Change-Id: Ib5e95d5e5a3da5fb395b26177f7dd17e90afd69d
Signed-off-by: Steve Shin <jonshin@cisco.com>
2017-01-31 09:19:18 +00:00
Sergio Gonzalez Monroy
d04b60bfa9 dpdk: rework cryptodev ipsec build and setup
Build Cryptodev IPsec support by default when DPDK is enabled but only build
hardware Cryptodev PMDs.

To enable Cryptodev support, a new startup.conf option for dpdk has been
introduced 'enable-cryptodev'.

During VPP init, if Cryptodev support is not enabled or not enough cryptodev
resources are available then default to OpenSSL ipsec implementation.

Change-Id: I5aa7e0d5c2676bdb41d775ef40364536a081956d
Signed-off-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
2017-01-27 20:52:17 +00:00
Damjan Marion
248968be0f Fix cosmetic issue in dpdk/Makefile
Change-Id: I95684396e3dad53ddf7479467a36a5b68e5703cf
Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-01-21 16:24:02 +00:00
Damjan Marion
2ce7f9834a Add dpdk development packaging
Change-Id: I6aa2a6709241d99ce734c29e47487eb456907351
Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-01-20 15:02:12 +00:00
Damjan Marion
68fda1c47c dpdk: do not build igb_uio module
igb_uio is anyway build out of source from dkms package
so there is no need to build it here.

Also, this creates issues in cases where kernel headers are not
available (i.e. building inside containers).

Change-Id: I270598a94dc67ad0b31e7f0db9ed6bd6fc8cfe30
Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-01-02 13:22:24 +00:00
Damjan Marion
696f1adec0 dpdk: Add support for Mellanox ConnectX-4 devices
Due to external library dependency support for Mellanox
devices is disabled. To enable it uncoment following line:

vpp_uses_dpdk_mlx5_pmd = yes

in build-data/platforms/vpp.mk and install OFED libraries.

Change-Id: I131d52b5d449a958349f31f9cc04311948f78b71
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-12-26 14:53:35 +00:00
Sergio Gonzalez Monroy
a10f62b11e dpdk: add ipsec cryptodev support
DPDK Cryptodev support and related IPsec ESP nodes using DPDK Cryptodev APIs.

When DPDK Cryptodev support is enabled, the node graph is modified by adding
and replacing some of the nodes.

The following nodes are replaced:
* esp-encrypt -> dpdk-esp-encrypt
* esp-decrypt -> dpdk-esp-decrypt

The following nodes are added:
* dpdk-crypto-input : polling input node
* dpdk-esp-encrypt-post : internal node
* dpdk-esp-decrypt-post : internal node

Change-Id: I6dca9a890abaf4fb2a4fffce3fd08ac013e4d701
Signed-off-by: Zhang, Roy Fan <roy.fan.zhang@intel.com>
Signed-off-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
2016-11-28 11:29:50 +00:00
Damjan Marion
f3ebeda1da dpdk: remove old patches
Change-Id: I31244207ca5420558c6ff00b2021126ff5628e08
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-11-24 09:24:05 +00:00
Damjan Marion
e0a2d1796a dpdk: switch to 16.11
Change-Id: Icf9de5b89e5c2cda763e52d528fb70091860a754
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-11-23 22:39:02 +00:00
Damjan Marion
d4895d5415 dpdk: add build support for DPDK 16.11 release
Change-Id: Icec79bfc5d786cd293520b1dcc6b8dccd1419acb
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-11-14 20:48:54 +00:00
Damjan Marion
66bcab2fff dpdk: bump to 16.11-rc3 release
Tarball available at:
 http://dpdk.org/browse/dpdk/snapshot/dpdk-16.11-rc3.tar.xz

Change-Id: Ib34f32206d866888c4b5bf6609b8ae53f570daaa
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-11-09 13:08:30 +00:00
Damjan Marion
39162275f6 dpdk: enable building with dpdk 16.11-rc1
Works with:

http://dpdk.org/browse/dpdk/snapshot/dpdk-16.11-rc1.tar.xz

placed into dpdk/ or ~/Downloads

Change-Id: I17f6a721529dbefc796f555e2525d157b9bf8740
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-10-26 20:14:17 +00:00
Dave Barach
3389bbcad0 VPP-180 Clean up multi-socket / multi-chunk mempool discovery
Change the default DPDK version to 16.07, and rename the indicated
patch directory. Use the native vhost-user driver.

Change-Id: Ie3d17e90e363ce86f0233b58c152de683b5d9456
Signed-off-by: Dave Barach <dave@barachs.net>
2016-08-03 15:18:37 +00:00
Sachin
734d291c2e VPP: Fixed dpdk-16.07 BAD checksum error
- Updated tarball name and checksum value

Change-Id: If06581285e506859bd1edb516b690e963c7de5d0
Signed-off-by: Sachin <sachin.saxena@nxp.com>
2016-08-02 11:35:48 +05:30
Damjan Marion
1f0da170e8 Add DPDK 16.07 support (rc3 based)
DPDK vhost-user support is disabled due to significan changes
in the DPDK vhost-user code which are not compatible with current
VPP code.

Change-Id: I3f0d28cb75f6370282ec7e33d57cbfb77e1a3ce1
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-07-22 09:10:58 +02:00
Damjan Marion
a15568029a Enable PCI extended tags in the DPDK config
This change should improve DPDK performance on 40G+ NICs
with small packets.
It also removes ITR setting for i40e devices, allowing driver to set default.

Change-Id: I70761b155e48fb0281f7c231516d83027bd16ca2
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-07-02 12:22:43 +00:00
Thomas Monjalon
96e10b554f dpdk: download from dpdk.org
The tarball repository fast.dpdk.org is fast and reliable enough
to be used in VPP build process.

Change-Id: Ifaae57d6f8308127b93fc51b2a2a863da5766cd2
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
2016-06-05 08:45:40 +00:00
Damjan Marion
1c80e831b7 Add support for multiple microarchitectures in single binary
* compiler -march= parameter is changed from native to corei7
   so code is always genereted with instructions which are available
   on the Nehalem microarchitecture (up to SSE4.2)

 * compiler -mtune= parameter is added so code is optimized for
   corei7-avx which equals to Sandy Bridge microarchitecture

 * set of macros is added which allows run-time detection of available
   cpu instructions (e.g. clib_cpu_supports_avx())

 * set of macros is added which allows us to clone graph node funcitons
   where cloned function is optmized for different microarchitecture
   Those macros are using following attributes:
     __attribute__((flatten))
     __attribute__((target("arch=core-avx2)))

   I.e. If applied to foo_node_fn() macro will generate cloned
   functions foo_node_fn_avx2() and foo_node_fn_avx512() (future)
   It will also generate function void * foo_node_fn_multiarch_select()
   which detects available instruction set and returns pointer to the
   best matching function clone.

Change-Id: I2dce0ac92a5ede95fcb56f47f3d1f3c4c040bac0
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-05-19 18:14:38 +02:00
Christophe Fontaine
737547efc3 dpdk/Makefile - Allow dpdk target to be set according to the platform
Allows DPDK parameters to be overriden from the platform
definition.

$(PLATFORM)_dpdk_arch = "armv7a"
$(PLATFORM)_dpdk_target = "arm-armv7a-linuxapp-gcc"
$(PLATFORM)_dpdk_make_extra_args = "CONFIG_RTE_EAL_IGB_UIO=y"

Change-Id: I8c0f233942744cb82ca3ed2d65e33acee845cb4e
Signed-off-by: Christophe Fontaine <christophe.fontaine@qosmos.com>
2016-05-17 19:39:25 +00:00
Ed Warnicke
59611303fb Switch to using nexus.fd.io for dpdk tarball
Change-Id: I9751cbb9137627491ee4bd03e0318429327c0bd8
Signed-off-by: Ed Warnicke <eaw@cisco.com>
2016-05-07 13:02:42 +00:00
Damjan Marion
e39a7b8347 Fix compile errors reported by clang
For using clang as a compiler it is enough
to specify CC=clang in the make command line

Change-Id: I06f1c1d418b68768f8119de5bdc8748c51f90c02
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-04-26 16:16:44 +00:00
Dave Barach
fed985c898 Build vpp w/ dpdk-16.04 by default
Change-Id: I82cdd82213517c51064eb439c44068d8977e5619
Signed-off-by: Dave Barach <dave@barachs.net>
2016-04-26 09:58:54 +00:00
Damjan Marion
106f0eda8d Gernerate dpdk config out of target specific files
DPDK 16.04 introduced new config parameter RTE_ARCH_X86
which was missing in the dpdk/Makefile

That caused issues with virtio devices on older kernels
(observed on 3.13.0).

This patch changes the source of generated config so
it will also include all defines in config/defconfig_TARGET
file.

Change-Id: Idc6ccbef1d01da84235281ea1078c081846446de
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-04-26 09:58:19 +00:00
Damjan Marion
c42552d4e0 Add support for DPDK 16.04 release, rebase some of 2.2.0 patches
Change-Id: I08292ba39dc6012c2edbcdaed0b02a8ebe07aec4
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-04-12 12:11:15 +00:00
Damjan Marion
5ba5f83b79 Bump DPDK 16.04 to RC4
Change-Id: Ia9affeee54e860b6039d7ee0f411bd022b1dc76c
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-04-11 13:04:16 +00:00
Damjan Marion
0df78dda5a Add DPDK 16.04-rc2 support
Can be used by specifying DPDK_VERSION=16.04-rc2 in the make command line

Change-Id: I657b44d7ca22f1ef57756e7703088020fab12bc6
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-03-29 21:25:12 +00:00
Damjan Marion
dab123ba69 Add abbility to specify dpdk tarball download base url
Change-Id: Ieceb0b1f4ab69609961d8946f627dd9311963da5
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-03-29 15:24:49 +00:00
Damjan Marion
1901020228 Use rte_mempool private data for storing vlib_buffer_t
Change-Id: If3fc88a35bc0b736376113a39667caea42802ea1
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-03-25 20:55:15 +00:00
Jean-Mickael Guerin
966a8b868b dpdk: fix link error
/usr/bin/ld: -f may not be used without -shared
collect2: error: ld returned 1 exit status

Indeed an extra "-fPIC" is given to ld, see the -Wl,-fPIC below:

gcc -pie -fPIC -pthread  -march=native -DRTE_MACHINE_CPUFLAG_SSE -DRTE_MACHINE_CPUFLAG_SSE2 -DRTE_MACHINE_CPUFLAG_SSE3 -DRTE_MACHINE_CPUFLAG_SSSE3 -DRTE_MACHINE_CPUFLAG_SSE4_1 -DRTE_MACHINE_CPUFLAG_SSE4_2 -DRTE_MACHINE_CPUFLAG_AES -DRTE_MACHINE_CPUFLAG_PCLMULQDQ -DRTE_MACHINE_CPUFLAG_AVX -DRTE_COMPILE_TIME_CPUFLAGS=RTE_CPUFLAG_SSE,RTE_CPUFLAG_SSE2,RTE_CPUFLAG_SSE3,RTE_CPUFLAG_SSSE3,RTE_CPUFLAG_SSE4_1,RTE_CPUFLAG_SSE4_2,RTE_CPUFLAG_AES,RTE_CPUFLAG_PCLMULQDQ,RTE_CPUFLAG_AVX  -I/home/jmg/dev/vpp/build-root/install-vpp_debug-native/dpdk/include -include /home/jmg/dev/vpp/build-root/install-vpp_debug-native/dpdk/include/rte_config.h -O3 -W -Wall -Werror -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wold-style-definition -Wpointer-arith -Wcast-align -Wnested-externs -Wcast-qual -Wformat-nonliteral -Wformat-security -Wundef -Wwrite-strings -D_GNU_SOURCE  -Wl,-Map=test.map,--cref -o test commands.o test.o test_pci.o test_prefetch.o test_byteorder.o test_per_lcore.o test_atomic.o test_malloc.o test_cycles.o test_spinlock.o test_memory.o test_memzone.o test_ring.o test_ring_perf.o test_pmd_perf.o test_rwlock.o test_mempool.o test_mempool_perf.o test_mbuf.o test_logs.o test_memcpy.o test_memcpy_perf.o test_hash.o test_thash.o test_hash_perf.o test_hash_functions.o test_hash_scaling.o test_debug.o test_errno.o test_tailq.o test_string_fns.o test_cpuflags.o test_mp_secondary.o test_eal_flags.o test_eal_fs.o test_alarm.o test_interrupts.o test_version.o test_func_reentrancy.o test_cmdline.o test_cmdline_num.o test_cmdline_etheraddr.o test_cmdline_portlist.o test_cmdline_ipaddr.o test_cmdline_cirbuf.o test_cmdline_string.o test_cmdline_lib.o test_red.o test_sched.o test_meter.o test_kni.o test_common.o test_devargs.o virtual_pmd.o packet_burst_generator.o test_link_bonding.o test_link_bonding_mode4.o test_link_bonding_rssconf.o test_pmd_ring.o test_pmd_ring_perf.o test_cryptodev_perf.o test_cryptodev.o test_kvargs.o -Wl,-pie -Wl,-fPIC -Wl,--no-as-needed -Wl,-export-dynamic -L/home/jmg/dev/vpp/build-root/install-vpp_debug-native/dpdk/lib -Wl,-g -L/home/jmg/dev/vpp/build-root/install-vpp_debug-native/dpdk/lib -Wl,--whole-archive -Wl,-ldpdk -Wl,--start-group -Wl,-lrt -Wl,-lm -Wl,-ldl -Wl,--end-group -Wl,--no-whole-archive

Fixed by unsetting the flags -pie -fPIC out of LDFLAGS, these are not
options for the linker.

$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.3.1-10ubuntu2' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 5.3.1 20160225 (Ubuntu 5.3.1-10ubuntu2)

Change-Id: Iffbebfbb625e8831822ec092bea88dea42f12930
Signed-off-by: Jean-Mickael Guerin <jean-mickael.guerin@6wind.com>
2016-03-14 09:14:18 +00:00
John Lo
d9bf9abbab Add support of Ethernet link bonding utilizing DPDK link bonding
poll mode driver library. The bonded interfaces to be created on
VPP startup is specified in the dpdk section of startup.conf
or qn.conf, using DPDK EAL command. Following is an example of a
dpdk section white listing PCI addressses of 4 ethernet interfacess
to be under VPP control plus two bonded interface and the PCI addresses
of the slaves in each:
dpdk { socket-mem 1024,1024
dev 0000:0f:00.0 dev 0000:10:00.0 dev 0000:11:00.0 dev 0000:12:00.0
vdev eth_bond0,mode=2,slave=0000:0f:00.0,slave=0000:11:00.0,xmit_policy=l34
vdev  eth_bond1,mode=2,slave=0000:10:00.0,slave=0000:12:00.0,xmit_policy=l34
}
Note that only balance XOR (mode 2) is supported and "xmit_policy=l34"
specifies to use layer 3 SIP/DIP and layer 4 Sport/Dport for load
balance. Using "xmit_policy=l2" for SMAC/DMAC or "xmit_policy=l23" for
SMAC/DMAC and SIP/DIP should also work.

Change-Id: Iaf6438686fa20cce893cb5a823b76e2886b4360b
Signed-off-by: John Lo <loj@cisco.com>
2016-02-25 17:55:16 +00:00
Damjan Marion
13f0718e64 Increase number of dpdk lcores to 256
Change-Id: Ia0e228d02fd9f180ed9ca468074ab38d575e415e
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-02-13 00:14:53 +00:00
Damjan Marion
eec5a51c12 Change default dpdk version to 2.2
Change-Id: Iea686ed26d37539d60e52ac1205517512091edab
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-02-02 15:00:35 +00:00
Damjan Marion
bce6b6a6bf Introduce support for DPDK 2.2
Change-Id: Id2c7c4a949363a448a6715463dd81f701f046b93
Signed-off-by: Damjan Marion <damarion@cisco.com>
2015-12-16 10:01:02 +01:00
Ed Warnicke
cb9cadad57 Initial commit of vpp code.
Change-Id: Ib246f1fbfce93274020ee93ce461e3d8bd8b9f17
Signed-off-by: Ed Warnicke <eaw@cisco.com>
2015-12-08 15:47:27 -07:00