nat: fix nat44-ed port range with multiple workers
[vpp.git] / src / plugins / nat / nat44-ed / nat44_ed.c
index 27c1870..2e4c791 100644 (file)
@@ -762,8 +762,8 @@ get_thread_idx_by_port (u16 e_port)
   if (sm->num_workers > 1)
     {
       thread_idx = sm->first_worker_index +
-                  sm->workers[(e_port - 1024) / sm->port_per_thread %
-                              _vec_len (sm->workers)];
+                  sm->workers[(e_port - ED_USER_PORT_OFFSET) /
+                              sm->port_per_thread % _vec_len (sm->workers)];
     }
   return thread_idx;
 }
@@ -2133,7 +2133,7 @@ snat_set_workers (uword * bitmap)
       j++;
     }
 
-  sm->port_per_thread = (0xffff - 1024) / _vec_len (sm->workers);
+  sm->port_per_thread = (65536 - ED_USER_PORT_OFFSET) / _vec_len (sm->workers);
 
   return 0;
 }
@@ -2384,7 +2384,7 @@ nat_init (vlib_main_t * vm)
        }
     }
   num_threads = tm->n_vlib_mains - 1;
-  sm->port_per_thread = 0xffff - 1024;
+  sm->port_per_thread = 65536 - ED_USER_PORT_OFFSET;
   vec_validate (sm->per_thread_data, num_threads);
 
   /* Use all available workers by default */