1#ifndef ISCSI_TARGET_STAT_H
2#define ISCSI_TARGET_STAT_H
3
4/*
5 * For struct iscsi_tiqn->tiqn_wwn default groups
6 */
7extern struct config_item_type iscsi_stat_instance_cit;
8extern struct config_item_type iscsi_stat_sess_err_cit;
9extern struct config_item_type iscsi_stat_tgt_attr_cit;
10extern struct config_item_type iscsi_stat_login_cit;
11extern struct config_item_type iscsi_stat_logout_cit;
12
13/*
14 * For struct iscsi_session->se_sess default groups
15 */
16extern 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 */
25struct 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 */
42struct 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	struct sockaddr_storage last_intr_fail_sockaddr;
54	char		last_intr_fail_name[224];
55} ____cacheline_aligned;
56
57/* iSCSI logout stats */
58struct 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