{
errmsg ("DHCP compl event: pid %d %s hostname %s host_addr %U "
"router_addr %U host_mac %U",
- ntohl (mp->pid), mp->is_ipv6 ? "ipv6" : "ipv4", mp->hostname,
- format_ip4_address, &mp->host_address,
- format_ip4_address, &mp->router_address,
- format_ethernet_address, mp->host_mac);
+ ntohl (mp->pid), mp->lease.is_ipv6 ? "ipv6" : "ipv4",
+ mp->lease.hostname,
+ format_ip4_address, &mp->lease.host_address,
+ format_ip4_address, &mp->lease.router_address,
+ format_ethernet_address, mp->lease.host_mac);
}
static void vl_api_dhcp_compl_event_t_handler_json
show_one_map_register_fallback_threshold_reply) \
_(AF_PACKET_CREATE_REPLY, af_packet_create_reply) \
_(AF_PACKET_DELETE_REPLY, af_packet_delete_reply) \
+_(AF_PACKET_DETAILS, af_packet_details) \
_(POLICER_ADD_DEL_REPLY, policer_add_del_reply) \
_(POLICER_DETAILS, policer_details) \
_(POLICER_CLASSIFY_SET_INTERFACE_REPLY, policer_classify_set_interface_reply) \
u8 mac_set = 0;
u32 bd_id;
u8 bd_id_set = 0;
- u32 sw_if_index = ~0;
+ u32 sw_if_index = 0;
u8 sw_if_index_set = 0;
u8 is_add = 1;
u8 static_mac = 0;
clib_memcpy (mp->mac, mac, 6);
mp->bd_id = ntohl (bd_id);
mp->is_add = is_add;
+ mp->sw_if_index = ntohl (sw_if_index);
if (is_add)
{
- mp->sw_if_index = ntohl (sw_if_index);
mp->static_mac = static_mac;
mp->filter_mac = filter_mac;
mp->bvi_mac = bvi_mac;
M (PROXY_ARP_ADD_DEL, mp);
- mp->vrf_id = ntohl (vrf_id);
+ mp->proxy.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));
+ clib_memcpy (mp->proxy.low_address, &lo, sizeof (mp->proxy.low_address));
+ clib_memcpy (mp->proxy.hi_address, &hi, sizeof (mp->proxy.hi_address));
S (mp);
W (ret);
/* Construct the API message */
M (DHCP_CLIENT_CONFIG, mp);
- mp->sw_if_index = htonl (sw_if_index);
- clib_memcpy (mp->hostname, hostname, vec_len (hostname));
- vec_free (hostname);
mp->is_add = is_add;
- mp->want_dhcp_event = disable_event ? 0 : 1;
- mp->pid = htonl (getpid ());
+ mp->client.sw_if_index = htonl (sw_if_index);
+ clib_memcpy (mp->client.hostname, hostname, vec_len (hostname));
+ vec_free (hostname);
+ mp->client.want_dhcp_event = disable_event ? 0 : 1;
+ mp->client.pid = htonl (getpid ());
/* send it... */
S (mp);
return ret;
}
+static void vl_api_af_packet_details_t_handler
+ (vl_api_af_packet_details_t * mp)
+{
+ vat_main_t *vam = &vat_main;
+
+ print (vam->ofp, "%-16s %d",
+ mp->host_if_name, clib_net_to_host_u32 (mp->sw_if_index));
+}
+
+static void vl_api_af_packet_details_t_handler_json
+ (vl_api_af_packet_details_t * mp)
+{
+ vat_main_t *vam = &vat_main;
+ vat_json_node_t *node = NULL;
+
+ 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);
+ vat_json_object_add_uint (node, "sw_if_index", ntohl (mp->sw_if_index));
+ vat_json_object_add_string_copy (node, "dev_name", mp->host_if_name);
+}
+
+static int
+api_af_packet_dump (vat_main_t * vam)
+{
+ vl_api_af_packet_dump_t *mp;
+ 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 (AF_PACKET_DUMP, mp);
+ S (mp);
+
+ /* Use a control ping for synchronization */
+ MPING (CONTROL_PING, mp_ping);
+ S (mp_ping);
+
+ W (ret);
+ return ret;
+}
+
static int
api_policer_add_del (vat_main_t * vam)
{
vam->current_file = s;
do_one_file (vam);
- clib_memcpy (&vam->input, &save_input, sizeof (vam->input));
+ clib_memcpy (&vam->input, &save_input, sizeof (save_input));
clib_memcpy (&vam->jump_buf, &save_jump_buf, sizeof (save_jump_buf));
vam->ifp = save_ifp;
vam->input_line_number = save_line_number;
_(show_lisp_map_request_mode, "") \
_(af_packet_create, "name <host interface name> [hw_addr <mac>]") \
_(af_packet_delete, "name <host interface name>") \
+_(af_packet_dump, "") \
_(policer_add_del, "name <policer name> <params> [del]") \
_(policer_dump, "[name <policer name>]") \
_(policer_classify_set_interface, \