X-Git-Url: https://gerrit.fd.io/r/gitweb?p=vpp.git;a=blobdiff_plain;f=src%2Fvpp%2Fapi%2Fcustom_dump.c;h=0d8b453188d5c60bde401145433c30becc93cc23;hp=70b4e4c91eec99593f263037cebceb3055b8df25;hb=e26c81f;hpb=20a175a18414c67e38b5ce0709b33fb1df8069c9 diff --git a/src/vpp/api/custom_dump.c b/src/vpp/api/custom_dump.c index 70b4e4c91ee..0d8b453188d 100644 --- a/src/vpp/api/custom_dump.c +++ b/src/vpp/api/custom_dump.c @@ -1,32 +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 #include #include #include @@ -36,14 +39,16 @@ #include #include #include - -#include +#include #include #include #include #include +#include + +#include #define vl_typedefs /* define message structures */ #include @@ -73,6 +78,18 @@ static void *vl_api_create_loopback_t_print FINISH; } +static void *vl_api_create_loopback_instance_t_print + (vl_api_create_loopback_instance_t * mp, void *handle) +{ + u8 *s; + + s = format (0, "SCRIPT: create_loopback "); + s = format (s, "mac %U ", format_ethernet_address, &mp->mac_address); + s = format (s, "instance %d ", ntohl (mp->user_instance)); + + FINISH; +} + static void *vl_api_delete_loopback_t_print (vl_api_delete_loopback_t * mp, void *handle) { @@ -92,6 +109,53 @@ 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_set_rx_placement_t_print + (vl_api_sw_interface_set_rx_placement_t * mp, void *handle) +{ + u8 *s; + s = format (0, "SCRIPT: sw_interface_set_rx_placement "); + + s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index)); + + s = format (s, "queue %d ", ntohl (mp->queue_id)); + if (mp->is_main) + s = format (s, "main "); + else + s = format (s, "worker %d ", ntohl (mp->worker_id)); + + FINISH; +} + +static void *vl_api_sw_interface_rx_placement_dump_t_print + (vl_api_sw_interface_rx_placement_dump_t * mp, void *handle) +{ + u8 *s; + u32 sw_if_index = ntohl (mp->sw_if_index); + + s = format (0, "SCRIPT: sw_interface_rx_placement_dump "); + + if (sw_if_index != ~0) + s = format (s, "sw_if_index %d ", sw_if_index); + + 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 @@ -102,6 +166,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; } @@ -189,7 +256,27 @@ static void *vl_api_sw_interface_set_vxlan_bypass_t_print s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index)); if (mp->is_ipv6) - s = format (s, "ip6"); + s = format (s, "ip6 "); + + if (mp->enable) + s = format (s, "enable "); + else + s = format (s, "disable "); + + 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 "); @@ -229,8 +316,12 @@ static void *vl_api_sw_interface_set_l2_bridge_t_print if (mp->enable) { - s = format (s, "bd_id %d shg %d %senable ", ntohl (mp->bd_id), - mp->shg, ((mp->bvi) ? "bvi " : " ")); + s = format (s, "bd_id %d shg %d ", ntohl (mp->bd_id), mp->shg); + if (L2_API_PORT_TYPE_BVI == ntohl (mp->port_type)) + s = format (s, "bvi "); + if (L2_API_PORT_TYPE_UU_FWD == ntohl (mp->port_type)) + s = format (s, "uu-fwd "); + s = format (s, "enable"); } else s = format (s, "disable "); @@ -238,89 +329,88 @@ static void *vl_api_sw_interface_set_l2_bridge_t_print FINISH; } -#if DPDK > 0 -static void *vl_api_sw_interface_set_dpdk_hqos_pipe_t_print - (vl_api_sw_interface_set_dpdk_hqos_pipe_t * mp, void *handle) +static void *vl_api_bridge_domain_add_del_t_print + (vl_api_bridge_domain_add_del_t * mp, void *handle) { u8 *s; - s = format (0, "SCRIPT: sw_interface_set_dpdk_hqos_pipe "); + s = format (0, "SCRIPT: bridge_domain_add_del "); - s = format (s, "sw_if_index %u ", ntohl (mp->sw_if_index)); + s = format (s, "bd_id %d ", ntohl (mp->bd_id)); - s = format (s, "subport %u pipe %u profile %u ", - ntohl (mp->subport), ntohl (mp->pipe), ntohl (mp->profile)); + 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); + } + else + s = format (s, "del "); FINISH; } -static void *vl_api_sw_interface_set_dpdk_hqos_subport_t_print - (vl_api_sw_interface_set_dpdk_hqos_subport_t * mp, void *handle) +static void *vl_api_bridge_domain_set_mac_age_t_print + (vl_api_bridge_domain_set_mac_age_t * mp, void *handle) { u8 *s; - s = format (0, "SCRIPT: sw_interface_set_dpdk_hqos_subport "); + s = format (0, "SCRIPT: bridge_domain_set_mac_age "); - s = format (s, "sw_if_index %u ", ntohl (mp->sw_if_index)); + s = format (s, "bd_id %d ", ntohl (mp->bd_id)); - s = - format (s, - "subport %u rate %u bkt_size %u tc0 %u tc1 %u tc2 %u tc3 %u period %u", - ntohl (mp->subport), ntohl (mp->tb_rate), ntohl (mp->tb_size), - ntohl (mp->tc_rate[0]), ntohl (mp->tc_rate[1]), - ntohl (mp->tc_rate[2]), ntohl (mp->tc_rate[3]), - ntohl (mp->tc_period)); + s = format (s, "mac-age %d", mp->mac_age); FINISH; } -static void *vl_api_sw_interface_set_dpdk_hqos_tctbl_t_print - (vl_api_sw_interface_set_dpdk_hqos_tctbl_t * mp, void *handle) +static void *vl_api_bridge_domain_dump_t_print + (vl_api_bridge_domain_dump_t * mp, void *handle) { u8 *s; + u32 bd_id = ntohl (mp->bd_id); - s = format (0, "SCRIPT: sw_interface_set_dpdk_hqos_tctbl "); - - s = format (s, "sw_if_index %u ", ntohl (mp->sw_if_index)); + s = format (0, "SCRIPT: bridge_domain_dump "); - s = format (s, "entry %u tc %u queue %u", - ntohl (mp->entry), ntohl (mp->tc), ntohl (mp->queue)); + if (bd_id != ~0) + s = format (s, "bd_id %d ", bd_id); FINISH; } -#endif -static void *vl_api_bridge_domain_add_del_t_print - (vl_api_bridge_domain_add_del_t * mp, void *handle) +static void *vl_api_l2fib_flush_all_t_print + (vl_api_l2fib_flush_all_t * mp, void *handle) { u8 *s; - s = format (0, "SCRIPT: bridge_domain_add_del "); - - s = format (s, "bd_id %d ", ntohl (mp->bd_id)); - - if (mp->is_add) - { - s = format (s, "flood %d uu-flood %d forward %d learn %d arp-term %d", - mp->flood, mp->uu_flood, mp->forward, mp->learn, - mp->arp_term); - } - else - s = format (s, "del "); + s = format (0, "SCRIPT: l2fib_flush_all "); FINISH; } -static void *vl_api_bridge_domain_dump_t_print - (vl_api_bridge_domain_dump_t * mp, void *handle) + +static void *vl_api_l2fib_flush_bd_t_print + (vl_api_l2fib_flush_bd_t * mp, void *handle) { u8 *s; u32 bd_id = ntohl (mp->bd_id); - s = format (0, "SCRIPT: bridge_domain_dump "); + s = format (0, "SCRIPT: l2fib_flush_bd "); + s = format (s, "bd_id %d ", bd_id); - if (bd_id != ~0) - s = format (s, "bd_id %d ", bd_id); + FINISH; +} + +static void *vl_api_l2fib_flush_int_t_print + (vl_api_l2fib_flush_int_t * mp, void *handle) +{ + u8 *s; + u32 sw_if_index = ntohl (mp->sw_if_index); + + s = format (0, "SCRIPT: l2fib_flush_int "); + s = format (s, "sw_if_index %d ", sw_if_index); FINISH; } @@ -332,7 +422,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)); @@ -365,10 +455,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; } @@ -377,21 +476,21 @@ static void *vl_api_bridge_flags_t_print (vl_api_bridge_flags_t * mp, void *handle) { u8 *s; - u32 flags = ntohl (mp->feature_bitmap); + u32 flags = ntohl (mp->flags); s = format (0, "SCRIPT: bridge_flags "); s = format (s, "bd_id %d ", ntohl (mp->bd_id)); - if (flags & L2_LEARN) + if (flags & BRIDGE_API_FLAG_LEARN) s = format (s, "learn "); - if (flags & L2_FWD) + if (flags & BRIDGE_API_FLAG_FWD) s = format (s, "forward "); - if (flags & L2_FLOOD) + if (flags & BRIDGE_API_FLAG_FLOOD) s = format (s, "flood "); - if (flags & L2_UU_FLOOD) + if (flags & BRIDGE_API_FLAG_UU_FLOOD) s = format (s, "uu-flood "); - if (flags & L2_ARP_TERM) + if (flags & BRIDGE_API_FLAG_ARP_TERM) s = format (s, "arp-term "); if (mp->is_set == 0) @@ -408,27 +507,42 @@ static void *vl_api_bd_ip_mac_add_del_t_print s = format (0, "SCRIPT: bd_ip_mac_add_del "); s = format (s, "bd_id %d ", ntohl (mp->bd_id)); - if (mp->is_ipv6) - s = format (s, "%U ", format_ip6_address, - (ip6_address_t *) mp->ip_address); - else - s = format (s, "%U ", format_ip4_address, - (ip4_address_t *) mp->ip_address); - - s = format (s, "%U ", format_ethernet_address, mp->mac_address); + s = format (s, "%U ", format_vl_api_address, &mp->ip); + s = format (s, "%U ", format_vl_api_mac_address, &mp->mac); if (mp->is_add == 0) s = format (s, "del "); FINISH; } +static void *vl_api_bd_ip_mac_flush_t_print + (vl_api_bd_ip_mac_flush_t * mp, void *handle) +{ + u8 *s; + + s = format (0, "SCRIPT: bd_ip_mac_flush "); + s = format (s, "bd_id %d ", ntohl (mp->bd_id)); + + FINISH; +} + +static void *vl_api_bd_ip_mac_dump_t_print + (vl_api_bd_ip_mac_dump_t * mp, void *handle) +{ + u8 *s; + + s = format (0, "SCRIPT: bd_ip_mac_dump "); + + FINISH; +} + static void *vl_api_tap_connect_t_print (vl_api_tap_connect_t * mp, void *handle) { u8 *s; u8 null_mac[6]; - memset (null_mac, 0, sizeof (null_mac)); + clib_memset (null_mac, 0, sizeof (null_mac)); s = format (0, "SCRIPT: tap_connect "); s = format (s, "tapname %s ", mp->tap_name); @@ -453,7 +567,7 @@ static void *vl_api_tap_modify_t_print u8 *s; u8 null_mac[6]; - memset (null_mac, 0, sizeof (null_mac)); + clib_memset (null_mac, 0, sizeof (null_mac)); s = format (0, "SCRIPT: tap_modify "); s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index)); @@ -488,6 +602,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]; + + clib_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]; + + clib_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) @@ -498,43 +749,37 @@ static void *vl_api_ip_add_del_route_t_print if (mp->is_add == 0) s = format (s, "del "); - if (mp->next_hop_sw_if_index) - s = format (s, "sw_if_index %d ", ntohl (mp->next_hop_sw_if_index)); - if (mp->is_ipv6) s = format (s, "%U/%d ", format_ip6_address, mp->dst_address, mp->dst_address_length); else s = format (s, "%U/%d ", format_ip4_address, mp->dst_address, mp->dst_address_length); + + if (mp->table_id != 0) + s = format (s, "vrf %d ", ntohl (mp->table_id)); + if (mp->is_local) s = format (s, "local "); else if (mp->is_drop) s = format (s, "drop "); else if (mp->is_classify) s = format (s, "classify %d", ntohl (mp->classify_table_index)); + else if (mp->next_hop_via_label != htonl (MPLS_LABEL_INVALID)) + s = format (s, "via via_label %d ", ntohl (mp->next_hop_via_label)); else { if (mp->is_ipv6) s = format (s, "via %U ", format_ip6_address, mp->next_hop_address); else s = format (s, "via %U ", format_ip4_address, mp->next_hop_address); - } + if (mp->next_hop_sw_if_index != ~0) + s = format (s, "sw_if_index %d ", ntohl (mp->next_hop_sw_if_index)); - 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 "); + s = format (s, "weight %d ", (u32) mp->next_hop_weight); if (mp->is_multipath) s = format (s, "multipath "); @@ -542,6 +787,125 @@ static void *vl_api_ip_add_del_route_t_print if (mp->next_hop_table_id) s = format (s, "lookup-in-vrf %d ", ntohl (mp->next_hop_table_id)); + if (mp->next_hop_n_out_labels) + { + u8 i; + for (i = 0; i < mp->next_hop_n_out_labels; i++) + { + s = format (s, "out-label %d ", + ntohl (mp->next_hop_out_label_stack[i].label)); + } + } + + FINISH; +} + +static void *vl_api_mpls_route_add_del_t_print + (vl_api_mpls_route_add_del_t * mp, void *handle) +{ + u8 *s; + + s = format (0, "SCRIPT: mpls_route_add_del "); + + if (mp->mr_is_add) + s = format (s, "add "); + else + s = format (s, "del "); + + s = format (s, "%d ", ntohl (mp->mr_label)); + + if (mp->mr_eos) + s = format (s, "eos "); + else + s = format (s, "non-eos "); + + + if (mp->mr_next_hop_proto == DPO_PROTO_IP4) + { + ip4_address_t ip4_null = {.as_u32 = 0, }; + if (memcmp (mp->mr_next_hop, &ip4_null, sizeof (ip4_null))) + s = format (s, "via %U ", format_ip4_address, mp->mr_next_hop); + else + s = format (s, "via lookup-in-ip4-table %d ", + ntohl (mp->mr_next_hop_table_id)); + } + else if (mp->mr_next_hop_proto == DPO_PROTO_IP6) + { + ip6_address_t ip6_null = { {0} + }; + if (memcmp (mp->mr_next_hop, &ip6_null, sizeof (ip6_null))) + s = format (s, "via %U ", format_ip6_address, mp->mr_next_hop); + else + s = format (s, "via lookup-in-ip6-table %d ", + ntohl (mp->mr_next_hop_table_id)); + } + else if (mp->mr_next_hop_proto == DPO_PROTO_ETHERNET) + { + s = format (s, "via l2-input-on "); + } + else if (mp->mr_next_hop_proto == DPO_PROTO_MPLS) + { + if (mp->mr_next_hop_via_label != htonl (MPLS_LABEL_INVALID)) + s = + format (s, "via via-label %d ", ntohl (mp->mr_next_hop_via_label)); + else + s = format (s, "via next-hop-table %d ", + ntohl (mp->mr_next_hop_table_id)); + } + if (mp->mr_next_hop_sw_if_index != ~0) + s = format (s, "sw_if_index %d ", ntohl (mp->mr_next_hop_sw_if_index)); + + if (mp->mr_next_hop_weight != 1) + s = format (s, "weight %d ", (u32) mp->mr_next_hop_weight); + + if (mp->mr_is_multipath) + s = format (s, "multipath "); + + if (mp->mr_is_classify) + s = format (s, "classify %d", ntohl (mp->mr_classify_table_index)); + + if (mp->mr_next_hop_n_out_labels) + { + u8 i; + for (i = 0; i < mp->mr_next_hop_n_out_labels; i++) + { + s = format (s, "out-label %d ", + ntohl (mp->mr_next_hop_out_label_stack[i].label)); + } + } + + FINISH; +} + +static void *vl_api_ip_table_add_del_t_print + (vl_api_ip_table_add_del_t * mp, void *handle) +{ + u8 *s; + + s = format (0, "SCRIPT: ip_table_add_del "); + if (mp->is_add) + s = format (s, "add "); + else + s = format (s, "del "); + if (mp->is_ipv6) + s = format (s, "ip6 "); + s = format (s, "table %d ", ntohl (mp->table_id)); + + FINISH; +} + +static void *vl_api_mpls_table_add_del_t_print + (vl_api_mpls_table_add_del_t * mp, void *handle) +{ + u8 *s; + + s = format (0, "SCRIPT: mpls_table_add_del "); + if (mp->mt_is_add) + s = format (s, "add "); + else + s = format (s, "del "); + s = format (s, "table %d ", ntohl (mp->mt_table_id)); + FINISH; } @@ -552,11 +916,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 "); @@ -585,19 +950,71 @@ static void *vl_api_mpls_tunnel_add_del_t_print s = format (0, "SCRIPT: mpls_tunnel_add_del "); - if (mp->mt_next_hop_sw_if_index) - s = format (s, "sw_if_index %d ", ntohl (mp->mt_next_hop_sw_if_index)); + if (mp->mt_is_add == 0) + s = format (s, "del sw_if_index %d ", ntohl (mp->mt_sw_if_index)); - if (mp->mt_next_hop_proto_is_ip4) - s = format (s, "%U ", format_ip4_address, mp->mt_next_hop); + mpls_label_t label = ntohl (mp->mt_next_hop_via_label); + if (label != MPLS_LABEL_INVALID) + s = format (s, "via-label %d ", label); + else if (mp->mt_next_hop_proto_is_ip4) + s = format (s, "via %U ", format_ip4_address, mp->mt_next_hop); else - s = format (s, "%U ", format_ip6_address, mp->mt_next_hop); + s = format (s, "via %U ", format_ip6_address, mp->mt_next_hop); + + if (mp->mt_next_hop_sw_if_index != ~0) + s = format (s, "sw_if_index %d ", ntohl (mp->mt_next_hop_sw_if_index)); + else if (mp->mt_next_hop_table_id) + s = format (s, "next-hop-table %d ", ntohl (mp->mt_next_hop_table_id)); if (mp->mt_l2_only) s = format (s, "l2-only "); - if (mp->mt_is_add == 0) - s = format (s, "del "); + if (mp->mt_next_hop_n_out_labels) + { + u8 i; + for (i = 0; i < mp->mt_next_hop_n_out_labels; i++) + { + s = format (s, "out-label %d ", + ntohl (mp->mt_next_hop_out_label_stack[i].label)); + } + } + + FINISH; +} + +static void *vl_api_sr_mpls_policy_add_t_print + (vl_api_sr_mpls_policy_add_t * mp, void *handle) +{ + u8 *s; + + s = format (0, "SCRIPT: sr_mpls_policy_add "); + + s = format (s, "bsid %d ", ntohl (mp->bsid)); + + if (mp->weight != htonl ((u32) 1)) + s = format (s, "%d ", ntohl (mp->weight)); + + if (mp->type) + s = format (s, "spray "); + + if (mp->n_segments) + { + int i; + for (i = 0; i < mp->n_segments; i++) + s = format (s, "next %d ", ntohl (mp->segments[i])); + } + + FINISH; +} + +static void *vl_api_sr_mpls_policy_del_t_print + (vl_api_sr_mpls_policy_del_t * mp, void *handle) +{ + u8 *s; + + s = format (0, "SCRIPT: sr_mpls_policy_del "); + + s = format (s, "bsid %d ", ntohl (mp->bsid)); FINISH; } @@ -625,7 +1042,7 @@ static void *vl_api_ip_neighbor_add_del_t_print u8 *s; u8 null_mac[6]; - memset (null_mac, 0, sizeof (null_mac)); + clib_memset (null_mac, 0, sizeof (null_mac)); s = format (0, "SCRIPT: ip_neighbor_add_del "); @@ -634,7 +1051,8 @@ static void *vl_api_ip_neighbor_add_del_t_print if (mp->is_static) s = format (s, "is_static "); - s = format (s, "vrf_id %d ", ntohl (mp->vrf_id)); + if (mp->is_no_adj_fib) + s = format (s, "is_no_fib_entry "); if (memcmp (mp->mac_address, null_mac, 6)) s = format (s, "mac %U ", format_ethernet_address, mp->mac_address); @@ -654,22 +1072,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) { @@ -806,9 +1208,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 "); @@ -826,13 +1232,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 ", mp->pid); + s = format (s, "pid %d ", ntohl (mp->client.pid)); if (mp->is_add == 0) s = format (s, "del "); @@ -874,20 +1280,6 @@ static void *vl_api_set_ip_flow_hash_t_print FINISH; } -static void *vl_api_sw_interface_ip6_set_link_local_address_t_print - (vl_api_sw_interface_ip6_set_link_local_address_t * mp, void *handle) -{ - u8 *s; - - s = format (0, "SCRIPT: sw_interface_ip6_set_link_local_address "); - - s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index)); - - s = format (s, "%U ", format_ip6_address, mp->address); - - FINISH; -} - static void *vl_api_sw_interface_ip6nd_ra_prefix_t_print (vl_api_sw_interface_ip6nd_ra_prefix_t * mp, void *handle) { @@ -1003,143 +1395,212 @@ static void *vl_api_l2_patch_add_del_t_print FINISH; } -static void *vl_api_sr_tunnel_add_del_t_print - (vl_api_sr_tunnel_add_del_t * mp, void *handle) +static void *vl_api_sr_localsid_add_del_t_print + (vl_api_sr_localsid_add_del_t * mp, void *handle) { + vnet_main_t *vnm = vnet_get_main (); u8 *s; - ip6_address_t *this_address; - int i; - u16 flags_host_byte_order; - u8 pl_flag; - - s = format (0, "SCRIPT: sr_tunnel_add_del "); - - if (mp->name[0]) - s = format (s, "name %s ", mp->name); - s = format (s, "src %U dst %U/%d ", format_ip6_address, - (ip6_address_t *) mp->src_address, - format_ip6_address, - (ip6_address_t *) mp->dst_address, mp->dst_mask_width); + s = format (0, "SCRIPT: sr_localsid_add_del "); - this_address = (ip6_address_t *) mp->segs_and_tags; - for (i = 0; i < mp->n_segments; i++) - { - s = format (s, "next %U ", format_ip6_address, this_address); - this_address++; - } - for (i = 0; i < mp->n_tags; i++) + switch (mp->behavior) { - s = format (s, "tag %U ", format_ip6_address, this_address); - this_address++; + case SR_BEHAVIOR_END: + s = format (s, "Address: %U\nBehavior: End", + 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: + s = + 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, + format_vnet_sw_if_index_name, vnm, ntohl (mp->sw_if_index), + 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: + s = + 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, + format_vnet_sw_if_index_name, vnm, ntohl (mp->sw_if_index), + 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, + format_vnet_sw_if_index_name, vnm, ntohl (mp->sw_if_index), + 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, + format_vnet_sw_if_index_name, vnm, ntohl (mp->sw_if_index)); + break; + case SR_BEHAVIOR_DT6: + s = + 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)); + 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)); + 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, + mp->behavior); + } + else + //Should never get here... + s = format (s, "Internal error"); + break; } + FINISH; +} - flags_host_byte_order = clib_net_to_host_u16 (mp->flags_net_byte_order); +static void *vl_api_sr_steering_add_del_t_print + (vl_api_sr_steering_add_del_t * mp, void *handle) +{ + u8 *s; - if (flags_host_byte_order & IP6_SR_HEADER_FLAG_CLEANUP) - s = format (s, " clean "); + s = format (0, "SCRIPT: sr_steering_add_del "); - if (flags_host_byte_order & IP6_SR_HEADER_FLAG_PROTECTED) - s = format (s, "protected "); + s = format (s, (mp->is_del ? "Del: True" : "Del: False")); - for (i = 1; i <= 4; i++) + switch (mp->traffic_type) { - pl_flag = ip6_sr_policy_list_flags (flags_host_byte_order, i); - - switch (pl_flag) - { - case IP6_SR_HEADER_FLAG_PL_ELT_NOT_PRESENT: - continue; - - case IP6_SR_HEADER_FLAG_PL_ELT_INGRESS_PE: - s = format (s, "InPE %d ", i); - break; - - case IP6_SR_HEADER_FLAG_PL_ELT_EGRESS_PE: - s = format (s, "EgPE %d ", i); - break; - - case IP6_SR_HEADER_FLAG_PL_ELT_ORIG_SRC_ADDR: - s = format (s, "OrgSrc %d ", i); - break; - - default: - clib_warning ("BUG: pl elt %d value %d", i, pl_flag); - break; - } + case SR_STEER_L2: + s = format (s, "Traffic type: L2 iface: %u", ntohl (mp->sw_if_index)); + break; + case SR_STEER_IPV4: + s = format (s, "Traffic type: IPv4 %U/%u", format_ip4_address, + (ip4_address_t *) mp->prefix_addr, ntohl (mp->mask_width)); + break; + case SR_STEER_IPV6: + s = format (s, "Traffic type: IPv6 %U/%u", format_ip6_address, + (ip6_address_t *) mp->prefix_addr, ntohl (mp->mask_width)); + break; + default: + s = format (s, "Traffic type: Unknown(%u)", mp->traffic_type); + break; } + s = format (s, "BindingSID: %U", format_ip6_address, + (ip6_address_t *) mp->bsid_addr); - if (mp->policy_name[0]) - s = format (s, "policy_name %s ", mp->policy_name); + s = format (s, "SR Policy Index: %u", ntohl (mp->sr_policy_index)); - if (mp->is_add == 0) - s = format (s, "del "); + s = format (s, "FIB_table: %u", ntohl (mp->table_id)); FINISH; } -static void *vl_api_sr_policy_add_del_t_print - (vl_api_sr_policy_add_del_t * mp, void *handle) +static void *vl_api_sr_policy_add_t_print + (vl_api_sr_policy_add_t * mp, void *handle) { u8 *s; + + ip6_address_t *segments = 0, *seg; + ip6_address_t *this_address = (ip6_address_t *) mp->sids.sids; + int 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)); + this_address++; + } - s = format (0, "SCRIPT: sr_policy_add_del "); + s = format (0, "SCRIPT: sr_policy_add "); - if (mp->name[0]) - s = format (s, "name %s ", mp->name); + s = format (s, "BSID: %U", format_ip6_address, + (ip6_address_t *) mp->bsid_addr); + s = + format (s, + (mp->is_encap ? "Behavior: Encapsulation" : + "Behavior: SRH insertion")); - if (mp->tunnel_names[0]) - { - // start deserializing tunnel_names - int num_tunnels = mp->tunnel_names[0]; //number of tunnels - u8 *deser_tun_names = mp->tunnel_names; - deser_tun_names += 1; //moving along + s = format (s, "FIB_table: %u", ntohl (mp->fib_table)); - u8 *tun_name = 0; - int tun_name_len = 0; + s = format (s, (mp->type ? "Type: Default" : "Type: Spray")); - for (i = 0; i < num_tunnels; i++) - { - tun_name_len = *deser_tun_names; - deser_tun_names += 1; - vec_resize (tun_name, tun_name_len); - memcpy (tun_name, deser_tun_names, tun_name_len); - s = format (s, "tunnel %s ", tun_name); - deser_tun_names += tun_name_len; - tun_name = 0; - } - } + s = format (s, "SID list weight: %u", ntohl (mp->weight)); - if (mp->is_add == 0) - s = format (s, "del "); + s = format (s, "{"); + vec_foreach (seg, segments) + { + s = format (s, "%U, ", format_ip6_address, seg); + } + s = format (s, "\b\b } "); FINISH; } -static void *vl_api_sr_multicast_map_add_del_t_print - (vl_api_sr_multicast_map_add_del_t * mp, void *handle) +static void *vl_api_sr_policy_mod_t_print + (vl_api_sr_policy_mod_t * mp, void *handle) { + u8 *s; + + ip6_address_t *segments = 0, *seg; + ip6_address_t *this_address = (ip6_address_t *) mp->sids.sids; - u8 *s = 0; - /* int i; */ + int 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)); + this_address++; + } - s = format (0, "SCRIPT: sr_multicast_map_add_del "); + s = format (0, "SCRIPT: sr_policy_mod "); - if (mp->multicast_address[0]) - s = format (s, "address %U ", format_ip6_address, &mp->multicast_address); + s = format (s, "BSID: %U", format_ip6_address, + (ip6_address_t *) mp->bsid_addr); - if (mp->policy_name[0]) - s = format (s, "sr-policy %s ", &mp->policy_name); + s = format (s, "SR Policy index: %u", ntohl (mp->sr_policy_index)); + s = format (s, "Operation: %u", mp->operation); - if (mp->is_add == 0) - s = format (s, "del "); + s = format (s, "SID list index: %u", ntohl (mp->sl_index)); + + s = format (s, "SID list weight: %u", ntohl (mp->weight)); + + s = format (s, "{"); + vec_foreach (seg, segments) + { + s = format (s, "%U, ", format_ip6_address, seg); + } + s = format (s, "\b\b } "); FINISH; } +static void *vl_api_sr_policy_del_t_print + (vl_api_sr_policy_del_t * mp, void *handle) +{ + u8 *s; + + s = format (0, "SCRIPT: sr_policy_del "); + s = format (s, "To be delivered. Good luck."); + FINISH; +} static void *vl_api_classify_add_del_table_t_print (vl_api_classify_add_del_table_t * mp, void *handle) @@ -1352,10 +1813,8 @@ static void *vl_api_vxlan_add_del_tunnel_t_print u8 *s; s = format (0, "SCRIPT: vxlan_add_del_tunnel "); - ip46_address_t src, dst; - - ip46_from_addr_buf (mp->is_ipv6, mp->dst_address, &dst); - ip46_from_addr_buf (mp->is_ipv6, mp->src_address, &src); + ip46_address_t src = to_ip46 (mp->is_ipv6, mp->src_address); + ip46_address_t dst = to_ip46 (mp->is_ipv6, mp->dst_address); u8 is_grp = ip46_address_is_multicast (&dst); char *dst_name = is_grp ? "group" : "dst"; @@ -1374,10 +1833,23 @@ 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 "); - if (mp->is_add == 0) + 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; @@ -1395,6 +1867,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) { @@ -1410,9 +1926,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)); @@ -1488,6 +2009,10 @@ static void *vl_api_create_vhost_user_if_t_print s = format (s, "server "); if (mp->renumber) s = format (s, "renumber %d ", ntohl (mp->custom_dev_instance)); + if (mp->disable_mrg_rxbuf) + s = format (s, "disable_mrg_rxbuf "); + if (mp->disable_indirect_desc) + s = format (s, "disable_indirect_desc "); if (mp->tag[0]) s = format (s, "tag %s", mp->tag); @@ -1580,12 +2105,12 @@ static void *vl_api_want_interface_events_t_print FINISH; } -static void *vl_api_cli_request_t_print - (vl_api_cli_request_t * mp, void *handle) +static void * +vl_api_cli_t_print (vl_api_cli_t * mp, void *handle) { u8 *s; - s = format (0, "SCRIPT: cli_request "); + s = format (0, "SCRIPT: cli "); FINISH; } @@ -1594,9 +2119,15 @@ static void *vl_api_cli_inband_t_print (vl_api_cli_inband_t * mp, void *handle) { u8 *s; + u8 *cmd = 0; + u32 length = vl_api_string_len (&mp->cmd); + + vec_validate (cmd, length); + clib_memcpy (cmd, vl_api_from_api_string (&mp->cmd), length); - s = format (0, "SCRIPT: cli_inband "); + s = format (0, "SCRIPT: exec %v ", cmd); + vec_free (cmd); FINISH; } @@ -1610,6 +2141,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) { @@ -1620,6 +2161,16 @@ static void *vl_api_show_version_t_print FINISH; } +static void *vl_api_show_threads_t_print + (vl_api_show_threads_t * mp, void *handle) +{ + u8 *s; + + s = format (0, "SCRIPT: show_threads "); + + FINISH; +} + static void *vl_api_vxlan_gpe_add_del_tunnel_t_print (vl_api_vxlan_gpe_add_del_tunnel_t * mp, void *handle) { @@ -1627,10 +2178,18 @@ static void *vl_api_vxlan_gpe_add_del_tunnel_t_print s = format (0, "SCRIPT: vxlan_gpe_add_del_tunnel "); - s = format (s, "local %U ", format_ip46_address, &mp->local, mp->is_ipv6); + ip46_address_t local = to_ip46 (mp->is_ipv6, mp->local); + ip46_address_t remote = to_ip46 (mp->is_ipv6, mp->remote); - s = format (s, "remote %U ", format_ip46_address, &mp->remote, mp->is_ipv6); + u8 is_grp = ip46_address_is_multicast (&remote); + char *remote_name = is_grp ? "group" : "remote"; + s = format (s, "local %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)); s = format (s, "protocol %d ", ntohl (mp->protocol)); s = format (s, "vni %d ", ntohl (mp->vni)); @@ -1674,13 +2233,59 @@ 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) { u8 *s; s = format (0, "SCRIPT: want_ip4_arp_events "); - s = format (s, "pid %d address %U ", mp->pid, + s = format (s, "pid %d address %U ", ntohl (mp->pid), format_ip4_address, &mp->address); if (mp->enable_disable == 0) s = format (s, "del "); @@ -1694,7 +2299,7 @@ static void *vl_api_want_ip6_nd_events_t_print u8 *s; s = format (0, "SCRIPT: want_ip6_nd_events "); - s = format (s, "pid %d address %U ", mp->pid, + s = format (s, "pid %d address %U ", ntohl (mp->pid), format_ip6_address, mp->address); if (mp->enable_disable == 0) s = format (s, "del "); @@ -1702,6 +2307,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) { @@ -1720,6 +2340,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) { @@ -1802,6 +2440,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) { @@ -1826,7 +2474,6 @@ format_policer_action (u8 * s, va_list * va) } s = format (s, "%s", t); } - return s; } @@ -1979,7 +2626,7 @@ static void *vl_api_mpls_tunnel_dump_t_print s = format (0, "SCRIPT: mpls_tunnel_dump "); - s = format (s, "tunnel_index %d ", ntohl (mp->tunnel_index)); + s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index)); FINISH; } @@ -2146,6 +2793,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: @@ -2174,6 +2824,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; } @@ -2348,7 +3001,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 "); @@ -2366,7 +3019,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) @@ -2490,7 +3142,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 "); @@ -2499,8 +3150,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; } @@ -2592,7 +3241,6 @@ static void *vl_api_lisp_eid_table_dump_t_print break; } } - FINISH; } @@ -2705,7 +3353,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; } @@ -2727,19 +3374,19 @@ static void *vl_api_flow_classify_set_interface_t_print } static void * -vl_api_punt_t_print (vl_api_punt_t * mp, void *handle) +vl_api_set_punt_t_print (vl_api_set_punt_t * mp, void *handle) { u8 *s; s = format (0, "SCRIPT: punt "); - if (mp->ipv != (u8) ~ 0) - s = format (s, "ip %d ", mp->ipv); + if (mp->punt.ipv != (u8) ~ 0) + s = format (s, "ip %d ", mp->punt.ipv); - s = format (s, "protocol %d ", mp->l4_protocol); + s = format (s, "protocol %d ", mp->punt.l4_protocol); - if (mp->l4_port != (u16) ~ 0) - s = format (s, "port %d ", ntohs (mp->l4_port)); + if (mp->punt.l4_port != (u16) ~ 0) + s = format (s, "port %d ", ntohs (mp->punt.l4_port)); if (!mp->is_add) s = format (s, "del "); @@ -2844,8 +3491,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; @@ -2856,6 +3503,216 @@ static void *vl_api_sw_interface_set_mtu_t_print FINISH; } +static void *vl_api_p2p_ethernet_add_t_print + (vl_api_p2p_ethernet_add_t * mp, void *handle) +{ + u8 *s; + + s = format (0, "SCRIPT: p2p_ethernet_add "); + s = format (s, "sw_if_index %d ", ntohl (mp->parent_if_index)); + s = format (s, "remote_mac %U ", format_ethernet_address, mp->remote_mac); + + FINISH; +} + +static void *vl_api_p2p_ethernet_del_t_print + (vl_api_p2p_ethernet_del_t * mp, void *handle) +{ + u8 *s; + + s = format (0, "SCRIPT: p2p_ethernet_del "); + s = format (s, "sw_if_index %d ", ntohl (mp->parent_if_index)); + s = format (s, "remote_mac %U ", format_ethernet_address, mp->remote_mac); + + 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]; + + clib_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, + ntohl (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) \ @@ -2876,23 +3733,37 @@ foreach_custom_print_no_arg_function #undef _ #define foreach_custom_print_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) \ +_(IP_TABLE_ADD_DEL, ip_table_add_del) \ +_(MPLS_ROUTE_ADD_DEL, mpls_route_add_del) \ +_(MPLS_TABLE_ADD_DEL, mpls_table_add_del) \ _(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) \ +_(SR_MPLS_POLICY_ADD, sr_mpls_policy_add) \ +_(SR_MPLS_POLICY_DEL, sr_mpls_policy_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) \ @@ -2900,17 +3771,20 @@ _(RESET_FIB, reset_fib) \ _(DHCP_PROXY_CONFIG, dhcp_proxy_config) \ _(DHCP_PROXY_SET_VSS, dhcp_proxy_set_vss) \ _(SET_IP_FLOW_HASH, set_ip_flow_hash) \ -_(SW_INTERFACE_IP6_SET_LINK_LOCAL_ADDRESS, \ - sw_interface_ip6_set_link_local_address) \ _(SW_INTERFACE_IP6ND_RA_PREFIX, sw_interface_ip6nd_ra_prefix) \ _(SW_INTERFACE_IP6ND_RA_CONFIG, sw_interface_ip6nd_ra_config) \ _(SET_ARP_NEIGHBOR_LIMIT, set_arp_neighbor_limit) \ _(L2_PATCH_ADD_DEL, l2_patch_add_del) \ -_(SR_TUNNEL_ADD_DEL, sr_tunnel_add_del) \ -_(SR_POLICY_ADD_DEL, sr_policy_add_del) \ -_(SR_MULTICAST_MAP_ADD_DEL, sr_multicast_map_add_del) \ +_(SR_LOCALSID_ADD_DEL, sr_localsid_add_del) \ +_(SR_STEERING_ADD_DEL, sr_steering_add_del) \ +_(SR_POLICY_ADD, sr_policy_add) \ +_(SR_POLICY_MOD, sr_policy_mod) \ +_(SR_POLICY_DEL, sr_policy_del) \ _(SW_INTERFACE_SET_L2_XCONNECT, sw_interface_set_l2_xconnect) \ _(L2FIB_ADD_DEL, l2fib_add_del) \ +_(L2FIB_FLUSH_ALL, l2fib_flush_all) \ +_(L2FIB_FLUSH_BD, l2fib_flush_bd) \ +_(L2FIB_FLUSH_INT, l2fib_flush_int) \ _(L2_FLAGS, l2_flags) \ _(BRIDGE_FLAGS, bridge_flags) \ _(CLASSIFY_ADD_DEL_TABLE, classify_add_del_table) \ @@ -2918,6 +3792,7 @@ _(CLASSIFY_ADD_DEL_SESSION, classify_add_del_session) \ _(SW_INTERFACE_SET_L2_BRIDGE, sw_interface_set_l2_bridge) \ _(BRIDGE_DOMAIN_ADD_DEL, bridge_domain_add_del) \ _(BRIDGE_DOMAIN_DUMP, bridge_domain_dump) \ +_(BRIDGE_DOMAIN_SET_MAC_AGE, bridge_domain_set_mac_age) \ _(CLASSIFY_SET_INTERFACE_IP_TABLE, classify_set_interface_ip_table) \ _(CLASSIFY_SET_INTERFACE_L2_TABLES, classify_set_interface_l2_tables) \ _(ADD_NODE_NEXT, add_node_next) \ @@ -2929,6 +3804,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) \ @@ -2940,26 +3818,32 @@ _(DELETE_VHOST_USER_IF, delete_vhost_user_if) \ _(SW_INTERFACE_DUMP, sw_interface_dump) \ _(CONTROL_PING, control_ping) \ _(WANT_INTERFACE_EVENTS, want_interface_events) \ -_(CLI_REQUEST, cli_request) \ +_(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) \ _(DELETE_LOOPBACK, delete_loopback) \ _(BD_IP_MAC_ADD_DEL, bd_ip_mac_add_del) \ +_(BD_IP_MAC_FLUSH, bd_ip_mac_flush) \ _(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) \ @@ -3019,7 +3903,7 @@ _(IPSEC_GRE_ADD_DEL_TUNNEL, ipsec_gre_add_del_tunnel) \ _(IPSEC_GRE_TUNNEL_DUMP, ipsec_gre_tunnel_dump) \ _(DELETE_SUBIF, delete_subif) \ _(L2_INTERFACE_PBB_TAG_REWRITE, l2_interface_pbb_tag_rewrite) \ -_(PUNT, punt) \ +_(SET_PUNT, set_punt) \ _(FLOW_CLASSIFY_SET_INTERFACE, flow_classify_set_interface) \ _(FLOW_CLASSIFY_DUMP, flow_classify_dump) \ _(GET_FIRST_MSG_ID, get_first_msg_id) \ @@ -3029,7 +3913,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) \ +_(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) { @@ -3037,24 +3934,10 @@ vl_msg_api_custom_dump_configure (api_main_t * am) = (void *) vl_api_##f##_t_print; foreach_custom_print_function; #undef _ - -#if DPDK > 0 - /* - * manually add DPDK hqos print handlers - */ - am->msg_print_handlers[VL_API_SW_INTERFACE_SET_DPDK_HQOS_PIPE] = - (void *) vl_api_sw_interface_set_dpdk_hqos_pipe_t_print; - am->msg_print_handlers[VL_API_SW_INTERFACE_SET_DPDK_HQOS_SUBPORT] = - (void *) vl_api_sw_interface_set_dpdk_hqos_subport_t_print; - am->msg_print_handlers[VL_API_SW_INTERFACE_SET_DPDK_HQOS_TCTBL] = - (void *) vl_api_sw_interface_set_dpdk_hqos_tctbl_t_print; -#endif } /* * fd.io coding-style-patch-verification: ON * - * Local Variables: - * eval: (c-set-style "gnu") - * End: + * Local Variables: eval: (c-set-style "gnu") End: */