128 lines
4.4 KiB
C
128 lines
4.4 KiB
C
/*
|
|
* 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 */
|