Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Consider the output of a typical ip addr show on Linux:

# ip addr show
1: lo: <LOOPBACK,UP,10000> mtu 16436 qdisc noqueue
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth1: <BROADCAST,MULTICAST,NOTRAILERS,UP,10000> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet nnn.nnn.nnn.nnn/n brd nnn.nnn.nnn.nnn scope global eth1
    inet6 nnnn::nnnn:nnnn:nnnn:nnnn/nn scope link
       valid_lft forever preferred_lft forever

Look at the first field of the second line of each interface output: it says "link/loopback" for the loopback interface and "link/ether" for the physical NIC.

My question is: What OTHER values can I expect in this field? "link/bluetooth"? "link/ppp"? Is there an authoritative list for these link type strings?

share|improve this question
up vote 2 down vote accepted

I think you want to simply grab the source for iproute an look at the file ll_types.c.

Here is an incomplete list.

ether eether ax25 pronet chaos ieee802 tr arcnet
atalk dlci atm metricom ieee1394 infiniband
slip cslip slip6 cslip6 rsrvd adapt rose x25
ppp hdlc ipip tunnel6 loopback ltalk fddi
share|improve this answer

Take a look at the ARPHRD_* entries in /usr/include/net/if_arp.h. I can't find any documentation that explicitly says this is the canonical hardware list, but it's what libpcap uses to determine the data link type for an interface.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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