MLX5_FLOW_NAMESPACE_FDB
if (namespace == MLX5_FLOW_NAMESPACE_FDB) /* FDB offloading */
ns_type = MLX5_FLOW_NAMESPACE_FDB;
ns_type = MLX5_FLOW_NAMESPACE_FDB;
ns_type = MLX5_FLOW_NAMESPACE_FDB;
tc_acts = ns_type == MLX5_FLOW_NAMESPACE_FDB ? tc_acts_fdb : tc_acts_nic;
if (ns_type == MLX5_FLOW_NAMESPACE_FDB) {
err = mlx5e_tc_act_vlan_add_rewrite_action(priv, MLX5_FLOW_NAMESPACE_FDB, act,
return mlx5e_tc_act_vlan_add_rewrite_action(priv, MLX5_FLOW_NAMESPACE_FDB,
if (ns_type == MLX5_FLOW_NAMESPACE_FDB) {
if (handle->ns_type == MLX5_FLOW_NAMESPACE_FDB)
enum fs_flow_table_type table_type = ns_type == MLX5_FLOW_NAMESPACE_FDB ?
err = mlx5e_tc_match_to_reg_set(mdev, mod_acts, MLX5_FLOW_NAMESPACE_FDB,
modify_hdr = mlx5_modify_header_alloc(mdev, MLX5_FLOW_NAMESPACE_FDB,
u32 attr_sz = ns_to_attr_sz(MLX5_FLOW_NAMESPACE_FDB);
post_attr = mlx5_alloc_flow_attr(MLX5_FLOW_NAMESPACE_FDB);
pre_attr = mlx5_alloc_flow_attr(MLX5_FLOW_NAMESPACE_FDB);
root_ns = mlx5_get_flow_namespace(dev, MLX5_FLOW_NAMESPACE_FDB);
ft_attr.prio = ct_priv->ns_type == MLX5_FLOW_NAMESPACE_FDB ?
if (ct_priv->ns_type == MLX5_FLOW_NAMESPACE_FDB) {
if (ns_type == MLX5_FLOW_NAMESPACE_FDB)
if (ns != MLX5_FLOW_NAMESPACE_FDB) {
if (ct_priv->ns_type == MLX5_FLOW_NAMESPACE_FDB)
MLX5_FLOW_NAMESPACE_FDB);
MLX5_FLOW_NAMESPACE_FDB);
MLX5_FLOW_NAMESPACE_FDB);
MLX5_FLOW_NAMESPACE_FDB);
MLX5_FLOW_NAMESPACE_FDB);
MLX5_FLOW_NAMESPACE_FDB,
MLX5_FLOW_NAMESPACE_FDB);
return MLX5_FLOW_NAMESPACE_FDB;
ns_esw = mlx5_get_flow_namespace(mdev, MLX5_FLOW_NAMESPACE_FDB);
slow_attr = mlx5_alloc_flow_attr(MLX5_FLOW_NAMESPACE_FDB);
err = mlx5e_tc_match_to_reg_set(esw->dev, &mod_acts, MLX5_FLOW_NAMESPACE_FDB,
MLX5_FLOW_NAMESPACE_FDB, &mod_acts);
slow_attr = mlx5_alloc_flow_attr(MLX5_FLOW_NAMESPACE_FDB);
MLX5_FLOW_NAMESPACE_FDB, VPORT_TO_REG,
mod_hdr_acts, MLX5_FLOW_NAMESPACE_FDB,
MLX5_FLOW_NAMESPACE_FDB,
if (ns_type != MLX5_FLOW_NAMESPACE_FDB)
if (ns_type == MLX5_FLOW_NAMESPACE_FDB) {
MLX5_FLOW_NAMESPACE_FDB, VPORT_TO_REG,
u32 ex_attr_size = (type == MLX5_FLOW_NAMESPACE_FDB) ?
MLX5_FLOW_NAMESPACE_FDB);
MLX5_FLOW_NAMESPACE_FDB,
MLX5_FLOW_NAMESPACE_FDB : MLX5_FLOW_NAMESPACE_KERNEL;
return mlx5e_get_flow_namespace(flow) == MLX5_FLOW_NAMESPACE_FDB ?
#define ns_to_attr_sz(ns) (((ns) == MLX5_FLOW_NAMESPACE_FDB) ?\
MLX5_FLOW_NAMESPACE_FDB);
pkt_mod_hdr = mlx5_modify_header_alloc(esw->dev, MLX5_FLOW_NAMESPACE_FDB, 1, action);
return mlx5_packet_reformat_alloc(esw->dev, &reformat_params, MLX5_FLOW_NAMESPACE_FDB);
ns = mlx5_get_flow_namespace(dev, MLX5_FLOW_NAMESPACE_FDB);
err = mlx5e_tc_match_to_reg_set(esw->dev, &mod_acts, MLX5_FLOW_NAMESPACE_FDB,
err = mlx5e_tc_match_to_reg_set(esw->dev, &mod_acts, MLX5_FLOW_NAMESPACE_FDB,
flow_act.modify_hdr = mlx5_modify_header_alloc(esw->dev, MLX5_FLOW_NAMESPACE_FDB,
root_ns = mlx5_get_flow_namespace(esw->dev, MLX5_FLOW_NAMESPACE_FDB);
attr->chains_ns = MLX5_FLOW_NAMESPACE_FDB;
attr->chains_ns = MLX5_FLOW_NAMESPACE_FDB;
modify_hdr = mlx5_modify_header_alloc(mdev, MLX5_FLOW_NAMESPACE_FDB,
ns = mlx5_get_flow_namespace(dev, MLX5_FLOW_NAMESPACE_FDB);
attr.ns = MLX5_FLOW_NAMESPACE_FDB;
root_ns = mlx5_get_flow_namespace(dev, MLX5_FLOW_NAMESPACE_FDB);
MLX5_FLOW_NAMESPACE_FDB);
MLX5_FLOW_NAMESPACE_FDB);
!(mlx5_fs_get_capabilities(esw->dev, MLX5_FLOW_NAMESPACE_FDB) &
root_ns = mlx5_get_flow_namespace(dev, MLX5_FLOW_NAMESPACE_FDB);
MLX5_FLOW_NAMESPACE_FDB);
if (namespace == MLX5_FLOW_NAMESPACE_FDB ||
case MLX5_FLOW_NAMESPACE_FDB:
case MLX5_FLOW_NAMESPACE_FDB:
ns = (chains->ns == MLX5_FLOW_NAMESPACE_FDB) ?
if (chains->ns == MLX5_FLOW_NAMESPACE_FDB) {
root_ns = mlx5_get_root_namespace(dev, MLX5_FLOW_NAMESPACE_FDB);
root_ns = mlx5_get_root_namespace(dev, MLX5_FLOW_NAMESPACE_FDB);