- Module 1: Overview of NVMe
- Provides an introduction to the course as well as traditional NVMe behavior before diving into the advantages and challenges with stretching the connection across a fabric
- Module 2: Introduction to NVMe-oF & Fabrics Overview
- Introduces some motivations for NVMe over fabrics and then discusses the fabric options; walks through the evolution of NVMe-oF and discusses Remote Direct Memory Access (RDMA) commands; covers differences between traditional NVMe and NVMe-oF
- Module 3: Intro to NVMe-oF: Fabric Discovery
- Covers the discovery process and the roles of the Discovery Controller and the Discovery Service; describes issues with discovery in large networks; how to read from the Discovery Service; Format and purpose of Discovery Log Entries
- Module 4: Intro to NVMe-oF: Initialization
- Provides the background of NVMe initialization and then discusses how initialization of NVMe-oF is different; covers fabric commands, establishing connections, authentication, identifying devices and NVMe ports, division of labor, RDMA service types (reliable, unreliable, connected, datagrams), device setup, connect command, creating and deleting I/O queues
- Modules 5a-5b: Introduction to RDMA
- Provides a tutorial of RDMA and its benefits and challenges; goes through a detailed example using work requests, work queues, completion queues, STag / L_KEY / R_KEY, queue pairs, etc.; After RDMA has been described, it then goes into applying RDMA to NVMe
- Module 6: Intro to RDMA: Read & Write Examples
- Walks through a detailed example of and NVMe-oF Read as well as an NVMe-oF Write
- Module 7: Commands and Responses
- Discusses NVMe commands as well as the necessary fabric commands and related responses to complete the protocol
- Module 8: Controller Initialization
- Describes static vs dynamic controller models, then jumps into the initialization sequence showing detailed commands used during this process; provides info around authenticating devices and commands
- Module 9: RDMA-capable NIC (RNIC)
- Provides more info on the features and capabilities of an RNIC including the RDMA verbs related to: resource management, memory management, work request processing, event handling, etc.
- Module 10: Appendix: Ethernet & RoCE Overview
- Introduces the Open System Interconnection (OSI) model and then provides an overview of RDMA over Converged Ethernet (RoCE), then does some small comparisons between RoCE and InfiniBand
- Module 11: Appendix: Fibre channel Overview
- Provides an overview of Fibre Channel and then describes changes for NVMe over Fibre Channel (FC-NVMe)