+ tc->flags |= TRANSPORT_CONNECTION_F_DESCHED;
+}
+
+static inline u8
+transport_connection_is_cless (transport_connection_t * tc)
+{
+ return ((tc->flags & TRANSPORT_CONNECTION_F_CLESS) ? 1 : 0);
+}
+
+void transport_connection_reschedule (transport_connection_t * tc);
+
+/**
+ * Register transport virtual function table.
+ *
+ * @param transport_proto - transport protocol type (i.e., TCP, UDP ..)
+ * @param vft - virtual function table for transport proto
+ * @param fib_proto - network layer protocol
+ * @param output_node - output node index that session layer will hand off
+ * buffers to, for requested fib proto
+ */
+void transport_register_protocol (transport_proto_t transport_proto,
+ const transport_proto_vft_t * vft,
+ fib_protocol_t fib_proto, u32 output_node);
+transport_proto_t
+transport_register_new_protocol (const transport_proto_vft_t * vft,
+ fib_protocol_t fib_proto, u32 output_node);
+transport_proto_vft_t *transport_protocol_get_vft (transport_proto_t tp);
+void transport_update_time (clib_time_type_t time_now, u8 thread_index);
+
+int transport_alloc_local_port (u8 proto, ip46_address_t * ip);
+int transport_alloc_local_endpoint (u8 proto, transport_endpoint_cfg_t * rmt,
+ ip46_address_t * lcl_addr,
+ u16 * lcl_port);
+void transport_share_local_endpoint (u8 proto, ip46_address_t * lcl_ip,
+ u16 port);
+void transport_endpoint_cleanup (u8 proto, ip46_address_t * lcl_ip, u16 port);
+void transport_enable_disable (vlib_main_t * vm, u8 is_en);
+void transport_init (void);
+
+always_inline u32
+transport_elog_track_index (transport_connection_t * tc)
+{
+#if TRANSPORT_DEBUG
+ return tc->elog_track.track_index_plus_one - 1;
+#else
+ return ~0;
+#endif
+}
+
+void transport_connection_tx_pacer_reset (transport_connection_t * tc,
+ u64 rate_bytes_per_sec,
+ u32 initial_bucket,
+ clib_us_time_t rtt);
+/**
+ * Initialize tx pacer for connection
+ *
+ * @param tc transport connection
+ * @param rate_bytes_per_second initial byte rate
+ * @param burst_bytes initial burst size in bytes
+ */
+void transport_connection_tx_pacer_init (transport_connection_t * tc,
+ u64 rate_bytes_per_sec,
+ u32 initial_bucket);
+
+/**
+ * Update tx pacer pacing rate
+ *
+ * @param tc transport connection
+ * @param bytes_per_sec new pacing rate
+ * @param rtt connection rtt that is used to compute
+ * inactivity time after which pacer bucket is
+ * reset to 1 mtu
+ */
+void transport_connection_tx_pacer_update (transport_connection_t * tc,
+ u64 bytes_per_sec,
+ clib_us_time_t rtt);