-/*
- * List of messages that the api test plugin sends,
- * and that the data plane plugin processes
- */
-#define foreach_vpe_api_msg \
-_(memif_create, "[id <id>] [socket-id <id>] [ring_size <size>] " \
- "[buffer_size <size>] [hw_addr <mac_address>] " \
- "[secret <string>] [mode ip] <master|slave>") \
-_(memif_delete, "<sw_if_index>") \
-_(memif_dump, "") \
-_(memif_socket_filename_dump, "") \
-_(memif_socket_filename_add_del, "[add|del] id <id> filename <file>")
-
-static void
-memif_vat_api_hookup (vat_main_t * vam)
-{
- memif_test_main_t *mm __attribute__ ((unused)) = &memif_test_main;
- /* Hook up handlers for replies from the data plane plug-in */
-#define _(N,n) \
- vl_msg_api_set_handlers((VL_API_##N + mm->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 _
-
- /* API messages we can send */
-#define _(n,h) \
- hash_set_mem (vam->function_by_name, #n, api_##n);
- foreach_vpe_api_msg;
-#undef _
-
- /* Help strings */
-#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)
-{
- memif_test_main_t *mm = &memif_test_main;
- u8 *name;
-
- mm->vat_main = vam;
-
- /* Ask the vpp engine for the first assigned message-id */
- name = format (0, "memif_%08x%c", api_version, 0);
- mm->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 _
- mm->ping_id = vl_msg_api_get_msg_index ((u8 *) (VL_API_CONTROL_PING_CRC));
-
- if (mm->msg_id_base != (u16) ~ 0)
- memif_vat_api_hookup (vam);
-
- vec_free (name);
-
- return 0;
-}