[ovs-discuss] Including bfd status for tunnel endpoints on ovs-vsctl show

Miguel Angel Ajo Pelayo majopela at redhat.com
Mon Mar 12 09:17:43 UTC 2018


Eran was asking me if we can think of a way to get the
remote tunnel endpoint host also displayed in the options
dictionary.

I guess we could add another key to the dictionary with
"remote_host" from ovn-controller, a matter for a separate patch.

On Fri, Mar 9, 2018 at 7:20 PM Ben Pfaff <blp at ovn.org> wrote:

> Seems reasonable to me, feel free to submit a patch.
>
> On Fri, Mar 09, 2018 at 05:43:00PM +0000, Miguel Angel Ajo Pelayo wrote:
> > Ok, I have modified it to just show bfd_status, for rexample, in a 3
> > controller + 1 compute
> > environment, with a router and a vm on the compute:
> >
> > [heat-admin at overcloud-controller-2 ovs]$ sudo utilities/ovs-vsctl show
> > a4cf68a7-07e9-4ed4-a317-016cb610c821
> >     Bridge br-int
> >         fail_mode: secure
> >         Port "ovn-7e8b8a-0"
> >             Interface "ovn-7e8b8a-0"
> >                 type: geneve
> >                 options: {csum="true", key=flow, remote_ip="172.16.0.5"}
> >                 bfd_status: {diagnostic="No Diagnostic", flap_count="1",
> > forwarding="true", remote_diagnostic="No Diagnostic", remote_state=up,
> > state=up}
> >         Port "ovn-0c37dd-0"
> >             Interface "ovn-0c37dd-0"
> >                 type: geneve
> >                 options: {csum="true", key=flow, remote_ip="172.16.0.7"}
> >                 bfd_status: {diagnostic="No Diagnostic", flap_count="1",
> > forwarding="true", remote_diagnostic="No Diagnostic", remote_state=up,
> > state=up}
> >         Port br-int
> >             Interface br-int
> >                 type: internal
> >         Port
> "patch-br-int-to-provnet-b47ffac1-1704-4e97-85ef-f4fb478e18c4"
> >             Interface
> > "patch-br-int-to-provnet-b47ffac1-1704-4e97-85ef-f4fb478e18c4"
> >                 type: patch
> >                 options:
> > {peer="patch-provnet-b47ffac1-1704-4e97-85ef-f4fb478e18c4-to-br-int"}
> >         Port "ovn-9f2335-0"
> >             Interface "ovn-9f2335-0"
> >                 type: geneve
> >                 options: {csum="true", key=flow, remote_ip="172.16.0.11"}
> >                 bfd_status: {diagnostic="No Diagnostic", flap_count="1",
> > forwarding="true", remote_diagnostic="No Diagnostic", remote_state=up,
> > state=up}
> >     Bridge br-ex
> >         fail_mode: standalone
> >         Port br-ex
> >             Interface br-ex
> >             ...
> >
> >
> > if I admin disable that single router with " neutron router-update
> router1
> > --admin-state-up false"
> > (the bfd should be disabled all around because it's not necessary, and
> > ovs-vswitchd takes care
> > of clearing up bfd_status):
> >
> > [heat-admin at overcloud-controller-2 ovs]$ sudo utilities/ovs-vsctl show
> > a4cf68a7-07e9-4ed4-a317-016cb610c821
> >     Bridge br-int
> >         fail_mode: secure
> >         Port "ovn-7e8b8a-0"
> >             Interface "ovn-7e8b8a-0"
> >                 type: geneve
> >                 options: {csum="true", key=flow, remote_ip="172.16.0.5"}
> >         Port "ovn-0c37dd-0"
> >             Interface "ovn-0c37dd-0"
> >                 type: geneve
> >                 options: {csum="true", key=flow, remote_ip="172.16.0.7"}
> >         Port br-int
> >             Interface br-int
> >                 type: internal
> >         Port
> "patch-br-int-to-provnet-b47ffac1-1704-4e97-85ef-f4fb478e18c4"
> >             Interface
> > "patch-br-int-to-provnet-b47ffac1-1704-4e97-85ef-f4fb478e18c4"
> >                 type: patch
> >                 options:
> > {peer="patch-provnet-b47ffac1-1704-4e97-85ef-f4fb478e18c4-to-br-int"}
> >         Port "ovn-9f2335-0"
> >             Interface "ovn-9f2335-0"
> >                 type: geneve
> >                 options: {csum="true", key=flow, remote_ip="172.16.0.11"}
> >     Bridge br-ex
> >         fail_mode: standalone
> >         ...
> >
> >
> >
> >
> > On Fri, Mar 9, 2018 at 9:32 AM Miguel Angel Ajo Pelayo <
> majopela at redhat.com>
> > wrote:
> >
> > > Thank you Ben, I'll finish it, test it properly and submit the patch.
> > >
> > > I don't know if it makes any sense to add a filter where the dictionary
> > > has only a key "enabled" and it's "false",
> > > or it's really not worth it. I'll check out how it looks with a real
> > > deployment and get back here with the results.
> > >
> > > On Thu, Mar 8, 2018 at 7:12 PM Ben Pfaff <blp at ovn.org> wrote:
> > >
> > >> On Thu, Mar 08, 2018 at 04:43:50PM +0000, Miguel Angel Ajo Pelayo
> wrote:
> > >> > Ok, looking at the code, it seems like we may only need to do this?
> > >> >
> > >> > diff --git a/utilities/ovs-vsctl.c b/utilities/ovs-vsctl.c
> > >> > index 21fa18d..2ac60bf 100644
> > >> > --- a/utilities/ovs-vsctl.c
> > >> > +++ b/utilities/ovs-vsctl.c
> > >> > @@ -1018,7 +1018,9 @@ static struct cmd_show_table
> cmd_show_tables[] = {
> > >> >       &ovsrec_interface_col_name,
> > >> >       {&ovsrec_interface_col_type,
> > >> >        &ovsrec_interface_col_options,
> > >> > -      &ovsrec_interface_col_error},
> > >> > +      &ovsrec_interface_col_error,
> > >> > +      &ovsrec_interface_col_bfd,
> > >> > +      &ovsrec_interface_col_bfd_status},
> > >> >       {NULL, NULL, NULL}
> > >> >      },
> > >>
> > >> Yes, you also need to increase the size of columns[] in
> cmd_show_table:
> > >>
> > >> diff --git a/lib/db-ctl-base.h b/lib/db-ctl-base.h
> > >> index eb444270535b..5d8532a7bde2 100644
> > >> --- a/lib/db-ctl-base.h
> > >> +++ b/lib/db-ctl-base.h
> > >> @@ -197,7 +197,7 @@ struct weak_ref_table {
> > >>  struct cmd_show_table {
> > >>      const struct ovsdb_idl_table_class *table;
> > >>      const struct ovsdb_idl_column *name_column;
> > >> -    const struct ovsdb_idl_column *columns[3]; /* Seems like a good
> > >> number. */
> > >> +    const struct ovsdb_idl_column *columns[5]; /* Seems like a good
> > >> number. */
> > >>      const struct weak_ref_table wref_table;
> > >>  };
> > >>
> > >> > But that would render something like:
> > >> >
> > >> >
> > >> > [heat-admin at overcloud-novacompute-0 ~]$ sudo ovs-vsctl show
> > >> > 5f35518a-ab34-49a4-a227-e487e251b7e3
> > >> >     Manager "ptcp:6640:127.0.0.1"
> > >> >         is_connected: true
> > >> >     Bridge br-int
> > >> >         fail_mode: secure
> > >> >         Port "ovn-14d60a-0"
> > >> >             Interface "ovn-14d60a-0"
> > >> >                 type: geneve
> > >> >                 options: {csum="true", key=flow,
> > >> remote_ip="172.16.0.12"}
> > >> >                 bfd: {enable="true"}
> > >> >                 bfd_status: {diagnostic="No Diagnostic",
> flap_count="1",
> > >> > forwarding="true", remote_diagnostic="No Diagnostic",
> remote_state=up,
> > >> > state=up}
> > >> >
> > >> >
> > >> > I'm partly guessing here based on what I see around
> lib/db-ctl-base.c
> > >> and
> > >> > doing a little bit of debugging.
> > >> >
> > >> > @Ben is there any way of filtering out those columns when
> > >> > bfd:enabled="false" or not set ?
> > >>
> > >> It appears that that's already what happens, at least for the "not
> set"
> > >> case.  I doubt there are many controllers that explicitly set enable
> to
> > >> false.
> > >>
> > >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openvswitch.org/pipermail/ovs-discuss/attachments/20180312/d6a19614/attachment-0001.html>


More information about the discuss mailing list