Re: [PATCH 0/5] vlan support for NetworkManager(V2)



I find there are some problems in this patchset, such the parser is not correct,
and the vlan device can't be created.

so just ignore them, please review V3.

thanks
Weiping Pan
On 11/20/2011 08:16 PM, Weiping Pan wrote:
This patchset is to add vlan support for NetworkManager,
based on nm/bonding branch, commit 6b1d0ca510d2(bonding:
don't fall back to DHCP if IP config is missing).

Requires libnl-3.2.1

FEATURE DESCRIPTION
1 example of vlan ifcfg file
We try to make it compitable with the format used by initscripts,
and there is no need to change anything for ifcfg-eth9.

vlan=yes
TYPE=vlan
DEVICE=vlan43
PHYSDEV=eth9
REORDER_HDR=0
vlan_FLAGS=GVRP,LOOSE_BINDING
vlan_INGRESS_PRIORITY_MAP=0:1,2:5
vlan_EGRESS_PRIORITY_MAP=12:3,14:7
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.43.149
NETMASK=255.255.255.0

2 create and delete vlan device
We use libnl to create and delete vlan device in kernel.

3 support both static IP configuration and DHCP for vlan device

TODO
1 accept MAC address or NM connection UUID as PHYSDEV

2 activating dependency
Before activating a vlan device, we should make sure that the underlying
physical ethernet device is up.
For example, before activating eth0.100, we should make sure that eth0 is up.
NetworkManager calls g_udev_client_query_by_subsystem() to get the device
list, and then activates each devices on that device list.
And luckily I found that the physical ethernet device is prior to vlan device
on that device list, so there is nothing to do to make sure the activating
sequence between a vlan device and its underlying physical ethernet device.

Maybe we should not rely on the behavior of
g_udev_client_query_by_subsystem(), and we should add special restriction to
make sure that before activating a vlan device, the underlying physical
ethernet device is up.

Changelog:
V2:
1 rebase on nm/bonding branch
2 use "vlan" or "Vlan" instead of "VLAN" for consistency.
3 use GSList to store vlan ingress/egress priority map.
4 add enum NMVlanFlags.
5 delete NMDeviceVLAN, just use NMDeviceEthernet.
6 add ifcfg-vlan writer

Weiping Pan (5):
   configure: use correct if defined
   vlan: add ifcfg-vlan parser
   vlan: create/delete kernel vlan device
   vlan: create NMDeviceEthernet for vlan device
   vlan: add ifcfg-vlan writer

  libnm-util/Makefile.am                             |    2 +
  libnm-util/libnm-util.ver                          |   11 +
  libnm-util/nm-connection.c                         |   26 +-
  libnm-util/nm-connection.h                         |    2 +
  libnm-util/nm-setting-vlan.c                       |  584 ++++++++++++++++++++
  libnm-util/nm-setting-vlan.h                       |  118 ++++
  src/nm-device-ethernet.c                           |   34 +-
  src/nm-device-ethernet.h                           |    1 +
  src/nm-netlink-compat.h                            |    2 +-
  src/nm-system.c                                    |  156 ++++++
  src/nm-system.h                                    |    5 +-
  src/nm-udev-manager.c                              |    4 +-
  src/settings/nm-settings.c                         |    9 +
  src/settings/plugins/ifcfg-rh/common.h             |    1 +
  src/settings/plugins/ifcfg-rh/reader.c             |  179 ++++++-
  .../network-scripts/ifcfg-test-vlan-interface      |   11 +-
  .../plugins/ifcfg-rh/tests/test-ifcfg-rh.c         |   41 ++-
  src/settings/plugins/ifcfg-rh/writer.c             |   90 +++
  18 files changed, 1251 insertions(+), 25 deletions(-)
  create mode 100644 libnm-util/nm-setting-vlan.c
  create mode 100644 libnm-util/nm-setting-vlan.h




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