X-Git-Url: http://git.cascardo.eti.br/?a=blobdiff_plain;f=ofproto%2Ftunnel.h;h=1f3dfc23d878c54a734f8f18fec5f5ddaa382f39;hb=8a5fb3b4e82a2e420e0019a73410bc9d37293d61;hp=cdcbb77157a652fca2fb5d91737f24ade53008a0;hpb=493823d8d5379ed853631b03190b3cf10e980f7b;p=cascardo%2Fovs.git diff --git a/ofproto/tunnel.h b/ofproto/tunnel.h index cdcbb7715..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. @@ -25,20 +25,21 @@ * 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); @@ -46,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 */