aboutsummaryrefslogtreecommitdiffstats
path: root/lib/libtle_l4p/tle_tcp.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libtle_l4p/tle_tcp.h')
-rw-r--r--lib/libtle_l4p/tle_tcp.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/lib/libtle_l4p/tle_tcp.h b/lib/libtle_l4p/tle_tcp.h
index b0cbda6..3155dfa 100644
--- a/lib/libtle_l4p/tle_tcp.h
+++ b/lib/libtle_l4p/tle_tcp.h
@@ -52,6 +52,33 @@ struct tle_tcp_stream_param {
};
/**
+ * Timestamp option.
+ */
+union tle_tcp_tsopt {
+ uint64_t raw;
+ struct {
+ uint32_t val;
+ uint32_t ecr;
+ };
+};
+
+/**
+ * SYN time option values.
+ */
+struct tle_tcp_syn_opts {
+ uint16_t mss;
+ uint8_t wscale;
+ union tle_tcp_tsopt ts;
+};
+
+struct tle_tcp_conn_info {
+ uint16_t wnd;
+ uint32_t seq;
+ uint32_t ack;
+ struct tle_tcp_syn_opts so;
+};
+
+/**
* create a new stream within given TCP context.
* @param ctx
* TCP context to create new stream within.
@@ -129,6 +156,11 @@ tle_tcp_stream_get_addr(const struct tle_stream *s,
*/
int tle_tcp_stream_get_mss(const struct tle_stream *ts);
+struct tle_stream *
+tle_tcp_stream_establish(struct tle_ctx *ctx,
+ const struct tle_tcp_stream_param *prm,
+ const struct tle_tcp_conn_info *ci);
+
/**
* Client mode connect API.
*/