[dpdk] Initial commit

Neil Horman nhorman at fedoraproject.org
Fri Jun 6 21:00:28 UTC 2014


commit 851bae4c15a7288fc93592abc8533571e6f9db73
Author: Neil Horman <nhorman at tuxdriver.com>
Date:   Fri Jun 6 17:00:32 2014 -0400

    Initial commit

 .gitignore                            |    1 +
 common_linuxapp                       |  339 +++++++++++++++++++++++++++++++++
 defconfig_i686-default-linuxapp-gcc   |   68 +++++++
 defconfig_x86_64-default-linuxapp-gcc |   68 +++++++
 dpdk-1.7.0-igb_uio_disable.patch      |   15 ++
 dpdk.spec                             |  134 +++++++++++++
 sources                               |    1 +
 7 files changed, 626 insertions(+), 0 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index e69de29..60c9a74 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/dpdk-1.7.0-20140603git5ebbb1728.tgz
diff --git a/common_linuxapp b/common_linuxapp
new file mode 100644
index 0000000..8e22ecd
--- /dev/null
+++ b/common_linuxapp
@@ -0,0 +1,339 @@
+#   BSD LICENSE
+# 
+#   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+#   All rights reserved.
+# 
+#   Redistribution and use in source and binary forms, with or without
+#   modification, are permitted provided that the following conditions
+#   are met:
+# 
+#     * Redistributions of source code must retain the above copyright
+#       notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above copyright
+#       notice, this list of conditions and the following disclaimer in
+#       the documentation and/or other materials provided with the
+#       distribution.
+#     * Neither the name of Intel Corporation nor the names of its
+#       contributors may be used to endorse or promote products derived
+#       from this software without specific prior written permission.
+# 
+#   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+#   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+#   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+#   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+#   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+#   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+#   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+#   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+#   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+#   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+#   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+#
+# define executive environment
+#
+# CONFIG_RTE_EXEC_ENV can be linuxapp, baremetal
+#
+CONFIG_RTE_EXEC_ENV="linuxapp"
+CONFIG_RTE_EXEC_ENV_LINUXAPP=y
+
+##
+## machine can define specific variables or action for a specific board
+## RTE_MACHINE can be:
+## default  nothing specific
+## native   current machine
+## atm      Intel® Atom™ microarchitecture
+## nhm      Intel® microarchitecture code name Nehalem
+## wsm      Intel® microarchitecture code name Westmere
+## snb      Intel® microarchitecture code name Sandy Bridge
+## ivb      Intel® microarchitecture code name Ivy Bridge
+##
+## Note: if your compiler does not support the relevant -march options,
+## it will be compiled with whatever latest processor the compiler supports!
+##
+#CONFIG_RTE_MACHINE="native"
+#
+##
+## define the architecture we compile for.
+## CONFIG_RTE_ARCH can be i686, x86_64, x86_64_32
+##
+#CONFIG_RTE_ARCH="x86_64"
+#CONFIG_RTE_ARCH_X86_64=y
+#
+##
+## The compiler we use.
+## Can be gcc or icc.
+##
+#CONFIG_RTE_TOOLCHAIN="gcc"
+#CONFIG_RTE_TOOLCHAIN_GCC=y
+
+#
+# Use intrinsics or assembly code for key routines
+#
+CONFIG_RTE_FORCE_INTRINSICS=n
+
+#
+# Compile to share library
+#
+CONFIG_RTE_BUILD_SHARED_LIB=y
+
+#
+# Combine to one single library
+#
+CONFIG_RTE_BUILD_COMBINE_LIBS=n
+CONFIG_RTE_LIBNAME="intel_dpdk"
+
+#
+# Compile libc directory
+#
+CONFIG_RTE_LIBC=n
+
+#
+# Compile newlib as libc from source
+#
+CONFIG_RTE_LIBC_NEWLIB_SRC=n
+
+#
+# Use binary newlib
+#
+CONFIG_RTE_LIBC_NEWLIB_BIN=n
+
+#
+# Use binary newlib
+#
+CONFIG_RTE_LIBC_NETINCS=n
+
+#
+# Compile libgloss (newlib-stubs)
+#
+CONFIG_RTE_LIBGLOSS=n
+
+#
+# Compile Environment Abstraction Layer
+#
+CONFIG_RTE_LIBRTE_EAL=y
+CONFIG_RTE_MAX_LCORE=64
+CONFIG_RTE_MAX_NUMA_NODES=8
+CONFIG_RTE_MAX_MEMSEG=256
+CONFIG_RTE_MAX_MEMZONE=2560
+CONFIG_RTE_MAX_TAILQ=32
+CONFIG_RTE_LOG_LEVEL=8
+CONFIG_RTE_LOG_HISTORY=256
+CONFIG_RTE_LIBEAL_USE_HPET=n
+CONFIG_RTE_EAL_ALLOW_INV_SOCKET_ID=n
+CONFIG_RTE_EAL_ALWAYS_PANIC_ON_ERROR=n
+
+#
+# Compile Environment Abstraction Layer for linux
+#
+CONFIG_RTE_LIBRTE_EAL_LINUXAPP=y
+
+#
+# Compile Environment Abstraction Layer for Bare metal
+#
+CONFIG_RTE_LIBRTE_EAL_BAREMETAL=n
+
+#
+# Compile Environment Abstraction Layer to support Vmware TSC map
+# 
+CONFIG_RTE_LIBRTE_EAL_VMWARE_TSC_MAP_SUPPORT=y
+
+#
+# Compile the argument parser library
+#
+CONFIG_RTE_LIBRTE_KVARGS=y
+
+#
+# Compile generic ethernet library
+#
+CONFIG_RTE_LIBRTE_ETHER=y
+CONFIG_RTE_LIBRTE_ETHDEV_DEBUG=n
+CONFIG_RTE_MAX_ETHPORTS=32
+CONFIG_RTE_LIBRTE_IEEE1588=n
+CONFIG_RTE_ETHDEV_QUEUE_STAT_CNTRS=16
+
+#
+# Compile burst-oriented IGB & EM PMD drivers
+#
+CONFIG_RTE_LIBRTE_EM_PMD=n
+CONFIG_RTE_LIBRTE_IGB_PMD=n
+CONFIG_RTE_LIBRTE_E1000_DEBUG_INIT=n
+CONFIG_RTE_LIBRTE_E1000_DEBUG_RX=n
+CONFIG_RTE_LIBRTE_E1000_DEBUG_TX=n
+CONFIG_RTE_LIBRTE_E1000_DEBUG_TX_FREE=n
+CONFIG_RTE_LIBRTE_E1000_DEBUG_DRIVER=n
+CONFIG_RTE_LIBRTE_E1000_PF_DISABLE_STRIP_CRC=n
+
+#
+# Compile burst-oriented IXGBE PMD driver
+#
+CONFIG_RTE_LIBRTE_IXGBE_PMD=n
+CONFIG_RTE_LIBRTE_IXGBE_DEBUG_INIT=n
+CONFIG_RTE_LIBRTE_IXGBE_DEBUG_RX=n
+CONFIG_RTE_LIBRTE_IXGBE_DEBUG_TX=n
+CONFIG_RTE_LIBRTE_IXGBE_DEBUG_TX_FREE=n
+CONFIG_RTE_LIBRTE_IXGBE_DEBUG_DRIVER=n
+CONFIG_RTE_LIBRTE_IXGBE_PF_DISABLE_STRIP_CRC=n
+CONFIG_RTE_LIBRTE_IXGBE_RX_ALLOW_BULK_ALLOC=y
+CONFIG_RTE_LIBRTE_IXGBE_ALLOW_UNSUPPORTED_SFP=n
+
+#
+# Compile burst-oriented VIRTIO PMD driver
+#
+CONFIG_RTE_LIBRTE_VIRTIO_PMD=y
+CONFIG_RTE_LIBRTE_VIRTIO_DEBUG_INIT=n
+CONFIG_RTE_LIBRTE_VIRTIO_DEBUG_RX=n
+CONFIG_RTE_LIBRTE_VIRTIO_DEBUG_TX=n
+CONFIG_RTE_LIBRTE_VIRTIO_DEBUG_DRIVER=n
+CONFIG_RTE_LIBRTE_VIRTIO_DEBUG_DUMP=n
+
+#
+# Compile burst-oriented VMXNET3 PMD driver
+#
+CONFIG_RTE_LIBRTE_VMXNET3_PMD=y
+CONFIG_RTE_LIBRTE_VMXNET3_DEBUG_INIT=n
+CONFIG_RTE_LIBRTE_VMXNET3_DEBUG_RX=n
+CONFIG_RTE_LIBRTE_VMXNET3_DEBUG_TX=n
+CONFIG_RTE_LIBRTE_VMXNET3_DEBUG_TX_FREE=n
+CONFIG_RTE_LIBRTE_VMXNET3_DEBUG_DRIVER=n
+
+#
+# Compile example software rings based PMD
+#
+CONFIG_RTE_LIBRTE_PMD_RING=y
+CONFIG_RTE_PMD_RING_MAX_RX_RINGS=16
+CONFIG_RTE_PMD_RING_MAX_TX_RINGS=16
+
+#
+# Compile software PMD backed by PCAP files
+#
+CONFIG_RTE_LIBRTE_PMD_PCAP=y
+
+
+CONFIG_RTE_LIBRTE_PMD_XENVIRT=n
+
+#
+# Do prefetch of packet data within PMD driver receive function
+#
+CONFIG_RTE_PMD_PACKET_PREFETCH=y
+
+#
+# Compile librte_ring
+#
+CONFIG_RTE_LIBRTE_RING=y
+CONFIG_RTE_LIBRTE_RING_DEBUG=n
+CONFIG_RTE_RING_SPLIT_PROD_CONS=n
+
+#
+# Compile librte_mempool
+#
+CONFIG_RTE_LIBRTE_MEMPOOL=y
+CONFIG_RTE_MEMPOOL_CACHE_MAX_SIZE=512
+CONFIG_RTE_LIBRTE_MEMPOOL_DEBUG=n
+
+#
+# Compile librte_mbuf
+#
+CONFIG_RTE_LIBRTE_MBUF=y
+CONFIG_RTE_LIBRTE_MBUF_DEBUG=n
+CONFIG_RTE_MBUF_SCATTER_GATHER=y
+CONFIG_RTE_MBUF_REFCNT_ATOMIC=y
+CONFIG_RTE_PKTMBUF_HEADROOM=128
+
+#
+# Compile librte_timer
+#
+CONFIG_RTE_LIBRTE_TIMER=y
+CONFIG_RTE_LIBRTE_TIMER_DEBUG=n
+
+#
+# Compile librte_malloc
+#
+CONFIG_RTE_LIBRTE_MALLOC=y
+CONFIG_RTE_LIBRTE_MALLOC_DEBUG=n
+CONFIG_RTE_MALLOC_MEMZONE_SIZE=11M
+
+#
+# Compile librte_cmdline
+#
+CONFIG_RTE_LIBRTE_CMDLINE=y
+CONFIG_RTE_LIBRTE_CMDLINE_DEBUG=n
+
+#
+# Compile librte_hash
+#
+CONFIG_RTE_LIBRTE_HASH=y
+CONFIG_RTE_LIBRTE_HASH_DEBUG=n
+
+#
+# Compile librte_lpm
+#
+CONFIG_RTE_LIBRTE_LPM=y
+CONFIG_RTE_LIBRTE_LPM_DEBUG=n
+
+#
+# Compile librte_power
+#
+CONFIG_RTE_LIBRTE_POWER=y
+CONFIG_RTE_LIBRTE_POWER_DEBUG=n
+CONFIG_RTE_MAX_LCORE_FREQS=64
+
+#
+# Compile librte_net
+#
+CONFIG_RTE_LIBRTE_NET=y
+
+#
+# Compile librte_meter
+#
+CONFIG_RTE_LIBRTE_METER=y
+
+#
+# Compile librte_sched
+#
+CONFIG_RTE_LIBRTE_SCHED=y
+CONFIG_RTE_SCHED_RED=n
+CONFIG_RTE_SCHED_COLLECT_STATS=n
+CONFIG_RTE_SCHED_SUBPORT_TC_OV=n
+CONFIG_RTE_SCHED_PORT_N_GRINDERS=8
+
+#
+# Compile the test application
+# Compile librte_kni
+#
+CONFIG_RTE_LIBRTE_KNI=y
+CONFIG_RTE_KNI_KO_DEBUG=n
+CONFIG_RTE_KNI_VHOST=n
+CONFIG_RTE_KNI_VHOST_MAX_CACHE_SIZE=1024
+CONFIG_RTE_KNI_VHOST_VNET_HDR_EN=n
+CONFIG_RTE_KNI_VHOST_DEBUG_RX=n
+CONFIG_RTE_KNI_VHOST_DEBUG_TX=n
+
+#
+#Compile Xen domain0 support
+#
+CONFIG_RTE_LIBRTE_XEN_DOM0=n
+
+#
+# Enable warning directives
+#
+CONFIG_RTE_INSECURE_FUNCTION_WARNING=n
+
+#
+# Compile the test application
+#
+CONFIG_RTE_APP_TEST=y
+
+#
+# Compile the PMD test application
+#
+CONFIG_RTE_TEST_PMD=y
+CONFIG_RTE_TEST_PMD_RECORD_CORE_CYCLES=n
+CONFIG_RTE_TEST_PMD_RECORD_BURST_STATS=n
+
+#
+# Support NIC bypass logic
+#
+CONFIG_RTE_NIC_BYPASS=n
+
diff --git a/defconfig_i686-default-linuxapp-gcc b/defconfig_i686-default-linuxapp-gcc
new file mode 100644
index 0000000..6aaf124
--- /dev/null
+++ b/defconfig_i686-default-linuxapp-gcc
@@ -0,0 +1,68 @@
+#   BSD LICENSE
+# 
+#   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+#   All rights reserved.
+# 
+#   Redistribution and use in source and binary forms, with or without
+#   modification, are permitted provided that the following conditions
+#   are met:
+# 
+#     * Redistributions of source code must retain the above copyright
+#       notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above copyright
+#       notice, this list of conditions and the following disclaimer in
+#       the documentation and/or other materials provided with the
+#       distribution.
+#     * Neither the name of Intel Corporation nor the names of its
+#       contributors may be used to endorse or promote products derived
+#       from this software without specific prior written permission.
+# 
+#   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+#   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+#   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+#   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+#   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+#   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+#   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+#   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+#   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+#   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+#   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+#include "common_linuxapp"
+
+#
+# machine can define specific variables or action for a specific board
+# RTE_MACHINE can be:
+# default  nothing specific
+# native   current machine
+# atm      Intel® Atom™ microarchitecture
+# nhm      Intel® microarchitecture code name Nehalem
+# wsm      Intel® microarchitecture code name Westmere
+# snb      Intel® microarchitecture code name Sandy Bridge
+# ivb      Intel® microarchitecture code name Ivy Bridge
+#
+# Note: if your compiler does not support the relevant -march options,
+# it will be compiled with whatever latest processor the compiler supports!
+#
+CONFIG_RTE_MACHINE="default"
+
+#
+# define the architecture we compile for.
+# CONFIG_RTE_ARCH can be i686, x86_64, x86_64_32
+#
+CONFIG_RTE_ARCH="i686"
+CONFIG_RTE_ARCH_I686=y
+
+#
+# The compiler we use.
+# Can be gcc or icc.
+#
+CONFIG_RTE_TOOLCHAIN="gcc"
+CONFIG_RTE_TOOLCHAIN_GCC=y
+
+#
+# KNI is not supported on 32-bit
+#
+CONFIG_RTE_LIBRTE_KNI=n
diff --git a/defconfig_x86_64-default-linuxapp-gcc b/defconfig_x86_64-default-linuxapp-gcc
new file mode 100644
index 0000000..7380e16
--- /dev/null
+++ b/defconfig_x86_64-default-linuxapp-gcc
@@ -0,0 +1,68 @@
+#   BSD LICENSE
+# 
+#   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+#   All rights reserved.
+# 
+#   Redistribution and use in source and binary forms, with or without
+#   modification, are permitted provided that the following conditions
+#   are met:
+# 
+#     * Redistributions of source code must retain the above copyright
+#       notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above copyright
+#       notice, this list of conditions and the following disclaimer in
+#       the documentation and/or other materials provided with the
+#       distribution.
+#     * Neither the name of Intel Corporation nor the names of its
+#       contributors may be used to endorse or promote products derived
+#       from this software without specific prior written permission.
+# 
+#   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+#   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+#   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+#   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+#   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+#   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+#   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+#   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+#   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+#   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+#   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+#include "common_linuxapp"
+
+#
+# machine can define specific variables or action for a specific board
+# RTE_MACHINE can be:
+# default  nothing specific
+# native   current machine
+# atm      Intel® Atom™ microarchitecture
+# nhm      Intel® microarchitecture code name Nehalem
+# wsm      Intel® microarchitecture code name Westmere
+# snb      Intel® microarchitecture code name Sandy Bridge
+# ivb      Intel® microarchitecture code name Ivy Bridge
+#
+# Note: if your compiler does not support the relevant -march options,
+# it will be compiled with whatever latest processor the compiler supports!
+#
+CONFIG_RTE_MACHINE="default"
+
+#
+# define the architecture we compile for.
+# CONFIG_RTE_ARCH can be i686, x86_64, x86_64_32
+#
+CONFIG_RTE_ARCH="x86_64"
+CONFIG_RTE_ARCH_X86_64=y
+
+#
+# The compiler we use.
+# Can be gcc or icc.
+#
+CONFIG_RTE_TOOLCHAIN="gcc"
+CONFIG_RTE_TOOLCHAIN_GCC=y
+
+#
+# KNI is not supported on fedora 
+#
+CONFIG_RTE_LIBRTE_KNI=n
diff --git a/dpdk-1.7.0-igb_uio_disable.patch b/dpdk-1.7.0-igb_uio_disable.patch
new file mode 100644
index 0000000..49da00b
--- /dev/null
+++ b/dpdk-1.7.0-igb_uio_disable.patch
@@ -0,0 +1,15 @@
+diff -up ./lib/librte_eal/linuxapp/Makefile.orig ./lib/librte_eal/linuxapp/Makefile
+--- ./lib/librte_eal/linuxapp/Makefile.orig	2014-05-29 05:43:11.000000000 -0400
++++ ./lib/librte_eal/linuxapp/Makefile	2014-06-03 12:24:26.754134045 -0400
+@@ -31,7 +31,10 @@
+ 
+ include $(RTE_SDK)/mk/rte.vars.mk
+ 
+-DIRS-$(CONFIG_RTE_LIBRTE_EAL_LINUXAPP) += igb_uio
++# In a future release of dpdk, igb_uio will be build-time
++# disable-able.  Until then, just comment it out here
++#DIRS-$(CONFIG_RTE_LIBRTE_EAL_LINUXAPP) += igb_uio
++
+ DIRS-$(CONFIG_RTE_LIBRTE_EAL_LINUXAPP) += eal
+ ifeq ($(CONFIG_RTE_LIBRTE_KNI),y)
+ DIRS-$(CONFIG_RTE_LIBRTE_EAL_LINUXAPP) += kni
diff --git a/dpdk.spec b/dpdk.spec
new file mode 100644
index 0000000..89c2e6e
--- /dev/null
+++ b/dpdk.spec
@@ -0,0 +1,134 @@
+%global rel 0.6
+
+# As per packaging guidelines, since dpdk is pre-release, this is the git hash
+# that I used with git archive to build the source tarball and the date on which
+# I did it
+%global upstreamtag 20140603git5ebbb1728
+
+Name: dpdk
+Version: 1.7.0 
+Release: %{rel}.%{upstreamtag}%{?dist}
+URL: http://dpdk.org
+Source: http://dpdk.org/browse/dpdk/snapshot/dpdk-%{version}-%{upstreamtag}.tgz
+Source1: defconfig_x86_64-default-linuxapp-gcc
+Source2: defconfig_i686-default-linuxapp-gcc
+Source3: common_linuxapp
+
+#
+# Currently the igb_uio module doesn't have a configuration option to disable
+# itself in dpdk.  Since we don't build kernel modules as part of user space
+# pacakges, this patch manually removes the Makefile directives to build it
+# This can be dropped when upstream makes this configurable
+#
+Patch0: dpdk-1.7.0-igb_uio_disable.patch
+
+Summary: Data Plane Development Kit core
+
+#
+# Note that, while this is dual licensed, all code that is included with this
+# Pakcage are BSD licensed. The only files that aren't licensed via BSD is the
+# kni kernel module which is dual LGPLv2/BSD, and thats not built for fedora.
+#
+License: BSD and LGPLv2 and GPLv2
+
+#
+# The DPDK is designed to optimize througput of network traffic using, among
+# other techniques, carefully crafted x86 assembly instructions.  As such it
+# currently (and likely never will) run on non-x86 platforms
+#
+ExclusiveArch: i386 x86_64 
+
+%global target %{_arch}-default-linuxapp-gcc
+%global machine default
+
+BuildRequires: kernel-devel, kernel-headers, libpcap-devel, doxygen
+
+%description
+DPDK core includes kernel modules, core libraries and tools.
+testpmd application allows to test fast packet processing environments
+on x86 platforms. For instance, it can be used to check that environment
+can support fast path applications such as 6WINDGate, pktgen, rumptcpip, etc.
+More libraries are available as extensions in other packages.
+
+
+%package devel
+Summary: Data Plane Development Kit core for development
+Requires: %{name}%{?_isa} = %{version}-%{release}
+
+%description devel
+DPDK core-devel is a set of makefiles, headers, examples and documentation
+for fast packet processing on x86 platforms.
+More libraries are available as extensions in other packages.
+
+%package doc
+Summary: Data Plane Development Kit core programming API documentation
+Requires: %{name}%{?_isa} = %{version}-%{release}
+BuildArch: noarch
+
+%description doc
+DPDK core library API programming documentation
+
+%global destdir %{buildroot}%{_prefix}
+%global datadir %{_datadir}/%{name}-%{version}
+%global docdir  %{_docdir}/%{name}-%{version}
+
+%prep
+%setup -q
+cp %{SOURCE1} ./config/
+cp %{SOURCE2} ./config/
+cp %{SOURCE3} ./config/
+%patch0 -p1
+
+%build
+make O=%{target} T=%{target} %{?_smp_mflags} config
+make O=%{target} %{?_smp_mflags}
+make O=%{target} %{?_smp_mflags} doc
+
+%install
+make           O=%{target}     DESTDIR=%{destdir}
+mkdir -p                               %{buildroot}%{_sbindir}
+mkdir -p                               %{buildroot}%{_libdir}/%{name}-%{version}
+mkdir -p                               %{buildroot}%{_includedir}/%{name}-%{version}
+mkdir -p                               %{buildroot}%{_bindir}
+mv    %{destdir}/%{target}/app/testpmd %{buildroot}%{_bindir}/testpmd-%{version}
+rmdir %{destdir}/%{target}/app
+mv    %{destdir}/%{target}/include/*   %{buildroot}%{_includedir}/%{name}-%{version}
+mv    %{destdir}/%{target}/lib/*       %{buildroot}%{_libdir}/%{name}-%{version}
+mkdir -p                               %{buildroot}%{docdir}
+mv    %{destdir}/%{target}/doc/*       %{buildroot}%{docdir}
+rmdir %{destdir}/%{target}/doc
+mkdir -p                               %{buildroot}%{datadir}
+mv    %{destdir}/%{target}/.config     %{buildroot}%{datadir}/config
+rm -rf %{destdir}/%{target}/kmod
+mv    %{destdir}/%{target}             %{buildroot}%{datadir}
+rm -rf %{destdir}/mk
+rm -rf %{destdir}/scripts
+cp -a            tools                 %{buildroot}%{datadir}
+
+%files
+# BSD
+%dir %{datadir}
+%{datadir}/config
+# Theres no point in packaging any of the tools
+# We currently don't need the igb uio script, there 
+# are several uio scripts already available
+# And the cpu_layout script functionality is 
+# covered by lscpu
+%exclude %{datadir}/tools
+%{_bindir}/*
+%{_libdir}/%{name}-%{version}
+
+%files doc
+#BSD
+%{docdir}
+
+%files devel
+#BSD
+%{_includedir}/*
+#%{datadir}/%{target}
+%exclude %{docdir}/html
+
+%changelog
+* Tue May 13 2014 - Neil Horman <nhorman at tuxdriver.com> - 1.0.7-0.4.20140603git5ebbb1728
+- Initial Build
+
diff --git a/sources b/sources
index e69de29..c4d0dd0 100644
--- a/sources
+++ b/sources
@@ -0,0 +1 @@
+70de60182a0d48b58431dae2f6921db4  dpdk-1.7.0-20140603git5ebbb1728.tgz


More information about the scm-commits mailing list