A router port's "peer", if set, must point to another router port, but the code as written also accepted switch ports. This caused problems when switch ports were actually specified.
Reported-by: Gurucharan Shetty <g...@ovn.org> Reported-at: http://openvswitch.org/pipermail/dev/2016-July/075524.html Signed-off-by: Ben Pfaff <b...@ovn.org> --- ovn/northd/ovn-northd.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ovn/northd/ovn-northd.c b/ovn/northd/ovn-northd.c index 7ce509d..1b55c15 100644 --- a/ovn/northd/ovn-northd.c +++ b/ovn/northd/ovn-northd.c @@ -715,7 +715,10 @@ join_logical_ports(struct northd_context *ctx, sizeof *op->od->router_ports * (op->od->n_router_ports + 1)); op->od->router_ports[op->od->n_router_ports++] = op; } else if (op->nbr && op->nbr->peer) { - op->peer = ovn_port_find(ports, op->nbr->peer); + struct ovn_port *peer = ovn_port_find(ports, op->nbr->peer); + if (peer && peer->nbr) { + op->peer = peer; + } } } } -- 2.1.3 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev