diff options
author | 2019-05-15 02:13:37 -0700 | |
---|---|---|
committer | 2019-05-28 13:30:44 +0000 | |
commit | 50f0ac0f097e5495da1f2b1816106e3d420ff34b (patch) | |
tree | d10ae0385fc10b7da97b2a24f8dea3882f6d702d /src/vpp/api/types.c | |
parent | 9080096f7c548415fc4d5354c7e582a3eda1a5ed (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.c | 29 |
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 *); |