The same pattern is repeated several times throughout ovn-northd.c, so this puts it in its own function. This will be used even more in an upcoming commit.
Signed-off-by: Mark Michelson <[email protected]> --- northd/ovn-northd.c | 70 ++++++++++++++++----------------------------- 1 file changed, 24 insertions(+), 46 deletions(-) diff --git a/northd/ovn-northd.c b/northd/ovn-northd.c index 46c590d70..ef4f5b790 100644 --- a/northd/ovn-northd.c +++ b/northd/ovn-northd.c @@ -1546,6 +1546,21 @@ lrport_is_enabled(const struct nbrec_logical_router_port *lrport) return !lrport->enabled || *lrport->enabled; } +static struct ovn_port * +ovn_port_get_peer(struct hmap *ports, struct ovn_port *op) +{ + if (!op->nbsp || !lsp_is_router(op->nbsp) || op->derived) { + return NULL; + } + + const char *peer_name = smap_get(&op->nbsp->options, "router-port"); + if (!peer_name) { + return NULL; + } + + return ovn_port_find(ports, peer_name); +} + static void ipam_insert_ip_for_datapath(struct ovn_datapath *od, uint32_t ip) { @@ -2373,12 +2388,7 @@ join_logical_ports(struct northd_context *ctx, struct ovn_port *op; HMAP_FOR_EACH (op, key_node, ports) { if (op->nbsp && lsp_is_router(op->nbsp) && !op->derived) { - const char *peer_name = smap_get(&op->nbsp->options, "router-port"); - if (!peer_name) { - continue; - } - - struct ovn_port *peer = ovn_port_find(ports, peer_name); + struct ovn_port *peer = ovn_port_get_peer(ports, op); if (!peer || !peer->nbrp) { continue; } @@ -10172,14 +10182,8 @@ build_arp_resolve_flows_for_lrouter_port( /* Get the Logical_Router_Port that the * Logical_Switch_Port is connected to, as * 'peer'. */ - const char *peer_name = smap_get( - &op->od->router_ports[k]->nbsp->options, - "router-port"); - if (!peer_name) { - continue; - } - - struct ovn_port *peer = ovn_port_find(ports, peer_name); + struct ovn_port *peer = ovn_port_get_peer( + ports, op->od->router_ports[k]); if (!peer || !peer->nbrp) { continue; } @@ -10209,14 +10213,8 @@ build_arp_resolve_flows_for_lrouter_port( /* Get the Logical_Router_Port that the * Logical_Switch_Port is connected to, as * 'peer'. */ - const char *peer_name = smap_get( - &op->od->router_ports[k]->nbsp->options, - "router-port"); - if (!peer_name) { - continue; - } - - struct ovn_port *peer = ovn_port_find(ports, peer_name); + struct ovn_port *peer = ovn_port_get_peer( + ports, op->od->router_ports[k]); if (!peer || !peer->nbrp) { continue; } @@ -10264,14 +10262,8 @@ build_arp_resolve_flows_for_lrouter_port( !op->sb->chassis) { /* The virtual port is not claimed yet. */ for (size_t i = 0; i < op->od->n_router_ports; i++) { - const char *peer_name = smap_get( - &op->od->router_ports[i]->nbsp->options, - "router-port"); - if (!peer_name) { - continue; - } - - struct ovn_port *peer = ovn_port_find(ports, peer_name); + struct ovn_port *peer = ovn_port_get_peer( + ports, op->od->router_ports[i]); if (!peer || !peer->nbrp) { continue; } @@ -10306,15 +10298,8 @@ build_arp_resolve_flows_for_lrouter_port( /* Get the Logical_Router_Port that the * Logical_Switch_Port is connected to, as * 'peer'. */ - const char *peer_name = smap_get( - &vp->od->router_ports[j]->nbsp->options, - "router-port"); - if (!peer_name) { - continue; - } - struct ovn_port *peer = - ovn_port_find(ports, peer_name); + ovn_port_get_peer(ports, vp->od->router_ports[j]); if (!peer || !peer->nbrp) { continue; } @@ -10351,14 +10336,7 @@ build_arp_resolve_flows_for_lrouter_port( * we need to add logical flows such that it can resolve * ARP entries for all the other router ports connected to * the switch in question. */ - - const char *peer_name = smap_get(&op->nbsp->options, - "router-port"); - if (!peer_name) { - return; - } - - struct ovn_port *peer = ovn_port_find(ports, peer_name); + struct ovn_port *peer = ovn_port_get_peer(ports, op); if (!peer || !peer->nbrp) { return; } -- 2.31.1 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
