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 |
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"); >
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"); > > >
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 --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");
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(-)