return 0;
}
+/* Parse an IP46 address. */
+uword
+unformat_ip46_address (unformat_input_t * input, va_list * args)
+{
+ ip46_address_t *ip46 = va_arg (*args, ip46_address_t *);
+ ip46_type_t type = va_arg (*args, ip46_type_t);
+ if ((type != IP46_TYPE_IP6) &&
+ unformat (input, "%U", unformat_ip4_address, &ip46->ip4))
+ {
+ ip46_address_mask_ip4 (ip46);
+ return 1;
+ }
+ else if ((type != IP46_TYPE_IP4) &&
+ unformat (input, "%U", unformat_ip6_address, &ip46->ip6))
+ {
+ return 1;
+ }
+ return 0;
+}
+
/* Parse an IP6 address. */
uword
unformat_ip6_address (unformat_input_t * input, va_list * args)
}
}
+void
+ip_set (ip46_address_t * dst, void *src, u8 is_ip4)
+{
+ if (is_ip4)
+ dst->ip4.as_u32 = ((ip4_address_t *) src)->as_u32;
+ else
+ clib_memcpy_fast (&dst->ip6, (ip6_address_t *) src,
+ sizeof (ip6_address_t));
+}
+
static void
increment_mac_address (u8 * mac)
{
}
}
- u32 name_len = vec_len (pcap_file);
/* Construct the API message */
M (PG_CAPTURE, mp);
mp->context = 0;
mp->interface_id = ntohl (if_id);
mp->is_enabled = enable;
mp->count = ntohl (count);
- mp->pcap_name_length = ntohl (name_len);
if (pcap_file_set != 0)
{
- clib_memcpy (mp->pcap_file_name, pcap_file, name_len);
+ vl_api_vec_to_api_string (pcap_file, &mp->pcap_file_name);
}
vec_free (pcap_file);
}
}
- u32 name_len = vec_len (stream_name);
/* Construct the API message */
M (PG_ENABLE_DISABLE, mp);
mp->context = 0;
mp->is_enabled = enable;
if (stream_name_set != 0)
{
- mp->stream_name_length = ntohl (name_len);
- clib_memcpy (mp->stream_name, stream_name, name_len);
+ vl_api_vec_to_api_string (stream_name, &mp->stream_name);
}
vec_free (stream_name);
M (LLDP_CONFIG, mp);
mp->tx_hold = htonl (tx_hold);
mp->tx_interval = htonl (tx_interval);
- clib_memcpy (mp->system_name, sys_name, vec_len (sys_name));
+ vl_api_vec_to_api_string (sys_name, &mp->system_name);
vec_free (sys_name);
S (mp);
M (SW_INTERFACE_SET_LLDP, mp);
mp->sw_if_index = ntohl (sw_if_index);
mp->enable = enable;
- clib_memcpy (mp->port_desc, port_desc, vec_len (port_desc));
+ vl_api_vec_to_api_string (port_desc, &mp->port_desc);
clib_memcpy (mp->mgmt_oid, mgmt_oid, vec_len (mgmt_oid));
clib_memcpy (mp->mgmt_ip4, &ip4_addr, sizeof (ip4_addr));
clib_memcpy (mp->mgmt_ip6, &ip6_addr, sizeof (ip6_addr));