Add support for queue action to steer Rx traffic
hitting the flows to specified Rxq.

Signed-off-by: Rahul Lakkireddy <rahul.lakkire...@chelsio.com>
Signed-off-by: Vishal Kulkarni <vis...@chelsio.com>
---
 drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_flower.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_flower.c 
b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_flower.c
index 53dbb3683653..8a176190586d 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_flower.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_flower.c
@@ -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;
-- 
2.21.1

Reply via email to