BOOTLOADER
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
ethernet.h
Go to the documentation of this file.
1 #ifndef ETHERNET_H
2 #define ETHERNET_H
3 
4 extern void F_EthernetSvc(void);
5 //******
6 // IP communication port number define
7 //******
8 #define ICMP 1 // internet control message protocol
9 #define IGMP 2 // internet group message protocol
10 #define IP 4 // internet protocol
11 #define TCP 6 // transmition control portocol
12 #define EGP 8 // exterior gateway protocol
13 #define UDP 17 // user datagram protocol
14 #define RSVP 46 // resource reservation protocol
15 #define GRE 47 // generic routine protocol
16 #define SESP 50 // security encapsulating security payload
17 #define IPSAH 51 // IP authentication header
18 #define OSPF 89 // open shirtest path first
19 //******
20 // UDP communication port number define...udp destination
21 //******
22 #define ECHO 7 // reply to the sender
23 #define DISCARD 9 // discard packet
24 #define USERS 11 // active users
25 #define DAYTIME 13 // reply date and time
26 #define QUOTE 17 // abstract today
27 #define CHARGEN 19 // reply string
28 #define DNS 53 // domain name server
29 #define BOOTP_CLIENT 67 //
30 #define BOOTP_SERVER 68
31 #define TFTP 69 // trival file transmission protocol
32 #define RPC 111 // remote procedure call
33 #define NTP 123 // net work time protocal
34 #define NETBIOS_NS 137 //
35 #define NETBIOS_DS 138 //
36 #define SNMP 161 // simple network protocal
37 //#define SNMP 162 // simple network protocal(trap)
38 #define RIP 520 // router information protocal
39 #define SMB 445 // server message block
40 #define RADIUS0 1812 // remote authentication dial user service
41 #define RADIUS1 1813 //
42 //******
43 // IEEE 802.3 Ethernet magic constants. The frame sizes omit the preamble
44 // and FCS/CRC (frame check sequence).
45 //******
46 #define ETHERNET_MAC_LENGTH 6 // Octets in one ethernet MAC addr
47 #define ETHERNET_IP_LENGTH 4 // Octets in one ethernet IP addr
48 #define ETHERNET_HEAD_LENGTH 14 // Total octets in header. 6+6+2
49 #define ETHERNET_ZLEN 60 // Min. octets in frame sans FCS
50 #define ETHERNET_DATA_LEN 1500 // Max. octets in payload
51 #define ETHERNET_FRAME_LEN 1514 // Max. octets in frame sans FCS
52 
53 //******
54 // These are the defined Ethernet Protocol ID's.
55 //******
56 #define ETHERNET_P_LOOP 0x0060 // Ethernet Loopback packet
57 #define ETHERNET_P_ECHO 0x0200 // Ethernet Echo packet
58 #define ETHERNET_P_PUP 0x0400 // Xerox PUP packet
59 #define ETHERNET_P_IP 0x0800 // Internet Protocol packet
60 #define ETHERNET_P_X25 0x0805 // CCITT X.25
61 #define ETHERNET_P_ARP 0x0806 // Address Resolution packet
62 #define ETHERNET_P_BPQ 0x08FF // G8BPQ AX.25 Ethernet Packet [ NOT AN OFFICIALLY REGISTERED ID ]
63 #define ETHERNET_P_DEC 0x6000 // DEC Assigned proto
64 #define ETHERNET_P_DNA_DL 0x6001 // DEC DNA Dump/Load
65 #define ETHERNET_P_DNA_RC 0x6002 // DEC DNA Remote Console
66 #define ETHERNET_P_DNA_RT 0x6003 // DEC DNA Routing
67 #define ETHERNET_P_LAT 0x6004 // DEC LAT
68 #define ETHERNET_P_DIAG 0x6005 // DEC Diagnostics
69 #define ETHERNET_P_CUST 0x6006 // DEC Customer use
70 #define ETHERNET_P_SCA 0x6007 // DEC Systems Comms Arch
71 #define ETHERNET_P_RARP 0x8035 // Reverse Addr Res packet
72 #define ETHERNET_P_ATALK 0x809B // Appletalk DDP
73 #define ETHERNET_P_AARP 0x80F3 // Appletalk AARP
74 #define ETHERNET_P_IPX 0x8137 // IPX over DIX
75 #define ETHERNET_P_IPV6 0x86DD // IPv6 over bluebook
76 typedef struct{
77  INT8U Destination[ETHERNET_MAC_LENGTH];
81 typedef struct {
90 
92 extern void F_EthernetInit(void);
93 extern void F_EthernetSvc(void);
94 extern INT8U F_EthernetInUseCheck(void);
95 extern INT8U F_EthernetAllocate(INT16U UserId);
96 extern INT8U F_EthernetRelease(INT16U UserId);
97 extern INT8U F_EthernetMacAddressSet(INT16U UserId,INT8U *pMacAddress);
98 extern INT8U F_EthernetIpAddressSet(INT16U UserId,INT8U *pIpAddress);
99 extern INT8U F_EthernetSend(ETHBUFFER *pBuffer,INT8U *pDestination,INT16U Protocol);
100 extern INT8U F_EthernetReceive(ETHBUFFER *pBuffer);
101 extern INT8U F_EthernetPacketHandler(void);
102 extern INT8U F_EthernetBiosUpdate(INT8U *pBios,INT32U size);
103 extern INT8U F_EthernetSystemTableUpdate(INT8U *pSystemTable,INT32U Size);
104 extern INT8U F_EthernetPartitionTableUpdate(INT8U *pSystemTable,INT32U Size);
105 extern INT8U F_EthernetPartitionUpdate(INT8U *pSystemTable,INT32U Size);
106 extern INT8U F_EthernetFirmwareUpdate(INT8U *pSystemTable,INT32U Size);
107 extern INT16U F_EthernetUnsignedShortN2H(unsigned short s);
108 extern INT16U F_EthernetUnsignedShortH2N(unsigned short s);
109 extern INT32U F_EthernetUnsignedLongN2H(unsigned long l);
110 extern INT32U F_EthernetUnsignedLongH2N(unsigned long l);
111 
112 #endif