interfaces.h
上传用户:wxp200602
上传日期:2007-10-30
资源大小:4028k
文件大小:4k
源码类别:

SNMP编程

开发平台:

Unix_Linux

  1. /*
  2.  *  Interfaces MIB group interface - interfaces.h
  3.  *
  4.  */
  5. #ifndef _MIBGROUP_INTERFACES_H
  6. #define _MIBGROUP_INTERFACES_H
  7. config_require(util_funcs)
  8. #if !defined(WIN32) && !defined(cygwin)
  9. config_require(if-mib/data_access/interface)
  10. #endif
  11. config_arch_require(solaris2, kernel_sunos5)
  12. /*
  13.  * need get_address in var_route for some platforms (USE_SYSCTL_IFLIST).
  14.  * Not sure if that can be translated into a config_arch_require, so be
  15.  * indiscriminate for now.
  16.  */
  17. config_require(mibII/var_route)
  18. #ifdef hpux11
  19. #include <sys/mib.h>
  20. #else
  21.      struct in_ifaddr;
  22.      struct ifnet;
  23. #endif
  24.      int             Interface_Scan_Get_Count(void);
  25.      int             Interface_Index_By_Name(char *, int);
  26.      void            Interface_Scan_Init(void);
  27. #if defined(linux) || defined(sunV3)
  28.      struct in_ifaddr {
  29.          int             dummy;
  30.      };
  31. #endif
  32. #if defined(hpux11)
  33.      int             Interface_Scan_Next(short *, char *, nmapi_phystat *);
  34. #else
  35.      int             Interface_Scan_Next(short *, char *, struct ifnet *,
  36.                                          struct in_ifaddr *);
  37. #endif
  38.      void            init_interfaces(void);
  39.      extern FindVarMethod var_interfaces;
  40.      extern FindVarMethod var_ifEntry;
  41. #define IFNUMBER        0
  42. #define IFINDEX         1
  43. #define IFDESCR         2
  44. #define IFTYPE          3
  45. #define IFMTU           4
  46. #define IFSPEED         5
  47. #define IFPHYSADDRESS   6
  48. #define IFADMINSTATUS   7
  49. #define IFOPERSTATUS    8
  50. #define IFLASTCHANGE    9
  51. #define IFINOCTETS      10
  52. #define IFINUCASTPKTS   11
  53. #define IFINNUCASTPKTS  12
  54. #define IFINDISCARDS    13
  55. #define IFINERRORS      14
  56. #define IFINUNKNOWNPROTOS 15
  57. #define IFOUTOCTETS     16
  58. #define IFOUTUCASTPKTS  17
  59. #define IFOUTNUCASTPKTS 18
  60. #define IFOUTDISCARDS   19
  61. #define IFOUTERRORS     20
  62. #define IFOUTQLEN       21
  63. #define IFSPECIFIC      22
  64. #ifdef linux
  65. /*
  66.  * this struct ifnet is cloned from the generic type and somewhat modified.
  67.  * it will not work for other un*x'es...
  68.  */
  69.      struct ifnet {
  70.          char           *if_name;       /* name, e.g. ``en'' or ``lo'' */
  71.          char           *if_unit;       /* sub-unit for lower level driver */
  72.          short           if_mtu;        /* maximum transmission unit */
  73.          short           if_flags;      /* up/down, broadcast, etc. */
  74.          int             if_metric;     /* routing metric (external only) */
  75.          char            if_hwaddr[6];  /* ethernet address */
  76.          int             if_type;       /* interface type: 1=generic,
  77.                                          * 28=slip, ether=6, loopback=24 */
  78.          u_long          if_speed;      /* interface speed: in bits/sec */
  79.          struct sockaddr if_addr;       /* interface's address */
  80.          struct sockaddr ifu_broadaddr; /* broadcast address */
  81.          struct sockaddr ia_subnetmask; /* interface's mask */
  82.          struct ifqueue {
  83.              int             ifq_len;
  84.              int             ifq_drops;
  85.          } if_snd;              /* output queue */
  86.          u_long          if_ibytes;     /* octets received on interface */
  87.          u_long          if_ipackets;   /* packets received on interface */
  88.          u_long          if_ierrors;    /* input errors on interface */
  89.          u_long          if_iqdrops;    /* input queue overruns */
  90.          u_long          if_obytes;     /* octets sent on interface */
  91.          u_long          if_opackets;   /* packets sent on interface */
  92.          u_long          if_oerrors;    /* output errors on interface */
  93.          u_long          if_collisions; /* collisions on csma interfaces */
  94.          /*
  95.           * end statistics 
  96.           */
  97.          struct ifnet   *if_next;
  98.      };
  99. #endif
  100. #endif                          /* _MIBGROUP_INTERFACES_H */