session: fix ct listener cleanup 12/27812/1
authorFlorin Coras <fcoras@cisco.com>
Wed, 8 Jul 2020 00:57:28 +0000 (17:57 -0700)
committerFlorin Coras <fcoras@cisco.com>
Wed, 8 Jul 2020 00:57:59 +0000 (17:57 -0700)
Type: fix

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

src/vnet/session/application_local.c
src/vnet/session/segment_manager.c
src/vnet/session/session_node.c

index 927bf91..e332593 100644 (file)
@@ -86,6 +86,7 @@ ct_session_endpoint (session_t * ll, session_endpoint_t * sep)
   sep->transport_proto = ct->actual_tp;
   sep->port = ct->c_lcl_port;
   sep->is_ip4 = ct->c_is_ip4;
+  ip_copy (&sep->ip, &ct->c_lcl_ip, ct->c_is_ip4);
 }
 
 int
index 4c4f0b4..caaf67f 100644 (file)
@@ -194,7 +194,7 @@ segment_manager_del_segment (segment_manager_t * sm, fifo_segment_t * fs)
     {
       clib_valloc_free (&smm->va_allocator, fs->ssvm.requested_va);
 
-      if (sm->app_wrk_index != SEGMENT_MANAGER_INVALID_APP_INDEX)
+      if (!segment_manager_app_detached (sm))
        {
          app_worker_t *app_wrk;
          u64 segment_handle;
index d49fa1e..738f0b9 100644 (file)
@@ -49,9 +49,7 @@ session_mq_listen_handler (void *data)
 
   clib_memset (a, 0, sizeof (*a));
   a->sep.is_ip4 = mp->is_ip4;
-  clib_memcpy_fast (&a->sep.ip, &mp->ip, sizeof (mp->ip));
-  if (mp->is_ip4)
-    ip46_address_mask_ip4 (&a->sep.ip);
+  ip_copy (&a->sep.ip, &mp->ip, mp->is_ip4);
   a->sep.port = mp->port;
   a->sep.fib_index = mp->vrf;
   a->sep.sw_if_index = ENDPOINT_INVALID_INDEX;