clib_spinlock_init (&listener->rx_lock);
if (!um->csum_offload)
listener->cfg_flags |= UDP_CFG_F_NO_CSUM_OFFLOAD;
+ listener->start_ts = transport_time_now (listener->c_thread_index);
udp_connection_register_port (listener->c_lcl_port, lcl->is_ip4);
return listener->c_c_index;
uc->cfg_flags |= UDP_CFG_F_NO_CSUM_OFFLOAD;
uc->next_node_index = rmt->next_node_index;
uc->next_node_opaque = rmt->next_node_opaque;
+ uc->start_ts = transport_time_now (thread_index);
udp_connection_register_port (uc->c_lcl_port, rmt->is_ip4);
u64 bytes_out; /**< bytes sent */
u64 dgrams_out; /**< rfc4113 dgrams sent */
u32 errors_in; /**< rfc4113 dgrams in errors */
+ clib_time_type_t start_ts; /**< time stamp when connection was created */
} udp_connection_t;
#define udp_csum_offload(uc) (!((uc)->cfg_flags & UDP_CFG_F_NO_CSUM_OFFLOAD))
#include <vppinfra/format_table.h>
#include <vnet/udp/udp.h>
#include <vnet/session/session_types.h>
+#include <vnet/session/session.h>
u8 *
format_udp_connection_id (u8 * s, va_list * args)
return s;
}
- s = format (s, " sw_if_index %d mss %u\n", uc->sw_if_index, uc->mss);
+ s = format (s, " sw_if_index %d mss %u duration %.3f\n", uc->sw_if_index,
+ uc->mss, transport_time_now (uc->c_thread_index) - uc->start_ts);
s = format (s, " stats: %U\n", format_udp_stats, uc);
return s;