summaryrefslogtreecommitdiffstats
path: root/common/recipes-extended/dpdk/dpdk/dpdk-16.07-net-ixgbe-move-PCI-device-IDs-from-EAL.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-extended/dpdk/dpdk/dpdk-16.07-net-ixgbe-move-PCI-device-IDs-from-EAL.patch')
-rw-r--r--common/recipes-extended/dpdk/dpdk/dpdk-16.07-net-ixgbe-move-PCI-device-IDs-from-EAL.patch356
1 files changed, 356 insertions, 0 deletions
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