3. NWAM Locations

Version 0.8, 2008-Oct-21

A location ties together additional networking details once basic IP connectivity is established. Locations consist of a required set of properties, which we refer to as 'hardwired' location info, and can also handle additional data - i.e. locations are extensible. Section 3.1 specifies hardwired properties, and provides some very rough initial GUI sketches for those hardwired properties which are not covered in the current revision of the GUI spec. Section 3.2 discusses extensibility, and again includes some rough initial GUI sketches.

3.1 Hardwired Properties

We discuss these by group, where a group signifies a particular class of configuration preferences.

3.2 Extensible Properties

The hardwired properties describe a minimal set of location information, but there is a desire to support extensibility for locations, so that as new, network-related services are added to the system, they may have configuration properties included in the location.

Service developers can identify properties that should be included in location specifications by creating some additional properties for their service:

When NWAM is asked for the list of attributes of a Location, it will return both the hard-wired attributes it already knows about, and the set of attributes it discovers by walking the SMF repository and looking for the nwam/config property and associated property groups.

The following table lists the service properties that must be defined in order to identify a user-configurable service property.

Property Group/Property Name Property Type Description
nwam/config boolean Flag to indicate presence of user-configurable properties
prop_name/nwam_location boolean Tag identifying this group as a user-configurable group
prop_name/prop_group string The property group for this property
prop_name/description astring Description that identifies the property for users
prop_name/prop_type astring The type associated with the property value
prop_name/default_val type specified by prop_type The value that should be assigned to this property when a new Location is created
prop_name/no_net_val type specified by prop_type The value that should be assigned to this property when the No-net Location is enabled
prop_name/auto_val type specified by prop_type The value that should be assigned to this property when the Automatic Location is enabled

In essence, this is an extensible property template. The name of the property group here is the name of the property to be managed, and the presence of the nwam_location property set to true identifies this group as an NWAM extensible location property. The group and name of the extensible property are identified by the prop_group and prop_name values; a default, no-net and automatic location value may optionally be specified. An optional test description of the property may be included as well; this will be passed to any consumers of the API to provide explanatory text describing the property.

A possible GUI representation of such extensible properties is below:

The value in a newly created location will be initialized to the default, if it is supplied; it will be empty otherwise. In this design, we assume that each extensible property has a unique name that does not clash with any hardwired property names or any other extensible property name. To ensure this, it is suggested that the service name, or some other unique tag, be included in the extensible property name.

From an API perspective, we will provide additional API functions to discover and set extensible properties. When the configuration daemon (netcfgd) is started or refreshed, it will update the extensible property lists in each location, detecting if extensible properties have been added/removed. When a location is activated, the appropriate extensible values will be set for the service instances in question and they will be refreshed/temporarily enabled as needed.

Revision History

Revision Date Changes
0.1 2008-Apr-15 initial draft
0.2 2008-Apr-17 remove nodename property; add hosts_file
0.3 2008-Apr-18 add predefined locations - no-net and automatic locations
0.4 2008-Apr-28 merge/reorganize data in repository and location pages
0.5 2008-Apr-29 add property instantiation details
0.6 2008-Sep-09 update hard-wired properties
0.7 2008-Sep-23 minor cleanup/clarification in activation and nameservices props
0.8 2008-Oct-21 more cleanup/clarification in activation props