if [ "$DPDK" ]; then
if [ -z "$DPDK_VER" ]; then
- DPDK_VER="2.0.0"
+ DPDK_VER="2.1.0"
fi
install_dpdk $DPDK_VER
if [ "$CC" = "clang" ]; then
Martino Fornasa mf@fornasa.it
Maryam Tahhan maryam.tahhan@intel.com
Mehak Mahajan mmahajan@nicira.com
+Michal Weglicki michalx.weglicki@intel.com
Mijo Safradin mijo@linux.vnet.ibm.com
Minoru TAKAHASHI takahashi.minoru7@gmail.com
Murphy McCauley murphy.mccauley@gmail.com
Thomas Goirand zigo@debian.org
Thomas Graf tgraf@noironetworks.com
Thomas Lacroix thomas.lacroix@citrix.com
+Timo Puha timox.puha@intel.com
Todd Deshane deshantm@gmail.com
Tom Everman teverman@google.com
Tsvi Slonim tsvi@toroki.com
Building and Installing:
------------------------
-Required: DPDK 2.0
+Required: DPDK 2.1
Optional (if building with vhost-cuse): `fuse`, `fuse-devel` (`libfuse-dev`
on Debian/Ubuntu)
1. Set `$DPDK_DIR`
```
- export DPDK_DIR=/usr/src/dpdk-2.0
+ export DPDK_DIR=/usr/src/dpdk-2.1
cd $DPDK_DIR
```
`CONFIG_RTE_BUILD_COMBINE_LIBS=y`
- Update `config/common_linuxapp` so that DPDK is built with vhost
- libraries.
-
- `CONFIG_RTE_LIBRTE_VHOST=y`
-
Then run `make install` to build and install the library.
For default install without IVSHMEM:
3. Bind network device to vfio-pci:
`$DPDK_DIR/tools/dpdk_nic_bind.py --bind=vfio-pci eth1`
-3. Mount the hugetable filsystem
+3. Mount the hugetable filesystem
`mount -t hugetlbfs -o pagesize=1G none /dev/hugepages`
DPDK vhost:
-----------
-DPDK 2.0 supports two types of vhost:
+DPDK 2.1 supports two types of vhost:
1. vhost-user
2. vhost-cuse
DPDK vhost-user Prerequisites:
-------------------------
-1. DPDK 2.0 with vhost support enabled as documented in the "Building and
+1. DPDK 2.1 with vhost support enabled as documented in the "Building and
Installing section"
2. QEMU version v2.1.0+
DPDK vhost-cuse Prerequisites:
-------------------------
-1. DPDK 2.0 with vhost support enabled as documented in the "Building and
+1. DPDK 2.1 with vhost support enabled as documented in the "Building and
Installing section"
As an additional step, you must enable vhost-cuse in DPDK by setting the
following additional flag in `config/common_linuxapp`:
DPDK_INCLUDE=$RTE_SDK/include
DPDK_LIB_DIR=$RTE_SDK/lib
- DPDK_LIB="-lintel_dpdk"
+ DPDK_LIB="-ldpdk"
DPDK_EXTRA_LIB=""
AC_COMPILE_IFELSE(
/*
* need to reserve tons of extra space in the mbufs so we can align the
* DMA addresses to 4KB.
+ * The minimum mbuf size is limited to avoid scatter behaviour and drop in
+ * performance for standard Ethernet MTU.
*/
-
#define MTU_TO_MAX_LEN(mtu) ((mtu) + ETHER_HDR_LEN + ETHER_CRC_LEN)
-#define MBUF_SIZE(mtu) (MTU_TO_MAX_LEN(mtu) + (512) + \
- sizeof(struct rte_mbuf) + RTE_PKTMBUF_HEADROOM)
+#define MBUF_SIZE_MTU(mtu) (MTU_TO_MAX_LEN(mtu) \
+ + sizeof(struct dp_packet) \
+ + RTE_PKTMBUF_HEADROOM)
+#define MBUF_SIZE_DRIVER (2048 \
+ + sizeof (struct rte_mbuf) \
+ + RTE_PKTMBUF_HEADROOM)
+#define MBUF_SIZE(mtu) MAX(MBUF_SIZE_MTU(mtu), MBUF_SIZE_DRIVER)
/* Max and min number of packets in the mempool. OVS tries to allocate a
* mempool with MAX_NB_MBUF: if this fails (because the system doesn't have