Re: [systemd-devel] [PATCH] networkd: Add support for bond option.

2015-04-20 Thread Tom Gundersen
Sorry for the delay. Applied. Thanks!

Tom

On Mon, Mar 9, 2015 at 10:58 AM, Susant Sahani sus...@redhat.com wrote:
 This patch adds configurational support for bond option.

 Test conf:

 bond.netdev

 ---
 [NetDev]
 Name=bond1
 Kind=bond

 [Bond]
 ArpAllTargets=all
 PrimaryReselect=better
 ArpIntervalSec=10s
 ArpIpTargets= 192.168.8.102 192.168.8.101 192.168.8.102
 ---

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

 Bonding Mode: load balancing (round-robin)
 MII Status: up
 MII Polling Interval (ms): 0
 Up Delay (ms): 0
 Down Delay (ms): 0
 ARP Polling Interval (ms): 1
 ARP IP target/s (n.n.n.n form): 192.168.8.100, 192.168.8.101, 192.168.8.102
 ---
  man/systemd.netdev.xml  | 167 +
  src/libsystemd/sd-rtnl/rtnl-types.c |  26 ++-
  src/libsystemd/sd-rtnl/rtnl-types.h |  22 +++
  src/network/networkd-netdev-bond.c  | 318 
 +++-
  src/network/networkd-netdev-bond.h  |  85 -
  src/network/networkd-netdev-gperf.gperf |  13 ++
  6 files changed, 627 insertions(+), 4 deletions(-)

 diff --git a/man/systemd.netdev.xml b/man/systemd.netdev.xml
 index ef58887..4230d19 100644
 --- a/man/systemd.netdev.xml
 +++ b/man/systemd.netdev.xml
 @@ -647,7 +647,174 @@
  /listitem
/varlistentry

 +  varlistentry
 +termvarnameLearnPacketIntvSec,=/varname/term
 +listitem
 +  paraSpecifies the number of seconds between instances where the 
 bonding
 +  driver sends learning packets to each slaves peer switch.
 +  The valid range is 1 - 0x7fff; the default value is 1. This 
 Option
 +  has effect only in balance-tlb and balance-alb modes./para
 +/listitem
 +  /varlistentry
 +
 +  varlistentry
 +termvarnameAdSelect=/varname/term
 +listitem
 +  paraSpecifies the 802.3ad aggregation selection logic to use. 
 Possible values are
 +  literalstable/literal,
 +  literalbandwidth/literal,
 +  literalcount/literal
 +  /para
 +/listitem
 +  /varlistentry
 +
 +  varlistentry
 +termvarnameFailOverMac=/varname/term
 +listitem
 +  paraSpecifies whether active-backup mode should set all slaves to
 +  the same MAC address at enslavement or, when enabled, perform 
 special handling of the
 +  bond's MAC address in accordance with the selected policy. The 
 default policy is none.
 +  Possible values are
 +  literalnone/literal,
 +  literalactive/literal,
 +  literalfollow/literal
 +  /para
 +/listitem
 +  /varlistentry
 +
 +  varlistentry
 +termvarnameArpValidate=/varname/term
 +listitem
 +  paraSpecifies whether or not ARP probes and replies should be
 +  validated in any mode that supports arp monitoring, or whether
 +  non-ARP traffic should be filtered (disregarded) for link
 +  monitoring purposes. Possible values are
 +  literalnone/literal,
 +  literalactive/literal,
 +  literalbackup/literal,
 +  literalall/literal
 +  /para
 +/listitem
 +  /varlistentry
 +
 +  varlistentry
 +termvarnameArpIntervalSec=/varname/term
 +listitem
 +  paraSpecifies the ARP link monitoring frequency in milliseconds.
 +  A value of 0 disables ARP monitoring. The default value is 0.
 +  /para
 +/listitem
 +  /varlistentry
 +
 +  varlistentry
 +termvarnameArpIpTargets=/varname/term
 +listitem
 +  paraSpecifies the IP addresses to use as ARP monitoring peers 
 when
 +  ArpIntervalSec is greater than 0. These are the targets of the ARP 
 request
 +  sent to determine the health of the link to the targets.
 +  Specify these values in ipv4 dotted decimal format. At least one IP
 +  address must be given for ARP monitoring to function. The
 +  maximum number of targets that can be specified is 16. The
 +  default value is no IP addresses.
 +  /para
 +/listitem
 +  /varlistentry
 +
 +  varlistentry
 +termvarnameArpAllTargets=/varname/term
 +listitem
 +  paraSpecifies the quantity of ArpIpTargets that must be reachable
 +  in order for the ARP monitor to consider a slave as being up.
 +  This option affects only active-backup mode for slaves with
 +  ArpValidate enabled. Possible values are
 +  literalany/literal,
 +  literalall/literal
 +  /para
 +/listitem
 +  /varlistentry
 +
 +  varlistentry
 +termvarnamePrimaryReselect=/varname/term
 +listitem
 +  paraSpecifies the reselection policy for the primary slave.  This
 +  affects how the primary slave is chosen to become the active slave
 +  when failure of the 

[systemd-devel] [PATCH] networkd: Add support for bond option.

2015-03-09 Thread Susant Sahani
This patch adds configurational support for bond option.

Test conf:

bond.netdev

---
[NetDev]
Name=bond1
Kind=bond

[Bond]
ArpAllTargets=all
PrimaryReselect=better
ArpIntervalSec=10s
ArpIpTargets= 192.168.8.102 192.168.8.101 192.168.8.102
---

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

Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 0
Up Delay (ms): 0
Down Delay (ms): 0
ARP Polling Interval (ms): 1
ARP IP target/s (n.n.n.n form): 192.168.8.100, 192.168.8.101, 192.168.8.102
---
 man/systemd.netdev.xml  | 167 +
 src/libsystemd/sd-rtnl/rtnl-types.c |  26 ++-
 src/libsystemd/sd-rtnl/rtnl-types.h |  22 +++
 src/network/networkd-netdev-bond.c  | 318 +++-
 src/network/networkd-netdev-bond.h  |  85 -
 src/network/networkd-netdev-gperf.gperf |  13 ++
 6 files changed, 627 insertions(+), 4 deletions(-)

diff --git a/man/systemd.netdev.xml b/man/systemd.netdev.xml
index ef58887..4230d19 100644
--- a/man/systemd.netdev.xml
+++ b/man/systemd.netdev.xml
@@ -647,7 +647,174 @@
 /listitem
   /varlistentry
 
+  varlistentry
+termvarnameLearnPacketIntvSec,=/varname/term
+listitem
+  paraSpecifies the number of seconds between instances where the 
bonding
+  driver sends learning packets to each slaves peer switch.
+  The valid range is 1 - 0x7fff; the default value is 1. This 
Option
+  has effect only in balance-tlb and balance-alb modes./para
+/listitem
+  /varlistentry
+
+  varlistentry
+termvarnameAdSelect=/varname/term
+listitem
+  paraSpecifies the 802.3ad aggregation selection logic to use. 
Possible values are
+  literalstable/literal,
+  literalbandwidth/literal,
+  literalcount/literal
+  /para
+/listitem
+  /varlistentry
+
+  varlistentry
+termvarnameFailOverMac=/varname/term
+listitem
+  paraSpecifies whether active-backup mode should set all slaves to
+  the same MAC address at enslavement or, when enabled, perform 
special handling of the
+  bond's MAC address in accordance with the selected policy. The 
default policy is none.
+  Possible values are
+  literalnone/literal,
+  literalactive/literal,
+  literalfollow/literal
+  /para
+/listitem
+  /varlistentry
+
+  varlistentry
+termvarnameArpValidate=/varname/term
+listitem
+  paraSpecifies whether or not ARP probes and replies should be
+  validated in any mode that supports arp monitoring, or whether
+  non-ARP traffic should be filtered (disregarded) for link
+  monitoring purposes. Possible values are
+  literalnone/literal,
+  literalactive/literal,
+  literalbackup/literal,
+  literalall/literal
+  /para
+/listitem
+  /varlistentry
+
+  varlistentry
+termvarnameArpIntervalSec=/varname/term
+listitem
+  paraSpecifies the ARP link monitoring frequency in milliseconds.
+  A value of 0 disables ARP monitoring. The default value is 0.
+  /para
+/listitem
+  /varlistentry
+
+  varlistentry
+termvarnameArpIpTargets=/varname/term
+listitem
+  paraSpecifies the IP addresses to use as ARP monitoring peers when
+  ArpIntervalSec is greater than 0. These are the targets of the ARP 
request
+  sent to determine the health of the link to the targets.
+  Specify these values in ipv4 dotted decimal format. At least one IP
+  address must be given for ARP monitoring to function. The
+  maximum number of targets that can be specified is 16. The
+  default value is no IP addresses.
+  /para
+/listitem
+  /varlistentry
+
+  varlistentry
+termvarnameArpAllTargets=/varname/term
+listitem
+  paraSpecifies the quantity of ArpIpTargets that must be reachable
+  in order for the ARP monitor to consider a slave as being up.
+  This option affects only active-backup mode for slaves with
+  ArpValidate enabled. Possible values are
+  literalany/literal,
+  literalall/literal
+  /para
+/listitem
+  /varlistentry
+
+  varlistentry
+termvarnamePrimaryReselect=/varname/term
+listitem
+  paraSpecifies the reselection policy for the primary slave.  This
+  affects how the primary slave is chosen to become the active slave
+  when failure of the active slave or recovery of the primary slave
+  occurs. This option is designed to prevent flip-flopping between
+  the primary slave and other slaves.  Possible values are
+  literalalways/literal,
+