mdlayher / netlink

Package netlink provides low-level access to Linux netlink sockets (AF_NETLINK). MIT Licensed.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

netlink: unexpected extended acknowledgement error format for dump

mdlayher opened this issue · comments

See the test program in #182, and add:

	if err := c.SetOption(netlink.ExtendedAcknowledge, true); err != nil {
		log.Fatalf("failed to set extended acknowledge: %v", err)
	}

This format seems to omit the nlmsghdr we'd been parsing before and seemingly goes directly into TLVs.

[matt@routnerr-2:~]$ ./rtnltest 
([]netlink.Message) (len=1 cap=1) {
 (netlink.Message) {
  Header: (netlink.Header) {
   Length: (uint32) 72,
   Type: (netlink.HeaderType) done,
   Flags: (netlink.HeaderFlags) multi|0x200,
   Sequence: (uint32) 3170989594,
   PID: (uint32) 18027
  },
  Data: ([]uint8) (len=56 cap=4080) {
   00000000  ea ff ff ff 32 00 01 00  49 6e 76 61 6c 69 64 20  |....2...Invalid |
   00000010  76 61 6c 75 65 73 20 69  6e 20 68 65 61 64 65 72  |values in header|
   00000020  20 66 6f 72 20 46 49 42  20 64 75 6d 70 20 72 65  | for FIB dump re|
   00000030  71 75 65 73 74 00 00 00                           |quest...|
  }
 }
}
([]netlink.Message) (cap=1) {
}

Fixed in 1072e65.