On Wed, 1 Aug 2018, Florian Fainelli wrote: > On 08/01/2018 05:58 AM, rpj...@crashcourse.ca wrote: > > > > (warning that i have a few questions that are probably trivial > > until i get up to speed with networking code.) > > > > a colleague asked for advice about the following -- apparently a > > new PHY driver works properly when being brought up with "ifconfig > > <ifname> up", part of that process apparently setting the > > IFF_RUNNING net_device flags bit. so far, so good. > > > > now, when the cable is physically unplugged, the claim is that > > there is no obvious status change for that port, accompanied by > > the suggestion that it is that IFF_RUNNING flag bit that is not > > being unset. > > > > asking a more general question, where can i read up on the > > proper protocol for a driver being notified of, and properly > > handling, physical disconnection on that port? and, of course, the > > cable being plugged back in. > > The basic mechanism used by the PHY library is to read the standard > Basic Mode Status Register and check the Link status bit to > determine what the state of the link is set. This event can be > triggered either through polling, or the use of an interrupt that > the PHY is generating. > > Once the link state is determined, because the PHY device is > "connected" to a network device, the PHY library can call > netif_carrier_{on,off} against the network device attached to the > PHY and that propagates through the networking stack and sets the > appropriate bits, including IFF_RUNNING.
yup, that agrees with the code i was perusing, thanks for clarifying. more questions coming shortly, hopefully tougher. rday