Skip to contentSkip to conversation

cxgb4i v5: iscsi driver

PATCH In review [email protected] 1 participant 1 message Aug 17, 2010

Subsystems (4)
lore
Share & tools
lore
#0 lore raw

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.

---

 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
index a479b3b..efe66bb 100644
@@ -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
index 2703c6e..cb31f8c 100644
@@ -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
new file mode 100644
index 0000000..a470e38
@@ -0,0 +1 @@
+source "drivers/scsi/cxgbi/cxgb4i/Kconfig"
drivers/scsi/cxgbi/Makefile new file +1 -0
new file mode 100644
index 0000000..9e8f604
@@ -0,0 +1 @@
+obj-$(CONFIG_SCSI_CXGB4_ISCSI)	+= libcxgbi.o cxgb4i/
drivers/scsi/cxgbi/cxgb4i/Kbuild new file +3 -0
new file mode 100644
index 0000000..b9f4af7
@@ -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
new file mode 100644
index 0000000..bb94b39
@@ -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
new file mode 100644
index 0000000..342263b
@@ -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.