@@ -71,7 +71,7 @@ fi
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
@@ -16,7 +16,7 @@ OVS needs a system with 1GB hugepages support.
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)
@@ -24,7 +24,7 @@ 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
```
@@ -33,11 +33,6 @@ on Debian/Ubuntu)
`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:
@@ -112,7 +107,7 @@ Using the DPDK with ovs-vswitchd:
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`
@@ -315,7 +310,7 @@ the vswitchd.
DPDK vhost:
-----------
-DPDK 2.0 supports two types of vhost:
+DPDK 2.1 supports two types of vhost:
1. vhost-user
2. vhost-cuse
@@ -336,7 +331,7 @@ with OVS.
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+
@@ -418,7 +413,7 @@ with OVS.
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`:
@@ -172,7 +172,7 @@ AC_DEFUN([OVS_CHECK_DPDK], [
DPDK_INCLUDE=$RTE_SDK/include
DPDK_LIB_DIR=$RTE_SDK/lib
- DPDK_LIB="-lintel_dpdk"
+ DPDK_LIB="-ldpdk"
DPDK_EXTRA_LIB=""
AC_COMPILE_IFELSE(
@@ -65,11 +65,17 @@ static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(5, 20);
/*
* 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