net/i40e: get information about DDP profile
[dpdk.git] / drivers / net / i40e / rte_pmd_i40e.h
index 1efb2c4..11adfd0 100644 (file)
@@ -74,6 +74,21 @@ enum rte_pmd_i40e_package_op {
        RTE_PMD_I40E_PKG_OP_MAX = 32
 };
 
+/**
+ * Types of package information.
+ */
+enum rte_pmd_i40e_package_info {
+       RTE_PMD_I40E_PKG_INFO_UNDEFINED = 0,
+       RTE_PMD_I40E_PKG_INFO_GLOBAL_HEADER,
+       RTE_PMD_I40E_PKG_INFO_GLOBAL_NOTES_SIZE,
+       RTE_PMD_I40E_PKG_INFO_GLOBAL_NOTES,
+       RTE_PMD_I40E_PKG_INFO_GLOBAL_MAX = 1024,
+       RTE_PMD_I40E_PKG_INFO_HEADER,
+       RTE_PMD_I40E_PKG_INFO_DEVID_NUM,
+       RTE_PMD_I40E_PKG_INFO_DEVID_LIST,
+       RTE_PMD_I40E_PKG_INFO_MAX = 0xFFFFFFFF
+};
+
 #define RTE_PMD_I40E_DDP_NAME_SIZE 32
 
 /**
@@ -87,6 +102,14 @@ struct rte_pmd_i40e_ddp_version {
        uint8_t draft;
 };
 
+/**
+ * Device ID for dynamic device personalization.
+ */
+struct rte_pmd_i40e_ddp_device_id {
+       uint32_t vendor_dev_id;
+       uint32_t sub_vendor_dev_id;
+};
+
 /**
  * Profile information in profile info list.
  */
@@ -98,6 +121,8 @@ struct rte_pmd_i40e_profile_info {
        uint8_t name[RTE_PMD_I40E_DDP_NAME_SIZE];
 };
 
+#define RTE_PMD_I40E_DDP_OWNER_UNKNOWN 0xFF
+
 /**
  * Profile information list returned from HW.
  */
@@ -498,6 +523,27 @@ int rte_pmd_i40e_process_ddp_package(uint8_t port, uint8_t *buff,
                                     uint32_t size,
                                     enum rte_pmd_i40e_package_op op);
 
+/**
+ * rte_pmd_i40e_get_ddp_info - Get profile's info
+ * @param pkg
+ *    buffer of package.
+ * @param pkg_size
+ *    package buffer size
+ * @param info
+ *    buffer for response
+ * @param size
+ *    response buffer size
+ * @param type
+ *    type of information requested
+ * @return
+ *   - (0) if successful.
+ *   - (-ENOTSUP) if information type not supported by the profile.
+ *   - (-EINVAL) if bad parameter.
+ */
+int rte_pmd_i40e_get_ddp_info(uint8_t *pkg, uint32_t pkg_size,
+                                    uint8_t *info, uint32_t size,
+                                    enum rte_pmd_i40e_package_info type);
+
 /**
  * rte_pmd_i40e_get_ddp_list - Get loaded profile list
  * @param port