From 5ef86b45167bc6a9ce56b0a0cbda0dff7d38b0b3 Mon Sep 17 00:00:00 2001 From: Sebastien Bourdeauducq Date: Mon, 7 Aug 2017 11:18:19 +0800 Subject: [PATCH] detect invalid programmed MAC address --- firmware/src/main.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/firmware/src/main.rs b/firmware/src/main.rs index f8b757a..696d3d1 100644 --- a/firmware/src/main.rs +++ b/firmware/src/main.rs @@ -145,8 +145,11 @@ fn main() { |_| "#); - //let hardware_addr = EthernetAddress(board::get_mac_address()); - let hardware_addr = EthernetAddress([0x10, 0xE2, 0xD5, 0x22, 0x23, 0x12]); + let mut hardware_addr = EthernetAddress(board::get_mac_address()); + if hardware_addr.is_multicast() { + println!("programmed MAC address is invalid, using default"); + hardware_addr = EthernetAddress([0x10, 0xE2, 0xD5, 0x00, 0x03, 0x00]); + } let mut protocol_addrs = [IpAddress::v4(192, 168, 69, 1)]; println!("MAC {} IP {}", hardware_addr, protocol_addrs[0]); let mut arp_cache_entries: [_; 8] = Default::default();