Subject: Re: netdev: operstate UNKNOWN for loopback and other devices?

From: Stephen Hemminger <[email-masked]>
Date: Wed, 20 Nov 2024 09:08:32 -0800

On Tue, 19 Nov 2024 19:23:53 -0800
Jakub Kicinski <[email-masked]> wrote:

> On Tue, 19 Nov 2024 15:37:03 -0800 Stephen Hemminger wrote:
> > It looks like loopback and other software devices never get the operstate
> > set correctly. Not a serious problem, but it is incorrect.
> > 
> > For example:
> > $ ip -br link
> > lo               UNKNOWN        00:00:00:00:00:00 <LOOPBACK,UP,LOWER_UP> 
> > 
> > tap0             UNKNOWN        ca:ff:ed:bf:96:a0 <BROADCAST,PROMISC,UP,LOWER_UP> 
> > tap1             UNKNOWN        36:f5:16:d1:4c:15 <BROADCAST,PROMISC,UP,LOWER_UP> 
> > 
> > For wireless and ethernet devices kernel reports UP and DOWN correctly.
> > 
> > Looks like some missing bits in dev_open but not sure exactly where.  
> 
> I thought it means the driver doesn't have any notion of the carrier,
> IOW the carrier will never go down. Basically those drivers don't
> call netif_carrier_{on,off}() at all, and rely on carrier being on
> by default at netdev registration.

Tap device does have concept of pseudo carrier. If application has file descriptor
open it reports carrier, if the device is present but application has not opened
it then carrier is reported down.