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.
This commit is contained in:
Tom Gundersen 2014-02-22 18:23:19 +01:00
parent dd4d2c1cd1
commit 733f7a2c69
3 changed files with 11 additions and 9 deletions

View File

@ -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>

View File

@ -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)

View File

@ -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)