FYI.
----- Forwarded message from Garrett D'Amore - sun microsystems <[EMAIL
PROTECTED]> -----
> To: [EMAIL PROTECTED]
> Cc: [EMAIL PROTECTED]
> From: Garrett D'Amore - sun microsystems <[EMAIL PROTECTED]>
> Date: Tue, 04 Mar 2008 21:24:01 -0800 (PST)
> Subject: Brussels: NDD compatiblity support [PSARC/2008/171 FastTrack timeout
> 03/11/2008]
> x_sac_archived: PSARC/2008/171
> x_sac_loop: [EMAIL PROTECTED]
>
> I'm sponsoring the following fasttrack for Sowmini Varadhan. Timeout is set
> for March 11, 2008.
>
> Template Version: @(#)sac_nextcase 1.64 07/13/07 SMI
> This information is Copyright 2008 Sun Microsystems
> 1. Introduction
> 1.1. Project/Component Working Name:
> Brussels: NDD compatiblity support
> 1.2. Name of Document Author/Supplier:
> Author: Sowmini Varadhan
> 1.3 Date of This Document:
> 04 March, 2008
> 4. Technical Description
>
> Brussels: NDD compatiblity support
> ----------------------------------
>
> 1. Introduction
> ---------------
> This case describes the ``ndd compatibility'' component of the umbrella
> case for PSARC 2007/429, that will provide legacy support of
> existing ndd usage at the GLDv3 layer using the methods
> described in Section 2 of this document.
>
> Release binding: minor
>
>
> 2. NDD Compatibility Problem
> -----------------------------
> Drivers typically parse the ioctl data for ndd(1m) ioctls
> by using undocumented Mentat interfaces like nd_load() and nd_getset()
> with these calls being unfortunately duplicated across drivers.
> The duplicated logic can easily be avoided by parsing the ndd ioctl
> mapping it to GLDv3 calls in the intermediate GLDv3 modules
> (See CR 6667363).
>
> 2.1 Proposed Solution
> ---------------------
> Variables typically covered by ndd(1m) for drivers are typically the
> MII parameters defined in ieee802.3(5). For the purpose of this
> document, we define these MII parameters, and particularly the syntax
> used in ieee802.3(5) as "canonical ndd parameters".
>
> In addition to the canonical parameters, it is not uncommon to encounter
> other ndd parameters implemented in many drivers. For example, the bge
> driver implements "adv_asym_pause_cap" instead of the ieee802.3(5)
> version, adv_cap_asmpause. This document defines these variant
> names supported in driver ndd implementations as "non-canonical
> ndd parameters".
>
> The public properties introduced by PSARC 2007/429 ("Brussels Enhanced
> Network Driver Configuration Via dladm") and the ether_stats introduced
> by PSARC 2006/248 ("Nemo MAC-Type Plugin Architecture") together cover
> all of the canonical NDD parameters. Thus, when the mac layer recognizes
> that mc_setprop and mc_getprop interfaces have been registered for the
> driver, the ioctl data for the ndd call may be intercepted and parsed
> at the mac layer and mapped to an equivalent GLDv3 call. All syntax,
> permission and bound-checks will be performed at the mac layer, and the
> driver only needs to provide mc_setprop/mc_getprop/mc_getstat callbacks.
>
> Non-canonical NDD parameters will be passed to the driver as private
> properties. The driver would have to do any string processing to parse
> these properties, but would not need to invoke any other interfaces.
> such as nd_load(), nd_getset() etc.
>
> Note that Drivers not converted to the Brussels framework will continue
> to function in the pre-Brussels manner. For these drivers, the mac
> layer will not have a registered mc_setprop or mc_getprop callback,
> so that the ioctl data will be passed down to the driver without
> modification.
>
> 2.1 Getting Parameters Supported By the Driver
> ----------------------------------------------
> The ndd invocation
>
> # ndd -get /dev/<driver> \?
>
> has traditionally been used to obtain the list of ndd parameters supported
> by <driver>. Although it is not a Stable interface, this command
> is widely used so that legacy support is justifiable. Support for
> this invocation will be provided in the following manner:
>
> - The driver must register any non-canonical properties that it supports
> through its xxattach() routine by invoking the mac_register_priv_prop()
> interface described in Section 4.1 below.
> - The mac layer will provide a listing of the canonical ndd names as
> well as the non-canonical names registed for the driver when it
> receives a ND_GET ioctl for the "\?" parameter.
>
>
> 4. Exported Interfaces:
> -----------------------
>
> Interface Classification Comments
> -----------------------------------------------------------------------------
> mac_register_priv_prop Committed Section 4.1
> DLD_PERM_{READ, WRITE} Committed r/w permissions
> for ndd properties
> defined in <sys/dld.h>
> DLD_MAP_KSTAT Private used internally
> to identify ndd props
> that map to kstats.
> 4.1 mac_register_priv_prop()
> ----------------------------
> Synopsis:
> void mac_register_priv_prop(mac_handle_t mh, char *name, int flags)
>
> Description:
>
> Drivers wishing to support non-canonical ndd parameters must provide
> the names of these parameters to the GLDv3 framework after
> succesfully completing mac_register() in their attach(9E) routine.
>
> Parameters:
> mh mac_handle_t obtained after succesfully completing mac_register.
> name property name of the non-canonical ndd prop to be registered
> flags property flags defined in <sys/dld.h> which may be a logical OR of
> {DLD_PERM_READ, DLD_PERM_WRITE}, describing read/write permissions
> for the property.}
>
> Returned value: None.
>
>
>
> 6. Resources and Schedule
> 6.4. Steering Committee requested information
> 6.4.1. Consolidation C-team Name:
> ON
> 6.5. ARC review type: FastTrack
> 6.6. ARC Exposure: open
>
>
----- End forwarded message -----
_______________________________________________
driver-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/driver-discuss