Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/********************************************************************/ /** Microsoft LAN Manager **/ /** Copyright (c) Microsoft Corporation. All rights reserved. **/ /********************************************************************/ /* :ts=4 */
//** IPINFO.H - IP SNMP information definitions.. // // This file contains all of the definitions for IP that are // related to SNMP information gathering.
#ifndef IPINFO_INCLUDED #define IPINFO_INCLUDED
#if _MSC_VER > 1000 #pragma once #endif
#ifndef CTE_TYPEDEFS_DEFINED #define CTE_TYPEDEFS_DEFINED
typedef unsigned long ulong; typedef unsigned short ushort; typedef unsigned char uchar; typedef unsigned int uint;
#endif // CTE_TYPEDEFS_DEFINED
typedef struct IPSNMPInfo { ulong ipsi_forwarding; ulong ipsi_defaultttl; ulong ipsi_inreceives; ulong ipsi_inhdrerrors; ulong ipsi_inaddrerrors; ulong ipsi_forwdatagrams; ulong ipsi_inunknownprotos; ulong ipsi_indiscards; ulong ipsi_indelivers; ulong ipsi_outrequests; ulong ipsi_routingdiscards; ulong ipsi_outdiscards; ulong ipsi_outnoroutes; ulong ipsi_reasmtimeout; ulong ipsi_reasmreqds; ulong ipsi_reasmoks; ulong ipsi_reasmfails; ulong ipsi_fragoks; ulong ipsi_fragfails; ulong ipsi_fragcreates; ulong ipsi_numif; ulong ipsi_numaddr; ulong ipsi_numroutes; } IPSNMPInfo;
typedef struct ICMPStats { ulong icmps_msgs; ulong icmps_errors; ulong icmps_destunreachs; ulong icmps_timeexcds; ulong icmps_parmprobs; ulong icmps_srcquenchs; ulong icmps_redirects; ulong icmps_echos; ulong icmps_echoreps; ulong icmps_timestamps; ulong icmps_timestampreps; ulong icmps_addrmasks; ulong icmps_addrmaskreps; } ICMPStats;
typedef struct ICMPSNMPInfo { ICMPStats icsi_instats; ICMPStats icsi_outstats; } ICMPSNMPInfo;
typedef struct ICMPv6Stats { ulong icmps_msgs; ulong icmps_errors; ulong icmps_typecount[256]; } ICMPv6Stats;
typedef struct ICMPv6SNMPInfo { ICMPv6Stats icsi_instats; ICMPv6Stats icsi_outstats; } ICMPv6SNMPInfo;
#define IP_FORWARDING 1 #define IP_NOT_FORWARDING 2
typedef struct IPAddrEntry { ulong iae_addr; ulong iae_index; ulong iae_mask; ulong iae_bcastaddr; ulong iae_reasmsize; ushort iae_context; ushort iae_pad; } IPAddrEntry;
typedef struct IPRouteEntry { ulong ire_dest; ulong ire_index; ulong ire_metric1; ulong ire_metric2; ulong ire_metric3; ulong ire_metric4; ulong ire_nexthop; ulong ire_type; ulong ire_proto; ulong ire_age; ulong ire_mask; ulong ire_metric5; #ifdef NT ulong ire_context; #endif } IPRouteEntry;
typedef struct IPRouteBlock { ulong numofroutes; IPRouteEntry route[1]; } IPRouteBlock;
// // Route with multiple nexthops and associated defns //
typedef struct IPRouteNextHopEntry { ulong ine_iretype; ulong ine_nexthop; ulong ine_ifindex; #ifdef NT ulong ine_context; #endif } IPRouteNextHopEntry;
typedef struct IPMultihopRouteEntry { ulong imre_numnexthops; ulong imre_flags; IPRouteEntry imre_routeinfo; IPRouteNextHopEntry imre_morenexthops[1]; } IPMultihopRouteEntry;
#define IMRE_FLAG_DELETE_DEST 0x00000001
// // Input context to pass when querying a route //
typedef enum { IPNotifyNotification = 0, IPNotifySynchronization, IPNotifyMaximumVersion } IPNotifyVersion;
typedef struct IPNotifyData { ulong Version; // See IPNotifyVersion above. ulong Add; char Info[1]; } IPNotifyData, *PIPNotifyData;
typedef struct IPNotifyOutput { ulong ino_addr; ulong ino_mask; ulong ino_info[6]; } IPNotifyOutput, *PIPNotifyOutput;
typedef union IPRouteNotifyOutput { IPNotifyOutput irno_info; struct { ulong irno_dest; ulong irno_mask; ulong irno_nexthop; ulong irno_proto; ulong irno_ifindex; ulong irno_metric; ulong irno_flags; }; } IPRouteNotifyOutput, *PIPRouteNotifyOutput;
#define IRNO_FLAG_ADD 0x00000001 #define IRNO_FLAG_DELETE 0x00000002
// // Input context to pass when querying a route // typedef struct IPRouteLookupData { ulong Version; //version of this structure ulong DestAdd; ulong SrcAdd; char Info[1]; } IPRouteLookupData, *PIPRouteLookupData;
typedef struct AddrXlatInfo { ulong axi_count; ulong axi_index; } AddrXlatInfo;
#define IRE_TYPE_OTHER 1 #define IRE_TYPE_INVALID 2 #define IRE_TYPE_DIRECT 3 #define IRE_TYPE_INDIRECT 4
#define IRE_PROTO_OTHER 1 #define IRE_PROTO_LOCAL 2 #define IRE_PROTO_NETMGMT 3 #define IRE_PROTO_ICMP 4 #define IRE_PROTO_EGP 5 #define IRE_PROTO_GGP 6 #define IRE_PROTO_HELLO 7 #define IRE_PROTO_RIP 8 #define IRE_PROTO_IS_IS 9 #define IRE_PROTO_ES_IS 10 #define IRE_PROTO_CISCO 11 #define IRE_PROTO_BBN 12 #define IRE_PROTO_OSPF 13 #define IRE_PROTO_BGP 14 #define IRE_PROTO_PERSIST_LOCAL 10010
#define IRE_METRIC_UNUSED 0xffffffff
#define IP_MIB_STATS_ID 1 #define IP_MIB_RTCHANGE_NOTIFY_ID 2 #define ICMP_MIB_STATS_ID 1
#define AT_MIB_ADDRXLAT_INFO_ID 1 #define AT_MIB_ADDRXLAT_ENTRY_ID 0x101
#define IP_MIB_RTTABLE_ENTRY_ID 0x101 #define IP_MIB_ADDRTABLE_ENTRY_ID 0x102 #define IP_MIB_RTTABLE_ENTRY_ID_EX 0x103
#define IP_INTFC_FLAG_P2P 1 #define IP_INTFC_FLAG_P2MP 2 #define IP_INTFC_FLAG_UNIDIRECTIONAL 4
typedef struct IPInterfaceInfo { ulong iii_flags; ulong iii_mtu; ulong iii_speed; ulong iii_addrlength; uchar iii_addr[1]; } IPInterfaceInfo;
#define IP_INTFC_INFO_ID 0x103 #define IP_MIB_SINGLE_RT_ENTRY_ID 0x104 #define IP_GET_BEST_SOURCE 0x105
#ifndef s6_addr
struct in6_addr { union { unsigned char Byte[16]; unsigned short Word[8]; } u; };
#define in_addr6 in6_addr
/* ** Defines to match RFC 2553. */ #define _S6_un u #define _S6_u8 Byte #define s6_addr _S6_un._S6_u8
/* ** Defines for our implementation. */ #define s6_bytes u.Byte #define s6_words u.Word
#endif
typedef struct IP6RouteEntry { ulong ire_Length; struct in6_addr ire_Source; ulong ire_ScopeId; ulong ire_IfIndex; } IP6RouteEntry;
#define IP6_MIB_STATS_ID IP_MIB_STATS_ID #define IP6_GET_BEST_ROUTE_ID 3 #define ICMP6_MIB_STATS_ID 4
#endif // IPINFO_INCLUDED
|