X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvat%2Fapi_format.c;h=3a40a55316c76959a98d1e4d7573ae8915c971b9;hb=cb33dc2d7a566d571c86b950b4aa92dd7ae01c3c;hp=653cf79f3db464fde0fcc07a4104ea93fb2d4ec0;hpb=fe6bdfd84573cd8813a211f9094ee734f088ce16;p=vpp.git diff --git a/src/vat/api_format.c b/src/vat/api_format.c index 653cf79f3db..3a40a55316c 100644 --- a/src/vat/api_format.c +++ b/src/vat/api_format.c @@ -48,6 +48,7 @@ #include #include #include +#include #include "vat/json_format.h" @@ -70,6 +71,7 @@ #include #undef vl_printfun +#define __plugin_msg_base 0 #include f64 @@ -504,6 +506,53 @@ unformat_flow_classify_table_type (unformat_input_t * input, va_list * va) return 1; } +static const char *mfib_flag_names[] = MFIB_ENTRY_NAMES_SHORT; +static const char *mfib_flag_long_names[] = MFIB_ENTRY_NAMES_LONG; +static const char *mfib_itf_flag_long_names[] = MFIB_ITF_NAMES_LONG; +static const char *mfib_itf_flag_names[] = MFIB_ITF_NAMES_SHORT; + +uword +unformat_mfib_itf_flags (unformat_input_t * input, va_list * args) +{ + mfib_itf_flags_t old, *iflags = va_arg (*args, mfib_itf_flags_t *); + mfib_itf_attribute_t attr; + + old = *iflags; + FOR_EACH_MFIB_ITF_ATTRIBUTE (attr) + { + if (unformat (input, mfib_itf_flag_long_names[attr])) + *iflags |= (1 << attr); + } + FOR_EACH_MFIB_ITF_ATTRIBUTE (attr) + { + if (unformat (input, mfib_itf_flag_names[attr])) + *iflags |= (1 << attr); + } + + return (old == *iflags ? 0 : 1); +} + +uword +unformat_mfib_entry_flags (unformat_input_t * input, va_list * args) +{ + mfib_entry_flags_t old, *eflags = va_arg (*args, mfib_entry_flags_t *); + mfib_entry_attribute_t attr; + + old = *eflags; + FOR_EACH_MFIB_ATTRIBUTE (attr) + { + if (unformat (input, mfib_flag_long_names[attr])) + *eflags |= (1 << attr); + } + FOR_EACH_MFIB_ATTRIBUTE (attr) + { + if (unformat (input, mfib_flag_names[attr])) + *eflags |= (1 << attr); + } + + return (old == *eflags ? 0 : 1); +} + #if (VPP_API_TEST_BUILTIN==0) u8 * format_ip4_address (u8 * s, va_list * args) @@ -2042,6 +2091,42 @@ static void vl_api_vnet_ip4_fib_counters_t_handler_json } } +static void vl_api_vnet_ip4_nbr_counters_t_handler + (vl_api_vnet_ip4_nbr_counters_t * mp) +{ + /* not supported */ +} + +static void vl_api_vnet_ip4_nbr_counters_t_handler_json + (vl_api_vnet_ip4_nbr_counters_t * mp) +{ + vat_main_t *vam = &vat_main; + vl_api_ip4_nbr_counter_t *v; + ip4_nbr_counter_t *counter; + u32 sw_if_index; + u32 count; + int i; + + sw_if_index = ntohl (mp->sw_if_index); + count = ntohl (mp->count); + vec_validate (vam->ip4_nbr_counters, sw_if_index); + + if (mp->begin) + vec_free (vam->ip4_nbr_counters[sw_if_index]); + + v = (vl_api_ip4_nbr_counter_t *) & mp->c; + for (i = 0; i < count; i++) + { + vec_validate (vam->ip4_nbr_counters[sw_if_index], i); + counter = &vam->ip4_nbr_counters[sw_if_index][i]; + counter->address.s_addr = v->address; + counter->packets = clib_net_to_host_u64 (v->packets); + counter->bytes = clib_net_to_host_u64 (v->bytes); + counter->linkt = v->link_type; + v++; + } +} + static void vl_api_vnet_ip6_fib_counters_t_handler (vl_api_vnet_ip6_fib_counters_t * mp) { @@ -2087,6 +2172,43 @@ static void vl_api_vnet_ip6_fib_counters_t_handler_json } } +static void vl_api_vnet_ip6_nbr_counters_t_handler + (vl_api_vnet_ip6_nbr_counters_t * mp) +{ + /* not supported */ +} + +static void vl_api_vnet_ip6_nbr_counters_t_handler_json + (vl_api_vnet_ip6_nbr_counters_t * mp) +{ + vat_main_t *vam = &vat_main; + vl_api_ip6_nbr_counter_t *v; + ip6_nbr_counter_t *counter; + struct in6_addr ip6; + u32 sw_if_index; + u32 count; + int i; + + sw_if_index = ntohl (mp->sw_if_index); + count = ntohl (mp->count); + vec_validate (vam->ip6_nbr_counters, sw_if_index); + + if (mp->begin) + vec_free (vam->ip6_nbr_counters[sw_if_index]); + + v = (vl_api_ip6_nbr_counter_t *) & mp->c; + for (i = 0; i < count; i++) + { + vec_validate (vam->ip6_nbr_counters[sw_if_index], i); + counter = &vam->ip6_nbr_counters[sw_if_index][i]; + clib_memcpy (&ip6, &v->address, sizeof (ip6)); + counter->address = ip6; + counter->packets = clib_net_to_host_u64 (v->packets); + counter->bytes = clib_net_to_host_u64 (v->bytes); + v++; + } +} + static void vl_api_get_first_msg_id_reply_t_handler (vl_api_get_first_msg_id_reply_t * mp) { @@ -2560,6 +2682,161 @@ static void vec_free (s); } +static void +api_lisp_gpe_fwd_entry_net_to_host (vl_api_lisp_gpe_fwd_entry_t * e) +{ + e->dp_table = clib_net_to_host_u32 (e->dp_table); + e->fwd_entry_index = clib_net_to_host_u32 (e->fwd_entry_index); +} + +static void + lisp_gpe_fwd_entries_get_reply_t_net_to_host + (vl_api_lisp_gpe_fwd_entries_get_reply_t * mp) +{ + u32 i; + + mp->count = clib_net_to_host_u32 (mp->count); + for (i = 0; i < mp->count; i++) + { + api_lisp_gpe_fwd_entry_net_to_host (&mp->entries[i]); + } +} + +static void + vl_api_lisp_gpe_fwd_entry_path_details_t_handler + (vl_api_lisp_gpe_fwd_entry_path_details_t * mp) +{ + vat_main_t *vam = &vat_main; + u8 *(*format_ip_address_fcn) (u8 *, va_list *) = 0; + + if (mp->lcl_loc.is_ip4) + format_ip_address_fcn = format_ip4_address; + else + format_ip_address_fcn = format_ip6_address; + + print (vam->ofp, "w:%d %30U %30U", mp->rmt_loc.weight, + format_ip_address_fcn, &mp->lcl_loc, + format_ip_address_fcn, &mp->rmt_loc); +} + +static void +lisp_fill_locator_node (vat_json_node_t * n, vl_api_lisp_gpe_locator_t * loc) +{ + struct in6_addr ip6; + struct in_addr ip4; + + if (loc->is_ip4) + { + clib_memcpy (&ip4, loc->addr, sizeof (ip4)); + vat_json_object_add_ip4 (n, "address", ip4); + } + else + { + clib_memcpy (&ip6, loc->addr, sizeof (ip6)); + vat_json_object_add_ip6 (n, "address", ip6); + } + vat_json_object_add_uint (n, "weight", loc->weight); +} + +static void + vl_api_lisp_gpe_fwd_entry_path_details_t_handler_json + (vl_api_lisp_gpe_fwd_entry_path_details_t * mp) +{ + vat_main_t *vam = &vat_main; + vat_json_node_t *node = NULL; + vat_json_node_t *loc_node; + + if (VAT_JSON_ARRAY != vam->json_tree.type) + { + ASSERT (VAT_JSON_NONE == vam->json_tree.type); + vat_json_init_array (&vam->json_tree); + } + node = vat_json_array_add (&vam->json_tree); + vat_json_init_object (node); + + loc_node = vat_json_object_add (node, "local_locator"); + vat_json_init_object (loc_node); + lisp_fill_locator_node (loc_node, &mp->lcl_loc); + + loc_node = vat_json_object_add (node, "remote_locator"); + vat_json_init_object (loc_node); + lisp_fill_locator_node (loc_node, &mp->rmt_loc); +} + +static void + vl_api_lisp_gpe_fwd_entries_get_reply_t_handler + (vl_api_lisp_gpe_fwd_entries_get_reply_t * mp) +{ + vat_main_t *vam = &vat_main; + u32 i; + int retval = clib_net_to_host_u32 (mp->retval); + vl_api_lisp_gpe_fwd_entry_t *e; + + if (retval) + goto end; + + lisp_gpe_fwd_entries_get_reply_t_net_to_host (mp); + + for (i = 0; i < mp->count; i++) + { + e = &mp->entries[i]; + print (vam->ofp, "%10d %10d %U %40U", e->fwd_entry_index, e->dp_table, + format_lisp_flat_eid, e->eid_type, e->leid, e->leid_prefix_len, + format_lisp_flat_eid, e->eid_type, e->reid, e->reid_prefix_len); + } + +end: + vam->retval = retval; + vam->result_ready = 1; +} + +static void + vl_api_lisp_gpe_fwd_entries_get_reply_t_handler_json + (vl_api_lisp_gpe_fwd_entries_get_reply_t * mp) +{ + u8 *s = 0; + vat_main_t *vam = &vat_main; + vat_json_node_t *e = 0, root; + u32 i; + int retval = clib_net_to_host_u32 (mp->retval); + vl_api_lisp_gpe_fwd_entry_t *fwd; + + if (retval) + goto end; + + lisp_gpe_fwd_entries_get_reply_t_net_to_host (mp); + vat_json_init_array (&root); + + for (i = 0; i < mp->count; i++) + { + e = vat_json_array_add (&root); + fwd = &mp->entries[i]; + + vat_json_init_object (e); + vat_json_object_add_int (e, "fwd_entry_index", fwd->fwd_entry_index); + vat_json_object_add_int (e, "dp_table", fwd->dp_table); + + s = format (0, "%U", format_lisp_flat_eid, fwd->eid_type, fwd->leid, + fwd->leid_prefix_len); + vec_add1 (s, 0); + vat_json_object_add_string_copy (e, "leid", s); + vec_free (s); + + s = format (0, "%U", format_lisp_flat_eid, fwd->eid_type, fwd->reid, + fwd->reid_prefix_len); + vec_add1 (s, 0); + vat_json_object_add_string_copy (e, "reid", s); + vec_free (s); + } + + vat_json_print (vam->ofp, &root); + vat_json_free (&root); + +end: + vam->retval = retval; + vam->result_ready = 1; +} + static void vl_api_lisp_adjacencies_get_reply_t_handler (vl_api_lisp_adjacencies_get_reply_t * mp) @@ -3490,6 +3767,10 @@ static void vl_api_flow_classify_details_t_handler_json #define vl_api_vnet_ip4_fib_counters_t_print vl_noop_handler #define vl_api_vnet_ip6_fib_counters_t_endian vl_noop_handler #define vl_api_vnet_ip6_fib_counters_t_print vl_noop_handler +#define vl_api_vnet_ip4_nbr_counters_t_endian vl_noop_handler +#define vl_api_vnet_ip4_nbr_counters_t_print vl_noop_handler +#define vl_api_vnet_ip6_nbr_counters_t_endian vl_noop_handler +#define vl_api_vnet_ip6_nbr_counters_t_print vl_noop_handler #define vl_api_lisp_adjacencies_get_reply_t_endian vl_noop_handler #define vl_api_lisp_adjacencies_get_reply_t_print vl_noop_handler @@ -3514,6 +3795,7 @@ _(bridge_domain_add_del_reply) \ _(sw_interface_set_l2_xconnect_reply) \ _(l2fib_add_del_reply) \ _(ip_add_del_route_reply) \ +_(ip_mroute_add_del_reply) \ _(mpls_route_add_del_reply) \ _(mpls_ip_bind_unbind_reply) \ _(proxy_arp_add_del_reply) \ @@ -3561,6 +3843,14 @@ _(ikev2_profile_set_auth_reply) \ _(ikev2_profile_set_id_reply) \ _(ikev2_profile_set_ts_reply) \ _(ikev2_set_local_key_reply) \ +_(ikev2_set_responder_reply) \ +_(ikev2_set_ike_transforms_reply) \ +_(ikev2_set_esp_transforms_reply) \ +_(ikev2_set_sa_lifetime_reply) \ +_(ikev2_initiate_sa_init_reply) \ +_(ikev2_initiate_del_ike_sa_reply) \ +_(ikev2_initiate_del_child_sa_reply) \ +_(ikev2_initiate_rekey_child_sa_reply) \ _(delete_loopback_reply) \ _(bd_ip_mac_add_del_reply) \ _(map_del_domain_reply) \ @@ -3714,6 +4004,7 @@ _(TAP_MODIFY_REPLY, tap_modify_reply) \ _(TAP_DELETE_REPLY, tap_delete_reply) \ _(SW_INTERFACE_TAP_DETAILS, sw_interface_tap_details) \ _(IP_ADD_DEL_ROUTE_REPLY, ip_add_del_route_reply) \ +_(IP_MROUTE_ADD_DEL_REPLY, ip_mroute_add_del_reply) \ _(MPLS_ROUTE_ADD_DEL_REPLY, mpls_route_add_del_reply) \ _(MPLS_IP_BIND_UNBIND_REPLY, mpls_ip_bind_unbind_reply) \ _(PROXY_ARP_ADD_DEL_REPLY, proxy_arp_add_del_reply) \ @@ -3793,12 +4084,22 @@ _(IKEV2_PROFILE_SET_AUTH_REPLY, ikev2_profile_set_auth_reply) \ _(IKEV2_PROFILE_SET_ID_REPLY, ikev2_profile_set_id_reply) \ _(IKEV2_PROFILE_SET_TS_REPLY, ikev2_profile_set_ts_reply) \ _(IKEV2_SET_LOCAL_KEY_REPLY, ikev2_set_local_key_reply) \ +_(IKEV2_SET_RESPONDER_REPLY, ikev2_set_responder_reply) \ +_(IKEV2_SET_IKE_TRANSFORMS_REPLY, ikev2_set_ike_transforms_reply) \ +_(IKEV2_SET_ESP_TRANSFORMS_REPLY, ikev2_set_esp_transforms_reply) \ +_(IKEV2_SET_SA_LIFETIME_REPLY, ikev2_set_sa_lifetime_reply) \ +_(IKEV2_INITIATE_SA_INIT_REPLY, ikev2_initiate_sa_init_reply) \ +_(IKEV2_INITIATE_DEL_IKE_SA_REPLY, ikev2_initiate_del_ike_sa_reply) \ +_(IKEV2_INITIATE_DEL_CHILD_SA_REPLY, ikev2_initiate_del_child_sa_reply) \ +_(IKEV2_INITIATE_REKEY_CHILD_SA_REPLY, ikev2_initiate_rekey_child_sa_reply) \ _(DELETE_LOOPBACK_REPLY, delete_loopback_reply) \ _(BD_IP_MAC_ADD_DEL_REPLY, bd_ip_mac_add_del_reply) \ _(DHCP_COMPL_EVENT, dhcp_compl_event) \ _(VNET_INTERFACE_COUNTERS, vnet_interface_counters) \ _(VNET_IP4_FIB_COUNTERS, vnet_ip4_fib_counters) \ _(VNET_IP6_FIB_COUNTERS, vnet_ip6_fib_counters) \ +_(VNET_IP4_NBR_COUNTERS, vnet_ip4_nbr_counters) \ +_(VNET_IP6_NBR_COUNTERS, vnet_ip6_nbr_counters) \ _(MAP_ADD_DOMAIN_REPLY, map_add_domain_reply) \ _(MAP_DEL_DOMAIN_REPLY, map_del_domain_reply) \ _(MAP_ADD_DEL_RULE_REPLY, map_add_del_rule_reply) \ @@ -3839,6 +4140,9 @@ _(LISP_EID_TABLE_VNI_DETAILS, lisp_eid_table_vni_details) \ _(LISP_MAP_RESOLVER_DETAILS, lisp_map_resolver_details) \ _(LISP_MAP_SERVER_DETAILS, lisp_map_server_details) \ _(LISP_ADJACENCIES_GET_REPLY, lisp_adjacencies_get_reply) \ +_(LISP_GPE_FWD_ENTRIES_GET_REPLY, lisp_gpe_fwd_entries_get_reply) \ +_(LISP_GPE_FWD_ENTRY_PATH_DETAILS, \ + lisp_gpe_fwd_entry_path_details) \ _(SHOW_LISP_STATUS_REPLY, show_lisp_status_reply) \ _(LISP_ADD_DEL_MAP_REQUEST_ITR_RLOCS_REPLY, \ lisp_add_del_map_request_itr_rlocs_reply) \ @@ -4131,6 +4435,8 @@ dump_stats_table (vat_main_t * vam) u64 packets; ip4_fib_counter_t *c4; ip6_fib_counter_t *c6; + ip4_nbr_counter_t *n4; + ip6_nbr_counter_t *n6; int i, j; if (!vam->json_output) @@ -4226,6 +4532,49 @@ dump_stats_table (vat_main_t * vam) } } + /* ip4 nbr counters */ + msg_array = vat_json_object_add (&node, "ip4_nbr_counters"); + vat_json_init_array (msg_array); + for (i = 0; i < vec_len (vam->ip4_nbr_counters); i++) + { + msg = vat_json_array_add (msg_array); + vat_json_init_object (msg); + vat_json_object_add_uint (msg, "sw_if_index", i); + counter_array = vat_json_object_add (msg, "c"); + vat_json_init_array (counter_array); + for (j = 0; j < vec_len (vam->ip4_nbr_counters[i]); j++) + { + counter = vat_json_array_add (counter_array); + vat_json_init_object (counter); + n4 = &vam->ip4_nbr_counters[i][j]; + vat_json_object_add_ip4 (counter, "address", n4->address); + vat_json_object_add_uint (counter, "link-type", n4->linkt); + vat_json_object_add_uint (counter, "packets", n4->packets); + vat_json_object_add_uint (counter, "bytes", n4->bytes); + } + } + + /* ip6 nbr counters */ + msg_array = vat_json_object_add (&node, "ip6_nbr_counters"); + vat_json_init_array (msg_array); + for (i = 0; i < vec_len (vam->ip6_nbr_counters); i++) + { + msg = vat_json_array_add (msg_array); + vat_json_init_object (msg); + vat_json_object_add_uint (msg, "sw_if_index", i); + counter_array = vat_json_object_add (msg, "c"); + vat_json_init_array (counter_array); + for (j = 0; j < vec_len (vam->ip6_nbr_counters[i]); j++) + { + counter = vat_json_array_add (counter_array); + vat_json_init_object (counter); + n6 = &vam->ip6_nbr_counters[i][j]; + vat_json_object_add_ip6 (counter, "address", n6->address); + vat_json_object_add_uint (counter, "packets", n6->packets); + vat_json_object_add_uint (counter, "bytes", n6->bytes); + } + } + vat_json_print (vam->ofp, &node); vat_json_free (&node); @@ -4257,7 +4606,7 @@ exec (vat_main_t * vam) } - M (CLI_REQUEST, cli_request); + M (CLI_REQUEST, mp); /* * Copy cmd into shared memory. @@ -4275,7 +4624,7 @@ exec (vat_main_t * vam) pthread_mutex_unlock (&am->vlib_rp->mutex); mp->cmd_in_shmem = (u64) cmd; - S; + S (mp); timeout = vat_time_now (vam) + 10.0; while (vat_time_now (vam) < timeout) @@ -4307,8 +4656,8 @@ static int exec_inband (vat_main_t * vam) { vl_api_cli_inband_t *mp; - f64 timeout; unformat_input_t *i = vam->input; + int ret; if (vec_len (i->buffer) == 0) return -1; @@ -4330,12 +4679,13 @@ exec_inband (vat_main_t * vam) * in \n\0. */ u32 len = vec_len (vam->input->buffer); - M2 (CLI_INBAND, cli_inband, len); + M2 (CLI_INBAND, mp, len); clib_memcpy (mp->cmd, vam->input->buffer, len); mp->length = htonl (len); - S; - W2 (print (vam->ofp, "%s", vam->cmd_reply)); + S (mp); + W2 (ret, print (vam->ofp, "%s", vam->cmd_reply)); + return ret; } static int @@ -4343,9 +4693,9 @@ api_create_loopback (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_create_loopback_t *mp; - f64 timeout; u8 mac_address[6]; u8 mac_set = 0; + int ret; memset (mac_address, 0, sizeof (mac_address)); @@ -4358,12 +4708,13 @@ api_create_loopback (vat_main_t * vam) } /* Construct the API message */ - M (CREATE_LOOPBACK, create_loopback); + M (CREATE_LOOPBACK, mp); if (mac_set) clib_memcpy (mp->mac_address, mac_address, sizeof (mac_address)); - S; - W; + S (mp); + W (ret); + return ret; } static int @@ -4371,8 +4722,8 @@ api_delete_loopback (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_delete_loopback_t *mp; - f64 timeout; u32 sw_if_index = ~0; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -4389,11 +4740,12 @@ api_delete_loopback (vat_main_t * vam) } /* Construct the API message */ - M (DELETE_LOOPBACK, delete_loopback); + M (DELETE_LOOPBACK, mp); mp->sw_if_index = ntohl (sw_if_index); - S; - W; + S (mp); + W (ret); + return ret; } static int @@ -4401,8 +4753,8 @@ api_want_stats (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_want_stats_t *mp; - f64 timeout; int enable = -1; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -4420,11 +4772,12 @@ api_want_stats (vat_main_t * vam) return -99; } - M (WANT_STATS, want_stats); + M (WANT_STATS, mp); mp->enable_disable = enable; - S; - W; + S (mp); + W (ret); + return ret; } static int @@ -4432,8 +4785,8 @@ api_want_interface_events (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_want_interface_events_t *mp; - f64 timeout; int enable = -1; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -4451,13 +4804,14 @@ api_want_interface_events (vat_main_t * vam) return -99; } - M (WANT_INTERFACE_EVENTS, want_interface_events); + M (WANT_INTERFACE_EVENTS, mp); mp->enable_disable = enable; vam->interface_event_display = enable; - S; - W; + S (mp); + W (ret); + return ret; } @@ -4466,10 +4820,11 @@ int api_sw_interface_dump (vat_main_t * vam) { vl_api_sw_interface_dump_t *mp; - f64 timeout; + vl_api_control_ping_t *mp_ping; hash_pair_t *p; name_sort_t *nses = 0, *ns; sw_interface_subif_t *sub = NULL; + int ret; /* Toss the old name table */ /* *INDENT-OFF* */ @@ -4497,75 +4852,74 @@ api_sw_interface_dump (vat_main_t * vam) vam->sw_if_index_by_interface_name = hash_create_string (0, sizeof (uword)); /* Get list of ethernets */ - M (SW_INTERFACE_DUMP, sw_interface_dump); + M (SW_INTERFACE_DUMP, mp); mp->name_filter_valid = 1; strncpy ((char *) mp->name_filter, "Ether", sizeof (mp->name_filter) - 1); - S; + S (mp); /* and local / loopback interfaces */ - M (SW_INTERFACE_DUMP, sw_interface_dump); + M (SW_INTERFACE_DUMP, mp); mp->name_filter_valid = 1; strncpy ((char *) mp->name_filter, "lo", sizeof (mp->name_filter) - 1); - S; + S (mp); /* and packet-generator interfaces */ - M (SW_INTERFACE_DUMP, sw_interface_dump); + M (SW_INTERFACE_DUMP, mp); mp->name_filter_valid = 1; strncpy ((char *) mp->name_filter, "pg", sizeof (mp->name_filter) - 1); - S; + S (mp); /* and vxlan-gpe tunnel interfaces */ - M (SW_INTERFACE_DUMP, sw_interface_dump); + M (SW_INTERFACE_DUMP, mp); mp->name_filter_valid = 1; strncpy ((char *) mp->name_filter, "vxlan_gpe", sizeof (mp->name_filter) - 1); - S; + S (mp); /* and vxlan tunnel interfaces */ - M (SW_INTERFACE_DUMP, sw_interface_dump); + M (SW_INTERFACE_DUMP, mp); mp->name_filter_valid = 1; strncpy ((char *) mp->name_filter, "vxlan", sizeof (mp->name_filter) - 1); - S; + S (mp); /* and host (af_packet) interfaces */ - M (SW_INTERFACE_DUMP, sw_interface_dump); + M (SW_INTERFACE_DUMP, mp); mp->name_filter_valid = 1; strncpy ((char *) mp->name_filter, "host", sizeof (mp->name_filter) - 1); - S; + S (mp); /* and l2tpv3 tunnel interfaces */ - M (SW_INTERFACE_DUMP, sw_interface_dump); + M (SW_INTERFACE_DUMP, mp); mp->name_filter_valid = 1; strncpy ((char *) mp->name_filter, "l2tpv3_tunnel", sizeof (mp->name_filter) - 1); - S; + S (mp); /* and GRE tunnel interfaces */ - M (SW_INTERFACE_DUMP, sw_interface_dump); + M (SW_INTERFACE_DUMP, mp); mp->name_filter_valid = 1; strncpy ((char *) mp->name_filter, "gre", sizeof (mp->name_filter) - 1); - S; + S (mp); /* and LISP-GPE interfaces */ - M (SW_INTERFACE_DUMP, sw_interface_dump); + M (SW_INTERFACE_DUMP, mp); mp->name_filter_valid = 1; strncpy ((char *) mp->name_filter, "lisp_gpe", sizeof (mp->name_filter) - 1); - S; + S (mp); /* and IPSEC tunnel interfaces */ - M (SW_INTERFACE_DUMP, sw_interface_dump); + M (SW_INTERFACE_DUMP, mp); mp->name_filter_valid = 1; strncpy ((char *) mp->name_filter, "ipsec", sizeof (mp->name_filter) - 1); - S; + S (mp); /* Use a control ping for synchronization */ - { - vl_api_control_ping_t *mp; - M (CONTROL_PING, control_ping); - S; - } - W; + M (CONTROL_PING, mp_ping); + S (mp_ping); + + W (ret); + return ret; } static int @@ -4573,10 +4927,10 @@ api_sw_interface_set_flags (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_sw_interface_set_flags_t *mp; - f64 timeout; u32 sw_if_index; u8 sw_if_index_set = 0; u8 admin_up = 0, link_up = 0; + int ret; /* Parse args required to build the message */ while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) @@ -4605,16 +4959,17 @@ api_sw_interface_set_flags (vat_main_t * vam) } /* Construct the API message */ - M (SW_INTERFACE_SET_FLAGS, sw_interface_set_flags); + M (SW_INTERFACE_SET_FLAGS, mp); mp->sw_if_index = ntohl (sw_if_index); mp->admin_up_down = admin_up; mp->link_up_down = link_up; /* send it... */ - S; + S (mp); /* Wait for a reply, return the good/bad news... */ - W; + W (ret); + return ret; } static int @@ -4622,9 +4977,9 @@ api_sw_interface_clear_stats (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_sw_interface_clear_stats_t *mp; - f64 timeout; u32 sw_if_index; u8 sw_if_index_set = 0; + int ret; /* Parse args required to build the message */ while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) @@ -4638,7 +4993,7 @@ api_sw_interface_clear_stats (vat_main_t * vam) } /* Construct the API message */ - M (SW_INTERFACE_CLEAR_STATS, sw_interface_clear_stats); + M (SW_INTERFACE_CLEAR_STATS, mp); if (sw_if_index_set == 1) mp->sw_if_index = ntohl (sw_if_index); @@ -4646,10 +5001,11 @@ api_sw_interface_clear_stats (vat_main_t * vam) mp->sw_if_index = ~0; /* send it... */ - S; + S (mp); /* Wait for a reply, return the good/bad news... */ - W; + W (ret); + return ret; } #if DPDK >0 @@ -4658,7 +5014,6 @@ api_sw_interface_set_dpdk_hqos_pipe (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_sw_interface_set_dpdk_hqos_pipe_t *mp; - f64 timeout; u32 sw_if_index; u8 sw_if_index_set = 0; u32 subport; @@ -4667,6 +5022,7 @@ api_sw_interface_set_dpdk_hqos_pipe (vat_main_t * vam) u8 pipe_set = 0; u32 profile; u8 profile_set = 0; + int ret; /* Parse args required to build the message */ while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) @@ -4712,7 +5068,7 @@ api_sw_interface_set_dpdk_hqos_pipe (vat_main_t * vam) return -99; } - M (SW_INTERFACE_SET_DPDK_HQOS_PIPE, sw_interface_set_dpdk_hqos_pipe); + M (SW_INTERFACE_SET_DPDK_HQOS_PIPE, mp); mp->sw_if_index = ntohl (sw_if_index); mp->subport = ntohl (subport); @@ -4720,10 +5076,9 @@ api_sw_interface_set_dpdk_hqos_pipe (vat_main_t * vam) mp->profile = ntohl (profile); - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -4731,7 +5086,6 @@ api_sw_interface_set_dpdk_hqos_subport (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_sw_interface_set_dpdk_hqos_subport_t *mp; - f64 timeout; u32 sw_if_index; u8 sw_if_index_set = 0; u32 subport; @@ -4740,6 +5094,7 @@ api_sw_interface_set_dpdk_hqos_subport (vat_main_t * vam) u32 tb_size = 1000000; u32 tc_rate[] = { 1250000000, 1250000000, 1250000000, 1250000000 }; u32 tc_period = 10; + int ret; /* Parse args required to build the message */ while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) @@ -4789,7 +5144,7 @@ api_sw_interface_set_dpdk_hqos_subport (vat_main_t * vam) return -99; } - M (SW_INTERFACE_SET_DPDK_HQOS_SUBPORT, sw_interface_set_dpdk_hqos_subport); + M (SW_INTERFACE_SET_DPDK_HQOS_SUBPORT, mp); mp->sw_if_index = ntohl (sw_if_index); mp->subport = ntohl (subport); @@ -4801,10 +5156,9 @@ api_sw_interface_set_dpdk_hqos_subport (vat_main_t * vam) mp->tc_rate[3] = ntohl (tc_rate[3]); mp->tc_period = ntohl (tc_period); - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -4812,13 +5166,13 @@ api_sw_interface_set_dpdk_hqos_tctbl (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_sw_interface_set_dpdk_hqos_tctbl_t *mp; - f64 timeout; u32 sw_if_index; u8 sw_if_index_set = 0; u8 entry_set = 0; u8 tc_set = 0; u8 queue_set = 0; u32 entry, tc, queue; + int ret; /* Parse args required to build the message */ while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) @@ -4861,17 +5215,16 @@ api_sw_interface_set_dpdk_hqos_tctbl (vat_main_t * vam) return -99; } - M (SW_INTERFACE_SET_DPDK_HQOS_TCTBL, sw_interface_set_dpdk_hqos_tctbl); + M (SW_INTERFACE_SET_DPDK_HQOS_TCTBL, mp); mp->sw_if_index = ntohl (sw_if_index); mp->entry = ntohl (entry); mp->tc = ntohl (tc); mp->queue = ntohl (queue); - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } #endif @@ -4880,7 +5233,6 @@ api_sw_interface_add_del_address (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_sw_interface_add_del_address_t *mp; - f64 timeout; u32 sw_if_index; u8 sw_if_index_set = 0; u8 is_add = 1, del_all = 0; @@ -4889,6 +5241,7 @@ api_sw_interface_add_del_address (vat_main_t * vam) u8 v6_address_set = 0; ip4_address_t v4address; ip6_address_t v6address; + int ret; /* Parse args required to build the message */ while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) @@ -4929,7 +5282,7 @@ api_sw_interface_add_del_address (vat_main_t * vam) } /* Construct the API message */ - M (SW_INTERFACE_ADD_DEL_ADDRESS, sw_interface_add_del_address); + M (SW_INTERFACE_ADD_DEL_ADDRESS, mp); mp->sw_if_index = ntohl (sw_if_index); mp->is_add = is_add; @@ -4946,10 +5299,11 @@ api_sw_interface_add_del_address (vat_main_t * vam) mp->address_length = address_length; /* send it... */ - S; + S (mp); /* Wait for a reply, return good/bad news */ - W; + W (ret); + return ret; } static int @@ -4957,10 +5311,10 @@ api_sw_interface_set_mpls_enable (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_sw_interface_set_mpls_enable_t *mp; - f64 timeout; u32 sw_if_index; u8 sw_if_index_set = 0; u8 enable = 1; + int ret; /* Parse args required to build the message */ while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) @@ -4984,16 +5338,17 @@ api_sw_interface_set_mpls_enable (vat_main_t * vam) } /* Construct the API message */ - M (SW_INTERFACE_SET_MPLS_ENABLE, sw_interface_set_mpls_enable); + M (SW_INTERFACE_SET_MPLS_ENABLE, mp); mp->sw_if_index = ntohl (sw_if_index); mp->enable = enable; /* send it... */ - S; + S (mp); /* Wait for a reply... */ - W; + W (ret); + return ret; } static int @@ -5001,10 +5356,10 @@ api_sw_interface_set_table (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_sw_interface_set_table_t *mp; - f64 timeout; u32 sw_if_index, vrf_id = 0; u8 sw_if_index_set = 0; u8 is_ipv6 = 0; + int ret; /* Parse args required to build the message */ while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) @@ -5028,17 +5383,18 @@ api_sw_interface_set_table (vat_main_t * vam) } /* Construct the API message */ - M (SW_INTERFACE_SET_TABLE, sw_interface_set_table); + M (SW_INTERFACE_SET_TABLE, mp); mp->sw_if_index = ntohl (sw_if_index); mp->is_ipv6 = is_ipv6; mp->vrf_id = ntohl (vrf_id); /* send it... */ - S; + S (mp); /* Wait for a reply... */ - W; + W (ret); + return ret; } static void vl_api_sw_interface_get_table_reply_t_handler @@ -5078,7 +5434,7 @@ api_sw_interface_get_table (vat_main_t * vam) u32 sw_if_index; u8 sw_if_index_set = 0; u8 is_ipv6 = 0; - f64 timeout; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -5098,12 +5454,13 @@ api_sw_interface_get_table (vat_main_t * vam) return -99; } - M (SW_INTERFACE_GET_TABLE, sw_interface_get_table); + M (SW_INTERFACE_GET_TABLE, mp); mp->sw_if_index = htonl (sw_if_index); mp->is_ipv6 = is_ipv6; - S; - W; + S (mp); + W (ret); + return ret; } static int @@ -5111,10 +5468,10 @@ api_sw_interface_set_vpath (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_sw_interface_set_vpath_t *mp; - f64 timeout; u32 sw_if_index = 0; u8 sw_if_index_set = 0; u8 is_enable = 0; + int ret; /* Parse args required to build the message */ while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) @@ -5138,16 +5495,17 @@ api_sw_interface_set_vpath (vat_main_t * vam) } /* Construct the API message */ - M (SW_INTERFACE_SET_VPATH, sw_interface_set_vpath); + M (SW_INTERFACE_SET_VPATH, mp); mp->sw_if_index = ntohl (sw_if_index); mp->enable = is_enable; /* send it... */ - S; + S (mp); /* Wait for a reply... */ - W; + W (ret); + return ret; } static int @@ -5155,11 +5513,11 @@ api_sw_interface_set_vxlan_bypass (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_sw_interface_set_vxlan_bypass_t *mp; - f64 timeout; u32 sw_if_index = 0; u8 sw_if_index_set = 0; - u8 is_enable = 0; + u8 is_enable = 1; u8 is_ipv6 = 0; + int ret; /* Parse args required to build the message */ while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) @@ -5187,17 +5545,18 @@ api_sw_interface_set_vxlan_bypass (vat_main_t * vam) } /* Construct the API message */ - M (SW_INTERFACE_SET_VXLAN_BYPASS, sw_interface_set_vxlan_bypass); + M (SW_INTERFACE_SET_VXLAN_BYPASS, mp); mp->sw_if_index = ntohl (sw_if_index); mp->enable = is_enable; mp->is_ipv6 = is_ipv6; /* send it... */ - S; + S (mp); /* Wait for a reply... */ - W; + W (ret); + return ret; } static int @@ -5205,12 +5564,12 @@ api_sw_interface_set_l2_xconnect (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_sw_interface_set_l2_xconnect_t *mp; - f64 timeout; u32 rx_sw_if_index; u8 rx_sw_if_index_set = 0; u32 tx_sw_if_index; u8 tx_sw_if_index_set = 0; u8 enable = 1; + int ret; /* Parse args required to build the message */ while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) @@ -5261,16 +5620,15 @@ api_sw_interface_set_l2_xconnect (vat_main_t * vam) return -99; } - M (SW_INTERFACE_SET_L2_XCONNECT, sw_interface_set_l2_xconnect); + M (SW_INTERFACE_SET_L2_XCONNECT, mp); mp->rx_sw_if_index = ntohl (rx_sw_if_index); mp->tx_sw_if_index = ntohl (tx_sw_if_index); mp->enable = enable; - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -5278,7 +5636,6 @@ api_sw_interface_set_l2_bridge (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_sw_interface_set_l2_bridge_t *mp; - f64 timeout; u32 rx_sw_if_index; u8 rx_sw_if_index_set = 0; u32 bd_id; @@ -5286,6 +5643,7 @@ api_sw_interface_set_l2_bridge (vat_main_t * vam) u8 bvi = 0; u32 shg = 0; u8 enable = 1; + int ret; /* Parse args required to build the message */ while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) @@ -5322,7 +5680,7 @@ api_sw_interface_set_l2_bridge (vat_main_t * vam) return -99; } - M (SW_INTERFACE_SET_L2_BRIDGE, sw_interface_set_l2_bridge); + M (SW_INTERFACE_SET_L2_BRIDGE, mp); mp->rx_sw_if_index = ntohl (rx_sw_if_index); mp->bd_id = ntohl (bd_id); @@ -5330,10 +5688,9 @@ api_sw_interface_set_l2_bridge (vat_main_t * vam) mp->bvi = bvi; mp->enable = enable; - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -5341,8 +5698,9 @@ api_bridge_domain_dump (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_bridge_domain_dump_t *mp; - f64 timeout; + vl_api_control_ping_t *mp_ping; u32 bd_id = ~0; + int ret; /* Parse args required to build the message */ while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) @@ -5353,20 +5711,16 @@ api_bridge_domain_dump (vat_main_t * vam) break; } - M (BRIDGE_DOMAIN_DUMP, bridge_domain_dump); + M (BRIDGE_DOMAIN_DUMP, mp); mp->bd_id = ntohl (bd_id); - S; + S (mp); /* Use a control ping for synchronization */ - { - vl_api_control_ping_t *mp; - M (CONTROL_PING, control_ping); - S; - } + M (CONTROL_PING, mp_ping); + S (mp_ping); - W; - /* NOTREACHED */ - return 0; + W (ret); + return ret; } static int @@ -5374,11 +5728,11 @@ api_bridge_domain_add_del (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_bridge_domain_add_del_t *mp; - f64 timeout; u32 bd_id = ~0; u8 is_add = 1; u32 flood = 1, forward = 1, learn = 1, uu_flood = 1, arp_term = 0; u32 mac_age = 0; + int ret; /* Parse args required to build the message */ while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) @@ -5418,7 +5772,7 @@ api_bridge_domain_add_del (vat_main_t * vam) return -99; } - M (BRIDGE_DOMAIN_ADD_DEL, bridge_domain_add_del); + M (BRIDGE_DOMAIN_ADD_DEL, mp); mp->bd_id = ntohl (bd_id); mp->flood = flood; @@ -5429,10 +5783,9 @@ api_bridge_domain_add_del (vat_main_t * vam) mp->is_add = is_add; mp->mac_age = (u8) mac_age; - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -5523,7 +5876,7 @@ api_l2fib_add_del (vat_main_t * vam) for (j = 0; j < count; j++) { - M (L2FIB_ADD_DEL, l2fib_add_del); + M (L2FIB_ADD_DEL, mp); mp->mac = mac; mp->bd_id = ntohl (bd_id); @@ -5538,19 +5891,19 @@ api_l2fib_add_del (vat_main_t * vam) } increment_mac_address (&mac); /* send it... */ - S; + S (mp); } if (count > 1) { - vl_api_control_ping_t *mp; + vl_api_control_ping_t *mp_ping; f64 after; /* Shut off async mode */ vam->async_mode = 0; - M (CONTROL_PING, control_ping); - S; + M (CONTROL_PING, mp_ping); + S (mp_ping); timeout = vat_time_now (vam) + 1.0; while (vat_time_now (vam) < timeout) @@ -5575,8 +5928,11 @@ api_l2fib_add_del (vat_main_t * vam) } else { + int ret; + /* Wait for a reply... */ - W; + W (ret); + return ret; } /* Return the good/bad news */ return (vam->retval); @@ -5587,10 +5943,10 @@ api_l2_flags (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_l2_flags_t *mp; - f64 timeout; u32 sw_if_index; u32 feature_bitmap = 0; u8 sw_if_index_set = 0; + int ret; /* Parse args required to build the message */ while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) @@ -5626,15 +5982,14 @@ api_l2_flags (vat_main_t * vam) return -99; } - M (L2_FLAGS, l2_flags); + M (L2_FLAGS, mp); mp->sw_if_index = ntohl (sw_if_index); mp->feature_bitmap = ntohl (feature_bitmap); - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -5642,11 +5997,11 @@ api_bridge_flags (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_bridge_flags_t *mp; - f64 timeout; u32 bd_id; u8 bd_id_set = 0; u8 is_set = 1; u32 flags = 0; + int ret; /* Parse args required to build the message */ while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) @@ -5677,16 +6032,15 @@ api_bridge_flags (vat_main_t * vam) return -99; } - M (BRIDGE_FLAGS, bridge_flags); + M (BRIDGE_FLAGS, mp); mp->bd_id = ntohl (bd_id); mp->feature_bitmap = ntohl (flags); mp->is_set = is_set; - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -5694,7 +6048,6 @@ api_bd_ip_mac_add_del (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_bd_ip_mac_add_del_t *mp; - f64 timeout; u32 bd_id; u8 is_ipv6 = 0; u8 is_add = 1; @@ -5704,6 +6057,7 @@ api_bd_ip_mac_add_del (vat_main_t * vam) ip4_address_t v4addr; ip6_address_t v6addr; u8 macaddr[6]; + int ret; /* Parse args required to build the message */ @@ -5748,7 +6102,7 @@ api_bd_ip_mac_add_del (vat_main_t * vam) return -99; } - M (BD_IP_MAC_ADD_DEL, bd_ip_mac_add_del); + M (BD_IP_MAC_ADD_DEL, mp); mp->bd_id = ntohl (bd_id); mp->is_ipv6 = is_ipv6; @@ -5758,10 +6112,9 @@ api_bd_ip_mac_add_del (vat_main_t * vam) else clib_memcpy (mp->ip_address, &v4addr, sizeof (v4addr)); clib_memcpy (mp->mac_address, macaddr, 6); - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -5769,7 +6122,6 @@ api_tap_connect (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_tap_connect_t *mp; - f64 timeout; u8 mac_address[6]; u8 random_mac = 1; u8 name_set = 0; @@ -5781,6 +6133,7 @@ api_tap_connect (vat_main_t * vam) ip6_address_t ip6_address; u32 ip6_mask_width; int ip6_address_set = 0; + int ret; memset (mac_address, 0, sizeof (mac_address)); @@ -5826,7 +6179,7 @@ api_tap_connect (vat_main_t * vam) } /* Construct the API message */ - M (TAP_CONNECT, tap_connect); + M (TAP_CONNECT, mp); mp->use_random_mac = random_mac; clib_memcpy (mp->mac_address, mac_address, 6); @@ -5851,10 +6204,11 @@ api_tap_connect (vat_main_t * vam) vec_free (tag); /* send it... */ - S; + S (mp); /* Wait for a reply... */ - W; + W (ret); + return ret; } static int @@ -5862,13 +6216,13 @@ api_tap_modify (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_tap_modify_t *mp; - f64 timeout; u8 mac_address[6]; u8 random_mac = 1; u8 name_set = 0; u8 *tap_name; u32 sw_if_index = ~0; u8 sw_if_index_set = 0; + int ret; memset (mac_address, 0, sizeof (mac_address)); @@ -5908,7 +6262,7 @@ api_tap_modify (vat_main_t * vam) vec_add1 (tap_name, 0); /* Construct the API message */ - M (TAP_MODIFY, tap_modify); + M (TAP_MODIFY, mp); mp->use_random_mac = random_mac; mp->sw_if_index = ntohl (sw_if_index); @@ -5917,10 +6271,11 @@ api_tap_modify (vat_main_t * vam) vec_free (tap_name); /* send it... */ - S; + S (mp); /* Wait for a reply... */ - W; + W (ret); + return ret; } static int @@ -5928,9 +6283,9 @@ api_tap_delete (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_tap_delete_t *mp; - f64 timeout; u32 sw_if_index = ~0; u8 sw_if_index_set = 0; + int ret; /* Parse args required to build the message */ while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) @@ -5950,15 +6305,16 @@ api_tap_delete (vat_main_t * vam) } /* Construct the API message */ - M (TAP_DELETE, tap_delete); + M (TAP_DELETE, mp); mp->sw_if_index = ntohl (sw_if_index); /* send it... */ - S; + S (mp); /* Wait for a reply... */ - W; + W (ret); + return ret; } static int @@ -5966,7 +6322,6 @@ api_ip_add_del_route (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_ip_add_del_route_t *mp; - f64 timeout; u32 sw_if_index = ~0, vrf_id = 0; u8 is_ipv6 = 0; u8 is_local = 0, is_drop = 0; @@ -6151,7 +6506,7 @@ api_ip_add_del_route (vat_main_t * vam) for (j = 0; j < count; j++) { /* Construct the API message */ - M2 (IP_ADD_DEL_ROUTE, ip_add_del_route, + M2 (IP_ADD_DEL_ROUTE, mp, sizeof (mpls_label_t) * vec_len (next_hop_out_label_stack)); mp->next_hop_sw_if_index = ntohl (sw_if_index); @@ -6205,7 +6560,7 @@ api_ip_add_del_route (vat_main_t * vam) increment_v4_address (&v4_dst_address); } /* send it... */ - S; + S (mp); /* If we receive SIGTERM, stop now... */ if (vam->do_exit) break; @@ -6214,14 +6569,15 @@ api_ip_add_del_route (vat_main_t * vam) /* When testing multiple add/del ops, use a control-ping to sync */ if (count > 1) { - vl_api_control_ping_t *mp; + vl_api_control_ping_t *mp_ping; f64 after; + f64 timeout; /* Shut off async mode */ vam->async_mode = 0; - M (CONTROL_PING, control_ping); - S; + M (CONTROL_PING, mp_ping); + S (mp_ping); timeout = vat_time_now (vam) + 1.0; while (vat_time_now (vam) < timeout) @@ -6250,8 +6606,11 @@ api_ip_add_del_route (vat_main_t * vam) } else { + int ret; + /* Wait for a reply... */ - W; + W (ret); + return ret; } /* Return the good/bad news */ @@ -6259,15 +6618,132 @@ api_ip_add_del_route (vat_main_t * vam) } static int -api_mpls_route_add_del (vat_main_t * vam) +api_ip_mroute_add_del (vat_main_t * vam) { unformat_input_t *i = vam->input; - vl_api_mpls_route_add_del_t *mp; - f64 timeout; - u32 sw_if_index = ~0, table_id = 0; - u8 create_table_if_needed = 0; - u8 is_add = 1; - u32 next_hop_weight = 1; + vl_api_ip_mroute_add_del_t *mp; + u32 sw_if_index = ~0, vrf_id = 0; + u8 is_ipv6 = 0; + u8 is_local = 0; + u8 create_vrf_if_needed = 0; + u8 is_add = 1; + u8 address_set = 0; + u32 grp_address_length = 0; + ip4_address_t v4_grp_address, v4_src_address; + ip6_address_t v6_grp_address, v6_src_address; + mfib_itf_flags_t iflags = 0; + mfib_entry_flags_t eflags = 0; + int ret; + + /* Parse args required to build the message */ + while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) + { + if (unformat (i, "sw_if_index %d", &sw_if_index)) + ; + else if (unformat (i, "%U %U", + unformat_ip4_address, &v4_src_address, + unformat_ip4_address, &v4_grp_address)) + { + grp_address_length = 64; + address_set = 1; + is_ipv6 = 0; + } + else if (unformat (i, "%U %U", + unformat_ip6_address, &v6_src_address, + unformat_ip6_address, &v6_grp_address)) + { + grp_address_length = 256; + address_set = 1; + is_ipv6 = 1; + } + else if (unformat (i, "%U", unformat_ip4_address, &v4_grp_address)) + { + memset (&v4_src_address, 0, sizeof (v4_src_address)); + grp_address_length = 32; + address_set = 1; + is_ipv6 = 0; + } + else if (unformat (i, "%U", unformat_ip6_address, &v6_grp_address)) + { + memset (&v6_src_address, 0, sizeof (v6_src_address)); + grp_address_length = 128; + address_set = 1; + is_ipv6 = 1; + } + else if (unformat (i, "/%d", &grp_address_length)) + ; + else if (unformat (i, "local")) + { + is_local = 1; + } + else if (unformat (i, "del")) + is_add = 0; + else if (unformat (i, "add")) + is_add = 1; + else if (unformat (i, "vrf %d", &vrf_id)) + ; + else if (unformat (i, "create-vrf")) + create_vrf_if_needed = 1; + else if (unformat (i, "%U", unformat_mfib_itf_flags, &iflags)) + ; + else if (unformat (i, "%U", unformat_mfib_entry_flags, &eflags)) + ; + else + { + clib_warning ("parse error '%U'", format_unformat_error, i); + return -99; + } + } + + if (address_set == 0) + { + errmsg ("missing addresses\n"); + return -99; + } + + /* Construct the API message */ + M (IP_MROUTE_ADD_DEL, mp); + + mp->next_hop_sw_if_index = ntohl (sw_if_index); + mp->table_id = ntohl (vrf_id); + mp->create_vrf_if_needed = create_vrf_if_needed; + + mp->is_add = is_add; + mp->is_ipv6 = is_ipv6; + mp->is_local = is_local; + mp->itf_flags = ntohl (iflags); + mp->entry_flags = ntohl (eflags); + mp->grp_address_length = grp_address_length; + mp->grp_address_length = ntohs (mp->grp_address_length); + + if (is_ipv6) + { + clib_memcpy (mp->grp_address, &v6_grp_address, sizeof (v6_grp_address)); + clib_memcpy (mp->src_address, &v6_src_address, sizeof (v6_src_address)); + } + else + { + clib_memcpy (mp->grp_address, &v4_grp_address, sizeof (v4_grp_address)); + clib_memcpy (mp->src_address, &v4_src_address, sizeof (v4_src_address)); + + } + + /* send it... */ + S (mp); + /* Wait for a reply... */ + W (ret); + return ret; +} + +static int +api_mpls_route_add_del (vat_main_t * vam) +{ + unformat_input_t *i = vam->input; + vl_api_mpls_route_add_del_t *mp; + u32 sw_if_index = ~0, table_id = 0; + u8 create_table_if_needed = 0; + u8 is_add = 1; + u32 next_hop_weight = 1; u8 is_multipath = 0; u32 next_hop_table_id = 0; u8 next_hop_set = 0; @@ -6379,7 +6855,7 @@ api_mpls_route_add_del (vat_main_t * vam) for (j = 0; j < count; j++) { /* Construct the API message */ - M2 (MPLS_ROUTE_ADD_DEL, mpls_route_add_del, + M2 (MPLS_ROUTE_ADD_DEL, mp, sizeof (mpls_label_t) * vec_len (next_hop_out_label_stack)); mp->mr_next_hop_sw_if_index = ntohl (sw_if_index); @@ -6426,7 +6902,7 @@ api_mpls_route_add_del (vat_main_t * vam) local_label++; /* send it... */ - S; + S (mp); /* If we receive SIGTERM, stop now... */ if (vam->do_exit) break; @@ -6435,14 +6911,15 @@ api_mpls_route_add_del (vat_main_t * vam) /* When testing multiple add/del ops, use a control-ping to sync */ if (count > 1) { - vl_api_control_ping_t *mp; + vl_api_control_ping_t *mp_ping; f64 after; + f64 timeout; /* Shut off async mode */ vam->async_mode = 0; - M (CONTROL_PING, control_ping); - S; + M (CONTROL_PING, mp_ping); + S (mp_ping); timeout = vat_time_now (vam) + 1.0; while (vat_time_now (vam) < timeout) @@ -6471,8 +6948,11 @@ api_mpls_route_add_del (vat_main_t * vam) } else { + int ret; + /* Wait for a reply... */ - W; + W (ret); + return ret; } /* Return the good/bad news */ @@ -6484,7 +6964,6 @@ api_mpls_ip_bind_unbind (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_mpls_ip_bind_unbind_t *mp; - f64 timeout; u32 ip_table_id = 0; u8 create_table_if_needed = 0; u8 is_bind = 1; @@ -6494,6 +6973,7 @@ api_mpls_ip_bind_unbind (vat_main_t * vam) u32 address_length; u8 address_set = 0; mpls_label_t local_label = MPLS_LABEL_INVALID; + int ret; /* Parse args required to build the message */ while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) @@ -6540,7 +7020,7 @@ api_mpls_ip_bind_unbind (vat_main_t * vam) } /* Construct the API message */ - M (MPLS_IP_BIND_UNBIND, mpls_ip_bind_unbind); + M (MPLS_IP_BIND_UNBIND, mp); mp->mb_create_table_if_needed = create_table_if_needed; mp->mb_is_bind = is_bind; @@ -6556,10 +7036,11 @@ api_mpls_ip_bind_unbind (vat_main_t * vam) clib_memcpy (mp->mb_address, &v6_address, sizeof (v6_address)); /* send it... */ - S; + S (mp); /* Wait for a reply... */ - W; + W (ret); + return ret; } static int @@ -6567,11 +7048,11 @@ api_proxy_arp_add_del (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_proxy_arp_add_del_t *mp; - f64 timeout; u32 vrf_id = 0; u8 is_add = 1; ip4_address_t lo, hi; u8 range_set = 0; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -6595,17 +7076,16 @@ api_proxy_arp_add_del (vat_main_t * vam) return -99; } - M (PROXY_ARP_ADD_DEL, proxy_arp_add_del); + M (PROXY_ARP_ADD_DEL, mp); mp->vrf_id = ntohl (vrf_id); mp->is_add = is_add; clib_memcpy (mp->low_address, &lo, sizeof (mp->low_address)); clib_memcpy (mp->hi_address, &hi, sizeof (mp->hi_address)); - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -6613,10 +7093,10 @@ api_proxy_arp_intfc_enable_disable (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_proxy_arp_intfc_enable_disable_t *mp; - f64 timeout; u32 sw_if_index; u8 enable = 1; u8 sw_if_index_set = 0; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -6641,15 +7121,14 @@ api_proxy_arp_intfc_enable_disable (vat_main_t * vam) return -99; } - M (PROXY_ARP_INTFC_ENABLE_DISABLE, proxy_arp_intfc_enable_disable); + M (PROXY_ARP_INTFC_ENABLE_DISABLE, mp); mp->sw_if_index = ntohl (sw_if_index); mp->enable_disable = enable; - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -6657,7 +7136,6 @@ api_mpls_tunnel_add_del (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_mpls_tunnel_add_del_t *mp; - f64 timeout; u8 is_add = 1; u8 l2_only = 0; @@ -6671,6 +7149,7 @@ api_mpls_tunnel_add_del (vat_main_t * vam) }; ip6_address_t v6_next_hop_address = { {0} }; mpls_label_t next_hop_out_label = MPLS_LABEL_INVALID, *labels = NULL; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -6703,8 +7182,7 @@ api_mpls_tunnel_add_del (vat_main_t * vam) } } - M2 (MPLS_TUNNEL_ADD_DEL, mpls_tunnel_add_del, - sizeof (mpls_label_t) * vec_len (labels)); + M2 (MPLS_TUNNEL_ADD_DEL, mp, sizeof (mpls_label_t) * vec_len (labels)); mp->mt_next_hop_sw_if_index = ntohl (next_hop_sw_if_index); mp->mt_sw_if_index = ntohl (sw_if_index); @@ -6733,10 +7211,9 @@ api_mpls_tunnel_add_del (vat_main_t * vam) &v6_next_hop_address, sizeof (v6_next_hop_address)); } - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -6744,11 +7221,11 @@ api_sw_interface_set_unnumbered (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_sw_interface_set_unnumbered_t *mp; - f64 timeout; u32 sw_if_index; u32 unnum_sw_index = ~0; u8 is_add = 1; u8 sw_if_index_set = 0; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -6773,16 +7250,15 @@ api_sw_interface_set_unnumbered (vat_main_t * vam) return -99; } - M (SW_INTERFACE_SET_UNNUMBERED, sw_interface_set_unnumbered); + M (SW_INTERFACE_SET_UNNUMBERED, mp); mp->sw_if_index = ntohl (sw_if_index); mp->unnumbered_sw_if_index = ntohl (unnum_sw_index); mp->is_add = is_add; - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -6790,7 +7266,6 @@ api_ip_neighbor_add_del (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_ip_neighbor_add_del_t *mp; - f64 timeout; u32 sw_if_index; u8 sw_if_index_set = 0; u32 vrf_id = 0; @@ -6802,6 +7277,7 @@ api_ip_neighbor_add_del (vat_main_t * vam) u8 v6_address_set = 0; ip4_address_t v4address; ip6_address_t v6address; + int ret; memset (mac_address, 0, sizeof (mac_address)); @@ -6851,7 +7327,7 @@ api_ip_neighbor_add_del (vat_main_t * vam) } /* Construct the API message */ - M (IP_NEIGHBOR_ADD_DEL, ip_neighbor_add_del); + M (IP_NEIGHBOR_ADD_DEL, mp); mp->sw_if_index = ntohl (sw_if_index); mp->is_add = is_add; @@ -6871,13 +7347,11 @@ api_ip_neighbor_add_del (vat_main_t * vam) } /* send it... */ - S; + S (mp); /* Wait for a reply, return good/bad news */ - W; - - /* NOTREACHED */ - return 0; + W (ret); + return ret; } static int @@ -6885,10 +7359,10 @@ api_reset_vrf (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_reset_vrf_t *mp; - f64 timeout; u32 vrf_id = 0; u8 is_ipv6 = 0; u8 vrf_id_set = 0; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -6909,15 +7383,14 @@ api_reset_vrf (vat_main_t * vam) return -99; } - M (RESET_VRF, reset_vrf); + M (RESET_VRF, mp); mp->vrf_id = ntohl (vrf_id); mp->is_ipv6 = is_ipv6; - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -6925,11 +7398,11 @@ api_create_vlan_subif (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_create_vlan_subif_t *mp; - f64 timeout; u32 sw_if_index; u8 sw_if_index_set = 0; u32 vlan_id; u8 vlan_id_set = 0; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -6958,15 +7431,14 @@ api_create_vlan_subif (vat_main_t * vam) errmsg ("missing vlan_id"); return -99; } - M (CREATE_VLAN_SUBIF, create_vlan_subif); + M (CREATE_VLAN_SUBIF, mp); mp->sw_if_index = ntohl (sw_if_index); mp->vlan_id = ntohl (vlan_id); - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } #define foreach_create_subif_bit \ @@ -6984,7 +7456,6 @@ api_create_subif (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_create_subif_t *mp; - f64 timeout; u32 sw_if_index; u8 sw_if_index_set = 0; u32 sub_id; @@ -7000,6 +7471,7 @@ api_create_subif (vat_main_t * vam) u32 tmp; u16 outer_vlan_id = 0; u16 inner_vlan_id = 0; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -7036,7 +7508,7 @@ api_create_subif (vat_main_t * vam) errmsg ("missing sub_id"); return -99; } - M (CREATE_SUBIF, create_subif); + M (CREATE_SUBIF, mp); mp->sw_if_index = ntohl (sw_if_index); mp->sub_id = ntohl (sub_id); @@ -7048,10 +7520,9 @@ api_create_subif (vat_main_t * vam) mp->outer_vlan_id = ntohs (outer_vlan_id); mp->inner_vlan_id = ntohs (inner_vlan_id); - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -7059,12 +7530,12 @@ api_oam_add_del (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_oam_add_del_t *mp; - f64 timeout; u32 vrf_id = 0; u8 is_add = 1; ip4_address_t src, dst; u8 src_set = 0; u8 dst_set = 0; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -7095,17 +7566,16 @@ api_oam_add_del (vat_main_t * vam) return -99; } - M (OAM_ADD_DEL, oam_add_del); + M (OAM_ADD_DEL, mp); mp->vrf_id = ntohl (vrf_id); mp->is_add = is_add; clib_memcpy (mp->src_address, &src, sizeof (mp->src_address)); clib_memcpy (mp->dst_address, &dst, sizeof (mp->dst_address)); - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -7113,11 +7583,11 @@ api_reset_fib (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_reset_fib_t *mp; - f64 timeout; u32 vrf_id = 0; u8 is_ipv6 = 0; u8 vrf_id_set = 0; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { if (unformat (i, "vrf %d", &vrf_id)) @@ -7137,15 +7607,14 @@ api_reset_fib (vat_main_t * vam) return -99; } - M (RESET_FIB, reset_fib); + M (RESET_FIB, mp); mp->vrf_id = ntohl (vrf_id); mp->is_ipv6 = is_ipv6; - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -7153,7 +7622,6 @@ api_dhcp_proxy_config (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_dhcp_proxy_config_t *mp; - f64 timeout; u32 vrf_id = 0; u8 is_add = 1; u8 insert_cid = 1; @@ -7165,6 +7633,7 @@ api_dhcp_proxy_config (vat_main_t * vam) u8 v6_src_address_set = 0; ip4_address_t v4srcaddress; ip6_address_t v6srcaddress; + int ret; /* Parse args required to build the message */ while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) @@ -7217,7 +7686,7 @@ api_dhcp_proxy_config (vat_main_t * vam) } /* Construct the API message */ - M (DHCP_PROXY_CONFIG, dhcp_proxy_config); + M (DHCP_PROXY_CONFIG, mp); mp->insert_circuit_id = insert_cid; mp->is_add = is_add; @@ -7235,12 +7704,11 @@ api_dhcp_proxy_config (vat_main_t * vam) } /* send it... */ - S; + S (mp); /* Wait for a reply, return good/bad news */ - W; - /* NOTREACHED */ - return 0; + W (ret); + return ret; } static int @@ -7248,7 +7716,6 @@ api_dhcp_proxy_config_2 (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_dhcp_proxy_config_2_t *mp; - f64 timeout; u32 rx_vrf_id = 0; u32 server_vrf_id = 0; u8 is_add = 1; @@ -7261,6 +7728,7 @@ api_dhcp_proxy_config_2 (vat_main_t * vam) u8 v6_src_address_set = 0; ip4_address_t v4srcaddress; ip6_address_t v6srcaddress; + int ret; /* Parse args required to build the message */ while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) @@ -7315,7 +7783,7 @@ api_dhcp_proxy_config_2 (vat_main_t * vam) } /* Construct the API message */ - M (DHCP_PROXY_CONFIG_2, dhcp_proxy_config_2); + M (DHCP_PROXY_CONFIG_2, mp); mp->insert_circuit_id = insert_cid; mp->is_add = is_add; @@ -7334,12 +7802,11 @@ api_dhcp_proxy_config_2 (vat_main_t * vam) } /* send it... */ - S; + S (mp); /* Wait for a reply, return good/bad news */ - W; - /* NOTREACHED */ - return 0; + W (ret); + return ret; } static int @@ -7347,7 +7814,6 @@ api_dhcp_proxy_set_vss (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_dhcp_proxy_set_vss_t *mp; - f64 timeout; u8 is_ipv6 = 0; u8 is_add = 1; u32 tbl_id; @@ -7356,6 +7822,7 @@ api_dhcp_proxy_set_vss (vat_main_t * vam) u8 oui_set = 0; u32 fib_id; u8 fib_id_set = 0; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -7393,17 +7860,16 @@ api_dhcp_proxy_set_vss (vat_main_t * vam) return -99; } - M (DHCP_PROXY_SET_VSS, dhcp_proxy_set_vss); + M (DHCP_PROXY_SET_VSS, mp); mp->tbl_id = ntohl (tbl_id); mp->fib_id = ntohl (fib_id); mp->oui = ntohl (oui); mp->is_ipv6 = is_ipv6; mp->is_add = is_add; - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -7411,12 +7877,12 @@ api_dhcp_client_config (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_dhcp_client_config_t *mp; - f64 timeout; u32 sw_if_index; u8 sw_if_index_set = 0; u8 is_add = 1; u8 *hostname = 0; u8 disable_event = 0; + int ret; /* Parse args required to build the message */ while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) @@ -7449,7 +7915,7 @@ api_dhcp_client_config (vat_main_t * vam) vec_add1 (hostname, 0); /* Construct the API message */ - M (DHCP_CLIENT_CONFIG, dhcp_client_config); + M (DHCP_CLIENT_CONFIG, mp); mp->sw_if_index = ntohl (sw_if_index); clib_memcpy (mp->hostname, hostname, vec_len (hostname)); @@ -7459,12 +7925,11 @@ api_dhcp_client_config (vat_main_t * vam) mp->pid = getpid (); /* send it... */ - S; + S (mp); /* Wait for a reply, return good/bad news */ - W; - /* NOTREACHED */ - return 0; + W (ret); + return ret; } static int @@ -7472,7 +7937,6 @@ api_set_ip_flow_hash (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_set_ip_flow_hash_t *mp; - f64 timeout; u32 vrf_id = 0; u8 is_ipv6 = 0; u8 vrf_id_set = 0; @@ -7482,6 +7946,7 @@ api_set_ip_flow_hash (vat_main_t * vam) u8 dport = 0; u8 proto = 0; u8 reverse = 0; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -7515,7 +7980,7 @@ api_set_ip_flow_hash (vat_main_t * vam) return -99; } - M (SET_IP_FLOW_HASH, set_ip_flow_hash); + M (SET_IP_FLOW_HASH, mp); mp->src = src; mp->dst = dst; mp->sport = sport; @@ -7525,10 +7990,9 @@ api_set_ip_flow_hash (vat_main_t * vam) mp->vrf_id = ntohl (vrf_id); mp->is_ipv6 = is_ipv6; - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -7536,10 +8000,10 @@ api_sw_interface_ip6_enable_disable (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_sw_interface_ip6_enable_disable_t *mp; - f64 timeout; u32 sw_if_index; u8 sw_if_index_set = 0; u8 enable = 0; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -7564,15 +8028,14 @@ api_sw_interface_ip6_enable_disable (vat_main_t * vam) return -99; } - M (SW_INTERFACE_IP6_ENABLE_DISABLE, sw_interface_ip6_enable_disable); + M (SW_INTERFACE_IP6_ENABLE_DISABLE, mp); mp->sw_if_index = ntohl (sw_if_index); mp->enable = enable; - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -7580,11 +8043,11 @@ api_sw_interface_ip6_set_link_local_address (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_sw_interface_ip6_set_link_local_address_t *mp; - f64 timeout; u32 sw_if_index; u8 sw_if_index_set = 0; u8 v6_address_set = 0; ip6_address_t v6address; + int ret; /* Parse args required to build the message */ while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) @@ -7611,20 +8074,17 @@ api_sw_interface_ip6_set_link_local_address (vat_main_t * vam) } /* Construct the API message */ - M (SW_INTERFACE_IP6_SET_LINK_LOCAL_ADDRESS, - sw_interface_ip6_set_link_local_address); + M (SW_INTERFACE_IP6_SET_LINK_LOCAL_ADDRESS, mp); mp->sw_if_index = ntohl (sw_if_index); clib_memcpy (mp->address, &v6address, sizeof (v6address)); /* send it... */ - S; + S (mp); /* Wait for a reply, return good/bad news */ - W; - - /* NOTREACHED */ - return 0; + W (ret); + return ret; } @@ -7633,7 +8093,6 @@ api_sw_interface_ip6nd_ra_prefix (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_sw_interface_ip6nd_ra_prefix_t *mp; - f64 timeout; u32 sw_if_index; u8 sw_if_index_set = 0; u32 address_length = 0; @@ -7647,6 +8106,7 @@ api_sw_interface_ip6nd_ra_prefix (vat_main_t * vam) u8 is_no = 0; u32 val_lifetime = 0; u32 pref_lifetime = 0; + int ret; /* Parse args required to build the message */ while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) @@ -7693,7 +8153,7 @@ api_sw_interface_ip6nd_ra_prefix (vat_main_t * vam) } /* Construct the API message */ - M (SW_INTERFACE_IP6ND_RA_PREFIX, sw_interface_ip6nd_ra_prefix); + M (SW_INTERFACE_IP6ND_RA_PREFIX, mp); mp->sw_if_index = ntohl (sw_if_index); clib_memcpy (mp->address, &v6address, sizeof (v6address)); @@ -7708,13 +8168,11 @@ api_sw_interface_ip6nd_ra_prefix (vat_main_t * vam) mp->pref_lifetime = ntohl (pref_lifetime); /* send it... */ - S; + S (mp); /* Wait for a reply, return good/bad news */ - W; - - /* NOTREACHED */ - return 0; + W (ret); + return ret; } static int @@ -7722,7 +8180,6 @@ api_sw_interface_ip6nd_ra_config (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_sw_interface_ip6nd_ra_config_t *mp; - f64 timeout; u32 sw_if_index; u8 sw_if_index_set = 0; u8 suppress = 0; @@ -7738,6 +8195,7 @@ api_sw_interface_ip6nd_ra_config (vat_main_t * vam) u32 lifetime = 0; u32 initial_count = 0; u32 initial_interval = 0; + int ret; /* Parse args required to build the message */ @@ -7787,7 +8245,7 @@ api_sw_interface_ip6nd_ra_config (vat_main_t * vam) } /* Construct the API message */ - M (SW_INTERFACE_IP6ND_RA_CONFIG, sw_interface_ip6nd_ra_config); + M (SW_INTERFACE_IP6ND_RA_CONFIG, mp); mp->sw_if_index = ntohl (sw_if_index); mp->max_interval = ntohl (max_interval); @@ -7805,13 +8263,11 @@ api_sw_interface_ip6nd_ra_config (vat_main_t * vam) mp->default_router = default_router; /* send it... */ - S; + S (mp); /* Wait for a reply, return good/bad news */ - W; - - /* NOTREACHED */ - return 0; + W (ret); + return ret; } static int @@ -7819,10 +8275,10 @@ api_set_arp_neighbor_limit (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_set_arp_neighbor_limit_t *mp; - f64 timeout; u32 arp_nbr_limit; u8 limit_set = 0; u8 is_ipv6 = 0; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -7843,15 +8299,14 @@ api_set_arp_neighbor_limit (vat_main_t * vam) return -99; } - M (SET_ARP_NEIGHBOR_LIMIT, set_arp_neighbor_limit); + M (SET_ARP_NEIGHBOR_LIMIT, mp); mp->arp_neighbor_limit = ntohl (arp_nbr_limit); mp->is_ipv6 = is_ipv6; - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -7859,12 +8314,12 @@ api_l2_patch_add_del (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_l2_patch_add_del_t *mp; - f64 timeout; u32 rx_sw_if_index; u8 rx_sw_if_index_set = 0; u32 tx_sw_if_index; u8 tx_sw_if_index_set = 0; u8 is_add = 1; + int ret; /* Parse args required to build the message */ while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) @@ -7913,16 +8368,15 @@ api_l2_patch_add_del (vat_main_t * vam) return -99; } - M (L2_PATCH_ADD_DEL, l2_patch_add_del); + M (L2_PATCH_ADD_DEL, mp); mp->rx_sw_if_index = ntohl (rx_sw_if_index); mp->tx_sw_if_index = ntohl (tx_sw_if_index); mp->is_add = is_add; - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -7930,12 +8384,12 @@ api_ioam_enable (vat_main_t * vam) { unformat_input_t *input = vam->input; vl_api_ioam_enable_t *mp; - f64 timeout; u32 id = 0; int has_trace_option = 0; int has_pot_option = 0; int has_seqno_option = 0; int has_analyse_option = 0; + int ret; while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) { @@ -7950,18 +8404,16 @@ api_ioam_enable (vat_main_t * vam) else break; } - M (IOAM_ENABLE, ioam_enable); + M (IOAM_ENABLE, mp); mp->id = htons (id); mp->seqno = has_seqno_option; mp->analyse = has_analyse_option; mp->pot_enable = has_pot_option; mp->trace_enable = has_trace_option; - S; - W; - - return (0); - + S (mp); + W (ret); + return ret; } @@ -7969,12 +8421,12 @@ static int api_ioam_disable (vat_main_t * vam) { vl_api_ioam_disable_t *mp; - f64 timeout; + int ret; - M (IOAM_DISABLE, ioam_disable); - S; - W; - return 0; + M (IOAM_DISABLE, mp); + S (mp); + W (ret); + return ret; } static int @@ -7982,7 +8434,6 @@ api_sr_tunnel_add_del (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_sr_tunnel_add_del_t *mp; - f64 timeout; int is_del = 0; int pl_index; ip6_address_t src_address; @@ -8000,6 +8451,7 @@ api_sr_tunnel_add_del (vat_main_t * vam) ip6_address_t next_address, tag; u8 *name = 0; u8 *policy_name = 0; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -8080,7 +8532,7 @@ api_sr_tunnel_add_del (vat_main_t * vam) return -99; } - M2 (SR_TUNNEL_ADD_DEL, sr_tunnel_add_del, + M2 (SR_TUNNEL_ADD_DEL, mp, vec_len (segments) * sizeof (ip6_address_t) + vec_len (tags) * sizeof (ip6_address_t)); @@ -8105,9 +8557,9 @@ api_sr_tunnel_add_del (vat_main_t * vam) vec_free (segments); vec_free (tags); - S; - W; - /* NOTREACHED */ + S (mp); + W (ret); + return ret; } static int @@ -8115,7 +8567,6 @@ api_sr_policy_add_del (vat_main_t * vam) { unformat_input_t *input = vam->input; vl_api_sr_policy_add_del_t *mp; - f64 timeout; int is_del = 0; u8 *name = 0; u8 *tunnel_name = 0; @@ -8126,6 +8577,7 @@ api_sr_policy_add_del (vat_main_t * vam) int j = 0; int tunnel_names_length = 1; // Init to 1 to offset the #tunnel_names counter byte int tun_name_len = 0; // Different naming convention used as confusing these would be "bad" (TM) + int ret; while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) { @@ -8163,7 +8615,7 @@ api_sr_policy_add_del (vat_main_t * vam) return -99; } - M2 (SR_POLICY_ADD_DEL, sr_policy_add_del, tunnel_names_length); + M2 (SR_POLICY_ADD_DEL, mp, tunnel_names_length); @@ -8189,9 +8641,9 @@ api_sr_policy_add_del (vat_main_t * vam) vec_free (tunnel_names); vec_free (tunnel_name); - S; - W; - /* NOTREACHED */ + S (mp); + W (ret); + return ret; } static int @@ -8199,11 +8651,11 @@ api_sr_multicast_map_add_del (vat_main_t * vam) { unformat_input_t *input = vam->input; vl_api_sr_multicast_map_add_del_t *mp; - f64 timeout; int is_del = 0; ip6_address_t multicast_address; u8 *policy_name = 0; int multicast_address_set = 0; + int ret; while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) { @@ -8232,7 +8684,7 @@ api_sr_multicast_map_add_del (vat_main_t * vam) return -99; } - M (SR_MULTICAST_MAP_ADD_DEL, sr_multicast_map_add_del); + M (SR_MULTICAST_MAP_ADD_DEL, mp); mp->is_add = !is_del; memcpy (mp->policy_name, policy_name, vec_len (policy_name)); @@ -8242,9 +8694,9 @@ api_sr_multicast_map_add_del (vat_main_t * vam) vec_free (policy_name); - S; - W; - /* NOTREACHED */ + S (mp); + W (ret); + return ret; } @@ -8872,9 +9324,9 @@ api_classify_add_del_table (vat_main_t * vam) u32 miss_next_index = ~0; u32 memory_size = 32 << 20; u8 *mask = 0; - f64 timeout; u32 current_data_flag = 0; int current_data_offset = 0; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -8941,7 +9393,7 @@ api_classify_add_del_table (vat_main_t * vam) return -99; } - M2 (CLASSIFY_ADD_DEL_TABLE, classify_add_del_table, vec_len (mask)); + M2 (CLASSIFY_ADD_DEL_TABLE, mp, vec_len (mask)); mp->is_add = is_add; mp->del_chain = del_chain; @@ -8958,9 +9410,9 @@ api_classify_add_del_table (vat_main_t * vam) vec_free (mask); - S; - W; - /* NOTREACHED */ + S (mp); + W (ret); + return ret; } uword @@ -9410,11 +9862,11 @@ api_classify_add_del_session (vat_main_t * vam) u32 opaque_index = ~0; u8 *match = 0; i32 advance = 0; - f64 timeout; u32 skip_n_vectors = 0; u32 match_n_vectors = 0; u32 action = 0; u32 metadata = 0; + int ret; /* * Warning: you have to supply skip_n and match_n @@ -9476,7 +9928,7 @@ api_classify_add_del_session (vat_main_t * vam) return -99; } - M2 (CLASSIFY_ADD_DEL_SESSION, classify_add_del_session, vec_len (match)); + M2 (CLASSIFY_ADD_DEL_SESSION, mp, vec_len (match)); mp->is_add = is_add; mp->table_index = ntohl (table_index); @@ -9488,9 +9940,9 @@ api_classify_add_del_session (vat_main_t * vam) clib_memcpy (mp->match, match, vec_len (match)); vec_free (match); - S; - W; - /* NOTREACHED */ + S (mp); + W (ret); + return ret; } static int @@ -9498,11 +9950,11 @@ api_classify_set_interface_ip_table (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_classify_set_interface_ip_table_t *mp; - f64 timeout; u32 sw_if_index; int sw_if_index_set; u32 table_index = ~0; u8 is_ipv6 = 0; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -9526,16 +9978,15 @@ api_classify_set_interface_ip_table (vat_main_t * vam) } - M (CLASSIFY_SET_INTERFACE_IP_TABLE, classify_set_interface_ip_table); + M (CLASSIFY_SET_INTERFACE_IP_TABLE, mp); mp->sw_if_index = ntohl (sw_if_index); mp->table_index = ntohl (table_index); mp->is_ipv6 = is_ipv6; - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -9543,13 +9994,13 @@ api_classify_set_interface_l2_tables (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_classify_set_interface_l2_tables_t *mp; - f64 timeout; u32 sw_if_index; int sw_if_index_set; u32 ip4_table_index = ~0; u32 ip6_table_index = ~0; u32 other_table_index = ~0; u32 is_input = 1; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -9579,7 +10030,7 @@ api_classify_set_interface_l2_tables (vat_main_t * vam) } - M (CLASSIFY_SET_INTERFACE_L2_TABLES, classify_set_interface_l2_tables); + M (CLASSIFY_SET_INTERFACE_L2_TABLES, mp); mp->sw_if_index = ntohl (sw_if_index); mp->ip4_table_index = ntohl (ip4_table_index); @@ -9587,10 +10038,9 @@ api_classify_set_interface_l2_tables (vat_main_t * vam) mp->other_table_index = ntohl (other_table_index); mp->is_input = (u8) is_input; - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -9607,7 +10057,7 @@ api_set_ipfix_exporter (vat_main_t * vam) u32 path_mtu = ~0; u32 template_interval = ~0; u8 udp_checksum = 0; - f64 timeout; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -9643,7 +10093,7 @@ api_set_ipfix_exporter (vat_main_t * vam) return -99; } - M (SET_IPFIX_EXPORTER, set_ipfix_exporter); + M (SET_IPFIX_EXPORTER, mp); memcpy (mp->collector_address, collector_address.data, sizeof (collector_address.data)); @@ -9654,9 +10104,9 @@ api_set_ipfix_exporter (vat_main_t * vam) mp->template_interval = htonl (template_interval); mp->udp_checksum = udp_checksum; - S; - W; - /* NOTREACHED */ + S (mp); + W (ret); + return ret; } static int @@ -9666,7 +10116,7 @@ api_set_ipfix_classify_stream (vat_main_t * vam) vl_api_set_ipfix_classify_stream_t *mp; u32 domain_id = 0; u32 src_port = UDP_DST_PORT_ipfix; - f64 timeout; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -9681,14 +10131,14 @@ api_set_ipfix_classify_stream (vat_main_t * vam) } } - M (SET_IPFIX_CLASSIFY_STREAM, set_ipfix_classify_stream); + M (SET_IPFIX_CLASSIFY_STREAM, mp); mp->domain_id = htonl (domain_id); mp->src_port = htons ((u16) src_port); - S; - W; - /* NOTREACHED */ + S (mp); + W (ret); + return ret; } static int @@ -9700,7 +10150,7 @@ api_ipfix_classify_table_add_del (vat_main_t * vam) u32 classify_table_index = ~0; u8 ip_version = 0; u8 transport_protocol = 255; - f64 timeout; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -9741,16 +10191,16 @@ api_ipfix_classify_table_add_del (vat_main_t * vam) return -99; } - M (IPFIX_CLASSIFY_TABLE_ADD_DEL, ipfix_classify_table_add_del); + M (IPFIX_CLASSIFY_TABLE_ADD_DEL, mp); mp->is_add = is_add; mp->table_id = htonl (classify_table_index); mp->ip_version = ip_version; mp->transport_protocol = transport_protocol; - S; - W; - /* NOTREACHED */ + S (mp); + W (ret); + return ret; } static int @@ -9758,8 +10208,8 @@ api_get_node_index (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_get_node_index_t *mp; - f64 timeout; u8 *name = 0; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -9779,14 +10229,13 @@ api_get_node_index (vat_main_t * vam) return -99; } - M (GET_NODE_INDEX, get_node_index); + M (GET_NODE_INDEX, mp); clib_memcpy (mp->node_name, name, vec_len (name)); vec_free (name); - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -9794,8 +10243,8 @@ api_get_next_index (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_get_next_index_t *mp; - f64 timeout; u8 *node_name = 0, *next_node_name = 0; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -9827,16 +10276,15 @@ api_get_next_index (vat_main_t * vam) return -99; } - M (GET_NEXT_INDEX, get_next_index); + M (GET_NEXT_INDEX, mp); clib_memcpy (mp->node_name, node_name, vec_len (node_name)); clib_memcpy (mp->next_name, next_node_name, vec_len (next_node_name)); vec_free (node_name); vec_free (next_node_name); - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -9844,9 +10292,9 @@ api_add_node_next (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_add_node_next_t *mp; - f64 timeout; u8 *name = 0; u8 *next = 0; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -9878,16 +10326,15 @@ api_add_node_next (vat_main_t * vam) return -99; } - M (ADD_NODE_NEXT, add_node_next); + M (ADD_NODE_NEXT, mp); clib_memcpy (mp->node_name, name, vec_len (name)); clib_memcpy (mp->next_name, next, vec_len (next)); vec_free (name); vec_free (next); - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -9903,7 +10350,7 @@ api_l2tpv3_create_tunnel (vat_main_t * vam) u64 remote_cookie = 0; u8 l2_sublayer_present = 0; vl_api_l2tpv3_create_tunnel_t *mp; - f64 timeout; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -9939,7 +10386,7 @@ api_l2tpv3_create_tunnel (vat_main_t * vam) return -99; } - M (L2TPV3_CREATE_TUNNEL, l2tpv3_create_tunnel); + M (L2TPV3_CREATE_TUNNEL, mp); clib_memcpy (mp->client_address, client_address.as_u8, sizeof (mp->client_address)); @@ -9953,10 +10400,9 @@ api_l2tpv3_create_tunnel (vat_main_t * vam) mp->l2_sublayer_present = l2_sublayer_present; mp->is_ipv6 = 1; - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -9968,7 +10414,7 @@ api_l2tpv3_set_tunnel_cookies (vat_main_t * vam) u64 new_local_cookie = 0; u64 new_remote_cookie = 0; vl_api_l2tpv3_set_tunnel_cookies_t *mp; - f64 timeout; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -9990,16 +10436,15 @@ api_l2tpv3_set_tunnel_cookies (vat_main_t * vam) return -99; } - M (L2TPV3_SET_TUNNEL_COOKIES, l2tpv3_set_tunnel_cookies); + M (L2TPV3_SET_TUNNEL_COOKIES, mp); mp->sw_if_index = ntohl (sw_if_index); mp->new_local_cookie = clib_host_to_net_u64 (new_local_cookie); mp->new_remote_cookie = clib_host_to_net_u64 (new_remote_cookie); - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -10007,10 +10452,10 @@ api_l2tpv3_interface_enable_disable (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_l2tpv3_interface_enable_disable_t *mp; - f64 timeout; u32 sw_if_index; u8 sw_if_index_set = 0; u8 enable_disable = 1; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -10032,15 +10477,14 @@ api_l2tpv3_interface_enable_disable (vat_main_t * vam) return -99; } - M (L2TPV3_INTERFACE_ENABLE_DISABLE, l2tpv3_interface_enable_disable); + M (L2TPV3_INTERFACE_ENABLE_DISABLE, mp); mp->sw_if_index = ntohl (sw_if_index); mp->enable_disable = enable_disable; - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -10048,8 +10492,8 @@ api_l2tpv3_set_lookup_key (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_l2tpv3_set_lookup_key_t *mp; - f64 timeout; u8 key = ~0; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -10069,14 +10513,13 @@ api_l2tpv3_set_lookup_key (vat_main_t * vam) return -99; } - M (L2TPV3_SET_LOOKUP_KEY, l2tpv3_set_lookup_key); + M (L2TPV3_SET_LOOKUP_KEY, mp); mp->key = key; - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static void vl_api_sw_if_l2tpv3_tunnel_details_t_handler @@ -10146,19 +10589,19 @@ static int api_sw_if_l2tpv3_tunnel_dump (vat_main_t * vam) { vl_api_sw_if_l2tpv3_tunnel_dump_t *mp; - f64 timeout; + vl_api_control_ping_t *mp_ping; + int ret; /* Get list of l2tpv3-tunnel interfaces */ - M (SW_IF_L2TPV3_TUNNEL_DUMP, sw_if_l2tpv3_tunnel_dump); - S; + M (SW_IF_L2TPV3_TUNNEL_DUMP, mp); + S (mp); /* Use a control ping for synchronization */ - { - vl_api_control_ping_t *mp; - M (CONTROL_PING, control_ping); - S; - } - W; + M (CONTROL_PING, mp_ping); + S (mp_ping); + + W (ret); + return ret; } @@ -10193,20 +10636,20 @@ static int api_sw_interface_tap_dump (vat_main_t * vam) { vl_api_sw_interface_tap_dump_t *mp; - f64 timeout; + vl_api_control_ping_t *mp_ping; + int ret; print (vam->ofp, "\n%-16s %s", "dev_name", "sw_if_index"); /* Get list of tap interfaces */ - M (SW_INTERFACE_TAP_DUMP, sw_interface_tap_dump); - S; + M (SW_INTERFACE_TAP_DUMP, mp); + S (mp); /* Use a control ping for synchronization */ - { - vl_api_control_ping_t *mp; - M (CONTROL_PING, control_ping); - S; - } - W; + M (CONTROL_PING, mp_ping); + S (mp_ping); + + W (ret); + return ret; } static uword unformat_vxlan_decap_next @@ -10229,7 +10672,6 @@ api_vxlan_add_del_tunnel (vat_main_t * vam) { unformat_input_t *line_input = vam->input; vl_api_vxlan_add_del_tunnel_t *mp; - f64 timeout; ip46_address_t src, dst; u8 is_add = 1; u8 ipv4_set = 0, ipv6_set = 0; @@ -10240,6 +10682,7 @@ api_vxlan_add_del_tunnel (vat_main_t * vam) u32 encap_vrf_id = 0; u32 decap_next_index = ~0; u32 vni = 0; + int ret; /* Can't "universally zero init" (={0}) due to GCC bug 53119 */ memset (&src, 0, sizeof src); @@ -10356,7 +10799,7 @@ api_vxlan_add_del_tunnel (vat_main_t * vam) return -99; } - M (VXLAN_ADD_DEL_TUNNEL, vxlan_add_del_tunnel); + M (VXLAN_ADD_DEL_TUNNEL, mp); if (ipv6_set) { @@ -10375,10 +10818,9 @@ api_vxlan_add_del_tunnel (vat_main_t * vam) mp->is_add = is_add; mp->is_ipv6 = ipv6_set; - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static void vl_api_vxlan_tunnel_details_t_handler @@ -10446,9 +10888,10 @@ api_vxlan_tunnel_dump (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_vxlan_tunnel_dump_t *mp; - f64 timeout; + vl_api_control_ping_t *mp_ping; u32 sw_if_index; u8 sw_if_index_set = 0; + int ret; /* Parse args required to build the message */ while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) @@ -10472,19 +10915,18 @@ api_vxlan_tunnel_dump (vat_main_t * vam) } /* Get list of vxlan-tunnel interfaces */ - M (VXLAN_TUNNEL_DUMP, vxlan_tunnel_dump); + M (VXLAN_TUNNEL_DUMP, mp); mp->sw_if_index = htonl (sw_if_index); - S; + S (mp); /* Use a control ping for synchronization */ - { - vl_api_control_ping_t *mp; - M (CONTROL_PING, control_ping); - S; - } - W; + M (CONTROL_PING, mp_ping); + S (mp_ping); + + W (ret); + return ret; } static int @@ -10492,13 +10934,13 @@ api_gre_add_del_tunnel (vat_main_t * vam) { unformat_input_t *line_input = vam->input; vl_api_gre_add_del_tunnel_t *mp; - f64 timeout; ip4_address_t src4, dst4; u8 is_add = 1; u8 teb = 0; u8 src_set = 0; u8 dst_set = 0; u32 outer_fib_id = 0; + int ret; while (unformat_check_input (line_input) != UNFORMAT_END_OF_INPUT) { @@ -10531,7 +10973,7 @@ api_gre_add_del_tunnel (vat_main_t * vam) } - M (GRE_ADD_DEL_TUNNEL, gre_add_del_tunnel); + M (GRE_ADD_DEL_TUNNEL, mp); clib_memcpy (&mp->src_address, &src4, sizeof (src4)); clib_memcpy (&mp->dst_address, &dst4, sizeof (dst4)); @@ -10539,10 +10981,9 @@ api_gre_add_del_tunnel (vat_main_t * vam) mp->is_add = is_add; mp->teb = teb; - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static void vl_api_gre_tunnel_details_t_handler @@ -10586,9 +11027,10 @@ api_gre_tunnel_dump (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_gre_tunnel_dump_t *mp; - f64 timeout; + vl_api_control_ping_t *mp_ping; u32 sw_if_index; u8 sw_if_index_set = 0; + int ret; /* Parse args required to build the message */ while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) @@ -10612,19 +11054,18 @@ api_gre_tunnel_dump (vat_main_t * vam) } /* Get list of gre-tunnel interfaces */ - M (GRE_TUNNEL_DUMP, gre_tunnel_dump); + M (GRE_TUNNEL_DUMP, mp); mp->sw_if_index = htonl (sw_if_index); - S; + S (mp); /* Use a control ping for synchronization */ - { - vl_api_control_ping_t *mp; - M (CONTROL_PING, control_ping); - S; - } - W; + M (CONTROL_PING, mp_ping); + S (mp_ping); + + W (ret); + return ret; } static int @@ -10632,14 +11073,13 @@ api_l2_fib_clear_table (vat_main_t * vam) { // unformat_input_t * i = vam->input; vl_api_l2_fib_clear_table_t *mp; - f64 timeout; + int ret; - M (L2_FIB_CLEAR_TABLE, l2_fib_clear_table); + M (L2_FIB_CLEAR_TABLE, mp); - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -10647,10 +11087,10 @@ api_l2_interface_efp_filter (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_l2_interface_efp_filter_t *mp; - f64 timeout; u32 sw_if_index; u8 enable = 1; u8 sw_if_index_set = 0; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -10675,15 +11115,14 @@ api_l2_interface_efp_filter (vat_main_t * vam) return -99; } - M (L2_INTERFACE_EFP_FILTER, l2_interface_efp_filter); + M (L2_INTERFACE_EFP_FILTER, mp); mp->sw_if_index = ntohl (sw_if_index); mp->enable_disable = enable; - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } #define foreach_vtr_op \ @@ -10702,7 +11141,6 @@ api_l2_interface_vlan_tag_rewrite (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_l2_interface_vlan_tag_rewrite_t *mp; - f64 timeout; u32 sw_if_index; u8 sw_if_index_set = 0; u8 vtr_op_set = 0; @@ -10710,6 +11148,7 @@ api_l2_interface_vlan_tag_rewrite (vat_main_t * vam) u32 push_dot1q = 1; u32 tag1 = ~0; u32 tag2 = ~0; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -10741,17 +11180,16 @@ api_l2_interface_vlan_tag_rewrite (vat_main_t * vam) return -99; } - M (L2_INTERFACE_VLAN_TAG_REWRITE, l2_interface_vlan_tag_rewrite) - mp->sw_if_index = ntohl (sw_if_index); + M (L2_INTERFACE_VLAN_TAG_REWRITE, mp); + mp->sw_if_index = ntohl (sw_if_index); mp->vtr_op = ntohl (vtr_op); mp->push_dot1q = ntohl (push_dot1q); mp->tag1 = ntohl (tag1); mp->tag2 = ntohl (tag2); - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -10759,7 +11197,6 @@ api_create_vhost_user_if (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_create_vhost_user_if_t *mp; - f64 timeout; u8 *file_name; u8 is_server = 0; u8 file_name_set = 0; @@ -10767,6 +11204,7 @@ api_create_vhost_user_if (vat_main_t * vam) u8 hwaddr[6]; u8 use_custom_mac = 0; u8 *tag = 0; + int ret; /* Shut up coverity */ memset (hwaddr, 0, sizeof (hwaddr)); @@ -10802,7 +11240,7 @@ api_create_vhost_user_if (vat_main_t * vam) } vec_add1 (file_name, 0); - M (CREATE_VHOST_USER_IF, create_vhost_user_if); + M (CREATE_VHOST_USER_IF, mp); mp->is_server = is_server; clib_memcpy (mp->sock_filename, file_name, vec_len (file_name)); @@ -10818,10 +11256,9 @@ api_create_vhost_user_if (vat_main_t * vam) strncpy ((char *) mp->tag, (char *) tag, ARRAY_LEN (mp->tag) - 1); vec_free (tag); - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -10829,13 +11266,13 @@ api_modify_vhost_user_if (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_modify_vhost_user_if_t *mp; - f64 timeout; u8 *file_name; u8 is_server = 0; u8 file_name_set = 0; u32 custom_dev_instance = ~0; u8 sw_if_index_set = 0; u32 sw_if_index = (u32) ~ 0; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -10874,7 +11311,7 @@ api_modify_vhost_user_if (vat_main_t * vam) } vec_add1 (file_name, 0); - M (MODIFY_VHOST_USER_IF, modify_vhost_user_if); + M (MODIFY_VHOST_USER_IF, mp); mp->sw_if_index = ntohl (sw_if_index); mp->is_server = is_server; @@ -10886,10 +11323,9 @@ api_modify_vhost_user_if (vat_main_t * vam) mp->custom_dev_instance = ntohl (custom_dev_instance); } - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -10897,9 +11333,9 @@ api_delete_vhost_user_if (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_delete_vhost_user_if_t *mp; - f64 timeout; u32 sw_if_index = ~0; u8 sw_if_index_set = 0; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -10918,14 +11354,13 @@ api_delete_vhost_user_if (vat_main_t * vam) } - M (DELETE_VHOST_USER_IF, delete_vhost_user_if); + M (DELETE_VHOST_USER_IF, mp); mp->sw_if_index = ntohl (sw_if_index); - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static void vl_api_sw_interface_vhost_user_details_t_handler @@ -10972,35 +11407,34 @@ static int api_sw_interface_vhost_user_dump (vat_main_t * vam) { vl_api_sw_interface_vhost_user_dump_t *mp; - f64 timeout; + vl_api_control_ping_t *mp_ping; + int ret; print (vam->ofp, "Interface name idx hdr_sz features server regions filename"); /* Get list of vhost-user interfaces */ - M (SW_INTERFACE_VHOST_USER_DUMP, sw_interface_vhost_user_dump); - S; + M (SW_INTERFACE_VHOST_USER_DUMP, mp); + S (mp); /* Use a control ping for synchronization */ - { - vl_api_control_ping_t *mp; - M (CONTROL_PING, control_ping); - S; - } - W; + M (CONTROL_PING, mp_ping); + S (mp_ping); + + W (ret); + return ret; } static int api_show_version (vat_main_t * vam) { vl_api_show_version_t *mp; - f64 timeout; + int ret; - M (SHOW_VERSION, show_version); + M (SHOW_VERSION, mp); - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } @@ -11009,7 +11443,6 @@ api_vxlan_gpe_add_del_tunnel (vat_main_t * vam) { unformat_input_t *line_input = vam->input; vl_api_vxlan_gpe_add_del_tunnel_t *mp; - f64 timeout; ip4_address_t local4, remote4; ip6_address_t local6, remote6; u8 is_add = 1; @@ -11021,6 +11454,7 @@ api_vxlan_gpe_add_del_tunnel (vat_main_t * vam) u8 protocol = ~0; u32 vni; u8 vni_set = 0; + int ret; while (unformat_check_input (line_input) != UNFORMAT_END_OF_INPUT) { @@ -11093,7 +11527,7 @@ api_vxlan_gpe_add_del_tunnel (vat_main_t * vam) return -99; } - M (VXLAN_GPE_ADD_DEL_TUNNEL, vxlan_gpe_add_del_tunnel); + M (VXLAN_GPE_ADD_DEL_TUNNEL, mp); if (ipv6_set) @@ -11114,10 +11548,9 @@ api_vxlan_gpe_add_del_tunnel (vat_main_t * vam) mp->is_add = is_add; mp->is_ipv6 = ipv6_set; - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static void vl_api_vxlan_gpe_tunnel_details_t_handler @@ -11177,9 +11610,10 @@ api_vxlan_gpe_tunnel_dump (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_vxlan_gpe_tunnel_dump_t *mp; - f64 timeout; + vl_api_control_ping_t *mp_ping; u32 sw_if_index; u8 sw_if_index_set = 0; + int ret; /* Parse args required to build the message */ while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) @@ -11203,19 +11637,18 @@ api_vxlan_gpe_tunnel_dump (vat_main_t * vam) } /* Get list of vxlan-tunnel interfaces */ - M (VXLAN_GPE_TUNNEL_DUMP, vxlan_gpe_tunnel_dump); + M (VXLAN_GPE_TUNNEL_DUMP, mp); mp->sw_if_index = htonl (sw_if_index); - S; + S (mp); /* Use a control ping for synchronization */ - { - vl_api_control_ping_t *mp; - M (CONTROL_PING, control_ping); - S; - } - W; + M (CONTROL_PING, mp_ping); + S (mp_ping); + + W (ret); + return ret; } u8 * @@ -11266,9 +11699,10 @@ api_l2_fib_table_dump (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_l2_fib_table_dump_t *mp; - f64 timeout; + vl_api_control_ping_t *mp_ping; u32 bd_id; u8 bd_id_set = 0; + int ret; /* Parse args required to build the message */ while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) @@ -11288,18 +11722,17 @@ api_l2_fib_table_dump (vat_main_t * vam) print (vam->ofp, "BD-ID Mac Address sw-ndx Static Filter BVI"); /* Get list of l2 fib entries */ - M (L2_FIB_TABLE_DUMP, l2_fib_table_dump); + M (L2_FIB_TABLE_DUMP, mp); mp->bd_id = ntohl (bd_id); - S; + S (mp); /* Use a control ping for synchronization */ - { - vl_api_control_ping_t *mp; - M (CONTROL_PING, control_ping); - S; - } - W; + M (CONTROL_PING, mp_ping); + S (mp_ping); + + W (ret); + return ret; } @@ -11309,8 +11742,8 @@ api_interface_name_renumber (vat_main_t * vam) unformat_input_t *line_input = vam->input; vl_api_interface_name_renumber_t *mp; u32 sw_if_index = ~0; - f64 timeout; u32 new_show_dev_instance = ~0; + int ret; while (unformat_check_input (line_input) != UNFORMAT_END_OF_INPUT) { @@ -11338,13 +11771,14 @@ api_interface_name_renumber (vat_main_t * vam) return -99; } - M (INTERFACE_NAME_RENUMBER, interface_name_renumber); + M (INTERFACE_NAME_RENUMBER, mp); mp->sw_if_index = ntohl (sw_if_index); mp->new_show_dev_instance = ntohl (new_show_dev_instance); - S; - W; + S (mp); + W (ret); + return ret; } static int @@ -11352,10 +11786,10 @@ api_want_ip4_arp_events (vat_main_t * vam) { unformat_input_t *line_input = vam->input; vl_api_want_ip4_arp_events_t *mp; - f64 timeout; ip4_address_t address; int address_set = 0; u32 enable_disable = 1; + int ret; while (unformat_check_input (line_input) != UNFORMAT_END_OF_INPUT) { @@ -11373,13 +11807,14 @@ api_want_ip4_arp_events (vat_main_t * vam) return -99; } - M (WANT_IP4_ARP_EVENTS, want_ip4_arp_events); + M (WANT_IP4_ARP_EVENTS, mp); mp->enable_disable = enable_disable; mp->pid = getpid (); mp->address = address.as_u32; - S; - W; + S (mp); + W (ret); + return ret; } static int @@ -11387,10 +11822,10 @@ api_want_ip6_nd_events (vat_main_t * vam) { unformat_input_t *line_input = vam->input; vl_api_want_ip6_nd_events_t *mp; - f64 timeout; ip6_address_t address; int address_set = 0; u32 enable_disable = 1; + int ret; while (unformat_check_input (line_input) != UNFORMAT_END_OF_INPUT) { @@ -11408,13 +11843,14 @@ api_want_ip6_nd_events (vat_main_t * vam) return -99; } - M (WANT_IP6_ND_EVENTS, want_ip6_nd_events); + M (WANT_IP6_ND_EVENTS, mp); mp->enable_disable = enable_disable; mp->pid = getpid (); clib_memcpy (mp->address, &address, sizeof (ip6_address_t)); - S; - W; + S (mp); + W (ret); + return ret; } static int @@ -11422,13 +11858,13 @@ api_input_acl_set_interface (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_input_acl_set_interface_t *mp; - f64 timeout; u32 sw_if_index; int sw_if_index_set; u32 ip4_table_index = ~0; u32 ip6_table_index = ~0; u32 l2_table_index = ~0; u8 is_add = 1; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -11457,7 +11893,7 @@ api_input_acl_set_interface (vat_main_t * vam) return -99; } - M (INPUT_ACL_SET_INTERFACE, input_acl_set_interface); + M (INPUT_ACL_SET_INTERFACE, mp); mp->sw_if_index = ntohl (sw_if_index); mp->ip4_table_index = ntohl (ip4_table_index); @@ -11465,10 +11901,9 @@ api_input_acl_set_interface (vat_main_t * vam) mp->l2_table_index = ntohl (l2_table_index); mp->is_add = is_add; - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -11476,11 +11911,12 @@ api_ip_address_dump (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_ip_address_dump_t *mp; + vl_api_control_ping_t *mp_ping; u32 sw_if_index = ~0; u8 sw_if_index_set = 0; u8 ipv4_set = 0; u8 ipv6_set = 0; - f64 timeout; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -11518,30 +11954,30 @@ api_ip_address_dump (vat_main_t * vam) vam->current_sw_if_index = sw_if_index; vam->is_ipv6 = ipv6_set; - M (IP_ADDRESS_DUMP, ip_address_dump); + M (IP_ADDRESS_DUMP, mp); mp->sw_if_index = ntohl (sw_if_index); mp->is_ipv6 = ipv6_set; - S; + S (mp); /* Use a control ping for synchronization */ - { - vl_api_control_ping_t *mp; - M (CONTROL_PING, control_ping); - S; - } - W; + M (CONTROL_PING, mp_ping); + S (mp_ping); + + W (ret); + return ret; } static int api_ip_dump (vat_main_t * vam) { vl_api_ip_dump_t *mp; + vl_api_control_ping_t *mp_ping; unformat_input_t *in = vam->input; int ipv4_set = 0; int ipv6_set = 0; int is_ipv6; - f64 timeout; int i; + int ret; while (unformat_check_input (in) != UNFORMAT_END_OF_INPUT) { @@ -11575,17 +12011,16 @@ api_ip_dump (vat_main_t * vam) } vec_free (vam->ip_details_by_sw_if_index[is_ipv6]); - M (IP_DUMP, ip_dump); + M (IP_DUMP, mp); mp->is_ipv6 = ipv6_set; - S; + S (mp); /* Use a control ping for synchronization */ - { - vl_api_control_ping_t *mp; - M (CONTROL_PING, control_ping); - S; - } - W; + M (CONTROL_PING, mp_ping); + S (mp_ping); + + W (ret); + return ret; } static int @@ -11593,9 +12028,9 @@ api_ipsec_spd_add_del (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_ipsec_spd_add_del_t *mp; - f64 timeout; u32 spd_id = ~0; u8 is_add = 1; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -11615,15 +12050,14 @@ api_ipsec_spd_add_del (vat_main_t * vam) return -99; } - M (IPSEC_SPD_ADD_DEL, ipsec_spd_add_del); + M (IPSEC_SPD_ADD_DEL, mp); mp->spd_id = ntohl (spd_id); mp->is_add = is_add; - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -11631,11 +12065,11 @@ api_ipsec_interface_add_del_spd (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_ipsec_interface_add_del_spd_t *mp; - f64 timeout; u32 sw_if_index; u8 sw_if_index_set = 0; u32 spd_id = (u32) ~ 0; u8 is_add = 1; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -11668,16 +12102,15 @@ api_ipsec_interface_add_del_spd (vat_main_t * vam) return -99; } - M (IPSEC_INTERFACE_ADD_DEL_SPD, ipsec_interface_add_del_spd); + M (IPSEC_INTERFACE_ADD_DEL_SPD, mp); mp->spd_id = ntohl (spd_id); mp->sw_if_index = ntohl (sw_if_index); mp->is_add = is_add; - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -11685,7 +12118,6 @@ api_ipsec_spd_add_del_entry (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_ipsec_spd_add_del_entry_t *mp; - f64 timeout; u8 is_add = 1, is_outbound = 0, is_ipv6 = 0, is_ip_any = 1; u32 spd_id = 0, sa_id = 0, protocol = 0, policy = 0; i32 priority = 0; @@ -11693,6 +12125,7 @@ api_ipsec_spd_add_del_entry (vat_main_t * vam) u32 lport_start = 0, lport_stop = (u32) ~ 0; ip4_address_t laddr4_start, laddr4_stop, raddr4_start, raddr4_stop; ip6_address_t laddr6_start, laddr6_stop, raddr6_start, raddr6_stop; + int ret; laddr4_start.as_u32 = raddr4_start.as_u32 = 0; laddr4_stop.as_u32 = raddr4_stop.as_u32 = (u32) ~ 0; @@ -11794,7 +12227,7 @@ api_ipsec_spd_add_del_entry (vat_main_t * vam) } - M (IPSEC_SPD_ADD_DEL_ENTRY, ipsec_spd_add_del_entry); + M (IPSEC_SPD_ADD_DEL_ENTRY, mp); mp->spd_id = ntohl (spd_id); mp->priority = ntohl (priority); @@ -11832,10 +12265,9 @@ api_ipsec_spd_add_del_entry (vat_main_t * vam) mp->sa_id = ntohl (sa_id); mp->is_add = is_add; mp->is_ip_any = is_ip_any; - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -11843,7 +12275,6 @@ api_ipsec_sad_add_del_entry (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_ipsec_sad_add_del_entry_t *mp; - f64 timeout; u32 sad_id = 0, spi = 0; u8 *ck = 0, *ik = 0; u8 is_add = 1; @@ -11855,6 +12286,7 @@ api_ipsec_sad_add_del_entry (vat_main_t * vam) ip4_address_t tun_dst4; ip6_address_t tun_src6; ip6_address_t tun_dst6; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -11904,11 +12336,7 @@ api_ipsec_sad_add_del_entry (vat_main_t * vam) if (unformat (i, "integ_alg %U", unformat_ipsec_integ_alg, &integ_alg)) { -#if DPDK_CRYPTO==1 - if (integ_alg < IPSEC_INTEG_ALG_NONE || -#else if (integ_alg < IPSEC_INTEG_ALG_SHA1_96 || -#endif integ_alg >= IPSEC_INTEG_N_ALG) { clib_warning ("unsupported integ-alg: '%U'", @@ -11926,34 +12354,7 @@ api_ipsec_sad_add_del_entry (vat_main_t * vam) } -#if DPDK_CRYPTO==1 - /*Special cases, aes-gcm-128 encryption */ - if (crypto_alg == IPSEC_CRYPTO_ALG_AES_GCM_128) - { - if (integ_alg != IPSEC_INTEG_ALG_NONE - && integ_alg != IPSEC_INTEG_ALG_AES_GCM_128) - { - clib_warning - ("unsupported: aes-gcm-128 crypto-alg needs none as integ-alg"); - return -99; - } - else /*set integ-alg internally to aes-gcm-128 */ - integ_alg = IPSEC_INTEG_ALG_AES_GCM_128; - } - else if (integ_alg == IPSEC_INTEG_ALG_AES_GCM_128) - { - clib_warning ("unsupported integ-alg: aes-gcm-128"); - return -99; - } - else if (integ_alg == IPSEC_INTEG_ALG_NONE) - { - clib_warning ("unsupported integ-alg: none"); - return -99; - } -#endif - - - M (IPSEC_SAD_ADD_DEL_ENTRY, ipsec_sad_add_del_entry); + M (IPSEC_SAD_ADD_DEL_ENTRY, mp); mp->sad_id = ntohl (sad_id); mp->is_add = is_add; @@ -11995,10 +12396,9 @@ api_ipsec_sad_add_del_entry (vat_main_t * vam) } } - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -12006,9 +12406,9 @@ api_ipsec_sa_set_key (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_ipsec_sa_set_key_t *mp; - f64 timeout; u32 sa_id; u8 *ck = 0, *ik = 0; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -12025,7 +12425,7 @@ api_ipsec_sa_set_key (vat_main_t * vam) } } - M (IPSEC_SA_SET_KEY, ipsec_set_sa_key); + M (IPSEC_SA_SET_KEY, mp); mp->sa_id = ntohl (sa_id); mp->crypto_key_length = vec_len (ck); @@ -12042,10 +12442,9 @@ api_ipsec_sa_set_key (vat_main_t * vam) if (ik) clib_memcpy (mp->integrity_key, ik, mp->integrity_key_length); - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -12053,9 +12452,9 @@ api_ikev2_profile_add_del (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_ikev2_profile_add_del_t *mp; - f64 timeout; u8 is_add = 1; u8 *name = 0; + int ret; const char *valid_chars = "a-zA-Z0-9_"; @@ -12084,16 +12483,15 @@ api_ikev2_profile_add_del (vat_main_t * vam) return -99; } - M (IKEV2_PROFILE_ADD_DEL, ikev2_profile_add_del); + M (IKEV2_PROFILE_ADD_DEL, mp); clib_memcpy (mp->name, name, vec_len (name)); mp->is_add = is_add; vec_free (name); - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -12101,11 +12499,11 @@ api_ikev2_profile_set_auth (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_ikev2_profile_set_auth_t *mp; - f64 timeout; u8 *name = 0; u8 *data = 0; u32 auth_method = 0; u8 is_hex = 0; + int ret; const char *valid_chars = "a-zA-Z0-9_"; @@ -12151,7 +12549,7 @@ api_ikev2_profile_set_auth (vat_main_t * vam) return -99; } - M (IKEV2_PROFILE_SET_AUTH, ikev2_profile_set_auth); + M (IKEV2_PROFILE_SET_AUTH, mp); mp->is_hex = is_hex; mp->auth_method = (u8) auth_method; @@ -12161,10 +12559,9 @@ api_ikev2_profile_set_auth (vat_main_t * vam) vec_free (name); vec_free (data); - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -12172,12 +12569,12 @@ api_ikev2_profile_set_id (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_ikev2_profile_set_id_t *mp; - f64 timeout; u8 *name = 0; u8 *data = 0; u8 is_local = 0; u32 id_type = 0; ip4_address_t ip4; + int ret; const char *valid_chars = "a-zA-Z0-9_"; @@ -12231,7 +12628,7 @@ api_ikev2_profile_set_id (vat_main_t * vam) return -99; } - M (IKEV2_PROFILE_SET_ID, ikev2_profile_set_id); + M (IKEV2_PROFILE_SET_ID, mp); mp->is_local = is_local; mp->id_type = (u8) id_type; @@ -12241,10 +12638,9 @@ api_ikev2_profile_set_id (vat_main_t * vam) vec_free (name); vec_free (data); - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -12252,13 +12648,13 @@ api_ikev2_profile_set_ts (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_ikev2_profile_set_ts_t *mp; - f64 timeout; u8 *name = 0; u8 is_local = 0; u32 proto = 0, start_port = 0, end_port = (u32) ~ 0; ip4_address_t start_addr, end_addr; const char *valid_chars = "a-zA-Z0-9_"; + int ret; start_addr.as_u32 = 0; end_addr.as_u32 = (u32) ~ 0; @@ -12301,7 +12697,7 @@ api_ikev2_profile_set_ts (vat_main_t * vam) return -99; } - M (IKEV2_PROFILE_SET_TS, ikev2_profile_set_ts); + M (IKEV2_PROFILE_SET_TS, mp); mp->is_local = is_local; mp->proto = (u8) proto; @@ -12312,10 +12708,9 @@ api_ikev2_profile_set_ts (vat_main_t * vam) clib_memcpy (mp->name, name, vec_len (name)); vec_free (name); - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -12323,8 +12718,8 @@ api_ikev2_set_local_key (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_ikev2_set_local_key_t *mp; - f64 timeout; u8 *file = 0; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -12349,15 +12744,344 @@ api_ikev2_set_local_key (vat_main_t * vam) return -99; } - M (IKEV2_SET_LOCAL_KEY, ikev2_set_local_key); + M (IKEV2_SET_LOCAL_KEY, mp); clib_memcpy (mp->key_file, file, vec_len (file)); vec_free (file); - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; +} + +static int +api_ikev2_set_responder (vat_main_t * vam) +{ + unformat_input_t *i = vam->input; + vl_api_ikev2_set_responder_t *mp; + int ret; + u8 *name = 0; + u32 sw_if_index = ~0; + ip4_address_t address; + + const char *valid_chars = "a-zA-Z0-9_"; + + while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) + { + if (unformat + (i, "%U interface %d address %U", unformat_token, valid_chars, + &name, &sw_if_index, unformat_ip4_address, &address)) + vec_add1 (name, 0); + else + { + errmsg ("parse error '%U'", format_unformat_error, i); + return -99; + } + } + + if (!vec_len (name)) + { + errmsg ("profile name must be specified"); + return -99; + } + + if (vec_len (name) > 64) + { + errmsg ("profile name too long"); + return -99; + } + + M (IKEV2_SET_RESPONDER, mp); + + clib_memcpy (mp->name, name, vec_len (name)); + vec_free (name); + + mp->sw_if_index = sw_if_index; + clib_memcpy (mp->address, &address, sizeof (address)); + + S (mp); + W (ret); + return ret; +} + +static int +api_ikev2_set_ike_transforms (vat_main_t * vam) +{ + unformat_input_t *i = vam->input; + vl_api_ikev2_set_ike_transforms_t *mp; + int ret; + u8 *name = 0; + u32 crypto_alg, crypto_key_size, integ_alg, dh_group; + + const char *valid_chars = "a-zA-Z0-9_"; + + while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) + { + if (unformat (i, "%U %d %d %d %d", unformat_token, valid_chars, &name, + &crypto_alg, &crypto_key_size, &integ_alg, &dh_group)) + vec_add1 (name, 0); + else + { + errmsg ("parse error '%U'", format_unformat_error, i); + return -99; + } + } + + if (!vec_len (name)) + { + errmsg ("profile name must be specified"); + return -99; + } + + if (vec_len (name) > 64) + { + errmsg ("profile name too long"); + return -99; + } + + M (IKEV2_SET_IKE_TRANSFORMS, mp); + + clib_memcpy (mp->name, name, vec_len (name)); + vec_free (name); + mp->crypto_alg = crypto_alg; + mp->crypto_key_size = crypto_key_size; + mp->integ_alg = integ_alg; + mp->dh_group = dh_group; + + S (mp); + W (ret); + return ret; +} + + +static int +api_ikev2_set_esp_transforms (vat_main_t * vam) +{ + unformat_input_t *i = vam->input; + vl_api_ikev2_set_esp_transforms_t *mp; + int ret; + u8 *name = 0; + u32 crypto_alg, crypto_key_size, integ_alg, dh_group; + + const char *valid_chars = "a-zA-Z0-9_"; + + while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) + { + if (unformat (i, "%U %d %d %d %d", unformat_token, valid_chars, &name, + &crypto_alg, &crypto_key_size, &integ_alg, &dh_group)) + vec_add1 (name, 0); + else + { + errmsg ("parse error '%U'", format_unformat_error, i); + return -99; + } + } + + if (!vec_len (name)) + { + errmsg ("profile name must be specified"); + return -99; + } + + if (vec_len (name) > 64) + { + errmsg ("profile name too long"); + return -99; + } + + M (IKEV2_SET_ESP_TRANSFORMS, mp); + + clib_memcpy (mp->name, name, vec_len (name)); + vec_free (name); + mp->crypto_alg = crypto_alg; + mp->crypto_key_size = crypto_key_size; + mp->integ_alg = integ_alg; + mp->dh_group = dh_group; + + S (mp); + W (ret); + return ret; +} + +static int +api_ikev2_set_sa_lifetime (vat_main_t * vam) +{ + unformat_input_t *i = vam->input; + vl_api_ikev2_set_sa_lifetime_t *mp; + int ret; + u8 *name = 0; + u64 lifetime, lifetime_maxdata; + u32 lifetime_jitter, handover; + + const char *valid_chars = "a-zA-Z0-9_"; + + while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) + { + if (unformat (i, "%U %lu %u %u %lu", unformat_token, valid_chars, &name, + &lifetime, &lifetime_jitter, &handover, + &lifetime_maxdata)) + vec_add1 (name, 0); + else + { + errmsg ("parse error '%U'", format_unformat_error, i); + return -99; + } + } + + if (!vec_len (name)) + { + errmsg ("profile name must be specified"); + return -99; + } + + if (vec_len (name) > 64) + { + errmsg ("profile name too long"); + return -99; + } + + M (IKEV2_SET_SA_LIFETIME, mp); + + clib_memcpy (mp->name, name, vec_len (name)); + vec_free (name); + mp->lifetime = lifetime; + mp->lifetime_jitter = lifetime_jitter; + mp->handover = handover; + mp->lifetime_maxdata = lifetime_maxdata; + + S (mp); + W (ret); + return ret; +} + +static int +api_ikev2_initiate_sa_init (vat_main_t * vam) +{ + unformat_input_t *i = vam->input; + vl_api_ikev2_initiate_sa_init_t *mp; + int ret; + u8 *name = 0; + + const char *valid_chars = "a-zA-Z0-9_"; + + while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) + { + if (unformat (i, "%U", unformat_token, valid_chars, &name)) + vec_add1 (name, 0); + else + { + errmsg ("parse error '%U'", format_unformat_error, i); + return -99; + } + } + + if (!vec_len (name)) + { + errmsg ("profile name must be specified"); + return -99; + } + + if (vec_len (name) > 64) + { + errmsg ("profile name too long"); + return -99; + } + + M (IKEV2_INITIATE_SA_INIT, mp); + + clib_memcpy (mp->name, name, vec_len (name)); + vec_free (name); + + S (mp); + W (ret); + return ret; +} + +static int +api_ikev2_initiate_del_ike_sa (vat_main_t * vam) +{ + unformat_input_t *i = vam->input; + vl_api_ikev2_initiate_del_ike_sa_t *mp; + int ret; + u64 ispi; + + + while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) + { + if (unformat (i, "%lx", &ispi)) + ; + else + { + errmsg ("parse error '%U'", format_unformat_error, i); + return -99; + } + } + + M (IKEV2_INITIATE_DEL_IKE_SA, mp); + + mp->ispi = ispi; + + S (mp); + W (ret); + return ret; +} + +static int +api_ikev2_initiate_del_child_sa (vat_main_t * vam) +{ + unformat_input_t *i = vam->input; + vl_api_ikev2_initiate_del_child_sa_t *mp; + int ret; + u32 ispi; + + + while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) + { + if (unformat (i, "%x", &ispi)) + ; + else + { + errmsg ("parse error '%U'", format_unformat_error, i); + return -99; + } + } + + M (IKEV2_INITIATE_DEL_CHILD_SA, mp); + + mp->ispi = ispi; + + S (mp); + W (ret); + return ret; +} + +static int +api_ikev2_initiate_rekey_child_sa (vat_main_t * vam) +{ + unformat_input_t *i = vam->input; + vl_api_ikev2_initiate_rekey_child_sa_t *mp; + int ret; + u32 ispi; + + + while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) + { + if (unformat (i, "%x", &ispi)) + ; + else + { + errmsg ("parse error '%U'", format_unformat_error, i); + return -99; + } + } + + M (IKEV2_INITIATE_REKEY_CHILD_SA, mp); + + mp->ispi = ispi; + + S (mp); + W (ret); + return ret; } /* @@ -12368,7 +13092,6 @@ api_map_add_domain (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_map_add_domain_t *mp; - f64 timeout; ip4_address_t ip4_prefix; ip6_address_t ip6_prefix; @@ -12379,6 +13102,7 @@ api_map_add_domain (vat_main_t * vam) u8 is_translation = 0; u32 mtu = 0; u32 ip6_src_len = 128; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -12419,7 +13143,7 @@ api_map_add_domain (vat_main_t * vam) } /* Construct the API message */ - M (MAP_ADD_DOMAIN, map_add_domain); + M (MAP_ADD_DOMAIN, mp); clib_memcpy (mp->ip4_prefix, &ip4_prefix, sizeof (ip4_prefix)); mp->ip4_prefix_len = ip4_prefix_len; @@ -12437,10 +13161,11 @@ api_map_add_domain (vat_main_t * vam) mp->mtu = htons (mtu); /* send it... */ - S; + S (mp); /* Wait for a reply, return good/bad news */ - W; + W (ret); + return ret; } static int @@ -12448,10 +13173,10 @@ api_map_del_domain (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_map_del_domain_t *mp; - f64 timeout; u32 num_m_args = 0; u32 index; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -12471,15 +13196,16 @@ api_map_del_domain (vat_main_t * vam) } /* Construct the API message */ - M (MAP_DEL_DOMAIN, map_del_domain); + M (MAP_DEL_DOMAIN, mp); mp->index = ntohl (index); /* send it... */ - S; + S (mp); /* Wait for a reply, return good/bad news */ - W; + W (ret); + return ret; } static int @@ -12487,10 +13213,10 @@ api_map_add_del_rule (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_map_add_del_rule_t *mp; - f64 timeout; u8 is_add = 1; ip6_address_t ip6_dst; u32 num_m_args = 0, index, psid = 0; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -12512,7 +13238,7 @@ api_map_add_del_rule (vat_main_t * vam) } /* Construct the API message */ - M (MAP_ADD_DEL_RULE, map_add_del_rule); + M (MAP_ADD_DEL_RULE, mp); mp->index = ntohl (index); mp->is_add = is_add; @@ -12520,31 +13246,32 @@ api_map_add_del_rule (vat_main_t * vam) mp->psid = ntohs (psid); /* send it... */ - S; + S (mp); /* Wait for a reply, return good/bad news */ - W; + W (ret); + return ret; } static int api_map_domain_dump (vat_main_t * vam) { vl_api_map_domain_dump_t *mp; - f64 timeout; + vl_api_control_ping_t *mp_ping; + int ret; /* Construct the API message */ - M (MAP_DOMAIN_DUMP, map_domain_dump); + M (MAP_DOMAIN_DUMP, mp); /* send it... */ - S; + S (mp); /* Use a control ping for synchronization */ - { - vl_api_control_ping_t *mp; - M (CONTROL_PING, control_ping); - S; - } - W; + M (CONTROL_PING, mp_ping); + S (mp_ping); + + W (ret); + return ret; } static int @@ -12552,8 +13279,9 @@ api_map_rule_dump (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_map_rule_dump_t *mp; - f64 timeout; + vl_api_control_ping_t *mp_ping; u32 domain_index = ~0; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -12570,20 +13298,19 @@ api_map_rule_dump (vat_main_t * vam) } /* Construct the API message */ - M (MAP_RULE_DUMP, map_rule_dump); + M (MAP_RULE_DUMP, mp); mp->domain_index = htonl (domain_index); /* send it... */ - S; + S (mp); /* Use a control ping for synchronization */ - { - vl_api_control_ping_t *mp; - M (CONTROL_PING, control_ping); - S; - } - W; + M (CONTROL_PING, mp_ping); + S (mp_ping); + + W (ret); + return ret; } static void vl_api_map_add_domain_reply_t_handler @@ -12624,10 +13351,10 @@ static int api_get_first_msg_id (vat_main_t * vam) { vl_api_get_first_msg_id_t *mp; - f64 timeout; unformat_input_t *i = vam->input; u8 *name; u8 name_set = 0; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -12650,12 +13377,11 @@ api_get_first_msg_id (vat_main_t * vam) return -99; } - M (GET_FIRST_MSG_ID, get_first_msg_id); + M (GET_FIRST_MSG_ID, mp); clib_memcpy (mp->name, name, vec_len (name)); - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -12663,9 +13389,9 @@ api_cop_interface_enable_disable (vat_main_t * vam) { unformat_input_t *line_input = vam->input; vl_api_cop_interface_enable_disable_t *mp; - f64 timeout; u32 sw_if_index = ~0; u8 enable_disable = 1; + int ret; while (unformat_check_input (line_input) != UNFORMAT_END_OF_INPUT) { @@ -12689,14 +13415,15 @@ api_cop_interface_enable_disable (vat_main_t * vam) } /* Construct the API message */ - M (COP_INTERFACE_ENABLE_DISABLE, cop_interface_enable_disable); + M (COP_INTERFACE_ENABLE_DISABLE, mp); mp->sw_if_index = ntohl (sw_if_index); mp->enable_disable = enable_disable; /* send it... */ - S; + S (mp); /* Wait for the reply */ - W; + W (ret); + return ret; } static int @@ -12704,10 +13431,10 @@ api_cop_whitelist_enable_disable (vat_main_t * vam) { unformat_input_t *line_input = vam->input; vl_api_cop_whitelist_enable_disable_t *mp; - f64 timeout; u32 sw_if_index = ~0; u8 ip4 = 0, ip6 = 0, default_cop = 0; u32 fib_id = 0; + int ret; while (unformat_check_input (line_input) != UNFORMAT_END_OF_INPUT) { @@ -12735,7 +13462,7 @@ api_cop_whitelist_enable_disable (vat_main_t * vam) } /* Construct the API message */ - M (COP_WHITELIST_ENABLE_DISABLE, cop_whitelist_enable_disable); + M (COP_WHITELIST_ENABLE_DISABLE, mp); mp->sw_if_index = ntohl (sw_if_index); mp->fib_id = ntohl (fib_id); mp->ip4 = ip4; @@ -12743,23 +13470,25 @@ api_cop_whitelist_enable_disable (vat_main_t * vam) mp->default_cop = default_cop; /* send it... */ - S; + S (mp); /* Wait for the reply */ - W; + W (ret); + return ret; } static int api_get_node_graph (vat_main_t * vam) { vl_api_get_node_graph_t *mp; - f64 timeout; + int ret; - M (GET_NODE_GRAPH, get_node_graph); + M (GET_NODE_GRAPH, mp); /* send it... */ - S; + S (mp); /* Wait for the reply */ - W; + W (ret); + return ret; } /* *INDENT-OFF* */ @@ -12824,29 +13553,19 @@ lisp_eid_put_vat (u8 * dst, u8 eid[16], u8 type) clib_memcpy (dst, eid, lisp_eid_size_vat (type)); } -/* *INDENT-OFF* */ -/** Used for transferring locators via VPP API */ -typedef CLIB_PACKED(struct -{ - u32 sw_if_index; /**< locator sw_if_index */ - u8 priority; /**< locator priority */ - u8 weight; /**< locator weight */ -}) ls_locator_t; -/* *INDENT-ON* */ - static int api_lisp_add_del_locator_set (vat_main_t * vam) { unformat_input_t *input = vam->input; vl_api_lisp_add_del_locator_set_t *mp; - f64 timeout = ~0; u8 is_add = 1; u8 *locator_set_name = NULL; u8 locator_set_name_set = 0; - ls_locator_t locator, *locators = 0; + vl_api_local_locator_t locator, *locators = 0; u32 sw_if_index, priority, weight; u32 data_len = 0; + int ret; /* Parse args required to build the message */ while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) { @@ -12896,10 +13615,10 @@ api_lisp_add_del_locator_set (vat_main_t * vam) } vec_add1 (locator_set_name, 0); - data_len = sizeof (ls_locator_t) * vec_len (locators); + data_len = sizeof (vl_api_local_locator_t) * vec_len (locators); /* Construct the API message */ - M2 (LISP_ADD_DEL_LOCATOR_SET, lisp_add_del_locator_set, data_len); + M2 (LISP_ADD_DEL_LOCATOR_SET, mp, data_len); mp->is_add = is_add; clib_memcpy (mp->locator_set_name, locator_set_name, @@ -12912,13 +13631,11 @@ api_lisp_add_del_locator_set (vat_main_t * vam) vec_free (locators); /* send it... */ - S; + S (mp); /* Wait for a reply... */ - W; - - /* NOTREACHED */ - return 0; + W (ret); + return ret; } static int @@ -12926,7 +13643,6 @@ api_lisp_add_del_locator (vat_main_t * vam) { unformat_input_t *input = vam->input; vl_api_lisp_add_del_locator_t *mp; - f64 timeout = ~0; u32 tmp_if_index = ~0; u32 sw_if_index = ~0; u8 sw_if_index_set = 0; @@ -12938,6 +13654,7 @@ api_lisp_add_del_locator (vat_main_t * vam) u8 is_add = 1; u8 *locator_set_name = NULL; u8 locator_set_name_set = 0; + int ret; /* Parse args required to build the message */ while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) @@ -13016,7 +13733,7 @@ api_lisp_add_del_locator (vat_main_t * vam) vec_add1 (locator_set_name, 0); /* Construct the API message */ - M (LISP_ADD_DEL_LOCATOR, lisp_add_del_locator); + M (LISP_ADD_DEL_LOCATOR, mp); mp->is_add = is_add; mp->sw_if_index = ntohl (sw_if_index); @@ -13027,13 +13744,11 @@ api_lisp_add_del_locator (vat_main_t * vam) vec_free (locator_set_name); /* send it... */ - S; + S (mp); /* Wait for a reply... */ - W; - - /* NOTREACHED */ - return 0; + W (ret); + return ret; } uword @@ -13066,7 +13781,6 @@ api_lisp_add_del_local_eid (vat_main_t * vam) { unformat_input_t *input = vam->input; vl_api_lisp_add_del_local_eid_t *mp; - f64 timeout = ~0; u8 is_add = 1; u8 eid_set = 0; lisp_eid_vat_t _eid, *eid = &_eid; @@ -13075,6 +13789,7 @@ api_lisp_add_del_local_eid (vat_main_t * vam) u32 vni = 0; u16 key_id = 0; u8 *key = 0; + int ret; /* Parse args required to build the message */ while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) @@ -13138,7 +13853,7 @@ api_lisp_add_del_local_eid (vat_main_t * vam) vec_add1 (locator_set_name, 0); /* Construct the API message */ - M (LISP_ADD_DEL_LOCAL_EID, lisp_add_del_local_eid); + M (LISP_ADD_DEL_LOCAL_EID, mp); mp->is_add = is_add; lisp_eid_put_vat (mp->eid, eid->addr, eid->type); @@ -13154,13 +13869,11 @@ api_lisp_add_del_local_eid (vat_main_t * vam) vec_free (key); /* send it... */ - S; + S (mp); /* Wait for a reply... */ - W; - - /* NOTREACHED */ - return 0; + W (ret); + return ret; } /* *INDENT-OFF* */ @@ -13180,7 +13893,6 @@ api_lisp_gpe_add_del_fwd_entry (vat_main_t * vam) u32 dp_table = 0, vni = 0;; unformat_input_t *input = vam->input; vl_api_lisp_gpe_add_del_fwd_entry_t *mp; - f64 timeout = ~0; u8 is_add = 1; lisp_eid_vat_t _rmt_eid, *rmt_eid = &_rmt_eid; lisp_eid_vat_t _lcl_eid, *lcl_eid = &_lcl_eid; @@ -13190,6 +13902,7 @@ api_lisp_gpe_add_del_fwd_entry (vat_main_t * vam) ip6_address_t rmt_rloc6, lcl_rloc6; vl_api_lisp_gpe_locator_t *rmt_locs = 0, *lcl_locs = 0, rloc, *curr_rloc = 0; + int ret; memset (&rloc, 0, sizeof (rloc)); @@ -13280,7 +13993,7 @@ api_lisp_gpe_add_del_fwd_entry (vat_main_t * vam) } /* Construct the API message */ - M2 (LISP_GPE_ADD_DEL_FWD_ENTRY, lisp_gpe_add_del_fwd_entry, + M2 (LISP_GPE_ADD_DEL_FWD_ENTRY, mp, sizeof (vl_api_lisp_gpe_locator_t) * vec_len (rmt_locs) * 2); mp->is_add = is_add; @@ -13307,13 +14020,11 @@ api_lisp_gpe_add_del_fwd_entry (vat_main_t * vam) vec_free (rmt_locs); /* send it... */ - S; + S (mp); /* Wait for a reply... */ - W; - - /* NOTREACHED */ - return 0; + W (ret); + return ret; } static int @@ -13321,12 +14032,12 @@ api_lisp_add_del_map_server (vat_main_t * vam) { unformat_input_t *input = vam->input; vl_api_lisp_add_del_map_server_t *mp; - f64 timeout = ~0; u8 is_add = 1; u8 ipv4_set = 0; u8 ipv6_set = 0; ip4_address_t ipv4; ip6_address_t ipv6; + int ret; /* Parse args required to build the message */ while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) @@ -13360,7 +14071,7 @@ api_lisp_add_del_map_server (vat_main_t * vam) } /* Construct the API message */ - M (LISP_ADD_DEL_MAP_SERVER, lisp_add_del_map_server); + M (LISP_ADD_DEL_MAP_SERVER, mp); mp->is_add = is_add; if (ipv6_set) @@ -13375,13 +14086,11 @@ api_lisp_add_del_map_server (vat_main_t * vam) } /* send it... */ - S; + S (mp); /* Wait for a reply... */ - W; - - /* NOTREACHED */ - return 0; + W (ret); + return ret; } static int @@ -13389,12 +14098,12 @@ api_lisp_add_del_map_resolver (vat_main_t * vam) { unformat_input_t *input = vam->input; vl_api_lisp_add_del_map_resolver_t *mp; - f64 timeout = ~0; u8 is_add = 1; u8 ipv4_set = 0; u8 ipv6_set = 0; ip4_address_t ipv4; ip6_address_t ipv6; + int ret; /* Parse args required to build the message */ while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) @@ -13428,7 +14137,7 @@ api_lisp_add_del_map_resolver (vat_main_t * vam) } /* Construct the API message */ - M (LISP_ADD_DEL_MAP_RESOLVER, lisp_add_del_map_resolver); + M (LISP_ADD_DEL_MAP_RESOLVER, mp); mp->is_add = is_add; if (ipv6_set) @@ -13443,13 +14152,11 @@ api_lisp_add_del_map_resolver (vat_main_t * vam) } /* send it... */ - S; + S (mp); /* Wait for a reply... */ - W; - - /* NOTREACHED */ - return 0; + W (ret); + return ret; } static int @@ -13457,9 +14164,9 @@ api_lisp_gpe_enable_disable (vat_main_t * vam) { unformat_input_t *input = vam->input; vl_api_lisp_gpe_enable_disable_t *mp; - f64 timeout = ~0; u8 is_set = 0; u8 is_en = 1; + int ret; /* Parse args required to build the message */ while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) @@ -13485,18 +14192,16 @@ api_lisp_gpe_enable_disable (vat_main_t * vam) } /* Construct the API message */ - M (LISP_GPE_ENABLE_DISABLE, lisp_gpe_enable_disable); + M (LISP_GPE_ENABLE_DISABLE, mp); mp->is_en = is_en; /* send it... */ - S; + S (mp); /* Wait for a reply... */ - W; - - /* NOTREACHED */ - return 0; + W (ret); + return ret; } static int @@ -13504,9 +14209,9 @@ api_lisp_rloc_probe_enable_disable (vat_main_t * vam) { unformat_input_t *input = vam->input; vl_api_lisp_rloc_probe_enable_disable_t *mp; - f64 timeout = ~0; u8 is_set = 0; u8 is_en = 0; + int ret; /* Parse args required to build the message */ while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) @@ -13529,18 +14234,16 @@ api_lisp_rloc_probe_enable_disable (vat_main_t * vam) } /* Construct the API message */ - M (LISP_RLOC_PROBE_ENABLE_DISABLE, lisp_rloc_probe_enable_disable); + M (LISP_RLOC_PROBE_ENABLE_DISABLE, mp); mp->is_enabled = is_en; /* send it... */ - S; + S (mp); /* Wait for a reply... */ - W; - - /* NOTREACHED */ - return 0; + W (ret); + return ret; } static int @@ -13548,9 +14251,9 @@ api_lisp_map_register_enable_disable (vat_main_t * vam) { unformat_input_t *input = vam->input; vl_api_lisp_map_register_enable_disable_t *mp; - f64 timeout = ~0; u8 is_set = 0; u8 is_en = 0; + int ret; /* Parse args required to build the message */ while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) @@ -13573,18 +14276,16 @@ api_lisp_map_register_enable_disable (vat_main_t * vam) } /* Construct the API message */ - M (LISP_MAP_REGISTER_ENABLE_DISABLE, lisp_map_register_enable_disable); + M (LISP_MAP_REGISTER_ENABLE_DISABLE, mp); mp->is_enabled = is_en; /* send it... */ - S; + S (mp); /* Wait for a reply... */ - W; - - /* NOTREACHED */ - return 0; + W (ret); + return ret; } static int @@ -13592,9 +14293,9 @@ api_lisp_enable_disable (vat_main_t * vam) { unformat_input_t *input = vam->input; vl_api_lisp_enable_disable_t *mp; - f64 timeout = ~0; u8 is_set = 0; u8 is_en = 0; + int ret; /* Parse args required to build the message */ while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) @@ -13619,78 +14320,73 @@ api_lisp_enable_disable (vat_main_t * vam) } /* Construct the API message */ - M (LISP_ENABLE_DISABLE, lisp_enable_disable); + M (LISP_ENABLE_DISABLE, mp); mp->is_en = is_en; /* send it... */ - S; + S (mp); /* Wait for a reply... */ - W; - - /* NOTREACHED */ - return 0; + W (ret); + return ret; } static int api_show_lisp_map_register_state (vat_main_t * vam) { - f64 timeout = ~0; vl_api_show_lisp_map_register_state_t *mp; + int ret; - M (SHOW_LISP_MAP_REGISTER_STATE, show_lisp_map_register_state); + M (SHOW_LISP_MAP_REGISTER_STATE, mp); /* send */ - S; + S (mp); /* wait for reply */ - W; - - return 0; + W (ret); + return ret; } static int api_show_lisp_rloc_probe_state (vat_main_t * vam) { - f64 timeout = ~0; vl_api_show_lisp_rloc_probe_state_t *mp; + int ret; - M (SHOW_LISP_RLOC_PROBE_STATE, show_lisp_rloc_probe_state); + M (SHOW_LISP_RLOC_PROBE_STATE, mp); /* send */ - S; + S (mp); /* wait for reply */ - W; - - return 0; + W (ret); + return ret; } static int api_show_lisp_map_request_mode (vat_main_t * vam) { - f64 timeout = ~0; vl_api_show_lisp_map_request_mode_t *mp; + int ret; - M (SHOW_LISP_MAP_REQUEST_MODE, show_lisp_map_request_mode); + M (SHOW_LISP_MAP_REQUEST_MODE, mp); /* send */ - S; + S (mp); - /* wait for reply */ - W; - - return 0; + /* wait for reply */ + W (ret); + return ret; } static int api_lisp_map_request_mode (vat_main_t * vam) { - f64 timeout = ~0; unformat_input_t *input = vam->input; vl_api_lisp_map_request_mode_t *mp; u8 mode = 0; + int ret; /* Parse args required to build the message */ while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) @@ -13706,18 +14402,16 @@ api_lisp_map_request_mode (vat_main_t * vam) } } - M (LISP_MAP_REQUEST_MODE, lisp_map_request_mode); + M (LISP_MAP_REQUEST_MODE, mp); mp->mode = mode; /* send */ - S; + S (mp); /* wait for reply */ - W; - - /* notreached */ - return 0; + W (ret); + return ret; } /** @@ -13729,12 +14423,12 @@ api_lisp_map_request_mode (vat_main_t * vam) static int api_lisp_pitr_set_locator_set (vat_main_t * vam) { - f64 timeout = ~0; u8 ls_name_set = 0; unformat_input_t *input = vam->input; vl_api_lisp_pitr_set_locator_set_t *mp; u8 is_add = 1; u8 *ls_name = 0; + int ret; /* Parse args required to build the message */ while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) @@ -13756,42 +14450,38 @@ api_lisp_pitr_set_locator_set (vat_main_t * vam) return -99; } - M (LISP_PITR_SET_LOCATOR_SET, lisp_pitr_set_locator_set); + M (LISP_PITR_SET_LOCATOR_SET, mp); mp->is_add = is_add; clib_memcpy (mp->ls_name, ls_name, vec_len (ls_name)); vec_free (ls_name); /* send */ - S; + S (mp); /* wait for reply */ - W; - - /* notreached */ - return 0; + W (ret); + return ret; } static int api_show_lisp_pitr (vat_main_t * vam) { vl_api_show_lisp_pitr_t *mp; - f64 timeout = ~0; + int ret; if (!vam->json_output) { print (vam->ofp, "%=20s", "lisp status:"); } - M (SHOW_LISP_PITR, show_lisp_pitr); + M (SHOW_LISP_PITR, mp); /* send it... */ - S; + S (mp); /* Wait for a reply... */ - W; - - /* NOTREACHED */ - return 0; + W (ret); + return ret; } /** @@ -13800,11 +14490,11 @@ api_show_lisp_pitr (vat_main_t * vam) static int api_lisp_eid_table_add_del_map (vat_main_t * vam) { - f64 timeout = ~0; unformat_input_t *input = vam->input; vl_api_lisp_eid_table_add_del_map_t *mp; u8 is_add = 1, vni_set = 0, vrf_set = 0, bd_index_set = 0; u32 vni, vrf, bd_index; + int ret; /* Parse args required to build the message */ while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) @@ -13833,7 +14523,7 @@ api_lisp_eid_table_add_del_map (vat_main_t * vam) return -99; } - M (LISP_EID_TABLE_ADD_DEL_MAP, lisp_eid_table_add_del_map); + M (LISP_EID_TABLE_ADD_DEL_MAP, mp); mp->is_add = is_add; mp->vni = htonl (vni); @@ -13841,13 +14531,11 @@ api_lisp_eid_table_add_del_map (vat_main_t * vam) mp->is_l2 = bd_index_set; /* send */ - S; + S (mp); /* wait for reply */ - W; - - /* notreached */ - return 0; + W (ret); + return ret; } uword @@ -13890,7 +14578,6 @@ api_lisp_add_del_remote_mapping (vat_main_t * vam) { unformat_input_t *input = vam->input; vl_api_lisp_add_del_remote_mapping_t *mp; - f64 timeout = ~0; u32 vni = 0; lisp_eid_vat_t _eid, *eid = &_eid; lisp_eid_vat_t _seid, *seid = &_seid; @@ -13898,7 +14585,8 @@ api_lisp_add_del_remote_mapping (vat_main_t * vam) u32 action = ~0, p, w, data_len; ip4_address_t rloc4; ip6_address_t rloc6; - rloc_t *rlocs = 0, rloc, *curr_rloc = 0; + vl_api_remote_locator_t *rlocs = 0, rloc, *curr_rloc = 0; + int ret; memset (&rloc, 0, sizeof (rloc)); @@ -13977,9 +14665,9 @@ api_lisp_add_del_remote_mapping (vat_main_t * vam) return -99; } - data_len = vec_len (rlocs) * sizeof (rloc_t); + data_len = vec_len (rlocs) * sizeof (vl_api_remote_locator_t); - M2 (LISP_ADD_DEL_REMOTE_MAPPING, lisp_add_del_remote_mapping, data_len); + M2 (LISP_ADD_DEL_REMOTE_MAPPING, mp, data_len); mp->is_add = is_add; mp->vni = htonl (vni); mp->action = (u8) action; @@ -13996,13 +14684,11 @@ api_lisp_add_del_remote_mapping (vat_main_t * vam) vec_free (rlocs); /* send it... */ - S; + S (mp); /* Wait for a reply... */ - W; - - /* NOTREACHED */ - return 0; + W (ret); + return ret; } /** @@ -14017,7 +14703,6 @@ api_lisp_add_del_adjacency (vat_main_t * vam) { unformat_input_t *input = vam->input; vl_api_lisp_add_del_adjacency_t *mp; - f64 timeout = ~0; u32 vni = 0; ip4_address_t leid4, reid4; ip6_address_t leid6, reid6; @@ -14026,6 +14711,7 @@ api_lisp_add_del_adjacency (vat_main_t * vam) u8 reid_type, leid_type; u32 leid_len = 0, reid_len = 0, len; u8 is_add = 1; + int ret; leid_type = reid_type = (u8) ~ 0; @@ -14097,7 +14783,7 @@ api_lisp_add_del_adjacency (vat_main_t * vam) return -99; } - M (LISP_ADD_DEL_ADJACENCY, lisp_add_del_adjacency); + M (LISP_ADD_DEL_ADJACENCY, mp); mp->is_add = is_add; mp->vni = htonl (vni); mp->leid_len = leid_len; @@ -14124,13 +14810,11 @@ api_lisp_add_del_adjacency (vat_main_t * vam) } /* send it... */ - S; + S (mp); /* Wait for a reply... */ - W; - - /* NOTREACHED */ - return 0; + W (ret); + return ret; } static int @@ -14138,9 +14822,9 @@ api_lisp_gpe_add_del_iface (vat_main_t * vam) { unformat_input_t *input = vam->input; vl_api_lisp_gpe_add_del_iface_t *mp; - f64 timeout = ~0; u8 action_set = 0, is_add = 1, is_l2 = 0, dp_table_set = 0, vni_set = 0; u32 dp_table = 0, vni = 0; + int ret; /* Parse args required to build the message */ while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) @@ -14184,7 +14868,7 @@ api_lisp_gpe_add_del_iface (vat_main_t * vam) } /* Construct the API message */ - M (LISP_GPE_ADD_DEL_IFACE, lisp_gpe_add_del_iface); + M (LISP_GPE_ADD_DEL_IFACE, mp); mp->is_add = is_add; mp->dp_table = dp_table; @@ -14192,13 +14876,11 @@ api_lisp_gpe_add_del_iface (vat_main_t * vam) mp->vni = vni; /* send it... */ - S; + S (mp); /* Wait for a reply... */ - W; - - /* NOTREACHED */ - return 0; + W (ret); + return ret; } /** @@ -14212,10 +14894,10 @@ api_lisp_add_del_map_request_itr_rlocs (vat_main_t * vam) { unformat_input_t *input = vam->input; vl_api_lisp_add_del_map_request_itr_rlocs_t *mp; - f64 timeout = ~0; u8 *locator_set_name = 0; u8 locator_set_name_set = 0; u8 is_add = 1; + int ret; /* Parse args required to build the message */ while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) @@ -14248,7 +14930,7 @@ api_lisp_add_del_map_request_itr_rlocs (vat_main_t * vam) return -99; } - M (LISP_ADD_DEL_MAP_REQUEST_ITR_RLOCS, lisp_add_del_map_request_itr_rlocs); + M (LISP_ADD_DEL_MAP_REQUEST_ITR_RLOCS, mp); mp->is_add = is_add; if (is_add) { @@ -14262,13 +14944,11 @@ api_lisp_add_del_map_request_itr_rlocs (vat_main_t * vam) vec_free (locator_set_name); /* send it... */ - S; + S (mp); /* Wait for a reply... */ - W; - - /* NOTREACHED */ - return 0; + W (ret); + return ret; } static int @@ -14276,10 +14956,11 @@ api_lisp_locator_dump (vat_main_t * vam) { unformat_input_t *input = vam->input; vl_api_lisp_locator_dump_t *mp; - f64 timeout = ~0; + vl_api_control_ping_t *mp_ping; u8 is_index_set = 0, is_name_set = 0; u8 *ls_name = 0; u32 ls_index = ~0; + int ret; /* Parse args required to build the message */ while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) @@ -14322,7 +15003,7 @@ api_lisp_locator_dump (vat_main_t * vam) print (vam->ofp, "%=16s%=16s%=16s", "locator", "priority", "weight"); } - M (LISP_LOCATOR_DUMP, lisp_locator_dump); + M (LISP_LOCATOR_DUMP, mp); mp->is_index_set = is_index_set; if (is_index_set) @@ -14335,28 +15016,25 @@ api_lisp_locator_dump (vat_main_t * vam) } /* send it... */ - S; + S (mp); /* Use a control ping for synchronization */ - { - vl_api_control_ping_t *mp; - M (CONTROL_PING, control_ping); - S; - } - /* Wait for a reply... */ - W; + M (CONTROL_PING, mp_ping); + S (mp_ping); - /* NOTREACHED */ - return 0; + /* Wait for a reply... */ + W (ret); + return ret; } static int api_lisp_locator_set_dump (vat_main_t * vam) { vl_api_lisp_locator_set_dump_t *mp; + vl_api_control_ping_t *mp_ping; unformat_input_t *input = vam->input; - f64 timeout = ~0; u8 filter = 0; + int ret; /* Parse args required to build the message */ while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) @@ -14381,24 +15059,20 @@ api_lisp_locator_set_dump (vat_main_t * vam) print (vam->ofp, "%=10s%=15s", "ls_index", "ls_name"); } - M (LISP_LOCATOR_SET_DUMP, lisp_locator_set_dump); + M (LISP_LOCATOR_SET_DUMP, mp); mp->filter = filter; /* send it... */ - S; + S (mp); /* Use a control ping for synchronization */ - { - vl_api_control_ping_t *mp; - M (CONTROL_PING, control_ping); - S; - } - /* Wait for a reply... */ - W; + M (CONTROL_PING, mp_ping); + S (mp_ping); - /* NOTREACHED */ - return 0; + /* Wait for a reply... */ + W (ret); + return ret; } static int @@ -14408,7 +15082,8 @@ api_lisp_eid_table_map_dump (vat_main_t * vam) u8 mode_set = 0; unformat_input_t *input = vam->input; vl_api_lisp_eid_table_map_dump_t *mp; - f64 timeout = ~0; + vl_api_control_ping_t *mp_ping; + int ret; /* Parse args required to build the message */ while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) @@ -14441,52 +15116,45 @@ api_lisp_eid_table_map_dump (vat_main_t * vam) print (vam->ofp, "%=10s%=10s", "VNI", is_l2 ? "BD" : "VRF"); } - M (LISP_EID_TABLE_MAP_DUMP, lisp_eid_table_map_dump); + M (LISP_EID_TABLE_MAP_DUMP, mp); mp->is_l2 = is_l2; /* send it... */ - S; + S (mp); /* Use a control ping for synchronization */ - { - vl_api_control_ping_t *mp; - M (CONTROL_PING, control_ping); - S; - } - /* Wait for a reply... */ - W; + M (CONTROL_PING, mp_ping); + S (mp_ping); - /* NOTREACHED */ - return 0; + /* Wait for a reply... */ + W (ret); + return ret; } static int api_lisp_eid_table_vni_dump (vat_main_t * vam) { vl_api_lisp_eid_table_vni_dump_t *mp; - f64 timeout = ~0; + vl_api_control_ping_t *mp_ping; + int ret; if (!vam->json_output) { print (vam->ofp, "VNI"); } - M (LISP_EID_TABLE_VNI_DUMP, lisp_eid_table_vni_dump); + M (LISP_EID_TABLE_VNI_DUMP, mp); /* send it... */ - S; + S (mp); /* Use a control ping for synchronization */ - { - vl_api_control_ping_t *mp; - M (CONTROL_PING, control_ping); - S; - } - /* Wait for a reply... */ - W; + M (CONTROL_PING, mp_ping); + S (mp_ping); - /* NOTREACHED */ - return 0; + /* Wait for a reply... */ + W (ret); + return ret; } static int @@ -14494,13 +15162,14 @@ api_lisp_eid_table_dump (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_lisp_eid_table_dump_t *mp; - f64 timeout = ~0; + vl_api_control_ping_t *mp_ping; struct in_addr ip4; struct in6_addr ip6; u8 mac[6]; u8 eid_type = ~0, eid_set = 0; u32 prefix_length = ~0, t, vni = 0; u8 filter = 0; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -14546,7 +15215,7 @@ api_lisp_eid_table_dump (vat_main_t * vam) "type", "ls_index", "ttl", "authoritative", "key_id", "key"); } - M (LISP_EID_TABLE_DUMP, lisp_eid_table_dump); + M (LISP_EID_TABLE_DUMP, mp); mp->filter = filter; if (eid_set) @@ -14574,30 +15243,75 @@ api_lisp_eid_table_dump (vat_main_t * vam) } /* send it... */ - S; + S (mp); /* Use a control ping for synchronization */ - { - vl_api_control_ping_t *mp; - M (CONTROL_PING, control_ping); - S; - } + M (CONTROL_PING, mp_ping); + S (mp_ping); /* Wait for a reply... */ - W; + W (ret); + return ret; +} - /* NOTREACHED */ - return 0; +static int +api_lisp_gpe_fwd_entries_get (vat_main_t * vam) +{ + unformat_input_t *i = vam->input; + vl_api_lisp_gpe_fwd_entries_get_t *mp; + u8 vni_set = 0; + u32 vni = ~0; + int ret; + + while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) + { + if (unformat (i, "vni %d", &vni)) + { + vni_set = 1; + } + else + { + errmsg ("parse error '%U'", format_unformat_error, i); + return -99; + } + } + + if (!vni_set) + { + errmsg ("vni not set!"); + return -99; + } + + if (!vam->json_output) + { + print (vam->ofp, "%10s %10s %s %40s", "fwd_index", "dp_table", + "leid", "reid"); + } + + M (LISP_GPE_FWD_ENTRIES_GET, mp); + mp->vni = clib_host_to_net_u32 (vni); + + /* send it... */ + S (mp); + + /* Wait for a reply... */ + W (ret); + return ret; } +#define vl_api_lisp_gpe_fwd_entries_get_reply_t_endian vl_noop_handler +#define vl_api_lisp_gpe_fwd_entries_get_reply_t_print vl_noop_handler +#define vl_api_lisp_gpe_fwd_entry_path_details_t_endian vl_noop_handler +#define vl_api_lisp_gpe_fwd_entry_path_details_t_print vl_noop_handler + static int api_lisp_adjacencies_get (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_lisp_adjacencies_get_t *mp; - f64 timeout = ~0; u8 vni_set = 0; u32 vni = ~0; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -14623,115 +15337,144 @@ api_lisp_adjacencies_get (vat_main_t * vam) print (vam->ofp, "%s %40s", "leid", "reid"); } - M (LISP_ADJACENCIES_GET, lisp_adjacencies_get); + M (LISP_ADJACENCIES_GET, mp); mp->vni = clib_host_to_net_u32 (vni); /* send it... */ - S; + S (mp); /* Wait for a reply... */ - W; - - /* NOTREACHED */ - return 0; + W (ret); + return ret; } static int api_lisp_map_server_dump (vat_main_t * vam) { vl_api_lisp_map_server_dump_t *mp; - f64 timeout = ~0; + vl_api_control_ping_t *mp_ping; + int ret; if (!vam->json_output) { print (vam->ofp, "%=20s", "Map server"); } - M (LISP_MAP_SERVER_DUMP, lisp_map_server_dump); + M (LISP_MAP_SERVER_DUMP, mp); /* send it... */ - S; + S (mp); /* Use a control ping for synchronization */ - { - vl_api_control_ping_t *mp; - M (CONTROL_PING, control_ping); - S; - } - /* Wait for a reply... */ - W; + M (CONTROL_PING, mp_ping); + S (mp_ping); - /* NOTREACHED */ - return 0; + /* Wait for a reply... */ + W (ret); + return ret; } static int api_lisp_map_resolver_dump (vat_main_t * vam) { vl_api_lisp_map_resolver_dump_t *mp; - f64 timeout = ~0; + vl_api_control_ping_t *mp_ping; + int ret; if (!vam->json_output) { print (vam->ofp, "%=20s", "Map resolver"); } - M (LISP_MAP_RESOLVER_DUMP, lisp_map_resolver_dump); + M (LISP_MAP_RESOLVER_DUMP, mp); /* send it... */ - S; + S (mp); /* Use a control ping for synchronization */ - { - vl_api_control_ping_t *mp; - M (CONTROL_PING, control_ping); - S; - } - /* Wait for a reply... */ - W; + M (CONTROL_PING, mp_ping); + S (mp_ping); - /* NOTREACHED */ - return 0; + /* Wait for a reply... */ + W (ret); + return ret; } static int api_show_lisp_status (vat_main_t * vam) { vl_api_show_lisp_status_t *mp; - f64 timeout = ~0; + int ret; if (!vam->json_output) { print (vam->ofp, "%-20s%-16s", "lisp status", "locator-set"); } - M (SHOW_LISP_STATUS, show_lisp_status); + M (SHOW_LISP_STATUS, mp); /* send it... */ - S; + S (mp); /* Wait for a reply... */ - W; + W (ret); + return ret; +} - /* NOTREACHED */ - return 0; +static int +api_lisp_gpe_fwd_entry_path_dump (vat_main_t * vam) +{ + vl_api_lisp_gpe_fwd_entry_path_dump_t *mp; + vl_api_control_ping_t *mp_ping; + unformat_input_t *i = vam->input; + u32 fwd_entry_index = ~0; + int ret; + + while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) + { + if (unformat (i, "index %d", &fwd_entry_index)) + ; + else + break; + } + + if (~0 == fwd_entry_index) + { + errmsg ("no index specified!"); + return -99; + } + + if (!vam->json_output) + { + print (vam->ofp, "first line"); + } + + M (LISP_GPE_FWD_ENTRY_PATH_DUMP, mp); + + /* send it... */ + S (mp); + /* Use a control ping for synchronization */ + M (CONTROL_PING, mp_ping); + S (mp_ping); + + /* Wait for a reply... */ + W (ret); + return ret; } static int api_lisp_get_map_request_itr_rlocs (vat_main_t * vam) { vl_api_lisp_get_map_request_itr_rlocs_t *mp; - f64 timeout = ~0; + int ret; if (!vam->json_output) { print (vam->ofp, "%=20s", "itr-rlocs:"); } - M (LISP_GET_MAP_REQUEST_ITR_RLOCS, lisp_get_map_request_itr_rlocs); + M (LISP_GET_MAP_REQUEST_ITR_RLOCS, mp); /* send it... */ - S; + S (mp); /* Wait for a reply... */ - W; - - /* NOTREACHED */ - return 0; + W (ret); + return ret; } static int @@ -14739,10 +15482,10 @@ api_af_packet_create (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_af_packet_create_t *mp; - f64 timeout; u8 *host_if_name = 0; u8 hw_addr[6]; u8 random_hw_addr = 1; + int ret; memset (hw_addr, 0, sizeof (hw_addr)); @@ -14768,17 +15511,16 @@ api_af_packet_create (vat_main_t * vam) return -99; } - M (AF_PACKET_CREATE, af_packet_create); + M (AF_PACKET_CREATE, mp); clib_memcpy (mp->host_if_name, host_if_name, vec_len (host_if_name)); clib_memcpy (mp->hw_addr, hw_addr, 6); mp->use_random_hw_addr = random_hw_addr; vec_free (host_if_name); - S; - W2 (fprintf (vam->ofp, " new sw_if_index = %d ", vam->sw_if_index)); - /* NOTREACHED */ - return 0; + S (mp); + W2 (ret, fprintf (vam->ofp, " new sw_if_index = %d ", vam->sw_if_index)); + return ret; } static int @@ -14786,8 +15528,8 @@ api_af_packet_delete (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_af_packet_delete_t *mp; - f64 timeout; u8 *host_if_name = 0; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -14809,15 +15551,14 @@ api_af_packet_delete (vat_main_t * vam) return -99; } - M (AF_PACKET_DELETE, af_packet_delete); + M (AF_PACKET_DELETE, mp); clib_memcpy (mp->host_if_name, host_if_name, vec_len (host_if_name)); vec_free (host_if_name); - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -14825,7 +15566,6 @@ api_policer_add_del (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_policer_add_del_t *mp; - f64 timeout; u8 is_add = 1; u8 *name = 0; u32 cir = 0; @@ -14837,6 +15577,7 @@ api_policer_add_del (vat_main_t * vam) u8 type = 0; u8 color_aware = 0; sse2_qos_pol_action_params_st conform_action, exceed_action, violate_action; + int ret; conform_action.action_type = SSE2_QOS_ACTION_TRANSMIT; conform_action.dscp = 0; @@ -14894,7 +15635,7 @@ api_policer_add_del (vat_main_t * vam) return -99; } - M (POLICER_ADD_DEL, policer_add_del); + M (POLICER_ADD_DEL, mp); clib_memcpy (mp->name, name, vec_len (name)); vec_free (name); @@ -14914,10 +15655,9 @@ api_policer_add_del (vat_main_t * vam) mp->violate_dscp = violate_action.dscp; mp->color_aware = color_aware; - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -14925,9 +15665,10 @@ api_policer_dump (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_policer_dump_t *mp; - f64 timeout = ~0; + vl_api_control_ping_t *mp_ping; u8 *match_name = 0; u8 match_name_valid = 0; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -14940,24 +15681,20 @@ api_policer_dump (vat_main_t * vam) break; } - M (POLICER_DUMP, policer_dump); + M (POLICER_DUMP, mp); mp->match_name_valid = match_name_valid; clib_memcpy (mp->match_name, match_name, vec_len (match_name)); vec_free (match_name); /* send it... */ - S; + S (mp); /* Use a control ping for synchronization */ - { - vl_api_control_ping_t *mp; - M (CONTROL_PING, control_ping); - S; - } - /* Wait for a reply... */ - W; + M (CONTROL_PING, mp_ping); + S (mp_ping); - /* NOTREACHED */ - return 0; + /* Wait for a reply... */ + W (ret); + return ret; } static int @@ -14965,13 +15702,13 @@ api_policer_classify_set_interface (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_policer_classify_set_interface_t *mp; - f64 timeout; u32 sw_if_index; int sw_if_index_set; u32 ip4_table_index = ~0; u32 ip6_table_index = ~0; u32 l2_table_index = ~0; u8 is_add = 1; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -15000,7 +15737,7 @@ api_policer_classify_set_interface (vat_main_t * vam) return -99; } - M (POLICER_CLASSIFY_SET_INTERFACE, policer_classify_set_interface); + M (POLICER_CLASSIFY_SET_INTERFACE, mp); mp->sw_if_index = ntohl (sw_if_index); mp->ip4_table_index = ntohl (ip4_table_index); @@ -15008,10 +15745,9 @@ api_policer_classify_set_interface (vat_main_t * vam) mp->l2_table_index = ntohl (l2_table_index); mp->is_add = is_add; - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -15019,8 +15755,9 @@ api_policer_classify_dump (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_policer_classify_dump_t *mp; - f64 timeout = ~0; + vl_api_control_ping_t *mp_ping; u8 type = POLICER_CLASSIFY_N_TABLES; + int ret; if (unformat (i, "type %U", unformat_policer_classify_table_type, &type)) ; @@ -15035,22 +15772,18 @@ api_policer_classify_dump (vat_main_t * vam) print (vam->ofp, "%10s%20s", "Intfc idx", "Classify table"); } - M (POLICER_CLASSIFY_DUMP, policer_classify_dump); + M (POLICER_CLASSIFY_DUMP, mp); mp->type = type; /* send it... */ - S; + S (mp); /* Use a control ping for synchronization */ - { - vl_api_control_ping_t *mp; - M (CONTROL_PING, control_ping); - S; - } - /* Wait for a reply... */ - W; + M (CONTROL_PING, mp_ping); + S (mp_ping); - /* NOTREACHED */ - return 0; + /* Wait for a reply... */ + W (ret); + return ret; } static int @@ -15058,12 +15791,12 @@ api_netmap_create (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_netmap_create_t *mp; - f64 timeout; u8 *if_name = 0; u8 hw_addr[6]; u8 random_hw_addr = 1; u8 is_pipe = 0; u8 is_master = 0; + int ret; memset (hw_addr, 0, sizeof (hw_addr)); @@ -15095,7 +15828,7 @@ api_netmap_create (vat_main_t * vam) return -99; } - M (NETMAP_CREATE, netmap_create); + M (NETMAP_CREATE, mp); clib_memcpy (mp->netmap_if_name, if_name, vec_len (if_name)); clib_memcpy (mp->hw_addr, hw_addr, 6); @@ -15104,10 +15837,9 @@ api_netmap_create (vat_main_t * vam) mp->is_master = is_master; vec_free (if_name); - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -15115,8 +15847,8 @@ api_netmap_delete (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_netmap_delete_t *mp; - f64 timeout; u8 *if_name = 0; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -15138,15 +15870,14 @@ api_netmap_delete (vat_main_t * vam) return -99; } - M (NETMAP_DELETE, netmap_delete); + M (NETMAP_DELETE, mp); clib_memcpy (mp->netmap_if_name, if_name, vec_len (if_name)); vec_free (if_name); - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static void vl_api_mpls_tunnel_details_t_handler @@ -15202,8 +15933,9 @@ static int api_mpls_tunnel_dump (vat_main_t * vam) { vl_api_mpls_tunnel_dump_t *mp; - f64 timeout; + vl_api_control_ping_t *mp_ping; i32 index = -1; + int ret; /* Parse args required to build the message */ while (unformat_check_input (vam->input) != UNFORMAT_END_OF_INPUT) @@ -15217,17 +15949,16 @@ api_mpls_tunnel_dump (vat_main_t * vam) print (vam->ofp, " tunnel_index %d", index); - M (MPLS_TUNNEL_DUMP, mpls_tunnel_dump); + M (MPLS_TUNNEL_DUMP, mp); mp->tunnel_index = htonl (index); - S; + S (mp); /* Use a control ping for synchronization */ - { - vl_api_control_ping_t *mp; - M (CONTROL_PING, control_ping); - S; - } - W; + M (CONTROL_PING, mp_ping); + S (mp_ping); + + W (ret); + return ret; } #define vl_api_mpls_fib_details_t_endian vl_noop_handler @@ -15315,18 +16046,18 @@ static int api_mpls_fib_dump (vat_main_t * vam) { vl_api_mpls_fib_dump_t *mp; - f64 timeout; + vl_api_control_ping_t *mp_ping; + int ret; - M (MPLS_FIB_DUMP, mpls_fib_dump); - S; + M (MPLS_FIB_DUMP, mp); + S (mp); /* Use a control ping for synchronization */ - { - vl_api_control_ping_t *mp; - M (CONTROL_PING, control_ping); - S; - } - W; + M (CONTROL_PING, mp_ping); + S (mp_ping); + + W (ret); + return ret; } #define vl_api_ip_fib_details_t_endian vl_noop_handler @@ -15416,18 +16147,18 @@ static int api_ip_fib_dump (vat_main_t * vam) { vl_api_ip_fib_dump_t *mp; - f64 timeout; + vl_api_control_ping_t *mp_ping; + int ret; - M (IP_FIB_DUMP, ip_fib_dump); - S; + M (IP_FIB_DUMP, mp); + S (mp); /* Use a control ping for synchronization */ - { - vl_api_control_ping_t *mp; - M (CONTROL_PING, control_ping); - S; - } - W; + M (CONTROL_PING, mp_ping); + S (mp_ping); + + W (ret); + return ret; } static void vl_api_ip_neighbor_details_t_handler @@ -15484,9 +16215,10 @@ api_ip_neighbor_dump (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_ip_neighbor_dump_t *mp; - f64 timeout; + vl_api_control_ping_t *mp_ping; u8 is_ipv6 = 0; u32 sw_if_index = ~0; + int ret; /* Parse args required to build the message */ while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) @@ -15507,18 +16239,17 @@ api_ip_neighbor_dump (vat_main_t * vam) return -99; } - M (IP_NEIGHBOR_DUMP, ip_neighbor_dump); + M (IP_NEIGHBOR_DUMP, mp); mp->is_ipv6 = (u8) is_ipv6; mp->sw_if_index = ntohl (sw_if_index); - S; + S (mp); /* Use a control ping for synchronization */ - { - vl_api_control_ping_t *mp; - M (CONTROL_PING, control_ping); - S; - } - W; + M (CONTROL_PING, mp_ping); + S (mp_ping); + + W (ret); + return ret; } #define vl_api_ip6_fib_details_t_endian vl_noop_handler @@ -15608,34 +16339,33 @@ static int api_ip6_fib_dump (vat_main_t * vam) { vl_api_ip6_fib_dump_t *mp; - f64 timeout; + vl_api_control_ping_t *mp_ping; + int ret; - M (IP6_FIB_DUMP, ip6_fib_dump); - S; + M (IP6_FIB_DUMP, mp); + S (mp); /* Use a control ping for synchronization */ - { - vl_api_control_ping_t *mp; - M (CONTROL_PING, control_ping); - S; - } - W; + M (CONTROL_PING, mp_ping); + S (mp_ping); + + W (ret); + return ret; } int api_classify_table_ids (vat_main_t * vam) { vl_api_classify_table_ids_t *mp; - f64 timeout; + int ret; /* Construct the API message */ - M (CLASSIFY_TABLE_IDS, classify_table_ids); + M (CLASSIFY_TABLE_IDS, mp); mp->context = 0; - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } int @@ -15643,9 +16373,9 @@ api_classify_table_by_interface (vat_main_t * vam) { unformat_input_t *input = vam->input; vl_api_classify_table_by_interface_t *mp; - f64 timeout; u32 sw_if_index = ~0; + int ret; while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) { if (unformat (input, "%U", api_unformat_sw_if_index, vam, &sw_if_index)) @@ -15662,14 +16392,13 @@ api_classify_table_by_interface (vat_main_t * vam) } /* Construct the API message */ - M (CLASSIFY_TABLE_BY_INTERFACE, classify_table_by_interface); + M (CLASSIFY_TABLE_BY_INTERFACE, mp); mp->context = 0; mp->sw_if_index = ntohl (sw_if_index); - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } int @@ -15677,9 +16406,9 @@ api_classify_table_info (vat_main_t * vam) { unformat_input_t *input = vam->input; vl_api_classify_table_info_t *mp; - f64 timeout; u32 table_id = ~0; + int ret; while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) { if (unformat (input, "table_id %d", &table_id)) @@ -15694,14 +16423,13 @@ api_classify_table_info (vat_main_t * vam) } /* Construct the API message */ - M (CLASSIFY_TABLE_INFO, classify_table_info); + M (CLASSIFY_TABLE_INFO, mp); mp->context = 0; mp->table_id = ntohl (table_id); - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } int @@ -15709,9 +16437,10 @@ api_classify_session_dump (vat_main_t * vam) { unformat_input_t *input = vam->input; vl_api_classify_session_dump_t *mp; - f64 timeout; + vl_api_control_ping_t *mp_ping; u32 table_id = ~0; + int ret; while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) { if (unformat (input, "table_id %d", &table_id)) @@ -15726,20 +16455,17 @@ api_classify_session_dump (vat_main_t * vam) } /* Construct the API message */ - M (CLASSIFY_SESSION_DUMP, classify_session_dump); + M (CLASSIFY_SESSION_DUMP, mp); mp->context = 0; mp->table_id = ntohl (table_id); - S; + S (mp); /* Use a control ping for synchronization */ - { - vl_api_control_ping_t *mp; - M (CONTROL_PING, control_ping); - S; - } - W; - /* NOTREACHED */ - return 0; + M (CONTROL_PING, mp_ping); + S (mp_ping); + + W (ret); + return ret; } static void @@ -15793,30 +16519,30 @@ int api_ipfix_exporter_dump (vat_main_t * vam) { vl_api_ipfix_exporter_dump_t *mp; - f64 timeout; + int ret; /* Construct the API message */ - M (IPFIX_EXPORTER_DUMP, ipfix_exporter_dump); + M (IPFIX_EXPORTER_DUMP, mp); mp->context = 0; - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int api_ipfix_classify_stream_dump (vat_main_t * vam) { vl_api_ipfix_classify_stream_dump_t *mp; - f64 timeout; + int ret; /* Construct the API message */ - M (IPFIX_CLASSIFY_STREAM_DUMP, ipfix_classify_stream_dump); + M (IPFIX_CLASSIFY_STREAM_DUMP, mp); mp->context = 0; - S; - W; + S (mp); + W (ret); + return ret; /* NOTREACHED */ return 0; } @@ -15853,7 +16579,8 @@ static int api_ipfix_classify_table_dump (vat_main_t * vam) { vl_api_ipfix_classify_table_dump_t *mp; - f64 timeout; + vl_api_control_ping_t *mp_ping; + int ret; if (!vam->json_output) { @@ -15862,18 +16589,17 @@ api_ipfix_classify_table_dump (vat_main_t * vam) } /* Construct the API message */ - M (IPFIX_CLASSIFY_TABLE_DUMP, ipfix_classify_table_dump); + M (IPFIX_CLASSIFY_TABLE_DUMP, mp); /* send it... */ - S; + S (mp); /* Use a control ping for synchronization */ - { - vl_api_control_ping_t *mp; - M (CONTROL_PING, control_ping); - S; - } - W; + M (CONTROL_PING, mp_ping); + S (mp_ping); + + W (ret); + return ret; } static void @@ -15912,10 +16638,10 @@ api_sw_interface_span_enable_disable (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_sw_interface_span_enable_disable_t *mp; - f64 timeout; u32 src_sw_if_index = ~0; u32 dst_sw_if_index = ~0; u8 state = 3; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -15942,16 +16668,15 @@ api_sw_interface_span_enable_disable (vat_main_t * vam) break; } - M (SW_INTERFACE_SPAN_ENABLE_DISABLE, sw_interface_span_enable_disable); + M (SW_INTERFACE_SPAN_ENABLE_DISABLE, mp); mp->sw_if_index_from = htonl (src_sw_if_index); mp->sw_if_index_to = htonl (dst_sw_if_index); mp->state = state; - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static void @@ -16028,7 +16753,10 @@ static void vat_json_object_add_uint (node, "src-if-index", sw_if_index_from); vat_json_object_add_string_copy (node, "src-if-name", sw_if_from_name); vat_json_object_add_uint (node, "dst-if-index", sw_if_index_to); - vat_json_object_add_string_copy (node, "dst-if-name", sw_if_to_name); + if (0 != sw_if_to_name) + { + vat_json_object_add_string_copy (node, "dst-if-name", sw_if_to_name); + } vat_json_object_add_uint (node, "state", mp->state); } @@ -16036,18 +16764,18 @@ static int api_sw_interface_span_dump (vat_main_t * vam) { vl_api_sw_interface_span_dump_t *mp; - f64 timeout; + vl_api_control_ping_t *mp_ping; + int ret; - M (SW_INTERFACE_SPAN_DUMP, sw_interface_span_dump); - S; + M (SW_INTERFACE_SPAN_DUMP, mp); + S (mp); /* Use a control ping for synchronization */ - { - vl_api_control_ping_t *mp; - M (CONTROL_PING, control_ping); - S; - } - W; + M (CONTROL_PING, mp_ping); + S (mp_ping); + + W (ret); + return ret; } int @@ -16055,9 +16783,9 @@ api_pg_create_interface (vat_main_t * vam) { unformat_input_t *input = vam->input; vl_api_pg_create_interface_t *mp; - f64 timeout; u32 if_id = ~0; + int ret; while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) { if (unformat (input, "if_id %d", &if_id)) @@ -16072,14 +16800,13 @@ api_pg_create_interface (vat_main_t * vam) } /* Construct the API message */ - M (PG_CREATE_INTERFACE, pg_create_interface); + M (PG_CREATE_INTERFACE, mp); mp->context = 0; mp->interface_id = ntohl (if_id); - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } int @@ -16087,13 +16814,13 @@ api_pg_capture (vat_main_t * vam) { unformat_input_t *input = vam->input; vl_api_pg_capture_t *mp; - f64 timeout; u32 if_id = ~0; u8 enable = 1; u32 count = 1; u8 pcap_file_set = 0; u8 *pcap_file = 0; + int ret; while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) { if (unformat (input, "if_id %d", &if_id)) @@ -16123,7 +16850,7 @@ api_pg_capture (vat_main_t * vam) u32 name_len = vec_len (pcap_file); /* Construct the API message */ - M (PG_CAPTURE, pg_capture); + M (PG_CAPTURE, mp); mp->context = 0; mp->interface_id = ntohl (if_id); mp->is_enabled = enable; @@ -16135,10 +16862,9 @@ api_pg_capture (vat_main_t * vam) } vec_free (pcap_file); - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } int @@ -16146,11 +16872,11 @@ api_pg_enable_disable (vat_main_t * vam) { unformat_input_t *input = vam->input; vl_api_pg_enable_disable_t *mp; - f64 timeout; u8 enable = 1; u8 stream_name_set = 0; u8 *stream_name = 0; + int ret; while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) { if (unformat (input, "stream %s", &stream_name)) @@ -16172,7 +16898,7 @@ api_pg_enable_disable (vat_main_t * vam) u32 name_len = vec_len (stream_name); /* Construct the API message */ - M (PG_ENABLE_DISABLE, pg_enable_disable); + M (PG_ENABLE_DISABLE, mp); mp->context = 0; mp->is_enabled = enable; if (stream_name_set != 0) @@ -16182,10 +16908,9 @@ api_pg_enable_disable (vat_main_t * vam) } vec_free (stream_name); - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } int @@ -16193,7 +16918,6 @@ api_ip_source_and_port_range_check_add_del (vat_main_t * vam) { unformat_input_t *input = vam->input; vl_api_ip_source_and_port_range_check_add_del_t *mp; - f64 timeout; u16 *low_ports = 0; u16 *high_ports = 0; @@ -16207,6 +16931,7 @@ api_ip_source_and_port_range_check_add_del (vat_main_t * vam) u32 vrf_id = ~0; u8 is_add = 1; u8 is_ipv6 = 0; + int ret; while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) { @@ -16287,8 +17012,7 @@ api_ip_source_and_port_range_check_add_del (vat_main_t * vam) return -99; } - M (IP_SOURCE_AND_PORT_RANGE_CHECK_ADD_DEL, - ip_source_and_port_range_check_add_del); + M (IP_SOURCE_AND_PORT_RANGE_CHECK_ADD_DEL, mp); mp->is_add = is_add; @@ -16314,10 +17038,9 @@ api_ip_source_and_port_range_check_add_del (vat_main_t * vam) mp->vrf_id = ntohl (vrf_id); - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } int @@ -16325,12 +17048,12 @@ api_ip_source_and_port_range_check_interface_add_del (vat_main_t * vam) { unformat_input_t *input = vam->input; vl_api_ip_source_and_port_range_check_interface_add_del_t *mp; - f64 timeout; u32 sw_if_index = ~0; int vrf_set = 0; u32 tcp_out_vrf_id = ~0, udp_out_vrf_id = ~0; u32 tcp_in_vrf_id = ~0, udp_in_vrf_id = ~0; u8 is_add = 1; + int ret; while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) { @@ -16373,8 +17096,7 @@ api_ip_source_and_port_range_check_interface_add_del (vat_main_t * vam) } /* Construct the API message */ - M (IP_SOURCE_AND_PORT_RANGE_CHECK_INTERFACE_ADD_DEL, - ip_source_and_port_range_check_interface_add_del); + M (IP_SOURCE_AND_PORT_RANGE_CHECK_INTERFACE_ADD_DEL, mp); mp->sw_if_index = ntohl (sw_if_index); mp->is_add = is_add; @@ -16384,10 +17106,11 @@ api_ip_source_and_port_range_check_interface_add_del (vat_main_t * vam) mp->udp_in_vrf_id = ntohl (udp_in_vrf_id); /* send it... */ - S; + S (mp); /* Wait for a reply... */ - W; + W (ret); + return ret; } static int @@ -16395,12 +17118,12 @@ api_ipsec_gre_add_del_tunnel (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_ipsec_gre_add_del_tunnel_t *mp; - f64 timeout; u32 local_sa_id = 0; u32 remote_sa_id = 0; ip4_address_t src_address; ip4_address_t dst_address; u8 is_add = 1; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -16421,7 +17144,7 @@ api_ipsec_gre_add_del_tunnel (vat_main_t * vam) } } - M (IPSEC_GRE_ADD_DEL_TUNNEL, ipsec_gre_add_del_tunnel); + M (IPSEC_GRE_ADD_DEL_TUNNEL, mp); mp->local_sa_id = ntohl (local_sa_id); mp->remote_sa_id = ntohl (remote_sa_id); @@ -16429,10 +17152,9 @@ api_ipsec_gre_add_del_tunnel (vat_main_t * vam) clib_memcpy (mp->dst_address, &dst_address, sizeof (dst_address)); mp->is_add = is_add; - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -16440,11 +17162,11 @@ api_punt (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_punt_t *mp; - f64 timeout; u32 ipv = ~0; u32 protocol = ~0; u32 port = ~0; int is_add = 1; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -16463,17 +17185,16 @@ api_punt (vat_main_t * vam) } } - M (PUNT, punt); + M (PUNT, mp); mp->is_add = (u8) is_add; mp->ipv = (u8) ipv; mp->l4_protocol = (u8) protocol; mp->l4_port = htons ((u16) port); - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static void vl_api_ipsec_gre_tunnel_details_t_handler @@ -16517,9 +17238,10 @@ api_ipsec_gre_tunnel_dump (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_ipsec_gre_tunnel_dump_t *mp; - f64 timeout; + vl_api_control_ping_t *mp_ping; u32 sw_if_index; u8 sw_if_index_set = 0; + int ret; /* Parse args required to build the message */ while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) @@ -16543,19 +17265,18 @@ api_ipsec_gre_tunnel_dump (vat_main_t * vam) } /* Get list of gre-tunnel interfaces */ - M (IPSEC_GRE_TUNNEL_DUMP, ipsec_gre_tunnel_dump); + M (IPSEC_GRE_TUNNEL_DUMP, mp); mp->sw_if_index = htonl (sw_if_index); - S; + S (mp); /* Use a control ping for synchronization */ - { - vl_api_control_ping_t *mp; - M (CONTROL_PING, control_ping); - S; - } - W; + M (CONTROL_PING, mp_ping); + S (mp_ping); + + W (ret); + return ret; } static int @@ -16563,8 +17284,8 @@ api_delete_subif (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_delete_subif_t *mp; - f64 timeout; u32 sw_if_index = ~0; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -16583,11 +17304,12 @@ api_delete_subif (vat_main_t * vam) } /* Construct the API message */ - M (DELETE_SUBIF, delete_subif); + M (DELETE_SUBIF, mp); mp->sw_if_index = ntohl (sw_if_index); - S; - W; + S (mp); + W (ret); + return ret; } #define foreach_pbb_vtr_op \ @@ -16600,7 +17322,6 @@ api_l2_interface_pbb_tag_rewrite (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_l2_interface_pbb_tag_rewrite_t *mp; - f64 timeout; u32 sw_if_index = ~0, vtr_op = ~0; u16 outer_tag = ~0; u8 dmac[6], smac[6]; @@ -16608,6 +17329,7 @@ api_l2_interface_pbb_tag_rewrite (vat_main_t * vam) u16 vlanid = 0; u32 sid = ~0; u32 tmp; + int ret; /* Shut up coverity */ memset (dmac, 0, sizeof (dmac)); @@ -16666,7 +17388,7 @@ api_l2_interface_pbb_tag_rewrite (vat_main_t * vam) return -99; } - M (L2_INTERFACE_PBB_TAG_REWRITE, l2_interface_pbb_tag_rewrite); + M (L2_INTERFACE_PBB_TAG_REWRITE, mp); mp->sw_if_index = ntohl (sw_if_index); mp->vtr_op = ntohl (vtr_op); mp->outer_tag = ntohs (outer_tag); @@ -16675,10 +17397,9 @@ api_l2_interface_pbb_tag_rewrite (vat_main_t * vam) mp->b_vlanid = ntohs (vlanid); mp->i_sid = ntohl (sid); - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -16686,12 +17407,12 @@ api_flow_classify_set_interface (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_flow_classify_set_interface_t *mp; - f64 timeout; u32 sw_if_index; int sw_if_index_set; u32 ip4_table_index = ~0; u32 ip6_table_index = ~0; u8 is_add = 1; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -16718,17 +17439,16 @@ api_flow_classify_set_interface (vat_main_t * vam) return -99; } - M (FLOW_CLASSIFY_SET_INTERFACE, flow_classify_set_interface); + M (FLOW_CLASSIFY_SET_INTERFACE, mp); mp->sw_if_index = ntohl (sw_if_index); mp->ip4_table_index = ntohl (ip4_table_index); mp->ip6_table_index = ntohl (ip6_table_index); mp->is_add = is_add; - S; - W; - /* NOTREACHED */ - return 0; + S (mp); + W (ret); + return ret; } static int @@ -16736,8 +17456,9 @@ api_flow_classify_dump (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_flow_classify_dump_t *mp; - f64 timeout = ~0; + vl_api_control_ping_t *mp_ping; u8 type = FLOW_CLASSIFY_N_TABLES; + int ret; if (unformat (i, "type %U", unformat_flow_classify_table_type, &type)) ; @@ -16752,22 +17473,18 @@ api_flow_classify_dump (vat_main_t * vam) print (vam->ofp, "%10s%20s", "Intfc idx", "Classify table"); } - M (FLOW_CLASSIFY_DUMP, flow_classify_dump); + M (FLOW_CLASSIFY_DUMP, mp); mp->type = type; /* send it... */ - S; + S (mp); /* Use a control ping for synchronization */ - { - vl_api_control_ping_t *mp; - M (CONTROL_PING, control_ping); - S; - } - /* Wait for a reply... */ - W; + M (CONTROL_PING, mp_ping); + S (mp_ping); - /* NOTREACHED */ - return 0; + /* Wait for a reply... */ + W (ret); + return ret; } static int @@ -16775,11 +17492,11 @@ api_feature_enable_disable (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_feature_enable_disable_t *mp; - f64 timeout; u8 *arc_name = 0; u8 *feature_name = 0; u32 sw_if_index = ~0; u8 enable = 1; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -16825,7 +17542,7 @@ api_feature_enable_disable (vat_main_t * vam) } /* Construct the API message */ - M (FEATURE_ENABLE_DISABLE, feature_enable_disable); + M (FEATURE_ENABLE_DISABLE, mp); mp->sw_if_index = ntohl (sw_if_index); mp->enable = enable; clib_memcpy (mp->arc_name, arc_name, vec_len (arc_name)); @@ -16833,8 +17550,9 @@ api_feature_enable_disable (vat_main_t * vam) vec_free (arc_name); vec_free (feature_name); - S; - W; + S (mp); + W (ret); + return ret; } static int @@ -16842,10 +17560,10 @@ api_sw_interface_tag_add_del (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_sw_interface_tag_add_del_t *mp; - f64 timeout; u32 sw_if_index = ~0; u8 *tag = 0; u8 enable = 1; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -16874,15 +17592,16 @@ api_sw_interface_tag_add_del (vat_main_t * vam) } /* Construct the API message */ - M (SW_INTERFACE_TAG_ADD_DEL, sw_interface_tag_add_del); + M (SW_INTERFACE_TAG_ADD_DEL, mp); mp->sw_if_index = ntohl (sw_if_index); mp->is_add = enable; if (enable) strncpy ((char *) mp->tag, (char *) tag, ARRAY_LEN (mp->tag) - 1); vec_free (tag); - S; - W; + S (mp); + W (ret); + return ret; } static void vl_api_l2_xconnect_details_t_handler @@ -16918,24 +17637,24 @@ static int api_l2_xconnect_dump (vat_main_t * vam) { vl_api_l2_xconnect_dump_t *mp; - f64 timeout; + vl_api_control_ping_t *mp_ping; + int ret; if (!vam->json_output) { print (vam->ofp, "%15s%15s", "rx_sw_if_index", "tx_sw_if_index"); } - M (L2_XCONNECT_DUMP, l2_xconnect_dump); + M (L2_XCONNECT_DUMP, mp); - S; + S (mp); /* Use a control ping for synchronization */ - { - vl_api_control_ping_t *mp; - M (CONTROL_PING, control_ping); - S; - } - W; + M (CONTROL_PING, mp_ping); + S (mp_ping); + + W (ret); + return ret; } static int @@ -16943,9 +17662,9 @@ api_sw_interface_set_mtu (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_sw_interface_set_mtu_t *mp; - f64 timeout; u32 sw_if_index = ~0; u32 mtu = 0; + int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -16972,12 +17691,13 @@ api_sw_interface_set_mtu (vat_main_t * vam) } /* Construct the API message */ - M (SW_INTERFACE_SET_MTU, sw_interface_set_mtu); + M (SW_INTERFACE_SET_MTU, mp); mp->sw_if_index = ntohl (sw_if_index); mp->mtu = ntohs ((u16) mtu); - S; - W; + S (mp); + W (ret); + return ret; } @@ -17358,7 +18078,7 @@ _(sw_interface_set_mpls_enable, \ _(sw_interface_set_vpath, \ " | sw_if_index enable | disable") \ _(sw_interface_set_vxlan_bypass, \ - " | sw_if_index [ip4 | ip6] enable | disable") \ + " | sw_if_index [ip4 | ip6] [enable | disable]") \ _(sw_interface_set_l2_xconnect, \ "rx | rx_sw_if_index tx | tx_sw_if_index \n" \ "enable | disable") \ @@ -17387,6 +18107,9 @@ _(ip_add_del_route, \ "[ | sw_if_index ] [resolve-attempts ]\n" \ "[weight ] [drop] [local] [classify ] [del]\n" \ "[multipath] [count ]") \ +_(ip_mroute_add_del, \ + " / [table-id ]\n" \ + "[ | sw_if_index ] [local] [del]") \ _(mpls_route_add_del, \ "