On Fri, Sep 29, 2017 at 9:01 PM, Mark Michelson <mmich...@redhat.com> wrote:
> LGTM > > On Fri, Sep 29, 2017 at 10:07 AM Jakub Sitnicki <j...@redhat.com> wrote: > > > Employ the simplest possible approach to determine the state of logical > > ports that connect to logical routers by hardcoding it to always up. > > This is intended to be less surprising than the current approach where > > router ports appear as being down (with the exception of ones linking to > > gateway routers, which are bound). > > > > Reported-at: > > https://mail.openvswitch.org/pipermail/ovs-discuss/2017- > August/045202.html > > Signed-off-by: Jakub Sitnicki <j...@redhat.com> > > > Acked-by: Mark Michelson <mmich...@redhat.com> > > > --- > > ovn/northd/ovn-northd.c | 2 +- > > ovn/ovn-nb.xml | 26 +++++++++++++------ > > tests/ovn-northd.at | 69 > > +++++++++++++++++++++++++++++++++++++++++++++++++ > > 3 files changed, 88 insertions(+), 9 deletions(-) > > > > diff --git a/ovn/northd/ovn-northd.c b/ovn/northd/ovn-northd.c > > index 37651a0..791da1e 100644 > > --- a/ovn/northd/ovn-northd.c > > +++ b/ovn/northd/ovn-northd.c > > @@ -5980,7 +5980,7 @@ update_logical_port_status(struct northd_context > > *ctx) > > continue; > > } > > > > - bool up = sb->chassis ? true : false; > > + bool up = (sb->chassis || !strcmp(nbsp->type, "router")); > doesn't this introduce a functional change for ports related to gateway routers (which are boundable?) Could we exclude those from the "always up" and let it happen normally? We were counting on the up/down state of those ports to realize the master of active/backup gateway chassis sets. > if (!nbsp->up || *nbsp->up != up) { > > nbrec_logical_switch_port_set_up(nbsp, &up, 1); > > } > > diff --git a/ovn/ovn-nb.xml b/ovn/ovn-nb.xml > > index 9869d7e..5b02269 100644 > > --- a/ovn/ovn-nb.xml > > +++ b/ovn/ovn-nb.xml > > @@ -513,14 +513,24 @@ > > > > <group title="Port State"> > > <column name="up"> > > - This column is populated by <code>ovn-northd</code>, rather than > > by the > > - CMS plugin as is most of this database. When a logical port is > > bound > > - to a physical location in the OVN Southbound database <ref > > - db="OVN_Southbound" table="Binding"/> table, > > <code>ovn-northd</code> > > - sets this column to <code>true</code>; otherwise, or if the port > > - becomes unbound later, it sets it to <code>false</code>. This > > allows > > - the CMS to wait for a VM's (or container's) networking to become > > active > > - before it allows the VM (or container) to start. > > + <p> > > + This column is populated by <code>ovn-northd</code>, rather > > + than by the CMS plugin as is most of this database. When a > > + logical port is bound to a physical location in the OVN > > + Southbound database <ref db="OVN_Southbound" > > + table="Binding"/> table, <code>ovn-northd</code> sets this > > + column to <code>true</code>; otherwise, or if the port > > + becomes unbound later, it sets it to <code>false</code>. > > + This allows the CMS to wait for a VM's (or container's) > > + networking to become active before it allows the VM (or > > + container) to start. > > + </p> > > + > > + <p> > > + Logical ports of router type are an exception to this rule. > > + They are considered to be always up, that is this column is > > + always set to <code>true</code>. > > + </p> > > </column> > > > > <column name="enabled"> > > diff --git a/tests/ovn-northd.at b/tests/ovn-northd.at > > index fc9eda8..954e259 100644 > > --- a/tests/ovn-northd.at > > +++ b/tests/ovn-northd.at > > @@ -83,3 +83,72 @@ ovn-nbctl --wait=sb remove Logical_Router_Port bob > > options redirect-chassis > > AT_CHECK([ovn-sbctl find Gateway_Chassis name=bob_gw1], [0], []) > > > > AT_CLEANUP > > + > > +AT_SETUP([ovn -- check up state of VIF LSP]) > > +AT_SKIP_IF([test $HAVE_PYTHON = no]) > > +ovn_start > > + > > +ovn-nbctl ls-add S1 > > +ovn-nbctl lsp-add S1 S1-vm1 > > +AT_CHECK([test x`ovn-nbctl lsp-get-up S1-vm1` = xdown]) > > + > > +ovn-sbctl chassis-add hv1 geneve 127.0.0.1 > > +ovn-sbctl lsp-bind S1-vm1 hv1 > > +AT_CHECK([test x`ovn-nbctl lsp-get-up S1-vm1` = xup]) > > + > > +AT_CLEANUP > > + > > +AT_SETUP([ovn -- check up state of router LSP linked to a distributed > LR]) > > +AT_SKIP_IF([test $HAVE_PYTHON = no]) > > +ovn_start > > + > > +ovn-nbctl lr-add R1 > > +ovn-nbctl lrp-add R1 R1-S1 02:ac:10:01:00:01 172.16.1.1/24 > > + > > +ovn-nbctl ls-add S1 > > +ovn-nbctl lsp-add S1 S1-R1 > > +ovn-nbctl lsp-set-type S1-R1 router > > +ovn-nbctl lsp-set-addresses S1-R1 02:ac:10:01:00:01 > > +ovn-nbctl lsp-set-options S1-R1 router-port=R1-S1 > > +AT_CHECK([test x`ovn-nbctl lsp-get-up S1-R1` = xup]) > > + > > +AT_CLEANUP > > + > > +AT_SETUP([ovn -- check up state of router LSP linked to a gateway LR]) > > +AT_SKIP_IF([test $HAVE_PYTHON = no]) > > +ovn_start > > + > > +ovn-sbctl chassis-add gw1 geneve 127.0.0.1 > > + > > +ovn-nbctl create Logical_Router name=R1 options:chassis=gw1 > > +ovn-nbctl lrp-add R1 R1-S1 02:ac:10:01:00:01 172.16.1.1/24 > > + > > +ovn-nbctl ls-add S1 > > +ovn-nbctl lsp-add S1 S1-R1 > > +ovn-nbctl lsp-set-type S1-R1 router > > +ovn-nbctl lsp-set-addresses S1-R1 02:ac:10:01:00:01 > > +ovn-nbctl lsp-set-options S1-R1 router-port=R1-S1 > > + > > +ovn-sbctl lsp-bind S1-R1 gw1 > > +AT_CHECK([test x`ovn-nbctl lsp-get-up S1-R1` = xup]) > > + > > +AT_CLEANUP > > + > > +AT_SETUP([ovn -- check up state of router LSP linked to an LRP with set > > Gateway Chassis]) > > +AT_SKIP_IF([test $HAVE_PYTHON = no]) > > +ovn_start > > + > > +ovn-sbctl chassis-add gw1 geneve 127.0.0.1 > > + > > +ovn-nbctl lr-add R1 > > +ovn-nbctl lrp-add R1 R1-S1 02:ac:10:01:00:01 172.16.1.1/24 > > +ovn-nbctl lrp-set-gateway-chassis R1-S1 gw1 > > + > > +ovn-nbctl ls-add S1 > > +ovn-nbctl lsp-add S1 S1-R1 > > +ovn-nbctl lsp-set-type S1-R1 router > > +ovn-nbctl lsp-set-addresses S1-R1 router > > +ovn-nbctl lsp-set-options S1-R1 router-port=R1-S1 > > +AT_CHECK([test x`ovn-nbctl lsp-get-up S1-R1` = xup]) > > + > > +AT_CLEANUP > > -- > > 2.9.5 > > > > _______________________________________________ > > dev mailing list > > d...@openvswitch.org > > https://mail.openvswitch.org/mailman/listinfo/ovs-dev > > > _______________________________________________ > dev mailing list > d...@openvswitch.org > https://mail.openvswitch.org/mailman/listinfo/ovs-dev > _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev