If you wonder why another model for the same, I have started this
in parallel to Miso looking at CIM, and intentionally it does not
include any CIM yet.

Next we will look how it can be made more CIM-like and whether the
anticipated resulting complication is too much :)

* /network

http://mschmidkunz.110mb.com/network.html
Everything goes under /network
But the network services, including a DHCP *server*, will be outside

Basic Config
------------

* /network/devices/ (RO)

Devices and interfaces are the same for now.
Devices are read only (for physial devices, but see below for virtual).
The read-write part are the configs.

* /network/devices/1 (RO)
  interface=eth0
  product=MSI 1341

* /network/configs/ (RO)

Configs are separated from devices

like ifcfg-*
(shown here like key-value pairs but xml in fact)

* /network/configs/1 (RW)
  startmode=dhcp4
* /network/configs/2
  bootproto=static
  ipaddr=1.2.3.4/24
* /network/configs/3
  startmode=dhcp4
  wireless_essid=HomeWiFi
  wireless_key=HomeSweetHome
* /network/configs/4
  startmode=dhcp4
  wireless_essid=WorkWiFi
  wireless_wpa_psk=HomeSweetHome

In the above form, configs are not associated with devices
and it works like in NetworkManager, a call like
  /network/devices/1/configure?config=/network/configs/42
is needed.
But a config can get another attribute, "device" that makes it the
default config for a device, and it works like our ifcfg (where
"device" is in the filename)

For simplicity, the UI can hide the device-config separation and
always edit the single config for a device.

* /network/devices/1/current-config (RO) (current_config? TODO style)
  ipaddr=1.2.3.4/24

This distinguishes the config, which can specify the IP or say DHCP
from the current-config, which always specifies the IP (or does not exist).
Think /etc versus "ip" output.

* /network/routes/
* /network/routes/default (RW)
  <route>
    <via>1.2.3.4</>  ("ip r" keyword)
  <route>

* /network/resolver (RW)
  <nameservers>
    <nameserver>1.2.3.4</>
    <nameserver>1.2.3.42</>
  </>
  <searches>
    <search>example.com</>
    <search>example.net</>
  </>
  (use-dhcp ?)

* /network/resolver/current-config (RO)
Like with the devices, this shows the config even if /network/resolver
says DHCP

* /network/hostname (RW)
  hostname=trikolka
  domain=suse.cz
  fqdn=trikolka.suse.cz
  (dhcp??)


Virtual Devices
---------------

(This is for the future, included here just to show that the API
accomodates them)
 
For virtual devices (special interfaces not based on hardware devices
- bridge, bonding, vlan) is sysconfig configuration splitted into
device and configuration parts. /network/configs stays the same and
/network/devices becomes writable (details to be worked out but the
REST paths are unchanged from the basic config)
 
bridge
------
       ifcfg-br0
            STARTMODE='auto'
            BOOTPROTO='dhcp'
            BRIDGE='yes'
            BRIDGE_PORTS='eth0 eth1'
            BRIDGE_PORTPRIORITIES='50 20'
 
* /network/devices/1
            interface=br0
            bridge='yes'
            bridge_ports='eth0 eth1'
            bridge_portpriorities='50 20'
 
* /network/configs/1
            bootproto='dhcp'
 
VLAN
----
       ifcfg-vlan3
          STARTMODE=onboot
          ETHERDEVICE=eth0
          IPADDR=192.168.3.27/24
 
* /network/devices/1
          interface=vlan3
          etherdevice=eth0  # /network/devices/10
* /network/configs/1
          ipaddr=192.168.3.27/24
 
bonding
-------
       ifcfg-bond0
          STARTMODE='onboot'
          BOOTPROTO='static'
          IPADDR='192.168.0.1/24'
 
          BONDING_MASTER='yes'
          BONDING_SLAVE_0='eth0'
          BONDING_SLAVE_1='eth1'
          BONDING_MODULE_OPTS='mode=1'            # backup mode
 
* /network/devices/1
          interface=bond0
          bonding_master='yes'
          bonding_slave_0='eth0'  # /network/devices/10
          bonding_slave_1='eth1'  # /network/devices/11
          bonding_module_opts='mode=1'            # backup mode
* /network/configs/1
          ipaddr='192.168.0.1/24'

-- 
Martin Vidner, YaST developer
http://en.opensuse.org/User:Mvidner

Kuracke oddeleni v restauraci je jako fekalni oddeleni v bazenu
-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to