Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ARP collector error: rtnetlink NeighMessage has a wrong attribute data length #2849

Closed
witekest opened this issue Nov 17, 2023 · 37 comments
Closed

Comments

@witekest
Copy link

Host operating system: output of uname -a

Linux 5.14.21-150500.55.36-default #1 SMP PREEMPT_DYNAMIC Tue Oct 31 08:37:43 UTC 2023 (e7a2e23) x86_64 x86_64 x86_64 GNU/Linux

openSUSE Leap 15.5

node_exporter version: output of node_exporter --version

node_exporter, version 1.7.0 (branch: master, revision: 78af952e638b5e0d00640fbdeefd096df4a51dc2)
  build user:       ~~~
  build date:       ~~~
  go version:       go1.21.4.1
  platform:         linux/amd64
  tags:             netgo osusergo static_build

node_exporter command line flags

defaults

node_exporter log output

ts=2023-11-17T14:15:00.958Z caller=collector.go:169 level=error msg="collector failed" name=arp duration_seconds=0.000270392 err="could not get ARP entries: rtnetlink NeighMessage has a wrong attribute data length"

Are you running node_exporter in Docker?

no

What did you do that produced an error?

upgraded from version 1.6.0

What did you expect to see?

node_arp_entries
node_scrape_collector_success{collector="arp"} 1

What did you see instead?

node_scrape_collector_success{collector="arp"} 0

@JohannesEbke
Copy link

JohannesEbke commented Nov 17, 2023

I can confirm this behaviour upgrading from 1.6.1 to 1.7.0 on nixos.

# uname -a
Linux foo 6.1.62 #1-NixOS SMP PREEMPT_DYNAMIC Wed Nov  8 13:11:05 UTC 2023 x86_64 GNU/Linux

Note: We reboot the server in question every day, and if the unit comes up during boot (systemd with After=network.target) it does NOT display this error (three days in a row so far). However, if the unit is restarted the error starts to appear immediately.

# /nix/store/84dvps57j3rd75ins1xm9rgvd7aidm11-node_exporter-1.7.0/bin/node_exporter --version
node_exporter, version 1.7.0 (branch: unknown, revision: v1.7.0)
  build user:       nix@nixpkgs
  build date:       unknown
  go version:       go1.21.3
  platform:         linux/amd64
  tags:             unknown

Systemd Unit:

[Unit]
After=network.target

[Service]
Environment="LOCALE_ARCHIVE=/nix/store/p5p2x0kqxjccdppsv4pzj7zjzm7796ah-glibc-locales-2.38-23/lib/locale/locale-archive"
Environment="PATH=/nix/store/vwkvhj69z4qqgmpa2lwm97kabf12p26r-coreutils-9.3/bin:/nix/store/qyzfglbrqb5ck0dgljplin2bvc4995w7-findutils-4.9.0/bin:/nix/store/p2r51wfg9m3ga7pp7avslpfhfa7w5y83-gnugrep-3.11/bin:/nix/store/g5p3ky90xa05ggg5szyb0pbbl2vp7n03-gnused-4.9/bin:/nix/store/vapnrxrw3b21c7ji61bmnbzl2cj1vl96-systemd-254.3/bin:/nix/store/vwkvhj69z4qqgmpa2lwm97kabf12p26r-coreutils-9.3/sbin:/nix/store/qyzfglbrqb5ck0dgljplin2bvc4995w7-findutils-4.9.0/sbin:/nix/store/p2r51wfg9m3ga7pp7avslpfhfa7w5y83-gnugrep-3.11/sbin:/nix/store/g5p3ky90xa05ggg5szyb0pbbl2vp7n03-gnused-4.9/sbin:/nix/store/vapnrxrw3b21c7ji61bmnbzl2cj1vl96-systemd-254.3/sbin"
Environment="TZDIR=/nix/store/cf0gxd6nyr6shkkn0ca82bap1x8r0f9x-tzdata-2023c/share/zoneinfo"
CapabilityBoundingSet=
DeviceAllow=
DynamicUser=false
ExecStart=/nix/store/84dvps57j3rd75ins1xm9rgvd7aidm11-node_exporter-1.7.0/bin/node_exporter \
  --collector.systemd --collector.tcpstat --collector.conntrack --collector.diskstats --collector.entropy --collector.filefd --collector.filesystem --collector.loadavg --collector.meminfo --collector.netdev --collector.netstat --collector.stat --collector.time --collector.timex --collector.vmstat --collector.logind --collector.interrupts --collector.ksmd --collector.processes \
   \
  --web.listen-address 127.0.0.1:9100 

Group=node-exporter
LockPersonality=true
MemoryDenyWriteExecute=true
NoNewPrivileges=true
PrivateDevices=true
PrivateTmp=true
ProtectClock=false
ProtectControlGroups=true
ProtectHome=true
ProtectHostname=true
ProtectKernelLogs=true
ProtectKernelModules=true
ProtectKernelTunables=true
ProtectSystem=strict
RemoveIPC=true
Restart=always
RestrictAddressFamilies=AF_UNIX
RestrictAddressFamilies=AF_NETLINK
RestrictAddressFamilies=AF_INET
RestrictAddressFamilies=AF_INET6
RestrictNamespaces=true
RestrictRealtime=true
RestrictSUIDSGID=true
RuntimeDirectory=prometheus-node-exporter
SystemCallArchitectures=native
UMask=0077
User=node-exporter
WorkingDirectory=/tmp

@dswarbrick
Copy link
Contributor

The "rtnetlink NeighMessage has a wrong attribute data length" error comes from the github.com/jsimonetti/rtnetlink package that the collector uses to fetch the ARP cache via rtnetlink.

    // errInvalidNeighMessageAttr is returned when neigh attributes are malformed.
    errInvalidNeighMessageAttr = errors.New("rtnetlink NeighMessage has a wrong attribute data length")

There are only two places in that code which can produce such an error:

func (a *NeighAttributes) decode(ad *netlink.AttributeDecoder) error {
    for ad.Next() {
        switch ad.Type() {
        case unix.NDA_UNSPEC:
            // unused attribute
        case unix.NDA_DST:
            l := len(ad.Bytes())
            if l != 4 && l != 16 {
                return errInvalidNeighMessageAttr
            }
            a.Address = ad.Bytes()
        case unix.NDA_LLADDR:
            // Allow IEEE 802 MAC-48, EUI-48, EUI-64, or 20-octet
            // IP over InfiniBand link-layer addresses
            l := len(ad.Bytes())
            if l != 6 && l != 8 && l != 20 {
                return errInvalidNeighMessageAttr
            }
            a.LLAddress = ad.Bytes()
...

This implies that you have neighbor cache entries of type NDA_DST or NDA_LLADR, which are an unexpected length.

Are you able to paste the contents of your neighbor cache, using the command ip neigh show?

@jpds
Copy link
Contributor

jpds commented Nov 23, 2023

Are you able to paste the contents of your neighbor cache, using the command ip neigh show?

$ ip neigh show
172.16.2.202 dev br0 lladdr 0a:ca:26:81:2d:b4 REACHABLE
172.16.2.1 dev br0 lladdr 32:65:51:05:a0:fb REACHABLE
XXXX:XXXX:XXXX:XXXX:601e:fca2:92b7:6a7e dev br0 lladdr 32:65:51:05:a0:fb router REACHABLE
XXXX:XXXX:XXXX:XXXX:24:deff:fead:beea dev br0 lladdr 02:24:de:ad:be:ea REACHABLE
fe80::8ca:26ff:fe81:2db4 dev br0 lladdr 0a:ca:26:81:2d:b4 STALE
XXXX:XXXX:XXXX:XXXX:b7b1:7032:3f02:42c0 dev br0 lladdr 0a:ca:26:81:2d:b4 STALE
XXXX:XXXX:XXXX:XXXX::b:1 dev br0 lladdr 0a:ca:26:81:2d:b4 STALE
fe80::3065:51ff:fe05:a0fb dev br0 lladdr 32:65:51:05:a0:fb router REACHABLE

@dswarbrick
Copy link
Contributor

dswarbrick commented Nov 23, 2023

@jpds Thanks, that doesn't look anything unusual.
I'm not able to reproduce this issue, and sorta scratching my head about what could lead to a NDA_DST / NDS_LLADR entry with a length not supported by jsimonetti/rtnetlink. Can you perhaps elaborate a bit on your network setup?

This isn't really a bug in node_exporter per se, and probably needs some input from the rtnetlink package authors (@jsimonetti help...?)

As a workaround, you can revert to the /proc/net/arp parsing method (used by node_exporter < 1.7.0) with --no-collector.arp.netlink, but beware that it does not support IPoIB environments (which was the main reason to migrate to using rtnetlink).

@jpds
Copy link
Contributor

jpds commented Nov 23, 2023

Can you perhaps elaborate a bit on your network setup?

I guess the only thing "special" about my particular setup is that I'm using networkd on NixOS.

With the workaround flag, the collector succeeds:

node_scrape_collector_success{collector="arp"} 1

@jsimonetti
Copy link

$ ip neigh show
172.16.2.202 dev br0 lladdr 0a:ca:26:81:2d:b4 REACHABLE
172.16.2.1 dev br0 lladdr 32:65:51:05:a0:fb REACHABLE
XXXX:XXXX:XXXX:XXXX:601e:fca2:92b7:6a7e dev br0 lladdr 32:65:51:05:a0:fb router REACHABLE
XXXX:XXXX:XXXX:XXXX:24:deff:fead:beea dev br0 lladdr 02:24:de:ad:be:ea REACHABLE
fe80::8ca:26ff:fe81:2db4 dev br0 lladdr 0a:ca:26:81:2d:b4 STALE
XXXX:XXXX:XXXX:XXXX:b7b1:7032:3f02:42c0 dev br0 lladdr 0a:ca:26:81:2d:b4 STALE
XXXX:XXXX:XXXX:XXXX::b:1 dev br0 lladdr 0a:ca:26:81:2d:b4 STALE
fe80::3065:51ff:fe05:a0fb dev br0 lladdr 32:65:51:05:a0:fb router REACHABLE

These neighbors' LLADDR are clearly each 6 bytes, and the DST is either 4 or 16 byte, so should not cause this issue. I wonder if iproute2 fiters out some 'unknown' entries and just silenty drop it.

I'd be curious to see what is returned if those size constraints are loosenend. Would that be something you could test in your setup? I can see if I can easily send you a nix derivation that includes a patch.

@jsimonetti
Copy link

Additionally, the output of strace -ff -erecvmsg ip neigh show might shed some light aswel.

@jpds
Copy link
Contributor

jpds commented Nov 24, 2023

Would that be something you could test in your setup?

Sure.

strace -ff -erecvmsg ip neigh show

$ strace -ff -erecvmsg ip neigh show
recvmsg(3, {msg_name={sa_family=AF_NETLINK, nl_pid=0, nl_groups=00000000}, msg_namelen=12, msg_iov=[{iov_base=NULL, iov_len=0}], msg_iovlen=1, msg_controllen=0, msg_flags=MSG_TRUNC}, MSG_PEEK|MSG_TRUNC) = 2840
recvmsg(3, {msg_name={sa_family=AF_NETLINK, nl_pid=0, nl_groups=00000000}, msg_namelen=12, msg_iov=[{iov_base=[[{nlmsg_len=1392, nlmsg_type=RTM_NEWLINK, nlmsg_flags=NLM_F_MULTI, nlmsg_seq=1700842578, nlmsg_pid=93199}, {ifi_family=AF_UNSPEC, ifi_type=ARPHRD_LOOPBACK, ifi_index=if_nametoindex("lo"), ifi_flags=IFF_UP|IFF_LOOPBACK|IFF_RUNNING|IFF_LOWER_UP, ifi_change=0}, [[{nla_len=7, nla_type=IFLA_IFNAME}, "lo"], [{nla_len=8, nla_type=IFLA_TXQLEN}, 1000], [{nla_len=5, nla_type=IFLA_OPERSTATE}, 0], [{nla_len=5, nla_type=IFLA_LINKMODE}, 0], [{nla_len=8, nla_type=IFLA_MTU}, 65536], [{nla_len=8, nla_type=IFLA_MIN_MTU}, 0], [{nla_len=8, nla_type=IFLA_MAX_MTU}, 0], [{nla_len=8, nla_type=IFLA_GROUP}, 0], [{nla_len=8, nla_type=IFLA_PROMISCUITY}, 0], [{nla_len=8, nla_type=IFLA_ALLMULTI}, 0], [{nla_len=8, nla_type=IFLA_NUM_TX_QUEUES}, 1], [{nla_len=8, nla_type=IFLA_GSO_MAX_SEGS}, 65535], [{nla_len=8, nla_type=IFLA_GSO_MAX_SIZE}, 65536], [{nla_len=8, nla_type=IFLA_GRO_MAX_SIZE}, 65536], [{nla_len=8, nla_type=IFLA_TSO_MAX_SIZE}, 524280], [{nla_len=8, nla_type=IFLA_TSO_MAX_SEGS}, 65535], [{nla_len=8, nla_type=IFLA_NUM_RX_QUEUES}, 1], [{nla_len=5, nla_type=IFLA_CARRIER}, 1], [{nla_len=12, nla_type=IFLA_QDISC}, "noqueue"], [{nla_len=8, nla_type=IFLA_CARRIER_CHANGES}, 0], [{nla_len=8, nla_type=IFLA_CARRIER_UP_COUNT}, 0], [{nla_len=8, nla_type=IFLA_CARRIER_DOWN_COUNT}, 0], [{nla_len=5, nla_type=IFLA_PROTO_DOWN}, 0], [{nla_len=36, nla_type=IFLA_MAP}, {mem_start=0, mem_end=0, base_addr=0, irq=0, dma=0, port=0}], [{nla_len=10, nla_type=IFLA_ADDRESS}, 00:00:00:00:00:00], [{nla_len=10, nla_type=IFLA_BROADCAST}, 00:00:00:00:00:00], [{nla_len=204, nla_type=IFLA_STATS64}, {rx_packets=344, tx_packets=344, rx_bytes=173174, tx_bytes=173174, rx_errors=0, tx_errors=0, rx_dropped=0, tx_dropped=0, multicast=0, collisions=0, rx_length_errors=0, rx_over_errors=0, rx_crc_errors=0, rx_frame_errors=0, rx_fifo_errors=0, rx_missed_errors=0, tx_aborted_errors=0, tx_carrier_errors=0, tx_fifo_errors=0, tx_heartbeat_errors=0, tx_window_errors=0, rx_compressed=0, tx_compressed=0, rx_nohandler=0, rx_otherhost_dropped=0}], [{nla_len=100, nla_type=IFLA_STATS}, {rx_packets=344, tx_packets=344, rx_bytes=173174, tx_bytes=173174, rx_errors=0, tx_errors=0, rx_dropped=0, tx_dropped=0, multicast=0, collisions=0, rx_length_errors=0, rx_over_errors=0, rx_crc_errors=0, rx_frame_errors=0, rx_fifo_errors=0, rx_missed_errors=0, tx_aborted_errors=0, tx_carrier_errors=0, tx_fifo_errors=0, tx_heartbeat_errors=0, tx_window_errors=0, rx_compressed=0, tx_compressed=0, rx_nohandler=0}], [{nla_len=12, nla_type=IFLA_XDP}, [{nla_len=5, nla_type=IFLA_XDP_ATTACHED}, XDP_ATTACHED_NONE]], [{nla_len=796, nla_type=IFLA_AF_SPEC}, [[{nla_len=140, nla_type=AF_INET}, [{nla_len=136, nla_type=IFLA_INET_CONF}, [[IPV4_DEVCONF_FORWARDING-1]=0, [IPV4_DEVCONF_MC_FORWARDING-1]=0, [IPV4_DEVCONF_PROXY_ARP-1]=0, [IPV4_DEVCONF_ACCEPT_REDIRECTS-1]=1, [IPV4_DEVCONF_SECURE_REDIRECTS-1]=1, [IPV4_DEVCONF_SEND_REDIRECTS-1]=1, [IPV4_DEVCONF_SHARED_MEDIA-1]=1, [IPV4_DEVCONF_RP_FILTER-1]=2, [IPV4_DEVCONF_ACCEPT_SOURCE_ROUTE-1]=0, [IPV4_DEVCONF_BOOTP_RELAY-1]=0, [IPV4_DEVCONF_LOG_MARTIANS-1]=0, [IPV4_DEVCONF_TAG-1]=0, [IPV4_DEVCONF_ARPFILTER-1]=0, [IPV4_DEVCONF_MEDIUM_ID-1]=0, [IPV4_DEVCONF_NOXFRM-1]=1, [IPV4_DEVCONF_NOPOLICY-1]=1, [IPV4_DEVCONF_FORCE_IGMP_VERSION-1]=0, [IPV4_DEVCONF_ARP_ANNOUNCE-1]=0, [IPV4_DEVCONF_ARP_IGNORE-1]=0, [IPV4_DEVCONF_PROMOTE_SECONDARIES-1]=1, [IPV4_DEVCONF_ARP_ACCEPT-1]=0, [IPV4_DEVCONF_ARP_NOTIFY-1]=0, [IPV4_DEVCONF_ACCEPT_LOCAL-1]=0, [IPV4_DEVCONF_SRC_VMARK-1]=0, [IPV4_DEVCONF_PROXY_ARP_PVLAN-1]=0, [IPV4_DEVCONF_ROUTE_LOCALNET-1]=0, [IPV4_DEVCONF_IGMPV2_UNSOLICITED_REPORT_INTERVAL-1]=10000, [IPV4_DEVCONF_IGMPV3_UNSOLICITED_REPORT_INTERVAL-1]=1000, [IPV4_DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN-1]=0, [IPV4_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST-1]=0, [IPV4_DEVCONF_DROP_GRATUITOUS_ARP-1]=0, [IPV4_DEVCONF_BC_FORWARDING-1]=0, ...]]], [{nla_len=652, nla_type=AF_INET6}, [[{nla_len=8, nla_type=IFLA_INET6_FLAGS}, IF_READY], [{nla_len=20, nla_type=IFLA_INET6_CACHEINFO}, {max_reasm_len=65535, tstamp=78, reachable_time=37100, retrans_time=1000}], [{nla_len=240, nla_type=IFLA_INET6_CONF}, [[DEVCONF_FORWARDING]=0, [DEVCONF_HOPLIMIT]=64, [DEVCONF_MTU6]=65536, [DEVCONF_ACCEPT_RA]=1, [DEVCONF_ACCEPT_REDIRECTS]=1, [DEVCONF_AUTOCONF]=1, [DEVCONF_DAD_TRANSMITS]=1, [DEVCONF_RTR_SOLICITS]=-1, [DEVCONF_RTR_SOLICIT_INTERVAL]=4000, [DEVCONF_RTR_SOLICIT_DELAY]=1000, [DEVCONF_USE_TEMPADDR]=2, [DEVCONF_TEMP_VALID_LFT]=604800, [DEVCONF_TEMP_PREFERED_LFT]=86400, [DEVCONF_REGEN_MAX_RETRY]=3, [DEVCONF_MAX_DESYNC_FACTOR]=600, [DEVCONF_MAX_ADDRESSES]=16, [DEVCONF_FORCE_MLD_VERSION]=0, [DEVCONF_ACCEPT_RA_DEFRTR]=1, [DEVCONF_ACCEPT_RA_PINFO]=1, [DEVCONF_ACCEPT_RA_RTR_PREF]=1, [DEVCONF_RTR_PROBE_INTERVAL]=60000, [DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN]=0, [DEVCONF_PROXY_NDP]=0, [DEVCONF_OPTIMISTIC_DAD]=0, [DEVCONF_ACCEPT_SOURCE_ROUTE]=0, [DEVCONF_MC_FORWARDING]=0, [DEVCONF_DISABLE_IPV6]=0, [DEVCONF_ACCEPT_DAD]=-1, [DEVCONF_FORCE_TLLAO]=0, [DEVCONF_NDISC_NOTIFY]=0, [DEVCONF_MLDV1_UNSOLICITED_REPORT_INTERVAL]=10000, [DEVCONF_MLDV2_UNSOLICITED_REPORT_INTERVAL]=1000, ...]], [{nla_len=300, nla_type=IFLA_INET6_STATS}, [[IPSTATS_MIB_NUM]=37, [IPSTATS_MIB_INPKTS]=84, [IPSTATS_MIB_INOCTETS]=158368, [IPSTATS_MIB_INDELIVERS]=84, [IPSTATS_MIB_OUTFORWDATAGRAMS]=0, [IPSTATS_MIB_OUTPKTS]=84, [IPSTATS_MIB_OUTOCTETS]=158368, [IPSTATS_MIB_INHDRERRORS]=0, [IPSTATS_MIB_INTOOBIGERRORS]=0, [IPSTATS_MIB_INNOROUTES]=0, [IPSTATS_MIB_INADDRERRORS]=0, [IPSTATS_MIB_INUNKNOWNPROTOS]=0, [IPSTATS_MIB_INTRUNCATEDPKTS]=0, [IPSTATS_MIB_INDISCARDS]=0, [IPSTATS_MIB_OUTDISCARDS]=0, [IPSTATS_MIB_OUTNOROUTES]=0, [IPSTATS_MIB_REASMTIMEOUT]=0, [IPSTATS_MIB_REASMREQDS]=0, [IPSTATS_MIB_REASMOKS]=0, [IPSTATS_MIB_REASMFAILS]=0, [IPSTATS_MIB_FRAGOKS]=0, [IPSTATS_MIB_FRAGFAILS]=0, [IPSTATS_MIB_FRAGCREATES]=0, [IPSTATS_MIB_INMCASTPKTS]=0, [IPSTATS_MIB_OUTMCASTPKTS]=0, [IPSTATS_MIB_INBCASTPKTS]=0, [IPSTATS_MIB_OUTBCASTPKTS]=0, [IPSTATS_MIB_INMCASTOCTETS]=0, [IPSTATS_MIB_OUTMCASTOCTETS]=0, [IPSTATS_MIB_INBCASTOCTETS]=0, [IPSTATS_MIB_OUTBCASTOCTETS]=0, [IPSTATS_MIB_CSUMERRORS]=0, ...]], [{nla_len=52, nla_type=IFLA_INET6_ICMP6STATS}, [[ICMP6_MIB_NUM]=6, [ICMP6_MIB_INMSGS]=0, [ICMP6_MIB_INERRORS]=0, [ICMP6_MIB_OUTMSGS]=0, [ICMP6_MIB_OUTERRORS]=0, [ICMP6_MIB_CSUMERRORS]=0]], [{nla_len=20, nla_type=IFLA_INET6_TOKEN}, inet_pton(AF_INET6, "::")], [{nla_len=5, nla_type=IFLA_INET6_ADDR_GEN_MODE}, IN6_ADDR_GEN_MODE_EUI64]]]]]]], [{nlmsg_len=1448, nlmsg_type=RTM_NEWLINK, nlmsg_flags=NLM_F_MULTI, nlmsg_seq=1700842578, nlmsg_pid=93199}, {ifi_family=AF_UNSPEC, ifi_type=ARPHRD_ETHER, ifi_index=if_nametoindex("enp1s0"), ifi_flags=IFF_BROADCAST|IFF_MULTICAST, ifi_change=0}, [[{nla_len=11, nla_type=IFLA_IFNAME}, "enp1s0"], [{nla_len=8, nla_type=IFLA_TXQLEN}, 1000], [{nla_len=5, nla_type=IFLA_OPERSTATE}, 2], [{nla_len=5, nla_type=IFLA_LINKMODE}, 0], [{nla_len=8, nla_type=IFLA_MTU}, 1500], [{nla_len=8, nla_type=IFLA_MIN_MTU}, 68], [{nla_len=8, nla_type=IFLA_MAX_MTU}, 9216], [{nla_len=8, nla_type=IFLA_GROUP}, 0], [{nla_len=8, nla_type=IFLA_PROMISCUITY}, 0], [{nla_len=8, nla_type=IFLA_ALLMULTI}, 0], [{nla_len=8, nla_type=IFLA_NUM_TX_QUEUES}, 8], [{nla_len=8, nla_type=IFLA_GSO_MAX_SEGS}, 65535], [{nla_len=8, nla_type=IFLA_GSO_MAX_SIZE}, 65536], [{nla_len=8, nla_type=IFLA_GRO_MAX_SIZE}, 65536], [{nla_len=8, nla_type=IFLA_TSO_MAX_SIZE}, 65536], [{nla_len=8, nla_type=IFLA_TSO_MAX_SEGS}, 65535], [{nla_len=8, nla_type=IFLA_NUM_RX_QUEUES}, 8], [{nla_len=5, nla_type=IFLA_CARRIER}, 0], [{nla_len=9, nla_type=IFLA_QDISC}, "noop"], [{nla_len=8, nla_type=IFLA_CARRIER_CHANGES}, 1], [{nla_len=8, nla_type=IFLA_CARRIER_UP_COUNT}, 0], [{nla_len=8, nla_type=IFLA_CARRIER_DOWN_COUNT}, 1], [{nla_len=5, nla_type=IFLA_PROTO_DOWN}, 0], [{nla_len=36, nla_type=IFLA_MAP}, {mem_start=0xc1100000, mem_end=0xc111ffff, base_addr=0, irq=0, dma=0, port=0}], [{nla_len=10, nla_type=IFLA_ADDRESS}, 00:01:c0:27:19:fa], [{nla_len=10, nla_type=IFLA_BROADCAST}, ff:ff:ff:ff:ff:ff], [{nla_len=204, nla_type=IFLA_STATS64}, {rx_packets=0, tx_packets=0, rx_bytes=0, tx_bytes=0, rx_errors=0, tx_errors=0, rx_dropped=0, tx_dropped=0, multicast=0, collisions=0, rx_length_errors=0, rx_over_errors=0, rx_crc_errors=0, rx_frame_errors=0, rx_fifo_errors=0, rx_missed_errors=0, tx_aborted_errors=0, tx_carrier_errors=0, tx_fifo_errors=0, tx_heartbeat_errors=0, tx_window_errors=0, rx_compressed=0, tx_compressed=0, rx_nohandler=0, rx_otherhost_dropped=0}], [{nla_len=100, nla_type=IFLA_STATS}, {rx_packets=0, tx_packets=0, rx_bytes=0, tx_bytes=0, rx_errors=0, tx_errors=0, rx_dropped=0, tx_dropped=0, multicast=0, collisions=0, rx_length_errors=0, rx_over_errors=0, rx_crc_errors=0, rx_frame_errors=0, rx_fifo_errors=0, rx_missed_errors=0, tx_aborted_errors=0, tx_carrier_errors=0, tx_fifo_errors=0, tx_heartbeat_errors=0, tx_window_errors=0, rx_compressed=0, tx_compressed=0, rx_nohandler=0}], [{nla_len=8, nla_type=IFLA_NUM_VF}, 0], {nla_len=4, nla_type=IFLA_VFINFO_LIST}, [{nla_len=12, nla_type=IFLA_XDP}, [{nla_len=5, nla_type=IFLA_XDP_ATTACHED}, XDP_ATTACHED_NONE]], [{nla_len=10, nla_type=IFLA_PERM_ADDRESS}, 00:01:c0:27:19:fa], ...]]], iov_len=32768}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 2840
recvmsg(3, {msg_name={sa_family=AF_NETLINK, nl_pid=0, nl_groups=00000000}, msg_namelen=12, msg_iov=[{iov_base=NULL, iov_len=0}], msg_iovlen=1, msg_controllen=0, msg_flags=MSG_TRUNC}, MSG_PEEK|MSG_TRUNC) = 3588
recvmsg(3, {msg_name={sa_family=AF_NETLINK, nl_pid=0, nl_groups=00000000}, msg_namelen=12, msg_iov=[{iov_base=[[{nlmsg_len=1788, nlmsg_type=RTM_NEWLINK, nlmsg_flags=NLM_F_MULTI, nlmsg_seq=1700842578, nlmsg_pid=93199}, {ifi_family=AF_UNSPEC, ifi_type=ARPHRD_ETHER, ifi_index=if_nametoindex("eno1"), ifi_flags=IFF_UP|IFF_BROADCAST|IFF_RUNNING|IFF_MULTICAST|IFF_LOWER_UP, ifi_change=0}, [[{nla_len=9, nla_type=IFLA_IFNAME}, "eno1"], [{nla_len=8, nla_type=IFLA_TXQLEN}, 1000], [{nla_len=5, nla_type=IFLA_OPERSTATE}, 6], [{nla_len=5, nla_type=IFLA_LINKMODE}, 0], [{nla_len=8, nla_type=IFLA_MTU}, 1500], [{nla_len=8, nla_type=IFLA_MIN_MTU}, 68], [{nla_len=8, nla_type=IFLA_MAX_MTU}, 9216], [{nla_len=8, nla_type=IFLA_GROUP}, 0], [{nla_len=8, nla_type=IFLA_PROMISCUITY}, 1], [{nla_len=8, nla_type=IFLA_ALLMULTI}, 1], [{nla_len=8, nla_type=IFLA_NUM_TX_QUEUES}, 8], [{nla_len=8, nla_type=IFLA_GSO_MAX_SEGS}, 65535], [{nla_len=8, nla_type=IFLA_GSO_MAX_SIZE}, 65536], [{nla_len=8, nla_type=IFLA_GRO_MAX_SIZE}, 65536], [{nla_len=8, nla_type=IFLA_TSO_MAX_SIZE}, 65536], [{nla_len=8, nla_type=IFLA_TSO_MAX_SEGS}, 65535], [{nla_len=8, nla_type=IFLA_NUM_RX_QUEUES}, 8], [{nla_len=8, nla_type=IFLA_MASTER}, 6], [{nla_len=5, nla_type=IFLA_CARRIER}, 1], [{nla_len=7, nla_type=IFLA_QDISC}, "mq"], [{nla_len=8, nla_type=IFLA_CARRIER_CHANGES}, 2], [{nla_len=8, nla_type=IFLA_CARRIER_UP_COUNT}, 1], [{nla_len=8, nla_type=IFLA_CARRIER_DOWN_COUNT}, 1], [{nla_len=5, nla_type=IFLA_PROTO_DOWN}, 0], [{nla_len=36, nla_type=IFLA_MAP}, {mem_start=0xc1000000, mem_end=0xc101ffff, base_addr=0, irq=0, dma=0, port=0}], [{nla_len=10, nla_type=IFLA_ADDRESS}, 00:01:c0:27:19:fd], [{nla_len=10, nla_type=IFLA_BROADCAST}, ff:ff:ff:ff:ff:ff], [{nla_len=204, nla_type=IFLA_STATS64}, {rx_packets=2680972, tx_packets=3191314, rx_bytes=1403921955, tx_bytes=2988154161, rx_errors=0, tx_errors=0, rx_dropped=0, tx_dropped=0, multicast=58963, collisions=0, rx_length_errors=0, rx_over_errors=0, rx_crc_errors=0, rx_frame_errors=0, rx_fifo_errors=0, rx_missed_errors=0, tx_aborted_errors=0, tx_carrier_errors=0, tx_fifo_errors=0, tx_heartbeat_errors=0, tx_window_errors=0, rx_compressed=0, tx_compressed=0, rx_nohandler=0, rx_otherhost_dropped=0}], [{nla_len=100, nla_type=IFLA_STATS}, {rx_packets=2680972, tx_packets=3191314, rx_bytes=1403921955, tx_bytes=2988154161, rx_errors=0, tx_errors=0, rx_dropped=0, tx_dropped=0, multicast=58963, collisions=0, rx_length_errors=0, rx_over_errors=0, rx_crc_errors=0, rx_frame_errors=0, rx_fifo_errors=0, rx_missed_errors=0, tx_aborted_errors=0, tx_carrier_errors=0, tx_fifo_errors=0, tx_heartbeat_errors=0, tx_window_errors=0, rx_compressed=0, tx_compressed=0, rx_nohandler=0}], [{nla_len=8, nla_type=IFLA_NUM_VF}, 0], {nla_len=4, nla_type=IFLA_VFINFO_LIST}, [{nla_len=12, nla_type=IFLA_XDP}, [{nla_len=5, nla_type=IFLA_XDP_ATTACHED}, XDP_ATTACHED_NONE]], ...]], [{nlmsg_len=1800, nlmsg_type=RTM_NEWLINK, nlmsg_flags=NLM_F_MULTI, nlmsg_seq=1700842578, nlmsg_pid=93199}, {ifi_family=AF_UNSPEC, ifi_type=ARPHRD_ETHER, ifi_index=if_nametoindex("vm-caddy"), ifi_flags=IFF_UP|IFF_BROADCAST|IFF_RUNNING|IFF_MULTICAST|IFF_LOWER_UP, ifi_change=0}, [[{nla_len=13, nla_type=IFLA_IFNAME}, "vm-caddy"], [{nla_len=8, nla_type=IFLA_TXQLEN}, 1000], [{nla_len=5, nla_type=IFLA_OPERSTATE}, 6], [{nla_len=5, nla_type=IFLA_LINKMODE}, 0], [{nla_len=8, nla_type=IFLA_MTU}, 1500], [{nla_len=8, nla_type=IFLA_MIN_MTU}, 68], [{nla_len=8, nla_type=IFLA_MAX_MTU}, 65521], [{nla_len=8, nla_type=IFLA_GROUP}, 0], [{nla_len=8, nla_type=IFLA_PROMISCUITY}, 1], [{nla_len=8, nla_type=IFLA_ALLMULTI}, 1], [{nla_len=8, nla_type=IFLA_NUM_TX_QUEUES}, 256], [{nla_len=8, nla_type=IFLA_GSO_MAX_SEGS}, 65535], [{nla_len=8, nla_type=IFLA_GSO_MAX_SIZE}, 65536], [{nla_len=8, nla_type=IFLA_GRO_MAX_SIZE}, 65536], [{nla_len=8, nla_type=IFLA_TSO_MAX_SIZE}, 65536], [{nla_len=8, nla_type=IFLA_TSO_MAX_SEGS}, 65535], [{nla_len=8, nla_type=IFLA_NUM_RX_QUEUES}, 256], [{nla_len=8, nla_type=IFLA_MASTER}, 6], [{nla_len=5, nla_type=IFLA_CARRIER}, 1], [{nla_len=7, nla_type=IFLA_QDISC}, "mq"], [{nla_len=8, nla_type=IFLA_CARRIER_CHANGES}, 2], [{nla_len=8, nla_type=IFLA_CARRIER_UP_COUNT}, 1], [{nla_len=8, nla_type=IFLA_CARRIER_DOWN_COUNT}, 1], [{nla_len=5, nla_type=IFLA_PROTO_DOWN}, 0], [{nla_len=36, nla_type=IFLA_MAP}, {mem_start=0, mem_end=0, base_addr=0, irq=0, dma=0, port=0}], [{nla_len=10, nla_type=IFLA_ADDRESS}, fe:4c:e1:2a:70:a7], [{nla_len=10, nla_type=IFLA_BROADCAST}, ff:ff:ff:ff:ff:ff], [{nla_len=204, nla_type=IFLA_STATS64}, {rx_packets=1849, tx_packets=162155, rx_bytes=247301, tx_bytes=33301364, rx_errors=0, tx_errors=0, rx_dropped=0, tx_dropped=0, multicast=0, collisions=0, rx_length_errors=0, rx_over_errors=0, rx_crc_errors=0, rx_frame_errors=0, rx_fifo_errors=0, rx_missed_errors=0, tx_aborted_errors=0, tx_carrier_errors=0, tx_fifo_errors=0, tx_heartbeat_errors=0, tx_window_errors=0, rx_compressed=0, tx_compressed=0, rx_nohandler=0, rx_otherhost_dropped=0}], [{nla_len=100, nla_type=IFLA_STATS}, {rx_packets=1849, tx_packets=162155, rx_bytes=247301, tx_bytes=33301364, rx_errors=0, tx_errors=0, rx_dropped=0, tx_dropped=0, multicast=0, collisions=0, rx_length_errors=0, rx_over_errors=0, rx_crc_errors=0, rx_frame_errors=0, rx_fifo_errors=0, rx_missed_errors=0, tx_aborted_errors=0, tx_carrier_errors=0, tx_fifo_errors=0, tx_heartbeat_errors=0, tx_window_errors=0, rx_compressed=0, tx_compressed=0, rx_nohandler=0}], [{nla_len=12, nla_type=IFLA_XDP}, [{nla_len=5, nla_type=IFLA_XDP_ATTACHED}, XDP_ATTACHED_NONE]], [{nla_len=396, nla_type=IFLA_LINKINFO}, [[{nla_len=8, nla_type=IFLA_INFO_KIND}, "tun"], [{nla_len=68, nla_type=IFLA_INFO_DATA}, [[{nla_len=5, nla_type=IFLA_TUN_TYPE}, IFF_TAP], [{nla_len=8, nla_type=IFLA_TUN_OWNER}, 994], [{nla_len=5, nla_type=IFLA_TUN_PI}, 0], [{nla_len=5, nla_type=IFLA_TUN_VNET_HDR}, 1], [{nla_len=5, nla_type=IFLA_TUN_PERSIST}, 1], [{nla_len=5, nla_type=IFLA_TUN_MULTI_QUEUE}, 1], [{nla_len=8, nla_type=IFLA_TUN_NUM_QUEUES}, 4], [{nla_len=8, nla_type=IFLA_TUN_NUM_DISABLED_QUEUES}, 0]]], [{nla_len=11, nla_type=IFLA_INFO_SLAVE_KIND}, "bridge"], [{nla_len=304, nla_type=IFLA_INFO_SLAVE_DATA}, [[{nla_len=5, nla_type=IFLA_BRPORT_STATE}, 3], [{nla_len=6, nla_type=IFLA_BRPORT_PRIORITY}, 32], [{nla_len=8, nla_type=IFLA_BRPORT_COST}, 100], [{nla_len=5, nla_type=IFLA_BRPORT_MODE}, 0], [{nla_len=5, nla_type=IFLA_BRPORT_GUARD}, 0], [{nla_len=5, nla_type=IFLA_BRPORT_PROTECT}, 0], [{nla_len=5, nla_type=IFLA_BRPORT_FAST_LEAVE}, 0], [{nla_len=5, nla_type=IFLA_BRPORT_MCAST_TO_UCAST}, 0], [{nla_len=5, nla_type=IFLA_BRPORT_LEARNING}, 1], [{nla_len=5, nla_type=IFLA_BRPORT_UNICAST_FLOOD}, 1], [{nla_len=5, nla_type=IFLA_BRPORT_MCAST_FLOOD}, 1], [{nla_len=5, nla_type=IFLA_BRPORT_BCAST_FLOOD}, 1], [{nla_len=5, nla_type=IFLA_BRPORT_PROXYARP}, 0], [{nla_len=5, nla_type=IFLA_BRPORT_PROXYARP_WIFI}, 0], [{nla_len=12, nla_type=IFLA_BRPORT_ROOT_ID}, {prio=[128, 0], addr=b2:3c:21:31:c1:2b}], [{nla_len=12, nla_type=IFLA_BRPORT_BRIDGE_ID}, {prio=[128, 0], addr=b2:3c:21:31:c1:2b}], [{nla_len=6, nla_type=IFLA_BRPORT_DESIGNATED_PORT}, 32770], [{nla_len=6, nla_type=IFLA_BRPORT_DESIGNATED_COST}, 0], [{nla_len=6, nla_type=IFLA_BRPORT_ID}, 32770], [{nla_len=6, nla_type=IFLA_BRPORT_NO}, 2], [{nla_len=5, nla_type=IFLA_BRPORT_TOPOLOGY_CHANGE_ACK}, 0], [{nla_len=5, nla_type=IFLA_BRPORT_CONFIG_PENDING}, 0], [{nla_len=5, nla_type=IFLA_BRPORT_VLAN_TUNNEL}, 0], [{nla_len=6, nla_type=IFLA_BRPORT_GROUP_FWD_MASK}, 0], [{nla_len=5, nla_type=IFLA_BRPORT_NEIGH_SUPPRESS}, 0], [{nla_len=5, nla_type=IFLA_BRPORT_MRP_RING_OPEN}, 0], [{nla_len=5, nla_type=IFLA_BRPORT_MRP_IN_OPEN}, 0], [{nla_len=5, nla_type=IFLA_BRPORT_ISOLATED}, 0], [{nla_len=5, nla_type=IFLA_BRPORT_LOCKED}, 0], [{nla_len=12, nla_type=IFLA_BRPORT_MESSAGE_AGE_TIMER}, 0], [{nla_len=12, nla_type=IFLA_BRPORT_FORWARD_DELAY_TIMER}, 0], [{nla_len=12, nla_type=IFLA_BRPORT_HOLD_TIMER}, 0], ...]]]], [{nla_len=796, nla_type=IFLA_AF_SPEC}, [[{nla_len=140, nla_type=AF_INET}, [{nla_len=136, nla_type=IFLA_INET_CONF}, [[IPV4_DEVCONF_FORWARDING-1]=0, [IPV4_DEVCONF_MC_FORWARDING-1]=0, [IPV4_DEVCONF_PROXY_ARP-1]=0, [IPV4_DEVCONF_ACCEPT_REDIRECTS-1]=1, [IPV4_DEVCONF_SECURE_REDIRECTS-1]=1, [IPV4_DEVCONF_SEND_REDIRECTS-1]=1, [IPV4_DEVCONF_SHARED_MEDIA-1]=1, [IPV4_DEVCONF_RP_FILTER-1]=2, [IPV4_DEVCONF_ACCEPT_SOURCE_ROUTE-1]=0, [IPV4_DEVCONF_BOOTP_RELAY-1]=0, [IPV4_DEVCONF_LOG_MARTIANS-1]=0, [IPV4_DEVCONF_TAG-1]=0, [IPV4_DEVCONF_ARPFILTER-1]=0, [IPV4_DEVCONF_MEDIUM_ID-1]=0, [IPV4_DEVCONF_NOXFRM-1]=0, [IPV4_DEVCONF_NOPOLICY-1]=0, [IPV4_DEVCONF_FORCE_IGMP_VERSION-1]=0, [IPV4_DEVCONF_ARP_ANNOUNCE-1]=0, [IPV4_DEVCONF_ARP_IGNORE-1]=0, [IPV4_DEVCONF_PROMOTE_SECONDARIES-1]=1, [IPV4_DEVCONF_ARP_ACCEPT-1]=0, [IPV4_DEVCONF_ARP_NOTIFY-1]=0, [IPV4_DEVCONF_ACCEPT_LOCAL-1]=0, [IPV4_DEVCONF_SRC_VMARK-1]=0, [IPV4_DEVCONF_PROXY_ARP_PVLAN-1]=0, [IPV4_DEVCONF_ROUTE_LOCALNET-1]=0, [IPV4_DEVCONF_IGMPV2_UNSOLICITED_REPORT_INTERVAL-1]=10000, [IPV4_DEVCONF_IGMPV3_UNSOLICITED_REPORT_INTERVAL-1]=1000, [IPV4_DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN-1]=0, [IPV4_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST-1]=0, [IPV4_DEVCONF_DROP_GRATUITOUS_ARP-1]=0, [IPV4_DEVCONF_BC_FORWARDING-1]=0, ...]]], [{nla_len=652, nla_type=AF_INET6}, [[{nla_len=8, nla_type=IFLA_INET6_FLAGS}, IF_READY], [{nla_len=20, nla_type=IFLA_INET6_CACHEINFO}, {max_reasm_len=65535, tstamp=1296, reachable_time=28317, retrans_time=1000}], [{nla_len=240, nla_type=IFLA_INET6_CONF}, [[DEVCONF_FORWARDING]=0, [DEVCONF_HOPLIMIT]=64, [DEVCONF_MTU6]=1500, [DEVCONF_ACCEPT_RA]=0, [DEVCONF_ACCEPT_REDIRECTS]=1, [DEVCONF_AUTOCONF]=1, [DEVCONF_DAD_TRANSMITS]=1, [DEVCONF_RTR_SOLICITS]=-1, [DEVCONF_RTR_SOLICIT_INTERVAL]=4000, [DEVCONF_RTR_SOLICIT_DELAY]=1000, [DEVCONF_USE_TEMPADDR]=0, [DEVCONF_TEMP_VALID_LFT]=604800, [DEVCONF_TEMP_PREFERED_LFT]=86400, [DEVCONF_REGEN_MAX_RETRY]=3, [DEVCONF_MAX_DESYNC_FACTOR]=600, [DEVCONF_MAX_ADDRESSES]=16, [DEVCONF_FORCE_MLD_VERSION]=0, [DEVCONF_ACCEPT_RA_DEFRTR]=1, [DEVCONF_ACCEPT_RA_PINFO]=1, [DEVCONF_ACCEPT_RA_RTR_PREF]=1, [DEVCONF_RTR_PROBE_INTERVAL]=60000, [DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN]=0, [DEVCONF_PROXY_NDP]=0, [DEVCONF_OPTIMISTIC_DAD]=0, [DEVCONF_ACCEPT_SOURCE_ROUTE]=0, [DEVCONF_MC_FORWARDING]=0, [DEVCONF_DISABLE_IPV6]=0, [DEVCONF_ACCEPT_DAD]=1, [DEVCONF_FORCE_TLLAO]=0, [DEVCONF_NDISC_NOTIFY]=0, [DEVCONF_MLDV1_UNSOLICITED_REPORT_INTERVAL]=10000, [DEVCONF_MLDV2_UNSOLICITED_REPORT_INTERVAL]=1000, ...]], [{nla_len=300, nla_type=IFLA_INET6_STATS}, [[IPSTATS_MIB_NUM]=37, [IPSTATS_MIB_INPKTS]=0, [IPSTATS_MIB_INOCTETS]=0, [IPSTATS_MIB_INDELIVERS]=0, [IPSTATS_MIB_OUTFORWDATAGRAMS]=0, [IPSTATS_MIB_OUTPKTS]=0, [IPSTATS_MIB_OUTOCTETS]=0, [IPSTATS_MIB_INHDRERRORS]=0, [IPSTATS_MIB_INTOOBIGERRORS]=0, [IPSTATS_MIB_INNOROUTES]=0, [IPSTATS_MIB_INADDRERRORS]=0, [IPSTATS_MIB_INUNKNOWNPROTOS]=0, [IPSTATS_MIB_INTRUNCATEDPKTS]=0, [IPSTATS_MIB_INDISCARDS]=0, [IPSTATS_MIB_OUTDISCARDS]=0, [IPSTATS_MIB_OUTNOROUTES]=0, [IPSTATS_MIB_REASMTIMEOUT]=0, [IPSTATS_MIB_REASMREQDS]=0, [IPSTATS_MIB_REASMOKS]=0, [IPSTATS_MIB_REASMFAILS]=0, [IPSTATS_MIB_FRAGOKS]=0, [IPSTATS_MIB_FRAGFAILS]=0, [IPSTATS_MIB_FRAGCREATES]=0, [IPSTATS_MIB_INMCASTPKTS]=0, [IPSTATS_MIB_OUTMCASTPKTS]=0, [IPSTATS_MIB_INBCASTPKTS]=0, [IPSTATS_MIB_OUTBCASTPKTS]=0, [IPSTATS_MIB_INMCASTOCTETS]=0, [IPSTATS_MIB_OUTMCASTOCTETS]=0, [IPSTATS_MIB_INBCASTOCTETS]=0, [IPSTATS_MIB_OUTBCASTOCTETS]=0, [IPSTATS_MIB_CSUMERRORS]=0, ...]], [{nla_len=52, nla_type=IFLA_INET6_ICMP6STATS}, [[ICMP6_MIB_NUM]=6, [ICMP6_MIB_INMSGS]=0, [ICMP6_MIB_INERRORS]=0, [ICMP6_MIB_OUTMSGS]=0, [ICMP6_MIB_OUTERRORS]=0, [ICMP6_MIB_CSUMERRORS]=0]], [{nla_len=20, nla_type=IFLA_INET6_TOKEN}, inet_pton(AF_INET6, "::")], [{nla_len=5, nla_type=IFLA_INET6_ADDR_GEN_MODE}, IN6_ADDR_GEN_MODE_NONE]]]]]]]], iov_len=32768}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 3588
recvmsg(3, {msg_name={sa_family=AF_NETLINK, nl_pid=0, nl_groups=00000000}, msg_namelen=12, msg_iov=[{iov_base=NULL, iov_len=0}], msg_iovlen=1, msg_controllen=0, msg_flags=MSG_TRUNC}, MSG_PEEK|MSG_TRUNC) = 5056
recvmsg(3, {msg_name={sa_family=AF_NETLINK, nl_pid=0, nl_groups=00000000}, msg_namelen=12, msg_iov=[{iov_base=[[{nlmsg_len=1804, nlmsg_type=RTM_NEWLINK, nlmsg_flags=NLM_F_MULTI, nlmsg_seq=1700842578, nlmsg_pid=93199}, {ifi_family=AF_UNSPEC, ifi_type=ARPHRD_ETHER, ifi_index=if_nametoindex("vm-prometheus"), ifi_flags=IFF_UP|IFF_BROADCAST|IFF_RUNNING|IFF_MULTICAST|IFF_LOWER_UP, ifi_change=0}, [[{nla_len=18, nla_type=IFLA_IFNAME}, "vm-prometheus"], [{nla_len=8, nla_type=IFLA_TXQLEN}, 1000], [{nla_len=5, nla_type=IFLA_OPERSTATE}, 6], [{nla_len=5, nla_type=IFLA_LINKMODE}, 0], [{nla_len=8, nla_type=IFLA_MTU}, 1500], [{nla_len=8, nla_type=IFLA_MIN_MTU}, 68], [{nla_len=8, nla_type=IFLA_MAX_MTU}, 65521], [{nla_len=8, nla_type=IFLA_GROUP}, 0], [{nla_len=8, nla_type=IFLA_PROMISCUITY}, 1], [{nla_len=8, nla_type=IFLA_ALLMULTI}, 1], [{nla_len=8, nla_type=IFLA_NUM_TX_QUEUES}, 256], [{nla_len=8, nla_type=IFLA_GSO_MAX_SEGS}, 65535], [{nla_len=8, nla_type=IFLA_GSO_MAX_SIZE}, 65536], [{nla_len=8, nla_type=IFLA_GRO_MAX_SIZE}, 65536], [{nla_len=8, nla_type=IFLA_TSO_MAX_SIZE}, 65536], [{nla_len=8, nla_type=IFLA_TSO_MAX_SEGS}, 65535], [{nla_len=8, nla_type=IFLA_NUM_RX_QUEUES}, 256], [{nla_len=8, nla_type=IFLA_MASTER}, 6], [{nla_len=5, nla_type=IFLA_CARRIER}, 1], [{nla_len=7, nla_type=IFLA_QDISC}, "mq"], [{nla_len=8, nla_type=IFLA_CARRIER_CHANGES}, 2], [{nla_len=8, nla_type=IFLA_CARRIER_UP_COUNT}, 1], [{nla_len=8, nla_type=IFLA_CARRIER_DOWN_COUNT}, 1], [{nla_len=5, nla_type=IFLA_PROTO_DOWN}, 0], [{nla_len=36, nla_type=IFLA_MAP}, {mem_start=0, mem_end=0, base_addr=0, irq=0, dma=0, port=0}], [{nla_len=10, nla_type=IFLA_ADDRESS}, 16:b4:61:e9:c5:91], [{nla_len=10, nla_type=IFLA_BROADCAST}, ff:ff:ff:ff:ff:ff], [{nla_len=204, nla_type=IFLA_STATS64}, {rx_packets=109199, tx_packets=300335, rx_bytes=116928153, tx_bytes=574915054, rx_errors=0, tx_errors=0, rx_dropped=0, tx_dropped=0, multicast=0, collisions=0, rx_length_errors=0, rx_over_errors=0, rx_crc_errors=0, rx_frame_errors=0, rx_fifo_errors=0, rx_missed_errors=0, tx_aborted_errors=0, tx_carrier_errors=0, tx_fifo_errors=0, tx_heartbeat_errors=0, tx_window_errors=0, rx_compressed=0, tx_compressed=0, rx_nohandler=0, rx_otherhost_dropped=0}], [{nla_len=100, nla_type=IFLA_STATS}, {rx_packets=109199, tx_packets=300335, rx_bytes=116928153, tx_bytes=574915054, rx_errors=0, tx_errors=0, rx_dropped=0, tx_dropped=0, multicast=0, collisions=0, rx_length_errors=0, rx_over_errors=0, rx_crc_errors=0, rx_frame_errors=0, rx_fifo_errors=0, rx_missed_errors=0, tx_aborted_errors=0, tx_carrier_errors=0, tx_fifo_errors=0, tx_heartbeat_errors=0, tx_window_errors=0, rx_compressed=0, tx_compressed=0, rx_nohandler=0}], [{nla_len=12, nla_type=IFLA_XDP}, [{nla_len=5, nla_type=IFLA_XDP_ATTACHED}, XDP_ATTACHED_NONE]], [{nla_len=396, nla_type=IFLA_LINKINFO}, [[{nla_len=8, nla_type=IFLA_INFO_KIND}, "tun"], [{nla_len=68, nla_type=IFLA_INFO_DATA}, [[{nla_len=5, nla_type=IFLA_TUN_TYPE}, IFF_TAP], [{nla_len=8, nla_type=IFLA_TUN_OWNER}, 994], [{nla_len=5, nla_type=IFLA_TUN_PI}, 0], [{nla_len=5, nla_type=IFLA_TUN_VNET_HDR}, 1], [{nla_len=5, nla_type=IFLA_TUN_PERSIST}, 1], [{nla_len=5, nla_type=IFLA_TUN_MULTI_QUEUE}, 1], [{nla_len=8, nla_type=IFLA_TUN_NUM_QUEUES}, 2], [{nla_len=8, nla_type=IFLA_TUN_NUM_DISABLED_QUEUES}, 0]]], [{nla_len=11, nla_type=IFLA_INFO_SLAVE_KIND}, "bridge"], [{nla_len=304, nla_type=IFLA_INFO_SLAVE_DATA}, [[{nla_len=5, nla_type=IFLA_BRPORT_STATE}, 3], [{nla_len=6, nla_type=IFLA_BRPORT_PRIORITY}, 32], [{nla_len=8, nla_type=IFLA_BRPORT_COST}, 100], [{nla_len=5, nla_type=IFLA_BRPORT_MODE}, 0], [{nla_len=5, nla_type=IFLA_BRPORT_GUARD}, 0], [{nla_len=5, nla_type=IFLA_BRPORT_PROTECT}, 0], [{nla_len=5, nla_type=IFLA_BRPORT_FAST_LEAVE}, 0], [{nla_len=5, nla_type=IFLA_BRPORT_MCAST_TO_UCAST}, 0], [{nla_len=5, nla_type=IFLA_BRPORT_LEARNING}, 1], [{nla_len=5, nla_type=IFLA_BRPORT_UNICAST_FLOOD}, 1], [{nla_len=5, nla_type=IFLA_BRPORT_MCAST_FLOOD}, 1], [{nla_len=5, nla_type=IFLA_BRPORT_BCAST_FLOOD}, 1], [{nla_len=5, nla_type=IFLA_BRPORT_PROXYARP}, 0], [{nla_len=5, nla_type=IFLA_BRPORT_PROXYARP_WIFI}, 0], [{nla_len=12, nla_type=IFLA_BRPORT_ROOT_ID}, {prio=[128, 0], addr=b2:3c:21:31:c1:2b}], [{nla_len=12, nla_type=IFLA_BRPORT_BRIDGE_ID}, {prio=[128, 0], addr=b2:3c:21:31:c1:2b}], [{nla_len=6, nla_type=IFLA_BRPORT_DESIGNATED_PORT}, 32771], [{nla_len=6, nla_type=IFLA_BRPORT_DESIGNATED_COST}, 0], [{nla_len=6, nla_type=IFLA_BRPORT_ID}, 32771], [{nla_len=6, nla_type=IFLA_BRPORT_NO}, 3], [{nla_len=5, nla_type=IFLA_BRPORT_TOPOLOGY_CHANGE_ACK}, 0], [{nla_len=5, nla_type=IFLA_BRPORT_CONFIG_PENDING}, 0], [{nla_len=5, nla_type=IFLA_BRPORT_VLAN_TUNNEL}, 0], [{nla_len=6, nla_type=IFLA_BRPORT_GROUP_FWD_MASK}, 0], [{nla_len=5, nla_type=IFLA_BRPORT_NEIGH_SUPPRESS}, 0], [{nla_len=5, nla_type=IFLA_BRPORT_MRP_RING_OPEN}, 0], [{nla_len=5, nla_type=IFLA_BRPORT_MRP_IN_OPEN}, 0], [{nla_len=5, nla_type=IFLA_BRPORT_ISOLATED}, 0], [{nla_len=5, nla_type=IFLA_BRPORT_LOCKED}, 0], [{nla_len=12, nla_type=IFLA_BRPORT_MESSAGE_AGE_TIMER}, 0], [{nla_len=12, nla_type=IFLA_BRPORT_FORWARD_DELAY_TIMER}, 0], [{nla_len=12, nla_type=IFLA_BRPORT_HOLD_TIMER}, 0], ...]]]], [{nla_len=796, nla_type=IFLA_AF_SPEC}, [[{nla_len=140, nla_type=AF_INET}, [{nla_len=136, nla_type=IFLA_INET_CONF}, [[IPV4_DEVCONF_FORWARDING-1]=0, [IPV4_DEVCONF_MC_FORWARDING-1]=0, [IPV4_DEVCONF_PROXY_ARP-1]=0, [IPV4_DEVCONF_ACCEPT_REDIRECTS-1]=1, [IPV4_DEVCONF_SECURE_REDIRECTS-1]=1, [IPV4_DEVCONF_SEND_REDIRECTS-1]=1, [IPV4_DEVCONF_SHARED_MEDIA-1]=1, [IPV4_DEVCONF_RP_FILTER-1]=2, [IPV4_DEVCONF_ACCEPT_SOURCE_ROUTE-1]=0, [IPV4_DEVCONF_BOOTP_RELAY-1]=0, [IPV4_DEVCONF_LOG_MARTIANS-1]=0, [IPV4_DEVCONF_TAG-1]=0, [IPV4_DEVCONF_ARPFILTER-1]=0, [IPV4_DEVCONF_MEDIUM_ID-1]=0, [IPV4_DEVCONF_NOXFRM-1]=0, [IPV4_DEVCONF_NOPOLICY-1]=0, [IPV4_DEVCONF_FORCE_IGMP_VERSION-1]=0, [IPV4_DEVCONF_ARP_ANNOUNCE-1]=0, [IPV4_DEVCONF_ARP_IGNORE-1]=0, [IPV4_DEVCONF_PROMOTE_SECONDARIES-1]=1, [IPV4_DEVCONF_ARP_ACCEPT-1]=0, [IPV4_DEVCONF_ARP_NOTIFY-1]=0, [IPV4_DEVCONF_ACCEPT_LOCAL-1]=0, [IPV4_DEVCONF_SRC_VMARK-1]=0, [IPV4_DEVCONF_PROXY_ARP_PVLAN-1]=0, [IPV4_DEVCONF_ROUTE_LOCALNET-1]=0, [IPV4_DEVCONF_IGMPV2_UNSOLICITED_REPORT_INTERVAL-1]=10000, [IPV4_DEVCONF_IGMPV3_UNSOLICITED_REPORT_INTERVAL-1]=1000, [IPV4_DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN-1]=0, [IPV4_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST-1]=0, [IPV4_DEVCONF_DROP_GRATUITOUS_ARP-1]=0, [IPV4_DEVCONF_BC_FORWARDING-1]=0, ...]]], [{nla_len=652, nla_type=AF_INET6}, [[{nla_len=8, nla_type=IFLA_INET6_FLAGS}, IF_READY], [{nla_len=20, nla_type=IFLA_INET6_CACHEINFO}, {max_reasm_len=65535, tstamp=1301, reachable_time=16066, retrans_time=1000}], [{nla_len=240, nla_type=IFLA_INET6_CONF}, [[DEVCONF_FORWARDING]=0, [DEVCONF_HOPLIMIT]=64, [DEVCONF_MTU6]=1500, [DEVCONF_ACCEPT_RA]=0, [DEVCONF_ACCEPT_REDIRECTS]=1, [DEVCONF_AUTOCONF]=1, [DEVCONF_DAD_TRANSMITS]=1, [DEVCONF_RTR_SOLICITS]=-1, [DEVCONF_RTR_SOLICIT_INTERVAL]=4000, [DEVCONF_RTR_SOLICIT_DELAY]=1000, [DEVCONF_USE_TEMPADDR]=0, [DEVCONF_TEMP_VALID_LFT]=604800, [DEVCONF_TEMP_PREFERED_LFT]=86400, [DEVCONF_REGEN_MAX_RETRY]=3, [DEVCONF_MAX_DESYNC_FACTOR]=600, [DEVCONF_MAX_ADDRESSES]=16, [DEVCONF_FORCE_MLD_VERSION]=0, [DEVCONF_ACCEPT_RA_DEFRTR]=1, [DEVCONF_ACCEPT_RA_PINFO]=1, [DEVCONF_ACCEPT_RA_RTR_PREF]=1, [DEVCONF_RTR_PROBE_INTERVAL]=60000, [DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN]=0, [DEVCONF_PROXY_NDP]=0, [DEVCONF_OPTIMISTIC_DAD]=0, [DEVCONF_ACCEPT_SOURCE_ROUTE]=0, [DEVCONF_MC_FORWARDING]=0, [DEVCONF_DISABLE_IPV6]=0, [DEVCONF_ACCEPT_DAD]=1, [DEVCONF_FORCE_TLLAO]=0, [DEVCONF_NDISC_NOTIFY]=0, [DEVCONF_MLDV1_UNSOLICITED_REPORT_INTERVAL]=10000, [DEVCONF_MLDV2_UNSOLICITED_REPORT_INTERVAL]=1000, ...]], [{nla_len=300, nla_type=IFLA_INET6_STATS}, [[IPSTATS_MIB_NUM]=37, [IPSTATS_MIB_INPKTS]=0, [IPSTATS_MIB_INOCTETS]=0, [IPSTATS_MIB_INDELIVERS]=0, [IPSTATS_MIB_OUTFORWDATAGRAMS]=0, [IPSTATS_MIB_OUTPKTS]=0, [IPSTATS_MIB_OUTOCTETS]=0, [IPSTATS_MIB_INHDRERRORS]=0, [IPSTATS_MIB_INTOOBIGERRORS]=0, [IPSTATS_MIB_INNOROUTES]=0, [IPSTATS_MIB_INADDRERRORS]=0, [IPSTATS_MIB_INUNKNOWNPROTOS]=0, [IPSTATS_MIB_INTRUNCATEDPKTS]=0, [IPSTATS_MIB_INDISCARDS]=0, [IPSTATS_MIB_OUTDISCARDS]=0, [IPSTATS_MIB_OUTNOROUTES]=0, [IPSTATS_MIB_REASMTIMEOUT]=0, [IPSTATS_MIB_REASMREQDS]=0, [IPSTATS_MIB_REASMOKS]=0, [IPSTATS_MIB_REASMFAILS]=0, [IPSTATS_MIB_FRAGOKS]=0, [IPSTATS_MIB_FRAGFAILS]=0, [IPSTATS_MIB_FRAGCREATES]=0, [IPSTATS_MIB_INMCASTPKTS]=0, [IPSTATS_MIB_OUTMCASTPKTS]=0, [IPSTATS_MIB_INBCASTPKTS]=0, [IPSTATS_MIB_OUTBCASTPKTS]=0, [IPSTATS_MIB_INMCASTOCTETS]=0, [IPSTATS_MIB_OUTMCASTOCTETS]=0, [IPSTATS_MIB_INBCASTOCTETS]=0, [IPSTATS_MIB_OUTBCASTOCTETS]=0, [IPSTATS_MIB_CSUMERRORS]=0, ...]], [{nla_len=52, nla_type=IFLA_INET6_ICMP6STATS}, [[ICMP6_MIB_NUM]=6, [ICMP6_MIB_INMSGS]=0, [ICMP6_MIB_INERRORS]=0, [ICMP6_MIB_OUTMSGS]=0, [ICMP6_MIB_OUTERRORS]=0, [ICMP6_MIB_CSUMERRORS]=0]], [{nla_len=20, nla_type=IFLA_INET6_TOKEN}, inet_pton(AF_INET6, "::")], [{nla_len=5, nla_type=IFLA_INET6_ADDR_GEN_MODE}, IN6_ADDR_GEN_MODE_NONE]]]]]]], [{nlmsg_len=1820, nlmsg_type=RTM_NEWLINK, nlmsg_flags=NLM_F_MULTI, nlmsg_seq=1700842578, nlmsg_pid=93199}, {ifi_family=AF_UNSPEC, ifi_type=ARPHRD_ETHER, ifi_index=if_nametoindex("br0"), ifi_flags=IFF_UP|IFF_BROADCAST|IFF_RUNNING|IFF_MULTICAST|IFF_LOWER_UP, ifi_change=0}, [[{nla_len=8, nla_type=IFLA_IFNAME}, "br0"], [{nla_len=8, nla_type=IFLA_TXQLEN}, 1000], [{nla_len=5, nla_type=IFLA_OPERSTATE}, 6], [{nla_len=5, nla_type=IFLA_LINKMODE}, 0], [{nla_len=8, nla_type=IFLA_MTU}, 1500], [{nla_len=8, nla_type=IFLA_MIN_MTU}, 68], [{nla_len=8, nla_type=IFLA_MAX_MTU}, 65535], [{nla_len=8, nla_type=IFLA_GROUP}, 0], [{nla_len=8, nla_type=IFLA_PROMISCUITY}, 0], [{nla_len=8, nla_type=IFLA_ALLMULTI}, 0], [{nla_len=8, nla_type=IFLA_NUM_TX_QUEUES}, 1], [{nla_len=8, nla_type=IFLA_GSO_MAX_SEGS}, 65535], [{nla_len=8, nla_type=IFLA_GSO_MAX_SIZE}, 65536], [{nla_len=8, nla_type=IFLA_GRO_MAX_SIZE}, 65536], [{nla_len=8, nla_type=IFLA_TSO_MAX_SIZE}, 65536], [{nla_len=8, nla_type=IFLA_TSO_MAX_SEGS}, 65535], [{nla_len=8, nla_type=IFLA_NUM_RX_QUEUES}, 1], [{nla_len=5, nla_type=IFLA_CARRIER}, 1], [{nla_len=12, nla_type=IFLA_QDISC}, "noqueue"], [{nla_len=8, nla_type=IFLA_CARRIER_CHANGES}, 4], [{nla_len=8, nla_type=IFLA_CARRIER_UP_COUNT}, 2], [{nla_len=8, nla_type=IFLA_CARRIER_DOWN_COUNT}, 2], [{nla_len=5, nla_type=IFLA_PROTO_DOWN}, 0], [{nla_len=36, nla_type=IFLA_MAP}, {mem_start=0, mem_end=0, base_addr=0, irq=0, dma=0, port=0}], [{nla_len=10, nla_type=IFLA_ADDRESS}, b2:3c:21:31:c1:2b], [{nla_len=10, nla_type=IFLA_BROADCAST}, ff:ff:ff:ff:ff:ff], [{nla_len=204, nla_type=IFLA_STATS64}, {rx_packets=2731466, tx_packets=3206259, rx_bytes=1372959231, tx_bytes=3414750975, rx_errors=0, tx_errors=0, rx_dropped=97, tx_dropped=0, multicast=58714, collisions=0, rx_length_errors=0, rx_over_errors=0, rx_crc_errors=0, rx_frame_errors=0, rx_fifo_errors=0, rx_missed_errors=0, tx_aborted_errors=0, tx_carrier_errors=0, tx_fifo_errors=0, tx_heartbeat_errors=0, tx_window_errors=0, rx_compressed=0, tx_compressed=0, rx_nohandler=0, rx_otherhost_dropped=0}], [{nla_len=100, nla_type=IFLA_STATS}, {rx_packets=2731466, tx_packets=3206259, rx_bytes=1372959231, tx_bytes=3414750975, rx_errors=0, tx_errors=0, rx_dropped=97, tx_dropped=0, multicast=58714, collisions=0, rx_length_errors=0, rx_over_errors=0, rx_crc_errors=0, rx_frame_errors=0, rx_fifo_errors=0, rx_missed_errors=0, tx_aborted_errors=0, tx_carrier_errors=0, tx_fifo_errors=0, tx_heartbeat_errors=0, tx_window_errors=0, rx_compressed=0, tx_compressed=0, rx_nohandler=0}], [{nla_len=12, nla_type=IFLA_XDP}, [{nla_len=5, nla_type=IFLA_XDP_ATTACHED}, XDP_ATTACHED_NONE]], [{nla_len=428, nla_type=IFLA_LINKINFO}, [[{nla_len=11, nla_type=IFLA_INFO_KIND}, "bridge"], [{nla_len=412, nla_type=IFLA_INFO_DATA}, [[{nla_len=12, nla_type=IFLA_BR_HELLO_TIMER}, 0], [{nla_len=12, nla_type=IFLA_BR_TCN_TIMER}, 0], [{nla_len=12, nla_type=IFLA_BR_TOPOLOGY_CHANGE_TIMER}, 0], [{nla_len=12, nla_type=IFLA_BR_GC_TIMER}, 10720 /* 107.20 s */], [{nla_len=8, nla_type=IFLA_BR_FORWARD_DELAY}, 1500 /* 15.00 s */], [{nla_len=8, nla_type=IFLA_BR_HELLO_TIME}, 200 /* 2.00 s */], [{nla_len=8, nla_type=IFLA_BR_MAX_AGE}, 2000 /* 20.00 s */], [{nla_len=8, nla_type=IFLA_BR_AGEING_TIME}, 30000 /* 300.00 s */], [{nla_len=8, nla_type=IFLA_BR_STP_STATE}, 0], [{nla_len=6, nla_type=IFLA_BR_PRIORITY}, 32768], [{nla_len=5, nla_type=IFLA_BR_VLAN_FILTERING}, 0], [{nla_len=6, nla_type=IFLA_BR_GROUP_FWD_MASK}, 0], [{nla_len=12, nla_type=IFLA_BR_BRIDGE_ID}, {prio=[128, 0], addr=b2:3c:21:31:c1:2b}], [{nla_len=12, nla_type=IFLA_BR_ROOT_ID}, {prio=[128, 0], addr=b2:3c:21:31:c1:2b}], [{nla_len=6, nla_type=IFLA_BR_ROOT_PORT}, 0], [{nla_len=8, nla_type=IFLA_BR_ROOT_PATH_COST}, 0], [{nla_len=5, nla_type=IFLA_BR_TOPOLOGY_CHANGE}, 0], [{nla_len=5, nla_type=IFLA_BR_TOPOLOGY_CHANGE_DETECTED}, 0], [{nla_len=10, nla_type=IFLA_BR_GROUP_ADDR}, 01:80:c2:00:00:00], [{nla_len=12, nla_type=IFLA_BR_MULTI_BOOLOPT}, {optval=0, optmask=1<<BR_BOOLOPT_NO_LL_LEARN|1<<BR_BOOLOPT_MCAST_VLAN_SNOOPING|1<<BR_BOOLOPT_MST_ENABLE}], [{nla_len=6, nla_type=IFLA_BR_VLAN_PROTOCOL}, htons(ETH_P_8021Q)], [{nla_len=6, nla_type=IFLA_BR_VLAN_DEFAULT_PVID}, 1], [{nla_len=5, nla_type=IFLA_BR_VLAN_STATS_ENABLED}, 0], [{nla_len=5, nla_type=IFLA_BR_VLAN_STATS_PER_PORT}, 0], [{nla_len=5, nla_type=IFLA_BR_MCAST_ROUTER}, 1], [{nla_len=5, nla_type=IFLA_BR_MCAST_SNOOPING}, 1], [{nla_len=5, nla_type=IFLA_BR_MCAST_QUERY_USE_IFADDR}, 0], [{nla_len=5, nla_type=IFLA_BR_MCAST_QUERIER}, 0], [{nla_len=5, nla_type=IFLA_BR_MCAST_STATS_ENABLED}, 0], [{nla_len=8, nla_type=IFLA_BR_MCAST_HASH_ELASTICITY}, 16], [{nla_len=8, nla_type=IFLA_BR_MCAST_HASH_MAX}, 4096], [{nla_len=8, nla_type=IFLA_BR_MCAST_LAST_MEMBER_CNT}, 2], ...]]]], [{nla_len=796, nla_type=IFLA_AF_SPEC}, [[{nla_len=140, nla_type=AF_INET}, [{nla_len=136, nla_type=IFLA_INET_CONF}, [[IPV4_DEVCONF_FORWARDING-1]=0, [IPV4_DEVCONF_MC_FORWARDING-1]=0, [IPV4_DEVCONF_PROXY_ARP-1]=0, [IPV4_DEVCONF_ACCEPT_REDIRECTS-1]=1, [IPV4_DEVCONF_SECURE_REDIRECTS-1]=1, [IPV4_DEVCONF_SEND_REDIRECTS-1]=1, [IPV4_DEVCONF_SHARED_MEDIA-1]=1, [IPV4_DEVCONF_RP_FILTER-1]=2, [IPV4_DEVCONF_ACCEPT_SOURCE_ROUTE-1]=0, [IPV4_DEVCONF_BOOTP_RELAY-1]=0, [IPV4_DEVCONF_LOG_MARTIANS-1]=0, [IPV4_DEVCONF_TAG-1]=0, [IPV4_DEVCONF_ARPFILTER-1]=0, [IPV4_DEVCONF_MEDIUM_ID-1]=0, [IPV4_DEVCONF_NOXFRM-1]=0, [IPV4_DEVCONF_NOPOLICY-1]=0, [IPV4_DEVCONF_FORCE_IGMP_VERSION-1]=0, [IPV4_DEVCONF_ARP_ANNOUNCE-1]=0, [IPV4_DEVCONF_ARP_IGNORE-1]=0, [IPV4_DEVCONF_PROMOTE_SECONDARIES-1]=1, [IPV4_DEVCONF_ARP_ACCEPT-1]=0, [IPV4_DEVCONF_ARP_NOTIFY-1]=0, [IPV4_DEVCONF_ACCEPT_LOCAL-1]=0, [IPV4_DEVCONF_SRC_VMARK-1]=0, [IPV4_DEVCONF_PROXY_ARP_PVLAN-1]=0, [IPV4_DEVCONF_ROUTE_LOCALNET-1]=0, [IPV4_DEVCONF_IGMPV2_UNSOLICITED_REPORT_INTERVAL-1]=10000, [IPV4_DEVCONF_IGMPV3_UNSOLICITED_REPORT_INTERVAL-1]=1000, [IPV4_DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN-1]=0, [IPV4_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST-1]=0, [IPV4_DEVCONF_DROP_GRATUITOUS_ARP-1]=0, [IPV4_DEVCONF_BC_FORWARDING-1]=0, ...]]], [{nla_len=652, nla_type=AF_INET6}, [[{nla_len=8, nla_type=IFLA_INET6_FLAGS}, IF_READY], [{nla_len=20, nla_type=IFLA_INET6_CACHEINFO}, {max_reasm_len=65535, tstamp=1268, reachable_time=22170, retrans_time=1000}], [{nla_len=240, nla_type=IFLA_INET6_CONF}, [[DEVCONF_FORWARDING]=0, [DEVCONF_HOPLIMIT]=64, [DEVCONF_MTU6]=1500, [DEVCONF_ACCEPT_RA]=0, [DEVCONF_ACCEPT_REDIRECTS]=1, [DEVCONF_AUTOCONF]=1, [DEVCONF_DAD_TRANSMITS]=1, [DEVCONF_RTR_SOLICITS]=-1, [DEVCONF_RTR_SOLICIT_INTERVAL]=4000, [DEVCONF_RTR_SOLICIT_DELAY]=1000, [DEVCONF_USE_TEMPADDR]=0, [DEVCONF_TEMP_VALID_LFT]=604800, [DEVCONF_TEMP_PREFERED_LFT]=86400, [DEVCONF_REGEN_MAX_RETRY]=3, [DEVCONF_MAX_DESYNC_FACTOR]=600, [DEVCONF_MAX_ADDRESSES]=16, [DEVCONF_FORCE_MLD_VERSION]=0, [DEVCONF_ACCEPT_RA_DEFRTR]=1, [DEVCONF_ACCEPT_RA_PINFO]=1, [DEVCONF_ACCEPT_RA_RTR_PREF]=1, [DEVCONF_RTR_PROBE_INTERVAL]=60000, [DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN]=0, [DEVCONF_PROXY_NDP]=0, [DEVCONF_OPTIMISTIC_DAD]=0, [DEVCONF_ACCEPT_SOURCE_ROUTE]=0, [DEVCONF_MC_FORWARDING]=0, [DEVCONF_DISABLE_IPV6]=0, [DEVCONF_ACCEPT_DAD]=1, [DEVCONF_FORCE_TLLAO]=0, [DEVCONF_NDISC_NOTIFY]=0, [DEVCONF_MLDV1_UNSOLICITED_REPORT_INTERVAL]=10000, [DEVCONF_MLDV2_UNSOLICITED_REPORT_INTERVAL]=1000, ...]], [{nla_len=300, nla_type=IFLA_INET6_STATS}, [[IPSTATS_MIB_NUM]=37, [IPSTATS_MIB_INPKTS]=791181, [IPSTATS_MIB_INOCTETS]=357295602, [IPSTATS_MIB_INDELIVERS]=760672, [IPSTATS_MIB_OUTFORWDATAGRAMS]=0, [IPSTATS_MIB_OUTPKTS]=748321, [IPSTATS_MIB_OUTOCTETS]=734421130, [IPSTATS_MIB_INHDRERRORS]=0, [IPSTATS_MIB_INTOOBIGERRORS]=0, [IPSTATS_MIB_INNOROUTES]=0, [IPSTATS_MIB_INADDRERRORS]=0, [IPSTATS_MIB_INUNKNOWNPROTOS]=0, [IPSTATS_MIB_INTRUNCATEDPKTS]=0, [IPSTATS_MIB_INDISCARDS]=0, [IPSTATS_MIB_OUTDISCARDS]=0, [IPSTATS_MIB_OUTNOROUTES]=0, [IPSTATS_MIB_REASMTIMEOUT]=0, [IPSTATS_MIB_REASMREQDS]=0, [IPSTATS_MIB_REASMOKS]=0, [IPSTATS_MIB_REASMFAILS]=0, [IPSTATS_MIB_FRAGOKS]=0, [IPSTATS_MIB_FRAGFAILS]=0, [IPSTATS_MIB_FRAGCREATES]=0, [IPSTATS_MIB_INMCASTPKTS]=35153, [IPSTATS_MIB_OUTMCASTPKTS]=1506, [IPSTATS_MIB_INBCASTPKTS]=0, [IPSTATS_MIB_OUTBCASTPKTS]=0, [IPSTATS_MIB_INMCASTOCTETS]=6877936, [IPSTATS_MIB_OUTMCASTOCTETS]=210157, [IPSTATS_MIB_INBCASTOCTETS]=0, [IPSTATS_MIB_OUTBCASTOCTETS]=0, [IPSTATS_MIB_CSUMERRORS]=0, ...]], [{nla_len=52, nla_type=IFLA_INET6_ICMP6STATS}, [[ICMP6_MIB_NUM]=6, [ICMP6_MIB_INMSGS]=9996, [ICMP6_MIB_INERRORS]=0, [ICMP6_MIB_OUTMSGS]=5728, [ICMP6_MIB_OUTERRORS]=0, [ICMP6_MIB_CSUMERRORS]=0]], [{nla_len=20, nla_type=IFLA_INET6_TOKEN}, inet_pton(AF_INET6, "::")], [{nla_len=5, nla_type=IFLA_INET6_ADDR_GEN_MODE}, IN6_ADDR_GEN_MODE_EUI64]]]]]]], [{nlmsg_len=1432, nlmsg_type=RTM_NEWLINK, nlmsg_flags=NLM_F_MULTI, nlmsg_seq=1700842578, nlmsg_pid=93199}, {ifi_family=AF_UNSPEC, ifi_type=ARPHRD_NONE, ifi_index=if_nametoindex("nebula.tun0"), ifi_flags=IFF_UP|IFF_POINTOPOINT|IFF_RUNNING|IFF_NOARP|IFF_MULTICAST|IFF_LOWER_UP, ifi_change=0}, [[{nla_len=18, nla_type=IFLA_IFNAME}, "nebula.tun0"], [{nla_len=8, nla_type=IFLA_TXQLEN}, 500], [{nla_len=5, nla_type=IFLA_OPERSTATE}, 0], [{nla_len=5, nla_type=IFLA_LINKMODE}, 0], [{nla_len=8, nla_type=IFLA_MTU}, 1300], [{nla_len=8, nla_type=IFLA_MIN_MTU}, 68], [{nla_len=8, nla_type=IFLA_MAX_MTU}, 65535], [{nla_len=8, nla_type=IFLA_GROUP}, 0], [{nla_len=8, nla_type=IFLA_PROMISCUITY}, 0], [{nla_len=8, nla_type=IFLA_ALLMULTI}, 0], [{nla_len=8, nla_type=IFLA_NUM_TX_QUEUES}, 1], [{nla_len=8, nla_type=IFLA_GSO_MAX_SEGS}, 65535], [{nla_len=8, nla_type=IFLA_GSO_MAX_SIZE}, 65536], [{nla_len=8, nla_type=IFLA_GRO_MAX_SIZE}, 65536], [{nla_len=8, nla_type=IFLA_TSO_MAX_SIZE}, 65536], [{nla_len=8, nla_type=IFLA_TSO_MAX_SEGS}, 65535], [{nla_len=8, nla_type=IFLA_NUM_RX_QUEUES}, 1], [{nla_len=5, nla_type=IFLA_CARRIER}, 1], [{nla_len=7, nla_type=IFLA_QDISC}, "fq"], [{nla_len=8, nla_type=IFLA_CARRIER_CHANGES}, 0], [{nla_len=8, nla_type=IFLA_CARRIER_UP_COUNT}, 0], [{nla_len=8, nla_type=IFLA_CARRIER_DOWN_COUNT}, 0], [{nla_len=5, nla_type=IFLA_PROTO_DOWN}, 0], [{nla_len=36, nla_type=IFLA_MAP}, {mem_start=0, mem_end=0, base_addr=0, irq=0, dma=0, port=0}], [{nla_len=204, nla_type=IFLA_STATS64}, {rx_packets=2434292, tx_packets=3028358, rx_bytes=1167524202, tx_bytes=2623888410, rx_errors=0, tx_errors=0, rx_dropped=0, tx_dropped=0, multicast=0, collisions=0, rx_length_errors=0, rx_over_errors=0, rx_crc_errors=0, rx_frame_errors=0, rx_fifo_errors=0, rx_missed_errors=0, tx_aborted_errors=0, tx_carrier_errors=0, tx_fifo_errors=0, tx_heartbeat_errors=0, tx_window_errors=0, rx_compressed=0, tx_compressed=0, rx_nohandler=0, rx_otherhost_dropped=0}], [{nla_len=100, nla_type=IFLA_STATS}, {rx_packets=2434292, tx_packets=3028358, rx_bytes=1167524202, tx_bytes=2623888410, rx_errors=0, tx_errors=0, rx_dropped=0, tx_dropped=0, multicast=0, collisions=0, rx_length_errors=0, rx_over_errors=0, rx_crc_errors=0, rx_frame_errors=0, rx_fifo_errors=0, rx_missed_errors=0, tx_aborted_errors=0, tx_carrier_errors=0, tx_fifo_errors=0, tx_heartbeat_errors=0, tx_window_errors=0, rx_compressed=0, tx_compressed=0, rx_nohandler=0}], [{nla_len=12, nla_type=IFLA_XDP}, [{nla_len=5, nla_type=IFLA_XDP_ATTACHED}, XDP_ATTACHED_NONE]], [{nla_len=56, nla_type=IFLA_LINKINFO}, [[{nla_len=8, nla_type=IFLA_INFO_KIND}, "tun"], [{nla_len=44, nla_type=IFLA_INFO_DATA}, [[{nla_len=5, nla_type=IFLA_TUN_TYPE}, IFF_TUN], [{nla_len=5, nla_type=IFLA_TUN_PI}, 0], [{nla_len=5, nla_type=IFLA_TUN_VNET_HDR}, 0], [{nla_len=5, nla_type=IFLA_TUN_PERSIST}, 0], [{nla_len=5, nla_type=IFLA_TUN_MULTI_QUEUE}, 0]]]]], [{nla_len=796, nla_type=IFLA_AF_SPEC}, [[{nla_len=140, nla_type=AF_INET}, [{nla_len=136, nla_type=IFLA_INET_CONF}, [[IPV4_DEVCONF_FORWARDING-1]=0, [IPV4_DEVCONF_MC_FORWARDING-1]=0, [IPV4_DEVCONF_PROXY_ARP-1]=0, [IPV4_DEVCONF_ACCEPT_REDIRECTS-1]=1, [IPV4_DEVCONF_SECURE_REDIRECTS-1]=1, [IPV4_DEVCONF_SEND_REDIRECTS-1]=1, [IPV4_DEVCONF_SHARED_MEDIA-1]=1, [IPV4_DEVCONF_RP_FILTER-1]=2, [IPV4_DEVCONF_ACCEPT_SOURCE_ROUTE-1]=0, [IPV4_DEVCONF_BOOTP_RELAY-1]=0, [IPV4_DEVCONF_LOG_MARTIANS-1]=0, [IPV4_DEVCONF_TAG-1]=0, [IPV4_DEVCONF_ARPFILTER-1]=0, [IPV4_DEVCONF_MEDIUM_ID-1]=0, [IPV4_DEVCONF_NOXFRM-1]=0, [IPV4_DEVCONF_NOPOLICY-1]=0, [IPV4_DEVCONF_FORCE_IGMP_VERSION-1]=0, [IPV4_DEVCONF_ARP_ANNOUNCE-1]=0, [IPV4_DEVCONF_ARP_IGNORE-1]=0, [IPV4_DEVCONF_PROMOTE_SECONDARIES-1]=1, [IPV4_DEVCONF_ARP_ACCEPT-1]=0, [IPV4_DEVCONF_ARP_NOTIFY-1]=0, [IPV4_DEVCONF_ACCEPT_LOCAL-1]=0, [IPV4_DEVCONF_SRC_VMARK-1]=0, [IPV4_DEVCONF_PROXY_ARP_PVLAN-1]=0, [IPV4_DEVCONF_ROUTE_LOCALNET-1]=0, [IPV4_DEVCONF_IGMPV2_UNSOLICITED_REPORT_INTERVAL-1]=10000, [IPV4_DEVCONF_IGMPV3_UNSOLICITED_REPORT_INTERVAL-1]=1000, [IPV4_DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN-1]=0, [IPV4_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST-1]=0, [IPV4_DEVCONF_DROP_GRATUITOUS_ARP-1]=0, [IPV4_DEVCONF_BC_FORWARDING-1]=0, ...]]], [{nla_len=652, nla_type=AF_INET6}, [[{nla_len=8, nla_type=IFLA_INET6_FLAGS}, IF_RS_SENT|IF_READY], [{nla_len=20, nla_type=IFLA_INET6_CACHEINFO}, {max_reasm_len=65535, tstamp=1337, reachable_time=16664, retrans_time=1000}], [{nla_len=240, nla_type=IFLA_INET6_CONF}, [[DEVCONF_FORWARDING]=0, [DEVCONF_HOPLIMIT]=64, [DEVCONF_MTU6]=1300, [DEVCONF_ACCEPT_RA]=1, [DEVCONF_ACCEPT_REDIRECTS]=1, [DEVCONF_AUTOCONF]=1, [DEVCONF_DAD_TRANSMITS]=1, [DEVCONF_RTR_SOLICITS]=-1, [DEVCONF_RTR_SOLICIT_INTERVAL]=4000, [DEVCONF_RTR_SOLICIT_DELAY]=1000, [DEVCONF_USE_TEMPADDR]=2, [DEVCONF_TEMP_VALID_LFT]=604800, [DEVCONF_TEMP_PREFERED_LFT]=86400, [DEVCONF_REGEN_MAX_RETRY]=3, [DEVCONF_MAX_DESYNC_FACTOR]=600, [DEVCONF_MAX_ADDRESSES]=16, [DEVCONF_FORCE_MLD_VERSION]=0, [DEVCONF_ACCEPT_RA_DEFRTR]=1, [DEVCONF_ACCEPT_RA_PINFO]=1, [DEVCONF_ACCEPT_RA_RTR_PREF]=1, [DEVCONF_RTR_PROBE_INTERVAL]=60000, [DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN]=0, [DEVCONF_PROXY_NDP]=0, [DEVCONF_OPTIMISTIC_DAD]=0, [DEVCONF_ACCEPT_SOURCE_ROUTE]=0, [DEVCONF_MC_FORWARDING]=0, [DEVCONF_DISABLE_IPV6]=0, [DEVCONF_ACCEPT_DAD]=-1, [DEVCONF_FORCE_TLLAO]=0, [DEVCONF_NDISC_NOTIFY]=0, [DEVCONF_MLDV1_UNSOLICITED_REPORT_INTERVAL]=10000, [DEVCONF_MLDV2_UNSOLICITED_REPORT_INTERVAL]=1000, ...]], [{nla_len=300, nla_type=IFLA_INET6_STATS}, [[IPSTATS_MIB_NUM]=37, [IPSTATS_MIB_INPKTS]=8, [IPSTATS_MIB_INOCTETS]=946, [IPSTATS_MIB_INDELIVERS]=0, [IPSTATS_MIB_OUTFORWDATAGRAMS]=0, [IPSTATS_MIB_OUTPKTS]=47, [IPSTATS_MIB_OUTOCTETS]=2962, [IPSTATS_MIB_INHDRERRORS]=0, [IPSTATS_MIB_INTOOBIGERRORS]=0, [IPSTATS_MIB_INNOROUTES]=0, [IPSTATS_MIB_INADDRERRORS]=0, [IPSTATS_MIB_INUNKNOWNPROTOS]=0, [IPSTATS_MIB_INTRUNCATEDPKTS]=0, [IPSTATS_MIB_INDISCARDS]=0, [IPSTATS_MIB_OUTDISCARDS]=0, [IPSTATS_MIB_OUTNOROUTES]=0, [IPSTATS_MIB_REASMTIMEOUT]=0, [IPSTATS_MIB_REASMREQDS]=0, [IPSTATS_MIB_REASMOKS]=0, [IPSTATS_MIB_REASMFAILS]=0, [IPSTATS_MIB_FRAGOKS]=0, [IPSTATS_MIB_FRAGFAILS]=0, [IPSTATS_MIB_FRAGCREATES]=0, [IPSTATS_MIB_INMCASTPKTS]=8, [IPSTATS_MIB_OUTMCASTPKTS]=47, [IPSTATS_MIB_INBCASTPKTS]=0, [IPSTATS_MIB_OUTBCASTPKTS]=0, [IPSTATS_MIB_INMCASTOCTETS]=946, [IPSTATS_MIB_OUTMCASTOCTETS]=2962, [IPSTATS_MIB_INBCASTOCTETS]=0, [IPSTATS_MIB_OUTBCASTOCTETS]=0, [IPSTATS_MIB_CSUMERRORS]=0, ...]], [{nla_len=52, nla_type=IFLA_INET6_ICMP6STATS}, [[ICMP6_MIB_NUM]=6, [ICMP6_MIB_INMSGS]=0, [ICMP6_MIB_INERRORS]=0, [ICMP6_MIB_OUTMSGS]=39, [ICMP6_MIB_OUTERRORS]=0, [ICMP6_MIB_CSUMERRORS]=0]], [{nla_len=20, nla_type=IFLA_INET6_TOKEN}, inet_pton(AF_INET6, "::")], [{nla_len=5, nla_type=IFLA_INET6_ADDR_GEN_MODE}, IN6_ADDR_GEN_MODE_RANDOM]]]]]]]], iov_len=32768}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 5056
recvmsg(3, {msg_name={sa_family=AF_NETLINK, nl_pid=0, nl_groups=00000000}, msg_namelen=12, msg_iov=[{iov_base=NULL, iov_len=0}], msg_iovlen=1, msg_controllen=0, msg_flags=MSG_TRUNC}, MSG_PEEK|MSG_TRUNC) = 20
recvmsg(3, {msg_name={sa_family=AF_NETLINK, nl_pid=0, nl_groups=00000000}, msg_namelen=12, msg_iov=[{iov_base=[{nlmsg_len=20, nlmsg_type=NLMSG_DONE, nlmsg_flags=NLM_F_MULTI, nlmsg_seq=1700842578, nlmsg_pid=93199}, 0], iov_len=32768}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 20
recvmsg(3, {msg_name={sa_family=AF_NETLINK, nl_pid=0, nl_groups=00000000}, msg_namelen=12, msg_iov=[{iov_base=NULL, iov_len=0}], msg_iovlen=1, msg_controllen=0, msg_flags=MSG_TRUNC}, MSG_PEEK|MSG_TRUNC) = 1940
recvmsg(3, {msg_name={sa_family=AF_NETLINK, nl_pid=0, nl_groups=00000000}, msg_namelen=12, msg_iov=[{iov_base=[[{nlmsg_len=76, nlmsg_type=RTM_NEWNEIGH, nlmsg_flags=NLM_F_MULTI, nlmsg_seq=1700842579, nlmsg_pid=93199}, {ndm_family=AF_INET, ndm_ifindex=if_nametoindex("br0"), ndm_state=NUD_STALE, ndm_flags=0, ndm_type=RTN_UNICAST}, [[{nla_len=8, nla_type=NDA_DST}, inet_addr("192.168.0.12")], [{nla_len=10, nla_type=NDA_LLADDR}, 34:d2:70:fe:b8:15], [{nla_len=8, nla_type=NDA_PROBES}, 0], [{nla_len=20, nla_type=NDA_CACHEINFO}, {ndm_confirmed=2534026, ndm_used=2528026, ndm_updated=2528026, ndm_refcnt=0}]]], [{nlmsg_len=76, nlmsg_type=RTM_NEWNEIGH, nlmsg_flags=NLM_F_MULTI, nlmsg_seq=1700842579, nlmsg_pid=93199}, {ndm_family=AF_INET, ndm_ifindex=if_nametoindex("lo"), ndm_state=NUD_NOARP, ndm_flags=0, ndm_type=RTN_BROADCAST}, [[{nla_len=8, nla_type=NDA_DST}, inet_addr("0.0.0.0")], [{nla_len=10, nla_type=NDA_LLADDR}, 00:00:00:00:00:00], [{nla_len=8, nla_type=NDA_PROBES}, 0], [{nla_len=20, nla_type=NDA_CACHEINFO}, {ndm_confirmed=9852313, ndm_used=9846313, ndm_updated=9846313, ndm_refcnt=0}]]], [{nlmsg_len=76, nlmsg_type=RTM_NEWNEIGH, nlmsg_flags=NLM_F_MULTI, nlmsg_seq=1700842579, nlmsg_pid=93199}, {ndm_family=AF_INET, ndm_ifindex=if_nametoindex("br0"), ndm_state=NUD_NOARP, ndm_flags=0, ndm_type=RTN_MULTICAST}, [[{nla_len=8, nla_type=NDA_DST}, inet_addr("224.0.0.252")], [{nla_len=10, nla_type=NDA_LLADDR}, 01:00:5e:00:00:fc], [{nla_len=8, nla_type=NDA_PROBES}, 0], [{nla_len=20, nla_type=NDA_CACHEINFO}, {ndm_confirmed=9856697, ndm_used=9850697, ndm_updated=9850697, ndm_refcnt=0}]]], [{nlmsg_len=76, nlmsg_type=RTM_NEWNEIGH, nlmsg_flags=NLM_F_MULTI, nlmsg_seq=1700842579, nlmsg_pid=93199}, {ndm_family=AF_INET, ndm_ifindex=if_nametoindex("br0"), ndm_state=NUD_NOARP, ndm_flags=0, ndm_type=RTN_MULTICAST}, [[{nla_len=8, nla_type=NDA_DST}, inet_addr("224.0.0.22")], [{nla_len=10, nla_type=NDA_LLADDR}, 01:00:5e:00:00:16], [{nla_len=8, nla_type=NDA_PROBES}, 0], [{nla_len=20, nla_type=NDA_CACHEINFO}, {ndm_confirmed=9857289, ndm_used=9851289, ndm_updated=9851289, ndm_refcnt=0}]]], [{nlmsg_len=76, nlmsg_type=RTM_NEWNEIGH, nlmsg_flags=NLM_F_MULTI, nlmsg_seq=1700842579, nlmsg_pid=93199}, {ndm_family=AF_INET, ndm_ifindex=if_nametoindex("br0"), ndm_state=NUD_STALE, ndm_flags=0, ndm_type=RTN_UNICAST}, [[{nla_len=8, nla_type=NDA_DST}, inet_addr("192.168.0.1")], [{nla_len=10, nla_type=NDA_LLADDR}, 52:54:00:89:6f:2a], [{nla_len=8, nla_type=NDA_PROBES}, 1], [{nla_len=20, nla_type=NDA_CACHEINFO}, {ndm_confirmed=130038, ndm_used=130038, ndm_updated=126146, ndm_refcnt=0}]]], [{nlmsg_len=64, nlmsg_type=RTM_NEWNEIGH, nlmsg_flags=NLM_F_MULTI, nlmsg_seq=1700842579, nlmsg_pid=93199}, {ndm_family=AF_INET, ndm_ifindex=if_nametoindex("br0"), ndm_state=NUD_FAILED, ndm_flags=0, ndm_type=RTN_UNICAST}, [[{nla_len=8, nla_type=NDA_DST}, inet_addr("192.168.0.62")], [{nla_len=8, nla_type=NDA_PROBES}, 6], [{nla_len=20, nla_type=NDA_CACHEINFO}, {ndm_confirmed=9852620, ndm_used=8608387, ndm_updated=8608079, ndm_refcnt=0}]]], [{nlmsg_len=64, nlmsg_type=RTM_NEWNEIGH, nlmsg_flags=NLM_F_MULTI, nlmsg_seq=1700842579, nlmsg_pid=93199}, {ndm_family=AF_INET, ndm_ifindex=if_nametoindex("br0"), ndm_state=NUD_FAILED, ndm_flags=0, ndm_type=RTN_UNICAST}, [[{nla_len=8, nla_type=NDA_DST}, inet_addr("192.168.0.63")], [{nla_len=8, nla_type=NDA_PROBES}, 6], [{nla_len=20, nla_type=NDA_CACHEINFO}, {ndm_confirmed=8188704, ndm_used=103198, ndm_updated=102889, ndm_refcnt=0}]]], [{nlmsg_len=76, nlmsg_type=RTM_NEWNEIGH, nlmsg_flags=NLM_F_MULTI, nlmsg_seq=1700842579, nlmsg_pid=93199}, {ndm_family=AF_INET, ndm_ifindex=if_nametoindex("br0"), ndm_state=NUD_REACHABLE, ndm_flags=0, ndm_type=RTN_UNICAST}, [[{nla_len=8, nla_type=NDA_DST}, inet_addr("192.168.0.4")], [{nla_len=10, nla_type=NDA_LLADDR}, 74:42:7f:22:25:99], [{nla_len=8, nla_type=NDA_PROBES}, 1], [{nla_len=20, nla_type=NDA_CACHEINFO}, {ndm_confirmed=1526, ndm_used=1526, ndm_updated=1526, ndm_refcnt=1}]]], [{nlmsg_len=68, nlmsg_type=RTM_NEWNEIGH, nlmsg_flags=NLM_F_MULTI, nlmsg_seq=1700842579, nlmsg_pid=93199}, {ndm_family=AF_INET, ndm_ifindex=if_nametoindex("nebula.tun0"), ndm_state=NUD_NOARP, ndm_flags=0, ndm_type=RTN_BROADCAST}, [[{nla_len=8, nla_type=NDA_DST}, inet_addr("0.0.0.0")], {nla_len=4, nla_type=NDA_LLADDR}, [{nla_len=8, nla_type=NDA_PROBES}, 0], [{nla_len=20, nla_type=NDA_CACHEINFO}, {ndm_confirmed=0, ndm_used=9851269, ndm_updated=9851269, ndm_refcnt=0}]]], [{nlmsg_len=80, nlmsg_type=RTM_NEWNEIGH, nlmsg_flags=NLM_F_MULTI, nlmsg_seq=1700842579, nlmsg_pid=93199}, {ndm_family=AF_INET6, ndm_ifindex=if_nametoindex("nebula.tun0"), ndm_state=NUD_NOARP, ndm_flags=0, ndm_type=RTN_MULTICAST}, [[{nla_len=20, nla_type=NDA_DST}, inet_pton(AF_INET6, "ff02::1:3")], {nla_len=4, nla_type=NDA_LLADDR}, [{nla_len=8, nla_type=NDA_PROBES}, 0], [{nla_len=20, nla_type=NDA_CACHEINFO}, {ndm_confirmed=9857247, ndm_used=9851247, ndm_updated=9851247, ndm_refcnt=0}]]], [{nlmsg_len=88, nlmsg_type=RTM_NEWNEIGH, nlmsg_flags=NLM_F_MULTI, nlmsg_seq=1700842579, nlmsg_pid=93199}, {ndm_family=AF_INET6, ndm_ifindex=if_nametoindex("br0"), ndm_state=NUD_REACHABLE, ndm_flags=NTF_ROUTER, ndm_type=RTN_UNICAST}, [[{nla_len=20, nla_type=NDA_DST}, inet_pton(AF_INET6, "fe80::7642:7fff:fe22:2599")], [{nla_len=10, nla_type=NDA_LLADDR}, 74:42:7f:22:25:99], [{nla_len=8, nla_type=NDA_PROBES}, 1], [{nla_len=20, nla_type=NDA_CACHEINFO}, {ndm_confirmed=246, ndm_used=246, ndm_updated=246, ndm_refcnt=1}]]], [{nlmsg_len=80, nlmsg_type=RTM_NEWNEIGH, nlmsg_flags=NLM_F_MULTI, nlmsg_seq=1700842579, nlmsg_pid=93199}, {ndm_family=AF_INET6, ndm_ifindex=if_nametoindex("nebula.tun0"), ndm_state=NUD_NOARP, ndm_flags=0, ndm_type=RTN_MULTICAST}, [[{nla_len=20, nla_type=NDA_DST}, inet_pton(AF_INET6, "ff02::fb")], {nla_len=4, nla_type=NDA_LLADDR}, [{nla_len=8, nla_type=NDA_PROBES}, 0], [{nla_len=20, nla_type=NDA_CACHEINFO}, {ndm_confirmed=9857247, ndm_used=9851247, ndm_updated=9851247, ndm_refcnt=0}]]], [{nlmsg_len=88, nlmsg_type=RTM_NEWNEIGH, nlmsg_flags=NLM_F_MULTI, nlmsg_seq=1700842579, nlmsg_pid=93199}, {ndm_family=AF_INET6, ndm_ifindex=if_nametoindex("lo"), ndm_state=NUD_NOARP, ndm_flags=0, ndm_type=RTN_LOCAL}, [[{nla_len=20, nla_type=NDA_DST}, inet_pton(AF_INET6, "::1")], [{nla_len=10, nla_type=NDA_LLADDR}, 00:00:00:00:00:00], [{nla_len=8, nla_type=NDA_PROBES}, 0], [{nla_len=20, nla_type=NDA_CACHEINFO}, {ndm_confirmed=8394781, ndm_used=8394787, ndm_updated=8394787, ndm_refcnt=0}]]], [{nlmsg_len=88, nlmsg_type=RTM_NEWNEIGH, nlmsg_flags=NLM_F_MULTI, nlmsg_seq=1700842579, nlmsg_pid=93199}, {ndm_family=AF_INET6, ndm_ifindex=if_nametoindex("br0"), ndm_state=NUD_NOARP, ndm_flags=0, ndm_type=RTN_MULTICAST}, [[{nla_len=20, nla_type=NDA_DST}, inet_pton(AF_INET6, "ff02::1:ff00:50")], [{nla_len=10, nla_type=NDA_LLADDR}, 33:33:ff:00:00:50], [{nla_len=8, nla_type=NDA_PROBES}, 0], [{nla_len=20, nla_type=NDA_CACHEINFO}, {ndm_confirmed=9856972, ndm_used=9850972, ndm_updated=9850972, ndm_refcnt=0}]]], [{nlmsg_len=88, nlmsg_type=RTM_NEWNEIGH, nlmsg_flags=NLM_F_MULTI, nlmsg_seq=1700842579, nlmsg_pid=93199}, {ndm_family=AF_INET6, ndm_ifindex=if_nametoindex("br0"), ndm_state=NUD_NOARP, ndm_flags=0, ndm_type=RTN_MULTICAST}, [[{nla_len=20, nla_type=NDA_DST}, inet_pton(AF_INET6, "ff02::2")], [{nla_len=10, nla_type=NDA_LLADDR}, 33:33:00:00:00:02], [{nla_len=8, nla_type=NDA_PROBES}, 0], [{nla_len=20, nla_type=NDA_CACHEINFO}, {ndm_confirmed=9857037, ndm_used=9851037, ndm_updated=9851037, ndm_refcnt=0}]]], [{nlmsg_len=88, nlmsg_type=RTM_NEWNEIGH, nlmsg_flags=NLM_F_MULTI, nlmsg_seq=1700842579, nlmsg_pid=93199}, {ndm_family=AF_INET6, ndm_ifindex=if_nametoindex("br0"), ndm_state=NUD_NOARP, ndm_flags=0, ndm_type=RTN_MULTICAST}, [[{nla_len=20, nla_type=NDA_DST}, inet_pton(AF_INET6, "ff02::16")], [{nla_len=10, nla_type=NDA_LLADDR}, 33:33:00:00:00:16], [{nla_len=8, nla_type=NDA_PROBES}, 0], [{nla_len=20, nla_type=NDA_CACHEINFO}, {ndm_confirmed=9857310, ndm_used=9851310, ndm_updated=9851310, ndm_refcnt=0}]]], [{nlmsg_len=88, nlmsg_type=RTM_NEWNEIGH, nlmsg_flags=NLM_F_MULTI, nlmsg_seq=1700842579, nlmsg_pid=93199}, {ndm_family=AF_INET6, ndm_ifindex=if_nametoindex("br0"), ndm_state=NUD_NOARP, ndm_flags=0, ndm_type=RTN_MULTICAST}, [[{nla_len=20, nla_type=NDA_DST}, inet_pton(AF_INET6, "ff02::1:ff31:c12b")], [{nla_len=10, nla_type=NDA_LLADDR}, 33:33:ff:31:c1:2b], [{nla_len=8, nla_type=NDA_PROBES}, 0], [{nla_len=20, nla_type=NDA_CACHEINFO}, {ndm_confirmed=9857260, ndm_used=9851260, ndm_updated=9851260, ndm_refcnt=0}]]], [{nlmsg_len=88, nlmsg_type=RTM_NEWNEIGH, nlmsg_flags=NLM_F_MULTI, nlmsg_seq=1700842579, nlmsg_pid=93199}, {ndm_family=AF_INET6, ndm_ifindex=if_nametoindex("br0"), ndm_state=NUD_REACHABLE, ndm_flags=0, ndm_type=RTN_UNICAST}, [[{nla_len=20, nla_type=NDA_DST}, inet_pton(AF_INET6, "XXXX:XXXX:XXXX:XXXX:5ab3:2eea:1dbd:2160")], [{nla_len=10, nla_type=NDA_LLADDR}, 02:24:de:ad:be:ea], [{nla_len=8, nla_type=NDA_PROBES}, 1], [{nla_len=20, nla_type=NDA_CACHEINFO}, {ndm_confirmed=116, ndm_used=9846722, ndm_updated=9846722, ndm_refcnt=1}]]], [{nlmsg_len=88, nlmsg_type=RTM_NEWNEIGH, nlmsg_flags=NLM_F_MULTI, nlmsg_seq=1700842579, nlmsg_pid=93199}, {ndm_family=AF_INET6, ndm_ifindex=if_nametoindex("br0"), ndm_state=NUD_NOARP, ndm_flags=0, ndm_type=RTN_MULTICAST}, [[{nla_len=20, nla_type=NDA_DST}, inet_pton(AF_INET6, "ff02::1:3")], [{nla_len=10, nla_type=NDA_LLADDR}, 33:33:00:01:00:03], [{nla_len=8, nla_type=NDA_PROBES}, 0], [{nla_len=20, nla_type=NDA_CACHEINFO}, {ndm_confirmed=9857147, ndm_used=9851147, ndm_updated=9851147, ndm_refcnt=0}]]], [{nlmsg_len=80, nlmsg_type=RTM_NEWNEIGH, nlmsg_flags=NLM_F_MULTI, nlmsg_seq=1700842579, nlmsg_pid=93199}, {ndm_family=AF_INET6, ndm_ifindex=if_nametoindex("nebula.tun0"), ndm_state=NUD_NOARP, ndm_flags=0, ndm_type=RTN_MULTICAST}, [[{nla_len=20, nla_type=NDA_DST}, inet_pton(AF_INET6, "ff02::2")], {nla_len=4, nla_type=NDA_LLADDR}, [{nla_len=8, nla_type=NDA_PROBES}, 0], [{nla_len=20, nla_type=NDA_CACHEINFO}, {ndm_confirmed=9857269, ndm_used=9851269, ndm_updated=9851269, ndm_refcnt=0}]]], [{nlmsg_len=80, nlmsg_type=RTM_NEWNEIGH, nlmsg_flags=NLM_F_MULTI, nlmsg_seq=1700842579, nlmsg_pid=93199}, {ndm_family=AF_INET6, ndm_ifindex=if_nametoindex("nebula.tun0"), ndm_state=NUD_NOARP, ndm_flags=0, ndm_type=RTN_MULTICAST}, [[{nla_len=20, nla_type=NDA_DST}, inet_pton(AF_INET6, "ff02::16")], {nla_len=4, nla_type=NDA_LLADDR}, [{nla_len=8, nla_type=NDA_PROBES}, 0], [{nla_len=20, nla_type=NDA_CACHEINFO}, {ndm_confirmed=9857269, ndm_used=9851269, ndm_updated=9851269, ndm_refcnt=0}]]], [{nlmsg_len=88, nlmsg_type=RTM_NEWNEIGH, nlmsg_flags=NLM_F_MULTI, nlmsg_seq=1700842579, nlmsg_pid=93199}, {ndm_family=AF_INET6, ndm_ifindex=if_nametoindex("br0"), ndm_state=NUD_STALE, ndm_flags=0, ndm_type=RTN_UNICAST}, [[{nla_len=20, nla_type=NDA_DST}, inet_pton(AF_INET6, "fe80::24:deff:fead:beea")], [{nla_len=10, nla_type=NDA_LLADDR}, 02:24:de:ad:be:ea], [{nla_len=8, nla_type=NDA_PROBES}, 1], [{nla_len=20, nla_type=NDA_CACHEINFO}, {ndm_confirmed=9845647, ndm_used=9845647, ndm_updated=9843597, ndm_refcnt=0}]]], [{nlmsg_len=88, nlmsg_type=RTM_NEWNEIGH, nlmsg_flags=NLM_F_MULTI, nlmsg_seq=1700842579, nlmsg_pid=93199}, {ndm_family=AF_INET6, ndm_ifindex=if_nametoindex("br0"), ndm_state=NUD_STALE, ndm_flags=NTF_ROUTER, ndm_type=RTN_UNICAST}, [[{nla_len=20, nla_type=NDA_DST}, inet_pton(AF_INET6, "fda6:32d4:dae9::1")], [{nla_len=10, nla_type=NDA_LLADDR}, 74:42:7f:22:25:99], [{nla_len=8, nla_type=NDA_PROBES}, 1], [{nla_len=20, nla_type=NDA_CACHEINFO}, {ndm_confirmed=2482524, ndm_used=2482524, ndm_updated=2480015, ndm_refcnt=0}]]], [{nlmsg_len=88, nlmsg_type=RTM_NEWNEIGH, nlmsg_flags=NLM_F_MULTI, nlmsg_seq=1700842579, nlmsg_pid=93199}, {ndm_family=AF_INET6, ndm_ifindex=if_nametoindex("br0"), ndm_state=NUD_NOARP, ndm_flags=0, ndm_type=RTN_MULTICAST}, [[{nla_len=20, nla_type=NDA_DST}, inet_pton(AF_INET6, "ff02::1:2")], [{nla_len=10, nla_type=NDA_LLADDR}, 33:33:00:01:00:02], [{nla_len=8, nla_type=NDA_PROBES}, 0], [{nla_len=20, nla_type=NDA_CACHEINFO}, {ndm_confirmed=9857034, ndm_used=9851034, ndm_updated=9851034, ndm_refcnt=0}]]]], iov_len=32768}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 1940
192.168.0.12 dev br0 lladdr 34:d2:70:fe:b8:15 STALE
192.168.0.1 dev br0 lladdr 52:54:00:89:6f:2a STALE
192.168.0.62 dev br0 FAILED
192.168.0.63 dev br0 FAILED
192.168.0.4 dev br0 lladdr 74:42:7f:22:25:99 REACHABLE
fe80::7642:7fff:fe22:2599 dev br0 lladdr 74:42:7f:22:25:99 router REACHABLE
XXXX:XXXX:XXXX:XXXX:5ab3:2eea:1dbd:2160 dev br0 lladdr 02:24:de:ad:be:ea REACHABLE
fe80::24:deff:fead:beea dev br0 lladdr 02:24:de:ad:be:ea STALE
fda6:32d4:dae9::1 dev br0 lladdr 74:42:7f:22:25:99 router STALE
recvmsg(3, {msg_name={sa_family=AF_NETLINK, nl_pid=0, nl_groups=00000000}, msg_namelen=12, msg_iov=[{iov_base=NULL, iov_len=0}], msg_iovlen=1, msg_controllen=0, msg_flags=MSG_TRUNC}, MSG_PEEK|MSG_TRUNC) = 20
recvmsg(3, {msg_name={sa_family=AF_NETLINK, nl_pid=0, nl_groups=00000000}, msg_namelen=12, msg_iov=[{iov_base=[{nlmsg_len=20, nlmsg_type=NLMSG_DONE, nlmsg_flags=NLM_F_MULTI, nlmsg_seq=1700842579, nlmsg_pid=93199}, 0], iov_len=32768}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 20
+++ exited with 0 +++

@rossmeier
Copy link

rossmeier commented Nov 25, 2023

Same problem here with seemingly even simpler networking setup. Arch with systemd-networkd and kernel 6.6.2-arch1-1:

# ip neigh
172.31.1.1 dev ens3 lladdr d2:74:7f:6e:37:e3 REACHABLE
fe80::1 dev ens3 lladdr d2:74:7f:6e:37:e3 router REACHABLE

strace shows some interesting results:

# strace -ff -erecvmsg ip neigh show 2>&1 | grep -o -E "nla_len=.{,3}, nla_type=NDA_LLADDR"
nla_len=10, nla_type=NDA_LLADDR
nla_len=10, nla_type=NDA_LLADDR
nla_len=10, nla_type=NDA_LLADDR
nla_len=10, nla_type=NDA_LLADDR
nla_len=4, nla_type=NDA_LLADDR
nla_len=10, nla_type=NDA_LLADDR
nla_len=10, nla_type=NDA_LLADDR
nla_len=10, nla_type=NDA_LLADDR
nla_len=10, nla_type=NDA_LLADDR
nla_len=10, nla_type=NDA_LLADDR
nla_len=10, nla_type=NDA_LLADDR
nla_len=10, nla_type=NDA_LLADDR
# strace -ff -erecvmsg ip neigh show 2>&1 | grep -o -E "nla_len=.{,3}, nla_type=NDA_DST"
nla_len=8, nla_type=NDA_DST
nla_len=8, nla_type=NDA_DST
nla_len=8, nla_type=NDA_DST
nla_len=8, nla_type=NDA_DST
nla_len=8, nla_type=NDA_DST
nla_len=20, nla_type=NDA_DST
nla_len=20, nla_type=NDA_DST
nla_len=20, nla_type=NDA_DST
nla_len=20, nla_type=NDA_DST
nla_len=20, nla_type=NDA_DST
nla_len=20, nla_type=NDA_DST
nla_len=20, nla_type=NDA_DST

Does not seem like the values the go library expects at all, however I don't know what nla_len is exactly and if that is different than the number of bytes the go lib expects. It seems like nla_len is always 4 greater than the payload. So I'm guessing the problem is the empty LLADDR reported for the "0.0.0.0" destination:

[[{nla_len=8, nla_type=NDA_DST}, inet_addr("0.0.0.0")], {nla_len=4, nla_type=NDA_LLADDR}, [{nla_len=8, nla_type=NDA_PROBES}, 0], [{nla_len=20, nla_type=NDA_CACHEINFO}, {ndm_confirmed=386074, ndm_used=380074, ndm_updated=380074, ndm_refcnt=0}]]

edit: this last line also appears in the dump from @jpds

@jsimonetti
Copy link

jsimonetti commented Nov 25, 2023

You could be on to something here. Let me see if I can make a reproducer.

WRT nla_len that is the attribute length including the length and type field, which are each 2 bytes, so it is to be expected that it is always 4 more than the data size.

@dswarbrick
Copy link
Contributor

FWIW, I tried to prove a suspicion that it is related to network namespaces, but alas that proved fruitless. node_exporter works as expected, even when running in a non-global netns.

@jsimonetti
Copy link

jsimonetti commented Nov 27, 2023

You could be on to something here. Let me see if I can make a reproducer.

This looks like it is the issue currently. It appears iproute2 silently ignores this entry.

I think the correct course of action would be to allow zero-length NDA_LLADDR attributes on a neighbor entry, as clearly the kernel thinks it's OK. This could have some effects to consumers of the module, as they would now have to manually filter out these entries.

@SuperQ
Copy link
Member

SuperQ commented Nov 27, 2023

Opened a proposal PR: jsimonetti/rtnetlink#199

@jsimonetti
Copy link

Updated and released https://github.com/jsimonetti/rtnetlink/releases/tag/v1.4.0

@SuperQ
Copy link
Member

SuperQ commented Nov 27, 2023

Dependabot will bump that in the next couple days. I'll see about doing a cherry-pick of the PR once it's ready.

@dswarbrick
Copy link
Contributor

dswarbrick commented Nov 27, 2023

This looks like it is the issue currently. It appears iproute2 silently ignores this entry.

The ll_addr_n2a function in the iproute2 source code sheds some light on how it handles various length NDA_LLADRs:

const char *ll_addr_n2a(const unsigned char *addr, int alen, int type,
            char *buf, int blen)
{
    int i;
    int l;

    if (alen == 4 &&
        (type == ARPHRD_TUNNEL || type == ARPHRD_SIT
         || type == ARPHRD_IPGRE))
        return inet_ntop(AF_INET, addr, buf, blen);

    if (alen == 16 && (type == ARPHRD_TUNNEL6 || type == ARPHRD_IP6GRE))
        return inet_ntop(AF_INET6, addr, buf, blen);
    if (alen == 7 && type == ARPHRD_AX25)
        return ax25_ntop(AF_AX25, addr, buf, blen);
    if (alen == 7 && type == ARPHRD_NETROM)
        return netrom_ntop(AF_NETROM, addr, buf, blen);
    if (alen == 5 && type == ARPHRD_ROSE)
        return rose_ntop(AF_ROSE, addr, buf, blen);

    snprintf(buf, blen, "%02x", addr[0]);
    for (i = 1, l = 2; i < alen && l < blen; i++, l += 3)
        snprintf(buf + l, blen - l, ":%02x", addr[i]);
    return buf;
}

The type is taken from the interface with which the link-local address is associated. Some of these types (ARPHRD_NETROM, ARPHRD_AX25) are quite archaic, and probably not likely to be encountered in most environments. However, several of them are still in widespread use, e.g. the various tunnel types.

cf. (abridged):

/* ARP protocol HARDWARE identifiers. */
#define ARPHRD_NETROM	0		/* from KA9Q: NET/ROM pseudo	*/
#define	ARPHRD_AX25	3		/* AX.25 Level 2		*/

/* Dummy types for non ARP hardware */
#define ARPHRD_ROSE	270
#define ARPHRD_TUNNEL	768		/* IPIP tunnel			*/
#define ARPHRD_TUNNEL6	769		/* IP6IP6 tunnel       		*/
#define ARPHRD_SIT	776		/* sit0 device - IPv6-in-IPv4	*/
#define ARPHRD_IPGRE	778		/* GRE over IP			*/
#define ARPHRD_IP6GRE	823		/* GRE over IPv6		*/

Technically, the ll_addr_n2a function will handle a NDA_LLADDR with zero-length alen:

    snprintf(buf, blen, "%02x", addr[0]);
    for (i = 1, l = 2; i < alen && l < blen; i++, l += 3)
        snprintf(buf + l, blen - l, ":%02x", addr[i]);
    return buf;

Since this code would still expect at least one byte of valid data in addr[0], I suspect that elsewhere in the iproute2 source code they avoid calling this function with zero-length alen.

@dswarbrick
Copy link
Contributor

@jsimonetti I think it's worth studying the print_neigh function in the iproute2 source code, because there are a lot of checks that it performs on the nlmsghdr before it gets to handling the NDA_DST / NDA_LLADDR types. Some of those checks bail out of the print_neigh function early, which may explain how the Go code ended up trying to process stuff that it shouldn't.

@jsimonetti
Copy link

@jsimonetti I think it's worth studying the print_neigh function in the iproute2 source code, because there are a lot of checks that it performs on the nlmsghdr before it gets to handling the NDA_DST / NDA_LLADDR types. Some of those checks bail out of the print_neigh function early, which may explain how the Go code ended up trying to process stuff that it shouldn't.

(disclaimer, I had only a quick glance at that code)
It looks like those checks are related to the filter you use with the ip neigh command.

For example, I see the zero-lladdr entries if I specifically query for it:

# ip neigh get 0.0.0.0 dev eth0

0.0.0.0 dev eth0 lladdr 08 NOARP

This filtering should be done in the application and not in the rtnetlink library, imho.

@dswarbrick
Copy link
Contributor

This filtering should be done in the application and not in the rtnetlink library, imho.

I agree, but since node_exporter is calling the code as follows, it returns the rtnetlink error to the function caller:

    neighbors, err := conn.Neigh.List()
    if err != nil {
        return nil, err 
    }

If a zero-length lladdr is valid, and there is something else in the neighbor struct that we can test on, then I don't see any problem with the rtnetlink returning such entries.

monogon-bot pushed a commit to monogon-dev/monogon that referenced this issue Nov 27, 2023
See prometheus/node_exporter#2849 and
https://github.com/jsimonetti/rtnetlink/releases/tag/v1.4.0
for discussion.

Change-Id: Id9d9630bf32c121ec059a3ee1de9b4e8aa42fb92
Reviewed-on: https://review.monogon.dev/c/monogon/+/2402
Reviewed-by: Tim Windelschmidt <tim@monogon.tech>
Tested-by: Jenkins CI
@dswarbrick
Copy link
Contributor

I'm pretty sure this "NOARP" situation should already be correctly handled by node_exporter, as explicitly commented by me when I wrote the code:

    for _, n := range neighbors {
        // Neighbors will also contain IPv6 neighbors, but since this is purely an ARP collector,
        // restrict to AF_INET. Also skip entries which have state NUD_NOARP to conform to output
        // of /proc/net/arp.
        if n.Family == unix.AF_INET && n.State&unix.NUD_NOARP == 0 { 
            ifIndexEntries[n.Index]++
        }   
    }

So it's really just up to the rtnetlink package to return such entries instead of an error.

@jsimonetti
Copy link

So it's really just up to the rtnetlink package to return such entries instead of an error.

Correct me if I'm wrong, but isn't that exactly wat jsimonetti/rtnetlink#200 does?

@dswarbrick
Copy link
Contributor

Correct me if I'm wrong, but isn't that exactly wat jsimonetti/rtnetlink#200 does?

It may do, but if it does, it may just be by fortuitous coincidence.

I based the node_exporter arp collector on the Linux kernel source code which is responsible for generating the entries when viewing /proc/net/arp (net/core/neighbour.c) - functions neigh_get_first, neigh_get_next.

@agrimal
Copy link

agrimal commented Dec 28, 2023

Also having the same error log on Debian 12 with node_exporter v1.7.0.
There is a wireguard tunnel configured in the machine and also a docker bridge with a docker container.

2023-12-28T15:17:04+0100 sbx node_exporter[1932]: ts=2023-12-28T14:17:04.725Z caller=collector.go:169 level=error msg="collector failed" name=arp duration_seconds=6.014e-05 err="could not get ARP entries: rtnetlink NeighMessage has a wrong attribute data length"
2023-12-28T15:17:19+0100 sbx node_exporter[1932]: ts=2023-12-28T14:17:19.720Z caller=collector.go:169 level=error msg="collector failed" name=arp duration_seconds=8.1655e-05 err="could not get ARP entries: rtnetlink NeighMessage has a wrong attribute data length"
2023-12-28T15:17:34+0100 sbx node_exporter[1932]: ts=2023-12-28T14:17:34.725Z caller=collector.go:169 level=error msg="collector failed" name=arp duration_seconds=6.0678e-05 err="could not get ARP entries: rtnetlink NeighMessage has a wrong attribute data length"
node_exporter, version 1.7.0 (branch: HEAD, revision: 7333465abf9efba81876303bb57e6fadb946041b)
  build user:       root@35918982f6d8
  build date:       20231112-23:53:35
  go version:       go1.21.4
  platform:         linux/amd64
  tags:             netgo osusergo static_build
# strace -ff -erecvmsg ip neigh show 2>&1 | grep -o -E "nla_len=.{,3}, nla_type=NDA_DST"
nla_len=8, nla_type=NDA_DST
nla_len=8, nla_type=NDA_DST
nla_len=8, nla_type=NDA_DST
nla_len=8, nla_type=NDA_DST
nla_len=8, nla_type=NDA_DST
nla_len=8, nla_type=NDA_DST
nla_len=8, nla_type=NDA_DST
nla_len=8, nla_type=NDA_DST
nla_len=8, nla_type=NDA_DST
# strace -ff -erecvmsg ip neigh show 2>&1 | grep -o -E "nla_len=.{,3}, nla_type=NDA_LLADDR"
nla_len=10, nla_type=NDA_LLADDR
nla_len=10, nla_type=NDA_LLADDR
nla_len=10, nla_type=NDA_LLADDR
nla_len=10, nla_type=NDA_LLADDR
nla_len=10, nla_type=NDA_LLADDR
nla_len=10, nla_type=NDA_LLADDR
nla_len=10, nla_type=NDA_LLADDR
nla_len=10, nla_type=NDA_LLADDR
nla_len=4, nla_type=NDA_LLADDR

@jsimonetti
Copy link

In lieu of these errors It might be best to completely remove the length check from rtnetlink. I 'll have a PR ready in few minutes to adress this.

@calbot
Copy link

calbot commented Dec 29, 2023

I get this problem and have a wireguard vpn tunnel (running in docker on network mode host). Maybe something to that.

@dswarbrick
Copy link
Contributor

dswarbrick commented Dec 30, 2023

I'm fairly certain that node_exporter (indirectly) trips over the nla_len=4, nla_type=NDA_LLADDR cases due to the error being raised by the rtnetlink package. To quote one such neighbor entry from the debug output kindly provided by @jpds earlier in this issue (reformatted for readability):

[
  {nlmsg_len=68, nlmsg_type=RTM_NEWNEIGH, nlmsg_flags=NLM_F_MULTI, nlmsg_seq=1700842579, nlmsg_pid=93199},
  {ndm_family=AF_INET, ndm_ifindex=if_nametoindex("nebula.tun0"), ndm_state=NUD_NOARP, ndm_flags=0, ndm_type=RTN_BROADCAST},
  [
    [{nla_len=8, nla_type=NDA_DST}, inet_addr("0.0.0.0")],
    {nla_len=4, nla_type=NDA_LLADDR},
    [{nla_len=8, nla_type=NDA_PROBES}, 0],
    [{nla_len=20, nla_type=NDA_CACHEINFO}, {ndm_confirmed=0, ndm_used=9851269, ndm_updated=9851269, ndm_refcnt=0}]
  ]
]

Note the absent link-layer address in the NDA_LLADDR attribute, since point-to-point tunnel interfaces typically do not rely on them, along with the NUD_NOARP state of the overall neighbor entry. The nla_len in such cases is 4, since the size of the rtattr struct is four bytes:

struct rtattr {
	unsigned short	rta_len;
	unsigned short	rta_type;
};

nla_len includes the size of the rtattr header struct in the length, so an "empty" attribute will have nla_len=4, i.e. just the rtattr struct and nothing else.

node_exporter would handle such entries correctly, if the rtnetlink package returned such entries without error, since node_exporter checks for the NUD_NOARP state and skips such entries.

For comparison's sake, this is a typical rtnetlink response for a "normal" IPv4 neighbor on an ethernet / wifi link:

[
  {nlmsg_len=76, nlmsg_type=RTM_NEWNEIGH, nlmsg_flags=NLM_F_MULTI, nlmsg_seq=1703912588, nlmsg_pid=6344},
  {ndm_family=AF_INET, ndm_ifindex=if_nametoindex("wlp0s20f3"), ndm_state=NUD_REACHABLE, ndm_flags=0, ndm_type=RTN_UNICAST},
  [
    [{nla_len=8, nla_type=NDA_DST}, inet_addr("192.168.1.1")],
    [{nla_len=10, nla_type=NDA_LLADDR}, 60:31:47:6c:f2:21],
    [{nla_len=8, nla_type=NDA_PROBES}, 1],
    [{nla_len=20, nla_type=NDA_CACHEINFO}, {ndm_confirmed=1640, ndm_used=1640, ndm_updated=1640, ndm_refcnt=1}]
  ]
]

We have [{nla_len=10, nla_type=NDA_LLADDR}, 60:31:47:6c:f2:21], i.e. the four-byte rtattr struct, followed by six bytes of MAC address.

jsimonetti/rtnetlink#200 provides a workaround whereby the rtnetlink package will skip empty NDA_LLADDR entries instead of raising an error. Ideally however, such entries should be returned to the caller, and leave the decision how to interpret them up to the caller (e.g. by consulting ndm_state).

In any case, node_exporter needs to tag a new release which is built against a more recent rtnetlink package. The continuing confirmations of this bug are in part due to the fact that node_exporter v1.7.0 is built against a version of rtnetlink which returns an error when it encounters such empty NDA_LLADDR entries.

@rossmeier
Copy link

This bug should have been fixed with #2864 but that one has not be released yet.

@jC3rny
Copy link

jC3rny commented Jan 25, 2024

Unfortunately #2864 doesn't solve the problem, at least not for me. I had to build node_exporter with this version jsimonetti/rtnetlink#208.

@jsimonetti
Copy link

@jC3rny Thank you for reporting. I am still trying to come up with a good testcase for this. Could you please describe your network conditions under which this occurs?

@teckglobal
Copy link

teckglobal commented Feb 1, 2024

Virtual Machine:
Ubuntu 2204 ARM 2cpu 12gigs ram running on Oracle Cloud

Node Exporter version 1.7.0 using the linux arm version and running with ./node_exporter using defaults

The node_exporter log output starts showing an error with the following output:

ts=2024-02-01T17:36:24.728Z caller=collector.go:169 level=error msg="collector failed" name=arp duration_seconds=0.000242241 err="could not get ARP entries: rtnetlink NeighMessage has a wrong attribute data length"

ts=2024-02-01T17:36:29.731Z caller=collector.go:169 level=error msg="collector failed" name=arp duration_seconds=0.000115001 err="could not get ARP entries: rtnetlink NeighMessage has a wrong attribute data length"

This error occurs on my armv7 device too. Just getting flooded with this message over and over I have decided to wait from using the exporter until this has been corrected.

@SuperQ
Copy link
Member

SuperQ commented Feb 1, 2024

#2909 should fix this.

@ppenguin
Copy link

ppenguin commented Feb 1, 2024

Thanks for fixing this! I was bitten by this today on one nixos server that had gotten updated with the sensitive dep mix.
For nixos users out there: if you don't want to wait for the fixes to propagate, this overlay will get you the fix in #2909 deployed:

    (final: prev: {
      prometheus-node-exporter = prev.prometheus-node-exporter.overrideAttrs
        (_: _: {
          version = "unstable-20240201";
          __noChroot =
            true; # escape sandbox (on build host must be set: nix.settings.sandbox = "relaxed" !!!), because we need to download modules during build
          # also we must build with --impure
          buildFlags = "-mod=mod";
          preBuild = ''
            GOPROXY="direct"
            GOSUMDB="sum.golang.org"
          '';

          src = prev.fetchFromGitHub {
            rev = "57de74a5f63feb222d4506afd2e8f384247fc51a";
            owner = "prometheus";
            repo = "node_exporter";
            sha256 = "sha256-4Zed9joc2JfMwkQoxk32hWuPa6L6OzQfx8IcyUKh+dE=";
          };

        });
    })

The hocus pocus with mod and GOPROXY is to avoid having to care about the vendorHash, since this is a temporary solution anyway.

@SuperQ
Copy link
Member

SuperQ commented Feb 3, 2024

Great, thanks for confirming.

@SuperQ SuperQ closed this as completed Feb 3, 2024
@lukedirtwalker
Copy link

@SuperQ would it be possible to have this in a release? Is there already a planned roadmap? Thank you.

@discordianfish
Copy link
Member

I wish we would have automated, monthly releases but I just can't justify spending (significant) time on it without anyone paying for it.. But yeah I agree, it's probably time for a new release.

@cicognani1971
Copy link

@discordianfish when do you think to release the fix for ARM7? Thank you very much

@oncilla
Copy link

oncilla commented Apr 24, 2024

For anyone waiting, v1.8.0 has been released 🎉

https://github.com/prometheus/node_exporter/releases/tag/v1.8.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests