2004-04-13 mvidner

general:
take care to distinguish devices and interfaces, as zoz says
having COW, evals are no longer necessary

Modem
-----

imports Routing but the only use is Routing::Read

Network
-------

is empty

Detection
---------

What is it good for:
detects network services settings, either from dhcp or by sniffing
network traffic

? contents of the result map
? what if we do not have an eth interface, but a different one? (in
these days eg wlan)

Firewall
--------

only operates on .sysconfig.personal-firewall.REJECT_ALL_INCOMING_CONNECTIONS
SuSEfirewall2.rpm
(what if the rpm is not installed?)
see also the standalone firewall module, SuSEFirewall2.ycp

why translate ppp to modem?

Host
----

manages /etc/host.conf (using ag_ini)
only one name per computer, assigned to all IPs?

? format of the hosts map
initialized: ensures that Read is executed only once
bogus route.conf comment
Update: nontrivial, describe

NetworkConfig
-------------

just holds /etc/sysconfig/network/{config,dhcp} in global variables.

Write: bogus DNS string

NetworkDevices
--------------

Is this module for devices or interfaces? For ifcfg-* there's
network.scr, for hwcfg-* there's cfg_hardware.scr from yast2.rpm
Docs: point to the specification of their contents (but maybe not,
this is quite generic, only the users of this module will do it)

uses include/routines: device_type, device_num, alias_num
Does it work at all with the new naming scheme???

Name: explain "current device"
HotplugRegex: "foo|foo-" is superfluous, right? no, these regexes may
be surrounded by ^$ or ()
stack, Push, Pop: (not a real stack (yet?)), holds Name, Current,
operation
ReadDevices does not exist -> Read
Read:
interface files (no backups~) are read and stuffed to Devices["eth",
"0"]. for alias items, there are submaps Devices["eth", "0",
"_aliases", "1"]
Filter[NOT]: in: Device map (but then why need trailing number*?) and
device type regex (or its abbereviation string, eg "netcard")
Write: what is in Deleted is no longer in Devices
GetFreeDevicesOld=GetFreeDevices. why?
Select: can also get "", sets Name and Current ("fixme ni": bug#?)
Add, Edit, Delete: just call Select and set operation
Change2: if check and exists, then error and don't change it
Delete2: removes from Devices, adds to Deleted
Commit: called after Add, Edit, Delete, calls Change2, Delete2, clears
Name, Current, operation
GetValue: Select, Current
SetValue: Edit, Curent, Commit
LocateNOT: correct doc: key != val
Fastest: just has a priority list of types
HasAliases: why not a != "" ?

NetworkModules
--------------

structurally similar to NetworkDevices (maybe because we no longer
have dynamic scoping?)
generally Devices have been replaced by Modules

Modules: a flat structure
Filter[NOT]: fixme broken filtering
AddM, SelectM: work on Alias(MODULE) and Options(MODULE_OPTIONS)
ChangeM, DeleteM: commits
ugh, what's the difference from the similar set copied from
NetworkDevices?
GetFreeName[s]: ok
GetFreeModule: unused
ListM: quite bogus too

lots of duplicated code here :-(

DNS
---

manages resolv.conf and (fq) host name, or sets dhcp to get it

domain: not including host?
resolv_conf_process: the name of a process that has claimed r_c?
reslov_conf: bogus routes comment
Read/Write: includes Host,NetworkConfig::R/W
.etc.resolv_conf is an alias for .resolver (used in Openteam)
move ag_resolver here
Write: DHCLIENT_SET_HOSTNAME: bug#?

Routing
-------

link to docs? man 5 routes

does it work with interface-specific ones? (ifroute-lo...)
why doesn't medusa have the file?

Routes: data structure? anyagent
  list< map<string, string> >: destination,gateway,netmask[,device[,extrapara]]
Forward: .sysconfig.sysctl.IP_FORWARD
Read: if no routes, sets a default gateway from detection
Write: why omit rcroute stop/start?

Provider
--------

internet service provider data, grouped by country
used by modem, isdn, dsl modules
custom providers .sysconfig.network.providers (country = "_custom"), predefined ones
.providers (package providers.rpm)

Current: structure?
Type: probably modem|isdn|dsl. probably affects structure of current. docs?
Read: why String::UnQuote here and not in the other modules?
Write: unlike other modules, it inserts missing default values
(shouldn't it be TYPE+SUPPORTED = yes?)
CloneProvider: used in many places
FilterProviders: fixme^n, further types: rawip, syncppp (ENCAP)?

Internet
--------

handles internet connection test and you during the installation

Start: use Service::; yuck, undocumented bash_input

Remote
------

remote administration via VNC
write only

Proxy
-----

configures ftp and http proxies for whatever via sysconfig/suseconfig
and for you via .curlrc

http,ftp,no: .sysconfig.proxy.$1_PROXY (NO_PROXY?)

Lan
---

"fixme MOD": ???
name: ???
unique: is it still necessary with sysfs?
type, device, alias: ??? describe!
hotplug: enumeration? still valid? (everything is hotplug now)
remoteip: when valid?
wireless options: when valid? where docs?
nm_name: reverse mapping? why needed?
Hardware: ReadHardware is in include/hardware
InstallInf: used for proposal
Read: ReadStatus does nothing, always returns true
Import/Export: why not Host?

include/hardware
----------------

(includes in general)
what globals does it depend on? eg. SelectHarware must have global
name, type, hotplug

TODO
====

read about .probe
