XFREE(MTYPE_BGP_EVPN_VRF_IMPORT_RT, irt);
}
+static void hash_vrf_import_rt_free(struct vrf_irt_node *irt)
+{
+ XFREE(MTYPE_BGP_EVPN_VRF_IMPORT_RT, irt);
+}
+
/*
* Function to lookup Import RT node - used to map a RT to set of
* VNIs importing routes with that RT.
XFREE(MTYPE_BGP_EVPN_IMPORT_RT, irt);
}
+static void hash_import_rt_free(struct irt_node *irt)
+{
+ XFREE(MTYPE_BGP_EVPN_IMPORT_RT, irt);
+}
+
/*
* Function to lookup Import RT node - used to map a RT to set of
* VNIs importing routes with that RT.
XFREE(MTYPE_BGP_EVPN, vpn);
}
+static void hash_evpn_free(struct bgpevpn *vpn)
+{
+ XFREE(MTYPE_BGP_EVPN, vpn);
+}
+
/*
* Import evpn route from global table to VNI/VRF/ESI.
*/
(void (*)(struct hash_bucket *, void *))free_vni_entry,
bgp);
+ hash_clean(bgp->import_rt_hash, (void (*)(void *))hash_import_rt_free);
hash_free(bgp->import_rt_hash);
bgp->import_rt_hash = NULL;
+ hash_clean(bgp->vrf_import_rt_hash,
+ (void (*)(void *))hash_vrf_import_rt_free);
hash_free(bgp->vrf_import_rt_hash);
bgp->vrf_import_rt_hash = NULL;
+ hash_clean(bgp->vni_svi_hash, (void (*)(void *))hash_evpn_free);
hash_free(bgp->vni_svi_hash);
bgp->vni_svi_hash = NULL;
hash_free(bgp->vnihash);
XFREE(MTYPE_BGP_EVPN_NH, tmp_n);
}
+static void hash_evpn_nh_free(struct bgp_evpn_nh *ben)
+{
+ XFREE(MTYPE_BGP_EVPN_NH, ben);
+}
+
static unsigned int bgp_evpn_nh_hash_keymake(const void *p)
{
const struct bgp_evpn_nh *n = p;
bgp_vrf->evpn_nh_table,
(void (*)(struct hash_bucket *, void *))bgp_evpn_nh_flush_cb,
NULL);
+ hash_clean(bgp_vrf->evpn_nh_table, (void (*)(void *))hash_evpn_nh_free);
hash_free(bgp_vrf->evpn_nh_table);
bgp_vrf->evpn_nh_table = NULL;
}