summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Gundersen <teg@jklm.no>2014-02-22 18:23:19 +0100
committerTom Gundersen <teg@jklm.no>2014-02-22 18:29:43 +0100
commit733f7a2c69c794a81978a08a79916c224ba355a6 (patch)
treefc1a737533911f64f9e351a278aa42de49e36e34
parentdd4d2c1cd1eb7c1f3163f6f922362af3189df0a3 (diff)
udev: net - allow MTU and Speed to be specified with units
This also changes the names to MTUBytes and BitsPerSecond, respectively. Notice that the speed was mistakenly documented to be in bytes before this change.
-rw-r--r--man/udev.xml9
-rw-r--r--src/udev/net/link-config-gperf.gperf4
-rw-r--r--src/udev/net/link-config.c7
3 files changed, 11 insertions, 9 deletions
diff --git a/man/udev.xml b/man/udev.xml
index ae7dc61b03..9733b85760 100644
--- a/man/udev.xml
+++ b/man/udev.xml
@@ -982,15 +982,16 @@
</listitem>
</varlistentry>
<varlistentry>
- <term><varname>MTU=</varname></term>
+ <term><varname>MTUBytes=</varname></term>
<listitem>
- <para>The MTU to set for the device.</para>
+ <para>The maximum transmission unit in bytes to set for the device.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><varname>SpeedMBytes=</varname></term>
+ <term><varname>BitsPerSecond=</varname></term>
<listitem>
- <para>The speed to set for the device.</para>
+ <para>The speed to set for the device, the value is rounded down
+ to the nearest Mbps.</para>
</listitem>
</varlistentry>
<varlistentry>
diff --git a/src/udev/net/link-config-gperf.gperf b/src/udev/net/link-config-gperf.gperf
index 277ceb5386..3384ca0418 100644
--- a/src/udev/net/link-config-gperf.gperf
+++ b/src/udev/net/link-config-gperf.gperf
@@ -30,7 +30,7 @@ Link.MACAddress, config_parse_hwaddr, 0,
Link.NamePolicy, config_parse_name_policy, 0, offsetof(link_config, name_policy)
Link.Name, config_parse_ifname, 0, offsetof(link_config, name)
Link.Alias, config_parse_ifalias, 0, offsetof(link_config, alias)
-Link.MTU, config_parse_unsigned, 0, offsetof(link_config, mtu)
-Link.SpeedMBytes, config_parse_unsigned, 0, offsetof(link_config, speed)
+Link.MTUBytes, config_parse_bytes_size, 0, offsetof(link_config, mtu)
+Link.BitsPerSecond, config_parse_bytes_size, 0, offsetof(link_config, speed)
Link.Duplex, config_parse_duplex, 0, offsetof(link_config, duplex)
Link.WakeOnLan, config_parse_wol, 0, offsetof(link_config, wol)
diff --git a/src/udev/net/link-config.c b/src/udev/net/link-config.c
index 92d248fc6b..05225e0111 100644
--- a/src/udev/net/link-config.c
+++ b/src/udev/net/link-config.c
@@ -365,10 +365,11 @@ int link_config_apply(link_config_ctx *ctx, link_config *config, struct udev_dev
if (!old_name)
return -EINVAL;
- r = ethtool_set_speed(ctx->ethtool_fd, old_name, config->speed, config->duplex);
+ r = ethtool_set_speed(ctx->ethtool_fd, old_name, config->speed / 1024, config->duplex);
if (r < 0)
- log_warning("Could not set speed or duplex of %s to %u Mbytes (%s): %s",
- old_name, config->speed, duplex_to_string(config->duplex), strerror(-r));
+ log_warning("Could not set speed or duplex of %s to %u Mbps (%s): %s",
+ old_name, config->speed / 1024, duplex_to_string(config->duplex),
+ strerror(-r));
r = ethtool_set_wol(ctx->ethtool_fd, old_name, config->wol);
if (r < 0)