summaryrefslogtreecommitdiff
path: root/agent/mibgroup/mibII/kernel_linux.h
blob: 6bf5d477e76da574270c2b7a2c39fd7dff45209d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
/*
 *  MIB statistics gathering routines
 *      for Linux architecture
 */

#ifndef _MIBGROUP_KERNEL_LINUX_H
#define _MIBGROUP_KERNEL_LINUX_H

struct ip_mib {
    unsigned long   ipForwarding;
    unsigned long   ipDefaultTTL;
    unsigned long   ipInReceives;
    unsigned long   ipInHdrErrors;
    unsigned long   ipInAddrErrors;
    unsigned long   ipForwDatagrams;
    unsigned long   ipInUnknownProtos;
    unsigned long   ipInDiscards;
    unsigned long   ipInDelivers;
    unsigned long   ipOutRequests;
    unsigned long   ipOutDiscards;
    unsigned long   ipOutNoRoutes;
    unsigned long   ipReasmTimeout;
    unsigned long   ipReasmReqds;
    unsigned long   ipReasmOKs;
    unsigned long   ipReasmFails;
    unsigned long   ipFragOKs;
    unsigned long   ipFragFails;
    unsigned long   ipFragCreates;
    unsigned long   ipRoutingDiscards;
};

struct ip6_mib {
    unsigned long ip6InReceives;
    unsigned long ip6InHdrErrors;
    unsigned long ip6InTooBigErrors;
    unsigned long ip6InNoRoutes;
    unsigned long ip6InAddrErrors;
    unsigned long ip6InUnknownProtos;
    unsigned long ip6InTruncatedPkts;
    unsigned long ip6InDiscards;
    unsigned long ip6InDelivers;
    unsigned long ip6OutForwDatagrams;
    unsigned long ip6OutRequests;
    unsigned long ip6OutDiscards;
    unsigned long ip6OutNoRoutes;
    unsigned long ip6ReasmTimeout;
    unsigned long ip6ReasmReqds;
    unsigned long ip6ReasmOKs;
    unsigned long ip6ReasmFails;
    unsigned long ip6FragOKs;
    unsigned long ip6FragFails;
    unsigned long ip6FragCreates;
    unsigned long ip6InMcastPkts;
    unsigned long ip6OutMcastPkts;
};

struct icmp_mib {
    unsigned long   icmpInMsgs;
    unsigned long   icmpInErrors;
    unsigned long   icmpInDestUnreachs;
    unsigned long   icmpInTimeExcds;
    unsigned long   icmpInParmProbs;
    unsigned long   icmpInSrcQuenchs;
    unsigned long   icmpInRedirects;
    unsigned long   icmpInEchos;
    unsigned long   icmpInEchoReps;
    unsigned long   icmpInTimestamps;
    unsigned long   icmpInTimestampReps;
    unsigned long   icmpInAddrMasks;
    unsigned long   icmpInAddrMaskReps;
    unsigned long   icmpOutMsgs;
    unsigned long   icmpOutErrors;
    unsigned long   icmpOutDestUnreachs;
    unsigned long   icmpOutTimeExcds;
    unsigned long   icmpOutParmProbs;
    unsigned long   icmpOutSrcQuenchs;
    unsigned long   icmpOutRedirects;
    unsigned long   icmpOutEchos;
    unsigned long   icmpOutEchoReps;
    unsigned long   icmpOutTimestamps;
    unsigned long   icmpOutTimestampReps;
    unsigned long   icmpOutAddrMasks;
    unsigned long   icmpOutAddrMaskReps;
};

struct icmp6_mib {
    unsigned long icmp6InMsgs;
    unsigned long icmp6InErrors;
    unsigned long icmp6InDestUnreachs;
    unsigned long icmp6InPktTooBigs;
    unsigned long icmp6InTimeExcds;
    unsigned long icmp6InParmProblems;
    unsigned long icmp6InEchos;
    unsigned long icmp6InEchoReplies;
    unsigned long icmp6InGroupMembQueries;
    unsigned long icmp6InGroupMembResponses;
    unsigned long icmp6InGroupMembReductions;
    unsigned long icmp6InRouterSolicits;
    unsigned long icmp6InRouterAdvertisements;
    unsigned long icmp6InNeighborSolicits;
    unsigned long icmp6InNeighborAdvertisements;
    unsigned long icmp6InRedirects;
    unsigned long icmp6OutMsgs;
    unsigned long icmp6OutDestUnreachs;
    unsigned long icmp6OutPktTooBigs;
    unsigned long icmp6OutTimeExcds;
    unsigned long icmp6OutParmProblems;
    unsigned long icmp6OutEchoReplies;
    unsigned long icmp6OutRouterSolicits;
    unsigned long icmp6OutNeighborSolicits;
    unsigned long icmp6OutNeighborAdvertisements;
    unsigned long icmp6OutRedirects;
    unsigned long icmp6OutGroupMembResponses;
    unsigned long icmp6OutGroupMembReductions;
};

struct icmp_msg_mib {
    unsigned long InType;
    unsigned long OutType;
};

/* Lets use wrapper structures for future expansion */
struct icmp4_msg_mib {
    struct icmp_msg_mib vals[255];
};

struct icmp6_msg_mib {
    struct icmp_msg_mib vals[255];
};

struct udp_mib {
    unsigned long   udpInDatagrams;
    unsigned long   udpNoPorts;
    unsigned long   udpInErrors;
    unsigned long   udpOutDatagrams;
};

struct udp6_mib {
    unsigned long udp6InDatagrams;
    unsigned long udp6NoPorts;
    unsigned long udp6InErrors;
    unsigned long udp6OutDatagrams;
};

struct tcp_mib {
    unsigned long   tcpRtoAlgorithm;
    unsigned long   tcpRtoMin;
    unsigned long   tcpRtoMax;
    unsigned long   tcpMaxConn;
    unsigned long   tcpActiveOpens;
    unsigned long   tcpPassiveOpens;
    unsigned long   tcpAttemptFails;
    unsigned long   tcpEstabResets;
    unsigned long   tcpCurrEstab;
    unsigned long   tcpInSegs;
    unsigned long   tcpOutSegs;
    unsigned long   tcpRetransSegs;
    unsigned long   tcpInErrs;
    unsigned long   tcpOutRsts;
    short           tcpInErrsValid;
    short           tcpOutRstsValid;
};


int             linux_read_ip_stat(struct ip_mib *);
int             linux_read_ip6_stat(struct ip6_mib *);
int             linux_read_icmp_stat(struct icmp_mib *);
int             linux_read_icmp6_stat(struct icmp6_mib *);
int             linux_read_udp_stat(struct udp_mib *);
int             linux_read_udp6_stat(struct udp6_mib *);
int             linux_read_tcp_stat(struct tcp_mib *);
int             linux_read_icmp_msg_stat(struct icmp_mib *,
                                         struct icmp4_msg_mib *,
                                         int *flag);
int             linux_read_icmp6_msg_stat(struct icmp6_mib *,
                                          struct icmp6_msg_mib *,
                                          int *support);

#endif                          /* _MIBGROUP_KERNEL_LINUX_H */