xref: /onnv-gate/usr/src/uts/sun4v/sys/vgen_stats.h (revision 12011:2377022c7a2d)
15373Sraghuram /*
25373Sraghuram  * CDDL HEADER START
35373Sraghuram  *
45373Sraghuram  * The contents of this file are subject to the terms of the
55373Sraghuram  * Common Development and Distribution License (the "License").
65373Sraghuram  * You may not use this file except in compliance with the License.
75373Sraghuram  *
85373Sraghuram  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
95373Sraghuram  * or http://www.opensolaris.org/os/licensing.
105373Sraghuram  * See the License for the specific language governing permissions
115373Sraghuram  * and limitations under the License.
125373Sraghuram  *
135373Sraghuram  * When distributing Covered Code, include this CDDL HEADER in each
145373Sraghuram  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
155373Sraghuram  * If applicable, add the following below this CDDL HEADER, with the
165373Sraghuram  * fields enclosed by brackets "[]" replaced with your own identifying
175373Sraghuram  * information: Portions Copyright [yyyy] [name of copyright owner]
185373Sraghuram  *
195373Sraghuram  * CDDL HEADER END
205373Sraghuram  */
215373Sraghuram 
225373Sraghuram /*
23*12011SSriharsha.Basavapatna@Sun.COM  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
245373Sraghuram  * Use is subject to license terms.
255373Sraghuram  */
265373Sraghuram 
275373Sraghuram #ifndef _VGEN_STATS_H
285373Sraghuram #define	_VGEN_STATS_H
295373Sraghuram 
305373Sraghuram #ifdef __cplusplus
315373Sraghuram extern "C" {
325373Sraghuram #endif
335373Sraghuram 
345373Sraghuram typedef struct vgen_stats {
355373Sraghuram 
365373Sraghuram 	/* Link Input/Output stats */
375373Sraghuram 	uint64_t	ipackets;	/* # rx packets */
385373Sraghuram 	uint64_t	ierrors;	/* # rx error */
395373Sraghuram 	uint64_t	opackets;	/* # tx packets */
405373Sraghuram 	uint64_t	oerrors;	/* # tx error */
415373Sraghuram 
425373Sraghuram 	/* MIB II variables */
435373Sraghuram 	uint64_t	rbytes;		/* # bytes received */
445373Sraghuram 	uint64_t	obytes;		/* # bytes transmitted */
455373Sraghuram 	uint32_t	multircv;	/* # multicast packets received */
465373Sraghuram 	uint32_t	multixmt;	/* # multicast packets for xmit */
475373Sraghuram 	uint32_t	brdcstrcv;	/* # broadcast packets received */
485373Sraghuram 	uint32_t	brdcstxmt;	/* # broadcast packets for xmit */
495373Sraghuram 	uint32_t	norcvbuf;	/* # rcv packets discarded */
505373Sraghuram 	uint32_t	noxmtbuf;	/* # xmit packets discarded */
515373Sraghuram 
525373Sraghuram 	/* Tx Statistics */
535373Sraghuram 	uint32_t	tx_no_desc;	/* # out of transmit descriptors */
545935Ssb155480 	uint32_t	tx_qfull;	/* pkts dropped due to qfull in vsw */
555935Ssb155480 	uint32_t	tx_pri_fail;	/* # tx priority packet failures */
565935Ssb155480 	uint64_t	tx_pri_packets;	/* # priority packets transmitted */
575935Ssb155480 	uint64_t	tx_pri_bytes;	/* # priority bytes transmitted */
585373Sraghuram 
595373Sraghuram 	/* Rx Statistics */
605373Sraghuram 	uint32_t	rx_allocb_fail;	/* # rx buf allocb() failures */
615373Sraghuram 	uint32_t	rx_vio_allocb_fail; /* # vio_allocb() failures */
625373Sraghuram 	uint32_t	rx_lost_pkts;	/* # rx lost packets */
635935Ssb155480 	uint32_t	rx_pri_fail;	/* # rx priority packet failures */
645935Ssb155480 	uint64_t	rx_pri_packets;	/* # priority packets received */
655935Ssb155480 	uint64_t	rx_pri_bytes;	/* # priority bytes received */
665373Sraghuram 
675373Sraghuram 	/* Callback statistics */
685373Sraghuram 	uint32_t	callbacks;		/* # callbacks */
69*12011SSriharsha.Basavapatna@Sun.COM 	uint32_t	dring_data_msgs_sent;	/* # dring data msgs sent */
70*12011SSriharsha.Basavapatna@Sun.COM 	uint32_t	dring_data_acks_rcvd;	/* # dring data acks recvd  */
71*12011SSriharsha.Basavapatna@Sun.COM 	uint32_t	dring_stopped_acks_rcvd; /* # dring stopped acks rcvd */
72*12011SSriharsha.Basavapatna@Sun.COM 	uint32_t	dring_data_msgs_rcvd;	/* # dring data msgs rcvd */
73*12011SSriharsha.Basavapatna@Sun.COM 	uint32_t	dring_data_acks_sent;	/* # dring data acks sent  */
74*12011SSriharsha.Basavapatna@Sun.COM 	uint32_t	dring_stopped_acks_sent; /* # dring stopped acks sent */
75*12011SSriharsha.Basavapatna@Sun.COM 	uint32_t	dring_mode;		/* dring mode */
765373Sraghuram 
775373Sraghuram } vgen_stats_t;
785373Sraghuram 
795373Sraghuram typedef struct vgen_kstats {
805373Sraghuram 	/*
815373Sraghuram 	 * Link Input/Output stats
825373Sraghuram 	 */
835373Sraghuram 	kstat_named_t	ipackets;
845373Sraghuram 	kstat_named_t	ipackets64;
855373Sraghuram 	kstat_named_t	ierrors;
865373Sraghuram 	kstat_named_t	opackets;
875373Sraghuram 	kstat_named_t	opackets64;
885373Sraghuram 	kstat_named_t	oerrors;
895373Sraghuram 
905373Sraghuram 	/*
915373Sraghuram 	 * required by kstat for MIB II objects(RFC 1213)
925373Sraghuram 	 */
935373Sraghuram 	kstat_named_t	rbytes; 	/* MIB - ifInOctets */
945373Sraghuram 	kstat_named_t	rbytes64;
955373Sraghuram 	kstat_named_t	obytes; 	/* MIB - ifOutOctets */
965373Sraghuram 	kstat_named_t	obytes64;
975373Sraghuram 	kstat_named_t	multircv; 	/* MIB - ifInNUcastPkts */
985373Sraghuram 	kstat_named_t	multixmt; 	/* MIB - ifOutNUcastPkts */
995373Sraghuram 	kstat_named_t	brdcstrcv;	/* MIB - ifInNUcastPkts */
1005373Sraghuram 	kstat_named_t	brdcstxmt;	/* MIB - ifOutNUcastPkts */
1015373Sraghuram 	kstat_named_t	norcvbuf; 	/* MIB - ifInDiscards */
1025373Sraghuram 	kstat_named_t	noxmtbuf; 	/* MIB - ifOutDiscards */
1035373Sraghuram 
1045373Sraghuram 	/* Tx Statistics */
1055373Sraghuram 	kstat_named_t	tx_no_desc;	/* # out of transmit descriptors */
1065935Ssb155480 	kstat_named_t	tx_qfull;	/* pkts dropped due to qfull in vsw */
1075935Ssb155480 	kstat_named_t	tx_pri_fail;	/* # tx priority packet failures */
1085935Ssb155480 	kstat_named_t	tx_pri_packets;	/* # priority packets transmitted */
1095935Ssb155480 	kstat_named_t	tx_pri_bytes;	/* # priority bytes transmitted */
1105373Sraghuram 
1115373Sraghuram 	/* Rx Statistics */
1125373Sraghuram 	kstat_named_t	rx_allocb_fail;	/* # rx buf allocb failures */
1135373Sraghuram 	kstat_named_t	rx_vio_allocb_fail; /* # vio_allocb() failures */
1145373Sraghuram 	kstat_named_t	rx_lost_pkts;	/* # rx lost packets */
1155935Ssb155480 	kstat_named_t	rx_pri_fail;	/* # rx priority packet failures */
1165935Ssb155480 	kstat_named_t	rx_pri_packets;	/* # priority packets received */
1175935Ssb155480 	kstat_named_t	rx_pri_bytes;	/* # priority bytes received */
1185373Sraghuram 
1195373Sraghuram 	/* Callback statistics */
1205373Sraghuram 	kstat_named_t	callbacks;		/* # callbacks */
121*12011SSriharsha.Basavapatna@Sun.COM 	kstat_named_t	dring_data_msgs_sent;	/* # dring data msgs sent */
122*12011SSriharsha.Basavapatna@Sun.COM 	kstat_named_t	dring_data_acks_rcvd;	/* # dring data acks recvd  */
123*12011SSriharsha.Basavapatna@Sun.COM 	kstat_named_t	dring_stopped_acks_rcvd; /* # dring stopped acks rcvd */
124*12011SSriharsha.Basavapatna@Sun.COM 	kstat_named_t	dring_data_msgs_rcvd;	/* # dring data msgs rcvd */
125*12011SSriharsha.Basavapatna@Sun.COM 	kstat_named_t	dring_data_acks_sent;	/* # dring data acks sent  */
126*12011SSriharsha.Basavapatna@Sun.COM 	kstat_named_t	dring_stopped_acks_sent; /* # dring stopped acks sent */
127*12011SSriharsha.Basavapatna@Sun.COM 	kstat_named_t	dring_mode;		/* dring mode */
1285373Sraghuram 
1295373Sraghuram } vgen_kstats_t;
1305373Sraghuram 
1315373Sraghuram kstat_t *vgen_setup_kstats(char *ks_mod, int instance,
1325373Sraghuram     char *ks_name, vgen_stats_t *statsp);
1335373Sraghuram void vgen_destroy_kstats(kstat_t *ksp);
1345373Sraghuram int vgen_kstat_update(kstat_t *ksp, int rw);
1355373Sraghuram 
1365373Sraghuram #ifdef __cplusplus
1375373Sraghuram }
1385373Sraghuram #endif
1395373Sraghuram 
1405373Sraghuram #endif	/* _VGEN_STATS_H */
141