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