Skip to content

Commit 8d7ba02

Browse files
Michael Chandavem330
authored andcommitted
bnxt_en: Add support for ntuple filter deletion by ethtool.
Add logic to delete a user specified ntuple filter from ethtool. Reviewed-by: Vasundhara Volam <[email protected]> Reviewed-by: Andy Gospodarek <[email protected]> Reviewed-by: Pavan Chebbi <[email protected]> Signed-off-by: Michael Chan <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent c029bc3 commit 8d7ba02

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1341,6 +1341,31 @@ static int bnxt_srxclsrlins(struct bnxt *bp, struct ethtool_rxnfc *cmd)
13411341
return rc;
13421342
}
13431343

1344+
static int bnxt_srxclsrldel(struct bnxt *bp, struct ethtool_rxnfc *cmd)
1345+
{
1346+
struct ethtool_rx_flow_spec *fs = &cmd->fs;
1347+
struct bnxt_filter_base *fltr_base;
1348+
1349+
rcu_read_lock();
1350+
fltr_base = bnxt_get_one_fltr_rcu(bp, bp->ntp_fltr_hash_tbl,
1351+
BNXT_NTP_FLTR_HASH_SIZE,
1352+
fs->location);
1353+
if (fltr_base) {
1354+
struct bnxt_ntuple_filter *fltr;
1355+
1356+
fltr = container_of(fltr_base, struct bnxt_ntuple_filter, base);
1357+
rcu_read_unlock();
1358+
if (!(fltr->base.flags & BNXT_ACT_NO_AGING))
1359+
return -EINVAL;
1360+
bnxt_hwrm_cfa_ntuple_filter_free(bp, fltr);
1361+
bnxt_del_ntp_filter(bp, fltr);
1362+
return 0;
1363+
}
1364+
1365+
rcu_read_unlock();
1366+
return -ENOENT;
1367+
}
1368+
13441369
static u64 get_ethtool_ipv4_rss(struct bnxt *bp)
13451370
{
13461371
if (bp->rss_hash_cfg & VNIC_RSS_CFG_REQ_HASH_TYPE_IPV4)
@@ -1532,6 +1557,10 @@ static int bnxt_set_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd)
15321557
rc = bnxt_srxclsrlins(bp, cmd);
15331558
break;
15341559

1560+
case ETHTOOL_SRXCLSRLDEL:
1561+
rc = bnxt_srxclsrldel(bp, cmd);
1562+
break;
1563+
15351564
default:
15361565
rc = -EOPNOTSUPP;
15371566
break;

0 commit comments

Comments
 (0)