net/ethtool: Add current supported tunable options
Add strings array of the current supported tunable options. Signed-off-by: Hadar Hen Zion <hadarh@mellanox.com> Reviewed-by: Amir Vadai <amirv@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
		
					parent
					
						
							
								de84725403
							
						
					
				
			
			
				commit
				
					
						a4244b0cf5
					
				
			
		
					 2 changed files with 18 additions and 0 deletions
				
			
		|  | @ -215,6 +215,11 @@ enum tunable_id { | ||||||
| 	ETHTOOL_ID_UNSPEC, | 	ETHTOOL_ID_UNSPEC, | ||||||
| 	ETHTOOL_RX_COPYBREAK, | 	ETHTOOL_RX_COPYBREAK, | ||||||
| 	ETHTOOL_TX_COPYBREAK, | 	ETHTOOL_TX_COPYBREAK, | ||||||
|  | 	/*
 | ||||||
|  | 	 * Add your fresh new tubale attribute above and remember to update | ||||||
|  | 	 * tunable_strings[] in net/core/ethtool.c | ||||||
|  | 	 */ | ||||||
|  | 	__ETHTOOL_TUNABLE_COUNT, | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| enum tunable_type_id { | enum tunable_type_id { | ||||||
|  | @ -545,6 +550,7 @@ enum ethtool_stringset { | ||||||
| 	ETH_SS_NTUPLE_FILTERS, | 	ETH_SS_NTUPLE_FILTERS, | ||||||
| 	ETH_SS_FEATURES, | 	ETH_SS_FEATURES, | ||||||
| 	ETH_SS_RSS_HASH_FUNCS, | 	ETH_SS_RSS_HASH_FUNCS, | ||||||
|  | 	ETH_SS_TUNABLES, | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| /**
 | /**
 | ||||||
|  |  | ||||||
|  | @ -106,6 +106,13 @@ rss_hash_func_strings[ETH_RSS_HASH_FUNCS_COUNT][ETH_GSTRING_LEN] = { | ||||||
| 	[ETH_RSS_HASH_XOR_BIT] =	"xor", | 	[ETH_RSS_HASH_XOR_BIT] =	"xor", | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
|  | static const char | ||||||
|  | tunable_strings[__ETHTOOL_TUNABLE_COUNT][ETH_GSTRING_LEN] = { | ||||||
|  | 	[ETHTOOL_ID_UNSPEC]     = "Unspec", | ||||||
|  | 	[ETHTOOL_RX_COPYBREAK]	= "rx-copybreak", | ||||||
|  | 	[ETHTOOL_TX_COPYBREAK]	= "tx-copybreak", | ||||||
|  | }; | ||||||
|  | 
 | ||||||
| static int ethtool_get_features(struct net_device *dev, void __user *useraddr) | static int ethtool_get_features(struct net_device *dev, void __user *useraddr) | ||||||
| { | { | ||||||
| 	struct ethtool_gfeatures cmd = { | 	struct ethtool_gfeatures cmd = { | ||||||
|  | @ -194,6 +201,9 @@ static int __ethtool_get_sset_count(struct net_device *dev, int sset) | ||||||
| 	if (sset == ETH_SS_RSS_HASH_FUNCS) | 	if (sset == ETH_SS_RSS_HASH_FUNCS) | ||||||
| 		return ARRAY_SIZE(rss_hash_func_strings); | 		return ARRAY_SIZE(rss_hash_func_strings); | ||||||
| 
 | 
 | ||||||
|  | 	if (sset == ETH_SS_TUNABLES) | ||||||
|  | 		return ARRAY_SIZE(tunable_strings); | ||||||
|  | 
 | ||||||
| 	if (ops->get_sset_count && ops->get_strings) | 	if (ops->get_sset_count && ops->get_strings) | ||||||
| 		return ops->get_sset_count(dev, sset); | 		return ops->get_sset_count(dev, sset); | ||||||
| 	else | 	else | ||||||
|  | @ -211,6 +221,8 @@ static void __ethtool_get_strings(struct net_device *dev, | ||||||
| 	else if (stringset == ETH_SS_RSS_HASH_FUNCS) | 	else if (stringset == ETH_SS_RSS_HASH_FUNCS) | ||||||
| 		memcpy(data, rss_hash_func_strings, | 		memcpy(data, rss_hash_func_strings, | ||||||
| 		       sizeof(rss_hash_func_strings)); | 		       sizeof(rss_hash_func_strings)); | ||||||
|  | 	else if (stringset == ETH_SS_TUNABLES) | ||||||
|  | 		memcpy(data, tunable_strings, sizeof(tunable_strings)); | ||||||
| 	else | 	else | ||||||
| 		/* ops->get_strings is valid because checked earlier */ | 		/* ops->get_strings is valid because checked earlier */ | ||||||
| 		ops->get_strings(dev, stringset, data); | 		ops->get_strings(dev, stringset, data); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Hadar Hen Zion
				Hadar Hen Zion