Changeset View
Changeset View
Standalone View
Standalone View
sys/net/ethernet.h
Show First 20 Lines • Show All 65 Lines • ▼ Show 20 Lines | |||||
/* | /* | ||||
* Structure of a 48-bit Ethernet address. | * Structure of a 48-bit Ethernet address. | ||||
*/ | */ | ||||
struct ether_addr { | struct ether_addr { | ||||
u_char octet[ETHER_ADDR_LEN]; | u_char octet[ETHER_ADDR_LEN]; | ||||
} __packed; | } __packed; | ||||
#define ETHER_IS_MULTICAST(addr) (*(addr) & 0x01) /* is address mcast/bcast? */ | #define ETHER_IS_MULTICAST(addr) (*(addr) & 0x01) /* is address mcast/bcast? */ | ||||
#define ETHER_IS_IPV6_MULTICAST(addr) \ | |||||
(((addr)[0] == 0x33) && ((addr)[1] == 0x33)) | |||||
#define ETHER_IS_BROADCAST(addr) \ | #define ETHER_IS_BROADCAST(addr) \ | ||||
(((addr)[0] & (addr)[1] & (addr)[2] & \ | (((addr)[0] & (addr)[1] & (addr)[2] & \ | ||||
(addr)[3] & (addr)[4] & (addr)[5]) == 0xff) | (addr)[3] & (addr)[4] & (addr)[5]) == 0xff) | ||||
#define ETHER_IS_ZERO(addr) \ | #define ETHER_IS_ZERO(addr) \ | ||||
(((addr)[0] | (addr)[1] | (addr)[2] | \ | (((addr)[0] | (addr)[1] | (addr)[2] | \ | ||||
(addr)[3] | (addr)[4] | (addr)[5]) == 0x00) | (addr)[3] | (addr)[4] | (addr)[5]) == 0x00) | ||||
/* | /* | ||||
▲ Show 20 Lines • Show All 391 Lines • Show Last 20 Lines |