+static void
+vls_sh_to_vlsh_table_add (vls_worker_t *wrk, vcl_session_handle_t sh, u32 vlsh)
+{
+ if (vls_mt_wrk_supported ())
+ clib_rwlock_writer_lock (&wrk->sh_to_vlsh_table_lock);
+ hash_set (wrk->session_handle_to_vlsh_table, sh, vlsh);
+ if (vls_mt_wrk_supported ())
+ clib_rwlock_writer_unlock (&wrk->sh_to_vlsh_table_lock);
+}
+
+static void
+vls_sh_to_vlsh_table_del (vls_worker_t *wrk, vcl_session_handle_t sh)
+{
+ if (vls_mt_wrk_supported ())
+ clib_rwlock_writer_lock (&wrk->sh_to_vlsh_table_lock);
+ hash_unset (wrk->session_handle_to_vlsh_table, sh);
+ if (vls_mt_wrk_supported ())
+ clib_rwlock_writer_unlock (&wrk->sh_to_vlsh_table_lock);
+}
+
+static uword *
+vls_sh_to_vlsh_table_get (vls_worker_t *wrk, vcl_session_handle_t sh)
+{
+ if (vls_mt_wrk_supported ())
+ clib_rwlock_reader_lock (&wrk->sh_to_vlsh_table_lock);
+ uword *vlshp = hash_get (wrk->session_handle_to_vlsh_table, sh);
+ if (vls_mt_wrk_supported ())
+ clib_rwlock_reader_unlock (&wrk->sh_to_vlsh_table_lock);
+ return vlshp;
+}
+