Deleted Added
full compact
if_igb.c (209611) if_igb.c (209616)
1/******************************************************************************
2
3 Copyright (c) 2001-2010, Intel Corporation
4 All rights reserved.
5
6 Redistribution and use in source and binary forms, with or without
7 modification, are permitted provided that the following conditions are met:
8

--- 16 unchanged lines hidden (view full) ---

25 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30 POSSIBILITY OF SUCH DAMAGE.
31
32******************************************************************************/
1/******************************************************************************
2
3 Copyright (c) 2001-2010, Intel Corporation
4 All rights reserved.
5
6 Redistribution and use in source and binary forms, with or without
7 modification, are permitted provided that the following conditions are met:
8

--- 16 unchanged lines hidden (view full) ---

25 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30 POSSIBILITY OF SUCH DAMAGE.
31
32******************************************************************************/
33/*$FreeBSD: head/sys/dev/e1000/if_igb.c 209611 2010-06-30 17:26:47Z jfv $*/
33/*$FreeBSD: head/sys/dev/e1000/if_igb.c 209616 2010-06-30 21:05:51Z jfv $*/
34
35
36#ifdef HAVE_KERNEL_OPTION_HEADERS
37#include "opt_device_polling.h"
38#include "opt_inet.h"
39#include "opt_altq.h"
40#endif
41

--- 4806 unchanged lines hidden (view full) ---

4848 stats->hrmpc += E1000_READ_REG(hw, E1000_HRMPC);
4849
4850 stats->algnerrc += E1000_READ_REG(hw, E1000_ALGNERRC);
4851 stats->rxerrc += E1000_READ_REG(hw, E1000_RXERRC);
4852 stats->tncrs += E1000_READ_REG(hw, E1000_TNCRS);
4853 stats->cexterr += E1000_READ_REG(hw, E1000_CEXTERR);
4854 stats->tsctc += E1000_READ_REG(hw, E1000_TSCTC);
4855 stats->tsctfc += E1000_READ_REG(hw, E1000_TSCTFC);
34
35
36#ifdef HAVE_KERNEL_OPTION_HEADERS
37#include "opt_device_polling.h"
38#include "opt_inet.h"
39#include "opt_altq.h"
40#endif
41

--- 4806 unchanged lines hidden (view full) ---

4848 stats->hrmpc += E1000_READ_REG(hw, E1000_HRMPC);
4849
4850 stats->algnerrc += E1000_READ_REG(hw, E1000_ALGNERRC);
4851 stats->rxerrc += E1000_READ_REG(hw, E1000_RXERRC);
4852 stats->tncrs += E1000_READ_REG(hw, E1000_TNCRS);
4853 stats->cexterr += E1000_READ_REG(hw, E1000_CEXTERR);
4854 stats->tsctc += E1000_READ_REG(hw, E1000_TSCTC);
4855 stats->tsctfc += E1000_READ_REG(hw, E1000_TSCTFC);
4856 ifp = adapter->ifp;
4857
4858 ifp = adapter->ifp;
4859 ifp->if_collisions = stats->colc;
4860
4861 /* Rx Errors */
4862 ifp->if_ierrors = adapter->dropped_pkts + stats->rxerrc +
4863 stats->crcerrs + stats->algnerrc +
4864 stats->ruc + stats->roc + stats->mpc + stats->cexterr;

--- 5 unchanged lines hidden (view full) ---

4870 /* Driver specific counters */
4871 adapter->device_control = E1000_READ_REG(hw, E1000_CTRL);
4872 adapter->rx_control = E1000_READ_REG(hw, E1000_RCTL);
4873 adapter->int_mask = E1000_READ_REG(hw, E1000_IMS);
4874 adapter->eint_mask = E1000_READ_REG(hw, E1000_EIMS);
4875 adapter->packet_buf_alloc_tx =
4876 ((E1000_READ_REG(hw, E1000_PBA) & 0xffff0000) >> 16);
4877 adapter->packet_buf_alloc_rx =
4856
4857 ifp = adapter->ifp;
4858 ifp->if_collisions = stats->colc;
4859
4860 /* Rx Errors */
4861 ifp->if_ierrors = adapter->dropped_pkts + stats->rxerrc +
4862 stats->crcerrs + stats->algnerrc +
4863 stats->ruc + stats->roc + stats->mpc + stats->cexterr;

--- 5 unchanged lines hidden (view full) ---

4869 /* Driver specific counters */
4870 adapter->device_control = E1000_READ_REG(hw, E1000_CTRL);
4871 adapter->rx_control = E1000_READ_REG(hw, E1000_RCTL);
4872 adapter->int_mask = E1000_READ_REG(hw, E1000_IMS);
4873 adapter->eint_mask = E1000_READ_REG(hw, E1000_EIMS);
4874 adapter->packet_buf_alloc_tx =
4875 ((E1000_READ_REG(hw, E1000_PBA) & 0xffff0000) >> 16);
4876 adapter->packet_buf_alloc_rx =
4878 ((E1000_READ_REG(hw, E1000_PBA) & 0xffff);
4877 (E1000_READ_REG(hw, E1000_PBA) & 0xffff);
4879}
4880
4881
4882/**********************************************************************
4883 *
4884 * Initialize the VF board statistics counters.
4885 *
4886 **********************************************************************/

--- 51 unchanged lines hidden (view full) ---

4938 device_t dev = adapter->dev;
4939
4940 struct tx_ring *txr = adapter->tx_rings;
4941 struct rx_ring *rxr = adapter->rx_rings;
4942
4943 struct sysctl_ctx_list *ctx = device_get_sysctl_ctx(dev);
4944 struct sysctl_oid *tree = device_get_sysctl_tree(dev);
4945 struct sysctl_oid_list *child = SYSCTL_CHILDREN(tree);
4878}
4879
4880
4881/**********************************************************************
4882 *
4883 * Initialize the VF board statistics counters.
4884 *
4885 **********************************************************************/

--- 51 unchanged lines hidden (view full) ---

4937 device_t dev = adapter->dev;
4938
4939 struct tx_ring *txr = adapter->tx_rings;
4940 struct rx_ring *rxr = adapter->rx_rings;
4941
4942 struct sysctl_ctx_list *ctx = device_get_sysctl_ctx(dev);
4943 struct sysctl_oid *tree = device_get_sysctl_tree(dev);
4944 struct sysctl_oid_list *child = SYSCTL_CHILDREN(tree);
4946 struct e1000_hw_stats *stats = &adapter->stats;
4945 struct e1000_hw_stats *stats = adapter->stats;
4947
4948 struct sysctl_oid *stat_node, *queue_node, *int_node, *host_node;
4949 struct sysctl_oid_list *stat_list, *queue_list, *int_list, *host_list;
4950
4951#define QUEUE_NAME_LEN 32
4952 char namebuf[QUEUE_NAME_LEN];
4953
4954 /* Driver Statistics */

--- 34 unchanged lines hidden (view full) ---

4989
4990 for (int i = 0; i < adapter->num_queues; i++, txr++) {
4991 snprintf(namebuf, QUEUE_NAME_LEN, "queue%d", i);
4992 queue_node = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, namebuf,
4993 CTLFLAG_RD, NULL, "Queue Name");
4994 queue_list = SYSCTL_CHILDREN(queue_node);
4995
4996 SYSCTL_ADD_UINT(ctx, queue_list, OID_AUTO, "txd_head",
4946
4947 struct sysctl_oid *stat_node, *queue_node, *int_node, *host_node;
4948 struct sysctl_oid_list *stat_list, *queue_list, *int_list, *host_list;
4949
4950#define QUEUE_NAME_LEN 32
4951 char namebuf[QUEUE_NAME_LEN];
4952
4953 /* Driver Statistics */

--- 34 unchanged lines hidden (view full) ---

4988
4989 for (int i = 0; i < adapter->num_queues; i++, txr++) {
4990 snprintf(namebuf, QUEUE_NAME_LEN, "queue%d", i);
4991 queue_node = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, namebuf,
4992 CTLFLAG_RD, NULL, "Queue Name");
4993 queue_list = SYSCTL_CHILDREN(queue_node);
4994
4995 SYSCTL_ADD_UINT(ctx, queue_list, OID_AUTO, "txd_head",
4997 CTLFLAG_RD,
4998 E1000_READ_REG(&adapter->hw,
4999 E1000_TDH(txr->me)), 0,
4996 CTLFLAG_RD, &txr->tdh, 0,
5000 "Transmit Descriptor Head");
5001 SYSCTL_ADD_UINT(ctx, queue_list, OID_AUTO, "txd_tail",
4997 "Transmit Descriptor Head");
4998 SYSCTL_ADD_UINT(ctx, queue_list, OID_AUTO, "txd_tail",
5002 CTLFLAG_RD,
5003 E1000_READ_REG(&adapter->hw,
5004 E1000_TDT(txr->me))), 0,
4999 CTLFLAG_RD, &txr->tdt, 0,
5005 "Transmit Descriptor Tail");
5006 SYSCTL_ADD_QUAD(ctx, queue_list, OID_AUTO, "no_desc_avail",
5007 CTLFLAG_RD, &txr->no_desc_avail,
5008 "Queue No Descriptor Available");
5009 SYSCTL_ADD_QUAD(ctx, queue_list, OID_AUTO, "tx_packets",
5010 CTLFLAG_RD, &txr->tx_packets,
5011 "Queue Packets Transmitted");
5012 }

--- 38 unchanged lines hidden (view full) ---

5051 stat_list = SYSCTL_CHILDREN(stat_node);
5052
5053 /*
5054 ** VF adapter has a very limited set of stats
5055 ** since its not managing the metal, so to speak.
5056 */
5057 if (adapter->hw.mac.type == e1000_vfadapt) {
5058 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "good_pkts_recvd",
5000 "Transmit Descriptor Tail");
5001 SYSCTL_ADD_QUAD(ctx, queue_list, OID_AUTO, "no_desc_avail",
5002 CTLFLAG_RD, &txr->no_desc_avail,
5003 "Queue No Descriptor Available");
5004 SYSCTL_ADD_QUAD(ctx, queue_list, OID_AUTO, "tx_packets",
5005 CTLFLAG_RD, &txr->tx_packets,
5006 "Queue Packets Transmitted");
5007 }

--- 38 unchanged lines hidden (view full) ---

5046 stat_list = SYSCTL_CHILDREN(stat_node);
5047
5048 /*
5049 ** VF adapter has a very limited set of stats
5050 ** since its not managing the metal, so to speak.
5051 */
5052 if (adapter->hw.mac.type == e1000_vfadapt) {
5053 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "good_pkts_recvd",
5059 CTLFLAG_RD, &adapter->stats.gprc,
5054 CTLFLAG_RD, &stats->gprc,
5060 "Good Packets Received");
5061 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "good_pkts_txd",
5055 "Good Packets Received");
5056 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "good_pkts_txd",
5062 CTLFLAG_RD, &adapter->stats.gptc,
5057 CTLFLAG_RD, &stats->gptc,
5063 "Good Packets Transmitted");
5064 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "good_octets_recvd",
5058 "Good Packets Transmitted");
5059 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "good_octets_recvd",
5065 CTLFLAG_RD, &adapter->stats.gorc,
5060 CTLFLAG_RD, &stats->gorc,
5066 "Good Octets Received");
5067 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "good_octest_txd",
5061 "Good Octets Received");
5062 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "good_octest_txd",
5068 CTLFLAG_RD, &adapter->stats.gotc,
5063 CTLFLAG_RD, &stats->gotc,
5069 "Good Octest Transmitted");
5070 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "mcast_pkts_recvd",
5064 "Good Octest Transmitted");
5065 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "mcast_pkts_recvd",
5071 CTLFLAG_RD, &adapter->stats.mprc,
5066 CTLFLAG_RD, &stats->mprc,
5072 "Multicast Packets Received");
5073 return;
5074 }
5075
5076 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "excess_coll",
5077 CTLFLAG_RD, &stats->ecol,
5078 "Excessive collisions");
5079 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "single_coll",

--- 4 unchanged lines hidden (view full) ---

5084 "Multiple collisions");
5085 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "late_coll",
5086 CTLFLAG_RD, &stats->latecol,
5087 "Late collisions");
5088 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "collision_count",
5089 CTLFLAG_RD, &stats->colc,
5090 "Collision Count");
5091 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "symbol_errors",
5067 "Multicast Packets Received");
5068 return;
5069 }
5070
5071 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "excess_coll",
5072 CTLFLAG_RD, &stats->ecol,
5073 "Excessive collisions");
5074 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "single_coll",

--- 4 unchanged lines hidden (view full) ---

5079 "Multiple collisions");
5080 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "late_coll",
5081 CTLFLAG_RD, &stats->latecol,
5082 "Late collisions");
5083 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "collision_count",
5084 CTLFLAG_RD, &stats->colc,
5085 "Collision Count");
5086 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "symbol_errors",
5092 CTLFLAG_RD, &adapter->stats.symerrs,
5087 CTLFLAG_RD, &stats->symerrs,
5093 "Symbol Errors");
5094 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "sequence_errors",
5088 "Symbol Errors");
5089 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "sequence_errors",
5095 CTLFLAG_RD, &adapter->stats.sec,
5090 CTLFLAG_RD, &stats->sec,
5096 "Sequence Errors");
5097 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "defer_count",
5091 "Sequence Errors");
5092 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "defer_count",
5098 CTLFLAG_RD, &adapter->stats.dc,
5093 CTLFLAG_RD, &stats->dc,
5099 "Defer Count");
5100 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "missed_packets",
5094 "Defer Count");
5095 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "missed_packets",
5101 CTLFLAG_RD, &adapter->stats.mpc,
5096 CTLFLAG_RD, &stats->mpc,
5102 "Missed Packets");
5103 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "recv_no_buff",
5097 "Missed Packets");
5098 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "recv_no_buff",
5104 CTLFLAG_RD, &adapter->stats.rnbc,
5099 CTLFLAG_RD, &stats->rnbc,
5105 "Receive No Buffers");
5106 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "recv_undersize",
5100 "Receive No Buffers");
5101 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "recv_undersize",
5107 CTLFLAG_RD, &adapter->stats.ruc,
5102 CTLFLAG_RD, &stats->ruc,
5108 "Receive Undersize");
5109 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "recv_fragmented",
5103 "Receive Undersize");
5104 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "recv_fragmented",
5110 CTLFLAG_RD, &adapter->stats.rfc,
5105 CTLFLAG_RD, &stats->rfc,
5111 "Fragmented Packets Received ");
5112 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "recv_oversize",
5106 "Fragmented Packets Received ");
5107 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "recv_oversize",
5113 CTLFLAG_RD, &adapter->stats.roc,
5108 CTLFLAG_RD, &stats->roc,
5114 "Oversized Packets Received");
5115 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "recv_jabber",
5109 "Oversized Packets Received");
5110 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "recv_jabber",
5116 CTLFLAG_RD, &adapter->stats.rjc,
5111 CTLFLAG_RD, &stats->rjc,
5117 "Recevied Jabber");
5118 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "recv_errs",
5112 "Recevied Jabber");
5113 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "recv_errs",
5119 CTLFLAG_RD, &adapter->stats.rxerrc,
5114 CTLFLAG_RD, &stats->rxerrc,
5120 "Receive Errors");
5121 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "crc_errs",
5115 "Receive Errors");
5116 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "crc_errs",
5122 CTLFLAG_RD, &adapter->stats.crcerrs,
5117 CTLFLAG_RD, &stats->crcerrs,
5123 "CRC errors");
5124 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "alignment_errs",
5118 "CRC errors");
5119 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "alignment_errs",
5125 CTLFLAG_RD, &adapter->stats.algnerrc,
5120 CTLFLAG_RD, &stats->algnerrc,
5126 "Alignment Errors");
5127 /* On 82575 these are collision counts */
5128 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "coll_ext_errs",
5121 "Alignment Errors");
5122 /* On 82575 these are collision counts */
5123 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "coll_ext_errs",
5129 CTLFLAG_RD, &adapter->stats.cexterr,
5124 CTLFLAG_RD, &stats->cexterr,
5130 "Collision/Carrier extension errors");
5131 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "rx_overruns",
5132 CTLFLAG_RD, &adapter->rx_overruns,
5133 "RX overruns");
5134 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "watchdog_timeouts",
5135 CTLFLAG_RD, &adapter->watchdog_events,
5136 "Watchdog timeouts");
5137 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "xon_recvd",
5125 "Collision/Carrier extension errors");
5126 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "rx_overruns",
5127 CTLFLAG_RD, &adapter->rx_overruns,
5128 "RX overruns");
5129 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "watchdog_timeouts",
5130 CTLFLAG_RD, &adapter->watchdog_events,
5131 "Watchdog timeouts");
5132 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "xon_recvd",
5138 CTLFLAG_RD, &adapter->stats.xonrxc,
5133 CTLFLAG_RD, &stats->xonrxc,
5139 "XON Received");
5140 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "xon_txd",
5134 "XON Received");
5135 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "xon_txd",
5141 CTLFLAG_RD, &adapter->stats.xontxc,
5136 CTLFLAG_RD, &stats->xontxc,
5142 "XON Transmitted");
5143 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "xoff_recvd",
5137 "XON Transmitted");
5138 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "xoff_recvd",
5144 CTLFLAG_RD, &adapter->stats.xoffrxc,
5139 CTLFLAG_RD, &stats->xoffrxc,
5145 "XOFF Received");
5146 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "xoff_txd",
5140 "XOFF Received");
5141 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "xoff_txd",
5147 CTLFLAG_RD, &adapter->stats.xofftxc,
5142 CTLFLAG_RD, &stats->xofftxc,
5148 "XOFF Transmitted");
5149 /* Packet Reception Stats */
5150 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "total_pkts_recvd",
5143 "XOFF Transmitted");
5144 /* Packet Reception Stats */
5145 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "total_pkts_recvd",
5151 CTLFLAG_RD, &adapter->stats.tpr,
5146 CTLFLAG_RD, &stats->tpr,
5152 "Total Packets Received ");
5153 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "good_pkts_recvd",
5147 "Total Packets Received ");
5148 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "good_pkts_recvd",
5154 CTLFLAG_RD, &adapter->stats.gprc,
5149 CTLFLAG_RD, &stats->gprc,
5155 "Good Packets Received");
5156 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "bcast_pkts_recvd",
5150 "Good Packets Received");
5151 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "bcast_pkts_recvd",
5157 CTLFLAG_RD, &adapter->stats.bprc,
5152 CTLFLAG_RD, &stats->bprc,
5158 "Broadcast Packets Received");
5159 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "mcast_pkts_recvd",
5153 "Broadcast Packets Received");
5154 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "mcast_pkts_recvd",
5160 CTLFLAG_RD, &adapter->stats.mprc,
5155 CTLFLAG_RD, &stats->mprc,
5161 "Multicast Packets Received");
5162 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "rx_frames_64",
5156 "Multicast Packets Received");
5157 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "rx_frames_64",
5163 CTLFLAG_RD, &adapter->stats.prc64,
5158 CTLFLAG_RD, &stats->prc64,
5164 "64 byte frames received ");
5165 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "rx_frames_65_127",
5159 "64 byte frames received ");
5160 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "rx_frames_65_127",
5166 CTLFLAG_RD, &adapter->stats.prc127,
5161 CTLFLAG_RD, &stats->prc127,
5167 "65-127 byte frames received");
5168 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "rx_frames_128_255",
5162 "65-127 byte frames received");
5163 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "rx_frames_128_255",
5169 CTLFLAG_RD, &adapter->stats.prc255,
5164 CTLFLAG_RD, &stats->prc255,
5170 "128-255 byte frames received");
5171 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "rx_frames_256_511",
5165 "128-255 byte frames received");
5166 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "rx_frames_256_511",
5172 CTLFLAG_RD, &adapter->stats.prc511,
5167 CTLFLAG_RD, &stats->prc511,
5173 "256-511 byte frames received");
5174 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "rx_frames_512_1023",
5168 "256-511 byte frames received");
5169 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "rx_frames_512_1023",
5175 CTLFLAG_RD, &adapter->stats.prc1023,
5170 CTLFLAG_RD, &stats->prc1023,
5176 "512-1023 byte frames received");
5177 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "rx_frames_1024_1522",
5171 "512-1023 byte frames received");
5172 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "rx_frames_1024_1522",
5178 CTLFLAG_RD, &adapter->stats.prc1522,
5173 CTLFLAG_RD, &stats->prc1522,
5179 "1023-1522 byte frames received");
5180 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "good_octets_recvd",
5174 "1023-1522 byte frames received");
5175 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "good_octets_recvd",
5181 CTLFLAG_RD, &adapter->stats.gorc,
5176 CTLFLAG_RD, &stats->gorc,
5182 "Good Octets Received");
5183
5184 /* Packet Transmission Stats */
5185 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "good_octest_txd",
5177 "Good Octets Received");
5178
5179 /* Packet Transmission Stats */
5180 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "good_octest_txd",
5186 CTLFLAG_RD, &adapter->stats.gotc,
5181 CTLFLAG_RD, &stats->gotc,
5187 "Good Octest Transmitted");
5188 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "total_pkts_txd",
5182 "Good Octest Transmitted");
5183 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "total_pkts_txd",
5189 CTLFLAG_RD, &adapter->stats.tpt,
5184 CTLFLAG_RD, &stats->tpt,
5190 "Total Packets Transmitted");
5191 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "good_pkts_txd",
5185 "Total Packets Transmitted");
5186 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "good_pkts_txd",
5192 CTLFLAG_RD, &adapter->stats.gptc,
5187 CTLFLAG_RD, &stats->gptc,
5193 "Good Packets Transmitted");
5194 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "bcast_pkts_txd",
5188 "Good Packets Transmitted");
5189 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "bcast_pkts_txd",
5195 CTLFLAG_RD, &adapter->stats.bptc,
5190 CTLFLAG_RD, &stats->bptc,
5196 "Broadcast Packets Transmitted");
5197 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "mcast_pkts_txd",
5191 "Broadcast Packets Transmitted");
5192 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "mcast_pkts_txd",
5198 CTLFLAG_RD, &adapter->stats.mptc,
5193 CTLFLAG_RD, &stats->mptc,
5199 "Multicast Packets Transmitted");
5200 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "tx_frames_64",
5194 "Multicast Packets Transmitted");
5195 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "tx_frames_64",
5201 CTLFLAG_RD, &adapter->stats.ptc64,
5196 CTLFLAG_RD, &stats->ptc64,
5202 "64 byte frames transmitted ");
5203 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "tx_frames_65_127",
5197 "64 byte frames transmitted ");
5198 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "tx_frames_65_127",
5204 CTLFLAG_RD, &adapter->stats.ptc127,
5199 CTLFLAG_RD, &stats->ptc127,
5205 "65-127 byte frames transmitted");
5206 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "tx_frames_128_255",
5200 "65-127 byte frames transmitted");
5201 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "tx_frames_128_255",
5207 CTLFLAG_RD, &adapter->stats.ptc255,
5202 CTLFLAG_RD, &stats->ptc255,
5208 "128-255 byte frames transmitted");
5209 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "tx_frames_256_511",
5203 "128-255 byte frames transmitted");
5204 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "tx_frames_256_511",
5210 CTLFLAG_RD, &adapter->stats.ptc511,
5205 CTLFLAG_RD, &stats->ptc511,
5211 "256-511 byte frames transmitted");
5212 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "tx_frames_512_1023",
5206 "256-511 byte frames transmitted");
5207 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "tx_frames_512_1023",
5213 CTLFLAG_RD, &adapter->stats.ptc1023,
5208 CTLFLAG_RD, &stats->ptc1023,
5214 "512-1023 byte frames transmitted");
5215 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "tx_frames_1024_1522",
5209 "512-1023 byte frames transmitted");
5210 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "tx_frames_1024_1522",
5216 CTLFLAG_RD, &adapter->stats.ptc1522,
5211 CTLFLAG_RD, &stats->ptc1522,
5217 "1024-1522 byte frames transmitted");
5218 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "tso_txd",
5212 "1024-1522 byte frames transmitted");
5213 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "tso_txd",
5219 CTLFLAG_RD, &adapter->stats.tsctc,
5214 CTLFLAG_RD, &stats->tsctc,
5220 "TSO Contexts Transmitted");
5221 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "tso_ctx_fail",
5215 "TSO Contexts Transmitted");
5216 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "tso_ctx_fail",
5222 CTLFLAG_RD, &adapter->stats.tsctfc,
5217 CTLFLAG_RD, &stats->tsctfc,
5223 "TSO Contexts Failed");
5224
5225
5226 /* Interrupt Stats */
5227
5228 int_node = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, "interrupts",
5229 CTLFLAG_RD, NULL, "Interrupt Statistics");
5230 int_list = SYSCTL_CHILDREN(int_node);
5231
5232 SYSCTL_ADD_QUAD(ctx, int_list, OID_AUTO, "asserts",
5218 "TSO Contexts Failed");
5219
5220
5221 /* Interrupt Stats */
5222
5223 int_node = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, "interrupts",
5224 CTLFLAG_RD, NULL, "Interrupt Statistics");
5225 int_list = SYSCTL_CHILDREN(int_node);
5226
5227 SYSCTL_ADD_QUAD(ctx, int_list, OID_AUTO, "asserts",
5233 CTLFLAG_RD, &adapter->stats.iac,
5228 CTLFLAG_RD, &stats->iac,
5234 "Interrupt Assertion Count");
5235
5236 SYSCTL_ADD_QUAD(ctx, int_list, OID_AUTO, "rx_pkt_timer",
5229 "Interrupt Assertion Count");
5230
5231 SYSCTL_ADD_QUAD(ctx, int_list, OID_AUTO, "rx_pkt_timer",
5237 CTLFLAG_RD, &adapter->stats.icrxptc,
5232 CTLFLAG_RD, &stats->icrxptc,
5238 "Interrupt Cause Rx Pkt Timer Expire Count");
5239
5240 SYSCTL_ADD_QUAD(ctx, int_list, OID_AUTO, "rx_abs_timer",
5233 "Interrupt Cause Rx Pkt Timer Expire Count");
5234
5235 SYSCTL_ADD_QUAD(ctx, int_list, OID_AUTO, "rx_abs_timer",
5241 CTLFLAG_RD, &adapter->stats.icrxatc,
5236 CTLFLAG_RD, &stats->icrxatc,
5242 "Interrupt Cause Rx Abs Timer Expire Count");
5243
5244 SYSCTL_ADD_QUAD(ctx, int_list, OID_AUTO, "tx_pkt_timer",
5237 "Interrupt Cause Rx Abs Timer Expire Count");
5238
5239 SYSCTL_ADD_QUAD(ctx, int_list, OID_AUTO, "tx_pkt_timer",
5245 CTLFLAG_RD, &adapter->stats.ictxptc,
5240 CTLFLAG_RD, &stats->ictxptc,
5246 "Interrupt Cause Tx Pkt Timer Expire Count");
5247
5248 SYSCTL_ADD_QUAD(ctx, int_list, OID_AUTO, "tx_abs_timer",
5241 "Interrupt Cause Tx Pkt Timer Expire Count");
5242
5243 SYSCTL_ADD_QUAD(ctx, int_list, OID_AUTO, "tx_abs_timer",
5249 CTLFLAG_RD, &adapter->stats.ictxatc,
5244 CTLFLAG_RD, &stats->ictxatc,
5250 "Interrupt Cause Tx Abs Timer Expire Count");
5251
5252 SYSCTL_ADD_QUAD(ctx, int_list, OID_AUTO, "tx_queue_empty",
5245 "Interrupt Cause Tx Abs Timer Expire Count");
5246
5247 SYSCTL_ADD_QUAD(ctx, int_list, OID_AUTO, "tx_queue_empty",
5253 CTLFLAG_RD, &adapter->stats.ictxqec,
5248 CTLFLAG_RD, &stats->ictxqec,
5254 "Interrupt Cause Tx Queue Empty Count");
5255
5256 SYSCTL_ADD_QUAD(ctx, int_list, OID_AUTO, "tx_queue_min_thresh",
5249 "Interrupt Cause Tx Queue Empty Count");
5250
5251 SYSCTL_ADD_QUAD(ctx, int_list, OID_AUTO, "tx_queue_min_thresh",
5257 CTLFLAG_RD, &adapter->stats.ictxqmtc,
5252 CTLFLAG_RD, &stats->ictxqmtc,
5258 "Interrupt Cause Tx Queue Min Thresh Count");
5259
5260 SYSCTL_ADD_QUAD(ctx, int_list, OID_AUTO, "rx_desc_min_thresh",
5253 "Interrupt Cause Tx Queue Min Thresh Count");
5254
5255 SYSCTL_ADD_QUAD(ctx, int_list, OID_AUTO, "rx_desc_min_thresh",
5261 CTLFLAG_RD, &adapter->stats.icrxdmtc,
5256 CTLFLAG_RD, &stats->icrxdmtc,
5262 "Interrupt Cause Rx Desc Min Thresh Count");
5263
5264 SYSCTL_ADD_QUAD(ctx, int_list, OID_AUTO, "rx_overrun",
5257 "Interrupt Cause Rx Desc Min Thresh Count");
5258
5259 SYSCTL_ADD_QUAD(ctx, int_list, OID_AUTO, "rx_overrun",
5265 CTLFLAG_RD, &adapter->stats.icrxoc,
5260 CTLFLAG_RD, &stats->icrxoc,
5266 "Interrupt Cause Receiver Overrun Count");
5267
5268 /* Host to Card Stats */
5269
5270 host_node = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, "host",
5271 CTLFLAG_RD, NULL,
5272 "Host to Card Statistics");
5273
5274 host_list = SYSCTL_CHILDREN(host_node);
5275
5276 SYSCTL_ADD_QUAD(ctx, host_list, OID_AUTO, "breaker_tx_pkt",
5261 "Interrupt Cause Receiver Overrun Count");
5262
5263 /* Host to Card Stats */
5264
5265 host_node = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, "host",
5266 CTLFLAG_RD, NULL,
5267 "Host to Card Statistics");
5268
5269 host_list = SYSCTL_CHILDREN(host_node);
5270
5271 SYSCTL_ADD_QUAD(ctx, host_list, OID_AUTO, "breaker_tx_pkt",
5277 CTLFLAG_RD, &adapter->stats.cbtmpc,
5272 CTLFLAG_RD, &stats->cbtmpc,
5278 "Circuit Breaker Tx Packet Count");
5279
5280 SYSCTL_ADD_QUAD(ctx, host_list, OID_AUTO, "host_tx_pkt_discard",
5273 "Circuit Breaker Tx Packet Count");
5274
5275 SYSCTL_ADD_QUAD(ctx, host_list, OID_AUTO, "host_tx_pkt_discard",
5281 CTLFLAG_RD, &adapter->stats.htdpmc,
5276 CTLFLAG_RD, &stats->htdpmc,
5282 "Host Transmit Discarded Packets");
5283
5284 SYSCTL_ADD_QUAD(ctx, host_list, OID_AUTO, "rx_pkt",
5277 "Host Transmit Discarded Packets");
5278
5279 SYSCTL_ADD_QUAD(ctx, host_list, OID_AUTO, "rx_pkt",
5285 CTLFLAG_RD, &adapter->stats.rpthc,
5280 CTLFLAG_RD, &stats->rpthc,
5286 "Rx Packets To Host");
5287
5288 SYSCTL_ADD_QUAD(ctx, host_list, OID_AUTO, "breaker_rx_pkts",
5281 "Rx Packets To Host");
5282
5283 SYSCTL_ADD_QUAD(ctx, host_list, OID_AUTO, "breaker_rx_pkts",
5289 CTLFLAG_RD, &adapter->stats.cbrmpc,
5284 CTLFLAG_RD, &stats->cbrmpc,
5290 "Circuit Breaker Rx Packet Count");
5291
5292 SYSCTL_ADD_QUAD(ctx, host_list, OID_AUTO, "breaker_rx_pkt_drop",
5285 "Circuit Breaker Rx Packet Count");
5286
5287 SYSCTL_ADD_QUAD(ctx, host_list, OID_AUTO, "breaker_rx_pkt_drop",
5293 CTLFLAG_RD, &adapter->stats.cbrdpc,
5288 CTLFLAG_RD, &stats->cbrdpc,
5294 "Circuit Breaker Rx Dropped Count");
5295
5296 SYSCTL_ADD_QUAD(ctx, host_list, OID_AUTO, "tx_good_pkt",
5289 "Circuit Breaker Rx Dropped Count");
5290
5291 SYSCTL_ADD_QUAD(ctx, host_list, OID_AUTO, "tx_good_pkt",
5297 CTLFLAG_RD, &adapter->stats.hgptc,
5292 CTLFLAG_RD, &stats->hgptc,
5298 "Host Good Packets Tx Count");
5299
5300 SYSCTL_ADD_QUAD(ctx, host_list, OID_AUTO, "breaker_tx_pkt_drop",
5293 "Host Good Packets Tx Count");
5294
5295 SYSCTL_ADD_QUAD(ctx, host_list, OID_AUTO, "breaker_tx_pkt_drop",
5301 CTLFLAG_RD, &adapter->stats.htcbdpc,
5296 CTLFLAG_RD, &stats->htcbdpc,
5302 "Host Tx Circuit Breaker Dropped Count");
5303
5304 SYSCTL_ADD_QUAD(ctx, host_list, OID_AUTO, "rx_good_bytes",
5297 "Host Tx Circuit Breaker Dropped Count");
5298
5299 SYSCTL_ADD_QUAD(ctx, host_list, OID_AUTO, "rx_good_bytes",
5305 CTLFLAG_RD, &adapter->stats.hgorc,
5300 CTLFLAG_RD, &stats->hgorc,
5306 "Host Good Octets Received Count");
5307
5308 SYSCTL_ADD_QUAD(ctx, host_list, OID_AUTO, "tx_good_bytes",
5301 "Host Good Octets Received Count");
5302
5303 SYSCTL_ADD_QUAD(ctx, host_list, OID_AUTO, "tx_good_bytes",
5309 CTLFLAG_RD, &adapter->stats.hgotc,
5304 CTLFLAG_RD, &stats->hgotc,
5310 "Host Good Octets Transmit Count");
5311
5312 SYSCTL_ADD_QUAD(ctx, host_list, OID_AUTO, "length_errors",
5305 "Host Good Octets Transmit Count");
5306
5307 SYSCTL_ADD_QUAD(ctx, host_list, OID_AUTO, "length_errors",
5313 CTLFLAG_RD, &adapter->stats.lenerrs,
5308 CTLFLAG_RD, &stats->lenerrs,
5314 "Length Errors");
5315
5316 SYSCTL_ADD_QUAD(ctx, host_list, OID_AUTO, "serdes_violation_pkt",
5309 "Length Errors");
5310
5311 SYSCTL_ADD_QUAD(ctx, host_list, OID_AUTO, "serdes_violation_pkt",
5317 CTLFLAG_RD, &adapter->stats.scvpc,
5312 CTLFLAG_RD, &stats->scvpc,
5318 "SerDes/SGMII Code Violation Pkt Count");
5319
5320 SYSCTL_ADD_QUAD(ctx, host_list, OID_AUTO, "header_redir_missed",
5313 "SerDes/SGMII Code Violation Pkt Count");
5314
5315 SYSCTL_ADD_QUAD(ctx, host_list, OID_AUTO, "header_redir_missed",
5321 CTLFLAG_RD, &adapter->stats.hrmpc,
5316 CTLFLAG_RD, &stats->hrmpc,
5322 "Header Redirection Missed Packet Count");
5323}
5324
5325
5326/**********************************************************************
5327 *
5328 * This routine provides a way to dump out the adapter eeprom,
5329 * often a useful debug/service tool. This only dumps the first

--- 58 unchanged lines hidden ---
5317 "Header Redirection Missed Packet Count");
5318}
5319
5320
5321/**********************************************************************
5322 *
5323 * This routine provides a way to dump out the adapter eeprom,
5324 * often a useful debug/service tool. This only dumps the first

--- 58 unchanged lines hidden ---