-u8 *
-format_udp_connection_id (u8 * s, va_list * args)
-{
- udp_connection_t *uc = va_arg (*args, udp_connection_t *);
- if (!uc)
- return s;
- if (uc->c_is_ip4)
- s = format (s, "[%u:%u][%s] %U:%d->%U:%d", uc->c_thread_index,
- uc->c_s_index, "U", format_ip4_address, &uc->c_lcl_ip4,
- clib_net_to_host_u16 (uc->c_lcl_port), format_ip4_address,
- &uc->c_rmt_ip4, clib_net_to_host_u16 (uc->c_rmt_port));
- else
- s = format (s, "[%u:%u][%s] %U:%d->%U:%d", uc->c_thread_index,
- uc->c_s_index, "U", format_ip6_address, &uc->c_lcl_ip6,
- clib_net_to_host_u16 (uc->c_lcl_port), format_ip6_address,
- &uc->c_rmt_ip6, clib_net_to_host_u16 (uc->c_rmt_port));
- return s;
-}
-
-const char *udp_connection_flags_str[] = {
-#define _(sym, str) str,
- foreach_udp_connection_flag
-#undef _
-};
-
-static u8 *
-format_udp_connection_flags (u8 * s, va_list * args)
-{
- udp_connection_t *uc = va_arg (*args, udp_connection_t *);
- int i, last = -1;
-
- for (i = 0; i < UDP_CONN_N_FLAGS; i++)
- if (uc->flags & (1 << i))
- last = i;
- for (i = 0; i < last; i++)
- {
- if (uc->flags & (1 << i))
- s = format (s, "%s, ", udp_connection_flags_str[i]);
- }
- if (last >= 0)
- s = format (s, "%s", udp_connection_flags_str[last]);
- return s;
-}
-
-static u8 *
-format_udp_vars (u8 * s, va_list * args)
-{
- udp_connection_t *uc = va_arg (*args, udp_connection_t *);
- s = format (s, " index %u flags: %U", uc->c_c_index,
- format_udp_connection_flags, uc);
-
- if (!(uc->flags & UDP_CONN_F_LISTEN))
- s = format (s, "\n");
- return s;
-}
-
-u8 *
-format_udp_connection (u8 * s, va_list * args)
-{
- udp_connection_t *uc = va_arg (*args, udp_connection_t *);
- u32 verbose = va_arg (*args, u32);
- if (!uc)
- return s;
- s = format (s, "%-50U", format_udp_connection_id, uc);
- if (verbose)
- {
- s = format (s, "%-15s",
- (uc->flags & UDP_CONN_F_LISTEN) ? "LISTEN" : "OPENED", uc);
- if (verbose > 1)
- s = format (s, "\n%U", format_udp_vars, uc);
- }
- return s;
-}
-
-u8 *
-format_udp_session (u8 * s, va_list * args)
-{
- u32 uci = va_arg (*args, u32);
- u32 thread_index = va_arg (*args, u32);
- u32 verbose = va_arg (*args, u32);
- udp_connection_t *uc;
-
- uc = udp_connection_get (uci, thread_index);
- return format (s, "%U", format_udp_connection, uc, verbose);
-}
-
-u8 *
-format_udp_half_open_session (u8 * s, va_list * args)
-{
- u32 __clib_unused tci = va_arg (*args, u32);
- u32 __clib_unused thread_index = va_arg (*args, u32);
- clib_warning ("BUG");
- return 0;
-}
-
-u8 *
-format_udp_listener_session (u8 * s, va_list * args)
-{
- u32 tci = va_arg (*args, u32);
- u32 __clib_unused thread_index = va_arg (*args, u32);
- u32 verbose = va_arg (*args, u32);
- udp_connection_t *uc = udp_listener_get (tci);
- return format (s, "%U", format_udp_connection, uc, verbose);
-}
-