Home | History | Annotate | Download | only in inet
      1 /*
      2  * CDDL HEADER START
      3  *
      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
      7  * with the License.
      8  *
      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.
     13  *
     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]
     19  *
     20  * CDDL HEADER END
     21  */
     22 /*
     23  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
     24  * Use is subject to license terms.
     25  */
     26 
     27 #ifndef	_INET_KSTATCOM_H
     28 #define	_INET_KSTATCOM_H
     29 
     30 #pragma ident	"%Z%%M%	%I%	%E% SMI"
     31 
     32 #ifdef	__cplusplus
     33 extern "C" {
     34 #endif
     35 
     36 
     37 #include <sys/kstat.h>
     38 
     39 
     40 
     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;
     65 	kstat_named_t inErrs;
     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;
     77 	kstat_named_t inIPv6;
     78 	kstat_named_t outIPv6;
     79 	kstat_named_t outSwitchIPv6;
     80 } ip_named_kstat_t;
     81 
     82 
     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;
    117 
    118 
    119 typedef struct ipAddrEntry_named_kstat {
    120 	kstat_named_t addr;
    121 	kstat_named_t ifIndex;
    122 	kstat_named_t netMask;
    123 	kstat_named_t bcastAddr;
    124 	kstat_named_t reasmMaxSize;
    125 	kstat_named_t mtu;
    126 	kstat_named_t metric;
    127 	kstat_named_t broadcast_addr;
    128 	kstat_named_t pp_dst_addr;
    129 	kstat_named_t flags;
    130 	kstat_named_t ibcnt;
    131 	kstat_named_t obcnt;
    132 	kstat_named_t focnt;
    133 	kstat_named_t subnet;
    134 	kstat_named_t subnet_len;
    135 	kstat_named_t src_addr;
    136 } ipAddrEntry_named_kstat_t;
    137 
    138 
    139 typedef struct ipv6AddrEntry_named_kstat {
    140 	kstat_named_t ifIndex;
    141 	kstat_named_t address;
    142 	kstat_named_t pfxLength;
    143 	kstat_named_t type;
    144 	kstat_named_t anycastFlag;
    145 	kstat_named_t status;
    146 	kstat_named_t mtu;
    147 	kstat_named_t metric;
    148 	kstat_named_t pp_dst_addr;
    149 	kstat_named_t flags;
    150 	kstat_named_t ibcnt;
    151 	kstat_named_t obcnt;
    152 	kstat_named_t focnt;
    153 	kstat_named_t subnet;
    154 	kstat_named_t subnet_len;
    155 	kstat_named_t src_addr;
    156 } ipv6AddrEntry_named_kstat_t;
    157 
    158 
    159 typedef struct ipRouteEntry_named_kstat {
    160 	kstat_named_t dest;
    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;
    167 	kstat_named_t type;
    168 	kstat_named_t proto;
    169 	kstat_named_t age;
    170 	kstat_named_t mask;
    171 	kstat_named_t metric5;
    172 	kstat_named_t max_frag;
    173 	kstat_named_t rtt;
    174 	kstat_named_t ref;
    175 	kstat_named_t frag_flag;
    176 	kstat_named_t src_addr;
    177 	kstat_named_t ire_type;
    178 	kstat_named_t obppkt;
    179 	kstat_named_t ibpkt;
    180 	kstat_named_t flags;
    181 	kstat_named_t in_ill;
    182 	kstat_named_t in_src_addr;
    183 } ipRouteEntry_named_kstat_t;
    184 
    185 
    186 typedef struct ipv6RouteEntry_named_kstat {
    187 	kstat_named_t dest;
    188 	kstat_named_t pfxLength;
    189 	kstat_named_t index;
    190 	kstat_named_t ifIndex;
    191 	kstat_named_t nextHop;
    192 	kstat_named_t type;
    193 	kstat_named_t protocol;
    194 	kstat_named_t policy;
    195 	kstat_named_t age;
    196 	kstat_named_t nextHopRDI;
    197 	kstat_named_t metric;
    198 	kstat_named_t weight;
    199 	kstat_named_t max_frag;
    200 	kstat_named_t rtt;
    201 	kstat_named_t ref;
    202 	kstat_named_t frag_flag;
    203 	kstat_named_t src_addr;
    204 	kstat_named_t ire_type;
    205 	kstat_named_t obpkt;
    206 	kstat_named_t ibpkt;
    207 	kstat_named_t flags;
    208 } ipv6RouteEntry_named_kstat_t;
    209 
    210 
    211 typedef struct ipNextToMediaEntry_named_kstat {
    212 	kstat_named_t ifIndex;
    213 	kstat_named_t physAddress;
    214 	kstat_named_t netAddress;
    215 	kstat_named_t type;
    216 	kstat_named_t mask;
    217 	kstat_named_t flags;
    218 } ipNextToMediaEntry_named_kstat_t;
    219 
    220 typedef struct ipv6NextToMediaEntry_named_kstat {
    221 	kstat_named_t ifIndex;
    222 	kstat_named_t netAddress;
    223 	kstat_named_t physAddress;
    224 	kstat_named_t type;
    225 	kstat_named_t state;
    226 	kstat_named_t lastUpdated;
    227 } ipv6NextToMediaEntry_named_kstat_t;
    228 
    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;
    264 
    265 
    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;
    312 
    313 
    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;
    356 
    357 
    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;
    412 } tcp_named_kstat_t;
    413 
    414 typedef struct tcpConnEntry_named_kstat { /* IPv4 and IPv6 unified */
    415 	kstat_named_t state;
    416 	kstat_named_t localAddress;
    417 	kstat_named_t localPort;
    418 	kstat_named_t remAddress;
    419 	kstat_named_t remPort;
    420 	kstat_named_t snxt;
    421 	kstat_named_t suna;
    422 	kstat_named_t swnd;
    423 	kstat_named_t rnxt;
    424 	kstat_named_t rack;
    425 	kstat_named_t rwnd;
    426 	kstat_named_t rto;
    427 	kstat_named_t mss;
    428 	kstat_named_t internalState;
    429 	kstat_named_t ifIndex;
    430 	kstat_named_t version;
    431 	kstat_named_t pid;
    432 } tcpConnEntry_named_kstat_t;
    433 
    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;
    441 } udp_named_kstat_t;
    442 
    443 typedef struct udpEntry_named_kstat {
    444 	kstat_named_t localAddress;
    445 	kstat_named_t localPort;
    446 	kstat_named_t state;
    447 	kstat_named_t remoteAddress;
    448 	kstat_named_t remotePort;
    449 } udpEntry_named_kstat_t;
    450 
    451 
    452 typedef struct udp6Entry_named_kstat {
    453 	kstat_named_t localAddress;
    454 	kstat_named_t localPort;
    455 	kstat_named_t ifIndex;
    456 	kstat_named_t state;
    457 	kstat_named_t remoteAddress;
    458 	kstat_named_t remotePort;
    459 } udp6Entry_named_kstat_t;
    460 
    461 
    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;
    469 
    470 
    471 #define	NUM_OF_FIELDS(S)	(sizeof (S) / sizeof (kstat_named_t))
    472 
    473 #ifdef	__cplusplus
    474 }
    475 #endif
    476 
    477 #endif	/* _INET_KSTATCOM_H */
    478