summaryrefslogtreecommitdiff
path: root/agent/mibgroup/mibII/interfaces.h
diff options
context:
space:
mode:
Diffstat (limited to 'agent/mibgroup/mibII/interfaces.h')
-rw-r--r--agent/mibgroup/mibII/interfaces.h127
1 files changed, 127 insertions, 0 deletions
diff --git a/agent/mibgroup/mibII/interfaces.h b/agent/mibgroup/mibII/interfaces.h
new file mode 100644
index 0000000..c19b7a6
--- /dev/null
+++ b/agent/mibgroup/mibII/interfaces.h
@@ -0,0 +1,127 @@
+/*
+ * Interfaces MIB group interface - interfaces.h
+ *
+ */
+#ifndef _MIBGROUP_INTERFACES_H
+#define _MIBGROUP_INTERFACES_H
+
+/***********************************************************************
+ * configure macros
+ */
+config_require(util_funcs/header_generic)
+
+/*
+ * conflicts with the new MFD rewrite
+ */
+config_exclude(if-mib/ifTable/ifTable)
+
+#if !defined(WIN32) && !defined(cygwin)
+config_require(if-mib/data_access/interface)
+#endif
+
+config_arch_require(solaris2, kernel_sunos5)
+/*
+ * need get_address in var_route for some platforms (USE_SYSCTL_IFLIST).
+ * Not sure if that can be translated into a config_arch_require, so be
+ * indiscriminate for now.
+ */
+config_require(mibII/var_route)
+
+/***********************************************************************
+ */
+#ifndef USING_IF_MIB_IFTABLE_MODULE
+#ifdef hpux11
+#include <sys/mib.h>
+#else
+ struct in_ifaddr;
+ struct ifnet;
+#endif
+
+ int Interface_Scan_Get_Count(void);
+ int Interface_Index_By_Name(char *, int);
+ void Interface_Scan_Init(void);
+#if defined(linux) || defined(sunV3)
+ struct in_ifaddr {
+ int dummy;
+ };
+#endif
+#if defined(hpux11)
+ int Interface_Scan_Next(short *, char *, nmapi_phystat *);
+ int Interface_Scan_NextInt(int *, char *, nmapi_phystat *);
+#else
+ int Interface_Scan_Next(short *, char *, struct ifnet *,
+ struct in_ifaddr *);
+ int Interface_Scan_NextInt(int *, char *, struct ifnet *,
+ struct in_ifaddr *);
+#endif
+
+ void init_interfaces(void);
+ extern FindVarMethod var_interfaces;
+ extern FindVarMethod var_ifEntry;
+
+#endif /* USING_IF_MIB_IFTABLE_MODULE */
+
+#define NETSNMP_IFNUMBER 0
+#define NETSNMP_IFINDEX 1
+#define NETSNMP_IFDESCR 2
+#define NETSNMP_IFTYPE 3
+#define NETSNMP_IFMTU 4
+#define NETSNMP_IFSPEED 5
+#define NETSNMP_IFPHYSADDRESS 6
+#define NETSNMP_IFADMINSTATUS 7
+#define NETSNMP_IFOPERSTATUS 8
+#define NETSNMP_IFLASTCHANGE 9
+#define NETSNMP_IFINOCTETS 10
+#define NETSNMP_IFINUCASTPKTS 11
+#define NETSNMP_IFINNUCASTPKTS 12
+#define NETSNMP_IFINDISCARDS 13
+#define NETSNMP_IFINERRORS 14
+#define NETSNMP_IFINUNKNOWNPROTOS 15
+#define NETSNMP_IFOUTOCTETS 16
+#define NETSNMP_IFOUTUCASTPKTS 17
+#define NETSNMP_IFOUTNUCASTPKTS 18
+#define NETSNMP_IFOUTDISCARDS 19
+#define NETSNMP_IFOUTERRORS 20
+#define NETSNMP_IFOUTQLEN 21
+#define NETSNMP_IFSPECIFIC 22
+
+#ifdef linux
+/*
+ * this struct ifnet is cloned from the generic type and somewhat modified.
+ * it will not work for other un*x'es...
+ */
+
+ struct ifnet {
+ char *if_name; /* name, e.g. ``en'' or ``lo'' */
+ char *if_unit; /* sub-unit for lower level driver */
+ short if_mtu; /* maximum transmission unit */
+ short if_flags; /* up/down, broadcast, etc. */
+ int if_metric; /* routing metric (external only) */
+ char if_hwaddr[6]; /* ethernet address */
+ int if_type; /* interface type: 1=generic,
+ * 28=slip, ether=6, loopback=24 */
+ u_long if_speed; /* interface speed: in bits/sec */
+
+ struct sockaddr if_addr; /* interface's address */
+ struct sockaddr ifu_broadaddr; /* broadcast address */
+ struct sockaddr ia_subnetmask; /* interface's mask */
+
+ struct ifqueue {
+ int ifq_len;
+ int ifq_drops;
+ } if_snd; /* output queue */
+ u_long if_ibytes; /* octets received on interface */
+ u_long if_ipackets; /* packets received on interface */
+ u_long if_ierrors; /* input errors on interface */
+ u_long if_iqdrops; /* input queue overruns */
+ u_long if_obytes; /* octets sent on interface */
+ u_long if_opackets; /* packets sent on interface */
+ u_long if_oerrors; /* output errors on interface */
+ u_long if_collisions; /* collisions on csma interfaces */
+ /*
+ * end statistics
+ */
+ struct ifnet *if_next;
+ };
+#endif /* linux */
+#endif /* _MIBGROUP_INTERFACES_H */