3
$ ip link | grep vboxnet
10: vboxnet0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000

In the angle brackets, it says UP. What do the angle brackets indicate?

Further in the line, it claims state DOWN. This seems to conflict with the earlier information. Is the interface up or down?

In the manual pages, ip-link, ip, and ip-address, I cannot find what the angle brackets mean.

2

1 Answer 1

9

Within the angle brackets there is a list of flags (= on/off type properties) of the interface. After the flags, non-binary properties (also known as attributes) are listed.

There are two concepts you should be aware of:

  • administrative state: the state you've commanded the network interface to be (i.e., active or not)
  • operational state: the state the network interface is actually in

If you configure the network interface, its administrative state will be set to UP immediately, but the operational state will change only after the physical interface is successfully powered up, the link pulse from the other end has been detected, autonegotiation has been completed (if applicable) and the interface and the driver are fully ready to pass traffic.

In the ip link output, the UP flag describes the interface's administrative state. There are two related flags: LOWER_UP that gets added when the card is physically ready for traffic, and NO-CARRIER if there is no signal from the other end. These two flags would be considered parts of the operational state.

So, your vboxnet0 interface has been commanded to be up (= active), but currently there are no virtual machines connected to this virtual interface, so the interface is flagged NO-CARRIER and is therefore operationally down, at least until some virtual machine starts using it.

The actual kernel-level flags are called IFF_UP for "interface administratively enabled" and IFF_RUNNING for "interface operationally ready". The old ifconfig command used to just show them directly (without the IFF_ prefix), but the absence of RUNNING was not easy to notice, so ip link command now has this logic:

 IF (IFF_UP is set) AND (IFF_RUNNING is not set)
 THEN display an extra flag "NO-CARRIER" in the flags field

The kernel-level flags are described in the netdevice(7) man page, under "DESCRIPTION" → "Ioctls".

2

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.