2 * Copyright (c) 2019 Cisco and/or its affiliates.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at:
7 * http://www.apache.org/licenses/LICENSE-2.0
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
16 #ifndef included_ip_format_fns_h
17 #define included_ip_format_fns_h
19 static inline u8 *format_vl_api_ip6_address_t (u8 * s, va_list * args);
20 static inline u8 *format_vl_api_ip4_address_t (u8 * s, va_list * args);
22 #include <vnet/ip/format.h>
24 #include <vnet/ip/ip_types.api.h>
27 format_vl_api_ip6_address_t (u8 * s, va_list * args)
29 vl_api_ip6_address_t *a = va_arg (*args, vl_api_ip6_address_t *);
30 u32 indent __attribute__((unused)) = va_arg (*args, u32);
32 return format (s, "%U", format_ip6_address, a);
36 format_vl_api_ip6_prefix_t (u8 * s, va_list * args)
38 vl_api_ip6_prefix_t *a = va_arg (*args, vl_api_ip6_prefix_t *);
39 u32 indent __attribute__((unused)) = va_arg (*args, u32);
41 return format (s, "%U/%u", format_ip6_address, &a->address, a->len);
45 format_vl_api_ip4_address_t (u8 * s, va_list * args)
47 vl_api_ip4_address_t *a = va_arg (*args, vl_api_ip4_address_t *);
48 u32 indent __attribute__((unused)) = va_arg (*args, u32);
50 return format (s, "%U", format_ip4_address, a);
54 format_vl_api_ip4_prefix_t (u8 * s, va_list * args)
56 vl_api_ip4_prefix_t *a = va_arg (*args, vl_api_ip4_prefix_t *);
57 u32 indent __attribute__((unused)) = va_arg (*args, u32);
59 return format (s, "%U/%u", format_ip4_address, &a->address, a->len);
63 format_vl_api_address_t (u8 * s, va_list * args)
65 vl_api_address_t *a = va_arg (*args, vl_api_address_t *);
66 u32 indent __attribute__((unused)) = va_arg (*args, u32);
70 return format(s, "%U", format_ip4_address, &a->un.ip4);
72 return format(s, "%U", format_ip6_address, &a->un.ip6);
74 return format (s, "");
78 format_vl_api_prefix_t (u8 * s, va_list * args)
80 vl_api_prefix_t *a = va_arg (*args, vl_api_prefix_t *);
81 u32 indent __attribute__((unused)) = va_arg (*args, u32);
83 return format (s, "%U/%u", format_vl_api_address_t, &a->address, indent, a->len);
87 format_vl_api_address_with_prefix_t (u8 * s, va_list * args)
89 return format_vl_api_prefix_t (s, args);
93 format_vl_api_ip4_address_with_prefix_t (u8 * s, va_list * args)
95 return format_vl_api_ip4_prefix_t (s, args);
99 format_vl_api_ip6_address_with_prefix_t (u8 * s, va_list * args)
101 return format_vl_api_ip6_prefix_t (s, args);