vec_free (s);
}
+#if VPP_API_TEST_BUILTIN == 0
static uword
api_unformat_sw_if_index (unformat_input_t * input, va_list * args)
{
return 1;
}
-#if VPP_API_TEST_BUILTIN == 0
/* Parse an IP4 address %d.%d.%d.%d. */
uword
unformat_ip4_address (unformat_input_t * input, va_list * args)
return 0;
return 1;
}
+#else /* VPP_API_TEST_BUILTIN == 1 */
+static uword
+api_unformat_sw_if_index (unformat_input_t * input, va_list * args)
+{
+ vat_main_t *vam __attribute__ ((unused)) = va_arg (*args, vat_main_t *);
+ vnet_main_t *vnm = vnet_get_main ();
+ u32 *result = va_arg (*args, u32 *);
+ u32 sw_if_index;
+
+ if (!unformat (input, "%U", unformat_vnet_sw_interface, vnm, &sw_if_index))
+ return 0;
+
+ *result = sw_if_index;
+ return 1;
+}
#endif /* VPP_API_TEST_BUILTIN */
static uword
static const char *mfib_itf_flag_long_names[] = MFIB_ITF_NAMES_LONG;
static const char *mfib_itf_flag_names[] = MFIB_ITF_NAMES_SHORT;
+#if (VPP_API_TEST_BUILTIN==0)
uword
unformat_mfib_itf_flags (unformat_input_t * input, va_list * args)
{
return (old == *eflags ? 0 : 1);
}
-#if (VPP_API_TEST_BUILTIN==0)
u8 *
format_ip4_address (u8 * s, va_list * args)
{
vam->result_ready = 1;
}
+static void vl_api_create_loopback_instance_reply_t_handler
+ (vl_api_create_loopback_instance_reply_t * mp)
+{
+ vat_main_t *vam = &vat_main;
+ i32 retval = ntohl (mp->retval);
+
+ vam->retval = retval;
+ vam->regenerate_interface_table = 1;
+ vam->sw_if_index = ntohl (mp->sw_if_index);
+ vam->result_ready = 1;
+}
+
+static void vl_api_create_loopback_instance_reply_t_handler_json
+ (vl_api_create_loopback_instance_reply_t * mp)
+{
+ vat_main_t *vam = &vat_main;
+ vat_json_node_t node;
+
+ vat_json_init_object (&node);
+ vat_json_object_add_int (&node, "retval", ntohl (mp->retval));
+ vat_json_object_add_uint (&node, "sw_if_index", ntohl (mp->sw_if_index));
+
+ vat_json_print (vam->ofp, &node);
+ vat_json_free (&node);
+ vam->retval = ntohl (mp->retval);
+ vam->result_ready = 1;
+}
+
static void vl_api_af_packet_create_reply_t_handler
(vl_api_af_packet_create_reply_t * mp)
{
}
}
+#if VPP_API_TEST_BUILTIN == 0
static void vl_api_sw_interface_set_flags_t_handler
(vl_api_sw_interface_set_flags_t * mp)
{
mp->admin_up_down ? "admin-up" : "admin-down",
mp->link_up_down ? "link-up" : "link-down");
}
+#endif
static void vl_api_sw_interface_set_flags_t_handler_json
(vl_api_sw_interface_set_flags_t * mp)
}
}
+static u8 *
+format_gpe_encap_mode (u8 * s, va_list * args)
+{
+ u32 mode = va_arg (*args, u32);
+
+ switch (mode)
+ {
+ case 0:
+ return format (s, "lisp");
+ case 1:
+ return format (s, "vxlan");
+ }
+ return 0;
+}
+
+static void
+ vl_api_gpe_get_encap_mode_reply_t_handler
+ (vl_api_gpe_get_encap_mode_reply_t * mp)
+{
+ vat_main_t *vam = &vat_main;
+
+ print (vam->ofp, "gpe mode: %U", format_gpe_encap_mode, mp->encap_mode);
+ vam->retval = ntohl (mp->retval);
+ vam->result_ready = 1;
+}
+
+static void
+ vl_api_gpe_get_encap_mode_reply_t_handler_json
+ (vl_api_gpe_get_encap_mode_reply_t * mp)
+{
+ vat_main_t *vam = &vat_main;
+ vat_json_node_t node;
+
+ u8 *encap_mode = format (0, "%U", format_gpe_encap_mode, mp->encap_mode);
+ vec_add1 (encap_mode, 0);
+
+ vat_json_init_object (&node);
+ vat_json_object_add_string_copy (&node, "gpe_mode", encap_mode);
+
+ vec_free (encap_mode);
+ vat_json_print (vam->ofp, &node);
+ vat_json_free (&node);
+
+ vam->retval = ntohl (mp->retval);
+ vam->result_ready = 1;
+}
+
static void
vl_api_gpe_fwd_entry_path_details_t_handler
(vl_api_gpe_fwd_entry_path_details_t * mp)
_(one_eid_table_add_del_map_reply) \
_(gpe_add_del_fwd_entry_reply) \
_(gpe_enable_disable_reply) \
+_(gpe_set_encap_mode_reply) \
_(gpe_add_del_iface_reply) \
_(vxlan_gpe_add_del_tunnel_reply) \
_(af_packet_delete_reply) \
_(sw_interface_tag_add_del_reply) \
_(sw_interface_set_mtu_reply)
-#if DPDK > 0
-#define foreach_standard_dpdk_reply_retval_handler \
-_(sw_interface_set_dpdk_hqos_pipe_reply) \
-_(sw_interface_set_dpdk_hqos_subport_reply) \
-_(sw_interface_set_dpdk_hqos_tctbl_reply)
-#endif
-
#define _(n) \
static void vl_api_##n##_t_handler \
(vl_api_##n##_t * mp) \
foreach_standard_reply_retval_handler;
#undef _
-#if DPDK > 0
-#define _(n) \
- static void vl_api_##n##_t_handler \
- (vl_api_##n##_t * mp) \
- { \
- vat_main_t * vam = &vat_main; \
- i32 retval = ntohl(mp->retval); \
- if (vam->async_mode) { \
- vam->async_errors += (retval < 0); \
- } else { \
- vam->retval = retval; \
- vam->result_ready = 1; \
- } \
- }
-foreach_standard_dpdk_reply_retval_handler;
-#undef _
-
-#define _(n) \
- static void vl_api_##n##_t_handler_json \
- (vl_api_##n##_t * mp) \
- { \
- vat_main_t * vam = &vat_main; \
- vat_json_node_t node; \
- vat_json_init_object(&node); \
- vat_json_object_add_int(&node, "retval", ntohl(mp->retval)); \
- vat_json_print(vam->ofp, &node); \
- vam->retval = ntohl(mp->retval); \
- vam->result_ready = 1; \
- }
-foreach_standard_dpdk_reply_retval_handler;
-#undef _
-#endif
-
/*
* Table of message reply handlers, must include boilerplate handlers
* we just generated
#define foreach_vpe_api_reply_msg \
_(CREATE_LOOPBACK_REPLY, create_loopback_reply) \
+_(CREATE_LOOPBACK_INSTANCE_REPLY, create_loopback_instance_reply) \
_(SW_INTERFACE_DETAILS, sw_interface_details) \
-_(SW_INTERFACE_SET_FLAGS, sw_interface_set_flags) \
_(SW_INTERFACE_SET_FLAGS_REPLY, sw_interface_set_flags_reply) \
_(CONTROL_PING_REPLY, control_ping_reply) \
_(CLI_REPLY, cli_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) \
_(ONE_MAP_RESOLVER_DETAILS, one_map_resolver_details) \
_(ONE_MAP_SERVER_DETAILS, one_map_server_details) \
_(ONE_ADJACENCIES_GET_REPLY, one_adjacencies_get_reply) \
+_(GPE_SET_ENCAP_MODE_REPLY, gpe_set_encap_mode_reply) \
+_(GPE_GET_ENCAP_MODE_REPLY, gpe_get_encap_mode_reply) \
_(GPE_ADD_DEL_IFACE_REPLY, gpe_add_del_iface_reply) \
_(GPE_ENABLE_DISABLE_REPLY, gpe_enable_disable_reply) \
_(GPE_ADD_DEL_FWD_ENTRY_REPLY, gpe_add_del_fwd_entry_reply) \
_(IP_NEIGHBOR_DETAILS, ip_neighbor_details) \
_(SW_INTERFACE_GET_TABLE_REPLY, sw_interface_get_table_reply)
-#if DPDK > 0
-#define foreach_vpe_dpdk_api_reply_msg \
-_(SW_INTERFACE_SET_DPDK_HQOS_PIPE_REPLY, \
- sw_interface_set_dpdk_hqos_pipe_reply) \
-_(SW_INTERFACE_SET_DPDK_HQOS_SUBPORT_REPLY, \
- sw_interface_set_dpdk_hqos_subport_reply) \
-_(SW_INTERFACE_SET_DPDK_HQOS_TCTBL_REPLY, \
- sw_interface_set_dpdk_hqos_tctbl_reply)
-#endif
+#define foreach_standalone_reply_msg \
+_(SW_INTERFACE_SET_FLAGS, sw_interface_set_flags) \
+_(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)
typedef struct
{
{
unformat_input_t *i = vam->input;
vl_api_create_loopback_t *mp;
+ vl_api_create_loopback_instance_t *mp_lbi;
u8 mac_address[6];
u8 mac_set = 0;
+ u8 is_specified = 0;
+ u32 user_instance = 0;
int ret;
memset (mac_address, 0, sizeof (mac_address));
{
if (unformat (i, "mac %U", unformat_ethernet_address, mac_address))
mac_set = 1;
+ if (unformat (i, "instance %d", &user_instance))
+ is_specified = 1;
else
break;
}
- /* Construct the API message */
- M (CREATE_LOOPBACK, mp);
- if (mac_set)
- clib_memcpy (mp->mac_address, mac_address, sizeof (mac_address));
+ if (is_specified)
+ {
+ M (CREATE_LOOPBACK_INSTANCE, mp_lbi);
+ mp_lbi->is_specified = is_specified;
+ if (is_specified)
+ mp_lbi->user_instance = htonl (user_instance);
+ if (mac_set)
+ clib_memcpy (mp_lbi->mac_address, mac_address, sizeof (mac_address));
+ S (mp_lbi);
+ }
+ else
+ {
+ /* Construct the API message */
+ M (CREATE_LOOPBACK, mp);
+ if (mac_set)
+ clib_memcpy (mp->mac_address, mac_address, sizeof (mac_address));
+ S (mp);
+ }
- S (mp);
W (ret);
return ret;
}
return ret;
}
-#if DPDK >0
-static int
-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;
- u32 sw_if_index;
- u8 sw_if_index_set = 0;
- u32 subport;
- u8 subport_set = 0;
- u32 pipe;
- 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)
- {
- if (unformat (i, "rx %U", api_unformat_sw_if_index, vam, &sw_if_index))
- sw_if_index_set = 1;
- else if (unformat (i, "sw_if_index %u", &sw_if_index))
- sw_if_index_set = 1;
- else if (unformat (i, "subport %u", &subport))
- subport_set = 1;
- else
- if (unformat (i, "%U", api_unformat_sw_if_index, vam, &sw_if_index))
- sw_if_index_set = 1;
- else if (unformat (i, "pipe %u", &pipe))
- pipe_set = 1;
- else if (unformat (i, "profile %u", &profile))
- profile_set = 1;
- else
- break;
- }
-
- if (sw_if_index_set == 0)
- {
- errmsg ("missing interface name or sw_if_index");
- return -99;
- }
-
- if (subport_set == 0)
- {
- errmsg ("missing subport ");
- return -99;
- }
-
- if (pipe_set == 0)
- {
- errmsg ("missing pipe");
- return -99;
- }
-
- if (profile_set == 0)
- {
- errmsg ("missing profile");
- return -99;
- }
-
- M (SW_INTERFACE_SET_DPDK_HQOS_PIPE, mp);
-
- mp->sw_if_index = ntohl (sw_if_index);
- mp->subport = ntohl (subport);
- mp->pipe = ntohl (pipe);
- mp->profile = ntohl (profile);
-
-
- S (mp);
- W (ret);
- return ret;
-}
-
-static int
-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;
- u32 sw_if_index;
- u8 sw_if_index_set = 0;
- u32 subport;
- u8 subport_set = 0;
- u32 tb_rate = 1250000000; /* 10GbE */
- 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)
- {
- if (unformat (i, "rx %U", api_unformat_sw_if_index, vam, &sw_if_index))
- sw_if_index_set = 1;
- else if (unformat (i, "sw_if_index %u", &sw_if_index))
- sw_if_index_set = 1;
- else if (unformat (i, "subport %u", &subport))
- subport_set = 1;
- else
- if (unformat (i, "%U", api_unformat_sw_if_index, vam, &sw_if_index))
- sw_if_index_set = 1;
- else if (unformat (i, "rate %u", &tb_rate))
- {
- u32 tc_id;
-
- for (tc_id = 0; tc_id < (sizeof (tc_rate) / sizeof (tc_rate[0]));
- tc_id++)
- tc_rate[tc_id] = tb_rate;
- }
- else if (unformat (i, "bktsize %u", &tb_size))
- ;
- else if (unformat (i, "tc0 %u", &tc_rate[0]))
- ;
- else if (unformat (i, "tc1 %u", &tc_rate[1]))
- ;
- else if (unformat (i, "tc2 %u", &tc_rate[2]))
- ;
- else if (unformat (i, "tc3 %u", &tc_rate[3]))
- ;
- else if (unformat (i, "period %u", &tc_period))
- ;
- else
- break;
- }
-
- if (sw_if_index_set == 0)
- {
- errmsg ("missing interface name or sw_if_index");
- return -99;
- }
-
- if (subport_set == 0)
- {
- errmsg ("missing subport ");
- return -99;
- }
-
- M (SW_INTERFACE_SET_DPDK_HQOS_SUBPORT, mp);
-
- mp->sw_if_index = ntohl (sw_if_index);
- mp->subport = ntohl (subport);
- mp->tb_rate = ntohl (tb_rate);
- mp->tb_size = ntohl (tb_size);
- mp->tc_rate[0] = ntohl (tc_rate[0]);
- mp->tc_rate[1] = ntohl (tc_rate[1]);
- mp->tc_rate[2] = ntohl (tc_rate[2]);
- mp->tc_rate[3] = ntohl (tc_rate[3]);
- mp->tc_period = ntohl (tc_period);
-
- S (mp);
- W (ret);
- return ret;
-}
-
-static int
-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;
- 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)
- {
- if (unformat (i, "rx %U", api_unformat_sw_if_index, vam, &sw_if_index))
- sw_if_index_set = 1;
- else if (unformat (i, "sw_if_index %u", &sw_if_index))
- sw_if_index_set = 1;
- else if (unformat (i, "entry %d", &entry))
- entry_set = 1;
- else if (unformat (i, "tc %d", &tc))
- tc_set = 1;
- else if (unformat (i, "queue %d", &queue))
- queue_set = 1;
- else
- break;
- }
-
- if (sw_if_index_set == 0)
- {
- errmsg ("missing interface name or sw_if_index");
- return -99;
- }
-
- if (entry_set == 0)
- {
- errmsg ("missing entry ");
- return -99;
- }
-
- if (tc_set == 0)
- {
- errmsg ("missing traffic class ");
- return -99;
- }
-
- if (queue_set == 0)
- {
- errmsg ("missing queue ");
- return -99;
- }
-
- 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 (mp);
- W (ret);
- return ret;
-}
-#endif
-
static int
api_sw_interface_add_del_address (vat_main_t * vam)
{
vl_api_ip_neighbor_add_del_t *mp;
u32 sw_if_index;
u8 sw_if_index_set = 0;
- u32 vrf_id = 0;
u8 is_add = 1;
u8 is_static = 0;
u8 mac_address[6];
sw_if_index_set = 1;
else if (unformat (i, "is_static"))
is_static = 1;
- else if (unformat (i, "vrf %d", &vrf_id))
- ;
else if (unformat (i, "dst %U", unformat_ip4_address, &v4address))
v4_address_set = 1;
else if (unformat (i, "dst %U", unformat_ip6_address, &v6address))
mp->sw_if_index = ntohl (sw_if_index);
mp->is_add = is_add;
- mp->vrf_id = ntohl (vrf_id);
mp->is_static = is_static;
if (mac_set)
clib_memcpy (mp->mac_address, mac_address, 6);
_(protocol) \
_(checksum)
+typedef struct
+{
+ u16 src_port, dst_port;
+} tcpudp_header_t;
+
+#if VPP_API_TEST_BUILTIN == 0
uword
unformat_tcp_mask (unformat_input_t * input, va_list * args)
{
return 1;
}
-typedef struct
-{
- u16 src_port, dst_port;
-} tcpudp_header_t;
-
uword
unformat_l4_mask (unformat_input_t * input, va_list * args)
{
return 0;
}
+#endif /* VPP_API_TEST_BUILTIN */
#define foreach_l2_next \
_(drop, DROP) \
_(rewrite, REWRITE)
uword
-unformat_ip_next_index (unformat_input_t * input, va_list * args)
+api_unformat_ip_next_index (unformat_input_t * input, va_list * args)
{
u32 *miss_next_indexp = va_arg (*args, u32 *);
u32 next_index = 0;
_(deny, DENY)
uword
-unformat_acl_next_index (unformat_input_t * input, va_list * args)
+api_unformat_acl_next_index (unformat_input_t * input, va_list * args)
{
u32 *miss_next_indexp = va_arg (*args, u32 *);
u32 next_index = 0;
;
else if (unformat (i, "next-table %d", &next_table_index))
;
- else if (unformat (i, "miss-next %U", unformat_ip_next_index,
+ else if (unformat (i, "miss-next %U", api_unformat_ip_next_index,
&miss_next_index))
;
else if (unformat (i, "l2-miss-next %U", unformat_l2_next_index,
&miss_next_index))
;
- else if (unformat (i, "acl-miss-next %U", unformat_acl_next_index,
+ else if (unformat (i, "acl-miss-next %U", api_unformat_acl_next_index,
&miss_next_index))
;
else if (unformat (i, "current-data-flag %d", ¤t_data_flag))
return ret;
}
+#if VPP_API_TEST_BUILTIN == 0
uword
unformat_l4_match (unformat_input_t * input, va_list * args)
{
*matchp = match;
return 1;
}
-
+#endif
uword
-unformat_classify_match (unformat_input_t * input, va_list * args)
+api_unformat_classify_match (unformat_input_t * input, va_list * args)
{
u8 **matchp = va_arg (*args, u8 **);
u32 skip_n_vectors = va_arg (*args, u32);
{
if (unformat (i, "del"))
is_add = 0;
- else if (unformat (i, "hit-next %U", unformat_ip_next_index,
+ else if (unformat (i, "hit-next %U", api_unformat_ip_next_index,
&hit_next_index))
;
else if (unformat (i, "l2-hit-next %U", unformat_l2_next_index,
&hit_next_index))
;
- else if (unformat (i, "acl-hit-next %U", unformat_acl_next_index,
+ else if (unformat (i, "acl-hit-next %U", api_unformat_acl_next_index,
&hit_next_index))
;
else if (unformat (i, "policer-hit-next %d", &hit_next_index))
;
else if (unformat (i, "match_n %d", &match_n_vectors))
;
- else if (unformat (i, "match %U", unformat_classify_match,
+ else if (unformat (i, "match %U", api_unformat_classify_match,
&match, skip_n_vectors, match_n_vectors))
;
else if (unformat (i, "advance %d", &advance))
#define api_lisp_add_del_adjacency api_one_add_del_adjacency
+uword
+unformat_gpe_encap_mode (unformat_input_t * input, va_list * args)
+{
+ u32 *mode = va_arg (*args, u32 *);
+
+ if (unformat (input, "lisp"))
+ *mode = 0;
+ else if (unformat (input, "vxlan"))
+ *mode = 1;
+ else
+ return 0;
+
+ return 1;
+}
+
+static int
+api_gpe_get_encap_mode (vat_main_t * vam)
+{
+ vl_api_gpe_get_encap_mode_t *mp;
+ int ret;
+
+ /* Construct the API message */
+ M (GPE_GET_ENCAP_MODE, mp);
+
+ /* send it... */
+ S (mp);
+
+ /* Wait for a reply... */
+ W (ret);
+ return ret;
+}
+
+static int
+api_gpe_set_encap_mode (vat_main_t * vam)
+{
+ unformat_input_t *input = vam->input;
+ vl_api_gpe_set_encap_mode_t *mp;
+ int ret;
+ u32 mode = 0;
+
+ /* Parse args required to build the message */
+ while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT)
+ {
+ if (unformat (input, "%U", unformat_gpe_encap_mode, &mode))
+ ;
+ else
+ break;
+ }
+
+ /* Construct the API message */
+ M (GPE_SET_ENCAP_MODE, mp);
+
+ mp->mode = mode;
+
+ /* send it... */
+ S (mp);
+
+ /* Wait for a reply... */
+ W (ret);
+ return ret;
+}
+
static int
api_lisp_gpe_add_del_iface (vat_main_t * vam)
{
vec_free (host_if_name);
S (mp);
- W2 (ret, fprintf (vam->ofp, " new sw_if_index = %d ", vam->sw_if_index));
+
+ /* *INDENT-OFF* */
+ W2 (ret,
+ ({
+ if (ret == 0)
+ fprintf (vam->ofp ? vam->ofp : stderr,
+ " new sw_if_index = %d\n", vam->sw_if_index);
+ }));
+ /* *INDENT-ON* */
return ret;
}
static int
q_or_quit (vat_main_t * vam)
{
+#if VPP_API_TEST_BUILTIN == 0
longjmp (vam->jump_buf, 1);
+#endif
return 0; /* not so much */
}
/* List of API message constructors, CLI names map to api_xxx */
#define foreach_vpe_api_msg \
-_(create_loopback,"[mac <mac-addr>]") \
+_(create_loopback,"[mac <mac-addr>] [instance <instance>]") \
_(sw_interface_dump,"") \
_(sw_interface_set_flags, \
"<intfc> | sw_if_index <id> admin-up | admin-down link-up | link down") \
_(lisp_adjacencies_get, "vni <vni>") \
_(lisp_gpe_fwd_entries_get, "vni <vni>") \
_(lisp_gpe_fwd_entry_path_dump, "index <fwd_entry_index>") \
+_(gpe_set_encap_mode, "lisp|vxlan") \
+_(gpe_get_encap_mode, "") \
_(lisp_gpe_add_del_iface, "up|down") \
_(lisp_gpe_enable_disable, "enable|disable") \
_(lisp_gpe_add_del_fwd_entry, "reid <eid> [leid <eid>] vni <vni>" \
_(ip_neighbor_dump, "[ip6] <intfc> | sw_if_index <nn>") \
_(sw_interface_get_table, "<intfc> | sw_if_index <id> [ipv6]")
-#if DPDK > 0
-#define foreach_vpe_dpdk_api_msg \
-_(sw_interface_set_dpdk_hqos_pipe, \
- "rx <intfc> | sw_if_index <id> subport <subport-id> pipe <pipe-id>\n" \
- "profile <profile-id>\n") \
-_(sw_interface_set_dpdk_hqos_subport, \
- "rx <intfc> | sw_if_index <id> subport <subport-id> [rate <n>]\n" \
- "[bktsize <n>] [tc0 <n>] [tc1 <n>] [tc2 <n>] [tc3 <n>] [period <n>]\n") \
-_(sw_interface_set_dpdk_hqos_tctbl, \
- "rx <intfc> | sw_if_index <id> entry <n> tc <n> queue <n>\n")
-#endif
-
/* List of command functions, CLI names map directly to functions */
#define foreach_cli_function \
_(comment, "usage: comment <ignore-rest-of-line>") \
} \
}
foreach_vpe_api_reply_msg;
-#undef _
-
-#if DPDK > 0
-#define _(N,n) \
- static void vl_api_##n##_t_handler_uni \
- (vl_api_##n##_t * mp) \
- { \
- vat_main_t * vam = &vat_main; \
- if (vam->json_output) { \
- vl_api_##n##_t_handler_json(mp); \
- } else { \
- vl_api_##n##_t_handler(mp); \
- } \
- }
-foreach_vpe_dpdk_api_reply_msg;
-#undef _
+#if VPP_API_TEST_BUILTIN == 0
+foreach_standalone_reply_msg;
#endif
+#undef _
void
vat_api_hookup (vat_main_t * vam)
vl_api_##n##_t_print, \
sizeof(vl_api_##n##_t), 1);
foreach_vpe_api_reply_msg;
-#undef _
-
-#if DPDK > 0
-#define _(N,n) \
- vl_msg_api_set_handlers(VL_API_##N, #n, \
- vl_api_##n##_t_handler_uni, \
- vl_noop_handler, \
- vl_api_##n##_t_endian, \
- vl_api_##n##_t_print, \
- sizeof(vl_api_##n##_t), 1);
- foreach_vpe_dpdk_api_reply_msg;
-#undef _
+#if VPP_API_TEST_BUILTIN == 0
+ foreach_standalone_reply_msg;
#endif
+#undef _
#if (VPP_API_TEST_BUILTIN==0)
vl_msg_api_set_first_available_msg_id (VL_MSG_FIRST_AVAILABLE);
#define _(n,h) hash_set_mem (vam->function_by_name, #n, api_##n);
foreach_vpe_api_msg;
#undef _
-#if DPDK >0
-#define _(n,h) hash_set_mem (vam->function_by_name, #n, api_##n);
- foreach_vpe_dpdk_api_msg;
-#undef _
-#endif
/* Help strings */
#define _(n,h) hash_set_mem (vam->help_by_name, #n, h);
foreach_vpe_api_msg;
#undef _
-#if DPDK >0
-#define _(n,h) hash_set_mem (vam->help_by_name, #n, h);
- foreach_vpe_dpdk_api_msg;
-#undef _
-#endif
/* CLI functions */
#define _(n,h) hash_set_mem (vam->function_by_name, #n, n);
#undef _
}
+#if VPP_API_TEST_BUILTIN
+static clib_error_t *
+vat_api_hookup_shim (vlib_main_t * vm)
+{
+ vat_api_hookup (&vat_main);
+ return 0;
+}
+
+VLIB_API_INIT_FUNCTION (vat_api_hookup_shim);
+#endif
+
/*
* fd.io coding-style-patch-verification: ON
*