udp: store mss and sw_if_index to udp_connection_t
Store mss and sw_if_index to udp_connection_t and display them via show sessipn verbose 2 Type: fix Signed-off-by: Steven Luong <sluong@cisco.com> Change-Id: I32928f3f4195b178873dc1bada702e035d99c464
This commit is contained in:

committed by
Florin Coras

parent
005ef97f80
commit
bf12efc432
@ -185,7 +185,8 @@ udp_session_bind (u32 session_index, transport_endpoint_cfg_t *lcl)
|
||||
listener->c_proto = TRANSPORT_PROTO_UDP;
|
||||
listener->c_s_index = session_index;
|
||||
listener->c_fib_index = lcl->fib_index;
|
||||
listener->mss = udp_default_mtu (um, listener->c_is_ip4);
|
||||
listener->mss =
|
||||
lcl->mss ? lcl->mss : udp_default_mtu (um, listener->c_is_ip4);
|
||||
listener->flags |= UDP_CONN_F_OWNS_PORT | UDP_CONN_F_LISTEN;
|
||||
lcl_ext = (transport_endpoint_cfg_t *) lcl;
|
||||
if (lcl_ext->transport_flags & TRANSPORT_CFG_F_CONNECTED)
|
||||
@ -232,7 +233,7 @@ udp_push_one_header (vlib_main_t *vm, udp_connection_t *uc, vlib_buffer_t *b)
|
||||
else
|
||||
vlib_buffer_push_ip6 (vm, b, &uc->c_lcl_ip6, &uc->c_rmt_ip6,
|
||||
IP_PROTOCOL_UDP);
|
||||
vnet_buffer (b)->sw_if_index[VLIB_RX] = 0;
|
||||
vnet_buffer (b)->sw_if_index[VLIB_RX] = uc->sw_if_index;
|
||||
vnet_buffer (b)->sw_if_index[VLIB_TX] = uc->c_fib_index;
|
||||
b->flags |= VNET_BUFFER_F_LOCALLY_ORIGINATED;
|
||||
|
||||
@ -399,6 +400,8 @@ conn_alloc:
|
||||
uc->c_fib_index = rmt->fib_index;
|
||||
uc->c_dscp = rmt->dscp;
|
||||
uc->mss = rmt->mss ? rmt->mss : udp_default_mtu (um, uc->c_is_ip4);
|
||||
if (rmt->peer.sw_if_index != ENDPOINT_INVALID_INDEX)
|
||||
uc->sw_if_index = rmt->peer.sw_if_index;
|
||||
uc->flags |= UDP_CONN_F_OWNS_PORT;
|
||||
if (rmt->transport_flags & TRANSPORT_CFG_F_CONNECTED)
|
||||
{
|
||||
|
@ -63,6 +63,7 @@ typedef struct
|
||||
clib_spinlock_t rx_lock; /**< rx fifo lock */
|
||||
u8 flags; /**< connection flags */
|
||||
u16 mss; /**< connection mss */
|
||||
u32 sw_if_index; /**< connection sw_if_index */
|
||||
} udp_connection_t;
|
||||
|
||||
typedef struct
|
||||
|
@ -67,11 +67,12 @@ 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");
|
||||
s = format (s, " \n sw_if_index: %d, mss: %u\n", uc->sw_if_index, uc->mss);
|
||||
|
||||
return s;
|
||||
}
|
||||
|
||||
|
@ -255,6 +255,7 @@ udp46_input_inline (vlib_main_t * vm, vlib_node_runtime_t * node,
|
||||
{
|
||||
u8 queue_event = 1;
|
||||
uc0 = udp_connection_from_transport (session_get_transport (s0));
|
||||
uc0->sw_if_index = vnet_buffer (b[0])->sw_if_index[VLIB_RX];
|
||||
if (uc0->flags & UDP_CONN_F_CONNECTED)
|
||||
{
|
||||
if (s0->thread_index != thread_index)
|
||||
@ -298,6 +299,7 @@ udp46_input_inline (vlib_main_t * vm, vlib_node_runtime_t * node,
|
||||
goto done;
|
||||
}
|
||||
s0 = session_get (uc0->c_s_index, uc0->c_thread_index);
|
||||
uc0->sw_if_index = vnet_buffer (b[0])->sw_if_index[VLIB_RX];
|
||||
error0 = UDP_ERROR_ACCEPT;
|
||||
}
|
||||
udp_connection_enqueue (uc0, s0, &hdr0, thread_index, b[0], 1,
|
||||
|
Reference in New Issue
Block a user