diff --git a/src/svm/fifo_segment.h b/src/svm/fifo_segment.h
index 7922274..ff36f45 100644
--- a/src/svm/fifo_segment.h
+++ b/src/svm/fifo_segment.h
@@ -26,8 +26,9 @@
   FIFO_SEGMENT_N_FTYPES
 } fifo_segment_ftype_t;
 
-#define FIFO_SEGMENT_MIN_FIFO_SIZE 4096	/* 4kB min fifo size */
-#define FIFO_SEGMENT_MAX_FIFO_SIZE (2 << 30)	/* 2GB max fifo size */
+#define FIFO_SEGMENT_MIN_LOG2_FIFO_SIZE 12	/**< 4kB min fifo size */
+#define FIFO_SEGMENT_MIN_FIFO_SIZE 4096		/**< 4kB min fifo size */
+#define FIFO_SEGMENT_MAX_FIFO_SIZE (2 << 30)	/**< 2GB max fifo size */
 #define FIFO_SEGMENT_ALLOC_BATCH_SIZE 32	/* Allocation quantum */
 
 typedef enum fifo_segment_flags_
@@ -36,21 +37,30 @@
   FIFO_SEGMENT_F_WILL_DELETE = 1 << 1,
 } fifo_segment_flags_t;
 
-typedef struct
+typedef struct fifo_segment_slice_
 {
   svm_fifo_t *fifos;			/**< Linked list of active RX fifos */
   svm_fifo_t *free_fifos;		/**< Freelists by fifo size  */
   svm_fifo_chunk_t **free_chunks;	/**< Freelists by chunk size */
-  u32 n_active_fifos;			/**< Number of active fifos */
-  u8 flags;				/**< Segment flags */
-  u32 n_free_bytes;			/**< Bytes usable for new allocs */
   u32 n_fl_chunk_bytes;			/**< Chunk bytes on freelist */
+} fifo_segment_slice_t;
+
+typedef struct
+{
+  fifo_segment_slice_t *slices;		/** Fixed array of slices */
+  ssvm_shared_header_t *ssvm_sh;	/**< Pointer to fs ssvm shared hdr */
+  uword n_free_bytes;			/**< Segment free bytes */
+  u32 n_active_fifos;			/**< Number of active fifos */
+  u32 max_log2_chunk_size;		/**< Max log2(chunk size) for fs */
+  u8 flags;				/**< Segment flags */
+  u8 n_slices;				/**< Number of slices */
 } fifo_segment_header_t;
 
 typedef struct
 {
   ssvm_private_t ssvm;		/**< ssvm segment data */
   fifo_segment_header_t *h;	/**< fifo segment data */
+  u8 n_slices;			/**< number of fifo segment slices */
 } fifo_segment_t;
 
 typedef struct
@@ -90,9 +100,10 @@
  * @param ftype		fifo type @ref fifo_segment_ftype_t
  * @return		new fifo or 0 if alloc failed
  */
-svm_fifo_t *fifo_segment_alloc_fifo (fifo_segment_t * fs,
-				     u32 data_bytes,
-				     fifo_segment_ftype_t ftype);
+svm_fifo_t *fifo_segment_alloc_fifo_w_slice (fifo_segment_t * fs,
+					     u32 slice_index,
+					     u32 data_bytes,
+					     fifo_segment_ftype_t ftype);
 
 /**
  * Free fifo allocated in fifo segment
@@ -111,7 +122,8 @@
  * @param batch_size	number of chunks to be allocated
  * @return		0 on success, negative number otherwise
  */
-int fifo_segment_prealloc_fifo_hdrs (fifo_segment_t * fs, u32 batch_size);
+int fifo_segment_prealloc_fifo_hdrs (fifo_segment_t * fs, u32 slice_index,
+				     u32 batch_size);
 
 /**
  * Try to preallocate fifo chunks on segment
@@ -124,8 +136,8 @@
  * @param batch_size	number of chunks to be allocated
  * @return		0 on success, negative number otherwise
  */
-int fifo_segment_prealloc_fifo_chunks (fifo_segment_t * fs, u32 chunk_size,
-				       u32 batch_size);
+int fifo_segment_prealloc_fifo_chunks (fifo_segment_t * fs, u32 slice_index,
+				       u32 chunk_size, u32 batch_size);
 /**
  * Pre-allocates fifo pairs in fifo segment
  *
@@ -192,9 +204,10 @@
  * @param fs		fifo segment
  * @return		free bytes on chunk free lists
  */
-u32 fifo_segment_fl_chunk_bytes (fifo_segment_t * fs);
+uword fifo_segment_fl_chunk_bytes (fifo_segment_t * fs);
 u8 fifo_segment_has_fifos (fifo_segment_t * fs);
-svm_fifo_t *fifo_segment_get_fifo_list (fifo_segment_t * fs);
+svm_fifo_t *fifo_segment_get_slice_fifo_list (fifo_segment_t * fs,
+					      u32 slice_index);
 u32 fifo_segment_num_fifos (fifo_segment_t * fs);
 u32 fifo_segment_num_free_fifos (fifo_segment_t * fs);
 /**
