]> git.droids-corp.org - dpdk.git/commitdiff
net/hinic: fix TCAM filter set
authorXiaoyun Wang <cloud.wangxiaoyun@huawei.com>
Mon, 14 Sep 2020 14:31:43 +0000 (22:31 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Wed, 30 Sep 2020 17:19:08 +0000 (19:19 +0200)
hinic supports two methods: linear table and tcam table,
if tcam filter enables failed but linear table is ok,
which also needs to enable filter, so for this scene,
driver should not close fdir switch.

Fixes: f4ca3fd54c4d ("net/hinic: create and destroy flow director filter")
Cc: stable@dpdk.org
Signed-off-by: Xiaoyun Wang <cloud.wangxiaoyun@huawei.com>
drivers/net/hinic/hinic_pmd_flow.c

index 9888a8793b08b4cdee46ea89a2491d154668d54c..d71a42afbdef885803921a8904bc0beed0312fdd 100644 (file)
@@ -2809,8 +2809,12 @@ static int hinic_add_tcam_filter(struct rte_eth_dev *dev,
 
                rc = hinic_set_fdir_tcam_rule_filter(nic_dev->hwdev, true);
                if (rc && rc != HINIC_MGMT_CMD_UNSUPPORTED) {
-                       (void)hinic_set_fdir_filter(nic_dev->hwdev, 0, 0, 0,
-                                               false);
+                       /*
+                        * hinic supports two methods: linear table and tcam
+                        * table, if tcam filter enables failed but linear table
+                        * is ok, which also needs to enable filter, so for this
+                        * scene, driver should not close fdir switch.
+                        */
                        (void)hinic_del_tcam_rule(nic_dev->hwdev,
                                                fdir_tcam_rule->index);
                        return rc;