X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fplugins%2Fvmxnet3%2Fvmxnet3_api.c;h=8395f158c9a770b5d747e30d75481eb520da98af;hb=0af49a8fc94c57c71c97909fbb8b7acc403f980a;hp=5e1bb9e2f184979f749e9ed2e55daf9753bc3fb0;hpb=ee8ba6877efb916b88255821f94ef33437724f75;p=vpp.git diff --git a/src/plugins/vmxnet3/vmxnet3_api.c b/src/plugins/vmxnet3/vmxnet3_api.c index 5e1bb9e2f18..8395f158c9a 100644 --- a/src/plugins/vmxnet3/vmxnet3_api.c +++ b/src/plugins/vmxnet3/vmxnet3_api.c @@ -40,15 +40,19 @@ /* instantiate all the print functions we know about */ #define vl_print(handle, ...) vlib_cli_output (handle, __VA_ARGS__) -#define vl_printfun -#include -#undef vl_printfun /* get the API version number */ #define vl_api_version(n,v) static u32 api_version=(v); #include #undef vl_api_version +/* Macro to finish up custom dump fns */ +#define FINISH \ + vec_add1 (s, 0); \ + vl_print (handle, (char *)s); \ + vec_free (s); \ + return handle; + #include #define foreach_vmxnet3_plugin_api_msg \ @@ -86,6 +90,30 @@ vl_api_vmxnet3_create_t_handler (vl_api_vmxnet3_create_t * mp) /* *INDENT-ON* */ } +static void * +vl_api_vmxnet3_create_t_print (vl_api_vmxnet3_create_t * mp, void *handle) +{ + u8 *s; + u32 pci_addr = ntohl (mp->pci_addr); + + s = format (0, "SCRIPT: vmxnet3_create "); + s = format (s, "%U ", format_vlib_pci_addr, &pci_addr); + if (mp->enable_elog) + s = format (s, "elog "); + if (mp->bind) + s = format (s, "bind "); + if (mp->rxq_size) + s = format (s, "rx-queue-size %u ", ntohs (mp->rxq_size)); + if (mp->txq_size) + s = format (s, "tx-queue-size %u ", ntohs (mp->txq_size)); + if (mp->rxq_num) + s = format (s, "num-rx-queues %u ", ntohs (mp->rxq_num)); + if (mp->txq_num) + s = format (s, "num-tx-queues %u ", ntohs (mp->txq_num)); + + FINISH; +} + static void vl_api_vmxnet3_delete_t_handler (vl_api_vmxnet3_delete_t * mp) { @@ -112,6 +140,17 @@ reply: REPLY_MACRO (VL_API_VMXNET3_DELETE_REPLY + vmxm->msg_id_base); } +static void * +vl_api_vmxnet3_delete_t_print (vl_api_vmxnet3_delete_t * mp, void *handle) +{ + u8 *s; + + s = format (0, "SCRIPT: vmxnet3_delete "); + s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index)); + + FINISH; +} + static void send_vmxnet3_details (vl_api_registration_t * reg, vmxnet3_device_t * vd, vnet_sw_interface_t * swif, u8 * interface_name, @@ -209,6 +248,16 @@ vl_api_vmxnet3_dump_t_handler (vl_api_vmxnet3_dump_t * mp) vec_free (if_name); } +static void * +vl_api_vmxnet3_dump_t_print (vl_api_vmxnet3_create_t * mp, void *handle) +{ + u8 *s; + + s = format (0, "SCRIPT: vmxnet3_dump "); + + FINISH; +} + #define vl_msg_name_crc_list #include #undef vl_msg_name_crc_list @@ -222,6 +271,16 @@ setup_message_id_table (vmxnet3_main_t * vmxm, api_main_t * am) #undef _ } +static void +plugin_custom_dump_configure (vmxnet3_main_t * vmxm) +{ +#define _(n,f) api_main.msg_print_handlers \ + [VL_API_##n + vmxm->msg_id_base] \ + = (void *) vl_api_##f##_t_print; + foreach_vmxnet3_plugin_api_msg; +#undef _ +} + /* set tup the API message handling tables */ clib_error_t * vmxnet3_plugin_api_hookup (vlib_main_t * vm) @@ -251,6 +310,8 @@ vmxnet3_plugin_api_hookup (vlib_main_t * vm) /* set up the (msg_name, crc, message-id) table */ setup_message_id_table (vmxm, am); + plugin_custom_dump_configure (vmxm); + vec_free (name); return 0; }