_(DELETE_LOOPBACK, delete_loopback) \
_(INTERFACE_NAME_RENUMBER, interface_name_renumber) \
_(COLLECT_DETAILED_INTERFACE_STATS, collect_detailed_interface_stats) \
-_(SW_INTERFACE_SET_IP_DIRECTED_BROADCAST, \
- sw_interface_set_ip_directed_broadcast)
+_(SW_INTERFACE_SET_IP_DIRECTED_BROADCAST, \
+ sw_interface_set_ip_directed_broadcast) \
+_(SW_INTERFACE_ADDRESS_REPLACE_BEGIN, \
+ sw_interface_address_replace_begin) \
+_(SW_INTERFACE_ADDRESS_REPLACE_END, \
+ sw_interface_address_replace_end)
static void
vl_api_sw_interface_set_flags_t_handler (vl_api_sw_interface_set_flags_t * mp)
for (i = 0; i < VNET_N_MTU; i++)
{
per_protocol_mtu[i] = ntohl (mp->mtu[i]);
- clib_warning ("MTU %u", per_protocol_mtu[i]);
}
vnet_sw_interface_set_protocol_mtu (vnm, sw_if_index, per_protocol_mtu);
if (mp->name_filter_valid)
{
- filter = vl_api_from_api_to_vec (&mp->name_filter);
+ filter = vl_api_from_api_to_new_vec (mp, &mp->name_filter);
vec_add1 (filter, 0); /* Ensure it's a C string for strcasecmp() */
}
vnet_sw_interface_t *si;
clib_error_t *error;
int rv = 0;
+ vnet_hw_interface_rx_mode rx_mode;
VALIDATE_SW_IF_INDEX (mp);
goto bad_sw_if_index;
}
+ rx_mode = (vnet_hw_interface_rx_mode) ntohl (mp->mode);
error = set_hw_interface_change_rx_mode (vnm, si->hw_if_index,
mp->queue_id_valid,
ntohl (mp->queue_id),
(vnet_hw_interface_rx_mode)
- mp->mode);
+ rx_mode);
if (error)
{
mp->sw_if_index = htonl (sw_if_index);
mp->queue_id = htonl (queue_id);
mp->worker_id = htonl (worker_id);
- mp->mode = mode;
+ mp->mode = htonl (mode);
mp->context = context;
vl_api_send_msg (rp, (u8 *) mp);
REPLY_MACRO (VL_API_COLLECT_DETAILED_INTERFACE_STATS_REPLY);
}
+static void
+ vl_api_sw_interface_address_replace_begin_t_handler
+ (vl_api_sw_interface_address_replace_begin_t * mp)
+{
+ vl_api_sw_interface_address_replace_begin_reply_t *rmp;
+ int rv = 0;
+
+ ip_interface_address_mark ();
+
+ REPLY_MACRO (VL_API_SW_INTERFACE_ADDRESS_REPLACE_BEGIN_REPLY);
+}
+
+static void
+ vl_api_sw_interface_address_replace_end_t_handler
+ (vl_api_sw_interface_address_replace_end_t * mp)
+{
+ vl_api_sw_interface_address_replace_end_reply_t *rmp;
+ int rv = 0;
+
+ ip_interface_address_sweep ();
+
+ REPLY_MACRO (VL_API_SW_INTERFACE_ADDRESS_REPLACE_END_REPLY);
+}
+
/*
* vpe_api_hookup
* Add vpe's API message handlers to the table.
static clib_error_t *
interface_api_hookup (vlib_main_t * vm)
{
- api_main_t *am = &api_main;
+ api_main_t *am = vlibapi_get_main ();
#define _(N,n) \
vl_msg_api_set_handlers(VL_API_##N, #n, \