MEDIUM: conn_stream: Add a way to get mux's info on a CS from the upper layer

Time to time, the need arises to get some info owned by the multiplexer about a
connection stream from the upper layer. Today we really need to get some dates
and durations specific to the conn_stream. It is only true for the mux H1 and
H2. Otherwise it will be impossible to have correct times reported in the logs.

To do so, the structure cs_info has been defined to provide all info we ever
need on a conn_stream from the upper layer. Of course, it is the first step. So
this structure will certainly envloved. But for now, only the bare minimum is
referenced. On the mux side, the callback get_cs_info() has been added in the
structure mux_ops. Multiplexers can now implement it, if necessary, to return a
pointer on a structure cs_info. And finally, the function si_get_cs_info()
should be used from the upper layer. If the stream interface is not attached to
a connection stream, this function returns NULL, likewise if the callback
get_cs_info() is not defined for the corresponding mux.
diff --git a/include/proto/stream_interface.h b/include/proto/stream_interface.h
index a091439..da37f73 100644
--- a/include/proto/stream_interface.h
+++ b/include/proto/stream_interface.h
@@ -491,6 +491,18 @@
 	return ret;
 }
 
+/* Returns info about the conn_stream <cs>, if not NULL. It call the mux layer's
+ * get_cs_info() function, if it exists. On success, it returns a cs_info
+ * structure. Otherwise, on error, if the mux does not implement get_cs_info()
+ * or if conn_stream is NULL, NULL is returned.
+ */
+static inline const struct cs_info *si_get_cs_info(struct conn_stream *cs)
+{
+	if (cs && cs->conn->mux->get_cs_info)
+		return cs->conn->mux->get_cs_info(cs);
+	return NULL;
+}
+
 /* for debugging, reports the stream interface state name */
 static inline const char *si_state_str(int state)
 {