- session_manager_main_t *smm = vnet_get_session_manager_main ();
- api_main_t *am = &api_main;
- application_t *app;
- void *oldheap;
- session_manager_t *sm;
-
- pool_get (app_pool, app);
- memset (app, 0, sizeof (*app));
-
- /* Allocate event fifo in the /vpe-api shared-memory segment */
- oldheap = svm_push_data_heap (am->vlib_rp);
-
- /* Allocate server event queue */
- app->event_queue =
- unix_shared_memory_queue_init (128 /* nels $$$$ config */ ,
- sizeof (session_fifo_event_t),
- 0 /* consumer pid */ ,
- 0
- /* (do not) signal when queue non-empty */
- );
-
- svm_pop_heap (oldheap);
-
- /* If a server, allocate session manager */
- if (type == APP_SERVER)
- {
- pool_get (smm->session_managers, sm);
- memset (sm, 0, sizeof (*sm));
-
- app->session_manager_index = sm - smm->session_managers;
- }
- else if (type == APP_CLIENT)
- {
- /* Allocate connect session manager if needed */
- if (smm->connect_manager_index[sst] == INVALID_INDEX)
- connects_session_manager_init (smm, sst);
- app->session_manager_index = smm->connect_manager_index[sst];
- }