avoid using thread local storage for thread index
[vpp.git] / src / plugins / nat / dslite_in2out.c
index 5456891..991d6ed 100644 (file)
@@ -13,6 +13,7 @@
  * limitations under the License.
  */
 #include <nat/dslite.h>
+#include <nat/nat_inlines.h>
 
 vlib_node_registration_t dslite_in2out_node;
 vlib_node_registration_t dslite_in2out_slowpath_node;
@@ -108,13 +109,13 @@ slow_path (dslite_main_t * dm, dslite_session_key_t * in2out_key,
 
       if (snat_alloc_outside_address_and_port
          (dm->addr_pool, 0, thread_index, &out2in_key,
-          &s->outside_address_index, 0, dm->port_per_thread, thread_index))
+          &s->outside_address_index, dm->port_per_thread, thread_index))
        ASSERT (0);
     }
   else
     {
       if (snat_alloc_outside_address_and_port
-         (dm->addr_pool, 0, thread_index, &out2in_key, &address_index, 0,
+         (dm->addr_pool, 0, thread_index, &out2in_key, &address_index,
           dm->port_per_thread, thread_index))
        {
          *error = DSLITE_ERROR_OUT_OF_PORTS;
@@ -227,7 +228,7 @@ dslite_in2out_node_fn_inline (vlib_main_t * vm, vlib_node_runtime_t * node,
   dslite_in2out_next_t next_index;
   u32 node_index;
   vlib_node_runtime_t *error_node;
-  u32 thread_index = vlib_get_thread_index ();
+  u32 thread_index = vm->thread_index;
   f64 now = vlib_time_now (vm);
   dslite_main_t *dm = &dslite_main;