OneCore Storage SDK 3.6 Roll-out and Walkthrough


        Eric McLaughlin              John Cedillo
          Director, Engineering     Sr. Marketing Manager
     eric.mclaughlin@emulex.com   john.cedillo@emulex.com
Webcast Agenda


  Getting Clear
  OneCore Storage SDK Overview
  OneCore Storage SDK 3.6 Features and Roadmap
  Driver Architecture Overview
  OneCore Storage SDK API Walk-Through
  Questions
  Prize Drawing




                       © 2013 Emulex Corporation   2
Accelerate Time to Market of Storage Solutions
  OneCore Storage Software Developer Kit


  The Preferred         Device Driver                       Extensive              Training and
    Platform            Source Code                       Documentation              Support




 PCIe 3.0 16GFC       Initiator and Target            Reference               Online developer’s
  Adapters              Drivers                          manual, quick start      portal
 1200K IOPS           Linux FC, FCoE and               guide, and release      Online training
 1,2,4 Ports           iSCSI reference                  notes                    modules, and
 Converged-Fabric      drivers                         Utility reference        support forum
  (10GbE/16GFC         FreeBSD FC/FCoE                  guide                   Access to dedicated
  Capable)              reference drivers               SLI-4 architecture       application engineer
 Advanced Features    NPIV and T10-PI                  spec                     through support
                        Advanced Features               Protocol and adapter     forum
                                                         management
                                                         command guides

                                       © 2013 Emulex Corporation                                     3
Getting Clear –
The Preferred Enterprise Development Platform

      Emulex Engine (XE) 201
                                                       ~12 Million Ports Installed
    Converged Fabric Controller
                                                  8GFC, 16GFC, 10GbE, FCoE,
                                                   and iSCSI connectivity
                                                  Rock-solid reliability
                                                    >10 million hours MTBF
   10th Generation FC HBA                            10% improvement in thermal
   76% market share                                   characteristics


        Optimal Performance                                 The Platform of Choice
   1.2 Million IOPS
   PCIe 3.0 with backward                        Awarded Every 16GFC Design-
    compatibility to PCIe 2.0                      in to Date
   Cuts Latency by 75%                           Ultimate in deployment flexibility
   T10 PI offload                                Cloud scalability
   NPIV support

              More Than Just Incredible Performance!
                                © 2013 Emulex Corporation                               4
Getting Clear –
The Preferred Enterprise Development Platform


   The fastest generally available 16GFC HBA*
   Delivers 11x better CPU utilization*
   Delivers 7x IOPS performance*
   Rock-solid enterprise reliability; highest published MTBF*
   11x more server energy efficient; IOPS per server watt*
   124% faster Oracle Database performance*
   137% faster Microsoft SQL Server performance*
   4.6x faster in 8GFC mode*



*Demartek Emulex LPe16000B 16 Gb Fibre Channel HBA Feature Comparison, December 2012



                                           © 2013 Emulex Corporation                   5
Overview
OneCore Storage SDK Highlights
 OneCore Storage SDK provides a common driver framework for:
  – All Emulex SLI-4 product platforms (XE201*, XE4310R, and future platforms)
  – All the Storage Protocols (FC, FCoE and iSCSI)

 OneCore Storage SDK replaces:
  –   The Emulex iSCSI TDK
  –   The Emulex FC TM SDK

 OneCore Storage SDK is on its 3rd Major Release
  – Over a dozen Storage OEM customers
  – Even more Development Portal customers

 OneCore Storage drivers can shorten development time in a number of
 ways:
  – Use “as-is” with a standard or custom Back-end interface
  – Leverage components of the driver as building blocks for your driver
  – Use as reference code along with the Emulex SLI-4 specifications to write
    your own driver

               * The XE201 is capable of Fibre Channel and Ethernet
                                   © 2013 Emulex Corporation                     7
3.6 Features &
SDK Roadmap
OneCore Storage SDK 3.6
Features and Hardware Support

 Linux FC/FCoE                                              BSD FC/FCoE
 •   RHEL 6.3                                                 • FreeBSD 9.1
 •   Target and Initiator Support                             • CAM Initiator and Target Support
 •   ELX RAMD                                                 • CAM Target Layer (CTL) w/
 •   T10-PI                                                     block, file, etc.
 •   NPIV                                                     • camcontrol and ctladm support
 •   High-Login Mode                                          • ELX RAMD
 •   SCST (Tech Preview)                                      • T10-PI (ELX RAMD)
 •   User-Space Driver (Tech Preview)
                                                            Management
 Linux iSCSI                                                  • New Management API
 •   RHEL 6.3                                                 • elxsdkutil reference utility (BSD/Linux)
 •   Target Support
 •   ELX RAMD                                               HW Support
 •   iSCSI Level 0 ER                                         • XE201*, XE4310R



                   * The XE201 is capable of Fibre Channel and Ethernet
                                       © 2013 Emulex Corporation                                           9
OneCore Storage SDK Roadmap 2013




       3.6.x Release                                     4.0 Release                                5.0 Release
              CQ1                                               CQ2                                      CQ4
Linux FC/FCoE (RHEL 6.3)                          Linux FC/FCoE                               Linux FC/FCoE (RHEL 6.4)
• Target and Initiator Support                    • RHEL 6.4                                  • LIO Support
• T10-PI                                          • SCST Support                              • FC-Tape Support
• NPIV                                            • User-Space Driver
• High-Login Mode                                                                             Linux iSCSI (RHEL 6.4)
                                                  • XE201 FCoE Support
• SCST (Tech Preview)                                                                         • LIO Support
                                                  • LIO Support (Tech Preview)
• User-Space Driver (Tech Preview)                                                            • T10-PI
                                                  Linux iSCSI
                                                                                              • CHAP
Linux iSCSI (RHEL 6.3)                            • RHEL 6.4
                                                                                              • MC/S
• Target Support                                  • SCST Support
• iSCSI Level 0 ER                                                                            BSD FC/FCoE
                                                  • Initiator Support
                                                                                              • FreeBSD 9.2
BSD FC/FCoE (FreeBSD 9.1)                         • User-Space Driver
                                                                                              Management
• CAM Initiator and Target Support                BSD FC/FCoE (FreeBSD 9.1)
                                                                                              • Skyhawk Support
• CAM Target Layer (CTL) w/                       • XE201 FCoE Support
  block, file, etc.                                                                             • Core Dump
                                                  Management
• camcontrol and ctladm support                                                                 • Configurability
                                                  • CIM Provider                                   (iSCSI/FCoE/NIC)
• T10-PI (ELX RAMD)
                                                  HW Support                                  HW Support
Management
                                                  • XE201, XE4310R                            • XE201, XE4310R, and Next Gen
• elxsdkutil ref utility (BSD/Linux)                                                            Platforms
HW Support                                                                                    Customer Requested Features
 • XE201*, XE4310R                     * The XE201 is capable of Fibre Channel and Ethernet
                                                      © 2013 Emulex Corporation                                                10
Driver Architecture
Overview
OneCore Storage SDK
Kernel Driver Block Diagram




                              © 2013 Emulex Corporation   12
OneCore Storage SDK
Driver Components

  Service Level Interface 4 (SLI-4)
   – The SLI-4 component implements the commands and processing defined by the SLI-4
     Architecture Specification, SLI-4 FC and FCoE Command Reference, and the SLI-4
     iSCSI Command Reference
   – The SLI-4 component provides a lightly-abstracted application programming interface
     (API) that enables access to the device hardware without enforcing a specific policy

  Hardware Abstraction Layer (HAL)
   – The HAL component provides an abstracted interface to the SLI-4 component to
     perform common operations, such as, port initialization, shutdown, and I/O - these
     operations can be performed without having to know the semantics of the SLI-4
     interface
   – The HAL component also provides APIs for port and node management, command
     and event processing, as well as I/O handling

  Transport
   – The transport components provide protocol-specific and general transport handling
   – The FC/FCoE transport sub-component includes discovery, logins and BLS/ELS
     handling
   – The iSCSI transport sub-component includes connection establishment, connection
     offload and session management


                                    © 2013 Emulex Corporation                               13
OneCore Storage SDK
Driver Components (Continued)

  SCSI API
    –   Part of the Transport layer
    –   Provides a SCSI-like API for back-end initiator and target connectivity
    –   Common across all three storage protocols (FC, FCoE, and iSCSI)
    –   Includes APIs for sending/receiving SCSI commands and
        TMFs, sending/receiving data and SCSI status, as well as aborting I/O
  Operating System
    – Provides the OS services required by the OneCore Storage driver through an
      OS-independent API
    – Separate component are provided for Linux, FreeBSD, and User-Space drivers
    – Functionality includes:
         • Memory allocation, free, and cache coherency
         • Locking for concurrency protection
         • Linked list creation and handling
         • OS-specific PCI driver entry points and MSI-x/INTx interrupt handling




                                        © 2013 Emulex Corporation                  14
OneCore Storage SDK
Driver Common Objects

The OneCore Storage Driver Common objects provide a mechanism through
which the various OCS driver components share and track information. These
data structures are primarily used to track SLI component information, but can
be extended by other components, if needed. The main objects are:
  Domain – The ocs_domain_t object represents the SCSI domain, including any
  infrastructure devices such as FC switches and FC forwarders. The domain object
  contains both an FCFI and a VFI.
  SLI Port – The ocs_sport_t object represents the connection between the driver and
  the SCSI domain. The SLI Port object contains a VPI (virtual port indicator).
  Remote Node – The ocs_node_t represents a connection between the SLI Port and
  another device in the SCSI domain. The node object contains an RPI (remote port
  indicator)
  DMA – The ocs_dma_t object describes a memory region capable of performing
  direct memory access (DMA) transactions.




                                   © 2013 Emulex Corporation                           15
OneCore Storage SDK
Back-End Support




                   © 2013 Emulex Corporation   16
OneCore Storage SDK
Linux User-Space FC/FCoE Driver Block Diagram




                            © 2013 Emulex Corporation   17
OneCore Storage SDK
Linux User-Space FC/FCoE Driver Overview

  The Linux User-Space FC/FCoE Driver is composed of three
  components:
    – Kernel Module
    – Common Linux FC/FCoE Front-End Components (same as kernel driver)
    – Emulex RAMD (same as kernel driver)

  Kernel Module (ocs_uspace.ko)
    – The User-Space driver includes a small kernel module (ocs_uspace.ko) that
      provides access to PCI resources, DMA buffer management, etc.
    – The Kernel module functionality includes:
       • Read/Write PCI configuration space registers
       • Read/Write per PCI function BAR memory regions
       • Mapping of per PCI function BAR memory regions to user space
       • Allocation and freeing of kernel resident DMA buffers and mapping buffers to user space.
       • DMA buffer synchronization (maintaining cache coherency)
       • Wait on interrupt




                                        © 2013 Emulex Corporation                                   18
API Walk-Through
OneCore Storage SDK API Walk-Through




               Documentation Dashboard




                     © 2013 Emulex Corporation   20
Q&A
OneCore Storage SDK Resources


 devsupport@emulex.com
 Product Page                                 Developer Portal




 White Paper                                  Data Sheet




                         © 2013 Emulex Corporation               22
© 2013 Emulex Corporation   23

First Look Webcast: OneCore Storage SDK 3.6 Roll-out and Walkthrough

  • 1.
    OneCore Storage SDK3.6 Roll-out and Walkthrough Eric McLaughlin John Cedillo Director, Engineering Sr. Marketing Manager eric.mclaughlin@emulex.com john.cedillo@emulex.com
  • 2.
    Webcast Agenda Getting Clear OneCore Storage SDK Overview OneCore Storage SDK 3.6 Features and Roadmap Driver Architecture Overview OneCore Storage SDK API Walk-Through Questions Prize Drawing © 2013 Emulex Corporation 2
  • 3.
    Accelerate Time toMarket of Storage Solutions OneCore Storage Software Developer Kit The Preferred Device Driver Extensive Training and Platform Source Code Documentation Support  PCIe 3.0 16GFC  Initiator and Target  Reference  Online developer’s Adapters Drivers manual, quick start portal  1200K IOPS  Linux FC, FCoE and guide, and release  Online training  1,2,4 Ports iSCSI reference notes modules, and  Converged-Fabric drivers  Utility reference support forum (10GbE/16GFC  FreeBSD FC/FCoE guide  Access to dedicated Capable) reference drivers  SLI-4 architecture application engineer  Advanced Features  NPIV and T10-PI spec through support Advanced Features  Protocol and adapter forum management command guides © 2013 Emulex Corporation 3
  • 4.
    Getting Clear – ThePreferred Enterprise Development Platform Emulex Engine (XE) 201 ~12 Million Ports Installed Converged Fabric Controller  8GFC, 16GFC, 10GbE, FCoE, and iSCSI connectivity  Rock-solid reliability  >10 million hours MTBF  10th Generation FC HBA  10% improvement in thermal  76% market share characteristics Optimal Performance The Platform of Choice  1.2 Million IOPS  PCIe 3.0 with backward  Awarded Every 16GFC Design- compatibility to PCIe 2.0 in to Date  Cuts Latency by 75%  Ultimate in deployment flexibility  T10 PI offload  Cloud scalability  NPIV support More Than Just Incredible Performance! © 2013 Emulex Corporation 4
  • 5.
    Getting Clear – ThePreferred Enterprise Development Platform The fastest generally available 16GFC HBA* Delivers 11x better CPU utilization* Delivers 7x IOPS performance* Rock-solid enterprise reliability; highest published MTBF* 11x more server energy efficient; IOPS per server watt* 124% faster Oracle Database performance* 137% faster Microsoft SQL Server performance* 4.6x faster in 8GFC mode* *Demartek Emulex LPe16000B 16 Gb Fibre Channel HBA Feature Comparison, December 2012 © 2013 Emulex Corporation 5
  • 6.
  • 7.
    OneCore Storage SDKHighlights OneCore Storage SDK provides a common driver framework for: – All Emulex SLI-4 product platforms (XE201*, XE4310R, and future platforms) – All the Storage Protocols (FC, FCoE and iSCSI) OneCore Storage SDK replaces: – The Emulex iSCSI TDK – The Emulex FC TM SDK OneCore Storage SDK is on its 3rd Major Release – Over a dozen Storage OEM customers – Even more Development Portal customers OneCore Storage drivers can shorten development time in a number of ways: – Use “as-is” with a standard or custom Back-end interface – Leverage components of the driver as building blocks for your driver – Use as reference code along with the Emulex SLI-4 specifications to write your own driver * The XE201 is capable of Fibre Channel and Ethernet © 2013 Emulex Corporation 7
  • 8.
  • 9.
    OneCore Storage SDK3.6 Features and Hardware Support Linux FC/FCoE BSD FC/FCoE • RHEL 6.3 • FreeBSD 9.1 • Target and Initiator Support • CAM Initiator and Target Support • ELX RAMD • CAM Target Layer (CTL) w/ • T10-PI block, file, etc. • NPIV • camcontrol and ctladm support • High-Login Mode • ELX RAMD • SCST (Tech Preview) • T10-PI (ELX RAMD) • User-Space Driver (Tech Preview) Management Linux iSCSI • New Management API • RHEL 6.3 • elxsdkutil reference utility (BSD/Linux) • Target Support • ELX RAMD HW Support • iSCSI Level 0 ER • XE201*, XE4310R * The XE201 is capable of Fibre Channel and Ethernet © 2013 Emulex Corporation 9
  • 10.
    OneCore Storage SDKRoadmap 2013 3.6.x Release 4.0 Release 5.0 Release CQ1 CQ2 CQ4 Linux FC/FCoE (RHEL 6.3) Linux FC/FCoE Linux FC/FCoE (RHEL 6.4) • Target and Initiator Support • RHEL 6.4 • LIO Support • T10-PI • SCST Support • FC-Tape Support • NPIV • User-Space Driver • High-Login Mode Linux iSCSI (RHEL 6.4) • XE201 FCoE Support • SCST (Tech Preview) • LIO Support • LIO Support (Tech Preview) • User-Space Driver (Tech Preview) • T10-PI Linux iSCSI • CHAP Linux iSCSI (RHEL 6.3) • RHEL 6.4 • MC/S • Target Support • SCST Support • iSCSI Level 0 ER BSD FC/FCoE • Initiator Support • FreeBSD 9.2 BSD FC/FCoE (FreeBSD 9.1) • User-Space Driver Management • CAM Initiator and Target Support BSD FC/FCoE (FreeBSD 9.1) • Skyhawk Support • CAM Target Layer (CTL) w/ • XE201 FCoE Support block, file, etc. • Core Dump Management • camcontrol and ctladm support • Configurability • CIM Provider (iSCSI/FCoE/NIC) • T10-PI (ELX RAMD) HW Support HW Support Management • XE201, XE4310R • XE201, XE4310R, and Next Gen • elxsdkutil ref utility (BSD/Linux) Platforms HW Support Customer Requested Features • XE201*, XE4310R * The XE201 is capable of Fibre Channel and Ethernet © 2013 Emulex Corporation 10
  • 11.
  • 12.
    OneCore Storage SDK KernelDriver Block Diagram © 2013 Emulex Corporation 12
  • 13.
    OneCore Storage SDK DriverComponents Service Level Interface 4 (SLI-4) – The SLI-4 component implements the commands and processing defined by the SLI-4 Architecture Specification, SLI-4 FC and FCoE Command Reference, and the SLI-4 iSCSI Command Reference – The SLI-4 component provides a lightly-abstracted application programming interface (API) that enables access to the device hardware without enforcing a specific policy Hardware Abstraction Layer (HAL) – The HAL component provides an abstracted interface to the SLI-4 component to perform common operations, such as, port initialization, shutdown, and I/O - these operations can be performed without having to know the semantics of the SLI-4 interface – The HAL component also provides APIs for port and node management, command and event processing, as well as I/O handling Transport – The transport components provide protocol-specific and general transport handling – The FC/FCoE transport sub-component includes discovery, logins and BLS/ELS handling – The iSCSI transport sub-component includes connection establishment, connection offload and session management © 2013 Emulex Corporation 13
  • 14.
    OneCore Storage SDK DriverComponents (Continued) SCSI API – Part of the Transport layer – Provides a SCSI-like API for back-end initiator and target connectivity – Common across all three storage protocols (FC, FCoE, and iSCSI) – Includes APIs for sending/receiving SCSI commands and TMFs, sending/receiving data and SCSI status, as well as aborting I/O Operating System – Provides the OS services required by the OneCore Storage driver through an OS-independent API – Separate component are provided for Linux, FreeBSD, and User-Space drivers – Functionality includes: • Memory allocation, free, and cache coherency • Locking for concurrency protection • Linked list creation and handling • OS-specific PCI driver entry points and MSI-x/INTx interrupt handling © 2013 Emulex Corporation 14
  • 15.
    OneCore Storage SDK DriverCommon Objects The OneCore Storage Driver Common objects provide a mechanism through which the various OCS driver components share and track information. These data structures are primarily used to track SLI component information, but can be extended by other components, if needed. The main objects are: Domain – The ocs_domain_t object represents the SCSI domain, including any infrastructure devices such as FC switches and FC forwarders. The domain object contains both an FCFI and a VFI. SLI Port – The ocs_sport_t object represents the connection between the driver and the SCSI domain. The SLI Port object contains a VPI (virtual port indicator). Remote Node – The ocs_node_t represents a connection between the SLI Port and another device in the SCSI domain. The node object contains an RPI (remote port indicator) DMA – The ocs_dma_t object describes a memory region capable of performing direct memory access (DMA) transactions. © 2013 Emulex Corporation 15
  • 16.
    OneCore Storage SDK Back-EndSupport © 2013 Emulex Corporation 16
  • 17.
    OneCore Storage SDK LinuxUser-Space FC/FCoE Driver Block Diagram © 2013 Emulex Corporation 17
  • 18.
    OneCore Storage SDK LinuxUser-Space FC/FCoE Driver Overview The Linux User-Space FC/FCoE Driver is composed of three components: – Kernel Module – Common Linux FC/FCoE Front-End Components (same as kernel driver) – Emulex RAMD (same as kernel driver) Kernel Module (ocs_uspace.ko) – The User-Space driver includes a small kernel module (ocs_uspace.ko) that provides access to PCI resources, DMA buffer management, etc. – The Kernel module functionality includes: • Read/Write PCI configuration space registers • Read/Write per PCI function BAR memory regions • Mapping of per PCI function BAR memory regions to user space • Allocation and freeing of kernel resident DMA buffers and mapping buffers to user space. • DMA buffer synchronization (maintaining cache coherency) • Wait on interrupt © 2013 Emulex Corporation 18
  • 19.
  • 20.
    OneCore Storage SDKAPI Walk-Through Documentation Dashboard © 2013 Emulex Corporation 20
  • 21.
  • 22.
    OneCore Storage SDKResources devsupport@emulex.com Product Page Developer Portal White Paper Data Sheet © 2013 Emulex Corporation 22
  • 23.
    © 2013 EmulexCorporation 23