Commit e09303d3 authored by Louis Peens's avatar Louis Peens Committed by David S. Miller

nfp: flower: renaming of feature bits

Clean up name aliasing. Some features gets enabled using a slightly
different method, but the bitmap for these were stored in the same
field. Rename their #defines and move the bitmap to a new variable.
Signed-off-by: default avatarLouis Peens <louis.peens@netronome.com>
Signed-off-by: default avatarSimon Horman <simon.horman@netronome.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 85bac6a5
...@@ -209,7 +209,7 @@ nfp_fl_output(struct nfp_app *app, struct nfp_fl_output *output, ...@@ -209,7 +209,7 @@ nfp_fl_output(struct nfp_app *app, struct nfp_fl_output *output,
NFP_FL_OUT_FLAGS_USE_TUN); NFP_FL_OUT_FLAGS_USE_TUN);
output->port = cpu_to_be32(NFP_FL_PORT_TYPE_TUN | tun_type); output->port = cpu_to_be32(NFP_FL_PORT_TYPE_TUN | tun_type);
} else if (netif_is_lag_master(out_dev) && } else if (netif_is_lag_master(out_dev) &&
priv->flower_ext_feats & NFP_FL_FEATS_LAG) { priv->flower_en_feats & NFP_FL_ENABLE_LAG) {
int gid; int gid;
output->flags = cpu_to_be16(tmp_flags); output->flags = cpu_to_be16(tmp_flags);
...@@ -956,7 +956,7 @@ nfp_flower_output_action(struct nfp_app *app, ...@@ -956,7 +956,7 @@ nfp_flower_output_action(struct nfp_app *app,
*a_len += sizeof(struct nfp_fl_output); *a_len += sizeof(struct nfp_fl_output);
if (priv->flower_ext_feats & NFP_FL_FEATS_LAG) { if (priv->flower_en_feats & NFP_FL_ENABLE_LAG) {
/* nfp_fl_pre_lag returns -err or size of prelag action added. /* nfp_fl_pre_lag returns -err or size of prelag action added.
* This will be 0 if it is not egressing to a lag dev. * This will be 0 if it is not egressing to a lag dev.
*/ */
......
...@@ -264,7 +264,7 @@ nfp_flower_cmsg_process_one_rx(struct nfp_app *app, struct sk_buff *skb) ...@@ -264,7 +264,7 @@ nfp_flower_cmsg_process_one_rx(struct nfp_app *app, struct sk_buff *skb)
nfp_flower_cmsg_portmod_rx(app, skb); nfp_flower_cmsg_portmod_rx(app, skb);
break; break;
case NFP_FLOWER_CMSG_TYPE_MERGE_HINT: case NFP_FLOWER_CMSG_TYPE_MERGE_HINT:
if (app_priv->flower_ext_feats & NFP_FL_FEATS_FLOW_MERGE) { if (app_priv->flower_en_feats & NFP_FL_ENABLE_FLOW_MERGE) {
nfp_flower_cmsg_merge_hint_rx(app, skb); nfp_flower_cmsg_merge_hint_rx(app, skb);
break; break;
} }
...@@ -285,7 +285,7 @@ nfp_flower_cmsg_process_one_rx(struct nfp_app *app, struct sk_buff *skb) ...@@ -285,7 +285,7 @@ nfp_flower_cmsg_process_one_rx(struct nfp_app *app, struct sk_buff *skb)
nfp_flower_stats_rlim_reply(app, skb); nfp_flower_stats_rlim_reply(app, skb);
break; break;
case NFP_FLOWER_CMSG_TYPE_LAG_CONFIG: case NFP_FLOWER_CMSG_TYPE_LAG_CONFIG:
if (app_priv->flower_ext_feats & NFP_FL_FEATS_LAG) { if (app_priv->flower_en_feats & NFP_FL_ENABLE_LAG) {
skb_stored = nfp_flower_lag_unprocessed_msg(app, skb); skb_stored = nfp_flower_lag_unprocessed_msg(app, skb);
break; break;
} }
......
...@@ -759,7 +759,7 @@ static int nfp_flower_init(struct nfp_app *app) ...@@ -759,7 +759,7 @@ static int nfp_flower_init(struct nfp_app *app)
err = nfp_rtsym_write_le(app->pf->rtbl, err = nfp_rtsym_write_le(app->pf->rtbl,
"_abi_flower_balance_sync_enable", 1); "_abi_flower_balance_sync_enable", 1);
if (!err) { if (!err) {
app_priv->flower_ext_feats |= NFP_FL_FEATS_LAG; app_priv->flower_ext_feats |= NFP_FL_ENABLE_LAG;
nfp_flower_lag_init(&app_priv->nfp_lag); nfp_flower_lag_init(&app_priv->nfp_lag);
} else if (err == -ENOENT) { } else if (err == -ENOENT) {
nfp_warn(app->cpp, "LAG not supported by FW.\n"); nfp_warn(app->cpp, "LAG not supported by FW.\n");
...@@ -772,7 +772,7 @@ static int nfp_flower_init(struct nfp_app *app) ...@@ -772,7 +772,7 @@ static int nfp_flower_init(struct nfp_app *app)
err = nfp_rtsym_write_le(app->pf->rtbl, err = nfp_rtsym_write_le(app->pf->rtbl,
"_abi_flower_merge_hint_enable", 1); "_abi_flower_merge_hint_enable", 1);
if (!err) { if (!err) {
app_priv->flower_ext_feats |= NFP_FL_FEATS_FLOW_MERGE; app_priv->flower_ext_feats |= NFP_FL_ENABLE_FLOW_MERGE;
nfp_flower_internal_port_init(app_priv); nfp_flower_internal_port_init(app_priv);
} else if (err == -ENOENT) { } else if (err == -ENOENT) {
nfp_warn(app->cpp, "Flow merge not supported by FW.\n"); nfp_warn(app->cpp, "Flow merge not supported by FW.\n");
...@@ -793,7 +793,7 @@ static int nfp_flower_init(struct nfp_app *app) ...@@ -793,7 +793,7 @@ static int nfp_flower_init(struct nfp_app *app)
return 0; return 0;
err_lag_clean: err_lag_clean:
if (app_priv->flower_ext_feats & NFP_FL_FEATS_LAG) if (app_priv->flower_ext_feats & NFP_FL_ENABLE_LAG)
nfp_flower_lag_cleanup(&app_priv->nfp_lag); nfp_flower_lag_cleanup(&app_priv->nfp_lag);
err_cleanup_metadata: err_cleanup_metadata:
nfp_flower_metadata_cleanup(app); nfp_flower_metadata_cleanup(app);
...@@ -813,10 +813,10 @@ static void nfp_flower_clean(struct nfp_app *app) ...@@ -813,10 +813,10 @@ static void nfp_flower_clean(struct nfp_app *app)
if (app_priv->flower_ext_feats & NFP_FL_FEATS_VF_RLIM) if (app_priv->flower_ext_feats & NFP_FL_FEATS_VF_RLIM)
nfp_flower_qos_cleanup(app); nfp_flower_qos_cleanup(app);
if (app_priv->flower_ext_feats & NFP_FL_FEATS_LAG) if (app_priv->flower_en_feats & NFP_FL_ENABLE_LAG)
nfp_flower_lag_cleanup(&app_priv->nfp_lag); nfp_flower_lag_cleanup(&app_priv->nfp_lag);
if (app_priv->flower_ext_feats & NFP_FL_FEATS_FLOW_MERGE) if (app_priv->flower_en_feats & NFP_FL_ENABLE_FLOW_MERGE)
nfp_flower_internal_port_cleanup(app_priv); nfp_flower_internal_port_cleanup(app_priv);
nfp_flower_metadata_cleanup(app); nfp_flower_metadata_cleanup(app);
...@@ -886,7 +886,7 @@ static int nfp_flower_start(struct nfp_app *app) ...@@ -886,7 +886,7 @@ static int nfp_flower_start(struct nfp_app *app)
struct nfp_flower_priv *app_priv = app->priv; struct nfp_flower_priv *app_priv = app->priv;
int err; int err;
if (app_priv->flower_ext_feats & NFP_FL_FEATS_LAG) { if (app_priv->flower_en_feats & NFP_FL_ENABLE_LAG) {
err = nfp_flower_lag_reset(&app_priv->nfp_lag); err = nfp_flower_lag_reset(&app_priv->nfp_lag);
if (err) if (err)
return err; return err;
...@@ -907,7 +907,7 @@ nfp_flower_netdev_event(struct nfp_app *app, struct net_device *netdev, ...@@ -907,7 +907,7 @@ nfp_flower_netdev_event(struct nfp_app *app, struct net_device *netdev,
struct nfp_flower_priv *app_priv = app->priv; struct nfp_flower_priv *app_priv = app->priv;
int ret; int ret;
if (app_priv->flower_ext_feats & NFP_FL_FEATS_LAG) { if (app_priv->flower_en_feats & NFP_FL_ENABLE_LAG) {
ret = nfp_flower_lag_netdev_event(app_priv, netdev, event, ptr); ret = nfp_flower_lag_netdev_event(app_priv, netdev, event, ptr);
if (ret & NOTIFY_STOP_MASK) if (ret & NOTIFY_STOP_MASK)
return ret; return ret;
......
...@@ -44,8 +44,9 @@ struct nfp_app; ...@@ -44,8 +44,9 @@ struct nfp_app;
#define NFP_FL_FEATS_FLOW_MOD BIT(5) #define NFP_FL_FEATS_FLOW_MOD BIT(5)
#define NFP_FL_FEATS_PRE_TUN_RULES BIT(6) #define NFP_FL_FEATS_PRE_TUN_RULES BIT(6)
#define NFP_FL_FEATS_IPV6_TUN BIT(7) #define NFP_FL_FEATS_IPV6_TUN BIT(7)
#define NFP_FL_FEATS_FLOW_MERGE BIT(30)
#define NFP_FL_FEATS_LAG BIT(31) #define NFP_FL_ENABLE_FLOW_MERGE BIT(0)
#define NFP_FL_ENABLE_LAG BIT(1)
struct nfp_fl_mask_id { struct nfp_fl_mask_id {
struct circ_buf mask_id_free_list; struct circ_buf mask_id_free_list;
...@@ -145,6 +146,7 @@ struct nfp_fl_internal_ports { ...@@ -145,6 +146,7 @@ struct nfp_fl_internal_ports {
* @mask_id_seed: Seed used for mask hash table * @mask_id_seed: Seed used for mask hash table
* @flower_version: HW version of flower * @flower_version: HW version of flower
* @flower_ext_feats: Bitmap of extra features the HW supports * @flower_ext_feats: Bitmap of extra features the HW supports
* @flower_en_feats: Bitmap of features enabled by HW
* @stats_ids: List of free stats ids * @stats_ids: List of free stats ids
* @mask_ids: List of free mask ids * @mask_ids: List of free mask ids
* @mask_table: Hash table used to store masks * @mask_table: Hash table used to store masks
...@@ -180,6 +182,7 @@ struct nfp_flower_priv { ...@@ -180,6 +182,7 @@ struct nfp_flower_priv {
u32 mask_id_seed; u32 mask_id_seed;
u64 flower_version; u64 flower_version;
u64 flower_ext_feats; u64 flower_ext_feats;
u8 flower_en_feats;
struct nfp_fl_stats_id stats_ids; struct nfp_fl_stats_id stats_ids;
struct nfp_fl_mask_id mask_ids; struct nfp_fl_mask_id mask_ids;
DECLARE_HASHTABLE(mask_table, NFP_FLOWER_MASK_HASH_BITS); DECLARE_HASHTABLE(mask_table, NFP_FLOWER_MASK_HASH_BITS);
...@@ -346,7 +349,7 @@ nfp_flower_internal_port_can_offload(struct nfp_app *app, ...@@ -346,7 +349,7 @@ nfp_flower_internal_port_can_offload(struct nfp_app *app,
{ {
struct nfp_flower_priv *app_priv = app->priv; struct nfp_flower_priv *app_priv = app->priv;
if (!(app_priv->flower_ext_feats & NFP_FL_FEATS_FLOW_MERGE)) if (!(app_priv->flower_en_feats & NFP_FL_ENABLE_FLOW_MERGE))
return false; return false;
if (!netdev->rtnl_link_ops) if (!netdev->rtnl_link_ops)
return false; return false;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment