diff options
| author | David S. Miller <davem@davemloft.net> | 2020-04-20 22:43:24 +0300 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2020-04-20 22:43:24 +0300 |
| commit | b785b06ccaae3ab669877ca4175213587485a31e (patch) | |
| tree | a9cb964f6df47d76868f23e53672d648dc722743 /include/linux | |
| parent | 749d22e8f6d5645ed066ec434c0ce5327987c699 (diff) | |
| parent | 77e9b2ab451d32c81468ef679c377b2f831cd720 (diff) | |
| download | linux-b785b06ccaae3ab669877ca4175213587485a31e.tar.xz | |
Merge branch 'RFC-2863-Testing-Oper-status'
Andrew Lunn says:
====================
RFC 2863 Testing Oper status
This patchset add support for RFC 2863 Oper status testing. An
interface is placed into this state when a self test is performed
using ethtool.
v2:
Fix date/kernel version in Documentation
Add reviewed-by tags
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/netdevice.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 130a668049ab..0750b54b3765 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h @@ -288,6 +288,7 @@ enum netdev_state_t { __LINK_STATE_NOCARRIER, __LINK_STATE_LINKWATCH_PENDING, __LINK_STATE_DORMANT, + __LINK_STATE_TESTING, }; @@ -3908,6 +3909,46 @@ static inline bool netif_dormant(const struct net_device *dev) /** + * netif_testing_on - mark device as under test. + * @dev: network device + * + * Mark device as under test (as per RFC2863). + * + * The testing state indicates that some test(s) must be performed on + * the interface. After completion, of the test, the interface state + * will change to up, dormant, or down, as appropriate. + */ +static inline void netif_testing_on(struct net_device *dev) +{ + if (!test_and_set_bit(__LINK_STATE_TESTING, &dev->state)) + linkwatch_fire_event(dev); +} + +/** + * netif_testing_off - set device as not under test. + * @dev: network device + * + * Device is not in testing state. + */ +static inline void netif_testing_off(struct net_device *dev) +{ + if (test_and_clear_bit(__LINK_STATE_TESTING, &dev->state)) + linkwatch_fire_event(dev); +} + +/** + * netif_testing - test if device is under test + * @dev: network device + * + * Check if device is under test + */ +static inline bool netif_testing(const struct net_device *dev) +{ + return test_bit(__LINK_STATE_TESTING, &dev->state); +} + + +/** * netif_oper_up - test if device is operational * @dev: network device * |
