#include <vlibmemory/api.h>
#include <vnet/lisp-cp/lisp_types.h>
#include <vnet/qos/qos_types.h>
-#include <vpp/stats/stats.h>
#include <vpp/oam/oam.h>
#include <vnet/ethernet/ethernet.h>
#include <vnet/l2/l2_vtr.h>
#include <vpp/api/vpe_msg_enum.h>
+#include <vpp/api/types.h>
#include <vnet/bonding/node.h>
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)
{
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 ");
(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)
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;
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);
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));
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_create_v2 ");
s = format (s, "id %u ", ntohl (mp->id));
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: 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);
+ s = format (s, "mode %U ", format_bond_mode, mp->mode);
if (mp->lb)
- s = format (s, "lb %U", format_bond_load_balance, mp->lb);
+ s = format (s, "lb %U ", format_bond_load_balance, mp->lb);
+ if (mp->id != ~0)
+ s = format (s, "id %u ", ntohl (mp->id));
FINISH;
}
if (mp->is_add == 0)
s = format (s, "del ");
- if (mp->next_hop_sw_if_index != ~0)
- 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);
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->next_hop_weight != 1)
if (mp->next_hop_n_out_labels)
{
- for (u8 i = 0; i < mp->next_hop_n_out_labels; i++)
+ 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));
if (mp->mr_next_hop_n_out_labels)
{
- for (u8 i = 0; i < mp->mr_next_hop_n_out_labels; i++)
+ 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));
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;
}
if (mp->n_segments)
{
- for (int i = 0; i < mp->n_segments; i++)
+ int i;
+ for (i = 0; i < mp->n_segments; i++)
s = format (s, "next %d ", ntohl (mp->segments[i]));
}
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 ");
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)
{
(vl_api_gre_add_del_tunnel_t * mp, void *handle)
{
u8 *s;
+ ip46_address_t src = to_ip46 (mp->is_ipv6, mp->src_address);
+ ip46_address_t dst = to_ip46 (mp->is_ipv6, mp->dst_address);
s = format (0, "SCRIPT: gre_add_del_tunnel ");
- s = format (s, "dst %U ", format_ip46_address,
- (ip46_address_t *) & (mp->dst_address),
- mp->is_ipv6 ? IP46_TYPE_IP6 : IP46_TYPE_IP4);
-
- s = format (s, "src %U ", format_ip46_address,
- (ip46_address_t *) & (mp->src_address),
- mp->is_ipv6 ? IP46_TYPE_IP6 : IP46_TYPE_IP4);
+ s = format (s, "dst %U ", format_ip46_address, &dst, IP46_TYPE_ANY);
+ s = format (s, "src %U ", format_ip46_address, &src, IP46_TYPE_ANY);
s = format (s, "instance %d ", ntohl (mp->instance));
{
u8 *s;
u8 *cmd = 0;
- u32 length = ntohl (mp->length);
+ u32 length = vl_api_string_len (&mp->cmd);
vec_validate (cmd, length);
- clib_memcpy (cmd, mp->cmd, length);
+ clib_memcpy (cmd, vl_api_from_api_string (&mp->cmd), length);
s = format (0, "SCRIPT: exec %v ", cmd);
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)
{
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;
}
}
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 ");
u8 *s;
u8 null_data[256];
- memset (null_data, 0, sizeof (null_data));
+ 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));
_(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) \
_(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) \
_(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) \