summaryrefslogtreecommitdiffstats
path: root/private/ntos/tdi/tcpip/tcp/tcb.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--private/ntos/tdi/tcpip/tcp/tcb.h67
1 files changed, 67 insertions, 0 deletions
diff --git a/private/ntos/tdi/tcpip/tcp/tcb.h b/private/ntos/tdi/tcpip/tcp/tcb.h
new file mode 100644
index 000000000..3d273e50e
--- /dev/null
+++ b/private/ntos/tdi/tcpip/tcp/tcb.h
@@ -0,0 +1,67 @@
+/********************************************************************/
+/** Microsoft LAN Manager **/
+/** Copyright(c) Microsoft Corp., 1990-1993 **/
+/********************************************************************/
+/* :ts=4 */
+
+//** TCB.H - TCB management definitions.
+//
+// This file contains the definitons needed for TCB management.
+//
+
+#define TCB_TABLE_SIZE 64
+
+#define MAX_REXMIT_CNT 5
+#define MAX_CONNECT_REXMIT_CNT 3
+#define MAX_CONNECT_RESPONSE_REXMIT_CNT 3
+#ifdef SYN_ATTACK
+#define ADAPTED_MAX_CONNECT_RESPONSE_REXMIT_CNT 1
+#endif
+
+extern uint TCPTime;
+
+#ifdef OLDHASH1
+#define TCB_HASH(DA,SA,DP,SP) ((uint)(*(uchar *)&(DA) + *((uchar *)&(DA) + 1) \
+ + *((uchar *)&(DA) + 2) + *((uchar *)&(DA) + 3)) % TCB_TABLE_SIZE)
+#endif
+
+#ifdef OLDHASH
+#define TCB_HASH(DA,SA,DP,SP) (((DA) + (SA) + (uint)(DP) + (uint)(SP)) % \
+ TCB_TABLE_SIZE)
+#endif
+
+#define ROR8(x) (uchar)(((uchar)(x) >> 1) | (uchar)(((uchar)(x) & 1) << 7))
+
+#define TCB_HASH(DA,SA,DP,SP) (((uint)(ROR8(ROR8(ROR8(ROR8(*((uchar *)&(DP) + 1) + \
+*((uchar *)&(DP))) + \
+*((uchar *)&(DA) + 3)) + \
+*((uchar *)&(DA) + 2)) + \
+*((uchar *)&(DA) + 1)) + \
+*((uchar *)&(DA)) )) % TCB_TABLE_SIZE)
+
+extern struct TCB *FindTCB(IPAddr Src, IPAddr Dest, ushort DestPort,
+ ushort SrcPort);
+extern uint InsertTCB(struct TCB *NewTCB);
+extern struct TCB *AllocTCB(void);
+extern void FreeTCB(struct TCB *FreedTCB);
+extern uint RemoveTCB(struct TCB *RemovedTCB);
+
+extern uint ValidateTCBContext(void *Context, uint *Valid);
+extern uint ReadNextTCB(void *Context, void *OutBuf);
+
+extern int InitTCB(void);
+extern void UnInitTCB(void);
+extern void TCBWalk(uint (*CallRtn)(struct TCB *, void *, void *,
+ void *), void *Context1, void *Context2,
+ void *Context3);
+extern uint DeleteTCBWithSrc(struct TCB *CheckTCB, void *AddrPtr,
+ void *Unused1, void *Unused2);
+extern uint SetTCBMTU(struct TCB *CheckTCB, void *DestPtr,
+ void *SrcPtr, void *MTUPtr);
+extern void ReetSendNext(struct TCB *SeqTCB, SeqNum DropSeq);
+
+extern uint TCBWalkCount;
+
+
+
+