Message ID | 20210630235632.3605211-2-mmichels@redhat.com |
---|---|
State | Superseded |
Headers | show |
Series | ARP and Floating IP Fixes | expand |
Context | Check | Description |
---|---|---|
ovsrobot/apply-robot | success | apply and check: success |
On Wed, Jun 30, 2021 at 7:57 PM Mark Michelson <mmichels@redhat.com> wrote: > > 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 <mmichels@redhat.com> Acked-by: Numan Siddique <numans@ovn.org> Thanks Numan > --- > 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 83746f4ab..694c3b2c4 100644 > --- a/northd/ovn-northd.c > +++ b/northd/ovn-northd.c > @@ -1571,6 +1571,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) > { > @@ -2398,12 +2413,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; > } > @@ -10206,14 +10216,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; > } > @@ -10243,14 +10247,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; > } > @@ -10298,14 +10296,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; > } > @@ -10340,15 +10332,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; > } > @@ -10385,14 +10370,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 > dev@openvswitch.org > https://mail.openvswitch.org/mailman/listinfo/ovs-dev >
diff --git a/northd/ovn-northd.c b/northd/ovn-northd.c index 83746f4ab..694c3b2c4 100644 --- a/northd/ovn-northd.c +++ b/northd/ovn-northd.c @@ -1571,6 +1571,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) { @@ -2398,12 +2413,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; } @@ -10206,14 +10216,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; } @@ -10243,14 +10247,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; } @@ -10298,14 +10296,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; } @@ -10340,15 +10332,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; } @@ -10385,14 +10370,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; }
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 <mmichels@redhat.com> --- northd/ovn-northd.c | 70 ++++++++++++++++----------------------------- 1 file changed, 24 insertions(+), 46 deletions(-)