ethtool: Add support for configuring PFC stall prevention in ethtool
In the event where the device unexpectedly becomes unresponsive for a long period of time, flow control mechanism may propagate pause frames which will cause congestion spreading to the entire network. To prevent this scenario, when the device is stalled for a period longer than a pre-configured timeout, flow control mechanisms are automatically disabled. This patch adds support for the ETHTOOL_PFC_STALL_PREVENTION as a tunable. This API provides support for configuring flow control storm prevention timeout (msec). Signed-off-by: Inbar Karmy <inbark@mellanox.com> Cc: Michal Kubecek <mkubecek@suse.cz> Cc: Andrew Lunn <andrew@lunn.ch> Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
This commit is contained in:
parent
2fcb12df7d
commit
e1577c1c88
|
@ -217,10 +217,14 @@ struct ethtool_value {
|
|||
__u32 data;
|
||||
};
|
||||
|
||||
#define PFC_STORM_PREVENTION_AUTO 0xffff
|
||||
#define PFC_STORM_PREVENTION_DISABLE 0
|
||||
|
||||
enum tunable_id {
|
||||
ETHTOOL_ID_UNSPEC,
|
||||
ETHTOOL_RX_COPYBREAK,
|
||||
ETHTOOL_TX_COPYBREAK,
|
||||
ETHTOOL_PFC_PREVENTION_TOUT, /* timeout in msecs */
|
||||
/*
|
||||
* Add your fresh new tubale attribute above and remember to update
|
||||
* tunable_strings[] in net/core/ethtool.c
|
||||
|
|
|
@ -121,6 +121,7 @@ tunable_strings[__ETHTOOL_TUNABLE_COUNT][ETH_GSTRING_LEN] = {
|
|||
[ETHTOOL_ID_UNSPEC] = "Unspec",
|
||||
[ETHTOOL_RX_COPYBREAK] = "rx-copybreak",
|
||||
[ETHTOOL_TX_COPYBREAK] = "tx-copybreak",
|
||||
[ETHTOOL_PFC_PREVENTION_TOUT] = "pfc-prevention-tout",
|
||||
};
|
||||
|
||||
static const char
|
||||
|
@ -2311,6 +2312,11 @@ static int ethtool_tunable_valid(const struct ethtool_tunable *tuna)
|
|||
tuna->type_id != ETHTOOL_TUNABLE_U32)
|
||||
return -EINVAL;
|
||||
break;
|
||||
case ETHTOOL_PFC_PREVENTION_TOUT:
|
||||
if (tuna->len != sizeof(u16) ||
|
||||
tuna->type_id != ETHTOOL_TUNABLE_U16)
|
||||
return -EINVAL;
|
||||
break;
|
||||
default:
|
||||
return -EINVAL;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue