#include <vlibsocket/api.h>
#include <vppinfra/error.h>
#include <vnet/ip/ip.h>
+
+#define __plugin_msg_base snat_test_main.msg_id_base
#include <vlibapi/vat_helper_macros.h>
uword unformat_sw_if_index (unformat_input_t * input, va_list * args);
static int api_snat_add_address_range (vat_main_t * vam)
{
unformat_input_t * i = vam->input;
- f64 timeout;
ip4_address_t start_addr, end_addr;
u32 start_host_order, end_host_order;
vl_api_snat_add_address_range_t * mp;
u8 is_add = 1;
int count;
+ int ret;
while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT)
{
count);
}
- M(SNAT_ADD_ADDRESS_RANGE, snat_add_address_range);
+ M(SNAT_ADD_ADDRESS_RANGE, mp);
memcpy (mp->first_ip_address, &start_addr, 4);
memcpy (mp->last_ip_address, &end_addr, 4);
mp->is_ip4 = 1;
mp->is_add = is_add;
- S; W;
-
- /* NOTREACHED */
- return 0;
+ S(mp);
+ W (ret);
+ return ret;
}
static int api_snat_interface_add_del_feature (vat_main_t * vam)
{
unformat_input_t * i = vam->input;
- f64 timeout;
vl_api_snat_interface_add_del_feature_t * mp;
u32 sw_if_index;
u8 sw_if_index_set = 0;
u8 is_inside = 1;
u8 is_add = 1;
+ int ret;
while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT)
{
return -99;
}
- M(SNAT_INTERFACE_ADD_DEL_FEATURE, snat_interface_add_del_feature);
+ M(SNAT_INTERFACE_ADD_DEL_FEATURE, mp);
mp->sw_if_index = ntohl(sw_if_index);
mp->is_add = is_add;
mp->is_inside = is_inside;
- S; W;
- /* NOTREACHED */
- return 0;
+ S(mp);
+ W (ret);
+ return ret;
}
static int api_snat_add_static_mapping(vat_main_t * vam)
{
unformat_input_t * i = vam->input;
- f64 timeout;
vl_api_snat_add_static_mapping_t * mp;
u8 external_addr_set = 0;
u8 local_addr_set;
u32 local_port = 0, external_port = 0, vrf_id = ~0;
u32 sw_if_index = ~0;
u8 sw_if_index_set = 0;
+ int ret;
while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT)
{
return -99;
}
- M(SNAT_ADD_STATIC_MAPPING, snat_add_static_mapping);
+ M(SNAT_ADD_STATIC_MAPPING, mp);
mp->is_add = is_add;
mp->is_ip4 = 1;
mp->addr_only = addr_only;
memcpy (mp->local_ip_address, &local_addr, 4);
memcpy (mp->external_ip_address, &external_addr, 4);
- S; W;
- /* NOTREACHED */
- return 0;
+ S(mp);
+ W (ret);
+ return ret;
}
static void vl_api_snat_control_ping_reply_t_handler
static int api_snat_static_mapping_dump(vat_main_t * vam)
{
- f64 timeout;
vl_api_snat_static_mapping_dump_t * mp;
+ vl_api_snat_control_ping_t *mp_ping;
+ int ret;
if (vam->json_output)
{
fformat (vam->ofp, "%15s%6s%15s%6s%11s\n", "address", "port", "address",
"port", "vrf");
- M(SNAT_STATIC_MAPPING_DUMP, snat_static_mapping_dump);
- S;
+ M(SNAT_STATIC_MAPPING_DUMP, mp);
+ S(mp);
+
/* Use a control ping for synchronization */
- {
- vl_api_snat_control_ping_t *mp;
- M (SNAT_CONTROL_PING, snat_control_ping);
- S;
- }
- W;
- /* NOTREACHED */
- return 0;
+ M(SNAT_CONTROL_PING, mp_ping);
+ S(mp_ping);
+
+ W (ret);
+ return ret;
}
static void vl_api_snat_show_config_reply_t_handler
static int api_snat_show_config(vat_main_t * vam)
{
- f64 timeout;
vl_api_snat_show_config_t * mp;
+ int ret;
if (vam->json_output)
{
return -99;
}
- M(SNAT_SHOW_CONFIG, snat_show_config);
- S; W;
- /* NOTREACHED */
- return 0;
+ M(SNAT_SHOW_CONFIG, mp);
+ S(mp);
+ W (ret);
+ return ret;
}
static void vl_api_snat_address_details_t_handler
static int api_snat_address_dump(vat_main_t * vam)
{
- f64 timeout;
vl_api_snat_address_dump_t * mp;
+ vl_api_snat_control_ping_t *mp_ping;
+ int ret;
if (vam->json_output)
{
return -99;
}
- M(SNAT_ADDRESS_DUMP, snat_address_dump);
- S;
+ M(SNAT_ADDRESS_DUMP, mp);
+ S(mp);
+
/* Use a control ping for synchronization */
- {
- vl_api_snat_control_ping_t *mp;
- M (SNAT_CONTROL_PING, snat_control_ping);
- S;
- }
- W;
- /* NOTREACHED */
- return 0;
+ M(SNAT_CONTROL_PING, mp_ping);
+ S(mp_ping);
+
+ W (ret);
+ return ret;
}
static void vl_api_snat_interface_details_t_handler
static int api_snat_interface_dump(vat_main_t * vam)
{
- f64 timeout;
vl_api_snat_interface_dump_t * mp;
+ vl_api_snat_control_ping_t *mp_ping;
+ int ret;
if (vam->json_output)
{
return -99;
}
- M(SNAT_INTERFACE_DUMP, snat_interface_dump);
- S;
+ M(SNAT_INTERFACE_DUMP, mp);
+ S(mp);
+
/* Use a control ping for synchronization */
- {
- vl_api_snat_control_ping_t *mp;
- M (SNAT_CONTROL_PING, snat_control_ping);
- S;
- }
- W;
- /* NOTREACHED */
- return 0;
+ M(SNAT_CONTROL_PING, mp_ping);
+ S(mp_ping);
+
+ W (ret);
+ return ret;
}
static int api_snat_set_workers (vat_main_t * vam)
{
unformat_input_t * i = vam->input;
- f64 timeout;
vl_api_snat_set_workers_t * mp;
uword *bitmap;
+ int ret;
while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT)
{
}
}
- M(SNAT_SET_WORKERS, snat_set_workers);
+ M(SNAT_SET_WORKERS, mp);
mp->worker_mask = clib_host_to_net_u64 (bitmap[0]);
- S; W;
-
- /* NOTREACHED */
- return 0;
+ S(mp);
+ W (ret);
+ return ret;
}
static void vl_api_snat_worker_details_t_handler
static int api_snat_worker_dump(vat_main_t * vam)
{
- f64 timeout;
vl_api_snat_worker_dump_t * mp;
+ vl_api_snat_control_ping_t *mp_ping;
+ int ret;
if (vam->json_output)
{
return -99;
}
- M(SNAT_WORKER_DUMP, snat_worker_dump);
- S;
+ M(SNAT_WORKER_DUMP, mp);
+ S(mp);
+
/* Use a control ping for synchronization */
- {
- vl_api_snat_control_ping_t *mp;
- M (SNAT_CONTROL_PING, snat_control_ping);
- S;
- }
- W;
- /* NOTREACHED */
- return 0;
+ M(SNAT_CONTROL_PING, mp_ping);
+ S(mp_ping);
+
+ W (ret);
+ return ret;
}
static int api_snat_ipfix_enable_disable (vat_main_t * vam)
{
unformat_input_t * i = vam->input;
- f64 timeout;
vl_api_snat_add_del_interface_addr_t * mp;
u32 sw_if_index;
u8 sw_if_index_set = 0;
u8 is_add = 1;
+ int ret;
while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT)
{
return -99;
}
- M(SNAT_ADD_DEL_INTERFACE_ADDR, snat_add_del_interface_addr);
+ M(SNAT_ADD_DEL_INTERFACE_ADDR, mp);
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 void vl_api_snat_interface_addr_details_t_handler
static int api_snat_interface_addr_dump(vat_main_t * vam)
{
- f64 timeout;
vl_api_snat_interface_addr_dump_t * mp;
+ vl_api_snat_control_ping_t *mp_ping;
+ int ret;
if (vam->json_output)
{
return -99;
}
- M(SNAT_INTERFACE_ADDR_DUMP, snat_interface_addr_dump);
- S;
+ M(SNAT_INTERFACE_ADDR_DUMP, mp);
+ S(mp);
+
/* Use a control ping for synchronization */
- {
- vl_api_snat_control_ping_t *mp;
- M (SNAT_CONTROL_PING, snat_control_ping);
- S;
- }
- W;
- /* NOTREACHED */
- return 0;
+ M(SNAT_CONTROL_PING, mp_ping);
+ S(mp_ping);
+
+ W (ret);
+ return ret;
}
static int api_snat_add_del_interface_addr (vat_main_t * vam)
{
unformat_input_t * i = vam->input;
- f64 timeout;
vl_api_snat_ipfix_enable_disable_t * mp;
u32 domain_id = 0;
u32 src_port = 0;
u8 enable = 1;
+ int ret;
while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT)
{
}
}
- M(SNAT_IPFIX_ENABLE_DISABLE, snat_ipfix_enable_disable);
+ M(SNAT_IPFIX_ENABLE_DISABLE, mp);
mp->domain_id = htonl(domain_id);
mp->src_port = htons((u16) src_port);
mp->enable = enable;
- S; W;
- /* NOTREACHED */
- return 0;
+ S(mp);
+ W (ret);
+ return ret;
}
/*