session: rules tables

This introduces 5-tuple lookup tables that may be used to implement
custom session layer actions at connection establishment time (session
layer perspective).

The rules table build mask-match-action lookup trees that for a given
5-tuple key return the action for the first longest match. If rules
overlap, ordering is established by tuple longest match with the
following descending priority: remote ip, local ip, remote port, local
port.

At this time, the only match action supported is to forward packets to
the application identified by the action.

Change-Id: Icbade6fac720fa3979820d50cd7d6137f8b635c3
Signed-off-by: Florin Coras <fcoras@cisco.com>
diff --git a/src/vnet/session/transport.h b/src/vnet/session/transport.h
index f2cc80b..822dc83 100644
--- a/src/vnet/session/transport.h
+++ b/src/vnet/session/transport.h
@@ -73,6 +73,9 @@
   TRANSPORT_N_PROTO
 } transport_proto_t;
 
+u8 *format_transport_proto (u8 * s, va_list * args);
+uword unformat_transport_proto (unformat_input_t * input, va_list * args);
+
 #define foreach_transport_connection_fields				\
   _(u32, sw_if_index) 	/**< interface endpoint is associated with  */	\
   _(ip46_address_t, ip) /**< ip address */				\