DPDK 23.11.6
rte_pmd_mlx5.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright 2020 Mellanox Technologies, Ltd
3 */
4
5#ifndef RTE_PMD_PRIVATE_MLX5_H_
6#define RTE_PMD_PRIVATE_MLX5_H_
7
8#include <stdint.h>
9
10#include <rte_byteorder.h>
11#include <rte_compat.h>
12
21#ifdef __cplusplus
22extern "C" {
23#endif
24
25#define RTE_PMD_MLX5_FINE_GRANULARITY_INLINE "mlx5_fine_granularity_inline"
26
41__rte_experimental
42int rte_pmd_mlx5_get_dyn_flag_names(char *names[], unsigned int n);
43
44#define RTE_PMD_MLX5_DOMAIN_BIT_NIC_RX (1 << 0)
45#define RTE_PMD_MLX5_DOMAIN_BIT_NIC_TX (1 << 1)
46#define RTE_PMD_MLX5_DOMAIN_BIT_FDB (1 << 2)
66__rte_experimental
67int rte_pmd_mlx5_sync_flow(uint16_t port_id, uint32_t domains);
68
72#define RTE_PMD_MLX5_EXTERNAL_RX_QUEUE_ID_MIN (UINT16_MAX - 1000 + 1)
73
77#define RTE_PMD_MLX5_LINEAR_HASH_TAG_INDEX 255
78
98__rte_experimental
99int rte_pmd_mlx5_external_rx_queue_id_map(uint16_t port_id, uint16_t dpdk_idx,
100 uint32_t hw_idx);
101
118__rte_experimental
120 uint16_t dpdk_idx);
121
129#define RTE_PMD_MLX5_HOST_SHAPER_FLAG_AVAIL_THRESH_TRIGGERED 0
130
149__rte_experimental
150int rte_pmd_mlx5_host_shaper_config(int port_id, uint8_t rate, uint32_t flags);
151
166__rte_experimental
167int rte_pmd_mlx5_external_sq_enable(uint16_t port_id, uint32_t sq_num);
168
169/* MLX5 flow engine mode definition for live migration. */
170enum rte_pmd_mlx5_flow_engine_mode {
171 RTE_PMD_MLX5_FLOW_ENGINE_MODE_ACTIVE, /* active means high priority, effective in HW. */
172 RTE_PMD_MLX5_FLOW_ENGINE_MODE_STANDBY, /* standby mode with lower priority flow rules. */
173};
174
179#define RTE_PMD_MLX5_FLOW_ENGINE_FLAG_STANDBY_DUP_INGRESS RTE_BIT32(0)
180
232__rte_experimental
233int rte_pmd_mlx5_flow_engine_set_mode(enum rte_pmd_mlx5_flow_engine_mode mode, uint32_t flags);
234
250__rte_experimental
251int rte_pmd_mlx5_external_sq_disable(uint16_t port_id, uint32_t sq_num);
252
253#ifdef __cplusplus
254}
255#endif
256
257#endif /* RTE_PMD_PRIVATE_MLX5_H_ */
__rte_experimental int rte_pmd_mlx5_flow_engine_set_mode(enum rte_pmd_mlx5_flow_engine_mode mode, uint32_t flags)
__rte_experimental int rte_pmd_mlx5_external_rx_queue_id_unmap(uint16_t port_id, uint16_t dpdk_idx)
__rte_experimental int rte_pmd_mlx5_host_shaper_config(int port_id, uint8_t rate, uint32_t flags)
__rte_experimental int rte_pmd_mlx5_external_rx_queue_id_map(uint16_t port_id, uint16_t dpdk_idx, uint32_t hw_idx)
__rte_experimental int rte_pmd_mlx5_external_sq_disable(uint16_t port_id, uint32_t sq_num)
__rte_experimental int rte_pmd_mlx5_sync_flow(uint16_t port_id, uint32_t domains)
__rte_experimental int rte_pmd_mlx5_external_sq_enable(uint16_t port_id, uint32_t sq_num)
__rte_experimental int rte_pmd_mlx5_get_dyn_flag_names(char *names[], unsigned int n)