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__ */
 |