NAT: fixed bug in snat_alloc_outside_address_and_port (VPP-981) 18/8418/1
authorMatus Fabian <matfabia@cisco.com>
Thu, 14 Sep 2017 06:00:53 +0000 (23:00 -0700)
committerMatus Fabian <matfabia@cisco.com>
Thu, 14 Sep 2017 06:00:53 +0000 (23:00 -0700)
generated random ports overlap between threads

Change-Id: I7a13785e3f98b87e475426b0bd7f6bf2d9c1336c
Signed-off-by: Matus Fabian <matfabia@cisco.com>
src/plugins/nat/nat.c

index 5189416..36b7266 100644 (file)
@@ -1406,7 +1406,7 @@ int snat_alloc_outside_address_and_port (snat_main_t * sm,
                 { \
                   portnum = (sm->port_per_thread * \
                     sm->per_thread_data[thread_index].snat_thread_index) + \
-                    snat_random_port(sm, 0, sm->port_per_thread) + 1024; \
+                    snat_random_port(sm, 1, sm->port_per_thread) + 1024; \
                   if (clib_bitmap_get_no_check (a->busy_##n##_port_bitmap, portnum)) \
                     continue; \
                   clib_bitmap_set_no_check (a->busy_##n##_port_bitmap, portnum, 1); \