summaryrefslogtreecommitdiffstats
path: root/common/recipes-extended/dpdk
diff options
context:
space:
mode:
authorRahul Kumar Gupta <rahul.kumarxx.gupta@intel.com>2016-10-18 23:22:30 +0800
committerSaul Wold <sgw@linux.intel.com>2016-10-18 12:02:17 -0700
commit485f82ab71604173b698b55a8f4495b3741ce538 (patch)
treede1754c490e503d6c8cb09d7c546c91ac22ba7f4 /common/recipes-extended/dpdk
parent6adafe510efbc9721f163adccbc7245e7751b730 (diff)
downloadmeta-intel-485f82ab71604173b698b55a8f4495b3741ce538.tar.gz
dpdk: move dpdk from meta-isg to common
Since there is plan to merge meta-isg layer to common meta-intel layer. So relocate dpdk v16.07 recipe from meta-isg layer to common meta-intel layer. Signed-off-by: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Diffstat (limited to 'common/recipes-extended/dpdk')
-rw-r--r--common/recipes-extended/dpdk/dpdk.inc152
-rw-r--r--common/recipes-extended/dpdk/dpdk/dpdk-16.04-Fix-for-misleading-indentation-error.patch56
-rw-r--r--common/recipes-extended/dpdk/dpdk/dpdk-16.04-add-RTE_KERNELDIR_OUT-to-split-kernel-bu.patch52
-rw-r--r--common/recipes-extended/dpdk/dpdk/dpdk-16.04-add-config-variable-to-enable-disable-dpdk_qat.patch31
-rw-r--r--common/recipes-extended/dpdk/dpdk/dpdk-16.04-dpdk-enable-ip_fragmentation-in-common_base-config.patch33
-rw-r--r--common/recipes-extended/dpdk/dpdk/dpdk-16.04-dpdk-fix-compilation-with-dynamic-libs.patch30
-rw-r--r--common/recipes-extended/dpdk/dpdk/dpdk-16.04-point-to-the-right-include-and-lib-path.patch43
-rw-r--r--common/recipes-extended/dpdk/dpdk/dpdk-16.07-add-sysroot-option-within-app-makefile.patch32
-rw-r--r--common/recipes-extended/dpdk/dpdk/dpdk-16.07-dpdk-fix-for-parellel-make-issue.patch42
-rw-r--r--common/recipes-extended/dpdk/dpdk/dpdk-16.07-dpdk-fix-installation-warning-and-issue.patch77
-rw-r--r--common/recipes-extended/dpdk/dpdk/dpdk-16.07-kni-fix-build-with-kernel-4.8.patch55
-rw-r--r--common/recipes-extended/dpdk/dpdk/dpdk-16.07-net-igb-move-PCI-device-IDs-from-EAL.patch278
-rw-r--r--common/recipes-extended/dpdk/dpdk/dpdk-16.07-net-ixgbe-move-PCI-device-IDs-from-EAL.patch356
-rw-r--r--common/recipes-extended/dpdk/dpdk_16.07.bb16
14 files changed, 1253 insertions, 0 deletions
diff --git a/common/recipes-extended/dpdk/dpdk.inc b/common/recipes-extended/dpdk/dpdk.inc
new file mode 100644
index 00000000..e90b13f7
--- /dev/null
+++ b/common/recipes-extended/dpdk/dpdk.inc
@@ -0,0 +1,152 @@
1DESCRIPTION = "Intel(r) Data Plane Development Kit"
2HOMEPAGE = "http://dpdk.org"
3LICENSE = "BSD & LGPLv2 & GPLv2"
4LIC_FILES_CHKSUM = "file://LICENSE.GPL;md5=751419260aa954499f7abaabaa882bbe"
5
6SRC_URI = "http://dpdk.org/browse/dpdk/snapshot/dpdk-${PV}.tar.gz;name=dpdk \
7 file://dpdk-16.04-add-RTE_KERNELDIR_OUT-to-split-kernel-bu.patch \
8 file://dpdk-16.07-add-sysroot-option-within-app-makefile.patch \
9 file://dpdk-16.04-point-to-the-right-include-and-lib-path.patch \
10 file://dpdk-16.04-Fix-for-misleading-indentation-error.patch \
11 file://dpdk-16.07-dpdk-fix-installation-warning-and-issue.patch \
12 file://dpdk-16.04-dpdk-fix-compilation-with-dynamic-libs.patch \
13 file://dpdk-16.07-dpdk-fix-for-parellel-make-issue.patch \
14 file://dpdk-16.07-net-ixgbe-move-PCI-device-IDs-from-EAL.patch \
15 file://dpdk-16.07-net-igb-move-PCI-device-IDs-from-EAL.patch \
16 file://dpdk-16.07-kni-fix-build-with-kernel-4.8.patch \
17 "
18
19COMPATIBLE_MACHINE = "crystalforest|intel-corei7-64"
20
21# dpdk example apps dpdk_qat and vhost have dependancy on fuse and qat.
22# fuse is in meta-filesystems and qat is not yet upstreamed.
23# So adding mechanism to explicitly disable the use of fuse and qat.
24# To enable, uncomment the below line or include in .bbappend.
25# PACKAGECONFIG ?= " dpdk_qat vhost libvirt"
26
27PACKAGECONFIG[dpdk_qat] = ",,virtual/qat"
28PACKAGECONFIG[vhost] = ",,fuse"
29PACKAGECONFIG[libvirt] = ",,libvirt"
30
31export CONFIG_EXAMPLE_DPDK_QAT = "${@bb.utils.contains('PACKAGECONFIG', 'dpdk_qat', 'y', 'n', d)}"
32export CONFIG_EXAMPLE_VM_POWER_MANAGER = "${@bb.utils.contains('PACKAGECONFIG', 'libvirt', 'y', 'n', d)}"
33export CONFIG_VHOST_ENABLED = "${@bb.utils.contains('PACKAGECONFIG', 'vhost', 'y', 'n', d)}"
34
35RDEPENDS_${PN} += "python-subprocess"
36DEPENDS = "virtual/kernel"
37do_configure[depends] += "virtual/kernel:do_shared_workdir"
38
39inherit module
40
41export MODULE_DIR="/lib/modules/${KERNEL_VERSION}/kernel/drivers/net"
42export RTE_SDK = "${S}"
43export RTE_TARGET="${@bb.utils.contains("TUNE_FEATURES", "corei7", "x86_64-ivshmem-linuxapp-gcc", "i686-native-linuxapp-gcc", d)}"
44
45export ICP_ROOT = "${PKG_CONFIG_SYSROOT_DIR}/usr/include"
46export ICP_LIB_ROOT= "${PKG_CONFIG_SYSROOT_DIR}/usr/lib"
47export RTE_KERNELDIR = "${STAGING_KERNEL_DIR}"
48export RTE_KERNELDIR_OUT = "${STAGING_KERNEL_BUILDDIR}"
49export INSTALL_PATH = "${prefix}/share"
50export RTE_OUTPUT = "${S}/${RTE_TARGET}"
51export ETHTOOL_LIB_PATH = "${S}/examples/ethtool/lib/${RTE_TARGET}/"
52export SYSROOTPATH = "--sysroot=${STAGING_DIR_HOST}"
53export DPDK_TARGET_MACH = "${@get_dpdk_target_mach(bb,d)}"
54export ICP_LAC_API_DIR = "${STAGING_DIR_TARGET}${includedir}/lac"
55
56# The list of intel Comms platforms and their target machine
57# process mapping. The supported target machine is listed under
58# dpdk/mk/machine
59def get_dpdk_target_mach(bb, d):
60 target_arch = d.getVar('MACHINE_ARCH', True)
61 multiarch_options = {
62 "mohonpeak64": "atm",
63 "mohonpeak32": "atm",
64 "crystalforest": "ivb",
65 "intel_corei7_64": "hsw",
66 }
67
68 if target_arch in multiarch_options :
69 return multiarch_options[target_arch]
70 return ""
71
72do_configure () {
73 #############################################################
74 ### default value for prefix is "usr", unsetting it, so it
75 ### will not be concatenated in ${RTE_TARGET}/Makefile
76 ### which will cause compilation failure
77 #############################################################
78 unset prefix
79
80 # Fix-up CONFIG_RTE_MACHINE based on target machine
81 sed -e "s#CONFIG_RTE_MACHINE=\"native\"#CONFIG_RTE_MACHINE=\"${DPDK_TARGET_MACH}\"#" -i ${S}/config/defconfig_x86_64-native-linuxapp-gcc
82 sed -e "s#CONFIG_RTE_MACHINE=\"native\"#CONFIG_RTE_MACHINE=\"${DPDK_TARGET_MACH}\"#" -i ${S}/config/defconfig_i686-native-linuxapp-gcc
83
84 # Fix-up vhost configs based on package config
85 sed -e "s#CONFIG_RTE_KNI_VHOST=n#CONFIG_RTE_KNI_VHOST=${CONFIG_VHOST_ENABLED}#" -i ${S}/config/common_linuxapp
86 sed -e "s#CONFIG_RTE_KNI_VHOST_VNET_HDR_EN=n#CONFIG_RTE_KNI_VHOST_VNET_HDR_EN=${CONFIG_VHOST_ENABLED}#" -i ${S}/config/common_linuxapp
87 sed -e "s#CONFIG_RTE_LIBRTE_VHOST=n#CONFIG_RTE_LIBRTE_VHOST=${CONFIG_VHOST_ENABLED}#" -i ${S}/config/common_linuxapp
88
89 make O=$RTE_TARGET T=$RTE_TARGET config
90}
91
92do_compile () {
93 unset LDFLAGS TARGET_LDFLAGS BUILD_LDFLAGS
94
95 cd ${S}/${RTE_TARGET}
96 oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu" \
97 EXTRA_CFLAGS="--sysroot=${STAGING_DIR_HOST} -I${STAGING_INCDIR}" \
98 CROSS="${TARGET_PREFIX}" \
99 prefix="" LDFLAGS="" WERROR_FLAGS="-w" V=1
100
101 cd ${S}/examples/
102 oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu" \
103 EXTRA_CFLAGS="--sysroot=${STAGING_DIR_HOST} -I${STAGING_INCDIR}" \
104 CROSS="${TARGET_PREFIX}" O="${S}/examples/$@/"
105}
106
107do_install () {
108 oe_runmake O=${RTE_OUTPUT} T= install-runtime DESTDIR=${D}
109 oe_runmake O=${RTE_OUTPUT} T= install-kmod DESTDIR=${D} kerneldir=${MODULE_DIR}
110 oe_runmake O=${RTE_OUTPUT} T= install-sdk DESTDIR=${D}
111
112 # Install examples
113 for dirname in ${S}/examples/*
114 do
115 install -m 0755 -d ${D}/${INSTALL_PATH}/examples/`basename ${dirname}`
116
117 for appname in `find ${dirname} -regex ".*${EXAMPLES_BUILD_DIR}\/app\/[-0-9a-zA-Z0-9/_]*$"`
118 do
119 install -m 755 ${appname} ${D}/${INSTALL_PATH}/examples/`basename ${dirname}`/
120 done
121 done
122}
123
124PACKAGES += "${PN}-examples"
125
126FILES_${PN}-dbg += " \
127 ${INSTALL_PATH}/.debug \
128 ${INSTALL_PATH}/examples/*/.debug \
129 "
130
131FILES_${PN}-doc += "\
132 ${INSTALL_PATH}/doc \
133 "
134
135FILES_${PN}-dev += " \
136 ${INSTALL_PATH}/${RTE_TARGET}/.config \
137 ${includedir} \
138 ${includedir}/${ARCHDIR} \
139 ${includedir}/exec-env \
140 ${INSTALL_PATH}/scripts/ \
141 ${INSTALL_PATH}/${RTE_TARGET}/include \
142 ${INSTALL_PATH}/${RTE_TARGET}/lib \
143 "
144
145FILES_${PN} += " ${INSTALL_PATH}/tools/ \
146 ${prefix}/sbin/ \
147 ${prefix}/bin/ \
148 ${libdir}/ \
149 "
150FILES_${PN}-examples += " \
151 ${INSTALL_PATH}/examples/* \
152 "
diff --git a/common/recipes-extended/dpdk/dpdk/dpdk-16.04-Fix-for-misleading-indentation-error.patch b/common/recipes-extended/dpdk/dpdk/dpdk-16.04-Fix-for-misleading-indentation-error.patch
new file mode 100644
index 00000000..8786af7c
--- /dev/null
+++ b/common/recipes-extended/dpdk/dpdk/dpdk-16.04-Fix-for-misleading-indentation-error.patch
@@ -0,0 +1,56 @@
1From 8cd0a16af531cca0af6b4f9b729c252b8bdbf8e2 Mon Sep 17 00:00:00 2001
2From: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com>
3Date: Tue, 5 Jul 2016 00:05:25 +0800
4Subject: [PATCH] Fix for misleading indentation error
5
6fix the indentation of the code to match the block structure. This may cause
7build errors if you have -Wall -Werror in your project.
8
9Signed-off-by: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com>
10---
11 lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_phy.c | 8 ++++----
12 lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_82599.c | 2 +-
13 2 files changed, 5 insertions(+), 5 deletions(-)
14
15diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_phy.c b/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_phy.c
16index df22470..ba28eba 100644
17--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_phy.c
18+++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_phy.c
19@@ -3302,8 +3302,8 @@ s32 e1000_read_phy_reg_mphy(struct e1000_hw *hw, u32 address, u32 *data)
20 /* Disable access to mPHY if it was originally disabled */
21 if (locked)
22 ready = e1000_is_mphy_ready(hw);
23- if (!ready)
24- return -E1000_ERR_PHY;
25+ if (!ready)
26+ return -E1000_ERR_PHY;
27 E1000_WRITE_REG(hw, E1000_MPHY_ADDR_CTRL,
28 E1000_MPHY_DIS_ACCESS);
29
30@@ -3367,8 +3367,8 @@ s32 e1000_write_phy_reg_mphy(struct e1000_hw *hw, u32 address, u32 data,
31 /* Disable access to mPHY if it was originally disabled */
32 if (locked)
33 ready = e1000_is_mphy_ready(hw);
34- if (!ready)
35- return -E1000_ERR_PHY;
36+ if (!ready)
37+ return -E1000_ERR_PHY;
38 E1000_WRITE_REG(hw, E1000_MPHY_ADDR_CTRL,
39 E1000_MPHY_DIS_ACCESS);
40
41diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_82599.c b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_82599.c
42index 017dfe1..7248a7e 100644
43--- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_82599.c
44+++ b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_82599.c
45@@ -870,7 +870,7 @@ s32 ixgbe_setup_mac_link_82599(struct ixgbe_hw *hw,
46 if (speed & IXGBE_LINK_SPEED_10GB_FULL)
47 if (orig_autoc & IXGBE_AUTOC_KX4_SUPP)
48 autoc |= IXGBE_AUTOC_KX4_SUPP;
49- if ((orig_autoc & IXGBE_AUTOC_KR_SUPP) &&
50+ if ((orig_autoc & IXGBE_AUTOC_KR_SUPP) &&
51 (hw->phy.smart_speed_active == false))
52 autoc |= IXGBE_AUTOC_KR_SUPP;
53 if (speed & IXGBE_LINK_SPEED_1GB_FULL)
54--
551.9.1
56
diff --git a/common/recipes-extended/dpdk/dpdk/dpdk-16.04-add-RTE_KERNELDIR_OUT-to-split-kernel-bu.patch b/common/recipes-extended/dpdk/dpdk/dpdk-16.04-add-RTE_KERNELDIR_OUT-to-split-kernel-bu.patch
new file mode 100644
index 00000000..e446ce44
--- /dev/null
+++ b/common/recipes-extended/dpdk/dpdk/dpdk-16.04-add-RTE_KERNELDIR_OUT-to-split-kernel-bu.patch
@@ -0,0 +1,52 @@
1From 6c8d348190a8cf6c35111913cbf117ca98137e84 Mon Sep 17 00:00:00 2001
2From: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com>
3Date: Fri, 18 Dec 2015 18:30:47 +0800
4Subject: [PATCH] dpdk v2.2.0: add RTE_KERNELDIR_OUT to split kernel build
5 artifact
6
7Introduce RTE_KERNELDIR_OUT to be the path to which kernel build
8artifacts are located. This is for matching the workflow change
9since Yocto Project v1.8 onwards whereby tmp/work-shared contains
10separate directories for kernel source and kernel artifacts.
11
12Upstream-Status: Inappropriate [configuration]
13
14Signed-off-by: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com>
15---
16 mk/rte.module.mk | 6 +++---
17 1 file changed, 3 insertions(+), 3 deletions(-)
18
19diff --git a/mk/rte.module.mk b/mk/rte.module.mk
20index 53ed4fe..b7a014b 100644
21--- a/mk/rte.module.mk
22+++ b/mk/rte.module.mk
23@@ -77,7 +77,7 @@ build: _postbuild
24 # build module
25 $(MODULE).ko: $(SRCS_LINKS)
26 @if [ ! -f $(notdir Makefile) ]; then ln -nfs $(SRCDIR)/Makefile . ; fi
27- @$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) \
28+ @$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR_OUT) \
29 CC="$(KERNELCC)" CROSS_COMPILE=$(CROSS) V=$(if $V,1,0)
30
31 # install module in $(RTE_OUTPUT)/kmod
32@@ -88,7 +88,7 @@ $(RTE_OUTPUT)/kmod/$(MODULE).ko: $(MODULE).ko
33
34 # install module
35 modules_install:
36- @$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) \
37+ @$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR_OUT) \
38 modules_install
39
40 .PHONY: clean
41@@ -98,7 +98,7 @@ clean: _postclean
42 .PHONY: doclean
43 doclean:
44 @if [ ! -f $(notdir Makefile) ]; then ln -nfs $(SRCDIR)/Makefile . ; fi
45- $(Q)$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) clean
46+ $(Q)$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR_OUT) clean
47 @$(foreach FILE,$(SRCS-y) $(SRCS-n) $(SRCS-),\
48 if [ -h $(notdir $(FILE)) ]; then rm -f $(notdir $(FILE)) ; fi ;)
49 @if [ -h $(notdir Makefile) ]; then rm -f $(notdir Makefile) ; fi
50--
511.9.1
52
diff --git a/common/recipes-extended/dpdk/dpdk/dpdk-16.04-add-config-variable-to-enable-disable-dpdk_qat.patch b/common/recipes-extended/dpdk/dpdk/dpdk-16.04-add-config-variable-to-enable-disable-dpdk_qat.patch
new file mode 100644
index 00000000..cd517052
--- /dev/null
+++ b/common/recipes-extended/dpdk/dpdk/dpdk-16.04-add-config-variable-to-enable-disable-dpdk_qat.patch
@@ -0,0 +1,31 @@
1From a424a79b1422f1877de3ee7aee6f781aeacc3630 Mon Sep 17 00:00:00 2001
2From: Anuj Mittal <anujx.mittal@intel.com>
3Date: Tue, 18 Aug 2015 12:36:02 +0800
4Subject: [PATCH] examples: add config variable to enable/disable dpdk_qat
5
6Upstream-Status: Inappropriate [configuration]
7
8Add CONFIG_EXAMPLE_DPDK_QAT to control compilation of dpdk_qat
9example by PACKAGECONFIG
10
11Signed-off-by: Anuj Mittal <anujx.mittal@intel.com>
12---
13 examples/Makefile | 2 +-
14 1 file changed, 1 insertion(+), 1 deletion(-)
15
16diff --git a/examples/Makefile b/examples/Makefile
17index b4eddbd..1bc14b0 100644
18--- a/examples/Makefile
19+++ b/examples/Makefile
20@@ -41,7 +41,7 @@ DIRS-$(CONFIG_RTE_LIBRTE_PMD_BOND) += bond
21 DIRS-y += cmdline
22 DIRS-$(CONFIG_RTE_LIBRTE_DISTRIBUTOR) += distributor
23 ifneq ($(ICP_ROOT),)
24-DIRS-y += dpdk_qat
25+DIRS-$(CONFIG_EXAMPLE_DPDK_QAT) += dpdk_qat
26 endif
27 DIRS-y += exception_path
28 DIRS-y += helloworld
29--
301.7.9.5
31
diff --git a/common/recipes-extended/dpdk/dpdk/dpdk-16.04-dpdk-enable-ip_fragmentation-in-common_base-config.patch b/common/recipes-extended/dpdk/dpdk/dpdk-16.04-dpdk-enable-ip_fragmentation-in-common_base-config.patch
new file mode 100644
index 00000000..3719aa78
--- /dev/null
+++ b/common/recipes-extended/dpdk/dpdk/dpdk-16.04-dpdk-enable-ip_fragmentation-in-common_base-config.patch
@@ -0,0 +1,33 @@
1From f7be643cc62860a986c9e0aec990c90bfc58a941 Mon Sep 17 00:00:00 2001
2From: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com>
3Date: Fri, 1 Apr 2016 17:31:55 +0800
4Subject: [PATCH] dpdk: enable ip_fragmentation in common_base config
5
6Upstream-Status: Inappropriate [Configuration]
7
8This configuration need to set for ip_fragmentation application.
9
10Signed-off-by: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com>
11---
12 config/common_base | 5 +++++
13 1 file changed, 5 insertions(+)
14
15diff --git a/config/common_base b/config/common_base
16index abd6a64..90259f0 100644
17--- a/config/common_base
18+++ b/config/common_base
19@@ -442,6 +442,11 @@ CONFIG_RTE_LIBRTE_POWER_DEBUG=n
20 CONFIG_RTE_MAX_LCORE_FREQS=64
21
22 #
23+# Compile ip_fragmentation
24+#
25+CONFIG_RTE_IP_FRAG=y
26+
27+#
28 # Compile librte_net
29 #
30 CONFIG_RTE_LIBRTE_NET=y
31--
321.9.1
33
diff --git a/common/recipes-extended/dpdk/dpdk/dpdk-16.04-dpdk-fix-compilation-with-dynamic-libs.patch b/common/recipes-extended/dpdk/dpdk/dpdk-16.04-dpdk-fix-compilation-with-dynamic-libs.patch
new file mode 100644
index 00000000..4254d073
--- /dev/null
+++ b/common/recipes-extended/dpdk/dpdk/dpdk-16.04-dpdk-fix-compilation-with-dynamic-libs.patch
@@ -0,0 +1,30 @@
1From 8ce0e3249942a90f733bb2113e70e5a90ae67b00 Mon Sep 17 00:00:00 2001
2From: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com>
3Date: Thu, 21 Jul 2016 05:53:52 +0800
4Subject: [PATCH 1/2] dpdk: fix compilation with dynamic libs
5
6Upstream-Status: Inappropriate [Configuration]
7
8Ensure that the correct cflags are being used.
9
10Signed-off-by: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com>
11---
12 mk/rte.lib.mk | 2 +-
13 1 file changed, 1 insertion(+), 1 deletion(-)
14
15diff --git a/mk/rte.lib.mk b/mk/rte.lib.mk
16index 8f7e021..42610c9 100644
17--- a/mk/rte.lib.mk
18+++ b/mk/rte.lib.mk
19@@ -70,7 +70,7 @@ exe2cmd = $(strip $(call dotfile,$(patsubst %,%.cmd,$(1))))
20
21 ifeq ($(LINK_USING_CC),1)
22 # Override the definition of LD here, since we're linking with CC
23-LD := $(CC) $(CPU_CFLAGS)
24+LD := $(CC) $(CPU_CFLAGS) $(EXTRA_CFLAGS)
25 _CPU_LDFLAGS := $(call linkerprefix,$(CPU_LDFLAGS))
26 override EXTRA_LDFLAGS := $(call linkerprefix,$(EXTRA_LDFLAGS))
27 else
28--
291.9.1
30
diff --git a/common/recipes-extended/dpdk/dpdk/dpdk-16.04-point-to-the-right-include-and-lib-path.patch b/common/recipes-extended/dpdk/dpdk/dpdk-16.04-point-to-the-right-include-and-lib-path.patch
new file mode 100644
index 00000000..75bb517d
--- /dev/null
+++ b/common/recipes-extended/dpdk/dpdk/dpdk-16.04-point-to-the-right-include-and-lib-path.patch
@@ -0,0 +1,43 @@
1From 928595c80ae28d19861d7e76ed898a8fb3f2c1dc Mon Sep 17 00:00:00 2001
2From: Anuj Mittal <anujx.mittal@intel.com>
3Date: Fri, 24 Jul 2015 23:57:17 +0800
4Subject: [PATCH] dpdk: point to the right include and lib path
5
6Upstream-Status: Inappropriate [Configuration]
7
8Make sure that we point to the right location of qat
9lac headers and library.
10
11Signed-off-by: Anuj Mittal <anujx.mittal@intel.com>
12---
13 examples/dpdk_qat/Makefile | 7 ++-----
14 1 file changed, 2 insertions(+), 5 deletions(-)
15
16diff --git a/examples/dpdk_qat/Makefile b/examples/dpdk_qat/Makefile
17index f1e06a1..5b906f7 100644
18--- a/examples/dpdk_qat/Makefile
19+++ b/examples/dpdk_qat/Makefile
20@@ -66,18 +66,15 @@ SRCS-y := main.c crypto.c
21
22 CFLAGS += -O3
23 CFLAGS += $(WERROR_FLAGS)
24-CFLAGS += -I$(ICP_ROOT)/quickassist/include \
25- -I$(ICP_ROOT)/quickassist/include/lac \
26- -I$(ICP_ROOT)/quickassist/lookaside/access_layer/include
27+CFLAGS += -I$(ICP_LAC_API_DIR)
28
29 # From CRF 1.2 driver, library was renamed to libicp_qa_al.a
30 ifneq ($(wildcard $(ICP_ROOT)/build/icp_qa_al.a),)
31 ICP_LIBRARY_PATH = $(ICP_ROOT)/build/icp_qa_al.a
32 else
33-ICP_LIBRARY_PATH = $(ICP_ROOT)/build/libicp_qa_al.a
34+ICP_LIBRARY_PATH = $(ICP_LIB_ROOT)/libicp_qa_al.a
35 endif
36
37-LDLIBS += -L$(ICP_ROOT)/build
38 LDLIBS += $(ICP_LIBRARY_PATH) \
39 -lz \
40 -losal \
41--
421.7.9.5
43
diff --git a/common/recipes-extended/dpdk/dpdk/dpdk-16.07-add-sysroot-option-within-app-makefile.patch b/common/recipes-extended/dpdk/dpdk/dpdk-16.07-add-sysroot-option-within-app-makefile.patch
new file mode 100644
index 00000000..a4c47112
--- /dev/null
+++ b/common/recipes-extended/dpdk/dpdk/dpdk-16.07-add-sysroot-option-within-app-makefile.patch
@@ -0,0 +1,32 @@
1From a33a9e7559b59bc5fb0988af85062436ec4389a4 Mon Sep 17 00:00:00 2001
2From: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com>
3Date: Fri, 19 Aug 2016 11:57:49 +0800
4Subject: [PATCH] dpdk: add --sysroot option within app makefile
5
6Upstream-Status: Inappropriate [configuration]
7
8rte.app.mk has been changed to add -Wl, to all items listed
9under EXTRA_LDFLAGS. It causes --sysroot=<path> to not setup
10correctly when we depends on gcc to setup for GNU ld.
11
12Signed-off-by: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com>
13---
14 mk/rte.app.mk | 2 +-
15 1 file changed, 1 insertion(+), 1 deletion(-)
16
17diff --git a/mk/rte.app.mk b/mk/rte.app.mk
18index eb28e11..296c8c7 100644
19--- a/mk/rte.app.mk
20+++ b/mk/rte.app.mk
21@@ -195,7 +195,7 @@ exe2cmd = $(strip $(call dotfile,$(patsubst %,%.cmd,$(1))))
22 ifeq ($(LINK_USING_CC),1)
23 O_TO_EXE = $(CC) -o $@ $(CFLAGS) $(OBJS-y) $(call linkerprefix, \
24 $(LDLIBS) $(LDFLAGS) $(LDFLAGS_$(@)) $(EXTRA_LDFLAGS) \
25- $(MAPFLAGS))
26+ $(MAPFLAGS)) $(SYSROOTPATH)
27 else
28 O_TO_EXE = $(LD) -o $@ $(OBJS-y) \
29 $(LDLIBS) $(LDFLAGS) $(LDFLAGS_$(@)) $(EXTRA_LDFLAGS) \
30--
311.9.1
32
diff --git a/common/recipes-extended/dpdk/dpdk/dpdk-16.07-dpdk-fix-for-parellel-make-issue.patch b/common/recipes-extended/dpdk/dpdk/dpdk-16.07-dpdk-fix-for-parellel-make-issue.patch
new file mode 100644
index 00000000..e17d80d1
--- /dev/null
+++ b/common/recipes-extended/dpdk/dpdk/dpdk-16.07-dpdk-fix-for-parellel-make-issue.patch
@@ -0,0 +1,42 @@
1From 4cdcb5ea4af9677677a007c4f9b286948123be87 Mon Sep 17 00:00:00 2001
2From: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com>
3Date: Fri, 2 Sep 2016 15:48:52 +0800
4Subject: [PATCH] dpdk: fix for parellel make issue
5
6To make sure that the path of libraries should be correct and
7libraries will be build before, And available at the time of
8linking example apps.
9
10Signed-off-by: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com>
11---
12 examples/Makefile | 1 +
13 examples/ethtool/ethtool-app/Makefile | 1 +
14 2 files changed, 2 insertions(+)
15
16diff --git a/examples/Makefile b/examples/Makefile
17index 18b41b9..c7c2beb 100644
18--- a/examples/Makefile
19+++ b/examples/Makefile
20@@ -43,6 +43,7 @@ DIRS-$(CONFIG_RTE_LIBRTE_DISTRIBUTOR) += distributor
21 ifneq ($(ICP_ROOT),)
22 DIRS-y += dpdk_qat
23 endif
24+DEPDIRS-y += examples/ethtool/lib
25 DIRS-y += ethtool
26 DIRS-y += exception_path
27 DIRS-y += helloworld
28diff --git a/examples/ethtool/ethtool-app/Makefile b/examples/ethtool/ethtool-app/Makefile
29index 09c66ad..ec068e6 100644
30--- a/examples/ethtool/ethtool-app/Makefile
31+++ b/examples/ethtool/ethtool-app/Makefile
32@@ -47,6 +47,7 @@ SRCS-y := main.c ethapp.c
33 CFLAGS += -O3 -D_GNU_SOURCE -pthread -I$(SRCDIR)/../lib
34 CFLAGS += $(WERROR_FLAGS)
35
36+LDLIBS += -L$(ETHTOOL_LIB_PATH)/
37 LDLIBS += -L$(subst ethtool-app,lib,$(RTE_OUTPUT))/lib
38 LDLIBS += -lrte_ethtool
39
40--
411.9.1
42
diff --git a/common/recipes-extended/dpdk/dpdk/dpdk-16.07-dpdk-fix-installation-warning-and-issue.patch b/common/recipes-extended/dpdk/dpdk/dpdk-16.07-dpdk-fix-installation-warning-and-issue.patch
new file mode 100644
index 00000000..9fc30381
--- /dev/null
+++ b/common/recipes-extended/dpdk/dpdk/dpdk-16.07-dpdk-fix-installation-warning-and-issue.patch
@@ -0,0 +1,77 @@
1From 7af593cfca897a0f17d33aba95dd3e3d22a65444 Mon Sep 17 00:00:00 2001
2From: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com>
3Date: Fri, 19 Aug 2016 11:50:46 +0800
4Subject: [PATCH] dpdk: fix installation warning and issue
5
6Upstream-Status: Inappropriate [configuration]
7
8Ensure that all compiled libs should be installed to correct location.
9For cross compiling cp -r and extra tar flags used to avoid QA warning
10[host-user-contaminated].
11Added excluded files from bin and removing mk and app/dpdk-pmdinfogen files
12installation since it is not needed as a part of image.
13
14Signed-off-by: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com>
15---
16 mk/rte.sdkinstall.mk | 25 ++++++++++---------------
17 1 file changed, 10 insertions(+), 15 deletions(-)
18
19diff --git a/mk/rte.sdkinstall.mk b/mk/rte.sdkinstall.mk
20index 5217063..7036a32 100644
21--- a/mk/rte.sdkinstall.mk
22+++ b/mk/rte.sdkinstall.mk
23@@ -114,16 +114,13 @@ endif
24
25 install-runtime:
26 $(Q)$(call rte_mkdir, $(DESTDIR)$(libdir))
27- $(Q)cp -a $O/lib/* $(DESTDIR)$(libdir)
28+ $(Q)cp -r $O/lib/* $(DESTDIR)$(libdir)
29 $(Q)$(call rte_mkdir, $(DESTDIR)$(bindir))
30- $(Q)tar -cf - -C $O --exclude 'app/*.map' \
31- --exclude app/dpdk-pmdinfogen \
32- --exclude 'app/cmdline*' --exclude app/test \
33- --exclude app/testacl --exclude app/testpipeline app | \
34- tar -xf - -C $(DESTDIR)$(bindir) --strip-components=1 \
35- --keep-newer-files --warning=no-ignore-newer
36+ $(Q)tar -cf - -C $O --exclude app/dpdk-pmdinfogen app | \
37+ tar -xf - -C $(DESTDIR)$(bindir) --no-same-owner --no-same-permissions \
38+ --strip-components=1 --keep-newer-files --warning=no-ignore-newer
39 $(Q)$(call rte_mkdir, $(DESTDIR)$(datadir))
40- $(Q)cp -a $(RTE_SDK)/tools $(DESTDIR)$(datadir)
41+ $(Q)cp -r $(RTE_SDK)/tools $(DESTDIR)$(datadir)
42 $(Q)$(call rte_symlink, $(DESTDIR)$(datadir)/tools/dpdk-setup.sh, \
43 $(DESTDIR)$(datadir)/tools/setup.sh)
44 $(Q)$(call rte_symlink, $(DESTDIR)$(datadir)/tools/dpdk-devbind.py, \
45@@ -137,7 +134,7 @@ install-runtime:
46 install-kmod:
47 ifneq ($(wildcard $O/kmod/*),)
48 $(Q)$(call rte_mkdir, $(DESTDIR)$(kerneldir))
49- $(Q)cp -a $O/kmod/* $(DESTDIR)$(kerneldir)
50+ $(Q)cp -r $O/kmod/* $(DESTDIR)$(kerneldir)
51 endif
52
53 install-sdk:
54@@ -146,11 +143,9 @@ install-sdk:
55 tar -xf - -C $(DESTDIR)$(includedir) --strip-components=1 \
56 --keep-newer-files --warning=no-ignore-newer
57 $(Q)$(call rte_mkdir, $(DESTDIR)$(sdkdir))
58- $(Q)cp -a $(RTE_SDK)/mk $(DESTDIR)$(sdkdir)
59- $(Q)cp -a $(RTE_SDK)/scripts $(DESTDIR)$(sdkdir)
60- $(Q)$(call rte_mkdir, $(DESTDIR)$(targetdir)/app)
61- $(Q)cp -a $O/.config $(DESTDIR)$(targetdir)
62- $(Q)cp -a $O/app/dpdk-pmdinfogen $(DESTDIR)$(targetdir)/app
63+ $(Q)cp -r $(RTE_SDK)/scripts $(DESTDIR)$(sdkdir)
64+ $(Q)$(call rte_mkdir, $(DESTDIR)$(targetdir))
65+ $(Q)cp -r $O/.config $(DESTDIR)$(targetdir)
66 $(Q)$(call rte_symlink, $(DESTDIR)$(includedir), $(DESTDIR)$(targetdir)/include)
67 $(Q)$(call rte_symlink, $(DESTDIR)$(libdir), $(DESTDIR)$(targetdir)/lib)
68
69@@ -166,4 +161,4 @@ ifneq ($(wildcard $O/doc/*/*/*pdf),)
70 $(Q)cp -a $O/doc/*/*/*pdf $(DESTDIR)$(docdir)/guides
71 endif
72 $(Q)$(call rte_mkdir, $(DESTDIR)$(datadir))
73- $(Q)cp -a $(RTE_SDK)/examples $(DESTDIR)$(datadir)
74+ $(Q)cp -r $(RTE_SDK)/examples $(DESTDIR)$(datadir)
75--
761.9.1
77
diff --git a/common/recipes-extended/dpdk/dpdk/dpdk-16.07-kni-fix-build-with-kernel-4.8.patch b/common/recipes-extended/dpdk/dpdk/dpdk-16.07-kni-fix-build-with-kernel-4.8.patch
new file mode 100644
index 00000000..f7938c78
--- /dev/null
+++ b/common/recipes-extended/dpdk/dpdk/dpdk-16.07-kni-fix-build-with-kernel-4.8.patch
@@ -0,0 +1,55 @@
1From d1807cc225db36a467a9ae81ac23a6eb7368730e Mon Sep 17 00:00:00 2001
2From: Ferruh Yigit <ferruh.yigit@intel.com>
3Date: Thu, 8 Sep 2016 19:32:09 +0100
4Subject: [PATCH 3/3] kni: fix build with kernel 4.8
5
6Upstream-Status: Backport [http://dpdk.org/browse/dpdk/commit/?id=
77f5565592c5ab2f3541951d2b4e65188d01d5d00]
8
9Linux kernel v4.8 removes macro DEFINE_PCI_DEVICE_TABLE
10
11Linux: 7e9321599011 ("treewide: remove references to the now unnecessary
12DEFINE_PCI_DEVICE_TABLE")
13
14Replaced macro with its value in kni ethtool drivers.
15
16Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
17Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
18Acked-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
19Acked-by: Stephen Hemminger <stephen@networkplumber.org>
20(cherry picked from commit 7f5565592c5ab2f3541951d2b4e65188d01d5d00)
21Signed-off-by: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com>
22---
23 lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c | 2 +-
24 lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_main.c | 2 +-
25 2 files changed, 2 insertions(+), 2 deletions(-)
26
27diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c
28index bd803c0..efd39c6 100644
29--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c
30+++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c
31@@ -76,7 +76,7 @@ static const char igb_driver_string[] =
32 static const char igb_copyright[] =
33 "Copyright (c) 2007-2013 Intel Corporation.";
34
35-DEFINE_PCI_DEVICE_TABLE(igb_pci_tbl) = {
36+const struct pci_device_id igb_pci_tbl[] = {
37 { PCI_VDEVICE(INTEL, E1000_DEV_ID_I354_BACKPLANE_1GBPS) },
38 { PCI_VDEVICE(INTEL, E1000_DEV_ID_I354_SGMII) },
39 { PCI_VDEVICE(INTEL, E1000_DEV_ID_I354_BACKPLANE_2_5GBPS) },
40diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_main.c b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_main.c
41index 92fc9fc..238028d 100644
42--- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_main.c
43+++ b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_main.c
44@@ -86,7 +86,7 @@ const char ixgbe_driver_version[] = DRV_VERSION;
45 * { Vendor ID, Device ID, SubVendor ID, SubDevice ID,
46 * Class, Class Mask, private data (not used) }
47 */
48-DEFINE_PCI_DEVICE_TABLE(ixgbe_pci_tbl) = {
49+const struct pci_device_id ixgbe_pci_tbl[] = {
50 {PCI_VDEVICE(INTEL, IXGBE_DEV_ID_82598)},
51 {PCI_VDEVICE(INTEL, IXGBE_DEV_ID_82598AF_DUAL_PORT)},
52 {PCI_VDEVICE(INTEL, IXGBE_DEV_ID_82598AF_SINGLE_PORT)},
53--
541.9.1
55
diff --git a/common/recipes-extended/dpdk/dpdk/dpdk-16.07-net-igb-move-PCI-device-IDs-from-EAL.patch b/common/recipes-extended/dpdk/dpdk/dpdk-16.07-net-igb-move-PCI-device-IDs-from-EAL.patch
new file mode 100644
index 00000000..22fb6f89
--- /dev/null
+++ b/common/recipes-extended/dpdk/dpdk/dpdk-16.07-net-igb-move-PCI-device-IDs-from-EAL.patch
@@ -0,0 +1,278 @@
1From 368fd936258873ee848f2c265e4ffd8e5d21d20e Mon Sep 17 00:00:00 2001
2From: Ferruh Yigit <ferruh.yigit@intel.com>
3Date: Fri, 5 Aug 2016 15:09:30 +0100
4Subject: [PATCH 2/3] net/igb: move PCI device IDs from EAL
5
6Upstream-Status: Backport [http://dpdk.org/browse/dpdk/commit/?id=
7109febfe58f93c5b425772563c35d4414a1a2c1c]
8
9PCI device ids moved from common header into igb driver itself.
10
11KNI starts using pci_device_id from kni/ethtool/igb driver, this is only
12for KNI ethtool support, KNI data path is not affected.
13
14Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
15(cherry picked from commit 109febfe58f93c5b425772563c35d4414a1a2c1c)
16Signed-off-by: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com>
17---
18 drivers/net/e1000/igb_ethdev.c | 55 +++++++++--
19 lib/librte_eal/common/include/rte_pci_dev_ids.h | 107 ---------------------
20 lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c | 2 +-
21 lib/librte_eal/linuxapp/kni/kni_misc.c | 20 +---
22 4 files changed, 50 insertions(+), 134 deletions(-)
23
24diff --git a/drivers/net/e1000/igb_ethdev.c b/drivers/net/e1000/igb_ethdev.c
25index fbf4d09..4e9e6a3 100644
26--- a/drivers/net/e1000/igb_ethdev.c
27+++ b/drivers/net/e1000/igb_ethdev.c
28@@ -306,22 +306,57 @@ static enum e1000_fc_mode igb_fc_setting = e1000_fc_full;
29 * The set of PCI devices this driver supports
30 */
31 static const struct rte_pci_id pci_id_igb_map[] = {
32-
33-#define RTE_PCI_DEV_ID_DECL_IGB(vend, dev) {RTE_PCI_DEVICE(vend, dev)},
34-#include "rte_pci_dev_ids.h"
35-
36-{0},
37+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82576) },
38+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82576_FIBER) },
39+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82576_SERDES) },
40+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82576_QUAD_COPPER) },
41+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82576_QUAD_COPPER_ET2) },
42+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82576_NS) },
43+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82576_NS_SERDES) },
44+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82576_SERDES_QUAD) },
45+
46+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82575EB_COPPER) },
47+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82575EB_FIBER_SERDES) },
48+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82575GB_QUAD_COPPER) },
49+
50+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82580_COPPER) },
51+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82580_FIBER) },
52+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82580_SERDES) },
53+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82580_SGMII) },
54+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82580_COPPER_DUAL) },
55+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82580_QUAD_FIBER) },
56+
57+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I350_COPPER) },
58+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I350_FIBER) },
59+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I350_SERDES) },
60+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I350_SGMII) },
61+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I350_DA4) },
62+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I210_COPPER) },
63+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I210_COPPER_OEM1) },
64+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I210_COPPER_IT) },
65+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I210_FIBER) },
66+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I210_SERDES) },
67+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I210_SGMII) },
68+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I211_COPPER) },
69+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I354_BACKPLANE_1GBPS) },
70+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I354_SGMII) },
71+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I354_BACKPLANE_2_5GBPS) },
72+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_DH89XXCC_SGMII) },
73+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_DH89XXCC_SERDES) },
74+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_DH89XXCC_BACKPLANE) },
75+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_DH89XXCC_SFP) },
76+ { .vendor_id = 0, /* sentinel */ },
77 };
78
79 /*
80 * The set of PCI devices this driver supports (for 82576&I350 VF)
81 */
82 static const struct rte_pci_id pci_id_igbvf_map[] = {
83-
84-#define RTE_PCI_DEV_ID_DECL_IGBVF(vend, dev) {RTE_PCI_DEVICE(vend, dev)},
85-#include "rte_pci_dev_ids.h"
86-
87-{0},
88+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82576_VF) },
89+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82576_VF_HV) },
90+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I350_VF) },
91+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I350_VF_HV) },
92+ { .vendor_id = 0, /* sentinel */ },
93 };
94
95 static const struct rte_eth_desc_lim rx_desc_lim = {
96diff --git a/lib/librte_eal/common/include/rte_pci_dev_ids.h b/lib/librte_eal/common/include/rte_pci_dev_ids.h
97index 1f9d372..1aae6f7 100644
98--- a/lib/librte_eal/common/include/rte_pci_dev_ids.h
99+++ b/lib/librte_eal/common/include/rte_pci_dev_ids.h
100@@ -57,114 +57,7 @@
101 *
102 */
103
104-#ifndef RTE_PCI_DEV_ID_DECL_IGB
105-#define RTE_PCI_DEV_ID_DECL_IGB(vend, dev)
106-#endif
107-
108-#ifndef RTE_PCI_DEV_ID_DECL_IGBVF
109-#define RTE_PCI_DEV_ID_DECL_IGBVF(vend, dev)
110-#endif
111-
112 #ifndef PCI_VENDOR_ID_INTEL
113 /** Vendor ID used by Intel devices */
114 #define PCI_VENDOR_ID_INTEL 0x8086
115 #endif
116-
117-/******************** Physical IGB devices from e1000_hw.h ********************/
118-
119-#define E1000_DEV_ID_82576 0x10C9
120-#define E1000_DEV_ID_82576_FIBER 0x10E6
121-#define E1000_DEV_ID_82576_SERDES 0x10E7
122-#define E1000_DEV_ID_82576_QUAD_COPPER 0x10E8
123-#define E1000_DEV_ID_82576_QUAD_COPPER_ET2 0x1526
124-#define E1000_DEV_ID_82576_NS 0x150A
125-#define E1000_DEV_ID_82576_NS_SERDES 0x1518
126-#define E1000_DEV_ID_82576_SERDES_QUAD 0x150D
127-#define E1000_DEV_ID_82575EB_COPPER 0x10A7
128-#define E1000_DEV_ID_82575EB_FIBER_SERDES 0x10A9
129-#define E1000_DEV_ID_82575GB_QUAD_COPPER 0x10D6
130-#define E1000_DEV_ID_82580_COPPER 0x150E
131-#define E1000_DEV_ID_82580_FIBER 0x150F
132-#define E1000_DEV_ID_82580_SERDES 0x1510
133-#define E1000_DEV_ID_82580_SGMII 0x1511
134-#define E1000_DEV_ID_82580_COPPER_DUAL 0x1516
135-#define E1000_DEV_ID_82580_QUAD_FIBER 0x1527
136-#define E1000_DEV_ID_I350_COPPER 0x1521
137-#define E1000_DEV_ID_I350_FIBER 0x1522
138-#define E1000_DEV_ID_I350_SERDES 0x1523
139-#define E1000_DEV_ID_I350_SGMII 0x1524
140-#define E1000_DEV_ID_I350_DA4 0x1546
141-#define E1000_DEV_ID_I210_COPPER 0x1533
142-#define E1000_DEV_ID_I210_COPPER_OEM1 0x1534
143-#define E1000_DEV_ID_I210_COPPER_IT 0x1535
144-#define E1000_DEV_ID_I210_FIBER 0x1536
145-#define E1000_DEV_ID_I210_SERDES 0x1537
146-#define E1000_DEV_ID_I210_SGMII 0x1538
147-#define E1000_DEV_ID_I210_COPPER_FLASHLESS 0x157B
148-#define E1000_DEV_ID_I210_SERDES_FLASHLESS 0x157C
149-#define E1000_DEV_ID_I211_COPPER 0x1539
150-#define E1000_DEV_ID_I354_BACKPLANE_1GBPS 0x1F40
151-#define E1000_DEV_ID_I354_SGMII 0x1F41
152-#define E1000_DEV_ID_I354_BACKPLANE_2_5GBPS 0x1F45
153-#define E1000_DEV_ID_DH89XXCC_SGMII 0x0438
154-#define E1000_DEV_ID_DH89XXCC_SERDES 0x043A
155-#define E1000_DEV_ID_DH89XXCC_BACKPLANE 0x043C
156-#define E1000_DEV_ID_DH89XXCC_SFP 0x0440
157-
158-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82576)
159-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82576_FIBER)
160-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82576_SERDES)
161-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82576_QUAD_COPPER)
162-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82576_QUAD_COPPER_ET2)
163-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82576_NS)
164-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82576_NS_SERDES)
165-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82576_SERDES_QUAD)
166-
167-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82575EB_COPPER)
168-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82575EB_FIBER_SERDES)
169-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82575GB_QUAD_COPPER)
170-
171-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82580_COPPER)
172-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82580_FIBER)
173-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82580_SERDES)
174-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82580_SGMII)
175-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82580_COPPER_DUAL)
176-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82580_QUAD_FIBER)
177-
178-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I350_COPPER)
179-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I350_FIBER)
180-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I350_SERDES)
181-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I350_SGMII)
182-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I350_DA4)
183-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I210_COPPER)
184-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I210_COPPER_OEM1)
185-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I210_COPPER_IT)
186-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I210_FIBER)
187-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I210_SERDES)
188-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I210_SGMII)
189-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I211_COPPER)
190-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I354_BACKPLANE_1GBPS)
191-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I354_SGMII)
192-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I354_BACKPLANE_2_5GBPS)
193-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_DH89XXCC_SGMII)
194-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_DH89XXCC_SERDES)
195-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_DH89XXCC_BACKPLANE)
196-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_DH89XXCC_SFP)
197-
198-/****************** Virtual IGB devices from e1000_hw.h ******************/
199-
200-#define E1000_DEV_ID_82576_VF 0x10CA
201-#define E1000_DEV_ID_82576_VF_HV 0x152D
202-#define E1000_DEV_ID_I350_VF 0x1520
203-#define E1000_DEV_ID_I350_VF_HV 0x152F
204-
205-RTE_PCI_DEV_ID_DECL_IGBVF(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82576_VF)
206-RTE_PCI_DEV_ID_DECL_IGBVF(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82576_VF_HV)
207-RTE_PCI_DEV_ID_DECL_IGBVF(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I350_VF)
208-RTE_PCI_DEV_ID_DECL_IGBVF(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I350_VF_HV)
209-
210-/*
211- * Undef all RTE_PCI_DEV_ID_DECL_* here.
212- */
213-#undef RTE_PCI_DEV_ID_DECL_IGB
214-#undef RTE_PCI_DEV_ID_DECL_IGBVF
215diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c
216index 96acec5..bd803c0 100644
217--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c
218+++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c
219@@ -76,7 +76,7 @@ static const char igb_driver_string[] =
220 static const char igb_copyright[] =
221 "Copyright (c) 2007-2013 Intel Corporation.";
222
223-static DEFINE_PCI_DEVICE_TABLE(igb_pci_tbl) = {
224+DEFINE_PCI_DEVICE_TABLE(igb_pci_tbl) = {
225 { PCI_VDEVICE(INTEL, E1000_DEV_ID_I354_BACKPLANE_1GBPS) },
226 { PCI_VDEVICE(INTEL, E1000_DEV_ID_I354_SGMII) },
227 { PCI_VDEVICE(INTEL, E1000_DEV_ID_I354_BACKPLANE_2_5GBPS) },
228diff --git a/lib/librte_eal/linuxapp/kni/kni_misc.c b/lib/librte_eal/linuxapp/kni/kni_misc.c
229index 66bf519..67e9b7d 100644
230--- a/lib/librte_eal/linuxapp/kni/kni_misc.c
231+++ b/lib/librte_eal/linuxapp/kni/kni_misc.c
232@@ -58,6 +58,7 @@ extern void ixgbe_kni_remove(struct pci_dev *pdev);
233 extern struct pci_device_id ixgbe_pci_tbl[];
234 extern int igb_kni_probe(struct pci_dev *pdev, struct net_device **lad_dev);
235 extern void igb_kni_remove(struct pci_dev *pdev);
236+extern struct pci_device_id igb_pci_tbl[];
237
238 static int kni_open(struct inode *inode, struct file *file);
239 static int kni_release(struct inode *inode, struct file *file);
240@@ -356,15 +357,8 @@ kni_dev_remove(struct kni_dev *dev)
241
242 if (pci_match_id(ixgbe_pci_tbl, dev->pci_dev))
243 ixgbe_kni_remove(dev->pci_dev);
244-
245- switch (dev->device_id) {
246- #define RTE_PCI_DEV_ID_DECL_IGB(vend, dev) case (dev):
247- #include <rte_pci_dev_ids.h>
248+ else if (pci_match_id(igb_pci_tbl, dev->pci_dev))
249 igb_kni_remove(dev->pci_dev);
250- break;
251- default:
252- break;
253- }
254
255 if (dev->net_dev) {
256 unregister_netdev(dev->net_dev);
257@@ -513,16 +507,10 @@ kni_ioctl_create(struct net *net,
258
259 if (pci_match_id(ixgbe_pci_tbl, found_pci))
260 ret = ixgbe_kni_probe(found_pci, &lad_dev);
261-
262- switch (dev_info.device_id) {
263- #define RTE_PCI_DEV_ID_DECL_IGB(vend, dev) case (dev):
264- #include <rte_pci_dev_ids.h>
265+ else if (pci_match_id(igb_pci_tbl, found_pci))
266 ret = igb_kni_probe(found_pci, &lad_dev);
267- break;
268- default:
269+ else
270 ret = -1;
271- break;
272- }
273
274 KNI_DBG("PCI found: pci=0x%p, lad_dev=0x%p\n",
275 pci, lad_dev);
276--
2771.9.1
278
diff --git a/common/recipes-extended/dpdk/dpdk/dpdk-16.07-net-ixgbe-move-PCI-device-IDs-from-EAL.patch b/common/recipes-extended/dpdk/dpdk/dpdk-16.07-net-ixgbe-move-PCI-device-IDs-from-EAL.patch
new file mode 100644
index 00000000..d8b04a9b
--- /dev/null
+++ b/common/recipes-extended/dpdk/dpdk/dpdk-16.07-net-ixgbe-move-PCI-device-IDs-from-EAL.patch
@@ -0,0 +1,356 @@
1From 11b4f5db07e4e48d1548671ac44f3d328523e93d Mon Sep 17 00:00:00 2001
2From: Ferruh Yigit <ferruh.yigit@intel.com>
3Date: Fri, 5 Aug 2016 15:09:29 +0100
4Subject: [PATCH 1/3] net/ixgbe: move PCI device IDs from EAL
5
6Upstream-Status: Backport [http://dpdk.org/browse/dpdk/commit/?id=
7221fba3b987c49964aa2b3d14d7a07397bebdf73]
8
9PCI device ids moved from common header into ixgbe driver itself.
10
11KNI starts using pci_device_id from kni/ethtool/ixgbe driver, this is
12only for KNI ethtool support, KNI data path is not affected.
13
14Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
15(cherry picked from commit 221fba3b987c49964aa2b3d14d7a07397bebdf73)
16Signed-off-by: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com>
17---
18 drivers/net/ixgbe/ixgbe_ethdev.c | 79 ++++++++++--
19 lib/librte_eal/common/include/rte_pci_dev_ids.h | 156 ------------------------
20 lib/librte_eal/linuxapp/kni/kni_misc.c | 17 ++-
21 3 files changed, 76 insertions(+), 176 deletions(-)
22
23diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
24index d478a15..fb618ef 100644
25--- a/drivers/net/ixgbe/ixgbe_ethdev.c
26+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
27@@ -429,23 +429,80 @@ static int ixgbe_dev_udp_tunnel_port_del(struct rte_eth_dev *dev,
28 * The set of PCI devices this driver supports
29 */
30 static const struct rte_pci_id pci_id_ixgbe_map[] = {
31-
32-#define RTE_PCI_DEV_ID_DECL_IXGBE(vend, dev) {RTE_PCI_DEVICE(vend, dev)},
33-#include "rte_pci_dev_ids.h"
34-
35-{ .vendor_id = 0, /* sentinel */ },
36+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82598) },
37+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82598_BX) },
38+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82598AF_DUAL_PORT) },
39+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82598AF_SINGLE_PORT) },
40+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82598AT) },
41+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82598AT2) },
42+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82598EB_SFP_LOM) },
43+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82598EB_CX4) },
44+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82598_CX4_DUAL_PORT) },
45+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82598_DA_DUAL_PORT) },
46+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82598_SR_DUAL_PORT_EM) },
47+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82598EB_XF_LR) },
48+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_KX4) },
49+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_KX4_MEZZ) },
50+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_KR) },
51+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_COMBO_BACKPLANE) },
52+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_SUBDEV_ID_82599_KX4_KR_MEZZ) },
53+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_CX4) },
54+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_SFP) },
55+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_SUBDEV_ID_82599_SFP) },
56+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_SUBDEV_ID_82599_RNDC) },
57+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_SUBDEV_ID_82599_560FLR) },
58+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_SUBDEV_ID_82599_ECNA_DP) },
59+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_BACKPLANE_FCOE) },
60+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_SFP_FCOE) },
61+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_SFP_EM) },
62+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_SFP_SF2) },
63+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_SFP_SF_QP) },
64+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_QSFP_SF_QP) },
65+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599EN_SFP) },
66+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_XAUI_LOM) },
67+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_T3_LOM) },
68+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_LS) },
69+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X540T) },
70+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X540T1) },
71+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550EM_X_SFP) },
72+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550EM_X_10G_T) },
73+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550EM_X_1G_T) },
74+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550T) },
75+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550T1) },
76+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550EM_A_KR) },
77+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550EM_A_KR_L) },
78+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550EM_A_SFP_N) },
79+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550EM_A_SGMII) },
80+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550EM_A_SGMII_L) },
81+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550EM_A_10G_T) },
82+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550EM_A_QSFP) },
83+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550EM_A_QSFP_N) },
84+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550EM_A_SFP) },
85+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550EM_A_1G_T) },
86+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550EM_A_1G_T_L) },
87+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550EM_X_KX4) },
88+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550EM_X_KR) },
89+#ifdef RTE_NIC_BYPASS
90+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_BYPASS) },
91+#endif
92+ { .vendor_id = 0, /* sentinel */ },
93 };
94
95-
96 /*
97 * The set of PCI devices this driver supports (for 82599 VF)
98 */
99 static const struct rte_pci_id pci_id_ixgbevf_map[] = {
100-
101-#define RTE_PCI_DEV_ID_DECL_IXGBEVF(vend, dev) {RTE_PCI_DEVICE(vend, dev)},
102-#include "rte_pci_dev_ids.h"
103-{ .vendor_id = 0, /* sentinel */ },
104-
105+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_VF) },
106+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_VF_HV) },
107+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X540_VF) },
108+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X540_VF_HV) },
109+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550_VF_HV) },
110+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550_VF) },
111+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550EM_A_VF) },
112+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550EM_A_VF_HV) },
113+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550EM_X_VF) },
114+ { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550EM_X_VF_HV) },
115+ { .vendor_id = 0, /* sentinel */ },
116 };
117
118 static const struct rte_eth_desc_lim rx_desc_lim = {
119diff --git a/lib/librte_eal/common/include/rte_pci_dev_ids.h b/lib/librte_eal/common/include/rte_pci_dev_ids.h
120index 6ec8ae8..1f9d372 100644
121--- a/lib/librte_eal/common/include/rte_pci_dev_ids.h
122+++ b/lib/librte_eal/common/include/rte_pci_dev_ids.h
123@@ -65,14 +65,6 @@
124 #define RTE_PCI_DEV_ID_DECL_IGBVF(vend, dev)
125 #endif
126
127-#ifndef RTE_PCI_DEV_ID_DECL_IXGBE
128-#define RTE_PCI_DEV_ID_DECL_IXGBE(vend, dev)
129-#endif
130-
131-#ifndef RTE_PCI_DEV_ID_DECL_IXGBEVF
132-#define RTE_PCI_DEV_ID_DECL_IXGBEVF(vend, dev)
133-#endif
134-
135 #ifndef PCI_VENDOR_ID_INTEL
136 /** Vendor ID used by Intel devices */
137 #define PCI_VENDOR_ID_INTEL 0x8086
138@@ -159,128 +151,6 @@ RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_DH89XXCC_SERDES)
139 RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_DH89XXCC_BACKPLANE)
140 RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_DH89XXCC_SFP)
141
142-/****************** Physical IXGBE devices from ixgbe_type.h ******************/
143-
144-#define IXGBE_DEV_ID_82598 0x10B6
145-#define IXGBE_DEV_ID_82598_BX 0x1508
146-#define IXGBE_DEV_ID_82598AF_DUAL_PORT 0x10C6
147-#define IXGBE_DEV_ID_82598AF_SINGLE_PORT 0x10C7
148-#define IXGBE_DEV_ID_82598AT 0x10C8
149-#define IXGBE_DEV_ID_82598AT2 0x150B
150-#define IXGBE_DEV_ID_82598EB_SFP_LOM 0x10DB
151-#define IXGBE_DEV_ID_82598EB_CX4 0x10DD
152-#define IXGBE_DEV_ID_82598_CX4_DUAL_PORT 0x10EC
153-#define IXGBE_DEV_ID_82598_DA_DUAL_PORT 0x10F1
154-#define IXGBE_DEV_ID_82598_SR_DUAL_PORT_EM 0x10E1
155-#define IXGBE_DEV_ID_82598EB_XF_LR 0x10F4
156-#define IXGBE_DEV_ID_82599_KX4 0x10F7
157-#define IXGBE_DEV_ID_82599_KX4_MEZZ 0x1514
158-#define IXGBE_DEV_ID_82599_KR 0x1517
159-#define IXGBE_DEV_ID_82599_COMBO_BACKPLANE 0x10F8
160-#define IXGBE_SUBDEV_ID_82599_KX4_KR_MEZZ 0x000C
161-#define IXGBE_DEV_ID_82599_CX4 0x10F9
162-#define IXGBE_DEV_ID_82599_SFP 0x10FB
163-#define IXGBE_SUBDEV_ID_82599_SFP 0x11A9
164-#define IXGBE_SUBDEV_ID_82599_RNDC 0x1F72
165-#define IXGBE_SUBDEV_ID_82599_560FLR 0x17D0
166-#define IXGBE_SUBDEV_ID_82599_ECNA_DP 0x0470
167-#define IXGBE_DEV_ID_82599_BACKPLANE_FCOE 0x152A
168-#define IXGBE_DEV_ID_82599_SFP_FCOE 0x1529
169-#define IXGBE_DEV_ID_82599_SFP_EM 0x1507
170-#define IXGBE_DEV_ID_82599_SFP_SF2 0x154D
171-#define IXGBE_DEV_ID_82599_SFP_SF_QP 0x154A
172-#define IXGBE_DEV_ID_82599_QSFP_SF_QP 0x1558
173-#define IXGBE_DEV_ID_82599EN_SFP 0x1557
174-#define IXGBE_DEV_ID_82599_XAUI_LOM 0x10FC
175-#define IXGBE_DEV_ID_82599_T3_LOM 0x151C
176-#define IXGBE_DEV_ID_82599_LS 0x154F
177-#define IXGBE_DEV_ID_X540T 0x1528
178-#define IXGBE_DEV_ID_X540T1 0x1560
179-#define IXGBE_DEV_ID_X550EM_X_SFP 0x15AC
180-#define IXGBE_DEV_ID_X550EM_X_10G_T 0x15AD
181-#define IXGBE_DEV_ID_X550EM_X_1G_T 0x15AE
182-#define IXGBE_DEV_ID_X550T 0x1563
183-#define IXGBE_DEV_ID_X550T1 0x15D1
184-#define IXGBE_DEV_ID_X550EM_A_KR 0x15C2
185-#define IXGBE_DEV_ID_X550EM_A_KR_L 0x15C3
186-#define IXGBE_DEV_ID_X550EM_A_SFP_N 0x15C4
187-#define IXGBE_DEV_ID_X550EM_A_SGMII 0x15C6
188-#define IXGBE_DEV_ID_X550EM_A_SGMII_L 0x15C7
189-#define IXGBE_DEV_ID_X550EM_A_10G_T 0x15C8
190-#define IXGBE_DEV_ID_X550EM_A_QSFP 0x15CA
191-#define IXGBE_DEV_ID_X550EM_A_QSFP_N 0x15CC
192-#define IXGBE_DEV_ID_X550EM_A_SFP 0x15CE
193-#define IXGBE_DEV_ID_X550EM_A_1G_T 0x15E4
194-#define IXGBE_DEV_ID_X550EM_A_1G_T_L 0x15E5
195-#define IXGBE_DEV_ID_X550EM_X_KX4 0x15AA
196-#define IXGBE_DEV_ID_X550EM_X_KR 0x15AB
197-
198-#ifdef RTE_NIC_BYPASS
199-#define IXGBE_DEV_ID_82599_BYPASS 0x155D
200-#endif
201-
202-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82598)
203-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82598_BX)
204-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82598AF_DUAL_PORT)
205-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, \
206- IXGBE_DEV_ID_82598AF_SINGLE_PORT)
207-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82598AT)
208-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82598AT2)
209-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82598EB_SFP_LOM)
210-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82598EB_CX4)
211-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82598_CX4_DUAL_PORT)
212-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82598_DA_DUAL_PORT)
213-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, \
214- IXGBE_DEV_ID_82598_SR_DUAL_PORT_EM)
215-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82598EB_XF_LR)
216-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82599_KX4)
217-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82599_KX4_MEZZ)
218-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82599_KR)
219-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, \
220- IXGBE_DEV_ID_82599_COMBO_BACKPLANE)
221-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, \
222- IXGBE_SUBDEV_ID_82599_KX4_KR_MEZZ)
223-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82599_CX4)
224-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82599_SFP)
225-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_SUBDEV_ID_82599_SFP)
226-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_SUBDEV_ID_82599_RNDC)
227-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_SUBDEV_ID_82599_560FLR)
228-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_SUBDEV_ID_82599_ECNA_DP)
229-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82599_BACKPLANE_FCOE)
230-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82599_SFP_FCOE)
231-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82599_SFP_EM)
232-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82599_SFP_SF2)
233-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82599_SFP_SF_QP)
234-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82599_QSFP_SF_QP)
235-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82599EN_SFP)
236-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82599_XAUI_LOM)
237-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82599_T3_LOM)
238-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82599_LS)
239-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X540T)
240-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X540T1)
241-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550EM_X_SFP)
242-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550EM_X_10G_T)
243-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550EM_X_1G_T)
244-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550T)
245-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550T1)
246-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550EM_A_KR)
247-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550EM_A_KR_L)
248-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550EM_A_SFP_N)
249-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550EM_A_SGMII)
250-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550EM_A_SGMII_L)
251-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550EM_A_10G_T)
252-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550EM_A_QSFP)
253-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550EM_A_QSFP_N)
254-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550EM_A_SFP)
255-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550EM_A_1G_T)
256-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550EM_A_1G_T_L)
257-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550EM_X_KX4)
258-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550EM_X_KR)
259-
260-#ifdef RTE_NIC_BYPASS
261-RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82599_BYPASS)
262-#endif
263-
264 /****************** Virtual IGB devices from e1000_hw.h ******************/
265
266 #define E1000_DEV_ID_82576_VF 0x10CA
267@@ -293,34 +163,8 @@ RTE_PCI_DEV_ID_DECL_IGBVF(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82576_VF_HV)
268 RTE_PCI_DEV_ID_DECL_IGBVF(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I350_VF)
269 RTE_PCI_DEV_ID_DECL_IGBVF(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I350_VF_HV)
270
271-/****************** Virtual IXGBE devices from ixgbe_type.h ******************/
272-
273-#define IXGBE_DEV_ID_82599_VF 0x10ED
274-#define IXGBE_DEV_ID_82599_VF_HV 0x152E
275-#define IXGBE_DEV_ID_X540_VF 0x1515
276-#define IXGBE_DEV_ID_X540_VF_HV 0x1530
277-#define IXGBE_DEV_ID_X550_VF_HV 0x1564
278-#define IXGBE_DEV_ID_X550_VF 0x1565
279-#define IXGBE_DEV_ID_X550EM_A_VF 0x15C5
280-#define IXGBE_DEV_ID_X550EM_A_VF_HV 0x15B4
281-#define IXGBE_DEV_ID_X550EM_X_VF 0x15A8
282-#define IXGBE_DEV_ID_X550EM_X_VF_HV 0x15A9
283-
284-RTE_PCI_DEV_ID_DECL_IXGBEVF(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82599_VF)
285-RTE_PCI_DEV_ID_DECL_IXGBEVF(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82599_VF_HV)
286-RTE_PCI_DEV_ID_DECL_IXGBEVF(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X540_VF)
287-RTE_PCI_DEV_ID_DECL_IXGBEVF(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X540_VF_HV)
288-RTE_PCI_DEV_ID_DECL_IXGBEVF(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550_VF_HV)
289-RTE_PCI_DEV_ID_DECL_IXGBEVF(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550_VF)
290-RTE_PCI_DEV_ID_DECL_IXGBEVF(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550EM_A_VF)
291-RTE_PCI_DEV_ID_DECL_IXGBEVF(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550EM_A_VF_HV)
292-RTE_PCI_DEV_ID_DECL_IXGBEVF(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550EM_X_VF)
293-RTE_PCI_DEV_ID_DECL_IXGBEVF(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550EM_X_VF_HV)
294-
295 /*
296 * Undef all RTE_PCI_DEV_ID_DECL_* here.
297 */
298 #undef RTE_PCI_DEV_ID_DECL_IGB
299 #undef RTE_PCI_DEV_ID_DECL_IGBVF
300-#undef RTE_PCI_DEV_ID_DECL_IXGBE
301-#undef RTE_PCI_DEV_ID_DECL_IXGBEVF
302diff --git a/lib/librte_eal/linuxapp/kni/kni_misc.c b/lib/librte_eal/linuxapp/kni/kni_misc.c
303index 59d15ca..66bf519 100644
304--- a/lib/librte_eal/linuxapp/kni/kni_misc.c
305+++ b/lib/librte_eal/linuxapp/kni/kni_misc.c
306@@ -55,6 +55,7 @@ extern void kni_set_ethtool_ops(struct net_device *netdev);
307
308 extern int ixgbe_kni_probe(struct pci_dev *pdev, struct net_device **lad_dev);
309 extern void ixgbe_kni_remove(struct pci_dev *pdev);
310+extern struct pci_device_id ixgbe_pci_tbl[];
311 extern int igb_kni_probe(struct pci_dev *pdev, struct net_device **lad_dev);
312 extern void igb_kni_remove(struct pci_dev *pdev);
313
314@@ -353,15 +354,14 @@ kni_dev_remove(struct kni_dev *dev)
315 if (!dev)
316 return -ENODEV;
317
318+ if (pci_match_id(ixgbe_pci_tbl, dev->pci_dev))
319+ ixgbe_kni_remove(dev->pci_dev);
320+
321 switch (dev->device_id) {
322 #define RTE_PCI_DEV_ID_DECL_IGB(vend, dev) case (dev):
323 #include <rte_pci_dev_ids.h>
324 igb_kni_remove(dev->pci_dev);
325 break;
326- #define RTE_PCI_DEV_ID_DECL_IXGBE(vend, dev) case (dev):
327- #include <rte_pci_dev_ids.h>
328- ixgbe_kni_remove(dev->pci_dev);
329- break;
330 default:
331 break;
332 }
333@@ -510,16 +510,15 @@ kni_ioctl_create(struct net *net,
334 (PCI_SLOT(pci->devfn) == dev_info.devid) &&
335 (PCI_FUNC(pci->devfn) == dev_info.function)) {
336 found_pci = pci;
337+
338+ if (pci_match_id(ixgbe_pci_tbl, found_pci))
339+ ret = ixgbe_kni_probe(found_pci, &lad_dev);
340+
341 switch (dev_info.device_id) {
342 #define RTE_PCI_DEV_ID_DECL_IGB(vend, dev) case (dev):
343 #include <rte_pci_dev_ids.h>
344 ret = igb_kni_probe(found_pci, &lad_dev);
345 break;
346- #define RTE_PCI_DEV_ID_DECL_IXGBE(vend, dev) \
347- case (dev):
348- #include <rte_pci_dev_ids.h>
349- ret = ixgbe_kni_probe(found_pci, &lad_dev);
350- break;
351 default:
352 ret = -1;
353 break;
354--
3551.9.1
356
diff --git a/common/recipes-extended/dpdk/dpdk_16.07.bb b/common/recipes-extended/dpdk/dpdk_16.07.bb
new file mode 100644
index 00000000..55729cd9
--- /dev/null
+++ b/common/recipes-extended/dpdk/dpdk_16.07.bb
@@ -0,0 +1,16 @@
1include dpdk.inc
2
3SRC_URI += "\
4 file://dpdk-16.04-add-config-variable-to-enable-disable-dpdk_qat.patch \
5 file://dpdk-16.04-dpdk-enable-ip_fragmentation-in-common_base-config.patch \
6 "
7
8SRC_URI[dpdk.md5sum] = "4afdc7951e21ff878a85ecade7f6f488"
9SRC_URI[dpdk.sha256sum] = "cc982455a74357e465112bede5c29451b6eeb35f8c1c0dcea280dd3e7829f0e9"
10
11export EXAMPLES_BUILD_DIR = "${RTE_TARGET}"
12export ARCHDIR = "generic"
13
14do_configure_prepend () {
15 sed -e "s#CONFIG_RTE_LIBRTE_POWER=y#CONFIG_RTE_LIBRTE_POWER=${CONFIG_EXAMPLE_VM_POWER_MANAGER}#" -i ${S}/config/common_linuxapp
16}