Internet-Draft                                             M. Wasserman, Editor Wasserman
 Document: draft-ietf-ipv6-rfc2096-update-02.txt draft-ietf-ipv6-rfc2096-update-03.txt              Wind River
 Expires:  May 2002                                        November 2002  December 2003                                     B. Haberman
                                                        Caspian Networks
                                                               June 2003

                           IP Forwarding Table MIB

  1

 Status of this Memo

    This document is an Internet-Draft and is in full conformance with
    all provisions of Section 10 of RFC2026.

    Internet-Drafts are working documents of the Internet Engineering
    Task Force (IETF), its areas, and its working groups.  Note that
    other groups may also distribute working documents as Internet-
    Drafts.

    Internet-Drafts are draft documents valid for a maximum of six
    months and may be updated, replaced, or obsoleted by other
    documents at any time.  It is inappropriate to use Internet-Drafts
    as reference material or to cite them other than as "work in
    progress."

    The list of current Internet-Drafts can be accessed at
         http://www.ietf.org/ietf/1id-abstracts.txt
    The list of Internet-Draft Shadow Directories can be accessed at
         http://www.ietf.org/shadow.html.

    This document is a product of the IPv6 MIB Revision Design Team and
    it is a working item of the IPv6 Working Group.  Comments should be
    addressed to the editor, editors, or to the IPv6 Working Group mailing list
    at ipng@sunroof.eng.sun.com.

  2

 Abstract

    This document defines a portion of the Management Information Base
    (MIB) for use with network management protocols in the Internet
    community.  In particular, it describes managed objects related to
    the forwarding of Internet Protocol (IP) packets, in an IP version
    independent manner.

  3  This document obsoletes RFC 2096.

 Copyright Notice

    Copyright (C) The Internet Society (2001). (2003).  All Rights Reserved.

  4  Conventions Used In This Document

     The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
     "SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and "OPTIONAL" in
     this document are to be interpreted as described in RFC 2119
     [RFC2119].

     Wasserman

    Wasserman, Haberman  Expires December 2002 2003                       1
     IP Forwarding Table MIB                               November 2002

  5
 Table of Contents

    1       Status of this Memo.......................................1  Revision History...............................................2
    2       Abstract..................................................1
     3       Copyright Notice..........................................1
     4  Conventions Used In This Document.........................1 Document..............................4
    3  The Internet-Standard Management Framework.....................4
    4  Overview.......................................................4
    5       Table of Contents.........................................2  Definitions....................................................5
    6       Revision History..........................................2  Security Considerations.......................................27
    7       The SNMP Management Framework.............................4  Normative References..........................................28
    8       Overview..................................................5  Informative References........................................28
    9       Definitions...............................................6
     10      Security Considerations..................................27
     11      References...............................................28
     12  Authors and Acknowledgements.............................30
     13 Acknowledgements..................................29
    10 Editor's Contact Information.............................30
     14 Information..................................29
    11 Full Copyright Statement.................................30

  6 Statement......................................29

 1  Revision History

    Changes from draft-ietf-ipv6-rfc-2096-update-01.txt: draft-ietf-ipv6-rfc2096-update-02.txt:

     16 Jan 2003   Changed lower-case 'h' to upper-case 'H' in hex
                   number.

                   Updated REVISION and LAST UPDATED dates.
     13 Jun 2003   Changed inetCidrRouteDscp to inetCidrRoutePolicy.

                   Updated MIB Boilerplate.
     17 Jun 2003   Added read-only compliance statement.

                   Added text to DESCRIPTION clause for
                   inetCidrRouteStatus to indicate a row cannot be
                   modified when it is active.

                   Removed numbered references from DESCRIPTION clauses.

                   Removed Unsigned32 from IMPORTS list.

                   Changed section numbers to conform with ID-nits.

                   Split references into normative/informative.

                   Updated security section.

    Changes from draft-ietf-ipv6-rfc2096-update-01.txt:

     02 Nov 2002   Fixed bugs that caused the MIB not to compile.

                   Changed the type of inetCidrRouteDscp to Dscp.

                   Improved the revision information.

                   Removed inetCidrRouteNumber and inetCidrRouteWeight.

                   Other editorial changes.

    Wasserman, Haberman  Expires December 2003                       2
    Changes from draft-ietf-ipv6-rfc-2096-update-00.txt:

     22 Aug 2002   Minor editorial changes and clean-up

    Changes from draft-ietf-ipngwg-rfc-2096-update-00.txt: draft-ietf-ipngwg-rfc2096-update-00.txt:

     27 Jun 2002   Added inetCidrRouteDscp index and inetCidrRouteWeight
                   object to the inetCidrRouteTable.

                   Restored inetCidrRouteNextHopType variable (may be
                   different from inetCidrRouteDestType, due to global
                   vs. non-global distinction in new InetAddress TCs).

                   Removed inetCidrRouteInstance object. Use to identify
                   a conceptual routing table is obviated by new
                   InetAddress types and inclusion of DSCP index.

                   Changed editor, moved author information to end,
                   several editorial changes.

     Wasserman, Editor    Expires December 2002                       2
     IP Forwarding Table MIB                               November 2002

                   Changed name to draft-ietf-ipv6-rfc-2096-update-*.txt
     13 Jul 2002   Removed inetCidrRouteNextHopType.

    Changes from draft-ops-rfc2096-update-00.txt:

     12 Jul 2001   Renamed to IPNG working group draft
                   Added scopes to the uses of instance
                   Added inetCidrRouteDiscards to replace
                   ipRoutingDiscards
                   Fixed some remaining ipCidr*/inetCidr* confusion in
                   DESCRIPTIONs

    Changes from first draft posted to v6mib mailing list:

     23 Feb 2001   Updated MODULE-IDENTITY

                   Deleted inetCidrRouteTos, add inetCidrRouteInstance
                   in INDEX of inetCidrRouteTable.

                   Used InterfaceIndex, InetAddressPrefixLength and
                   InetAutonomousSystemNumber TC's, and limited the SIZE
                   of inetCidrRouteDest and inetCidrRouteNextHop

                   Updated conformance info.  Added copyright and table
                   of contents.

    Wasserman, Editor Haberman  Expires December 2002 2003                       3
     IP Forwarding Table MIB                               November 2002

  7
 2  Conventions Used In This Document

    The SNMP Management Framework key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
    "SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and "OPTIONAL" in
    this document are to be interpreted as described in RFC 2119
    [RFC2119].

 3  The SNMP Internet-Standard Management Framework presently consists

    For a detailed overview of the documents that describe the current
    Internet-Standard Management Framework, please refer to section 7
    of five major
     components:

          - An overall architecture, described in RFC 2571 [2].

          - Mechanisms for describing and naming 3410 [RFC3410].

    Managed objects and events for are accessed via a virtual information store,
    termed the purpose of management.  The first version of this
             Structure of Management Information (SMI) is called SMIv1
             and described in STD 16, RFC 1155 [3], STD 16, RFC 1212 [4]
             and RFC 1215 [5]. The second version, called SMIv2, is
             described in STD 58, RFC 2578 [6], STD 58, RFC 2579 [7] and
             STD 58, RFC 2580 [8].

          - Message protocols for transferring management information.
             The first version of the SNMP message protocol is called
             SNMPv1 and described in STD 15, RFC 1157 [9]. A second
             version of the SNMP message protocol,which is not an
             Internet standards track protocol, is called SNMPv2c and
             described in RFC 1901 [10] and RFC 1906 [11]. The third
             version of the message protocol is called SNMPv3 and
             described in RFC 1906 [11],RFC 2572 [12] and RFC 2574 [13].

          - Protocol operations for accessing management information.
             The first set of protocol operations and associated PDU
             formats is described in STD 15, RFC 1157 [9]. A second set
             of protocol operations and associated PDU formats is
             described in RFC 1905 [14].

          - A set of fundamental applications described in RFC 2573 [15]
             and the view-based access control mechanism described in RFC
             2575 [16].

     A more detailed introduction to the current SNMP Management
     framework can be found in RFC 2570 [17].

     Managed Base or MIB.  MIB objects are
    generally accessed via a virtual information store,
     termed through the Simple Network Management Information Base or MIB. Protocol
    (SNMP).  Objects in the MIB are defined using the mechanisms
    defined in the SMI. Structure of Management Information (SMI).  This
    memo specifies a MIB module that is compliant to the SMIv2.  A
     MIB conforming to the SMIv1 can be produced through the appropriate
     translations.  The resulting translated MIB must be semantically
     equivalent, except where objects or events are omitted because no
     translation SMIv2, which
    is possible (use of Counter64).  Some machine readable
     information in SMIv2 will be converted into textual descriptions described in
     SMIv1 during the translation process.  However, this loss of
     machine readable information is not considered to change the
     semantics of the MIB.

     Wasserman, Editor    Expires December 2002 STD 58, RFC 2578 [RFC2578], STD 58, RFC 2579
    [RFC2579] and STD 58, RFC 2580 [RFC2580].

 4
     IP Forwarding Table MIB                               November 2002

  8  Overview

    The MIB consists of one current table and two current global
    objects.

         1. The object inetCidrRouteNumber indicates the number of
            current routes.  This is primarily to avoid having to read
            the table in order to determine this number.

         2. The object inetCidrRouteDiscards counts the number of valid
            routes that were discarded for any reason.

         3. The inetCidrRouteTable provides the ability to display IP
            version independent multipath CIDR routes.

    In addition, there is one deprecated table and object, and one
    obsolete table and object, representing previous revisions of this
    MIB.

         1. The obsolete object ipForwardNumber represents the number of
            entries in the obsolete ipForwardTable.

         2. The obsolete ipForwardTable updates the RFC 1213
            ipRouteTable to display multipath IP Routes.  This is in
            turn obsoleted by the ipCidrRouteTable.

         3. The deprecated object ipCidrRouteNumber represents the
            number of entries in the deprecated ipCidrRouteTable.

         4. The deprecated ipCidrRouteTable updates the RFC 1213
            ipRouteTable to display multipath IP Routes having the same
            network number but differing network masks.

    Wasserman, Editor Haberman  Expires December 2002 2003                       4
 5
     IP Forwarding Table MIB                               November 2002

  9  Definitions

    IP-FORWARD-MIB DEFINITIONS ::= BEGIN

    IMPORTS
        MODULE-IDENTITY, OBJECT-TYPE,
        IpAddress, Integer32, Gauge32,
         Unsigned32,
        Counter32                          FROM SNMPv2-SMI
        RowStatus                          FROM SNMPv2-TC
        MODULE-COMPLIANCE, OBJECT-GROUP    FROM SNMPv2-CONF
        InterfaceIndex                     FROM IF-MIB
        ip                                 FROM IP-MIB
        IANAipRouteProtocol                FROM IANA-RTPROTO-MIB
        InetAddress, InetAddressType,
        InetAddressPrefixLength,
        InetAutonomousSystemNumber         FROM INET-ADDRESS-MIB
         Dscp                               FROM DIFFSERV-DSCP-TC; INET-ADDRESS-MIB;

    ipForward MODULE-IDENTITY
        LAST-UPDATED "200107130000Z" "200306130000Z"
        ORGANIZATION "IETF IPv6 MIB Revision Team"
        CONTACT-INFO
               "Editor:
                Margaret Wasserman
                Wind River
                10 Tara Blvd, Suite 330
                Nashua, NH 03062

                Phone: +1 603 897-2067
                Email: <mrw@windriver.com>" mrw@windriver.com

                Brian Haberman
                Caspian Networks
                1 Park Drive, Suite 300
                Research Triangle Park, NC  27709

                Phone: +1 919 949-4828
                Email: brian@innovationslab.net"
        DESCRIPTION
               "The MIB module for the management of CIDR multipath IP
                Routes."
        REVISION      "200206270000Z"      "200306130000Z"
        DESCRIPTION
               "IPv4/v6 version-independent revision.  Minimal changes
                were made to the original RFC 2096 MIB, to allow easy
                upgrade of existing IPv4 implementations to the
                version-independent MIB.  published as RFC XXXX."
        REVISION      "9609190000Z"      "200301130000Z"
        DESCRIPTION
               "Revised to support CIDR routes."
        ::= { ip 24 }

    inetCidrRouteDiscards OBJECT-TYPE
        SYNTAX     Counter32

    Wasserman, Haberman  Expires December 2003                       5
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
               "The number of routing entries which were chosen to be
                discarded even though they are valid.  One possible
                reason for discarding such an entry could be to free-up

     Wasserman, Editor    Expires December 2002                       6
     IP Forwarding Table MIB                               November 2002
                buffer space for other routing entries."
        ::= { ipForward 8 }

    --  Inet CIDR Route Table

    --  The Inet CIDR Route Table deprecates and replaces the
    --  ipCidrRoute Table currently in the IP Forwarding Table MIB.
    --  It adds IP protocol independence.

    inetCidrRouteTable OBJECT-TYPE
        SYNTAX     SEQUENCE OF InetCidrRouteEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
               "This entity's IP Routing table."
        REFERENCE
               "RFC 1213 Section 6.6, The IP Group"
        ::= { ipForward 7 }

    inetCidrRouteEntry OBJECT-TYPE
        SYNTAX     InetCidrRouteEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
               "A particular route to a particular destination, under a
                particular policy." policy.

                Dynamically created rows will survive an agent reboot."
        INDEX {
            inetCidrRouteDestType,
            inetCidrRouteDest,
            inetCidrRoutePfxLen,
             inetCidrRouteDscp,
            inetCidrRoutePolicy,
            inetCidrRouteNextHopType,
            inetCidrRouteNextHop
            }
        ::= { inetCidrRouteTable 1 }

    InetCidrRouteEntry ::= SEQUENCE {
            inetCidrRouteDestType     InetAddressType,
            inetCidrRouteDest         InetAddress,
            inetCidrRoutePfxLen       InetAddressPrefixLength,
             inetCidrRouteDscp         Dscp,
            inetCidrRoutePolicy       OBJECT IDENTIFIER,
            inetCidrRouteNextHopType  InetAddressType,
            inetCidrRouteNextHop      InetAddress,
            inetCidrRouteIfIndex      InterfaceIndex,
            inetCidrRouteType         INTEGER,
            inetCidrRouteProto        IANAipRouteProtocol,
             inetCidrRouteAge

    Wasserman, Haberman  Expires December 2003                       6
            inetCidrRouteAge          Integer32,
            inetCidrRouteNextHopAS    InetAutonomousSystemNumber,
            inetCidrRouteMetric1      Integer32,
            inetCidrRouteMetric2      Integer32,
            inetCidrRouteMetric3      Integer32,
            inetCidrRouteMetric4      Integer32,
            inetCidrRouteMetric5      Integer32,
            inetCidrRouteStatus       RowStatus

     Wasserman, Editor    Expires December 2002                       7
     IP Forwarding Table MIB                               November 2002
        }

    inetCidrRouteDestType OBJECT-TYPE
        SYNTAX     InetAddressType
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
               "The type of the inetCidrRouteDest address, as defined
                in the InetAddress MIB [19]" [RFC3291]."
        ::= { inetCidrRouteEntry 1 }

    inetCidrRouteDest OBJECT-TYPE
        SYNTAX     InetAddress (SIZE(0..36))
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
               "The destination IP address of this route.

                Any assignment (implicit or otherwise) of an instance
                of this object to a value x MUST be rejected if the
                bitwise logical-AND of x with the value of the mask
                formed from the corresponding instance of the
                inetCidrRoutePfxLen object is not equal to x."
        ::= { inetCidrRouteEntry 2 }

    inetCidrRoutePfxLen OBJECT-TYPE
        SYNTAX     InetAddressPrefixLength
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
               "Indicates the number of leading one bits which form the
                mask to be logical-ANDed with the destination address
                before being compared to the value in the
                inetCidrRouteDest field.

                Any assignment (implicit or otherwise) of an instance
                of this object to a value x MUST be rejected if the
                bitwise logical-AND of the mask formed from x with the
                value of the corresponding instance of the
                inetCidrRouteDest object is not equal to
                inetCidrRouteDest."
        ::= { inetCidrRouteEntry 3 }

     inetCidrRouteDscp

    inetCidrRoutePolicy OBJECT-TYPE
        SYNTAX     Dscp     OBJECT IDENTIFIER
        MAX-ACCESS not-accessible

    Wasserman, Haberman  Expires December 2003                       7
        STATUS     current
        DESCRIPTION
                "Indicates
               "Represents the Differentiated Services Code Point (DSCP)
                 [18] general set of conditions that would
                cause the selection of one multipath route (set of next
                hops for a given destination) over another (referred to which
                as policy).  The value { 0 0 } shall be used for the routing information in this entry
                default policy or if no particular policy applies."
        ::= { inetCidrRouteEntry 4 }

    inetCidrRouteNextHopType OBJECT-TYPE

     Wasserman, Editor    Expires December 2002                       8
     IP Forwarding Table MIB                               November 2002
        SYNTAX     InetAddressType
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
               "The type of the inetCidrRouteNextHop address, as
                defined in the InetAddress MIB [19]. [RFC3291].

                Value should be set to unknown(0) for non-remote
                routes."
        ::= { inetCidrRouteEntry 5 }

    inetCidrRouteNextHop OBJECT-TYPE
        SYNTAX     InetAddress (SIZE(0..36))
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
               "On remote routes, the address of the next system en
                route.  For non-remote routes, a zero length string."
        ::= { inetCidrRouteEntry 6 }

    inetCidrRouteIfIndex OBJECT-TYPE
        SYNTAX     InterfaceIndex
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
               "The ifIndex value which identifies the local interface
                through which the next hop of this route should be
                reached."
        ::= { inetCidrRouteEntry 7 }

    inetCidrRouteType OBJECT-TYPE
        SYNTAX     INTEGER {
                    other    (1), -- not specified by this MIB
                    reject   (2), -- route which discards traffic and
                                  --   returns ICMP notification
                    local    (3), -- local interface
                    remote   (4), -- remote destination
                    blackhole(5)  -- route which discards traffic
                                  --   silently
                 }
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
               "The type of route.  Note that local(3) refers to a

    Wasserman, Haberman  Expires December 2003                       8
                route for which the next hop is the final destination;
                remote(4)refers to a route for which the next hop is
                not the final destination.

                Routes which do not result in traffic forwarding or
                rejection should not be displayed even if the
                implementation keeps them stored internally.

                reject(2) refers to a route which, if matched, discards
                the message as unreachable and returns a notification

     Wasserman, Editor    Expires December 2002                       9
     IP Forwarding Table MIB                               November 2002
                (e.g. ICMP error) to the message sender.  This is used
                in some protocols as a means of correctly aggregating
                routes.

                blackhole(5) refers to a route which, if matched,
                discards the message silently."
        ::= { inetCidrRouteEntry 8 }

    inetCidrRouteProto OBJECT-TYPE
        SYNTAX     IANAipRouteProtocol
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
               "The routing mechanism via which this route was learned.
                Inclusion of values for gateway routing protocols is
                not intended to imply that hosts should support those
                protocols."
        ::= { inetCidrRouteEntry 9 }

    inetCidrRouteAge OBJECT-TYPE
        SYNTAX     Integer32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
               "The number of seconds since this route was last updated
                or otherwise determined to be correct.  Note that no
                semantics of 'too old' can be implied except through
                knowledge of the routing protocol by which the route
                was learned."
        ::= { inetCidrRouteEntry 10 }

    inetCidrRouteNextHopAS OBJECT-TYPE
        SYNTAX     InetAutonomousSystemNumber
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
               "The Autonomous System Number of the Next Hop.  The
                semantics of this object are determined by the routing-
                protocol specified in the route's inetCidrRouteProto
                value. When this object is unknown or not relevant its
                value should be set to zero."
        DEFVAL { 0 }
        ::= { inetCidrRouteEntry 11 }

    Wasserman, Haberman  Expires December 2003                       9
    inetCidrRouteMetric1 OBJECT-TYPE
        SYNTAX     Integer32
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
               "The primary routing metric for this route.  The
                semantics of this metric are determined by the routing-
                protocol specified in the route's inetCidrRouteProto
                value.  If this metric is not used, its value should be
                set to -1."

     Wasserman, Editor    Expires December 2002                      10
     IP Forwarding Table MIB                               November 2002
        DEFVAL { -1 }
        ::= { inetCidrRouteEntry 12 }

    inetCidrRouteMetric2 OBJECT-TYPE
        SYNTAX     Integer32
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
               "An alternate routing metric for this route.  The
                semantics of this metric are determined by the routing-
                protocol specified in the route's inetCidrRouteProto
                value.  If this metric is not used, its value should be
                set to -1."
        DEFVAL { -1 }
        ::= { inetCidrRouteEntry 13 }

    inetCidrRouteMetric3 OBJECT-TYPE
        SYNTAX     Integer32
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
               "An alternate routing metric for this route.  The
                semantics of this metric are determined by the routing-
                protocol specified in the route's inetCidrRouteProto
                value.  If this metric is not used, its value should be
                set to -1."
        DEFVAL { -1 }
        ::= { inetCidrRouteEntry 14 }

    inetCidrRouteMetric4 OBJECT-TYPE
        SYNTAX     Integer32
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
               "An alternate routing metric for this route.  The
                semantics of this metric are determined by the routing-
                protocol specified in the route's inetCidrRouteProto
                value.  If this metric is not used, its value should be
                set to -1."
        DEFVAL { -1 }
        ::= { inetCidrRouteEntry 15 }

    inetCidrRouteMetric5 OBJECT-TYPE
        SYNTAX     Integer32

    Wasserman, Haberman  Expires December 2003                      10
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
               "An alternate routing metric for this route.  The
                semantics of this metric are determined by the routing-
                protocol specified in the route's inetCidrRouteProto
                value.  If this metric is not used, its value should be
                set to -1."
        DEFVAL { -1 }
        ::= { inetCidrRouteEntry 16 }

     Wasserman, Editor    Expires December 2002                      11
     IP Forwarding Table MIB                               November 2002

    inetCidrRouteStatus OBJECT-TYPE
        SYNTAX     RowStatus
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
               "The row status variable, used according to row
                installation and removal conventions." conventions.

                A row entry cannot be modified when the status is
                marked as active(1)."
        ::= { inetCidrRouteEntry 17 }

    --  Conformance information

    ipForwardConformance
         OBJECT IDENTIFIER ::= { ipForward 5 }

    ipForwardGroups
         OBJECT IDENTIFIER ::= { ipForwardConformance 1 }

    ipForwardCompliances
         OBJECT IDENTIFIER ::= { ipForwardConformance 2 }

    --  Compliance statements

     ipForwardCompliance2

    ipForwardFullCompliance MODULE-COMPLIANCE
        STATUS     current
        DESCRIPTION
                "The compliance statement
               "When this MIB is implemented for systems which have routing
                 tables." read-create, the
                implementation can claim full compliance."
       MODULE -- this module
       MANDATORY-GROUPS { inetForwardCidrRouteGroup }
       ::= { ipForwardCompliances 3 }

     -- units of conformance

     inetForwardCidrRouteGroup OBJECT-GROUP
         OBJECTS { inetCidrRouteDiscards,
                   inetCidrRouteIfIndex, inetCidrRouteType,
                   inetCidrRouteProto, inetCidrRouteAge,
                   inetCidrRouteNextHopAS, inetCidrRouteMetric1,
                   inetCidrRouteMetric2, inetCidrRouteMetric3,
                   inetCidrRouteMetric4, inetCidrRouteMetric5,
                   inetCidrRouteStatus 4 }

    ipForwardReadOnlyCompliance MODULE-COMPLIANCE
        STATUS     current
        DESCRIPTION
                "The IP version independent CIDR Route Table."
         ::=
               "When this MIB is implemented without support for read-
                create (i.e. in read-only mode), the implementation can
                claim read-only compliance."
       MODULE -- this module
       MANDATORY-GROUPS { ipForwardGroups 4 inetForwardCidrRouteGroup }

     --  Deprecated Objects

     ipCidrRouteNumber OBJECT-TYPE
         SYNTAX     Gauge32
         MAX-ACCESS read-only
         STATUS     deprecated

    Wasserman, Editor Haberman  Expires December 2002                      12
     IP Forwarding Table MIB                               November 2002 2003                      11
       OBJECT      inetCidrRouteIfIndex
       MIN-ACCESS  read-only
       DESCRIPTION
                "The number of current ipCidrRouteTable entries that are
          "Write access is not invalid.  This object required."

       OBJECT      inetCidrRouteType
       MIN-ACCESS  read-only
       DESCRIPTION
          "Write access is deprecated in favor of
                 inetCidrRouteNumber and the inetCidrRouteTable."
         ::= { not required."

       OBJECT      inetCidrRouteNextHopAS
       MIN-ACCESS  read-only
       DESCRIPTION
          "Write access is not required."

       OBJECT      inetCidrRouteMetric1
       MIN-ACCESS  read-only
       DESCRIPTION
          "Write access is not required."

       OBJECT      inetCidrRouteMetric2
       MIN-ACCESS  read-only
       DESCRIPTION
          "Write access is not required."

       OBJECT      inetCidrRouteMetric3
       MIN-ACCESS  read-only
       DESCRIPTION
          "Write access is not required."

       OBJECT      inetCidrRouteMetric4
       MIN-ACCESS  read-only
       DESCRIPTION
          "Write access is not required."

       OBJECT      inetCidrRouteMetric5
       MIN-ACCESS  read-only
       DESCRIPTION
          "Write access is not required."

       OBJECT      inetCidrRouteStatus
       MIN-ACCESS  read-only
       DESCRIPTION
          "Write access is not required."

       ::= { ipForwardCompliances 5 }

    ipForwardCompliance2 MODULE-COMPLIANCE
        STATUS     deprecated
        DESCRIPTION
               "The compliance statement for systems which have routing
                tables."
       MODULE -- this module
       MANDATORY-GROUPS { inetForwardCidrRouteGroup }

    Wasserman, Haberman  Expires December 2003                      12
       ::= { ipForwardCompliances 3 }

    -- units of conformance

    inetForwardCidrRouteGroup OBJECT-GROUP
        OBJECTS { inetCidrRouteDiscards,
                  inetCidrRouteIfIndex, inetCidrRouteType,
                  inetCidrRouteProto, inetCidrRouteAge,
                  inetCidrRouteNextHopAS, inetCidrRouteMetric1,
                  inetCidrRouteMetric2, inetCidrRouteMetric3,
                  inetCidrRouteMetric4, inetCidrRouteMetric5,
                  inetCidrRouteStatus
            }
        STATUS     current
        DESCRIPTION
               "The IP version independent CIDR Route Table."
        ::= { ipForwardGroups 4 }

    --  Deprecated Objects

    ipCidrRouteNumber OBJECT-TYPE
        SYNTAX     Gauge32
        MAX-ACCESS read-only
        STATUS     deprecated
        DESCRIPTION
               "The number of current ipCidrRouteTable entries that are
                not invalid.  This object is deprecated in favor of
                inetCidrRouteNumber and the inetCidrRouteTable."
        ::= { ipForward 3 }

    --  IP CIDR Route Table

    --  The IP CIDR Route Table obsoletes and replaces the ipRoute
    --  Table current in MIB-I and MIB-II and the IP Forwarding Table.
    --  It adds knowledge of the autonomous system of the next hop,
    --  multiple next hops, and policy routing, and Classless
    --  Inter-Domain Routing.

    ipCidrRouteTable OBJECT-TYPE
        SYNTAX     SEQUENCE OF IpCidrRouteEntry
        MAX-ACCESS not-accessible
        STATUS     deprecated
        DESCRIPTION
               "This entity's IP Routing table.  This table has been
                deprecated in favor of the IP version neutral
                inetCidrRouteTable."
        REFERENCE
               "RFC 1213 Section 6.6, The IP Group"
        ::= { ipForward 4 }

    ipCidrRouteEntry OBJECT-TYPE
        SYNTAX     IpCidrRouteEntry
        MAX-ACCESS not-accessible
        STATUS     deprecated

    Wasserman, Haberman  Expires December 2003                      13
        DESCRIPTION
               "A particular route to a particular destination, under a
                particular policy."
        INDEX {
            ipCidrRouteDest,
            ipCidrRouteMask,
            ipCidrRouteTos,
            ipCidrRouteNextHop
            }
        ::= { ipCidrRouteTable 1 }

    IpCidrRouteEntry ::= SEQUENCE {
            ipCidrRouteDest       IpAddress,
            ipCidrRouteMask       IpAddress,
            ipCidrRouteTos        Integer32,
            ipCidrRouteNextHop    IpAddress,
            ipCidrRouteIfIndex    Integer32,
            ipCidrRouteType       INTEGER,
            ipCidrRouteProto      INTEGER,
            ipCidrRouteAge        Integer32,
            ipCidrRouteInfo       OBJECT IDENTIFIER,
            ipCidrRouteNextHopAS  Integer32,
            ipCidrRouteMetric1    Integer32,
            ipCidrRouteMetric2    Integer32,

     Wasserman, Editor    Expires December 2002                      13
     IP Forwarding Table MIB                               November 2002
            ipCidrRouteMetric3    Integer32,
            ipCidrRouteMetric4    Integer32,
            ipCidrRouteMetric5    Integer32,
            ipCidrRouteStatus     RowStatus
        }

    ipCidrRouteDest OBJECT-TYPE
        SYNTAX     IpAddress
        MAX-ACCESS read-only
        STATUS     deprecated
        DESCRIPTION
               "The destination IP address of this route.

                This object may not take a Multicast (Class D) address
                value.

                Any assignment (implicit or otherwise) of an instance
                of this object to a value x must be rejected if the
                bitwise logical-AND of x with the value of the
                corresponding instance of the ipCidrRouteMask object is
                not equal to x."
        ::= { ipCidrRouteEntry 1 }

    ipCidrRouteMask OBJECT-TYPE
        SYNTAX     IpAddress
        MAX-ACCESS read-only
        STATUS     deprecated
        DESCRIPTION
               "Indicate the mask to be logical-ANDed with the
                destination address before being compared to the value

    Wasserman, Haberman  Expires December 2003                      14
                in the ipCidrRouteDest field.  For those systems that
                do not support arbitrary subnet masks, an agent
                constructs the value of the ipCidrRouteMask by
                reference to the IP Address Class.

                Any assignment (implicit or otherwise) of an instance
                of this object to a value x must be rejected if the
                bitwise logical-AND of x with the value of the
                corresponding instance of the ipCidrRouteDest object is
                not equal to ipCidrRouteDest."
        ::= { ipCidrRouteEntry 2 }

    -- The following convention is included for specification
    -- of TOS Field contents.  At this time, the Host Requirements
    -- and the Router Requirements documents disagree on the width
    -- of the TOS field.  This mapping describes the Router
    -- Requirements mapping, and leaves room to widen the TOS field
    -- without impact to fielded systems.

    ipCidrRouteTos OBJECT-TYPE
        SYNTAX     Integer32 (0..2147483647)
        MAX-ACCESS read-only
        STATUS     deprecated
        DESCRIPTION

     Wasserman, Editor    Expires December 2002                      14
     IP Forwarding Table MIB                               November 2002
               "The policy specifier is the IP TOS Field.  The encoding
                of IP TOS is as specified by the following convention.
                Zero indicates the default path if no more specific
                policy applies.

                +-----+-----+-----+-----+-----+-----+-----+-----+
                |                 |                       |     |
                |   PRECEDENCE    |    TYPE OF SERVICE    |  0  |
                |                 |                       |     |
                +-----+-----+-----+-----+-----+-----+-----+-----+

                             IP TOS                IP TOS
                   Field     Policy      Field     Policy
                   Contents    Code      Contents    Code
                   0 0 0 0  ==>   0      0 0 0 1  ==>   2
                   0 0 1 0  ==>   4      0 0 1 1  ==>   6
                   0 1 0 0  ==>   8      0 1 0 1  ==>  10
                   0 1 1 0  ==>  12      0 1 1 1  ==>  14
                   1 0 0 0  ==>  16      1 0 0 1  ==>  18
                   1 0 1 0  ==>  20      1 0 1 1  ==>  22
                   1 1 0 0  ==>  24      1 1 0 1  ==>  26
                   1 1 1 0  ==>  28      1 1 1 1  ==>  30"
        ::= { ipCidrRouteEntry 3 }

    ipCidrRouteNextHop OBJECT-TYPE
        SYNTAX     IpAddress
        MAX-ACCESS read-only
        STATUS     deprecated
        DESCRIPTION
               "On remote routes, the address of the next system en

    Wasserman, Haberman  Expires December 2003                      15
                route; Otherwise, 0.0.0.0."
        ::= { ipCidrRouteEntry 4 }

    ipCidrRouteIfIndex OBJECT-TYPE
        SYNTAX     Integer32
        MAX-ACCESS read-create
        STATUS     deprecated
        DESCRIPTION
               "The ifIndex value which identifies  the local interface
                through which the next hop of this route should be
                reached."
        DEFVAL { 0 }
        ::= { ipCidrRouteEntry 5 }

    ipCidrRouteType OBJECT-TYPE
        SYNTAX     INTEGER {
                    other    (1), -- not specified by this MIB
                    reject   (2), -- route which discards traffic
                    local    (3), -- local interface
                    remote   (4)  -- remote destination
                 }
        MAX-ACCESS read-create
        STATUS     deprecated
        DESCRIPTION

     Wasserman, Editor    Expires December 2002                      15
     IP Forwarding Table MIB                               November 2002
               "The type of route.  Note that local(3) refers to a
                route for which the next hop is the final destination;
                remote(4) refers to a route for which the next hop is
                not the final destination.

                Routes which do not result in traffic forwarding or
                rejection should not be displayed even if the
                implementation keeps them stored internally.

                reject (2) refers to a route which, if matched,
                discards the message as unreachable. This is used in
                some protocols as a means of correctly aggregating
                routes."
        ::= { ipCidrRouteEntry 6 }

    ipCidrRouteProto OBJECT-TYPE
        SYNTAX     INTEGER {
                    other     (1),  -- not specified
                    local     (2),  -- local interface
                    netmgmt   (3),  -- static route
                    icmp      (4),  -- result of ICMP Redirect

                            -- the following are all dynamic
                            -- routing protocols
                    egp        (5),  -- Exterior Gateway Protocol
                    ggp        (6),  -- Gateway-Gateway Protocol
                    hello      (7),  -- FuzzBall HelloSpeak
                    rip        (8),  -- Berkeley RIP or RIP-II
                    isIs       (9),  -- Dual IS-IS
                    esIs       (10), -- ISO 9542

    Wasserman, Haberman  Expires December 2003                      16
                    ciscoIgrp  (11), -- Cisco IGRP
                    bbnSpfIgp  (12), -- BBN SPF IGP
                    ospf       (13), -- Open Shortest Path First
                    bgp        (14), -- Border Gateway Protocol
                    idpr       (15), -- InterDomain Policy Routing
                    ciscoEigrp (16)  -- Cisco EIGRP
                 }
        MAX-ACCESS read-only
        STATUS     deprecated
        DESCRIPTION
               "The routing mechanism via which this route was learned.
                Inclusion of values for gateway routing protocols is
                not intended to imply that hosts should support those
                protocols."
        ::= { ipCidrRouteEntry 7 }

    ipCidrRouteAge OBJECT-TYPE
        SYNTAX     Integer32
        MAX-ACCESS read-only
        STATUS     deprecated
        DESCRIPTION
               "The number of seconds since this route was last updated
                or otherwise determined to be correct.  Note that no
                semantics of `too old' can be implied except through

     Wasserman, Editor    Expires December 2002                      16
     IP Forwarding Table MIB                               November 2002
                knowledge of the routing protocol by which the route
                was learned."
        DEFVAL  { 0 }
        ::= { ipCidrRouteEntry 8 }

    ipCidrRouteInfo OBJECT-TYPE
        SYNTAX     OBJECT IDENTIFIER
        MAX-ACCESS read-create
        STATUS     deprecated
        DESCRIPTION
               "A reference to MIB definitions specific to the
                particular routing protocol which is responsible for
                this route, as determined by the value specified in the
                route's ipCidrRouteProto value.  If this information is
                not present, its value should be set to the OBJECT
                IDENTIFIER { 0 0 }, which is a syntactically valid
                object identifier, and any implementation conforming to
                ASN.1 and the Basic Encoding Rules must be able to
                generate and recognize this value."
        ::= { ipCidrRouteEntry 9 }

    ipCidrRouteNextHopAS OBJECT-TYPE
        SYNTAX     Integer32
        MAX-ACCESS read-create
        STATUS     deprecated
        DESCRIPTION
               "The Autonomous System Number of the Next Hop.  The
                semantics of this object are determined by the routing-
                protocol specified in the route's ipCidrRouteProto
                value. When this object is unknown or not relevant its

    Wasserman, Haberman  Expires December 2003                      17
                value should be set to zero."
        DEFVAL { 0 }
        ::= { ipCidrRouteEntry 10 }

    ipCidrRouteMetric1 OBJECT-TYPE
        SYNTAX     Integer32
        MAX-ACCESS read-create
        STATUS     deprecated
        DESCRIPTION
               "The primary routing metric for this route.  The
                semantics of this metric are determined by the routing-
                protocol specified in the route's ipCidrRouteProto
                value.  If this metric is not used, its value should be
                set to -1."
        DEFVAL { -1 }
        ::= { ipCidrRouteEntry 11 }

    ipCidrRouteMetric2 OBJECT-TYPE
        SYNTAX     Integer32
        MAX-ACCESS read-create
        STATUS     deprecated
        DESCRIPTION
               "An alternate routing metric for this route.  The
                semantics of this metric are determined by the routing-

     Wasserman, Editor    Expires December 2002                      17
     IP Forwarding Table MIB                               November 2002
                protocol specified in the route's ipCidrRouteProto
                value.  If this metric is not used, its value should be
                set to -1."
        DEFVAL { -1 }
        ::= { ipCidrRouteEntry 12 }

    ipCidrRouteMetric3 OBJECT-TYPE
        SYNTAX     Integer32
        MAX-ACCESS read-create
        STATUS     deprecated
        DESCRIPTION
               "An alternate routing metric for this route.  The
                semantics of this metric are determined by the routing-
                protocol specified in the route's ipCidrRouteProto
                value.  If this metric is not used, its value should be
                set to -1."
        DEFVAL { -1 }
        ::= { ipCidrRouteEntry 13 }

    ipCidrRouteMetric4 OBJECT-TYPE
        SYNTAX     Integer32
        MAX-ACCESS read-create
        STATUS     deprecated
        DESCRIPTION
               "An alternate routing metric for this route.  The
                semantics of this metric are determined by the routing-
                protocol specified in the route's ipCidrRouteProto
                value.  If this metric is not used, its value should be
                set to -1."
        DEFVAL { -1 }

    Wasserman, Haberman  Expires December 2003                      18
        ::= { ipCidrRouteEntry 14 }

    ipCidrRouteMetric5 OBJECT-TYPE
        SYNTAX     Integer32
        MAX-ACCESS read-create
        STATUS     deprecated
        DESCRIPTION
               "An alternate routing metric for this route.  The
                semantics of this metric are determined by the routing-
                protocol specified in the route's ipCidrRouteProto
                value.  If this metric is not used, its value should be
                set to -1."
        DEFVAL { -1 }
        ::= { ipCidrRouteEntry 15 }

    ipCidrRouteStatus OBJECT-TYPE
        SYNTAX     RowStatus
        MAX-ACCESS read-create
        STATUS     deprecated
        DESCRIPTION
               "The row status variable, used according to row
                installation and removal conventions."
        ::= { ipCidrRouteEntry 16 }

     Wasserman, Editor    Expires December 2002                      18
     IP Forwarding Table MIB                               November 2002

    -- compliance statements

    ipForwardCompliance MODULE-COMPLIANCE
        STATUS     deprecated
        DESCRIPTION
               "The compliance statement for SNMPv2 entities which
                implement the ipForward MIB."

       MODULE  -- this module
       MANDATORY-GROUPS { ipForwardCidrRouteGroup }

       ::= { ipForwardCompliances 1 }

    -- units of conformance

    ipForwardCidrRouteGroup OBJECT-GROUP
        OBJECTS { ipCidrRouteNumber,
                  ipCidrRouteDest, ipCidrRouteMask, ipCidrRouteTos,
                  ipCidrRouteNextHop, ipCidrRouteIfIndex,
                  ipCidrRouteType, ipCidrRouteProto, ipCidrRouteAge,
                  ipCidrRouteInfo,ipCidrRouteNextHopAS,
                  ipCidrRouteMetric1, ipCidrRouteMetric2,
                  ipCidrRouteMetric3, ipCidrRouteMetric4,
                  ipCidrRouteMetric5, ipCidrRouteStatus
            }
        STATUS     deprecated
        DESCRIPTION
               "The CIDR Route Table."

    Wasserman, Haberman  Expires December 2003                      19
        ::= { ipForwardGroups 3 }

    -- Obsoleted Definitions - Objects

    ipForwardNumber OBJECT-TYPE
        SYNTAX     Gauge32
        MAX-ACCESS read-only
        STATUS     obsolete
        DESCRIPTION
               "The number of current ipForwardTable entries that are
                not invalid."
        ::= { ipForward 1 }

    --  IP Forwarding Table

    --  The IP Forwarding Table obsoletes and replaces the ipRoute
    --  Table current in MIB-I and MIB-II.  It adds knowledge of
    --  the autonomous system of the next hop, multiple next hop
    --  support, and policy routing support.

    ipForwardTable OBJECT-TYPE
        SYNTAX     SEQUENCE OF IpForwardEntry
        MAX-ACCESS not-accessible
        STATUS     obsolete

     Wasserman, Editor    Expires December 2002                      19
     IP Forwarding Table MIB                               November 2002
        DESCRIPTION
               "This entity's IP Routing table."
        REFERENCE
               "RFC 1213 Section 6.6, The IP Group"
        ::= { ipForward 2 }

    ipForwardEntry OBJECT-TYPE
        SYNTAX     IpForwardEntry
        MAX-ACCESS not-accessible
        STATUS     obsolete
        DESCRIPTION
               "A particular route to a particular destination, under a
                particular policy."
        INDEX {
            ipForwardDest,
            ipForwardProto,
            ipForwardPolicy,
            ipForwardNextHop
            }
        ::= { ipForwardTable 1 }

    IpForwardEntry ::= SEQUENCE {
            ipForwardDest       IpAddress,
            ipForwardMask       IpAddress,
            ipForwardPolicy     Integer32,
            ipForwardNextHop    IpAddress,
            ipForwardIfIndex    Integer32,
            ipForwardType       INTEGER,
            ipForwardProto      INTEGER,
            ipForwardAge        Integer32,

    Wasserman, Haberman  Expires December 2003                      20
            ipForwardInfo       OBJECT IDENTIFIER,
            ipForwardNextHopAS  Integer32,
            ipForwardMetric1    Integer32,
            ipForwardMetric2    Integer32,
            ipForwardMetric3    Integer32,
            ipForwardMetric4    Integer32,
            ipForwardMetric5    Integer32
        }

    ipForwardDest OBJECT-TYPE
        SYNTAX     IpAddress
        MAX-ACCESS read-only
        STATUS     obsolete
        DESCRIPTION
               "The destination IP address of this route.  An entry
                with a value of 0.0.0.0 is considered a default route.

                This object may not take a Multicast (Class D) address
                value.

                Any assignment (implicit or otherwise) of an instance
                of this object to a value x must be rejected if the
                bitwise logical-AND of x with the value of the
                corresponding instance of the ipForwardMask object is

     Wasserman, Editor    Expires December 2002                      20
     IP Forwarding Table MIB                               November 2002
                not equal to x."
        ::= { ipForwardEntry 1 }

    ipForwardMask OBJECT-TYPE
        SYNTAX     IpAddress
        MAX-ACCESS read-create
        STATUS     obsolete
        DESCRIPTION
               "Indicate the mask to be logical-ANDed with the
                destination address before being compared to the value
                in the ipForwardDest field.  For those systems that do
                not support arbitrary subnet masks, an agent constructs
                the value of the ipForwardMask by reference to the IP
                Address Class.

                Any assignment (implicit or otherwise) of an instance
                of this object to a value x must be rejected if the
                bitwise logical-AND of x with the value of the
                corresponding instance of the ipForwardDest object is
                not equal to ipForwardDest."
        DEFVAL { '00000000'h '00000000'H }      -- 0.0.0.0
        ::= { ipForwardEntry 2 }

    -- The following convention is included for specification
    -- of TOS Field contents.  At this time, the Host Requirements
    -- and the Router Requirements documents disagree on the width
    -- of the TOS field.  This mapping describes the Router
    -- Requirements mapping, and leaves room to widen the TOS field
    -- without impact to fielded systems.

    Wasserman, Haberman  Expires December 2003                      21
    ipForwardPolicy OBJECT-TYPE
        SYNTAX     Integer32 (0..2147483647)
        MAX-ACCESS read-only
        STATUS     obsolete
        DESCRIPTION
               "The general set of conditions that would cause
                the selection of one multipath route (set of
                next hops for a given destination) is referred
                to as 'policy'.

                Unless the mechanism indicated by ipForwardProto
                specifies otherwise, the policy specifier is
                the IP TOS Field.  The encoding of IP TOS is as
                specified by the following convention.  Zero
                indicates the default path if no more specific
                policy applies.

                +-----+-----+-----+-----+-----+-----+-----+-----+
                |                 |                       |     |
                |   PRECEDENCE    |    TYPE OF SERVICE    |  0  |
                |                 |                       |     |
                +-----+-----+-----+-----+-----+-----+-----+-----+

     Wasserman, Editor    Expires December 2002                      21
     IP Forwarding Table MIB                               November 2002

                             IP TOS                IP TOS
                   Field     Policy      Field     Policy
                   Contents    Code      Contents    Code
                   0 0 0 0  ==>   0      0 0 0 1  ==>   2
                   0 0 1 0  ==>   4      0 0 1 1  ==>   6
                   0 1 0 0  ==>   8      0 1 0 1  ==>  10
                   0 1 1 0  ==>  12      0 1 1 1  ==>  14
                   1 0 0 0  ==>  16      1 0 0 1  ==>  18
                   1 0 1 0  ==>  20      1 0 1 1  ==>  22
                   1 1 0 0  ==>  24      1 1 0 1  ==>  26
                   1 1 1 0  ==>  28      1 1 1 1  ==>  30

                Protocols defining 'policy' otherwise must either
                define a set of values which are valid for
                this object or must implement an integer-instanced
                policy table for which this object's
                value acts as an index."
        ::= { ipForwardEntry 3 }

    ipForwardNextHop OBJECT-TYPE
        SYNTAX     IpAddress
        MAX-ACCESS read-only
        STATUS     obsolete
        DESCRIPTION
               "On remote routes, the address of the next system en
                route; Otherwise, 0.0.0.0."
        ::= { ipForwardEntry 4 }

    ipForwardIfIndex OBJECT-TYPE

    Wasserman, Haberman  Expires December 2003                      22
        SYNTAX     Integer32
        MAX-ACCESS read-create
        STATUS     obsolete
        DESCRIPTION
               "The ifIndex value which identifies the local interface
                through which the next hop of this route should be
                reached."
        DEFVAL { 0 }
        ::= { ipForwardEntry 5 }

    ipForwardType OBJECT-TYPE
        SYNTAX     INTEGER {
                    other    (1), -- not specified by this MIB
                    invalid  (2), -- logically deleted
                    local    (3), -- local interface
                    remote   (4)  -- remote destination
                 }
        MAX-ACCESS read-create
        STATUS     obsolete
        DESCRIPTION
               "The type of route.  Note that local(3) refers to a
                route for which the next hop is the final destination;
                remote(4) refers to a route for which the next hop is
                not the final destination.

     Wasserman, Editor    Expires December 2002                      22
     IP Forwarding Table MIB                               November 2002

                Setting this object to the value invalid(2) has the
                effect of invalidating the corresponding entry in the
                ipForwardTable object.  That is, it effectively
                disassociates the destination identified with said
                entry from the route identified with said entry.  It is
                an implementation-specific matter as to whether the
                agent removes an invalidated entry from the table.
                Accordingly, management stations must be prepared to
                receive tabular information from agents that
                corresponds to entries not currently in use.  Proper
                interpretation of such entries requires examination of
                the relevant ipForwardType object."
        DEFVAL { invalid }
        ::= { ipForwardEntry 6 }

    ipForwardProto OBJECT-TYPE
        SYNTAX     INTEGER {
                    other     (1),  -- not specified
                    local     (2),  -- local interface
                    netmgmt   (3),  -- static route
                    icmp      (4),  -- result of ICMP Redirect

                            -- the following are all dynamic
                            -- routing protocols
                    egp       (5),  -- Exterior Gateway Protocol
                    ggp       (6),  -- Gateway-Gateway Protocol
                    hello     (7),  -- FuzzBall HelloSpeak
                    rip       (8),  -- Berkeley RIP or RIP-II
                    is-is     (9),  -- Dual IS-IS

    Wasserman, Haberman  Expires December 2003                      23
                    es-is     (10), -- ISO 9542
                    ciscoIgrp (11), -- Cisco IGRP
                    bbnSpfIgp (12), -- BBN SPF IGP
                    ospf      (13), -- Open Shortest Path First
                    bgp       (14), -- Border Gateway Protocol
                    idpr      (15)  -- InterDomain Policy Routing
                 }
        MAX-ACCESS read-only
        STATUS     obsolete
        DESCRIPTION
               "The routing mechanism via which this route was learned.
                Inclusion of values for gateway routing protocols is
                not intended to imply that hosts should support those
                protocols."
        ::= { ipForwardEntry 7 }

    ipForwardAge OBJECT-TYPE
        SYNTAX     Integer32
        MAX-ACCESS read-only
        STATUS     obsolete
        DESCRIPTION
               "The number of seconds since this route was last updated
                or otherwise determined to be correct.  Note that no
                semantics of `too old' can be implied except through

     Wasserman, Editor    Expires December 2002                      23
     IP Forwarding Table MIB                               November 2002
                knowledge of the routing protocol by which the route
                was learned."
        DEFVAL  { 0 }
        ::= { ipForwardEntry 8 }

    ipForwardInfo OBJECT-TYPE
        SYNTAX     OBJECT IDENTIFIER
        MAX-ACCESS read-create
        STATUS     obsolete
        DESCRIPTION
               "A reference to MIB definitions specific to the
                particular routing protocol which is responsible for
                this route, as determined by the value specified in the
                route's ipForwardProto value.  If this information is
                not present, its value should be set to the OBJECT
                IDENTIFIER { 0 0 }, which is a syntactically valid
                object identifier, and any implementation conforming to
                ASN.1 and the Basic Encoding Rules must be able to
                generate and recognize this value."
        ::= { ipForwardEntry 9 }

    ipForwardNextHopAS OBJECT-TYPE
        SYNTAX     Integer32
        MAX-ACCESS read-create
        STATUS     obsolete
        DESCRIPTION
               "The Autonomous System Number of the Next Hop.  When
                this is unknown or not relevant to the protocol
                indicated by ipForwardProto, zero."
        DEFVAL { 0 }

    Wasserman, Haberman  Expires December 2003                      24
        ::= { ipForwardEntry 10 }

    ipForwardMetric1 OBJECT-TYPE
        SYNTAX     Integer32
        MAX-ACCESS read-create
        STATUS     obsolete
        DESCRIPTION
               "The primary routing metric for this route.  The
                semantics of this metric are determined by the routing-
                protocol specified in the route's ipForwardProto value.
                If this metric is not used, its value should be set to
                -1."
        DEFVAL { -1 }
        ::= { ipForwardEntry 11 }

    ipForwardMetric2 OBJECT-TYPE
        SYNTAX     Integer32
        MAX-ACCESS read-create
        STATUS     obsolete
        DESCRIPTION
               "An alternate routing metric for this route.  The
                semantics of this metric are determined by the routing-
                protocol specified in the route's ipForwardProto value.
                If this metric is not used, its value should be set to

     Wasserman, Editor    Expires December 2002                      24
     IP Forwarding Table MIB                               November 2002
                -1."
        DEFVAL { -1 }
        ::= { ipForwardEntry 12 }

    ipForwardMetric3 OBJECT-TYPE
        SYNTAX     Integer32
        MAX-ACCESS read-create
        STATUS     obsolete
        DESCRIPTION
               "An alternate routing metric for this route.  The
                semantics of this metric are determined by the routing-
                protocol specified in the route's ipForwardProto value.
                If this metric is not used, its value should be set to
                -1."
        DEFVAL { -1 }
        ::= { ipForwardEntry 13 }

    ipForwardMetric4 OBJECT-TYPE
        SYNTAX     Integer32
        MAX-ACCESS read-create
        STATUS     obsolete
        DESCRIPTION
               "An alternate routing metric for this route.  The
                semantics of this metric are determined by the routing-
                protocol specified in the route's ipForwardProto value.
                If this metric is not used, its value should be set to
                -1."
        DEFVAL { -1 }
        ::= { ipForwardEntry 14 }

    Wasserman, Haberman  Expires December 2003                      25
    ipForwardMetric5 OBJECT-TYPE
        SYNTAX     Integer32
        MAX-ACCESS read-create
        STATUS     obsolete
        DESCRIPTION
               "An alternate routing metric for this route.  The
                semantics of this metric are determined by the routing-
                protocol specified in the route's ipForwardProto value.
                If this metric is not used, its value should be set to
                -1."
        DEFVAL { -1 }
        ::= { ipForwardEntry 15 }

    -- Obsoleted Definitions - Groups
    -- compliance statements

    ipForwardOldCompliance MODULE-COMPLIANCE
        STATUS     obsolete
        DESCRIPTION
               "The compliance statement for SNMP entities which
                implement the ipForward MIB."

       MODULE  -- this module
       MANDATORY-GROUPS { ipForwardMultiPathGroup }

     Wasserman, Editor    Expires December 2002                      25
     IP Forwarding Table MIB                               November 2002

       ::= { ipForwardCompliances 2 }

    ipForwardMultiPathGroup OBJECT-GROUP
        OBJECTS { ipForwardNumber,
                  ipForwardDest, ipForwardMask, ipForwardPolicy,
                  ipForwardNextHop, ipForwardIfIndex, ipForwardType,
                  ipForwardProto, ipForwardAge, ipForwardInfo,
                  ipForwardNextHopAS,
                  ipForwardMetric1, ipForwardMetric2, ipForwardMetric3,
                  ipForwardMetric4, ipForwardMetric5
            }
        STATUS     obsolete
        DESCRIPTION
               "IP Multipath Route Table."
        ::= { ipForwardGroups 2 }

    END

    Wasserman, Editor Haberman  Expires December 2002 2003                      26
     IP Forwarding Table MIB                               November 2002

  10
 6  Security Considerations

    There are a number of management objects defined in this MIB that
     have module
    with a MAX-ACCESS clause of read-write and/or read-create.  Such
    objects may be considered sensitive or vulnerable in some network
    environments.  The support for SET operations in a non-secure
    environment without proper protection can have a negative effect on
    network operations.

     There  These are a number the tables and objects and their
    sensitivity/vulnerability:

       1. The inetCidrRouteTable contains routing and forwarding
         information that is critical to the operation of managed the network
         node (especially routers).  Allowing unauthenticated write
         access to this table can compromise the validity of the
         forwarding information.

    Some of the readable objects in this MIB that module (i.e., objects with
    a MAX-ACCESS other than not-accessible) may contain
     sensitive information. These are:

     The routing table can be used to discover information about the considered sensitive
    or vulnerable in some network topology within a domain. environments.  It is thus important
    to control even GET and/or NOTIFY access to these objects and
    possibly to even encrypt the values of these object objects when sending
    them over the network via SNMP.  Not all versions  These are the tables and objects
    and their sensitivity/vulnerability:

       1. The inetCidrRouteTable contains routing and forwarding
         information that can be used to compromise a network.
         Specifically, this table can be used to construct a map of SNMP
     provide features the
         network in preparation for such a secure environment.

     SNMPv1 by itself is not denial-of-service attack on the
         network infrastructure.
       2. The inetCidrRouteProto object identifies the routing protocols
         in use within a secure environment. network.  This information can be used to
         determine how a denial-of-service attack should be launched.

    SNMP versions prior to SNMPv3 did not include adequate security.
    Even if the network itself is secure (for example by using IPSec),
    even then, there is no control as to whom who on the secure network is
    allowed to access and GET/SET (read/change/create/delete) the
    objects in this MIB. MIB module.

    It is recommended RECOMMENDED that the implementers consider the security features
    as provided by the SNMPv3 framework.  Specifically, framework (see [RFC3410], section 8),
    including full support for the
     use of the User-based Security Model RFC 2574 [13] SNMPv3 cryptographic mechanisms (for
    authentication and the View-
     based Access Control Model RFC 2575 [16] privacy).

    Further, deployment of SNMP versions prior to SNMPv3 is recommended. NOT
    RECOMMENDED.  Instead, it is RECOMMENDED to deploy SNMPv3 and to
    enable cryptographic security.  It is then a customer/user customer/operator
    responsibility to ensure that the SNMP entity giving access to an
    instance of this MIB, MIB module is properly configured to give access
    to the objects only to those principals (users) that have
    legitimate rights to indeed GET or SET (change/create/delete) them.

    Wasserman, Editor Haberman  Expires December 2002 2003                      27
     IP Forwarding Table MIB                               November 2002

  11
 7  Normative References

    [RFC2026] S. Bradner, "The Internet Standards Process -- Revision
              3", RFC 2026, BCP9, October 1996

    [RFC2119] S. Bradner, "Key words for use in RFCs to Indicate
              Requirement Levels", RFC 2119, BCP14, March 1999.

     [1]
          F. Baker, "IP Forwarding Table MIB", RFC 2096, January 1997.

     [2]
          Harrington, D., Presuhn, R., and B. Wijnen, "An Architecture
          for Describing SNMP Management Frameworks", RFC 2571, April
          1999.

     [3]
          Rose, M., and K. McCloghrie, "Structure and Identification of
          Management Information for TCP/IP-based Internets", STD 16,
          RFC 1155, May 1990.

     [4]
          Rose, M., and K. McCloghrie, "Concise MIB Definitions", STD
          16, RFC 1212, March 1991.

     [5]
          Rose, M., "A Convention for Defining Traps for use with the
          SNMP", RFC 1215, March 1991.

     [6]

    [RFC2578] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J.,
              Rose, M., M. and S. Waldbusser, "Structure of Management
              Information Version 2 (SMIv2)", STD 58, RFC 2578, April
              1999.

     [7]

    [RFC2579] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J.,
              Rose, M., M. and S. Waldbusser, "Textual Conventions for
              SMIv2", STD 58, RFC 2579, April 1999.

     [8]

    [RFC2580] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J.,
              Rose, M., M. and S. Waldbusser, "Conformance Statements for
              SMIv2", STD 58, RFC 2580, April 1999.

     [9]
          Case, J., Fedor, M., Schoffstall, M., and J. Davin, "Simple
          Network Management Protocol", STD 15, RFC 1157, May 1990.

     [10]
          Case, J., McCloghrie, K., Rose, M., and S. Waldbusser,

     Wasserman, Editor    Expires December 2002                      28
     IP

    [RFC2096] Baker, F., "IP Forwarding Table MIB                               November 2002

          "Introduction to Community-based SNMPv2", RFC 1901, January
          1996.

     [11]
          Case, J., McCloghrie, K., Rose, M., and S. Waldbusser,
          "Transport Mappings for Version 2 of the Simple Network
          Management Protocol (SNMPv2)", MIB", RFC 1906, 2096, January 1996.

     [12]
          Case, J., Harrington D., Presuhn R., and B. Wijnen, "Message
          Processing and Dispatching for the Simple Network Management
          Protocol (SNMP)", RFC 2572, April 1999.

     [13]
          Blumenthal, U., and B. Wijnen, "User-based Security Model
          (USM) for      version 3 of the Simple Network Management
          Protocol (SNMPv3)", RFC 2574, April 1999.

     [14]
          Case, J., McCloghrie, K., Rose,
              1997.

    [RFC3291] Daniele, M., and S. Waldbusser,
          "Protocol Operations for Version 2 of the Simple Network
          Management Protocol (SNMPv2)", RFC 1905, January 1996.

     [15]
          Levi, D., Meyer, P., and B. Stewart, "SNMPv3 Applications",
          RFC 2573, April 1999.

     [16]
          Wijnen, Haberman, B., Presuhn, R., and K. McCloghrie, "View-based Access
          Control Model (VACM) Routhier, S., Schoenwaelder,
              J., "Textual Conventions for the Simple Internet Network Management
          Protocol (SNMP)", Addresses",
              RFC 2575, April 1999.

     [17] 3291, May 2002.

 8  Informative References

    [RFC3410] Case, J., Mundy, R., Partain, D., D. and B. Stewart,
              "Introduction to Version 3 of the Internet-standard Network
          Management Framework",RFC 2570, April 1999.

     [18]
          Nichols, K., Blake, S., Baker, F., Black, D., "Definition of
          the Differentiated Services Field (DS Field) in the IPv4 and
          IPv6 Headers", RFC 2474, December 1998.

     [19]
          Daniele, M., Haberman, B., Routhier, S., Schoenwaelder, J.,
          "Textual Conventions Applicability Statements for Internet Network Addresses", Internet-
              Standard Management Framework", RFC
          3291, May2002 3410, December 2002.

    Wasserman, Editor Haberman  Expires December 2002                      29
     IP Forwarding Table MIB                               November 2002

  12 2003                      28
 9  Authors and Acknowledgements

    This document was based on RFC 2096 [1]. [RFC2096].

    The following people provided text for this version of the
    document, or were authors of previous versions:

    Fred Baker, Cisco
    Bill Fenner, AT&T Research
    Brian Haberman
    Juergen Schoenwalder, TU Braunschweig
    Dave Thaler, Microsoft
    Margaret Wasserman, Wind River

    Dario Accornero, Mark Adam, Qing Li and Shawn Routhier reviewed the
    document and provided helpful feedback.

  13

 10 Editor's Contact Information

    Comments or questions regarding this document should be sent to:

     Margaret Wasserman
     Wind River
     10 Tara Blvd.,

    Brian Haberman
    Caspian Networks
    1 Park Drive, Suite 330 300            Phone:  (603) 897-2067
     Nashua, NH  03062  USA  +1 919 949-4828
    Research Triangle Park, NC 27709   Email:  mrw@windriver.com

  14  brian@innovationslab.net

 11 Full Copyright Statement

    Copyright (C) The Internet Society (2002). (2003). All Rights Reserved.

    This document and translations of it may be copied and furnished to
    others, and derivative works that comment on or otherwise explain
    it or assist in its implementation may be prepared, copied,
    published and distributed, in whole or in part, without restriction
    of any kind, provided that the above copyright notice and this
    paragraph are included on all such copies and derivative works.
    However, this document itself may not be modified in any way, such
    as by removing the copyright notice or references to the Internet
    Society or other Internet organizations, except as needed for the
    purpose of developing Internet standards in which case the
    procedures for copyrights defined in the Internet Standards process
    must be followed, or as required to translate it into languages
    other than English.

    The limited permissions granted above are perpetual and will not be
    revoked by the Internet Society or its successors or assigns.

    This document and the information contained herein is provided on
    an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET
    ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
    INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
    INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
    WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

    Wasserman, Editor Haberman  Expires December 2002 2003                      29
    Wasserman, Haberman  Expires December 2003                      30