summaryrefslogtreecommitdiff
path: root/ovn
diff options
context:
space:
mode:
authorRussell Bryant <russell@ovn.org>2016-01-25 16:54:06 -0500
committerRussell Bryant <russell@ovn.org>2016-02-03 09:25:56 -0500
commit5a4bee8a022ff99ff4efe18c74412d41926146fa (patch)
tree3ac52c0889a9780bf44e793251b5c09103f86bb0 /ovn
parente90aeb578ffc0cbae377b6251c2d956de98dacad (diff)
downloadopenvswitch-5a4bee8a022ff99ff4efe18c74412d41926146fa.tar.gz
ovn-controller: Allocate ct zones for localnet ports.
Previously, all ct() actions applied to localnet ports used the default conntrack zone. We should allocate a ct zone ID for all localnet ports just like we do for all local VIFs so that none of our connection tracking interferes with any base system connection tracking in the default zone. Signed-off-by: Russell Bryant <russell@ovn.org> Acked-by: Han Zhou <zhouhan@gmail.com> Acked-by: Ben Pfaff <blp@ovn.org>
Diffstat (limited to 'ovn')
-rw-r--r--ovn/controller/binding.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/ovn/controller/binding.c b/ovn/controller/binding.c
index c9649ebf8..ce9cccfd4 100644
--- a/ovn/controller/binding.c
+++ b/ovn/controller/binding.c
@@ -189,6 +189,13 @@ binding_run(struct controller_ctx *ctx, const struct ovsrec_bridge *br_int,
sbrec_port_binding_set_chassis(binding_rec, chassis_rec);
} else if (binding_rec->chassis == chassis_rec) {
sbrec_port_binding_set_chassis(binding_rec, NULL);
+ } else if (!binding_rec->chassis
+ && !strcmp(binding_rec->type, "localnet")) {
+ /* localnet ports will never be bound to a chassis, but we want
+ * to list them in all_lports because we want to allocate
+ * a conntrack zone ID for each one, as we'll be creating
+ * a patch port for each one. */
+ sset_add(&all_lports, binding_rec->logical_port);
}
}