219 lines
4.8 KiB
C
219 lines
4.8 KiB
C
/*
|
|
* Copyright (c) 2005-2009 Brocade Communications Systems, Inc.
|
|
* All rights reserved.
|
|
*
|
|
* 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 __PHYPORT_DEFS_H__
|
|
#define __PHYPORT_DEFS_H__
|
|
|
|
#define BNA_TXF_ID_MAX 64
|
|
#define BNA_RXF_ID_MAX 64
|
|
|
|
/*
|
|
* Statistics
|
|
*/
|
|
|
|
/*
|
|
* TxF Frame Statistics
|
|
*/
|
|
struct bna_stats_txf {
|
|
u64 ucast_octets;
|
|
u64 ucast;
|
|
u64 ucast_vlan;
|
|
|
|
u64 mcast_octets;
|
|
u64 mcast;
|
|
u64 mcast_vlan;
|
|
|
|
u64 bcast_octets;
|
|
u64 bcast;
|
|
u64 bcast_vlan;
|
|
|
|
u64 errors;
|
|
u64 filter_vlan; /* frames filtered due to VLAN */
|
|
u64 filter_mac_sa; /* frames filtered due to SA check */
|
|
};
|
|
|
|
/*
|
|
* RxF Frame Statistics
|
|
*/
|
|
struct bna_stats_rxf {
|
|
u64 ucast_octets;
|
|
u64 ucast;
|
|
u64 ucast_vlan;
|
|
|
|
u64 mcast_octets;
|
|
u64 mcast;
|
|
u64 mcast_vlan;
|
|
|
|
u64 bcast_octets;
|
|
u64 bcast;
|
|
u64 bcast_vlan;
|
|
u64 frame_drops;
|
|
};
|
|
|
|
/*
|
|
* FC Tx Frame Statistics
|
|
*/
|
|
struct bna_stats_fc_tx {
|
|
u64 txf_ucast_octets;
|
|
u64 txf_ucast;
|
|
u64 txf_ucast_vlan;
|
|
|
|
u64 txf_mcast_octets;
|
|
u64 txf_mcast;
|
|
u64 txf_mcast_vlan;
|
|
|
|
u64 txf_bcast_octets;
|
|
u64 txf_bcast;
|
|
u64 txf_bcast_vlan;
|
|
|
|
u64 txf_parity_errors;
|
|
u64 txf_timeout;
|
|
u64 txf_fid_parity_errors;
|
|
};
|
|
|
|
/*
|
|
* FC Rx Frame Statistics
|
|
*/
|
|
struct bna_stats_fc_rx {
|
|
u64 rxf_ucast_octets;
|
|
u64 rxf_ucast;
|
|
u64 rxf_ucast_vlan;
|
|
|
|
u64 rxf_mcast_octets;
|
|
u64 rxf_mcast;
|
|
u64 rxf_mcast_vlan;
|
|
|
|
u64 rxf_bcast_octets;
|
|
u64 rxf_bcast;
|
|
u64 rxf_bcast_vlan;
|
|
};
|
|
|
|
/*
|
|
* RAD Frame Statistics
|
|
*/
|
|
struct cna_stats_rad {
|
|
u64 rx_frames;
|
|
u64 rx_octets;
|
|
u64 rx_vlan_frames;
|
|
|
|
u64 rx_ucast;
|
|
u64 rx_ucast_octets;
|
|
u64 rx_ucast_vlan;
|
|
|
|
u64 rx_mcast;
|
|
u64 rx_mcast_octets;
|
|
u64 rx_mcast_vlan;
|
|
|
|
u64 rx_bcast;
|
|
u64 rx_bcast_octets;
|
|
u64 rx_bcast_vlan;
|
|
|
|
u64 rx_drops;
|
|
};
|
|
|
|
/*
|
|
* BPC Tx Registers
|
|
*/
|
|
struct cna_stats_bpc_tx {
|
|
u64 tx_pause[8];
|
|
u64 tx_zero_pause[8]; /* Pause cancellation */
|
|
u64 tx_first_pause[8]; /* Pause initiation rather
|
|
*than retention */
|
|
};
|
|
|
|
/*
|
|
* BPC Rx Registers
|
|
*/
|
|
struct cna_stats_bpc_rx {
|
|
u64 rx_pause[8];
|
|
u64 rx_zero_pause[8]; /* Pause cancellation */
|
|
u64 rx_first_pause[8]; /* Pause initiation rather
|
|
*than retention */
|
|
};
|
|
|
|
/*
|
|
* MAC Rx Statistics
|
|
*/
|
|
struct cna_stats_mac_rx {
|
|
u64 frame_64; /* both rx and tx counter */
|
|
u64 frame_65_127; /* both rx and tx counter */
|
|
u64 frame_128_255; /* both rx and tx counter */
|
|
u64 frame_256_511; /* both rx and tx counter */
|
|
u64 frame_512_1023; /* both rx and tx counter */
|
|
u64 frame_1024_1518; /* both rx and tx counter */
|
|
u64 frame_1518_1522; /* both rx and tx counter */
|
|
u64 rx_bytes;
|
|
u64 rx_packets;
|
|
u64 rx_fcs_error;
|
|
u64 rx_multicast;
|
|
u64 rx_broadcast;
|
|
u64 rx_control_frames;
|
|
u64 rx_pause;
|
|
u64 rx_unknown_opcode;
|
|
u64 rx_alignment_error;
|
|
u64 rx_frame_length_error;
|
|
u64 rx_code_error;
|
|
u64 rx_carrier_sense_error;
|
|
u64 rx_undersize;
|
|
u64 rx_oversize;
|
|
u64 rx_fragments;
|
|
u64 rx_jabber;
|
|
u64 rx_drop;
|
|
};
|
|
|
|
/*
|
|
* MAC Tx Statistics
|
|
*/
|
|
struct cna_stats_mac_tx {
|
|
u64 tx_bytes;
|
|
u64 tx_packets;
|
|
u64 tx_multicast;
|
|
u64 tx_broadcast;
|
|
u64 tx_pause;
|
|
u64 tx_deferral;
|
|
u64 tx_excessive_deferral;
|
|
u64 tx_single_collision;
|
|
u64 tx_muliple_collision;
|
|
u64 tx_late_collision;
|
|
u64 tx_excessive_collision;
|
|
u64 tx_total_collision;
|
|
u64 tx_pause_honored;
|
|
u64 tx_drop;
|
|
u64 tx_jabber;
|
|
u64 tx_fcs_error;
|
|
u64 tx_control_frame;
|
|
u64 tx_oversize;
|
|
u64 tx_undersize;
|
|
u64 tx_fragments;
|
|
};
|
|
|
|
/*
|
|
* Complete statistics
|
|
*/
|
|
struct bna_stats {
|
|
struct cna_stats_mac_rx mac_rx_stats;
|
|
struct cna_stats_bpc_rx bpc_rx_stats;
|
|
struct cna_stats_rad rad_stats;
|
|
struct bna_stats_fc_rx fc_rx_stats;
|
|
struct cna_stats_mac_tx mac_tx_stats;
|
|
struct cna_stats_bpc_tx bpc_tx_stats;
|
|
struct bna_stats_fc_tx fc_tx_stats;
|
|
struct bna_stats_rxf rxf_stats[BNA_TXF_ID_MAX];
|
|
struct bna_stats_txf txf_stats[BNA_RXF_ID_MAX];
|
|
};
|
|
|
|
#endif
|