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)