/* Portions of this file are subject to the following copyright(s). See * the Net-SNMP's COPYING file for more details and other copyrights * that may apply: */ /* * Portions of this file are copyrighted by: * Copyright © 2003 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms specified in the COPYING file * distributed with the Net-SNMP package. */ /* * CMU compatability definitions and structures. * * (since the UCD package split from the CMU one * about 8 years ago, that's probably enough time * for people to convert any outstanding code!) */ #ifndef NET_SNMP_CMU_COMPAT_H #define NET_SNMP_CMU_COMPAT_H #ifdef __cplusplus extern "C" { #endif /* * ============================ * * * * Enumerations and definitions * * * * ============================ */ #include /* * From parse.h */ #define ACCESS_READONLY MIB_ACCESS_READONLY #define ACCESS_READWRITE MIB_ACCESS_READWRITE #define ACCESS_WRITEONLY MIB_ACCESS_WRITEONLY #define ACCESS_NOACCESS MIB_ACCESS_NOACCESS #define ACCESS_NOTIFY MIB_ACCESS_NOTIFY #define ACCESS_CREATE MIB_ACCESS_CREATE #define STATUS_MANDATORY MIB_STATUS_MANDATORY #define STATUS_OPTIONAL MIB_STATUS_OPTIONAL #define STATUS_OBSOLETE MIB_STATUS_OBSOLETE #define STATUS_DEPRECATED MIB_STATUS_DEPRECATED #define STATUS_CURRENT MIB_STATUS_CURRENT /* * From smnp_impl.h */ #define INTEGER ASN_INTEGER #define STRING ASN_OCTET_STR #define OBJID ASN_OBJECT_ID #define NULLOBJ ASN_NULL #define BITSTRING ASN_BIT_STR /* HISTORIC - don't use */ #define IPADDRESS ASN_IPADDRESS #define COUNTER ASN_COUNTER #define GAUGE ASN_GAUGE #define UNSIGNED ASN_UNSIGNED #define TIMETICKS ASN_TIMETICKS #define ASNT_OPAQUE ASN_OPAQUE #define NSAP ASN_NSAP #define COUNTER64 ASN_COUNTER64 #define UINTEGER ASN_UINTEGER /* * From snmp.h */ #define GET_REQ_MSG SNMP_MSG_GET #define GETNEXT_REQ_MSG SNMP_MSG_GETNEXT #define GET_RSP_MSG SNMP_MSG_RESPONSE #define SET_REQ_MSG SNMP_MSG_SET #define TRP_REQ_MSG SNMP_MSG_TRAP #define BULK_REQ_MSG SNMP_MSG_GETBULK #define INFORM_REQ_MSG SNMP_MSG_INFORM #define TRP2_REQ_MSG SNMP_MSG_TRAP2 #define REPORT_RSP_MSG SNMP_MSG_REPORT /* * since CMU V1.5 */ #define SNMP_PDU_GET SNMP_MSG_GET #define SNMP_PDU_GETNEXT SNMP_MSG_GETNEXT #define SNMP_PDU_RESPONSE SNMP_MSG_RESPONSE #define SNMP_PDU_SET SNMP_MSG_SET #define SNMP_PDU_GETBULK SNMP_MSG_GETBULK #define SNMP_PDU_INFORM SNMP_MSG_INFORM #define SNMP_PDU_V2TRAP SNMP_MSG_TRAP2 #define SNMP_PDU_REPORT SNMP_MSG_REPORT #define SNMP_TRAP_AUTHENTICATIONFAILURE SNMP_TRAP_AUTHFAIL #define SMI_INTEGER ASN_INTEGER #define SMI_STRING ASN_OCTET_STR #define SMI_OBJID ASN_OBJECT_ID #define SMI_NULLOBJ ASN_NULL #define SMI_IPADDRESS ASN_IPADDRESS #define SMI_COUNTER32 ASN_COUNTER #define SMI_GAUGE32 ASN_GAUGE #define SMI_UNSIGNED32 SMI_GAUGE32 #define SMI_TIMETICKS ASN_TIMETICKS #define SMI_OPAQUE ASN_OPAQUE #define SMI_COUNTER64 ASN_COUNTER64 /* * ============================ * * * * Function declarations * * and global variables * * * * ============================ */ extern int snmp_dump_packet; /* from snmp_api.h */ extern int quick_print; /* from snmp_api.h */ #include /* for snmp_pdu & snmp_session */ int mib_TxtToOid(char *, oid **, size_t *); /* from snmp.h */ int mib_OidToTxt(oid *, size_t, char *, size_t); /* from snmp.h */ u_char *cmu_snmp_parse(netsnmp_session * session, netsnmp_pdu *pdu, u_char * data, size_t length); /* from snmp.h */ /* * ============================ * * * * MIB-II data structures * * (from mib.h) * * * * ============================ */ struct mib_system { char sysDescr[32]; /* textual description */ u_char sysObjectID[16]; /* OBJECT IDENTIFIER of system */ u_char ObjIDLen; /* length of sysObjectID */ u_int sysUpTime; /* Uptime in 100/s of a second */ }; struct mib_interface { int ifNumber; /* number of interfaces */ }; struct mib_ifEntry { int ifIndex; /* index of this interface */ char ifDescr[32]; /* english description of interface */ int ifType; /* network type of device */ int ifMtu; /* size of largest packet in bytes */ u_int ifSpeed; /* bandwidth in bits/sec */ u_char ifPhysAddress[11]; /* interface's address */ u_char PhysAddrLen; /* length of physAddr */ int ifAdminStatus; /* desired state of interface */ int ifOperStatus; /* current operational status */ u_int ifLastChange; /* value of sysUpTime when current state entered */ u_int ifInOctets; /* number of octets received on interface */ u_int ifInUcastPkts; /* number of unicast packets delivered */ u_int ifInNUcastPkts; /* number of broadcasts or multicasts */ u_int ifInDiscards; /* number of packets discarded with no error */ u_int ifInErrors; /* number of packets containing errors */ u_int ifInUnknownProtos; /* number of packets with unknown protocol */ u_int ifOutOctets; /* number of octets transmitted */ u_int ifOutUcastPkts; /* number of unicast packets sent */ u_int ifOutNUcastPkts; /* number of broadcast or multicast pkts */ u_int ifOutDiscards; /* number of packets discarded with no error */ u_int ifOutErrors; /* number of pkts discarded with an error */ u_int ifOutQLen; /* number of packets in output queue */ }; struct mib_atEntry { int atIfIndex; /* interface on which this entry maps */ u_char atPhysAddress[11]; /* physical address of destination */ u_char PhysAddressLen; /* length of atPhysAddress */ u_int atNetAddress; /* IP address of physical address */ }; struct mib_ip { int ipForwarding; /* 1 if gateway, 2 if host */ int ipDefaultTTL; /* default TTL for pkts originating here */ u_int ipInReceives; /* no. of IP packets received from interfaces */ u_int ipInHdrErrors; /* number of pkts discarded due to header errors */ u_int ipInAddrErrors; /* no. of pkts discarded due to bad address */ u_int ipForwDatagrams; /* number pf pkts forwarded through this entity */ u_int ipInUnknownProtos; /* no. of local-addressed pkts w/unknown proto */ u_int ipInDiscards; /* number of error-free packets discarded */ u_int ipInDelivers; /* number of datagrams delivered to upper level */ u_int ipOutRequests; /* number of IP datagrams originating locally */ u_int ipOutDiscards; /* number of error-free output IP pkts discarded */ u_int ipOutNoRoutes; /* number of IP pkts discarded due to no route */ int ipReasmTimeout; /* seconds fragment is held awaiting reassembly */ u_int ipReasmReqds; /* no. of fragments needing reassembly (here) */ u_int ipReasmOKs; /* number of fragments reassembled */ u_int ipReasmFails; /* number of failures in IP reassembly */ u_int ipFragOKs; /* number of datagrams fragmented here */ u_int ipFragFails; /* no. pkts unable to be fragmented here */ u_int ipFragCreates; /* number of IP fragments created here */ }; struct mib_ipAddrEntry { u_int ipAdEntAddr; /* IP address of this entry */ int ipAdEntIfIndex; /* IF for this entry */ u_int ipAdEntNetMask; /* subnet mask of this entry */ int ipAdEntBcastAddr; /* read the MIB for this one */ int ipAdEntReasmMaxSize; /* max size for dg reassembly {ipAddrEntry 5} */ }; struct mib_ipRouteEntry { u_int ipRouteDest; /* destination IP addr for this route */ int ipRouteIfIndex; /* index of local IF for this route */ int ipRouteMetric1; /* Primary routing metric */ int ipRouteMetric2; /* Alternate routing metric */ int ipRouteMetric3; /* Alternate routing metric */ int ipRouteMetric4; /* Alternate routing metric */ u_int ipRouteNextHop; /* IP addr of next hop */ int ipRouteType; /* Type of this route */ int ipRouteProto; /* How this route was learned */ int ipRouteAge; /* No. of seconds since updating this route */ }; struct mib_icmp { u_int icmpInMsgs; /* Total of ICMP msgs received */ u_int icmpInErrors; /* Total of ICMP msgs received with errors */ u_int icmpInDestUnreachs; u_int icmpInTimeExcds; u_int icmpInParmProbs; u_int icmpInSrcQuenchs; u_int icmpInRedirects; u_int icmpInEchos; u_int icmpInEchoReps; u_int icmpInTimestamps; u_int icmpInTimestampReps; u_int icmpInAddrMasks; u_int icmpInAddrMaskReps; u_int icmpOutMsgs; u_int icmpOutErrors; u_int icmpOutDestUnreachs; u_int icmpOutTimeExcds; u_int icmpOutParmProbs; u_int icmpOutSrcQuenchs; u_int icmpOutRedirects; u_int icmpOutEchos; u_int icmpOutEchoReps; u_int icmpOutTimestamps; u_int icmpOutTimestampReps; u_int icmpOutAddrMasks; u_int icmpOutAddrMaskReps; }; struct mib_tcp { int tcpRtoAlgorithm; /* retransmission timeout algorithm */ int tcpRtoMin; /* minimum retransmission timeout (mS) */ int tcpRtoMax; /* maximum retransmission timeout (mS) */ int tcpMaxConn; /* maximum tcp connections possible */ u_int tcpActiveOpens; /* number of SYN-SENT -> CLOSED transitions */ u_int tcpPassiveOpens; /* number of SYN-RCVD -> LISTEN transitions */ u_int tcpAttemptFails; /*(SYN-SENT,SYN-RCVD)->CLOSED or SYN-RCVD->LISTEN */ u_int tcpEstabResets; /* (ESTABLISHED,CLOSE-WAIT) -> CLOSED */ u_int tcpCurrEstab; /* number in ESTABLISHED or CLOSE-WAIT state */ u_int tcpInSegs; /* number of segments received */ u_int tcpOutSegs; /* number of segments sent */ u_int tcpRetransSegs; /* number of retransmitted segments */ }; struct mib_tcpConnEntry { int tcpConnState; /* State of this connection */ u_int tcpConnLocalAddress; /* local IP address for this connection */ int tcpConnLocalPort; /* local port for this connection */ u_int tcpConnRemAddress; /* remote IP address for this connection */ int tcpConnRemPort; /* remote port for this connection */ }; struct mib_udp { u_int udpInDatagrams; /* No. of UDP datagrams delivered to users */ u_int udpNoPorts; /* No. of UDP datagrams to port with no listener */ u_int udpInErrors; /* No. of UDP datagrams unable to be delivered */ u_int udpOutDatagrams; /* No. of UDP datagrams sent from this entity */ }; struct mib_egp { u_int egpInMsgs; /* No. of EGP msgs received without error */ u_int egpInErrors; /* No. of EGP msgs received with error */ u_int egpOutMsgs; /* No. of EGP msgs sent */ u_int egpOutErrors; /* No. of (outgoing) EGP msgs dropped due to error */ }; struct mib_egpNeighEntry { int egpNeighState; /* local EGP state with this entry's neighbor */ u_int egpNeighAddr; /* IP address of this entry's neighbor */ }; #ifdef __cplusplus } #endif #endif /* NET_SNMP_CMU_COMPAT_H */