_(match_n_vectors) \
_(next_table_index) \
_(miss_next_index) \
-_(current_data_flag) \
-_(current_data_offset) \
_(mask_len)
static void vl_api_classify_add_del_table_t_handler
table_index = ~0;
}
+ u8 current_data_flag = mp->current_data_flag;
+ i16 current_data_offset = clib_net_to_host_i16 (mp->current_data_offset);
+
rv = vnet_classify_add_del_table
(cm, mp->mask, nbuckets, memory_size,
skip_n_vectors, match_n_vectors,
if (rv == 0 && mp->is_add)
{
t = pool_elt_at_index (cm->tables, table_index);
- rmp->skip_n_vectors = ntohl(t->skip_n_vectors);
- rmp->match_n_vectors = ntohl(t->match_n_vectors);
- rmp->new_table_index = ntohl(table_index);
+ rmp->skip_n_vectors = htonl(t->skip_n_vectors);
+ rmp->match_n_vectors = htonl(t->match_n_vectors);
+ rmp->new_table_index = htonl(table_index);
}
else
{
vl_api_policer_classify_details_t *mp;
mp = vl_msg_api_alloc (sizeof (*mp));
- memset (mp, 0, sizeof (*mp));
+ clib_memset (mp, 0, sizeof (*mp));
mp->_vl_msg_id = ntohs (VL_API_POLICER_CLASSIFY_DETAILS);
mp->context = context;
mp->sw_if_index = htonl (sw_if_index);
policer_classify_main_t *pcm = &policer_classify_main;
u32 *vec_tbl;
int i;
+ u32 filter_sw_if_index;
reg = vl_api_client_index_to_registration (mp->client_index);
if (!reg)
return;
- vec_tbl = pcm->classify_table_index_by_sw_if_index[mp->type];
+ filter_sw_if_index = ntohl (mp->sw_if_index);
+ if (filter_sw_if_index != ~0)
+ vec_tbl =
+ &pcm->classify_table_index_by_sw_if_index[mp->type][filter_sw_if_index];
+ else
+ vec_tbl = pcm->classify_table_index_by_sw_if_index[mp->type];
if (vec_len (vec_tbl))
{
vl_api_classify_session_details_t *rmp;
rmp = vl_msg_api_alloc (sizeof (*rmp));
- memset (rmp, 0, sizeof (*rmp));
+ clib_memset (rmp, 0, sizeof (*rmp));
rmp->_vl_msg_id = ntohs (VL_API_CLASSIFY_SESSION_DETAILS);
rmp->context = context;
rmp->table_id = ntohl (table_id);
vl_api_flow_classify_details_t *mp;
mp = vl_msg_api_alloc (sizeof (*mp));
- memset (mp, 0, sizeof (*mp));
+ clib_memset (mp, 0, sizeof (*mp));
mp->_vl_msg_id = ntohs (VL_API_FLOW_CLASSIFY_DETAILS);
mp->context = context;
mp->sw_if_index = htonl (sw_if_index);
flow_classify_main_t *pcm = &flow_classify_main;
u32 *vec_tbl;
int i;
+ u32 filter_sw_if_index;
reg = vl_api_client_index_to_registration (mp->client_index);
if (!reg)
return;
- vec_tbl = pcm->classify_table_index_by_sw_if_index[mp->type];
+ filter_sw_if_index = ntohl (mp->sw_if_index);
+ if (filter_sw_if_index != ~0)
+ vec_tbl =
+ &pcm->classify_table_index_by_sw_if_index[mp->type][filter_sw_if_index];
+ else
+ vec_tbl = pcm->classify_table_index_by_sw_if_index[mp->type];
if (vec_len (vec_tbl))
{
/*
* classify_api_hookup
* Add vpe's API message handlers to the table.
- * vlib has alread mapped shared memory and
+ * vlib has already mapped shared memory and
* added the client registration handlers.
* See .../vlib-api/vlibmemory/memclnt_vlib.c:memclnt_process()
*/