Stefan Schuermans
initial commit of files from bluebox project
Stefan Schuermans commited fd252ce at 2015-12-19 20:16:38
/* BlueDataDistributor - data distribution module from ethernet to 32 serial ports
* version 0.1.1 date 2006-10-07
* Copyright (C) 2006 Stefan Schuermans <stefan@blinkenarea.org>
* a BlinkenArea project - http://www.blinkenarea.org/
*/
#ifndef INC_tcp
#define INC_tcp
#include "ethernet.h"
#include "ip.h"
// header of a TCP packet
struct TcpHeader
{
unsigned int SrcPort;
unsigned int DestPort;
unsigned long SeqNo;
unsigned long AckNo;
unsigned int Ofs_Flags;
unsigned int WndSz;
unsigned int Chk;
unsigned int UrgentPtr;
};
// a TCP packet
struct TcpPacket
{
struct EthernetHeader EthHdr;
struct IpHeader IpHdr;
struct TcpHeader TcpHdr;
};
// TCP notify functions
struct TcpNotify
{
// called when connection is established
void (*Connect)( unsigned char ConnNo );
// called when connection is closed / reset
// (after this, the connection number may not be used any more)
void (*Close)( unsigned char ConnNo );
// called when sending data is possible
// (return length of available data, 0xFFFF to close connection)
unsigned short (*Send)( unsigned char ConnNo, unsigned long Pos, unsigned char * pBuffer, unsigned short MaxLen );
// called when data was sent and ACKed
void (*Sent)( unsigned char ConnNo, unsigned long Pos );
// called when data was received, must return new window size (not smaller than curWnd)
unsigned short (*Received)( unsigned char ConnNo, unsigned long Pos, unsigned char * pBuffer, unsigned short Len, unsigned short curWnd );
};
// a TCP connection (member names according to RFC793)
 
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX