127 lines
		
	
	
	
		
			4.3 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			127 lines
		
	
	
	
		
			4.3 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
|   | /*
 | ||
|  |  * 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_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  */ | ||
|  | }; | ||
|  | 
 | ||
|  | /**
 | ||
|  |  * 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__ */
 |