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: yast-devel+unsubscribe@opensuse.org For additional commands, e-mail: yast-devel+help@opensuse.org