0

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 127.0.0.1/8 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?

JCCyC
  • 680
  • 3
  • 13
  • 24

2 Answers2

2

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
Zoredache
  • 130,897
  • 41
  • 276
  • 420
0

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.

Gerald Combs
  • 6,441
  • 25
  • 35