|
@@ -349,6 +349,7 @@ nfp_flower_add_offload(struct nfp_app *app, struct net_device *netdev,
|
|
|
struct tc_cls_flower_offload *flow, bool egress)
|
|
|
{
|
|
|
enum nfp_flower_tun_type tun_type = NFP_FL_TUNNEL_NONE;
|
|
|
+ struct nfp_port *port = nfp_port_from_netdev(netdev);
|
|
|
struct nfp_flower_priv *priv = app->priv;
|
|
|
struct nfp_fl_payload *flow_pay;
|
|
|
struct nfp_fl_key_ls *key_layer;
|
|
@@ -390,6 +391,7 @@ nfp_flower_add_offload(struct nfp_app *app, struct net_device *netdev,
|
|
|
INIT_HLIST_NODE(&flow_pay->link);
|
|
|
flow_pay->tc_flower_cookie = flow->cookie;
|
|
|
hash_add_rcu(priv->flow_table, &flow_pay->link, flow->cookie);
|
|
|
+ port->tc_offload_cnt++;
|
|
|
|
|
|
/* Deallocate flow payload when flower rule has been destroyed. */
|
|
|
kfree(key_layer);
|
|
@@ -421,6 +423,7 @@ static int
|
|
|
nfp_flower_del_offload(struct nfp_app *app, struct net_device *netdev,
|
|
|
struct tc_cls_flower_offload *flow)
|
|
|
{
|
|
|
+ struct nfp_port *port = nfp_port_from_netdev(netdev);
|
|
|
struct nfp_fl_payload *nfp_flow;
|
|
|
int err;
|
|
|
|
|
@@ -442,6 +445,7 @@ nfp_flower_del_offload(struct nfp_app *app, struct net_device *netdev,
|
|
|
|
|
|
err_free_flow:
|
|
|
hash_del_rcu(&nfp_flow->link);
|
|
|
+ port->tc_offload_cnt--;
|
|
|
kfree(nfp_flow->action_data);
|
|
|
kfree(nfp_flow->mask_data);
|
|
|
kfree(nfp_flow->unmasked_data);
|