Stefan Schuermans
initial commit after making CF identify work
Stefan Schuermans commited e8658d5 at 2012-04-15 19:57:57
/* flaneth - flash and ethernet - dartboard mod
* version 0.1 date 2008-11-09
* Copyright (C) 2007-2008 Stefan Schuermans <stefan@schuermans.info>
* Copyleft: GNU public license V2 - http://www.gnu.org/copyleft/gpl.html
* a BlinkenArea project - http://www.blinkenarea.org/
*/
#include <string.h>
#include "arp.h"
#include "checksum.h"
#include "config.h"
#include "debug.h"
#include "ethernet.h"
#include "icmp.h"
#include "ip.h"
#include "macros.h"
#include "nethelp.h"
#include "tcp.h"
#include "udp.h"
// timing parameters
#define IpBufferTicksMax 50 // maximum age of buffered IP packet (in 200ms steps)
// buffers for IP packets to transmit
// - used if MAC is unknown when packet shall be transmitted
// - packet is sent when MAC becomes known
unsigned char IpBuffer0[80]; // some buffers with different length (IP packets have different length)
unsigned char IpBuffer1[80];
unsigned char IpBuffer2[160];
unsigned char IpBuffer3[320];
struct IpBufferTable // table with buffers
{
unsigned char * pBuffer; // pointer to buffer for packet
unsigned short BufferLength; // length of buffer
unsigned short PacketLength; // length of packet in buffer, 0 if no packet in this buffer
unsigned char Ticks; // age of entry in 200ms steps
} IpBufferTab[] =
{ // put smaller buffers in front of larger buffers
// - then short packets will use smaller buffers more often
{ IpBuffer0, sizeof( IpBuffer0 ), 0, 0 },
{ IpBuffer1, sizeof( IpBuffer1 ), 0, 0 },
{ IpBuffer2, sizeof( IpBuffer2 ), 0, 0 },
{ IpBuffer3, sizeof( IpBuffer3 ), 0, 0 },
};
// tick procedure - call every 200ms
void IpTick200( void ) // (extern)
{
unsigned char i;
 
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX