Make tcp active open data structures thread safe

- Cleanup half-open connections and timers on the right thread
- Ensure half-open connection and transport endpoint pools are thread safe
- Enqueue TX events to the correct vpp thread in the builtin client
- Use transport proto in transport connections instead of session type

Change-Id: Id13239a206afbff6f34a38afa510fe014e4b2049
Signed-off-by: Florin Coras <fcoras@cisco.com>
Signed-off-by: Dave Barach <dave@barachs.net>
diff --git a/src/vnet/session/transport_interface.c b/src/vnet/session/transport_interface.c
index eb12aa6..ef8d1e4 100644
--- a/src/vnet/session/transport_interface.c
+++ b/src/vnet/session/transport_interface.c
@@ -73,9 +73,12 @@
  * @param vft - virtual function table
  */
 void
-session_register_transport (u8 session_type,
+session_register_transport (transport_proto_t transport_proto, u8 is_ip4,
 			    const transport_proto_vft_t * vft)
 {
+  u8 session_type;
+  session_type = session_type_from_proto_and_ip (transport_proto, is_ip4);
+
   vec_validate (tp_vfts, session_type);
   tp_vfts[session_type] = *vft;