44 #define vl_print(handle, ...) vlib_cli_output (handle, __VA_ARGS__) 50 #define vl_api_version(n,v) static u32 api_version=(v); 54 #define REPLY_MSG_ID_BASE sm->msg_id_base 58 #define foreach_udp_ping_api_msg \ 59 _(UDP_PING_ADD_DEL, udp_ping_add_del) \ 60 _(UDP_PING_EXPORT, udp_ping_export) \ 68 vl_api_udp_ping_add_del_reply_t *rmp;
98 vl_api_udp_ping_export_reply_t *rmp;
112 vl_msg_api_set_handlers((VL_API_##N + sm->msg_id_base), \ 114 vl_api_##n##_t_handler, \ 116 vl_api_##n##_t_endian, \ 117 vl_api_##n##_t_print, \ 118 sizeof(vl_api_##n##_t), 1); 125 #define vl_msg_name_crc_list 127 #undef vl_msg_name_crc_list 132 #define _(id,n,crc) \ 133 vl_msg_api_add_msg_name_crc (am, #n "_" #crc, id + sm->msg_id_base); 134 foreach_vl_msg_name_crc_udp_ping;
145 name =
format (0,
"udp_ping_%08x%c", api_version, 0);
static void vl_api_udp_ping_export_t_handler(vl_api_udp_ping_export_t *mp)
static void vl_api_udp_ping_add_del_t_handler(vl_api_udp_ping_add_del_t *mp)
udp-ping main data-structure.
clib_error_t * udp_ping_flow_create(u8 del)
static void setup_message_id_table(udp_ping_main_t *sm, api_main_t *am)
#define foreach_udp_ping_api_msg
static clib_error_t * udp_ping_api_hookup(vlib_main_t *vm)
#define clib_memcpy(d, s, n)
Udp-probe export add/del request.
#define VLIB_INIT_FUNCTION(x)
u16 msg_id_base
API message ID base.
udp_ping_main_t udp_ping_main
static clib_error_t * udp_ping_api_init(vlib_main_t *vm)
API main structure, used by both vpp and binary API clients.
#define vec_free(V)
Free vector's memory (no header).
void ip46_udp_ping_set_flow(ip46_address_t src, ip46_address_t dst, u16 start_src_port, u16 end_src_port, u16 start_dst_port, u16 end_dst_port, u16 interval, u8 fault_det, u8 is_disable)
UDP-Probe Add/Delete request.
u16 vl_msg_api_get_msg_ids(const char *name, int n)