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