DPDK 25.03.0-rc0
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 <rte_compat.h>
9
18#ifdef __cplusplus
19extern "C" {
20#endif
21
22#define RTE_PMD_MLX5_FINE_GRANULARITY_INLINE "mlx5_fine_granularity_inline"
23
38__rte_experimental
39int rte_pmd_mlx5_get_dyn_flag_names(char *names[], unsigned int n);
40
41#define RTE_PMD_MLX5_DOMAIN_BIT_NIC_RX (1 << 0)
42#define RTE_PMD_MLX5_DOMAIN_BIT_NIC_TX (1 << 1)
43#define RTE_PMD_MLX5_DOMAIN_BIT_FDB (1 << 2)
63__rte_experimental
64int rte_pmd_mlx5_sync_flow(uint16_t port_id, uint32_t domains);
65
69#define RTE_PMD_MLX5_EXTERNAL_RX_QUEUE_ID_MIN (UINT16_MAX - 1000 + 1)
70
74#define MLX5_EXTERNAL_TX_QUEUE_ID_MIN (UINT16_MAX - 1000 + 1)
75
79#define RTE_PMD_MLX5_LINEAR_HASH_TAG_INDEX 255
80
100__rte_experimental
101int rte_pmd_mlx5_external_rx_queue_id_map(uint16_t port_id, uint16_t dpdk_idx,
102 uint32_t hw_idx);
103
120__rte_experimental
122 uint16_t dpdk_idx);
123
143__rte_experimental
144int rte_pmd_mlx5_external_tx_queue_id_map(uint16_t port_id, uint16_t dpdk_idx,
145 uint32_t hw_idx);
146
163__rte_experimental
165 uint16_t dpdk_idx);
166
174#define RTE_PMD_MLX5_HOST_SHAPER_FLAG_AVAIL_THRESH_TRIGGERED 0
175
194__rte_experimental
195int rte_pmd_mlx5_host_shaper_config(int port_id, uint8_t rate, uint32_t flags);
196
211__rte_experimental
212int rte_pmd_mlx5_external_sq_enable(uint16_t port_id, uint32_t sq_num);
213
214/* MLX5 flow engine mode definition for live migration. */
215enum rte_pmd_mlx5_flow_engine_mode {
216 RTE_PMD_MLX5_FLOW_ENGINE_MODE_ACTIVE, /* active means high priority, effective in HW. */
217 RTE_PMD_MLX5_FLOW_ENGINE_MODE_STANDBY, /* standby mode with lower priority flow rules. */
218};
219
224#define RTE_PMD_MLX5_FLOW_ENGINE_FLAG_STANDBY_DUP_INGRESS RTE_BIT32(0)
225
277__rte_experimental
278int rte_pmd_mlx5_flow_engine_set_mode(enum rte_pmd_mlx5_flow_engine_mode mode, uint32_t flags);
279
293 uint8_t option_type;
298 uint8_t option_len;
311 uint8_t offset;
317 uint8_t sample_len;
323};
324
357__rte_experimental
358void *
360 const struct rte_pmd_mlx5_geneve_tlv tlv_list[],
361 uint8_t nb_options);
362
378__rte_experimental
379int
381
396__rte_experimental
397int
398rte_pmd_mlx5_rxq_dump_contexts(uint16_t port_id, uint16_t queue_id, const char *filename);
399
414__rte_experimental
415int
416rte_pmd_mlx5_txq_dump_contexts(uint16_t port_id, uint16_t queue_id, const char *filename);
417
418#ifdef __cplusplus
419}
420#endif
421
422#endif /* RTE_PMD_PRIVATE_MLX5_H_ */
uint32_t rte_be32_t
uint16_t rte_be16_t
__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_tx_queue_id_unmap(uint16_t port_id, uint16_t dpdk_idx)
__rte_experimental int rte_pmd_mlx5_destroy_geneve_tlv_parser(void *handle)
__rte_experimental int rte_pmd_mlx5_external_tx_queue_id_map(uint16_t port_id, uint16_t dpdk_idx, uint32_t hw_idx)
__rte_experimental void * rte_pmd_mlx5_create_geneve_tlv_parser(uint16_t port_id, const struct rte_pmd_mlx5_geneve_tlv tlv_list[], uint8_t nb_options)
__rte_experimental int rte_pmd_mlx5_rxq_dump_contexts(uint16_t port_id, uint16_t queue_id, const char *filename)
__rte_experimental int rte_pmd_mlx5_sync_flow(uint16_t port_id, uint32_t domains)
__rte_experimental int rte_pmd_mlx5_txq_dump_contexts(uint16_t port_id, uint16_t queue_id, const char *filename)
__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)
rte_be32_t * match_data_mask
Definition: rte_pmd_mlx5.h:322