Deleted Added
full compact
if_igb.c (216173) if_igb.c (217318)
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 216173 2010-12-04 02:04:02Z jfv $*/
33/*$FreeBSD: head/sys/dev/e1000/if_igb.c 217318 2011-01-12 19:53:23Z mdf $*/
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

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

5065
5066 struct sysctl_oid *stat_node, *queue_node, *int_node, *host_node;
5067 struct sysctl_oid_list *stat_list, *queue_list, *int_list, *host_list;
5068
5069#define QUEUE_NAME_LEN 32
5070 char namebuf[QUEUE_NAME_LEN];
5071
5072 /* Driver Statistics */
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

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

5065
5066 struct sysctl_oid *stat_node, *queue_node, *int_node, *host_node;
5067 struct sysctl_oid_list *stat_list, *queue_list, *int_list, *host_list;
5068
5069#define QUEUE_NAME_LEN 32
5070 char namebuf[QUEUE_NAME_LEN];
5071
5072 /* Driver Statistics */
5073 SYSCTL_ADD_UINT(ctx, child, OID_AUTO, "link_irq",
5073 SYSCTL_ADD_INT(ctx, child, OID_AUTO, "link_irq",
5074 CTLFLAG_RD, &adapter->link_irq, 0,
5075 "Link MSIX IRQ Handled");
5076 SYSCTL_ADD_ULONG(ctx, child, OID_AUTO, "dropped",
5077 CTLFLAG_RD, &adapter->dropped_pkts,
5078 "Driver dropped packets");
5079 SYSCTL_ADD_ULONG(ctx, child, OID_AUTO, "tx_dma_fail",
5080 CTLFLAG_RD, &adapter->no_tx_dma_setup,
5081 "Driver tx dma failure in xmit");

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

5128 SYSCTL_ADD_PROC(ctx, queue_list, OID_AUTO, "txd_head",
5129 CTLFLAG_RD, adapter, E1000_TDH(txr->me),
5130 igb_sysctl_reg_handler, "IU",
5131 "Transmit Descriptor Head");
5132 SYSCTL_ADD_PROC(ctx, queue_list, OID_AUTO, "txd_tail",
5133 CTLFLAG_RD, adapter, E1000_TDT(txr->me),
5134 igb_sysctl_reg_handler, "IU",
5135 "Transmit Descriptor Tail");
5074 CTLFLAG_RD, &adapter->link_irq, 0,
5075 "Link MSIX IRQ Handled");
5076 SYSCTL_ADD_ULONG(ctx, child, OID_AUTO, "dropped",
5077 CTLFLAG_RD, &adapter->dropped_pkts,
5078 "Driver dropped packets");
5079 SYSCTL_ADD_ULONG(ctx, child, OID_AUTO, "tx_dma_fail",
5080 CTLFLAG_RD, &adapter->no_tx_dma_setup,
5081 "Driver tx dma failure in xmit");

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

5128 SYSCTL_ADD_PROC(ctx, queue_list, OID_AUTO, "txd_head",
5129 CTLFLAG_RD, adapter, E1000_TDH(txr->me),
5130 igb_sysctl_reg_handler, "IU",
5131 "Transmit Descriptor Head");
5132 SYSCTL_ADD_PROC(ctx, queue_list, OID_AUTO, "txd_tail",
5133 CTLFLAG_RD, adapter, E1000_TDT(txr->me),
5134 igb_sysctl_reg_handler, "IU",
5135 "Transmit Descriptor Tail");
5136 SYSCTL_ADD_QUAD(ctx, queue_list, OID_AUTO, "no_desc_avail",
5136 SYSCTL_ADD_UQUAD(ctx, queue_list, OID_AUTO, "no_desc_avail",
5137 CTLFLAG_RD, &txr->no_desc_avail,
5138 "Queue No Descriptor Available");
5137 CTLFLAG_RD, &txr->no_desc_avail,
5138 "Queue No Descriptor Available");
5139 SYSCTL_ADD_QUAD(ctx, queue_list, OID_AUTO, "tx_packets",
5139 SYSCTL_ADD_UQUAD(ctx, queue_list, OID_AUTO, "tx_packets",
5140 CTLFLAG_RD, &txr->tx_packets,
5141 "Queue Packets Transmitted");
5142
5143 SYSCTL_ADD_PROC(ctx, queue_list, OID_AUTO, "rxd_head",
5144 CTLFLAG_RD, adapter, E1000_RDH(rxr->me),
5145 igb_sysctl_reg_handler, "IU",
5146 "Receive Descriptor Head");
5147 SYSCTL_ADD_PROC(ctx, queue_list, OID_AUTO, "rxd_tail",
5148 CTLFLAG_RD, adapter, E1000_RDT(rxr->me),
5149 igb_sysctl_reg_handler, "IU",
5150 "Receive Descriptor Tail");
5140 CTLFLAG_RD, &txr->tx_packets,
5141 "Queue Packets Transmitted");
5142
5143 SYSCTL_ADD_PROC(ctx, queue_list, OID_AUTO, "rxd_head",
5144 CTLFLAG_RD, adapter, E1000_RDH(rxr->me),
5145 igb_sysctl_reg_handler, "IU",
5146 "Receive Descriptor Head");
5147 SYSCTL_ADD_PROC(ctx, queue_list, OID_AUTO, "rxd_tail",
5148 CTLFLAG_RD, adapter, E1000_RDT(rxr->me),
5149 igb_sysctl_reg_handler, "IU",
5150 "Receive Descriptor Tail");
5151 SYSCTL_ADD_QUAD(ctx, queue_list, OID_AUTO, "rx_packets",
5151 SYSCTL_ADD_UQUAD(ctx, queue_list, OID_AUTO, "rx_packets",
5152 CTLFLAG_RD, &rxr->rx_packets,
5153 "Queue Packets Received");
5152 CTLFLAG_RD, &rxr->rx_packets,
5153 "Queue Packets Received");
5154 SYSCTL_ADD_QUAD(ctx, queue_list, OID_AUTO, "rx_bytes",
5154 SYSCTL_ADD_UQUAD(ctx, queue_list, OID_AUTO, "rx_bytes",
5155 CTLFLAG_RD, &rxr->rx_bytes,
5156 "Queue Bytes Received");
5155 CTLFLAG_RD, &rxr->rx_bytes,
5156 "Queue Bytes Received");
5157 SYSCTL_ADD_UINT(ctx, queue_list, OID_AUTO, "lro_queued",
5157 SYSCTL_ADD_INT(ctx, queue_list, OID_AUTO, "lro_queued",
5158 CTLFLAG_RD, &lro->lro_queued, 0,
5159 "LRO Queued");
5158 CTLFLAG_RD, &lro->lro_queued, 0,
5159 "LRO Queued");
5160 SYSCTL_ADD_UINT(ctx, queue_list, OID_AUTO, "lro_flushed",
5160 SYSCTL_ADD_INT(ctx, queue_list, OID_AUTO, "lro_flushed",
5161 CTLFLAG_RD, &lro->lro_flushed, 0,
5162 "LRO Flushed");
5163 }
5164
5165 /* MAC stats get their own sub node */
5166
5167 stat_node = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, "mac_stats",
5168 CTLFLAG_RD, NULL, "MAC Statistics");
5169 stat_list = SYSCTL_CHILDREN(stat_node);
5170
5171 /*
5172 ** VF adapter has a very limited set of stats
5173 ** since its not managing the metal, so to speak.
5174 */
5175 if (adapter->hw.mac.type == e1000_vfadapt) {
5161 CTLFLAG_RD, &lro->lro_flushed, 0,
5162 "LRO Flushed");
5163 }
5164
5165 /* MAC stats get their own sub node */
5166
5167 stat_node = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, "mac_stats",
5168 CTLFLAG_RD, NULL, "MAC Statistics");
5169 stat_list = SYSCTL_CHILDREN(stat_node);
5170
5171 /*
5172 ** VF adapter has a very limited set of stats
5173 ** since its not managing the metal, so to speak.
5174 */
5175 if (adapter->hw.mac.type == e1000_vfadapt) {
5176 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "good_pkts_recvd",
5176 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "good_pkts_recvd",
5177 CTLFLAG_RD, &stats->gprc,
5178 "Good Packets Received");
5177 CTLFLAG_RD, &stats->gprc,
5178 "Good Packets Received");
5179 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "good_pkts_txd",
5179 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "good_pkts_txd",
5180 CTLFLAG_RD, &stats->gptc,
5181 "Good Packets Transmitted");
5180 CTLFLAG_RD, &stats->gptc,
5181 "Good Packets Transmitted");
5182 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "good_octets_recvd",
5182 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "good_octets_recvd",
5183 CTLFLAG_RD, &stats->gorc,
5184 "Good Octets Received");
5183 CTLFLAG_RD, &stats->gorc,
5184 "Good Octets Received");
5185 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "good_octets_txd",
5185 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "good_octets_txd",
5186 CTLFLAG_RD, &stats->gotc,
5187 "Good Octets Transmitted");
5186 CTLFLAG_RD, &stats->gotc,
5187 "Good Octets Transmitted");
5188 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "mcast_pkts_recvd",
5188 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "mcast_pkts_recvd",
5189 CTLFLAG_RD, &stats->mprc,
5190 "Multicast Packets Received");
5191 return;
5192 }
5193
5189 CTLFLAG_RD, &stats->mprc,
5190 "Multicast Packets Received");
5191 return;
5192 }
5193
5194 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "excess_coll",
5194 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "excess_coll",
5195 CTLFLAG_RD, &stats->ecol,
5196 "Excessive collisions");
5195 CTLFLAG_RD, &stats->ecol,
5196 "Excessive collisions");
5197 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "single_coll",
5197 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "single_coll",
5198 CTLFLAG_RD, &stats->scc,
5199 "Single collisions");
5198 CTLFLAG_RD, &stats->scc,
5199 "Single collisions");
5200 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "multiple_coll",
5200 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "multiple_coll",
5201 CTLFLAG_RD, &stats->mcc,
5202 "Multiple collisions");
5201 CTLFLAG_RD, &stats->mcc,
5202 "Multiple collisions");
5203 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "late_coll",
5203 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "late_coll",
5204 CTLFLAG_RD, &stats->latecol,
5205 "Late collisions");
5204 CTLFLAG_RD, &stats->latecol,
5205 "Late collisions");
5206 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "collision_count",
5206 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "collision_count",
5207 CTLFLAG_RD, &stats->colc,
5208 "Collision Count");
5207 CTLFLAG_RD, &stats->colc,
5208 "Collision Count");
5209 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "symbol_errors",
5209 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "symbol_errors",
5210 CTLFLAG_RD, &stats->symerrs,
5211 "Symbol Errors");
5210 CTLFLAG_RD, &stats->symerrs,
5211 "Symbol Errors");
5212 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "sequence_errors",
5212 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "sequence_errors",
5213 CTLFLAG_RD, &stats->sec,
5214 "Sequence Errors");
5213 CTLFLAG_RD, &stats->sec,
5214 "Sequence Errors");
5215 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "defer_count",
5215 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "defer_count",
5216 CTLFLAG_RD, &stats->dc,
5217 "Defer Count");
5216 CTLFLAG_RD, &stats->dc,
5217 "Defer Count");
5218 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "missed_packets",
5218 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "missed_packets",
5219 CTLFLAG_RD, &stats->mpc,
5220 "Missed Packets");
5219 CTLFLAG_RD, &stats->mpc,
5220 "Missed Packets");
5221 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "recv_no_buff",
5221 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "recv_no_buff",
5222 CTLFLAG_RD, &stats->rnbc,
5223 "Receive No Buffers");
5222 CTLFLAG_RD, &stats->rnbc,
5223 "Receive No Buffers");
5224 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "recv_undersize",
5224 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "recv_undersize",
5225 CTLFLAG_RD, &stats->ruc,
5226 "Receive Undersize");
5225 CTLFLAG_RD, &stats->ruc,
5226 "Receive Undersize");
5227 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "recv_fragmented",
5227 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "recv_fragmented",
5228 CTLFLAG_RD, &stats->rfc,
5229 "Fragmented Packets Received ");
5228 CTLFLAG_RD, &stats->rfc,
5229 "Fragmented Packets Received ");
5230 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "recv_oversize",
5230 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "recv_oversize",
5231 CTLFLAG_RD, &stats->roc,
5232 "Oversized Packets Received");
5231 CTLFLAG_RD, &stats->roc,
5232 "Oversized Packets Received");
5233 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "recv_jabber",
5233 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "recv_jabber",
5234 CTLFLAG_RD, &stats->rjc,
5235 "Recevied Jabber");
5234 CTLFLAG_RD, &stats->rjc,
5235 "Recevied Jabber");
5236 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "recv_errs",
5236 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "recv_errs",
5237 CTLFLAG_RD, &stats->rxerrc,
5238 "Receive Errors");
5237 CTLFLAG_RD, &stats->rxerrc,
5238 "Receive Errors");
5239 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "crc_errs",
5239 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "crc_errs",
5240 CTLFLAG_RD, &stats->crcerrs,
5241 "CRC errors");
5240 CTLFLAG_RD, &stats->crcerrs,
5241 "CRC errors");
5242 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "alignment_errs",
5242 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "alignment_errs",
5243 CTLFLAG_RD, &stats->algnerrc,
5244 "Alignment Errors");
5245 /* On 82575 these are collision counts */
5243 CTLFLAG_RD, &stats->algnerrc,
5244 "Alignment Errors");
5245 /* On 82575 these are collision counts */
5246 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "coll_ext_errs",
5246 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "coll_ext_errs",
5247 CTLFLAG_RD, &stats->cexterr,
5248 "Collision/Carrier extension errors");
5247 CTLFLAG_RD, &stats->cexterr,
5248 "Collision/Carrier extension errors");
5249 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "xon_recvd",
5249 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "xon_recvd",
5250 CTLFLAG_RD, &stats->xonrxc,
5251 "XON Received");
5250 CTLFLAG_RD, &stats->xonrxc,
5251 "XON Received");
5252 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "xon_txd",
5252 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "xon_txd",
5253 CTLFLAG_RD, &stats->xontxc,
5254 "XON Transmitted");
5253 CTLFLAG_RD, &stats->xontxc,
5254 "XON Transmitted");
5255 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "xoff_recvd",
5255 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "xoff_recvd",
5256 CTLFLAG_RD, &stats->xoffrxc,
5257 "XOFF Received");
5256 CTLFLAG_RD, &stats->xoffrxc,
5257 "XOFF Received");
5258 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "xoff_txd",
5258 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "xoff_txd",
5259 CTLFLAG_RD, &stats->xofftxc,
5260 "XOFF Transmitted");
5261 /* Packet Reception Stats */
5259 CTLFLAG_RD, &stats->xofftxc,
5260 "XOFF Transmitted");
5261 /* Packet Reception Stats */
5262 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "total_pkts_recvd",
5262 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "total_pkts_recvd",
5263 CTLFLAG_RD, &stats->tpr,
5264 "Total Packets Received ");
5263 CTLFLAG_RD, &stats->tpr,
5264 "Total Packets Received ");
5265 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "good_pkts_recvd",
5265 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "good_pkts_recvd",
5266 CTLFLAG_RD, &stats->gprc,
5267 "Good Packets Received");
5266 CTLFLAG_RD, &stats->gprc,
5267 "Good Packets Received");
5268 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "bcast_pkts_recvd",
5268 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "bcast_pkts_recvd",
5269 CTLFLAG_RD, &stats->bprc,
5270 "Broadcast Packets Received");
5269 CTLFLAG_RD, &stats->bprc,
5270 "Broadcast Packets Received");
5271 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "mcast_pkts_recvd",
5271 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "mcast_pkts_recvd",
5272 CTLFLAG_RD, &stats->mprc,
5273 "Multicast Packets Received");
5272 CTLFLAG_RD, &stats->mprc,
5273 "Multicast Packets Received");
5274 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "rx_frames_64",
5274 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "rx_frames_64",
5275 CTLFLAG_RD, &stats->prc64,
5276 "64 byte frames received ");
5275 CTLFLAG_RD, &stats->prc64,
5276 "64 byte frames received ");
5277 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "rx_frames_65_127",
5277 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "rx_frames_65_127",
5278 CTLFLAG_RD, &stats->prc127,
5279 "65-127 byte frames received");
5278 CTLFLAG_RD, &stats->prc127,
5279 "65-127 byte frames received");
5280 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "rx_frames_128_255",
5280 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "rx_frames_128_255",
5281 CTLFLAG_RD, &stats->prc255,
5282 "128-255 byte frames received");
5281 CTLFLAG_RD, &stats->prc255,
5282 "128-255 byte frames received");
5283 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "rx_frames_256_511",
5283 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "rx_frames_256_511",
5284 CTLFLAG_RD, &stats->prc511,
5285 "256-511 byte frames received");
5284 CTLFLAG_RD, &stats->prc511,
5285 "256-511 byte frames received");
5286 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "rx_frames_512_1023",
5286 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "rx_frames_512_1023",
5287 CTLFLAG_RD, &stats->prc1023,
5288 "512-1023 byte frames received");
5287 CTLFLAG_RD, &stats->prc1023,
5288 "512-1023 byte frames received");
5289 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "rx_frames_1024_1522",
5289 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "rx_frames_1024_1522",
5290 CTLFLAG_RD, &stats->prc1522,
5291 "1023-1522 byte frames received");
5290 CTLFLAG_RD, &stats->prc1522,
5291 "1023-1522 byte frames received");
5292 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "good_octets_recvd",
5292 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "good_octets_recvd",
5293 CTLFLAG_RD, &stats->gorc,
5294 "Good Octets Received");
5295
5296 /* Packet Transmission Stats */
5293 CTLFLAG_RD, &stats->gorc,
5294 "Good Octets Received");
5295
5296 /* Packet Transmission Stats */
5297 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "good_octets_txd",
5297 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "good_octets_txd",
5298 CTLFLAG_RD, &stats->gotc,
5299 "Good Octets Transmitted");
5298 CTLFLAG_RD, &stats->gotc,
5299 "Good Octets Transmitted");
5300 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "total_pkts_txd",
5300 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "total_pkts_txd",
5301 CTLFLAG_RD, &stats->tpt,
5302 "Total Packets Transmitted");
5301 CTLFLAG_RD, &stats->tpt,
5302 "Total Packets Transmitted");
5303 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "good_pkts_txd",
5303 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "good_pkts_txd",
5304 CTLFLAG_RD, &stats->gptc,
5305 "Good Packets Transmitted");
5304 CTLFLAG_RD, &stats->gptc,
5305 "Good Packets Transmitted");
5306 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "bcast_pkts_txd",
5306 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "bcast_pkts_txd",
5307 CTLFLAG_RD, &stats->bptc,
5308 "Broadcast Packets Transmitted");
5307 CTLFLAG_RD, &stats->bptc,
5308 "Broadcast Packets Transmitted");
5309 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "mcast_pkts_txd",
5309 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "mcast_pkts_txd",
5310 CTLFLAG_RD, &stats->mptc,
5311 "Multicast Packets Transmitted");
5310 CTLFLAG_RD, &stats->mptc,
5311 "Multicast Packets Transmitted");
5312 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "tx_frames_64",
5312 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "tx_frames_64",
5313 CTLFLAG_RD, &stats->ptc64,
5314 "64 byte frames transmitted ");
5313 CTLFLAG_RD, &stats->ptc64,
5314 "64 byte frames transmitted ");
5315 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "tx_frames_65_127",
5315 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "tx_frames_65_127",
5316 CTLFLAG_RD, &stats->ptc127,
5317 "65-127 byte frames transmitted");
5316 CTLFLAG_RD, &stats->ptc127,
5317 "65-127 byte frames transmitted");
5318 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "tx_frames_128_255",
5318 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "tx_frames_128_255",
5319 CTLFLAG_RD, &stats->ptc255,
5320 "128-255 byte frames transmitted");
5319 CTLFLAG_RD, &stats->ptc255,
5320 "128-255 byte frames transmitted");
5321 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "tx_frames_256_511",
5321 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "tx_frames_256_511",
5322 CTLFLAG_RD, &stats->ptc511,
5323 "256-511 byte frames transmitted");
5322 CTLFLAG_RD, &stats->ptc511,
5323 "256-511 byte frames transmitted");
5324 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "tx_frames_512_1023",
5324 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "tx_frames_512_1023",
5325 CTLFLAG_RD, &stats->ptc1023,
5326 "512-1023 byte frames transmitted");
5325 CTLFLAG_RD, &stats->ptc1023,
5326 "512-1023 byte frames transmitted");
5327 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "tx_frames_1024_1522",
5327 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "tx_frames_1024_1522",
5328 CTLFLAG_RD, &stats->ptc1522,
5329 "1024-1522 byte frames transmitted");
5328 CTLFLAG_RD, &stats->ptc1522,
5329 "1024-1522 byte frames transmitted");
5330 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "tso_txd",
5330 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "tso_txd",
5331 CTLFLAG_RD, &stats->tsctc,
5332 "TSO Contexts Transmitted");
5331 CTLFLAG_RD, &stats->tsctc,
5332 "TSO Contexts Transmitted");
5333 SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "tso_ctx_fail",
5333 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "tso_ctx_fail",
5334 CTLFLAG_RD, &stats->tsctfc,
5335 "TSO Contexts Failed");
5336
5337
5338 /* Interrupt Stats */
5339
5340 int_node = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, "interrupts",
5341 CTLFLAG_RD, NULL, "Interrupt Statistics");
5342 int_list = SYSCTL_CHILDREN(int_node);
5343
5334 CTLFLAG_RD, &stats->tsctfc,
5335 "TSO Contexts Failed");
5336
5337
5338 /* Interrupt Stats */
5339
5340 int_node = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, "interrupts",
5341 CTLFLAG_RD, NULL, "Interrupt Statistics");
5342 int_list = SYSCTL_CHILDREN(int_node);
5343
5344 SYSCTL_ADD_QUAD(ctx, int_list, OID_AUTO, "asserts",
5344 SYSCTL_ADD_UQUAD(ctx, int_list, OID_AUTO, "asserts",
5345 CTLFLAG_RD, &stats->iac,
5346 "Interrupt Assertion Count");
5347
5345 CTLFLAG_RD, &stats->iac,
5346 "Interrupt Assertion Count");
5347
5348 SYSCTL_ADD_QUAD(ctx, int_list, OID_AUTO, "rx_pkt_timer",
5348 SYSCTL_ADD_UQUAD(ctx, int_list, OID_AUTO, "rx_pkt_timer",
5349 CTLFLAG_RD, &stats->icrxptc,
5350 "Interrupt Cause Rx Pkt Timer Expire Count");
5351
5349 CTLFLAG_RD, &stats->icrxptc,
5350 "Interrupt Cause Rx Pkt Timer Expire Count");
5351
5352 SYSCTL_ADD_QUAD(ctx, int_list, OID_AUTO, "rx_abs_timer",
5352 SYSCTL_ADD_UQUAD(ctx, int_list, OID_AUTO, "rx_abs_timer",
5353 CTLFLAG_RD, &stats->icrxatc,
5354 "Interrupt Cause Rx Abs Timer Expire Count");
5355
5353 CTLFLAG_RD, &stats->icrxatc,
5354 "Interrupt Cause Rx Abs Timer Expire Count");
5355
5356 SYSCTL_ADD_QUAD(ctx, int_list, OID_AUTO, "tx_pkt_timer",
5356 SYSCTL_ADD_UQUAD(ctx, int_list, OID_AUTO, "tx_pkt_timer",
5357 CTLFLAG_RD, &stats->ictxptc,
5358 "Interrupt Cause Tx Pkt Timer Expire Count");
5359
5357 CTLFLAG_RD, &stats->ictxptc,
5358 "Interrupt Cause Tx Pkt Timer Expire Count");
5359
5360 SYSCTL_ADD_QUAD(ctx, int_list, OID_AUTO, "tx_abs_timer",
5360 SYSCTL_ADD_UQUAD(ctx, int_list, OID_AUTO, "tx_abs_timer",
5361 CTLFLAG_RD, &stats->ictxatc,
5362 "Interrupt Cause Tx Abs Timer Expire Count");
5363
5361 CTLFLAG_RD, &stats->ictxatc,
5362 "Interrupt Cause Tx Abs Timer Expire Count");
5363
5364 SYSCTL_ADD_QUAD(ctx, int_list, OID_AUTO, "tx_queue_empty",
5364 SYSCTL_ADD_UQUAD(ctx, int_list, OID_AUTO, "tx_queue_empty",
5365 CTLFLAG_RD, &stats->ictxqec,
5366 "Interrupt Cause Tx Queue Empty Count");
5367
5365 CTLFLAG_RD, &stats->ictxqec,
5366 "Interrupt Cause Tx Queue Empty Count");
5367
5368 SYSCTL_ADD_QUAD(ctx, int_list, OID_AUTO, "tx_queue_min_thresh",
5368 SYSCTL_ADD_UQUAD(ctx, int_list, OID_AUTO, "tx_queue_min_thresh",
5369 CTLFLAG_RD, &stats->ictxqmtc,
5370 "Interrupt Cause Tx Queue Min Thresh Count");
5371
5369 CTLFLAG_RD, &stats->ictxqmtc,
5370 "Interrupt Cause Tx Queue Min Thresh Count");
5371
5372 SYSCTL_ADD_QUAD(ctx, int_list, OID_AUTO, "rx_desc_min_thresh",
5372 SYSCTL_ADD_UQUAD(ctx, int_list, OID_AUTO, "rx_desc_min_thresh",
5373 CTLFLAG_RD, &stats->icrxdmtc,
5374 "Interrupt Cause Rx Desc Min Thresh Count");
5375
5373 CTLFLAG_RD, &stats->icrxdmtc,
5374 "Interrupt Cause Rx Desc Min Thresh Count");
5375
5376 SYSCTL_ADD_QUAD(ctx, int_list, OID_AUTO, "rx_overrun",
5376 SYSCTL_ADD_UQUAD(ctx, int_list, OID_AUTO, "rx_overrun",
5377 CTLFLAG_RD, &stats->icrxoc,
5378 "Interrupt Cause Receiver Overrun Count");
5379
5380 /* Host to Card Stats */
5381
5382 host_node = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, "host",
5383 CTLFLAG_RD, NULL,
5384 "Host to Card Statistics");
5385
5386 host_list = SYSCTL_CHILDREN(host_node);
5387
5377 CTLFLAG_RD, &stats->icrxoc,
5378 "Interrupt Cause Receiver Overrun Count");
5379
5380 /* Host to Card Stats */
5381
5382 host_node = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, "host",
5383 CTLFLAG_RD, NULL,
5384 "Host to Card Statistics");
5385
5386 host_list = SYSCTL_CHILDREN(host_node);
5387
5388 SYSCTL_ADD_QUAD(ctx, host_list, OID_AUTO, "breaker_tx_pkt",
5388 SYSCTL_ADD_UQUAD(ctx, host_list, OID_AUTO, "breaker_tx_pkt",
5389 CTLFLAG_RD, &stats->cbtmpc,
5390 "Circuit Breaker Tx Packet Count");
5391
5389 CTLFLAG_RD, &stats->cbtmpc,
5390 "Circuit Breaker Tx Packet Count");
5391
5392 SYSCTL_ADD_QUAD(ctx, host_list, OID_AUTO, "host_tx_pkt_discard",
5392 SYSCTL_ADD_UQUAD(ctx, host_list, OID_AUTO, "host_tx_pkt_discard",
5393 CTLFLAG_RD, &stats->htdpmc,
5394 "Host Transmit Discarded Packets");
5395
5393 CTLFLAG_RD, &stats->htdpmc,
5394 "Host Transmit Discarded Packets");
5395
5396 SYSCTL_ADD_QUAD(ctx, host_list, OID_AUTO, "rx_pkt",
5396 SYSCTL_ADD_UQUAD(ctx, host_list, OID_AUTO, "rx_pkt",
5397 CTLFLAG_RD, &stats->rpthc,
5398 "Rx Packets To Host");
5399
5397 CTLFLAG_RD, &stats->rpthc,
5398 "Rx Packets To Host");
5399
5400 SYSCTL_ADD_QUAD(ctx, host_list, OID_AUTO, "breaker_rx_pkts",
5400 SYSCTL_ADD_UQUAD(ctx, host_list, OID_AUTO, "breaker_rx_pkts",
5401 CTLFLAG_RD, &stats->cbrmpc,
5402 "Circuit Breaker Rx Packet Count");
5403
5401 CTLFLAG_RD, &stats->cbrmpc,
5402 "Circuit Breaker Rx Packet Count");
5403
5404 SYSCTL_ADD_QUAD(ctx, host_list, OID_AUTO, "breaker_rx_pkt_drop",
5404 SYSCTL_ADD_UQUAD(ctx, host_list, OID_AUTO, "breaker_rx_pkt_drop",
5405 CTLFLAG_RD, &stats->cbrdpc,
5406 "Circuit Breaker Rx Dropped Count");
5407
5405 CTLFLAG_RD, &stats->cbrdpc,
5406 "Circuit Breaker Rx Dropped Count");
5407
5408 SYSCTL_ADD_QUAD(ctx, host_list, OID_AUTO, "tx_good_pkt",
5408 SYSCTL_ADD_UQUAD(ctx, host_list, OID_AUTO, "tx_good_pkt",
5409 CTLFLAG_RD, &stats->hgptc,
5410 "Host Good Packets Tx Count");
5411
5409 CTLFLAG_RD, &stats->hgptc,
5410 "Host Good Packets Tx Count");
5411
5412 SYSCTL_ADD_QUAD(ctx, host_list, OID_AUTO, "breaker_tx_pkt_drop",
5412 SYSCTL_ADD_UQUAD(ctx, host_list, OID_AUTO, "breaker_tx_pkt_drop",
5413 CTLFLAG_RD, &stats->htcbdpc,
5414 "Host Tx Circuit Breaker Dropped Count");
5415
5413 CTLFLAG_RD, &stats->htcbdpc,
5414 "Host Tx Circuit Breaker Dropped Count");
5415
5416 SYSCTL_ADD_QUAD(ctx, host_list, OID_AUTO, "rx_good_bytes",
5416 SYSCTL_ADD_UQUAD(ctx, host_list, OID_AUTO, "rx_good_bytes",
5417 CTLFLAG_RD, &stats->hgorc,
5418 "Host Good Octets Received Count");
5419
5417 CTLFLAG_RD, &stats->hgorc,
5418 "Host Good Octets Received Count");
5419
5420 SYSCTL_ADD_QUAD(ctx, host_list, OID_AUTO, "tx_good_bytes",
5420 SYSCTL_ADD_UQUAD(ctx, host_list, OID_AUTO, "tx_good_bytes",
5421 CTLFLAG_RD, &stats->hgotc,
5422 "Host Good Octets Transmit Count");
5423
5421 CTLFLAG_RD, &stats->hgotc,
5422 "Host Good Octets Transmit Count");
5423
5424 SYSCTL_ADD_QUAD(ctx, host_list, OID_AUTO, "length_errors",
5424 SYSCTL_ADD_UQUAD(ctx, host_list, OID_AUTO, "length_errors",
5425 CTLFLAG_RD, &stats->lenerrs,
5426 "Length Errors");
5427
5425 CTLFLAG_RD, &stats->lenerrs,
5426 "Length Errors");
5427
5428 SYSCTL_ADD_QUAD(ctx, host_list, OID_AUTO, "serdes_violation_pkt",
5428 SYSCTL_ADD_UQUAD(ctx, host_list, OID_AUTO, "serdes_violation_pkt",
5429 CTLFLAG_RD, &stats->scvpc,
5430 "SerDes/SGMII Code Violation Pkt Count");
5431
5429 CTLFLAG_RD, &stats->scvpc,
5430 "SerDes/SGMII Code Violation Pkt Count");
5431
5432 SYSCTL_ADD_QUAD(ctx, host_list, OID_AUTO, "header_redir_missed",
5432 SYSCTL_ADD_UQUAD(ctx, host_list, OID_AUTO, "header_redir_missed",
5433 CTLFLAG_RD, &stats->hrmpc,
5434 "Header Redirection Missed Packet Count");
5435}
5436
5437
5438/**********************************************************************
5439 *
5440 * This routine provides a way to dump out the adapter eeprom,

--- 59 unchanged lines hidden ---
5433 CTLFLAG_RD, &stats->hrmpc,
5434 "Header Redirection Missed Packet Count");
5435}
5436
5437
5438/**********************************************************************
5439 *
5440 * This routine provides a way to dump out the adapter eeprom,

--- 59 unchanged lines hidden ---