diff options
author | Pravin B Shelar <pshelar@nicira.com> | 2013-06-17 20:50:33 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-06-19 21:07:42 -0400 |
commit | aa310701e787087dbfbccf1409982a96e16c57a6 (patch) | |
tree | f426945de6694203f2c34218b4e4b06913b8f58c /net/openvswitch/flow.h | |
parent | a3e82996a8874c4cfe8c7f1be4d552018d8cba7e (diff) |
openvswitch: Add gre tunnel support.
Add gre vport implementation. Most of gre protocol processing
is pushed to gre module. It make use of gre demultiplexer
therefore it can co-exist with linux device based gre tunnels.
Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
Acked-by: Jesse Gross <jesse@nicira.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/openvswitch/flow.h')
-rw-r--r-- | net/openvswitch/flow.h | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/net/openvswitch/flow.h b/net/openvswitch/flow.h index 999842f247a0..66ef7220293e 100644 --- a/net/openvswitch/flow.h +++ b/net/openvswitch/flow.h | |||
@@ -49,11 +49,27 @@ struct ovs_key_ipv4_tunnel { | |||
49 | __be64 tun_id; | 49 | __be64 tun_id; |
50 | __be32 ipv4_src; | 50 | __be32 ipv4_src; |
51 | __be32 ipv4_dst; | 51 | __be32 ipv4_dst; |
52 | u16 tun_flags; | 52 | __be16 tun_flags; |
53 | u8 ipv4_tos; | 53 | u8 ipv4_tos; |
54 | u8 ipv4_ttl; | 54 | u8 ipv4_ttl; |
55 | }; | 55 | }; |
56 | 56 | ||
57 | static inline void ovs_flow_tun_key_init(struct ovs_key_ipv4_tunnel *tun_key, | ||
58 | const struct iphdr *iph, __be64 tun_id, | ||
59 | __be16 tun_flags) | ||
60 | { | ||
61 | tun_key->tun_id = tun_id; | ||
62 | tun_key->ipv4_src = iph->saddr; | ||
63 | tun_key->ipv4_dst = iph->daddr; | ||
64 | tun_key->ipv4_tos = iph->tos; | ||
65 | tun_key->ipv4_ttl = iph->ttl; | ||
66 | tun_key->tun_flags = tun_flags; | ||
67 | |||
68 | /* clear struct padding. */ | ||
69 | memset((unsigned char *) tun_key + OVS_TUNNEL_KEY_SIZE, 0, | ||
70 | sizeof(*tun_key) - OVS_TUNNEL_KEY_SIZE); | ||
71 | } | ||
72 | |||
57 | struct sw_flow_key { | 73 | struct sw_flow_key { |
58 | struct ovs_key_ipv4_tunnel tun_key; /* Encapsulating tunnel key. */ | 74 | struct ovs_key_ipv4_tunnel tun_key; /* Encapsulating tunnel key. */ |
59 | struct { | 75 | struct { |