I'm sponsoring this case for Sagun Shakya and the Clearview I-Team.

The timer is set for Friday, November 17th.  These proposed changes are
small and only impact unshipped interfaces.  Patch binding is again
requested.

---8<--

  During the implementation of libdlpi a few changes were made to the
  original proposal specified in PSARC/2006/436.  The changes and the
  rationale for them are summarized below.  A copy of the original approved
  proposal has been updated with indication of changes made and an updated
  libdlpi manpages has also been provided in the materials directory.

  Proposed changes:

  1. libdlpi error code changes                 [Section 1.6 Error Handling]

     DLPI_ERRBASE, which was previously used internally by libdlpi, has
     proven unnecessary and thus will be removed.
 
     DLPI_ENOMEM will be removed in favor of using DLPI_SYSERR/ENOMEM. 

     DLPI_ENOLINK and DLPI_ENOTSTYLE2 will be added to provide a more
     specific error code and to improve end-user diagnostic message.

  2. dlpi_addrtype_t and dri_dstaddrtype        [Section 2.1 Interface Table] 

     Originally, the dlpi_recvinfo_t structure had a boolean "dri_unicast"
     member, which indicated the destination address type.  Since the DLPI
     specification does not strictly specify only two destination address
     types, a future extension would be restricted with a boolean member.
     Thus, dri_isunicast will be replaced with dri_dstaddrtype, which will
     use a new dlpi_addrtype_t enumerated type to indicate the destination
     address type.

  3. dlpi_makelink()          [Section 2.1 Interface Table, 2.2.1 Interfaces]

     Some low-level applications walk the device tree and must convert
     device name/instance pairs into DLPI link names (e.g., in order to
     then call dlpi_open()).  To make this easy, a dlpi_makelink()
     convenience routine has been added.  Since we are not aware of any
     consumers outside of ON, dlpi_makelink() will be Consolidation
     Private and undocumented.
  
  4. DLPI_NOATTACH            [Section 2.1 Interface Table, 2.2.2 flag usage]

     Originally, we proposed the Consolidation Private routines
     dlpi_attach() and dlpi_detach(), to allow applications to explicitly
     attach/detach to/from a specific PPA of an open DLPI device.

     However, dlpi_attach() has proven unnecessary, and will be removed.
     Similarly, dlpi_detach() was only used by ifconfig to workaround an
     oddity in our IP and ARP STREAMS modules.  Specifically, IP and ARP
     assume that they are pushed atop an *unattached* DLPI style-2 device.
     Thus, ifconfig must issue a detach after dlpi_open() but prior to
     pushing the modules.  However, it is senseless to have dlpi_open()
     attach only to subsequently call dlpi_detach().  Instead,
     dlpi_detach() will be replaced by a DLPI_NOATTACH dlpi_open() flag
     which indicates that an attach is not desired.  (Note that the IP/ARP
     behavior is questionable but outside our scope.)

  5. DLPI_SERIAL              [Section 2.1 Interface Table, 2.2.2 flag usage]

     Although the synchronous serial line interface is not a true DLPI
     link, it uses a DLPI-like message passing interface to communicate
     with serial devices.  With the intention of not leaving any raw users
     of DLPI message types in the ON Consolidation, libdlpi will continue
     to support the synchronous serial line commands (syncinit(1M),
     syncstat(1M), syncloop(1M)) by providing a special Consolidation
     private flag DLPI_SERIAL to the dlpi_open() routine.  This flag
     minimizes the impact of supporting the above mentioned commands by
     allowing special treatment during the open of such synchronous serial
     line interfaces.

-- 
meem

Reply via email to