Improve fifo allocator performance

- add option to preallocate fifos in a segment
- track active fifos with doubly linked list instead of vector
- update udp redirect test code to read fifo pointers from API call
  instead of digging them up from fifo segment header
- input-node based active-open session generator

Change-Id: I804b81e99d95f8690d17e12660c6645995e28a9a
Signed-off-by: Dave Barach <dave@barachs.net>
Signed-off-by: Florin Coras <fcoras@cisco.com>
Signed-off-by: Dave Barach <dbarach@cisco.com>
diff --git a/src/vnet/session/session.h b/src/vnet/session/session.h
index d60cca2..a872864 100644
--- a/src/vnet/session/session.h
+++ b/src/vnet/session/session.h
@@ -125,14 +125,11 @@
 
   u8 thread_index;
 
-  /** used during unbind processing */
-  u8 is_deleted;
-
   /** To avoid n**2 "one event per frame" check */
   u8 enqueue_epoch;
 
   /** Pad to a multiple of 8 octets */
-  u8 align_pad[2];
+  u8 align_pad[4];
 
   /** svm segment index where fifos were allocated */
   u32 svm_segment_index;
@@ -205,6 +202,9 @@
   /** vpp fifo event queue */
   unix_shared_memory_queue_t **vpp_event_queues;
 
+  /** vpp fifo event queue configured length */
+  u32 configured_event_queue_length;
+
   /** Unique segment name counter */
   u32 unique_segment_name_counter;