udp: pass cless hdr to transport through buffer
Type: improvement
Signed-off-by: Florin Coras <fcoras@cisco.com>
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: I7177ada23e5a69ec8e362ec98b98010c3b44b3d7
diff --git a/src/vnet/session/session.c b/src/vnet/session/session.c
index 9549cba..5bb5776 100644
--- a/src/vnet/session/session.c
+++ b/src/vnet/session/session.c
@@ -1524,14 +1524,7 @@
return SESSION_E_NONE;
if (!(tc->flags & TRANSPORT_CONNECTION_F_NO_LOOKUP))
- {
- if (transport_connection_is_cless (tc))
- {
- clib_memset (&tc->rmt_ip, 0, sizeof (tc->rmt_ip));
- tc->rmt_port = 0;
- }
- session_lookup_del_connection (tc);
- }
+ session_lookup_del_connection (tc);
transport_stop_listen (tp, s->connection_index);
return 0;
diff --git a/src/vnet/session/session_node.c b/src/vnet/session/session_node.c
index b0f4a93..f652f2e 100644
--- a/src/vnet/session/session_node.c
+++ b/src/vnet/session/session_node.c
@@ -1105,10 +1105,8 @@
if (transport_connection_is_cless (ctx->tc))
{
- ip_copy (&ctx->tc->rmt_ip, &hdr->rmt_ip, ctx->tc->is_ip4);
- ip_copy (&ctx->tc->lcl_ip, &hdr->lcl_ip, ctx->tc->is_ip4);
- /* Local port assumed to be bound, not overwriting it */
- ctx->tc->rmt_port = hdr->rmt_port;
+ clib_memcpy_fast (data0 - sizeof (session_dgram_hdr_t), hdr,
+ sizeof (*hdr));
}
hdr->data_offset += n_bytes_read;
if (hdr->data_offset == hdr->data_length)