flow_dissector: introduce support for Ethernet addresses
[deliverable/linux.git] / include / net / flow_dissector.h
index 586b12306a52f9ca6d510230a1a86bc2c229aa3a..5eac9870689c3bdfa51f8b69c1aef030e7223021 100644 (file)
@@ -4,6 +4,7 @@
 #include <linux/types.h>
 #include <linux/skbuff.h>
 #include <linux/in6.h>
+#include <uapi/linux/if_ether.h>
 
 /**
  * struct flow_dissector_key_basic:
@@ -54,12 +55,24 @@ struct flow_dissector_key_ipv6_addrs {
        struct in6_addr dst;
 };
 
+/**
+ * struct flow_dissector_key_eth_addrs:
+ * @src: source Ethernet address
+ * @dst: destination Ethernet address
+ */
+struct flow_dissector_key_eth_addrs {
+       /* (dst,src) must be grouped, in the same way than in ETH header */
+       unsigned char dst[ETH_ALEN];
+       unsigned char src[ETH_ALEN];
+};
+
 enum flow_dissector_key_id {
        FLOW_DISSECTOR_KEY_BASIC, /* struct flow_dissector_key_basic */
        FLOW_DISSECTOR_KEY_IPV4_ADDRS, /* struct flow_dissector_key_addrs */
        FLOW_DISSECTOR_KEY_IPV6_HASH_ADDRS, /* struct flow_dissector_key_addrs */
        FLOW_DISSECTOR_KEY_PORTS, /* struct flow_dissector_key_ports */
        FLOW_DISSECTOR_KEY_IPV6_ADDRS, /* struct flow_dissector_key_ipv6_addrs */
+       FLOW_DISSECTOR_KEY_ETH_ADDRS, /* struct flow_dissector_key_eth_addrs */
 
        FLOW_DISSECTOR_KEY_MAX,
 };
This page took 0.0243 seconds and 5 git commands to generate.