blob: cedc9b0661dbf775bfe40b1a47ba33d4e5925f7a [file] [log] [blame] [edit]
diff --git a/link.go b/link.go
index 8e6b09e..fcbecfc 100644
--- a/link.go
+++ b/link.go
@@ -50,7 +50,9 @@ type LinkAttrs struct {
GROMaxSize uint32
Vfs []VfInfo // virtual functions available on link
Group uint32
- Slave LinkSlave
+
+ PermHardwareAddr net.HardwareAddr
+ Slave LinkSlave
}
// LinkSlave represents a slave device.
diff --git a/link_linux.go b/link_linux.go
index cc80fb6..8681c75 100644
--- a/link_linux.go
+++ b/link_linux.go
@@ -2018,6 +2018,16 @@ func LinkDeserialize(hdr *unix.NlMsghdr, m []byte) (Link, error) {
base.NumRxQueues = int(native.Uint32(attr.Value[0:4]))
case unix.IFLA_GROUP:
base.Group = native.Uint32(attr.Value[0:4])
+ case unix.IFLA_PERM_ADDRESS:
+ var nonzero bool
+ for _, b := range attr.Value {
+ if b != 0 {
+ nonzero = true
+ }
+ }
+ if nonzero {
+ base.PermHardwareAddr = attr.Value[:]
+ }
}
}