1 #ifndef ISCSI_TARGET_STAT_H
2 #define ISCSI_TARGET_STAT_H
3 
4 /*
5  * For struct iscsi_tiqn->tiqn_wwn default groups
6  */
7 extern struct config_item_type iscsi_stat_instance_cit;
8 extern struct config_item_type iscsi_stat_sess_err_cit;
9 extern struct config_item_type iscsi_stat_tgt_attr_cit;
10 extern struct config_item_type iscsi_stat_login_cit;
11 extern struct config_item_type iscsi_stat_logout_cit;
12 
13 /*
14  * For struct iscsi_session->se_sess default groups
15  */
16 extern struct config_item_type iscsi_stat_sess_cit;
17 
18 /* iSCSI session error types */
19 #define ISCSI_SESS_ERR_UNKNOWN		0
20 #define ISCSI_SESS_ERR_DIGEST		1
21 #define ISCSI_SESS_ERR_CXN_TIMEOUT	2
22 #define ISCSI_SESS_ERR_PDU_FORMAT	3
23 
24 /* iSCSI session error stats */
25 struct iscsi_sess_err_stats {
26 	spinlock_t	lock;
27 	u32		digest_errors;
28 	u32		cxn_timeout_errors;
29 	u32		pdu_format_errors;
30 	u32		last_sess_failure_type;
31 	char		last_sess_fail_rem_name[224];
32 } ____cacheline_aligned;
33 
34 /* iSCSI login failure types (sub oids) */
35 #define ISCSI_LOGIN_FAIL_OTHER		2
36 #define ISCSI_LOGIN_FAIL_REDIRECT	3
37 #define ISCSI_LOGIN_FAIL_AUTHORIZE	4
38 #define ISCSI_LOGIN_FAIL_AUTHENTICATE	5
39 #define ISCSI_LOGIN_FAIL_NEGOTIATE	6
40 
41 /* iSCSI login stats */
42 struct iscsi_login_stats {
43 	spinlock_t	lock;
44 	u32		accepts;
45 	u32		other_fails;
46 	u32		redirects;
47 	u32		authorize_fails;
48 	u32		authenticate_fails;
49 	u32		negotiate_fails;	/* used for notifications */
50 	u64		last_fail_time;		/* time stamp (jiffies) */
51 	u32		last_fail_type;
52 	int		last_intr_fail_ip_family;
53 	unsigned char	last_intr_fail_ip_addr[IPV6_ADDRESS_SPACE];
54 	char		last_intr_fail_name[224];
55 } ____cacheline_aligned;
56 
57 /* iSCSI logout stats */
58 struct iscsi_logout_stats {
59 	spinlock_t	lock;
60 	u32		normal_logouts;
61 	u32		abnormal_logouts;
62 } ____cacheline_aligned;
63 
64 #endif   /*** ISCSI_TARGET_STAT_H ***/
65