1 /*
2  *  MIB statistics gathering structures
3  */
4 
5 #ifndef _MIBGROUP_KERNEL_MIB_H
6 #define _MIBGROUP_KERNEL_MIB_H
7 
8 struct ip_mib {
9     unsigned long   ipForwarding;
10     unsigned long   ipDefaultTTL;
11     unsigned long   ipInReceives;
12     unsigned long   ipInHdrErrors;
13     unsigned long   ipInAddrErrors;
14     unsigned long   ipForwDatagrams;
15     unsigned long   ipInUnknownProtos;
16     unsigned long   ipInDiscards;
17     unsigned long   ipInDelivers;
18     unsigned long   ipOutRequests;
19     unsigned long   ipOutDiscards;
20     unsigned long   ipOutNoRoutes;
21     unsigned long   ipReasmTimeout;
22     unsigned long   ipReasmReqds;
23     unsigned long   ipReasmOKs;
24     unsigned long   ipReasmFails;
25     unsigned long   ipFragOKs;
26     unsigned long   ipFragFails;
27     unsigned long   ipFragCreates;
28     unsigned long   ipRoutingDiscards;
29 };
30 
31 struct ip6_mib {
32     unsigned long ip6InReceives;
33     unsigned long ip6InHdrErrors;
34     unsigned long ip6InTooBigErrors;
35     unsigned long ip6InNoRoutes;
36     unsigned long ip6InAddrErrors;
37     unsigned long ip6InUnknownProtos;
38     unsigned long ip6InTruncatedPkts;
39     unsigned long ip6InDiscards;
40     unsigned long ip6InDelivers;
41     unsigned long ip6OutForwDatagrams;
42     unsigned long ip6OutRequests;
43     unsigned long ip6OutDiscards;
44     unsigned long ip6OutNoRoutes;
45     unsigned long ip6ReasmTimeout;
46     unsigned long ip6ReasmReqds;
47     unsigned long ip6ReasmOKs;
48     unsigned long ip6ReasmFails;
49     unsigned long ip6FragOKs;
50     unsigned long ip6FragFails;
51     unsigned long ip6FragCreates;
52     unsigned long ip6InMcastPkts;
53     unsigned long ip6OutMcastPkts;
54 };
55 
56 struct icmp_mib {
57     unsigned long   icmpInMsgs;
58     unsigned long   icmpInErrors;
59     unsigned long   icmpInDestUnreachs;
60     unsigned long   icmpInTimeExcds;
61     unsigned long   icmpInParmProbs;
62     unsigned long   icmpInSrcQuenchs;
63     unsigned long   icmpInRedirects;
64     unsigned long   icmpInEchos;
65     unsigned long   icmpInEchoReps;
66     unsigned long   icmpInTimestamps;
67     unsigned long   icmpInTimestampReps;
68     unsigned long   icmpInAddrMasks;
69     unsigned long   icmpInAddrMaskReps;
70     unsigned long   icmpOutMsgs;
71     unsigned long   icmpOutErrors;
72     unsigned long   icmpOutDestUnreachs;
73     unsigned long   icmpOutTimeExcds;
74     unsigned long   icmpOutParmProbs;
75     unsigned long   icmpOutSrcQuenchs;
76     unsigned long   icmpOutRedirects;
77     unsigned long   icmpOutEchos;
78     unsigned long   icmpOutEchoReps;
79     unsigned long   icmpOutTimestamps;
80     unsigned long   icmpOutTimestampReps;
81     unsigned long   icmpOutAddrMasks;
82     unsigned long   icmpOutAddrMaskReps;
83 };
84 
85 struct icmp6_mib {
86     unsigned long icmp6InMsgs;
87     unsigned long icmp6InErrors;
88     unsigned long icmp6InDestUnreachs;
89     unsigned long icmp6InPktTooBigs;
90     unsigned long icmp6InTimeExcds;
91     unsigned long icmp6InParmProblems;
92     unsigned long icmp6InEchos;
93     unsigned long icmp6InEchoReplies;
94     unsigned long icmp6InGroupMembQueries;
95     unsigned long icmp6InGroupMembResponses;
96     unsigned long icmp6InGroupMembReductions;
97     unsigned long icmp6InRouterSolicits;
98     unsigned long icmp6InRouterAdvertisements;
99     unsigned long icmp6InNeighborSolicits;
100     unsigned long icmp6InNeighborAdvertisements;
101     unsigned long icmp6InRedirects;
102     unsigned long icmp6OutMsgs;
103     unsigned long icmp6OutDestUnreachs;
104     unsigned long icmp6OutPktTooBigs;
105     unsigned long icmp6OutTimeExcds;
106     unsigned long icmp6OutParmProblems;
107     unsigned long icmp6OutEchos;
108     unsigned long icmp6OutEchoReplies;
109     unsigned long icmp6OutRouterSolicits;
110     unsigned long icmp6OutNeighborSolicits;
111     unsigned long icmp6OutNeighborAdvertisements;
112     unsigned long icmp6OutRedirects;
113     unsigned long icmp6OutGroupMembResponses;
114     unsigned long icmp6OutGroupMembReductions;
115 };
116 
117 struct icmp_msg_mib {
118     unsigned long InType;
119     unsigned long OutType;
120 };
121 
122 /* Lets use wrapper structures for future expansion */
123 struct icmp4_msg_mib {
124     struct icmp_msg_mib vals[256];
125 };
126 
127 struct icmp6_msg_mib {
128     struct icmp_msg_mib vals[256];
129 };
130 
131 struct udp_mib {
132     unsigned long   udpInDatagrams;
133     unsigned long   udpNoPorts;
134     unsigned long   udpInErrors;
135     unsigned long   udpOutDatagrams;
136 };
137 
138 struct udp6_mib {
139     unsigned long udp6InDatagrams;
140     unsigned long udp6NoPorts;
141     unsigned long udp6InErrors;
142     unsigned long udp6OutDatagrams;
143 };
144 
145 struct tcp_mib {
146     unsigned long   tcpRtoAlgorithm;
147     unsigned long   tcpRtoMin;
148     unsigned long   tcpRtoMax;
149     unsigned long   tcpMaxConn;
150     unsigned long   tcpActiveOpens;
151     unsigned long   tcpPassiveOpens;
152     unsigned long   tcpAttemptFails;
153     unsigned long   tcpEstabResets;
154     unsigned long   tcpCurrEstab;
155     unsigned long   tcpInSegs;
156     unsigned long   tcpOutSegs;
157     unsigned long   tcpRetransSegs;
158     unsigned long   tcpInErrs;
159     unsigned long   tcpOutRsts;
160     short           tcpInErrsValid;
161     short           tcpOutRstsValid;
162 };
163 
164 #endif  /* _MIBGROUP_KERNEL_MIB_H */
165