On 02/ 5/10 11:26 AM, Ted Kim wrote: > Template Version: @(#)sac_nextcase 1.68 02/23/09 SMI > This information is Copyright 2010 Sun Microsystems > 1. Introduction > 1.1. Project/Component Working Name: > Reliable Datagram Service v3 > 1.2. Name of Document Author/Supplier: > Author: Sherman Pun > 1.3 Date of This Document: > 05 February, 2010 > 4. Technical Description > > RDSv3 - Reliable Datagram Service version 3 > > Table of Contents > > I. Introduction > II. Summary of Interfaces > III. Man Page Changes > > I. Introduction > > > This fasttrack defines an upgrade of the current version 1 of the > Reliable Datagram Service, rds driver (PSARC 2006/356) to version 3. > This driver, RDSv3 will be compliant with version 1 applications > but will also add new features like: > > 1. Remote DMA (RDMA) support. > 2. Connect(3SOCKET) interface. > > However, Oracle, owner of the RDS specification had changed the wire > protocol and thus there is no interoperability requirements with > systems running with the version 1 driver. The version 3 protocol > is used in Exadata 2. > > This software upgrade involves a porting of the Oracle Linux driver > version 1.4.2 which is distributed from the Open Fabrics Enterprise > Distribution (OFED) to Solaris. > > > II. Summary of Interfaces > > This case asserts a micro/patch binding. > > Same as in the case of version 1, the API is not a general-purpose > interface; it is specific to Oracle. These additional interfaces > would all be classified as Contracted Project Private, to be contracted > to Oracle. >
What is application specific about these interfaces that they can't be made available as public interfaces (perhaps with Uncommitted binding?) Is there a compelling reason to limit their exposure? -- Garrett > > A. Socket Call > > While our v3 implementation is technically a superset of the v1 > implementation, we have decided not to alter the socket binding > for v1 at this time to minimize risks to the already certified > RAC 10gr2 on v1. > > RDSv3 will use socket type SOCK_SEQPACKET instead of SOCK_DGRAM to > distinguish itself from the version 1 driver. A new entry of > "30 6 0 sockrds" will be integrated into /etc/sock2path. > > > B. RDMA Interfaces > > The Solaris driver will support the same RDMA interfaces as the > the Linux driver. > > In summary, the driver supports > a. control messages (ancillary data) sent/received via the sendmsg(2) > and recvmsg(2) system calls. Control messages are > - RDS_CMSG_RDMA_MAP > - RDS_CMSG_RDMA_DEST > - RDS_CMSG_RDMA_ARGS > - RDS_CMSG_RDMA_STATUS > > b. setsockopt(2) calls of > - RDS_GET_MR > - RDS_FREE_MR > - RDS_RECVERR > > These interfaces and their usages are documented in the updated > rds(3SOCKET). > > > C. Interfaces Dependencies > > The driver will depend on the RDMA CM APIs and Open Fabrics kernel IB > VERBs from the OFUV project, PSARC 2009/421 and Low Latency Socket > Framework (Volo), PSARC 2007/587. > > The dependencies with Open Fabrics kernel IB VERBS are handled > via a contract for private interfaces from the OFUV project. > OFUV has provided just enough functionality in these interfaces > to support RDSv3. At this time, those interfaces are not capable > of supporting the full range of OFED kernel verb consumers. Please > see the contract file in the case directory for details. > > > III. ManPage Changes > > The rds(3SOCKET) will be updated with the interface changes above. RDMA > usage description is taken from the OFED rds-rdma.7d man page in > their 1.4.2 release. > > Under materials subdirectory: > case.txt - this document > rdsv3.3socket.txt - update > diff.v3-v1.3socket shows the diff between versions 1 and 3. > > Manpage for existing rds.3socket could be found under: > > http://sac.sfbay/Archives/CaseLog/arc/PSARC/2006/356/commitment.materials/rds.3socket > > 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 > >