Add a vpp-dpdk-dev package, enable plugins to use dpdk APIs directly

Change-Id: I69db06a0b5d5d556c2fd570ea0056bb59d7bc3d6
Signed-off-by: Dave Barach <dave@barachs.net>
diff --git a/.gitignore b/.gitignore
index 05d08a6..f0b17c0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,6 +3,7 @@
 /build-root/build-*/
 /build-root/install-*/
 /build-root/tools
+/build-root/dpdk-includes/
 /build-root/packages-vpp/
 /build-root/path_setup
 /build-root/build-config.mk
diff --git a/build-data/platforms.mk b/build-data/platforms.mk
index 38f840e..988be14 100644
--- a/build-data/platforms.mk
+++ b/build-data/platforms.mk
@@ -36,6 +36,10 @@
 	./scripts/find-dev-contents $(INSTALL_PREFIX)$(ARCH)		\
 	 deb/debian/vpp-dev.install ;					\
 									\
+	: dpdk headers ;						\
+	./scripts/find-dpdk-contents $(INSTALL_PREFIX)$(ARCH)		\
+	 deb/debian/vpp-dpdk-dev.install ;				\
+									\
 	: bin package needs startup config ; 				\
 	echo ../../vpp/conf/startup.conf /etc/vpp 			\
 	   >> deb/debian/vpp.install ;					\
diff --git a/build-root/deb/debian/.gitignore b/build-root/deb/debian/.gitignore
index 261ea48..e7868b4 100644
--- a/build-root/deb/debian/.gitignore
+++ b/build-root/deb/debian/.gitignore
@@ -7,6 +7,7 @@
 vpp/
 vpp-dev/
 vpp-lib/
+vpp-dpdk-dev/
 vpp-dpdk-dkms/
 vpp-dbg/
 vppctl/
diff --git a/build-root/deb/debian/control b/build-root/deb/debian/control
index a90cea7..cf22fd0 100644
--- a/build-root/deb/debian/control
+++ b/build-root/deb/debian/control
@@ -23,16 +23,16 @@
 Architecture: any
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Description: Vector Packet Processing--development support
- This package contains development support files for the VPP libraries, including:
+ This package contains development support files for the VPP libraries
  .
- Do we need to list those header files or just leave it blank ?
- dynamic vectors (vec.c), dynamic bitmaps (bitmap.h), allocation heap of
- objects (heap.c), allocation pool(pool.h), dynamic hash tables (hash.c), memory
- allocator (mheap.c), extendable printf-like interface built on top of vectors
- (format.c), formats for data structures (std-formats.c), and support for clock
- time-based function calls (timer.c).
+
+Package: vpp-dpdk-dev
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: Vector Packet Processing--development support
+ This package contains dpdk header files which match the dpdk version
+ compiled into the vpp executable
  .
- TODO: reference and describe only the .h files
 
 Package: vpp-lib
 Architecture: any
diff --git a/build-root/scripts/find-dpdk-contents b/build-root/scripts/find-dpdk-contents
new file mode 100755
index 0000000..f8c80b5
--- /dev/null
+++ b/build-root/scripts/find-dpdk-contents
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+# includes
+rm -rf dpdk-includes
+mkdir dpdk-includes
+(cd $1/dpdk/include; tar cfh - . | (cd ../../../dpdk-includes; tar xf -))
+
+paths=`cd dpdk-includes; find . -type f -print`
+rm -f $2
+
+for path in $paths
+do
+    dir=`dirname $path`
+    if [ $dir = "." ] ; then
+        echo ../dpdk-includes/$path /usr/include/vpp-dpdk >> $2
+    else
+        echo ../dpdk-includes/$path /usr/include/vpp-dpdk/$dir >> $2
+    fi
+done        
+