1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
/*
* Copyright (c) 2005-2009 Brocade Communications Systems, Inc.
* All rights reserved
* www.brocade.com
*
* Linux driver for Brocade Fibre Channel Host Bus Adapter.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License (GPL) Version 2 as
* published by the Free Software Foundation
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*/
#ifndef __BFA_DEFS_ITNIM_H__
#define __BFA_DEFS_ITNIM_H__
#include <bfa_os_inc.h>
#include <protocol/types.h>
/**
* FCS itnim states
*/
enum bfa_itnim_state {
BFA_ITNIM_OFFLINE = 0, /* offline */
BFA_ITNIM_PRLI_SEND = 1, /* prli send */
BFA_ITNIM_PRLI_SENT = 2, /* prli sent */
BFA_ITNIM_PRLI_RETRY = 3, /* prli retry */
BFA_ITNIM_HCB_ONLINE = 4, /* online callback */
BFA_ITNIM_ONLINE = 5, /* online */
BFA_ITNIM_HCB_OFFLINE = 6, /* offline callback */
BFA_ITNIM_INITIATIOR = 7, /* initiator */
};
struct bfa_itnim_latency_s {
u32 min;
u32 max;
u32 count;
u32 clock_res;
u32 avg;
u32 rsvd;
};
struct bfa_itnim_hal_stats_s {
u32 onlines; /* ITN nexus onlines (PRLI done) */
u32 offlines; /* ITN Nexus offlines */
u32 creates; /* ITN create requests */
u32 deletes; /* ITN delete requests */
u32 create_comps; /* ITN create completions */
u32 delete_comps; /* ITN delete completions */
u32 sler_events; /* SLER (sequence level error
* recovery) events */
u32 ioc_disabled; /* Num IOC disables */
u32 cleanup_comps; /* ITN cleanup completions */
u32 tm_cmnds; /* task management(TM) cmnds sent */
u32 tm_fw_rsps; /* TM cmds firmware responses */
u32 tm_success; /* TM successes */
u32 tm_failures; /* TM failures */
u32 tm_io_comps; /* TM IO completions */
u32 tm_qresumes; /* TM queue resumes (after waiting
* for resources)
*/
u32 tm_iocdowns; /* TM cmnds affected by IOC down */
u32 tm_cleanups; /* TM cleanups */
u32 tm_cleanup_comps;
/* TM cleanup completions */
u32 ios; /* IO requests */
u32 io_comps; /* IO completions */
u64 input_reqs; /* INPUT requests */
u64 output_reqs; /* OUTPUT requests */
};
/**
* FCS remote port statistics
*/
struct bfa_itnim_stats_s {
u32 onlines; /* num rport online */
u32 offlines; /* num rport offline */
u32 prli_sent; /* num prli sent out */
u32 fcxp_alloc_wait;/* num fcxp alloc waits */
u32 prli_rsp_err; /* num prli rsp errors */
u32 prli_rsp_acc; /* num prli rsp accepts */
u32 initiator; /* rport is an initiator */
u32 prli_rsp_parse_err; /* prli rsp parsing errors */
u32 prli_rsp_rjt; /* num prli rsp rejects */
u32 timeout; /* num timeouts detected */
u32 sler; /* num sler notification from BFA */
u32 rsvd;
struct bfa_itnim_hal_stats_s hal_stats;
};
/**
* FCS itnim attributes returned in queries
*/
struct bfa_itnim_attr_s {
enum bfa_itnim_state state; /* FCS itnim state */
u8 retry; /* data retransmision support */
u8 task_retry_id; /* task retry ident support */
u8 rec_support; /* REC supported */
u8 conf_comp; /* confirmed completion supp */
struct bfa_itnim_latency_s io_latency; /* IO latency */
};
/**
* BFA ITNIM events.
* Arguments below are in BFAL context from Mgmt
* BFA_ITNIM_AEN_NEW: [in]: None [out]: vf_id, lpwwn
* BFA_ITNIM_AEN_DELETE: [in]: vf_id, lpwwn, rpwwn (0 = all fcp4 targets),
* [out]: vf_id, ppwwn, lpwwn, rpwwn
* BFA_ITNIM_AEN_ONLINE: [in]: vf_id, lpwwn, rpwwn (0 = all fcp4 targets),
* [out]: vf_id, ppwwn, lpwwn, rpwwn
* BFA_ITNIM_AEN_OFFLINE: [in]: vf_id, lpwwn, rpwwn (0 = all fcp4 targets),
* [out]: vf_id, ppwwn, lpwwn, rpwwn
* BFA_ITNIM_AEN_DISCONNECT:[in]: vf_id, lpwwn, rpwwn (0 = all fcp4 targets),
* [out]: vf_id, ppwwn, lpwwn, rpwwn
*/
enum bfa_itnim_aen_event {
BFA_ITNIM_AEN_ONLINE = 1, /* Target online */
BFA_ITNIM_AEN_OFFLINE = 2, /* Target offline */
BFA_ITNIM_AEN_DISCONNECT = 3, /* Target disconnected */
};
/**
* BFA ITNIM event data structure.
*/
struct bfa_itnim_aen_data_s {
u16 vf_id; /* vf_id of the IT nexus */
u16 rsvd[3];
wwn_t ppwwn; /* WWN of its physical port */
wwn_t lpwwn; /* WWN of logical port */
wwn_t rpwwn; /* WWN of remote(target) port */
};
#endif /* __BFA_DEFS_ITNIM_H__ */
|