-/*
- * List of messages that the api test plugin sends,
- * and that the data plane plugin processes
- */
-#define foreach_vpe_api_msg \
-_(vmxnet3_create, "<pci-address> [rx-queue-size <size>] " \
- "[tx-queue-size <size>] [num-tx-queues <num>]" \
- "[num-rx-queues <num>] [bind]") \
-_(vmxnet3_delete, "sw_if_index <sw_if_index>") \
-_(vmxnet3_dump, "")
-
-static void
-vmxnet3_vat_api_hookup (vat_main_t * vam)
-{
- vmxnet3_test_main_t *vxm __attribute__ ((unused)) = &vmxnet3_test_main;
-#define _(N,n) \
- vl_msg_api_set_handlers((VL_API_##N + vxm->msg_id_base), \
- #n, \
- vl_api_##n##_t_handler, \
- vl_noop_handler, \
- vl_api_##n##_t_endian, \
- vl_api_##n##_t_print, \
- sizeof(vl_api_##n##_t), 1);
- foreach_vpe_api_reply_msg;
-#undef _
-
-#define _(n,h) \
- hash_set_mem (vam->function_by_name, #n, api_##n);
- foreach_vpe_api_msg;
-#undef _
-
-#define _(n,h) hash_set_mem (vam->help_by_name, #n, h);
- foreach_vpe_api_msg;
-#undef _
-}
-
-clib_error_t *
-vat_plugin_register (vat_main_t * vam)
-{
- vmxnet3_test_main_t *vxm = &vmxnet3_test_main;
- u8 *name;
-
- vxm->vat_main = vam;
-
- name = format (0, "vmxnet3_%08x%c", api_version, 0);
- vxm->msg_id_base = vl_client_get_first_plugin_msg_id ((char *) name);
-
- /* Get the control ping ID */
-#define _(id,n,crc) \
- const char *id ## _CRC __attribute__ ((unused)) = #n "_" #crc;
- foreach_vl_msg_name_crc_vpe;
-#undef _
- vxm->ping_id = vl_msg_api_get_msg_index ((u8 *) (VL_API_CONTROL_PING_CRC));
-
- if (vxm->msg_id_base != (u16) ~ 0)
- vmxnet3_vat_api_hookup (vam);
-
- vec_free (name);
-
- return 0;
-}