summaryrefslogtreecommitdiffstats
path: root/include/net/dsa.h
diff options
context:
space:
mode:
authorJohn Crispin2017-08-09 14:41:17 +0200
committerDavid S. Miller2017-08-10 07:51:47 +0200
commit598a968011ffc4d624934995fe46d06bd450cdf4 (patch)
tree2d0f718a04615ed23d4350f68ae2559bcb1f610f /include/net/dsa.h
parentnet-next: dsa: move struct dsa_device_ops to the global header file (diff)
downloadkernel-qcow2-linux-598a968011ffc4d624934995fe46d06bd450cdf4.tar.gz
kernel-qcow2-linux-598a968011ffc4d624934995fe46d06bd450cdf4.tar.xz
kernel-qcow2-linux-598a968011ffc4d624934995fe46d06bd450cdf4.zip
net-next: dsa: add flow_dissect callback to struct dsa_device_ops
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>
Diffstat (limited to 'include/net/dsa.h')
-rw-r--r--include/net/dsa.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/net/dsa.h b/include/net/dsa.h
index 65d7804c6f69..7f46b521313e 100644
--- a/include/net/dsa.h
+++ b/include/net/dsa.h
@@ -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 {