X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;ds=sidebyside;f=drivers%2Fnet%2Fmlx5%2Fmlx5_glue.c;h=58c9a82bdb2cc13a35ba5d3a853ba481d9415ff1;hb=d740eb5018bb5617abb8a2757000acb4cedc891f;hp=05474a09286e30c23ff16827dff0f8e7e9777289;hpb=62d6f70f30f4eaeb533b37b539ffebd2398e0cfe;p=dpdk.git diff --git a/drivers/net/mlx5/mlx5_glue.c b/drivers/net/mlx5/mlx5_glue.c index 05474a0928..58c9a82bdb 100644 --- a/drivers/net/mlx5/mlx5_glue.c +++ b/drivers/net/mlx5/mlx5_glue.c @@ -414,6 +414,31 @@ mlx5_glue_dr_create_flow_action_drop(void) #endif } +static void * +mlx5_glue_dr_create_flow_action_push_vlan(struct mlx5dv_dr_domain *domain, + rte_be32_t vlan_tag) +{ +#ifdef HAVE_MLX5DV_DR_VLAN + return mlx5dv_dr_action_create_push_vlan(domain, vlan_tag); +#else + (void)domain; + (void)vlan_tag; + errno = ENOTSUP; + return NULL; +#endif +} + +static void * +mlx5_glue_dr_create_flow_action_pop_vlan(void) +{ +#ifdef HAVE_MLX5DV_DR_VLAN + return mlx5dv_dr_action_create_pop_vlan(); +#else + errno = ENOTSUP; + return NULL; +#endif +} + static void * mlx5_glue_dr_create_flow_tbl(void *domain, uint32_t level) { @@ -627,6 +652,18 @@ mlx5_glue_dv_create_flow_action_dest_ibv_qp(void *qp) #endif } +static void * +mlx5_glue_dv_create_flow_action_dest_devx_tir(void *tir) +{ +#ifdef HAVE_MLX5DV_DR_ACTION_DEST_DEVX_TIR + return mlx5dv_dr_action_create_dest_devx_tir(tir); +#else + (void)tir; + errno = ENOTSUP; + return NULL; +#endif +} + static void * mlx5_glue_dv_create_flow_action_modify_header (struct ibv_context *ctx, @@ -939,7 +976,7 @@ mlx5_glue_devx_qp_query(struct ibv_qp *qp, const void *in, size_t inlen, void *out, size_t outlen) { -#ifdef HAVE_IBV_DEVX_ASYNC +#ifdef HAVE_IBV_DEVX_OBJ return mlx5dv_devx_qp_query(qp, in, inlen, out, outlen); #else (void)qp; @@ -952,6 +989,22 @@ mlx5_glue_devx_qp_query(struct ibv_qp *qp, #endif } +static int +mlx5_glue_devx_port_query(struct ibv_context *ctx, + uint32_t port_num, + struct mlx5dv_devx_port *mlx5_devx_port) +{ +#ifdef HAVE_MLX5DV_DR_DEVX_PORT + return mlx5dv_query_devx_port(ctx, port_num, mlx5_devx_port); +#else + (void)ctx; + (void)port_num; + (void)mlx5_devx_port; + errno = ENOTSUP; + return errno; +#endif +} + alignas(RTE_CACHE_LINE_SIZE) const struct mlx5_glue *mlx5_glue = &(const struct mlx5_glue){ .version = MLX5_GLUE_VERSION, @@ -1004,6 +1057,10 @@ const struct mlx5_glue *mlx5_glue = &(const struct mlx5_glue){ mlx5_glue_dr_create_flow_action_dest_vport, .dr_create_flow_action_drop = mlx5_glue_dr_create_flow_action_drop, + .dr_create_flow_action_push_vlan = + mlx5_glue_dr_create_flow_action_push_vlan, + .dr_create_flow_action_pop_vlan = + mlx5_glue_dr_create_flow_action_pop_vlan, .dr_create_flow_tbl = mlx5_glue_dr_create_flow_tbl, .dr_destroy_flow_tbl = mlx5_glue_dr_destroy_flow_tbl, .dr_create_domain = mlx5_glue_dr_create_domain, @@ -1020,6 +1077,8 @@ const struct mlx5_glue *mlx5_glue = &(const struct mlx5_glue){ mlx5_glue_dv_create_flow_action_counter, .dv_create_flow_action_dest_ibv_qp = mlx5_glue_dv_create_flow_action_dest_ibv_qp, + .dv_create_flow_action_dest_devx_tir = + mlx5_glue_dv_create_flow_action_dest_devx_tir, .dv_create_flow_action_modify_header = mlx5_glue_dv_create_flow_action_modify_header, .dv_create_flow_action_packet_reformat = @@ -1040,4 +1099,5 @@ const struct mlx5_glue *mlx5_glue = &(const struct mlx5_glue){ .devx_umem_reg = mlx5_glue_devx_umem_reg, .devx_umem_dereg = mlx5_glue_devx_umem_dereg, .devx_qp_query = mlx5_glue_devx_qp_query, + .devx_port_query = mlx5_glue_devx_port_query, };