This avoids packet duplication when native tunneling is used.
The right solution is to adjust the native tunneling code so that
it discards packets not directed to the current host. I expect
to see a patch for that correct solution soon, see:
http://openvswitch.org/pipermail/dev/2015-September/059528.html
---
ovn/controller/encaps.c | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)
diff --git a/ovn/controller/encaps.c b/ovn/controller/encaps.c
index 070b741..74b0e87 100644
--- a/ovn/controller/encaps.c
+++ b/ovn/controller/encaps.c
@@ -113,7 +113,7 @@ tunnel_create_name(struct tunnel_ctx *tc, const char
*chassis_id)
static void
tunnel_add(struct tunnel_ctx *tc, const char *new_chassis_id,
- const struct sbrec_encap *encap)
+ const struct sbrec_encap *encap, const char *encap_ip)
{
struct port_hash_node *hash_node;
@@ -167,6 +167,7 @@ tunnel_add(struct tunnel_ctx *tc, const char
*new_chassis_id,
ovsrec_interface_set_name(iface, port_name);
ovsrec_interface_set_type(iface, encap->type);
smap_add(&options, "remote_ip", encap->ip);
+ smap_add(&options, "local_ip", encap_ip);
smap_add(&options, "key", "flow");
ovsrec_interface_set_options(iface, &options);
smap_destroy(&options);
@@ -235,6 +236,18 @@ encaps_run(struct controller_ctx *ctx, const struct
ovsrec_bridge *br_int,
return;
}
+ const struct ovsrec_open_vswitch *cfg =
ovsrec_open_vswitch_first(ctx->ovs_idl);
+ if (!cfg) {
+ VLOG_INFO("No Open_vSwitch row defined.");
+ return;
+ }
+
+ const char *encap_ip = smap_get(&cfg->external_ids, "ovn-encap-ip");
+ if (!encap_ip) {
+ VLOG_INFO("Need to specify an encap ip");
+ return;
+ }
+
const struct sbrec_chassis *chassis_rec;
const struct ovsrec_bridge *br;
@@ -278,7 +291,7 @@ encaps_run(struct controller_ctx *ctx, const struct
ovsrec_bridge *br_int,
VLOG_INFO("No supported encaps for '%s'", chassis_rec->name);
continue;
}
- tunnel_add(&tc, chassis_rec->name, encap);
+ tunnel_add(&tc, chassis_rec->name, encap, encap_ip);
}
}
--
2.1.3
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev