diff options
Diffstat (limited to 'embassy-net/src/stack.rs')
| -rw-r--r-- | embassy-net/src/stack.rs | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/embassy-net/src/stack.rs b/embassy-net/src/stack.rs index d1dcb3bc9..8f63db971 100644 --- a/embassy-net/src/stack.rs +++ b/embassy-net/src/stack.rs | |||
| @@ -154,15 +154,18 @@ pub fn init(device: &'static mut dyn Device, configurator: &'static mut dyn Conf | |||
| 154 | routes: [None; 1], | 154 | routes: [None; 1], |
| 155 | }); | 155 | }); |
| 156 | 156 | ||
| 157 | let ethernet_addr = EthernetAddress([0x02, 0x02, 0x02, 0x02, 0x02, 0x02]); | ||
| 158 | |||
| 159 | let medium = device.capabilities().medium; | 157 | let medium = device.capabilities().medium; |
| 158 | let ethernet_addr = if medium == Medium::Ethernet { | ||
| 159 | device.ethernet_address() | ||
| 160 | } else { | ||
| 161 | [0, 0, 0, 0, 0, 0] | ||
| 162 | }; | ||
| 160 | 163 | ||
| 161 | let mut b = InterfaceBuilder::new(DeviceAdapter::new(device)); | 164 | let mut b = InterfaceBuilder::new(DeviceAdapter::new(device)); |
| 162 | b = b.ip_addrs(&mut res.addresses[..]); | 165 | b = b.ip_addrs(&mut res.addresses[..]); |
| 163 | 166 | ||
| 164 | if medium == Medium::Ethernet { | 167 | if medium == Medium::Ethernet { |
| 165 | b = b.ethernet_addr(ethernet_addr); | 168 | b = b.ethernet_addr(EthernetAddress(ethernet_addr)); |
| 166 | b = b.neighbor_cache(NeighborCache::new(&mut res.neighbor_cache[..])); | 169 | b = b.neighbor_cache(NeighborCache::new(&mut res.neighbor_cache[..])); |
| 167 | b = b.routes(Routes::new(&mut res.routes[..])); | 170 | b = b.routes(Routes::new(&mut res.routes[..])); |
| 168 | } | 171 | } |
