]> git.saurik.com Git - apple/xnu.git/blob - bsd/netat/at_snmp.h
xnu-201.42.3.tar.gz
[apple/xnu.git] / bsd / netat / at_snmp.h
1 /*
2 * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * The contents of this file constitute Original Code as defined in and
7 * are subject to the Apple Public Source License Version 1.1 (the
8 * "License"). You may not use this file except in compliance with the
9 * License. Please obtain a copy of the License at
10 * http://www.apple.com/publicsource and read it before using this file.
11 *
12 * This Original Code and all software distributed under the License are
13 * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
14 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
15 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
17 * License for the specific language governing rights and limitations
18 * under the License.
19 *
20 * @APPLE_LICENSE_HEADER_END@
21 */
22 #ifndef _NETAT_AT_SNMP_H_
23 #define _NETAT_AT_SNMP_H_
24
25 #define MAX_PHYS_ADDR_SIZE 6 /* maximum physical addr size */
26 #define MAX_IFS 25 /* max # interfaces */
27 #define IF_NAME_SIZE 6 /* max name length of I/F name */
28 #define DDP_ADDR_SIZE 3
29 #define ZONE_SIZE NBP_NVE_STR_SIZE
30 #define OBJECT_SIZE NBP_NVE_STR_SIZE
31 #define TYPE_SIZE NBP_NVE_STR_SIZE
32 #define PORT_DESC_SIZE 50
33 #define UPDATE_IF_CHANGED 1 /* for ioctls */
34 #define UPDATE_UNCONDITIONAL 2
35 #define SNMP_NBP_HEADER_SIZE (sizeof(snmpNbpTable_t) - sizeof(snmpNbpEntry_t))
36
37 typedef struct snmpIfCfg {
38 u_short ifc_aarpSize; /* AARP table size for this I/F */
39 u_short ifc_addrSize; /* Mac address size in bytes */
40 u_short ifc_type; /* port type */
41 at_net_al ifc_start; /* net range start */
42 at_net_al ifc_end; /* net range end */
43 struct at_addr ifc_ddpAddr; /* ddp address of port */
44 u_short ifc_status; /* port status */
45 u_short ifc_netCfg;
46 u_short ifc_zoneCfg;
47 at_nvestr_t ifc_zoneName;
48 u_short ifc_index;
49 char ifc_name[IF_NAME_SIZE]; /* I/F name (e.g. ent0 */
50 } snmpIfCfg_t;
51
52
53 typedef struct snmpCfg {
54 int pad; /* pad for UPDATE flag when ioctl issued */
55 u_int cfg_flags; /* at_state flags */
56 int cfg_ifCnt; /* # I/F's up */
57 snmpIfCfg_t cfg_ifCfg[MAX_IFS];
58 } snmpCfg_t;
59
60 typedef struct snmpAarpEnt {
61 struct at_addr ap_ddpAddr;
62 u_char ap_physAddr[MAX_PHYS_ADDR_SIZE];
63 }snmpAarpEnt_t;
64
65 typedef struct snmpAarp { /* aarp info for 1 I/F */
66 time_t at_time; /* the time() we got this table */
67 int at_ifno; /* the (SNMP) I/F number of this table */
68 int at_maxSize; /* allocated size of as_table in entries */
69 int at_usedSize; /* size of at_table used portion */
70 snmpAarpEnt_t *at_table;
71 } snmpAarp_t;
72
73 typedef struct snmpFlags {
74 int lap_changed; /* set when any I/F state changes */
75 int rtmpAdded; /* set when rtmp entry ADDED */
76 int zipAdded; /* set when zip entry ADDED */
77 } snmpFlags_t;
78
79 typedef struct snmpNbpEntry {
80 at_nvestr_t nbpe_object;
81 at_nvestr_t nbpe_type;
82 }snmpNbpEntry_t;
83
84 typedef struct snmpNbpTable {
85 int nbpt_entries;
86 at_nvestr_t nbpt_zone;
87 snmpNbpEntry_t nbpt_table[1];
88 }snmpNbpTable_t;
89
90
91
92
93 typedef struct snmpStats {
94
95 /* ddp group */
96 u_int dd_outReq;
97 u_int dd_outShort;
98 u_int dd_outLong;
99 u_int dd_inTotal;
100 u_int dd_fwdReq;
101 u_int dd_inLocal;
102 u_int dd_noHandler;
103 u_int dd_noRoutes;
104 u_int dd_tooShort;
105 u_int dd_tooLong;
106 u_int dd_inBcastErr;
107 u_int dd_shortErr;
108 u_int dd_hopCount;
109 u_int dd_checkSum;
110
111 /* ATEcho group */
112
113 u_int ec_echoReq;
114 u_int ec_echoReply;
115 } snmpStats_t;
116
117 #define SNMP_TYPE_OTHER 1
118 #define SNMP_TYPE_LOCAL 2
119 #define SNMP_TYPE_ETHER1 3
120 #define SNMP_TYPE_ETHER2 4
121 #define SNMP_TYPE_TOKEN 5
122 #define SNMP_TYPE_IP 6
123 #define SNMP_TYPE_SERIALPPP 7
124 #define SNMP_TYPE_SERIALNONSTD 8
125 #define SNMP_TYPE_VIRTUAL 9
126 #define SNMP_CFG_CONFIGURED 1
127 #define SNMP_CFG_GARNERED 2
128 #define SNMP_CFG_GUESSED 3
129 #define SNMP_CFG_UNCONFIG 4
130
131 #define SNMP_OBJ_TYPE_AARP 0x0100
132 #define SNMP_OBJ_TYPE_ECHO 0x0200
133 #define SNMP_OBJ_TYPE_PORT 0x0300
134 #define SNMP_OBJ_TYPE_DDP 0x0400
135 #define SNMP_OBJ_TYPE_RTMP 0x0500
136 #define SNMP_OBJ_TYPE_ZIP 0x0600
137 #define SNMP_OBJ_TYPE_NBP 0x0700
138 #define SNMP_OBJ_TYPE_MASK 0x0f00
139
140 #define AARPIFINDEX 2 + SNMP_OBJ_TYPE_AARP
141 #define AARPNETADDRESS 3 + SNMP_OBJ_TYPE_AARP
142 #define AARPPHYSADDRESS 4 + SNMP_OBJ_TYPE_AARP
143 #define ATECHOREPLIES 6 + SNMP_OBJ_TYPE_AARP
144 #define ATECHOREQUESTS 7 + SNMP_OBJ_TYPE_AARP
145 #define ATPORTDESCR 8 + SNMP_OBJ_TYPE_PORT
146 #define ATPORTIFINDEX 10 + SNMP_OBJ_TYPE_PORT
147 #define ATPORTINDEX 11 + SNMP_OBJ_TYPE_PORT
148 #define ATPORTNETADDRESS 12 + SNMP_OBJ_TYPE_PORT
149 #define ATPORTNETCONFIG 13 + SNMP_OBJ_TYPE_PORT
150 #define ATPORTNETEND 14 + SNMP_OBJ_TYPE_PORT
151 #define ATPORTNETSTART 15 + SNMP_OBJ_TYPE_PORT
152 #define ATPORTSTATUS 16 + SNMP_OBJ_TYPE_PORT
153 #define ATPORTTYPE 18 + SNMP_OBJ_TYPE_PORT
154 #define ATPORTZONE 19 + SNMP_OBJ_TYPE_PORT
155 #define ATPORTZONECONFIG 20 + SNMP_OBJ_TYPE_PORT
156 #define DDPBROADCASTERRORS 21 + SNMP_OBJ_TYPE_DDP
157 #define DDPCHECKSUMERRORS 22 + SNMP_OBJ_TYPE_DDP
158 #define DDPFORWREQUESTS 23 + SNMP_OBJ_TYPE_DDP
159 #define DDPHOPCOUNTERRORS 24 + SNMP_OBJ_TYPE_DDP
160 #define DDPINLOCALDATAGRAMS 25 + SNMP_OBJ_TYPE_DDP
161 #define DDPINRECEIVES 26 + SNMP_OBJ_TYPE_DDP
162 #define DDPNOPROTOCOLHANDLERS 27 + SNMP_OBJ_TYPE_DDP
163 #define DDPOUTLONGS 28 + SNMP_OBJ_TYPE_DDP
164 #define DDPOUTNOROUTES 29 + SNMP_OBJ_TYPE_DDP
165 #define DDPOUTREQUESTS 30 + SNMP_OBJ_TYPE_DDP
166 #define DDPOUTSHORTS 31 + SNMP_OBJ_TYPE_DDP
167 #define DDPSHORTDDPERRORS 32 + SNMP_OBJ_TYPE_DDP
168 #define DDPTOOLONGERRORS 33 + SNMP_OBJ_TYPE_DDP
169 #define DDPTOOSHORTERRORS 34 + SNMP_OBJ_TYPE_DDP
170 #define KIPBCASTADDR 35
171 #define KIPCORE 36
172 #define KIPENTRY 37
173 #define KIPHOPCOUNT 38
174 #define KIPNETEND 39
175 #define KIPNETSTART 40
176 #define KIPNEXTHOP 41
177 #define KIPSHARE 42
178 #define KIPSTATE 43
179 #define KIPTABLE 44
180 #define KIPTYPE 45
181 #define LLAPCOLLISIONS 46
182 #define LLAPDEFERS 47
183 #define LLAPENTRY 48
184 #define LLAPFCSERRORS 49
185 #define LLAPIFINDEX 50
186 #define LLAPINERRORS 51
187 #define LLAPINLENGTHERRORS 52
188 #define LLAPINNOHANDLERS 53
189 #define LLAPINPKTS 54
190 #define LLAPNODATAERRORS 55
191 #define LLAPOUTPKTS 56
192 #define LLAPRANDOMCTSERRORS 57
193 #define NBPINDEX 60 + SNMP_OBJ_TYPE_NBP
194 #define NBPOBJECT 61 + SNMP_OBJ_TYPE_NBP
195 #define NBPSTATE 62 + SNMP_OBJ_TYPE_NBP
196 #define NBPTABLE 63 + SNMP_OBJ_TYPE_NBP
197 #define NBPTYPE 64 + SNMP_OBJ_TYPE_NBP
198 #define NBPZONE 65 + SNMP_OBJ_TYPE_NBP
199 #define RTMPHOPS 67 + SNMP_OBJ_TYPE_RTMP
200 #define RTMPNEXTHOP 68 + SNMP_OBJ_TYPE_RTMP
201 #define RTMPPORT 69 + SNMP_OBJ_TYPE_RTMP
202 #define RTMPRANGEEND 70 + SNMP_OBJ_TYPE_RTMP
203 #define RTMPRANGESTART 71 + SNMP_OBJ_TYPE_RTMP
204 #define RTMPSTATE 72 + SNMP_OBJ_TYPE_RTMP
205 #define RTMPTYPE 74 + SNMP_OBJ_TYPE_RTMP
206 #define ZIPZONEINDEX 77 + SNMP_OBJ_TYPE_ZIP
207 #define ZIPZONENAME 78 + SNMP_OBJ_TYPE_ZIP
208 #define ZIPZONENETEND 79 + SNMP_OBJ_TYPE_ZIP
209 #define ZIPZONENETSTART 80 + SNMP_OBJ_TYPE_ZIP
210 #define ZIPZONESTATE 81 + SNMP_OBJ_TYPE_ZIP
211
212 #define SNMP_TYPE(var,type) ((var & SNMP_OBJ_TYPE_MASK) == type)
213
214 #endif _NETAT_AT_SNMP_H_