On Fri, 07 Jul 2006 11:56:28 +0200 Patrick McHardy <[EMAIL PROTECTED]> wrote:
> Stefan Rompf wrote: > > Am Donnerstag 06 Juli 2006 09:42 schrieb Patrick McHardy: > > > > > >>>I believe this link-state logic was added by someone else. I'm not > >>>sure exactly what these flags are supposed to do, so I am not sure if > >>>they should be propagated to the VLAN or not. > >> > >>I looked into this. The present flag used to get propagated from the > >>real device until this patch, presumably to make sure no operations > >>on the vlan device will be passed through to the underlying device > >>when it is not present. > > > > > > The present flag is changed by netif_device_attach() and > > netif_device_detach(), and these functions do not emit a > > netdev_state_change() afterwards. So there is a good chance that > > vlan_device_event() won't be called and cannot transfer the flag. > > netif_device_detach() also sets __LINK_STATE_XOFF implicitely. > > True. > > > Ok, let's see who cares for netif_device_present(): > > > > -SIOCSIFMAP, dev->set_config() (change media type) > > -dev_open() > > -dev_set_mtu() > > -dev_set_mac_address() > > -dev_watchdog() > > ->not implemented by VLAN / does not call through to underlying device > > > > -multicast ioctls > > ->calls dev_mc_upload() of the underlying device sooner or later, this > > function checks whether the device is present or not. However, if you > > change > > the multicast list on a VLAN while the real device is not present, > > dev_mc_upload() won't be called on netif_device_attach(). Good thing is > > that > > most drivers setup multicast list after attach. Fishy. > > > > -several private ioctls > > ->vlan_dev_ioctl() checks whether the real device is present before > > passing > > an ioctl > > > > So I'd rather drop the __LINK_STATE_PRESENT transfer part, because not > > guaranteed to be called anyway and mostly unneeded. Ok, let me look through > > the history now to find who added transferring it (hope this happened after > > the bitkeeper->git move) > > I tend to agree with you, it doesn't seem to work properly. It was > introduced by Stephen (before the move), lets hope he can tell us more. > Not really. The flag code last major change was to do the dormant stuff that HDLC wanted. IMHO VLAN device's should mirror the state of the underlying physical device. I can't really follow the thread well. What is broken? -- Stephen Hemminger <[EMAIL PROTECTED]> Quis custodiet ipsos custodes? - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html