diff options
Diffstat (limited to 'src/plugins/ioam/lib-pot/pot_test.c')
-rw-r--r-- | src/plugins/ioam/lib-pot/pot_test.c | 144 |
1 files changed, 9 insertions, 135 deletions
diff --git a/src/plugins/ioam/lib-pot/pot_test.c b/src/plugins/ioam/lib-pot/pot_test.c index 1db4286b7dc..90cff23888b 100644 --- a/src/plugins/ioam/lib-pot/pot_test.c +++ b/src/plugins/ioam/lib-pot/pot_test.c @@ -31,15 +31,6 @@ #include <ioam/lib-pot/pot.api_enum.h> #include <ioam/lib-pot/pot.api_types.h> -#define vl_endianfun /* define message structures */ -#define vl_printfun -#define vl_api_version(n,v) static u32 api_version=(v); -#define vl_print(handle, ...) -#include <ioam/lib-pot/pot.api.h> -#undef vl_endianfun -#undef vl_printfun -#undef vl_api_version - typedef struct { /* API message ID base */ u16 msg_id_base; @@ -48,66 +39,6 @@ typedef struct { pot_test_main_t pot_test_main; -#define foreach_standard_reply_retval_handler \ -_(pot_profile_add_reply) \ -_(pot_profile_activate_reply) \ -_(pot_profile_del_reply) - -#define foreach_custom_reply_retval_handler \ -_(pot_profile_show_config_details, \ - errmsg(" ID:%d\n",mp->id); \ - errmsg(" Validator:%d\n",mp->validator); \ - errmsg(" secret_key:%Lx\n",clib_net_to_host_u64(mp->secret_key)); \ - errmsg(" secret_share:%Lx\n",clib_net_to_host_u64(mp->secret_share)); \ - errmsg(" prime:%Lx\n",clib_net_to_host_u64(mp->prime)); \ - errmsg(" bitmask:%Lx\n",clib_net_to_host_u64(mp->bit_mask)); \ - errmsg(" lpc:%Lx\n",clib_net_to_host_u64(mp->lpc)); \ - errmsg(" public poly:%Lx\n",clib_net_to_host_u64(mp->polynomial_public)); \ - ) - -#define _(n) \ - static void vl_api_##n##_t_handler \ - (vl_api_##n##_t * mp) \ - { \ - vat_main_t * vam = pot_test_main.vat_main; \ - i32 retval = ntohl(mp->retval); \ - if (vam->async_mode) { \ - vam->async_errors += (retval < 0); \ - } else { \ - vam->retval = retval; \ - vam->result_ready = 1; \ - } \ - } -foreach_standard_reply_retval_handler; -#undef _ - -#define _(n,body) \ - static void vl_api_##n##_t_handler \ - (vl_api_##n##_t * mp) \ - { \ - vat_main_t * vam = pot_test_main.vat_main; \ - i32 retval = ntohl(mp->retval); \ - if (vam->async_mode) { \ - vam->async_errors += (retval < 0); \ - } else { \ - vam->retval = retval; \ - vam->result_ready = 1; \ - } \ - do{body;}while(0); \ - } -foreach_custom_reply_retval_handler; -#undef _ - -/* - * Table of message reply handlers, must include boilerplate handlers - * we just generated - */ -#define foreach_vpe_api_reply_msg \ -_(POT_PROFILE_ADD_REPLY, pot_profile_add_reply) \ -_(POT_PROFILE_ACTIVATE_REPLY, pot_profile_activate_reply) \ -_(POT_PROFILE_DEL_REPLY, pot_profile_del_reply) \ -_(POT_PROFILE_SHOW_CONFIG_DETAILS, pot_profile_show_config_details) - static int api_pot_profile_add (vat_main_t *vam) { #define MAX_BITS 64 @@ -155,10 +86,9 @@ static int api_pot_profile_add (vat_main_t *vam) goto OUT; } - M2(POT_PROFILE_ADD, mp, vec_len(name)); + M2(POT_PROFILE_ADD, mp, sizeof(vl_api_string_t) + vec_len(name)); - mp->list_name_len = vec_len(name); - clib_memcpy(mp->list_name, name, mp->list_name_len); + vl_api_to_api_string(vec_len(name), (const char *)name, &mp->list_name); mp->secret_share = clib_host_to_net_u64(secret_share); mp->polynomial_public = clib_host_to_net_u64(poly2); mp->lpc = clib_host_to_net_u64(lpc); @@ -211,10 +141,8 @@ static int api_pot_profile_activate (vat_main_t *vam) goto OUT; } - M2(POT_PROFILE_ACTIVATE, mp, vec_len(name)); - - mp->list_name_len = vec_len(name); - clib_memcpy(mp->list_name, name, mp->list_name_len); + M2(POT_PROFILE_ACTIVATE, mp, sizeof(vl_api_string_t) + vec_len(name)); + vl_api_to_api_string(vec_len(name), (const char *)name, &mp->list_name); mp->id = id; S(mp); @@ -233,7 +161,6 @@ static int api_pot_profile_del (vat_main_t *vam) int ret; M(POT_PROFILE_DEL, mp); - mp->list_name_len = 0; S(mp); W (ret); return ret; @@ -260,64 +187,11 @@ static int api_pot_profile_show_config_dump (vat_main_t *vam) W (ret); return ret; } - -/* - * List of messages that the api test plugin sends, - * and that the data plane plugin processes - */ -#define foreach_vpe_api_msg \ -_(pot_profile_add, "name <name> id [0-1] " \ - "prime-number <0xu64> bits-in-random [0-64] " \ - "secret-share <0xu64> lpc <0xu64> polynomial-public <0xu64> " \ - "[validator-key <0xu64>] [validity <0xu64>]") \ -_(pot_profile_activate, "name <name> id [0-1] ") \ -_(pot_profile_del, "[id <nn>]") \ -_(pot_profile_show_config_dump, "id [0-1]") - -static void -pot_vat_api_hookup (vat_main_t *vam) +static int vl_api_pot_profile_show_config_details_t_handler (vat_main_t *vam) { - pot_test_main_t * sm = &pot_test_main; - /* Hook up handlers for replies from the data plane plug-in */ -#define _(N,n) \ - vl_msg_api_set_handlers((VL_API_##N + sm->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 _ + return -1; } - -clib_error_t * -pot_vat_plugin_register (vat_main_t *vam) -{ - pot_test_main_t * sm = &pot_test_main; - u8 * name; - - sm->vat_main = vam; - - name = format (0, "ioam_pot_%08x%c", api_version, 0); - sm->msg_id_base = vl_client_get_first_plugin_msg_id ((char *) name); - vec_free(name); - - if (sm->msg_id_base != (u16) ~0) - pot_vat_api_hookup (vam); - else - return clib_error_return (0, "ioam_pot plugin not loaded..."); - - return 0; -} +/* Override generated plugin register symbol */ +#define vat_plugin_register pot_vat_plugin_register +#include <ioam/lib-pot/pot.api_test.c> |