OneCore Storage SDK Program
OneCore™ Storage SDK Program: Comprehensive, Extensible, Modular Framework and Architecture
Delivering accelerated, simplified and enhanced driver development tools for unrivaled storage networking performance
With the OneCore Storage drivers, we’ve designed their architecture components from the ground up, in an effort to simplify and accelerate the process of developing storage solutions to meet the dynamic needs of the storage array, and storage appliance markets that require enterprise-class, high bandwidth and low latency I/O connectivity.
- Target-mode, initiator-mode, and concurrent initiator and target-mode support
- Fibre Channel (FC), Fibre Channel over Ethernet (FCoE) and iSCSI storage protocols
- Operating system (OS) agnostic
- FreeBSD and Linux OS driver source
- T10 Protection Information (T10-PI), provides enhanced data protection against silent data corruption.
- N_Port Identification Virtualization (NPIV), which allows users to maintain Storage Area Network (SAN) best practices within a virtualized environment
- Modular architecture and design flexibility to support developer’s driver framework
- Accelerated solution time-to-market using leading FC and network adapters
- Browser-based Application Programming Interface (API) documentation
- Online training and support
OneCore Storage Driver Architecture
The OneCore Storage driver architecture provides design flexibility, enabling selective use of component layers to meet customer-specific requirements and architectural needs.
Emulex Service Level Interface (SLI™) - 4 Component is an evolutionary refresh of the Emulex SLI. SLI-4 expands beyond FC support to include all the protocols offered in our latest generation of products including FCoE and iSCSI.
The SLI component in the OneCore Storage driver provides a lightly abstracted API that enables access to SLI-4 hardware devices. It includes APIs to create the queues necessary to communicate to the SLI-4 hardware, as well as APIs that construct SLI-4 commands and parse responses. Click for a list of Supported SLI-4 Products.
Hardware Abstraction Layer (HAL) Component provides an abstracted interface to the SLI component layer 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 provides APIs for port and node management, and command and event processing, as well as I/O handling.
Transport Component is composed of three sub-components: FC/FCoE transport, iSCSI transport, and a SCSI API. These sub-components provide protocol specific and generic transport handling. The FC/FCoE transport sub-component includes discovery, login and basic link services extended link services handling that is unique to FC/FCoE storage networks. The iSCSI transport sub-component includes iSCSI-specific transport layer handling including connection establishment, connection offload and session management. The SCSI API sub-component provides a SCSI-like API for back-end initiator and target connectivity. This generic transport-layer interface is common across all three storage protocols (FC, FCoE and iSCSI). It includes APIs for sending/receiving SCSI commands and Task Management Functions (TMFs) and sending/receiving data and SCSI status, as well as aborting I/O.
OS Component provides the OS services required by the OneCore Storage driver through an OS-independent API. A separate component is provided for Linux and FreeBSD in the OneCore Storage SDK. These components include memory allocation, free, and cache coherency functions for both CPU and Direct Memory Access (DMA) memory types. They also include functions for concurrency protection locking, linked list creation and handling, OS-specific PCI driver entry points and Message Signal Interrupts Extended (MSIX)/INTx interrupt handling, etc.