[dpdk-dev] [PATCH v4 1/5] ethdev: add access to eeprom
Thomas Monjalon
thomas at monjalon.net
Tue Apr 24 12:25:35 CEST 2018
24/04/2018 12:17, Zijie Pan:
> +/**
> + * Placeholder for accessing plugin module eeprom
> + */
> +struct rte_dev_module_info {
> + uint32_t type; /**< Type of plugin module eeprom */
> + uint32_t eeprom_len; /**< Length of plugin module eeprom */
> +};
I am not sure "plugin module" is descriptive enough.
And I think the structure name should be rte_eth_dev_module_info
to make clear that we are talking about NIC modules.
Any better idea?
> +
> +/* EEPROM Standards for plug in modules */
> +#define RTE_ETH_MODULE_SFF_8079 0x1
> +#define RTE_ETH_MODULE_SFF_8079_LEN 256
> +#define RTE_ETH_MODULE_SFF_8472 0x2
> +#define RTE_ETH_MODULE_SFF_8472_LEN 512
> +#define RTE_ETH_MODULE_SFF_8636 0x3
> +#define RTE_ETH_MODULE_SFF_8636_LEN 256
> +#define RTE_ETH_MODULE_SFF_8436 0x4
> +#define RTE_ETH_MODULE_SFF_8436_LEN 256
> --- a/lib/librte_ether/rte_ethdev.c
> +++ b/lib/librte_ether/rte_ethdev.c
> @@ -3947,6 +3947,32 @@ int rte_eth_set_queue_rate_limit(uint16_t port_id, uint16_t queue_idx,
> return eth_err(port_id, (*dev->dev_ops->set_eeprom)(dev, info));
> }
>
> +int __rte_experimental
> +rte_eth_dev_get_module_info(uint16_t port_id,
> + struct rte_dev_module_info *modinfo)
> +{
> + struct rte_eth_dev *dev;
> +
> + RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -ENODEV);
> +
> + dev = &rte_eth_devices[port_id];
> + RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->get_module_info, -ENOTSUP);
> + return (*dev->dev_ops->get_module_info)(dev, modinfo);
> +}
> +
> +int __rte_experimental
> +rte_eth_dev_get_module_eeprom(uint16_t port_id,
> + struct rte_dev_eeprom_info *info)
> +{
> + struct rte_eth_dev *dev;
> +
> + RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -ENODEV);
> +
> + dev = &rte_eth_devices[port_id];
> + RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->get_module_eeprom, -ENOTSUP);
> + return (*dev->dev_ops->get_module_eeprom)(dev, info);
> +}
> +
> int
> rte_eth_dev_get_dcb_info(uint16_t port_id,
Please move this code after other EEPROM related functions.
> --- a/lib/librte_ether/rte_ethdev_version.map
> +++ b/lib/librte_ether/rte_ethdev_version.map
> @@ -229,5 +229,7 @@ EXPERIMENTAL {
> rte_mtr_policer_actions_update;
> rte_mtr_stats_read;
> rte_mtr_stats_update;
> + rte_eth_dev_get_module_info;
> + rte_eth_dev_get_module_eeprom;
This must be inserted in alphabetical order.
Thanks
More information about the dev
mailing list