aboutsummaryrefslogtreecommitdiffstats
path: root/build/external/patches/dpdk_20.02/0003-common-iavf-support-VSI-mapping-table.patch
diff options
context:
space:
mode:
authorChenmin Sun <chenmin.sun@intel.com>2020-03-28 00:34:19 +0800
committerDamjan Marion <dmarion@me.com>2020-04-22 08:44:56 +0000
commit7f83738b46e6e0dd17c7a23392ceaaef686ac08a (patch)
tree737cd8b91a7d6286838bb3f5797ee00301164c5d /build/external/patches/dpdk_20.02/0003-common-iavf-support-VSI-mapping-table.patch
parent1e5ed9774973221218883b919844d252b4467305 (diff)
dpdk: DPDK 20.05 iavf flow director backporting to DPDK 20.02
0001 ~ 0014 patches are for virtual channel and PMD 0015 is the iavf fdir framework 0016 ~ 0017 are for the iavf fidr driver Type: feature Signed-off-by: Chenmin Sun <chenmin.sun@intel.com> Change-Id: I38e69ca0065a71cc6ba0b44ef7c7db51193a0899
Diffstat (limited to 'build/external/patches/dpdk_20.02/0003-common-iavf-support-VSI-mapping-table.patch')
-rw-r--r--build/external/patches/dpdk_20.02/0003-common-iavf-support-VSI-mapping-table.patch90
1 files changed, 90 insertions, 0 deletions
diff --git a/build/external/patches/dpdk_20.02/0003-common-iavf-support-VSI-mapping-table.patch b/build/external/patches/dpdk_20.02/0003-common-iavf-support-VSI-mapping-table.patch
new file mode 100644
index 00000000000..10a30f5ba06
--- /dev/null
+++ b/build/external/patches/dpdk_20.02/0003-common-iavf-support-VSI-mapping-table.patch
@@ -0,0 +1,90 @@
+From a2c92bf26e724eacd52971c4a83861ada82a6cb4 Mon Sep 17 00:00:00 2001
+From: Chenmin Sun <chenmin.sun@intel.com>
+Date: Fri, 17 Apr 2020 00:37:41 +0800
+Subject: [DPDK 03/17] common/iavf: support VSI mapping table
+
+Add an opcode for getting VSI mapping table.
+Add an virtchnl event code for VF reset done.
+
+Signed-off-by: Beilei Xing <beilei.xing@intel.com>
+Signed-off-by: Paul M Stillwell Jr <paul.m.stillwell.jr@intel.com>
+Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
+Signed-off-by: Chenmin Sun <chenmin.sun@intel.com>
+
+Acked-by: Beilei Xing <beilei.xing@intel.com>
+---
+ drivers/common/iavf/virtchnl.h | 30 ++++++++++++++++++++++++++++++
+ 1 file changed, 30 insertions(+)
+
+diff --git a/drivers/common/iavf/virtchnl.h b/drivers/common/iavf/virtchnl.h
+index 83a7a7174..6f9cf18cb 100644
+--- a/drivers/common/iavf/virtchnl.h
++++ b/drivers/common/iavf/virtchnl.h
+@@ -131,6 +131,7 @@ enum virtchnl_ops {
+ /* opcodes 34, 35, 36, 37 and 38 are reserved */
+ VIRTCHNL_OP_DCF_CMD_DESC = 39,
+ VIRTCHNL_OP_DCF_CMD_BUFF = 40,
++ VIRTCHNL_OP_DCF_GET_VSI_MAP = 42,
+ VIRTCHNL_OP_DCF_GET_PKG_INFO = 43,
+ };
+
+@@ -645,6 +646,25 @@ struct virtchnl_filter {
+
+ VIRTCHNL_CHECK_STRUCT_LEN(272, virtchnl_filter);
+
++/* VIRTCHNL_OP_DCF_GET_VSI_MAP
++ * VF sends this message to get VSI mapping table.
++ * PF responds with an indirect message containing VF's
++ * HW VSI IDs.
++ * The index of vf_vsi array is the logical VF ID, the
++ * value of vf_vsi array is the VF's HW VSI ID with its
++ * valid configuration.
++ */
++struct virtchnl_dcf_vsi_map {
++ u16 pf_vsi; /* PF's HW VSI ID */
++ u16 num_vfs; /* The actual number of VFs allocated */
++#define VIRTCHNL_DCF_VF_VSI_ID_S 0
++#define VIRTCHNL_DCF_VF_VSI_ID_M (0xFFF << VIRTCHNL_DCF_VF_VSI_ID_S)
++#define VIRTCHNL_DCF_VF_VSI_VALID (1 << 15)
++ u16 vf_vsi[1];
++};
++
++VIRTCHNL_CHECK_STRUCT_LEN(6, virtchnl_dcf_vsi_map);
++
+ /* VIRTCHNL_OP_EVENT
+ * PF sends this message to inform the VF driver of events that may affect it.
+ * No direct response is expected from the VF, though it may generate other
+@@ -655,6 +675,7 @@ enum virtchnl_event_codes {
+ VIRTCHNL_EVENT_LINK_CHANGE,
+ VIRTCHNL_EVENT_RESET_IMPENDING,
+ VIRTCHNL_EVENT_PF_DRIVER_CLOSE,
++ VIRTCHNL_EVENT_DCF_VSI_MAP_UPDATE,
+ };
+
+ #define PF_EVENT_SEVERITY_INFO 0
+@@ -682,6 +703,10 @@ struct virtchnl_pf_event {
+ u32 link_speed;
+ u8 link_status;
+ } link_event_adv;
++ struct {
++ u16 vf_id;
++ u16 vsi_id;
++ } vf_vsi_map;
+ } event_data;
+
+ int severity;
+@@ -912,6 +937,11 @@ virtchnl_vc_validate_vf_msg(struct virtchnl_version_info *ver, u32 v_opcode,
+ return 0;
+ case VIRTCHNL_OP_DCF_GET_PKG_INFO:
+ break;
++ case VIRTCHNL_OP_DCF_GET_VSI_MAP:
++ /* The two opcodes are required by DCF without message buffer,
++ * so the valid length keeps the default value 0.
++ */
++ break;
+ /* These are always errors coming from the VF. */
+ case VIRTCHNL_OP_EVENT:
+ case VIRTCHNL_OP_UNKNOWN:
+--
+2.17.1
+