X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=datapath%2Fflow.h;h=d8277b5b2f5dca42d5ac46edd2d5a8c1bd5aff26;hb=adda018cb84d550d11f45642d0e04dec20cf1625;hp=5d1578363c4f3e5f36fc0d42d0ebb4cbea0505a8;hpb=3b00e887bbc24bd5e88de9b1a92243e31e1e0eed;p=sliver-openvswitch.git diff --git a/datapath/flow.h b/datapath/flow.h index 5d1578363..d8277b5b2 100644 --- a/datapath/flow.h +++ b/datapath/flow.h @@ -58,6 +58,22 @@ struct ovs_key_ipv4_tunnel { u8 ipv4_ttl; }; +static inline void ovs_flow_tun_key_init(struct ovs_key_ipv4_tunnel *tun_key, + const struct iphdr *iph, __be64 tun_id, + __be16 tun_flags) +{ + tun_key->tun_id = tun_id; + tun_key->ipv4_src = iph->saddr; + tun_key->ipv4_dst = iph->daddr; + tun_key->ipv4_tos = iph->tos; + tun_key->ipv4_ttl = iph->ttl; + tun_key->tun_flags = tun_flags; + + /* clear struct padding. */ + memset((unsigned char *) tun_key + OVS_TUNNEL_KEY_SIZE, 0, + sizeof(*tun_key) - OVS_TUNNEL_KEY_SIZE); +} + struct sw_flow_key { struct ovs_key_ipv4_tunnel tun_key; /* Encapsulating tunnel key. */ struct {