From 5951024ab35e6cdd1ed6b97d76e28f1a253f6593 Mon Sep 17 00:00:00 2001
From: Marvin Borner
Date: Tue, 3 Nov 2020 21:09:34 +0100
Subject: Started TCP implementation

---
 kernel/inc/net.h | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

(limited to 'kernel/inc/net.h')

diff --git a/kernel/inc/net.h b/kernel/inc/net.h
index 78aed51..f2fbb20 100644
--- a/kernel/inc/net.h
+++ b/kernel/inc/net.h
@@ -20,6 +20,16 @@
 #define IP_PROT_TCP 0x06
 #define IP_PROT_UDP 0x11
 
+#define TCP_FLAG_FIN (1 << 0)
+#define TCP_FLAG_SYN (1 << 1)
+#define TCP_FLAG_RES (1 << 2)
+#define TCP_FLAG_PSH (1 << 3)
+#define TCP_FLAG_ACK (1 << 4)
+#define TCP_FLAG_URG (1 << 5)
+#define TCP_FLAG_ECE (1 << 6)
+#define TCP_FLAG_CWR (1 << 7)
+#define TCP_FLAG_NS (1 << 8)
+
 #define ARP_REQUEST 1
 #define ARP_REPLY 2
 
@@ -91,6 +101,27 @@ struct udp_packet {
 	u8 data[];
 } __attribute__((packed));
 
+struct tcp_packet {
+	u16 src_port;
+	u16 dst_port;
+	u32 seq_number;
+	u32 ack_number;
+	u16 flags;
+	u16 window_size;
+	u16 checksum;
+	u16 urgent;
+	u8 data[];
+} __attribute__((packed));
+
+struct tcp_pseudo_header {
+	u32 source;
+	u32 destination;
+	u8 zeros;
+	u8 protocol;
+	u16 tcp_len;
+	u8 tcp_header[];
+};
+
 struct icmp_packet {
 	u8 type;
 	u8 version;
-- 
cgit v1.2.3