xref: /onnv-gate/usr/src/uts/common/sys/ib/clients/rds/rds_kstat.h (revision 3302:e75a684d1697)
1*3302Sagiri /*
2*3302Sagiri  * CDDL HEADER START
3*3302Sagiri  *
4*3302Sagiri  * The contents of this file are subject to the terms of the
5*3302Sagiri  * Common Development and Distribution License (the "License").
6*3302Sagiri  * You may not use this file except in compliance with the License.
7*3302Sagiri  *
8*3302Sagiri  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9*3302Sagiri  * or http://www.opensolaris.org/os/licensing.
10*3302Sagiri  * See the License for the specific language governing permissions
11*3302Sagiri  * and limitations under the License.
12*3302Sagiri  *
13*3302Sagiri  * When distributing Covered Code, include this CDDL HEADER in each
14*3302Sagiri  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15*3302Sagiri  * If applicable, add the following below this CDDL HEADER, with the
16*3302Sagiri  * fields enclosed by brackets "[]" replaced with your own identifying
17*3302Sagiri  * information: Portions Copyright [yyyy] [name of copyright owner]
18*3302Sagiri  *
19*3302Sagiri  * CDDL HEADER END
20*3302Sagiri  */
21*3302Sagiri /*
22*3302Sagiri  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
23*3302Sagiri  * Use is subject to license terms.
24*3302Sagiri  */
25*3302Sagiri 
26*3302Sagiri #ifndef	_RDS_KSTAT_H
27*3302Sagiri #define	_RDS_KSTAT_H
28*3302Sagiri 
29*3302Sagiri #pragma ident	"%Z%%M%	%I%	%E% SMI"
30*3302Sagiri 
31*3302Sagiri #ifdef	__cplusplus
32*3302Sagiri extern "C" {
33*3302Sagiri #endif
34*3302Sagiri 
35*3302Sagiri #include <sys/types.h>
36*3302Sagiri #include <sys/kstat.h>
37*3302Sagiri 
38*3302Sagiri struct rds_kstat_s {
39*3302Sagiri 	kstat_named_t   rds_nports;
40*3302Sagiri 	kstat_named_t   rds_nsessions;
41*3302Sagiri 	kstat_named_t   rds_tx_bytes;
42*3302Sagiri 	kstat_named_t   rds_tx_pkts;
43*3302Sagiri 	kstat_named_t   rds_tx_errors;
44*3302Sagiri 	kstat_named_t   rds_rx_bytes;
45*3302Sagiri 	kstat_named_t   rds_rx_pkts;
46*3302Sagiri 	kstat_named_t   rds_rx_pkts_pending;
47*3302Sagiri 	kstat_named_t   rds_rx_errors;
48*3302Sagiri 	kstat_named_t   rds_tx_acks;
49*3302Sagiri 	kstat_named_t   rds_post_recv_buf_called;
50*3302Sagiri 	kstat_named_t   rds_stalls_triggered;
51*3302Sagiri 	kstat_named_t   rds_stalls_sent;
52*3302Sagiri 	kstat_named_t   rds_unstalls_triggered;
53*3302Sagiri 	kstat_named_t   rds_unstalls_sent;
54*3302Sagiri 	kstat_named_t   rds_stalls_recvd;
55*3302Sagiri 	kstat_named_t   rds_unstalls_recvd;
56*3302Sagiri 	kstat_named_t   rds_stalls_ignored;
57*3302Sagiri 	kstat_named_t   rds_enobufs;
58*3302Sagiri 	kstat_named_t   rds_ewouldblocks;
59*3302Sagiri 	kstat_named_t   rds_failovers;
60*3302Sagiri 	kstat_named_t	rds_port_quota;
61*3302Sagiri 	kstat_named_t   rds_port_quota_adjusted;
62*3302Sagiri };
63*3302Sagiri 
64*3302Sagiri extern void rds_increment_kstat(kstat_named_t *, boolean_t, uint_t);
65*3302Sagiri extern void rds_decrement_kstat(kstat_named_t *, boolean_t, uint_t);
66*3302Sagiri extern void rds_set_kstat(kstat_named_t *, boolean_t, ulong_t);
67*3302Sagiri extern ulong_t rds_get_kstat(kstat_named_t *, boolean_t);
68*3302Sagiri 
69*3302Sagiri extern struct rds_kstat_s  rds_kstat;
70*3302Sagiri 
71*3302Sagiri #define	RDS_SET_NPORT(num) \
72*3302Sagiri     rds_set_kstat(&rds_kstat.rds_nports, B_TRUE, num)
73*3302Sagiri #define	RDS_INCR_NPORT() \
74*3302Sagiri     rds_increment_kstat(&rds_kstat.rds_nports, B_TRUE, 1)
75*3302Sagiri #define	RDS_DECR_NPORT() \
76*3302Sagiri     rds_decrement_kstat(&rds_kstat.rds_nports, B_TRUE, 1)
77*3302Sagiri #define	RDS_GET_NPORT() \
78*3302Sagiri     rds_get_kstat(&rds_kstat.rds_nports, B_TRUE)
79*3302Sagiri 
80*3302Sagiri #define	RDS_INCR_SESS() \
81*3302Sagiri     rds_increment_kstat(&rds_kstat.rds_nsessions, B_FALSE, 1)
82*3302Sagiri #define	RDS_DECR_SESS()  \
83*3302Sagiri     rds_decrement_kstat(&rds_kstat.rds_nsessions, B_FALSE, 1)
84*3302Sagiri 
85*3302Sagiri #define	RDS_INCR_TXBYTES(num) \
86*3302Sagiri     rds_increment_kstat(&rds_kstat.rds_tx_bytes, B_FALSE, num)
87*3302Sagiri 
88*3302Sagiri #define	RDS_INCR_TXPKTS(num) \
89*3302Sagiri     rds_increment_kstat(&rds_kstat.rds_tx_pkts, B_FALSE, num)
90*3302Sagiri 
91*3302Sagiri #define	RDS_INCR_TXERRS() \
92*3302Sagiri     rds_increment_kstat(&rds_kstat.rds_tx_errors, B_FALSE, 1)
93*3302Sagiri 
94*3302Sagiri #define	RDS_INCR_RXBYTES(num) \
95*3302Sagiri     rds_increment_kstat(&rds_kstat.rds_rx_bytes, B_FALSE, num)
96*3302Sagiri 
97*3302Sagiri #define	RDS_INCR_RXPKTS(num) \
98*3302Sagiri     rds_increment_kstat(&rds_kstat.rds_rx_pkts, B_FALSE, num)
99*3302Sagiri 
100*3302Sagiri #define	RDS_INCR_RXPKTS_PEND(num) \
101*3302Sagiri     rds_increment_kstat(&rds_kstat.rds_rx_pkts_pending, B_TRUE, num)
102*3302Sagiri #define	RDS_DECR_RXPKTS_PEND(num) \
103*3302Sagiri     rds_decrement_kstat(&rds_kstat.rds_rx_pkts_pending, B_TRUE, num)
104*3302Sagiri #define	RDS_GET_RXPKTS_PEND() \
105*3302Sagiri     rds_get_kstat(&rds_kstat.rds_rx_pkts_pending, B_TRUE)
106*3302Sagiri 
107*3302Sagiri #define	RDS_INCR_RXERRS() \
108*3302Sagiri     rds_increment_kstat(&rds_kstat.rds_rx_errors, B_FALSE, 1)
109*3302Sagiri 
110*3302Sagiri #define	RDS_INCR_TXACKS() \
111*3302Sagiri     rds_increment_kstat(&rds_kstat.rds_tx_acks, B_FALSE, 1)
112*3302Sagiri 
113*3302Sagiri #define	RDS_INCR_POST_RCV_BUF_CALLS() \
114*3302Sagiri     rds_increment_kstat(&rds_kstat.rds_post_recv_buf_called, B_FALSE, 1)
115*3302Sagiri 
116*3302Sagiri #define	RDS_INCR_STALLS_TRIGGERED() \
117*3302Sagiri     rds_increment_kstat(&rds_kstat.rds_stalls_triggered, B_FALSE, 1)
118*3302Sagiri 
119*3302Sagiri #define	RDS_INCR_STALLS_SENT() \
120*3302Sagiri     rds_increment_kstat(&rds_kstat.rds_stalls_sent, B_FALSE, 1)
121*3302Sagiri 
122*3302Sagiri #define	RDS_INCR_UNSTALLS_TRIGGERED() \
123*3302Sagiri     rds_increment_kstat(&rds_kstat.rds_unstalls_triggered, B_FALSE, 1)
124*3302Sagiri 
125*3302Sagiri #define	RDS_INCR_UNSTALLS_SENT() \
126*3302Sagiri     rds_increment_kstat(&rds_kstat.rds_unstalls_sent, B_FALSE, 1)
127*3302Sagiri 
128*3302Sagiri #define	RDS_INCR_STALLS_RCVD() \
129*3302Sagiri     rds_increment_kstat(&rds_kstat.rds_stalls_recvd, B_FALSE, 1)
130*3302Sagiri 
131*3302Sagiri #define	RDS_INCR_UNSTALLS_RCVD() \
132*3302Sagiri     rds_increment_kstat(&rds_kstat.rds_unstalls_recvd, B_FALSE, 1)
133*3302Sagiri 
134*3302Sagiri #define	RDS_INCR_STALLS_IGNORED() \
135*3302Sagiri     rds_increment_kstat(&rds_kstat.rds_stalls_ignored, B_FALSE, 1)
136*3302Sagiri 
137*3302Sagiri #define	RDS_INCR_ENOBUFS() \
138*3302Sagiri     rds_increment_kstat(&rds_kstat.rds_enobufs, B_FALSE, 1)
139*3302Sagiri 
140*3302Sagiri #define	RDS_INCR_EWOULDBLOCK() \
141*3302Sagiri     rds_increment_kstat(&rds_kstat.rds_ewouldblocks, B_FALSE, 1)
142*3302Sagiri 
143*3302Sagiri #define	RDS_INCR_FAILOVERS() \
144*3302Sagiri     rds_increment_kstat(&rds_kstat.rds_failovers, B_FALSE, 1)
145*3302Sagiri 
146*3302Sagiri #define	RDS_SET_PORT_QUOTA(num) \
147*3302Sagiri     rds_set_kstat(&rds_kstat.rds_port_quota, B_TRUE, num)
148*3302Sagiri #define	RDS_GET_PORT_QUOTA() \
149*3302Sagiri     rds_get_kstat(&rds_kstat.rds_port_quota, B_TRUE)
150*3302Sagiri 
151*3302Sagiri #define	RDS_INCR_PORT_QUOTA_ADJUSTED() \
152*3302Sagiri     rds_increment_kstat(&rds_kstat.rds_port_quota_adjusted, B_FALSE, 1)
153*3302Sagiri 
154*3302Sagiri 
155*3302Sagiri #ifdef	__cplusplus
156*3302Sagiri }
157*3302Sagiri #endif
158*3302Sagiri 
159*3302Sagiri #endif	/* _RDS_KSTAT_H */
160