blob: c6dfca980b2744096802ff9c5bea33febd15fc0c [file] [log] [blame]
/*
* 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[256];
};
struct icmp6_msg_mib {
struct icmp_msg_mib vals[256];
};
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 */