diff options
author | mhorne <mhorne@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f> | 2020-10-30 13:32:58 +0000 |
---|---|---|
committer | mhorne <mhorne@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f> | 2020-10-30 13:32:58 +0000 |
commit | f732276de5f1ab4e2190957e7ab8f86c2e8303a3 (patch) | |
tree | ef7f037b6303e4e3e53bef2071584f6b748fad0e | |
parent | d2eb37e118ed4e2e6305c82f2bf72cf3d9ece353 (diff) | |
download | freebsd-f732276de5f1ab4e2190957e7ab8f86c2e8303a3.tar.gz freebsd-f732276de5f1ab4e2190957e7ab8f86c2e8303a3.tar.bz2 |
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
git-svn-id: http://svn.freebsd.org/base/head@367163 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
-rw-r--r-- | sys/net/ethernet.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/net/ethernet.h b/sys/net/ethernet.h index f9217f7cf21..38c0aa24927 100644 --- a/sys/net/ethernet.h +++ b/sys/net/ethernet.h @@ -71,6 +71,8 @@ struct ether_addr { } __packed; #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) \ (((addr)[0] & (addr)[1] & (addr)[2] & \ (addr)[3] & (addr)[4] & (addr)[5]) == 0xff) |