diff options
author | Nicholas Bellinger <nab@linux-iscsi.org> | 2011-07-23 02:43:04 -0400 |
---|---|---|
committer | Nicholas Bellinger <nab@linux-iscsi.org> | 2011-07-26 05:16:43 -0400 |
commit | e48354ce078c079996f89d715dfa44814b4eba01 (patch) | |
tree | 7a593b6dd4864073944160fe227aae5d54e587ab /drivers/target/iscsi/iscsi_target_auth.h | |
parent | 8304bbceee505742925b487fd8ea56e1f8b4b805 (diff) |
iscsi-target: Add iSCSI fabric support for target v4.1
The Linux-iSCSI.org target module is a full featured in-kernel
software implementation of iSCSI target mode (RFC-3720) for the
current WIP mainline target v4.1 infrastructure code for the v3.1
kernel. More information can be found here:
http://linux-iscsi.org/wiki/ISCSI
This includes support for:
* RFC-3720 defined request / response state machines and support for
all defined iSCSI operation codes from Section 10.2.1.2 using libiscsi
include/scsi/iscsi_proto.h PDU definitions
* Target v4.1 compatible control plane using the generic layout in
target_core_fabric_configfs.c and fabric dependent attributes
within /sys/kernel/config/target/iscsi/ subdirectories.
* Target v4.1 compatible iSCSI statistics based on RFC-4544 (iSCSI MIBS)
* Support for IPv6 and IPv4 network portals in M:N mapping to TPGs
* iSCSI Error Recovery Hierarchy support
* Per iSCSI connection RX/TX thread pair scheduling affinity
* crc32c + crc32c_intel SSEv4 instruction offload support using libcrypto
* CHAP Authentication support using libcrypto
* Conversion to use internal SGl allocation with iscsit_alloc_buffs() ->
transport_generic_map_mem_to_cmd()
(nab: Fix iscsi_proto.h struct scsi_lun usage from linux-next in commit:
iscsi: Use struct scsi_lun in iscsi structs instead of u8[8])
(nab: Fix 32-bit compile warnings)
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Andy Grover <agrover@redhat.com>
Acked-by: Roland Dreier <roland@kernel.org>
Signed-off-by: Nicholas A. Bellinger <nab@linux-iscsi.org>
Diffstat (limited to 'drivers/target/iscsi/iscsi_target_auth.h')
-rw-r--r-- | drivers/target/iscsi/iscsi_target_auth.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/drivers/target/iscsi/iscsi_target_auth.h b/drivers/target/iscsi/iscsi_target_auth.h new file mode 100644 index 000000000000..2f463c09626d --- /dev/null +++ b/drivers/target/iscsi/iscsi_target_auth.h | |||
@@ -0,0 +1,31 @@ | |||
1 | #ifndef _ISCSI_CHAP_H_ | ||
2 | #define _ISCSI_CHAP_H_ | ||
3 | |||
4 | #define CHAP_DIGEST_MD5 5 | ||
5 | #define CHAP_DIGEST_SHA 6 | ||
6 | |||
7 | #define CHAP_CHALLENGE_LENGTH 16 | ||
8 | #define CHAP_CHALLENGE_STR_LEN 4096 | ||
9 | #define MAX_RESPONSE_LENGTH 64 /* sufficient for MD5 */ | ||
10 | #define MAX_CHAP_N_SIZE 512 | ||
11 | |||
12 | #define MD5_SIGNATURE_SIZE 16 /* 16 bytes in a MD5 message digest */ | ||
13 | |||
14 | #define CHAP_STAGE_CLIENT_A 1 | ||
15 | #define CHAP_STAGE_SERVER_AIC 2 | ||
16 | #define CHAP_STAGE_CLIENT_NR 3 | ||
17 | #define CHAP_STAGE_CLIENT_NRIC 4 | ||
18 | #define CHAP_STAGE_SERVER_NR 5 | ||
19 | |||
20 | extern u32 chap_main_loop(struct iscsi_conn *, struct iscsi_node_auth *, char *, char *, | ||
21 | int *, int *); | ||
22 | |||
23 | struct iscsi_chap { | ||
24 | unsigned char digest_type; | ||
25 | unsigned char id; | ||
26 | unsigned char challenge[CHAP_CHALLENGE_LENGTH]; | ||
27 | unsigned int authenticate_target; | ||
28 | unsigned int chap_state; | ||
29 | } ____cacheline_aligned; | ||
30 | |||
31 | #endif /*** _ISCSI_CHAP_H_ ***/ | ||