Chelsio ® is a registered trademark of Chelsio Communications.
All other marks and names mentioned herein may be trademarks of their respective companies.
Chelsio T5/T4 Unified Wire For Linux ii
Version
Revision Date
1.0.0
12/08/2011
1.0.1
01/09/2013
1.0.2
01/27/2013
1.0.3
03/26/2013
1.0.4
04/12/2013
1.0.5
06/20/2013
1.0.6
08/17/2013
1.0.7
10/22/2013
1.0.8
03/08/2013
1.0.9
05/15/2013
1.1.0
07/26/2013
1.1.1
08/14/2013
1.1.2
12/06/2013
1.1.3
12/19/2013
1.1.4
03/13/2014
1.1.5
05/02/2014
1.1.6
06/30/2014
Document History
Chelsio T5/T4 Unified Wire For Linux iii
TABLE OF CONTENTS
I. CHELSIO UNIFIED WIRE 12
1. Introduction 13
1.1. Features 13
1.2. Hardware Requirements 14
1.3. Software Requirements 14
1.4. Package Contents 14
2. Hardware Installation 17
3. Software/Driver Installation 20
3.1. Pre-requisites 21
3.2. Installing Chelsio Unified Wire from source 21
3.3. Installing Chelsio Unified Wire from RPM 32
3.4. Firmware update 35
4. Software/Driver Uninstallation 36
4.1. Uninstalling Chelsio Unified Wire from source 36
4.2. Uninstalling Chelsio Unified Wire from RPM 40
5. Configuring Chelsio Network Interfaces 42
5.1. Configuring 40G adapters 42
5.2. Configuring network-scripts 43
5.3. Creating network-scripts 44
5.4. Checking Link 45
6. Software/Driver Update 46
II. NETWORK (NIC/TOE) 47
1. Introduction 48
1.1. Hardware Requirements 48
1.2. Software Requirements 49
2. Software/Driver Loading 50
2.1. Loading in NIC mode (without full offload support) 50
2.2. Loading in TOE mode (with full offload support) 50
3. Software/Driver Unloading 51
3.1. Unloading the NIC driver 51
3.2. Unloading the TOE driver 51
4. Software/Driver Configuration and Fine-tuning 52
4.1. Instantiate Virtual Functions (SR-IOV) 52
4.2. Performance tuning 52
III. VIRTUAL FUNCTION NETWORK (VNIC) 58
1. Introduction 59
1.1. Hardware Requirements 59
Chelsio T5/T4 Unified Wire For Linux iv
1.2. Software Requirements 60
2. Software/Driver Loading 61
2.1. Loading the driver 61
3. Software/Driver Unloading 62
3.1. Unloading the driver 62
4. Software/Driver Configuration and Fine-tuning 63
4.1. Instantiate Virtual Functions 63
IV. IWARP (RDMA) 64
1. Introduction 65
1.1. Hardware Requirements 65
1.2. Software Requirements 65
2. Software/Driver Loading 67
2.1. Compiling and Loading iWARP driver 67
3. Software/Driver Unloading 68
4. Software/Driver Configuration and Fine-tuning 69
4.1. Testing connectivity with ping and rping69
4.2. Enabling various MPIs 70
4.3. Setting up NFS-RDMA 78
V. WD-UDP 80
1. Introduction 81
1.1. Hardware Requirements 81
1.2. Software Requirements 81
2. Software/Driver Loading 83
3. Software/Driver Unloading 84
4. Software/Driver Configuration and Fine-tuning 85
4.1. Accelerating UDP Socket communications 85
VI. WD-TOE 91
1. Introduction 92
1.1. Hardware Requirements 92
1.2. Software Requirements 92
2. Software/Driver Loading 94
3. Software/Driver Unloading 95
4. Software/Driver Configuration and Fine-tuning 96
4.6. Target Access Control List (ACL) Configuration 124
4.7. Target Storage Device Configuration 125
4.8. Target Redirection Support 128
4.9. The command line interface tools “iscsictl” & “chisns” 129
4.10. Rules of Target Reload (i.e. “on the fly” changes) 134
4.11. System Wide Parameters 135
VIII. ISCSI PDU OFFLOAD INITIATOR 137
1. Introduction 138
1.1. Hardware Requirements 138
1.2. Software Requirements 139
2. Software/Driver Loading 140
3. Software/Driver Unloading 142
4. Software/Driver Configuration and Fine-tuning 143
4.1. Accelerating open-iSCSI Initiator 143
4.2. Auto login from cxgb4i initiator at OS bootup 146
IX. DATA CENTER BRIDGING (DCB) 147
1. Introduction 148
1.1. Hardware Requirements 148
1.2. Software Requirements 148
2. Software/Driver Loading 149
3. Software/Driver Unloading 150
4. Software/Driver Configuration and Fine-tuning 151
4.1. Configuring Cisco Nexus 5010 switch 151
4.2. Configuring the Brocade 8000 switch 154
Chelsio T5/T4 Unified Wire For Linux vi
X. FCOE PDU OFFLOAD TARGET 157
1. Introduction 158
1.1. Hardware Requirements 158
1.2. Software Requirements 158
2. Software/Driver Loading 161
3. Software/Driver Configuration and Fine-tuning 162
3.1. Configuring Cisco Nexus 5010 switch 162
3.2. Collecting port information 165
3.3. Configuring LUNs on Target 169
3.4. Configuring Persistent Target 171
3.5. Verifying initiators connected to the target 172
3.6. Removing LUNs 173
3.7. Performance tuning 173
4. Software/Driver Unloading 176
XI. FCOE FULL OFFLOAD INITIATOR 177
1. Introduction 178
1.1. Hardware Requirements 178
1.2. Software Requirements 178
2. Software/Driver Loading 179
3. Software/Driver Unloading 180
4. Software/Driver Configuration and Fine-tuning 181
4.1. Configuring Cisco Nexus 5010 and Brocade switch 181
4.2. FCoE fabric discovery verification 181
4.3. Formatting the LUNs and Mounting the Filesystem 185
4.4. Creating Filesystem 187
4.5. Mounting the formatted LUN 188
XII. OFFLOAD BONDING DRIVER 189
1. Introduction 190
1.1. Hardware Requirements 190
1.2. Software Requirements 190
2. Software/Driver Loading 192
3. Software/Driver Unloading 193
4. Software/Driver Configuration and Fine-tuning 194
4.1. Offloading TCP traffic over a bonded interface 194
XIII. OFFLOAD MULTI-ADAPTER FAILOVER (MAFO) 195
1. Introduction 196
1.1. Hardware Requirements 196
1.2. Software Requirements 197
Chelsio T5/T4 Unified Wire For Linux vii
2. Software/Driver Loading 198
3. Software/Driver Unloading 199
4. Software/Driver Configuration and Fine-tuning 200
4.1. Offloading TCP traffic over a bonded interface 200
4.2. Network Device Configuration 201
XIV. UDP SEGMENTATION OFFLOAD AND PACING 202
1. Introduction 203
1.1. Hardware Requirements 204
1.2. Software Requirements 204
2. Software/Driver Loading 206
3. Software/Driver Unloading 207
4. Software/Driver Configuration and Fine-tuning 208
4.1. Modifying the application 208
4.2. Configuring UDP Pacing 210
XV. OFFLOAD IPV6 DRIVER 211
1. Introduction 212
1.1. Hardware Requirements 212
1.2. Software Requirements 212
2. Software/Driver Loading 214
3. Software/Driver Unloading 215
3.1. Unloading the NIC driver 215
3.2. Unloading the TOE driver 215
XVI. BYPASS DRIVER 216
1. Introduction 217
1.1. Features 217
1.2. Hardware Requirements 218
1.3. Software Requirements 219
2. Software/Driver Loading 220
3. Software/Driver Unloading 221
4. Software/Driver Configuration and Fine-tuning 222
4.1. Starting ba server 222
4.2. Bypass API (CLI) 222
XVII. WD SNIFFING AND TRACING 228
1. Theory of Operation 229
1.1. Hardware Requirements 230
1.2. Software Requirements 231
2. Installation and Usage 232
Chelsio T5/T4 Unified Wire For Linux viii
2.1. Installing basic support 232
2.2. Using Sniffer (wd_sniffer)232
2.3. Using Tracer (wd_tcpdump_trace)232
XVIII.CLASSIFICATION AND FILTERING 234
1. Introduction 235
1.1. Hardware Requirements 235
1.2. Software Requirements 236
2. Usage 237
2.1. Configuration 237
2.2. Creating Filter Rules 237
2.3. Listing Filter Rules 239
2.4. Removing Filter Rules 239
2.5. Layer 3 example 240
2.6. Layer 2 example 243
3. Hash/DDR Filters 247
3.1. Creating Filter Rules 247
3.2. Listing Filter Rules 248
3.3. Removing Filter Rules 249
3.4. Swap MAC feature 249
3.5. Hit Counters 250
XIX. TRAFFIC MANAGEMENT 252
1. Introduction 253
1.1. Hardware Requirements 253
1.2. Software Requirements 254
2. Software/Driver Loading 255
3. Software/Driver Unloading 256
4. Software/Driver Configuration and Fine-tuning 257
4.1. Traffic Management Rules 257
4.2. Configuring Traffic Management 259
5. Usage 262
5.1. Non-Offloaded Connections 262
5.2. Offloaded Connections 262
5.3. Offloaded Connections with Modified Application 263
XX. UNIFIED WIRE MANAGER (UM) 264
1. Introduction 265
1.1. Features 265
1.2. Reference Architecture 266
1.3. Unified Wire Manager Components 266
Chelsio T5/T4 Unified Wire For Linux ix
1.4. Authentication and encryption 267
2. Hardware and Software 268
2.1. Supported Adapters 268
2.2. Platform/Component Matrix 269
2.3. Platform/Driver Matrix 269
3. Installing Unified Wire Manager 270
4. Verifying UM components status 271
4.1. Verifying Management Agent 271
4.2. Verifying Management Client 272
4.3. Verifying Management Station 272
5. Management Agent 273
5.1. Communication 273
5.2. Configuration 273
5.3. Service configuration 273
5.4. Firewall 274
6. CLI client 275
6.1. CLI Help system 275
6.2. Client conflict resolution 275
7. Web GUI client 276
7.1. Management Station 276
7.2. Accessing Web Management Interface 277
7.3. Layout and Navigation 280
7.4. Home page 281
7.5. System page 294
7.6. Network page 306
7.7. Storage Page 335
7.8. Hardware Features 369
8. Uninstalling Unified Wire Manager 385
8.1. Uninstalling Management Agent 385
8.2. Uninstalling Management Client 385
8.3. Uninstalling Management Station 386
XXI. UNIFIED BOOT 387
1. Introduction 388
1.1. Hardware Requirements 388
1.2. Software Requirements 389
2. Flashing firmware and option ROM 390
2.1. Using Flash Utility 390
2.2. Using cxgbtool394
3. Configuring PXE Server 395
4. PXE boot process 396
Chelsio T5/T4 Unified Wire For Linux x
4.1. Legacy PXE boot 396
5. FCoE boot process 401
5.1. Legacy FCoE boot 401
6. iSCSI boot process 410
6.1. Legacy iSCSI boot 410
7. Creating Driver Update Disk (DUD) 423
7.1. Creating DUD for RedHat Enterprise Linux 423
7.2. Creating DUD for Suse Enterprise Linux 423
8. OS Installation 425
8.1. Installation using Chelsio NIC DUD (PXE only) 425
8.2. Installation on FCoE LUN 435
8.3. Installation on iSCSI LUN 440
XXII. LUSTRE FILE SYSTEM 450
1. Introduction 451
1.1. Hardware Requirements 451
1.2. Software Requirements 452
2. Creating/Configuring Lustre File System 453
XXIII. APPENDIX A 455
1. Troubleshooting 456
2. Chelsio End-User License Agreement (EULA) 458
Chelsio T5/T4 Unified Wire For Linux xi
Chapter I. Chelsio Unified Wire
I. Chelsio Unified Wire
Chelsio T5/T4 Unified Wire For LinuxPage 12
Chapter I. Chelsio Unified Wire
1. Introduction
Thank you for choosing Chelsio T5/T4 Unified Wire adapters. These high speed, single chip,
single firmware cards provide enterprises and data centers with high performance solutions for
various Network and Storage related requirements.
The Terminator 5 (T5) is Chelsio’s next generation of highly integrated, hyper-virtualized
40/10GbE controllers. The T5 is built around a programmable protocol-processing engine, with
full offload of a complete Unified Wire solution comprising NIC, TOE, iWARP RDMA, ISCSI,
FCoE and NAT support. It scales true 40Gb line rate operation from a single TCP connection to
thousands of connections, and allows simultaneous low latency and high bandwidth operation
thanks to multiple physical channels through the ASIC.
The T4 adapters can fully offload TCP, UDP, iSCSI, iWARP and FCoE over a single Unified
Wire. The adapters also fully support SR-IOV, EVB/VNTag, DCB, Traffic Management and
Filtering.
Ideal for all data, storage and high performance clustering applications, the T5/T4 Adapters
enable a unified fabric over a single wire by simultaneously running all unmodified IP sockets,
Fibre Channel and InfiniBand applications over Ethernet at line rate.
Designed for deployment in virtualized data centers, cloud service installations and high
performance computing environments, Chelsio T5/T4 adapters bring a new level of performance
metrics and functional capabilities to the computer networking industry.
Chelsio Unified Wire software comes in two formats: Source code and RPM package forms.
Installing from source requires compiling the package to generate the necessary binaries. You
can choose this method when you are using a custom-built kernel. You can also install the
package using the interactive GUI installer. In other cases, download the RPM package specific
to your operating system and follow the steps mentioned to install the package. Please note that
the OFED software required to install Chelsio iWARP driver comes bundled in both source as
well as RPM packages.
This document describes the installation, use and maintenance of the software and its
various components.
1.1. Features
The Chelsio Unified Wire Package uses a single command to install various drivers and utilities.
It consists of the following software:
Network (NIC/TOE) Virtual Function Network (vNIC) iWARP (RDMA)
Chelsio T5/T4 Unified Wire For LinuxPage 13
Chapter I. Chelsio Unified Wire
WD-UDP WD-TOE iSCSI PDU Offload Target iSCSI PDU Offload Initiator Data Center Bridiging (DCB) FCoE PDU Offload Target FCoE full offload Initiator Offload Bonding driver Offload Multi-Adapter Failover(MAFO) UDP Segmentation Offload and Pacing Offload IPv6 driver Bypass driver Classification and Filtering feature Traffic Management feature (TM) Unified Wire Manager (UM) Unified Boot Software Lustre File System Utility Tools(cop,cxgbtool,t4_perftune,benchmark tools, sniffer & tracer) libs (iWARP and WD-UDP libraries)
For detailed instructions on loading, unloading and configuring the drivers/tools please refer to
their respective sections.
1.2. Hardware Requirements
The Chelsio Unified Wire software supports Chelsio T5 and T4 Series of Unified Wire Adapters.
To know more about the list of adapters supported by each driver, please refer to their
respective sections.
1.3. Software Requirements
The Chelsio Unified Wire software has been developed to run on 64-bit Linux based platforms
and therefore it is a base requirement for running the driver. To know more about the complete
list of operating systems supported by each driver, please refer to their respective sections.
1.4. Package Contents
1.4.1. Source Package
The Chelsio Unified Wire source package consists of the following files/directories:
Chelsio T5/T4 Unified Wire For LinuxPage 14
Chapter I. Chelsio Unified Wire
To use cxbtool for FCoE Initiator driver, use [root@host]# cxgbtool stor –h
Note
install.py,dialog.py: Python scripts needed for the GUI installer.
EULA: Chelsio’s End User License Agreement
install.log: File containing installation summary.
docs: The docs directory contains support documents - README, Release Notes and
User’s Guide (this document) for the software.
libs: This directory is for libraries required to install the WD-TOE, WD-UDP and iWARP
drivers. The libibverbs library has implementation of RDMA verbs which will be used by
iWARP applications for data transfers. The librdmacm library works as an RDMA connection
manager. The libcxgb4 library works as an interface between the above mentioned generic
libraries and Chelsio iWARP driver. The libcxgb4_sock library is a LD_PRELOAD-able
library that accelerates UDP Socket communications transparently and without
recompilation of the user application.
Makefile: The Makefile for building and installing from the source.
sample_machinefile: Sample file used during iWARP installation on cluster nodes.
scripts: Support scripts used by the Unified Wire Installer.
specs: The packaging specification files required for building RPM packages.
src: Source code for different drivers.
support: This directory contains source files for the dialog utility.
tools:
ba_tools: Management and configuration tools for bypass adapters.
benchmarks: This directory contains various benchmarking tools to measure
throughput and latency of various networks.
cop: The cop tool compiles offload policies into a simple program form that can be
loaded into the kernel and interpreted. These offload policies are used to determine
the settings to be used for various connections. The connections to which the
settings are applied are based on matching filter specifications. Please find more
details on this tool in its manual page (run man cop command).
cxgbtool: The cxgbtool queries or sets various aspects of Chelsio network
interface cards. It complements standard tools used to configure network settings
and provides functionality not available through such tools. Please find more details
on this tool in its manual page (run man cxgbtool command).
rdma_tools: This directory contains iWARP benchmarking tools.
sniffer: This directory contains sniffer tracing and filtering libraries. See WD Sniffing
and Tracingchapter for more information.
um: This directory contains Unified Wire Manager RPMs for different distributions
and Management Station configuration files.
chsetup: The chsetup tool loads NIC,TOE and iWARP drivers, and creates WD-
UDP configuration file.
chstatus: This utility provides status information on any Chelsio NIC in the system.
Chelsio T5/T4 Unified Wire For LinuxPage 15
Chapter I. Chelsio Unified Wire
t4_perftune.sh: This shell script is to tune the system for higher performance. It
achieves it through modifying the IRQ-CPU binding. This script can also be used to
change Tx coalescing settings.
t4-forward.sh: RFC2544 Forward test tuning script.
uname_r: This file is used by chstatus script to verify if the Linux platform is
supported or not.
wdload: UDP acceleration tool.
wdunload: Used to unload all the loaded Chelsio drivers.
bootcfg: This utility generates a default boot configuration file in binary format.
chiscsi_set_affinity.sh: This shell script is used for mapping iSCSI Worker threads
to different CPUs.
chelsio_adapter_config: This directory contains scripts and binaries needed to
configure Chelsio 40G Adapters.
Uboot: There are two sub-directories in the Uboot directory: OptionROM and LinuxDUD.
The OptionROM directory contains Unified Boot Option ROM image (cuwlbt4.bin) and a
Legacy Flash Utility (cfut4.exe), which can be used to flash Unified Boot Option ROM onto
Chelsio's T5 and T4 Converged Network Adapters (CNAs).
The LinuxDUD directory contains image (.img) files required to update drivers for Linux
(RHEL and SLES) distributions.
1.4.2. RPM package
The Chelsio Unified Wire RPM package consists of the following:
docs: The docs directory contains support documents i.e. README, Release Notes and
User’s Guide (this document) for the software.
scripts: Support scripts used by the Unified Wire Installer.
DRIVER-RPMS: RPM packages of Chelsio drivers.
OFED-RPMS: OFED RPM packages required to install iWARP driver.
install.py: Python script that installs the RPM package. See Software/Driver Installation
section for more information.
uninstall.py: Python script that uninstalls the RPM package. See Software/Driver
Uninstallation section for more information.
EULA: Chelsio’s End User License Agreement.
Uboot: There are two sub-directories in the Uboot directory: OptionROM and LinuxDUD.
The OptionROM directory contains Unified Boot Option ROM image (cuwlbt4.bin) and a
Legacy Flash Utility (cfut4.exe), which can be used to flash Unified Boot Option ROM onto
Chelsio's T5 and T4 Converged Network Adapters (CNAs).
The LinuxDUD directory contains image (.img) files required to update drivers for Linux
(RHEL and SLES) distributions.
Chelsio T5/T4 Unified Wire For LinuxPage 16
Chapter I. Chelsio Unified Wire
2. Hardware Installation
Follow these steps to install Chelsio Adapter in your system:
1. Shutdown/power off your system.
2. Power off all remaining peripherals attached to your system.
3. Unpack the Chelsio adapter and place it on an anti-static surface.
4. Remove the system case cover according to the system manufacturer’s instructions.
5. Remove the PCI filler plate from the slot where you will install the Ethernet adapter.
6. For maximum performance, it is highly recommended to install the adapter into a PCIE x8
slot.
7. Holding the Chelsio adapter by the edges, align the edge connector with the PCI connector
on the motherboard. Apply even pressure on both edges until the card is firmly seated. It
may be necessary to remove the SFP (transceiver) modules prior to inserting the adapter.
8. Secure the Chelsio adapter with a screw, or other securing mechanism, as described by the
system manufacturer’s instructions. Replace the case cover.
9. After securing the card, ensure that the card is still fully seated in the PCIE x8 slot as
sometimes the process of securing the card causes the card to become unseated.
10. Connect a fiber cable, multi-mode for short range (SR) optics or single-mode for long range
(LR) optics, to the 40/10Gb Ethernet adapter or regular Ethernet cable for the 1Gb Ethernet
adapter.
11. Power on your system.
12. Verify if the adapter was installed successfully by using the lspci command
For Chelsio T5/T4 adapters, the physical functions are currently assigned as:
Physical functions 0 - 3: for the SR-IOV functions of the adapter
Physical function 4: for all NIC functions of the adapter
Physical function 5: for iSCSI
Physical function 6: for FCoE
Physical function 7: Currently not assigned
Once Unified Wire package is installed and loaded, examine the output of dmesg to see if the
card is discovered.
Network device names for Chelsio’s physical ports are assigned using the
following convention: the port farthest from the motherboard will appear as the
first network interface. However, for T5 40G and T420-BT adapters, the
association of physical Ethernet ports and their corresponding network device
names is opposite. For these adapters, the port nearest to the motherboard will
appear as the first network interface.
Note
The above outputs indicate the hardware configuration of the adapters as well as the Serial
numbers. As observed by the x8, the card is properly installed in an x8 slot on the machine and
using MSI-X interrupts.
Chelsio T5/T4 Unified Wire For LinuxPage 19
Chapter I. Chelsio Unified Wire
T5/T4
Configuration
Tuning Option
Description
Driver/Software installed
Unified Wire
Configures adapters to run multiple protocols
like NIC/TOE, iWARP, iSCSI and FCoE
Initiator simultaneously.
NIC/TOE, vNIC, iWARP, WD-UDP,
iSCSITarget, iSCSI Initiator, Bonding,
MAFO,IPv6, Sniffer & Tracer, DCB, FCoE
Initiator, UM(Agent,Client,WebGUI),
Filtering, TM, Lustre
Low latency
Networking
Configures adapters to run NIC/TOE and
iWARP traffic with low latency specially
needed for financial applications.
NIC/TOE, vNIC, iWARP, WD-UDP, WD-
TOE, IPv6, Sniffer & Tracer,
UM(Agent,Client,WebGUI), Filtering, TM
High capacity
RDMA
Configures adapters to establish a large
number of RDMA connections.
NIC/TOE, vNIC, iWARP, WD-UDP, Bonding,
MAFO,IPv6, Sniffer & Tracer,
UM(Agent,Client,WebGUI), Filtering, TM
RDMA
Performance
Improves RDMA performance on T5/T4
adapters.
NIC/TOE,iWARP,
UM(Agent,Client,WebGUI)
High capacity
TOE
Configures adapters to establish a large
number of TOE connections.
NIC/TOE, vNIC, Bonding, MAFO,IPv6,
UM(Agent,Client,WebGUI), Filtering,
TM
iSCSI
Performance*
Improves iSCSI performance on T5
adapters.
NIC/TOE,iSCSI Target, iSCSI Initiator,
UM(Agent,Client,WebGUI)
UDP Seg.Offload
& Pacing
Configures adapters to establish a large
number of UDP Segmentation Offload
connections.
NIC/TOE, IPv6, USO,
UM(Agent,Client,WebGUI), Filtering, TM
T5 Wire Direct
Latency*
Configures T5 adapters to provide low Wire
Direct latency.
NIC/TOE,iWARP,WD-UDP,WD-TOE,
UM(Agent,Client,WebGUI)
T5 High Capacity
WD*
Configures T5 adapters to establish a large
number of WD-UDP connections.
NIC/TOE,WD-UDP,WD-TOE,
UM(Agent,Client,WebGUI)
T5 Hash Filter*
Configures T5 adapters to create more
filters.
NIC,Filtering, UM(Agent,Client,WebGUI)
3. Software/Driver Installation
There are two main methods to install the Chelsio Unified Wire package: from source and RPM.
If you decide to use source, you can install the package using CLI or GUI mode.
If you decide to use RPM, you can install the package using Menu or CLI mode.
Irrespective of the method chosen for installation, the machine needs to be rebooted for
changes to take effect.
The following table describes the various configuration tuning options available during
installation and drivers/software installed with each option by default:
* Supported only on T5 adapters.
Chelsio T5/T4 Unified Wire For LinuxPage 20
Chapter I. Chelsio Unified Wire
3.1. Pre-requisites
Depending on the component you choose to install, please ensure that the following
requirements are met, before proceeding with the installation.
If you want to install OFED with NFS-RDMA support, please refer “Setting up NFS-RDMA”
in iWARP (RDMA) (Click here).
If you’re planning to install iSCSI PDU Offload Initiator, please install openssl-devel
package.
IPv6 should be enabled in the machine to use the RPM Packages.
3.2. Installing Chelsio Unified Wire from source
3.2.1. GUI mode (with Dialog utility)
i. Download the tarball ChelsioUwire-x.xx.x.x.tar.gz from Chelsio Download Center,
http://service.chelsio.com/
ii. Untar the tarball using the following command:
[root@host]# tar -zxvfm ChelsioUwire-x.xx.x.x.tar.gz
iii. Change your current working directory to Chelsio Unified Wire package directory and run the
following script to start the GUI installer:
[root@host]# ./install.py
iv. If Dialog utility is present, you can skip to step (v). If not, press ‘y’ to install it when the
installer prompts for input.
Chelsio T5/T4 Unified Wire For LinuxPage 21
Chapter I. Chelsio Unified Wire
The tuning options may vary depending on the Linux distribution.
Note
v. Select “install” under “Choose an action”
vi. Select Enable IPv6-Offload to install drivers with IPv6 Offload support or Disable IPv6-
offload to continue installation without IPv6 offload support.
vii. Select the required T5/T4 configuration tuning option:
Chelsio T5/T4 Unified Wire For LinuxPage 22
Chapter I. Chelsio Unified Wire
For more information on the Performance tuning options, please refer to
Software/Driver Configuration and Fine-tuning section of the Network
(NIC/TOE) chapter.
Note
To install Bypass or FCoE PDU Offload Target drivers, please select Unified
Wire in step (ix). Then select “custom” option.
Important
viii. Under “Choose install components”, select “all” to install all the related components for the
option chosen in step (ix) or select “custom” to install specific components.
ix. Select the required performance tuning option.
a. Enable Binding IRQs to CPUs: Bind MSI-X interrupts to different CPUs and disable
IRQ balance daemon.
b. Retain IRQ balance daemon: Do not disable IRQ balance daemon.
c. TX-Coalasce: Write tx_coal=2 to modprobe.d/conf.
Chelsio T5/T4 Unified Wire For LinuxPage 23
Chapter I. Chelsio Unified Wire
OFED is currently not supported on RHEL 6.5
Note
x. If you already have the required version of OFED software installed, you can skip this step.
To install OFED-3.5-2 choose the Install-OFED option. To install a different version, select
Choose-OFED-Version and then select the appropriate version. To skip this step, select
Skip-OFED.
xi. The selected components will now be installed:
Chelsio T5/T4 Unified Wire For LinuxPage 24
Chapter I. Chelsio Unified Wire
Press Esc or Ctrl+C to exit the installer at any point of time.
Note
xii. After successful installation, summary of installed components will be displayed.
xiii. Select “View log” to view the installation log or “Exit” to continue.
xiv. Select “Yes” to exit the installer or “No” to go back.
xv. Reboot your machine for changes to take effect.
Chelsio T5/T4 Unified Wire For LinuxPage 25
Chapter I. Chelsio Unified Wire
3.2.1.1. Installation on updated kernels
If the kernel version on your Linux distribution is updated, follow the steps mentioned below to
install the Unified Wire package:
i. Change your current working directory to Chelsio Unified Wire package directory and run the
following script to start the GUI installer:
[root@host]# ./install.py
ii. Select “Yes” to continue with the installation on the updated kernel or “No” to exit.
iii. Select the nearest supported kernel version from the list and select “OK”.
iv. Follow steps (xv) to (xvii) mentioned in the previous section.
3.2.2. CLI mode (without Dialog utility)
If your system does not have Dialog or you choose not to install it, follow the steps mentioned
below to install the Unified Wire package:
Chelsio T5/T4 Unified Wire For LinuxPage 26
Chapter I. Chelsio Unified Wire
To install Bypass or WD-TOE driver, run
[root@host]# ./install.py -c <target> and follow steps (iv) - (vi)
mentioned above.
To customize the installation, view the help by typing
[root@host]#./install.py –h
Important
OFED is currently not supported on RHEL 6.5.
Note
Please make sure that you have enabled password less authentication with ssh
on the peer nodes for this feature to work.
Important
i. Download the tarball ChelsioUwire-x.xx.x.x.tar.gz from Chelsio Download Center,
http://service.chelsio.com/
ii. Untar the tarball using the following command:
[root@host]# tar -zxvfm ChelsioUwire-x.xx.x.x.tar.gz
iii. Change your current working directory to Chelsio Unified Wire package directory and run the
following script to start the installer:
[root@host]# ./install.py
iv. When the installer prompts you for your input, press ‘n’ to continue installation without the
Dialog utility.
v. Enter the number corresponding to the Configuration tuning option in the Input field and
press Enter.
vi. If you already have the required version of OFED software installed, you can skip this step.
To install OFED-3.5-2 choose the Install-OFED option. To install a different version, select
Choose-OFED-Version and then select the appropriate version. To skip this step, select
Skip-OFED.
vii. The selected components will now be installed.
After successful installation you can press 1 to view the installation log. Press any other key
to exit from the installer.
viii. Reboot your machine for changes to take effect.
3.2.2.1. iWARP driver installation on Cluster nodes
Chelsio’s Unified Wire package allows installing iWARP drivers on multiple Cluster nodes with a
single command. Follow the procedure mentioned below:
Chelsio T5/T4 Unified Wire For LinuxPage 27
Chapter I. Chelsio Unified Wire
OFED is currently not supported on RHEL 6.5.
Note
i. Create a file (machinefilename) containing the IP addresses or hostnames of the nodes in
the cluster. You can view the sample file, sample_machinefile, provided in the package to
view the format in which the nodes have to be listed.
iii. Select the required T5/T4 configuration tuning option. The tuning options may vary
depending on the Linux distribution.
iv. Select the required Cluster Configuration.
v. If you already have the required version of OFED software installed, you can skip this step.
To install OFED-3.5-2 choose the Install-OFED option. To install a different version, select
Choose-OFED-Version and then select the appropriate version. To skip this step, select
Skip-OFED.
vi. The selected components will now be installed.
3.2.3. CLI mode
i. Download the tarball ChelsioUwire-x.xx.x.x.tar.gz from Chelsio Download Center,
http://service.chelsio.com/
ii. Untar the tarball using the following command:
[root@host]# tar -zxvfm ChelsioUwire-x.xx.x.x.tar.gz
iii. Change your current working directory to Chelsio Unified Wire package directory and build
the source using :
[root@host]# make
iv. Install the drivers, tools and libraries using the following command:
[root@host]# make install
Chelsio T5/T4 Unified Wire For LinuxPage 28
Chapter I. Chelsio Unified Wire
To view the different configuration tuning options, view help by typing
[root@host]#make help
Note
Steps (iv)and (v) mentioned above will NOT install Bypass, FCoE PDU offload
target drivers and benchmark tools.They will have to be installed manually.
Please refer to section CLI mode (individual drivers) for instructions on
installing them.
Important
v. The default configuration tuning option is Unified Wire. The configuration tuning can be
selected using the following commands:
[root@host]# make CONF=<T5/T4 configuration>
[root@host]# make CONF=<T5/T4 configuration> install
vi. Reboot your machine for changes to take effect.
3.2.3.1. Installation on updated kernels
If the kernel version on your Linux distribution is updated, please execute the following
command to install the Unified Wire package:
[root@host]# make UNAME_R=<kernel_version>
Where kernel_version is the nearest supported kernel version.
For example, if you want to install the package on a RHEL 6 distribution updated to 2.6.32-
279.2.1.el6 kernel, run the following commands:
[root@host]# make UNAME_R=2.6.32-279.el6
[root@host]# make UNAME_R=2.6.32-279.el6 install
To view the list of the supported kernel versions, run the following command:
[root@host]# make list_kernels
Reboot your machine for changes to take effect.
Chelsio T5/T4 Unified Wire For LinuxPage 29
Chapter I. Chelsio Unified Wire
3.2.4. CLI mode (individual drivers)
You can also choose to install drivers individually. Provided here are steps to build and install
NIC, TOE, iWARP, Bypass, WD-UDP, WD-TOE, UDP Segmentation Offload, FCoE PDU
Offload target drivers and benchmarking tools. To know about other drivers, view help by
running make help.
To build and install NIC driver without offload support :
[root@host]# make nic
[root@host]# make nic_install
To build and install NIC driver with offload support and Offload drivers:
[root@host]# make toe
[root@host]# make toe_install
To build and install Offload drivers without IPv6 support:
[root@host]# make toe_ipv4
[root@host]# make toe_ipv4_install
To build and install iWARP driver against outbox OFED:
[root@host]# make iwarp
[root@host]# make iwarp_install
To build and install all drivers without IPv6 support:
[root@host]# make ipv6_disable=1
[root@host]# make ipv6_disable=1 install
The above step will not install Bypass and WD-TOE drivers.
To build and install Bypass driver:
[root@host]# make bypass
[root@host]# make bypass_install
Chelsio T5/T4 Unified Wire For LinuxPage 30
Chapter I. Chelsio Unified Wire
To build and install WD-TOE driver:
[root@host]# make wdtoe
[root@host]# make wdtoe_install
To build and install WD-TOE and WD-UDP drivers together:
[root@host]# make wdtoe_wdudp
[root@host]# make wdtoe_wdudp_install
To build and install all drivers with DCB support:
[root@host]# make dcbx=1
[root@host]# make dcbx=1 install
The offload drivers support UDP Segmentation Offload with limited number of connections
(1024 connections).To build and install UDP Offload drivers which support large number of
offload connections (approx 10K):
[root@host]# make udp_offload
[root@host]# make udp_offload_install
To build and install FCoE Target drivers:
[root@host]# make fcoe_pdu_offload_target
[root@host]# make fcoe_pdu_offload_target_install
The default T5/T4 configuration tuning option is Unified Wire. The configuration tuning can
be selected using the following commands:
[root@host]# make CONF=<T5/T4 configuration> <Build Target>
[root@host]# make CONF=<T5/T4 configuration> <Install Target>
Chelsio T5/T4 Unified Wire For LinuxPage 31
Chapter I. Chelsio Unified Wire
To view the different configuration tuning options, view the help by typing
[root@host]#make help
Note
If IPv6 is administratively disabled in the machine, by default the drivers will be
built and installed without IPv6 Offload support.
Note
To build and install drivers along with benchmarks,
[root@host]# make BENCHMARKS=1
[root@host]# make BENCHMARKS=1 install
3.3. Installing Chelsio Unified Wire from RPM
3.3.1. Menu Mode
i. Download the tarball specific to your operating system and architecture from Chelsio
Download Center, http://service.chelsio.com/
ii. Untar the tarball:
E.g. For RHEL 6.4, untar using the following command:
[root@host]# tar -zxvfm ChelsioUwire-x.xx.x.x-RHEL6.4_x86_64.tar.gz
iii. Change your current working directory to Chelsio Unified Wire package directory and run
the following command:
[root@host]# ./install.py
iv. Select the required T5/T4 configuration tuning option as described below. Enter the
corresponding number in the Input field and press Enter.
v. Next press 1 if you want to install OFED along with the configuration tuning option selected
in step (vi) or 2 to skip OFED installation. Press Enter to continue with your choice.
vi. Select the Installation type as described below. Enter the corresponding number in the Input
field and press Enter.
1. Install all Chelsio drivers: Install all the drivers provided in the Unified Wire
package.
2. Install NIC and TOE drivers: Install only the Network and TOE drivers.
3. Install bypass drivers and tools: Install only the bypass drivers and tools.
4. Install WD drivers and library: Install only Wire Direct drivers and libraries.
5. EXIT: Exit the installer.
Chelsio T5/T4 Unified Wire For LinuxPage 32
Chapter I. Chelsio Unified Wire
If the installation aborts with the message "Resolve the errors/dependencies
manually and restart the installation", please go through the install.log to resolve
errors/dependencies and then start the installation again.
Note
The Installation options may vary depending on the Configuration tuning
option selected.
Note
The Installation options may vary depending on the Linux distribution.
Note
vii. The selected components will now be installed.
viii. Reboot your machine for changes to take effect.
3.3.2. CLI mode
i. Download the tarball specific to your operating system and architecture from Chelsio
Download Center, http://service.chelsio.com/
ii. Untar the tarball:
E.g. For RHEL 6.4, untar using the following command:
[root@host]# tar -zxvfm ChelsioUwire-x.xx.x.x-RHEL6.4_x86_64.tar.gz
iii. Change your current working directory to Chelsio Unified Wire package directory and install
nic_toe : NIC and TOE drivers only
all : all Chelsio drivers built against inbox OFED
bypass : bypass drivers and tools
udpso : UDP segmentation offload capable NIC and TOE drivers only
wd : Wire Direct drivers and libraries only
Chelsio T5/T4 Unified Wire For LinuxPage 33
Chapter I. Chelsio Unified Wire
Note
To view the different configuration tuning options, view the help by typing
[root@host]# ./install.py –h
Please make sure that you have enabled password less authentication with ssh
on the peer nodes for this feature to work.
Important
iv. The default configuration tuning option is Unified Wire. The configuration tuning can be
Here, -o parameter will install OFED and Chelsio drivers built against OFED.
iii. Reboot your machine for changes to take effect.
Chelsio T5/T4 Unified Wire For LinuxPage 34
Chapter I. Chelsio Unified Wire
3.4. Firmware update
The T5 and T4 firmwares are installed on the system, typically in /lib/firmware/cxgb4, and
the driver will auto-load the firmwares if an update is required. The kernel must be configured to
enable userspace firmware loading support:
Device Drivers -> Generic Driver Options -> Userspace firmware loading support
The firmware version can be verified using ethtool:
[root@host]# ethtool -i <iface>
Chelsio T5/T4 Unified Wire For LinuxPage 35
Chapter I. Chelsio Unified Wire
4. Software/Driver Uninstallation
Similar to installation, the Chelsio Unified Wire package can be uninstalled using two main
methods: from the source and RPM, based on the method used for installation. If you decide to
use source, you can uninstall the package using CLI or GUI mode.
4.1. Uninstalling Chelsio Unified Wire from source
4.1.1. GUI mode (with Dialog utility)
i. Change your current working directory to Chelsio Unified Wire package directory and run the
following script to start the GUI installer:
[root@host]# ./install.py
ii. Select “uninstall” , Under “Choose an action”
iii. Select “all” to uninstall all the installed drivers, libraries and tools or select “custom” to
remove specific components.
Chelsio T5/T4 Unified Wire For LinuxPage 36
Chapter I. Chelsio Unified Wire
iv. The selected components will now be uninstalled.
v. After successful uninstalltion, summary of the uninstalled components will be displayed.
vi. Select “View log” to view uninstallation log or “Exit” to continue.
Chelsio T5/T4 Unified Wire For LinuxPage 37
Chapter I. Chelsio Unified Wire
Press Esc or Ctrl+C to exit the installer at any point of time.
Note
View help by typing [root@host]# ./install.py –h for more information
Note
Uninstalling Unified Wire package will not uninstall Unified Wire Manager. Refer
to the next section, CLI mode (individual drivers) to remove the software
manually.
Note
vii. Select “Yes” to exit the installer or “No” to go back.
4.1.2. CLI mode (without Dialog utility)
Run the following script with –u option to uninstall the Unified Wire Package:
[root@host]# ./install.py –u <target>
4.1.3. CLI mode
Change your current working directory to Chelsio Unified Wire package directory and uninstall
using the following command:
[root@host]# make uninstall
4.1.3.1. iWARP driver uninstallation on Cluster nodes
To uninstal iWARP drivers on multiple Cluster nodes with a single command, run the following
command:
[root@host]# ./install.py -C -m <machinefilename> -u all
Chelsio T5/T4 Unified Wire For LinuxPage 38
Chapter I. Chelsio Unified Wire
The above command will remove Chelsio iWARP (iw_cxgb4) and TOE (t4_tom) drivers from all
the nodes listed in the machinefilename file.
4.1.4. CLI mode (individual drivers/software)
You can also choose to uninstall drivers/software individually. Provided here are steps to
uninstall NIC, TOE, iWARP, Bypass, WD-TOE, UDP Segmentation Offload, FCoE PDU Offload
target drivers and Unified Wire Manager (UM). To know about other drivers, access help by
running make help
To uninstall NIC driver :
[root@host]# make nic_uninstall
To uninstall offload driver:
[root@host]# make toe_uninstall
To uninstall iWARP driver:
[root@host]# make iwarp_uninstall
To uninstall Bypass driver:
[root@host]# make bypass_uninstall
To uninstall UDP Segmentation Offload driver:
[root@host]# make udp_offload_uninstall
To uninstall WD-TOE driver:
[root@host]# make wdtoe_uninstall
Chelsio T5/T4 Unified Wire For LinuxPage 39
Chapter I. Chelsio Unified Wire
Uninstalling Unified Wire package will not uninstall Unified Wire Manager. Refer
to the Unified Wire Manager (UM) chapter to remove the software manually
(Click here).
Note
The uninstallation options may vary depending on Linux distribution. View help
by typing [root@host]# ./uninstall.py –h for more information.
Note
To uninstall WD-TOE and WD-UPD drivers together:
[root@host]# make wdtoe_wdudp_uninstall
To uninstall FCoE Target driver:
[root@host]# make fcoe_pdu_offload_target_uninstall
To uninstall Unified Wire Manager (UM):
[root@host]# make uninstall UM_UNINST=1
OR
[root@host]# make tools_uninstall UM_UNINST=1
4.2. Uninstalling Chelsio Unified Wire from RPM
Change your current working directory to Chelsio Unified Wire package directory and and run
the following command:
[root@host]# ./uninstall.py <inbox/ofed>
inbox : for removing all Chelsio drivers.
ofed : for removing OFED and Chelsio drivers.
Chelsio T5/T4 Unified Wire For LinuxPage 40
Chapter I. Chelsio Unified Wire
4.2.1.1. iWARP driver uninstallation on Cluster nodes
To uninstal iWARP drivers on multiple Cluster nodes with a single command, run the following:
The above command will remove Chelsio iWARP (iw_cxgb4) and TOE (t4_tom) drivers from all
the nodes listed in the machinefilename file.
Chelsio T5/T4 Unified Wire For LinuxPage 41
Chapter I. Chelsio Unified Wire
Some operating systems may attempt to auto-configure the detected hardware
and some may not detect all ports on a multi-port adapter. If this happens,
please refer to the operating system documentation for manually configuring the
network device.
Note
5. Configuring Chelsio Network Interfaces
In order to test Chelsio adapters’ features it is required to use two machines both with Chelsio’s
(T5, T4 or both) network adapters installed. These two machines can be connected directly
without a switch (back-to-back), or both connected to a switch. The interfaces have to be
declared and configured. The configuration files for network interfaces on Red Hat Enterprise
Linux (RHEL) distributions are kept under /etc/sysconfig/network-scripts.
5.1. Configuring 40G adapters
Chelsio T5 40G adapters can be configured in the following two modes:
i. 2X40Gbps: This is the default mode of operation where each port functions as 40Gbps link.
ii. 4X10Gbps: In this mode, port 0 functions as 4 10Gbps links and port 1 is disabled.
To configure/change the mode of operation, use the following procedure:
i. Unload all Chelsio drivers using the rmmod command:
[root@host]# rmmod <chelsio_driver>
ii. Run the chelsio_adapter_config command to detect all T5 40G adapter(s) present in the
A typical interface network-script (e.g. eth0) on RHEL 6.3 looks like the following:
# file: /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
HWADDR=00:30:48:32:6A:AA
ONBOOT="yes"
NM_CONTROLLED="no"
BOOTPROTO="static"
IPADDR=10.192.167.111
NETMASK=255.255.240.0
In the case of DHCP addressing the last two lines should be removed and
BOOTPROTO="static" should be changed to BOOTPROTO="dhcp"
Chelsio T5/T4 Unified Wire For LinuxPage 43
Chapter I. Chelsio Unified Wire
The ifcfg-ethX files have to be created manually. They are required for bringing the
interfaces up and down and attribute the desired IP addresses.
5.3. Creating network-scripts
To spot the new interfaces, make sure the driver is unloaded first. To that point ifconfig -a |
grep HWaddr should display all non-chelsio interfaces whose drivers are loaded, whether the
interfaces are up or not.
[root@host]# ifconfig -a | grep HWaddr
eth0 Link encap:Ethernet HWaddr 00:30:48:32:6A:AA
Then load the driver using the modprobe cxgb4 command (for the moment it does not make
any difference whether we are using NIC-only or the TOE-enabling driver). The output of
ifconfig should display the T5/T4 interfaces as:
[root@host]# ifconfig -a | grep HWaddr
eth0 Link encap:Ethernet HWaddr 00:30:48:32:6A:AA
eth1 Link encap:Ethernet HWaddr 00:07:43:04:6B:E9
eth2 Link encap:Ethernet HWaddr 00:07:43:04:6B:F1
eth3 Link encap:Ethernet HWaddr 00:07:43:04:6B:F9
eth4 Link encap:Ethernet HWaddr 00:07:43:04:6C:01
For each interface you can write a configuration file in /etc/sysconfig/network-scripts.
The ifcfg-eth1 could look like:
From now on, the eth1 interface of the adapter can be brought up and down through the ifup
eth1 and ifdown eth1 commands respectively. Note that it is of course not compulsory to
create a configuration file for every interface if you are not planning to use them all.
Chelsio T5/T4 Unified Wire For LinuxPage 44
Chapter I. Chelsio Unified Wire
5.4. Checking Link
Once the network-scripts are created for the interfaces you should check the link i.e. make sure
it is actually connected to the network. First, bring up the interface you want to test using
ifup eth1.
You should now be able to ping any other machine from your network provided it has ping
response enabled.
Chelsio T5/T4 Unified Wire For LinuxPage 45
Chapter I. Chelsio Unified Wire
6. Software/Driver Update
For any distribution specific problems, please check README and Release Notes included in
the release for possible workaround.
Please visit Chelsio support web site http://service.chelsio.com/ for regular updates on various
software/drivers. You can also subscribe to our newsletter for the latest software updates.
Chelsio T5/T4 Unified Wire For LinuxPage 46
Chapter II. Network (NIC/TOE)
II. Network (NIC/TOE)
Chelsio T5/T4 Unified Wire For LinuxPage 47
Chapter II. Network (NIC/TOE)
1. Introduction
Chelsio’s T5 and T4 series of Unified Wire Adapters provide extensive support for NIC
operation, including all stateless offload mechanisms for both IPv4 and IPv6 (IP, TCP and UDP
checksum offload, LSO - Large Send Offload aka TSO - TCP Segmentation Offload, and assist
mechanisms for accelerating LRO - Large Receive Offload).
A high performance fully offloaded and fully featured TCP/IP stack meets or exceeds software
implementations in RFC compliance. Chelsio’s T5/T4 engine provides unparalleled performance
through a specialized data flow processor implementation and a host of features designed for
high throughput and low latency in demanding conditions and networking environments, using
standard size Ethernet frames.
TCP offload is fully implemented in the hardware, thus freeing the CPU from TCP/IP overhead.
The freed CPU can be used for any computing needs. The TCP offload in turn removes network
bottlenecks and enables applications to take full advantage of the networking capabilities.
1.1. Hardware Requirements
1.1.1. Supported Adapters
The following are the currently shipping Chelsio Adapters that are compatible with Chelsio
Network driver:
Currently the Network driver is available for the following versions:
Redhat Enterprise Linux 5 update 9 kernel (RHEL5.9), 2.6.18-348.el5*
Redhat Enterprise Linux 5 update 10 kernel (RHEL5.10), 2.6.18-371.el5*
Redhat Enterprise Linux 6 update 4 kernel (RHEL6.4), 2.6.32-358.el6
Redhat Enterprise Linux 6 update 5 kernel (RHEL6.5), 2.6.32-431.el6*
Suse Linux Enterprise Server 11 SP1 kernel (SLES11SP1), 2.6.32.12-0.7
Suse Linux Enterprise Server 11 SP2 kernel (SLES11SP2), 3.0.13-0.27
Suse Linux Enterprise Server 11 SP3 kernel (SLES11SP3), 3.0.76-0.11
Ubuntu 12.04, 3.2.0-23
Ubuntu 12.04.2, 3.5.0-23*
Kernel.org linux-3.4
Kernel.org linux-3.6*
Kernel.org linux-3.7
Kernel.org linux-3.8*
Kernel.org linux-3.9*
Kernel.org linux-3.10*
Kernel.org linux-3.11*
Kernel.org linux-3.12*
Kernel.org linux-3.13*
Other kernel versions have not been tested and are not guaranteed to work.
* Limited QA performed.
Chelsio T5/T4 Unified Wire For LinuxPage 49
Chapter II. Network (NIC/TOE)
Offload support needs to be enabled upon each reboot of the system. This can
be done manually as shown above.
Note
2. Software/Driver Loading
The driver must be loaded by the root user. Any attempt to load the driver as a regular user will
fail.
2.1. Loading in NIC mode (without full offload support)
To load the Network driver without full offload support, run the following command:
[root@host]# modprobe cxgb4
2.2. Loading in TOE mode (with full offload support)
To enable full offload support, run the following command:
[root@host]# modprobe t4_tom
Chelsio T5/T4 Unified Wire For LinuxPage 50
Chapter II. Network (NIC/TOE)
3. Software/Driver Unloading
3.1. Unloading the NIC driver
To unload the NIC driver, run the following command:
[root@host]# rmmod cxgb4
3.2. Unloading the TOE driver
Please reboot the system to unload the TOE driver.
Chelsio T5/T4 Unified Wire For LinuxPage 51
Chapter II. Network (NIC/TOE)
To get familiar with physical and virtual function terminologies, please refer the
PCI Express specification.
Note
4. Software/Driver Configuration and Fine-tuning
4.1. Instantiate Virtual Functions (SR-IOV)
To instantiate the Virtual functions, load the cxgb4 driver with num_vf parameter with a non-zero
value. For example:
[root@host]# modprobe cxgb4 num_vf=1,0,0,0
The number(s) provided for num_vf parameter specifies the number of Virtual Functions to be
instantiated per Physical Function. The Virtual Functions can be assigned to Virtual Machines
(Guests). A maximum of 64 Virtual Functions can be instantiated with 16 Virtual Functions per
Physical Function. Loading the cxgb4 driver with num_vf parameter loads the cxgb4vf module
(the driver for Virtual Functions) in the host by default. Hence unload the cxgb4vf module (on
the host) before assigning Virtual Functions to the Virtual Machines (Guests), using the
following command:
[root@host]# rmmod cxgb4vf
4.2. Performance tuning
In order to auto tune the system and TOE devices for best performance, Chelsio recommends
installing the tools which will copy t4_perftune.sh script to /sbin directory. Run the script by
using the following command:
[root@host]# t4_perftune.sh
This script will configure RSS and enable Interrupt Coalescing.
Chelsio T5/T4 Unified Wire For LinuxPage 52
Chapter II. Network (NIC/TOE)
Receiver Side Scaling (RSS)
Receiver Side Scaling enables the receiving network traffic to scale with the available number of
processors on a modern networked computer. RSS enables parallel receive processing and
dynamically balances the load among multiple processors. Chelsio’s T5/T4 network controller
fully supports Receiver Side Scaling for IPv4 and IPv6.
This script first determines the number of CPUs on the system and then each receiving queue is
bound to an entry in the system interrupt table and assigned to a specific CPU. Thus, each
receiving queue interrupts a specific CPU through a specific interrupt now. For example, on a 4core system, t4_perftune.sh gives the following output:
[root@host]# t4_perftune.sh
Discovering Chelsio T4/T5 devices ...
Configuring Chelsio T4/T5 devices ...
Tuning eth7
IRQ table length 4
Writing 1 in /proc/irq/62/smp_affinity
Writing 2 in /proc/irq/63/smp_affinity
Writing 4 in /proc/irq/64/smp_affinity
Writing 8 in /proc/irq/65/smp_affinity
eth7 now up and tuned
...
Because there are 4 CPUs on the system, 4 entries of interrupts are assigned. For other T5/T4
network interfaces, you should see similar output message.
Now the receiving traffic is dynamically assigned to one of the system’s CPUs through a T5/T4
queue. This achieves a balanced usage among all the processors. This can be verified, for
example, by using the iperf tool. First set up a server on the receiver host:
[root@receiver_host]# iperf –s
Then on the sender host, send data to the server using the iperf client mode. To emulate a
moderate traffic workload, use -P option to request 20 TCP streams from the server:
Linux’s irqbalance may take charge of distributing interrupts among CPUs on a
multiprocessor platform. However, irqbalance distributes interrupt requests
from all hardware devices across processors. For a server with T5/T4 network
card constantly receiving large volume of data at 40/10Gbps, the network
interrupt demands are significantly high. Under such circumstances, it is
necessary to enable RSS to balance the network load across multiple
processors and achieve the best performance.
Note
Then on the receiver host, look at interrupt rate at /proc/interrupts:
Now interrupts from eth6 are evenly distributed among the 4 CPUs.
Without T5/T4’s RSS support, the interrupts caused by network traffic may be distributed
unevenly over CPUs. For your information, the traffic produced by the same iperf commands
gives the following output in /proc/interrupts.
Here there are 4 receiving queues from the eth6 interface, but they are not bound to a specific
CPU or interrupt entry. Queue 2 has caused a very large number of interrupts on CPU2 while
CPU0 and CPU1 are barely used by any of the four queues. Enabling RSS is thus essential for
best performance.
Chelsio T5/T4 Unified Wire For LinuxPage 54
Chapter II. Network (NIC/TOE)
For more information, run the following command:
[root@host]# ethtool -h
Note
Interrupt Coalescing
The idea behind Interrupt Coalescing (IC) is to avoid flooding the host CPUs with too many
interrupts. Instead of throwing one interrupt per incoming packet, IC waits for ‘n’ packets to be
available in the Rx queues and placed into the host memory through DMA operations before an
interrupt is thrown, reducing the CPU load and thus improving latency. It can be changed using
the following command:
[root@host]# ethtool –C ethX rx-frames n
Large Receive Offload / Generic Receive Offload
Large Receive Offload or Generic Receive Offload is a performance improvement feature at the
receiving side. LRO/GRO aggregates the received packets that belong to same stream, and
combines them to form a larger packet before pushing them to the receive host network stack.
By doing this, rather than processing every small packet, the receiver CPU works on fewer
packet headers but with same amount of data. This helps reduce the receive host CPU load and
improve throughput in a 10Gb network environment where CPU can be the bottleneck.
LRO and GRO are different names to refer to the same receiver packets aggregating feature.
LRO and GRO actually differ in their implementation of the feature in the Linux kernel. The
feature was first added into the Linux kernel in version 2.6.24 and named Large Receive Offload
(LRO). However LRO only works for TCP and IPv4. As from kernel 2.6.29, a new protocolindependent implementation removing the limitation is added to Linux, and it is named Generic
Receive Offload (GRO). The old LRO code is still available in the kernel sources but whenever
both GRO and LRO are presented GRO is always the preferred one to use.
Please note that if your Linux system has IP forwarding enabled, i.e. acting as a bridge or
router, the LRO needs to be disabled. This is due to a known kernel issue.
Chelsio’s T5/T4 card supports both hardware assisted GRO/LRO and Linux-based GRO/LRO.
t4_tom is the kernel module that enables the hardware assisted GRO/LRO. If it is not already in
the kernel module list, use the following command to insert it:
Then T5/T4’s hardware GRO/LRO implementation is enabled.
If you would like to use the Linux GRO/LRO for any reason, first the t4_tom kernel module
needs to be removed from kernel module list. Please note you might need to reboot your
system.
After removing the t4_tom module, you can use ethtool to check the status of current
GRO/LRO settings, for example:
[root@host]# ethtool -k eth6
Offload parameters for eth6:
rx-checksumming: on
tx-checksumming: on
scatter-gather: on
tcp-segmentation-offload: on
udp-fragmentation-offload: off
generic-segmentation-offload: on
generic-receive-offload: on
large-receive-offload: off
Now the generic-receive-offload option is on. This means GRO is enabled. Please note
that there are two offload options here: generic-receive-offload and large-receive-
offload. This is because on this Linux system (RHEL6.0), the kernel supports both GRO and
LRO. As mentioned earlier, GRO is always the preferred option when both of them are present.
On other systems LRO might be the only available option. Then ethtool could be used to
switch LRO on and off as well.
When Linux’s GRO is enabled, Chelsio’s T5/T4 driver provides two GRO-related statistics. They
are displayed using the following command:
[root@host]# ethtool -S eth6
...
GROPackets : 0
GROMerged : 897723
...
Chelsio T5/T4 Unified Wire For LinuxPage 56
Chapter II. Network (NIC/TOE)
GROPackets is the number of held packets. Those are candidate packets held by the kernel to
be processed individually or to be merged to larger packets. This number is usually zero.
GROMerged is the number of packets that merged to larger packets. Usually this number
increases if there is any continuous traffic stream present.
ethtool can also be used to switch off the GRO/LRO options when necessary:
[root@host]# ethtool -K eth6 gro off
[root@host]# ethtool -k eth6
Offload parameters for eth6:
rx-checksumming: on
tx-checksumming: on
scatter-gather: on
tcp-segmentation-offload: on
udp-fragmentation-offload: off
generic-segmentation-offload: on
generic-receive-offload: off
large-receive-offload: off
The output above shows a disabled GRO.
Chelsio T5/T4 Unified Wire For LinuxPage 57
Chapter III. Virtual Function Network (vNIC)
III. Virtual Function Network (vNIC)
Chelsio T5/T4 Unified Wire For LinuxPage 58
Chapter III. Virtual Function Network (vNIC)
1. Introduction
The ever increasing network infrastructure of IT enterprises has lead to a phenomenal increase
in maintenance and operational costs. IT managers are forced to acquire more physical servers
and other data center resources to satisfy storage and network demands. To solve the Network
and I/O overhead, users are opting for server virtualization which consolidates I/O workloads
onto lesser physical servers thus resulting in efficient, dynamic and economical data center
environments. Other benefits of Virtualization include improved disaster recovery, server
portability, cloud computing, Virtual Desktop Infrastructure (VDI), etc.
Chelsio’s T5 and T4 Unified Wire family of Adapters deliver increased bandwidth, lower latency
and lower power with virtualization features to maximize cloud scaling and utilization. The
adapters support SFP+ and 10BASE-T media. The adapters also provide full support for PCISIG SR-IOV to improve I/O performance on a virtualized system. User can configure up to 64
Virtual and 8 Physical functions (with 4 PFs as SR-IOV capable) along with 336 virtual MAC
addresses.
1.1. Hardware Requirements
1.1.1. Supported Adapters
The following are the currently shipping Chelsio Adapters that are compatible with the Chelsio
vNIC driver:
T502-BT
T580-CR
T520-LL-CR
T520-CR
T522-CR
T580-LP-CR
T540-CR
T420-CR
T440-CR
T422-CR
T420-SO-CR
T404-BT
T440-LP-CR
T420-BT
T420-LL-CR
T420-CX
Chelsio T5/T4 Unified Wire For LinuxPage 59
Chapter III. Virtual Function Network (vNIC)
1.2. Software Requirements
1.2.1. Linux Requirements
Currently the vNIC driver is available for the following versions:
Redhat Enterprise Linux 5 update 9 kernel (RHEL5.9), 2.6.18-348.el5*
Redhat Enterprise Linux 5 update 10 kernel (RHEL5.10), 2.6.18-371.el5*
Redhat Enterprise Linux 6 update 4 kernel (RHEL6.4), 2.6.32-358.el6
Redhat Enterprise Linux 6 update 5 kernel (RHEL6.5), 2.6.32-431.el6*
Suse Linux Enterprise Server 11 SP1 kernel (SLES11SP1), 2.6.32.12-0.7
Suse Linux Enterprise Server 11 SP2 kernel (SLES11SP2), 3.0.13-0.27
Suse Linux Enterprise Server 11 SP3 kernel (SLES11SP3), 3.0.76-0.11
Ubuntu 12.04, 3.2.0-23
Ubuntu 12.04.2, 3.5.0-23*
Kernel.org linux-3.4
Kernel.org linux-3.6*
Kernel.org linux-3.7
Kernel.org linux-3.8*
Other kernel versions have not been tested and are not guaranteed to work.
* Limited QA performed.
Chelsio T5/T4 Unified Wire For LinuxPage 60
Chapter III. Virtual Function Network (vNIC)
2. Software/Driver Loading
The vNIC driver must be loaded or unloaded on the Guest OS by the root user. Any attempt to
load the driver as a regular user will fail.
2.1. Loading the driver
To load the driver, run the following command:
[root@host]# modprobe cxgb4vf
Chelsio T5/T4 Unified Wire For LinuxPage 61
Chapter III. Virtual Function Network (vNIC)
3. Software/Driver Unloading
3.1. Unloading the driver
To unload the driver, execute the following command:
[root@host]# rmmod cxgb4vf
Chelsio T5/T4 Unified Wire For LinuxPage 62
Chapter III. Virtual Function Network (vNIC)
4. Software/Driver Configuration and Fine-tuning
4.1. Instantiate Virtual Functions
To instantiate Chelsio Virtual Functions, please refer to the Network (NIC/TOE) section (click
here)
Chelsio T5/T4 Unified Wire For LinuxPage 63
Chapter IV. iWARP (RDMA)
IV. iWARP (RDMA)
Chelsio T5/T4 Unified Wire For LinuxPage 64
Chapter IV. iWARP (RDMA)
1. Introduction
Chelsio’s T5/T4 engine implements a feature rich RDMA implementation which adheres to the
IETF standards with optional markers and MPA CRC-32C.
The iWARP RDMA operation benefits from the virtualization, traffic management and QoS
mechanisms provided by T5/T4 engine. It is possible to ACL process iWARP RDMA packets. It
is also possible to rate control the iWARP traffic on a per-connection or per-class basis, and to
give higher priority to QPs that implement distributed locking mechanisms. The iWARP
operation also benefits from the high performance and low latency TCP implementation in the
offload engine.
1.1. Hardware Requirements
1.1.1. Supported Adapters
The following are the currently shipping Chelsio Adapters that are compatible with Chelsio
iWARP driver:
T502-BT
T580-CR
T520-LL-CR
T520-CR
T522-CR
T580-LP-CR
T540-CR
T420-CR
T440-CR
T422-CR
T404-BT
T440-LP-CR
T420-LL-CR
T420-CX
1.2. Software Requirements
1.2.1. Linux Requirements
Currently the iWARP driver is available for the following versions:
Redhat Enterprise Linux 5 update 9 kernel (RHEL5.9), 2.6.18-348.el5*
Redhat Enterprise Linux 5 update 10 kernel (RHEL5.10), 2.6.18-371.el5*
Redhat Enterprise Linux 6 update 4 kernel (RHEL6.4), 2.6.32-358.el6
Chelsio T5/T4 Unified Wire For LinuxPage 65
Chapter IV. iWARP (RDMA)
Redhat Enterprise Linux 6 update 5 kernel (RHEL6.5), 2.6.32-431.el6*
Suse Linux Enterprise Server 11 SP1 kernel (SLES11SP1), 2.6.32.12-0.7
Suse Linux Enterprise Server 11 SP2 kernel (SLES11SP2), 3.0.13-0.27 *
Suse Linux Enterprise Server 11 SP3 kernel (SLES11SP3), 3.0.76-0.11
Ubuntu 12.04, 3.2.0-23
Kernel.org linux-3.4
Kernel.org linux-3.6*
Kernel.org linux-3.7
Kernel.org linux-3.8*
Kernel.org linux-3.9*
Kernel.org linux-3.10*
Kernel.org linux-3.11*
Kernel.org linux-3.12*
Kernel.org linux-3.13*
Other kernel versions have not been tested and are not guaranteed to work
*Limited QA performed
Chelsio T5/T4 Unified Wire For LinuxPage 66
Chapter IV. iWARP (RDMA)
2. Software/Driver Loading
2.1. Compiling and Loading iWARP driver
The driver must be loaded by the root user. Any attempt to load the driver as a regular user will
fail.
Change your current working directory to driver package directory and run the following
command :
[root@host]# make
[root@host]# make install
To load the iWARP driver we need to load the NIC driver and core RDMA drivers first. Run
To unload the iWARP driver, run the following command:
[root@host]# rmmod iw_cxgb4
Chelsio T5/T4 Unified Wire For LinuxPage 68
Chapter IV. iWARP (RDMA)
4. Software/Driver Configuration and Fine-tuning
4.1. Testing connectivity with ping and rping
Load the NIC, iWARP & core RDMA modules as mentioned in Software/Driver Loading
section. After which, you will see two or four ethernet interfaces for the T5/T4 device. Configure
them with an appropriate ip address, netmask, etc. You can use the Linux ping command to test
basic connectivity via the T5/T4 interface. To test RDMA, use the rping command that is
included in the librdmacm-utils RPM:
Run the following command on the server machine:
[root@host]# rping -s -a server_ip_addr -p 9999
Run the following command on the client machine:
[root@host]# rping -c –Vv -C10 -a server_ip_addr -p 9999
4.2.1. DAPL Library configuration for Intel MPI and Platform MPI
To run Intel MPI over RDMA interface, DAPL 2.0 should be set up as follows:
Enable the Chelsio device by adding an entry at the beginning of the /etc/dat.conf file for the
Chelsio interface. For instance, if your Chelsio interface name is eth2, then the following line
adds a DAT version 2.0 device named “chelsio2" for that interface:
User needs to set up authentication on the user account on all systems in the cluster to allow
user to remotely logon or executing commands without password.
Quick steps to set up user authentication:
i. Change to user home directory
[root@host]# cd
ii. Generate authentication key
[root@host]# ssh-keygen -t rsa
iii. Hit [Enter] upon prompting to accept default setup and empty password phrase
To enable multithreading, add “--enable-mpi-thread-multiple” and
“--with-threads=posix” parameters to the above configure command.
Note
The performance is best with NIC MTU set to 9000 bytes.
Open MPI (Installation and Setup)
Open MPI iWARP support is only available in Open MPI version 1.3 or greater.
Open MPI will work without any specific configuration via the openib btl. Users wishing to
performance tune the configurable options may wish to inspect the receive queue values. Those
can be found in the "Chelsio T4" section of mca-btl-openib-device-params.ini. Follow the
steps mentioned below to install and configure Open MPI.
i. If not alreay done, install mpi-selector tool.
ii. Download the latest stable/feature version of openMPI from OpenMPI website
,http://www.open-mpi.org
iii. Untar and change your current working directory to openMPI package directory.
iv. Configure and install as:
[root@host]# ./configure --with-openib=/usr CC=gcc CXX=g++ F77=gfortran
FC=gfortran --enable-mpirun-prefix-by-default --prefix=/usr/mpi/gcc/openmpix.y.z/ --with-openib-libdir=/usr/lib64/ --libdir=/usr/mpi/gcc/openmpix.y.z/lib64/ --with-contrib-vt-flags=--disable-iotrace
[root@host]# make
[root@host]# make install
The above step will install openMPI in /usr/mpi/gcc/openmpi-x.y.z/
Chelsio T5/T4 Unified Wire For LinuxPage 72
Chapter IV. iWARP (RDMA)
v. Next, create a shell script , mpivars.csh, with the following entry:
# path
if ("" == "`echo $path | grep /usr/mpi/gcc/openmpi-x.y.z/bin`") then
set path=(/usr/mpi/gcc/openmpi-x.y.z/bin $path)
endif
# LD_LIBRARY_PATH
if ("1" == "$?LD_LIBRARY_PATH") then
if ("$LD_LIBRARY_PATH" !~ */usr/mpi/gcc/openmpi-x.y.z/lib64*) then
setenv LD_LIBRARY_PATH /usr/mpi/gcc/openmpix.y.z/lib64:${LD_LIBRARY_PATH}
endif
else
setenv LD_LIBRARY_PATH /usr/mpi/gcc/openmpi-x.y.z/lib64
endif
i. Download the latest MVAPICH2 software package from http://mvapich.cse.ohio-state.edu/
ii. Untar and change your current working directory to MVAPICH2 package directory.
iii. Configure and install as:
[root@host]# ./configure --prefix=/usr/mpi/gcc/mvapich2-x.y/ --withdevice=ch3:mrail --with-rdma=gen2 --enable-shared --with-iblibpath=/usr/lib64/ -enable-rdma-cm --libdir=/usr/mpi/gcc/mvapich2-x.y/lib64
[root@host]# make
[root@host]# make install
The above step will install MVAPICH2 in /usr/mpi/gcc/mvapich2-x.y/
Chelsio T5/T4 Unified Wire For LinuxPage 74
Chapter IV. iWARP (RDMA)
iv. Next, create a shell script , mpivars.csh, with the following entry:
# path
if ("" == "`echo $path | grep /usr/mpi/gcc/mvapich2-x.y/bin`") then
set path=(/usr/mpi/gcc/mvapich2-x.y/bin $path)
endif
# LD_LIBRARY_PATH
if ("1" == "$?LD_LIBRARY_PATH") then
if ("$LD_LIBRARY_PATH" !~ */usr/mpi/gcc/mvapich2-x.y/lib64*) then
x. Logut and log back in.
xi. Populate mpd.hosts with node names.
xii. On each node, create /etc/mv2.conf with a single line containing the IP address of the local
T4/T5 interface. This is how MVAPICH2 picks which interface to use for RDMA traffic.
4.2.4. Building MPI tests
i. Download Intel’s MPI Benchmarks from http://software.intel.com/en-us/articles/intel-mpi-
benchmarks
ii. Untar and change your current working directory to src directory.
iii. Edit make_mpich file and set MPI_HOME variable to the MPI which you want to build the
benchmarks tool against. For example, in case of openMPI-1.6.4 set the variable as:
MPI_HOME=/usr/mpi/gcc/openmpi-1.6.4/
Chelsio T5/T4 Unified Wire For LinuxPage 76
Chapter IV. iWARP (RDMA)
For OpenMPI/RDMA clusters with node counts greater than or equal to 8 nodes,
and process counts greater than or equal to 64, you may experience the
following RDMA address resolution error when running MPI jobs with the default
OpenMPI settings:
Note
iv. Next, build and install the benchmarks using:
[root@host]# gmake -f make_mpich
The above step will install IMB-MPI1, IMB-IO and IMB-EXT benchmarks in the current working
directory (i.e. src).
v. Change your working directory to the MPI installation directory. In case of OpenMPI, it will
be /usr/mpi/gcc/openmpi-x.y.z/
vi. Create a directory called tests and then another directory called imb under tests.
vii. Copy the benchmarks built and installed in step (iv) to the imb directory.
viii. Follow steps (v), (vi) and (vii) for all the nodes.
Chelsio WD-UDP (Wire Direct-User Datagram Protocol) with Multicast is a user-space UDP
stack with Multicast address reception and socket acceleration that enables users to run their
existing UDP socket applications unmodified.
It features software modules that enable direct wire access from user space to the Chelsio
T5/T4 network adapter with complete bypass of the kernel, which results in an ultra-low latency
40/10Gb Ethernet solution for high frequency trading and other delay-sensitive applications.
1.1. Hardware Requirements
1.1.1. Supported Adapters
The following are the currently shipping Chelsio Adapters that are compatible with Chelsio WDUDP driver:
To unload the WD-UDP driver, run the following command:
[root@host]# rmmod iw_cxgb4
Chelsio T5/T4 Unified Wire For LinuxPage 84
Chapter V. WD-UDP
4. Software/Driver Configuration and Fine-tuning
4.1. Accelerating UDP Socket communications
The libcxgb4_sock library is a LD_PRELOAD-able library that accelerates UDP Socket
communications transparently and without recompilation of the user application. This section
describes how to use libcxgb4_sock.
By preloading libcxgb4_sock, all sockets created by the application are intercepted and possibly
accelerated based on the user’s configuration. Once accelerated, data for the UDP endpoint are
transmitted or received via HW queues allocated specifically for the accelerated endpoint,
bypassing the kernel, the host networking stack and sockets framework, and enabling ultra-low
latency and high bandwidth utilization.
Due to HW resource limitations, only a small number of queues can be allocated for UDP
acceleration. Therefore only performance critical UDP applications should use libcxgb4_sock.
Only 64 IPv4 UDP sockets / 28 IPv6 UDP Sockets can be accelerated per Chelsio T5/T4
device used.
4.1.1. Application Requirements
Certain application behavior is not supported by libcxb4_sock in this release. If your application
does any of the following, it will not work with libcxgb4_sock:
Calling fork() after creating UDP sockets and using the UDP socket in the child process.
Using multiple threads on a single UDP socket without serialization. For instance, having
one thread sending concurrently with another thread receiving. If your application does this,
you need to serialize these paths with a spin or mutex lock.
Only 1 UDP endpoint is allowed to bind to a given port per host. So if you have multiple
processes on the same host binding to the same UDP port number, you cannot use
libcxgb4_sock.
Applications must have root privileges to use libcxgb4_sock.
Applications requiring bonded T5/T4 interfaces are not currently supported.
The performance benefit observed with libcxgb4_sockwill vary based on your application’s
behavior. While all UDP IO is handled properly, only certain datagrams are accelerated. Non
accelerated IO is handled by libcxgb4_sock via the host networking stack seamlessly. Both
Unicast and Multicast datagrams can be accelerated, but the datagrams must meet the
following criteria:
Non fragmented. In other words, they fit in a single IP datagram that is <= the T5/T4 device
MTU.
Routed through the T5/T4 acceleration device. If the ingress datagram arrives via a device
other than the T5/T4 acceleration device, then it will not utilize the acceleration path. On
Chelsio T5/T4 Unified Wire For LinuxPage 85
Chapter V. WD-UDP
If you encounter error while using wdload on kernels built on RHEL 5.x
distribution, then run the above command as :
egress, if the destination IP address will not route out via the T5/T4 device, then it too will
not be accelerated.
4.1.2. Using libcxgb4_sock
The libcxgb4_sock library utilizes the Linux RDMA Verbs subsystem, and thus requires the
RDMA modules be loaded. Ensure that your systems load the iw_cxgb4 and rdma_ucm
modules:
The above command will generate an end point file, libcxgb4_sock.conf at /etc/. Parameters
like interface name and port number can be changed in this file.
Preloading manually
Create a configuration file that defines which UDP endpoints should be accelerated, their vlan
and priority if any, as well as which T5/T4 interface/port should be used. The file
/etc/libcxgb4_sock.conf contains these endpoint entries. Create this file on all systems
In order to offload IPv6 UDP sockets, please select “low latency networking” as
T5/T4 configuration tuning option during installation.
Note
# e.g.
# endpoint {
# interface=eth2.5
# port = 8000 vlan = 5 priority=1
# }
# endpoint { interface=eth2 port=9999}
#
# endpoints that bind to port 0 (requesting the host allocate a port)
# can be accelerated with port=0:
#
# endpoint {interface=eth1 port=0}
#
Assume your T5/T4 interface is eth2. To accelerate all applications that preload libcxgb4_sock
using eth2, you only need one entry in /etc/libcxgb4_sock.conf:
endpoint {interface=eth2 port=0}
If you have eth2 and eth3 configured for example, you can define certain endpoints to eth2 and
others to eth3:
For VLAN support, create your VLANs using the normal OS service (like vconfig, for example),
then add entries to define the VLAN and priority for each endpoint to be accelerated:
The udp benchmark from the hpcbench suite can be used to show the benefits of
libcxgb4_sock. The hpcbench suite can be found at:
Source: http://hpcbench.sourceforge.net/index.html
Sample: http://hpcbench.sourceforge.net/udp.html
The nodes in this example, r9 and r10, have T5/T4 eth1 configured and the ports are connected
To get better performance with WD-UDP using the 2.6.18 kernel, load the iw_cxgb4 modules
with the ocqp_support=0 parameter. For example,
modprobe iw_cxgb4 ocqp_support=0
4.1.7. Determining if the application is being offloaded
To see if the application is being offloaded, open a window on one of the machines, and run
tcpdump against the Chelsio interface. If you see minimal UDP output on the interface, then the
UDP traffic is being properly offloaded.
Chelsio T5/T4 Unified Wire For LinuxPage 90
Chapter VI. WD-TOE
VI. WD-TOE
Chelsio T5/T4 Unified Wire For LinuxPage 91
Chapter VI. WD-TOE
1. Introduction
Chelsio WD-TOE (Wire Direct-Transmission Control Protocol) with a user-space TCP stack
enables users to run their existing TCP socket applications unmodified.
It features software modules that enable direct wire access from user space to the Chelsio
T5/T4 network adapter with complete bypass of the kernel, which results in a low latency 10Gb
Ethernet solution for high frequency trading and other delay-sensitive applications.
1.1. Hardware Requirements
1.1.1. Supported Adapters
The following are the currently shipping Chelsio Adapters that are compatible with the WD-TOE
driver.
Currently the WD-TOE driver is available for the following version(s):
Redhat Enterprise Linux 5 update 9 kernel (RHEL5.9), 2.6.18-348.el5*
Redhat Enterprise Linux 5 update 10 kernel (RHEL5.10), 2.6.18-371.el5*
Redhat Enterprise Linux 6 update 4 kernel (RHEL6.4), 2.6.32-358.el6
Redhat Enterprise Linux 6 update 5 kernel (RHEL6.5), 2.6.32-431.el6*
Suse Linux Enterprise Server 11 SP1 kernel (SLES11SP1), 2.6.32.12-0.7*
Chelsio T5/T4 Unified Wire For LinuxPage 92
Chapter VI. WD-TOE
Suse Linux Enterprise Server 11 SP2 kernel (SLES11SP2), 3.0.13-0.27
Suse Linux Enterprise Server 11 SP3 kernel (SLES11SP3), 3.0.76-0.11
Ubuntu 12.04.2, 3.5.0-23*
Kernel.org linux-3.4
Kernel.org linux-3.6
Kernel.org linux-3.7
Other kernel versions have not been tested and are not guaranteed to work.
*Limited QA performed
Chelsio T5/T4 Unified Wire For LinuxPage 93
Chapter VI. WD-TOE
2. Software/Driver Loading
Before proceeding, please ensure that the offload drivers are installed with WD-TOE support.
They are installed by default with Low Latency Networking, T5 Wire Direct Latency or T5 High Capacity WD configuration tuning Options. With any other configuration tuning option, the
installation needs to be customized.
The driver must be loaded by the root user. Any attempt to load the driver as a regular user will
fail.
This section describes how to install and configure iSCSI PDU Offload Target software for use
as a key element in your iSCSI SAN. The software runs on Linux-based systems that use
Chelsio or non-Chelsio based Ethernet adapters. However to guarantee highest performance,
Chelsio recommends using Chelsio adapters. Chelsio’s adapters include offerings that range
from stateless offload adapters (regular NIC) to the full line of TCP/IP Offload Engine (TOE)
adapters.
The software implements RFC 3720, the iSCSI standard of the IETF. The software has been
fully tested for compliance to that RFC and others and it has been exhaustively tested for
interoperability with the major iSCSI vendors.
The software implements most of the iSCSI protocol in software running in kernel mode on the
host with the remaining portion, which consists of the entire fast data path, in hardware when
used with Chelsio’s TOE adapters. When standard NIC Adapters are used the entire iSCSI
protocol is executed in software.
The performance of this iSCSI stack is outstanding and when used with Chelsio’s hardware it is
enhanced further. Because of the tight integration with Chelsio’s TOE adapters, this software
has a distinct performance advantage over the regular NIC. The entire solution, which includes
this software, Chelsio TOE hardware, an appropriate base computer system – including a high
end disk subsystem, has industry leading performance. This can be seen when the entire
solution is compared to others based on other technologies currently available on the market in
terms of throughput and IOPS.
1.1. Features
Chelsio’s iSCSI driver stack supports the iSCSI protocol in the Target mode. From henceforth
“iSCSI Software Entity” term refers to the iSCSI target.
The Chelsio iSCSI PDU Offload Target software provides the following high level features:
Expanded NIC Support
Chelsio TCP Offload Engine (TOE) Support
T5/T4 Based HBAs (T5/T4xx Series cards)
Chelsio Terminator ASIC Support
Offloads iSCSI Fast Data Path with Direct Data Placement (DDP)
Offloads iSCSI Header and Data Digest Calculations
Offload Speeds at 1 Gb and 10 Gb
Offloads TCP/IP for NAS simultaneously with iSCSI
Block
Virtual Block (LVM, Software RAID, EVMS, etc.)
Built in RAM Disk
Built in zero copy RAM Disk
Supports iSCSI Boot Initiators
An Intuitive and Feature Rich Management CLI
This chapter will cover these features in detail.
1.2. Hardware Requirements
1.2.1. Supported Adapters
The following are the currently shipping Chelsio Adapters that are compatible with iSCSI PDU
Offload Target software:
T502-BT
T580-CR
T520-LL-CR
T520-CR
T522-CR
T580-LP-CR
T540-CR
T420-CR
T440-CR
T422-CR
T404-BT
T420-BCH
Chelsio T5/T4 Unified Wire For LinuxPage 99
Chapter VII. iSCSI PDU Offload Target
T440-LP-CR
T420-BT
T420-LL-CR
T420-CX
1.2.2. Adapter Requirements
The Chelsio iSCSI PDU Offload Target software can be used with or without hardware protocol
offload technology. There are four modes of operation using the iSCSI PDU Offload Target
software on Ethernet-based adapters:
Regular NIC – The software can be used in non-offloaded (regular NIC) mode. Please note
however that this is the least optimal mode of operating the software in terms of
performance.
TOE HW Acceleration – In TOE mode the software takes advantage of the TCP/IP Offload
capability of Chelsio’s TOE adapter (without the additional benefit of iSCSI HW
acceleration).
iSCSI HW Acceleration– In addition to offloading the TCP/IP protocols in hardware (TOE),
this mode also takes advantage of Chelsio’s ASIC capability of hardware assisted iSCSI
data and header digest calculations as well as using the direct data placement (DDP)
feature.
Mix of iSCSI HW Acceleration and TOE HW Acceleration – Using a special software mode
the stack can be configured to change between iSCSI acceleration or just TOE acceleration,
depending if digests are used or not.
1.2.3. Storage Requirements
When using the Chelsio iSCSI target, a minimum of one hardware storage device is required.
This device can be any of the device types that are supported (block, virtual block, RAM disk).
Multiple storage devices are allowed by configuring the devices to one target or the devices to
multiple targets. The software allows multiple targets to share the same device but use caution
when doing this.
Chelsio’s implementation of the target iSCSI stack has flexibility to accommodate a large range
of configurations. For quick testing, using a RAM Disk as the block storage device works nicely.
For deployment in a production environment a more sophisticated system would be needed.
That typically consists of a system with one or more storage controllers with multiple disk drives
attached running software or hardware based RAID.
Chelsio T5/T4 Unified Wire For LinuxPage 100
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.