session: segment handle in accept/connect notifications 84/16284/7
authorFlorin Coras <fcoras@cisco.com>
Thu, 29 Nov 2018 20:40:10 +0000 (12:40 -0800)
committerOle Trøan <otroan@employees.org>
Fri, 30 Nov 2018 07:21:02 +0000 (07:21 +0000)
Change-Id: I03884b6cde9d4c38ae13d1994fd8d37d44016ef0
Signed-off-by: Florin Coras <fcoras@cisco.com>
19 files changed:
src/plugins/unittest/session_test.c
src/svm/svm_fifo.c
src/svm/svm_fifo.h
src/svm/svm_fifo_segment.c
src/tests/vnet/session/udp_echo.c
src/vcl/vcl_bapi.c
src/vnet/session-apps/echo_client.c
src/vnet/session-apps/echo_server.c
src/vnet/session-apps/http_server.c
src/vnet/session-apps/proxy.c
src/vnet/session/application.c
src/vnet/session/application.h
src/vnet/session/application_interface.h
src/vnet/session/segment_manager.c
src/vnet/session/segment_manager.h
src/vnet/session/session.api
src/vnet/session/session.h
src/vnet/session/session_api.c
src/vnet/tls/tls.c

index c1622d1..5a3c9fb 100644 (file)
@@ -63,14 +63,14 @@ dummy_session_connected_callback (u32 app_index, u32 api_context,
 static u32 dummy_segment_count;
 
 int
-dummy_add_segment_callback (u32 client_index, const ssvm_private_t * fs)
+dummy_add_segment_callback (u32 client_index, u64 segment_handle)
 {
   dummy_segment_count = 1;
   return 0;
 }
 
 int
-dummy_del_segment_callback (u32 client_index, const ssvm_private_t * fs)
+dummy_del_segment_callback (u32 client_index, u64 segment_handle)
 {
   dummy_segment_count = 0;
   return 0;
index 4397ef8..e7a1188 100644 (file)
@@ -218,6 +218,7 @@ svm_fifo_create (u32 data_size_in_bytes)
   f->nitems = data_size_in_bytes;
   f->ooos_list_head = OOO_SEGMENT_INVALID_INDEX;
   f->ct_session_index = SVM_FIFO_INVALID_SESSION_INDEX;
+  f->segment_index = SVM_FIFO_INVALID_INDEX;
   f->refcnt = 1;
   return (f);
 }
index 791b513..9bba85f 100644 (file)
@@ -39,6 +39,7 @@ format_function_t format_ooo_list;
 #define SVM_FIFO_TRACE                         (0)
 #define OOO_SEGMENT_INVALID_INDEX      ((u32)~0)
 #define SVM_FIFO_INVALID_SESSION_INDEX         ((u32)~0)
+#define SVM_FIFO_INVALID_INDEX         ((u32)~0)
 
 typedef struct
 {
@@ -61,6 +62,7 @@ typedef struct _svm_fifo
   u8 master_thread_index;
   u8 client_thread_index;
   u32 segment_manager;
+  u32 segment_index;
   u32 ct_session_index;                /**< Local session index for vpp */
     CLIB_CACHE_LINE_ALIGN_MARK (end_shared);
   u32 head;
index a42225c..6cb402f 100644 (file)
@@ -337,7 +337,7 @@ svm_fifo_segment_delete (svm_fifo_segment_private_t * s)
  * Allocate fifo in svm segment
  */
 svm_fifo_t *
-svm_fifo_segment_alloc_fifo (svm_fifo_segment_private_t * s,
+svm_fifo_segment_alloc_fifo (svm_fifo_segment_private_t * fs,
                             u32 data_size_in_bytes,
                             svm_fifo_segment_freelist_t list_index)
 {
@@ -361,7 +361,7 @@ svm_fifo_segment_alloc_fifo (svm_fifo_segment_private_t * s,
   freelist_index = max_log2 (data_size_in_bytes)
     - max_log2 (FIFO_SEGMENT_MIN_FIFO_SIZE);
 
-  sh = s->ssvm.sh;
+  sh = fs->ssvm.sh;
   ssvm_lock_non_recursive (sh, 1);
   fsh = (svm_fifo_segment_header_t *) sh->opaque[0];
 
index 3c92896..ea68ee1 100644 (file)
@@ -915,7 +915,6 @@ vl_api_map_another_segment_t_handler (vl_api_map_another_segment_t * mp)
   udp_echo_main_t *utm = &udp_echo_main;
   svm_fifo_segment_create_args_t _a, *a = &_a;
   svm_fifo_segment_private_t *seg;
-  u8 *seg_name;
   int rv;
 
   clib_memset (a, 0, sizeof (*a));
@@ -932,9 +931,8 @@ vl_api_map_another_segment_t_handler (vl_api_map_another_segment_t * mp)
   seg = svm_fifo_segment_get_segment (a->new_segment_indices[0]);
   clib_warning ("Mapped new segment '%s' size %d", seg->ssvm.name,
                seg->ssvm.ssvm_size);
-  seg_name = format (0, "%s", (char *) mp->segment_name);
-  hash_set_mem (utm->segments_table, seg_name, a->new_segment_indices[0]);
-  vec_free (seg_name);
+  hash_set (utm->segments_table, clib_net_to_host_u64 (mp->segment_handle),
+           a->new_segment_indices[0]);
 }
 
 static void
@@ -942,22 +940,19 @@ vl_api_unmap_segment_t_handler (vl_api_unmap_segment_t * mp)
 {
   udp_echo_main_t *utm = &udp_echo_main;
   svm_fifo_segment_private_t *seg;
-  u64 *seg_indexp;
-  u8 *seg_name;
+  u64 *seg_indexp, segment_handle;
 
-
-  seg_name = format (0, "%s", mp->segment_name);
-  seg_indexp = hash_get_mem (utm->segments_table, seg_name);
+  segment_handle = clib_net_to_host_u64 (mp->segment_handle);
+  seg_indexp = hash_get (utm->segments_table, segment_handle);
   if (!seg_indexp)
     {
-      clib_warning ("segment not mapped: %s", seg_name);
+      clib_warning ("segment not mapped: %s", segment_handle);
       return;
     }
-  hash_unset_mem (utm->segments_table, seg_name);
+  hash_unset (utm->segments_table, segment_handle);
   seg = svm_fifo_segment_get_segment ((u32) seg_indexp[0]);
   svm_fifo_segment_delete (seg);
-  clib_warning ("Unmapped segment '%s'", seg_name);
-  vec_free (seg_name);
+  clib_warning ("Unmapped segment '%s'", segment_handle);
 }
 
 static void
@@ -1228,7 +1223,6 @@ main (int argc, char **argv)
   utm->session_index_by_vpp_handles = hash_create (0, sizeof (uword));
   utm->my_pid = getpid ();
   utm->configured_segment_size = 1 << 20;
-  utm->segments_table = hash_create_vec (0, sizeof (u8), sizeof (u64));
   utm->have_return = 1;
   utm->bytes_to_send = 1024;
   utm->fifo_size = 128 << 10;
index 93ba0ab..7f3a574 100644 (file)
@@ -244,7 +244,8 @@ vl_api_unmap_segment_t_handler (vl_api_unmap_segment_t * mp)
  * XXX - have sessionID by handle hash currently
  */
 
-  VDBG (1, "Unmapped segment '%s'", mp->segment_name);
+  VDBG (1, "Unmapped segment '%s'",
+       clib_net_to_host_u64 (mp->segment_handle));
 }
 
 static void
index faf8521..51a85c0 100644 (file)
@@ -483,7 +483,7 @@ echo_clients_rx_callback (stream_session_t * s)
 }
 
 int
-echo_client_add_segment_callback (u32 client_index, const ssvm_private_t * sp)
+echo_client_add_segment_callback (u32 client_index, u64 segment_handle)
 {
   /* New heaps may be added */
   return 0;
index a4afc5d..e79e838 100644 (file)
@@ -96,7 +96,7 @@ echo_server_session_connected_callback (u32 app_index, u32 api_context,
 }
 
 int
-echo_server_add_segment_callback (u32 client_index, const ssvm_private_t * sp)
+echo_server_add_segment_callback (u32 client_index, u64 segment_handle)
 {
   /* New heaps may be added */
   return 0;
index 79c2d4a..37441bb 100644 (file)
@@ -458,7 +458,7 @@ http_server_session_connected_callback (u32 app_index, u32 api_context,
 }
 
 static int
-http_server_add_segment_callback (u32 client_index, const ssvm_private_t * sp)
+http_server_add_segment_callback (u32 client_index, u64 segment_handle)
 {
   clib_warning ("called...");
   return -1;
index 0b2baa7..06c0954 100644 (file)
@@ -176,7 +176,7 @@ proxy_connected_callback (u32 app_index, u32 api_context,
 }
 
 static int
-proxy_add_segment_callback (u32 client_index, const ssvm_private_t * sp)
+proxy_add_segment_callback (u32 client_index, u64 segment_handle)
 {
   clib_warning ("called...");
   return -1;
index 380c960..69f3329 100644 (file)
@@ -924,6 +924,7 @@ vnet_app_worker_add_del (vnet_app_worker_add_del_args_t * a)
       sm = segment_manager_get (app_wrk->first_segment_manager);
       fs = segment_manager_get_segment_w_lock (sm, 0);
       a->segment = &fs->ssvm;
+      a->segment_handle = segment_manager_segment_handle (sm, fs);
       segment_manager_segment_reader_unlock (sm);
       a->evt_q = app_wrk->event_queue;
       a->wrk_map_index = app_wrk->wrk_map_index;
@@ -1007,11 +1008,12 @@ application_use_mq_for_ctrl (application_t * app)
  * Send an API message to the external app, to map new segment
  */
 int
-app_worker_add_segment_notify (u32 app_wrk_index, ssvm_private_t * fs)
+app_worker_add_segment_notify (u32 app_wrk_index, u64 segment_handle)
 {
   app_worker_t *app_wrk = app_worker_get (app_wrk_index);
   application_t *app = application_get (app_wrk->app_index);
-  return app->cb_fns.add_segment_callback (app_wrk->api_client_index, fs);
+  return app->cb_fns.add_segment_callback (app_wrk->api_client_index,
+                                          segment_handle);
 }
 
 u32
@@ -1597,6 +1599,7 @@ application_local_session_connect (app_worker_t * client_wrk,
   segment_manager_t *sm;
   local_session_t *ls;
   svm_msg_q_t *sq, *cq;
+  u64 segment_handle;
 
   ls = application_local_session_alloc (server_wrk);
   server = application_get (server_wrk->app_index);
@@ -1660,8 +1663,9 @@ application_local_session_connect (app_worker_t * client_wrk,
   ls->listener_session_type = ll->session_type;
   ls->session_state = SESSION_STATE_READY;
 
+  segment_handle = segment_manager_segment_handle (sm, seg);
   if ((rv = server->cb_fns.add_segment_callback (server_wrk->api_client_index,
-                                                &seg->ssvm)))
+                                                segment_handle)))
     {
       clib_warning ("failed to notify server of new segment");
       segment_manager_segment_reader_unlock (sm);
@@ -1706,6 +1710,7 @@ application_local_session_connect_notify (local_session_t * ls)
   segment_manager_t *sm;
   application_t *client;
   int rv, is_fail = 0;
+  u64 segment_handle;
   uword client_key;
 
   client_wrk = app_worker_get (ls->client_wrk_index);
@@ -1714,8 +1719,9 @@ application_local_session_connect_notify (local_session_t * ls)
 
   sm = application_get_local_segment_manager_w_session (server_wrk, ls);
   seg = segment_manager_get_segment_w_lock (sm, ls->svm_segment_index);
+  segment_handle = segment_manager_segment_handle (sm, seg);
   if ((rv = client->cb_fns.add_segment_callback (client_wrk->api_client_index,
-                                                &seg->ssvm)))
+                                                segment_handle)))
     {
       clib_warning ("failed to notify client %u of new segment",
                    ls->client_wrk_index);
@@ -1770,13 +1776,14 @@ application_local_session_cleanup (app_worker_t * client_wrk,
   if (!has_transport)
     {
       application_t *server = application_get (server_wrk->app_index);
+      u64 segment_handle = segment_manager_segment_handle (sm, seg);
       server->cb_fns.del_segment_callback (server_wrk->api_client_index,
-                                          &seg->ssvm);
+                                          segment_handle);
       if (client_wrk)
        {
          application_t *client = application_get (client_wrk->app_index);
          client->cb_fns.del_segment_callback (client_wrk->api_client_index,
-                                              &seg->ssvm);
+                                              segment_handle);
        }
       segment_manager_del_segment (sm, seg);
     }
index 0ac2b25..e33f2ff 100644 (file)
 typedef struct _stream_session_cb_vft
 {
   /** Notify server of new segment */
-  int (*add_segment_callback) (u32 api_client_index,
-                              const ssvm_private_t * ssvm_seg);
+  int (*add_segment_callback) (u32 api_client_index, u64 segment_handle);
+
   /** Notify server of new segment */
-  int (*del_segment_callback) (u32 api_client_index,
-                              const ssvm_private_t * ssvm_seg);
+  int (*del_segment_callback) (u32 api_client_index, u64 segment_handle);
 
   /** Notify server of newly accepted session */
   int (*session_accept_callback) (stream_session_t * new_session);
@@ -212,6 +211,7 @@ typedef struct _vnet_app_worker_add_del_args
   u32 wrk_map_index;           /**< Index to delete or return value if add */
   u32 api_client_index;                /**< Binary API client index */
   ssvm_private_t *segment;     /**< First segment in segment manager */
+  u64 segment_handle;          /**< Handle for the segment */
   svm_msg_q_t *evt_q;          /**< Worker message queue */
   u8 is_add;                   /**< Flag set if addition */
 } vnet_app_worker_add_del_args_t;
@@ -232,7 +232,7 @@ segment_manager_t *app_worker_get_listen_segment_manager (app_worker_t *,
                                                          stream_session_t *);
 segment_manager_t *app_worker_get_connect_segment_manager (app_worker_t *);
 int app_worker_alloc_connects_segment_manager (app_worker_t * app);
-int app_worker_add_segment_notify (u32 app_or_wrk, ssvm_private_t * fs);
+int app_worker_add_segment_notify (u32 app_or_wrk, u64 segment_handle);
 u32 app_worker_n_listeners (app_worker_t * app);
 stream_session_t *app_worker_first_listener (app_worker_t * app,
                                             u8 fib_proto,
index 10edfde..ecd99d8 100644 (file)
@@ -234,6 +234,7 @@ typedef struct session_accepted_msg_
   u64 handle;
   u64 server_rx_fifo;
   u64 server_tx_fifo;
+  u64 segment_handle;
   u64 vpp_event_queue_address;
   u64 server_event_queue_address;
   u64 client_event_queue_address;
@@ -260,6 +261,7 @@ typedef struct session_connected_msg_
   u64 handle;
   u64 server_rx_fifo;
   u64 server_tx_fifo;
+  u64 segment_handle;
   u64 vpp_event_queue_address;
   u64 client_event_queue_address;
   u64 server_event_queue_address;
index 6386645..47704a7 100644 (file)
@@ -117,6 +117,36 @@ segment_manager_get_segment (segment_manager_t * sm, u32 segment_index)
   return pool_elt_at_index (sm->segments, segment_index);
 }
 
+u64
+segment_manager_segment_handle (segment_manager_t * sm,
+                               svm_fifo_segment_private_t * segment)
+{
+  u32 segment_index = segment_manager_segment_index (sm, segment);
+  return (((u64) segment_manager_index (sm) << 32) | segment_index);
+}
+
+void
+segment_manager_parse_segment_handle (u64 segment_handle, u32 * sm_index,
+                                     u32 * segment_index)
+{
+  *sm_index = segment_handle >> 32;
+  *segment_index = segment_handle & 0xFFFFFFFF;
+}
+
+svm_fifo_segment_private_t *
+segment_manager_get_segment_w_handle (u64 segment_handle)
+{
+  u32 sm_index, segment_index;
+  segment_manager_t *sm;
+
+  segment_manager_parse_segment_handle (segment_handle, &sm_index,
+                                       &segment_index);
+  sm = segment_manager_get (sm_index);
+  if (!sm || pool_is_free_index (sm->segments, segment_index))
+    return 0;
+  return pool_elt_at_index (sm->segments, segment_index);
+}
+
 /**
  * Reads a segment from the segment manager's pool and acquires reader lock
  *
@@ -484,6 +514,7 @@ segment_manager_alloc_session_fifos (segment_manager_t * sm,
   int alloc_fail = 1, rv = 0, new_fs_index;
   segment_manager_properties_t *props;
   u8 added_a_segment = 0;
+  u64 segment_handle;
   u32 sm_index;
 
   props = segment_manager_properties_get (sm);
@@ -513,13 +544,18 @@ alloc_check:
 
       ASSERT (rx_fifo && tx_fifo);
       sm_index = segment_manager_index (sm);
+      *fifo_segment_index = segment_manager_segment_index (sm, fifo_segment);
       (*tx_fifo)->segment_manager = sm_index;
       (*rx_fifo)->segment_manager = sm_index;
-      *fifo_segment_index = segment_manager_segment_index (sm, fifo_segment);
+      (*tx_fifo)->segment_index = *fifo_segment_index;
+      (*rx_fifo)->segment_index = *fifo_segment_index;
 
       if (added_a_segment)
-       rv = app_worker_add_segment_notify (sm->app_wrk_index,
-                                           &fifo_segment->ssvm);
+       {
+         segment_handle = segment_manager_segment_handle (sm, fifo_segment);
+         rv = app_worker_add_segment_notify (sm->app_wrk_index,
+                                             segment_handle);
+       }
       /* Drop the lock after app is notified */
       segment_manager_segment_reader_unlock (sm);
       return rv;
index 0e5f624..657a1fc 100644 (file)
@@ -117,13 +117,23 @@ segment_manager_event_queue (segment_manager_t * sm)
   return sm->event_queue;
 }
 
+always_inline u64
+segment_manager_make_segment_handle (u32 segment_manager_index,
+                                    u32 segment_index)
+{
+  return (((u64) segment_manager_index << 32) | segment_index);
+}
+
+u64 segment_manager_segment_handle (segment_manager_t * sm,
+                                   svm_fifo_segment_private_t * segment);
+
 segment_manager_t *segment_manager_new ();
 int segment_manager_init (segment_manager_t * sm, u32 first_seg_size,
                          u32 prealloc_fifo_pairs);
 
-svm_fifo_segment_private_t *segment_manager_get_segment (segment_manager_t *
-                                                        sm,
+svm_fifo_segment_private_t *segment_manager_get_segment (segment_manager_t *,
                                                         u32 segment_index);
+svm_fifo_segment_private_t *segment_manager_get_segment_w_handle (u64);
 svm_fifo_segment_private_t
   * segment_manager_get_segment_w_lock (segment_manager_t * sm,
                                        u32 segment_index);
index eced1d4..3dc0cc8 100644 (file)
@@ -13,7 +13,7 @@
  * limitations under the License.
  */
 
-option version = "1.3.0";
+option version = "1.4.0";
 
 /** \brief client->vpp, attach application to session layer
     @param client_index - opaque cookie to identify the sender
@@ -103,6 +103,7 @@ autoreply define application_detach {
                                          socket transport available
     @param segment_size - size of the segment to be mapped
     @param segment_name - name of the segment to be mapped
+    @param segment_handle - unique identifier for segment
 */
 autoreply define map_another_segment {
     u32 client_index;
@@ -110,17 +111,19 @@ autoreply define map_another_segment {
     u8 fd_flags;
     u32 segment_size;
     u8 segment_name[128];
+    u64 segment_handle;
 };
 
 /** \brief vpp->client unmap shared memory segment
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
-    @param segment_name - 
+    @param segment_name - segment name
+    @param segment_handle - handle of the segment to be unmapped 
 */
 autoreply define unmap_segment {
     u32 client_index;
     u32 context;
-    u8 segment_name[128];
+    u64 segment_handle;
 };
 
  /** \brief Bind to a given URI
@@ -462,6 +465,7 @@ define app_worker_add_del
                                  over the socket (set only if socket transport available) 
     @param segment_name_length - length of segment name 
     @param segment_name - name of segment client needs to attach to
+    @param segment_handle - handle for segment
 */
 define app_worker_add_del_reply
 {
@@ -473,6 +477,7 @@ define app_worker_add_del_reply
   u8 fd_flags;
   u8 segment_name_length;
   u8 segment_name[128];
+  u64 segment_handle;
   u8 is_add;
 };
 
index ea21464..d5f040e 100644 (file)
@@ -441,6 +441,14 @@ session_type_from_proto_and_ip (transport_proto_t proto, u8 is_ip4)
   return (proto << 1 | is_ip4);
 }
 
+always_inline u64
+session_segment_handle (stream_session_t * s)
+{
+  svm_fifo_t *f = s->server_rx_fifo;
+  return segment_manager_make_segment_handle (f->segment_manager,
+                                             f->segment_index);
+}
+
 always_inline u8
 session_has_transport (stream_session_t * s)
 {
index 7d3ff31..d37b3c9 100755 (executable)
@@ -79,20 +79,24 @@ session_send_fds (vl_api_registration_t * reg, int fds[], int n_fds)
 }
 
 static int
-send_add_segment_callback (u32 api_client_index, const ssvm_private_t * sp)
+send_add_segment_callback (u32 api_client_index, u64 segment_handle)
 {
   int fds[SESSION_N_FD_TYPE], n_fds = 0;
   vl_api_map_another_segment_t *mp;
+  svm_fifo_segment_private_t *fs;
   vl_api_registration_t *reg;
+  ssvm_private_t *sp;
   u8 fd_flags = 0;
 
   reg = vl_mem_api_client_index_to_registration (api_client_index);
   if (!reg)
     {
-      clib_warning ("no registration: %u", api_client_index);
+      clib_warning ("no api registration for client: %u", api_client_index);
       return -1;
     }
 
+  fs = segment_manager_get_segment_w_handle (segment_handle);
+  sp = &fs->ssvm;
   if (ssvm_type (sp) == SSVM_SEGMENT_MEMFD)
     {
       if (vl_api_registration_file_index (reg) == VL_API_INVALID_FI)
@@ -111,6 +115,7 @@ send_add_segment_callback (u32 api_client_index, const ssvm_private_t * sp)
   mp->_vl_msg_id = clib_host_to_net_u16 (VL_API_MAP_ANOTHER_SEGMENT);
   mp->segment_size = sp->ssvm_size;
   mp->fd_flags = fd_flags;
+  mp->segment_handle = clib_host_to_net_u64 (segment_handle);
   strncpy ((char *) mp->segment_name, (char *) sp->name,
           sizeof (mp->segment_name) - 1);
 
@@ -123,7 +128,7 @@ send_add_segment_callback (u32 api_client_index, const ssvm_private_t * sp)
 }
 
 static int
-send_del_segment_callback (u32 api_client_index, const ssvm_private_t * fs)
+send_del_segment_callback (u32 api_client_index, u64 segment_handle)
 {
   vl_api_unmap_segment_t *mp;
   vl_api_registration_t *reg;
@@ -138,9 +143,7 @@ send_del_segment_callback (u32 api_client_index, const ssvm_private_t * fs)
   mp = vl_mem_api_alloc_as_if_client_w_reg (reg, sizeof (*mp));
   clib_memset (mp, 0, sizeof (*mp));
   mp->_vl_msg_id = clib_host_to_net_u16 (VL_API_UNMAP_SEGMENT);
-  strncpy ((char *) mp->segment_name, (char *) fs->name,
-          sizeof (mp->segment_name) - 1);
-
+  mp->segment_handle = clib_host_to_net_u64 (segment_handle);
   vl_msg_api_send_shmem (reg->vl_input_queue, (u8 *) & mp);
 
   return 0;
@@ -434,6 +437,7 @@ mq_send_session_accepted_cb (stream_session_t * s)
   mp->context = app->app_index;
   mp->server_rx_fifo = pointer_to_uword (s->server_rx_fifo);
   mp->server_tx_fifo = pointer_to_uword (s->server_tx_fifo);
+  mp->segment_handle = session_segment_handle (s);
 
   if (session_has_transport (s))
     {
@@ -589,6 +593,7 @@ mq_send_session_connected_cb (u32 app_wrk_index, u32 api_context,
   evt->event_type = SESSION_CTRL_EVT_CONNECTED;
   mp = (session_connected_msg_t *) evt->data;
   mp->context = api_context;
+  mp->segment_handle = session_segment_handle (s);
 
   if (is_fail)
     goto done;
@@ -1383,6 +1388,7 @@ done:
   REPLY_MACRO2 (VL_API_APP_WORKER_ADD_DEL_REPLY, ({
     rmp->is_add = mp->is_add;
     rmp->wrk_index = clib_host_to_net_u32 (args.wrk_map_index);
+    rmp->segment_handle = clib_host_to_net_u64 (args.segment_handle);
     if (!rv && mp->is_add)
       {
        if (vec_len (args.segment->name))
index 7378093..0fdd68c 100644 (file)
@@ -367,14 +367,14 @@ tls_session_reset_callback (stream_session_t * s)
 }
 
 int
-tls_add_segment_callback (u32 client_index, const ssvm_private_t * fs)
+tls_add_segment_callback (u32 client_index, u64 segment_handle)
 {
   /* No-op for builtin */
   return 0;
 }
 
 int
-tls_del_segment_callback (u32 client_index, const ssvm_private_t * fs)
+tls_del_segment_callback (u32 client_index, u64 segment_handle)
 {
   return 0;
 }