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);
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 */