cxgb4i v5: iscsi driver
Subsystems (4)
PATCH v5 2/3 cxgb4i v5: iscsi driver
[PATCH v5 2/3] cxgb4i v5: iscsi driver
From: Karen Xie <[email protected]>
Added cxgb4i iSCSI driver.
This patch implements the cxgb4i iscsi connection acceleration for the open-iscsi initiator.
The cxgb4i driver offers the iscsi PDU based offload:
- digest insertion and verification
- payload direct-placement into host memory buffer.
Signed-off-by Karen Xie <[email protected]>
---
drivers/scsi/cxgbi/Kconfig | 1 drivers/scsi/cxgbi/Makefile | 1 drivers/scsi/cxgbi/cxgb4i/Kbuild | 3 drivers/scsi/cxgbi/cxgb4i/Kconfig | 7 drivers/scsi/cxgbi/cxgb4i/cxgb4i.c | 1600 ++++++++++++++++++++++++++++++++++++ drivers/scsi/cxgbi/cxgb4i/cxgb4i.h | 38 + 6 files changed, 1650 insertions(+), 0 deletions(-) create mode 100644 drivers/scsi/cxgbi/Kconfig create mode 100644 drivers/scsi/cxgbi/Makefile create mode 100644 drivers/scsi/cxgbi/cxgb4i/Kbuild create mode 100644 drivers/scsi/cxgbi/cxgb4i/Kconfig create mode 100644 drivers/scsi/cxgbi/cxgb4i/cxgb4i.c create mode 100644 drivers/scsi/cxgbi/cxgb4i/cxgb4i.h
drivers/scsi/Kconfig +1 -0
@@ -379,6 +379,7 @@ config ISCSI_BOOT_SYSFS say Y. Otherwise, say N. source "drivers/scsi/cxgb3i/Kconfig" +source "drivers/scsi/cxgbi/Kconfig" source "drivers/scsi/bnx2i/Kconfig" source "drivers/scsi/be2iscsi/Kconfig"
drivers/scsi/Makefile +1 -0
@@ -134,6 +134,7 @@ obj-$(CONFIG_SCSI_STEX) += stex.o obj-$(CONFIG_SCSI_MVSAS) += mvsas/ obj-$(CONFIG_PS3_ROM) += ps3rom.o obj-$(CONFIG_SCSI_CXGB3_ISCSI) += libiscsi.o libiscsi_tcp.o cxgb3i/ +obj-$(CONFIG_SCSI_CXGB4_ISCSI) += libiscsi.o libiscsi_tcp.o cxgbi/ obj-$(CONFIG_SCSI_BNX2_ISCSI) += libiscsi.o bnx2i/ obj-$(CONFIG_BE2ISCSI) += libiscsi.o be2iscsi/ obj-$(CONFIG_SCSI_PMCRAID) += pmcraid.o
drivers/scsi/cxgbi/Kconfig new file +1 -0
@@ -0,0 +1 @@ +source "drivers/scsi/cxgbi/cxgb4i/Kconfig"
drivers/scsi/cxgbi/Makefile new file +1 -0
@@ -0,0 +1 @@ +obj-$(CONFIG_SCSI_CXGB4_ISCSI) += libcxgbi.o cxgb4i/
drivers/scsi/cxgbi/cxgb4i/Kbuild new file +3 -0
@@ -0,0 +1,3 @@ +EXTRA_CFLAGS += -I$(srctree)/drivers/net/cxgb4 + +obj-$(CONFIG_SCSI_CXGB4_ISCSI) += cxgb4i.o
drivers/scsi/cxgbi/cxgb4i/Kconfig new file +7 -0
@@ -0,0 +1,7 @@ +config SCSI_CXGB4_ISCSI + tristate "Chelsio T4 iSCSI support" + depends on CHELSIO_T4_DEPENDS + select CHELSIO_T4 + select SCSI_ISCSI_ATTRS + ---help--- + This driver supports iSCSI offload for the Chelsio T4 devices.
drivers/scsi/cxgbi/cxgb4i/cxgb4i.c new file +1600 -0
1,600 lines not on this page · raw message
drivers/scsi/cxgbi/cxgb4i/cxgb4i.h new file +38 -0
@@ -0,0 +1,38 @@ +/* +* cxgb4i.h: Chelsio T4 iSCSI driver. +* +* Copyright (c) 2010 Chelsio Communications, Inc. +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation. +* +* Written by: Karen Xie ([email protected]) +* Written by: Rakesh Ranjan ([email protected]) +*/ + +#ifndef __CXGB4I_H__ +#define __CXGB4I_H__ + +#define CXGB4I_SCSI_HOST_QDEPTH 1024 +#define CXGB4I_MAX_CONN 16384 +#define CXGB4I_MAX_TARGET CXGB4I_MAX_CONN +#define CXGB4I_MAX_LUN 0x1000 + +/* for TX: a skb must have a headroom of at least TX_HEADER_LEN bytes */ +#define CXGB4I_TX_HEADER_LEN \ + (sizeof(struct fw_ofld_tx_data_wr) + sizeof(struct sge_opaque_hdr)) + +struct cpl_rx_data_ddp { +union opcode_tid ot; +__be16 urg; +__be16 len; +__be32 seq; +union { +__be32 nxt_seq; +__be32 ddp_report; + }; +__be32 ulp_crc; +__be32 ddpvld; +}; +#endif /* __CXGB4I_H__ */
Signature · 4 lines
You received this message because you are subscribed to the Google Groups "open-iscsi" group. To post to this group, send email to open-iscsi-/JYPxA39Uh5TLH3MbocFF+G/[email protected] To unsubscribe from this group, send email to open-iscsi+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/[email protected] For more options, visit this group at http://groups.google.com/group/open-iscsi?hl=en.