 e48354ce07
			
		
	
	
	e48354ce07
	
	
	
		
			
			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>
		
			
				
	
	
		
			64 lines
		
	
	
	
		
			1.7 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
	
		
			1.7 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef ISCSI_TARGET_STAT_H
 | |
| #define ISCSI_TARGET_STAT_H
 | |
| 
 | |
| /*
 | |
|  * For struct iscsi_tiqn->tiqn_wwn default groups
 | |
|  */
 | |
| extern struct config_item_type iscsi_stat_instance_cit;
 | |
| extern struct config_item_type iscsi_stat_sess_err_cit;
 | |
| extern struct config_item_type iscsi_stat_tgt_attr_cit;
 | |
| extern struct config_item_type iscsi_stat_login_cit;
 | |
| extern struct config_item_type iscsi_stat_logout_cit;
 | |
| 
 | |
| /*
 | |
|  * For struct iscsi_session->se_sess default groups
 | |
|  */
 | |
| extern struct config_item_type iscsi_stat_sess_cit;
 | |
| 
 | |
| /* iSCSI session error types */
 | |
| #define ISCSI_SESS_ERR_UNKNOWN		0
 | |
| #define ISCSI_SESS_ERR_DIGEST		1
 | |
| #define ISCSI_SESS_ERR_CXN_TIMEOUT	2
 | |
| #define ISCSI_SESS_ERR_PDU_FORMAT	3
 | |
| 
 | |
| /* iSCSI session error stats */
 | |
| struct iscsi_sess_err_stats {
 | |
| 	spinlock_t	lock;
 | |
| 	u32		digest_errors;
 | |
| 	u32		cxn_timeout_errors;
 | |
| 	u32		pdu_format_errors;
 | |
| 	u32		last_sess_failure_type;
 | |
| 	char		last_sess_fail_rem_name[224];
 | |
| } ____cacheline_aligned;
 | |
| 
 | |
| /* iSCSI login failure types (sub oids) */
 | |
| #define ISCSI_LOGIN_FAIL_OTHER		2
 | |
| #define ISCSI_LOGIN_FAIL_REDIRECT	3
 | |
| #define ISCSI_LOGIN_FAIL_AUTHORIZE	4
 | |
| #define ISCSI_LOGIN_FAIL_AUTHENTICATE	5
 | |
| #define ISCSI_LOGIN_FAIL_NEGOTIATE	6
 | |
| 
 | |
| /* iSCSI login stats */
 | |
| struct iscsi_login_stats {
 | |
| 	spinlock_t	lock;
 | |
| 	u32		accepts;
 | |
| 	u32		other_fails;
 | |
| 	u32		redirects;
 | |
| 	u32		authorize_fails;
 | |
| 	u32		authenticate_fails;
 | |
| 	u32		negotiate_fails;	/* used for notifications */
 | |
| 	u64		last_fail_time;		/* time stamp (jiffies) */
 | |
| 	u32		last_fail_type;
 | |
| 	int		last_intr_fail_ip_family;
 | |
| 	unsigned char	last_intr_fail_ip_addr[IPV6_ADDRESS_SPACE];
 | |
| 	char		last_intr_fail_name[224];
 | |
| } ____cacheline_aligned;
 | |
| 
 | |
| /* iSCSI logout stats */
 | |
| struct iscsi_logout_stats {
 | |
| 	spinlock_t	lock;
 | |
| 	u32		normal_logouts;
 | |
| 	u32		abnormal_logouts;
 | |
| } ____cacheline_aligned;
 | |
| 
 | |
| #endif   /*** ISCSI_TARGET_STAT_H ***/
 |