#include <vnet/l2tp/l2tp.h>
#include <vnet/l2/l2_input.h>
#include <vnet/sr/sr_packet.h>
-#include <vnet/nsh-gre/nsh_gre.h>
-#include <vnet/nsh-vxlan-gpe/nsh_vxlan_gpe.h>
+#include <vnet/vxlan-gpe/vxlan_gpe.h>
#include <vlib/vlib.h>
#include <vlib/unix/unix.h>
#include <vlibapi/api.h>
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,
}
}
+ if (mp->policy_name[0])
+ s = format (s, "policy_name %s ", mp->policy_name);
+
if (mp->is_add == 0)
s = format (s, "del ");
FINISH;
}
+static void *vl_api_sr_policy_add_del_t_print
+(vl_api_sr_policy_add_del_t * mp, void *handle)
+{
+ u8 * s;
+ int i;
+
+ s = format (0, "SCRIPT: sr_policy_add_del ");
+
+ if (mp->name[0])
+ s = format (s, "name %s ", mp->name);
+
+
+ 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
+
+ u8 * tun_name = 0;
+ int tun_name_len = 0;
+
+ 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;
+ }
+ }
+
+ if (mp->is_add == 0)
+ s = format (s, "del ");
+
+ FINISH;
+}
+
+static void *vl_api_sr_multicast_map_add_del_t_print
+(vl_api_sr_multicast_map_add_del_t * mp, void *handle)
+{
+
+ u8 * s = 0;
+ /* int i; */
+
+ s = format (0, "SCRIPT: sr_multicast_map_add_del ");
+
+ if (mp->multicast_address[0])
+ s = format (s, "address %U ", format_ip6_address, &mp->multicast_address);
+
+ if (mp->policy_name[0])
+ s = format (s, "sr-policy %s ", &mp->policy_name);
+
+
+ if (mp->is_add == 0)
+ s = format (s, "del ");
+
+ FINISH;
+}
+
+
static void *vl_api_classify_add_del_table_t_print
(vl_api_classify_add_del_table_t * mp, void *handle)
{
s = format (0, "SCRIPT: vxlan_add_del_tunnel ");
s = format (s, "dst %U ", format_ip46_address,
- (ip46_address_t *)&(mp->dst_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));
+ (ip46_address_t *)&(mp->src_address),
+ mp->is_ipv6 ? IP46_TYPE_IP6 : IP46_TYPE_IP4);
if (mp->encap_vrf_id)
s = format (s, "encap-vrf-id %d ", ntohl(mp->encap_vrf_id));
FINISH;
}
-static void *vl_api_nsh_gre_add_del_tunnel_t_print
-(vl_api_nsh_gre_add_del_tunnel_t * mp, void *handle)
-{
- u8 * s;
- int i;
- u32 spi_si;
-
- s = format (0, "SCRIPT: nsh_gre_add_del_tunnel ");
-
- s = format (s, "src %U dst %U ", format_ip4_address, &mp->src,
- format_ip4_address, &mp->dst);
-
- spi_si = ntohl(mp->spi_si);
-
- s = format (s, "spi %d si %d ", (spi_si>>8), (spi_si & 0xff));
-
- s = format (s, "decap-next %d ", ntohl(mp->decap_next_index));
-
- if (mp->is_add == 0)
- s = format (s, "del ");
-
- if (mp->encap_vrf_id)
- s = format (s, "encap-vrf-id %d ", ntohl(mp->encap_vrf_id));
-
- if (mp->decap_vrf_id)
- s = format (s, "decap-vrf-id %d ", ntohl(mp->decap_vrf_id));
-
- if (mp->ver_o_c & 0xc)
- s = format (s, "version %d ", mp->ver_o_c>>6);
- if (mp->ver_o_c & NSH_GRE_O_BIT)
- s = format (s, "o-bit 1 ");
- if (mp->ver_o_c & NSH_GRE_C_BIT)
- s = format (s, "c-bit 1 ");
- if (mp->md_type)
- s = format (s, "md-type %d ", mp->md_type);
- if (mp->next_protocol == 1)
- s = format (s, "next-ip4 ");
- else if (mp->next_protocol == 2)
- s = format (s, "next-ip6 ");
- else if (mp->next_protocol == 3)
- s = format (s, "next-ethernet");
-
- s = format (s, "c1 %d ", ntohl(mp->c1));
- s = format (s, "c2 %d ", ntohl(mp->c2));
- s = format (s, "c3 %d ", ntohl(mp->c3));
- s = format (s, "c4 %d ", ntohl(mp->c4));
-
- for (i = 0; i < mp->tlv_len_in_words; i++) {
- s = format (s, "tlv %x ", ntohl(mp->tlvs[i]));
- }
-
- FINISH;
-}
-
-static void *vl_api_nsh_vxlan_gpe_add_del_tunnel_t_print
-(vl_api_nsh_vxlan_gpe_add_del_tunnel_t * mp, void *handle)
+static void *vl_api_vxlan_gpe_add_del_tunnel_t_print
+(vl_api_vxlan_gpe_add_del_tunnel_t * mp, void *handle)
{
u8 * s;
- int i;
- u32 spi_si;
-
- s = format (0, "SCRIPT: nsh_vxlan_gpe_add_del_tunnel ");
- s = format (s, "src %U dst %U ", format_ip4_address, &mp->src,
- format_ip4_address, &mp->dst);
+ s = format (0, "SCRIPT: vxlan_gpe_add_del_tunnel ");
- spi_si = ntohl(mp->spi_si);
+ s = format (s, "local %U ", format_ip46_address, &mp->local, mp->is_ipv6);
- s = format (s, "spi %d si %d ", (spi_si>>8), (spi_si & 0xff));
+ s = format (s, "remote %U ", format_ip46_address, &mp->remote, mp->is_ipv6);
- s = format (s, "decap-next %d ", ntohl(mp->decap_next_index));
+ s = format (s, "protocol %d ", ntohl(mp->protocol));
s = format (s, "vni %d ", ntohl(mp->vni));
if (mp->decap_vrf_id)
s = format (s, "decap-vrf-id %d ", ntohl(mp->decap_vrf_id));
- if (mp->ver_o_c & 0xc)
- s = format (s, "version %d ", mp->ver_o_c>>6);
- if (mp->ver_o_c & NSH_GRE_O_BIT)
- s = format (s, "o-bit 1 ");
- if (mp->ver_o_c & NSH_GRE_C_BIT)
- s = format (s, "c-bit 1 ");
- if (mp->md_type)
- s = format (s, "md-type %d ", mp->md_type);
- if (mp->next_protocol == 1)
- s = format (s, "next-ip4 ");
- else if (mp->next_protocol == 2)
- s = format (s, "next-ip6 ");
- else if (mp->next_protocol == 3)
- s = format (s, "next-ethernet");
-
- s = format (s, "c1 %d ", ntohl(mp->c1));
- s = format (s, "c2 %d ", ntohl(mp->c2));
- s = format (s, "c3 %d ", ntohl(mp->c3));
- s = format (s, "c4 %d ", ntohl(mp->c4));
-
- for (i = 0; i < mp->tlv_len_in_words; i++) {
- s = format (s, "tlv %x ", ntohl(mp->tlvs[i]));
- }
-
FINISH;
}
-static void *vl_api_lisp_gpe_add_del_tunnel_t_print
-(vl_api_lisp_gpe_add_del_tunnel_t * mp, void *handle)
+static void * vl_api_vxlan_gpe_tunnel_dump_t_print
+(vl_api_vxlan_gpe_tunnel_dump_t * mp, void *handle)
{
u8 * s;
- s = format (0, "SCRIPT: lisp_gpe_add_del_tunnel ");
-
- s = format (s, "src %U dst %U ", format_ip4_address, &mp->src,
- format_ip4_address, &mp->dst);
-
- if (mp->encap_vrf_id)
- s = format (s, "encap-vrf-id %d ", ntohl(mp->encap_vrf_id));
-
- if (mp->decap_vrf_id)
- s = format (s, "decap-vrf-id %d ", ntohl(mp->decap_vrf_id));
-
- s = format (s, "decap-next %d ", ntohl(mp->decap_next_index));
-
- s = format (s, "flags %x ", (u32)(mp->flags));
+ s = format (0, "SCRIPT: vxlan_gpe_tunnel_dump ");
- if (mp->ver_res)
- s = format (s, "ver_res %x ", (u32)(mp->ver_res));
-
- if (mp->res)
- s = format (s, "res %x ", (u32)(mp->res));
-
- s = format (s, "iid %d ", ntohl (mp->iid));
-
- if (mp->is_add == 0)
- s = format (s, "del ");
+ s = format (s, "sw_if_index %d ", ntohl(mp->sw_if_index));
- if (mp->next_protocol == 1)
- s = format (s, "next-ip4 ");
- else if (mp->next_protocol == 2)
- s = format (s, "next-ip6 ");
- else if (mp->next_protocol == 3)
- s = format (s, "next-ethernet ");
- else if (mp->next_protocol == 4)
- s = format (s, "next-nsh ");
-
FINISH;
}
FINISH;
}
+static void * vl_api_af_packet_create_t_print
+(vl_api_af_packet_create_t * mp, void *handle)
+{
+ u8 * s;
+
+ s = format (0, "SCRIPT: af_packet_create ");
+ s = format (s, "host_if_name %s ", mp->host_if_name);
+ if ( mp->use_random_hw_addr)
+ s = format (s, "hw_addr random ");
+ else
+ s = format (s, "hw_addr %U ", format_ethernet_address, mp->hw_addr);
+
+ FINISH;
+}
+
+static void * vl_api_af_packet_delete_t_print
+(vl_api_af_packet_delete_t * mp, void *handle)
+{
+ u8 * s;
+
+ s = format (0, "SCRIPT: af_packet_delete ");
+ s = format (s, "host_if_name %s ", mp->host_if_name);
+
+ FINISH;
+}
+
static void *vl_api_sw_interface_clear_stats_t_print
(vl_api_sw_interface_clear_stats_t * mp, void *handle)
{
_(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) \
_(SW_INTERFACE_SET_L2_XCONNECT, sw_interface_set_l2_xconnect) \
_(L2FIB_ADD_DEL, l2fib_add_del) \
_(L2_FLAGS, l2_flags) \
_(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_DUMP, bridge_domain_dump) \
_(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) \
_(MEMCLNT_CREATE, memclnt_create) \
_(SW_INTERFACE_VHOST_USER_DUMP, sw_interface_vhost_user_dump) \
_(SHOW_VERSION, show_version) \
-_(NSH_GRE_ADD_DEL_TUNNEL, nsh_gre_add_del_tunnel) \
_(L2_FIB_TABLE_DUMP, l2_fib_table_dump) \
-_(NSH_VXLAN_GPE_ADD_DEL_TUNNEL, nsh_vxlan_gpe_add_del_tunnel) \
-_(LISP_GPE_ADD_DEL_TUNNEL, lisp_gpe_add_del_tunnel) \
+_(VXLAN_GPE_ADD_DEL_TUNNEL, vxlan_gpe_add_del_tunnel) \
+_(VXLAN_GPE_TUNNEL_DUMP, vxlan_gpe_tunnel_dump) \
_(INTERFACE_NAME_RENUMBER, interface_name_renumber) \
_(WANT_IP4_ARP_EVENTS, want_ip4_arp_events) \
_(INPUT_ACL_SET_INTERFACE, input_acl_set_interface) \
_(BD_IP_MAC_ADD_DEL, bd_ip_mac_add_del) \
_(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) \
_(SW_INTERFACE_CLEAR_STATS, sw_interface_clear_stats)
void vl_msg_api_custom_dump_configure (api_main_t *am)