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