I'd like to make an additional small update to this case: it was recently suggested that the m_margin flag be part of the committed GLDv3 interfaces to improve source-level compatibility between S10 and Nevada. The changes to the spec are straightforward. I have included the diffs below, and attached a new version of the mac_register(9S) man page draft. I'd prefer if this case could be updated to reflect these changes, instead of filing a separate case.

Thanks,
Nicolas.

*** mac_register-9s.txt.org     2010-04-19 15:14:53.506964153 -0700
--- mac_register-9s.txt 2010-04-19 15:23:35.382018489 -0700
***************
*** 34,39 ****
--- 34,40 ----
        void            *m_pdata;
        size_t          m_pdata_size;
        mac_priv_prop_t *m_priv_props;
+       uint32_t                m_margin;

       The following fields of mac_register_t must be set by the device
       driver before invoking the mac_register(9F) entry point:
***************
*** 81,86 ****
--- 82,97 ----
       m_priv_props     Array of Driver-private properties names,
                        terminated by a NULL pointer.

+      m_margin         Drivers set this value to the amount
+                       of data in bytes that the device can
+                       transmit  beyond  m_max_sdu.   For
+                       example,  if  an Ethernet device can
+                       handle packets whose payload section
+                       is  no  greater  than 1522 bytes and
+                       m_max_sdu is set to  1500  (as
+                       is typical for Ethernet), then
+                       m_margin  is  set  to   22.
+
  DESCRIPTION

       See mac_register(9F) for more details on the use of these


--
Nicolas Droux - Solaris Core OS Engineering - Oracle
[email protected] - (650) 786-7722
17 Network Circle, Menlo Park, CA 94025
Data Structures for Drivers                         mac_register(9S)

NAME

     mac_register - MAC device driver registration data structure

SYNOPSIS

     #include <sys/mac_provider.h>
     #include <sys/mac_ether.h>

INTERFACE LEVEL

     Solaris architecture specific (Solaris DDI).

DESCRIPTION

     The mac_register data structure is passed by device drivers
     to the MAC layer when registering using mac_register(9F).

STRUCTURE MEMBERS 

      uint_t            m_version;              /* set by framework */
      const char        *m_type_ident;
      void              *m_driver;
      dev_info_t        *m_dip;
      uint_t            m_instance;
      uint8_t           *m_src_addr;
      uint8_t           *m_dst_addr;
      mac_callbacks_t   *m_callbacks;
      uint_t            m_min_sdu;
      uint_t            m_max_sdu;
      void              *m_pdata;
      size_t            m_pdata_size;
      mac_priv_prop_t   *m_priv_props;
      uint32_t          m_margin;

     The following fields of mac_register_t must be set by the device
     driver before invoking the mac_register(9F) entry point:

     m_version          Set by mac_alloc(9F), device drivers should
                        not modify that field.

     m_type_ident       Must be set to one of the following depending
                        on the type of device being registered.

                        MAC_PLUGIN_IDENT_ETHER  Ethernet driver

     m_driver           Driver handle, opaque to the framework, usually
                        points to a per-driver instance data structure.
                        Passed back as argument to driver's entry points
                        invoked by the framework.

     m_dip              Pointer to the driver instance dev_info structure,
                        see attach(9E).

     m_instance         Used by the driver to specify the instance number
                        to be associated with the MAC being registered.
                        This value should always specified by zero.

     m_src_addr         Pointer to the primary MAC address value of the
                        MAC instance.

     m_dst_addr         Pointer to the destination MAC address value of
                        a fixed destination MAC address. This field is
                        optional and should be set to NULL for regular
                        device drivers.

     m_min_sdu          Minimum Service Data Unit size, the minimum
                        packet size, not including the MAC header,
                        that the device can transmit. This can be zero
                        if the device driver can handle any required
                        padding.

     m_max_sdu          Maximum Service Data Unit size, the maximum
                        packet size, not including the MAC header,
                        that can be transmitted by the device. For
                        Ethernet, this number is commonly refered
                        to as the MTU (maximum transmission unit.)
                        
     m_priv_props       Array of Driver-private properties names,
                        terminated by a NULL pointer.

     m_margin           Drivers set this value to the amount
                        of data in bytes that the device can
                        transmit  beyond  m_max_sdu.   For
                        example,  if  an Ethernet device can
                        handle packets whose payload section
                        is  no  greater  than 1522 bytes and
                        m_max_sdu is set to  1500  (as
                        is typical for Ethernet), then
                        m_margin  is  set  to   22.

DESCRIPTION

     See mac_register(9F) for more details on the use of these
     various fields.

     Note that the driver is responsible for allocating the memory
     pointed to by the fields m_priv_props, m_src_addr, and
     m_dst_addr. The driver can free this memory if it wishes after
     the call to mac_register(9F) returns.

ATTRIBUTES

     See attributes(5) for descriptions of the  following  attri-
     butes:

     ____________________________________________________________
    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
    |_____________________________|_____________________________|
    | Availability                | SUNWhea                     |
    |_____________________________|_____________________________|
    | Interface Stability         | Committed                   |
    |_____________________________|_____________________________|

SEE ALSO

    mac_register(9F), attributes(5)
_______________________________________________
opensolaris-arc mailing list
[email protected]

Reply via email to