| 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[:] |
| + } |
| } |
| } |
| |