net: add ETHER_IS_IPV6_MULTICAST
This can be used to detect if an ethernet address is specifically an IPv6 multicast address, defined in accordance to RFC 2464. ETHER_IS_MULTICAST is still preferred in the general case. Reviewed by: ae Sponsored by: NetApp, Inc. Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D26611
This commit is contained in:
parent
4bfebc8d2c
commit
ced0f52457
@ -71,6 +71,8 @@ struct ether_addr {
|
|||||||
} __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)
|
||||||
|
Loading…
Reference in New Issue
Block a user