| /* |
| * 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 */ |