ofproto-dpif-xlate: Distinguish "freezing" from "recirculation".
[cascardo/ovs.git] / ofproto / tunnel.h
index b8415ab..1f3dfc2 100644 (file)
@@ -38,8 +38,8 @@ int tnl_port_add(const struct ofport_dpif *, const struct netdev *,
 void tnl_port_del(const struct ofport_dpif *);
 
 const struct ofport_dpif *tnl_port_receive(const struct flow *);
-bool tnl_xlate_init(const struct flow *base_flow, struct flow *flow,
-                    struct flow_wildcards *);
+void tnl_wc_init(struct flow *, struct flow_wildcards *);
+bool tnl_process_ecn(struct flow *);
 odp_port_t tnl_port_send(const struct ofport_dpif *, struct flow *,
                          struct flow_wildcards *wc);
 
@@ -47,13 +47,14 @@ odp_port_t tnl_port_send(const struct ofport_dpif *, struct flow *,
 static inline bool
 tnl_port_should_receive(const struct flow *flow)
 {
-    return flow->tunnel.ip_dst != 0;
+    return flow_tnl_dst_is_set(&flow->tunnel);
 }
 
 int tnl_port_build_header(const struct ofport_dpif *ofport,
                           const struct flow *tnl_flow,
-                          uint8_t dmac[ETH_ADDR_LEN],
-                          uint8_t smac[ETH_ADDR_LEN],
-                          ovs_be32 ip_src, struct ovs_action_push_tnl *data);
+                          const struct eth_addr dmac,
+                          const struct eth_addr smac,
+                          const struct in6_addr *ipv6_src,
+                          struct ovs_action_push_tnl *data);
 
 #endif /* tunnel.h */