X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fplugins%2Favf%2Favf_test.c;h=bd2a043ac95914799da3cf107314a01a7e9149c0;hb=809d5c9ecf195f26250861e0f1a118b48526c0f0;hp=c980779eeacead7744788fd92ac4324eae229f6a;hpb=6c9b9644450b5ee5672b1e0f66257b0e09fb0734;p=vpp.git diff --git a/src/plugins/avf/avf_test.c b/src/plugins/avf/avf_test.c index c980779eeac..bd2a043ac95 100644 --- a/src/plugins/avf/avf_test.c +++ b/src/plugins/avf/avf_test.c @@ -31,28 +31,8 @@ #include /* declare message IDs */ -#include - -/* define message structures */ -#define vl_typedefs -#include -#undef vl_typedefs - -/* declare message handlers for each api */ -#define vl_endianfun -#include -#undef vl_endianfun - -/* instantiate all the print functions we know about */ -#define vl_print(handle, ...) -#define vl_printfun -#include -#undef vl_printfun - -/* get API version number */ -#define vl_api_version(n,v) static u32 api_version=(v); -#include -#undef vp_api_version +#include +#include typedef struct { @@ -63,30 +43,6 @@ typedef struct avf_test_main_t avf_test_main; -#define foreach_standard_reply_retval_handler \ -_(avf_create_reply) \ -_(avf_delete_reply) - -#define _(n) \ - static void vl_api_##n##_t_handler \ - (vl_api_##n##_t * mp) \ - { \ - vat_main_t * vam = avf_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 foreach_vpe_api_reply_msg \ -_(AVF_CREATE_REPLY, avf_create_reply) \ -_(AVF_DELETE_REPLY, avf_delete_reply) - /* avf create API */ static int api_avf_create (vat_main_t * vam) @@ -94,10 +50,11 @@ api_avf_create (vat_main_t * vam) unformat_input_t *i = vam->input; vl_api_avf_create_t *mp; avf_create_if_args_t args; + uint32_t tmp; int ret; u32 x[4]; - memset (&args, 0, sizeof (avf_create_if_args_t)); + clib_memset (&args, 0, sizeof (avf_create_if_args_t)); while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -110,10 +67,12 @@ api_avf_create (vat_main_t * vam) } else if (unformat (i, "elog")) args.enable_elog = 1; - else if (unformat (i, "rx-queue-size %u", &args.rxq_size)) - ; - else if (unformat (i, "tx-queue-size %u", &args.txq_size)) - ; + else if (unformat (i, "rx-queue-size %u", &tmp)) + args.rxq_size = tmp; + else if (unformat (i, "tx-queue-size %u", &tmp)) + args.txq_size = tmp; + else if (unformat (i, "num-rx-queues %u", &tmp)) + args.rxq_num = tmp; else { clib_warning ("unknown input '%U'", format_unformat_error, i); @@ -125,6 +84,7 @@ api_avf_create (vat_main_t * vam) mp->pci_addr = clib_host_to_net_u32 (args.addr.as_u32); mp->enable_elog = clib_host_to_net_u16 (args.enable_elog); + mp->rxq_num = clib_host_to_net_u16 (args.rxq_num); mp->rxq_size = clib_host_to_net_u16 (args.rxq_size); mp->txq_size = clib_host_to_net_u16 (args.txq_size); @@ -134,6 +94,24 @@ api_avf_create (vat_main_t * vam) return ret; } +/* avf-create reply handler */ +static void +vl_api_avf_create_reply_t_handler (vl_api_avf_create_reply_t * mp) +{ + vat_main_t *vam = avf_test_main.vat_main; + i32 retval = ntohl (mp->retval); + + if (retval == 0) + { + fformat (vam->ofp, "created avf with sw_if_index %d\n", + ntohl (mp->sw_if_index)); + } + + vam->retval = retval; + vam->result_ready = 1; + vam->regenerate_interface_table = 1; +} + /* avf delete API */ static int api_avf_delete (vat_main_t * vam) @@ -171,58 +149,7 @@ api_avf_delete (vat_main_t * vam) return ret; } -/* - * List of messages that the api test plugin sends, - * and that the data plane plugin processes - */ -#define foreach_vpe_api_msg \ -_(avf_create, " [rx-queue-size ] " \ - "[tx-queue-size ]") \ -_(avf_delete, "") - -static void -avf_vat_api_hookup (vat_main_t * vam) -{ - avf_test_main_t *avm __attribute__ ((unused)) = &avf_test_main; -#define _(N,n) \ - vl_msg_api_set_handlers((VL_API_##N + avm->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) -{ - avf_test_main_t *avm = &avf_test_main; - u8 *name; - - avm->vat_main = vam; - - name = format (0, "avf_%08x%c", api_version, 0); - avm->msg_id_base = vl_client_get_first_plugin_msg_id ((char *) name); - - if (avm->msg_id_base != (u16) ~ 0) - avf_vat_api_hookup (vam); - - vec_free (name); - - return 0; -} +#include /* * fd.io coding-style-patch-verification: ON