networkd: add support for bond options

The following bond options are supported by this patch.

MIIMonitorSec:
Specifies the frequency in milli-seconds that MII link
monitoring will occur.

UpDelaySec:
Specifies the delay time in milli-seconds to enable a link
after a link up status has been detected.

DownDelaySec:
Specifies the delay time in milli-seconds to disable a link
after a link failure has been detected.

changes:
1. Added gconf variables.
2. man page

conf:

[NetDev]
Name=bond1
Kind=bond

[Bond]
Mode=802.3ad
TransmitHashPolicy=layer2+3
LacpduTransmitRate=fast
MIIMonitorSec=1s
UpDelaySec=2s
DownDelaySec=8s

cat /proc/net/bonding/bond1
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer2+3 (2)
MII Status: up
MII Polling Interval (ms): 1000
Up Delay (ms): 2000
Down Delay (ms): 8000

802.3ad info
LACP rate: fast
Min links: 0
Aggregator selection policy (ad_select): stable
bond bond1 has no active aggregator

[tomegun: rephrased manpage, dropped bond_ prefix from variables]
This commit is contained in:
Susant Sahani
2014-07-21 19:14:48 +05:30
committed by Tom Gundersen
parent fb1021a26d
commit d9c52fa045
4 changed files with 66 additions and 0 deletions

View File

@@ -447,6 +447,35 @@
The default value is <literal>slow</literal>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>MIIMonitorSec=</varname></term>
<listitem>
<para>Specifies the frequency that Media Independent Interface link
monitoring will occur. A value of zero disables MII link monitoring.
This values is rounded down to the nearest millisecond. The default
value is 0.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>UpDelaySec=</varname></term>
<listitem>
<para>Specifies the delay before a link is enabled after a link up
status has been detected. This value is rounded down to a multiple of
MIIMonitorSec. The default value is 0.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>DownDelaySec=</varname></term>
<listitem>
<para>Specifies the delay before a link is disabled after a link down
status has been detected. This value is rounded down to a multiple of
MIIMonitorSec. The default value is 0.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>

View File

@@ -145,6 +145,36 @@ static int netdev_bond_fill_message_create(NetDev *netdev, Link *link, sd_rtnl_m
}
}
if (b->miimon != 0) {
r = sd_rtnl_message_append_u32(m, IFLA_BOND_MIIMON, b->miimon / 1000);
if (r < 0) {
log_error_netdev(netdev,
"Could not append IFLA_BOND_BOND_MIIMON attribute: %s",
strerror(-r));
return r;
}
}
if (b->downdelay != 0) {
r = sd_rtnl_message_append_u32(m, IFLA_BOND_DOWNDELAY, b->downdelay / 1000);
if (r < 0) {
log_error_netdev(netdev,
"Could not append IFLA_BOND_DOWNDELAY attribute: %s",
strerror(-r));
return r;
}
}
if (b->updelay != 0) {
r = sd_rtnl_message_append_u32(m, IFLA_BOND_UPDELAY, b->updelay / 1000);
if (r < 0) {
log_error_netdev(netdev,
"Could not append IFLA_BOND_UPDELAY attribute: %s",
strerror(-r));
return r;
}
}
return 0;
}

View File

@@ -61,6 +61,10 @@ struct Bond {
BondMode mode;
BondXmitHashPolicy xmit_hash_policy;
BondLacpRate lacp_rate;
usec_t miimon;
usec_t updelay;
usec_t downdelay;
};
extern const NetDevVTable bond_vtable;

View File

@@ -54,3 +54,6 @@ Tap.Group, config_parse_string, 0,
Bond.Mode, config_parse_bond_mode, 0, offsetof(Bond, mode)
Bond.TransmitHashPolicy, config_parse_bond_xmit_hash_policy, 0, offsetof(Bond, xmit_hash_policy)
Bond.LACPTransmitRate, config_parse_bond_lacp_rate, 0, offsetof(Bond, lacp_rate)
Bond.MIIMonitorSec, config_parse_sec, 0, offsetof(Bond, miimon)
Bond.UpDelaySec, config_parse_sec, 0, offsetof(Bond, updelay)
Bond.DownDelaySec, config_parse_sec, 0, offsetof(Bond, downdelay)