Rewrite from scratch a TCP/IP stack for mbed. So far the following parts are usable: Drivers: - EMAC driver (from CMSIS 2.0) Protocols: - Ethernet protocol - ARP over ethernet for IPv4 - IPv4 over Ethernet - ICMPv4 over IPv4 - UDPv4 over IPv4 APIs: - Sockets for UDPv4 The structure of this stack is designed to be very modular. Each protocol can register one or more protocol to handle its payload, and in each protocol, an API can be hooked (like Sockets for example). This is an early release.

Committer:
Benoit
Date:
Sun Jun 26 09:56:31 2011 +0000
Revision:
7:8e12f7357b9f
Parent:
0:19f5f51584de
Added IPv4 global broadcast address to processed frames inside IPv4 layer.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Benoit 0:19f5f51584de 1 /*
Benoit 0:19f5f51584de 2 * $Id: Ethernet.h 23 2011-06-06 06:03:23Z benoit $
Benoit 0:19f5f51584de 3 * $Author: benoit $
Benoit 0:19f5f51584de 4 * $Date: 2011-06-06 08:03:23 +0200 (lun., 06 juin 2011) $
Benoit 0:19f5f51584de 5 * $Rev: 23 $
Benoit 0:19f5f51584de 6 *
Benoit 0:19f5f51584de 7 *
Benoit 0:19f5f51584de 8 *
Benoit 0:19f5f51584de 9 *
Benoit 0:19f5f51584de 10 *
Benoit 0:19f5f51584de 11 */
Benoit 0:19f5f51584de 12
Benoit 0:19f5f51584de 13 #ifndef __ETHERNET_H__
Benoit 0:19f5f51584de 14 #define __ETHERNET_H__
Benoit 0:19f5f51584de 15
Benoit 0:19f5f51584de 16 #include <stdint.h>
Benoit 0:19f5f51584de 17 #include "mbedNet.h"
Benoit 0:19f5f51584de 18 #include "NetIF.h"
Benoit 0:19f5f51584de 19
Benoit 0:19f5f51584de 20
Benoit 0:19f5f51584de 21 typedef uint16_t Ethernet_Proto_t;
Benoit 0:19f5f51584de 22
Benoit 0:19f5f51584de 23
Benoit 0:19f5f51584de 24 #define ETHERNET_PROTO_IPV4 0x800
Benoit 0:19f5f51584de 25 #define ETHERNET_PROTO_ARP 0x806
Benoit 0:19f5f51584de 26
Benoit 0:19f5f51584de 27
Benoit 0:19f5f51584de 28 #pragma push
Benoit 0:19f5f51584de 29 #pragma pack(1)
Benoit 0:19f5f51584de 30 struct Ethernet_Header
Benoit 0:19f5f51584de 31 {
Benoit 0:19f5f51584de 32 Ethernet_Addr_t destination,
Benoit 0:19f5f51584de 33 source;
Benoit 0:19f5f51584de 34 Ethernet_Proto_t protocol;
Benoit 0:19f5f51584de 35 };
Benoit 0:19f5f51584de 36 #pragma pop
Benoit 0:19f5f51584de 37
Benoit 0:19f5f51584de 38
Benoit 0:19f5f51584de 39 typedef struct Ethernet_Header Ethernet_Header_t;
Benoit 0:19f5f51584de 40
Benoit 0:19f5f51584de 41
Benoit 0:19f5f51584de 42 extern Protocol_Handler_t ethernet;
Benoit 0:19f5f51584de 43
Benoit 0:19f5f51584de 44
Benoit 0:19f5f51584de 45 #endif /* __ETHERNET_H__ */
Benoit 0:19f5f51584de 46
Benoit 0:19f5f51584de 47
Benoit 0:19f5f51584de 48