clib_bitmap_foreach (i, bitmap,
({
vec_add1(sm->workers, i);
- sm->per_thread_data[i].snat_thread_index = j;
+ sm->per_thread_data[sm->first_worker_index + i].snat_thread_index = j;
j++;
}));
snat_session_t *s;
int i;
u32 proto;
+ u32 next_worker_index = 0;
/* first try static mappings without port */
if (PREDICT_FALSE (pool_elts (sm->static_mappings)))
}
/* worker by outside port */
- return (u32) ((clib_net_to_host_u16 (port) - 1024) / sm->port_per_thread);
+ next_worker_index = sm->first_worker_index;
+ next_worker_index +=
+ sm->workers[(clib_net_to_host_u16 (port) - 1024) / sm->port_per_thread];
+ return next_worker_index;
}
static clib_error_t *
u8 static_mapping_only = 0;
u8 static_mapping_connection_tracking = 0;
snat_main_per_thread_data_t *tsm;
+ dslite_main_t * dm = &dslite_main;
sm->deterministic = 0;
sm->out2in_dpo = 0;
;
else if (unformat (input, "out2in dpo"))
sm->out2in_dpo = 1;
+ else if (unformat (input, "dslite ce"))
+ dslite_set_ce(dm, 1);
else
return clib_error_return (0, "unknown input '%U'",
format_unformat_error, input);