nat: fix regarding vm arg for vlib_time_now call
Change in snat_ipfix_header_create() to use thread-specific
vlib_main_t *vm pointer to avoid problems with different threads
accessing the same vlib_main_t data structure. This avoids
assertion failure when vlib_time_now() is called with a vm
corresponding to a different thread.
Type: fix
Signed-off-by: Elias Rudberg <elias.rudberg@bahnhof.net>
Change-Id: I2096c1debb5688d3b97e5ed9a0ea78d94053d8b7
(cherry picked from commit 5556813fb6
)
This commit is contained in:

committed by
Andrew Yourtchenko

parent
915c3d9058
commit
2da3548777
@@ -565,6 +565,7 @@ snat_ipfix_header_create (flow_report_main_t * frm,
|
||||
u32 stream_index;
|
||||
ip4_header_t *ip;
|
||||
udp_header_t *udp;
|
||||
vlib_main_t *vm = vlib_get_main ();
|
||||
|
||||
stream_index = clib_atomic_fetch_or(&silm->stream_index, 0);
|
||||
stream = &frm->streams[stream_index];
|
||||
@@ -593,7 +594,7 @@ snat_ipfix_header_create (flow_report_main_t * frm,
|
||||
|
||||
h->export_time = clib_host_to_net_u32 ((u32)
|
||||
(((f64) frm->unix_time_0) +
|
||||
(vlib_time_now (frm->vlib_main) -
|
||||
(vlib_time_now (vm) -
|
||||
frm->vlib_time_0)));
|
||||
|
||||
sequence_number = clib_atomic_fetch_add (&stream->sequence_number, 1);
|
||||
|
Reference in New Issue
Block a user