X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fmlx5%2Frte_pmd_mlx5.h;h=fc37a386db86aaa71534c266d78b0309a0313cbd;hb=8e83ba285abe4341b7666927d3fc265b35446c06;hp=8c6922835408b543883a305e8bb3c38c85ccee5e;hpb=efa79e68c8cd41ba9ef082448b5c7ccc2a245ab9;p=dpdk.git diff --git a/drivers/net/mlx5/rte_pmd_mlx5.h b/drivers/net/mlx5/rte_pmd_mlx5.h index 8c69228354..fc37a386db 100644 --- a/drivers/net/mlx5/rte_pmd_mlx5.h +++ b/drivers/net/mlx5/rte_pmd_mlx5.h @@ -13,6 +13,10 @@ * dynamic flags. */ +#ifdef __cplusplus +extern "C" { +#endif + #define RTE_PMD_MLX5_FINE_GRANULARITY_INLINE "mlx5_fine_granularity_inline" /** @@ -32,4 +36,33 @@ __rte_experimental int rte_pmd_mlx5_get_dyn_flag_names(char *names[], unsigned int n); +#define MLX5_DOMAIN_BIT_NIC_RX (1 << 0) /**< NIC RX domain bit mask. */ +#define MLX5_DOMAIN_BIT_NIC_TX (1 << 1) /**< NIC TX domain bit mask. */ +#define MLX5_DOMAIN_BIT_FDB (1 << 2) /**< FDB (TX + RX) domain bit mask. */ + +/** + * Synchronize the flows to make them take effort on hardware. + * It only supports DR flows now. For DV and Verbs flows, there is no need to + * call this function, and a success will return directly in case of Verbs. + * + * @param[in] port_id + * The port identifier of the Ethernet device. + * @param[in] domains + * Refer to "/usr/include/infiniband/mlx5dv.h". + * Bitmask of domains in which the synchronization will be done. + * MLX5_DOMAIN_BIT* macros are used to specify the domains. + * An ADD or OR operation could be used to synchronize flows in more than + * one domain per call. + * + * @return + * - (0) if successful. + * - Negative value if an error. + */ +__rte_experimental +int rte_pmd_mlx5_sync_flow(uint16_t port_id, uint32_t domains); + +#ifdef __cplusplus +} +#endif + #endif