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) |
|