net/mlx5: wrap adjust flow priority per OS

mlx5_flow_adjust_priority() is used to adjust priorities according to
priorities levels. It is Verbs based and it is called from shared code
(mlx5_flow_dv.c). Therefore, wrap it in an OS API.

Signed-off-by: Ophir Munk <ophirmu@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
This commit is contained in:
Ophir Munk 2020-12-28 14:32:48 +02:00 committed by Ferruh Yigit
parent e7252614cd
commit c604d92af7
2 changed files with 23 additions and 2 deletions

View File

@ -365,4 +365,24 @@ mlx5_flow_os_destroy_flow_action(void *action)
return mlx5_glue->destroy_flow_action(action);
}
/**
* OS wrapper over Verbs API.
* Adjust flow priority based on the highest layer and the request priority.
*
* @param[in] dev
* Pointer to the Ethernet device structure.
* @param[in] priority
* The rule base priority.
* @param[in] subpriority
* The priority based on the items.
*
* @return
* The new priority.
*/
static inline uint32_t
mlx5_os_flow_adjust_priority(struct rte_eth_dev *dev, int32_t priority,
uint32_t subpriority)
{
return mlx5_flow_adjust_priority(dev, priority, subpriority);
}
#endif /* RTE_PMD_MLX5_FLOW_OS_H_ */

View File

@ -10567,8 +10567,9 @@ flow_dv_translate(struct rte_eth_dev *dev,
/* Register matcher. */
matcher.crc = rte_raw_cksum((const void *)matcher.mask.buf,
matcher.mask.size);
matcher.priority = mlx5_flow_adjust_priority(dev, priority,
matcher.priority);
matcher.priority = mlx5_os_flow_adjust_priority(dev,
priority,
matcher.priority);
/* reserved field no needs to be set to 0 here. */
tbl_key.domain = attr->transfer;
tbl_key.direction = attr->egress;