in gve_sysctl.c [33:109]
static SYSCTL_NODE(_hw, OID_AUTO, gve, CTLFLAG_RD | CTLFLAG_MPSAFE, 0,
"GVE driver parameters");
bool gve_disable_hw_lro = false;
SYSCTL_BOOL(_hw_gve, OID_AUTO, disable_hw_lro, CTLFLAG_RDTUN,
&gve_disable_hw_lro, 0, "Controls if hardware LRO is used");
char gve_queue_format[8];
SYSCTL_STRING(_hw_gve, OID_AUTO, queue_format, CTLFLAG_RD,
&gve_queue_format, 0, "Queue format being used by the iface");
char gve_version[8];
SYSCTL_STRING(_hw_gve, OID_AUTO, driver_version, CTLFLAG_RD,
&gve_version, 0, "Driver version");
static void
gve_setup_rxq_sysctl(struct sysctl_ctx_list *ctx,
struct sysctl_oid_list *child, struct gve_rx_ring *rxq)
{
struct sysctl_oid *node;
struct sysctl_oid_list *list;
struct gve_rxq_stats *stats;
char namebuf[16];
snprintf(namebuf, sizeof(namebuf), "rxq%d", rxq->com.id);
node = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, namebuf,
CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, "Receive Queue");
list = SYSCTL_CHILDREN(node);
stats = &rxq->stats;
SYSCTL_ADD_COUNTER_U64(ctx, list, OID_AUTO,
"rx_bytes", CTLFLAG_RD,
&stats->rbytes, "Bytes received");
SYSCTL_ADD_COUNTER_U64(ctx, list, OID_AUTO,
"rx_packets", CTLFLAG_RD,
&stats->rpackets, "Packets received");
SYSCTL_ADD_COUNTER_U64(ctx, list, OID_AUTO, "rx_copybreak_cnt",
CTLFLAG_RD, &stats->rx_copybreak_cnt,
"Total frags with mbufs allocated for copybreak");
SYSCTL_ADD_COUNTER_U64(ctx, list, OID_AUTO, "rx_frag_flip_cnt",
CTLFLAG_RD, &stats->rx_frag_flip_cnt,
"Total frags that allocated mbuf with page flip");
SYSCTL_ADD_COUNTER_U64(ctx, list, OID_AUTO, "rx_frag_copy_cnt",
CTLFLAG_RD, &stats->rx_frag_copy_cnt,
"Total frags with mbuf that copied payload into mbuf");
SYSCTL_ADD_COUNTER_U64(ctx, list, OID_AUTO, "rx_dropped_pkt",
CTLFLAG_RD, &stats->rx_dropped_pkt,
"Total rx packets dropped");
SYSCTL_ADD_COUNTER_U64(ctx, list, OID_AUTO,
"rx_dropped_pkt_desc_err", CTLFLAG_RD,
&stats->rx_dropped_pkt_desc_err,
"Packets dropped due to descriptor error");
SYSCTL_ADD_COUNTER_U64(ctx, list, OID_AUTO,
"rx_dropped_pkt_buf_post_fail", CTLFLAG_RD,
&stats->rx_dropped_pkt_buf_post_fail,
"Packets dropped due to failure to post enough buffers");
SYSCTL_ADD_COUNTER_U64(ctx, list, OID_AUTO,
"rx_dropped_pkt_mbuf_alloc_fail", CTLFLAG_RD,
&stats->rx_dropped_pkt_mbuf_alloc_fail,
"Packets dropped due to failed mbuf allocation");
SYSCTL_ADD_COUNTER_U64(ctx, list, OID_AUTO,
"rx_mbuf_dmamap_err", CTLFLAG_RD,
&stats->rx_mbuf_dmamap_err,
"Number of rx mbufs which could not be dma mapped");
SYSCTL_ADD_COUNTER_U64(ctx, list, OID_AUTO,
"rx_mbuf_mclget_null", CTLFLAG_RD,
&stats->rx_mbuf_mclget_null,
"Number of times when there were no cluster mbufs");
SYSCTL_ADD_U32(ctx, list, OID_AUTO,
"rx_completed_desc", CTLFLAG_RD,
&rxq->cnt, 0, "Number of descriptors completed");
SYSCTL_ADD_U32(ctx, list, OID_AUTO,
"num_desc_posted", CTLFLAG_RD,
&rxq->fill_cnt, rxq->fill_cnt,
"Toal number of descriptors posted");
}