aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar John Crispin <john@phrozen.org> 2017-08-09 14:41:18 +0200
committerGravatar David S. Miller <davem@davemloft.net> 2017-08-09 22:51:47 -0700
commit2dd592b274861021018446102fb443e24f72fe72 (patch)
treec6ab27e229b804d7b74b924b6a9a3f4f87e7d34f
parentnet-next: dsa: add flow_dissect callback to struct dsa_device_ops (diff)
downloadlinux-2dd592b274861021018446102fb443e24f72fe72.tar.gz
linux-2dd592b274861021018446102fb443e24f72fe72.tar.bz2
linux-2dd592b274861021018446102fb443e24f72fe72.zip
net-next: tag_mtk: add flow_dissect callback to the ops struct
The MT7530 inserts the 4 magic header in between the 802.3 address and protocol field. The patch implements the callback that can be called by the flow dissector to figure out the real protocol and offset of the network header. With this patch applied we can properly parse the packet and thus make hashing function properly. Signed-off-by: Muciri Gatimu <muciri@openmesh.com> Signed-off-by: Shashidhar Lakkavalli <shashidhar.lakkavalli@openmesh.com> Signed-off-by: John Crispin <john@phrozen.org> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/dsa/tag_mtk.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/net/dsa/tag_mtk.c b/net/dsa/tag_mtk.c
index 2f32b7ea3365..02163c045a96 100644
--- a/net/dsa/tag_mtk.c
+++ b/net/dsa/tag_mtk.c
@@ -87,7 +87,17 @@ static struct sk_buff *mtk_tag_rcv(struct sk_buff *skb, struct net_device *dev,
return skb;
}
+static int mtk_tag_flow_dissect(const struct sk_buff *skb, __be16 *proto,
+ int *offset)
+{
+ *offset = 4;
+ *proto = ((__be16 *)skb->data)[1];
+
+ return 0;
+}
+
const struct dsa_device_ops mtk_netdev_ops = {
- .xmit = mtk_tag_xmit,
- .rcv = mtk_tag_rcv,
+ .xmit = mtk_tag_xmit,
+ .rcv = mtk_tag_rcv,
+ .flow_dissect = mtk_tag_flow_dissect,
};