diff options
author | Florin Coras <fcoras@cisco.com> | 2017-04-19 13:00:05 -0700 |
---|---|---|
committer | Dave Barach <openvpp@barachs.net> | 2017-04-24 12:02:14 +0000 |
commit | a5464817522c7a7dc760af4612f1d6a68ed0afc8 (patch) | |
tree | c173b6d4e0fac69394d3c1b61a842dc582b2a218 /src/vnet/session/segment_manager.h | |
parent | bc66a9122f73b97ca1ae60f1df47b39c141be3ae (diff) |
Session layer improvements
Among others:
- Moved app event queue to shared memory segment
- Use private memory segment for builtin apps
- Remove pid from svm fifo
- Protect session fifo (de)allocation
- Use fifo event for session disconnects
- Have session queue node poll in all wk threads
Change-Id: I89dbf7fdfebef12f5ef2b34ba3ef3c2c07f49ff2
Signed-off-by: Florin Coras <fcoras@cisco.com>
Diffstat (limited to 'src/vnet/session/segment_manager.h')
-rw-r--r-- | src/vnet/session/segment_manager.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/vnet/session/segment_manager.h b/src/vnet/session/segment_manager.h index 778d6040e94..2710bb544d7 100644 --- a/src/vnet/session/segment_manager.h +++ b/src/vnet/session/segment_manager.h @@ -18,6 +18,10 @@ #include <vnet/vnet.h> #include <svm/svm_fifo_segment.h> +#include <vlibmemory/unix_shared_memory_queue.h> +#include <vlibmemory/api.h> +#include <vppinfra/lock.h> + typedef struct _segment_manager_properties { /** Session fifo sizes. */ @@ -30,10 +34,14 @@ typedef struct _segment_manager_properties /** Flag that indicates if additional segments should be created */ u8 add_segment; + /** Use private memory segment instead of shared memory */ + u8 use_private_segment; } segment_manager_properties_t; typedef struct _segment_manager { + clib_spinlock_t lockp; + /** segments mapped by this manager */ u32 *segment_indices; @@ -95,6 +103,10 @@ segment_manager_alloc_session_fifos (segment_manager_t * sm, void segment_manager_dealloc_fifos (u32 svm_segment_index, svm_fifo_t * rx_fifo, svm_fifo_t * tx_fifo); +unix_shared_memory_queue_t *segment_manager_alloc_queue (segment_manager_t * + sm, u32 queue_size); +void segment_manager_dealloc_queue (segment_manager_t * sm, + unix_shared_memory_queue_t * q); #endif /* SRC_VNET_SESSION_SEGMENT_MANAGER_H_ */ /* |