20 lines
458 B
Go
20 lines
458 B
Go
package vl2
|
|
|
|
import (
|
|
"net"
|
|
|
|
"zeromesh/internal/identity"
|
|
)
|
|
|
|
// GenerateMAC creates a deterministic MAC address from network ID and node address.
|
|
func GenerateMAC(networkID uint32, nodeAddr identity.Address) net.HardwareAddr {
|
|
mac := make(net.HardwareAddr, 6)
|
|
mac[0] = 0x02 // locally administered, unicast
|
|
mac[1] = byte(networkID >> 16)
|
|
mac[2] = byte(networkID >> 8)
|
|
mac[3] = byte(networkID)
|
|
mac[4] = nodeAddr[3]
|
|
mac[5] = nodeAddr[4]
|
|
return mac
|
|
}
|