Lines Matching defs:mdev
193 static int parse_flow_attr(struct mlx5_core_dev *mdev,
220 match_ipv = MLX5_CAP_FLOWTABLE_NIC_RX(mdev,
227 match_ipv = MLX5_CAP_FLOWTABLE_NIC_RX(mdev,
442 if (check_mpls_supp_fields(MLX5_CAP_FLOWTABLE_NIC_RX(mdev,
457 if (check_mpls_supp_fields(MLX5_CAP_FLOWTABLE_NIC_RX(mdev,
473 if (check_mpls_supp_fields(MLX5_CAP_FLOWTABLE_NIC_RX(mdev,
487 if (check_mpls_supp_fields(MLX5_CAP_FLOWTABLE_NIC_RX(mdev,
595 is_valid_esp_aes_gcm(struct mlx5_core_dev *mdev,
620 static bool is_valid_spec(struct mlx5_core_dev *mdev,
626 return is_valid_esp_aes_gcm(mdev, spec, flow_act, egress) != VALID_SPEC_INVALID;
629 static bool is_valid_ethertype(struct mlx5_core_dev *mdev,
635 MLX5_CAP_FLOWTABLE_NIC_RX(mdev,
637 MLX5_CAP_FLOWTABLE_NIC_RX(mdev,
678 static bool is_valid_attr(struct mlx5_core_dev *mdev,
681 return is_valid_ethertype(mdev, flow_attr, false) &&
682 is_valid_ethertype(mdev, flow_attr, true);
777 max_table_size = BIT(MLX5_CAP_FLOWTABLE_NIC_RX(dev->mdev,
779 esw_encap = mlx5_eswitch_get_encap_mode(dev->mdev) !=
792 MLX5_CAP_FLOWTABLE_NIC_RX(dev->mdev, decap))
795 MLX5_CAP_FLOWTABLE_NIC_RX(dev->mdev,
800 dev->mdev, log_max_ft_size));
804 MLX5_CAP_FLOWTABLE_NIC_TX(dev->mdev, reformat))
807 ns = mlx5_get_flow_namespace(dev->mdev, fn_type);
813 ns = mlx5_get_flow_namespace(dev->mdev,
819 if (!MLX5_CAP_FLOWTABLE(dev->mdev,
824 dev->mdev, ft_type == MLX5_IB_FT_RX ?
861 MLX5_CAP_FLOWTABLE_NIC_RX(dev->mdev,
874 struct mlx5_eswitch *esw = dev->mdev->priv.eswitch;
922 if (!is_valid_attr(dev->mdev, flow_attr))
938 err = parse_flow_attr(dev->mdev, spec,
971 !is_valid_spec(dev->mdev, spec, &flow_act, is_egress)) {
1305 esw_encap = mlx5_eswitch_get_encap_mode(dev->mdev) !=
1310 MLX5_CAP_FLOWTABLE_NIC_RX(dev->mdev, log_max_ft_size));
1311 if (MLX5_CAP_FLOWTABLE_NIC_RX(dev->mdev, decap) && !esw_encap)
1313 if (MLX5_CAP_FLOWTABLE_NIC_RX(dev->mdev,
1320 MLX5_CAP_FLOWTABLE_NIC_TX(dev->mdev, log_max_ft_size));
1321 if (MLX5_CAP_FLOWTABLE_NIC_TX(dev->mdev, reformat) &&
1327 MLX5_CAP_ESW_FLOWTABLE_FDB(dev->mdev, log_max_ft_size));
1328 if (MLX5_CAP_ESW_FLOWTABLE_FDB(dev->mdev, decap) && esw_encap)
1330 if (MLX5_CAP_ESW_FLOWTABLE_FDB(dev->mdev,
1338 MLX5_CAP_FLOWTABLE_RDMA_RX(dev->mdev, log_max_ft_size));
1343 MLX5_CAP_FLOWTABLE_RDMA_TX(dev->mdev, log_max_ft_size));
1352 ns = mlx5_get_flow_namespace(dev->mdev, fs_matcher->ns_type);
1574 struct mlx5_ib_dev *mdev = to_mdev(device);
1637 mlx5_accel_esp_create_xfrm(mdev->mdev, &accel_attrs, flags);
1704 mlx5_modify_header_dealloc(maction->flow_action_raw.dev->mdev,
1708 mlx5_packet_reformat_dealloc(maction->flow_action_raw.dev->mdev,
2138 mlx5_eswitch_mode(dev->mdev->priv.eswitch) !=
2145 obj->mdev = dev->mdev;
2172 mlx5_modify_header_alloc(dev->mdev, namespace, num_actions, in);
2188 return MLX5_CAP_FLOWTABLE_NIC_RX(dev->mdev,
2190 MLX5_CAP_FLOWTABLE_NIC_TX(dev->mdev,
2192 MLX5_CAP_FLOWTABLE_RDMA_TX(dev->mdev,
2201 struct mlx5_ib_dev *mdev = mlx5_udata_to_mdev(&attrs->driver_udata);
2208 if (!mlx5_ib_modify_header_supported(mdev))
2224 action = mlx5_ib_create_modify_header(mdev, ft_type, num_actions, in);
2228 uverbs_flow_action_fill_action(action, uobj, &mdev->ib_dev,
2241 return MLX5_CAP_FLOWTABLE(ibdev->mdev,
2246 return MLX5_CAP_FLOWTABLE_NIC_TX(ibdev->mdev,
2251 return MLX5_CAP_FLOWTABLE_NIC_RX(ibdev->mdev,
2256 return MLX5_CAP_FLOWTABLE_NIC_RX(ibdev->mdev, decap);
2303 mlx5_packet_reformat_alloc(dev->mdev, prm_prt, len,
2322 struct mlx5_ib_dev *mdev = mlx5_udata_to_mdev(&attrs->driver_udata);
2338 if (!mlx5_ib_flow_action_packet_reformat_valid(mdev, dv_prt, ft_type))
2349 maction->flow_action_raw.dev = mdev;
2364 ret = mlx5_ib_flow_action_create_packet_reformat_ctx(mdev,
2370 uverbs_flow_action_fill_action(&maction->ib_action, uobj, &mdev->ib_dev,
2537 if (mlx5_accel_ipsec_device_caps(dev->mdev) &