Hi Krishna, Thank you for formulating the contract.
I had a look at it and compared it with my existing code to see if anything was missed. * mac_tx: mac_tx function (and mac_tx_cookie_t datatype) seems to be missing here. * dls_mgmt_get_linkid: vnic_modify_addr() takes a datalink_id_t, this assumes we've created the VNIC. But our implementation should also work for existing VNICs that a user can provide to VBox. In which case we'd do a mac_open_by_linkname() and mac_client_open() which would give us the mac_handle_t and mac_client_handle_t but not the datalink_id_t. I use dls_mgmt_get_linkid() to get a datalink_id_t so we can modify the MAC address of the user-created VNIC. * mac_unicast_primary_get: I currently use mac_unicast_primary_get() function to obtain the currently set MAC address for the VNIC. It would be good if this function were exported too. Since you've provided separate resource setter/getter functions I guess we would not ever need a mac_resource_handle_t type, so that's fine. Could you clarify the above points? Regards, Ram. On Mon, 2010-04-05 at 11:49 -0700, Krishna Yenduri wrote: > Hi, > > The contract file is attached for you to review, and also located in > the case directory as contract-01. > > Markus, please reply-all to this email to indicate that you approve > of this contract as supplier. Achim, please reply-all to this email > to indicate that you approve of this contract as consumer. > > -Krishna > > plain text document attachment (contract-01) > CONTRACT ALLOWING/REQUIRING SPECIAL ARRANGEMENTS FOR INTERFACES > > 0. Number: PSARC 2010/112-01 > > 1. This contract is between > a SUPPLIER of INTERFACES and > a CONSUMER of those INTERFACES, > both of whom are entities within Oracle and/or its affiliates. > > 2. The SUPPLIER (definer and/or implementor) is identified by the following: > Product or Bundle: Solaris > Consolidation: ON > Department or Group: Solaris Networking > Bugster Product/Category/SubCategory: solaris/kernel/gld > Responsible Manager: Markus Flierl > > 3. The CONSUMER is identified by the following: > Product or Bundle: VirtualBox > Consolidation: N/A > Department or Group: VirtualBox Software > Bugster Product/Category/SubCategory: virtualbox/virtualbox/other > Responsible Manager: Achim Hasenmueller > > 4. The INTERFACES are: > > Header files: > <sys/mac.h> Consolidation Private > <sys/mac_client.h> Consolidation Private > <sys/vnic_mgmt.h> Consolidation Private > > Macros: > MAC_VLAN Consolidation Private > MAC_CLIENT_PRI_LOW Consolidation Private > MAC_CLIENT_PRI_MEDIUM Consolidation Private > MAC_CLIENT_PRI_HIGH Consolidation Private > > Datatypes: > vnic_ioc_diag_t Consolidation Private > vnic_mac_addr_type_t Consolidation Private > mac_handle_t Consolidation Private > mac_rx_t Consolidation Private > mac_client_handle_t Consolidation Private > mac_unicast_handle_t Consolidation Private > mac_promisc_handle_t Consolidation Private > > Functions: > vnic_create Consolidation Private > vnic_modify_addr Consolidation Private > vnic_delete Consolidation Private > mac_open_by_linkname Consolidation Private > mac_open_by_linkid Consolidation Private > mac_open Consolidation Private > mac_close Consolidation Private > mac_client_open Consolidation Private > mac_client_close Consolidation Private > mac_rx_set Consolidation Private > mac_rx_clear Consolidation Private > mac_unicast_add Consolidation Private > mac_unicast_remove Consolidation Private > mac_promisc_add Consolidation Private > mac_promisc_remove Consolidation Private > mac_multicast_add Consolidation Private > mac_multicast_remove Consolidation Private > mac_client_stat_get Consolidation Private > mac_is_vnic Consolidation Private > mac_client_set_maxbw Consolidation Private > mac_client_get_maxbw Consolidation Private > mac_client_reset_maxbw Consolidation Private > mac_client_set_priority Consolidation Private > mac_client_get_priority Consolidation Private > mac_client_reset_priority Consolidation Private > > > 5. The ARC controlling these INTERFACES is: PSARC > > 6. The CASE describing (Exporting) these INTERFACES is: > PSARC/2006/357 Crossbow - Network Virtualization and Resource Management > PSARC/2010/112 MAC client API and VNIC API updates > > 7. The following SPECIAL ARRANGEMENTS are made which modify the rules > imposed by the stability levels listed in section 4 above: > > > _N_ 7a. Although the stability level doesn't normally restrict it, > SUPPLIER promises to only modify INTERFACES in an incompatible > way as follows: > > _N_ 7b. Although the stability level doesn't normally allow it, CONSUMER will > expose INTERFACES to a PARTNER, which is external to Sun, namely: > Name of Company: > Name of Department or Group within Company: > Responsible Manager: > > _Y_ 7c. Although the stability level doesn't normally allow it, CONSUMER will > import INTERFACES from a separate consolidation. > > _Y_ 7d. If SUPPLIER decides to change (including replace or remove) any > portion of the INTERFACES, SUPPLIER will notify CONSUMER of the > proposed new version, no later than the application for ARC > approval of the new version. > If SUPPLIER and CONSUMER are contained in the same consolidation, > they have the option of arranging for simultaneous conversion > to the new interfaces. If this is not possible, or if they are > not in the same consolidation, then SUPPLIER will either make best > effort to work with CONSUMER so that CONSUMER can detect which > version of INTERFACES is being supplied, or else SUPPLIER will > make best effort to supply both old and new versions of > INTERFACES. > If SUPPLIER cannot make both versions of INTERFACES available, > and SUPPLIER and CONSUMER cannot devise a method whereby > CONSUMER can detect which version of INTERFACES is being > supplied, and the old version of CONSUMER will not run with the > new version of SUPPLIER, then either the EOL process must be > followed by SUPPLIER, or else a major release of SUPPLIER will > be required, or the change will not be allowed. > > 8. If CONSUMER requires changes in INTERFACES, SUPPLIER will make > best effort to accommodate such changes, which shall then be > treated in accordance with paragraph 7 above. > > 9. Notwithstanding paragraphs 7 and 8, a change to any portion > of the INTERFACES shall be regarded as a completely new set of > INTERFACES which require both ARC approval and execution of > a new contract. > > 10. SUPPLIER and CONSUMER agree that evolution of INTERFACES shall be > handled as follows: > > SUPPLIER will notify CONSUMER of any proposed changes to the > interface. > > 11. SUPPLIER and CONSUMER agree that INTERFACES will be supported as > follows: > > CONSUMER shall file bugster change requests against the interfaces > under solaris/kernel/gld. SUPPLIER agrees to respond to these > change requests according to the usual sustaining process. > > 12. SUPPLIER and CONSUMER agree that INTERFACES will be documented as > follows: > > The interfaces will be documented by the source code and > header files in the ON consolidation. > > 13. SUPPLIER and CONSUMER agree that changes to the INTERFACES will be > tested as follows: > > SUPPLIER agrees to test any changes to the interface as part of > existing or updated test suites. Test suites will be enhanced > specifically to validate these interfaces. > > CONSUMER agrees to test their use of these interfaces at the usual > release intervals and when any changes are made to the implementation > of the contracted interface. > > 14. SUPPLIER and CONSUMER agree that this contract can be terminated as > follows: > > Contract will be terminated by mutual agreement between the > SUPPLIER and CONSUMER. > > 15. This contract is not valid until "signed" via agreement from the > SUPPLIER and CONSUMER, and approved by the ARC CASE referenced by > this contract. E-mail agreement to the contract should be archived > in the mail archive of CASE; verbal agreement to the contract > should be noted in the meeting minutes. This contract remains > valid until superseded or invalidated. > > For SUPPLIER: Date: > For CONSUMER: Date: > For ARC: Date: > > A copy of this contract shall be deposited in the CASE directory as > "contract-<digits>" or in a "contracts" subdirectory. > > 16. (Not to be filled in until superseded or invalidated.) > This contract was superseded or invalidated by CASE: > For ARC: Date: > _______________________________________________ opensolaris-arc mailing list [email protected]
