Skip to content

Commit 0b96a44

Browse files
committed
Support more link speeds for stat output.
1 parent c16ffc6 commit 0b96a44

File tree

1 file changed

+11
-11
lines changed

1 file changed

+11
-11
lines changed

ipt_NETFLOW.c

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3940,16 +3940,16 @@ static int ethtool_drvinfo(unsigned char *ptr, size_t size, struct net_device *d
39403940
if (dev->flags & IFF_UP &&
39413941
dev->flags & IFF_RUNNING &&
39423942
!_KSETTINGS(__ethtool_get_settings(dev, &ecmd), __ethtool_get_link_ksettings(dev, &ekmd))) {
3943-
char *s, *p;
3944-
3945-
/* append basic parameters: speed and port */
3946-
switch (_KSETTINGS(ethtool_cmd_speed(&ecmd), ekmd.base.speed)) {
3947-
case SPEED_10000: s = "10Gb"; break;
3948-
case SPEED_2500: s = "2.5Gb"; break;
3949-
case SPEED_1000: s = "1Gb"; break;
3950-
case SPEED_100: s = "100Mb"; break;
3951-
case SPEED_10: s = "10Mb"; break;
3952-
default: s = "";
3943+
char *units, *p;
3944+
__u32 speed = _KSETTINGS(ethtool_cmd_speed(&ecmd), ekmd.base.speed);
3945+
3946+
if (speed == SPEED_UNKNOWN)
3947+
units = "";
3948+
else if (speed <= 1000)
3949+
units = "MbE";
3950+
else {
3951+
speed /= 1000;
3952+
units = "GbE";
39533953
}
39543954
switch (_KSETTINGS(ecmd.port, ekmd.base.port)) {
39553955
case PORT_TP: p = "tp"; break;
@@ -3962,7 +3962,7 @@ static int ethtool_drvinfo(unsigned char *ptr, size_t size, struct net_device *d
39623962
#endif
39633963
default: p = "";
39643964
}
3965-
n = scnprintf(ptr, len, ",%s,%s", s, p);
3965+
n = scnprintf(ptr, len, ",%d%s,%s", speed, units, p);
39663966
len -= n;
39673967
}
39683968
ret:

0 commit comments

Comments
 (0)