8

Can anyone provide some information about the HW Type, and what the Flags mean, for the Arp command shown below?

root@OpenWrt:~# arp -x
IP address       HW type     Flags       HW address            Mask     Device
192.168.1.67     0x1         0x0         00:00:00:00:00:00     *        eth0.2
192.168.1.115    0x1         0x0         00:00:00:00:00:00     *        eth0.2
192.168.1.1      0x1         0x2         00:1f:90:XX:XX:XX     *        eth0.2
192.168.10.199   0x1         0x2         78:31:c1:XX:XX:XX     *        br-lan

I looked at Man on a Linux box (no Man on OpenWRT), but I can't seem to find it.

I gather 0x0 means "Incomplete", but wondering what the other flags could be and mean.

8

The flags indicate if the mac address has been learned, manually set, published (announced by another node than the requested) or is incomplete.

I think you can must check your kernel source to figure out what the flags mean or you simply try it. My system translates

  • 0x0 incomplete
  • 0x2 complete
  • 0x6 complete and manually set

Learned by comparing the output of arp with /proc/net/arp.

The definition of the flags is given in include/uapi/linux/if_arp.h.

| improve this answer | |
  • Do you have anything that might explicitly explain what 0x0 is, e.g. 0x0 => incomplete, 0x1 => manually set? etc – rainkinz Oct 7 '14 at 16:54
  • 1
    Good call on the source code. Should have thought of that (note the values I found in the source don't quite match what you have): github.com/openwrt/linux/blob/master/include/uapi/linux/… /* ARP Flag values. */ #define ATF_COM 0x02 /* completed entry (ha valid) */ #define ATF_PERM 0x04 /* permanent entry */ #define ATF_PUBL 0x08 /* publish entry */ #define ATF_USETRAILERS 0x10 /* has requested trailers */ #define ATF_NETMASK 0x20 /* want to use a netmask (only for proxy entries) */ #define ATF_DONTPUB 0x40 /* don't answer this addresses */ – rainkinz Oct 7 '14 at 18:13
  • Thanks for the pointer to the source file! My source has the same flags as you have. So, 0x04 translates to manually set and 0x06 is the sum of complete and manually set. However, I am wondering if we will ever see 0x04... – user3422070 Oct 8 '14 at 9:12
  • 1
    The flags I’ve seen are the letters “C” and “M”. Based on this, I'm presuming “C” indicates “Complete” and “M” indicates “Manual”. – Patrick Dark May 29 '19 at 6:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.