From 01956891097b1f39b05162e8e19ad2a2bc4f0784 Mon Sep 17 00:00:00 2001 From: Song Gao Date: Sat, 30 Mar 2013 19:51:57 -0500 Subject: [PATCH] added some functions for TAP that detect whether a MAC address is a broadcast or IPv4 multicast address --- waterutil/tap.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/waterutil/tap.go b/waterutil/tap.go index d81da37..5ad78fd 100644 --- a/waterutil/tap.go +++ b/waterutil/tap.go @@ -38,3 +38,11 @@ func MACEthertype(macFrame []byte) Ethertype { func MACPayload(macFrame []byte) []byte { return macFrame[12+MACTagging(macFrame)+2:] } + +func IsBroadcast(addr net.HardwareAddr) bool { + return addr[0] == 0xff && addr[1] == 0xff && addr[2] == 0xff && addr[3] == 0xff && addr[4] == 0xff && addr[5] == 0xff +} + +func IsIPv4Multicast(addr net.HardwareAddr) bool { + return addr[0] == 0x01 && addr[1] == 0x00 && addr[2] == 0x5e +}