[ovs-dev] [PATCH v2 2/2] chassis.c: Return chassis record whenever available in chassis_run().

Numan Siddique nusiddiq at redhat.com
Wed Apr 3 17:51:34 UTC 2019


On Wed, Apr 3, 2019 at 10:38 PM Han Zhou <zhouhan at gmail.com> wrote:

> From: Han Zhou <hzhou8 at ebay.com>
>
> The ovn-controller main loop relies on the return value of chassis_run().
> When ovnsb_idl_txn is NULL (i.e. there is a pending transaction for SB),
> chasssis_run() returns NULL, which blocks functions to be executed in
> the main loop unnecessarily. This patch updates chassis_run() so that
> it returns chassis record whenever it is available.
>
> This changes allows xxx_run() functions being executed whenever
> br_int and chassis are not NULL. For functions that need to update
> SB DB, there are already additional checks making sure ovnsb_idl_txn
> is not NULL.
>
> Signed-off-by: Han Zhou <hzhou8 at ebay.com>
>

Acked-by: Numan Siddique <nusiddiq at redhat.com>


> ---
>
> Notes:
>     v1->v2: Updates according to Numan's comments.
>
>  ovn/controller/chassis.c | 9 ++++-----
>  1 file changed, 4 insertions(+), 5 deletions(-)
>
> diff --git a/ovn/controller/chassis.c b/ovn/controller/chassis.c
> index 3ea908d..58d5d49 100644
> --- a/ovn/controller/chassis.c
> +++ b/ovn/controller/chassis.c
> @@ -73,8 +73,7 @@ get_cms_options(const struct smap *ext_ids)
>      return smap_get_def(ext_ids, "ovn-cms-options", "");
>  }
>
> -/* Returns this chassis's Chassis record, if it is available and is
> currently
> - * amenable to a transaction. */
> +/* Returns this chassis's Chassis record, if it is available. */
>  const struct sbrec_chassis *
>  chassis_run(struct ovsdb_idl_txn *ovnsb_idl_txn,
>              struct ovsdb_idl_index *sbrec_chassis_by_name,
> @@ -82,8 +81,10 @@ chassis_run(struct ovsdb_idl_txn *ovnsb_idl_txn,
>              const char *chassis_id,
>              const struct ovsrec_bridge *br_int)
>  {
> +    const struct sbrec_chassis *chassis_rec
> +        = chassis_lookup_by_name(sbrec_chassis_by_name, chassis_id);
>      if (!ovnsb_idl_txn) {
> -        return NULL;
> +        return chassis_rec;
>      }
>
>      const struct ovsrec_open_vswitch *cfg;
> @@ -148,8 +149,6 @@ chassis_run(struct ovsdb_idl_txn *ovnsb_idl_txn,
>      ds_chomp(&iface_types, ',');
>      const char *iface_types_str = ds_cstr(&iface_types);
>
> -    const struct sbrec_chassis *chassis_rec
> -        = chassis_lookup_by_name(sbrec_chassis_by_name, chassis_id);
>      const char *encap_csum = smap_get_def(&cfg->external_ids,
>                                            "ovn-encap-csum", "true");
>      int n_encaps = count_1bits(req_tunnels);
> --
> 2.1.0
>
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>


More information about the dev mailing list