cxgb4: add action to steer flows to specific Rxq
authorVishal Kulkarni <vishal@chelsio.com>
Fri, 19 Jun 2020 14:21:39 +0000 (19:51 +0530)
committerDavid S. Miller <davem@davemloft.net>
Fri, 19 Jun 2020 20:17:32 +0000 (13:17 -0700)
Add support for queue action to steer Rx traffic
hitting the flows to specified Rxq.

Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
Signed-off-by: Vishal Kulkarni <vishal@chelsio.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_flower.c

index 3ded4fe..ccc7aab 100644 (file)
@@ -425,6 +425,11 @@ void cxgb4_process_flow_actions(struct net_device *in,
                        process_pedit_field(fs, val, mask, offset, htype);
                        }
                        break;
+               case FLOW_ACTION_QUEUE:
+                       fs->action = FILTER_PASS;
+                       fs->dirsteer = 1;
+                       fs->iq = act->queue.index;
+                       break;
                default:
                        break;
                }
@@ -609,6 +614,9 @@ int cxgb4_validate_flow_actions(struct net_device *dev,
                        act_pedit = true;
                        }
                        break;
+               case FLOW_ACTION_QUEUE:
+                       /* Do nothing. cxgb4_set_filter will validate */
+                       break;
                default:
                        netdev_err(dev, "%s: Unsupported action\n", __func__);
                        return -EOPNOTSUPP;