diff options
Diffstat (limited to '')
-rw-r--r-- | private/ntos/tdi/tcpip/tcp/tcb.h | 67 |
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; + + + + |