xref: /illumos-gate/usr/src/uts/common/inet/kstatcom.h (revision 2d6eb4a5)
1*7c478bd9Sstevel@tonic-gate /*
2*7c478bd9Sstevel@tonic-gate  * CDDL HEADER START
3*7c478bd9Sstevel@tonic-gate  *
4*7c478bd9Sstevel@tonic-gate  * The contents of this file are subject to the terms of the
5*7c478bd9Sstevel@tonic-gate  * Common Development and Distribution License, Version 1.0 only
6*7c478bd9Sstevel@tonic-gate  * (the "License").  You may not use this file except in compliance
7*7c478bd9Sstevel@tonic-gate  * with the License.
8*7c478bd9Sstevel@tonic-gate  *
9*7c478bd9Sstevel@tonic-gate  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10*7c478bd9Sstevel@tonic-gate  * or http://www.opensolaris.org/os/licensing.
11*7c478bd9Sstevel@tonic-gate  * See the License for the specific language governing permissions
12*7c478bd9Sstevel@tonic-gate  * and limitations under the License.
13*7c478bd9Sstevel@tonic-gate  *
14*7c478bd9Sstevel@tonic-gate  * When distributing Covered Code, include this CDDL HEADER in each
15*7c478bd9Sstevel@tonic-gate  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16*7c478bd9Sstevel@tonic-gate  * If applicable, add the following below this CDDL HEADER, with the
17*7c478bd9Sstevel@tonic-gate  * fields enclosed by brackets "[]" replaced with your own identifying
18*7c478bd9Sstevel@tonic-gate  * information: Portions Copyright [yyyy] [name of copyright owner]
19*7c478bd9Sstevel@tonic-gate  *
20*7c478bd9Sstevel@tonic-gate  * CDDL HEADER END
21*7c478bd9Sstevel@tonic-gate  */
22*7c478bd9Sstevel@tonic-gate /*
23*7c478bd9Sstevel@tonic-gate  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
24*7c478bd9Sstevel@tonic-gate  * Use is subject to license terms.
25*7c478bd9Sstevel@tonic-gate  */
26*7c478bd9Sstevel@tonic-gate 
27*7c478bd9Sstevel@tonic-gate #ifndef	_INET_KSTATCOM_H
28*7c478bd9Sstevel@tonic-gate #define	_INET_KSTATCOM_H
29*7c478bd9Sstevel@tonic-gate 
30*7c478bd9Sstevel@tonic-gate #ifdef	__cplusplus
31*7c478bd9Sstevel@tonic-gate extern "C" {
32*7c478bd9Sstevel@tonic-gate #endif
33*7c478bd9Sstevel@tonic-gate 
34*7c478bd9Sstevel@tonic-gate 
35*7c478bd9Sstevel@tonic-gate #include <sys/kstat.h>
36*7c478bd9Sstevel@tonic-gate 
37*7c478bd9Sstevel@tonic-gate 
38*7c478bd9Sstevel@tonic-gate 
39*7c478bd9Sstevel@tonic-gate typedef struct ip_named_kstat {
40*7c478bd9Sstevel@tonic-gate 	kstat_named_t forwarding;
41*7c478bd9Sstevel@tonic-gate 	kstat_named_t defaultTTL;
42*7c478bd9Sstevel@tonic-gate 	kstat_named_t inReceives;
43*7c478bd9Sstevel@tonic-gate 	kstat_named_t inHdrErrors;
44*7c478bd9Sstevel@tonic-gate 	kstat_named_t inAddrErrors;
45*7c478bd9Sstevel@tonic-gate 	kstat_named_t forwDatagrams;
46*7c478bd9Sstevel@tonic-gate 	kstat_named_t inUnknownProtos;
47*7c478bd9Sstevel@tonic-gate 	kstat_named_t inDiscards;
48*7c478bd9Sstevel@tonic-gate 	kstat_named_t inDelivers;
49*7c478bd9Sstevel@tonic-gate 	kstat_named_t outRequests;
50*7c478bd9Sstevel@tonic-gate 	kstat_named_t outDiscards;
51*7c478bd9Sstevel@tonic-gate 	kstat_named_t outNoRoutes;
52*7c478bd9Sstevel@tonic-gate 	kstat_named_t reasmTimeout;
53*7c478bd9Sstevel@tonic-gate 	kstat_named_t reasmReqds;
54*7c478bd9Sstevel@tonic-gate 	kstat_named_t reasmOKs;
55*7c478bd9Sstevel@tonic-gate 	kstat_named_t reasmFails;
56*7c478bd9Sstevel@tonic-gate 	kstat_named_t fragOKs;
57*7c478bd9Sstevel@tonic-gate 	kstat_named_t fragFails;
58*7c478bd9Sstevel@tonic-gate 	kstat_named_t fragCreates;
59*7c478bd9Sstevel@tonic-gate 	kstat_named_t addrEntrySize;
60*7c478bd9Sstevel@tonic-gate 	kstat_named_t routeEntrySize;
61*7c478bd9Sstevel@tonic-gate 	kstat_named_t netToMediaEntrySize;
62*7c478bd9Sstevel@tonic-gate 	kstat_named_t routingDiscards;
63*7c478bd9Sstevel@tonic-gate 	kstat_named_t inErrs;
64*7c478bd9Sstevel@tonic-gate 	kstat_named_t noPorts;
65*7c478bd9Sstevel@tonic-gate 	kstat_named_t inCksumErrs;
66*7c478bd9Sstevel@tonic-gate 	kstat_named_t reasmDuplicates;
67*7c478bd9Sstevel@tonic-gate 	kstat_named_t reasmPartDups;
68*7c478bd9Sstevel@tonic-gate 	kstat_named_t forwProhibits;
69*7c478bd9Sstevel@tonic-gate 	kstat_named_t udpInCksumErrs;
70*7c478bd9Sstevel@tonic-gate 	kstat_named_t udpInOverflows;
71*7c478bd9Sstevel@tonic-gate 	kstat_named_t rawipInOverflows;
72*7c478bd9Sstevel@tonic-gate 	kstat_named_t ipsecInSucceeded;
73*7c478bd9Sstevel@tonic-gate 	kstat_named_t ipsecInFailed;
74*7c478bd9Sstevel@tonic-gate 	kstat_named_t memberEntrySize;
75*7c478bd9Sstevel@tonic-gate 	kstat_named_t inIPv6;
76*7c478bd9Sstevel@tonic-gate 	kstat_named_t outIPv6;
77*7c478bd9Sstevel@tonic-gate 	kstat_named_t outSwitchIPv6;
78*7c478bd9Sstevel@tonic-gate } ip_named_kstat_t;
79*7c478bd9Sstevel@tonic-gate 
80*7c478bd9Sstevel@tonic-gate 
81*7c478bd9Sstevel@tonic-gate typedef struct ipv6IfStatsEntry_named_kstat {
82*7c478bd9Sstevel@tonic-gate 	kstat_named_t ifIndex;
83*7c478bd9Sstevel@tonic-gate 	kstat_named_t forwarding;
84*7c478bd9Sstevel@tonic-gate 	kstat_named_t defaultHopLimit;
85*7c478bd9Sstevel@tonic-gate 	kstat_named_t ifStatsEntrySize;
86*7c478bd9Sstevel@tonic-gate 	kstat_named_t addrEntrySize;
87*7c478bd9Sstevel@tonic-gate 	kstat_named_t routeEntrySize;
88*7c478bd9Sstevel@tonic-gate 	kstat_named_t netToMediaEntrySize;
89*7c478bd9Sstevel@tonic-gate 	kstat_named_t memberEntrySize;
90*7c478bd9Sstevel@tonic-gate 	kstat_named_t inReceives;
91*7c478bd9Sstevel@tonic-gate 	kstat_named_t inHdrErrors;
92*7c478bd9Sstevel@tonic-gate 	kstat_named_t inTooBigErrors;
93*7c478bd9Sstevel@tonic-gate 	kstat_named_t InUnknownProtos;
94*7c478bd9Sstevel@tonic-gate 	kstat_named_t inTruncatedPkts;
95*7c478bd9Sstevel@tonic-gate 	kstat_named_t inDisards;
96*7c478bd9Sstevel@tonic-gate 	kstat_named_t inDelivers;
97*7c478bd9Sstevel@tonic-gate 	kstat_named_t outForwDatagrams;
98*7c478bd9Sstevel@tonic-gate 	kstat_named_t outRequests;
99*7c478bd9Sstevel@tonic-gate 	kstat_named_t outDiscards;
100*7c478bd9Sstevel@tonic-gate 	kstat_named_t outFragOKs;
101*7c478bd9Sstevel@tonic-gate 	kstat_named_t outFragFails;
102*7c478bd9Sstevel@tonic-gate 	kstat_named_t outFragCreates;
103*7c478bd9Sstevel@tonic-gate 	kstat_named_t reasmReqds;
104*7c478bd9Sstevel@tonic-gate 	kstat_named_t reasmOKs;
105*7c478bd9Sstevel@tonic-gate 	kstat_named_t reasmFails;
106*7c478bd9Sstevel@tonic-gate 	kstat_named_t inMcastPkts;
107*7c478bd9Sstevel@tonic-gate 	kstat_named_t outMcastPkts;
108*7c478bd9Sstevel@tonic-gate 	kstat_named_t outNoRoutes;
109*7c478bd9Sstevel@tonic-gate 	kstat_named_t reasmDuplicates;
110*7c478bd9Sstevel@tonic-gate 	kstat_named_t reasmPartDups;
111*7c478bd9Sstevel@tonic-gate 	kstat_named_t forwProhibits;
112*7c478bd9Sstevel@tonic-gate 	kstat_named_t inChksumerrs;
113*7c478bd9Sstevel@tonic-gate 	kstat_named_t inOverflows;
114*7c478bd9Sstevel@tonic-gate } ipv6IfStatsEntry_named_kstat_t;
115*7c478bd9Sstevel@tonic-gate 
116*7c478bd9Sstevel@tonic-gate 
117*7c478bd9Sstevel@tonic-gate typedef struct ipAddrEntry_named_kstat {
118*7c478bd9Sstevel@tonic-gate 	kstat_named_t addr;
119*7c478bd9Sstevel@tonic-gate 	kstat_named_t ifIndex;
120*7c478bd9Sstevel@tonic-gate 	kstat_named_t netMask;
121*7c478bd9Sstevel@tonic-gate 	kstat_named_t bcastAddr;
122*7c478bd9Sstevel@tonic-gate 	kstat_named_t reasmMaxSize;
123*7c478bd9Sstevel@tonic-gate 	kstat_named_t mtu;
124*7c478bd9Sstevel@tonic-gate 	kstat_named_t metric;
125*7c478bd9Sstevel@tonic-gate 	kstat_named_t broadcast_addr;
126*7c478bd9Sstevel@tonic-gate 	kstat_named_t pp_dst_addr;
127*7c478bd9Sstevel@tonic-gate 	kstat_named_t flags;
128*7c478bd9Sstevel@tonic-gate 	kstat_named_t ibcnt;
129*7c478bd9Sstevel@tonic-gate 	kstat_named_t obcnt;
130*7c478bd9Sstevel@tonic-gate 	kstat_named_t focnt;
131*7c478bd9Sstevel@tonic-gate 	kstat_named_t subnet;
132*7c478bd9Sstevel@tonic-gate 	kstat_named_t subnet_len;
133*7c478bd9Sstevel@tonic-gate 	kstat_named_t src_addr;
134*7c478bd9Sstevel@tonic-gate } ipAddrEntry_named_kstat_t;
135*7c478bd9Sstevel@tonic-gate 
136*7c478bd9Sstevel@tonic-gate 
137*7c478bd9Sstevel@tonic-gate typedef struct ipv6AddrEntry_named_kstat {
138*7c478bd9Sstevel@tonic-gate 	kstat_named_t ifIndex;
139*7c478bd9Sstevel@tonic-gate 	kstat_named_t address;
140*7c478bd9Sstevel@tonic-gate 	kstat_named_t pfxLength;
141*7c478bd9Sstevel@tonic-gate 	kstat_named_t type;
142*7c478bd9Sstevel@tonic-gate 	kstat_named_t anycastFlag;
143*7c478bd9Sstevel@tonic-gate 	kstat_named_t status;
144*7c478bd9Sstevel@tonic-gate 	kstat_named_t mtu;
145*7c478bd9Sstevel@tonic-gate 	kstat_named_t metric;
146*7c478bd9Sstevel@tonic-gate 	kstat_named_t pp_dst_addr;
147*7c478bd9Sstevel@tonic-gate 	kstat_named_t flags;
148*7c478bd9Sstevel@tonic-gate 	kstat_named_t ibcnt;
149*7c478bd9Sstevel@tonic-gate 	kstat_named_t obcnt;
150*7c478bd9Sstevel@tonic-gate 	kstat_named_t focnt;
151*7c478bd9Sstevel@tonic-gate 	kstat_named_t subnet;
152*7c478bd9Sstevel@tonic-gate 	kstat_named_t subnet_len;
153*7c478bd9Sstevel@tonic-gate 	kstat_named_t src_addr;
154*7c478bd9Sstevel@tonic-gate } ipv6AddrEntry_named_kstat_t;
155*7c478bd9Sstevel@tonic-gate 
156*7c478bd9Sstevel@tonic-gate 
157*7c478bd9Sstevel@tonic-gate typedef struct ipRouteEntry_named_kstat {
158*7c478bd9Sstevel@tonic-gate 	kstat_named_t dest;
159*7c478bd9Sstevel@tonic-gate 	kstat_named_t ifIndex;
160*7c478bd9Sstevel@tonic-gate 	kstat_named_t metric1;
161*7c478bd9Sstevel@tonic-gate 	kstat_named_t metric2;
162*7c478bd9Sstevel@tonic-gate 	kstat_named_t metric3;
163*7c478bd9Sstevel@tonic-gate 	kstat_named_t metric4;
164*7c478bd9Sstevel@tonic-gate 	kstat_named_t nextHop;
165*7c478bd9Sstevel@tonic-gate 	kstat_named_t type;
166*7c478bd9Sstevel@tonic-gate 	kstat_named_t proto;
167*7c478bd9Sstevel@tonic-gate 	kstat_named_t age;
168*7c478bd9Sstevel@tonic-gate 	kstat_named_t mask;
169*7c478bd9Sstevel@tonic-gate 	kstat_named_t metric5;
170*7c478bd9Sstevel@tonic-gate 	kstat_named_t max_frag;
171*7c478bd9Sstevel@tonic-gate 	kstat_named_t rtt;
172*7c478bd9Sstevel@tonic-gate 	kstat_named_t ref;
173*7c478bd9Sstevel@tonic-gate 	kstat_named_t frag_flag;
174*7c478bd9Sstevel@tonic-gate 	kstat_named_t src_addr;
175*7c478bd9Sstevel@tonic-gate 	kstat_named_t ire_type;
176*7c478bd9Sstevel@tonic-gate 	kstat_named_t obppkt;
177*7c478bd9Sstevel@tonic-gate 	kstat_named_t ibpkt;
178*7c478bd9Sstevel@tonic-gate 	kstat_named_t flags;
179*7c478bd9Sstevel@tonic-gate 	kstat_named_t in_ill;
180*7c478bd9Sstevel@tonic-gate 	kstat_named_t in_src_addr;
181*7c478bd9Sstevel@tonic-gate } ipRouteEntry_named_kstat_t;
182*7c478bd9Sstevel@tonic-gate 
183*7c478bd9Sstevel@tonic-gate 
184*7c478bd9Sstevel@tonic-gate typedef struct ipv6RouteEntry_named_kstat {
185*7c478bd9Sstevel@tonic-gate 	kstat_named_t dest;
186*7c478bd9Sstevel@tonic-gate 	kstat_named_t pfxLength;
187*7c478bd9Sstevel@tonic-gate 	kstat_named_t index;
188*7c478bd9Sstevel@tonic-gate 	kstat_named_t ifIndex;
189*7c478bd9Sstevel@tonic-gate 	kstat_named_t nextHop;
190*7c478bd9Sstevel@tonic-gate 	kstat_named_t type;
191*7c478bd9Sstevel@tonic-gate 	kstat_named_t protocol;
192*7c478bd9Sstevel@tonic-gate 	kstat_named_t policy;
193*7c478bd9Sstevel@tonic-gate 	kstat_named_t age;
194*7c478bd9Sstevel@tonic-gate 	kstat_named_t nextHopRDI;
195*7c478bd9Sstevel@tonic-gate 	kstat_named_t metric;
196*7c478bd9Sstevel@tonic-gate 	kstat_named_t weight;
197*7c478bd9Sstevel@tonic-gate 	kstat_named_t max_frag;
198*7c478bd9Sstevel@tonic-gate 	kstat_named_t rtt;
199*7c478bd9Sstevel@tonic-gate 	kstat_named_t ref;
200*7c478bd9Sstevel@tonic-gate 	kstat_named_t frag_flag;
201*7c478bd9Sstevel@tonic-gate 	kstat_named_t src_addr;
202*7c478bd9Sstevel@tonic-gate 	kstat_named_t ire_type;
203*7c478bd9Sstevel@tonic-gate 	kstat_named_t obpkt;
204*7c478bd9Sstevel@tonic-gate 	kstat_named_t ibpkt;
205*7c478bd9Sstevel@tonic-gate 	kstat_named_t flags;
206*7c478bd9Sstevel@tonic-gate } ipv6RouteEntry_named_kstat_t;
207*7c478bd9Sstevel@tonic-gate 
208*7c478bd9Sstevel@tonic-gate 
209*7c478bd9Sstevel@tonic-gate typedef struct ipNextToMediaEntry_named_kstat {
210*7c478bd9Sstevel@tonic-gate 	kstat_named_t ifIndex;
211*7c478bd9Sstevel@tonic-gate 	kstat_named_t physAddress;
212*7c478bd9Sstevel@tonic-gate 	kstat_named_t netAddress;
213*7c478bd9Sstevel@tonic-gate 	kstat_named_t type;
214*7c478bd9Sstevel@tonic-gate 	kstat_named_t mask;
215*7c478bd9Sstevel@tonic-gate 	kstat_named_t flags;
216*7c478bd9Sstevel@tonic-gate } ipNextToMediaEntry_named_kstat_t;
217*7c478bd9Sstevel@tonic-gate 
218*7c478bd9Sstevel@tonic-gate typedef struct ipv6NextToMediaEntry_named_kstat {
219*7c478bd9Sstevel@tonic-gate 	kstat_named_t ifIndex;
220*7c478bd9Sstevel@tonic-gate 	kstat_named_t netAddress;
221*7c478bd9Sstevel@tonic-gate 	kstat_named_t physAddress;
222*7c478bd9Sstevel@tonic-gate 	kstat_named_t type;
223*7c478bd9Sstevel@tonic-gate 	kstat_named_t state;
224*7c478bd9Sstevel@tonic-gate 	kstat_named_t lastUpdated;
225*7c478bd9Sstevel@tonic-gate } ipv6NextToMediaEntry_named_kstat_t;
226*7c478bd9Sstevel@tonic-gate 
227*7c478bd9Sstevel@tonic-gate typedef struct icmp_named_kstat {
228*7c478bd9Sstevel@tonic-gate 	kstat_named_t inMsgs;
229*7c478bd9Sstevel@tonic-gate 	kstat_named_t inErrors;
230*7c478bd9Sstevel@tonic-gate 	kstat_named_t inDestUnreachs;
231*7c478bd9Sstevel@tonic-gate 	kstat_named_t inTimeExcds;
232*7c478bd9Sstevel@tonic-gate 	kstat_named_t inParmProbs;
233*7c478bd9Sstevel@tonic-gate 	kstat_named_t inSrcQuenchs;
234*7c478bd9Sstevel@tonic-gate 	kstat_named_t inRedirects;
235*7c478bd9Sstevel@tonic-gate 	kstat_named_t inEchos;
236*7c478bd9Sstevel@tonic-gate 	kstat_named_t inEchoReps;
237*7c478bd9Sstevel@tonic-gate 	kstat_named_t inTimestamps;
238*7c478bd9Sstevel@tonic-gate 	kstat_named_t inTimestampReps;
239*7c478bd9Sstevel@tonic-gate 	kstat_named_t inAddrMasks;
240*7c478bd9Sstevel@tonic-gate 	kstat_named_t inAddrMaskReps;
241*7c478bd9Sstevel@tonic-gate 	kstat_named_t outMsgs;
242*7c478bd9Sstevel@tonic-gate 	kstat_named_t outErrors;
243*7c478bd9Sstevel@tonic-gate 	kstat_named_t outDestUnreachs;
244*7c478bd9Sstevel@tonic-gate 	kstat_named_t outTimeExcds;
245*7c478bd9Sstevel@tonic-gate 	kstat_named_t outParmProbs;
246*7c478bd9Sstevel@tonic-gate 	kstat_named_t outSrcQuenchs;
247*7c478bd9Sstevel@tonic-gate 	kstat_named_t outRedirects;
248*7c478bd9Sstevel@tonic-gate 	kstat_named_t outEchos;
249*7c478bd9Sstevel@tonic-gate 	kstat_named_t outEchoReps;
250*7c478bd9Sstevel@tonic-gate 	kstat_named_t outTimestamps;
251*7c478bd9Sstevel@tonic-gate 	kstat_named_t outTimestampReps;
252*7c478bd9Sstevel@tonic-gate 	kstat_named_t outAddrMasks;
253*7c478bd9Sstevel@tonic-gate 	kstat_named_t outAddrMaskReps;
254*7c478bd9Sstevel@tonic-gate 	kstat_named_t inCksumErrs;
255*7c478bd9Sstevel@tonic-gate 	kstat_named_t inUnknowns;
256*7c478bd9Sstevel@tonic-gate 	kstat_named_t inFragNeeded;
257*7c478bd9Sstevel@tonic-gate 	kstat_named_t outFragNeeded;
258*7c478bd9Sstevel@tonic-gate 	kstat_named_t outDrops;
259*7c478bd9Sstevel@tonic-gate 	kstat_named_t inOverflows;
260*7c478bd9Sstevel@tonic-gate 	kstat_named_t inBadRedirects;
261*7c478bd9Sstevel@tonic-gate } icmp_named_kstat_t;
262*7c478bd9Sstevel@tonic-gate 
263*7c478bd9Sstevel@tonic-gate 
264*7c478bd9Sstevel@tonic-gate typedef struct ipv6IfIcmpEntry_named_kstat {
265*7c478bd9Sstevel@tonic-gate 	kstat_named_t ifIndex;
266*7c478bd9Sstevel@tonic-gate 	kstat_named_t entrySize;
267*7c478bd9Sstevel@tonic-gate 	kstat_named_t inMsgs;
268*7c478bd9Sstevel@tonic-gate 	kstat_named_t inErrors;
269*7c478bd9Sstevel@tonic-gate 	kstat_named_t inDestUnreachs;
270*7c478bd9Sstevel@tonic-gate 	kstat_named_t inAdminProhibs;
271*7c478bd9Sstevel@tonic-gate 	kstat_named_t inTimeExcds;
272*7c478bd9Sstevel@tonic-gate 	kstat_named_t inParmProblems;
273*7c478bd9Sstevel@tonic-gate 	kstat_named_t inPktTooBigs;
274*7c478bd9Sstevel@tonic-gate 	kstat_named_t inEchos;
275*7c478bd9Sstevel@tonic-gate 	kstat_named_t inEchoReplies;
276*7c478bd9Sstevel@tonic-gate 	kstat_named_t inRouterSolicits;
277*7c478bd9Sstevel@tonic-gate 	kstat_named_t inRouterAdvertisements;
278*7c478bd9Sstevel@tonic-gate 	kstat_named_t inNeighborSolicits;
279*7c478bd9Sstevel@tonic-gate 	kstat_named_t inNeighborAdvertisements;
280*7c478bd9Sstevel@tonic-gate 	kstat_named_t inRedirects;
281*7c478bd9Sstevel@tonic-gate 	kstat_named_t inGroupMembQueries;
282*7c478bd9Sstevel@tonic-gate 	kstat_named_t inGroupMembResponses;
283*7c478bd9Sstevel@tonic-gate 	kstat_named_t inGroupMembReductions;
284*7c478bd9Sstevel@tonic-gate 	kstat_named_t outMsgs;
285*7c478bd9Sstevel@tonic-gate 	kstat_named_t outErrors;
286*7c478bd9Sstevel@tonic-gate 	kstat_named_t outDestUnreachs;
287*7c478bd9Sstevel@tonic-gate 	kstat_named_t outAdminProhibs;
288*7c478bd9Sstevel@tonic-gate 	kstat_named_t outTimeExcds;
289*7c478bd9Sstevel@tonic-gate 	kstat_named_t outParmProblems;
290*7c478bd9Sstevel@tonic-gate 	kstat_named_t outPktTooBigs;
291*7c478bd9Sstevel@tonic-gate 	kstat_named_t outEchos;
292*7c478bd9Sstevel@tonic-gate 	kstat_named_t outEchoReplies;
293*7c478bd9Sstevel@tonic-gate 	kstat_named_t outRouterSolicits;
294*7c478bd9Sstevel@tonic-gate 	kstat_named_t outRouterAdvertisements;
295*7c478bd9Sstevel@tonic-gate 	kstat_named_t outNeighborSolicits;
296*7c478bd9Sstevel@tonic-gate 	kstat_named_t outNeighborAdvertisements;
297*7c478bd9Sstevel@tonic-gate 	kstat_named_t outRedirects;
298*7c478bd9Sstevel@tonic-gate 	kstat_named_t outGroupMembQueries;
299*7c478bd9Sstevel@tonic-gate 	kstat_named_t outGroupMembResponses;
300*7c478bd9Sstevel@tonic-gate 	kstat_named_t outGroupMembReductions;
301*7c478bd9Sstevel@tonic-gate 	kstat_named_t inOverflows;
302*7c478bd9Sstevel@tonic-gate 	kstat_named_t badHopLimit;
303*7c478bd9Sstevel@tonic-gate 	kstat_named_t inBadNeighborAdvertisemets;
304*7c478bd9Sstevel@tonic-gate 	kstat_named_t inBadNeighborSolicitations;
305*7c478bd9Sstevel@tonic-gate 	kstat_named_t inBadRedirects;
306*7c478bd9Sstevel@tonic-gate 	kstat_named_t inGroupMembBadQueries;
307*7c478bd9Sstevel@tonic-gate 	kstat_named_t inGroupMembBadReports;
308*7c478bd9Sstevel@tonic-gate 	kstat_named_t inGroupMembOurReports;
309*7c478bd9Sstevel@tonic-gate } ipv6IfIcmpEntry_named_kstat_t;
310*7c478bd9Sstevel@tonic-gate 
311*7c478bd9Sstevel@tonic-gate 
312*7c478bd9Sstevel@tonic-gate typedef struct sctp_named_kstat {
313*7c478bd9Sstevel@tonic-gate 	kstat_named_t	sctpRtoAlgorithm;
314*7c478bd9Sstevel@tonic-gate 	kstat_named_t	sctpRtoMin;
315*7c478bd9Sstevel@tonic-gate 	kstat_named_t	sctpRtoMax;
316*7c478bd9Sstevel@tonic-gate 	kstat_named_t	sctpRtoInitial;
317*7c478bd9Sstevel@tonic-gate 	kstat_named_t	sctpMaxAssocs;
318*7c478bd9Sstevel@tonic-gate 	kstat_named_t	sctpValCookieLife;
319*7c478bd9Sstevel@tonic-gate 	kstat_named_t	sctpMaxInitRetr;
320*7c478bd9Sstevel@tonic-gate 	kstat_named_t	sctpCurrEstab;
321*7c478bd9Sstevel@tonic-gate 	kstat_named_t	sctpActiveEstab;
322*7c478bd9Sstevel@tonic-gate 	kstat_named_t	sctpPassiveEstab;
323*7c478bd9Sstevel@tonic-gate 	kstat_named_t	sctpAborted;
324*7c478bd9Sstevel@tonic-gate 	kstat_named_t	sctpShutdowns;
325*7c478bd9Sstevel@tonic-gate 	kstat_named_t	sctpOutOfBlue;
326*7c478bd9Sstevel@tonic-gate 	kstat_named_t	sctpChecksumError;
327*7c478bd9Sstevel@tonic-gate 	kstat_named_t	sctpOutCtrlChunks;
328*7c478bd9Sstevel@tonic-gate 	kstat_named_t	sctpOutOrderChunks;
329*7c478bd9Sstevel@tonic-gate 	kstat_named_t	sctpOutUnorderChunks;
330*7c478bd9Sstevel@tonic-gate 	kstat_named_t	sctpRetransChunks;
331*7c478bd9Sstevel@tonic-gate 	kstat_named_t	sctpOutAck;
332*7c478bd9Sstevel@tonic-gate 	kstat_named_t	sctpOutAckDelayed;
333*7c478bd9Sstevel@tonic-gate 	kstat_named_t	sctpOutWinUpdate;
334*7c478bd9Sstevel@tonic-gate 	kstat_named_t	sctpOutFastRetrans;
335*7c478bd9Sstevel@tonic-gate 	kstat_named_t	sctpOutWinProbe;
336*7c478bd9Sstevel@tonic-gate 	kstat_named_t	sctpInCtrlChunks;
337*7c478bd9Sstevel@tonic-gate 	kstat_named_t	sctpInOrderChunks;
338*7c478bd9Sstevel@tonic-gate 	kstat_named_t	sctpInUnorderChunks;
339*7c478bd9Sstevel@tonic-gate 	kstat_named_t	sctpInAck;
340*7c478bd9Sstevel@tonic-gate 	kstat_named_t	sctpInDupAck;
341*7c478bd9Sstevel@tonic-gate 	kstat_named_t	sctpInAckUnsent;
342*7c478bd9Sstevel@tonic-gate 	kstat_named_t	sctpFragUsrMsgs;
343*7c478bd9Sstevel@tonic-gate 	kstat_named_t	sctpReasmUsrMsgs;
344*7c478bd9Sstevel@tonic-gate 	kstat_named_t	sctpOutSCTPPkts;
345*7c478bd9Sstevel@tonic-gate 	kstat_named_t	sctpInSCTPPkts;
346*7c478bd9Sstevel@tonic-gate 	kstat_named_t	sctpInInvalidCookie;
347*7c478bd9Sstevel@tonic-gate 	kstat_named_t	sctpTimRetrans;
348*7c478bd9Sstevel@tonic-gate 	kstat_named_t	sctpTimRetransDrop;
349*7c478bd9Sstevel@tonic-gate 	kstat_named_t	sctpTimHeartBeatProbe;
350*7c478bd9Sstevel@tonic-gate 	kstat_named_t	sctpTimHeartBeatDrop;
351*7c478bd9Sstevel@tonic-gate 	kstat_named_t	sctpListenDrop;
352*7c478bd9Sstevel@tonic-gate 	kstat_named_t	sctpInClosed;
353*7c478bd9Sstevel@tonic-gate } sctp_named_kstat_t;
354*7c478bd9Sstevel@tonic-gate 
355*7c478bd9Sstevel@tonic-gate 
356*7c478bd9Sstevel@tonic-gate typedef struct tcp_named_kstat {
357*7c478bd9Sstevel@tonic-gate 	kstat_named_t rtoAlgorithm;
358*7c478bd9Sstevel@tonic-gate 	kstat_named_t rtoMin;
359*7c478bd9Sstevel@tonic-gate 	kstat_named_t rtoMax;
360*7c478bd9Sstevel@tonic-gate 	kstat_named_t maxConn;
361*7c478bd9Sstevel@tonic-gate 	kstat_named_t activeOpens;
362*7c478bd9Sstevel@tonic-gate 	kstat_named_t passiveOpens;
363*7c478bd9Sstevel@tonic-gate 	kstat_named_t attemptFails;
364*7c478bd9Sstevel@tonic-gate 	kstat_named_t estabResets;
365*7c478bd9Sstevel@tonic-gate 	kstat_named_t currEstab;
366*7c478bd9Sstevel@tonic-gate 	kstat_named_t inSegs;
367*7c478bd9Sstevel@tonic-gate 	kstat_named_t outSegs;
368*7c478bd9Sstevel@tonic-gate 	kstat_named_t retransSegs;
369*7c478bd9Sstevel@tonic-gate 	kstat_named_t connTableSize;
370*7c478bd9Sstevel@tonic-gate 	kstat_named_t outRsts;
371*7c478bd9Sstevel@tonic-gate 	kstat_named_t outDataSegs;
372*7c478bd9Sstevel@tonic-gate 	kstat_named_t outDataBytes;
373*7c478bd9Sstevel@tonic-gate 	kstat_named_t retransBytes;
374*7c478bd9Sstevel@tonic-gate 	kstat_named_t outAck;
375*7c478bd9Sstevel@tonic-gate 	kstat_named_t outAckDelayed;
376*7c478bd9Sstevel@tonic-gate 	kstat_named_t outUrg;
377*7c478bd9Sstevel@tonic-gate 	kstat_named_t outWinUpdate;
378*7c478bd9Sstevel@tonic-gate 	kstat_named_t outWinProbe;
379*7c478bd9Sstevel@tonic-gate 	kstat_named_t outControl;
380*7c478bd9Sstevel@tonic-gate 	kstat_named_t outFastRetrans;
381*7c478bd9Sstevel@tonic-gate 	kstat_named_t inAckSegs;
382*7c478bd9Sstevel@tonic-gate 	kstat_named_t inAckBytes;
383*7c478bd9Sstevel@tonic-gate 	kstat_named_t inDupAck;
384*7c478bd9Sstevel@tonic-gate 	kstat_named_t inAckUnsent;
385*7c478bd9Sstevel@tonic-gate 	kstat_named_t inDataInorderSegs;
386*7c478bd9Sstevel@tonic-gate 	kstat_named_t inDataInorderBytes;
387*7c478bd9Sstevel@tonic-gate 	kstat_named_t inDataUnorderSegs;
388*7c478bd9Sstevel@tonic-gate 	kstat_named_t inDataUnorderBytes;
389*7c478bd9Sstevel@tonic-gate 	kstat_named_t inDataDupSegs;
390*7c478bd9Sstevel@tonic-gate 	kstat_named_t inDataDupBytes;
391*7c478bd9Sstevel@tonic-gate 	kstat_named_t inDataPartDupSegs;
392*7c478bd9Sstevel@tonic-gate 	kstat_named_t inDataPartDupBytes;
393*7c478bd9Sstevel@tonic-gate 	kstat_named_t inDataPastWinSegs;
394*7c478bd9Sstevel@tonic-gate 	kstat_named_t inDataPastWinBytes;
395*7c478bd9Sstevel@tonic-gate 	kstat_named_t inWinProbe;
396*7c478bd9Sstevel@tonic-gate 	kstat_named_t inWinUpdate;
397*7c478bd9Sstevel@tonic-gate 	kstat_named_t inClosed;
398*7c478bd9Sstevel@tonic-gate 	kstat_named_t rttNoUpdate;
399*7c478bd9Sstevel@tonic-gate 	kstat_named_t rttUpdate;
400*7c478bd9Sstevel@tonic-gate 	kstat_named_t timRetrans;
401*7c478bd9Sstevel@tonic-gate 	kstat_named_t timRetransDrop;
402*7c478bd9Sstevel@tonic-gate 	kstat_named_t timKeepalive;
403*7c478bd9Sstevel@tonic-gate 	kstat_named_t timKeepaliveProbe;
404*7c478bd9Sstevel@tonic-gate 	kstat_named_t timKeepaliveDrop;
405*7c478bd9Sstevel@tonic-gate 	kstat_named_t listenDrop;
406*7c478bd9Sstevel@tonic-gate 	kstat_named_t listenDropQ0;
407*7c478bd9Sstevel@tonic-gate 	kstat_named_t halfOpenDrop;
408*7c478bd9Sstevel@tonic-gate 	kstat_named_t outSackRetransSegs;
409*7c478bd9Sstevel@tonic-gate 	kstat_named_t connTableSize6;
410*7c478bd9Sstevel@tonic-gate } tcp_named_kstat_t;
411*7c478bd9Sstevel@tonic-gate 
412*7c478bd9Sstevel@tonic-gate typedef struct tcpConnEntry_named_kstat { /* IPv4 and IPv6 unified */
413*7c478bd9Sstevel@tonic-gate 	kstat_named_t state;
414*7c478bd9Sstevel@tonic-gate 	kstat_named_t localAddress;
415*7c478bd9Sstevel@tonic-gate 	kstat_named_t localPort;
416*7c478bd9Sstevel@tonic-gate 	kstat_named_t remAddress;
417*7c478bd9Sstevel@tonic-gate 	kstat_named_t remPort;
418*7c478bd9Sstevel@tonic-gate 	kstat_named_t snxt;
419*7c478bd9Sstevel@tonic-gate 	kstat_named_t suna;
420*7c478bd9Sstevel@tonic-gate 	kstat_named_t swnd;
421*7c478bd9Sstevel@tonic-gate 	kstat_named_t rnxt;
422*7c478bd9Sstevel@tonic-gate 	kstat_named_t rack;
423*7c478bd9Sstevel@tonic-gate 	kstat_named_t rwnd;
424*7c478bd9Sstevel@tonic-gate 	kstat_named_t rto;
425*7c478bd9Sstevel@tonic-gate 	kstat_named_t mss;
426*7c478bd9Sstevel@tonic-gate 	kstat_named_t internalState;
427*7c478bd9Sstevel@tonic-gate 	kstat_named_t ifIndex;
428*7c478bd9Sstevel@tonic-gate 	kstat_named_t version;
429*7c478bd9Sstevel@tonic-gate 	kstat_named_t pid;
430*7c478bd9Sstevel@tonic-gate } tcpConnEntry_named_kstat_t;
431*7c478bd9Sstevel@tonic-gate 
432*7c478bd9Sstevel@tonic-gate typedef struct udp_named_kstat {
433*7c478bd9Sstevel@tonic-gate 	kstat_named_t inDatagrams;
434*7c478bd9Sstevel@tonic-gate 	kstat_named_t inErrors;
435*7c478bd9Sstevel@tonic-gate 	kstat_named_t outDatagrams;
436*7c478bd9Sstevel@tonic-gate 	kstat_named_t entrySize;
437*7c478bd9Sstevel@tonic-gate 	kstat_named_t entry6Size;
438*7c478bd9Sstevel@tonic-gate 	kstat_named_t outErrors;
439*7c478bd9Sstevel@tonic-gate } udp_named_kstat_t;
440*7c478bd9Sstevel@tonic-gate 
441*7c478bd9Sstevel@tonic-gate typedef struct udpEntry_named_kstat {
442*7c478bd9Sstevel@tonic-gate 	kstat_named_t localAddress;
443*7c478bd9Sstevel@tonic-gate 	kstat_named_t localPort;
444*7c478bd9Sstevel@tonic-gate 	kstat_named_t state;
445*7c478bd9Sstevel@tonic-gate 	kstat_named_t remoteAddress;
446*7c478bd9Sstevel@tonic-gate 	kstat_named_t remotePort;
447*7c478bd9Sstevel@tonic-gate } udpEntry_named_kstat_t;
448*7c478bd9Sstevel@tonic-gate 
449*7c478bd9Sstevel@tonic-gate 
450*7c478bd9Sstevel@tonic-gate typedef struct udp6Entry_named_kstat {
451*7c478bd9Sstevel@tonic-gate 	kstat_named_t localAddress;
452*7c478bd9Sstevel@tonic-gate 	kstat_named_t localPort;
453*7c478bd9Sstevel@tonic-gate 	kstat_named_t ifIndex;
454*7c478bd9Sstevel@tonic-gate 	kstat_named_t state;
455*7c478bd9Sstevel@tonic-gate 	kstat_named_t remoteAddress;
456*7c478bd9Sstevel@tonic-gate 	kstat_named_t remotePort;
457*7c478bd9Sstevel@tonic-gate } udp6Entry_named_kstat_t;
458*7c478bd9Sstevel@tonic-gate 
459*7c478bd9Sstevel@tonic-gate 
460*7c478bd9Sstevel@tonic-gate typedef struct rawip_named_kstat {
461*7c478bd9Sstevel@tonic-gate 	kstat_named_t inDatagrams;
462*7c478bd9Sstevel@tonic-gate 	kstat_named_t inCksumErrs;
463*7c478bd9Sstevel@tonic-gate 	kstat_named_t inErrors;
464*7c478bd9Sstevel@tonic-gate 	kstat_named_t outDatagrams;
465*7c478bd9Sstevel@tonic-gate 	kstat_named_t outErrors;
466*7c478bd9Sstevel@tonic-gate } rawip_named_kstat_t;
467*7c478bd9Sstevel@tonic-gate 
468*7c478bd9Sstevel@tonic-gate 
469*7c478bd9Sstevel@tonic-gate #define	NUM_OF_FIELDS(S)	(sizeof (S) / sizeof (kstat_named_t))
470*7c478bd9Sstevel@tonic-gate 
471*7c478bd9Sstevel@tonic-gate #ifdef	__cplusplus
472*7c478bd9Sstevel@tonic-gate }
473*7c478bd9Sstevel@tonic-gate #endif
474*7c478bd9Sstevel@tonic-gate 
475*7c478bd9Sstevel@tonic-gate #endif	/* _INET_KSTATCOM_H */
476