1INET-ADDRESS-MIB DEFINITIONS ::= BEGIN
2
3IMPORTS
4    MODULE-IDENTITY, mib-2, Unsigned32 FROM SNMPv2-SMI
5    TEXTUAL-CONVENTION                 FROM SNMPv2-TC;
6
7inetAddressMIB MODULE-IDENTITY
8    LAST-UPDATED "200502040000Z"
9    ORGANIZATION
10        "IETF Operations and Management Area"
11    CONTACT-INFO
12        "Juergen Schoenwaelder (Editor)
13         International University Bremen
14         P.O. Box 750 561
15         28725 Bremen, Germany
16
17         Phone: +49 421 200-3587
18         EMail: j.schoenwaelder@iu-bremen.de
19
20         Send comments to <ietfmibs@ops.ietf.org>."
21    DESCRIPTION
22        "This MIB module defines textual conventions for
23         representing Internet addresses.  An Internet
24         address can be an IPv4 address, an IPv6 address,
25         or a DNS domain name.  This module also defines
26         textual conventions for Internet port numbers,
27         autonomous system numbers, and the length of an
28         Internet address prefix.
29
30         Copyright (C) The Internet Society (2005).  This version
31         of this MIB module is part of RFC 4001, see the RFC
32         itself for full legal notices."
33    REVISION     "200502040000Z"
34    DESCRIPTION
35        "Third version, published as RFC 4001.  This revision
36         introduces the InetZoneIndex, InetScopeType, and
37         InetVersion textual conventions."
38    REVISION     "200205090000Z"
39    DESCRIPTION
40        "Second version, published as RFC 3291.  This
41         revision contains several clarifications and
42         introduces several new textual conventions:
43         InetAddressPrefixLength, InetPortNumber,
44         InetAutonomousSystemNumber, InetAddressIPv4z,
45         and InetAddressIPv6z."
46    REVISION     "200006080000Z"
47    DESCRIPTION
48        "Initial version, published as RFC 2851."
49    ::= { mib-2 76 }
50
51InetAddressType ::= TEXTUAL-CONVENTION
52    STATUS      current
53    DESCRIPTION
54        "A value that represents a type of Internet address.
55
56         unknown(0)  An unknown address type.  This value MUST
57                     be used if the value of the corresponding
58                     InetAddress object is a zero-length string.
59                     It may also be used to indicate an IP address
60                     that is not in one of the formats defined
61                     below.
62
63         ipv4(1)     An IPv4 address as defined by the
64                     InetAddressIPv4 textual convention.
65
66         ipv6(2)     An IPv6 address as defined by the
67                     InetAddressIPv6 textual convention.
68
69         ipv4z(3)    A non-global IPv4 address including a zone
70                     index as defined by the InetAddressIPv4z
71                     textual convention.
72
73         ipv6z(4)    A non-global IPv6 address including a zone
74                     index as defined by the InetAddressIPv6z
75                     textual convention.
76
77         dns(16)     A DNS domain name as defined by the
78                     InetAddressDNS textual convention.
79
80         Each definition of a concrete InetAddressType value must be
81         accompanied by a definition of a textual convention for use
82         with that InetAddressType.
83
84         To support future extensions, the InetAddressType textual
85         convention SHOULD NOT be sub-typed in object type definitions.
86         It MAY be sub-typed in compliance statements in order to
87         require only a subset of these address types for a compliant
88         implementation.
89
90         Implementations must ensure that InetAddressType objects
91         and any dependent objects (e.g., InetAddress objects) are
92         consistent.  An inconsistentValue error must be generated
93         if an attempt to change an InetAddressType object would,
94         for example, lead to an undefined InetAddress value.  In
95
96         particular, InetAddressType/InetAddress pairs must be
97         changed together if the address type changes (e.g., from
98         ipv6(2) to ipv4(1))."
99    SYNTAX       INTEGER {
100                     unknown(0),
101                     ipv4(1),
102                     ipv6(2),
103                     ipv4z(3),
104                     ipv6z(4),
105                     dns(16)
106                 }
107
108InetAddress ::= TEXTUAL-CONVENTION
109    STATUS      current
110    DESCRIPTION
111        "Denotes a generic Internet address.
112
113         An InetAddress value is always interpreted within the context
114         of an InetAddressType value.  Every usage of the InetAddress
115         textual convention is required to specify the InetAddressType
116         object that provides the context.  It is suggested that the
117         InetAddressType object be logically registered before the
118         object(s) that use the InetAddress textual convention, if
119         they appear in the same logical row.
120
121         The value of an InetAddress object must always be
122         consistent with the value of the associated InetAddressType
123         object.  Attempts to set an InetAddress object to a value
124         inconsistent with the associated InetAddressType
125         must fail with an inconsistentValue error.
126
127         When this textual convention is used as the syntax of an
128         index object, there may be issues with the limit of 128
129         sub-identifiers specified in SMIv2, STD 58.  In this case,
130         the object definition MUST include a 'SIZE' clause to
131         limit the number of potential instance sub-identifiers;
132         otherwise the applicable constraints MUST be stated in
133         the appropriate conceptual row DESCRIPTION clauses, or
134         in the surrounding documentation if there is no single
135         DESCRIPTION clause that is appropriate."
136    SYNTAX       OCTET STRING (SIZE (0..255))
137
138InetAddressIPv4 ::= TEXTUAL-CONVENTION
139    DISPLAY-HINT "1d.1d.1d.1d"
140    STATUS       current
141    DESCRIPTION
142        "Represents an IPv4 network address:
143
144           Octets   Contents         Encoding
145            1-4     IPv4 address     network-byte order
146
147         The corresponding InetAddressType value is ipv4(1).
148
149         This textual convention SHOULD NOT be used directly in object
150         definitions, as it restricts addresses to a specific format.
151         However, if it is used, it MAY be used either on its own or in
152         conjunction with InetAddressType, as a pair."
153    SYNTAX       OCTET STRING (SIZE (4))
154
155InetAddressIPv6 ::= TEXTUAL-CONVENTION
156    DISPLAY-HINT "2x:2x:2x:2x:2x:2x:2x:2x"
157    STATUS       current
158    DESCRIPTION
159        "Represents an IPv6 network address:
160
161           Octets   Contents         Encoding
162            1-16    IPv6 address     network-byte order
163
164         The corresponding InetAddressType value is ipv6(2).
165
166         This textual convention SHOULD NOT be used directly in object
167         definitions, as it restricts addresses to a specific format.
168         However, if it is used, it MAY be used either on its own or in
169         conjunction with InetAddressType, as a pair."
170    SYNTAX       OCTET STRING (SIZE (16))
171
172InetAddressIPv4z ::= TEXTUAL-CONVENTION
173    DISPLAY-HINT "1d.1d.1d.1d%4d"
174    STATUS       current
175    DESCRIPTION
176        "Represents a non-global IPv4 network address, together
177         with its zone index:
178
179           Octets   Contents         Encoding
180            1-4     IPv4 address     network-byte order
181            5-8     zone index       network-byte order
182
183         The corresponding InetAddressType value is ipv4z(3).
184
185         The zone index (bytes 5-8) is used to disambiguate identical
186         address values on nodes that have interfaces attached to
187         different zones of the same scope.  The zone index may contain
188         the special value 0, which refers to the default zone for each
189         scope.
190
191         This textual convention SHOULD NOT be used directly in object
192
193         definitions, as it restricts addresses to a specific format.
194         However, if it is used, it MAY be used either on its own or in
195         conjunction with InetAddressType, as a pair."
196    SYNTAX       OCTET STRING (SIZE (8))
197
198InetAddressIPv6z ::= TEXTUAL-CONVENTION
199    DISPLAY-HINT "2x:2x:2x:2x:2x:2x:2x:2x%4d"
200    STATUS       current
201    DESCRIPTION
202        "Represents a non-global IPv6 network address, together
203         with its zone index:
204
205           Octets   Contents         Encoding
206            1-16    IPv6 address     network-byte order
207           17-20    zone index       network-byte order
208
209         The corresponding InetAddressType value is ipv6z(4).
210
211         The zone index (bytes 17-20) is used to disambiguate
212         identical address values on nodes that have interfaces
213         attached to different zones of the same scope.  The zone index
214         may contain the special value 0, which refers to the default
215         zone for each scope.
216
217         This textual convention SHOULD NOT be used directly in object
218         definitions, as it restricts addresses to a specific format.
219         However, if it is used, it MAY be used either on its own or in
220         conjunction with InetAddressType, as a pair."
221    SYNTAX       OCTET STRING (SIZE (20))
222
223InetAddressDNS ::= TEXTUAL-CONVENTION
224    DISPLAY-HINT "255a"
225    STATUS       current
226    DESCRIPTION
227        "Represents a DNS domain name.  The name SHOULD be fully
228         qualified whenever possible.
229
230         The corresponding InetAddressType is dns(16).
231
232         The DESCRIPTION clause of InetAddress objects that may have
233         InetAddressDNS values MUST fully describe how (and when)
234         these names are to be resolved to IP addresses.
235
236         The resolution of an InetAddressDNS value may require to
237         query multiple DNS records (e.g., A for IPv4 and AAAA for
238         IPv6).  The order of the resolution process and which DNS
239         record takes precedence depends on the configuration of the
240         resolver.
241
242         This textual convention SHOULD NOT be used directly in object
243         definitions, as it restricts addresses to a specific format.
244         However, if it is used, it MAY be used either on its own or in
245         conjunction with InetAddressType, as a pair."
246    SYNTAX       OCTET STRING (SIZE (1..255))
247
248InetAddressPrefixLength ::= TEXTUAL-CONVENTION
249    DISPLAY-HINT "d"
250    STATUS       current
251    DESCRIPTION
252        "Denotes the length of a generic Internet network address
253         prefix.  A value of n corresponds to an IP address mask
254         that has n contiguous 1-bits from the most significant
255         bit (MSB), with all other bits set to 0.
256
257         An InetAddressPrefixLength value is always interpreted within
258         the context of an InetAddressType value.  Every usage of the
259         InetAddressPrefixLength textual convention is required to
260         specify the InetAddressType object that provides the
261         context.  It is suggested that the InetAddressType object be
262         logically registered before the object(s) that use the
263         InetAddressPrefixLength textual convention, if they appear
264         in the same logical row.
265
266         InetAddressPrefixLength values larger than
267         the maximum length of an IP address for a specific
268         InetAddressType are treated as the maximum significant
269         value applicable for the InetAddressType.  The maximum
270         significant value is 32 for the InetAddressType
271         'ipv4(1)' and 'ipv4z(3)' and 128 for the InetAddressType
272         'ipv6(2)' and 'ipv6z(4)'.  The maximum significant value
273         for the InetAddressType 'dns(16)' is 0.
274
275         The value zero is object-specific and must be defined as
276         part of the description of any object that uses this
277         syntax.  Examples of the usage of zero might include
278         situations where the Internet network address prefix
279         is unknown or does not apply.
280
281         The upper bound of the prefix length has been chosen to
282         be consistent with the maximum size of an InetAddress."
283    SYNTAX       Unsigned32 (0..2040)
284
285InetPortNumber ::= TEXTUAL-CONVENTION
286    DISPLAY-HINT "d"
287    STATUS       current
288    DESCRIPTION
289        "Represents a 16 bit port number of an Internet transport
290
291         layer protocol.  Port numbers are assigned by IANA.  A
292         current list of all assignments is available from
293         <http://www.iana.org/>.
294
295         The value zero is object-specific and must be defined as
296         part of the description of any object that uses this
297         syntax.  Examples of the usage of zero might include
298         situations where a port number is unknown, or when the
299         value zero is used as a wildcard in a filter."
300    REFERENCE   "STD 6 (RFC 768), STD 7 (RFC 793) and RFC 2960"
301    SYNTAX       Unsigned32 (0..65535)
302
303InetAutonomousSystemNumber ::= TEXTUAL-CONVENTION
304    DISPLAY-HINT "d"
305    STATUS       current
306    DESCRIPTION
307        "Represents an autonomous system number that identifies an
308         Autonomous System (AS).  An AS is a set of routers under a
309         single technical administration, using an interior gateway
310         protocol and common metrics to route packets within the AS,
311         and using an exterior gateway protocol to route packets to
312         other ASes'.  IANA maintains the AS number space and has
313         delegated large parts to the regional registries.
314
315         Autonomous system numbers are currently limited to 16 bits
316         (0..65535).  There is, however, work in progress to enlarge the
317         autonomous system number space to 32 bits.  Therefore, this
318         textual convention uses an Unsigned32 value without a
319         range restriction in order to support a larger autonomous
320         system number space."
321    REFERENCE   "RFC 1771, RFC 1930"
322    SYNTAX       Unsigned32
323
324InetScopeType ::= TEXTUAL-CONVENTION
325    STATUS       current
326    DESCRIPTION
327        "Represents a scope type.  This textual convention can be used
328         in cases where a MIB has to represent different scope types
329         and there is no context information, such as an InetAddress
330         object, that implicitly defines the scope type.
331
332         Note that not all possible values have been assigned yet, but
333         they may be assigned in future revisions of this specification.
334         Applications should therefore be able to deal with values
335         not yet assigned."
336    REFERENCE   "RFC 3513"
337    SYNTAX       INTEGER {
338                     -- reserved(0),
339                     interfaceLocal(1),
340                     linkLocal(2),
341                     subnetLocal(3),
342                     adminLocal(4),
343                     siteLocal(5), -- site-local unicast addresses
344                                   -- have been deprecated by RFC 3879
345                     -- unassigned(6),
346                     -- unassigned(7),
347                     organizationLocal(8),
348                     -- unassigned(9),
349                     -- unassigned(10),
350                     -- unassigned(11),
351                     -- unassigned(12),
352                     -- unassigned(13),
353                     global(14)
354                     -- reserved(15)
355                 }
356
357InetZoneIndex ::= TEXTUAL-CONVENTION
358    DISPLAY-HINT "d"
359    STATUS       current
360    DESCRIPTION
361        "A zone index identifies an instance of a zone of a
362         specific scope.
363
364         The zone index MUST disambiguate identical address
365         values.  For link-local addresses, the zone index will
366         typically be the interface index (ifIndex as defined in the
367         IF-MIB) of the interface on which the address is configured.
368
369         The zone index may contain the special value 0, which refers
370         to the default zone.  The default zone may be used in cases
371         where the valid zone index is not known (e.g., when a
372         management application has to write a link-local IPv6
373         address without knowing the interface index value).  The
374         default zone SHOULD NOT be used as an easy way out in
375         cases where the zone index for a non-global IPv6 address
376         is known."
377    REFERENCE   "RFC4007"
378    SYNTAX       Unsigned32
379
380InetVersion ::= TEXTUAL-CONVENTION
381    STATUS  current
382    DESCRIPTION
383        "A value representing a version of the IP protocol.
384
385         unknown(0)  An unknown or unspecified version of the IP
386                     protocol.
387
388         ipv4(1)     The IPv4 protocol as defined in RFC 791 (STD 5).
389
390         ipv6(2)     The IPv6 protocol as defined in RFC 2460.
391
392         Note that this textual convention SHOULD NOT be used to
393         distinguish different address types associated with IP
394         protocols.  The InetAddressType has been designed for this
395         purpose."
396    REFERENCE   "RFC 791, RFC 2460"
397    SYNTAX       INTEGER {
398                     unknown(0),
399                     ipv4(1),
400                     ipv6(2)
401                 }
402END
403