📄 if_fields.h
字号:
/* * System-specific type and field-name information. * Used by 'interface' and 'ipAddr' groups. */#ifndef _MIBGROUP_IF_FIELDS_H#define _MIBGROUP_IF_FIELDS_H#ifdef freebsd4 /* XXX Use the same ifdefs as in interfaces.c */#define USE_SYSCTL_IFLIST 1#endif /* * Definitions for 'USE_SYSCTL_IFLIST' */#ifdef USE_SYSCTL_IFLISTstruct small_ifaddr{ struct in_addr sifa_addr; struct in_addr sifa_netmask; struct in_addr sifa_broadcast;};#define IFENTRY_TYPE struct if_msghdr#define IFADDR_TYPE struct small_ifaddr#define IFENTRY_FIELD_TYPE ifm_data.ifi_type#define IFENTRY_FIELD_MTU ifm_data.ifi_mtu#define IFENTRY_FIELD_SPEED ifm_data.ifi_baudrate#undef IFENTRY_FIELD_PHYSADDR#undef IFENTRY_FIELD_ADMIN#undef IFENTRY_FIELD_OPER#undef IFENTRY_FIELD_LASTCH#define IFENTRY_FIELD_INOCTETS ifm_data.ifi_ibytes#define IFENTRY_FIELD_INPKTS ifm_data.ifi_ipackets#define IFENTRY_FIELD_INMCASTS ifm_data.ifi_imcasts#define IFENTRY_FIELD_INDISCARDS ifm_data.ifi_iqdrops#define IFENTRY_FIELD_INERRORS ifm_data.ifi_ierrors#define IFENTRY_FIELD_UNKNOWN ifm_data.ifi_noproto#define IFENTRY_FIELD_OUTOCTETS ifm_data.ifi_obytes#define IFENTRY_FIELD_OUTPKTS ifm_data.ifi_opackets#define IFENTRY_FIELD_OUTMCASTS ifm_data.ifi_omcasts#ifndef freebsd4#define IFENTRY_FIELD_OUTDISCARDS ifm_data.ifi_oqdrops#endif#define IFENTRY_FIELD_OUTERRORS ifm_data.ifi_oerrors#undef IFENTRY_FIELD_QLEN#undef IFENTRY_FIELD_OID#define IPADDR_ADDRESS_FIELD sifa_addr#define IPADDR_BCAST_FIELD sifa_broadcast#define IPADDR_NETMASK_FIELD sifa_netmask#undef IFENTRY_CALCULATE_PHYSADDR#define IFENTRY_CALCULATE_STATUS 1#define IFENTRY_FIELD_FLAGS ifm_flags#undef IFENTRY_CALCULATE_LASTCH#define IFENTRY_FIX_UNICAST 1#endif /* * Definitions for 'HAVE_NET_IF_MIB_H' */#if !defined(USE_SYSCTL_IFLIST) && defined(HAVE_NET_IF_MIB_H)#define IFENTRY_TYPE struct if_mibdata#define IFADDR_TYPE struct in_ifaddr#define IFENTRY_FIELD_TYPE ifm_data.ifi_type#define IFENTRY_FIELD_MTU ifm_data.ifi_mtu#define IFENTRY_FIELD_SPEED ifm_data.ifi_baudrate#undef IFENTRY_FIELD_PHYSADDR#undef IFENTRY_FIELD_ADMIN#undef IFENTRY_FIELD_OPER#define IFENTRY_FIELD_LASTCH ifm_data.ifi_lastchange#define IFENTRY_FIELD_INOCTETS ifm_data.ifi_ibytes#define IFENTRY_FIELD_INPKTS ifm_data.ifi_ipackets#define IFENTRY_FIELD_INMCASTS ifm_data.ifi_imcasts#define IFENTRY_FIELD_INDISCARDS ifm_data.ifi_iqdrops#define IFENTRY_FIELD_INERRORS ifm_data.ifi_ierrors#define IFENTRY_FIELD_UNKNOWN ifm_data.ifi_noproto#define IFENTRY_FIELD_OUTOCTETS ifm_data.ifi_obytes#define IFENTRY_FIELD_OUTPKTS ifm_data.ifi_opackets#define IFENTRY_FIELD_OUTMCASTS ifm_data.ifi_omcasts#define IFENTRY_FIELD_OUTDISCARDS ifm_snd_drops#define IFENTRY_FIELD_OUTERRORS ifm_data.ifi_oerrors#define IFENTRY_FIELD_QLEN ifm_snd_len#undef IFENTRY_FIELD_OID#define IPADDR_ADDRESS_FIELD ia_addr#define IPADDR_BCAST_FIELD ia_broadaddr#define IPADDR_NETMASK_FIELD ia_subnetmask#define IFENTRY_CALCULATE_PHYSADDR 1#define IFENTRY_CALCULATE_STATUS 1#define IFENTRY_FIELD_FLAGS ifm_flags#define IFENTRY_CALCULATE_LASTCH 1#define IFENTRY_FIX_UNICAST 1#endif /* * Definitions for 'solaris2' */#ifdef solaris2#define IFENTRY_TYPE mib2_ifEntry_t#define IFADDR_TYPE mib2_ipAddrEntry_t#define IFENTRY_FIELD_TYPE ifType#define IFENTRY_FIELD_MTU ifMtu#define IFENTRY_FIELD_SPEED ifSpeed#define IFENTRY_FIELD_PHYSADDR ifPhysAddress#define IFENTRY_FIELD_ADMIN ifAdminStatus#define IFENTRY_FIELD_OPER ifOperStatus#define IFENTRY_FIELD_LASTCH ifLastChange#define IFENTRY_FIELD_INOCTETS ifInOctets#define IFENTRY_FIELD_INPKTS ifInUcastPkts#define IFENTRY_FIELD_INMCASTS ifInNUcastPkts#define IFENTRY_FIELD_INDISCARDS ifInDiscards#define IFENTRY_FIELD_INERRORS ifInErrors#define IFENTRY_FIELD_UNKNOWN ifInUnknownProtos#define IFENTRY_FIELD_OUTOCTETS ifOutOctets#define IFENTRY_FIELD_OUTPKTS ifOutUcastPkts#define IFENTRY_FIELD_OUTMCASTS ifOutNUcastPkts#define IFENTRY_FIELD_OUTDISCARDS ifOutDiscards#define IFENTRY_FIELD_OUTERRORS ifOutErrors#define IFENTRY_FIELD_QLEN ifOutQLen#undef IFENTRY_FIELD_OID#define IPADDR_ADDRESS_FIELD ia_addr#define IPADDR_BCAST_FIELD ia_broadaddr#define IPADDR_NETMASK_FIELD ia_subnetmask#undef IFENTRY_CALCULATE_PHYSADDR#define IFENTRY_STRING_SIZE(x) (x.olength)#define IFENTRY_STRING_VALUE(x) (x.obytes)#undef IFENTRY_CALCULATE_STATUS#undef IFENTRY_CALCULATE_LASTCH#undef IFENTRY_FIX_UNICAST#endif /* * Definitions for 'hpux' */#ifdef hpux#define IFENTRY_TYPE mib_ifEntry#define IFADDR_TYPE mib_ipAdEnt#define IFENTRY_FIELD_TYPE ifType#define IFENTRY_FIELD_MTU ifMtu#define IFENTRY_FIELD_SPEED ifSpeed#define IFENTRY_FIELD_PHYSADDR ifPhysAddress#define IFENTRY_FIELD_ADMIN ifAdmin#define IFENTRY_FIELD_OPER ifOper#define IFENTRY_FIELD_LASTCH ifLastChange#define IFENTRY_FIELD_INOCTETS ifInOctets#define IFENTRY_FIELD_INPKTS ifInUcastPkts#define IFENTRY_FIELD_INMCASTS ifInNUcastPkts#define IFENTRY_FIELD_INDISCARDS ifInDiscards#define IFENTRY_FIELD_INERRORS ifInErrors#define IFENTRY_FIELD_UNKNOWN ifInUnknownProtos#define IFENTRY_FIELD_OUTOCTETS ifOutOctets#define IFENTRY_FIELD_OUTPKTS ifOutUcastPkts#define IFENTRY_FIELD_OUTMCASTS ifOutNUcastPkts#define IFENTRY_FIELD_OUTDISCARDS ifOutDiscards#define IFENTRY_FIELD_OUTERRORS ifOutErrors#define IFENTRY_FIELD_QLEN ifOutQlen#undef IFENTRY_FIELD_OID#undef IFENTRY_CALCULATE_PHYSADDR /* * XXX - this is currently only used for the determining the size * of the PhysAddr field, which ought to be six bytes, but is * actually eight (with two characters unused) * * If we start using this macro more widely, we'll need to * fudge this more cleanly. */#define IFENTRY_STRING_SIZE(x) (6)#define IFENTRY_STRING_VALUE(x) (x)#undef IFENTRY_CALCULATE_STATUS#undef IFENTRY_CALCULATE_LASTCH#undef IFENTRY_FIX_UNICAST#define IPADDR_ADDRESS_FIELD Addr#define IPADDR_BCAST_FIELD NetMask#define IPADDR_NETMASK_FIELD BcastAddr#undef SOCKADDR#define SOCKADDR(x) (x)#endif /* * Definitions for 'linux' */#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 */ int if_speed; /* interface speed: in bits/sec */ 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_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;};struct in_ifaddr { struct sockaddr ia_addr; /* interface's address */ struct sockaddr ia_broadaddr; /* broadcast address */ struct sockaddr ia_subnetmask; /* interface's mask */};#define IFENTRY_TYPE struct ifnet#define IFADDR_TYPE struct in_ifaddr#define IFENTRY_FIELD_TYPE if_type#ifdef SIOCGIFMTU#define IFENTRY_FIELD_MTU if_mtu#endif#define IFENTRY_FIELD_SPEED if_speed#define IFENTRY_FIELD_PHYSADDR if_hwaddr#undef IFENTRY_FIELD_ADMIN#undef IFENTRY_FIELD_OPER#undef IFENTRY_FIELD_LASTCH#define IFENTRY_FIELD_INOCTETS if_ibytes#define IFENTRY_FIELD_INPKTS if_ipackets#undef IFENTRY_FIELD_INMCASTS#undef IFENTRY_FIELD_INDISCARDS#define IFENTRY_FIELD_INERRORS if_ierrors#undef IFENTRY_FIELD_UNKNOWN#define IFENTRY_FIELD_OUTOCTETS if_obytes#define IFENTRY_FIELD_OUTPKTS if_opackets#undef IFENTRY_FIELD_OUTMCASTS#define IFENTRY_FIELD_OUTDISCARDS if_snd.ifq_drops#define IFENTRY_FIELD_OUTERRORS if_oerrors#define IFENTRY_FIELD_QLEN if_snd.ifq_len#undef IFENTRY_FIELD_OID#define IPADDR_ADDRESS_FIELD ia_addr#define IPADDR_BCAST_FIELD ia_broadaddr#define IPADDR_NETMASK_FIELD ia_subnetmask#undef IFENTRY_CALCULATE_PHYSADDR#define IFENTRY_STRING_SIZE(x) (sizeof(x))#define IFENTRY_STRING_VALUE(x) (x)#define IFENTRY_CALCULATE_STATUS 1#define IFENTRY_FIELD_FLAGS if_flags#undef IFENTRY_CALCULATE_LASTCH#undef IFENTRY_FIX_UNICAST#endif /* * Definitions for other 'traditional' systems */#ifndef IFENTRY_TYPE#define IFENTRY_TYPE struct ifnet#define IFADDR_TYPE struct in_ifaddr#ifdef STRUCT_IFNET_HAS_IF_TYPE#define IFENTRY_FIELD_TYPE if_type#endif#define IFENTRY_FIELD_MTU if_mtu#undef IFENTRY_FIELD_SPEED#ifdef STRUCT_IFNET_HAS_IF_BAUDRATE#define IFENTRY_FIELD_SPEED if_baudrate#else#ifdef STRUCT_IFNET_HAS_IF_SPEED#define IFENTRY_FIELD_SPEED if_speed#endif#endif#undef IFENTRY_FIELD_PHYSADDR#undef IFENTRY_FIELD_ADMIN#undef IFENTRY_FIELD_OPER#if defined(STRUCT_IFNET_HAS_IF_LASTCHANGE_TV_SEC) && !(defined(freebsd2) && __FreeBSD_version < 199607)#define IFENTRY_FIELD_LASTCH if_lastchange#endif#ifdef STRUCT_IFNET_HAS_IF_IBYTES#define IFENTRY_FIELD_INOCTETS if_ibytes#endif#define IFENTRY_FIELD_INPKTS if_ipackets#ifdef STRUCT_IFNET_HAS_IF_IMCASTS#define IFENTRY_FIELD_INMCASTS if_imcasts#endif#ifdef STRUCT_IFNET_HAS_IF_IQDROPS#define IFENTRY_FIELD_INDISCARDS if_iqdrops#endif#define IFENTRY_FIELD_INERRORS if_ierrors#ifdef STRUCT_IFNET_HAS_IF_NOPROTO#define IFENTRY_FIELD_UNKNOWN if_noproto#endif#ifdef STRUCT_IFNET_HAS_IF_OBYTES#define IFENTRY_FIELD_OUTOCTETS if_obytes#endif#define IFENTRY_FIELD_OUTPKTS if_opackets#ifdef STRUCT_IFNET_HAS_IF_OMCASTS#define IFENTRY_FIELD_OUTMCASTS if_omcasts#endif#define IFENTRY_FIELD_OUTDISCARDS if_snd.ifq_drops#define IFENTRY_FIELD_OUTERRORS if_oerrors#define IFENTRY_FIELD_QLEN if_snd.ifq_len#undef IFENTRY_FIELD_OID#define IPADDR_ADDRESS_FIELD ia_addr#define IPADDR_BCAST_FIELD ia_broadaddr#define IPADDR_NETMASK_FIELD ia_subnetmask#define IFENTRY_CALCULATE_PHYSADDR 1#define IFENTRY_CALCULATE_STATUS 1#define IFENTRY_FIELD_FLAGS if_flags#ifdef IFENTRY_FIELD_LASTCH#define IFENTRY_CALCULATE_LASTCH 1#endif#ifdef IFENTRY_FIELD_INMCASTS#define IFENTRY_FIX_UNICAST 1#endif#endifstruct if_entry { int index; char *name; IFENTRY_TYPE *ifstat; IFADDR_TYPE *ifaddr;};#endif /* _MIBGROUP_IF_FIELDS_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -