Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/ixgbe/if_ix.c
Show First 20 Lines • Show All 3,587 Lines • ▼ Show 20 Lines | IXGBE_SET_IERRORS(adapter, adapter->stats.pf.crcerrs | ||||
+ adapter->stats.pf.rlec); | + adapter->stats.pf.rlec); | ||||
} | } | ||||
#if __FreeBSD_version >= 1100036 | #if __FreeBSD_version >= 1100036 | ||||
static uint64_t | static uint64_t | ||||
ixgbe_get_counter(struct ifnet *ifp, ift_counter cnt) | ixgbe_get_counter(struct ifnet *ifp, ift_counter cnt) | ||||
{ | { | ||||
struct adapter *adapter; | struct adapter *adapter; | ||||
struct tx_ring *txr; | |||||
uint64_t rv; | |||||
adapter = if_getsoftc(ifp); | adapter = if_getsoftc(ifp); | ||||
switch (cnt) { | switch (cnt) { | ||||
case IFCOUNTER_IPACKETS: | case IFCOUNTER_IPACKETS: | ||||
return (adapter->ipackets); | return (adapter->ipackets); | ||||
case IFCOUNTER_OPACKETS: | case IFCOUNTER_OPACKETS: | ||||
return (adapter->opackets); | return (adapter->opackets); | ||||
case IFCOUNTER_IBYTES: | case IFCOUNTER_IBYTES: | ||||
return (adapter->ibytes); | return (adapter->ibytes); | ||||
case IFCOUNTER_OBYTES: | case IFCOUNTER_OBYTES: | ||||
return (adapter->obytes); | return (adapter->obytes); | ||||
case IFCOUNTER_IMCASTS: | case IFCOUNTER_IMCASTS: | ||||
return (adapter->imcasts); | return (adapter->imcasts); | ||||
case IFCOUNTER_OMCASTS: | case IFCOUNTER_OMCASTS: | ||||
return (adapter->omcasts); | return (adapter->omcasts); | ||||
case IFCOUNTER_COLLISIONS: | case IFCOUNTER_COLLISIONS: | ||||
return (0); | return (0); | ||||
case IFCOUNTER_IQDROPS: | case IFCOUNTER_IQDROPS: | ||||
return (adapter->iqdrops); | return (adapter->iqdrops); | ||||
case IFCOUNTER_OQDROPS: | |||||
rv = 0; | |||||
txr = adapter->tx_rings; | |||||
for (int i = 0; i < adapter->num_queues; i++, txr++) | |||||
rv += txr->br->br_drops; | |||||
return (rv); | |||||
case IFCOUNTER_IERRORS: | case IFCOUNTER_IERRORS: | ||||
return (adapter->ierrors); | return (adapter->ierrors); | ||||
default: | default: | ||||
return (if_get_counter_default(ifp, cnt)); | return (if_get_counter_default(ifp, cnt)); | ||||
} | } | ||||
} | } | ||||
#endif | #endif | ||||
▲ Show 20 Lines • Show All 162 Lines • ▼ Show 20 Lines | SYSCTL_ADD_ULONG(ctx, queue_list, OID_AUTO, "no_tx_dma_setup", | ||||
CTLFLAG_RD, &txr->no_tx_dma_setup, | CTLFLAG_RD, &txr->no_tx_dma_setup, | ||||
"Driver tx dma failure in xmit"); | "Driver tx dma failure in xmit"); | ||||
SYSCTL_ADD_UQUAD(ctx, queue_list, OID_AUTO, "no_desc_avail", | SYSCTL_ADD_UQUAD(ctx, queue_list, OID_AUTO, "no_desc_avail", | ||||
CTLFLAG_RD, &txr->no_desc_avail, | CTLFLAG_RD, &txr->no_desc_avail, | ||||
"Queue No Descriptor Available"); | "Queue No Descriptor Available"); | ||||
SYSCTL_ADD_UQUAD(ctx, queue_list, OID_AUTO, "tx_packets", | SYSCTL_ADD_UQUAD(ctx, queue_list, OID_AUTO, "tx_packets", | ||||
CTLFLAG_RD, &txr->total_packets, | CTLFLAG_RD, &txr->total_packets, | ||||
"Queue Packets Transmitted"); | "Queue Packets Transmitted"); | ||||
SYSCTL_ADD_UQUAD(ctx, queue_list, OID_AUTO, "br_drops", | |||||
CTLFLAG_RD, &txr->br->br_drops, | |||||
"Packets dropped in buf_ring"); | |||||
} | } | ||||
for (int i = 0; i < adapter->num_queues; i++, rxr++) { | for (int i = 0; i < adapter->num_queues; i++, rxr++) { | ||||
snprintf(namebuf, QUEUE_NAME_LEN, "queue%d", i); | snprintf(namebuf, QUEUE_NAME_LEN, "queue%d", i); | ||||
queue_node = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, namebuf, | queue_node = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, namebuf, | ||||
CTLFLAG_RD, NULL, "Queue Name"); | CTLFLAG_RD, NULL, "Queue Name"); | ||||
queue_list = SYSCTL_CHILDREN(queue_node); | queue_list = SYSCTL_CHILDREN(queue_node); | ||||
▲ Show 20 Lines • Show All 367 Lines • Show Last 20 Lines |