#include <vnet/l2/l2_input.h>
#include <vnet/srv6/sr.h>
#include <vnet/vxlan-gpe/vxlan_gpe.h>
+#include <vnet/geneve/geneve.h>
#include <vnet/classify/policer_classify.h>
#include <vnet/policer/xlate.h>
#include <vnet/policer/policer.h>
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)
{
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));
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 ");
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)
{
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[128];
+
+ 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;
+}
+
+
#define foreach_custom_print_no_arg_function \
_(lisp_eid_table_vni_dump) \
_(lisp_map_resolver_dump) \
_(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_IF_L2TPV3_TUNNEL_DUMP, sw_if_l2tpv3_tunnel_dump) \
_(VXLAN_ADD_DEL_TUNNEL, vxlan_add_del_tunnel) \
_(VXLAN_TUNNEL_DUMP, vxlan_tunnel_dump) \
+_(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) \
_(SW_INTERFACE_SET_MTU, sw_interface_set_mtu) \
_(P2P_ETHERNET_ADD, p2p_ethernet_add) \
_(P2P_ETHERNET_DEL, p2p_ethernet_del) \
-_(TCP_CONFIGURE_SRC_ADDRESSES, tcp_configure_src_addresses)
+_(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)
void
vl_msg_api_custom_dump_configure (api_main_t * am)
{