[NET] core: add RFC2863 operstate
this patch adds a dormant flag to network devices, RFC2863 operstate derived from these flags and possibility for userspace interaction. It allows drivers to signal that a device is unusable for user traffic without disabling queueing (and therefore the possibility for protocol establishment traffic to flow) and a userspace supplicant (WPA, 802.1X) to mark a device unusable without changes to the driver. It is the result of our long discussion. However I must admit that it represents what Jamal and I agreed on with compromises towards Krzysztof, but Thomas and Krzysztof still disagree with some parts. Anyway I think it should be applied. Signed-off-by: Stefan Rompf <stefan@loplof.de> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
e843b9e1be
commit
b00055aacd
@@ -2174,12 +2174,20 @@ unsigned dev_get_flags(const struct net_device *dev)
|
||||
|
||||
flags = (dev->flags & ~(IFF_PROMISC |
|
||||
IFF_ALLMULTI |
|
||||
IFF_RUNNING)) |
|
||||
IFF_RUNNING |
|
||||
IFF_LOWER_UP |
|
||||
IFF_DORMANT)) |
|
||||
(dev->gflags & (IFF_PROMISC |
|
||||
IFF_ALLMULTI));
|
||||
|
||||
if (netif_running(dev) && netif_carrier_ok(dev))
|
||||
flags |= IFF_RUNNING;
|
||||
if (netif_running(dev)) {
|
||||
if (netif_oper_up(dev))
|
||||
flags |= IFF_RUNNING;
|
||||
if (netif_carrier_ok(dev))
|
||||
flags |= IFF_LOWER_UP;
|
||||
if (netif_dormant(dev))
|
||||
flags |= IFF_DORMANT;
|
||||
}
|
||||
|
||||
return flags;
|
||||
}
|
||||
|
Reference in New Issue
Block a user