aboutsummaryrefslogtreecommitdiffstats
path: root/net/openvswitch/flow.h
diff options
context:
space:
mode:
authorPravin B Shelar <pshelar@nicira.com>2013-06-17 20:50:33 -0400
committerDavid S. Miller <davem@davemloft.net>2013-06-19 21:07:42 -0400
commitaa310701e787087dbfbccf1409982a96e16c57a6 (patch)
treef426945de6694203f2c34218b4e4b06913b8f58c /net/openvswitch/flow.h
parenta3e82996a8874c4cfe8c7f1be4d552018d8cba7e (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.h18
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
57static 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
57struct sw_flow_key { 73struct 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 {