OpenSolaris

You are not signed in. Sign in or register.

2. Network Configuration Profile (NCP)

Version 0.13, 2009-May-21

2.1 NCP policy

We need to have a way to specify NCP policy in terms of the individual elements (Network Configuration Units, or NCUs) that comprise it. We would like to be able to specify policy preferences such as "prefer wired over wireless", "one interface at a time", etc.

Activation policy will be described primarily in each Link NCU. Therefore, the properties described in the following section will only be defined for link NCUs.

Interface NCUs will only have a boolean 'enabled' property, which will default to a value of true. As interface NCUs must be associated with an underlying link NCU, each interface NCU will therefore be activated when its associated link NCU is active. The user may override this default behavior using nwamadm(1M); however, the dependency on the underlying link NCU cannot be removed. Thus enabling an interface NCU whose link NCU is not active will only change the interface NCU's state to offline; it will only come online when the link NCU is activated.

2.1.1 Properties

Four properties in the NCU data structure will be used to represent the activation policy. They are "activation-mode", "enabled", "priority-group", and "priority-mode". These properties are discussed in more detail in the following sections.

  • property: activation-mode
    type: enum
    value: MANUAL, PRIORITIZED

    The meaning of each value is:

    • MANUAL: The NCU activation is managed by the administrator (using either the GUI or the nwamadm(1M) commandline tool); NWAM will not automatically remove or change it. The current state is reflected by the "enabled" boolean property. The values in "priority-group" and "priority-mode" will be ignored.
    • PRIORITIZED: The NCU should be activated according to the settings in "priority-group" and "priority-mode". The value in "enabled" will be ignored.
  • property: enabled (activation-mode == MANUAL)
    type: boolean
    value: true or false

    Specifies the current state of a manually activated NCU.

  • property: priority-group (activation-mode == PRIORITIZED)
    type: int
    value: An integer, with 0 being the lowest priority. Negative values are invalid.

    Among all the available priority-groups, only the NCU(s) in the highest available priority-group will be activated. Activation behavior when more than one NCU with the same priority is available is defined by "priority group mode" below.

    Note: The priority number should not be viewed as an absolute value; it is subject to change when the NCP repository is updated. But the priority order will be strictly enforced.

  • property: priority-mode (activation-mode == PRIORITIZED)
    type: enum
    values: EXCLUSIVE, SHARED, ALL

    The meaning of each value is:

    • EXCLUSIVE: Only 1 NCU in the priority-group may be active; NWAM will randomly activate one that is available within the group and ignore all others.
    • SHARED: Multiple NCUs in the priority-group may be active at the same time.
    • ALL: In order for the priority-group to be considered available (and thus made active), all NCUs in the group must be available.

2.1.2 Sample Policies

  • One link active at a time; prefer wired over wireless

    For all physical links:

      NCU Type: LINK
      NCU Class: PHYS
      Activation-mode: PRIORITIZED
      Priority-group: 1 (media type == 802.3) or 0 (media type == 802.11)
      Priority-mode: EXCLUSIVE

  • All available wired links active; if no wired available, use one wireless

    For all physical links:

      NCU Type: LINK
      NCU Class: PHYS
      Activation-mode: PRIORITIZED
      Priority-group: 1 (media type == 802.3 or 0 (media type == 802.11)
      Priority-mode: SHARED (802.3) or EXCLUSIVE (802.11)

2.2 Automatic and User-Configured NCPs

In NWAM phase 1, we will have 2 NCPs: the Automatic and User NCPs.

Automatic NCP

This NCP will specify DHCP for address acquisition method, and will enforce a policy of one active link at a time, preferring plugged-in, wired links over wireless, and plumbing IPv4 and IPv6 on that link. It will be made up of one link NCU and one interface NCU for each physical link present in the system; as new links are added or removed, corresponding NCUs will be added or removed.

User NCP

This NCP is managed entirely by the User. NCUs must be added or removed explicitly, and it is possible to add NCUs which do not map to any link currently installed in the system, or to remove NCUs which do map to a link present in the system. The user may also determine the policy for this NCP, allowing multiple link and interfaces to be active at a time, different dependency relationships between NCUs, and/or static IP addressing, as needed.

Upgrade/Install Behavior

On a fresh install, the Automatic NCP will be the only NCP available until the user has created an NCP via the UI. In the upgrade case, if a phase 0 or 0.5 /etc/nwam/llp file existed on the previous installation, that file will be used to create the initial User NCP. In either case, NWAM will run with the Automatic NCP enabled by default. The UI may be used to change the current active NCP.

Revision History

Revision Date Changes
0.1 2008-Apr-17 initial draft
0.2 2008-Apr-21 added UI switching approach suggested by Darren
0.3 2008-Apr-24 added initial thoughts on GUI representation of policy
0.4 2008-Apr-25 editorial/formatting updates
0.5 2008-Sep-09 update property names/values
0.6 2008-Oct-21 update property details
0.7 2008-Dec-23 update based on implementation experience: activation policy is specific to link NCUs.
0.8 2009-Jan-27 miscellaneous clean-up
0.9 2009-Feb-13 Design review feedback; more implementation changes
0.10 2009-Mar-11 clarify details about manual activation, the enabled property, and priority numbers
0.11 2009-Apr-14 ip ncus have enabled property (but no activation-mode)
0.12 2009-May-05 change ncu type "ip" to "interface" (8650)
0.13 2009-May-21 update manpage/spec with new NCP defs and upgrade policies (8940)