Stefan Schuermans
implement MCUF input via Ethernet
Stefan Schuermans commited 28c2376 at 2019-05-01 21:00:49
/* flaneth - flash and ethernet
Copyright (C) 2007-2012 Stefan Schuermans <stefan@blinkenarea.org>
Copyleft: GNU public license V2 - http://www.gnu.org/copyleft/gpl.html
a BlinkenArea project - http://www.blinkenarea.org/ */
#include "config.h"
#include "checksum.h"
#include "debug.h"
#include "dhcp.h"
#include "ethernet.h"
#include "ip.h"
#include "macros.h"
#include "mcuf_in.h"
#include "nethelp.h"
#include "ser62500.h"
#include "udp.h"
// some kind of "token bucket" for UDP echo
#define UdpEchoTicks 10 // allowed rate of UDP echo replies (in 200ms steps)
unsigned char UdpEchoTickCnt = 0; // tick counter
#define UdpEchoReliesMax 3 // maximum value for UdpEchoReplies
unsigned char UdpEchoReplies = 0; // number of UDP echo replies that
// may be sent at the moment
// tick procedure - call every 200ms
void UdpTick200(void) // (extern)
{
// count ticks
UdpEchoTickCnt++;
// time to allow one reply more
if (UdpEchoTickCnt >= UdpEchoTicks) {
UdpEchoTickCnt = 0;
// increase reply count if not at maximum
if (UdpEchoReplies < UdpEchoReliesMax)
UdpEchoReplies++;
}
}
// process a received UDP echo packet
static void UdpEchoRecv(unsigned char *pData, unsigned short Length)
{
struct UdpPacket *pUdpPack;
// convert pointer to UDP packet
// (this saves us from always casting pData)
pUdpPack = (struct UdpPacket *)pData;
// source port is UDP echo port
if (pUdpPack->UdpHdr.SrcPort == htons(7))
// ignore this packet
 
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX