From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Robert P. J. Day" Subject: Re: how PHY driver is notified that cable is unplugged? (possibly related to IFF_RUNNING flag) Date: Wed, 1 Aug 2018 17:45:31 -0400 (EDT) Message-ID: References: <20180801085826.Horde.rj4qsfJlofF1IKzzUQgwFrO@crashcourse.ca> <4dc00fa3-daef-bfdb-cb50-6bcddaa2d2c9@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="8323328-29975318-1533159934=:15490" Cc: netdev@vger.kernel.org, andrew@lunn.ch To: Florian Fainelli Return-path: Received: from cpanel4.indieserve.net ([199.212.143.9]:54672 "EHLO cpanel4.indieserve.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725935AbeHAXem (ORCPT ); Wed, 1 Aug 2018 19:34:42 -0400 In-Reply-To: <4dc00fa3-daef-bfdb-cb50-6bcddaa2d2c9@gmail.com> Sender: netdev-owner@vger.kernel.org List-ID: This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --8323328-29975318-1533159934=:15490 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8BIT On Wed, 1 Aug 2018, Florian Fainelli wrote: > On 08/01/2018 05:58 AM, rpjday@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 > > 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 --8323328-29975318-1533159934=:15490--