}
static inline void
-snat_ipfix_send (flow_report_main_t * frm,
+snat_ipfix_send (u32 thread_index, flow_report_main_t * frm,
vlib_frame_t * f, vlib_buffer_t * b0, u16 template_id)
{
ip4_ipfix_template_packet_t *tp;
ipfix_set_header_t *s = 0;
ip4_header_t *ip;
udp_header_t *udp;
- vlib_main_t *vm = frm->vlib_main;
+ vlib_main_t *vm = vlib_mains[thread_index];
tp = vlib_buffer_get_current (b0);
ip = (ip4_header_t *) & tp->ip4;
vlib_buffer_t *b0 = 0;
u32 bi0 = ~0;
u32 offset;
- vlib_main_t *vm = frm->vlib_main;
+ vlib_main_t *vm = vlib_mains[thread_index];
u64 now;
u8 proto = ~0;
u16 template_id;
template_id = clib_atomic_fetch_or (
&silm->nat44_session_template_id,
0);
- snat_ipfix_send (frm, f, b0, template_id);
+ snat_ipfix_send (thread_index, frm, f, b0, template_id);
sitd->nat44_session_frame = 0;
sitd->nat44_session_buffer = 0;
offset = 0;
vlib_buffer_t *b0 = 0;
u32 bi0 = ~0;
u32 offset;
- vlib_main_t *vm = frm->vlib_main;
+ vlib_main_t *vm = vlib_mains[thread_index];
u64 now;
u8 nat_event = NAT_ADDRESSES_EXHAUTED;
u16 template_id;
template_id = clib_atomic_fetch_or (
&silm->addr_exhausted_template_id,
0);
- snat_ipfix_send (frm, f, b0, template_id);
+ snat_ipfix_send (thread_index, frm, f, b0, template_id);
sitd->addr_exhausted_frame = 0;
sitd->addr_exhausted_buffer = 0;
offset = 0;
vlib_buffer_t *b0 = 0;
u32 bi0 = ~0;
u32 offset;
- vlib_main_t *vm = frm->vlib_main;
+ vlib_main_t *vm = vlib_mains[thread_index];
u64 now;
u8 nat_event = QUOTA_EXCEEDED;
u32 quota_event = MAX_ENTRIES_PER_USER;
template_id = clib_atomic_fetch_or (
&silm->max_entries_per_user_template_id,
0);
- snat_ipfix_send (frm, f, b0, template_id);
+ snat_ipfix_send (thread_index, frm, f, b0, template_id);
sitd->max_entries_per_user_frame = 0;
sitd->max_entries_per_user_buffer = 0;
offset = 0;
vlib_buffer_t *b0 = 0;
u32 bi0 = ~0;
u32 offset;
- vlib_main_t *vm = frm->vlib_main;
+ vlib_main_t *vm = vlib_mains[thread_index];
u64 now;
u8 nat_event = QUOTA_EXCEEDED;
u32 quota_event = MAX_SESSION_ENTRIES;
template_id = clib_atomic_fetch_or (
&silm->max_sessions_template_id,
0);
- snat_ipfix_send (frm, f, b0, template_id);
+ snat_ipfix_send (thread_index, frm, f, b0, template_id);
sitd->max_sessions_frame = 0;
sitd->max_sessions_buffer = 0;
offset = 0;
vlib_buffer_t *b0 = 0;
u32 bi0 = ~0;
u32 offset;
- vlib_main_t *vm = frm->vlib_main;
+ vlib_main_t *vm = vlib_mains[thread_index];
u64 now;
u8 nat_event = QUOTA_EXCEEDED;
u32 quota_event = MAX_BIB_ENTRIES;
template_id = clib_atomic_fetch_or (
&silm->max_bibs_template_id,
0);
- snat_ipfix_send (frm, f, b0, template_id);
+ snat_ipfix_send (thread_index, frm, f, b0, template_id);
sitd->max_bibs_frame = 0;
sitd->max_bibs_buffer = 0;
offset = 0;
vlib_buffer_t *b0 = 0;
u32 bi0 = ~0;
u32 offset;
- vlib_main_t *vm = frm->vlib_main;
+ vlib_main_t *vm = vlib_mains[thread_index];
u64 now;
u16 template_id;
template_id = clib_atomic_fetch_or (
&silm->nat64_bib_template_id,
0);
- snat_ipfix_send (frm, f, b0, template_id);
+ snat_ipfix_send (thread_index, frm, f, b0, template_id);
sitd->nat64_bib_frame = 0;
sitd->nat64_bib_buffer = 0;
offset = 0;
vlib_buffer_t *b0 = 0;
u32 bi0 = ~0;
u32 offset;
- vlib_main_t *vm = frm->vlib_main;
+ vlib_main_t *vm = vlib_mains[thread_index];
u64 now;
u16 template_id;
template_id = clib_atomic_fetch_or (
&silm->nat64_ses_template_id,
0);
- snat_ipfix_send (frm, f, b0, template_id);
+ snat_ipfix_send (thread_index, frm, f, b0, template_id);
sitd->nat64_ses_frame = 0;
sitd->nat64_ses_buffer = 0;
offset = 0;