Sorting source tree a bit
[tpg/acess2.git] / Modules / IPStack / tcp.h
diff --git a/Modules/IPStack/tcp.h b/Modules/IPStack/tcp.h
deleted file mode 100644 (file)
index 6aa404f..0000000
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * Acess2 IP Stack
- * - TCP Definitions
- */
-#ifndef _TCP_H_
-#define _TCP_H_
-
-#include "ipstack.h"
-#include <adt.h>       // tRingBuffer
-
-typedef struct sTCPHeader      tTCPHeader;
-typedef struct sTCPListener    tTCPListener;
-typedef struct sTCPStoredPacket        tTCPStoredPacket;
-typedef struct sTCPConnection  tTCPConnection;
-
-struct sTCPHeader
-{
-       Uint16  SourcePort;
-       Uint16  DestPort;
-       Uint32  SequenceNumber;
-       Uint32  AcknowlegementNumber;
-       #if 0
-       struct {        // Lowest to highest
-               unsigned Reserved:      4;
-               unsigned DataOffset: 4; // Size of the header in 32-bit words
-       } __attribute__ ((packed));
-       #else
-       Uint8   DataOffset;
-       #endif
-       #if 0
-       struct {        // Lowest to Highest
-               unsigned FIN:   1;      // Last packet
-               unsigned SYN:   1;      // Synchronise Sequence Numbers
-               unsigned RST:   1;      // Reset Connection
-               unsigned PSH:   1;      // Push Function
-               unsigned ACK:   1;      // Acknowlegement field is significant
-               unsigned URG:   1;      // Urgent pointer is significant
-               unsigned ECE:   1;      // ECN-Echo
-               unsigned CWR:   1;      // Congestion Window Reduced
-       } __attribute__ ((packed)) Flags;
-       #else
-       Uint8   Flags;
-       #endif
-       Uint16  WindowSize;
-       
-       Uint16  Checksum;
-       Uint16  UrgentPointer;
-       
-       Uint8   Options[];
-} __attribute__ ((packed));
-
-enum eTCPFlags
-{
-       TCP_FLAG_FIN    = 0x01,
-       TCP_FLAG_SYN    = 0x02,
-       TCP_FLAG_RST    = 0x04,
-       TCP_FLAG_PSH    = 0x08,
-       TCP_FLAG_ACK    = 0x10,
-       TCP_FLAG_URG    = 0x20,
-       TCP_FLAG_ECE    = 0x40,
-       TCP_FLAG_CWR    = 0x80
-};
-
-struct sTCPListener
-{
-       struct sTCPListener     *Next;  //!< Next server in the list
-       Uint16  Port;           //!< Listening port (0 disables the server)
-       tInterface      *Interface;     //!< Listening Interface
-       tVFS_Node       Node;   //!< Server Directory node
-        int    NextID;         //!< Name of the next connection
-       tShortSpinlock  lConnections;   //!< Spinlock for connections
-       tTCPConnection  *Connections;   //!< Connections (linked list)
-       tTCPConnection  *volatile NewConnections;
-       tTCPConnection  *ConnectionsTail;
-};
-
-struct sTCPStoredPacket
-{
-       struct sTCPStoredPacket *Next;
-       size_t  Length;
-       Uint32  Sequence;
-       Uint8   Data[];
-};
-
-enum eTCPConnectionState
-{
-       TCP_ST_CLOSED,          // 0 - Connection invalid
-       
-       TCP_ST_SYN_SENT,        // 1 - SYN sent by local, waiting for SYN-ACK
-       TCP_ST_SYN_RCVD,        // 2 - SYN recieved, SYN-ACK sent
-       
-       TCP_ST_OPEN,            // 3 - Connection open
-       
-       // Local Close
-       TCP_ST_FIN_WAIT1,       // 4 - FIN sent, waiting for reply (ACK or FIN)
-       TCP_ST_FIN_WAIT2,       // 5 - sent FIN acked, waiting for FIN from peer
-       TCP_ST_CLOSING,         // 6 - Waiting for ACK of FIN (FIN sent and recieved)
-       TCP_ST_TIME_WAIT,       // 7 - Waiting for timeout after local close
-       // Remote close
-       TCP_ST_CLOSE_WAIT,      // 8 - FIN recieved, waiting for user to close (error set, wait for node close)
-       TCP_ST_LAST_ACK,        // 9 - FIN sent and recieved, waiting for ACK
-       TCP_ST_FINISHED         // 10 - Essentially closed, all packets are invalid
-};
-
-struct sTCPConnection
-{
-       struct sTCPConnection   *Next;
-       enum eTCPConnectionState        State;  //!< Connection state (see ::eTCPConnectionState)
-       Uint16  LocalPort;      //!< Local port
-       Uint16  RemotePort;     //!< Remote port
-       tInterface      *Interface;     //!< Listening Interface
-       tVFS_Node       Node;   //!< Node
-       
-       Uint32  NextSequenceSend;       //!< Next sequence value for outbound packets
-       Uint32  NextSequenceRcv;        //!< Next expected sequence value for inbound
-       
-       #if 0
-       /**
-        * \brief Non-ACKed packets
-        * \note Ring buffer
-        * \{
-        */
-       tMutex  lNonACKedPackets;
-       tTCPStoredPacket        *SentPackets;   //!< Non-acknowleged packets
-       /**
-        * \}
-        */
-       #endif
-       
-       /**
-        * \brief Unread Packets
-        * \note Ring buffer
-        * \{
-        */
-       tMutex  lRecievedPackets;
-       tRingBuffer     *RecievedBuffer;
-       /**
-        * \}
-        */
-       
-       /**
-        * \brief Out of sequence packets
-        * \note Sorted list to improve times
-        * \todo Convert this to a ring buffer and a bitmap of valid bytes
-        * \{
-        */
-       #if CACHE_FUTURE_PACKETS_OR_BYTES == bytes
-       Uint32  HighestSequenceRcvd;    //!< Highest sequence number (within window) recieved
-       Uint8   *FuturePacketData;      //!< Future packet data (indexed by sequence number)
-       Uint8   *FuturePacketValidBytes;        //!< Valid byte bitmap (WINDOW_SIZE/8 bytes)
-       #else
-       tShortSpinlock  lFuturePackets; //!< Future packets spinlock
-       tTCPStoredPacket        *FuturePackets; //!< Out of sequence packets
-       #endif
-       /**
-        * \}
-        */
-       
-       union {
-               tIPv4   v4;
-               tIPv6   v6;
-       } RemoteIP;     //!< Remote IP Address
-       // Type is determined by LocalInterface->Type
-};
-
-#endif

UCC git Repository :: git.ucc.asn.au