net-next: dsa: add flow_dissect callback to struct dsa_device_ops
authorJohn Crispin <john@phrozen.org>
Wed, 9 Aug 2017 12:41:17 +0000 (14:41 +0200)
committerDavid S. Miller <davem@davemloft.net>
Thu, 10 Aug 2017 05:51:47 +0000 (22:51 -0700)
When the flow dissector first sees packets coming in on a DSA devices the
802.3 header wont be located where the code expects it to be as the tag
is still present. Adding this new callback allows a DSA device to provide a
new function that the flow_dissector can use to get the correct protocol
and offset of the network header.

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>
include/net/dsa.h

index 65d7804c6f69c6337bbc467457cc3b9dcd113b78..7f46b521313e51fdd032bd957f386d704c30e2c8 100644 (file)
@@ -106,6 +106,8 @@ struct dsa_device_ops {
        struct sk_buff *(*rcv)(struct sk_buff *skb, struct net_device *dev,
                               struct packet_type *pt,
                               struct net_device *orig_dev);
+       int (*flow_dissect)(const struct sk_buff *skb, __be16 *proto,
+                           int *offset);
 };
 
 struct dsa_switch_tree {