X-Git-Url: http://git.cascardo.eti.br/?a=blobdiff_plain;f=ofproto%2Ftunnel.h;h=1f3dfc23d878c54a734f8f18fec5f5ddaa382f39;hb=5077bbe921f6cdd359764a238736c37d3adc5c0e;hp=afe78ab802c092c6150b0885e220437bd88c1934;hpb=62a7cc71f56ff6a2e943db3d1db238bf7ecd8bc9;p=cascardo%2Fovs.git diff --git a/ofproto/tunnel.h b/ofproto/tunnel.h index afe78ab80..1f3dfc23d 100644 --- a/ofproto/tunnel.h +++ b/ofproto/tunnel.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2013 Nicira, Inc. +/* Copyright (c) 2013, 2015 Nicira, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,27 +20,26 @@ #include #include "flow.h" -/* skb mark used for IPsec tunnel packets */ -#define IPSEC_MARK 1 - /* Tunnel port emulation layer. * * These functions emulate tunnel virtual ports based on the outer * header information from the kernel. */ +struct ovs_action_push_tnl; struct ofport_dpif; struct netdev; +void ofproto_tunnel_init(void); bool tnl_port_reconfigure(const struct ofport_dpif *, const struct netdev *, - odp_port_t); + odp_port_t, bool native_tnl, const char name[]); -void tnl_port_add(const struct ofport_dpif *, const struct netdev *, - odp_port_t odp_port); +int tnl_port_add(const struct ofport_dpif *, const struct netdev *, + odp_port_t odp_port, bool native_tnl, const char name[]); 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); @@ -48,7 +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, + 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 */