net/tcp: put connection specific data into a tcp_stream structure
no functional changes
Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
Reviewed-by: Simon Glass <sjg@chromium.org>
diff --git a/include/net/tcp.h b/include/net/tcp.h
index c29d4ce..14aee64 100644
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -277,9 +277,40 @@
TCP_FIN_WAIT_2
};
-enum tcp_state tcp_get_tcp_state(void);
-void tcp_set_tcp_state(enum tcp_state new_state);
-int tcp_set_tcp_header(uchar *pkt, int dport, int sport, int payload_len,
+/**
+ * struct tcp_stream - TCP data stream structure
+ *
+ * @state: TCP connection state
+ *
+ * @seq_init: Initial receive sequence number
+ * @ack_edge: Receive next
+ *
+ * @loc_timestamp: Local timestamp
+ * @rmt_timestamp: Remote timestamp
+ *
+ * @lost: Used for SACK
+ */
+struct tcp_stream {
+ /* TCP connection state */
+ enum tcp_state state;
+
+ u32 seq_init;
+ u32 ack_edge;
+
+ /* TCP option timestamp */
+ u32 loc_timestamp;
+ u32 rmt_timestamp;
+
+ /* TCP sliding window control used to request re-TX */
+ struct tcp_sack_v lost;
+};
+
+struct tcp_stream *tcp_stream_get(void);
+
+enum tcp_state tcp_get_tcp_state(struct tcp_stream *tcp);
+void tcp_set_tcp_state(struct tcp_stream *tcp, enum tcp_state new_state);
+int tcp_set_tcp_header(struct tcp_stream *tcp, uchar *pkt, int dport,
+ int sport, int payload_len,
u8 action, u32 tcp_seq_num, u32 tcp_ack_num);
/**