aboutsummaryrefslogtreecommitdiffstats
path: root/src/vpp/api/types.c
diff options
context:
space:
mode:
authorNeale Ranns <nranns@cisco.com>2019-05-15 02:13:37 -0700
committerOle Trøan <otroan@employees.org>2019-05-28 13:30:44 +0000
commit50f0ac0f097e5495da1f2b1816106e3d420ff34b (patch)
treed10ae0385fc10b7da97b2a24f8dea3882f6d702d /src/vpp/api/types.c
parent9080096f7c548415fc4d5354c7e582a3eda1a5ed (diff)
Punt: socket register for exception dispatched/punted packets based on reason
- add to the Punt API to allow different descriptions of the desired packets: UDP or exceptions - move the punt nodes into punt_node.c - improve tests (test that the correct packets are punted to the registered socket) Change-Id: I1a133dec88106874993cba1f5a439cd26b2fef72 Signed-off-by: Neale Ranns <nranns@cisco.com>
Diffstat (limited to 'src/vpp/api/types.c')
-rw-r--r--src/vpp/api/types.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/vpp/api/types.c b/src/vpp/api/types.c
index 427e9f0da3a..97dadbd4778 100644
--- a/src/vpp/api/types.c
+++ b/src/vpp/api/types.c
@@ -20,6 +20,19 @@
#include <vat/vat.h>
u8 *
+format_vl_api_address_family (u8 * s, va_list * args)
+{
+ vl_api_address_family_t af = va_arg (*args, vl_api_address_family_t);
+
+ if (ADDRESS_IP6 == clib_net_to_host_u32 (af))
+ s = format (s, "ip4");
+ else
+ s = format (s, "ip6");
+
+ return s;
+}
+
+u8 *
format_vl_api_address (u8 * s, va_list * args)
{
const vl_api_address_t *addr = va_arg (*args, vl_api_address_t *);
@@ -110,6 +123,22 @@ unformat_vl_api_address (unformat_input_t * input, va_list * args)
}
uword
+unformat_vl_api_address_family (unformat_input_t * input,
+ va_list * args)
+{
+ vl_api_address_family_t *af = va_arg (*args, vl_api_address_family_t *);
+
+ if (unformat (input, "ip4") || unformat (input, "ipv4"))
+ *af = clib_host_to_net_u32(ADDRESS_IP4);
+ else if (unformat (input, "ip6") || unformat (input, "ipv6"))
+ *af = clib_host_to_net_u32(ADDRESS_IP6);
+ else
+ return (0);
+
+ return (1);
+}
+
+uword
unformat_vl_api_ip4_address (unformat_input_t * input, va_list * args)
{
vl_api_ip4_address_t *ip = va_arg (*args, vl_api_ip4_address_t *);