xref: /openbsd-src/share/snmp/IP-FORWARD-MIB.txt (revision be42267c33ebd292f5bc8fe1073d6306464890d3)
1IP-FORWARD-MIB DEFINITIONS ::= BEGIN
2
3IMPORTS
4    MODULE-IDENTITY, OBJECT-TYPE,
5    IpAddress, Integer32, Gauge32,
6    Counter32                          FROM SNMPv2-SMI
7    RowStatus                          FROM SNMPv2-TC
8
9    MODULE-COMPLIANCE, OBJECT-GROUP    FROM SNMPv2-CONF
10    InterfaceIndexOrZero               FROM IF-MIB
11    ip                                 FROM IP-MIB
12    IANAipRouteProtocol                FROM IANA-RTPROTO-MIB
13    InetAddress, InetAddressType,
14    InetAddressPrefixLength,
15    InetAutonomousSystemNumber         FROM INET-ADDRESS-MIB;
16
17ipForward MODULE-IDENTITY
18    LAST-UPDATED "200602010000Z"
19    ORGANIZATION
20           "IETF IPv6 Working Group
21            http://www.ietf.org/html.charters/ipv6-charter.html"
22    CONTACT-INFO
23           "Editor:
24            Brian Haberman
25            Johns Hopkins University - Applied Physics Laboratory
26            Mailstop 17-S442
27            11100 Johns Hopkins Road
28            Laurel MD,  20723-6099  USA
29
30            Phone: +1-443-778-1319
31            Email: brian@innovationslab.net
32
33            Send comments to <ipv6@ietf.org>"
34    DESCRIPTION
35           "The MIB module for the management of CIDR multipath IP
36            Routes.
37
38            Copyright (C) The Internet Society (2006).  This version
39            of this MIB module is a part of RFC 4292; see the RFC
40            itself for full legal notices."
41
42    REVISION      "200602010000Z"
43    DESCRIPTION
44           "IPv4/v6 version-independent revision.  Minimal changes
45            were made to the original RFC 2096 MIB to allow easy
46            upgrade of existing IPv4 implementations to the
47            version-independent MIB.  These changes include:
48
49            Adding inetCidrRouteDiscards as a replacement for the
50            deprecated ipRoutingDiscards and ipv6DiscardedRoutes
51            objects.
52
53            Adding a new conformance statement to support the
54            implementation of the IP Forwarding MIB in a
55            read-only mode.
56
57            The inetCidrRouteTable replaces the IPv4-specific
58            ipCidrRouteTable, its related objects, and related
59            conformance statements.
60
61            Published as RFC 4292."
62
63    REVISION      "199609190000Z"
64    DESCRIPTION
65           "Revised to support CIDR routes.
66            Published as RFC 2096."
67
68    REVISION      "199207022156Z"
69    DESCRIPTION
70           "Initial version, published as RFC 1354."
71    ::= { ip 24 }
72
73inetCidrRouteNumber OBJECT-TYPE
74    SYNTAX     Gauge32
75    MAX-ACCESS read-only
76    STATUS     current
77    DESCRIPTION
78           "The number of current inetCidrRouteTable entries that
79            are not invalid."
80::= { ipForward 6 }
81
82inetCidrRouteDiscards OBJECT-TYPE
83    SYNTAX     Counter32
84    MAX-ACCESS read-only
85    STATUS     current
86    DESCRIPTION
87           "The number of valid route entries discarded from the
88            inetCidrRouteTable.  Discarded route entries do not
89            appear in the inetCidrRouteTable.  One possible reason
90            for discarding an entry would be to free-up buffer space
91            for other route table entries."
92    ::= { ipForward 8 }
93
94--  Inet CIDR Route Table
95
96--  The Inet CIDR Route Table deprecates and replaces the
97--  ipCidrRoute Table currently in the IP Forwarding Table MIB.
98--  It adds IP protocol independence.
99
100inetCidrRouteTable OBJECT-TYPE
101    SYNTAX     SEQUENCE OF InetCidrRouteEntry
102    MAX-ACCESS not-accessible
103    STATUS     current
104    DESCRIPTION
105           "This entity's IP Routing table."
106    REFERENCE
107           "RFC 1213 Section 6.6, The IP Group"
108    ::= { ipForward 7 }
109
110inetCidrRouteEntry OBJECT-TYPE
111    SYNTAX     InetCidrRouteEntry
112    MAX-ACCESS not-accessible
113    STATUS     current
114    DESCRIPTION
115           "A particular route to a particular destination, under a
116            particular policy (as reflected in the
117            inetCidrRoutePolicy object).
118
119            Dynamically created rows will survive an agent reboot.
120
121            Implementers need to be aware that if the total number
122            of elements (octets or sub-identifiers) in
123            inetCidrRouteDest, inetCidrRoutePolicy, and
124            inetCidrRouteNextHop exceeds 111, then OIDs of column
125            instances in this table will have more than 128 sub-
126            identifiers and cannot be accessed using SNMPv1,
127            SNMPv2c, or SNMPv3."
128    INDEX {
129        inetCidrRouteDestType,
130        inetCidrRouteDest,
131        inetCidrRoutePfxLen,
132        inetCidrRoutePolicy,
133        inetCidrRouteNextHopType,
134        inetCidrRouteNextHop
135        }
136    ::= { inetCidrRouteTable 1 }
137
138InetCidrRouteEntry ::= SEQUENCE {
139        inetCidrRouteDestType     InetAddressType,
140        inetCidrRouteDest         InetAddress,
141        inetCidrRoutePfxLen       InetAddressPrefixLength,
142        inetCidrRoutePolicy       OBJECT IDENTIFIER,
143        inetCidrRouteNextHopType  InetAddressType,
144        inetCidrRouteNextHop      InetAddress,
145        inetCidrRouteIfIndex      InterfaceIndexOrZero,
146        inetCidrRouteType         INTEGER,
147        inetCidrRouteProto        IANAipRouteProtocol,
148        inetCidrRouteAge          Gauge32,
149        inetCidrRouteNextHopAS    InetAutonomousSystemNumber,
150        inetCidrRouteMetric1      Integer32,
151        inetCidrRouteMetric2      Integer32,
152        inetCidrRouteMetric3      Integer32,
153        inetCidrRouteMetric4      Integer32,
154        inetCidrRouteMetric5      Integer32,
155        inetCidrRouteStatus       RowStatus
156    }
157
158inetCidrRouteDestType OBJECT-TYPE
159    SYNTAX     InetAddressType
160    MAX-ACCESS not-accessible
161    STATUS     current
162    DESCRIPTION
163           "The type of the inetCidrRouteDest address, as defined
164            in the InetAddress MIB.
165
166            Only those address types that may appear in an actual
167            routing table are allowed as values of this object."
168    REFERENCE "RFC 4001"
169    ::= { inetCidrRouteEntry 1 }
170
171inetCidrRouteDest OBJECT-TYPE
172    SYNTAX     InetAddress
173    MAX-ACCESS not-accessible
174    STATUS     current
175    DESCRIPTION
176           "The destination IP address of this route.
177
178            The type of this address is determined by the value of
179            the inetCidrRouteDestType object.
180
181            The values for the index objects inetCidrRouteDest and
182            inetCidrRoutePfxLen must be consistent.  When the value
183            of inetCidrRouteDest (excluding the zone index, if one
184            is present) is x, then the bitwise logical-AND
185            of x with the value of the mask formed from the
186            corresponding index object inetCidrRoutePfxLen MUST be
187            equal to x.  If not, then the index pair is not
188            consistent and an inconsistentName error must be
189            returned on SET or CREATE requests."
190    ::= { inetCidrRouteEntry 2 }
191
192inetCidrRoutePfxLen OBJECT-TYPE
193    SYNTAX     InetAddressPrefixLength
194    MAX-ACCESS not-accessible
195    STATUS     current
196    DESCRIPTION
197           "Indicates the number of leading one bits that form the
198            mask to be logical-ANDed with the destination address
199            before being compared to the value in the
200
201            inetCidrRouteDest field.
202
203            The values for the index objects inetCidrRouteDest and
204            inetCidrRoutePfxLen must be consistent.  When the value
205            of inetCidrRouteDest (excluding the zone index, if one
206            is present) is x, then the bitwise logical-AND
207            of x with the value of the mask formed from the
208            corresponding index object inetCidrRoutePfxLen MUST be
209            equal to x.  If not, then the index pair is not
210            consistent and an inconsistentName error must be
211            returned on SET or CREATE requests."
212    ::= { inetCidrRouteEntry 3 }
213
214inetCidrRoutePolicy OBJECT-TYPE
215    SYNTAX     OBJECT IDENTIFIER
216    MAX-ACCESS not-accessible
217    STATUS     current
218    DESCRIPTION
219           "This object is an opaque object without any defined
220            semantics.  Its purpose is to serve as an additional
221            index that may delineate between multiple entries to
222            the same destination.  The value { 0 0 } shall be used
223            as the default value for this object."
224    ::= { inetCidrRouteEntry 4 }
225
226inetCidrRouteNextHopType OBJECT-TYPE
227    SYNTAX     InetAddressType
228    MAX-ACCESS not-accessible
229    STATUS     current
230    DESCRIPTION
231           "The type of the inetCidrRouteNextHop address, as
232            defined in the InetAddress MIB.
233
234            Value should be set to unknown(0) for non-remote
235            routes.
236
237            Only those address types that may appear in an actual
238            routing table are allowed as values of this object."
239    REFERENCE "RFC 4001"
240    ::= { inetCidrRouteEntry 5 }
241
242inetCidrRouteNextHop OBJECT-TYPE
243    SYNTAX     InetAddress
244    MAX-ACCESS not-accessible
245    STATUS     current
246    DESCRIPTION
247           "On remote routes, the address of the next system en
248
249            route.  For non-remote routes, a zero length string.
250
251            The type of this address is determined by the value of
252            the inetCidrRouteNextHopType object."
253    ::= { inetCidrRouteEntry 6 }
254
255inetCidrRouteIfIndex OBJECT-TYPE
256    SYNTAX     InterfaceIndexOrZero
257    MAX-ACCESS read-create
258    STATUS     current
259    DESCRIPTION
260           "The ifIndex value that identifies the local interface
261            through which the next hop of this route should be
262            reached.  A value of 0 is valid and represents the
263            scenario where no interface is specified."
264    ::= { inetCidrRouteEntry 7 }
265
266inetCidrRouteType OBJECT-TYPE
267    SYNTAX     INTEGER {
268                other    (1), -- not specified by this MIB
269                reject   (2), -- route that discards traffic and
270                              --   returns ICMP notification
271                local    (3), -- local interface
272                remote   (4), -- remote destination
273                blackhole(5)  -- route that discards traffic
274                              --   silently
275             }
276    MAX-ACCESS read-create
277    STATUS     current
278    DESCRIPTION
279           "The type of route.  Note that local(3) refers to a
280            route for which the next hop is the final destination;
281            remote(4) refers to a route for which the next hop is
282            not the final destination.
283
284            Routes that do not result in traffic forwarding or
285            rejection should not be displayed, even if the
286            implementation keeps them stored internally.
287
288            reject(2) refers to a route that, if matched, discards
289            the message as unreachable and returns a notification
290            (e.g., ICMP error) to the message sender.  This is used
291            in some protocols as a means of correctly aggregating
292            routes.
293
294            blackhole(5) refers to a route that, if matched,
295            discards the message silently."
296    ::= { inetCidrRouteEntry 8 }
297
298inetCidrRouteProto OBJECT-TYPE
299    SYNTAX     IANAipRouteProtocol
300    MAX-ACCESS read-only
301    STATUS     current
302    DESCRIPTION
303           "The routing mechanism via which this route was learned.
304            Inclusion of values for gateway routing protocols is
305            not intended to imply that hosts should support those
306            protocols."
307    ::= { inetCidrRouteEntry 9 }
308
309inetCidrRouteAge OBJECT-TYPE
310    SYNTAX     Gauge32
311    MAX-ACCESS read-only
312    STATUS     current
313    DESCRIPTION
314           "The number of seconds since this route was last updated
315            or otherwise determined to be correct.  Note that no
316            semantics of 'too old' can be implied, except through
317            knowledge of the routing protocol by which the route
318            was learned."
319    ::= { inetCidrRouteEntry 10 }
320
321inetCidrRouteNextHopAS OBJECT-TYPE
322    SYNTAX     InetAutonomousSystemNumber
323    MAX-ACCESS read-create
324    STATUS     current
325    DESCRIPTION
326           "The Autonomous System Number of the Next Hop.  The
327            semantics of this object are determined by the routing-
328            protocol specified in the route's inetCidrRouteProto
329            value.  When this object is unknown or not relevant, its
330            value should be set to zero."
331    DEFVAL { 0 }
332    ::= { inetCidrRouteEntry 11 }
333
334inetCidrRouteMetric1 OBJECT-TYPE
335    SYNTAX     Integer32
336    MAX-ACCESS read-create
337    STATUS     current
338    DESCRIPTION
339           "The primary routing metric for this route.  The
340            semantics of this metric are determined by the routing-
341            protocol specified in the route's inetCidrRouteProto
342            value.  If this metric is not used, its value should be
343            set to -1."
344    DEFVAL { -1 }
345    ::= { inetCidrRouteEntry 12 }
346
347inetCidrRouteMetric2 OBJECT-TYPE
348    SYNTAX     Integer32
349    MAX-ACCESS read-create
350    STATUS     current
351    DESCRIPTION
352           "An alternate routing metric for this route.  The
353            semantics of this metric are determined by the routing-
354            protocol specified in the route's inetCidrRouteProto
355            value.  If this metric is not used, its value should be
356            set to -1."
357    DEFVAL { -1 }
358    ::= { inetCidrRouteEntry 13 }
359
360inetCidrRouteMetric3 OBJECT-TYPE
361    SYNTAX     Integer32
362    MAX-ACCESS read-create
363    STATUS     current
364    DESCRIPTION
365           "An alternate routing metric for this route.  The
366            semantics of this metric are determined by the routing-
367            protocol specified in the route's inetCidrRouteProto
368            value.  If this metric is not used, its value should be
369            set to -1."
370    DEFVAL { -1 }
371    ::= { inetCidrRouteEntry 14 }
372
373inetCidrRouteMetric4 OBJECT-TYPE
374    SYNTAX     Integer32
375    MAX-ACCESS read-create
376    STATUS     current
377    DESCRIPTION
378           "An alternate routing metric for this route.  The
379            semantics of this metric are determined by the routing-
380            protocol specified in the route's inetCidrRouteProto
381            value.  If this metric is not used, its value should be
382            set to -1."
383    DEFVAL { -1 }
384    ::= { inetCidrRouteEntry 15 }
385
386inetCidrRouteMetric5 OBJECT-TYPE
387    SYNTAX     Integer32
388    MAX-ACCESS read-create
389    STATUS     current
390    DESCRIPTION
391           "An alternate routing metric for this route.  The
392            semantics of this metric are determined by the routing-
393
394            protocol specified in the route's inetCidrRouteProto
395            value.  If this metric is not used, its value should be
396            set to -1."
397    DEFVAL { -1 }
398    ::= { inetCidrRouteEntry 16 }
399
400inetCidrRouteStatus OBJECT-TYPE
401    SYNTAX     RowStatus
402    MAX-ACCESS read-create
403    STATUS     current
404    DESCRIPTION
405           "The row status variable, used according to row
406            installation and removal conventions.
407
408            A row entry cannot be modified when the status is
409            marked as active(1)."
410    ::= { inetCidrRouteEntry 17 }
411
412--  Conformance information
413
414ipForwardConformance
415     OBJECT IDENTIFIER ::= { ipForward 5 }
416
417ipForwardGroups
418     OBJECT IDENTIFIER ::= { ipForwardConformance 1 }
419
420ipForwardCompliances
421     OBJECT IDENTIFIER ::= { ipForwardConformance 2 }
422
423--  Compliance statements
424
425ipForwardFullCompliance MODULE-COMPLIANCE
426    STATUS     current
427    DESCRIPTION
428           "When this MIB is implemented for read-create, the
429            implementation can claim full compliance.
430
431            There are a number of INDEX objects that cannot be
432            represented in the form of OBJECT clauses in SMIv2,
433            but for which there are compliance requirements,
434            expressed in OBJECT clause form in this description:
435
436            -- OBJECT      inetCidrRouteDestType
437            -- SYNTAX      InetAddressType (ipv4(1), ipv6(2),
438            --                              ipv4z(3), ipv6z(4))
439            -- DESCRIPTION
440            --     This MIB requires support for global and
441            --     non-global ipv4 and ipv6 addresses.
442
443            --
444            -- OBJECT      inetCidrRouteDest
445            -- SYNTAX      InetAddress (SIZE (4 | 8 | 16 | 20))
446            -- DESCRIPTION
447            --     This MIB requires support for global and
448            --     non-global IPv4 and IPv6 addresses.
449            --
450            -- OBJECT      inetCidrRouteNextHopType
451            -- SYNTAX      InetAddressType (unknown(0), ipv4(1),
452            --                              ipv6(2), ipv4z(3)
453            --                              ipv6z(4))
454            -- DESCRIPTION
455            --     This MIB requires support for global and
456            --     non-global ipv4 and ipv6 addresses.
457            --
458            -- OBJECT      inetCidrRouteNextHop
459            -- SYNTAX      InetAddress (SIZE (0 | 4 | 8 | 16 | 20))
460            -- DESCRIPTION
461            --     This MIB requires support for global and
462            --     non-global IPv4 and IPv6 addresses.
463            "
464
465   MODULE -- this module
466   MANDATORY-GROUPS { inetForwardCidrRouteGroup }
467
468   OBJECT        inetCidrRouteStatus
469   SYNTAX        RowStatus { active(1), notInService (2) }
470   WRITE-SYNTAX  RowStatus { active(1), notInService (2),
471                             createAndGo(4), destroy(6) }
472   DESCRIPTION  "Support for createAndWait is not required."
473   ::= { ipForwardCompliances 3 }
474
475ipForwardReadOnlyCompliance MODULE-COMPLIANCE
476   STATUS     current
477   DESCRIPTION
478           "When this MIB is implemented without support for read-
479            create (i.e., in read-only mode), the implementation can
480            claim read-only compliance."
481   MODULE -- this module
482   MANDATORY-GROUPS { inetForwardCidrRouteGroup }
483
484   OBJECT      inetCidrRouteIfIndex
485   MIN-ACCESS  read-only
486   DESCRIPTION
487      "Write access is not required."
488
489   OBJECT      inetCidrRouteType
490   MIN-ACCESS  read-only
491   DESCRIPTION
492      "Write access is not required."
493
494   OBJECT      inetCidrRouteNextHopAS
495   MIN-ACCESS  read-only
496   DESCRIPTION
497      "Write access is not required."
498
499   OBJECT      inetCidrRouteMetric1
500   MIN-ACCESS  read-only
501   DESCRIPTION
502      "Write access is not required."
503
504   OBJECT      inetCidrRouteMetric2
505   MIN-ACCESS  read-only
506   DESCRIPTION
507      "Write access is not required."
508
509   OBJECT      inetCidrRouteMetric3
510   MIN-ACCESS  read-only
511   DESCRIPTION
512      "Write access is not required."
513
514   OBJECT      inetCidrRouteMetric4
515   MIN-ACCESS  read-only
516   DESCRIPTION
517      "Write access is not required."
518
519   OBJECT      inetCidrRouteMetric5
520   MIN-ACCESS  read-only
521   DESCRIPTION
522      "Write access is not required."
523
524   OBJECT      inetCidrRouteStatus
525   SYNTAX      RowStatus { active(1) }
526   MIN-ACCESS  read-only
527   DESCRIPTION
528      "Write access is not required."
529   ::= { ipForwardCompliances 4 }
530
531-- units of conformance
532
533inetForwardCidrRouteGroup OBJECT-GROUP
534    OBJECTS { inetCidrRouteDiscards,
535              inetCidrRouteIfIndex, inetCidrRouteType,
536              inetCidrRouteProto, inetCidrRouteAge,
537              inetCidrRouteNextHopAS, inetCidrRouteMetric1,
538              inetCidrRouteMetric2, inetCidrRouteMetric3,
539              inetCidrRouteMetric4, inetCidrRouteMetric5,
540              inetCidrRouteStatus, inetCidrRouteNumber
541        }
542    STATUS     current
543    DESCRIPTION
544           "The IP version-independent CIDR Route Table."
545    ::= { ipForwardGroups 4 }
546
547--  Deprecated Objects
548
549ipCidrRouteNumber OBJECT-TYPE
550    SYNTAX     Gauge32
551    MAX-ACCESS read-only
552    STATUS     deprecated
553    DESCRIPTION
554           "The number of current ipCidrRouteTable entries that are
555            not invalid.  This object is deprecated in favor of
556            inetCidrRouteNumber and the inetCidrRouteTable."
557    ::= { ipForward 3 }
558
559--  IP CIDR Route Table
560
561--  The IP CIDR Route Table obsoletes and replaces the ipRoute
562--  Table current in MIB-I and MIB-II and the IP Forwarding Table.
563--  It adds knowledge of the autonomous system of the next hop,
564--  multiple next hops, policy routing, and Classless
565--  Inter-Domain Routing.
566
567ipCidrRouteTable OBJECT-TYPE
568    SYNTAX     SEQUENCE OF IpCidrRouteEntry
569    MAX-ACCESS not-accessible
570    STATUS     deprecated
571    DESCRIPTION
572           "This entity's IP Routing table.  This table has been
573            deprecated in favor of the IP version neutral
574            inetCidrRouteTable."
575    REFERENCE
576           "RFC 1213 Section 6.6, The IP Group"
577    ::= { ipForward 4 }
578
579ipCidrRouteEntry OBJECT-TYPE
580    SYNTAX     IpCidrRouteEntry
581    MAX-ACCESS not-accessible
582    STATUS     deprecated
583    DESCRIPTION
584           "A particular route to a particular destination, under a
585
586            particular policy."
587    INDEX {
588        ipCidrRouteDest,
589        ipCidrRouteMask,
590        ipCidrRouteTos,
591        ipCidrRouteNextHop
592        }
593       ::= { ipCidrRouteTable 1 }
594
595IpCidrRouteEntry ::= SEQUENCE {
596        ipCidrRouteDest       IpAddress,
597        ipCidrRouteMask       IpAddress,
598        ipCidrRouteTos        Integer32,
599        ipCidrRouteNextHop    IpAddress,
600        ipCidrRouteIfIndex    Integer32,
601        ipCidrRouteType       INTEGER,
602        ipCidrRouteProto      INTEGER,
603        ipCidrRouteAge        Integer32,
604        ipCidrRouteInfo       OBJECT IDENTIFIER,
605        ipCidrRouteNextHopAS  Integer32,
606        ipCidrRouteMetric1    Integer32,
607        ipCidrRouteMetric2    Integer32,
608        ipCidrRouteMetric3    Integer32,
609        ipCidrRouteMetric4    Integer32,
610        ipCidrRouteMetric5    Integer32,
611        ipCidrRouteStatus     RowStatus
612    }
613
614ipCidrRouteDest OBJECT-TYPE
615    SYNTAX     IpAddress
616    MAX-ACCESS read-only
617    STATUS     deprecated
618    DESCRIPTION
619           "The destination IP address of this route.
620
621            This object may not take a Multicast (Class D) address
622            value.
623
624            Any assignment (implicit or otherwise) of an instance
625            of this object to a value x must be rejected if the
626            bitwise logical-AND of x with the value of the
627            corresponding instance of the ipCidrRouteMask object is
628            not equal to x."
629    ::= { ipCidrRouteEntry 1 }
630
631ipCidrRouteMask OBJECT-TYPE
632    SYNTAX     IpAddress
633    MAX-ACCESS read-only
634    STATUS     deprecated
635    DESCRIPTION
636           "Indicate the mask to be logical-ANDed with the
637            destination address before being compared to the value
638            in the ipCidrRouteDest field.  For those systems that
639            do not support arbitrary subnet masks, an agent
640            constructs the value of the ipCidrRouteMask by
641            reference to the IP Address Class.
642
643            Any assignment (implicit or otherwise) of an instance
644            of this object to a value x must be rejected if the
645            bitwise logical-AND of x with the value of the
646            corresponding instance of the ipCidrRouteDest object is
647            not equal to ipCidrRouteDest."
648    ::= { ipCidrRouteEntry 2 }
649
650-- The following convention is included for specification
651-- of TOS Field contents.  At this time, the Host Requirements
652-- and the Router Requirements documents disagree on the width
653-- of the TOS field.  This mapping describes the Router
654-- Requirements mapping, and leaves room to widen the TOS field
655-- without impact to fielded systems.
656
657ipCidrRouteTos OBJECT-TYPE
658    SYNTAX     Integer32 (0..2147483647)
659    MAX-ACCESS read-only
660    STATUS     deprecated
661    DESCRIPTION
662           "The policy specifier is the IP TOS Field.  The encoding
663            of IP TOS is as specified by the following convention.
664            Zero indicates the default path if no more specific
665            policy applies.
666
667            +-----+-----+-----+-----+-----+-----+-----+-----+
668            |                 |                       |     |
669            |   PRECEDENCE    |    TYPE OF SERVICE    |  0  |
670            |                 |                       |     |
671            +-----+-----+-----+-----+-----+-----+-----+-----+
672
673                         IP TOS                IP TOS
674               Field     Policy      Field     Policy
675               Contents    Code      Contents    Code
676               0 0 0 0  ==>   0      0 0 0 1  ==>   2
677               0 0 1 0  ==>   4      0 0 1 1  ==>   6
678               0 1 0 0  ==>   8      0 1 0 1  ==>  10
679               0 1 1 0  ==>  12      0 1 1 1  ==>  14
680               1 0 0 0  ==>  16      1 0 0 1  ==>  18
681               1 0 1 0  ==>  20      1 0 1 1  ==>  22
682
683               1 1 0 0  ==>  24      1 1 0 1  ==>  26
684               1 1 1 0  ==>  28      1 1 1 1  ==>  30"
685    ::= { ipCidrRouteEntry 3 }
686
687ipCidrRouteNextHop OBJECT-TYPE
688    SYNTAX     IpAddress
689    MAX-ACCESS read-only
690    STATUS     deprecated
691    DESCRIPTION
692           "On remote routes, the address of the next system en
693            route; Otherwise, 0.0.0.0."
694    ::= { ipCidrRouteEntry 4 }
695
696ipCidrRouteIfIndex OBJECT-TYPE
697    SYNTAX     Integer32
698    MAX-ACCESS read-create
699    STATUS     deprecated
700    DESCRIPTION
701           "The ifIndex value that identifies the local interface
702            through which the next hop of this route should be
703            reached."
704    DEFVAL { 0 }
705    ::= { ipCidrRouteEntry 5 }
706
707ipCidrRouteType OBJECT-TYPE
708    SYNTAX     INTEGER {
709                other    (1), -- not specified by this MIB
710                reject   (2), -- route that discards traffic
711                local    (3), -- local interface
712                remote   (4)  -- remote destination
713             }
714    MAX-ACCESS read-create
715    STATUS     deprecated
716    DESCRIPTION
717           "The type of route.  Note that local(3) refers to a
718            route for which the next hop is the final destination;
719            remote(4) refers to a route for which the next hop is
720            not the final destination.
721
722            Routes that do not result in traffic forwarding or
723            rejection should not be displayed, even if the
724            implementation keeps them stored internally.
725
726            reject (2) refers to a route that, if matched,
727            discards the message as unreachable.  This is used in
728            some protocols as a means of correctly aggregating
729            routes."
730    ::= { ipCidrRouteEntry 6 }
731
732ipCidrRouteProto OBJECT-TYPE
733    SYNTAX     INTEGER {
734                other     (1),  -- not specified
735                local     (2),  -- local interface
736                netmgmt   (3),  -- static route
737                icmp      (4),  -- result of ICMP Redirect
738
739                        -- the following are all dynamic
740                        -- routing protocols
741                egp        (5),  -- Exterior Gateway Protocol
742                ggp        (6),  -- Gateway-Gateway Protocol
743                hello      (7),  -- FuzzBall HelloSpeak
744                rip        (8),  -- Berkeley RIP or RIP-II
745                isIs       (9),  -- Dual IS-IS
746                esIs       (10), -- ISO 9542
747                ciscoIgrp  (11), -- Cisco IGRP
748                bbnSpfIgp  (12), -- BBN SPF IGP
749                ospf       (13), -- Open Shortest Path First
750                bgp        (14), -- Border Gateway Protocol
751                idpr       (15), -- InterDomain Policy Routing
752                ciscoEigrp (16)  -- Cisco EIGRP
753             }
754    MAX-ACCESS read-only
755    STATUS     deprecated
756    DESCRIPTION
757           "The routing mechanism via which this route was learned.
758            Inclusion of values for gateway routing protocols is
759            not intended to imply that hosts should support those
760            protocols."
761    ::= { ipCidrRouteEntry 7 }
762
763ipCidrRouteAge OBJECT-TYPE
764    SYNTAX     Integer32
765    MAX-ACCESS read-only
766    STATUS     deprecated
767    DESCRIPTION
768           "The number of seconds since this route was last updated
769            or otherwise determined to be correct.  Note that no
770            semantics of `too old' can be implied, except through
771            knowledge of the routing protocol by which the route
772            was learned."
773    DEFVAL  { 0 }
774    ::= { ipCidrRouteEntry 8 }
775
776ipCidrRouteInfo OBJECT-TYPE
777    SYNTAX     OBJECT IDENTIFIER
778    MAX-ACCESS read-create
779    STATUS     deprecated
780    DESCRIPTION
781           "A reference to MIB definitions specific to the
782            particular routing protocol that is responsible for
783            this route, as determined by the value specified in the
784            route's ipCidrRouteProto value.  If this information is
785            not present, its value should be set to the OBJECT
786            IDENTIFIER { 0 0 }, which is a syntactically valid
787            object identifier, and any implementation conforming to
788            ASN.1 and the Basic Encoding Rules must be able to
789            generate and recognize this value."
790    ::= { ipCidrRouteEntry 9 }
791
792ipCidrRouteNextHopAS OBJECT-TYPE
793    SYNTAX     Integer32
794    MAX-ACCESS read-create
795    STATUS     deprecated
796    DESCRIPTION
797           "The Autonomous System Number of the Next Hop.  The
798            semantics of this object are determined by the routing-
799            protocol specified in the route's ipCidrRouteProto
800            value.  When this object is unknown or not relevant, its
801            value should be set to zero."
802    DEFVAL { 0 }
803    ::= { ipCidrRouteEntry 10 }
804
805ipCidrRouteMetric1 OBJECT-TYPE
806    SYNTAX     Integer32
807    MAX-ACCESS read-create
808    STATUS     deprecated
809    DESCRIPTION
810           "The primary routing metric for this route.  The
811            semantics of this metric are determined by the routing-
812            protocol specified in the route's ipCidrRouteProto
813            value.  If this metric is not used, its value should be
814            set to -1."
815    DEFVAL { -1 }
816    ::= { ipCidrRouteEntry 11 }
817
818ipCidrRouteMetric2 OBJECT-TYPE
819    SYNTAX     Integer32
820    MAX-ACCESS read-create
821    STATUS     deprecated
822    DESCRIPTION
823           "An alternate routing metric for this route.  The
824            semantics of this metric are determined by the routing-
825            protocol specified in the route's ipCidrRouteProto
826            value.  If this metric is not used, its value should be
827
828            set to -1."
829    DEFVAL { -1 }
830    ::= { ipCidrRouteEntry 12 }
831
832ipCidrRouteMetric3 OBJECT-TYPE
833    SYNTAX     Integer32
834    MAX-ACCESS read-create
835    STATUS     deprecated
836    DESCRIPTION
837           "An alternate routing metric for this route.  The
838            semantics of this metric are determined by the routing-
839            protocol specified in the route's ipCidrRouteProto
840            value.  If this metric is not used, its value should be
841            set to -1."
842    DEFVAL { -1 }
843    ::= { ipCidrRouteEntry 13 }
844
845ipCidrRouteMetric4 OBJECT-TYPE
846    SYNTAX     Integer32
847    MAX-ACCESS read-create
848    STATUS     deprecated
849    DESCRIPTION
850           "An alternate routing metric for this route.  The
851            semantics of this metric are determined by the routing-
852            protocol specified in the route's ipCidrRouteProto
853            value.  If this metric is not used, its value should be
854            set to -1."
855    DEFVAL { -1 }
856    ::= { ipCidrRouteEntry 14 }
857
858ipCidrRouteMetric5 OBJECT-TYPE
859    SYNTAX     Integer32
860    MAX-ACCESS read-create
861    STATUS     deprecated
862    DESCRIPTION
863           "An alternate routing metric for this route.  The
864            semantics of this metric are determined by the routing-
865            protocol specified in the route's ipCidrRouteProto
866            value.  If this metric is not used, its value should be
867            set to -1."
868    DEFVAL { -1 }
869    ::= { ipCidrRouteEntry 15 }
870
871ipCidrRouteStatus OBJECT-TYPE
872    SYNTAX     RowStatus
873    MAX-ACCESS read-create
874    STATUS     deprecated
875    DESCRIPTION
876           "The row status variable, used according to row
877            installation and removal conventions."
878    ::= { ipCidrRouteEntry 16 }
879
880-- compliance statements
881
882ipForwardCompliance MODULE-COMPLIANCE
883    STATUS     deprecated
884    DESCRIPTION
885           "The compliance statement for SNMPv2 entities that
886            implement the ipForward MIB.
887
888            This compliance statement has been deprecated and
889            replaced with ipForwardFullCompliance and
890            ipForwardReadOnlyCompliance."
891
892   MODULE  -- this module
893   MANDATORY-GROUPS { ipForwardCidrRouteGroup }
894   ::= { ipForwardCompliances 1 }
895
896-- units of conformance
897
898ipForwardCidrRouteGroup OBJECT-GROUP
899    OBJECTS { ipCidrRouteNumber,
900              ipCidrRouteDest, ipCidrRouteMask, ipCidrRouteTos,
901              ipCidrRouteNextHop, ipCidrRouteIfIndex,
902              ipCidrRouteType, ipCidrRouteProto, ipCidrRouteAge,
903              ipCidrRouteInfo,ipCidrRouteNextHopAS,
904              ipCidrRouteMetric1, ipCidrRouteMetric2,
905              ipCidrRouteMetric3, ipCidrRouteMetric4,
906              ipCidrRouteMetric5, ipCidrRouteStatus
907        }
908    STATUS     deprecated
909    DESCRIPTION
910           "The CIDR Route Table.
911
912            This group has been deprecated and replaced with
913            inetForwardCidrRouteGroup."
914    ::= { ipForwardGroups 3 }
915
916-- Obsoleted Definitions - Objects
917
918ipForwardNumber OBJECT-TYPE
919    SYNTAX     Gauge32
920    MAX-ACCESS read-only
921    STATUS     obsolete
922    DESCRIPTION
923           "The number of current ipForwardTable entries that are
924            not invalid."
925    ::= { ipForward 1 }
926
927--  IP Forwarding Table
928
929--  The IP Forwarding Table obsoletes and replaces the ipRoute
930--  Table current in MIB-I and MIB-II.  It adds knowledge of
931--  the autonomous system of the next hop, multiple next hop
932--  support, and policy routing support.
933
934ipForwardTable OBJECT-TYPE
935    SYNTAX     SEQUENCE OF IpForwardEntry
936    MAX-ACCESS not-accessible
937    STATUS     obsolete
938    DESCRIPTION
939           "This entity's IP Routing table."
940    REFERENCE
941           "RFC 1213 Section 6.6, The IP Group"
942    ::= { ipForward 2 }
943
944ipForwardEntry OBJECT-TYPE
945    SYNTAX     IpForwardEntry
946    MAX-ACCESS not-accessible
947    STATUS     obsolete
948    DESCRIPTION
949           "A particular route to a particular destination, under a
950            particular policy."
951    INDEX {
952        ipForwardDest,
953        ipForwardProto,
954        ipForwardPolicy,
955        ipForwardNextHop
956        }
957    ::= { ipForwardTable 1 }
958
959IpForwardEntry ::= SEQUENCE {
960        ipForwardDest       IpAddress,
961        ipForwardMask       IpAddress,
962        ipForwardPolicy     Integer32,
963        ipForwardNextHop    IpAddress,
964        ipForwardIfIndex    Integer32,
965        ipForwardType       INTEGER,
966        ipForwardProto      INTEGER,
967        ipForwardAge        Integer32,
968        ipForwardInfo       OBJECT IDENTIFIER,
969        ipForwardNextHopAS  Integer32,
970        ipForwardMetric1    Integer32,
971        ipForwardMetric2    Integer32,
972        ipForwardMetric3    Integer32,
973        ipForwardMetric4    Integer32,
974        ipForwardMetric5    Integer32
975    }
976
977ipForwardDest OBJECT-TYPE
978    SYNTAX     IpAddress
979    MAX-ACCESS read-only
980    STATUS     obsolete
981    DESCRIPTION
982           "The destination IP address of this route.  An entry
983            with a value of 0.0.0.0 is considered a default route.
984
985            This object may not take a Multicast (Class D) address
986            value.
987
988            Any assignment (implicit or otherwise) of an instance
989            of this object to a value x must be rejected if the
990            bitwise logical-AND of x with the value of the
991            corresponding instance of the ipForwardMask object is
992            not equal to x."
993    ::= { ipForwardEntry 1 }
994
995ipForwardMask OBJECT-TYPE
996    SYNTAX     IpAddress
997    MAX-ACCESS read-create
998    STATUS     obsolete
999    DESCRIPTION
1000           "Indicate the mask to be logical-ANDed with the
1001            destination address before being compared to the value
1002            in the ipForwardDest field.  For those systems that do
1003            not support arbitrary subnet masks, an agent constructs
1004            the value of the ipForwardMask by reference to the IP
1005            Address Class.
1006
1007            Any assignment (implicit or otherwise) of an instance
1008            of this object to a value x must be rejected if the
1009            bitwise logical-AND of x with the value of the
1010            corresponding instance of the ipForwardDest object is
1011            not equal to ipForwardDest."
1012    DEFVAL { '00000000'H }      -- 0.0.0.0
1013    ::= { ipForwardEntry 2 }
1014
1015-- The following convention is included for specification
1016-- of TOS Field contents.  At this time, the Host Requirements
1017-- and the Router Requirements documents disagree on the width
1018-- of the TOS field.  This mapping describes the Router
1019
1020-- Requirements mapping, and leaves room to widen the TOS field
1021-- without impact to fielded systems.
1022
1023ipForwardPolicy OBJECT-TYPE
1024    SYNTAX     Integer32 (0..2147483647)
1025    MAX-ACCESS read-only
1026    STATUS     obsolete
1027    DESCRIPTION
1028           "The general set of conditions that would cause
1029            the selection of one multipath route (set of
1030            next hops for a given destination) is referred
1031            to as 'policy'.
1032
1033            Unless the mechanism indicated by ipForwardProto
1034            specifies otherwise, the policy specifier is
1035            the IP TOS Field.  The encoding of IP TOS is as
1036            specified by the following convention.  Zero
1037            indicates the default path if no more specific
1038            policy applies.
1039
1040            +-----+-----+-----+-----+-----+-----+-----+-----+
1041            |                 |                       |     |
1042            |   PRECEDENCE    |    TYPE OF SERVICE    |  0  |
1043            |                 |                       |     |
1044            +-----+-----+-----+-----+-----+-----+-----+-----+
1045
1046                         IP TOS                IP TOS
1047               Field     Policy      Field     Policy
1048               Contents    Code      Contents    Code
1049               0 0 0 0  ==>   0      0 0 0 1  ==>   2
1050               0 0 1 0  ==>   4      0 0 1 1  ==>   6
1051               0 1 0 0  ==>   8      0 1 0 1  ==>  10
1052               0 1 1 0  ==>  12      0 1 1 1  ==>  14
1053               1 0 0 0  ==>  16      1 0 0 1  ==>  18
1054               1 0 1 0  ==>  20      1 0 1 1  ==>  22
1055               1 1 0 0  ==>  24      1 1 0 1  ==>  26
1056               1 1 1 0  ==>  28      1 1 1 1  ==>  30
1057
1058            Protocols defining 'policy' otherwise must either
1059            define a set of values that are valid for
1060            this object or must implement an integer-instanced
1061            policy table for which this object's
1062            value acts as an index."
1063    ::= { ipForwardEntry 3 }
1064
1065ipForwardNextHop OBJECT-TYPE
1066    SYNTAX     IpAddress
1067    MAX-ACCESS read-only
1068    STATUS     obsolete
1069    DESCRIPTION
1070           "On remote routes, the address of the next system en
1071            route; otherwise, 0.0.0.0."
1072    ::= { ipForwardEntry 4 }
1073
1074ipForwardIfIndex OBJECT-TYPE
1075    SYNTAX     Integer32
1076    MAX-ACCESS read-create
1077    STATUS     obsolete
1078    DESCRIPTION
1079           "The ifIndex value that identifies the local interface
1080            through which the next hop of this route should be
1081            reached."
1082    DEFVAL { 0 }
1083    ::= { ipForwardEntry 5 }
1084
1085ipForwardType OBJECT-TYPE
1086    SYNTAX     INTEGER {
1087                other    (1), -- not specified by this MIB
1088                invalid  (2), -- logically deleted
1089                local    (3), -- local interface
1090                remote   (4)  -- remote destination
1091             }
1092    MAX-ACCESS read-create
1093    STATUS     obsolete
1094    DESCRIPTION
1095           "The type of route.  Note that local(3) refers to a
1096            route for which the next hop is the final destination;
1097            remote(4) refers to a route for which the next hop is
1098            not the final destination.
1099
1100            Setting this object to the value invalid(2) has the
1101            effect of invalidating the corresponding entry in the
1102            ipForwardTable object.  That is, it effectively
1103            disassociates the destination identified with said
1104            entry from the route identified with said entry.  It is
1105            an implementation-specific matter as to whether the
1106            agent removes an invalidated entry from the table.
1107            Accordingly, management stations must be prepared to
1108            receive tabular information from agents that
1109            corresponds to entries not currently in use.  Proper
1110            interpretation of such entries requires examination of
1111            the relevant ipForwardType object."
1112    DEFVAL { invalid }
1113    ::= { ipForwardEntry 6 }
1114
1115ipForwardProto OBJECT-TYPE
1116    SYNTAX     INTEGER {
1117                other     (1),  -- not specified
1118                local     (2),  -- local interface
1119                netmgmt   (3),  -- static route
1120                icmp      (4),  -- result of ICMP Redirect
1121
1122                        -- the following are all dynamic
1123                        -- routing protocols
1124                egp       (5),  -- Exterior Gateway Protocol
1125                ggp       (6),  -- Gateway-Gateway Protocol
1126                hello     (7),  -- FuzzBall HelloSpeak
1127                rip       (8),  -- Berkeley RIP or RIP-II
1128                is-is     (9),  -- Dual IS-IS
1129                es-is     (10), -- ISO 9542
1130                ciscoIgrp (11), -- Cisco IGRP
1131                bbnSpfIgp (12), -- BBN SPF IGP
1132                ospf      (13), -- Open Shortest Path First
1133                bgp       (14), -- Border Gateway Protocol
1134                idpr      (15)  -- InterDomain Policy Routing
1135             }
1136    MAX-ACCESS read-only
1137    STATUS     obsolete
1138    DESCRIPTION
1139           "The routing mechanism via which this route was learned.
1140            Inclusion of values for gateway routing protocols is
1141            not intended to imply that hosts should support those
1142            protocols."
1143    ::= { ipForwardEntry 7 }
1144
1145ipForwardAge OBJECT-TYPE
1146    SYNTAX     Integer32
1147    MAX-ACCESS read-only
1148    STATUS     obsolete
1149    DESCRIPTION
1150           "The number of seconds since this route was last updated
1151            or otherwise determined to be correct.  Note that no
1152            semantics of `too old' can be implied except through
1153            knowledge of the routing protocol by which the route
1154            was learned."
1155    DEFVAL  { 0 }
1156    ::= { ipForwardEntry 8 }
1157
1158ipForwardInfo OBJECT-TYPE
1159    SYNTAX     OBJECT IDENTIFIER
1160    MAX-ACCESS read-create
1161    STATUS     obsolete
1162    DESCRIPTION
1163           "A reference to MIB definitions specific to the
1164            particular routing protocol that is responsible for
1165            this route, as determined by the value specified in the
1166            route's ipForwardProto value.  If this information is
1167            not present, its value should be set to the OBJECT
1168            IDENTIFIER { 0 0 }, which is a syntactically valid
1169            object identifier, and any implementation conforming to
1170            ASN.1 and the Basic Encoding Rules must be able to
1171            generate and recognize this value."
1172    ::= { ipForwardEntry 9 }
1173
1174ipForwardNextHopAS OBJECT-TYPE
1175    SYNTAX     Integer32
1176    MAX-ACCESS read-create
1177    STATUS     obsolete
1178    DESCRIPTION
1179           "The Autonomous System Number of the Next Hop.  When
1180            this is unknown or not relevant to the protocol
1181            indicated by ipForwardProto, zero."
1182    DEFVAL { 0 }
1183    ::= { ipForwardEntry 10 }
1184
1185ipForwardMetric1 OBJECT-TYPE
1186    SYNTAX     Integer32
1187    MAX-ACCESS read-create
1188    STATUS     obsolete
1189    DESCRIPTION
1190           "The primary routing metric for this route.  The
1191            semantics of this metric are determined by the routing-
1192            protocol specified in the route's ipForwardProto value.
1193            If this metric is not used, its value should be set to
1194            -1."
1195    DEFVAL { -1 }
1196    ::= { ipForwardEntry 11 }
1197
1198ipForwardMetric2 OBJECT-TYPE
1199    SYNTAX     Integer32
1200    MAX-ACCESS read-create
1201    STATUS     obsolete
1202    DESCRIPTION
1203           "An alternate routing metric for this route.  The
1204            semantics of this metric are determined by the routing-
1205            protocol specified in the route's ipForwardProto value.
1206            If this metric is not used, its value should be set to
1207            -1."
1208    DEFVAL { -1 }
1209    ::= { ipForwardEntry 12 }
1210
1211ipForwardMetric3 OBJECT-TYPE
1212    SYNTAX     Integer32
1213    MAX-ACCESS read-create
1214    STATUS     obsolete
1215    DESCRIPTION
1216           "An alternate routing metric for this route.  The
1217            semantics of this metric are determined by the routing-
1218            protocol specified in the route's ipForwardProto value.
1219            If this metric is not used, its value should be set to
1220            -1."
1221    DEFVAL { -1 }
1222    ::= { ipForwardEntry 13 }
1223
1224ipForwardMetric4 OBJECT-TYPE
1225    SYNTAX     Integer32
1226    MAX-ACCESS read-create
1227    STATUS     obsolete
1228    DESCRIPTION
1229           "An alternate routing metric for this route.  The
1230            semantics of this metric are determined by the routing-
1231            protocol specified in the route's ipForwardProto value.
1232            If this metric is not used, its value should be set to
1233            -1."
1234    DEFVAL { -1 }
1235    ::= { ipForwardEntry 14 }
1236
1237ipForwardMetric5 OBJECT-TYPE
1238    SYNTAX     Integer32
1239    MAX-ACCESS read-create
1240    STATUS     obsolete
1241    DESCRIPTION
1242           "An alternate routing metric for this route.  The
1243            semantics of this metric are determined by the routing-
1244            protocol specified in the route's ipForwardProto value.
1245            If this metric is not used, its value should be set to
1246            -1."
1247    DEFVAL { -1 }
1248    ::= { ipForwardEntry 15 }
1249
1250-- Obsoleted Definitions - Groups
1251-- compliance statements
1252
1253ipForwardOldCompliance MODULE-COMPLIANCE
1254    STATUS     obsolete
1255    DESCRIPTION
1256           "The compliance statement for SNMP entities that
1257            implement the ipForward MIB."
1258
1259   MODULE  -- this module
1260   MANDATORY-GROUPS { ipForwardMultiPathGroup }
1261   ::= { ipForwardCompliances 2 }
1262
1263ipForwardMultiPathGroup OBJECT-GROUP
1264    OBJECTS { ipForwardNumber,
1265              ipForwardDest, ipForwardMask, ipForwardPolicy,
1266              ipForwardNextHop, ipForwardIfIndex, ipForwardType,
1267              ipForwardProto, ipForwardAge, ipForwardInfo,
1268              ipForwardNextHopAS,
1269              ipForwardMetric1, ipForwardMetric2, ipForwardMetric3,
1270              ipForwardMetric4, ipForwardMetric5
1271        }
1272    STATUS     obsolete
1273    DESCRIPTION
1274           "IP Multipath Route Table."
1275    ::= { ipForwardGroups 2 }
1276
1277END
1278