acl_main_t *am = &acl_main;
vl_api_acl_plugin_get_version_reply_t *rmp;
int msg_size = sizeof (*rmp);
- svm_queue_t *q;
+ vl_api_registration_t *reg;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
- {
- return;
- }
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
+ return;
rmp = vl_msg_api_alloc (msg_size);
memset (rmp, 0, msg_size);
rmp->major = htonl (ACL_PLUGIN_VERSION_MAJOR);
rmp->minor = htonl (ACL_PLUGIN_VERSION_MINOR);
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
}
static void
-send_acl_details (acl_main_t * am, svm_queue_t * q,
+send_acl_details (acl_main_t * am, vl_api_registration_t * reg,
acl_list_t * acl, u32 context)
{
vl_api_acl_details_t *mp;
}
clib_mem_set_heap (oldheap);
- vl_msg_api_send_shmem (q, (u8 *) & mp);
+ vl_api_send_msg (reg, (u8 *) mp);
}
acl_main_t *am = &acl_main;
u32 acl_index;
acl_list_t *acl;
-
int rv = -1;
- svm_queue_t *q;
+ vl_api_registration_t *reg;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
- {
- return;
- }
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
+ return;
if (mp->acl_index == ~0)
{
/* Just dump all ACLs */
pool_foreach (acl, am->acls,
({
- send_acl_details(am, q, acl, mp->context);
+ send_acl_details(am, reg, acl, mp->context);
}));
/* *INDENT-ON* */
}
if (!pool_is_free_index (am->acls, acl_index))
{
acl = pool_elt_at_index (am->acls, acl_index);
- send_acl_details (am, q, acl, mp->context);
+ send_acl_details (am, reg, acl, mp->context);
}
}
static void
send_acl_interface_list_details (acl_main_t * am,
- svm_queue_t * q,
+ vl_api_registration_t * reg,
u32 sw_if_index, u32 context)
{
vl_api_acl_interface_list_details_t *mp;
htonl (am->output_acl_vec_by_sw_if_index[sw_if_index][i]);
}
clib_mem_set_heap (oldheap);
- vl_msg_api_send_shmem (q, (u8 *) & mp);
+ vl_api_send_msg (reg, (u8 *) mp);
}
static void
vnet_interface_main_t *im = &am->vnet_main->interface_main;
u32 sw_if_index;
- svm_queue_t *q;
+ vl_api_registration_t *reg;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
- {
- return;
- }
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
+ return;
if (mp->sw_if_index == ~0)
{
/* *INDENT-OFF* */
pool_foreach (swif, im->sw_interfaces,
({
- send_acl_interface_list_details(am, q, swif->sw_if_index, mp->context);
+ send_acl_interface_list_details(am, reg, swif->sw_if_index, mp->context);
}));
/* *INDENT-ON* */
}
{
sw_if_index = ntohl (mp->sw_if_index);
if (!pool_is_free_index (im->sw_interfaces, sw_if_index))
- send_acl_interface_list_details (am, q, sw_if_index, mp->context);
+ send_acl_interface_list_details (am, reg, sw_if_index, mp->context);
}
}
}
static void
-send_macip_acl_details (acl_main_t * am, svm_queue_t * q,
+send_macip_acl_details (acl_main_t * am, vl_api_registration_t * reg,
macip_acl_list_t * acl, u32 context)
{
vl_api_macip_acl_details_t *mp;
mp->count = 0;
}
- vl_msg_api_send_shmem (q, (u8 *) & mp);
+ vl_api_send_msg (reg, (u8 *) mp);
}
acl_main_t *am = &acl_main;
macip_acl_list_t *acl;
- svm_queue_t *q;
+ vl_api_registration_t *reg;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
- {
- return;
- }
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
+ return;
if (mp->acl_index == ~0)
{
/* Just dump all ACLs for now, with sw_if_index = ~0 */
pool_foreach (acl, am->macip_acls, (
{
- send_macip_acl_details (am, q, acl,
- mp->
- context);}
+ send_macip_acl_details (am, reg,
+ acl,
+ mp->context);
+ }
));
/* *INDENT-ON* */
}
if (!pool_is_free_index (am->macip_acls, acl_index))
{
acl = pool_elt_at_index (am->macip_acls, acl_index);
- send_macip_acl_details (am, q, acl, mp->context);
+ send_macip_acl_details (am, reg, acl, mp->context);
}
}
}
vl_api_macip_acl_interface_get_reply_t *rmp;
u32 count = vec_len (am->macip_acl_by_sw_if_index);
int msg_size = sizeof (*rmp) + sizeof (rmp->acls[0]) * count;
- svm_queue_t *q;
+ vl_api_registration_t *reg;
int i;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
- {
- return;
- }
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
+ return;
rmp = vl_msg_api_alloc (msg_size);
memset (rmp, 0, msg_size);
rmp->acls[i] = htonl (am->macip_acl_by_sw_if_index[i]);
}
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
send_macip_acl_interface_list_details (acl_main_t * am,
- svm_queue_t * q,
+ vl_api_registration_t * reg,
u32 sw_if_index,
u32 acl_index, u32 context)
{
rmp->sw_if_index = htonl (sw_if_index);
rmp->acls[0] = htonl (acl_index);
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
vl_api_macip_acl_interface_list_dump_t_handler
(vl_api_macip_acl_interface_list_dump_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
acl_main_t *am = &acl_main;
u32 sw_if_index = ntohl (mp->sw_if_index);
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
- {
- return;
- }
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
+ return;
if (sw_if_index == ~0)
{
{
if (~0 != am->macip_acl_by_sw_if_index[sw_if_index])
{
- send_macip_acl_interface_list_details (am, q, sw_if_index,
+ send_macip_acl_interface_list_details (am, reg, sw_if_index,
am->macip_acl_by_sw_if_index
[sw_if_index],
mp->context);
{
if (vec_len (am->macip_acl_by_sw_if_index) > sw_if_index)
{
- send_macip_acl_interface_list_details (am, q, sw_if_index,
+ send_macip_acl_interface_list_details (am, reg, sw_if_index,
am->macip_acl_by_sw_if_index
[sw_if_index], mp->context);
}
}
static void send_gtpu_tunnel_details
- (gtpu_tunnel_t * t, svm_queue_t * q, u32 context)
+ (gtpu_tunnel_t * t, vl_api_registration_t * reg, u32 context)
{
vl_api_gtpu_tunnel_details_t *rmp;
ip4_main_t *im4 = &ip4_main;
rmp->is_ipv6 = is_ipv6;
rmp->context = context;
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
vl_api_gtpu_tunnel_dump_t_handler (vl_api_gtpu_tunnel_dump_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
gtpu_main_t *gtm = >pu_main;
gtpu_tunnel_t *t;
u32 sw_if_index;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
- {
- return;
- }
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
+ return;
sw_if_index = ntohl (mp->sw_if_index);
/* *INDENT-OFF* */
pool_foreach (t, gtm->tunnels,
({
- send_gtpu_tunnel_details(t, q, mp->context);
+ send_gtpu_tunnel_details(t, reg, mp->context);
}));
/* *INDENT-ON* */
}
return;
}
t = >m->tunnels[gtm->tunnel_index_by_sw_if_index[sw_if_index]];
- send_gtpu_tunnel_details (t, q, mp->context);
+ send_gtpu_tunnel_details (t, reg, mp->context);
}
}
}
static void
-send_memif_details (svm_queue_t * q,
+send_memif_details (vl_api_registration_t * reg,
memif_if_t * mif,
vnet_sw_interface_t * swif,
u8 * interface_name, u32 context)
mp->admin_up_down = (swif->flags & VNET_SW_INTERFACE_FLAG_ADMIN_UP) ? 1 : 0;
mp->link_up_down = (hwif->flags & VNET_HW_INTERFACE_FLAG_LINK_UP) ? 1 : 0;
- vl_msg_api_send_shmem (q, (u8 *) & mp);
+ vl_api_send_msg (reg, (u8 *) mp);
}
/**
vnet_sw_interface_t *swif;
memif_if_t *mif;
u8 *if_name = 0;
- svm_queue_t *q;
+ vl_api_registration_t *reg;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
/* *INDENT-OFF* */
format_vnet_sw_interface_name,
vnm, swif, 0);
- send_memif_details (q, mif, swif, if_name, mp->context);
+ send_memif_details (reg, mif, swif, if_name, mp->context);
_vec_len (if_name) = 0;
}));
/* *INDENT-ON* */
}
static void
-send_nat_worker_details (u32 worker_index, svm_queue_t * q, u32 context)
+send_nat_worker_details (u32 worker_index, vl_api_registration_t * reg,
+ u32 context)
{
vl_api_nat_worker_details_t *rmp;
snat_main_t *sm = &snat_main;
rmp->lcore_id = htonl (w->lcore_id);
strncpy ((char *) rmp->name, (char *) w->name, ARRAY_LEN (rmp->name) - 1);
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
vl_api_nat_worker_dump_t_handler (vl_api_nat_worker_dump_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
snat_main_t *sm = &snat_main;
u32 *worker_index;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
/* *INDENT-OFF* */
vec_foreach (worker_index, sm->workers)
- send_nat_worker_details(*worker_index, q, mp->context);
+ send_nat_worker_details(*worker_index, reg, mp->context);
/* *INDENT-ON* */
}
typedef struct nat_api_walk_ctx_t_
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
u32 context;
} nat_api_walk_ctx_t;
rmp->frag_n = reass->frag_n;
rmp->is_ip4 = 1;
- vl_msg_api_send_shmem (ctx->q, (u8 *) & rmp);
+ vl_api_send_msg (ctx->reg, (u8 *) rmp);
return 0;
}
rmp->frag_n = reass->frag_n;
rmp->is_ip4 = 0;
- vl_msg_api_send_shmem (ctx->q, (u8 *) & rmp);
+ vl_api_send_msg (ctx->reg, (u8 *) rmp);
return 0;
}
static void
vl_api_nat_reass_dump_t_handler (vl_api_nat_reass_dump_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
nat_api_walk_ctx_t ctx = {
- .q = q,
+ .reg = reg,
.context = mp->context,
};
static void
send_nat44_address_details (snat_address_t * a,
- svm_queue_t * q, u32 context, u8 twice_nat)
+ vl_api_registration_t * reg, u32 context,
+ u8 twice_nat)
{
vl_api_nat44_address_details_t *rmp;
snat_main_t *sm = &snat_main;
rmp->twice_nat = twice_nat;
rmp->context = context;
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
vl_api_nat44_address_dump_t_handler (vl_api_nat44_address_dump_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
snat_main_t *sm = &snat_main;
snat_address_t *a;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
/* *INDENT-OFF* */
vec_foreach (a, sm->addresses)
- send_nat44_address_details (a, q, mp->context, 0);
+ send_nat44_address_details (a, reg, mp->context, 0);
vec_foreach (a, sm->twice_nat_addresses)
- send_nat44_address_details (a, q, mp->context, 1);
+ send_nat44_address_details (a, reg, mp->context, 1);
/* *INDENT-ON* */
}
static void
send_nat44_interface_details (snat_interface_t * i,
- svm_queue_t * q, u32 context)
+ vl_api_registration_t * reg, u32 context)
{
vl_api_nat44_interface_details_t *rmp;
snat_main_t *sm = &snat_main;
nat_interface_is_inside (i);
rmp->context = context;
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
vl_api_nat44_interface_dump_t_handler (vl_api_nat44_interface_dump_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
snat_main_t *sm = &snat_main;
snat_interface_t *i;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
/* *INDENT-OFF* */
pool_foreach (i, sm->interfaces,
({
- send_nat44_interface_details(i, q, mp->context);
+ send_nat44_interface_details(i, reg, mp->context);
}));
/* *INDENT-ON* */
}
static void
send_nat44_interface_output_feature_details (snat_interface_t * i,
- svm_queue_t * q, u32 context)
+ vl_api_registration_t * reg,
+ u32 context)
{
vl_api_nat44_interface_output_feature_details_t *rmp;
snat_main_t *sm = &snat_main;
rmp->context = context;
rmp->is_inside = nat_interface_is_inside (i);
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
vl_api_nat44_interface_output_feature_dump_t_handler
(vl_api_nat44_interface_output_feature_dump_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
snat_main_t *sm = &snat_main;
snat_interface_t *i;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
/* *INDENT-OFF* */
pool_foreach (i, sm->output_feature_interfaces,
({
- send_nat44_interface_output_feature_details(i, q, mp->context);
+ send_nat44_interface_output_feature_details(i, reg, mp->context);
}));
/* *INDENT-ON* */
}
static void
send_nat44_static_mapping_details (snat_static_mapping_t * m,
- svm_queue_t * q, u32 context)
+ vl_api_registration_t * reg, u32 context)
{
vl_api_nat44_static_mapping_details_t *rmp;
snat_main_t *sm = &snat_main;
rmp->context = context;
rmp->twice_nat = m->twice_nat;
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
send_nat44_static_map_resolve_details (snat_static_map_resolve_t * m,
- svm_queue_t * q, u32 context)
+ vl_api_registration_t * reg,
+ u32 context)
{
vl_api_nat44_static_mapping_details_t *rmp;
snat_main_t *sm = &snat_main;
rmp->context = context;
rmp->twice_nat = m->twice_nat;
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
vl_api_nat44_static_mapping_dump_t_handler (vl_api_nat44_static_mapping_dump_t
* mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
snat_main_t *sm = &snat_main;
snat_static_mapping_t *m;
snat_static_map_resolve_t *rp;
int j;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
/* *INDENT-OFF* */
pool_foreach (m, sm->static_mappings,
({
if (!vec_len(m->locals) && (m->local_addr.as_u32 != m->external_addr.as_u32))
- send_nat44_static_mapping_details (m, q, mp->context);
+ send_nat44_static_mapping_details (m, reg, mp->context);
}));
/* *INDENT-ON* */
{
rp = sm->to_resolve + j;
if (rp->l_addr.as_u32 != 0)
- send_nat44_static_map_resolve_details (rp, q, mp->context);
+ send_nat44_static_map_resolve_details (rp, reg, mp->context);
}
}
static void
send_nat44_identity_mapping_details (snat_static_mapping_t * m,
- svm_queue_t * q, u32 context)
+ vl_api_registration_t * reg, u32 context)
{
vl_api_nat44_identity_mapping_details_t *rmp;
snat_main_t *sm = &snat_main;
rmp->protocol = snat_proto_to_ip_proto (m->proto);
rmp->context = context;
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
send_nat44_identity_map_resolve_details (snat_static_map_resolve_t * m,
- svm_queue_t * q, u32 context)
+ vl_api_registration_t * reg,
+ u32 context)
{
vl_api_nat44_identity_mapping_details_t *rmp;
snat_main_t *sm = &snat_main;
rmp->protocol = snat_proto_to_ip_proto (m->proto);
rmp->context = context;
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
vl_api_nat44_identity_mapping_dump_t_handler
(vl_api_nat44_identity_mapping_dump_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
snat_main_t *sm = &snat_main;
snat_static_mapping_t *m;
snat_static_map_resolve_t *rp;
int j;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
/* *INDENT-OFF* */
pool_foreach (m, sm->static_mappings,
({
if (!vec_len(m->locals) && (m->local_addr.as_u32 == m->external_addr.as_u32))
- send_nat44_identity_mapping_details (m, q, mp->context);
+ send_nat44_identity_mapping_details (m, reg, mp->context);
}));
/* *INDENT-ON* */
{
rp = sm->to_resolve + j;
if (rp->l_addr.as_u32 == 0)
- send_nat44_identity_map_resolve_details (rp, q, mp->context);
+ send_nat44_identity_map_resolve_details (rp, reg, mp->context);
}
}
static void
send_nat44_interface_addr_details (u32 sw_if_index,
- svm_queue_t * q, u32 context, u8 twice_nat)
+ vl_api_registration_t * reg, u32 context,
+ u8 twice_nat)
{
vl_api_nat44_interface_addr_details_t *rmp;
snat_main_t *sm = &snat_main;
rmp->twice_nat = twice_nat;
rmp->context = context;
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
vl_api_nat44_interface_addr_dump_t_handler (vl_api_nat44_interface_addr_dump_t
* mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
snat_main_t *sm = &snat_main;
u32 *i;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
/* *INDENT-OFF* */
vec_foreach (i, sm->auto_add_sw_if_indices)
- send_nat44_interface_addr_details(*i, q, mp->context, 0);
+ send_nat44_interface_addr_details(*i, reg, mp->context, 0);
vec_foreach (i, sm->auto_add_sw_if_indices_twice_nat)
- send_nat44_interface_addr_details(*i, q, mp->context, 1);
+ send_nat44_interface_addr_details(*i, reg, mp->context, 1);
/* *INDENT-ON* */
}
}
static void
-send_nat44_user_details (snat_user_t * u, svm_queue_t * q, u32 context)
+send_nat44_user_details (snat_user_t * u, vl_api_registration_t * reg,
+ u32 context)
{
vl_api_nat44_user_details_t *rmp;
snat_main_t *sm = &snat_main;
rmp->nstaticsessions = ntohl (u->nstaticsessions);
rmp->context = context;
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
vl_api_nat44_user_dump_t_handler (vl_api_nat44_user_dump_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
snat_main_t *sm = &snat_main;
snat_main_per_thread_data_t *tsm;
snat_user_t *u;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
/* *INDENT-OFF* */
vec_foreach (tsm, sm->per_thread_data)
vec_foreach (u, tsm->users)
- send_nat44_user_details (u, q, mp->context);
+ send_nat44_user_details (u, reg, mp->context);
/* *INDENT-ON* */
}
static void
send_nat44_user_session_details (snat_session_t * s,
- svm_queue_t * q, u32 context)
+ vl_api_registration_t * reg, u32 context)
{
vl_api_nat44_user_session_details_t *rmp;
snat_main_t *sm = &snat_main;
rmp->protocol = ntohs (snat_proto_to_ip_proto (s->in2out.protocol));
}
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
vl_api_nat44_user_session_dump_t_handler (vl_api_nat44_user_session_dump_t *
mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
snat_main_t *sm = &snat_main;
snat_main_per_thread_data_t *tsm;
snat_session_t *s;
dlist_elt_t *head, *elt;
ip4_header_t ip;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
clib_memcpy (&ukey.addr, mp->ip_address, 4);
{
s = pool_elt_at_index (tsm->sessions, session_index);
- send_nat44_user_session_details (s, q, mp->context);
+ send_nat44_user_session_details (s, reg, mp->context);
elt_index = elt->next;
elt = pool_elt_at_index (tsm->list_pool, elt_index);
static void
send_nat44_lb_static_mapping_details (snat_static_mapping_t * m,
- svm_queue_t * q, u32 context)
+ vl_api_registration_t * reg,
+ u32 context)
{
vl_api_nat44_lb_static_mapping_details_t *rmp;
snat_main_t *sm = &snat_main;
rmp->local_num++;
}
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
vl_api_nat44_lb_static_mapping_dump_t_handler
(vl_api_nat44_lb_static_mapping_dump_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
snat_main_t *sm = &snat_main;
snat_static_mapping_t *m;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
/* *INDENT-OFF* */
pool_foreach (m, sm->static_mappings,
({
if (vec_len(m->locals))
- send_nat44_lb_static_mapping_details (m, q, mp->context);
+ send_nat44_lb_static_mapping_details (m, reg, mp->context);
}));
/* *INDENT-ON* */
}
vl_api_nat44_forwarding_is_enabled_t_handler
(vl_api_nat44_forwarding_is_enabled_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
snat_main_t *sm = &snat_main;
vl_api_nat44_forwarding_is_enabled_reply_t *rmp;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
rmp = vl_msg_api_alloc (sizeof (*rmp));
rmp->enabled = sm->forwarding_enabled;
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void *vl_api_nat44_forwarding_is_enabled_t_print
}
static void
-sent_nat_det_map_details (snat_det_map_t * m, svm_queue_t * q, u32 context)
+sent_nat_det_map_details (snat_det_map_t * m, vl_api_registration_t * reg,
+ u32 context)
{
vl_api_nat_det_map_details_t *rmp;
snat_main_t *sm = &snat_main;
rmp->ses_num = htonl (m->ses_num);
rmp->context = context;
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
vl_api_nat_det_map_dump_t_handler (vl_api_nat_det_map_dump_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
snat_main_t *sm = &snat_main;
snat_det_map_t *m;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
/* *INDENT-OFF* */
vec_foreach(m, sm->det_maps)
- sent_nat_det_map_details(m, q, mp->context);
+ sent_nat_det_map_details(m, reg, mp->context);
/* *INDENT-ON* */
}
static void
send_nat_det_session_details (snat_det_session_t * s,
- svm_queue_t * q, u32 context)
+ vl_api_registration_t * reg, u32 context)
{
vl_api_nat_det_session_details_t *rmp;
snat_main_t *sm = &snat_main;
rmp->expire = ntohl (s->expire);
rmp->context = context;
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
vl_api_nat_det_session_dump_t_handler (vl_api_nat_det_session_dump_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
snat_main_t *sm = &snat_main;
ip4_address_t user_addr;
snat_det_map_t *dm;
snat_det_session_t *s, empty_ses;
u16 i;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
if (!mp->is_nat44)
return;
for (i = 0; i < SNAT_DET_SES_PER_USER; i++)
{
if (s->out.as_u64)
- send_nat_det_session_details (s, q, mp->context);
+ send_nat_det_session_details (s, reg, mp->context);
s++;
}
}
typedef struct nat64_api_walk_ctx_t_
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
u32 context;
nat64_db_t *db;
} nat64_api_walk_ctx_t;
rmp->vrf_id = ~0;
rmp->context = ctx->context;
- vl_msg_api_send_shmem (ctx->q, (u8 *) & rmp);
+ vl_api_send_msg (ctx->reg, (u8 *) rmp);
return 0;
}
static void
vl_api_nat64_pool_addr_dump_t_handler (vl_api_nat64_pool_addr_dump_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
nat64_api_walk_ctx_t ctx = {
- .q = q,
+ .reg = reg,
.context = mp->context,
};
nat_interface_is_inside (i);
rmp->context = ctx->context;
- vl_msg_api_send_shmem (ctx->q, (u8 *) & rmp);
+ vl_api_send_msg (ctx->reg, (u8 *) rmp);
return 0;
}
static void
vl_api_nat64_interface_dump_t_handler (vl_api_nat64_interface_dump_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
nat64_api_walk_ctx_t ctx = {
- .q = q,
+ .reg = reg,
.context = mp->context,
};
rmp->is_static = bibe->is_static;
rmp->ses_num = ntohl (bibe->ses_num);
- vl_msg_api_send_shmem (ctx->q, (u8 *) & rmp);
+ vl_api_send_msg (ctx->reg, (u8 *) rmp);
return 0;
}
static void
vl_api_nat64_bib_dump_t_handler (vl_api_nat64_bib_dump_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
nat64_main_t *nm = &nat64_main;
nat64_db_t *db;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
nat64_api_walk_ctx_t ctx = {
- .q = q,
+ .reg = reg,
.context = mp->context,
};
rmp->vrf_id = ntohl (fib->ft_table_id);
rmp->proto = ste->proto;
- vl_msg_api_send_shmem (ctx->q, (u8 *) & rmp);
+ vl_api_send_msg (ctx->reg, (u8 *) rmp);
return 0;
}
static void
vl_api_nat64_st_dump_t_handler (vl_api_nat64_st_dump_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
nat64_main_t *nm = &nat64_main;
nat64_db_t *db;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
nat64_api_walk_ctx_t ctx = {
- .q = q,
+ .reg = reg,
.context = mp->context,
};
rmp->vrf_id = ntohl (p->vrf_id);
rmp->context = ctx->context;
- vl_msg_api_send_shmem (ctx->q, (u8 *) & rmp);
+ vl_api_send_msg (ctx->reg, (u8 *) rmp);
return 0;
}
static void
vl_api_nat64_prefix_dump_t_handler (vl_api_nat64_prefix_dump_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
nat64_api_walk_ctx_t ctx = {
- .q = q,
+ .reg = reg,
.context = mp->context,
};
}
static void send_pppoe_session_details
- (pppoe_session_t * t, svm_queue_t * q, u32 context)
+ (pppoe_session_t * t, vl_api_registration_t * reg, u32 context)
{
vl_api_pppoe_session_details_t *rmp;
ip4_main_t *im4 = &ip4_main;
rmp->is_ipv6 = is_ipv6;
rmp->context = context;
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
vl_api_pppoe_session_dump_t_handler (vl_api_pppoe_session_dump_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
pppoe_main_t *pem = &pppoe_main;
pppoe_session_t *t;
u32 sw_if_index;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
- {
- return;
- }
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
+ return;
sw_if_index = ntohl (mp->sw_if_index);
/* *INDENT-OFF* */
pool_foreach (t, pem->sessions,
({
- send_pppoe_session_details(t, q, mp->context);
+ send_pppoe_session_details(t, reg, mp->context);
}));
/* *INDENT-ON* */
}
return;
}
t = &pem->sessions[pem->session_index_by_sw_if_index[sw_if_index]];
- send_pppoe_session_details (t, q, mp->context);
+ send_pppoe_session_details (t, reg, mp->context);
}
}
{
api_main_t *am = &api_main;
vl_api_api_versions_reply_t *rmp;
- svm_queue_t *q;
+ vl_api_registration_t *reg;
u32 nmsg = vec_len (am->api_version_list);
int msg_size = sizeof (*rmp) + sizeof (rmp->api_versions[0]) * nmsg;
int i;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
rmp = vl_msg_api_alloc (msg_size);
strncpy ((char *) rmp->api_versions[i].name, vl->name, 64 - 1);
}
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
#define foreach_vlib_api_msg \
}
void
-send_bfd_udp_session_details (svm_queue_t * q, u32 context,
+send_bfd_udp_session_details (vl_api_registration_t * reg, u32 context,
bfd_session_t * bs)
{
if (bs->transport != BFD_TRANSPORT_UDP4 &&
clib_host_to_net_u32 (bs->config_required_min_rx_usec);
mp->desired_min_tx = clib_host_to_net_u32 (bs->config_desired_min_tx_usec);
mp->detect_mult = bs->local_detect_mult;
- vl_msg_api_send_shmem (q, (u8 *) & mp);
+ vl_api_send_msg (reg, (u8 *) mp);
}
void
{
vpe_api_main_t *vam = &vpe_api_main;
vpe_client_registration_t *reg;
- svm_queue_t *q;
+ vl_api_registration_t *vl_reg;
/* *INDENT-OFF* */
pool_foreach (reg, vam->bfd_events_registrations, ({
- q = vl_api_client_index_to_input_queue (reg->client_index);
- if (q)
- {
- switch (bs->transport)
- {
- case BFD_TRANSPORT_UDP4:
- /* fallthrough */
- case BFD_TRANSPORT_UDP6:
- send_bfd_udp_session_details (q, 0, bs);
- }
- }
- }));
+ vl_reg = vl_api_client_index_to_registration (reg->client_index);
+ if (vl_reg)
+ {
+ switch (bs->transport)
+ {
+ case BFD_TRANSPORT_UDP4:
+ /* fallthrough */
+ case BFD_TRANSPORT_UDP6:
+ send_bfd_udp_session_details (vl_reg, 0, bs);
+ }
+ }
+ }));
/* *INDENT-ON* */
}
static void
vl_api_bfd_udp_session_dump_t_handler (vl_api_bfd_udp_session_dump_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
- q = vl_api_client_index_to_input_queue (mp->client_index);
-
- if (q == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
bfd_session_t *bs = NULL;
/* *INDENT-OFF* */
pool_foreach (bs, bfd_main.sessions, ({
- if (bs->transport == BFD_TRANSPORT_UDP4 ||
- bs->transport == BFD_TRANSPORT_UDP6)
- send_bfd_udp_session_details (q, mp->context, bs);
- }));
+ if (bs->transport == BFD_TRANSPORT_UDP4 ||
+ bs->transport == BFD_TRANSPORT_UDP6)
+ send_bfd_udp_session_details (reg, mp->context, bs);
+ }));
/* *INDENT-ON* */
}
static void
vl_api_bfd_auth_keys_dump_t_handler (vl_api_bfd_auth_keys_dump_t * mp)
{
- svm_queue_t *q;
-
- q = vl_api_client_index_to_input_queue (mp->client_index);
+ vl_api_registration_t *reg;
- if (q == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
bfd_auth_key_t *key = NULL;
/* *INDENT-OFF* */
pool_foreach (key, bfd_main.auth_keys, ({
- rmp = vl_msg_api_alloc (sizeof (*rmp));
- memset (rmp, 0, sizeof (*rmp));
- rmp->_vl_msg_id = ntohs (VL_API_BFD_AUTH_KEYS_DETAILS);
- rmp->context = mp->context;
- rmp->conf_key_id = clib_host_to_net_u32 (key->conf_key_id);
- rmp->auth_type = key->auth_type;
- rmp->use_count = clib_host_to_net_u32 (key->use_count);
- vl_msg_api_send_shmem (q, (u8 *)&rmp);
- }));
+ rmp = vl_msg_api_alloc (sizeof (*rmp));
+ memset (rmp, 0, sizeof (*rmp));
+ rmp->_vl_msg_id = ntohs (VL_API_BFD_AUTH_KEYS_DETAILS);
+ rmp->context = mp->context;
+ rmp->conf_key_id = clib_host_to_net_u32 (key->conf_key_id);
+ rmp->auth_type = key->auth_type;
+ rmp->use_count = clib_host_to_net_u32 (key->use_count);
+ vl_api_send_msg (reg, (u8 *)&rmp);
+ }));
/* *INDENT-ON* */
}
}
static void
-send_bier_table_details (svm_queue_t * q,
+send_bier_table_details (vl_api_registration_t * reg,
u32 context,
const bier_table_t *bt)
{
mp->bt_tbl_id.bt_sub_domain = bt->bt_id.bti_sub_domain;
mp->bt_tbl_id.bt_hdr_len_id = bt->bt_id.bti_hdr_len;
- vl_msg_api_send_shmem (q, (u8 *) & mp);
+ vl_api_send_msg (reg, (u8 *) mp);
}
static void
vl_api_bier_table_dump_t_handler (vl_api_bier_table_dump_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
bier_table_t *bt;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
- return;
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
+ return;
pool_foreach(bt, bier_table_pool,
({
*/
if (bier_table_is_main(bt))
{
- send_bier_table_details(q, mp->context, bt);
+ send_bier_table_details(reg, mp->context, bt);
}
}));
}
typedef struct bier_route_details_walk_t_
{
- svm_queue_t * q;
+ vl_api_registration_t * reg;
u32 context;
} bier_route_details_walk_t;
fp++;
}
- vl_msg_api_send_shmem (ctx->q, (u8 *) & mp);
+ vl_api_send_msg (ctx->reg, (u8 *) mp);
}
static void
vl_api_bier_route_dump_t_handler (vl_api_bier_route_dump_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
- return;
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
+ return;
bier_table_id_t bti = {
.bti_set = mp->br_tbl_id.bt_set,
.bti_ecmp = BIER_ECMP_TABLE_ID_MAIN,
};
bier_route_details_walk_t ctx = {
- .q = q,
+ .reg = reg,
.context = mp->context,
};
bier_table_walk(&bti, send_bier_route_details, &ctx);
}
static void
-send_bier_imp_details (svm_queue_t * q,
+send_bier_imp_details (vl_api_registration_t * reg,
u32 context,
const bier_imp_t *bi)
{
mp->bi_n_bytes = n_bytes;
memcpy(mp->bi_bytes, bi->bi_bits.bits, n_bytes);
- vl_msg_api_send_shmem (q, (u8 *) & mp);
+ vl_api_send_msg (reg, (u8 *) mp);
}
static void
vl_api_bier_imp_dump_t_handler (vl_api_bier_imp_dump_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
bier_imp_t *bi;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
- return;
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
+ return;
pool_foreach(bi, bier_imp_pool,
({
- send_bier_imp_details(q, mp->context, bi);
+ send_bier_imp_details(reg, mp->context, bi);
}));
}
}
static void
-send_bier_disp_table_details (svm_queue_t * q,
+send_bier_disp_table_details (vl_api_registration_t * reg,
u32 context,
const bier_disp_table_t *bdt)
{
mp->bdt_tbl_id = htonl(bdt->bdt_table_id);
- vl_msg_api_send_shmem (q, (u8 *) & mp);
+ vl_api_send_msg (reg, (u8 *) mp);
}
static void
vl_api_bier_disp_table_dump_t_handler (vl_api_bier_disp_table_dump_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
bier_disp_table_t *bdt;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
- return;
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
+ return;
pool_foreach(bdt, bier_disp_table_pool,
({
- send_bier_disp_table_details(q, mp->context, bdt);
+ send_bier_disp_table_details(reg, mp->context, bdt);
}));
}
typedef struct bier_disp_entry_details_walk_t_
{
- svm_queue_t * q;
+ vl_api_registration_t * reg;
u32 context;
} bier_disp_entry_details_walk_t;
fp++;
}
- vl_msg_api_send_shmem (ctx->q, (u8 *) & mp);
+ vl_api_send_msg (ctx->reg, (u8 *) mp);
}
}
}
static void
vl_api_bier_disp_entry_dump_t_handler (vl_api_bier_disp_entry_dump_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
- return;
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
+ return;
bier_disp_entry_details_walk_t ctx = {
- .q = q,
+ .reg = reg,
.context = mp->context,
};
bier_disp_table_walk(ntohl(mp->bde_tbl_id),
static void
send_policer_classify_details (u32 sw_if_index,
- u32 table_index, svm_queue_t * q, u32 context)
+ u32 table_index, vl_api_registration_t * reg,
+ u32 context)
{
vl_api_policer_classify_details_t *mp;
mp->sw_if_index = htonl (sw_if_index);
mp->table_index = htonl (table_index);
- vl_msg_api_send_shmem (q, (u8 *) & mp);
+ vl_api_send_msg (reg, (u8 *) mp);
}
static void
vl_api_policer_classify_dump_t_handler (vl_api_policer_classify_dump_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
policer_classify_main_t *pcm = &policer_classify_main;
u32 *vec_tbl;
int i;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
+ 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];
if (vec_elt (vec_tbl, i) == ~0)
continue;
- send_policer_classify_details (i, vec_elt (vec_tbl, i), q,
+ send_policer_classify_details (i, vec_elt (vec_tbl, i), reg,
mp->context);
}
}
static void
vl_api_classify_table_ids_t_handler (vl_api_classify_table_ids_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
vnet_classify_main_t *cm = &vnet_classify_main;
clib_memcpy (rmp->ids, table_ids, count * sizeof (u32));
rmp->retval = 0;
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
vec_free (table_ids);
}
static void
vl_api_classify_table_info_t_handler (vl_api_classify_table_info_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
vl_api_classify_table_info_reply_t *rmp = 0;
rmp->retval = ntohl (VNET_API_ERROR_CLASSIFY_TABLE_NOT_FOUND);
}
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
-send_classify_session_details (svm_queue_t * q,
+send_classify_session_details (vl_api_registration_t * reg,
u32 table_id,
u32 match_length,
vnet_classify_entry_t * e, u32 context)
rmp->match_length = ntohl (match_length);
clib_memcpy (rmp->match, e->key, match_length);
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
vl_api_classify_session_dump_t_handler (vl_api_classify_session_dump_t * mp)
{
vnet_classify_main_t *cm = &vnet_classify_main;
- svm_queue_t *q;
+ vl_api_registration_t *reg;
u32 table_id = ntohl (mp->table_id);
vnet_classify_table_t *t;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (!q)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
/* *INDENT-OFF* */
continue;
send_classify_session_details
- (q, table_id, t->match_n_vectors * sizeof (u32x4),
+ (reg, table_id, t->match_n_vectors * sizeof (u32x4),
v, mp->context);
}
}
static void
send_flow_classify_details (u32 sw_if_index,
- u32 table_index, svm_queue_t * q, u32 context)
+ u32 table_index, vl_api_registration_t * reg,
+ u32 context)
{
vl_api_flow_classify_details_t *mp;
mp->sw_if_index = htonl (sw_if_index);
mp->table_index = htonl (table_index);
- vl_msg_api_send_shmem (q, (u8 *) & mp);
+ vl_api_send_msg (reg, (u8 *) mp);
}
static void
vl_api_flow_classify_dump_t_handler (vl_api_flow_classify_dump_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
flow_classify_main_t *pcm = &flow_classify_main;
u32 *vec_tbl;
int i;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
+ 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];
if (vec_elt (vec_tbl, i) == ~0)
continue;
- send_flow_classify_details (i, vec_elt (vec_tbl, i), q,
+ send_flow_classify_details (i, vec_elt (vec_tbl, i), reg,
mp->context);
}
}
{
vlib_main_t *vm = vlib_get_main ();
vl_api_tap_create_v2_reply_t *rmp;
- svm_queue_t *q;
+ vl_api_registration_t *reg;
tap_create_if_args_t _a, *ap = &_a;
memset (ap, 0, sizeof (*ap));
tap_create_if (vm, ap);
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (!q)
- return;
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
+ return;;
rmp = vl_msg_api_alloc (sizeof (*rmp));
rmp->_vl_msg_id = ntohs (VL_API_TAP_CREATE_V2_REPLY);
rmp->retval = ntohl (ap->rv);
rmp->sw_if_index = ntohl (ap->sw_if_index);
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
tap_send_sw_interface_event_deleted (vpe_api_main_t * am,
- svm_queue_t * q, u32 sw_if_index)
+ vl_api_registration_t * reg,
+ u32 sw_if_index)
{
vl_api_sw_interface_event_t *mp;
mp->admin_up_down = 0;
mp->link_up_down = 0;
mp->deleted = 1;
- vl_msg_api_send_shmem (q, (u8 *) & mp);
+ vl_api_send_msg (reg, (u8 *) mp);
}
static void
int rv;
vpe_api_main_t *vam = &vpe_api_main;
vl_api_tap_delete_v2_reply_t *rmp;
- svm_queue_t *q;
+ vl_api_registration_t *reg;
u32 sw_if_index = ntohl (mp->sw_if_index);
rv = tap_delete_if (vm, sw_if_index);
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (!q)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
rmp = vl_msg_api_alloc (sizeof (*rmp));
rmp->context = mp->context;
rmp->retval = ntohl (rv);
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
if (!rv)
- tap_send_sw_interface_event_deleted (vam, q, sw_if_index);
+ tap_send_sw_interface_event_deleted (vam, reg, sw_if_index);
}
static void
tap_send_sw_interface_details (vpe_api_main_t * am,
- svm_queue_t * q,
+ vl_api_registration_t * reg,
tap_interface_details_t * tap_if, u32 context)
{
vl_api_sw_interface_tap_v2_details_t *mp;
mp->host_ip6_prefix_len = tap_if->host_ip6_prefix_len;
mp->context = context;
- vl_msg_api_send_shmem (q, (u8 *) & mp);
+ vl_api_send_msg (reg, (u8 *) mp);
}
static void
{
int rv;
vpe_api_main_t *am = &vpe_api_main;
- svm_queue_t *q;
+ vl_api_registration_t *reg;
tap_interface_details_t *tapifs = NULL;
tap_interface_details_t *tap_if = NULL;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
rv = tap_dump_ifs (&tapifs);
vec_foreach (tap_if, tapifs)
{
- tap_send_sw_interface_details (am, q, tap_if, mp->context);
+ tap_send_sw_interface_details (am, reg, tap_if, mp->context);
}
vec_free (tapifs);
*/
static void
send_sw_interface_event_deleted (vpe_api_main_t * am,
- svm_queue_t * q, u32 sw_if_index)
+ vl_api_registration_t * reg, u32 sw_if_index)
{
vl_api_sw_interface_event_t *mp;
mp->admin_up_down = 0;
mp->link_up_down = 0;
mp->deleted = 1;
- vl_msg_api_send_shmem (q, (u8 *) & mp);
+ vl_api_send_msg (reg, (u8 *) mp);
}
static void
vl_api_delete_vhost_user_if_reply_t *rmp;
vpe_api_main_t *vam = &vpe_api_main;
u32 sw_if_index = ntohl (mp->sw_if_index);
+ vl_api_registration_t *reg;
vnet_main_t *vnm = vnet_get_main ();
vlib_main_t *vm = vlib_get_main ();
REPLY_MACRO (VL_API_DELETE_VHOST_USER_IF_REPLY);
if (!rv)
{
- svm_queue_t *q = vl_api_client_index_to_input_queue (mp->client_index);
- if (!q)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
vnet_clear_sw_interface_tag (vnm, sw_if_index);
- send_sw_interface_event_deleted (vam, q, sw_if_index);
+ send_sw_interface_event_deleted (vam, reg, sw_if_index);
}
}
static void
send_sw_interface_vhost_user_details (vpe_api_main_t * am,
- svm_queue_t * q,
+ vl_api_registration_t * reg,
vhost_user_intf_details_t * vui,
u32 context)
{
strncpy ((char *) mp->interface_name,
(char *) vui->if_name, ARRAY_LEN (mp->interface_name) - 1);
- vl_msg_api_send_shmem (q, (u8 *) & mp);
+ vl_api_send_msg (reg, (u8 *) mp);
}
static void
vlib_main_t *vm = vlib_get_main ();
vhost_user_intf_details_t *ifaces = NULL;
vhost_user_intf_details_t *vuid = NULL;
- svm_queue_t *q;
+ vl_api_registration_t *reg;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
rv = vhost_user_dump_ifs (vnm, vm, &ifaces);
vec_foreach (vuid, ifaces)
{
- send_sw_interface_vhost_user_details (am, q, vuid, mp->context);
+ send_sw_interface_vhost_user_details (am, reg, vuid, mp->context);
}
vec_free (ifaces);
}
static void
vl_api_dhcp_proxy_dump_t_handler (vl_api_dhcp_proxy_dump_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
- return;
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
+ return;;
dhcp_proxy_dump ((mp->is_ip6 == 1 ?
- FIB_PROTOCOL_IP6 : FIB_PROTOCOL_IP4), q, mp->context);
+ FIB_PROTOCOL_IP6 : FIB_PROTOCOL_IP4), reg, mp->context);
}
void
void *opaque, u32 context, dhcp_proxy_t * proxy)
{
vl_api_dhcp_proxy_details_t *mp;
- svm_queue_t *q = opaque;
+ vl_api_registration_t *reg = opaque;
vl_api_dhcp_server_t *v_server;
dhcp_server_t *server;
fib_table_t *s_fib;
/* put the address in the first bytes */
memcpy (mp->dhcp_src_address, &proxy->dhcp_src_address.ip4, 4);
}
- vl_msg_api_send_shmem (q, (u8 *) & mp);
+ vl_api_send_msg (reg, (u8 *) mp);
}
void
u8 mask_width, u8 is_ipv6, u8 * host_address,
u8 * router_address, u8 * host_mac)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
vl_api_dhcp_compl_event_t *mp;
u32 len;
- q = vl_api_client_index_to_input_queue (client_index);
- if (!q)
+ reg = vl_api_client_index_to_registration (client_index);
+ if (!reg)
return;
mp = vl_msg_api_alloc (sizeof (*mp));
mp->_vl_msg_id = ntohs (VL_API_DHCP_COMPL_EVENT);
- vl_msg_api_send_shmem (q, (u8 *) & mp);
+ vl_api_send_msg (reg, (u8 *) mp);
}
static void vl_api_dhcp_client_config_t_handler
vl_api_ipfix_exporter_dump_t_handler (vl_api_ipfix_exporter_dump_t * mp)
{
flow_report_main_t *frm = &flow_report_main;
- svm_queue_t *q;
+ vl_api_registration_t *reg;
vl_api_ipfix_exporter_details_t *rmp;
ip4_main_t *im = &ip4_main;
u32 vrf_id;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (!q)
- return;
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
+ return;;
rmp = vl_msg_api_alloc (sizeof (*rmp));
memset (rmp, 0, sizeof (*rmp));
rmp->template_interval = htonl (frm->template_interval);
rmp->udp_checksum = (frm->udp_checksum != 0);
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
(vl_api_ipfix_classify_stream_dump_t * mp)
{
flow_report_classify_main_t *fcm = &flow_report_classify_main;
- svm_queue_t *q;
+ vl_api_registration_t *reg;
vl_api_ipfix_classify_stream_details_t *rmp;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (!q)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
rmp = vl_msg_api_alloc (sizeof (*rmp));
rmp->domain_id = htonl (fcm->domain_id);
rmp->src_port = htons (fcm->src_port);
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
static void
send_ipfix_classify_table_details (u32 table_index,
- svm_queue_t * q, u32 context)
+ vl_api_registration_t * reg, u32 context)
{
flow_report_classify_main_t *fcm = &flow_report_classify_main;
vl_api_ipfix_classify_table_details_t *mp;
mp->ip_version = table->ip_version;
mp->transport_protocol = table->transport_protocol;
- vl_msg_api_send_shmem (q, (u8 *) & mp);
+ vl_api_send_msg (reg, (u8 *) mp);
}
static void
(vl_api_ipfix_classify_table_dump_t * mp)
{
flow_report_classify_main_t *fcm = &flow_report_classify_main;
- svm_queue_t *q;
+ vl_api_registration_t *reg;
u32 i;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (!q)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
for (i = 0; i < vec_len (fcm->tables); i++)
if (ipfix_classify_table_index_valid (i))
- send_ipfix_classify_table_details (i, q, mp->context);
+ send_ipfix_classify_table_details (i, reg, mp->context);
}
/*
}
static void send_geneve_tunnel_details
- (geneve_tunnel_t * t, svm_queue_t * q, u32 context)
+ (geneve_tunnel_t * t, vl_api_registration_t * reg, u32 context)
{
vl_api_geneve_tunnel_details_t *rmp;
ip4_main_t *im4 = &ip4_main;
rmp->is_ipv6 = is_ipv6;
rmp->context = context;
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void vl_api_geneve_tunnel_dump_t_handler
(vl_api_geneve_tunnel_dump_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
geneve_main_t *vxm = &geneve_main;
geneve_tunnel_t *t;
u32 sw_if_index;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
- {
- return;
- }
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
+ return;
sw_if_index = ntohl (mp->sw_if_index);
/* *INDENT-OFF* */
pool_foreach (t, vxm->tunnels,
({
- send_geneve_tunnel_details(t, q, mp->context);
+ send_geneve_tunnel_details(t, reg, mp->context);
}));
/* *INDENT-ON* */
}
return;
}
t = &vxm->tunnels[vxm->tunnel_index_by_sw_if_index[sw_if_index]];
- send_geneve_tunnel_details (t, q, mp->context);
+ send_geneve_tunnel_details (t, reg, mp->context);
}
}
}
static void send_gre_tunnel_details
- (gre_tunnel_t * t, svm_queue_t * q, u32 context)
+ (gre_tunnel_t * t, vl_api_registration_t * reg, u32 context)
{
vl_api_gre_tunnel_details_t *rmp;
u8 is_ipv6 = t->tunnel_dst.fp_proto == FIB_PROTOCOL_IP6 ? 1 : 0;
rmp->context = context;
rmp->is_ipv6 = is_ipv6;
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
vl_api_gre_tunnel_dump_t_handler (vl_api_gre_tunnel_dump_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
gre_main_t *gm = &gre_main;
gre_tunnel_t *t;
u32 sw_if_index;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
- {
- return;
- }
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
+ return;
sw_if_index = ntohl (mp->sw_if_index);
/* *INDENT-OFF* */
pool_foreach (t, gm->tunnels,
({
- send_gre_tunnel_details(t, q, mp->context);
+ send_gre_tunnel_details(t, reg, mp->context);
}));
/* *INDENT-ON* */
}
return;
}
t = &gm->tunnels[gm->tunnel_index_by_sw_if_index[sw_if_index]];
- send_gre_tunnel_details (t, q, mp->context);
+ send_gre_tunnel_details (t, reg, mp->context);
}
}
}
static void
-send_sw_interface_get_table_reply (svm_queue_t * q,
+send_sw_interface_get_table_reply (vl_api_registration_t * reg,
u32 context, int retval, u32 vrf_id)
{
vl_api_sw_interface_get_table_reply_t *mp;
mp->retval = htonl (retval);
mp->vrf_id = htonl (vrf_id);
- vl_msg_api_send_shmem (q, (u8 *) & mp);
+ vl_api_send_msg (reg, (u8 *) mp);
}
static void
vl_api_sw_interface_get_table_t_handler (vl_api_sw_interface_get_table_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
fib_table_t *fib_table = 0;
u32 sw_if_index = ~0;
u32 fib_index = ~0;
fib_protocol_t fib_proto = FIB_PROTOCOL_IP4;
int rv = 0;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
VALIDATE_SW_IF_INDEX (mp);
BAD_SW_IF_INDEX_LABEL;
- send_sw_interface_get_table_reply (q, mp->context, rv, table_id);
+ send_sw_interface_get_table_reply (reg, mp->context, rv, table_id);
}
static void vl_api_sw_interface_set_unnumbered_t_handler
static void
send_sw_interface_event (vpe_api_main_t * am,
vpe_client_registration_t * reg,
- svm_queue_t * q, vnet_sw_interface_t * swif)
+ vl_api_registration_t * vl_reg,
+ vnet_sw_interface_t * swif)
{
vl_api_sw_interface_event_t *mp;
vnet_main_t *vnm = am->vnet_main;
mp->admin_up_down = (swif->flags & VNET_SW_INTERFACE_FLAG_ADMIN_UP) ? 1 : 0;
mp->link_up_down = (hi->flags & VNET_HW_INTERFACE_FLAG_LINK_UP) ? 1 : 0;
- vl_msg_api_send_shmem (q, (u8 *) & mp);
+ vl_api_send_msg (vl_reg, (u8 *) mp);
}
static uword
vpe_client_registration_t *reg;
int i;
u32 prev_sw_if_index;
- svm_queue_t *q;
+ vl_api_registration_t *vl_reg;
vam->link_state_process_up = 1;
/* *INDENT-OFF* */
pool_foreach(reg, vam->interface_events_registrations,
({
- q = vl_api_client_index_to_input_queue (reg->client_index);
- if (q)
+ vl_reg = vl_api_client_index_to_registration (reg->client_index);
+ if (vl_reg)
{
/* sw_interface may be deleted already */
if (!pool_is_free_index (vnm->interface_main.sw_interfaces,
event_data[i]))
{
swif = vnet_get_sw_interface (vnm, event_data[i]);
- send_sw_interface_event (vam, reg, q, swif);
+ send_sw_interface_event (vam, reg, vl_reg, swif);
}
}
}));
uword *p;
vnet_interface_main_t *im = &vnm->interface_main;
u64 sup_and_sub_key;
- svm_queue_t *q;
+ vl_api_registration_t *reg;
clib_error_t *error;
VALIDATE_SW_IF_INDEX (mp);
BAD_SW_IF_INDEX_LABEL;
out:
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (!q)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
rmp = vl_msg_api_alloc (sizeof (*rmp));
rmp->context = mp->context;
rmp->retval = htonl (rv);
rmp->sw_if_index = htonl (sw_if_index);
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
u8 is_ipv6,
u8 is_static,
u8 * mac_address,
- u8 * ip_address, svm_queue_t * q, u32 context)
+ u8 * ip_address, vl_api_registration_t * reg,
+ u32 context)
{
vl_api_ip_neighbor_details_t *mp;
memcpy (mp->mac_address, mac_address, 6);
memcpy (mp->ip_address, ip_address, (is_ipv6) ? 16 : 4);
- vl_msg_api_send_shmem (q, (u8 *) & mp);
+ vl_api_send_msg (reg, (u8 *) mp);
}
static void
vl_api_ip_neighbor_dump_t_handler (vl_api_ip_neighbor_dump_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
u32 sw_if_index = ntohl (mp->sw_if_index);
((n->flags & IP6_NEIGHBOR_FLAG_STATIC) ? 1 : 0),
(u8 *) n->link_layer_address,
(u8 *) & (n->key.ip6_address.as_u8),
- q, mp->context);
+ reg, mp->context);
}
/* *INDENT-ON* */
vec_free (ns);
((n->flags & ETHERNET_ARP_IP4_ENTRY_FLAG_STATIC) ? 1 : 0),
(u8*) n->ethernet_address,
(u8*) & (n->ip4_address.as_u8),
- q, mp->context);
+ reg, mp->context);
}
/* *INDENT-ON* */
vec_free (ns);
static void
send_ip_fib_details (vpe_api_main_t * am,
- svm_queue_t * q,
+ vl_api_registration_t * reg,
const fib_table_t * table,
const fib_prefix_t * pfx,
fib_route_path_encode_t * api_rpaths, u32 context)
fp++;
}
- vl_msg_api_send_shmem (q, (u8 *) & mp);
+ vl_api_send_msg (reg, (u8 *) mp);
}
typedef struct vl_api_ip_fib_dump_walk_ctx_t_
vl_api_ip_fib_dump_t_handler (vl_api_ip_fib_dump_t * mp)
{
vpe_api_main_t *am = &vpe_api_main;
- svm_queue_t *q;
+ vl_api_registration_t *reg;
ip4_main_t *im = &ip4_main;
fib_table_t *fib_table;
fib_node_index_t *lfeip;
.feis = NULL,
};
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
/* *INDENT-OFF* */
fib_table = fib_table_get (fib_index, pfx.fp_proto);
api_rpaths = NULL;
fib_entry_encode (*lfeip, &api_rpaths);
- send_ip_fib_details (am, q, fib_table, &pfx, api_rpaths, mp->context);
+ send_ip_fib_details (am, reg, fib_table, &pfx, api_rpaths, mp->context);
vec_free (api_rpaths);
}
static void
send_ip6_fib_details (vpe_api_main_t * am,
- svm_queue_t * q,
+ vl_api_registration_t * reg,
const fib_table_t * table,
const fib_prefix_t * pfx,
fib_route_path_encode_t * api_rpaths, u32 context)
fp++;
}
- vl_msg_api_send_shmem (q, (u8 *) & mp);
+ vl_api_send_msg (reg, (u8 *) mp);
}
typedef struct apt_ip6_fib_show_ctx_t_
}
static void
-api_ip6_fib_table_get_all (svm_queue_t * q,
+api_ip6_fib_table_get_all (vl_api_registration_t * reg,
vl_api_ip6_fib_dump_t * mp,
fib_table_t * fib_table)
{
fib_entry_get_prefix (*fib_entry_index, &pfx);
api_rpaths = NULL;
fib_entry_encode (*fib_entry_index, &api_rpaths);
- send_ip6_fib_details (am, q, fib_table, &pfx, api_rpaths, mp->context);
+ send_ip6_fib_details (am, reg, fib_table, &pfx, api_rpaths, mp->context);
vec_free (api_rpaths);
}
static void
vl_api_ip6_fib_dump_t_handler (vl_api_ip6_fib_dump_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
ip6_main_t *im6 = &ip6_main;
fib_table_t *fib_table;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
/* *INDENT-OFF* */
pool_foreach (fib_table, im6->fibs,
({
- api_ip6_fib_table_get_all(q, mp, fib_table);
+ api_ip6_fib_table_get_all(reg, mp, fib_table);
}));
/* *INDENT-ON* */
}
static void
-send_ip_mfib_details (svm_queue_t * q,
+send_ip_mfib_details (vl_api_registration_t * reg,
u32 context, u32 table_id, fib_node_index_t mfei)
{
fib_route_path_encode_t *api_rpath, *api_rpaths = NULL;
}
vec_free (api_rpaths);
- vl_msg_api_send_shmem (q, (u8 *) & mp);
+ vl_api_send_msg (reg, (u8 *) mp);
}
typedef struct vl_api_ip_mfib_dump_ctc_t_
static void
vl_api_ip_mfib_dump_t_handler (vl_api_ip_mfib_dump_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
ip4_main_t *im = &ip4_main;
mfib_table_t *mfib_table;
fib_node_index_t *mfeip;
.entries = NULL,
};
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
-
/* *INDENT-OFF* */
pool_foreach (mfib_table, im->mfibs,
({
vec_foreach (mfeip, ctx.entries)
{
- send_ip_mfib_details (q, mp->context,
+ send_ip_mfib_details (reg, mp->context,
mfib_table->mft_table_id,
*mfeip);
}
static void
send_ip6_mfib_details (vpe_api_main_t * am,
- svm_queue_t * q,
+ vl_api_registration_t * reg,
u32 table_id,
mfib_prefix_t * pfx,
fib_route_path_encode_t * api_rpaths, u32 context)
fp++;
}
- vl_msg_api_send_shmem (q, (u8 *) & mp);
+ vl_api_send_msg (reg, (u8 *) mp);
}
typedef struct vl_api_ip6_mfib_dump_ctc_t_
vl_api_ip6_mfib_dump_t_handler (vl_api_ip6_mfib_dump_t * mp)
{
vpe_api_main_t *am = &vpe_api_main;
- svm_queue_t *q;
+ vl_api_registration_t *reg;
ip6_main_t *im = &ip6_main;
mfib_table_t *mfib_table;
fib_node_index_t *mfeip;
.entries = NULL,
};
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
{
mfib_entry_get_prefix (*mfeip, &pfx);
mfib_entry_encode (*mfeip, &api_rpaths);
- send_ip6_mfib_details (am, q,
+ send_ip6_mfib_details (am, reg,
mfib_table->mft_table_id,
&pfx, api_rpaths,
mp->context);
static void
send_ip_details (vpe_api_main_t * am,
- svm_queue_t * q, u32 sw_if_index, u8 is_ipv6, u32 context)
+ vl_api_registration_t * reg, u32 sw_if_index, u8 is_ipv6,
+ u32 context)
{
vl_api_ip_details_t *mp;
mp->is_ipv6 = is_ipv6;
mp->context = context;
- vl_msg_api_send_shmem (q, (u8 *) & mp);
+ vl_api_send_msg (reg, (u8 *) mp);
}
static void
send_ip_address_details (vpe_api_main_t * am,
- svm_queue_t * q,
+ vl_api_registration_t * reg,
u8 * ip, u16 prefix_length,
u32 sw_if_index, u8 is_ipv6, u32 context)
{
mp->sw_if_index = htonl (sw_if_index);
mp->is_ipv6 = is_ipv6;
- vl_msg_api_send_shmem (q, (u8 *) & mp);
+ vl_api_send_msg (reg, (u8 *) mp);
}
static void
vl_api_ip_address_dump_t_handler (vl_api_ip_address_dump_t * mp)
{
vpe_api_main_t *am = &vpe_api_main;
- svm_queue_t *q;
+ vl_api_registration_t *reg;
ip6_address_t *r6;
ip4_address_t *r4;
ip6_main_t *im6 = &ip6_main;
sw_if_index = ntohl (mp->sw_if_index);
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
if (mp->is_ipv6)
({
r6 = ip_interface_address_get_address (lm6, ia);
u16 prefix_length = ia->address_length;
- send_ip_address_details(am, q, (u8*)r6, prefix_length,
+ send_ip_address_details(am, reg, (u8*)r6, prefix_length,
sw_if_index, 1, mp->context);
}));
/* *INDENT-ON* */
({
r4 = ip_interface_address_get_address (lm4, ia);
u16 prefix_length = ia->address_length;
- send_ip_address_details(am, q, (u8*)r4, prefix_length,
+ send_ip_address_details(am, reg, (u8*)r4, prefix_length,
sw_if_index, 0, mp->context);
}));
/* *INDENT-ON* */
vnet_main_t *vnm = vnet_get_main ();
vlib_main_t *vm = vlib_get_main ();
vnet_interface_main_t *im = &vnm->interface_main;
- svm_queue_t *q;
+ vl_api_registration_t *reg;
vnet_sw_interface_t *si, *sorted_sis;
u32 sw_if_index = ~0;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
- {
- return;
- }
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
+ return;
/* Gather interfaces. */
sorted_sis = vec_new (vnet_sw_interface_t, pool_elts (im->sw_interfaces));
continue;
}
sw_if_index = si->sw_if_index;
- send_ip_details (am, q, sw_if_index, mp->is_ipv6, mp->context);
+ send_ip_details (am, reg, sw_if_index, mp->is_ipv6, mp->context);
}
}
}
}
static void
-send_ip6nd_proxy_details (svm_queue_t * q,
+send_ip6nd_proxy_details (vl_api_registration_t * reg,
u32 context,
const ip46_address_t * addr, u32 sw_if_index)
{
mp->sw_if_index = htonl (sw_if_index);
memcpy (mp->address, addr, 16);
- vl_msg_api_send_shmem (q, (u8 *) & mp);
+ vl_api_send_msg (reg, (u8 *) mp);
}
typedef struct api_ip6nd_proxy_fib_table_walk_ctx_t_
};
fib_node_index_t *feip;
fib_prefix_t pfx;
- svm_queue_t *q;
+ vl_api_registration_t *reg;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
- {
- return;
- }
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
+ return;
/* *INDENT-OFF* */
pool_foreach (fib_table, im6->fibs,
{
fib_entry_get_prefix (*feip, &pfx);
- send_ip6nd_proxy_details (q,
+ send_ip6nd_proxy_details (reg,
mp->context,
&pfx.fp_addr,
fib_entry_get_resolving_interface (*feip));
vlib_main_t *vm = vlib_get_main ();
int rv = 0;
clib_error_t *error;
- svm_queue_t *q;
+ vl_api_registration_t *reg;
error = vnet_punt_socket_add (vm, ntohl (mp->header_version),
mp->is_ip4, mp->l4_protocol,
clib_error_report (error);
}
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (!q)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
rmp = vl_msg_api_alloc (sizeof (*rmp));
char *p = vnet_punt_get_server_pathname ();
/* Abstract pathnames start with \0 */
memcpy ((char *) rmp->pathname, p, sizeof (rmp->pathname));
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
vlib_main_t *vm = vlib_get_main ();
int rv = 0;
clib_error_t *error;
- svm_queue_t *q;
+ vl_api_registration_t *reg;
error = vnet_punt_socket_del (vm, mp->is_ip4, mp->l4_protocol,
ntohs (mp->l4_port));
clib_error_report (error);
}
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (!q)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
rmp = vl_msg_api_alloc (sizeof (*rmp));
rmp->_vl_msg_id = htons (VL_API_PUNT_SOCKET_DEREGISTER_REPLY);
rmp->context = mp->context;
rmp->retval = htonl (rv);
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
#define vl_msg_name_crc_list
}
static void send_ipsec_gre_tunnel_details
- (ipsec_gre_tunnel_t * t, svm_queue_t * q, u32 context)
+ (ipsec_gre_tunnel_t * t, vl_api_registration_t * reg, u32 context)
{
vl_api_ipsec_gre_tunnel_details_t *rmp;
rmp->remote_sa_id = htonl (t->remote_sa_id);
rmp->context = context;
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void vl_api_ipsec_gre_tunnel_dump_t_handler
(vl_api_ipsec_gre_tunnel_dump_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
ipsec_gre_main_t *igm = &ipsec_gre_main;
ipsec_gre_tunnel_t *t;
u32 sw_if_index;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
- {
- return;
- }
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
+ return;
sw_if_index = ntohl (mp->sw_if_index);
/* *INDENT-OFF* */
pool_foreach (t, igm->tunnels,
({
- send_ipsec_gre_tunnel_details(t, q, mp->context);
+ send_ipsec_gre_tunnel_details(t, reg, mp->context);
}));
/* *INDENT-ON* */
}
return;
}
t = &igm->tunnels[igm->tunnel_index_by_sw_if_index[sw_if_index]];
- send_ipsec_gre_tunnel_details (t, q, mp->context);
+ send_ipsec_gre_tunnel_details (t, reg, mp->context);
}
}
}
static void
-send_ipsec_spd_details (ipsec_policy_t * p, svm_queue_t * q, u32 context)
+send_ipsec_spd_details (ipsec_policy_t * p, vl_api_registration_t * reg,
+ u32 context)
{
vl_api_ipsec_spd_details_t *mp;
mp->bytes = clib_host_to_net_u64 (p->counter.bytes);
mp->packets = clib_host_to_net_u64 (p->counter.packets);
- vl_msg_api_send_shmem (q, (u8 *) & mp);
+ vl_api_send_msg (reg, (u8 *) mp);
}
static void
vl_api_ipsec_spd_dump_t_handler (vl_api_ipsec_spd_dump_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
ipsec_main_t *im = &ipsec_main;
ipsec_policy_t *policy;
ipsec_spd_t *spd;
uword *p;
u32 spd_index;
#if WITH_LIBSSL > 0
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
p = hash_get (im->spd_index_by_spd_id, ntohl (mp->spd_id));
pool_foreach (policy, spd->policies,
({
if (mp->sa_id == ~(0) || ntohl (mp->sa_id) == policy->sa_id)
- send_ipsec_spd_details (policy, q,
+ send_ipsec_spd_details (policy, reg,
mp->context);}
));
/* *INDENT-ON* */
}
static void
-send_ipsec_sa_details (ipsec_sa_t * sa, svm_queue_t * q,
+send_ipsec_sa_details (ipsec_sa_t * sa, vl_api_registration_t * reg,
u32 context, u32 sw_if_index)
{
vl_api_ipsec_sa_details_t *mp;
mp->replay_window = clib_host_to_net_u64 (sa->replay_window);
mp->total_data_size = clib_host_to_net_u64 (sa->total_data_size);
- vl_msg_api_send_shmem (q, (u8 *) & mp);
+ vl_api_send_msg (reg, (u8 *) mp);
}
static void
vl_api_ipsec_sa_dump_t_handler (vl_api_ipsec_sa_dump_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
ipsec_main_t *im = &ipsec_main;
vnet_main_t *vnm = im->vnet_main;
ipsec_sa_t *sa;
u32 *sa_index_to_tun_if_index = 0;
#if WITH_LIBSSL > 0
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0 || pool_elts (im->sad) == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg || pool_elts (im->sad) == 0)
return;
vec_validate_init_empty (sa_index_to_tun_if_index, vec_len (im->sad) - 1,
pool_foreach (sa, im->sad,
({
if (mp->sa_id == ~(0) || ntohl (mp->sa_id) == sa->id)
- send_ipsec_sa_details (sa, q, mp->context,
+ send_ipsec_sa_details (sa, reg, mp->context,
sa_index_to_tun_if_index[sa - im->sad]);
}));
/* *INDENT-ON* */
_(SW_INTERFACE_SET_VPATH, sw_interface_set_vpath)
static void
-send_l2_xconnect_details (svm_queue_t * q, u32 context,
+send_l2_xconnect_details (vl_api_registration_t * reg, u32 context,
u32 rx_sw_if_index, u32 tx_sw_if_index)
{
vl_api_l2_xconnect_details_t *mp;
mp->rx_sw_if_index = htonl (rx_sw_if_index);
mp->tx_sw_if_index = htonl (tx_sw_if_index);
- vl_msg_api_send_shmem (q, (u8 *) & mp);
+ vl_api_send_msg (reg, (u8 *) mp);
}
static void
vl_api_l2_xconnect_dump_t_handler (vl_api_l2_xconnect_dump_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
vnet_main_t *vnm = vnet_get_main ();
vnet_interface_main_t *im = &vnm->interface_main;
l2input_main_t *l2im = &l2input_main;
vnet_sw_interface_t *swif;
l2_input_config_t *config;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
/* *INDENT-OFF* */
({
config = vec_elt_at_index (l2im->configs, swif->sw_if_index);
if (config->xconnect)
- send_l2_xconnect_details (q, mp->context, swif->sw_if_index,
+ send_l2_xconnect_details (reg, mp->context, swif->sw_if_index,
config->output_sw_if_index);
}));
/* *INDENT-ON* */
static void
send_l2fib_table_entry (vpe_api_main_t * am,
- svm_queue_t * q,
+ vl_api_registration_t * reg,
l2fib_entry_key_t * l2fe_key,
l2fib_entry_result_t * l2fe_res, u32 context)
{
mp->bvi_mac = l2fe_res->fields.bvi;
mp->context = context;
- vl_msg_api_send_shmem (q, (u8 *) & mp);
+ vl_api_send_msg (reg, (u8 *) mp);
}
static void
l2fib_entry_result_t *l2fe_res = NULL;
u32 ni, bd_id = ntohl (mp->bd_id);
u32 bd_index;
- svm_queue_t *q;
+ vl_api_registration_t *reg;
uword *p;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
/* see l2fib_table_dump: ~0 means "any" */
vec_foreach_index (ni, l2fe_key)
{
- send_l2fib_table_entry (am, q, vec_elt_at_index (l2fe_key, ni),
+ send_l2fib_table_entry (am, reg, vec_elt_at_index (l2fe_key, ni),
vec_elt_at_index (l2fe_res, ni), mp->context);
}
vec_free (l2fe_key);
static void
send_bridge_domain_details (l2input_main_t * l2im,
- svm_queue_t * q,
+ vl_api_registration_t * reg,
l2_bridge_domain_t * bd_config,
u32 n_sw_ifs, u32 context)
{
}
mp->n_sw_ifs = htonl (mp->n_sw_ifs);
- vl_msg_api_send_shmem (q, (u8 *) & mp);
+ vl_api_send_msg (reg, (u8 *) mp);
}
static void
{
bd_main_t *bdm = &bd_main;
l2input_main_t *l2im = &l2input_main;
+ vl_api_registration_t *reg;
+ u32 bd_id, bd_index, end;
- svm_queue_t *q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
- u32 bd_id = ntohl (mp->bd_id);
+ bd_id = ntohl (mp->bd_id);
if (bd_id == 0)
return;
- u32 bd_index, end;
if (bd_id == ~0)
bd_index = 0, end = vec_len (l2im->bd_configs);
else
l2input_bd_config_from_index (l2im, bd_index);
/* skip dummy bd_id 0 */
if (bd_config && (bd_config->bd_id > 0))
- send_bridge_domain_details (l2im, q, bd_config,
+ send_bridge_domain_details (l2im, reg, bd_config,
vec_len (bd_config->members),
mp->context);
}
static void
send_sw_if_l2tpv3_tunnel_details (vpe_api_main_t * am,
- svm_queue_t * q,
+ vl_api_registration_t * reg,
l2t_session_t * s,
l2t_main_t * lm, u32 context)
{
mp->l2_sublayer_present = s->l2_sublayer_present;
mp->context = context;
- vl_msg_api_send_shmem (q, (u8 *) & mp);
+ vl_api_send_msg (reg, (u8 *) mp);
}
{
vpe_api_main_t *am = &vpe_api_main;
l2t_main_t *lm = &l2t_main;
- svm_queue_t *q;
+ vl_api_registration_t *reg;
l2t_session_t *session;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
/* *INDENT-OFF* */
pool_foreach (session, lm->sessions,
({
- send_sw_if_l2tpv3_tunnel_details (am, q, session, lm, mp->context);
+ send_sw_if_l2tpv3_tunnel_details (am, reg, session, lm, mp->context);
}));
/* *INDENT-ON* */
}
static void
vl_api_show_lisp_use_petr_t_handler (vl_api_show_lisp_use_petr_t * mp)
{
- svm_queue_t *q = NULL;
vl_api_show_lisp_use_petr_reply_t *rmp = NULL;
lisp_cp_main_t *lcm = vnet_lisp_cp_get_main ();
mapping_t *m;
u8 status = 0;
gid_address_t addr;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
- {
- return;
- }
-
memset (&addr, 0, sizeof (addr));
status = lcm->flags & LISP_FLAG_USE_PETR;
if (status)
static void
send_lisp_locator_details (lisp_cp_main_t * lcm,
- locator_t * loc, svm_queue_t * q, u32 context)
+ locator_t * loc, vl_api_registration_t * reg,
+ u32 context)
{
vl_api_lisp_locator_details_t *rmp;
rmp->priority = loc->priority;
rmp->weight = loc->weight;
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
vl_api_lisp_locator_dump_t_handler (vl_api_lisp_locator_dump_t * mp)
{
u8 *ls_name = 0;
- svm_queue_t *q = 0;
+ vl_api_registration_t *reg = 0;
lisp_cp_main_t *lcm = vnet_lisp_cp_get_main ();
locator_set_t *lsit = 0;
locator_t *loc = 0;
u32 ls_index = ~0, *locit = 0;
uword *p = 0;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
- {
- return;
- }
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
+ return;
if (mp->is_index_set)
ls_index = htonl (mp->ls_index);
vec_foreach (locit, lsit->locator_indices)
{
loc = pool_elt_at_index (lcm->locator_pool, locit[0]);
- send_lisp_locator_details (lcm, loc, q, mp->context);
+ send_lisp_locator_details (lcm, loc, reg, mp->context);
};
out:
vec_free (ls_name);
static void
send_lisp_locator_set_details (lisp_cp_main_t * lcm,
locator_set_t * lsit,
- svm_queue_t * q, u32 context, u32 ls_index)
+ vl_api_registration_t * reg, u32 context,
+ u32 ls_index)
{
vl_api_lisp_locator_set_details_t *rmp;
u8 *str = 0;
vec_free (str);
}
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
vl_api_lisp_locator_set_dump_t_handler (vl_api_lisp_locator_set_dump_t * mp)
{
- svm_queue_t *q = NULL;
+ vl_api_registration_t *reg;
lisp_cp_main_t *lcm = vnet_lisp_cp_get_main ();
locator_set_t *lsit = NULL;
u8 filter;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
- {
- return;
- }
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
+ return;
filter = mp->filter;
/* *INDENT-OFF* */
{
continue;
}
- send_lisp_locator_set_details (lcm, lsit, q, mp->context,
+ send_lisp_locator_set_details (lcm, lsit, reg, mp->context,
lsit - lcm->locator_set_pool);
}));
/* *INDENT-ON* */
static void
send_lisp_eid_table_details (mapping_t * mapit,
- svm_queue_t * q, u32 context, u8 filter)
+ vl_api_registration_t * reg, u32 context,
+ u8 filter)
{
fid_address_t *fid;
lisp_cp_main_t *lcm = vnet_lisp_cp_get_main ();
rmp->vni = clib_host_to_net_u32 (gid_address_vni (gid));
rmp->key_id = clib_host_to_net_u16 (mapit->key_id);
memcpy (rmp->key, mapit->key, vec_len (mapit->key));
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
vl_api_lisp_eid_table_dump_t_handler (vl_api_lisp_eid_table_dump_t * mp)
{
u32 mi;
- svm_queue_t *q = NULL;
+ vl_api_registration_t *reg;
lisp_cp_main_t *lcm = vnet_lisp_cp_get_main ();
mapping_t *mapit = NULL;
gid_address_t _eid, *eid = &_eid;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
- {
- return;
- }
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
+ return;
if (mp->eid_set)
{
return;
mapit = pool_elt_at_index (lcm->mapping_pool, mi);
- send_lisp_eid_table_details (mapit, q, mp->context,
+ send_lisp_eid_table_details (mapit, reg, mp->context,
0 /* ignore filter */ );
}
else
/* *INDENT-OFF* */
pool_foreach (mapit, lcm->mapping_pool,
({
- send_lisp_eid_table_details(mapit, q, mp->context,
+ send_lisp_eid_table_details(mapit, reg, mp->context,
mp->filter);
}));
/* *INDENT-ON* */
}
static void
-send_lisp_map_server_details (ip_address_t * ip, svm_queue_t * q, u32 context)
+send_lisp_map_server_details (ip_address_t * ip, vl_api_registration_t * reg,
+ u32 context)
{
vl_api_lisp_map_server_details_t *rmp = NULL;
}
rmp->context = context;
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
vl_api_lisp_map_server_dump_t_handler (vl_api_lisp_map_server_dump_t * mp)
{
- svm_queue_t *q = NULL;
+ vl_api_registration_t *reg;
lisp_cp_main_t *lcm = vnet_lisp_cp_get_main ();
lisp_msmr_t *mr;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
- {
- return;
- }
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
+ return;
vec_foreach (mr, lcm->map_servers)
{
- send_lisp_map_server_details (&mr->address, q, mp->context);
+ send_lisp_map_server_details (&mr->address, reg, mp->context);
}
}
static void
send_lisp_map_resolver_details (ip_address_t * ip,
- svm_queue_t * q, u32 context)
+ vl_api_registration_t * reg, u32 context)
{
vl_api_lisp_map_resolver_details_t *rmp = NULL;
}
rmp->context = context;
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
vl_api_lisp_map_resolver_dump_t_handler (vl_api_lisp_map_resolver_dump_t * mp)
{
- svm_queue_t *q = NULL;
+ vl_api_registration_t *reg;
lisp_cp_main_t *lcm = vnet_lisp_cp_get_main ();
lisp_msmr_t *mr;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
- {
- return;
- }
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
+ return;
vec_foreach (mr, lcm->map_resolvers)
{
- send_lisp_map_resolver_details (&mr->address, q, mp->context);
+ send_lisp_map_resolver_details (&mr->address, reg, mp->context);
}
}
static void
-send_eid_table_map_pair (hash_pair_t * p, svm_queue_t * q, u32 context)
+send_eid_table_map_pair (hash_pair_t * p, vl_api_registration_t * reg,
+ u32 context)
{
vl_api_lisp_eid_table_map_details_t *rmp = NULL;
rmp->vni = clib_host_to_net_u32 (p->key);
rmp->dp_table = clib_host_to_net_u32 (p->value[0]);
rmp->context = context;
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
vl_api_lisp_eid_table_map_dump_t_handler (vl_api_lisp_eid_table_map_dump_t *
mp)
{
- svm_queue_t *q = NULL;
+ vl_api_registration_t *reg;
lisp_cp_main_t *lcm = vnet_lisp_cp_get_main ();
hash_pair_t *p;
uword *vni_table = 0;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
- {
- return;
- }
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
+ return;
if (mp->is_l2)
{
/* *INDENT-OFF* */
hash_foreach_pair (p, vni_table,
({
- send_eid_table_map_pair (p, q, mp->context);
+ send_eid_table_map_pair (p, reg, mp->context);
}));
/* *INDENT-ON* */
}
static void
-send_eid_table_vni (u32 vni, svm_queue_t * q, u32 context)
+send_eid_table_vni (u32 vni, vl_api_registration_t * reg, u32 context)
{
vl_api_lisp_eid_table_vni_details_t *rmp = 0;
rmp->_vl_msg_id = ntohs (VL_API_LISP_EID_TABLE_VNI_DETAILS);
rmp->context = context;
rmp->vni = clib_host_to_net_u32 (vni);
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
{
hash_pair_t *p;
u32 *vnis = 0;
- svm_queue_t *q = 0;
+ vl_api_registration_t *reg = 0;
lisp_cp_main_t *lcm = vnet_lisp_cp_get_main ();
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
- {
- return;
- }
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
+ return;
/* *INDENT-OFF* */
hash_foreach_pair (p, lcm->table_id_by_vni,
hash_foreach_pair (p, vnis,
({
- send_eid_table_vni (p->key, q, mp->context);
+ send_eid_table_vni (p->key, reg, mp->context);
}));
/* *INDENT-ON* */
static void
vl_api_show_lisp_status_t_handler (vl_api_show_lisp_status_t * mp)
{
- svm_queue_t *q = NULL;
vl_api_show_lisp_status_reply_t *rmp = NULL;
int rv = 0;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
- {
- return;
- }
-
/* *INDENT-OFF* */
REPLY_MACRO2(VL_API_SHOW_LISP_STATUS_REPLY,
({
vl_api_lisp_get_map_request_itr_rlocs_t_handler
(vl_api_lisp_get_map_request_itr_rlocs_t * mp)
{
- svm_queue_t *q = NULL;
vl_api_lisp_get_map_request_itr_rlocs_reply_t *rmp = NULL;
lisp_cp_main_t *lcm = vnet_lisp_cp_get_main ();
locator_set_t *loc_set = 0;
u8 *tmp_str = 0;
int rv = 0;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
- {
- return;
- }
-
if (~0 == lcm->mreq_itr_rlocs)
{
tmp_str = format (0, " ");
static void
vl_api_show_lisp_pitr_t_handler (vl_api_show_lisp_pitr_t * mp)
{
- svm_queue_t *q = NULL;
vl_api_show_lisp_pitr_reply_t *rmp = NULL;
lisp_cp_main_t *lcm = vnet_lisp_cp_get_main ();
mapping_t *m;
u8 *tmp_str = 0;
int rv = 0;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
- {
- return;
- }
-
u8 is_enabled = (lcm->flags & LISP_FLAG_PITR_MODE)
&& lcm->pitr_map_index != ~0;
#include <vlibapi/api_helper_macros.h>
-#define REPLY_DETAILS(t, body) \
-do { \
- svm_queue_t * q; \
- rv = vl_msg_api_pd_handler (mp, rv); \
- q = vl_api_client_index_to_input_queue (mp->client_index); \
- if (!q) \
- return; \
- \
- rmp = vl_msg_api_alloc (sizeof (*rmp)); \
- rmp->_vl_msg_id = ntohs((t)); \
- rmp->context = mp->context; \
- do {body;} while (0); \
- vl_msg_api_send_shmem (q, (u8 *)&rmp); \
+#define REPLY_DETAILS(t, body) \
+do { \
+ vl_api_registration_t * reg; \
+ rv = vl_msg_api_pd_handler (mp, rv); \
+ reg = vl_api_client_index_to_registration (mp->client_index); \
+ if (!reg) \
+ return; \
+ \
+ rmp = vl_msg_api_alloc (sizeof (*rmp)); \
+ rmp->_vl_msg_id = ntohs((t)); \
+ rmp->context = mp->context; \
+ do {body;} while (0); \
+ vl_api_send_msg (reg, (u8 *)&rmp); \
} while(0);
-#define foreach_vpe_api_msg \
+#define foreach_vpe_api_msg \
_(ONE_ADD_DEL_LOCATOR_SET, one_add_del_locator_set) \
_(ONE_ADD_DEL_LOCATOR, one_add_del_locator) \
_(ONE_ADD_DEL_LOCAL_EID, one_add_del_local_eid) \
static void
vl_api_show_one_use_petr_t_handler (vl_api_show_one_use_petr_t * mp)
{
- svm_queue_t *q = NULL;
vl_api_show_one_use_petr_reply_t *rmp = NULL;
lisp_cp_main_t *lcm = vnet_lisp_cp_get_main ();
mapping_t *m;
u8 status = 0;
gid_address_t addr;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
- {
- return;
- }
-
memset (&addr, 0, sizeof (addr));
status = lcm->flags & LISP_FLAG_USE_PETR;
if (status)
static void
send_one_locator_details (lisp_cp_main_t * lcm,
- locator_t * loc, svm_queue_t * q, u32 context)
+ locator_t * loc, vl_api_registration_t * reg,
+ u32 context)
{
vl_api_one_locator_details_t *rmp;
rmp->priority = loc->priority;
rmp->weight = loc->weight;
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
vl_api_one_locator_dump_t_handler (vl_api_one_locator_dump_t * mp)
{
u8 *ls_name = 0;
- svm_queue_t *q = 0;
+ vl_api_registration_t *reg;
lisp_cp_main_t *lcm = vnet_lisp_cp_get_main ();
locator_set_t *lsit = 0;
locator_t *loc = 0;
u32 ls_index = ~0, *locit = 0;
uword *p = 0;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
- {
- return;
- }
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
+ return;
if (mp->is_index_set)
ls_index = htonl (mp->ls_index);
vec_foreach (locit, lsit->locator_indices)
{
loc = pool_elt_at_index (lcm->locator_pool, locit[0]);
- send_one_locator_details (lcm, loc, q, mp->context);
+ send_one_locator_details (lcm, loc, reg, mp->context);
};
out:
vec_free (ls_name);
static void
send_one_locator_set_details (lisp_cp_main_t * lcm,
locator_set_t * lsit,
- svm_queue_t * q, u32 context, u32 ls_index)
+ vl_api_registration_t * reg, u32 context,
+ u32 ls_index)
{
vl_api_one_locator_set_details_t *rmp;
u8 *str = 0;
vec_free (str);
}
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
vl_api_one_locator_set_dump_t_handler (vl_api_one_locator_set_dump_t * mp)
{
- svm_queue_t *q = NULL;
+ vl_api_registration_t *reg;
lisp_cp_main_t *lcm = vnet_lisp_cp_get_main ();
locator_set_t *lsit = NULL;
u8 filter;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
- {
- return;
- }
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
+ return;
filter = mp->filter;
/* *INDENT-OFF* */
{
continue;
}
- send_one_locator_set_details (lcm, lsit, q, mp->context,
+ send_one_locator_set_details (lcm, lsit, reg, mp->context,
lsit - lcm->locator_set_pool);
}));
/* *INDENT-ON* */
static void
send_one_eid_table_details (mapping_t * mapit,
- svm_queue_t * q, u32 context, u8 filter)
+ vl_api_registration_t * reg, u32 context,
+ u8 filter)
{
fid_address_t *fid;
lisp_cp_main_t *lcm = vnet_lisp_cp_get_main ();
rmp->vni = clib_host_to_net_u32 (gid_address_vni (gid));
rmp->key_id = clib_host_to_net_u16 (mapit->key_id);
memcpy (rmp->key, mapit->key, vec_len (mapit->key));
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
vl_api_one_eid_table_dump_t_handler (vl_api_one_eid_table_dump_t * mp)
{
u32 mi;
- svm_queue_t *q = NULL;
+ vl_api_registration_t *reg;
lisp_cp_main_t *lcm = vnet_lisp_cp_get_main ();
mapping_t *mapit = NULL;
gid_address_t _eid, *eid = &_eid;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
- {
- return;
- }
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
+ return;
if (mp->eid_set)
{
return;
mapit = pool_elt_at_index (lcm->mapping_pool, mi);
- send_one_eid_table_details (mapit, q, mp->context,
+ send_one_eid_table_details (mapit, reg, mp->context,
0 /* ignore filter */ );
}
else
/* *INDENT-OFF* */
pool_foreach (mapit, lcm->mapping_pool,
({
- send_one_eid_table_details(mapit, q, mp->context,
+ send_one_eid_table_details(mapit, reg, mp->context,
mp->filter);
}));
/* *INDENT-ON* */
}
static void
-send_one_map_server_details (ip_address_t * ip, svm_queue_t * q, u32 context)
+send_one_map_server_details (ip_address_t * ip, vl_api_registration_t * reg,
+ u32 context)
{
vl_api_one_map_server_details_t *rmp = NULL;
}
rmp->context = context;
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
vl_api_one_map_server_dump_t_handler (vl_api_one_map_server_dump_t * mp)
{
- svm_queue_t *q = NULL;
+ vl_api_registration_t *reg;
lisp_cp_main_t *lcm = vnet_lisp_cp_get_main ();
lisp_msmr_t *mr;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
- {
- return;
- }
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
+ return;
vec_foreach (mr, lcm->map_servers)
{
- send_one_map_server_details (&mr->address, q, mp->context);
+ send_one_map_server_details (&mr->address, reg, mp->context);
}
}
static void
send_one_map_resolver_details (ip_address_t * ip,
- svm_queue_t * q, u32 context)
+ vl_api_registration_t * reg, u32 context)
{
vl_api_one_map_resolver_details_t *rmp = NULL;
}
rmp->context = context;
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
vl_api_one_map_resolver_dump_t_handler (vl_api_one_map_resolver_dump_t * mp)
{
- svm_queue_t *q = NULL;
+ vl_api_registration_t *reg;
lisp_cp_main_t *lcm = vnet_lisp_cp_get_main ();
lisp_msmr_t *mr;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
- {
- return;
- }
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
+ return;
vec_foreach (mr, lcm->map_resolvers)
{
- send_one_map_resolver_details (&mr->address, q, mp->context);
+ send_one_map_resolver_details (&mr->address, reg, mp->context);
}
}
static void
-send_eid_table_map_pair (hash_pair_t * p, svm_queue_t * q, u32 context)
+send_eid_table_map_pair (hash_pair_t * p, vl_api_registration_t * reg,
+ u32 context)
{
vl_api_one_eid_table_map_details_t *rmp = NULL;
rmp->vni = clib_host_to_net_u32 (p->key);
rmp->dp_table = clib_host_to_net_u32 (p->value[0]);
rmp->context = context;
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
vl_api_one_eid_table_map_dump_t_handler (vl_api_one_eid_table_map_dump_t * mp)
{
- svm_queue_t *q = NULL;
+ vl_api_registration_t *reg;
lisp_cp_main_t *lcm = vnet_lisp_cp_get_main ();
hash_pair_t *p;
uword *vni_table = 0;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
- {
- return;
- }
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
+ return;
if (mp->is_l2)
{
/* *INDENT-OFF* */
hash_foreach_pair (p, vni_table,
({
- send_eid_table_map_pair (p, q, mp->context);
+ send_eid_table_map_pair (p, reg, mp->context);
}));
/* *INDENT-ON* */
}
static void
-send_eid_table_vni (u32 vni, svm_queue_t * q, u32 context)
+send_eid_table_vni (u32 vni, vl_api_registration_t * reg, u32 context)
{
vl_api_one_eid_table_vni_details_t *rmp = 0;
rmp->_vl_msg_id = ntohs (VL_API_ONE_EID_TABLE_VNI_DETAILS);
rmp->context = context;
rmp->vni = clib_host_to_net_u32 (vni);
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
{
hash_pair_t *p;
u32 *vnis = 0;
- svm_queue_t *q = 0;
+ vl_api_registration_t *reg;
lisp_cp_main_t *lcm = vnet_lisp_cp_get_main ();
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
- {
- return;
- }
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
+ return;
/* *INDENT-OFF* */
hash_foreach_pair (p, lcm->table_id_by_vni,
hash_foreach_pair (p, vnis,
({
- send_eid_table_vni (p->key, q, mp->context);
+ send_eid_table_vni (p->key, reg, mp->context);
}));
/* *INDENT-ON* */
static void
vl_api_show_one_nsh_mapping_t_handler (vl_api_show_one_nsh_mapping_t * mp)
{
- svm_queue_t *q = NULL;
vl_api_show_one_nsh_mapping_reply_t *rmp = NULL;
lisp_cp_main_t *lcm = vnet_lisp_cp_get_main ();
mapping_t *m;
u8 is_set = 0;
int rv = 0;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
- {
- return;
- }
-
if (lcm->nsh_map_index == (u32) ~ 0)
{
tmp_str = format (0, "N/A");
static void
vl_api_show_one_pitr_t_handler (vl_api_show_one_pitr_t * mp)
{
- svm_queue_t *q = NULL;
vl_api_show_one_pitr_reply_t *rmp = NULL;
lisp_cp_main_t *lcm = vnet_lisp_cp_get_main ();
mapping_t *m;
u8 *tmp_str = 0;
int rv = 0;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
- {
- return;
- }
-
u8 is_enabled = (lcm->flags & LISP_FLAG_PITR_MODE)
&& lcm->pitr_map_index != ~0;
lisp_fwd_path_t *path;
vl_api_gpe_fwd_entry_path_details_t *rmp = NULL;
lisp_gpe_main_t *lgm = &lisp_gpe_main;
- svm_queue_t *q = NULL;
+ vl_api_registration_t *reg;
lisp_gpe_fwd_entry_t *lfe;
gpe_fwd_entry_path_dump_t_net_to_host (mp);
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
if (pool_is_free_index (lgm->lisp_fwd_entry_pool, mp->fwd_entry_index))
lisp_api_set_locator (&rmp->lcl_loc, &lgt->key->lcl, path->weight);
rmp->context = mp->context;
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
}
vl_api_map_domain_details_t *rmp;
map_main_t *mm = &map_main;
map_domain_t *d;
- svm_queue_t *q;
+ vl_api_registration_t *reg;
if (pool_elts (mm->domains) == 0)
return;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
- {
- return;
- }
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
+ return;
/* *INDENT-OFF* */
pool_foreach(d, mm->domains,
rmp->is_translation = (d->flags & MAP_DOMAIN_TRANSLATION);
rmp->context = mp->context;
- vl_msg_api_send_shmem (q, (u8 *)&rmp);
+ vl_api_send_msg (reg, (u8 *)&rmp);
}));
/* *INDENT-ON* */
}
static void
vl_api_map_rule_dump_t_handler (vl_api_map_rule_dump_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
u16 i;
ip6_address_t dst;
vl_api_map_rule_details_t *rmp;
return;
}
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
- {
- return;
- }
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
+ return;
for (i = 0; i < (0x1 << d->psid_length); i++)
{
rmp->psid = htons (i);
clib_memcpy (rmp->ip6_dst, &dst, sizeof (rmp->ip6_dst));
rmp->context = mp->context;
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
}
u64 total_pkts[VLIB_N_RX_TX];
u64 total_bytes[VLIB_N_RX_TX];
map_main_t *mm = &map_main;
- svm_queue_t *q = vl_api_client_index_to_input_queue (mp->client_index);
+ vl_api_registration_t *reg;
- if (!q)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
rmp = vl_msg_api_alloc (sizeof (*rmp));
(ip4_map_node.index, MAP_ERROR_DECAP_SEC_CHECK));
out:
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
/*
typedef struct mpls_tunnel_send_walk_ctx_t_
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
u32 index;
u32 context;
} mpls_tunnel_send_walk_ctx_t;
// mt->mt_label_stack, nlabels * sizeof (u32));
- vl_msg_api_send_shmem (ctx->q, (u8 *) & mp);
+ vl_api_send_msg (ctx->reg, (u8 *) mp);
}
static void
vl_api_mpls_tunnel_dump_t_handler (vl_api_mpls_tunnel_dump_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
mpls_tunnel_send_walk_ctx_t ctx = {
- .q = q,
+ .reg = reg,
.index = ntohl (mp->tunnel_index),
.context = mp->context,
};
static void
send_mpls_fib_details (vpe_api_main_t * am,
- svm_queue_t * q,
+ vl_api_registration_t * reg,
const fib_table_t * table,
u32 label, u32 eos,
fib_route_path_encode_t * api_rpaths, u32 context)
fp++;
}
- vl_msg_api_send_shmem (q, (u8 *) & mp);
+ vl_api_send_msg (reg, (u8 *) mp);
}
typedef struct vl_api_mpls_fib_dump_table_walk_ctx_t_
vl_api_mpls_fib_dump_t_handler (vl_api_mpls_fib_dump_t * mp)
{
vpe_api_main_t *am = &vpe_api_main;
- svm_queue_t *q;
+ vl_api_registration_t *reg;
mpls_main_t *mm = &mpls_main;
fib_table_t *fib_table;
mpls_fib_t *mpls_fib;
.lfeis = NULL,
};
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
/* *INDENT-OFF* */
fib_table = fib_table_get (fib_index, pfx.fp_proto);
api_rpaths = NULL;
fib_entry_encode (*lfeip, &api_rpaths);
- send_mpls_fib_details (am, q,
+ send_mpls_fib_details (am, reg,
fib_table, pfx.fp_label,
pfx.fp_eos, api_rpaths, mp->context);
vec_free (api_rpaths);
send_policer_details (u8 * name,
sse2_qos_pol_cfg_params_st * config,
policer_read_response_type_st * templ,
- svm_queue_t * q, u32 context)
+ vl_api_registration_t * reg, u32 context)
{
vl_api_policer_details_t *mp;
strncpy ((char *) mp->name, (char *) name, ARRAY_LEN (mp->name) - 1);
- vl_msg_api_send_shmem (q, (u8 *) & mp);
+ vl_api_send_msg (reg, (u8 *) mp);
}
static void
vl_api_policer_dump_t_handler (vl_api_policer_dump_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
vnet_policer_main_t *pm = &vnet_policer_main;
hash_pair_t *hp;
uword *p;
sse2_qos_pol_cfg_params_st *config;
policer_read_response_type_st *templ;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
if (mp->match_name_valid)
pool_index = p[0];
config = pool_elt_at_index (pm->configs, pool_index);
templ = pool_elt_at_index (pm->policer_templates, pool_index);
- send_policer_details (match_name, config, templ, q, mp->context);
+ send_policer_details (match_name, config, templ, reg, mp->context);
}
}
else
pool_index = hp->value[0];
config = pool_elt_at_index (pm->configs, pool_index);
templ = pool_elt_at_index (pm->policer_templates, pool_index);
- send_policer_details(name, config, templ, q, mp->context);
+ send_policer_details(name, config, templ, reg, mp->context);
}));
/* *INDENT-ON* */
}
static void
send_session_rule_details4 (mma_rule_16_t * rule, u8 is_local,
u8 transport_proto, u32 appns_index, u8 * tag,
- svm_queue_t * q, u32 context)
+ vl_api_registration_t * reg, u32 context)
{
vl_api_session_rules_details_t *rmp = 0;
session_mask_or_match_4_t *match =
rmp->tag[vec_len (tag)] = 0;
}
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
send_session_rule_details6 (mma_rule_40_t * rule, u8 is_local,
u8 transport_proto, u32 appns_index, u8 * tag,
- svm_queue_t * q, u32 context)
+ vl_api_registration_t * reg, u32 context)
{
vl_api_session_rules_details_t *rmp = 0;
session_mask_or_match_6_t *match =
rmp->tag[vec_len (tag)] = 0;
}
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
send_session_rules_table_details (session_rules_table_t * srt, u8 fib_proto,
u8 tp, u8 is_local, u32 appns_index,
- svm_queue_t * q, u32 context)
+ vl_api_registration_t * reg, u32 context)
{
mma_rule_16_t *rule16;
mma_rule_40_t *rule40;
ri = mma_rules_table_rule_index_16 (srt16, rule16);
tag = session_rules_table_rule_tag (srt, ri, 1);
send_session_rule_details4 (rule16, is_local, tp, appns_index, tag,
- q, context);
+ reg, context);
}));
/* *INDENT-ON* */
}
ri = mma_rules_table_rule_index_40 (srt40, rule40);
tag = session_rules_table_rule_tag (srt, ri, 1);
send_session_rule_details6 (rule40, is_local, tp, appns_index, tag,
- q, context);
+ reg, context);
}));
/* *INDENT-ON* */
}
static void
vl_api_session_rules_dump_t_handler (vl_api_one_map_server_dump_t * mp)
{
- svm_queue_t *q = NULL;
+ vl_api_registration_t *reg;
session_table_t *st;
u8 tp;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
/* *INDENT-OFF* */
{
send_session_rules_table_details (&st->session_rules[tp],
st->active_fib_proto, tp,
- st->is_local, st->appns_index, q,
+ st->is_local, st->appns_index, reg,
mp->context);
}
}));
vl_api_sw_interface_span_dump_t_handler (vl_api_sw_interface_span_dump_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
span_interface_t *si;
vl_api_sw_interface_span_details_t *rmp;
span_main_t *sm = &span_main;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (!q)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
span_feat_t sf = mp->is_l2 ? SPAN_FEAT_L2 : SPAN_FEAT_DEVICE;
rmp->state = (u8) (clib_bitmap_get (rxm->mirror_ports, i) +
clib_bitmap_get (txm->mirror_ports, i) * 2);
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}));
clib_bitmap_free (b);
}
}
static void send_sr_localsid_details
- (ip6_sr_localsid_t * t, svm_queue_t * q, u32 context)
+ (ip6_sr_localsid_t * t, vl_api_registration_t * reg, u32 context)
{
vl_api_sr_localsids_details_t *rmp;
rmp->xconnect_iface_or_vrf_table = htonl (t->sw_if_index);
rmp->context = context;
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void vl_api_sr_localsids_dump_t_handler
(vl_api_sr_localsids_dump_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
ip6_sr_main_t *sm = &sr_main;
ip6_sr_localsid_t *t;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
- {
- return;
- }
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
+ return;
/* *INDENT-OFF* */
pool_foreach (t, sm->localsids,
({
- send_sr_localsid_details(t, q, mp->context);
+ send_sr_localsid_details(t, reg, mp->context);
}));
/* *INDENT-ON* */
}
_(UDP_ENCAP_DUMP, udp_encap_dump)
static void
-send_udp_encap_details (const udp_encap_t * ue, svm_queue_t * q, u32 context)
+send_udp_encap_details (const udp_encap_t * ue, vl_api_registration_t * reg,
+ u32 context)
{
vl_api_udp_encap_details_t *mp;
fib_table_t *fib_table;
mp->table_id = htonl (fib_table->ft_table_id);
mp->id = htonl (ue->ue_id);
- vl_msg_api_send_shmem (q, (u8 *) & mp);
+ vl_api_send_msg (reg, (u8 *) mp);
}
static void
vl_api_udp_encap_dump_t_handler (vl_api_udp_encap_dump_t * mp,
vlib_main_t * vm)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
udp_encap_t *ue;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
/* *INDENT-OFF* */
pool_foreach(ue, udp_encap_pool,
({
- send_udp_encap_details(ue, q, mp->context);
+ send_udp_encap_details(ue, reg, mp->context);
}));
/* *INDENT-ON* */
}
*/
static void
send_sw_interface_event_deleted (vpe_api_main_t * am,
- svm_queue_t * q, u32 sw_if_index)
+ vl_api_registration_t * reg, u32 sw_if_index)
{
vl_api_sw_interface_event_t *mp;
mp->admin_up_down = 0;
mp->link_up_down = 0;
mp->deleted = 1;
- vl_msg_api_send_shmem (q, (u8 *) & mp);
+ vl_api_send_msg (reg, (u8 *) mp);
}
static void
int rv;
vl_api_tap_connect_reply_t *rmp;
vnet_main_t *vnm = vnet_get_main ();
- svm_queue_t *q;
+ vl_api_registration_t *reg;
u32 sw_if_index = (u32) ~ 0;
u8 *tag;
vnet_tap_connect_args_t _a, *ap = &_a;
vnet_set_sw_interface_tag (vnm, tag, sw_if_index);
}
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (!q)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
rmp = vl_msg_api_alloc (sizeof (*rmp));
rmp->retval = ntohl (rv);
rmp->sw_if_index = ntohl (sw_if_index);
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
{
int rv;
vl_api_tap_modify_reply_t *rmp;
- svm_queue_t *q;
+ vl_api_registration_t *reg;
u32 sw_if_index = (u32) ~ 0;
vlib_main_t *vm = vlib_get_main ();
vnet_tap_connect_args_t _a, *ap = &_a;
rv = vnet_tap_modify (vm, ap);
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (!q)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
rmp = vl_msg_api_alloc (sizeof (*rmp));
rmp->retval = ntohl (rv);
rmp->sw_if_index = ntohl (sw_if_index);
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
int rv;
vpe_api_main_t *vam = &vpe_api_main;
vl_api_tap_delete_reply_t *rmp;
- svm_queue_t *q;
+ vl_api_registration_t *reg;
u32 sw_if_index = ntohl (mp->sw_if_index);
rv = vnet_tap_delete (vm, sw_if_index);
vnet_clear_sw_interface_tag (vnm, sw_if_index);
}
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (!q)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
rmp = vl_msg_api_alloc (sizeof (*rmp));
rmp->context = mp->context;
rmp->retval = ntohl (rv);
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
if (!rv)
- send_sw_interface_event_deleted (vam, q, sw_if_index);
+ send_sw_interface_event_deleted (vam, reg, sw_if_index);
}
static void
send_sw_interface_tap_details (vpe_api_main_t * am,
- svm_queue_t * q,
+ vl_api_registration_t * reg,
tapcli_interface_details_t * tap_if,
u32 context)
{
(char *) tap_if->dev_name, ARRAY_LEN (mp->dev_name) - 1);
mp->context = context;
- vl_msg_api_send_shmem (q, (u8 *) & mp);
+ vl_api_send_msg (reg, (u8 *) mp);
}
static void
{
int rv = 0;
vpe_api_main_t *am = &vpe_api_main;
- svm_queue_t *q;
+ vl_api_registration_t *reg;
tapcli_interface_details_t *tapifs = NULL;
tapcli_interface_details_t *tap_if = NULL;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
rv = vnet_tap_dump_ifs (&tapifs);
vec_foreach (tap_if, tapifs)
{
- send_sw_interface_tap_details (am, q, tap_if, mp->context);
+ send_sw_interface_tap_details (am, reg, tap_if, mp->context);
}
vec_free (tapifs);
}
static void send_vxlan_gpe_tunnel_details
- (vxlan_gpe_tunnel_t * t, svm_queue_t * q, u32 context)
+ (vxlan_gpe_tunnel_t * t, vl_api_registration_t * reg, u32 context)
{
vl_api_vxlan_gpe_tunnel_details_t *rmp;
ip4_main_t *im4 = &ip4_main;
rmp->is_ipv6 = is_ipv6;
rmp->context = context;
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void vl_api_vxlan_gpe_tunnel_dump_t_handler
(vl_api_vxlan_gpe_tunnel_dump_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
vxlan_gpe_main_t *vgm = &vxlan_gpe_main;
vxlan_gpe_tunnel_t *t;
u32 sw_if_index;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
- {
- return;
- }
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
+ return;
sw_if_index = ntohl (mp->sw_if_index);
/* *INDENT-OFF* */
pool_foreach (t, vgm->tunnels,
({
- send_vxlan_gpe_tunnel_details(t, q, mp->context);
+ send_vxlan_gpe_tunnel_details(t, reg, mp->context);
}));
/* *INDENT-ON* */
}
return;
}
t = &vgm->tunnels[vgm->tunnel_index_by_sw_if_index[sw_if_index]];
- send_vxlan_gpe_tunnel_details (t, q, mp->context);
+ send_vxlan_gpe_tunnel_details (t, reg, mp->context);
}
}
}
static void send_vxlan_tunnel_details
- (vxlan_tunnel_t * t, svm_queue_t * q, u32 context)
+ (vxlan_tunnel_t * t, vl_api_registration_t * reg, u32 context)
{
vl_api_vxlan_tunnel_details_t *rmp;
ip4_main_t *im4 = &ip4_main;
rmp->is_ipv6 = is_ipv6;
rmp->context = context;
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void vl_api_vxlan_tunnel_dump_t_handler
(vl_api_vxlan_tunnel_dump_t * mp)
{
- svm_queue_t *q;
+ vl_api_registration_t *reg;
vxlan_main_t *vxm = &vxlan_main;
vxlan_tunnel_t *t;
u32 sw_if_index;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (q == 0)
- {
- return;
- }
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
+ return;
sw_if_index = ntohl (mp->sw_if_index);
/* *INDENT-OFF* */
pool_foreach (t, vxm->tunnels,
({
- send_vxlan_tunnel_details(t, q, mp->context);
+ send_vxlan_tunnel_details(t, reg, mp->context);
}));
/* *INDENT-ON* */
}
return;
}
t = &vxm->tunnels[vxm->tunnel_index_by_sw_if_index[sw_if_index]];
- send_vxlan_tunnel_details (t, q, mp->context);
+ send_vxlan_tunnel_details (t, reg, mp->context);
}
}
vl_api_cli_t_handler (vl_api_cli_t * mp)
{
vl_api_cli_reply_t *rp;
- svm_queue_t *q;
+ vl_api_registration_t *reg;
vlib_main_t *vm = vlib_get_main ();
api_main_t *am = &api_main;
unformat_input_t input;
u8 *shmem_vec = 0;
void *oldheap;
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (!q)
- return;
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
+ return;;
rp = vl_msg_api_alloc (sizeof (*rp));
rp->_vl_msg_id = ntohs (VL_API_CLI_REPLY);
rp->reply_in_shmem = (uword) shmem_vec;
- vl_msg_api_send_shmem (q, (u8 *) & rp);
+ vl_api_send_msg (reg, (u8 *) rp);
}
static void
send_oam_event (oam_target_t * t)
{
vpe_api_main_t *vam = &vpe_api_main;
- svm_queue_t *q;
+ vl_api_registration_t *vl_reg;
vpe_client_registration_t *reg;
vl_api_oam_event_t *mp;
/* *INDENT-OFF* */
pool_foreach(reg, vam->oam_events_registrations,
({
- q = vl_api_client_index_to_input_queue (reg->client_index);
- if (q)
+ vl_reg = vl_api_client_index_to_registration (reg->client_index);
+ if (vl_reg)
{
mp = vl_msg_api_alloc (sizeof (*mp));
mp->_vl_msg_id = ntohs (VL_API_OAM_EVENT);
clib_memcpy (mp->dst_address, &t->dst_address,
sizeof (mp->dst_address));
mp->state = t->state;
- vl_msg_api_send_shmem (q, (u8 *)&mp);
+ vl_api_send_msg (vl_reg, (u8 *)mp);
}
}));
/* *INDENT-ON* */
vl_api_want_interface_combined_stats_reply_t *rmp;
uword *p;
i32 retval = 0;
- svm_queue_t *q;
+ vl_api_registration_t *reg;
u32 swif;
swif = ~0; //Using same mechanism as _per_interface_
mp->enable_disable);
reply:
- q = vl_api_client_index_to_input_queue (mp->client_index);
-
- if (!q)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
{
sm->enable_poller =
clear_client_for_stat (IDX_PER_INTERFACE_COMBINED_COUNTERS, swif,
rmp->context = mp->context;
rmp->retval = retval;
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
vlib_combined_counter_main_t *cm;
uword *p;
i32 retval = 0;
- svm_queue_t *q;
+ vl_api_registration_t *reg;
int i;
u32 swif;
}
reply:
- q = vl_api_client_index_to_input_queue (mp->client_index);
-
- if (!q)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
{
for (i = 0; i < mp->num; i++)
{
rmp->context = mp->context;
rmp->retval = retval;
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
/* Per Interface Combined distribution to client */
vnet_interface_main_t *im = sm->interface_main;
api_main_t *am = sm->api_main;
vl_shmem_hdr_t *shmem_hdr = am->shmem_hdr;
- svm_queue_t *q = NULL;
+ vl_api_registration_t *vl_reg;
vlib_combined_counter_main_t *cm;
/*
* items_this_message will eventually be used to optimise the batching
timestamp = vlib_time_now (sm->vlib_main);
vec_reset_length (sm->regs_tmp);
+
+ /* *INDENT-OFF* */
pool_foreach (reg,
- sm->stats_registrations[IDX_PER_INTERFACE_COMBINED_COUNTERS],
- (
- {
- vec_add1 (sm->regs_tmp, reg);}));
+ sm->stats_registrations[IDX_PER_INTERFACE_COMBINED_COUNTERS],
+ ({
+ vec_add1 (sm->regs_tmp, reg);
+ }));
+ /* *INDENT-ON* */
for (i = 0; i < vec_len (sm->regs_tmp); i++)
{
continue;
}
vec_reset_length (sm->clients_tmp);
- pool_foreach (client, reg->clients, (
- {
- vec_add1 (sm->clients_tmp,
- client);}
- ));
+
+ /* *INDENT-OFF* */
+ pool_foreach (client, reg->clients, ({
+ vec_add1 (sm->clients_tmp, client);
+ }));
+ /* *INDENT-ON* */
//FIXME - should be doing non-variant part of mp here and managing
// any alloc per client in that vec_foreach
for (j = 0; j < vec_len (sm->clients_tmp); j++)
{
client = sm->clients_tmp[j];
- q = vl_api_client_index_to_input_queue (client->client_index);
+
+ vl_reg = vl_api_client_index_to_registration (client->client_index);
//Client may have disconnected abrubtly, clean up so we don't poll nothing.
- if (!q)
+ if (!vl_reg)
{
sm->enable_poller =
clear_client_for_stat (IDX_PER_INTERFACE_COMBINED_COUNTERS,
clib_mem_unaligned (&vp->tx_bytes, u64) =
clib_host_to_net_u64 (v.bytes);
- vl_msg_api_send_shmem (q, (u8 *) & mp);
+ vl_api_send_msg (vl_reg, (u8 *) mp);
}
}
vlib_simple_counter_main_t *cm;
uword *p;
i32 retval = 0;
- svm_queue_t *q;
+ vl_api_registration_t *reg;
int i;
u32 swif;
}
reply:
- q = vl_api_client_index_to_input_queue (mp->client_index);
+ reg = vl_api_client_index_to_registration (mp->client_index);
- //Client may have disconnected abrubtly, clean up so we don't poll nothing.
- if (!q)
+ /* Client may have disconnected abruptly, clean up */
+ if (!reg)
{
for (i = 0; i < mp->num; i++)
{
rmp->context = mp->context;
rmp->retval = retval;
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
/* Per Interface Simple distribution to client */
vnet_interface_main_t *im = sm->interface_main;
api_main_t *am = sm->api_main;
vl_shmem_hdr_t *shmem_hdr = am->shmem_hdr;
- svm_queue_t *q = NULL;
+ vl_api_registration_t *vl_reg;
vlib_simple_counter_main_t *cm;
/*
* items_this_message will eventually be used to optimise the batching
timestamp = vlib_time_now (sm->vlib_main);
vec_reset_length (sm->regs_tmp);
+
+ /* *INDENT-OFF* */
pool_foreach (reg,
- sm->stats_registrations[IDX_PER_INTERFACE_SIMPLE_COUNTERS], (
- {
- vec_add1
- (sm->regs_tmp,
- reg);}));
+ sm->stats_registrations[IDX_PER_INTERFACE_SIMPLE_COUNTERS], ({
+ vec_add1 (sm->regs_tmp, reg);
+ }));
+ /* *INDENT-ON* */
for (i = 0; i < vec_len (sm->regs_tmp); i++)
{
continue;
}
vec_reset_length (sm->clients_tmp);
- pool_foreach (client, reg->clients, (
- {
- vec_add1 (sm->clients_tmp,
- client);}
- ));
+
+ /* *INDENT-OFF* */
+ pool_foreach (client, reg->clients, ({
+ vec_add1 (sm->clients_tmp, client);
+ }));
+ /* *INDENT-ON* */
//FIXME - should be doing non-variant part of mp here and managing
// any alloc per client in that vec_foreach
for (j = 0; j < vec_len (sm->clients_tmp); j++)
{
client = sm->clients_tmp[j];
- q = vl_api_client_index_to_input_queue (client->client_index);
+ vl_reg = vl_api_client_index_to_registration (client->client_index);
- //Client may have disconnected abrubtly, clean up so we don't poll nothing.
- if (!q)
+ /* Client may have disconnected abrubtly, clean up */
+ if (!vl_reg)
{
sm->enable_poller =
clear_client_for_stat (IDX_PER_INTERFACE_SIMPLE_COUNTERS,
v = vlib_get_simple_counter (cm, reg->item);
clib_mem_unaligned (&vp->rx_mpls, u64) = clib_host_to_net_u64 (v);
- vl_msg_api_send_shmem (q, (u8 *) & mp);
+ vl_api_send_msg (vl_reg, (u8 *) mp);
}
}
uword *p;
i32 retval = 0;
u32 item;
- svm_queue_t *q;
+ vl_api_registration_t *reg;
item = ~0; //"ALL THE THINGS IN THE THINGS
rp.client_index = mp->client_index;
item, mp->enable_disable);
reply:
- q = vl_api_client_index_to_input_queue (mp->client_index);
-
- if (!q)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
return;
rmp = vl_msg_api_alloc (sizeof (*rmp));
rmp->context = mp->context;
rmp->retval = retval;
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
uword *p;
i32 retval = 0;
u32 swif;
- svm_queue_t *q;
+ vl_api_registration_t *reg;
swif = ~0; //Using same mechanism as _per_interface_
rp.client_index = mp->client_index;
mp->enable_disable);
reply:
- q = vl_api_client_index_to_input_queue (mp->client_index);
+ reg = vl_api_client_index_to_registration (mp->client_index);
- if (!q)
+ if (!reg)
{
sm->enable_poller =
clear_client_for_stat (IDX_PER_INTERFACE_SIMPLE_COUNTERS, swif,
rmp->context = mp->context;
rmp->retval = retval;
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
vl_api_want_ip4_fib_stats_reply_t *rmp;
uword *p;
i32 retval = 0;
- svm_queue_t *q;
+ vl_api_registration_t *reg;
u32 fib;
fib = ~0; //Using same mechanism as _per_interface_
mp->enable_disable);
reply:
- q = vl_api_client_index_to_input_queue (mp->client_index);
+ reg = vl_api_client_index_to_registration (mp->client_index);
- if (!q)
+ if (!reg)
{
sm->enable_poller = clear_client_for_stat (IDX_IP4_FIB_COUNTERS,
fib, mp->client_index);
rmp->context = mp->context;
rmp->retval = retval;
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
vl_api_want_ip4_mfib_stats_reply_t *rmp;
uword *p;
i32 retval = 0;
- svm_queue_t *q;
+ vl_api_registration_t *reg;
u32 mfib;
mfib = ~0; //Using same mechanism as _per_interface_
mp->enable_disable);
reply:
- q = vl_api_client_index_to_input_queue (mp->client_index);
-
- if (!q)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
{
sm->enable_poller = clear_client_for_stat (IDX_IP4_MFIB_COUNTERS,
mfib, mp->client_index);
rmp->context = mp->context;
rmp->retval = retval;
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
vl_api_want_ip4_fib_stats_reply_t *rmp;
uword *p;
i32 retval = 0;
- svm_queue_t *q;
+ vl_api_registration_t *reg;
u32 fib;
fib = ~0; //Using same mechanism as _per_interface_
mp->enable_disable);
reply:
- q = vl_api_client_index_to_input_queue (mp->client_index);
-
- if (!q)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
{
sm->enable_poller = clear_client_for_stat (IDX_IP6_FIB_COUNTERS,
fib, mp->client_index);
rmp->context = mp->context;
rmp->retval = retval;
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
static void
vl_api_want_ip4_mfib_stats_reply_t *rmp;
uword *p;
i32 retval = 0;
- svm_queue_t *q;
+ vl_api_registration_t *reg;
u32 mfib;
mfib = ~0; //Using same mechanism as _per_interface_
mp->enable_disable);
reply:
- q = vl_api_client_index_to_input_queue (mp->client_index);
-
- if (!q)
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
{
sm->enable_poller = clear_client_for_stat (IDX_IP6_MFIB_COUNTERS,
mfib, mp->client_index);
rmp->context = mp->context;
rmp->retval = retval;
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
/* FIXME - NBR stats broken - this will be fixed in subsequent patch */
int i, which;
u64 total_pkts[VLIB_N_RX_TX];
u64 total_bytes[VLIB_N_RX_TX];
+ vl_api_registration_t *reg;
- svm_queue_t *q = vl_api_client_index_to_input_queue (mp->client_index);
-
- if (!q)
- {
- return;
- }
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
+ return;
rmp = vl_msg_api_alloc (sizeof (*rmp));
rmp->_vl_msg_id = ntohs (VL_API_VNET_GET_SUMMARY_STATS_REPLY);
rmp->vector_rate =
clib_host_to_net_u64 (vlib_last_vector_length_per_node (sm->vlib_main));
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
+ vl_api_send_msg (reg, (u8 *) rmp);
}
int