aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/flow_dissector.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/net/flow_dissector.h')
-rw-r--r--include/net/flow_dissector.h21
1 files changed, 20 insertions, 1 deletions
diff --git a/include/net/flow_dissector.h b/include/net/flow_dissector.h
index adc24df56b90..6a4586dcdede 100644
--- a/include/net/flow_dissector.h
+++ b/include/net/flow_dissector.h
@@ -47,7 +47,7 @@ struct flow_dissector_key_tags {
47struct flow_dissector_key_vlan { 47struct flow_dissector_key_vlan {
48 u16 vlan_id:12, 48 u16 vlan_id:12,
49 vlan_priority:3; 49 vlan_priority:3;
50 u16 padding; 50 __be16 vlan_tpid;
51}; 51};
52 52
53struct flow_dissector_key_mpls { 53struct flow_dissector_key_mpls {
@@ -57,6 +57,21 @@ struct flow_dissector_key_mpls {
57 mpls_label:20; 57 mpls_label:20;
58}; 58};
59 59
60#define FLOW_DIS_TUN_OPTS_MAX 255
61/**
62 * struct flow_dissector_key_enc_opts:
63 * @data: tunnel option data
64 * @len: length of tunnel option data
65 * @dst_opt_type: tunnel option type
66 */
67struct flow_dissector_key_enc_opts {
68 u8 data[FLOW_DIS_TUN_OPTS_MAX]; /* Using IP_TUNNEL_OPTS_MAX is desired
69 * here but seems difficult to #include
70 */
71 u8 len;
72 __be16 dst_opt_type;
73};
74
60struct flow_dissector_key_keyid { 75struct flow_dissector_key_keyid {
61 __be32 keyid; 76 __be32 keyid;
62}; 77};
@@ -206,6 +221,9 @@ enum flow_dissector_key_id {
206 FLOW_DISSECTOR_KEY_MPLS, /* struct flow_dissector_key_mpls */ 221 FLOW_DISSECTOR_KEY_MPLS, /* struct flow_dissector_key_mpls */
207 FLOW_DISSECTOR_KEY_TCP, /* struct flow_dissector_key_tcp */ 222 FLOW_DISSECTOR_KEY_TCP, /* struct flow_dissector_key_tcp */
208 FLOW_DISSECTOR_KEY_IP, /* struct flow_dissector_key_ip */ 223 FLOW_DISSECTOR_KEY_IP, /* struct flow_dissector_key_ip */
224 FLOW_DISSECTOR_KEY_CVLAN, /* struct flow_dissector_key_flow_vlan */
225 FLOW_DISSECTOR_KEY_ENC_IP, /* struct flow_dissector_key_ip */
226 FLOW_DISSECTOR_KEY_ENC_OPTS, /* struct flow_dissector_key_enc_opts */
209 227
210 FLOW_DISSECTOR_KEY_MAX, 228 FLOW_DISSECTOR_KEY_MAX,
211}; 229};
@@ -237,6 +255,7 @@ struct flow_keys {
237 struct flow_dissector_key_basic basic; 255 struct flow_dissector_key_basic basic;
238 struct flow_dissector_key_tags tags; 256 struct flow_dissector_key_tags tags;
239 struct flow_dissector_key_vlan vlan; 257 struct flow_dissector_key_vlan vlan;
258 struct flow_dissector_key_vlan cvlan;
240 struct flow_dissector_key_keyid keyid; 259 struct flow_dissector_key_keyid keyid;
241 struct flow_dissector_key_ports ports; 260 struct flow_dissector_key_ports ports;
242 struct flow_dissector_key_addrs addrs; 261 struct flow_dissector_key_addrs addrs;