[netstack] Read link addresses correctly for virtual NICs
...by reading all link addresses from the LinkEndpoint interface, not
from ethernet device info.
Tested: CQ
Change-Id: I1306864bea41079f3623f4deab633414d119c11a
diff --git a/go/src/netstack/fuchsia_net_stack.go b/go/src/netstack/fuchsia_net_stack.go
index 7ce6521..7ba1ac6 100644
--- a/go/src/netstack/fuchsia_net_stack.go
+++ b/go/src/netstack/fuchsia_net_stack.go
@@ -54,7 +54,8 @@
var mac *ethernet.MacAddress
var path string
if eth := ifs.eth; eth != nil {
- mac = ð.Info.Mac
+ mac = ðernet.MacAddress{}
+ copy(mac.Octets[:], ifs.statsEP.LinkAddress())
path = eth.Path
}
diff --git a/go/src/netstack/netstack_service.go b/go/src/netstack/netstack_service.go
index 386dce5..867acf0 100644
--- a/go/src/netstack/netstack_service.go
+++ b/go/src/netstack/netstack_service.go
@@ -60,11 +60,6 @@
flags |= netstack.NetInterfaceFlagDhcp
}
- var mac []uint8
- if eth := ifs.eth; eth != nil {
- mac = eth.Info.Mac.Octets[:]
- }
-
outif := netstack.NetInterface{
Id: uint32(nicid),
Flags: flags,
@@ -73,7 +68,7 @@
Addr: fidlconv.ToNetIpAddress(ifs.nic.Addr),
Netmask: fidlconv.ToNetIpAddress(tcpip.Address(ifs.nic.Netmask)),
Broadaddr: fidlconv.ToNetIpAddress(tcpip.Address(broadaddr)),
- Hwaddr: mac,
+ Hwaddr: []uint8(ifs.statsEP.LinkAddress()[:]),
Ipv6addrs: toSubnets(ifs.nic.Ipv6addrs),
}