Use thread local storage for thread index
[vpp.git] / src / vnet / vxlan / encap.c
index 5b63064..4cfbbc2 100644 (file)
@@ -77,7 +77,7 @@ vxlan_encap_inline (vlib_main_t * vm,
   vnet_interface_main_t * im = &vnm->interface_main;
   u32 pkts_encapsulated = 0;
   u16 old_l0 = 0, old_l1 = 0;
-  u32 cpu_index = os_get_cpu_number();
+  u32 thread_index = vlib_get_thread_index();
   u32 stats_sw_if_index, stats_n_packets, stats_n_bytes;
   u32 sw_if_index0 = 0, sw_if_index1 = 0;
   u32 next0 = 0, next1 = 0;
@@ -301,7 +301,7 @@ vxlan_encap_inline (vlib_main_t * vm,
                  if (stats_n_packets) 
                    vlib_increment_combined_counter 
                      (im->combined_sw_if_counters + VNET_INTERFACE_COUNTER_TX,
-                      cpu_index, stats_sw_if_index, 
+                      thread_index, stats_sw_if_index, 
                       stats_n_packets, stats_n_bytes);
                  stats_sw_if_index = sw_if_index0;
                  stats_n_packets = 2;
@@ -311,10 +311,10 @@ vxlan_encap_inline (vlib_main_t * vm,
                {
                  vlib_increment_combined_counter 
                      (im->combined_sw_if_counters + VNET_INTERFACE_COUNTER_TX,
-                      cpu_index, sw_if_index0, 1, len0);
+                      thread_index, sw_if_index0, 1, len0);
                  vlib_increment_combined_counter 
                      (im->combined_sw_if_counters + VNET_INTERFACE_COUNTER_TX,
-                      cpu_index, sw_if_index1, 1, len1);
+                      thread_index, sw_if_index1, 1, len1);
                }
            }
 
@@ -464,7 +464,7 @@ vxlan_encap_inline (vlib_main_t * vm,
              if (stats_n_packets)
                vlib_increment_combined_counter 
                  (im->combined_sw_if_counters + VNET_INTERFACE_COUNTER_TX,
-                  cpu_index, stats_sw_if_index, 
+                  thread_index, stats_sw_if_index, 
                   stats_n_packets, stats_n_bytes);
              stats_n_packets = 1;
              stats_n_bytes = len0;
@@ -496,7 +496,7 @@ vxlan_encap_inline (vlib_main_t * vm,
     {
       vlib_increment_combined_counter 
        (im->combined_sw_if_counters + VNET_INTERFACE_COUNTER_TX,
-        cpu_index, stats_sw_if_index, stats_n_packets, stats_n_bytes);
+        thread_index, stats_sw_if_index, stats_n_packets, stats_n_bytes);
       node->runtime_data[0] = stats_sw_if_index;
     }