diff --git a/include/haproxy/connection-t.h b/include/haproxy/connection-t.h
index a400880..61602e7 100644
--- a/include/haproxy/connection-t.h
+++ b/include/haproxy/connection-t.h
@@ -400,7 +400,6 @@
 	int (*used_streams)(struct connection *conn);  /* Returns the number of streams in use on a connection. */
 	void (*destroy)(void *ctx); /* Let the mux know one of its users left, so it may have to disappear */
 	void (*reset)(struct connection *conn); /* Reset the mux, because we're re-trying to connect */
-	const struct cs_info *(*get_cs_info)(struct conn_stream *cs); /* Return info on the specified conn_stream or NULL if not defined */
 	int (*ctl)(struct connection *conn, enum mux_ctl_type mux_ctl, void *arg); /* Provides information about the mux */
 	int (*takeover)(struct connection *conn, int orig_tid); /* Attempts to migrate the connection to the current thread */
 	unsigned int flags;                           /* some flags characterizing the mux's capabilities (MX_FL_*) */
@@ -454,19 +453,6 @@
 	void *ctx;                           /* mux-specific context */
 };
 
-/*
- * This structure describes the info related to a conn_stream known by the mux
- * only but useful for the upper layer.
- * For now, only some dates and durations are reported. This structure will
- * envolved. But for now, only the bare minimum is referenced.
- */
-struct cs_info {
-	struct timeval create_date;  /* Creation date of the conn_stream in user date */
-	struct timeval tv_create;    /* Creation date of the conn_stream in internal date (monotonic) */
-	long t_handshake;            /* handshake duration, -1 if never occurs */
-	long t_idle;                 /* idle duration, -1 if never occurs */
-};
-
 /* This structure describes a connection with its methods and data.
  * A connection may be performed to proxy or server via a local or remote
  * socket, and can also be made to an internal applet. It can support
diff --git a/include/haproxy/stream_interface.h b/include/haproxy/stream_interface.h
index a81a84f..0c2e173 100644
--- a/include/haproxy/stream_interface.h
+++ b/include/haproxy/stream_interface.h
@@ -534,18 +534,6 @@
 	si_update_tx(si);
 }
 
-/* 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)
 {
