diff options
-rw-r--r-- | man/systemd.netdev.xml | 29 | ||||
-rw-r--r-- | src/network/networkd-netdev-bond.c | 30 | ||||
-rw-r--r-- | src/network/networkd-netdev-bond.h | 4 | ||||
-rw-r--r-- | src/network/networkd-netdev-gperf.gperf | 3 |
4 files changed, 66 insertions, 0 deletions
diff --git a/man/systemd.netdev.xml b/man/systemd.netdev.xml index cea416f94f..acd845498c 100644 --- a/man/systemd.netdev.xml +++ b/man/systemd.netdev.xml @@ -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> diff --git a/src/network/networkd-netdev-bond.c b/src/network/networkd-netdev-bond.c index e3f3333560..1f57083626 100644 --- a/src/network/networkd-netdev-bond.c +++ b/src/network/networkd-netdev-bond.c @@ -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; } diff --git a/src/network/networkd-netdev-bond.h b/src/network/networkd-netdev-bond.h index fea076817a..c09af5fa52 100644 --- a/src/network/networkd-netdev-bond.h +++ b/src/network/networkd-netdev-bond.h @@ -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; diff --git a/src/network/networkd-netdev-gperf.gperf b/src/network/networkd-netdev-gperf.gperf index 40fae75c42..c524ee5798 100644 --- a/src/network/networkd-netdev-gperf.gperf +++ b/src/network/networkd-netdev-gperf.gperf @@ -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) |