diff mbox series

[ovs-dev,ovn,1/2] ovn-northd: By default don't enable probe for unix socket.

Message ID 1598321102-30446-1-git-send-email-hzhou@ovn.org
State Accepted
Headers show
Series [ovs-dev,ovn,1/2] ovn-northd: By default don't enable probe for unix socket. | expand

Commit Message

Han Zhou Aug. 25, 2020, 2:05 a.m. UTC
The commit ed09854e5b3 ("ovn-northd: Add the option to configure probe
interval") introduced the option northd-probe-interval to configure
ovn-northd probe interval with NB/SB DBs. However, it overrided the
default behavior that it used before - setting default probe interval
according to stream type. E.g., for unix socket, probe was disabled by default
but with the change it defaults to 5 seconds, if the option
northd-probe-interval is not set.

This patch restores the default behavior, while honoring the settings of
northd-probe-interval when it is configured.

Signed-off-by: Han Zhou <hzhou@ovn.org>
---
 northd/ovn-northd.c | 31 ++++++++++++++++++++++---------
 1 file changed, 22 insertions(+), 9 deletions(-)

Comments

Mark Michelson Aug. 25, 2020, 3:39 p.m. UTC | #1
For the series:

Acked-by: Mark Michelson <mmichels@redhat.com>

On 8/24/20 10:05 PM, Han Zhou wrote:
> The commit ed09854e5b3 ("ovn-northd: Add the option to configure probe
> interval") introduced the option northd-probe-interval to configure
> ovn-northd probe interval with NB/SB DBs. However, it overrided the
> default behavior that it used before - setting default probe interval
> according to stream type. E.g., for unix socket, probe was disabled by default
> but with the change it defaults to 5 seconds, if the option
> northd-probe-interval is not set.
> 
> This patch restores the default behavior, while honoring the settings of
> northd-probe-interval when it is configured.
> 
> Signed-off-by: Han Zhou <hzhou@ovn.org>
> ---
>   northd/ovn-northd.c | 31 ++++++++++++++++++++++---------
>   1 file changed, 22 insertions(+), 9 deletions(-)
> 
> diff --git a/northd/ovn-northd.c b/northd/ovn-northd.c
> index 99eb582..476ef9b 100644
> --- a/northd/ovn-northd.c
> +++ b/northd/ovn-northd.c
> @@ -96,7 +96,8 @@ static struct eth_addr svc_monitor_mac_ea;
>   
>   /* Default probe interval for NB and SB DB connections. */
>   #define DEFAULT_PROBE_INTERVAL_MSEC 5000
> -static int northd_probe_interval = DEFAULT_PROBE_INTERVAL_MSEC;
> +static int northd_probe_interval_nb = DEFAULT_PROBE_INTERVAL_MSEC;
> +static int northd_probe_interval_sb = DEFAULT_PROBE_INTERVAL_MSEC;
>   
>   #define MAX_OVN_TAGS 4096
>   
> @@ -11597,6 +11598,20 @@ build_meter_groups(struct northd_context *ctx,
>       }
>   }
>   
> +static int
> +get_probe_interval(const char *db, const struct nbrec_nb_global *nb)
> +{
> +    int default_interval = (db && !stream_or_pstream_needs_probes(db)
> +                            ? 0 : DEFAULT_PROBE_INTERVAL_MSEC);
> +    int interval = smap_get_int(&nb->options,
> +                                "northd_probe_interval", default_interval);
> +
> +    if (interval > 0 && interval < 1000) {
> +        interval = 1000;
> +    }
> +    return interval;
> +}
> +
>   static void
>   ovnnb_db_run(struct northd_context *ctx,
>                struct ovsdb_idl_index *sbrec_chassis_by_name,
> @@ -11680,12 +11695,8 @@ ovnnb_db_run(struct northd_context *ctx,
>       }
>   
>       /* Update the probe interval. */
> -    northd_probe_interval = smap_get_int(&nb->options, "northd_probe_interval",
> -                                         DEFAULT_PROBE_INTERVAL_MSEC);
> -
> -    if (northd_probe_interval > 0 && northd_probe_interval < 1000) {
> -        northd_probe_interval = 1000;
> -    }
> +    northd_probe_interval_nb = get_probe_interval(ovnnb_db, nb);
> +    northd_probe_interval_sb = get_probe_interval(ovnsb_db, nb);
>   
>       controller_event_en = smap_get_bool(&nb->options,
>                                           "controller_event", false);
> @@ -12670,8 +12681,10 @@ main(int argc, char *argv[])
>           }
>   
>   
> -        ovsdb_idl_set_probe_interval(ovnnb_idl_loop.idl, northd_probe_interval);
> -        ovsdb_idl_set_probe_interval(ovnsb_idl_loop.idl, northd_probe_interval);
> +        ovsdb_idl_set_probe_interval(ovnnb_idl_loop.idl,
> +                                     northd_probe_interval_nb);
> +        ovsdb_idl_set_probe_interval(ovnsb_idl_loop.idl,
> +                                     northd_probe_interval_sb);
>   
>           if (reset_ovnsb_idl_min_index) {
>               VLOG_INFO("Resetting southbound database cluster state");
>
Han Zhou Aug. 25, 2020, 5:35 p.m. UTC | #2
On Tue, Aug 25, 2020 at 8:39 AM Mark Michelson <mmichels@redhat.com> wrote:
>
> For the series:
>
> Acked-by: Mark Michelson <mmichels@redhat.com>
>

Thanks Mark. I applied the series to master.

> On 8/24/20 10:05 PM, Han Zhou wrote:
> > The commit ed09854e5b3 ("ovn-northd: Add the option to configure probe
> > interval") introduced the option northd-probe-interval to configure
> > ovn-northd probe interval with NB/SB DBs. However, it overrided the
> > default behavior that it used before - setting default probe interval
> > according to stream type. E.g., for unix socket, probe was disabled by
default
> > but with the change it defaults to 5 seconds, if the option
> > northd-probe-interval is not set.
> >
> > This patch restores the default behavior, while honoring the settings of
> > northd-probe-interval when it is configured.
> >
> > Signed-off-by: Han Zhou <hzhou@ovn.org>
> > ---
> >   northd/ovn-northd.c | 31 ++++++++++++++++++++++---------
> >   1 file changed, 22 insertions(+), 9 deletions(-)
> >
> > diff --git a/northd/ovn-northd.c b/northd/ovn-northd.c
> > index 99eb582..476ef9b 100644
> > --- a/northd/ovn-northd.c
> > +++ b/northd/ovn-northd.c
> > @@ -96,7 +96,8 @@ static struct eth_addr svc_monitor_mac_ea;
> >
> >   /* Default probe interval for NB and SB DB connections. */
> >   #define DEFAULT_PROBE_INTERVAL_MSEC 5000
> > -static int northd_probe_interval = DEFAULT_PROBE_INTERVAL_MSEC;
> > +static int northd_probe_interval_nb = DEFAULT_PROBE_INTERVAL_MSEC;
> > +static int northd_probe_interval_sb = DEFAULT_PROBE_INTERVAL_MSEC;
> >
> >   #define MAX_OVN_TAGS 4096
> >
> > @@ -11597,6 +11598,20 @@ build_meter_groups(struct northd_context *ctx,
> >       }
> >   }
> >
> > +static int
> > +get_probe_interval(const char *db, const struct nbrec_nb_global *nb)
> > +{
> > +    int default_interval = (db && !stream_or_pstream_needs_probes(db)
> > +                            ? 0 : DEFAULT_PROBE_INTERVAL_MSEC);
> > +    int interval = smap_get_int(&nb->options,
> > +                                "northd_probe_interval",
default_interval);
> > +
> > +    if (interval > 0 && interval < 1000) {
> > +        interval = 1000;
> > +    }
> > +    return interval;
> > +}
> > +
> >   static void
> >   ovnnb_db_run(struct northd_context *ctx,
> >                struct ovsdb_idl_index *sbrec_chassis_by_name,
> > @@ -11680,12 +11695,8 @@ ovnnb_db_run(struct northd_context *ctx,
> >       }
> >
> >       /* Update the probe interval. */
> > -    northd_probe_interval = smap_get_int(&nb->options,
"northd_probe_interval",
> > -                                         DEFAULT_PROBE_INTERVAL_MSEC);
> > -
> > -    if (northd_probe_interval > 0 && northd_probe_interval < 1000) {
> > -        northd_probe_interval = 1000;
> > -    }
> > +    northd_probe_interval_nb = get_probe_interval(ovnnb_db, nb);
> > +    northd_probe_interval_sb = get_probe_interval(ovnsb_db, nb);
> >
> >       controller_event_en = smap_get_bool(&nb->options,
> >                                           "controller_event", false);
> > @@ -12670,8 +12681,10 @@ main(int argc, char *argv[])
> >           }
> >
> >
> > -        ovsdb_idl_set_probe_interval(ovnnb_idl_loop.idl,
northd_probe_interval);
> > -        ovsdb_idl_set_probe_interval(ovnsb_idl_loop.idl,
northd_probe_interval);
> > +        ovsdb_idl_set_probe_interval(ovnnb_idl_loop.idl,
> > +                                     northd_probe_interval_nb);
> > +        ovsdb_idl_set_probe_interval(ovnsb_idl_loop.idl,
> > +                                     northd_probe_interval_sb);
> >
> >           if (reset_ovnsb_idl_min_index) {
> >               VLOG_INFO("Resetting southbound database cluster state");
> >
>
Han Zhou Aug. 25, 2020, 5:57 p.m. UTC | #3
On Tue, Aug 25, 2020 at 10:35 AM Han Zhou <hzhou@ovn.org> wrote:
>
>
>
> On Tue, Aug 25, 2020 at 8:39 AM Mark Michelson <mmichels@redhat.com>
wrote:
> >
> > For the series:
> >
> > Acked-by: Mark Michelson <mmichels@redhat.com>
> >
>
> Thanks Mark. I applied the series to master.

I also applied the patches to:
branch 20.06 for (ovn-northd: By default don't enable probe for unix
socket.)
branch 20.06 and 20.03 for (ovn-controller: Disable ofctrl probe by
default.)

>
> > On 8/24/20 10:05 PM, Han Zhou wrote:
> > > The commit ed09854e5b3 ("ovn-northd: Add the option to configure probe
> > > interval") introduced the option northd-probe-interval to configure
> > > ovn-northd probe interval with NB/SB DBs. However, it overrided the
> > > default behavior that it used before - setting default probe interval
> > > according to stream type. E.g., for unix socket, probe was disabled
by default
> > > but with the change it defaults to 5 seconds, if the option
> > > northd-probe-interval is not set.
> > >
> > > This patch restores the default behavior, while honoring the settings
of
> > > northd-probe-interval when it is configured.
> > >
> > > Signed-off-by: Han Zhou <hzhou@ovn.org>
> > > ---
> > >   northd/ovn-northd.c | 31 ++++++++++++++++++++++---------
> > >   1 file changed, 22 insertions(+), 9 deletions(-)
> > >
> > > diff --git a/northd/ovn-northd.c b/northd/ovn-northd.c
> > > index 99eb582..476ef9b 100644
> > > --- a/northd/ovn-northd.c
> > > +++ b/northd/ovn-northd.c
> > > @@ -96,7 +96,8 @@ static struct eth_addr svc_monitor_mac_ea;
> > >
> > >   /* Default probe interval for NB and SB DB connections. */
> > >   #define DEFAULT_PROBE_INTERVAL_MSEC 5000
> > > -static int northd_probe_interval = DEFAULT_PROBE_INTERVAL_MSEC;
> > > +static int northd_probe_interval_nb = DEFAULT_PROBE_INTERVAL_MSEC;
> > > +static int northd_probe_interval_sb = DEFAULT_PROBE_INTERVAL_MSEC;
> > >
> > >   #define MAX_OVN_TAGS 4096
> > >
> > > @@ -11597,6 +11598,20 @@ build_meter_groups(struct northd_context
*ctx,
> > >       }
> > >   }
> > >
> > > +static int
> > > +get_probe_interval(const char *db, const struct nbrec_nb_global *nb)
> > > +{
> > > +    int default_interval = (db && !stream_or_pstream_needs_probes(db)
> > > +                            ? 0 : DEFAULT_PROBE_INTERVAL_MSEC);
> > > +    int interval = smap_get_int(&nb->options,
> > > +                                "northd_probe_interval",
default_interval);
> > > +
> > > +    if (interval > 0 && interval < 1000) {
> > > +        interval = 1000;
> > > +    }
> > > +    return interval;
> > > +}
> > > +
> > >   static void
> > >   ovnnb_db_run(struct northd_context *ctx,
> > >                struct ovsdb_idl_index *sbrec_chassis_by_name,
> > > @@ -11680,12 +11695,8 @@ ovnnb_db_run(struct northd_context *ctx,
> > >       }
> > >
> > >       /* Update the probe interval. */
> > > -    northd_probe_interval = smap_get_int(&nb->options,
"northd_probe_interval",
> > > -
DEFAULT_PROBE_INTERVAL_MSEC);
> > > -
> > > -    if (northd_probe_interval > 0 && northd_probe_interval < 1000) {
> > > -        northd_probe_interval = 1000;
> > > -    }
> > > +    northd_probe_interval_nb = get_probe_interval(ovnnb_db, nb);
> > > +    northd_probe_interval_sb = get_probe_interval(ovnsb_db, nb);
> > >
> > >       controller_event_en = smap_get_bool(&nb->options,
> > >                                           "controller_event", false);
> > > @@ -12670,8 +12681,10 @@ main(int argc, char *argv[])
> > >           }
> > >
> > >
> > > -        ovsdb_idl_set_probe_interval(ovnnb_idl_loop.idl,
northd_probe_interval);
> > > -        ovsdb_idl_set_probe_interval(ovnsb_idl_loop.idl,
northd_probe_interval);
> > > +        ovsdb_idl_set_probe_interval(ovnnb_idl_loop.idl,
> > > +                                     northd_probe_interval_nb);
> > > +        ovsdb_idl_set_probe_interval(ovnsb_idl_loop.idl,
> > > +                                     northd_probe_interval_sb);
> > >
> > >           if (reset_ovnsb_idl_min_index) {
> > >               VLOG_INFO("Resetting southbound database cluster
state");
> > >
> >
diff mbox series

Patch

diff --git a/northd/ovn-northd.c b/northd/ovn-northd.c
index 99eb582..476ef9b 100644
--- a/northd/ovn-northd.c
+++ b/northd/ovn-northd.c
@@ -96,7 +96,8 @@  static struct eth_addr svc_monitor_mac_ea;
 
 /* Default probe interval for NB and SB DB connections. */
 #define DEFAULT_PROBE_INTERVAL_MSEC 5000
-static int northd_probe_interval = DEFAULT_PROBE_INTERVAL_MSEC;
+static int northd_probe_interval_nb = DEFAULT_PROBE_INTERVAL_MSEC;
+static int northd_probe_interval_sb = DEFAULT_PROBE_INTERVAL_MSEC;
 
 #define MAX_OVN_TAGS 4096
 
@@ -11597,6 +11598,20 @@  build_meter_groups(struct northd_context *ctx,
     }
 }
 
+static int
+get_probe_interval(const char *db, const struct nbrec_nb_global *nb)
+{
+    int default_interval = (db && !stream_or_pstream_needs_probes(db)
+                            ? 0 : DEFAULT_PROBE_INTERVAL_MSEC);
+    int interval = smap_get_int(&nb->options,
+                                "northd_probe_interval", default_interval);
+
+    if (interval > 0 && interval < 1000) {
+        interval = 1000;
+    }
+    return interval;
+}
+
 static void
 ovnnb_db_run(struct northd_context *ctx,
              struct ovsdb_idl_index *sbrec_chassis_by_name,
@@ -11680,12 +11695,8 @@  ovnnb_db_run(struct northd_context *ctx,
     }
 
     /* Update the probe interval. */
-    northd_probe_interval = smap_get_int(&nb->options, "northd_probe_interval",
-                                         DEFAULT_PROBE_INTERVAL_MSEC);
-
-    if (northd_probe_interval > 0 && northd_probe_interval < 1000) {
-        northd_probe_interval = 1000;
-    }
+    northd_probe_interval_nb = get_probe_interval(ovnnb_db, nb);
+    northd_probe_interval_sb = get_probe_interval(ovnsb_db, nb);
 
     controller_event_en = smap_get_bool(&nb->options,
                                         "controller_event", false);
@@ -12670,8 +12681,10 @@  main(int argc, char *argv[])
         }
 
 
-        ovsdb_idl_set_probe_interval(ovnnb_idl_loop.idl, northd_probe_interval);
-        ovsdb_idl_set_probe_interval(ovnsb_idl_loop.idl, northd_probe_interval);
+        ovsdb_idl_set_probe_interval(ovnnb_idl_loop.idl,
+                                     northd_probe_interval_nb);
+        ovsdb_idl_set_probe_interval(ovnsb_idl_loop.idl,
+                                     northd_probe_interval_sb);
 
         if (reset_ovnsb_idl_min_index) {
             VLOG_INFO("Resetting southbound database cluster state");