100 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			100 lines
		
	
	
		
			2.5 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_QOS_H__
 | 
						|
#define __BFA_DEFS_QOS_H__
 | 
						|
 | 
						|
/**
 | 
						|
 * QoS states
 | 
						|
 */
 | 
						|
enum bfa_qos_state {
 | 
						|
	BFA_QOS_ONLINE = 1,		/*  QoS is online */
 | 
						|
	BFA_QOS_OFFLINE = 2,		/*  QoS is offline */
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
 * QoS  Priority levels.
 | 
						|
 */
 | 
						|
enum bfa_qos_priority {
 | 
						|
	BFA_QOS_UNKNOWN = 0,
 | 
						|
	BFA_QOS_HIGH  = 1,	/*  QoS Priority Level High */
 | 
						|
	BFA_QOS_MED  =  2,	/*  QoS Priority Level Medium */
 | 
						|
	BFA_QOS_LOW  =  3,	/*  QoS Priority Level Low */
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
 * QoS  bandwidth allocation for each priority level
 | 
						|
 */
 | 
						|
enum bfa_qos_bw_alloc {
 | 
						|
	BFA_QOS_BW_HIGH  = 60,	/*  bandwidth allocation for High */
 | 
						|
	BFA_QOS_BW_MED  =  30,	/*  bandwidth allocation for Medium */
 | 
						|
	BFA_QOS_BW_LOW  =  10,	/*  bandwidth allocation for Low */
 | 
						|
};
 | 
						|
 | 
						|
/**
 | 
						|
 * QoS attribute returned in QoS Query
 | 
						|
 */
 | 
						|
struct bfa_qos_attr_s {
 | 
						|
	enum bfa_qos_state state;		/*  QoS current state */
 | 
						|
	u32  total_bb_cr;  	 	/*  Total BB Credits */
 | 
						|
};
 | 
						|
 | 
						|
/**
 | 
						|
 * These fields should be displayed only from the CLI.
 | 
						|
 * There will be a separate BFAL API (get_qos_vc_attr ?)
 | 
						|
 * to retrieve this.
 | 
						|
 *
 | 
						|
 */
 | 
						|
#define  BFA_QOS_MAX_VC  16
 | 
						|
 | 
						|
struct bfa_qos_vc_info_s {
 | 
						|
	u8 vc_credit;
 | 
						|
	u8 borrow_credit;
 | 
						|
	u8 priority;
 | 
						|
	u8 resvd;
 | 
						|
};
 | 
						|
 | 
						|
struct bfa_qos_vc_attr_s {
 | 
						|
	u16  total_vc_count;                    /*  Total VC Count */
 | 
						|
	u16  shared_credit;
 | 
						|
	u32  elp_opmode_flags;
 | 
						|
	struct bfa_qos_vc_info_s vc_info[BFA_QOS_MAX_VC];  /*   as many as
 | 
						|
							    * total_vc_count */
 | 
						|
};
 | 
						|
 | 
						|
/**
 | 
						|
 * QoS statistics
 | 
						|
 */
 | 
						|
struct bfa_qos_stats_s {
 | 
						|
	u32	flogi_sent; 		/*  QoS Flogi sent */
 | 
						|
	u32	flogi_acc_recvd;	/*  QoS Flogi Acc received */
 | 
						|
	u32	flogi_rjt_recvd; /*  QoS Flogi rejects received */
 | 
						|
	u32	flogi_retries;		/*  QoS Flogi retries */
 | 
						|
 | 
						|
	u32	elp_recvd; 	   	/*  QoS ELP received */
 | 
						|
	u32	elp_accepted;       /*  QoS ELP Accepted */
 | 
						|
	u32	elp_rejected;       /*  QoS ELP rejected */
 | 
						|
	u32	elp_dropped;        /*  QoS ELP dropped  */
 | 
						|
 | 
						|
	u32	qos_rscn_recvd;     /*  QoS RSCN received */
 | 
						|
	u32	rsvd; 		/* padding for 64 bit alignment */
 | 
						|
};
 | 
						|
 | 
						|
#endif /* __BFA_DEFS_QOS_H__ */
 |