session: lcl transport info on accept 03/31603/6
authorFlorin Coras <fcoras@cisco.com>
Wed, 10 Mar 2021 02:36:06 +0000 (18:36 -0800)
committerDave Barach <openvpp@barachs.net>
Thu, 3 Jun 2021 14:25:00 +0000 (14:25 +0000)
Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ia46b0b8afed30f84b244c06f0457303f9e8832cd

src/vcl/vppcom.c
src/vnet/session/application_interface.h
src/vnet/session/session_api.c

index b3efdcd..28f46f1 100644 (file)
@@ -471,8 +471,8 @@ vcl_session_accepted_handler (vcl_worker_t * wrk, session_accepted_msg_t * mp,
                    sizeof (ip46_address_t));
 
   vcl_session_table_add_vpp_handle (wrk, mp->handle, session->session_index);
-  session->transport.lcl_port = listen_session->transport.lcl_port;
-  session->transport.lcl_ip = listen_session->transport.lcl_ip;
+  session->transport.lcl_port = mp->lcl.port;
+  session->transport.lcl_ip = mp->lcl.ip;
   session->session_type = listen_session->session_type;
   session->is_dgram = vcl_proto_is_dgram (session->session_type);
   session->listener_index = listen_session->session_index;
index 733f5dc..46029f0 100644 (file)
@@ -378,6 +378,7 @@ typedef struct session_accepted_msg_
   u64 segment_handle;
   uword vpp_event_queue_address;
   u32 mq_index;
+  transport_endpoint_t lcl;
   transport_endpoint_t rmt;
   u8 flags;
 } __clib_packed session_accepted_msg_t;
index cf5a66d..fe9ebc1 100644 (file)
@@ -163,6 +163,7 @@ mq_send_session_accepted_cb (session_t * s)
       m.handle = session_handle (s);
 
       session_get_endpoint (s, &m.rmt, 0 /* is_lcl */);
+      session_get_endpoint (s, &m.lcl, 1 /* is_lcl */);
     }
   else
     {
@@ -173,6 +174,7 @@ mq_send_session_accepted_cb (session_t * s)
       m.listener_handle = app_listen_session_handle (listener);
       m.rmt.is_ip4 = session_type_is_ip4 (listener->session_type);
       m.rmt.port = ct->c_rmt_port;
+      m.lcl.port = ct->c_lcl_port;
       m.handle = session_handle (s);
       m.vpp_event_queue_address =
        fifo_segment_msg_q_offset (eq_seg, s->thread_index);