diff options
| -rw-r--r-- | zebra/zebra_mpls.c | 11 | 
1 files changed, 9 insertions, 2 deletions
diff --git a/zebra/zebra_mpls.c b/zebra/zebra_mpls.c index 8237bebf3b..cca17f1a31 100644 --- a/zebra/zebra_mpls.c +++ b/zebra/zebra_mpls.c @@ -4010,6 +4010,13 @@ void zebra_mpls_client_cleanup_vrf_label(uint8_t proto)  	}  } +static void lsp_table_free(void *p) +{ +	struct zebra_lsp *lsp = p; + +	XFREE(MTYPE_LSP, lsp); +} +  /*   * Called upon process exiting, need to delete LSP forwarding   * entries from the kernel. @@ -4018,9 +4025,9 @@ void zebra_mpls_client_cleanup_vrf_label(uint8_t proto)  void zebra_mpls_close_tables(struct zebra_vrf *zvrf)  {  	hash_iterate(zvrf->lsp_table, lsp_uninstall_from_kernel, NULL); -	hash_clean(zvrf->lsp_table, NULL); +	hash_clean(zvrf->lsp_table, lsp_table_free);  	hash_free(zvrf->lsp_table); -	hash_clean(zvrf->slsp_table, NULL); +	hash_clean(zvrf->slsp_table, lsp_table_free);  	hash_free(zvrf->slsp_table);  	route_table_finish(zvrf->fec_table[AFI_IP]);  	route_table_finish(zvrf->fec_table[AFI_IP6]);  | 
