blob: 5475c6f7295bbb597ccae652d5bf0b58ed56efdb [file] [log] [blame]
/* 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 <net-snmp/definitions.h>
/*
* 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 <net-snmp/types.h> /* 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 */