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