
IANA-RTPROTO-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, mib-2           FROM SNMPv2-SMI
    TEXTUAL-CONVENTION               FROM SNMPv2-TC;

ianaRtProtoMIB  MODULE-IDENTITY
    LAST-UPDATED "200009260000Z" -- September 26, 2000
    ORGANIZATION "IANA"
    CONTACT-INFO
            " Internet Assigned Numbers Authority
              Internet Corporation for Assigned Names and Numbers
              4676 Admiralty Way, Suite 330
              Marina del Rey, CA 90292-6601

              Phone: +1 310 823 9358
              EMail: iana@iana.org"
    DESCRIPTION
            "This MIB module defines the IANAipRouteProtocol and
            IANAipMRouteProtocol textual conventions for use in MIBs
            which need to identify unicast or multicast routing
            mechanisms.

            Any additions or changes to the contents of this MIB module
            require either publication of an RFC, or Designated Expert
            Review as defined in RFC 2434, Guidelines for Writing an
            IANA Considerations Section in RFCs.  The Designated Expert 
            will be selected by the IESG Area Director(s) of the Routing
            Area."

    REVISION     "200009260000Z"  -- September 26, 2000 
    DESCRIPTION  "Original version, published in coordination
                 with RFC 2932."

    ::= { mib-2 84 }

IANAipRouteProtocol ::= TEXTUAL-CONVENTION
   STATUS      current

   DESCRIPTION
            "A mechanism for learning routes.  Inclusion of values for
            routing protocols is not intended to imply that those
            protocols need be supported."
   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
                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
                dvmrp      (17)  -- DVMRP
               }

IANAipMRouteProtocol ::= TEXTUAL-CONVENTION
   STATUS      current
   DESCRIPTION
            "The multicast routing protocol.  Inclusion of values for
            multicast routing protocols is not intended to imply that
            those protocols need be supported."
   SYNTAX      INTEGER {
                   other(1),          -- none of the following
                   local(2),          -- e.g., manually configured
                   netmgmt(3),        -- set via net.mgmt protocol
                   dvmrp(4),
                   mospf(5),
                   pimSparseDense(6), -- PIMv1, both DM and SM
                   cbt(7),
                   pimSparseMode(8),  -- PIM-SM
                   pimDenseMode(9),   -- PIM-DM
                   igmpOnly(10),
                   bgmp(11),
                   msdp(12)
               }

END


