[PATCH 0/8] bonding support v2



This is the second iteration of initial bonding support in NM with
all comments addressed (I hope).

Requires libnl-3.2.1

Details
  o both master and slaves require a ifcfg file:
     o master:
         TYPE=bond
         DEVICE=bond3
         BONDING_OPTS="mode=..."
     o slaves:
         TYPE=Ethernet
         MASTER=bond3

  o both master and slaves will have their own connection, creation
    of a new master connection of type "bond" trigger creation of
    virtual in-kernel interface if it does not exist yet.

  o activation of slaves is postponed until a connection is present
    with matching DEVICE= config

  o slave connections are enforced to not have any ip configuration or
    that ip configuration is disabled.

  o upon activation of slave, slave is enslaved to master using libnl3
    or if kernel does not support it yet, using ioctl()

  o There is no NMDeviceBond, NMDeviceEthernet is reused since a bond
    is basically an ethernet device. Good idea?

  o "master" property of all slaves return "bond0", "bond3", ...

Several bits are still missing:

  o Setting of bonding parameters is not implemented yet.
  o The bond connection does not wait with ip config until all
    slaves have activated yet. Not sure how to implement this
    properly yet.
  o "slaves" property still missing
  o Naming of slave connections to display their relationship to
    a slave.


Thomas Graf (8):
  bonding: settings parser for ifcfg plugin + NMSettingBond class
  connection: Add nm_connection_is_type()
  bonding: kernel bonding device creation
  bonding: Detect virtual bonding devices and create an ethernet device
  bonding: Implement bonding slaves
  bonding: Postpone auto-activation of a slave until master is present
  bonding: Enslave/release bonding slaves in activation/deactivation
  bonding: Do not fall back to DHCP if no ip config is present if
    connection is a bond

 libnm-util/Makefile.am                 |    2 +
 libnm-util/libnm-util.ver              |   16 +
 libnm-util/nm-connection.c             |   40 +++-
 libnm-util/nm-connection.h             |    4 +
 libnm-util/nm-setting-bond.c           |  563 ++++++++++++++++++++++++++++++++
 libnm-util/nm-setting-bond.h           |   94 ++++++
 libnm-util/nm-setting-connection.c     |  140 ++++++++
 libnm-util/nm-setting-connection.h     |   11 +-
 src/nm-device-ethernet.c               |   35 ++-
 src/nm-device-ethernet.h               |    2 +
 src/nm-device.c                        |   98 ++++++-
 src/nm-device.h                        |    4 +
 src/nm-manager.c                       |  102 ++++++-
 src/nm-manager.h                       |    4 +
 src/nm-policy.c                        |   34 ++
 src/nm-system.c                        |  268 +++++++++++++++-
 src/nm-system.h                        |    8 +
 src/nm-udev-manager.c                  |   14 +-
 src/settings/nm-settings.c             |   13 +-
 src/settings/plugins/ifcfg-rh/common.h |    3 +-
 src/settings/plugins/ifcfg-rh/reader.c |  201 +++++++++++-
 21 files changed, 1619 insertions(+), 37 deletions(-)
 create mode 100644 libnm-util/nm-setting-bond.c
 create mode 100644 libnm-util/nm-setting-bond.h

-- 
1.7.6.4



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]