Stefan Schuermans
handle padding to minimum ethernet frame size (TX) in HW
Stefan Schuermans commited 2a4b80d at 2012-03-24 16:42:53
/* flpDistriR25S - flexipix distributor for pixels round 25mm with switch
* version 1.0.0 date 2011-06-12
* created by Stefan Schuermans <stefan@schuermans.info>
* Copyright (C) 2006-2011 flexipix GbR, Germany
*/
#include "arp.h"
#include "config.h"
#include "eth.h"
#include "ethernet.h"
#include "ip.h"
#include "macros.h"
#include "nethelp.h"
/**
* @brief process a received ethernet packet
* @param[in] ptr pointer to data of packet
* @param[in] sz size of packet
*/
void ethernet_recv(void *ptr, unsigned int sz)
{
struct ethernet_packet *eth_pack;
// packet too short
if (sz < sizeof(struct ethernet_packet))
return;
eth_pack = ptr;
// branch according to packet type
switch (eth_pack->eth_hdr.type)
{
// ARP
case htons(0x0806):
arp_recv(ptr, sz);
break;
// IP
case htons(0x0800):
ip_recv(ptr, sz);
break;
}
}
/**
* @brief send an ethernet packet
* @param[in] ptr pointer to data of packet
* @param[in] sz size of packet
*
* ptr must point to a ethernet_packet
* with eth_hdr.dest and eth_hdr.type already initialized
*/
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX