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

2018-03-07 Thread Miguel Angel Ajo Pelayo
As OVN started implementing L3HA with the use of BFD monitoring, after
discussing with the people who is doing QA and thinking about future
troubleshooting of the feature, they proposed something the thing on
$subject.

What do you think?

For example, in this case:

[heat-admin@overcloud-novacompute-0 ~]$ sudo ovs-vsctl list Interface |
grep -E "bfd |name |bfd_status"
bfd : {}
bfd_status  : {}
name: "tapc6eed125-08"
bfd : {enable="true"}
bfd_status  : {diagnostic="No Diagnostic", flap_count="1",
forwarding="true", remote_diagnostic="No Diagnostic", remote_state=up,
state=up}
name: "ovn-e4dd7a-0"
bfd : {enable="true"}
bfd_status  : {diagnostic="No Diagnostic", flap_count="1",
forwarding="true", remote_diagnostic="No Diagnostic", remote_state=up,
state=up}
name: "ovn-14d60a-0"
bfd : {}
bfd_status  : {}
name: br-ex
bfd : {}
bfd_status  : {}
name: "vlan30"
bfd : {}
bfd_status  : {}
name: br-int
bfd : {}
bfd_status  : {}
name: "vlan20"
bfd : {}
bfd_status  : {}
name: "tapd09b3382-50"
bfd : {}
bfd_status  : {}
name: "vlan50"
bfd : {}
bfd_status  : {}
name: "eth0"
bfd : {enable="true"}
bfd_status  : {diagnostic="No Diagnostic", flap_count="1",
forwarding="true", remote_diagnostic="No Diagnostic", remote_state=up,
state=up}
name: "ovn-c8b85a-0"


It could look like:

[heat-admin@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: {remote_state="up", state="up", flap_count="1"}*
Port "ovn-e4dd7a-0"
Interface "ovn-e4dd7a-0"
type: geneve
options: {csum="true", key=flow, remote_ip="172.16.0.22"}
   * bfd: {remote_state="up", state="up", flap_count="1"}*
Port br-int
Interface br-int
type: internal
Port "tapd09b3382-50"
Interface "tapd09b3382-50"
Port "tapc6eed125-08"
Interface "tapc6eed125-08"
Port "ovn-c8b85a-0"
Interface "ovn-c8b85a-0"
type: geneve
options: {csum="true", key=flow, remote_ip="172.16.0.17"}
*bfd: {remote_state="up", state="up", flap_count="1"}*
Bridge br-ex
fail_mode: standalone
Port "vlan30"
tag: 30
Interface "vlan30"
type: internal
Port br-ex
Interface br-ex
type: internal
Port "eth0"
Interface "eth0"
Port "vlan50"
tag: 50
Interface "vlan50"
type: internal
Port "vlan20"
tag: 20
Interface "vlan20"
type: internal
ovs_version: "2.8.1"
___
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss


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

2018-03-07 Thread Ben Pfaff
On Wed, Mar 07, 2018 at 12:56:49PM +, Miguel Angel Ajo Pelayo wrote:
> As OVN started implementing L3HA with the use of BFD monitoring, after
> discussing with the people who is doing QA and thinking about future
> troubleshooting of the feature, they proposed something the thing on
> $subject.
> 
> What do you think?

Seems reasonable.  Do you want to submit a patch?
___
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss


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

2018-03-07 Thread Miguel Angel Ajo Pelayo
I will submit it tomorrow, I wanted to share the idea first to make sure it
made sense.

Thank you,
Miguel Ángel.

On Wed, Mar 7, 2018 at 8:41 PM Ben Pfaff  wrote:

> On Wed, Mar 07, 2018 at 12:56:49PM +, Miguel Angel Ajo Pelayo wrote:
> > As OVN started implementing L3HA with the use of BFD monitoring, after
> > discussing with the people who is doing QA and thinking about future
> > troubleshooting of the feature, they proposed something the thing on
> > $subject.
> >
> > What do you think?
>
> Seems reasonable.  Do you want to submit a patch?
>
___
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss


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

2018-03-07 Thread Anil Venkata
This is nice option to have.

On 07-Mar-2018 6:27 PM, "Miguel Angel Ajo Pelayo" 
wrote:

>
> As OVN started implementing L3HA with the use of BFD monitoring, after
> discussing with the people who is doing QA and thinking about future
> troubleshooting of the feature, they proposed something the thing on
> $subject.
>
> What do you think?
>
> For example, in this case:
>
> [heat-admin@overcloud-novacompute-0 ~]$ sudo ovs-vsctl list Interface |
> grep -E "bfd |name |bfd_status"
> bfd : {}
> bfd_status  : {}
> name: "tapc6eed125-08"
> bfd : {enable="true"}
> bfd_status  : {diagnostic="No Diagnostic", flap_count="1",
> forwarding="true", remote_diagnostic="No Diagnostic", remote_state=up,
> state=up}
> name: "ovn-e4dd7a-0"
> bfd : {enable="true"}
> bfd_status  : {diagnostic="No Diagnostic", flap_count="1",
> forwarding="true", remote_diagnostic="No Diagnostic", remote_state=up,
> state=up}
> name: "ovn-14d60a-0"
> bfd : {}
> bfd_status  : {}
> name: br-ex
> bfd : {}
> bfd_status  : {}
> name: "vlan30"
> bfd : {}
> bfd_status  : {}
> name: br-int
> bfd : {}
> bfd_status  : {}
> name: "vlan20"
> bfd : {}
> bfd_status  : {}
> name: "tapd09b3382-50"
> bfd : {}
> bfd_status  : {}
> name: "vlan50"
> bfd : {}
> bfd_status  : {}
> name: "eth0"
> bfd : {enable="true"}
> bfd_status  : {diagnostic="No Diagnostic", flap_count="1",
> forwarding="true", remote_diagnostic="No Diagnostic", remote_state=up,
> state=up}
> name: "ovn-c8b85a-0"
>
>
> It could look like:
>
> [heat-admin@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: {remote_state="up", state="up", flap_count="1"}*
> Port "ovn-e4dd7a-0"
> Interface "ovn-e4dd7a-0"
> type: geneve
> options: {csum="true", key=flow, remote_ip="172.16.0.22"}
>* bfd: {remote_state="up", state="up", flap_count="1"}*
> Port br-int
> Interface br-int
> type: internal
> Port "tapd09b3382-50"
> Interface "tapd09b3382-50"
> Port "tapc6eed125-08"
> Interface "tapc6eed125-08"
> Port "ovn-c8b85a-0"
> Interface "ovn-c8b85a-0"
> type: geneve
> options: {csum="true", key=flow, remote_ip="172.16.0.17"}
> *bfd: {remote_state="up", state="up", flap_count="1"}*
> Bridge br-ex
> fail_mode: standalone
> Port "vlan30"
> tag: 30
> Interface "vlan30"
> type: internal
> Port br-ex
> Interface br-ex
> type: internal
> Port "eth0"
> Interface "eth0"
> Port "vlan50"
> tag: 50
> Interface "vlan50"
> type: internal
> Port "vlan20"
> tag: 20
> Interface "vlan20"
> type: internal
> ovs_version: "2.8.1"
>
> ___
> discuss mailing list
> disc...@openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-discuss
>
>
___
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss


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

2018-03-08 Thread Miguel Angel Ajo Pelayo
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}
 },


But that would render something like:


[heat-admin@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 ?

Thanks in advance,
Miguel Ángel.

On Wed, Mar 7, 2018 at 10:04 PM Anil Venkata  wrote:

> This is nice option to have.
>
> On 07-Mar-2018 6:27 PM, "Miguel Angel Ajo Pelayo" 
> wrote:
>
>>
>> As OVN started implementing L3HA with the use of BFD monitoring, after
>> discussing with the people who is doing QA and thinking about future
>> troubleshooting of the feature, they proposed something the thing on
>> $subject.
>>
>> What do you think?
>>
>> For example, in this case:
>>
>> [heat-admin@overcloud-novacompute-0 ~]$ sudo ovs-vsctl list Interface |
>> grep -E "bfd |name |bfd_status"
>> bfd : {}
>> bfd_status  : {}
>> name: "tapc6eed125-08"
>> bfd : {enable="true"}
>> bfd_status  : {diagnostic="No Diagnostic", flap_count="1",
>> forwarding="true", remote_diagnostic="No Diagnostic", remote_state=up,
>> state=up}
>> name: "ovn-e4dd7a-0"
>> bfd : {enable="true"}
>> bfd_status  : {diagnostic="No Diagnostic", flap_count="1",
>> forwarding="true", remote_diagnostic="No Diagnostic", remote_state=up,
>> state=up}
>> name: "ovn-14d60a-0"
>> bfd : {}
>> bfd_status  : {}
>> name: br-ex
>> bfd : {}
>> bfd_status  : {}
>> name: "vlan30"
>> bfd : {}
>> bfd_status  : {}
>> name: br-int
>> bfd : {}
>> bfd_status  : {}
>> name: "vlan20"
>> bfd : {}
>> bfd_status  : {}
>> name: "tapd09b3382-50"
>> bfd : {}
>> bfd_status  : {}
>> name: "vlan50"
>> bfd : {}
>> bfd_status  : {}
>> name: "eth0"
>> bfd : {enable="true"}
>> bfd_status  : {diagnostic="No Diagnostic", flap_count="1",
>> forwarding="true", remote_diagnostic="No Diagnostic", remote_state=up,
>> state=up}
>> name: "ovn-c8b85a-0"
>>
>>
>> It could look like:
>>
>> [heat-admin@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: {remote_state="up", state="up", flap_count="1"}*
>> Port "ovn-e4dd7a-0"
>> Interface "ovn-e4dd7a-0"
>> type: geneve
>> options: {csum="true", key=flow, remote_ip="172.16.0.22"}
>>* bfd: {remote_state="up", state="up", flap_count="1"}*
>> Port br-int
>> Interface br-int
>> type: internal
>> Port "tapd09b3382-50"
>> Interface "tapd09b3382-50"
>> Port "tapc6eed125-08"
>> Interface "tapc6eed125-08"
>> Port "ovn-c8b85a-0"
>> Interface "ovn-c8b85a-0"
>> type: geneve
>> options: {csum="true", key=flow, remote_ip="172.16.0.17"}
>> *bfd: {remote_state="up", state="up", flap_count="1"}*
>> Bridge br-ex
>> fail_mode: standalone
>> Port "vlan30"
>> tag: 30
>> Interface "vlan30"
>> type: internal
>> Port br-ex
>> Interface br-ex
>> type: internal
>> Port "eth0"
>> Interface "eth0"
>> Port "vlan

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

2018-03-08 Thread Ben Pfaff
On Thu, Mar 08, 2018 at 04:43:50PM +, 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@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.
___
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss


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

2018-03-09 Thread Miguel Angel Ajo Pelayo
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  wrote:

> On Thu, Mar 08, 2018 at 04:43:50PM +, 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@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.
>
___
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss


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

2018-03-09 Thread Miguel Angel Ajo Pelayo
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@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@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 
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  wrote:
>
>> On Thu, Mar 08, 2018 at 04:43:50PM +, 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@overcloud-novacompute-0 ~]$ sudo ovs-vsctl show
>> > 5f35518a-ab34-49a4-a227-e487e251

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

2018-03-09 Thread Ben Pfaff
Seems reasonable to me, feel free to submit a patch.

On Fri, Mar 09, 2018 at 05:43:00PM +, 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@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@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 
> 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  wrote:
> >
> >> On Thu, Mar 08, 2018 at 04:43:50PM +, 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;
> >> -co

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

2018-03-12 Thread Miguel Angel Ajo Pelayo
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  wrote:

> Seems reasonable to me, feel free to submit a patch.
>
> On Fri, Mar 09, 2018 at 05:43:00PM +, 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@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@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 <
> majop...@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  wrote:
> > >
> > >> On Thu, Mar 08, 2018 at 04:43:50PM +, 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_co