X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvpp%2Fapi%2Fcustom_dump.c;h=0bd4fb8c4679ccff91aec9c3ccac7a8e0957601b;hb=3337bd2;hp=3ac8874e85287855ede6c4418ce740a80cf925ee;hpb=04ffd0ad83b2d87edb669a9d76eee85f5c589564;p=vpp.git diff --git a/src/vpp/api/custom_dump.c b/src/vpp/api/custom_dump.c index 3ac8874e852..0bd4fb8c467 100644 --- a/src/vpp/api/custom_dump.c +++ b/src/vpp/api/custom_dump.c @@ -1,31 +1,35 @@ /* - *------------------------------------------------------------------ + * ------------------------------------------------------------------ * 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 #include #include @@ -35,7 +39,7 @@ #include #include #include - +#include #include #include @@ -44,6 +48,8 @@ #include +#include + #define vl_typedefs /* define message structures */ #include #undef vl_typedefs @@ -103,6 +109,22 @@ static void *vl_api_sw_interface_set_flags_t_print s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index)); + if (mp->admin_up_down) + s = format (s, "admin-up "); + else + s = format (s, "admin-down "); + + FINISH; +} + +static void *vl_api_sw_interface_event_t_print + (vl_api_sw_interface_event_t * mp, void *handle) +{ + u8 *s; + s = format (0, "SCRIPT: sw_interface_event "); + + s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index)); + if (mp->admin_up_down) s = format (s, "admin-up "); else @@ -113,6 +135,9 @@ static void *vl_api_sw_interface_set_flags_t_print else s = format (s, "link-down"); + if (mp->deleted) + s = format (s, " deleted"); + FINISH; } @@ -210,6 +235,26 @@ static void *vl_api_sw_interface_set_vxlan_bypass_t_print FINISH; } +static void *vl_api_sw_interface_set_geneve_bypass_t_print + (vl_api_sw_interface_set_geneve_bypass_t * mp, void *handle) +{ + u8 *s; + + s = format (0, "SCRIPT: sw_interface_set_geneve_bypass "); + + s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index)); + + if (mp->is_ipv6) + s = format (s, "ip6 "); + + if (mp->enable) + s = format (s, "enable "); + else + s = format (s, "disable "); + + FINISH; +} + static void *vl_api_sw_interface_set_l2_xconnect_t_print (vl_api_sw_interface_set_l2_xconnect_t * mp, void *handle) { @@ -260,6 +305,8 @@ static void *vl_api_bridge_domain_add_del_t_print if (mp->is_add) { + if (mp->bd_tag[0]) + s = format (s, "bd_tag %s ", mp->bd_tag); s = format (s, "flood %d uu-flood %d ", mp->flood, mp->uu_flood); s = format (s, "forward %d learn %d ", mp->forward, mp->learn); s = format (s, "arp-term %d mac-age %d", mp->arp_term, mp->mac_age); @@ -340,7 +387,7 @@ static void *vl_api_l2fib_add_del_t_print s = format (0, "SCRIPT: l2fib_add_del "); - s = format (s, "mac %U ", format_ethernet_address, &mp->mac); + s = format (s, "mac %U ", format_ethernet_address, mp->mac); s = format (s, "bd_id %d ", ntohl (mp->bd_id)); @@ -373,10 +420,19 @@ vl_api_l2_flags_t_print (vl_api_l2_flags_t * mp, void *handle) s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index)); -#define _(a,b) \ - if (flags & L2INPUT_FEAT_ ## a) s = format (s, #a " "); - foreach_l2input_feat; -#undef _ + if (flags & L2_LEARN) + s = format (s, "learn "); + if (flags & L2_FWD) + s = format (s, "forward "); + if (flags & L2_FLOOD) + s = format (s, "flood "); + if (flags & L2_UU_FLOOD) + s = format (s, "uu-flood "); + if (flags & L2_ARP_TERM) + s = format (s, "arp-term "); + + if (mp->is_set == 0) + s = format (s, "clear "); FINISH; } @@ -496,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 ", ntohl (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 %u ", ntohs (mp->tx_ring_sz)); + if (mp->rx_ring_sz) + s = format (s, "rx-ring-size %u ", ntohs (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) @@ -532,15 +725,9 @@ static void *vl_api_ip_add_del_route_t_print if (mp->table_id != 0) s = format (s, "vrf %d ", ntohl (mp->table_id)); - if (mp->create_vrf_if_needed) - s = format (s, "create-vrf "); - if (mp->next_hop_weight != 1) s = format (s, "weight %d ", mp->next_hop_weight); - if (mp->not_last) - s = format (s, "not-last "); - if (mp->is_multipath) s = format (s, "multipath "); @@ -560,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 "); @@ -663,22 +851,6 @@ static void *vl_api_ip_neighbor_add_del_t_print FINISH; } -static void * -vl_api_reset_vrf_t_print (vl_api_reset_vrf_t * mp, void *handle) -{ - u8 *s; - - s = format (0, "SCRIPT: reset_vrf "); - - if (mp->vrf_id) - s = format (s, "vrf %d ", ntohl (mp->vrf_id)); - - if (mp->is_ipv6 != 0) - s = format (s, "ipv6 "); - - FINISH; -} - static void *vl_api_create_vlan_subif_t_print (vl_api_create_vlan_subif_t * mp, void *handle) { @@ -815,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 "); @@ -835,13 +1011,13 @@ static void *vl_api_dhcp_client_config_t_print s = format (0, "SCRIPT: dhcp_client_config "); - s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index)); + s = format (s, "sw_if_index %d ", ntohl (mp->client.sw_if_index)); - s = format (s, "hostname %s ", mp->hostname); + s = format (s, "hostname %s ", mp->client.hostname); - s = format (s, "want_dhcp_event %d ", mp->want_dhcp_event); + s = format (s, "want_dhcp_event %d ", mp->client.want_dhcp_event); - s = format (s, "pid %d ", ntohl (mp->pid)); + s = format (s, "pid %d ", ntohl (mp->client.pid)); if (mp->is_add == 0) s = format (s, "del "); @@ -1024,7 +1200,7 @@ static void *vl_api_sr_localsid_add_del_t_print { case SR_BEHAVIOR_END: s = format (s, "Address: %U\nBehavior: End", - format_ip6_address, (ip6_address_t *) mp->localsid_addr); + format_ip6_address, (ip6_address_t *) mp->localsid.addr); s = format (s, (mp->end_psp ? "End.PSP: True" : "End.PSP: False")); break; case SR_BEHAVIOR_X: @@ -1032,9 +1208,9 @@ static void *vl_api_sr_localsid_add_del_t_print format (s, "Address: %U\nBehavior: X (Endpoint with Layer-3 cross-connect)" "\nIface: %U\nNext hop: %U", format_ip6_address, - (ip6_address_t *) mp->localsid_addr, + (ip6_address_t *) mp->localsid.addr, format_vnet_sw_if_index_name, vnm, ntohl (mp->sw_if_index), - format_ip6_address, (ip6_address_t *) mp->nh_addr); + format_ip6_address, (ip6_address_t *) mp->nh_addr6); s = format (s, (mp->end_psp ? "End.PSP: True" : "End.PSP: False")); break; case SR_BEHAVIOR_DX4: @@ -1042,25 +1218,25 @@ static void *vl_api_sr_localsid_add_del_t_print format (s, "Address: %U\nBehavior: DX4 (Endpoint with decapsulation with IPv4 cross-connect)" "\nIface: %U\nNext hop: %U", format_ip6_address, - (ip6_address_t *) mp->localsid_addr, + (ip6_address_t *) mp->localsid.addr, format_vnet_sw_if_index_name, vnm, ntohl (mp->sw_if_index), - format_ip4_address, (ip4_address_t *) mp->nh_addr); + format_ip4_address, (ip4_address_t *) mp->nh_addr4); break; case SR_BEHAVIOR_DX6: s = format (s, "Address: %U\nBehavior: DX6 (Endpoint with decapsulation with IPv6 cross-connect)" "\nIface: %UNext hop: %U", format_ip6_address, - (ip6_address_t *) mp->localsid_addr, + (ip6_address_t *) mp->localsid.addr, format_vnet_sw_if_index_name, vnm, ntohl (mp->sw_if_index), - format_ip6_address, (ip6_address_t *) mp->nh_addr); + format_ip6_address, (ip6_address_t *) mp->nh_addr6); break; case SR_BEHAVIOR_DX2: s = format (s, "Address: %U\nBehavior: DX2 (Endpoint with decapulation and Layer-2 cross-connect)" "\nIface: %U", format_ip6_address, - (ip6_address_t *) mp->localsid_addr, + (ip6_address_t *) mp->localsid.addr, format_vnet_sw_if_index_name, vnm, ntohl (mp->sw_if_index)); break; case SR_BEHAVIOR_DT6: @@ -1068,20 +1244,20 @@ static void *vl_api_sr_localsid_add_del_t_print format (s, "Address: %U\nBehavior: DT6 (Endpoint with decapsulation and specific IPv6 table lookup)" "\nTable: %u", format_ip6_address, - (ip6_address_t *) mp->localsid_addr, ntohl (mp->fib_table)); + (ip6_address_t *) mp->localsid.addr, ntohl (mp->fib_table)); break; case SR_BEHAVIOR_DT4: s = format (s, "Address: %U\nBehavior: DT4 (Endpoint with decapsulation and specific IPv4 table lookup)" "\nTable: %u", format_ip6_address, - (ip6_address_t *) mp->localsid_addr, ntohl (mp->fib_table)); + (ip6_address_t *) mp->localsid.addr, ntohl (mp->fib_table)); break; default: if (mp->behavior >= SR_BEHAVIOR_LAST) { s = format (s, "Address: %U\n Behavior: %u", - format_ip6_address, (ip6_address_t *) mp->localsid_addr, + format_ip6_address, (ip6_address_t *) mp->localsid.addr, mp->behavior); } else @@ -1134,10 +1310,10 @@ static void *vl_api_sr_policy_add_t_print u8 *s; ip6_address_t *segments = 0, *seg; - ip6_address_t *this_address = (ip6_address_t *) mp->segments; + ip6_address_t *this_address = (ip6_address_t *) mp->sids.sids; int i; - for (i = 0; i < mp->n_segments; i++) + for (i = 0; i < mp->sids.num_sids; i++) { vec_add2 (segments, seg, 1); clib_memcpy (seg->as_u8, this_address->as_u8, sizeof (*this_address)); @@ -1174,13 +1350,12 @@ static void *vl_api_sr_policy_mod_t_print (vl_api_sr_policy_mod_t * mp, void *handle) { u8 *s; - u32 weight; ip6_address_t *segments = 0, *seg; - ip6_address_t *this_address = (ip6_address_t *) mp->segments; + ip6_address_t *this_address = (ip6_address_t *) mp->sids.sids; int i; - for (i = 0; i < mp->n_segments; i++) + for (i = 0; i < mp->sids.num_sids; i++) { vec_add2 (segments, seg, 1); clib_memcpy (seg->as_u8, this_address->as_u8, sizeof (*this_address)); @@ -1216,8 +1391,6 @@ static void *vl_api_sr_policy_del_t_print u8 *s; s = format (0, "SCRIPT: sr_policy_del "); - u8 bsid_addr[16]; - u32 sr_policy_index; s = format (s, "To be delivered. Good luck."); FINISH; } @@ -1453,12 +1626,28 @@ 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 "); FINISH; } +static void *vl_api_vxlan_offload_rx_t_print + (vl_api_vxlan_offload_rx_t * mp, void *handle) +{ + u8 *s; + s = format (0, "SCRIPT: vxlan_offload_rx "); + + s = format (s, "hw hw_if_index %d ", ntohl (mp->hw_if_index)); + s = format (s, "rx sw_if_index %d ", ntohl (mp->sw_if_index)); + if (!mp->enable) + s = format (s, "del "); + + FINISH; +} + static void *vl_api_vxlan_tunnel_dump_t_print (vl_api_vxlan_tunnel_dump_t * mp, void *handle) { @@ -1471,6 +1660,50 @@ static void *vl_api_vxlan_tunnel_dump_t_print FINISH; } +static void *vl_api_geneve_add_del_tunnel_t_print + (vl_api_geneve_add_del_tunnel_t * mp, void *handle) +{ + u8 *s; + s = format (0, "SCRIPT: geneve_add_del_tunnel "); + + ip46_address_t local = to_ip46 (mp->is_ipv6, mp->local_address); + ip46_address_t remote = to_ip46 (mp->is_ipv6, mp->remote_address); + + u8 is_grp = ip46_address_is_multicast (&remote); + char *remote_name = is_grp ? "group" : "dst"; + + s = format (s, "src %U ", format_ip46_address, &local, IP46_TYPE_ANY); + s = format (s, "%s %U ", remote_name, format_ip46_address, + &remote, IP46_TYPE_ANY); + + if (is_grp) + s = format (s, "mcast_sw_if_index %d ", ntohl (mp->mcast_sw_if_index)); + + if (mp->encap_vrf_id) + s = format (s, "encap-vrf-id %d ", ntohl (mp->encap_vrf_id)); + + s = format (s, "decap-next %d ", ntohl (mp->decap_next_index)); + + s = format (s, "vni %d ", ntohl (mp->vni)); + + if (mp->is_add == 0) + s = format (s, "del "); + + FINISH; +} + +static void *vl_api_geneve_tunnel_dump_t_print + (vl_api_geneve_tunnel_dump_t * mp, void *handle) +{ + u8 *s; + + s = format (0, "SCRIPT: geneve_tunnel_dump "); + + s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index)); + + FINISH; +} + static void *vl_api_gre_add_del_tunnel_t_print (vl_api_gre_add_del_tunnel_t * mp, void *handle) { @@ -1486,9 +1719,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)); @@ -1670,9 +1908,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); + + vec_validate (cmd, length); + clib_memcpy (cmd, mp->cmd, length); - s = format (0, "SCRIPT: cli_inband "); + s = format (0, "SCRIPT: exec %v ", cmd); + vec_free (cmd); FINISH; } @@ -1686,6 +1930,16 @@ static void *vl_api_memclnt_create_t_print FINISH; } +static void *vl_api_sockclnt_create_t_print + (vl_api_sockclnt_create_t * mp, void *handle) +{ + u8 *s; + + s = format (0, "SCRIPT: sockclnt_create name %s ", mp->name); + + FINISH; +} + static void *vl_api_show_version_t_print (vl_api_show_version_t * mp, void *handle) { @@ -1758,6 +2012,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) { @@ -1786,6 +2086,21 @@ static void *vl_api_want_ip6_nd_events_t_print FINISH; } +static void *vl_api_want_l2_macs_events_t_print + (vl_api_want_l2_macs_events_t * mp, void *handle) +{ + u8 *s; + + s = format (0, "SCRIPT: want_l2_macs_events "); + s = format (s, "learn-limit %d ", ntohl (mp->learn_limit)); + s = format (s, "scan-delay %d ", (u32) mp->scan_delay); + s = format (s, "max-entries %d ", (u32) mp->max_macs_in_event * 10); + if (mp->enable_disable == 0) + s = format (s, "disable"); + + FINISH; +} + static void *vl_api_input_acl_set_interface_t_print (vl_api_input_acl_set_interface_t * mp, void *handle) { @@ -1804,6 +2119,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) { @@ -1886,6 +2219,16 @@ static void *vl_api_af_packet_delete_t_print FINISH; } +static void *vl_api_af_packet_dump_t_print + (vl_api_af_packet_dump_t * mp, void *handle) +{ + u8 *s; + + s = format (0, "SCRIPT: af_packet_dump "); + + FINISH; +} + static u8 * format_policer_action (u8 * s, va_list * va) { @@ -1910,7 +2253,6 @@ format_policer_action (u8 * s, va_list * va) } s = format (s, "%s", t); } - return s; } @@ -2230,6 +2572,9 @@ static void *vl_api_sw_interface_span_enable_disable_t_print s = format (s, "src_sw_if_index %u ", ntohl (mp->sw_if_index_from)); s = format (s, "dst_sw_if_index %u ", ntohl (mp->sw_if_index_to)); + if (mp->is_l2) + s = format (s, "l2 "); + switch (mp->state) { case 0: @@ -2258,6 +2603,9 @@ vl_api_sw_interface_span_dump_t_print (vl_api_sw_interface_span_dump_t * mp, s = format (0, "SCRIPT: sw_interface_span_dump "); + if (mp->is_l2) + s = format (s, "l2 "); + FINISH; } @@ -2432,7 +2780,7 @@ static void *vl_api_lisp_add_del_remote_mapping_t_print (vl_api_lisp_add_del_remote_mapping_t * mp, void *handle) { u8 *s; - u32 i, rloc_num = 0; + u32 rloc_num = 0; s = format (0, "SCRIPT: lisp_add_del_remote_mapping "); @@ -2450,7 +2798,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) @@ -2574,7 +2921,6 @@ static void *vl_api_lisp_add_del_locator_set_t_print (vl_api_lisp_add_del_locator_set_t * mp, void *handle) { u8 *s; - u32 loc_num = 0, i; s = format (0, "SCRIPT: lisp_add_del_locator_set "); @@ -2583,8 +2929,6 @@ static void *vl_api_lisp_add_del_locator_set_t_print s = format (s, "locator-set %s ", mp->locator_set_name); - loc_num = clib_net_to_host_u32 (mp->locator_num); - FINISH; } @@ -2676,7 +3020,6 @@ static void *vl_api_lisp_eid_table_dump_t_print break; } } - FINISH; } @@ -2789,7 +3132,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; } @@ -2928,8 +3270,8 @@ static void *vl_api_sw_interface_tag_add_del_t_print FINISH; } -static void *vl_api_sw_interface_set_mtu_t_print - (vl_api_sw_interface_set_mtu_t * mp, void *handle) +static void *vl_api_hw_interface_set_mtu_t_print + (vl_api_hw_interface_set_mtu_t * mp, void *handle) { u8 *s; @@ -2964,6 +3306,190 @@ static void *vl_api_p2p_ethernet_del_t_print FINISH; } +static void *vl_api_tcp_configure_src_addresses_t_print + (vl_api_tcp_configure_src_addresses_t * mp, void *handle) +{ + u8 *s; + + s = format (0, "SCRIPT: tcp_configure_src_addresses "); + if (mp->is_ipv6) + s = format (s, "%U - %U ", + format_ip6_address, (ip6_address_t *) mp->first_address, + format_ip6_address, (ip6_address_t *) mp->last_address); + else + s = format (s, "%U - %U ", + format_ip4_address, (ip4_address_t *) mp->first_address, + format_ip4_address, (ip4_address_t *) mp->last_address); + + if (mp->vrf_id) + s = format (s, "vrf %d ", ntohl (mp->vrf_id)); + + FINISH; +} + +static void *vl_api_app_namespace_add_del_t_print + (vl_api_app_namespace_add_del_t * mp, void *handle) +{ + u8 *s, *ns_id = 0; + u8 len = clib_min (mp->namespace_id_len, + ARRAY_LEN (mp->namespace_id) - 1); + mp->namespace_id[len] = 0; + s = format (0, "SCRIPT: app_namespace_add_del "); + s = format (s, "ns-id %s secret %lu sw_if_index %d ipv4_fib_id %d " + "ipv6_fib_id %d", (char *) mp->namespace_id, mp->secret, + clib_net_to_host_u32 (mp->sw_if_index), + clib_net_to_host_u32 (mp->ip4_fib_id), + clib_net_to_host_u32 (mp->ip6_fib_id)); + FINISH; +} + +static void *vl_api_lldp_config_t_print + (vl_api_lldp_config_t * mp, void *handle) +{ + u8 *s; + + s = format (0, "SCRIPT: lldp_config "); + s = format (s, "system_name %s ", mp->system_name); + s = format (s, "tx_hold %d ", ntohl (mp->tx_hold)); + s = format (s, "tx_interval %d ", ntohl (mp->tx_interval)); + FINISH; +} + +static void *vl_api_dns_enable_disable_t_print + (vl_api_dns_enable_disable_t * mp, void *handle) +{ + u8 *s; + + s = format (0, "SCRIPT: dns_enable_disable "); + s = format (s, "%s ", mp->enable ? "enable" : "disable"); + + FINISH; +} + +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[256]; + + memset (null_data, 0, sizeof (null_data)); + + s = format (0, "SCRIPT: sw_interface_set_lldp "); + s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index)); + + if (memcmp (mp->port_desc, null_data, sizeof (mp->port_desc))) + s = format (s, "port_desc %s ", mp->port_desc); + + if (memcmp (mp->mgmt_ip4, null_data, sizeof (mp->mgmt_ip4))) + s = format (s, "mgmt_ip4 %U ", format_ip4_address, mp->mgmt_ip4); + + if (memcmp (mp->mgmt_ip6, null_data, sizeof (mp->mgmt_ip6))) + s = format (s, "mgmt_ip6 %U ", format_ip6_address, mp->mgmt_ip6); + + if (memcmp (mp->mgmt_oid, null_data, sizeof (mp->mgmt_oid))) + s = format (s, "mgmt_oid %s ", mp->mgmt_oid); + + if (mp->enable == 0) + s = format (s, "disable "); + + FINISH; +} + +static void *vl_api_dns_name_server_add_del_t_print + (vl_api_dns_name_server_add_del_t * mp, void *handle) +{ + u8 *s; + + s = format (0, "SCRIPT: dns_name_server_add_del "); + if (mp->is_ip6) + s = format (s, "%U ", format_ip6_address, + (ip6_address_t *) mp->server_address); + else + s = format (s, "%U ", format_ip4_address, + (ip4_address_t *) mp->server_address); + + if (mp->is_add == 0) + s = format (s, "del "); + + FINISH; +} + +static void *vl_api_dns_resolve_name_t_print + (vl_api_dns_resolve_name_t * mp, void *handle) +{ + u8 *s; + + s = format (0, "SCRIPT: dns_resolve_name "); + s = format (s, "%s ", mp->name); + FINISH; +} + +static void *vl_api_dns_resolve_ip_t_print + (vl_api_dns_resolve_ip_t * mp, void *handle) +{ + u8 *s; + + s = format (0, "SCRIPT: dns_resolve_ip "); + if (mp->is_ip6) + s = format (s, "%U ", format_ip6_address, mp->address); + else + s = format (s, "%U ", format_ip4_address, mp->address); + FINISH; +} + +static void *vl_api_session_rule_add_del_t_print + (vl_api_session_rule_add_del_t * mp, void *handle) +{ + u8 *s; + char *proto = mp->transport_proto == 0 ? "tcp" : "udp"; + s = format (0, "SCRIPT: session_rule_add_del "); + mp->tag[sizeof (mp->tag) - 1] = 0; + if (mp->is_ip4) + s = format (s, "appns %d scope %d %s %U/%d %d %U/%d %d action %u tag %s", + mp->appns_index, mp->scope, proto, format_ip4_address, + (ip4_address_t *) mp->lcl_ip, mp->lcl_plen, + format_ip4_address, (ip4_address_t *) mp->rmt_ip, + mp->rmt_plen, mp->action_index, mp->tag); + else + s = format (s, "appns %d scope %d %s %U/%d %d %U/%d %d action %u tag %s", + mp->appns_index, mp->scope, proto, format_ip6_address, + (ip6_address_t *) mp->lcl_ip, mp->lcl_plen, + format_ip6_address, (ip6_address_t *) mp->rmt_ip, + mp->rmt_plen, mp->action_index, mp->tag); + FINISH; +} + +static void *vl_api_ip_container_proxy_add_del_t_print + (vl_api_ip_container_proxy_add_del_t * mp, void *handle) +{ + u8 *s; + s = format (0, "SCRIPT: ip_container_proxy_add_del "); + if (mp->is_ip4) + s = format (s, "is_add %d address %U/%d sw_if_index %d", + mp->is_add, format_ip4_address, + (ip4_address_t *) mp->ip, mp->plen, mp->sw_if_index); + else + s = format (s, "is_add %d address %U/%d sw_if_index %d", + mp->is_add, format_ip6_address, + (ip6_address_t *) mp->ip, mp->plen, mp->sw_if_index); + 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) \ _(lisp_map_resolver_dump) \ @@ -2986,22 +3512,30 @@ foreach_custom_print_no_arg_function _(CREATE_LOOPBACK, create_loopback) \ _(CREATE_LOOPBACK_INSTANCE, create_loopback_instance) \ _(SW_INTERFACE_SET_FLAGS, sw_interface_set_flags) \ +_(SW_INTERFACE_EVENT, sw_interface_event) \ _(SW_INTERFACE_ADD_DEL_ADDRESS, sw_interface_add_del_address) \ _(SW_INTERFACE_SET_TABLE, sw_interface_set_table) \ _(SW_INTERFACE_SET_MPLS_ENABLE, sw_interface_set_mpls_enable) \ _(SW_INTERFACE_SET_VPATH, sw_interface_set_vpath) \ _(SW_INTERFACE_SET_VXLAN_BYPASS, sw_interface_set_vxlan_bypass) \ +_(SW_INTERFACE_SET_GENEVE_BYPASS, sw_interface_set_geneve_bypass) \ _(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) \ _(MPLS_TUNNEL_ADD_DEL, mpls_tunnel_add_del) \ _(SW_INTERFACE_SET_UNNUMBERED, sw_interface_set_unnumbered) \ _(IP_NEIGHBOR_ADD_DEL, ip_neighbor_add_del) \ -_(RESET_VRF, reset_vrf) \ _(CREATE_VLAN_SUBIF, create_vlan_subif) \ _(CREATE_SUBIF, create_subif) \ _(OAM_ADD_DEL, oam_add_del) \ @@ -3044,6 +3578,9 @@ _(L2TPV3_SET_LOOKUP_KEY, l2tpv3_set_lookup_key) \ _(SW_IF_L2TPV3_TUNNEL_DUMP, sw_if_l2tpv3_tunnel_dump) \ _(VXLAN_ADD_DEL_TUNNEL, vxlan_add_del_tunnel) \ _(VXLAN_TUNNEL_DUMP, vxlan_tunnel_dump) \ +_(VXLAN_OFFLOAD_RX, vxlan_offload_rx) \ +_(GENEVE_ADD_DEL_TUNNEL, geneve_add_del_tunnel) \ +_(GENEVE_TUNNEL_DUMP, geneve_tunnel_dump) \ _(GRE_ADD_DEL_TUNNEL, gre_add_del_tunnel) \ _(GRE_TUNNEL_DUMP, gre_tunnel_dump) \ _(L2_FIB_CLEAR_TABLE, l2_fib_clear_table) \ @@ -3058,14 +3595,18 @@ _(WANT_INTERFACE_EVENTS, want_interface_events) \ _(CLI, cli) \ _(CLI_INBAND, cli_inband) \ _(MEMCLNT_CREATE, memclnt_create) \ +_(SOCKCLNT_CREATE, sockclnt_create) \ _(SW_INTERFACE_VHOST_USER_DUMP, sw_interface_vhost_user_dump) \ _(SHOW_VERSION, show_version) \ _(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) \ _(INPUT_ACL_SET_INTERFACE, input_acl_set_interface) \ _(IP_ADDRESS_DUMP, ip_address_dump) \ _(IP_DUMP, ip_dump) \ @@ -3075,6 +3616,7 @@ _(COP_INTERFACE_ENABLE_DISABLE, cop_interface_enable_disable) \ _(COP_WHITELIST_ENABLE_DISABLE, cop_whitelist_enable_disable) \ _(AF_PACKET_CREATE, af_packet_create) \ _(AF_PACKET_DELETE, af_packet_delete) \ +_(AF_PACKET_DUMP, af_packet_dump) \ _(SW_INTERFACE_CLEAR_STATS, sw_interface_clear_stats) \ _(MPLS_FIB_DUMP, mpls_fib_dump) \ _(MPLS_TUNNEL_DUMP, mpls_tunnel_dump) \ @@ -3144,9 +3686,20 @@ _(IP_FIB_DUMP, ip_fib_dump) \ _(IP6_FIB_DUMP, ip6_fib_dump) \ _(FEATURE_ENABLE_DISABLE, feature_enable_disable) \ _(SW_INTERFACE_TAG_ADD_DEL, sw_interface_tag_add_del) \ -_(SW_INTERFACE_SET_MTU, sw_interface_set_mtu) \ +_(HW_INTERFACE_SET_MTU, hw_interface_set_mtu) \ _(P2P_ETHERNET_ADD, p2p_ethernet_add) \ -_(P2P_ETHERNET_DEL, p2p_ethernet_del) +_(P2P_ETHERNET_DEL, p2p_ethernet_del) \ +_(TCP_CONFIGURE_SRC_ADDRESSES, tcp_configure_src_addresses) \ +_(APP_NAMESPACE_ADD_DEL, app_namespace_add_del) \ +_(LLDP_CONFIG, lldp_config) \ +_(SW_INTERFACE_SET_LLDP, sw_interface_set_lldp) \ +_(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) \ +_(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) { @@ -3159,7 +3712,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: */