X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=drivers%2Fnet%2Fi40e%2Frte_pmd_i40e.h;h=356fa89d7198143590a5c8d945459c7007a05d9c;hb=f239aed5e674965691846e8ce3f187dd47523689;hp=1efb2c4bfe82fc318f49235a8a60b0b911845c42;hpb=7595afa4d30097c1177b69257118d8ad89a539be;p=deb_dpdk.git diff --git a/drivers/net/i40e/rte_pmd_i40e.h b/drivers/net/i40e/rte_pmd_i40e.h index 1efb2c4b..356fa89d 100644 --- a/drivers/net/i40e/rte_pmd_i40e.h +++ b/drivers/net/i40e/rte_pmd_i40e.h @@ -59,7 +59,7 @@ enum rte_pmd_i40e_mb_event_rsp { */ struct rte_pmd_i40e_mb_event_param { uint16_t vfid; /**< Virtual Function number */ - uint16_t msg_type; /**< VF to PF message type, see i40e_virtchnl_ops */ + uint16_t msg_type; /**< VF to PF message type, see virtchnl_ops */ uint16_t retval; /**< return value */ void *msg; /**< pointer to message */ uint16_t msglen; /**< length of the message */ @@ -71,9 +71,26 @@ struct rte_pmd_i40e_mb_event_param { enum rte_pmd_i40e_package_op { RTE_PMD_I40E_PKG_OP_UNDEFINED = 0, RTE_PMD_I40E_PKG_OP_WR_ADD, /**< load package and add to info list */ + RTE_PMD_I40E_PKG_OP_WR_DEL, /**< load package and delete from info list */ + RTE_PMD_I40E_PKG_OP_WR_ONLY, /**< load package without modifying info list */ 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 +104,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 +123,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. */ @@ -492,12 +519,35 @@ int rte_pmd_i40e_set_tc_strict_prio(uint8_t port, uint8_t tc_map); * - (0) if successful. * - (-ENODEV) if *port* invalid. * - (-EINVAL) if bad parameter. - * - (1) if profile exists. + * - (-EEXIST) if profile exists. + * - (-EACCES) if profile does not exist. + * - (-ENOTSUP) if operation not supported. */ 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