diff mbox

[ovs-dev,1/2] ovn-northd: Only peer router ports to other router ports.

Message ID 1468942947-30893-1-git-send-email-blp@ovn.org
State Superseded
Headers show

Commit Message

Ben Pfaff July 19, 2016, 3:42 p.m. UTC
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 <guru@ovn.org>
Reported-at: http://openvswitch.org/pipermail/dev/2016-July/075524.html
Signed-off-by: Ben Pfaff <blp@ovn.org>
---
 ovn/northd/ovn-northd.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
diff mbox

Patch

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;
+            }
         }
     }
 }