#include <vnet/ip/format.h>
#include <vnet/ethernet/ethernet.h>
+#include <vnet/ip/ip_types_api.h>
+
+#define vl_endianfun /* define message structures */
+#include <acl/acl_types.api.h>
+#undef vl_endianfun
/* Macro to finish up custom dump fns */
#define PRINT_S \
return(s);
}
+static inline void *
+vl_api_acl_rule_t_print (vl_api_acl_rule_t * a, void *handle)
+{
+ u8 *s;
+ fib_prefix_t src, dst;
+
+ ip_prefix_decode (&a->src_prefix, &src);
+ ip_prefix_decode (&a->dst_prefix, &dst);
+
+ s = format (0, " %s ", a->src_prefix.address.af ? "ipv6" : "ipv4");
+ s = format_acl_action (s, a->is_permit);
+ s = format (s, " \\\n");
+
+ s = format (s, " src %U dst %U \\\n",
+ format_fib_prefix, &src,
+ format_fib_prefix, &dst);
+ s = format (s, " proto %d \\\n", a->proto);
+ s = format (s, " sport %d-%d dport %d-%d \\\n",
+ clib_net_to_host_u16 (a->srcport_or_icmptype_first),
+ clib_net_to_host_u16 (a->srcport_or_icmptype_last),
+ clib_net_to_host_u16 (a->dstport_or_icmpcode_first),
+ clib_net_to_host_u16 (a->dstport_or_icmpcode_last));
+
+ s = format (s, " tcpflags %u mask %u, \\",
+ a->tcp_flags_value, a->tcp_flags_mask);
+ PRINT_S;
+ return handle;
+}
+
+static inline void *
+vl_api_macip_acl_rule_t_print (vl_api_macip_acl_rule_t * a, void *handle)
+{
+ u8 *s;
+ fib_prefix_t src;
+
+ ip_prefix_decode (&a->src_prefix, &src);
+
+ s = format (0, " %s %s \\\n", a->src_prefix.address.af ? "ipv6" : "ipv4",
+ a->is_permit ? "permit" : "deny");
+
+ s = format (s, " src mac %U mask %U \\\n",
+ format_ethernet_address, a->src_mac,
+ format_ethernet_address, a->src_mac_mask);
+
+ s = format (s, " src ip %U, \\",
+ format_fib_prefix, &src);
+
+ PRINT_S;
+ return handle;
+}
+
static inline void *
vl_api_acl_add_replace_t_print (vl_api_acl_add_replace_t * a, void *handle)
{