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