On Wed, Nov 25, 2020 at 8:30 PM Dumitru Ceara <[email protected]> wrote:
>
> Also, enable valgrind runs for ovn-controller-vtep when running "make
> check-valgrind".
>
> Fixes: dd6218709a00 ("ovn-controller-vtep: Support BUM traffic for the VTEP 
> Schema.")
> Suggested-by: Ilya Maximets <[email protected]>
> Signed-off-by: Dumitru Ceara <[email protected]>

Thanks. I applied this patch to master and backported upto 20.03.

Numan

> ---
> Note: This is a brute force approach of just tracking all pointers in
> a hmapx and unifying cleanup.  There might be a better approach but I
> couldn't figure it out.
> ---
>  controller-vtep/vtep.c |   10 +++++++---
>  tests/automake.mk      |    1 +
>  2 files changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/controller-vtep/vtep.c b/controller-vtep/vtep.c
> index 5538c7d..f3b02f6 100644
> --- a/controller-vtep/vtep.c
> +++ b/controller-vtep/vtep.c
> @@ -18,6 +18,7 @@
>  #include "vtep.h"
>
>  #include "lib/hash.h"
> +#include "lib/hmapx.h"
>  #include "openvswitch/hmap.h"
>  #include "openvswitch/shash.h"
>  #include "lib/ovn-util.h"
> @@ -496,12 +497,12 @@ vtep_run(struct controller_vtep_ctx *ctx)
>      struct shash physical_locators = SHASH_INITIALIZER(&physical_locators);
>      struct shash vtep_pbs = SHASH_INITIALIZER(&vtep_pbs);
>      struct shash non_vtep_pbs = SHASH_INITIALIZER(&non_vtep_pbs);
> +    struct hmapx mcast_macs_ptrs = HMAPX_INITIALIZER(&mcast_macs_ptrs);
>      const struct vteprec_physical_switch *vtep_ps;
>      const struct vteprec_logical_switch *vtep_ls;
>      const struct vteprec_ucast_macs_remote *umr;
>      const struct sbrec_port_binding *port_binding_rec;
>      const struct vteprec_mcast_macs_remote *mmr;
> -    struct shash_node *node;
>
>      /* Collects 'Physical_Switch's. */
>      VTEPREC_PHYSICAL_SWITCH_FOR_EACH (vtep_ps, ctx->vtep_idl) {
> @@ -527,7 +528,8 @@ vtep_run(struct controller_vtep_ctx *ctx)
>
>      /* Collects 'Mcast_Macs_Remote's. */
>      VTEPREC_MCAST_MACS_REMOTE_FOR_EACH (mmr, ctx->vtep_idl) {
> -        struct mmr_hash_node_data *mmr_ext = xmalloc(sizeof *mmr_ext);;
> +        struct mmr_hash_node_data *mmr_ext = xmalloc(sizeof *mmr_ext);
> +        hmapx_add(&mcast_macs_ptrs, mmr_ext);
>          char *mac_tnlkey =
>              xasprintf("%s_%"PRId64, mmr->MAC,
>                        mmr->logical_switch && 
> mmr->logical_switch->n_tunnel_key
> @@ -575,11 +577,13 @@ vtep_run(struct controller_vtep_ctx *ctx)
>      sset_destroy(&vtep_pswitches);
>      shash_destroy(&vtep_lswitches);
>      shash_destroy(&ucast_macs_rmts);
> -    SHASH_FOR_EACH (node, &mcast_macs_rmts) {
> +    struct hmapx_node *node;
> +    HMAPX_FOR_EACH (node, &mcast_macs_ptrs) {
>          struct mmr_hash_node_data *mmr_ext = node->data;
>          shash_destroy(&mmr_ext->physical_locators);
>          free(mmr_ext);
>      }
> +    hmapx_destroy(&mcast_macs_ptrs);
>      shash_destroy(&mcast_macs_rmts);
>      shash_destroy(&physical_locators);
>      shash_destroy(&vtep_pbs);
> diff --git a/tests/automake.mk b/tests/automake.mk
> index 44be209..0ee58af 100644
> --- a/tests/automake.mk
> +++ b/tests/automake.mk
> @@ -101,6 +101,7 @@ check-lcov: all $(check_DATA) clean-lcov
>
>  valgrind_wrappers = \
>         tests/valgrind/ovn-controller \
> +       tests/valgrind/ovn-controller-vtep \
>         tests/valgrind/ovn-nbctl \
>         tests/valgrind/ovn-northd \
>         tests/valgrind/ovn-sbctl \
>
> _______________________________________________
> dev mailing list
> [email protected]
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to