diff options
Diffstat (limited to 'src/plugins/cnat/cnat_types.c')
-rw-r--r-- | src/plugins/cnat/cnat_types.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/plugins/cnat/cnat_types.c b/src/plugins/cnat/cnat_types.c index ae485a48d79..9db953f0174 100644 --- a/src/plugins/cnat/cnat_types.c +++ b/src/plugins/cnat/cnat_types.c @@ -80,9 +80,14 @@ cnat_types_init (vlib_main_t * vm) CNAT_FIB_SOURCE_PRIORITY, FIB_SOURCE_BH_SIMPLE); + clib_rwlock_init (&cnat_main.ts_lock); - clib_spinlock_init (&cnat_main.src_ports_lock); - clib_bitmap_validate (cnat_main.src_ports, UINT16_MAX); + vec_validate (cnat_main.src_ports, CNAT_N_SPORT_PROTO); + for (int i = 0; i < CNAT_N_SPORT_PROTO; i++) + { + clib_spinlock_init (&cnat_main.src_ports[i].lock); + clib_bitmap_validate (cnat_main.src_ports[i].bmap, UINT16_MAX); + } throttle_init (&cnat_throttle, n_vlib_mains, 1e-3); return (NULL); |