[systemd-commits] 4 commits - man/systemd.netdev.xml src/libsystemd src/network

Tom Gundersen tomegun at kemper.freedesktop.org
Mon Jul 21 11:36:49 PDT 2014


 man/systemd.netdev.xml                  |   73 ++++++++++++++++++++++--
 src/libsystemd/sd-rtnl/rtnl-types.c     |    6 --
 src/network/networkd-netdev-bond.c      |   94 ++++++++++++++++++++++++++++++++
 src/network/networkd-netdev-bond.h      |   32 ++++++++++
 src/network/networkd-netdev-gperf.gperf |    5 +
 5 files changed, 196 insertions(+), 14 deletions(-)

New commits:
commit d9c52fa045d53e2b802102114e9c557c43024eb5
Author: Susant Sahani <susant at redhat.com>
Date:   Mon Jul 21 19:14:48 2014 +0530

    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]

diff --git a/man/systemd.netdev.xml b/man/systemd.netdev.xml
index cea416f..acd8454 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 e3f3333..1f57083 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 fea0768..c09af5f 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 40fae75..c524ee5 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)

commit fb1021a26db14b199c50e3eed77a1daa371f282e
Author: Susant Sahani <susant at redhat.com>
Date:   Mon Jul 21 18:52:14 2014 +0530

    networkd: bond add support for lacp rate
    
    LacpduTransmitRate
    option specifies the rate in which link partner to transmit
    LACPDU packets in 802.3ad mode.  Possible values
    slow : Request partner to transmit LACPDUs every 30 seconds
    fast : Request partner to transmit LACPDUs every 1 second
    The default is slow.
    
    chages:
    1. Added enum bond_lacp_rate_table
    2. gperf LacpduTransmitRate
    
    Test:
    conf file:
    [NetDev]
    Name=bond1
    Kind=bond
    
    [Bond]
    Mode=802.3ad
    LacpduTransmitRate=fast
    
    test:
    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): 0
    Up Delay (ms): 0
    Down Delay (ms): 0
    
    802.3ad info
    LACP rate: fast
    Min links: 0
    Aggregator selection policy (ad_select): stable
    bond bond1 has no active aggregator
    
    [tomegun: renamed from LacpduTransmitRate to LACPTransmitRate, manpage fixes and
    dropped bond_ prefix from variables]

diff --git a/man/systemd.netdev.xml b/man/systemd.netdev.xml
index ba212ec..cea416f 100644
--- a/man/systemd.netdev.xml
+++ b/man/systemd.netdev.xml
@@ -408,14 +408,15 @@
                                 <varlistentry>
                                         <term><varname>Mode=</varname></term>
                                         <listitem>
-                                          <para>Specifies one of the bonding policies. The default is balance-rr (round robin).
-                                                <literal>balance-rr</literal>
-                                                <literal>active-backup</literal>
-                                                <literal>balance-xor</literal>
-                                                <literal>broadcast</literal>
-                                                <literal>802.3ad</literal>
-                                                <literal>balance-tlb</literal>
-                                                <literal>balance-alb</literal>
+                                          <para>Specifies one of the bonding policies. The default is
+                                          <literal>balance-rr</literal> (round robin). Possible values are
+                                                <literal>balance-rr</literal>,
+                                                <literal>active-backup</literal>,
+                                                <literal>balance-xor</literal>,
+                                                <literal>broadcast</literal>,
+                                                <literal>802.3ad</literal>,
+                                                <literal>balance-tlb</literal>, and
+                                                <literal>balance-alb</literal>.
                                           </para>
                                         </listitem>
                                 </varlistentry>
@@ -424,17 +425,28 @@
                                   <term><varname>TransmitHashPolicy=</varname></term>
                                   <listitem>
                                     <para>Selects the transmit hash policy to use for slave selection in
-                                    balance-xor, 802.3ad, and tlb modes.
-                                    <literal>layer2</literal>
-                                    <literal>layer3+4</literal>
-                                    <literal>layer2+3</literal>
-                                    <literal>encap2+3</literal>
-                                    <literal>802.3ad</literal>
-                                    <literal>encap3+4</literal>
+                                    balance-xor, 802.3ad, and tlb modes. Possible values are
+                                    <literal>layer2</literal>,
+                                    <literal>layer3+4</literal>,
+                                    <literal>layer2+3</literal>,
+                                    <literal>encap2+3</literal>,
+                                    <literal>802.3ad</literal>, and
+                                    <literal>encap3+4</literal>.
                                     </para>
                                   </listitem>
                                 </varlistentry>
 
+                                <varlistentry>
+                                  <term><varname>LACPTransmitRate=</varname></term>
+                                  <listitem>
+                                    <para>Specifies the rate with which link partner
+                                    transmits Link Aggregation Control Protocol Data Unit packets
+                                    in 802.3ad mode. Possible values are
+                                    <literal>slow</literal>, which requests partner to transmit LACPDUs every 30 seconds, and
+                                    <literal>fast</literal>, which requests partner to transmit LACPDUs every second.
+                                    The default value is <literal>slow</literal>.</para>
+                                  </listitem>
+                                </varlistentry>
                         </variablelist>
         </refsect1>
 
diff --git a/src/network/networkd-netdev-bond.c b/src/network/networkd-netdev-bond.c
index c4d1fcd..e3f3333 100644
--- a/src/network/networkd-netdev-bond.c
+++ b/src/network/networkd-netdev-bond.c
@@ -57,6 +57,14 @@ DEFINE_CONFIG_PARSE_ENUM(config_parse_bond_xmit_hash_policy,
                          BondXmitHashPolicy,
                          "Failed to parse bond transmit hash policy")
 
+static const char* const bond_lacp_rate_table[_NETDEV_BOND_LACP_RATE_MAX] = {
+        [NETDEV_BOND_LACP_RATE_SLOW] = "slow",
+        [NETDEV_BOND_LACP_RATE_FAST] = "fast",
+};
+
+DEFINE_STRING_TABLE_LOOKUP(bond_lacp_rate, BondLacpRate);
+DEFINE_CONFIG_PARSE_ENUM(config_parse_bond_lacp_rate, bond_lacp_rate, BondLacpRate, "Failed to parse bond lacp rate")
+
 static uint8_t bond_mode_to_kernel(BondMode mode) {
         switch (mode) {
         case NETDEV_BOND_MODE_BALANCE_RR:
@@ -126,6 +134,17 @@ static int netdev_bond_fill_message_create(NetDev *netdev, Link *link, sd_rtnl_m
                 }
         }
 
+        if (b->lacp_rate != _NETDEV_BOND_LACP_RATE_INVALID &&
+            b->mode == NETDEV_BOND_MODE_802_3AD) {
+                r = sd_rtnl_message_append_u8(m, IFLA_BOND_AD_LACP_RATE, b->lacp_rate );
+                if (r < 0) {
+                        log_error_netdev(netdev,
+                                         "Could not append IFLA_BOND_AD_LACP_RATE attribute: %s",
+                                         strerror(-r));
+                        return r;
+                }
+        }
+
         return 0;
 }
 
@@ -137,6 +156,7 @@ static void bond_init(NetDev *netdev) {
 
         b->mode = _NETDEV_BOND_MODE_INVALID;
         b->xmit_hash_policy = _NETDEV_BOND_XMIT_HASH_POLICY_INVALID;
+        b->lacp_rate = _NETDEV_BOND_LACP_RATE_INVALID;
 }
 
 const NetDevVTable bond_vtable = {
diff --git a/src/network/networkd-netdev-bond.h b/src/network/networkd-netdev-bond.h
index 0e9955e..fea0768 100644
--- a/src/network/networkd-netdev-bond.h
+++ b/src/network/networkd-netdev-bond.h
@@ -47,11 +47,20 @@ typedef enum BondXmitHashPolicy {
         _NETDEV_BOND_XMIT_HASH_POLICY_INVALID = -1
 } BondXmitHashPolicy;
 
+
+typedef enum BondLacpRate {
+        NETDEV_BOND_LACP_RATE_SLOW,
+        NETDEV_BOND_LACP_RATE_FAST,
+        _NETDEV_BOND_LACP_RATE_MAX,
+        _NETDEV_BOND_LACP_RATE_INVALID = -1,
+} BondLacpRate;
+
 struct Bond {
         NetDev meta;
 
         BondMode mode;
         BondXmitHashPolicy xmit_hash_policy;
+        BondLacpRate lacp_rate;
 };
 
 extern const NetDevVTable bond_vtable;
@@ -62,5 +71,9 @@ BondMode bond_mode_from_string(const char *d) _pure_;
 const char *bond_xmit_hash_policy_to_string(BondXmitHashPolicy d) _const_;
 BondXmitHashPolicy bond_xmit_hash_policy_from_string(const char *d) _pure_;
 
+const char *bond_lacp_rate_to_string(BondLacpRate d) _const_;
+BondLacpRate bond_lacp_rate_from_string(const char *d) _pure_;
+
 int config_parse_bond_mode(const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
 int config_parse_bond_xmit_hash_policy(const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
+int config_parse_bond_lacp_rate(const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
diff --git a/src/network/networkd-netdev-gperf.gperf b/src/network/networkd-netdev-gperf.gperf
index bafdccf..40fae75 100644
--- a/src/network/networkd-netdev-gperf.gperf
+++ b/src/network/networkd-netdev-gperf.gperf
@@ -53,3 +53,4 @@ Tap.User,                config_parse_string,                0,
 Tap.Group,               config_parse_string,                0,                             offsetof(TunTap, group_name)
 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)

commit 227cdf2c7ca0ab10af60674f929c4beeedb1ae67
Author: Susant Sahani <susant at redhat.com>
Date:   Mon Jul 21 18:37:05 2014 +0530

    networkd: add support for bond transmit hash policy
    
    This patch adds support  the transmit hash policy to use
    for slave selection in balance-xor, 802.3ad, and tlb modes
    
    layer2, layer3+4, layer2+3, encap3+4, encap3+4
    
    Added:
    1. BondXmitHashPolicy
    2. conf param TransmitHashPolicy
    
    Test conf:
    [NetDev]
    Name=bond1
    Kind=bond
    
    [Bond]
    Mode=802.3ad
    TransmitHashPolicy=layer2+3
    
    test output:
    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): 0
    Up Delay (ms): 0
    Down Delay (ms): 0
    
    802.3ad info
    LACP rate: slow
    Min links: 0
    Aggregator selection policy (ad_select): stable
    bond bond1 has no active aggregator
    
    [tomegun: dropped bond_ prefix from new Bond variable, drop repeated man-page section]

diff --git a/man/systemd.netdev.xml b/man/systemd.netdev.xml
index 0a2cbab..ba212ec 100644
--- a/man/systemd.netdev.xml
+++ b/man/systemd.netdev.xml
@@ -419,6 +419,22 @@
                                           </para>
                                         </listitem>
                                 </varlistentry>
+
+                                <varlistentry>
+                                  <term><varname>TransmitHashPolicy=</varname></term>
+                                  <listitem>
+                                    <para>Selects the transmit hash policy to use for slave selection in
+                                    balance-xor, 802.3ad, and tlb modes.
+                                    <literal>layer2</literal>
+                                    <literal>layer3+4</literal>
+                                    <literal>layer2+3</literal>
+                                    <literal>encap2+3</literal>
+                                    <literal>802.3ad</literal>
+                                    <literal>encap3+4</literal>
+                                    </para>
+                                  </listitem>
+                                </varlistentry>
+
                         </variablelist>
         </refsect1>
 
diff --git a/src/network/networkd-netdev-bond.c b/src/network/networkd-netdev-bond.c
index 562f9eb..c4d1fcd 100644
--- a/src/network/networkd-netdev-bond.c
+++ b/src/network/networkd-netdev-bond.c
@@ -42,6 +42,21 @@ static const char* const bond_mode_table[_NETDEV_BOND_MODE_MAX] = {
 DEFINE_STRING_TABLE_LOOKUP(bond_mode, BondMode);
 DEFINE_CONFIG_PARSE_ENUM(config_parse_bond_mode, bond_mode, BondMode, "Failed to parse bond mode");
 
+
+static const char* const bond_xmit_hash_policy_table[_NETDEV_BOND_XMIT_HASH_POLICY_MAX] = {
+        [NETDEV_BOND_XMIT_HASH_POLICY_LAYER2] = "layer2",
+        [NETDEV_BOND_XMIT_HASH_POLICY_LAYER34] = "layer3+4",
+        [NETDEV_BOND_XMIT_HASH_POLICY_LAYER23] = "layer2+3",
+        [NETDEV_BOND_XMIT_HASH_POLICY_ENCAP23] = "encap2+3",
+        [NETDEV_BOND_XMIT_HASH_POLICY_ENCAP34] = "encap3+4",
+};
+
+DEFINE_STRING_TABLE_LOOKUP(bond_xmit_hash_policy, BondXmitHashPolicy);
+DEFINE_CONFIG_PARSE_ENUM(config_parse_bond_xmit_hash_policy,
+                         bond_xmit_hash_policy,
+                         BondXmitHashPolicy,
+                         "Failed to parse bond transmit hash policy")
+
 static uint8_t bond_mode_to_kernel(BondMode mode) {
         switch (mode) {
         case NETDEV_BOND_MODE_BALANCE_RR:
@@ -63,6 +78,23 @@ static uint8_t bond_mode_to_kernel(BondMode mode) {
         }
 }
 
+static uint8_t bond_xmit_hash_policy_to_kernel(BondXmitHashPolicy policy) {
+        switch (policy) {
+        case NETDEV_BOND_XMIT_HASH_POLICY_LAYER2:
+                return BOND_XMIT_POLICY_LAYER2;
+        case NETDEV_BOND_XMIT_HASH_POLICY_LAYER34:
+                return BOND_XMIT_POLICY_LAYER34;
+        case NETDEV_BOND_XMIT_HASH_POLICY_LAYER23:
+                return BOND_XMIT_POLICY_LAYER23;
+        case NETDEV_BOND_XMIT_HASH_POLICY_ENCAP23:
+                return BOND_XMIT_POLICY_ENCAP23;
+        case NETDEV_BOND_XMIT_HASH_POLICY_ENCAP34:
+                return BOND_XMIT_POLICY_ENCAP34;
+        default:
+                return (uint8_t) -1;
+        }
+}
+
 static int netdev_bond_fill_message_create(NetDev *netdev, Link *link, sd_rtnl_message *m) {
         Bond *b = BOND(netdev);
         int r;
@@ -83,6 +115,17 @@ static int netdev_bond_fill_message_create(NetDev *netdev, Link *link, sd_rtnl_m
                 }
         }
 
+        if (b->xmit_hash_policy != _NETDEV_BOND_XMIT_HASH_POLICY_INVALID) {
+                r = sd_rtnl_message_append_u8(m, IFLA_BOND_XMIT_HASH_POLICY,
+                                              bond_xmit_hash_policy_to_kernel(b->xmit_hash_policy));
+                if (r < 0) {
+                        log_error_netdev(netdev,
+                                         "Could not append IFLA_BOND_XMIT_HASH_POLICY attribute: %s",
+                                         strerror(-r));
+                        return r;
+                }
+        }
+
         return 0;
 }
 
@@ -93,6 +136,7 @@ static void bond_init(NetDev *netdev) {
         assert(b);
 
         b->mode = _NETDEV_BOND_MODE_INVALID;
+        b->xmit_hash_policy = _NETDEV_BOND_XMIT_HASH_POLICY_INVALID;
 }
 
 const NetDevVTable bond_vtable = {
diff --git a/src/network/networkd-netdev-bond.h b/src/network/networkd-netdev-bond.h
index 09731b7..0e9955e 100644
--- a/src/network/networkd-netdev-bond.h
+++ b/src/network/networkd-netdev-bond.h
@@ -37,10 +37,21 @@ typedef enum BondMode {
         _NETDEV_BOND_MODE_INVALID = -1
 } BondMode;
 
+typedef enum BondXmitHashPolicy {
+        NETDEV_BOND_XMIT_HASH_POLICY_LAYER2,
+        NETDEV_BOND_XMIT_HASH_POLICY_LAYER34,
+        NETDEV_BOND_XMIT_HASH_POLICY_LAYER23,
+        NETDEV_BOND_XMIT_HASH_POLICY_ENCAP23,
+        NETDEV_BOND_XMIT_HASH_POLICY_ENCAP34,
+        _NETDEV_BOND_XMIT_HASH_POLICY_MAX,
+        _NETDEV_BOND_XMIT_HASH_POLICY_INVALID = -1
+} BondXmitHashPolicy;
+
 struct Bond {
         NetDev meta;
 
         BondMode mode;
+        BondXmitHashPolicy xmit_hash_policy;
 };
 
 extern const NetDevVTable bond_vtable;
@@ -48,4 +59,8 @@ extern const NetDevVTable bond_vtable;
 const char *bond_mode_to_string(BondMode d) _const_;
 BondMode bond_mode_from_string(const char *d) _pure_;
 
+const char *bond_xmit_hash_policy_to_string(BondXmitHashPolicy d) _const_;
+BondXmitHashPolicy bond_xmit_hash_policy_from_string(const char *d) _pure_;
+
 int config_parse_bond_mode(const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
+int config_parse_bond_xmit_hash_policy(const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
diff --git a/src/network/networkd-netdev-gperf.gperf b/src/network/networkd-netdev-gperf.gperf
index b46b8db..bafdccf 100644
--- a/src/network/networkd-netdev-gperf.gperf
+++ b/src/network/networkd-netdev-gperf.gperf
@@ -52,3 +52,4 @@ Tap.PacketInfo,          config_parse_bool,                  0,
 Tap.User,                config_parse_string,                0,                             offsetof(TunTap, user_name)
 Tap.Group,               config_parse_string,                0,                             offsetof(TunTap, group_name)
 Bond.Mode,               config_parse_bond_mode,             0,                             offsetof(Bond, mode)
+Bond.TransmitHashPolicy, config_parse_bond_xmit_hash_policy, 0,                             offsetof(Bond, xmit_hash_policy)

commit 801a04c81be81f6ae1f82f8603a81891283256d9
Author: Susant Sahani <susant at redhat.com>
Date:   Wed Jul 16 13:56:24 2014 +0530

    sd-rtnl: uncomment bond rtnl constants

diff --git a/src/libsystemd/sd-rtnl/rtnl-types.c b/src/libsystemd/sd-rtnl/rtnl-types.c
index ff90895..df9a45d 100644
--- a/src/libsystemd/sd-rtnl/rtnl-types.c
+++ b/src/libsystemd/sd-rtnl/rtnl-types.c
@@ -90,15 +90,12 @@ static const NLType rtnl_link_info_data_vxlan_types[IFLA_VXLAN_MAX+1] = {
 static const NLType rtnl_link_info_data_bond_types[IFLA_BOND_MAX + 1] = {
         [IFLA_BOND_MODE]                = { .type = NLA_U8 },
         [IFLA_BOND_ACTIVE_SLAVE]        = { .type = NLA_U32 },
-#ifdef IFLA_BOND_MIIMON
         [IFLA_BOND_MIIMON]              = { .type = NLA_U32 },
         [IFLA_BOND_UPDELAY]             = { .type = NLA_U32 },
         [IFLA_BOND_DOWNDELAY]           = { .type = NLA_U32 },
         [IFLA_BOND_USE_CARRIER]         = { .type = NLA_U8 },
         [IFLA_BOND_ARP_INTERVAL]        = { .type = NLA_U32 },
-/*
         [IFLA_BOND_ARP_IP_TARGET]       = { .type = NLA_NESTED },
-*/
         [IFLA_BOND_ARP_VALIDATE]        = { .type = NLA_U32 },
         [IFLA_BOND_ARP_ALL_TARGETS]     = { .type = NLA_U32 },
         [IFLA_BOND_PRIMARY]             = { .type = NLA_U32 },
@@ -113,10 +110,7 @@ static const NLType rtnl_link_info_data_bond_types[IFLA_BOND_MAX + 1] = {
         [IFLA_BOND_PACKETS_PER_SLAVE]   = { .type = NLA_U32 },
         [IFLA_BOND_AD_LACP_RATE]        = { .type = NLA_U8 },
         [IFLA_BOND_AD_SELECT]           = { .type = NLA_U8 },
-/*
         [IFLA_BOND_AD_INFO]             = { .type = NLA_NESTED },
-*/
-#endif
 };
 
 static const NLType rtnl_link_info_data_iptun_types[IFLA_IPTUN_MAX + 1] = {



More information about the systemd-commits mailing list