X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvpp%2Fapi%2Fcustom_dump.c;h=15b1f69f1ce8be5ef097cc1f80876d76ecee1a49;hb=0053de6;hp=fd0e88a9bb16153ad999eebff9b085b903ed9607;hpb=b8d4481a93f919291d4b682ef0ac8948a9f1be32;p=vpp.git diff --git a/src/vpp/api/custom_dump.c b/src/vpp/api/custom_dump.c index fd0e88a9bb1..15b1f69f1ce 100644 --- a/src/vpp/api/custom_dump.c +++ b/src/vpp/api/custom_dump.c @@ -1,30 +1,33 @@ /* - *------------------------------------------------------------------ + * ------------------------------------------------------------------ * custom_dump.c - pretty-print API messages for replay * - * Copyright (c) 2014-2016 Cisco and/or its affiliates. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at: + * Copyright (c) 2014-2016 Cisco and/or its affiliates. Licensed under the + * Apache License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at: * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------ + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * ------------------------------------------------------------------ */ #include #include +#include #include #include #include #include #include #include +#include +#include #include #include #include @@ -36,7 +39,7 @@ #include #include #include - +#include #include #include @@ -45,6 +48,8 @@ #include +#include + #define vl_typedefs /* define message structures */ #include #undef vl_typedefs @@ -547,6 +552,143 @@ static void *vl_api_sw_interface_tap_dump_t_print FINISH; } +static void *vl_api_tap_create_v2_t_print + (vl_api_tap_create_v2_t * mp, void *handle) +{ + u8 *s; + u8 null_mac[6]; + + memset (null_mac, 0, sizeof (null_mac)); + + s = format (0, "SCRIPT: tap_create_v2 "); + s = format (s, "id %u ", mp->id); + if (memcmp (mp->mac_address, null_mac, 6)) + s = format (s, "mac-address %U ", + format_ethernet_address, mp->mac_address); + if (memcmp (mp->host_mac_addr, null_mac, 6)) + s = format (s, "host-mac-addr %U ", + format_ethernet_address, mp->host_mac_addr); + if (mp->host_if_name_set) + s = format (s, "host-if-name %s ", mp->host_if_name); + if (mp->host_namespace_set) + s = format (s, "host-ns %s ", mp->host_namespace); + if (mp->host_bridge_set) + s = format (s, "host-bridge %s ", mp->host_bridge); + if (mp->host_ip4_addr_set) + s = format (s, "host-ip4-addr %U/%d ", format_ip4_address, + mp->host_ip4_addr, mp->host_ip4_prefix_len); + if (mp->host_ip6_addr_set) + s = format (s, "host-ip6-addr %U/%d ", format_ip6_address, + mp->host_ip6_addr, mp->host_ip6_prefix_len); + if (mp->host_ip4_gw_set) + s = format (s, "host-ip4-gw %U ", format_ip4_address, mp->host_ip4_addr); + if (mp->host_ip6_gw_set) + s = format (s, "host-ip6-gw %U ", format_ip6_address, mp->host_ip6_addr); + if (mp->tx_ring_sz) + s = format (s, "tx-ring-size %d ", mp->tx_ring_sz); + if (mp->rx_ring_sz) + s = format (s, "rx-ring-size %d ", mp->rx_ring_sz); + FINISH; +} + +static void *vl_api_tap_delete_v2_t_print + (vl_api_tap_delete_v2_t * mp, void *handle) +{ + u8 *s; + + s = format (0, "SCRIPT: tap_delete_v2 "); + s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index)); + + FINISH; +} + +static void *vl_api_sw_interface_tap_v2_dump_t_print + (vl_api_sw_interface_tap_v2_dump_t * mp, void *handle) +{ + u8 *s; + + s = format (0, "SCRIPT: sw_interface_tap_v2_dump "); + + FINISH; +} + +static void *vl_api_bond_create_t_print + (vl_api_bond_create_t * mp, void *handle) +{ + u8 *s; + u8 null_mac[6]; + + memset (null_mac, 0, sizeof (null_mac)); + + s = format (0, "SCRIPT: bond_create "); + if (memcmp (mp->mac_address, null_mac, 6)) + s = format (s, "mac-address %U ", + format_ethernet_address, mp->mac_address); + if (mp->mode) + s = format (s, "mode %U", format_bond_mode, mp->mode); + if (mp->lb) + s = format (s, "lb %U", format_bond_load_balance, mp->lb); + FINISH; +} + +static void *vl_api_bond_delete_t_print + (vl_api_bond_delete_t * mp, void *handle) +{ + u8 *s; + + s = format (0, "SCRIPT: bond_delete "); + s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index)); + + FINISH; +} + +static void *vl_api_bond_enslave_t_print + (vl_api_bond_enslave_t * mp, void *handle) +{ + u8 *s; + + s = format (0, "SCRIPT: bond_enslave "); + s = format (s, "bond_sw_if_index %u ", mp->bond_sw_if_index); + s = format (s, "sw_if_index %u ", mp->sw_if_index); + if (mp->is_passive) + s = format (s, "passive "); + if (mp->is_long_timeout) + s = format (s, "long-timeout "); + + FINISH; +} + +static void *vl_api_bond_detach_slave_t_print + (vl_api_bond_detach_slave_t * mp, void *handle) +{ + u8 *s; + + s = format (0, "SCRIPT: bond_detach_slave "); + s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index)); + + FINISH; +} + +static void *vl_api_sw_interface_bond_dump_t_print + (vl_api_sw_interface_bond_dump_t * mp, void *handle) +{ + u8 *s; + + s = format (0, "SCRIPT: sw_interface_bond_dump "); + + FINISH; +} + +static void *vl_api_sw_interface_slave_dump_t_print + (vl_api_sw_interface_slave_dump_t * mp, void *handle) +{ + u8 *s; + + s = format (0, "SCRIPT: sw_interface_slave_dump "); + s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index)); + + FINISH; +} static void *vl_api_ip_add_del_route_t_print (vl_api_ip_add_del_route_t * mp, void *handle) @@ -605,11 +747,12 @@ static void *vl_api_proxy_arp_add_del_t_print s = format (0, "SCRIPT: proxy_arp_add_del "); - s = format (s, "%U - %U ", format_ip4_address, mp->low_address, - format_ip4_address, mp->hi_address); + s = format (s, "%U - %U ", + format_ip4_address, mp->proxy.low_address, + format_ip4_address, mp->proxy.hi_address); - if (mp->vrf_id) - s = format (s, "vrf %d ", ntohl (mp->vrf_id)); + if (mp->proxy.vrf_id) + s = format (s, "vrf %d ", ntohl (mp->proxy.vrf_id)); if (mp->is_add == 0) s = format (s, "del "); @@ -844,9 +987,13 @@ static void *vl_api_dhcp_proxy_set_vss_t_print s = format (s, "tbl_id %d ", ntohl (mp->tbl_id)); - s = format (s, "fib_id %d ", ntohl (mp->fib_id)); - - s = format (s, "oui %d ", ntohl (mp->oui)); + if (mp->vss_type == VSS_TYPE_VPN_ID) + { + s = format (s, "fib_id %d ", ntohl (mp->vpn_index)); + s = format (s, "oui %d ", ntohl (mp->oui)); + } + else if (mp->vss_type == VSS_TYPE_ASCII) + s = format (s, "vpn_ascii_id %s", mp->vpn_ascii_id); if (mp->is_ipv6 != 0) s = format (s, "ipv6 "); @@ -1479,6 +1626,8 @@ static void *vl_api_vxlan_add_del_tunnel_t_print s = format (s, "vni %d ", ntohl (mp->vni)); + s = format (s, "instance %d ", ntohl (mp->instance)); + if (mp->is_add == 0) s = format (s, "del "); @@ -1556,9 +1705,14 @@ static void *vl_api_gre_add_del_tunnel_t_print (ip46_address_t *) & (mp->src_address), mp->is_ipv6 ? IP46_TYPE_IP6 : IP46_TYPE_IP4); - if (mp->teb) + s = format (s, "instance %d ", ntohl (mp->instance)); + + if (mp->tunnel_type == GRE_TUNNEL_TYPE_TEB) s = format (s, "teb "); + if (mp->tunnel_type == GRE_TUNNEL_TYPE_ERSPAN) + s = format (s, "erspan %d ", ntohs (mp->session_id)); + if (mp->outer_fib_id) s = format (s, "outer-fib-id %d ", ntohl (mp->outer_fib_id)); @@ -1740,9 +1894,15 @@ static void *vl_api_cli_inband_t_print (vl_api_cli_inband_t * mp, void *handle) { u8 *s; + u8 *cmd = 0; + u32 length = ntohl (mp->length); - s = format (0, "SCRIPT: cli_inband "); + vec_validate (cmd, length); + clib_memcpy (cmd, mp->cmd, length); + s = format (0, "SCRIPT: exec %v ", cmd); + + vec_free (cmd); FINISH; } @@ -1838,6 +1998,52 @@ static void *vl_api_interface_name_renumber_t_print FINISH; } +static void *vl_api_ip_probe_neighbor_t_print + (vl_api_ip_probe_neighbor_t * mp, void *handle) +{ + u8 *s; + + s = format (0, "SCRIPT: ip_probe_neighbor "); + s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index)); + if (mp->is_ipv6) + s = format (s, "address %U ", format_ip6_address, &mp->dst_address); + else + s = format (s, "address %U ", format_ip4_address, &mp->dst_address); + + FINISH; +} + +static void *vl_api_ip_scan_neighbor_enable_disable_t_print + (vl_api_ip_scan_neighbor_enable_disable_t * mp, void *handle) +{ + u8 *s; + + s = format (0, "SCRIPT: ip_scan_neighbor_enable_disable "); + + switch (mp->mode) + { + case IP_SCAN_V4_NEIGHBORS: + s = format (s, "ip4 "); + break; + case IP_SCAN_V6_NEIGHBORS: + s = format (s, "ip6 "); + break; + case IP_SCAN_V46_NEIGHBORS: + s = format (s, "both "); + break; + default: + s = format (s, "disable "); + } + + s = format (s, "interval %d ", mp->scan_interval); + s = format (s, "max-time %d ", mp->max_proc_time); + s = format (s, "max-update %d ", mp->max_update); + s = format (s, "delay %d ", mp->scan_int_delay); + s = format (s, "stale %d ", mp->stale_threshold); + + FINISH; +} + static void *vl_api_want_ip4_arp_events_t_print (vl_api_want_ip4_arp_events_t * mp, void *handle) { @@ -1899,6 +2105,24 @@ static void *vl_api_input_acl_set_interface_t_print FINISH; } +static void *vl_api_output_acl_set_interface_t_print + (vl_api_output_acl_set_interface_t * mp, void *handle) +{ + u8 *s; + + s = format (0, "SCRIPT: output_acl_set_interface "); + + s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index)); + s = format (s, "ip4-table %d ", ntohl (mp->ip4_table_index)); + s = format (s, "ip6-table %d ", ntohl (mp->ip6_table_index)); + s = format (s, "l2-table %d ", ntohl (mp->l2_table_index)); + + if (mp->is_add == 0) + s = format (s, "del "); + + FINISH; +} + static void *vl_api_ip_address_dump_t_print (vl_api_ip_address_dump_t * mp, void *handle) { @@ -2005,7 +2229,6 @@ format_policer_action (u8 * s, va_list * va) } s = format (s, "%s", t); } - return s; } @@ -2551,7 +2774,6 @@ static void *vl_api_lisp_add_del_remote_mapping_t_print s = format (s, "seid %U ", format_lisp_flat_eid, mp->eid_type, mp->seid, mp->seid_len); } - rloc_num = clib_net_to_host_u32 (mp->rloc_num); if (0 == rloc_num) @@ -2774,7 +2996,6 @@ static void *vl_api_lisp_eid_table_dump_t_print break; } } - FINISH; } @@ -2887,7 +3108,6 @@ static void *vl_api_l2_interface_pbb_tag_rewrite_t_print s = format (s, "sid %d ", ntohl (mp->i_sid)); s = format (s, "vlanid %d ", ntohs (mp->b_vlanid)); } - FINISH; } @@ -3126,7 +3346,7 @@ static void *vl_api_sw_interface_set_lldp_t_print (vl_api_sw_interface_set_lldp_t * mp, void *handle) { u8 *s; - u8 null_data[128]; + u8 null_data[256]; memset (null_data, 0, sizeof (null_data)); @@ -3231,6 +3451,20 @@ static void *vl_api_ip_container_proxy_add_del_t_print FINISH; } +static void *vl_api_qos_record_enable_disable_t_print + (vl_api_qos_record_enable_disable_t * mp, void *handle) +{ + u8 *s; + + s = format (0, "SCRIPT: qos_record_enable_disable "); + s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index)); + s = format (s, "input_source %U ", format_qos_source, mp->input_source); + + if (!mp->enable) + s = format (s, "disable "); + + FINISH; +} #define foreach_custom_print_no_arg_function \ _(lisp_eid_table_vni_dump) \ @@ -3265,6 +3499,13 @@ _(TAP_CONNECT, tap_connect) \ _(TAP_MODIFY, tap_modify) \ _(TAP_DELETE, tap_delete) \ _(SW_INTERFACE_TAP_DUMP, sw_interface_tap_dump) \ +_(BOND_CREATE, bond_create) \ +_(BOND_DELETE, bond_delete) \ +_(BOND_ENSLAVE, bond_enslave) \ +_(BOND_DETACH_SLAVE, bond_detach_slave) \ +_(TAP_CREATE_V2, tap_create_v2) \ +_(TAP_DELETE_V2, tap_delete_v2) \ +_(SW_INTERFACE_TAP_V2_DUMP, sw_interface_tap_v2_dump) \ _(IP_ADD_DEL_ROUTE, ip_add_del_route) \ _(PROXY_ARP_ADD_DEL, proxy_arp_add_del) \ _(PROXY_ARP_INTFC_ENABLE_DISABLE, proxy_arp_intfc_enable_disable) \ @@ -3336,6 +3577,8 @@ _(L2_FIB_TABLE_DUMP, l2_fib_table_dump) \ _(VXLAN_GPE_ADD_DEL_TUNNEL, vxlan_gpe_add_del_tunnel) \ _(VXLAN_GPE_TUNNEL_DUMP, vxlan_gpe_tunnel_dump) \ _(INTERFACE_NAME_RENUMBER, interface_name_renumber) \ +_(IP_PROBE_NEIGHBOR, ip_probe_neighbor) \ +_(IP_SCAN_NEIGHBOR_ENABLE_DISABLE, ip_scan_neighbor_enable_disable) \ _(WANT_IP4_ARP_EVENTS, want_ip4_arp_events) \ _(WANT_IP6_ND_EVENTS, want_ip6_nd_events) \ _(WANT_L2_MACS_EVENTS, want_l2_macs_events) \ @@ -3428,7 +3671,9 @@ _(DNS_ENABLE_DISABLE, dns_enable_disable) \ _(DNS_NAME_SERVER_ADD_DEL, dns_name_server_add_del) \ _(DNS_RESOLVE_NAME, dns_resolve_name) \ _(DNS_RESOLVE_IP, dns_resolve_ip) \ -_(SESSION_RULE_ADD_DEL, session_rule_add_del) +_(SESSION_RULE_ADD_DEL, session_rule_add_del) \ +_(OUTPUT_ACL_SET_INTERFACE, output_acl_set_interface) \ +_(QOS_RECORD_ENABLE_DISABLE, qos_record_enable_disable) void vl_msg_api_custom_dump_configure (api_main_t * am) { @@ -3441,7 +3686,5 @@ vl_msg_api_custom_dump_configure (api_main_t * am) /* * fd.io coding-style-patch-verification: ON * - * Local Variables: - * eval: (c-set-style "gnu") - * End: + * Local Variables: eval: (c-set-style "gnu") End: */