A more elaborated file description.
Definition in file if_ether.h.
Go to the source code of this file.
Data Structures | |
struct | ether_header |
Ethernet protocol header. More... | |
struct | ether_arp |
Ethernet ARP protocol structure. More... | |
Defines | |
#define | ETHERTYPE_IP 0x0800 |
IP protocol. | |
#define | ETHERTYPE_ARP 0x0806 |
Address resolution protocol. | |
#define | ETHERMTU 1500 |
Ethernet maximum transfer unit. | |
#define | ETHERMIN (60-14) |
Ethernet minimum transfer unit. | |
#define | ETHER_IS_ZERO(ea) (((ea)[0] | (ea)[1] | (ea)[2] | (ea)[3] | (ea)[4] | (ea)[5]) == 0) |
Determine if a given Ethernet address is zero. | |
#define | ETHER_IS_BROADCAST(ea) (((ea)[0] & (ea)[1] & (ea)[2] & (ea)[3] & (ea)[4] & (ea)[5]) == 0xFF) |
Determine if a given Ethernet address is a broadcast address. | |
#define | ETHER_IS_MULTICAST(ea) ((ea)[0] & 1) |
Determine if a given Ethernet address is a multicast address. | |
#define | ETHER_IS_UNICAST(ea) (!ETHER_IS_ZERO(ea) && !ETHER_IS_MULTICAST(ea)) |
Determine if a given Ethernet address is a unicast address. | |
Typedefs | |
typedef struct ether_header | ETHERHDR |
Ethernet protocol header type. | |
typedef struct ether_arp | ETHERARP |
Ethernet ARP protocol type. | |
Functions | |
u_char * | ether_aton (CONST char *str) |
Convert an ASCII string to a binary Ethernet address. | |
char * | ether_ntoa (CONST u_char *mac) |
Convert a binary Ethernet address to an ASCII string. | |
void | NutArpInput (NUTDEVICE *dev, NETBUF *nb) |
Handle incoming ARP packets. | |
NETBUF * | NutArpAllocNetBuf (u_short type, u_long ip, u_char *mac) |
Allocate an ARP network buffer structure. | |
int | NutArpOutput (NUTDEVICE *dev, NETBUF *nb) |
Send an ARP packet. | |
void | NutArpCacheUpdate (NUTDEVICE *dev, u_long ip, u_char *ha) |
Update an ARP entry. | |
int | NutArpCacheQuery (NUTDEVICE *dev, u_long ip, u_char *mac) |
#define ETHERTYPE_IP 0x0800 |
IP protocol.
Definition at line 134 of file if_ether.h.
Referenced by NutArpAllocNetBuf(), NutArpInput(), NutEtherInput(), and NutIpOutput().
#define ETHERTYPE_ARP 0x0806 |
Address resolution protocol.
Definition at line 135 of file if_ether.h.
Referenced by NutArpOutput(), and NutEtherInput().
#define ETHERMTU 1500 |
#define ETHERMIN (60-14) |
#define ETHER_IS_ZERO | ( | ea | ) | (((ea)[0] | (ea)[1] | (ea)[2] | (ea)[3] | (ea)[4] | (ea)[5]) == 0) |
Determine if a given Ethernet address is zero.
ea | Pointer to a character array containing the address. |
Definition at line 148 of file if_ether.h.
#define ETHER_IS_BROADCAST | ( | ea | ) | (((ea)[0] & (ea)[1] & (ea)[2] & (ea)[3] & (ea)[4] & (ea)[5]) == 0xFF) |
Determine if a given Ethernet address is a broadcast address.
ea | Pointer to a character array containing the address. |
Definition at line 157 of file if_ether.h.
#define ETHER_IS_MULTICAST | ( | ea | ) | ((ea)[0] & 1) |
Determine if a given Ethernet address is a multicast address.
The broadcast address is defined as a special multicast address.
ea | Pointer to a character array containing the address. |
Definition at line 168 of file if_ether.h.
#define ETHER_IS_UNICAST | ( | ea | ) | (!ETHER_IS_ZERO(ea) && !ETHER_IS_MULTICAST(ea)) |
Determine if a given Ethernet address is a unicast address.
By definition, an address with all zeros is not a valid unicast address.
ea | Pointer to a character array containing the address. |
Definition at line 179 of file if_ether.h.
Referenced by NutNetIfSetup().
Ethernet protocol header type.
Ethernet ARP protocol type.
u_char* ether_aton | ( | CONST char * | str | ) |
Convert an ASCII string to a binary Ethernet address.
str | String to convert. |
Definition at line 60 of file ether_addr.c.
char* ether_ntoa | ( | CONST u_char * | mac | ) |
Convert a binary Ethernet address to an ASCII string.
mac | Address to convert. |
Definition at line 99 of file ether_addr.c.
Referenced by NutIpOutput().