static SYSCTL_NODE()

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");
}