diff options
-rwxr-xr-x | src/plugins/nat/nat.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/plugins/nat/nat.c b/src/plugins/nat/nat.c index 03e264eda3b..c3583cabc21 100755 --- a/src/plugins/nat/nat.c +++ b/src/plugins/nat/nat.c @@ -742,6 +742,7 @@ int snat_add_address (snat_main_t *sm, ip4_address_t *addr, u32 vrf_id, #define _(N, i, n, s) \ clib_bitmap_alloc (ap->busy_##n##_port_bitmap, 65535); \ ap->busy_##n##_ports = 0; \ + ap->busy_##n##_ports_per_thread = 0;\ vec_validate_init_empty (ap->busy_##n##_ports_per_thread, tm->n_vlib_mains - 1, 0); foreach_snat_protocol #undef _ @@ -1607,6 +1608,12 @@ snat_del_address (snat_main_t *sm, ip4_address_t addr, u8 delete_sm, } } +#define _(N, i, n, s) \ + clib_bitmap_free (a->busy_##n##_port_bitmap); \ + vec_free (a->busy_##n##_ports_per_thread); + foreach_snat_protocol +#undef _ + if (twice_nat) { vec_del1 (sm->twice_nat_addresses, i); |