MLX5_CAP_ESW_FLOWTABLE_FDB
MLX5_CAP_ESW_FLOWTABLE_FDB(dev->mdev, log_max_ft_size));
if (MLX5_CAP_ESW_FLOWTABLE_FDB(dev->mdev, decap) && esw_encap)
if (MLX5_CAP_ESW_FLOWTABLE_FDB(dev->mdev,
sw_owner_supp = MLX5_CAP_ESW_FLOWTABLE_FDB(mdev, sw_owner) ||
MLX5_CAP_ESW_FLOWTABLE_FDB(mdev, sw_owner_v2);
return MLX5_CAP_ESW_FLOWTABLE_FDB(mdev, max_modify_header_actions);
MLX5_CAP_ESW_FLOWTABLE_FDB(priv->mdev, reformat_and_fwd_to_table) :
if (!MLX5_CAP_ESW_FLOWTABLE_FDB(esw->dev,
if (!MLX5_CAP_ESW_FLOWTABLE_FDB(priv->mdev, reformat_l2_to_l3_tunnel) ||
if (!MLX5_CAP_ESW_FLOWTABLE_FDB(mdev, ignore_flow_level))
if (!MLX5_CAP_ESW_FLOWTABLE_FDB(dev, termination_table)) {
!MLX5_CAP_ESW_FLOWTABLE_FDB
if (!MLX5_CAP_ESW_FLOWTABLE_FDB(priv->mdev, ft_field_support.outer_geneve_vni)) {
!MLX5_CAP_ESW_FLOWTABLE_FDB(priv->mdev,
!MLX5_CAP_ESW_FLOWTABLE_FDB(priv->mdev,
if (MLX5_CAP_ESW_FLOWTABLE_FDB(priv->mdev,
if (!MLX5_CAP_ESW_FLOWTABLE_FDB(priv->mdev, ft_field_support.outer_geneve_oam)) {
if (MLX5_CAP_ESW_FLOWTABLE_FDB(priv->mdev,
return MLX5_CAP_ESW_FLOWTABLE_FDB(priv->mdev, reformat_l3_tunnel_to_l2);
if (!MLX5_CAP_ESW_FLOWTABLE_FDB(priv->mdev,
MLX5_CAP_ESW_FLOWTABLE_FDB(mdev, ignore_flow_level)))
!MLX5_CAP_ESW_FLOWTABLE_FDB(priv->mdev,
if (!BIT(MLX5_CAP_ESW_FLOWTABLE_FDB(esw->dev, reformat_insert)) ||
!MLX5_CAP_ESW_FLOWTABLE_FDB((esw)->dev, ignore_flow_level))
return BIT(MLX5_CAP_ESW_FLOWTABLE_FDB(esw->dev, reformat_remove)) &&
MLX5_CAP_ESW_FLOWTABLE_FDB(dev, log_max_ft_size));
if (!MLX5_CAP_ESW_FLOWTABLE_FDB(esw->dev, ft_support)) {
if (MLX5_CAP_ESW_FLOWTABLE_FDB(dev, reformat) &&
MLX5_CAP_ESW_FLOWTABLE_FDB(dev, decap))
bool ret = MLX5_CAP_ESW_FLOWTABLE_FDB(dev, pop_vlan) &&
MLX5_CAP_ESW_FLOWTABLE_FDB(dev, push_vlan);
return ret && MLX5_CAP_ESW_FLOWTABLE_FDB(dev, pop_vlan_2) &&
MLX5_CAP_ESW_FLOWTABLE_FDB(dev, push_vlan_2);
if (MLX5_CAP_ESW_FLOWTABLE_FDB(dev, ignore_flow_level))
if (MLX5_CAP_ESW_FLOWTABLE_FDB(esw->dev, ignore_flow_level))
(!MLX5_CAP_ESW_FLOWTABLE_FDB(dev, reformat) ||
!MLX5_CAP_ESW_FLOWTABLE_FDB(dev, decap))) {
MLX5_CAP_ESW_FLOWTABLE_FDB(esw->dev, ignore_flow_level);
if (!MLX5_CAP_ESW_FLOWTABLE_FDB(esw->dev, termination_table) ||
!MLX5_CAP_ESW_FLOWTABLE_FDB(esw->dev, ignore_flow_level) ||
max_actions = MLX5_CAP_ESW_FLOWTABLE_FDB(dev, max_modify_header_actions);
if (MLX5_CAP_ESW_FLOWTABLE_FDB(dev, ft_support)) {
(type == FS_FT_FDB) ? MLX5_CAP_ESW_FLOWTABLE_FDB(mdev, cap) : \
(type == FS_FT_FDB_RX) ? MLX5_CAP_ESW_FLOWTABLE_FDB(mdev, cap) : \
(type == FS_FT_FDB_TX) ? MLX5_CAP_ESW_FLOWTABLE_FDB(mdev, cap) : \
caps->sw_owner_v2 = MLX5_CAP_ESW_FLOWTABLE_FDB(mdev, sw_owner_v2);
caps->sw_owner = MLX5_CAP_ESW_FLOWTABLE_FDB(mdev, sw_owner);
(MLX5_CAP_ESW_FLOWTABLE_FDB(dev, sw_owner) ||
(MLX5_CAP_ESW_FLOWTABLE_FDB(dev, sw_owner_v2) &&