I've put together the following overview of the changes that have
been made (from an interface perspective) since we had our PSARC
commitment review.  Comments welcome!

Thanks,
renee



1. Introduction
   1.1. Project/Component Working Name:
        Network Auto-Magic (NWAM) Phase 1 Updates

   1.2. Name of Document Author/Supplier:
        Renee Danson

   1.3. Date of This Document:
        19-Jun-2009
        
4. Technical Description:
   See text below.

6. Resources and Schedule:
   6.4. Product Approval Committee requested information:
        6.4.1. Consolidation or Component Name:
                ON
   6.5. ARC review type: FastTrack
   6.6. ARC Exposure: open


In the course of completing the implementation of NWAM Phase 1, several
interface changes were made.  Most were relatively minor; they are all
documented below.

 1. Nomenclature change
    Refer to NCU types as link and interface, instead of link and ip.
    Link-type NCUs currently have one possible class: phys; Interface-type
    NCUs also have one possible class: ip.  There is an expectation that as
    support for more sophisticated network configurations is added,
    additional classes will be created.  However, the class will always
    imply the type; therefore commands will generally only use the class
    descriptor.

 2. Updates to the nwamadm options
    * Added a new parameter to specify NCU class, to allow differentiation
      between Link and IP NCUs, if desired.
    * Change the option letter for specifying the profile-type from 't' to 'p'

 3. Updates to nwamadm output
    The output of the 'list' subcommand will include information about the
    state of the NCUs that make up the currently active NCP.
 
 4. Make 'enabled' property common to all NCUs, not just Link NCUs.
    This change makes the plumbing of ip on a link independent of making the
    link active.  Bringing up a link and plumbing ip on it can still be
    accomplished with one command ('nwamadm enable -p ncu wpi0'); but it is
    also possible to separate the two steps ('nwamadm enable -p ncu -c link
    wpi0' and 'nwamadm enable -p ncu -c ip wpi0').

 5. 'all' is no longer a valid value for the ip-version property
    This property allows multiple values; so the value 'all' is not needed,
    as the desired IP versions may simply be enumerated.  This change also
    means the default value of the property is "ipv4,ipv6" rather than "all".

 6. ipv6-addrsrc value change
    The value 'dhcpv6' is now simply 'dhcp'.  Assigning the value to the
    ipv6-addrsrc property implies that the v6 version of the protocol should
    be used, no need to differentiate in the names.

    Also, dhcp and autoconf values must be included if ipv6-addrsrc is set;
    disabling these two address configuration methods is not allowed at this
    time.  Though this is a change from the legacy Solaris behavior, it is
    actually more in keeping with the IPv6 specifications, which state that
    the use of those two address configuration methods is specified by the
    router, not the host.  Adding or removing the value 'static' to/from the
    ipv6-addrsrc property is allowed.

 7. Remove hosts-file property from Location profile
    Use of this property, to replace the /etc/hosts file when changing
    location, was not particularly useful, and could lead to confusion if
    some locations specified an alternate file, while others did not.

 8. add '-V' option to nwamcfg's 'get' subcommand
    Default output from the get command is 'propname=propval'.  For ease
    of scripting, the -V option outputs the value only.

    Example:
    % nwamcfg "select wlan Asbury; get priority"
        priority  0
    % nwamcfg "select wlan Asbury; get -V priority"
    0

 9. Change 'upgraded' nwam service property to 'version'
    Rather than having a simple boolean to indicate whether or not legacy
    configuration has been updated, we will have a count property which can
    evolve as needed.  It will not exist when the phase 1 bits are installed,
    and will be set to a value of '1' once pre-phase-1 configuration, if any,
    has been updated.

10. Effect on Automatic and User NCPs when links are added/removed
    Earlier behavior was to add newly-discovered links to all NCPs, both
    User and Automatic.  This had the unfortunate side effect of preventing
    the user from permanently removing links that they really did not want
    NWAM to manage from the User NCP: upon restart, nwamd would see that a
    link was present in the system that did not exist in the User NCP, and
    promptly add it.  This also would force the user to continually recreate
    configuration for a device that was sometimes removed, e.g. a PC-card
    wireless adapter.

    Revised behavior is to make such changes to the Automatic NCP, but not
    the User NCP.  If a link is added to the system, the user must explicitly
    add it to the User NCP if desired; on removal from the system, it will
    not be removed from the User NCP.

11. Change upgrade behavior
    Upon upgrade, earlier nwam link and interface configuration will be
    imported into the User NCP.  However, the Automatic NCP will be active
    by default.  The rationale for this change is that the default config
    implemented in earlier nwam versions is the same as the Automatic NCP
    behavior, and we expect that most users will not have made changes, and
    therefore will want the Automatic NCP.  The previously discussed change
    with respect to automatic addition/removal of inserted/removed links
    makes this especially desirable.  Users who actually modified their
    earlier configuration (which should be a small minority) can switch to
    the User NCP to get their changes.

12. Add the following functions and flags to the consolidation-private
    libnwam interface:

    * nwam_error_t nwam_ncp_get_active_priority_group(int64_t *);

      Returns the currently active priority group.  In addition, changes
      to the active priority group are reported with an
      NWAM_EVENT_TYPE_PRIORITY_GROUP event.  This allows consumers to
      track changes to the active group.

    * NWAM_FLAG_KNOWN_WLAN_NO_COLLISION_CHECK flag

      As each known_wlan must have a unique priority value, the default
      behavior upon commit of a known_wlan object is to check for a
      priority collision and shift existing values as needed.  However,
      in cases where the consumer is writing the complete list, having
      explicitly set each priority value, such checking is not needed.
      Passing this flag in the flags parameter of the commit function
      will skip collision checking.

    * nwam_error_t nwam_wlan_get_scan_results(const char *linkname,
          uint_t *num_wlansp, nwam_wlan_t **wlansp);

      Consumers need a way of requesting the results of the most recent
      wireless scan; this function provides that.

    * nwam_*_get_state(nwam_*_handle_t handle, nwam_state_t *state,
          nwam_aux_state_t *aux_state)

      Returns the current state of the specified object.

    * nwam_error_t nwam_wlan_get_selection(const char *linkname,
          char **essidp, char **bssidp);

      Returns the selected wlan, if applicable, for the specified link.

    * add argument to nwam_wlan_select()

      Additional boolean parameter added to this function to specify
      whether or not the selected wlan should be added to the known_wlan
      list.

Reply via email to