net/mlx5: get hairpin capabilities
This commits adds the hairpin get capabilities function. Signed-off-by: Ori Kam <orika@mellanox.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
This commit is contained in:
parent
ae18a1ae96
commit
b6b3bf86bd
@ -166,6 +166,7 @@ New Features
|
||||
* Added support for VLAN set PCP offload command.
|
||||
* Added support for VLAN set VID offload command.
|
||||
* Added support for matching on packets withe Geneve tunnel header.
|
||||
* Added hairpin support.
|
||||
|
||||
* **Updated the AF_XDP PMD.**
|
||||
|
||||
|
@ -1039,6 +1039,7 @@ const struct eth_dev_ops mlx5_dev_ops = {
|
||||
.udp_tunnel_port_add = mlx5_udp_tunnel_port_add,
|
||||
.get_module_info = mlx5_get_module_info,
|
||||
.get_module_eeprom = mlx5_get_module_eeprom,
|
||||
.hairpin_cap_get = mlx5_hairpin_cap_get,
|
||||
};
|
||||
|
||||
/* Available operations from secondary process. */
|
||||
@ -1101,6 +1102,7 @@ const struct eth_dev_ops mlx5_dev_ops_isolate = {
|
||||
.is_removed = mlx5_is_removed,
|
||||
.get_module_info = mlx5_get_module_info,
|
||||
.get_module_eeprom = mlx5_get_module_eeprom,
|
||||
.hairpin_cap_get = mlx5_hairpin_cap_get,
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -789,7 +789,8 @@ int mlx5_get_module_info(struct rte_eth_dev *dev,
|
||||
struct rte_eth_dev_module_info *modinfo);
|
||||
int mlx5_get_module_eeprom(struct rte_eth_dev *dev,
|
||||
struct rte_dev_eeprom_info *info);
|
||||
|
||||
int mlx5_hairpin_cap_get(struct rte_eth_dev *dev,
|
||||
struct rte_eth_hairpin_cap *cap);
|
||||
/* mlx5_mac.c */
|
||||
|
||||
int mlx5_get_mac(struct rte_eth_dev *dev, uint8_t (*mac)[RTE_ETHER_ADDR_LEN]);
|
||||
|
@ -2114,3 +2114,30 @@ int mlx5_get_module_eeprom(struct rte_eth_dev *dev,
|
||||
rte_free(eeprom);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* DPDK callback to retrieve hairpin capabilities.
|
||||
*
|
||||
* @param dev
|
||||
* Pointer to Ethernet device structure.
|
||||
* @param[out] cap
|
||||
* Storage for hairpin capability data.
|
||||
*
|
||||
* @return
|
||||
* 0 on success, a negative errno value otherwise and rte_errno is set.
|
||||
*/
|
||||
int mlx5_hairpin_cap_get(struct rte_eth_dev *dev,
|
||||
struct rte_eth_hairpin_cap *cap)
|
||||
{
|
||||
struct mlx5_priv *priv = dev->data->dev_private;
|
||||
|
||||
if (priv->sh->devx == 0) {
|
||||
rte_errno = ENOTSUP;
|
||||
return -rte_errno;
|
||||
}
|
||||
cap->max_nb_queues = UINT16_MAX;
|
||||
cap->max_rx_2_tx = 1;
|
||||
cap->max_tx_2_rx = 1;
|
||||
cap->max_nb_desc = 8192;
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user