From: Felix Fietkau <nbd@nbd.name>
Date: Thu, 17 Sep 2020 18:41:23 +0200
Subject: [PATCH] net: dsa: support hardware flow table offload

Look up the master device and the port id

Signed-off-by: Felix Fietkau <nbd@nbd.name>
---

--- a/include/net/netfilter/nf_flow_table.h
+++ b/include/net/netfilter/nf_flow_table.h
@@ -93,6 +93,7 @@ struct flow_offload {
 #define FLOW_OFFLOAD_PATH_ETHERNET	BIT(0)
 #define FLOW_OFFLOAD_PATH_VLAN		BIT(1)
 #define FLOW_OFFLOAD_PATH_PPPOE		BIT(2)
+#define FLOW_OFFLOAD_PATH_DSA		BIT(3)
 
 struct flow_offload_hw_path {
 	struct net_device *dev;
@@ -103,6 +104,7 @@ struct flow_offload_hw_path {
 	u16 vlan_proto;
 	u16 vlan_id;
 	u16 pppoe_sid;
+	u16 dsa_port;
 };
 
 #define NF_FLOW_TIMEOUT (30 * HZ)
--- a/net/dsa/slave.c
+++ b/net/dsa/slave.c
@@ -19,6 +19,10 @@
 #include <linux/if_bridge.h>
 #include <linux/netpoll.h>
 #include <linux/ptp_classify.h>
+#if IS_ENABLED(CONFIG_NF_FLOW_TABLE)
+#include <linux/netfilter.h>
+#include <net/netfilter/nf_flow_table.h>
+#endif
 
 #include "dsa_priv.h"
 
@@ -1224,6 +1228,27 @@ static struct devlink_port *dsa_slave_ge
 	return dp->ds->devlink ? &dp->devlink_port : NULL;
 }
 
+#if IS_ENABLED(CONFIG_NF_FLOW_TABLE)
+static int dsa_flow_offload_check(struct flow_offload_hw_path *path)
+{
+	struct net_device *dev = path->dev;
+	struct dsa_port *dp;
+
+	if (!(path->flags & FLOW_OFFLOAD_PATH_ETHERNET))
+		return -EINVAL;
+
+	dp = dsa_slave_to_port(dev);
+	path->dsa_port = dp->index;
+	path->dev = dsa_slave_to_master(dev);
+	path->flags |= FLOW_OFFLOAD_PATH_DSA;
+
+	if (path->dev->netdev_ops->ndo_flow_offload_check)
+		return path->dev->netdev_ops->ndo_flow_offload_check(path);
+
+	return 0;
+}
+#endif /* CONFIG_NF_FLOW_TABLE */
+
 static const struct net_device_ops dsa_slave_netdev_ops = {
 	.ndo_open	 	= dsa_slave_open,
 	.ndo_stop		= dsa_slave_close,
@@ -1248,6 +1273,9 @@ static const struct net_device_ops dsa_s
 	.ndo_vlan_rx_add_vid	= dsa_slave_vlan_rx_add_vid,
 	.ndo_vlan_rx_kill_vid	= dsa_slave_vlan_rx_kill_vid,
 	.ndo_get_devlink_port	= dsa_slave_get_devlink_port,
+#if IS_ENABLED(CONFIG_NF_FLOW_TABLE)
+	.ndo_flow_offload_check	 = dsa_flow_offload_check,
+#endif
 };
 
 static struct device_type dsa_type = {
