Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/neta/if_mvneta.c
Show All 12 Lines | |||||
/* dev.mvneta.[unit].mib.<mibs> */ | /* dev.mvneta.[unit].mib.<mibs> */ | ||||
for (i = 0; i < MVNETA_PORTMIB_NOCOUNTER; i++) { | for (i = 0; i < MVNETA_PORTMIB_NOCOUNTER; i++) { | ||||
struct mvneta_sysctl_mib *mib_arg = &sc->sysctl_mib[i]; | struct mvneta_sysctl_mib *mib_arg = &sc->sysctl_mib[i]; | ||||
mib_arg->sc = sc; | mib_arg->sc = sc; | ||||
mib_arg->index = i; | mib_arg->index = i; | ||||
SYSCTL_ADD_PROC(ctx, mchildren, OID_AUTO, | SYSCTL_ADD_PROC(ctx, mchildren, OID_AUTO, | ||||
mvneta_mib_list[i].sysctl_name, | mvneta_mib_list[i].sysctl_name, | ||||
CTLTYPE_U64|CTLFLAG_RD, (void *)mib_arg, 0, | CTLTYPE_U64 | CTLFLAG_RD | CTLFLAG_NEEDGIANT, | ||||
(void *)mib_arg, 0, | |||||
sysctl_read_mib, "I", mvneta_mib_list[i].desc); | sysctl_read_mib, "I", mvneta_mib_list[i].desc); | ||||
} | } | ||||
SYSCTL_ADD_UQUAD(ctx, mchildren, OID_AUTO, "rx_discard", | SYSCTL_ADD_UQUAD(ctx, mchildren, OID_AUTO, "rx_discard", | ||||
CTLFLAG_RD, &sc->counter_pdfc, "Port Rx Discard Frame Counter"); | CTLFLAG_RD, &sc->counter_pdfc, "Port Rx Discard Frame Counter"); | ||||
SYSCTL_ADD_UQUAD(ctx, mchildren, OID_AUTO, "overrun", | SYSCTL_ADD_UQUAD(ctx, mchildren, OID_AUTO, "overrun", | ||||
CTLFLAG_RD, &sc->counter_pofc, "Port Overrun Frame Counter"); | CTLFLAG_RD, &sc->counter_pofc, "Port Overrun Frame Counter"); | ||||
SYSCTL_ADD_UINT(ctx, mchildren, OID_AUTO, "watchdog", | SYSCTL_ADD_UINT(ctx, mchildren, OID_AUTO, "watchdog", | ||||
CTLFLAG_RD, &sc->counter_watchdog, 0, "TX Watchdog Counter"); | CTLFLAG_RD, &sc->counter_watchdog, 0, "TX Watchdog Counter"); | ||||
SYSCTL_ADD_PROC(ctx, mchildren, OID_AUTO, "reset", | SYSCTL_ADD_PROC(ctx, mchildren, OID_AUTO, "reset", | ||||
CTLTYPE_INT|CTLFLAG_RW, (void *)sc, 0, | CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, (void *)sc, 0, | ||||
sysctl_clear_mib, "I", "Reset MIB counters"); | sysctl_clear_mib, "I", "Reset MIB counters"); | ||||
for (q = 0; q < MVNETA_RX_QNUM_MAX; q++) { | for (q = 0; q < MVNETA_RX_QNUM_MAX; q++) { | ||||
rxarg = &sc->sysctl_rx_queue[q]; | rxarg = &sc->sysctl_rx_queue[q]; | ||||
rxarg->sc = sc; | rxarg->sc = sc; | ||||
rxarg->queue = q; | rxarg->queue = q; | ||||
rxarg->rxtx = MVNETA_SYSCTL_RX; | rxarg->rxtx = MVNETA_SYSCTL_RX; | ||||
/* hw.mvneta.mvneta[unit].rx.[queue] */ | /* hw.mvneta.mvneta[unit].rx.[queue] */ | ||||
tree = SYSCTL_ADD_NODE(ctx, rxchildren, OID_AUTO, | tree = SYSCTL_ADD_NODE(ctx, rxchildren, OID_AUTO, | ||||
sysctl_queue_names[q], CTLFLAG_RD, 0, | sysctl_queue_names[q], CTLFLAG_RD, 0, | ||||
sysctl_queue_descrs[q]); | sysctl_queue_descrs[q]); | ||||
qchildren = SYSCTL_CHILDREN(tree); | qchildren = SYSCTL_CHILDREN(tree); | ||||
/* hw.mvneta.mvneta[unit].rx.[queue].threshold_timer_us */ | /* hw.mvneta.mvneta[unit].rx.[queue].threshold_timer_us */ | ||||
SYSCTL_ADD_PROC(ctx, qchildren, OID_AUTO, "threshold_timer_us", | SYSCTL_ADD_PROC(ctx, qchildren, OID_AUTO, "threshold_timer_us", | ||||
CTLTYPE_UINT | CTLFLAG_RW, rxarg, 0, | CTLTYPE_UINT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, rxarg, 0, | ||||
sysctl_set_queue_rxthtime, "I", | sysctl_set_queue_rxthtime, "I", | ||||
"interrupt coalescing threshold timer [us]"); | "interrupt coalescing threshold timer [us]"); | ||||
} | } | ||||
} | } | ||||
/* | /* | ||||
* MIB | * MIB | ||||
*/ | */ | ||||
Show All 12 Lines |