-- *****************************************************************
-- CISCO-OTV-MIB.my
--   
-- August 2012, Dipesh Gorashia
--   
-- Copyright (c) 2012-2013 by Cisco Systems, Inc.
-- All rights reserved.
-- *****************************************************************

CISCO-OTV-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY,
    OBJECT-TYPE,
    Unsigned32
        FROM SNMPv2-SMI
    MODULE-COMPLIANCE,
    OBJECT-GROUP
        FROM SNMPv2-CONF
    TruthValue,
    RowStatus,
    MacAddress,
    StorageType
        FROM SNMPv2-TC
    SnmpAdminString
        FROM SNMP-FRAMEWORK-MIB
    InetAddressType,
    InetAddress,
    InetAddressPrefixLength
        FROM INET-ADDRESS-MIB
    InterfaceIndexOrZero
        FROM IF-MIB
    VlanIndex
        FROM Q-BRIDGE-MIB
    Cisco2KVlanList
        FROM CISCO-TC
    ciscoMgmt
        FROM CISCO-SMI;


ciscoOtvMIB MODULE-IDENTITY
    LAST-UPDATED    "201308050000Z"
    ORGANIZATION    "Cisco Systems, Inc."
    CONTACT-INFO
            "Cisco Systems
            Customer Service

            Postal: 170 W Tasman Drive
            San Jose, CA  95134
            USA

            Tel: +1 800 553-NETS

            E-mail: cs-snmp@cisco.com"
    DESCRIPTION
        "This MIB module is for configuration & statistic query
        of Overlay Transport Virtualization (OTV) functionality on Cisco
        routers and switches.

        Overlay Transport Virtualization is a Cisco's innovative LAN
        extension technology.  It is an IP-based functionality that
        provides Layer 2 extension capabilities over any transport
        infrastructure: Layer 2 based, Layer 3 based, IP switched,
        label switched, and so on.  OTV provides an overlay that enables
        Layer 2 connectivity between separate Layer 2 domains while
        keeping these domains independent and preserving the fault-
        isolation, resiliency, and load-balancing benefits of an IP-
        based interconnection.

        OTV introduces the concept of MAC routing, which means a
        control plane protocol is used to exchange MAC reachability
        information between network devices providing LAN extension
        functionality. This is a significant shift from Layer 2
        switching that traditionally leverages data plane
        learning, and it is justified by the need to limit flooding of
        Layer 2 traffic across the transport infrastructure.

        OTV also introduces the concept of dynamic encapsulation for
        Layer 2 flows that need to be sent to remote locations.
        Each Ethernet frame is individually encapsulated into an IP
        packet and delivered across the transport network.

        Finally, OTV provides a native built-in multi-homing capability
        with automatic detection, critical to increasing high
        availability of the overall solution. Two or more devices can be
        leveraged in each data center to provide LAN extension
        functionality without running the risk of creating an end-to-end
        loop that would jeopardize the overall stability of the design.

        The followings detail the OTV specific terminology:

        Edge Device

        The edge device performs OTV functions: it receives the Layer
        2 traffic for all VLANs that need to be extended to remote
        locations and dynamically encapsulates the Ethernet frames
        into IP packets that are then sent across the transport
        infrastructure.

        Internal Interfaces

        To perform OTV functionality, the edge device must receive the
        Layer 2 traffic for all VLANs that need to be extended to
        remote locations. The Layer 2 interfaces, where the Layer 2
        traffic is usually received, are named internal interfaces.

        Join Interface

        The Join interface is used to source the OTV encapsulated
        traffic and send it to the Layer 3 domain of the data center
        network.

        Overlay Interface

        The Overlay interface is a logical multi-access and multicast-
        capable interface that must be explicitly defined by the user
        and where the entire OTV configuration is applied.

        The following terms are used throughout this MIB:

        AED     Authoritative Edge Device

        ARP     Address Resolution Protocol

        DNS     Domain Name System

        ISIS    Intermediate System to Intermediate System Routing
                Protocol 

        LSPDB   Link State PDU Database

        OTV     Overlay Transport Virtualization

        VLAN    Virtual Local Area Network

        VPN     Virtual Private Network"
    REVISION        "201308050000Z"
    DESCRIPTION
        "Initial version of this MIB module."
    ::= { ciscoMgmt 810 }


ciscoOtvMIBNotifs  OBJECT IDENTIFIER
    ::= { ciscoOtvMIB 0 }

ciscoOtvMIBObjects  OBJECT IDENTIFIER
    ::= { ciscoOtvMIB 1 }

ciscoOtvMIBConform  OBJECT IDENTIFIER
    ::= { ciscoOtvMIB 2 }

cotvGlobalObjects  OBJECT IDENTIFIER
    ::= { ciscoOtvMIBObjects 1 }

cotvOverlayObjects  OBJECT IDENTIFIER
    ::= { ciscoOtvMIBObjects 2 }

cotvAdjacencyObjects  OBJECT IDENTIFIER
    ::= { ciscoOtvMIBObjects 3 }

cotvArpNdObjects  OBJECT IDENTIFIER
    ::= { ciscoOtvMIBObjects 4 }

cotvRouteObjects  OBJECT IDENTIFIER
    ::= { ciscoOtvMIBObjects 5 }

cotvSiteObjects  OBJECT IDENTIFIER
    ::= { cotvGlobalObjects 1 }

cotvGlobalStatsObjects  OBJECT IDENTIFIER
    ::= { cotvGlobalObjects 2 }


cotvSiteIdAdmin OBJECT-TYPE
    SYNTAX          OCTET STRING (SIZE  (4 | 6))
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "This object specifies OTV site identifier for this
        device.

        The OTV site identifier could be either a
        four octets value or a six octets valid MAC address.

        If the OTV site identifier is not configured, this object
        will have four zero octets." 
    ::= { cotvSiteObjects 1 }

cotvSiteIdOper OBJECT-TYPE
    SYNTAX          OCTET STRING (SIZE  (6))
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates OTV site identifier in use
        for this device.

        There is no operational OTV site identifier if the value of
        this object contains all zeros." 
    ::= { cotvSiteObjects 2 }

cotvSiteVlan OBJECT-TYPE
    SYNTAX          VlanIndex
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "This object specifies the OTV site VLAN for this device." 
    ::= { cotvSiteObjects 3 }

cotvSiteVlanState OBJECT-TYPE
    SYNTAX          INTEGER  {
                        up(1),
                        down(2)
                    }
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the state of OTV site VLAN.

        'up'    - OTV site VLAN is up

        'down'  - OTV site VLAN is down" 
    ::= { cotvSiteObjects 4 }

cotvOverlayTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CotvOverlayEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "A list of Overlay interfaces configured on this device."
    ::= { cotvOverlayObjects 1 }

cotvOverlayEntry OBJECT-TYPE
    SYNTAX          CotvOverlayEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry containing management information for a
        particular Overlay interface."
    INDEX           { cotvOverlayNumber } 
    ::= { cotvOverlayTable 1 }

CotvOverlayEntry ::= SEQUENCE {
        cotvOverlayNumber                     Unsigned32,
        cotvOverlayVpnName                    SnmpAdminString,
        cotvOverlayVpnState                   INTEGER,
        cotvOverlayVpnDownReason              INTEGER,
        cotvOverlayVlansExtendedFirst2k       Cisco2KVlanList,
        cotvOverlayVlansExtendedSecond2k      Cisco2KVlanList,
        cotvOverlayControlGroupAddrType       InetAddressType,
        cotvOverlayControlGroupAddr           InetAddress,
        cotvOverlayBroadcastGroupAddrType     InetAddressType,
        cotvOverlayBroadcastGroupAddr         InetAddress,
        cotvOverlayJoinInterface              InterfaceIndexOrZero,
        cotvOverlaySourceInterface            InterfaceIndexOrZero,
        cotvOverlayAedCapable                 TruthValue,
        cotvOverlayAedIncapableReason         INTEGER,
        cotvOverlayAdjServerTransportType     INTEGER,
        cotvOverlayAdjServerEnable            TruthValue,
        cotvOverlayPrimaryAdjServerAddrType   InetAddressType,
        cotvOverlayPrimaryAdjServerAddr       InetAddress,
        cotvOverlaySecondaryAdjServerAddrType InetAddressType,
        cotvOverlaySecondaryAdjServerAddr     InetAddress,
        cotvOverlaySuppressArpND              TruthValue,
        cotvOverlayStorageType                StorageType,
        cotvOverlayRowStatus                  RowStatus
}

cotvOverlayNumber OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "A unique number to identify an Overlay interface." 
    ::= { cotvOverlayEntry 1 }

cotvOverlayVpnName OBJECT-TYPE
    SYNTAX          SnmpAdminString
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the name of the Virtual Private Network
        associated with this Overlay interface." 
    ::= { cotvOverlayEntry 2 }

cotvOverlayVpnState OBJECT-TYPE
    SYNTAX          INTEGER  {
                        other(0),
                        down(1),
                        up(2)
                    }
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the state of Virtual Private Network
        which is associated with this Overlay interface.

         'other'      - Any other state not covered by below
                        enumerations.

         'up'         - The Overlay Virtual Private Network is up

         'down'       - The Overlay Virtual Private Network is down" 
    ::= { cotvOverlayEntry 3 }

cotvOverlayVpnDownReason OBJECT-TYPE
    SYNTAX          INTEGER  {
                        other(0),
                        configChange(1),
                        missingControlGroup(2),
                        missingDataGroupRange(3),
                        missingJoinOrSourceInterface(4),
                        missingVpnName(5),
                        missingJoinInterfaceAddr(6),
                        joinInterfaceDown(7),
                        adminDown(8),
                        deleteHoldDown(9),
                        reinit(10),
                        missingSiteId(11),
                        siteIdMismatch(12),
                        missingSourceInterfaceAddr(13),
                        sourceInterfaceDown(14),
                        changingSiteId(15),
                        changingControlGroup(16),
                        missingDeviceId(17),
                        changingDeviceId(18),
                        cleanupInProgress(19)
                    }
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the reason why this Overlay Virtual
        Private Network is down.

        'other'                 - Any other reason not covered by below
                                  enumerations

        'configChange'          - Configuration changed

        'missingControlGroup'   - Control Group information
                                  is unavailable

        'missingDataGroupRange' - Data Group range information
                                  is unavailable

        'misssingJoinOrSourceInterface' - Join or Source interface
                                          information is unavailable

        'missingVpnName'        - VPN name is unavailable

        'missingJoinInterfaceAddr'   - IP address is missing for
                                       Join Interface

        'joinInterfaceDown'     - Join Interface is down

        'adminDown'             - Overlay is administratively shutdown

        'deleteHoldDown'        - Overlay is in delete hold down phase

        'reinit'                - VPN is reinitializing

        'missingSiteId'         - Site ID information is unavailable

        'siteIdMismatch'        - Site ID mismatch has occurred

        'missingSourceInterfaceAddr' - IP address is missing for
                                       Source Interface

        'sourceInterfaceDown'   - Source interface is down

        'changingSiteId'        - Changing site identifier

        'changingControlGroup'  - Changing control group

        'missingDeviceId'       - Device ID information is unavailable

        'changingDeviceId'      - Changing device ID

        'cleanupInProgress'     - Cleanup in progress" 
    ::= { cotvOverlayEntry 4 }

cotvOverlayVlansExtendedFirst2k OBJECT-TYPE
    SYNTAX          Cisco2KVlanList
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the list of VLANs extended
        on this Overlay interface.

        It is a string of octets containing one bit per VLAN
        with VlanIndex values of 0 through 2047.

        If the bit corresponding to a VLAN is set to 1,
        it indicates that VLAN is being extended on this
        Overlay interface.

        If the bit corresponding to a VLAN is set to 0,
        it indicates that VLAN is not being extended on
        this Overlay interface."
    DEFVAL          { "" } 
    ::= { cotvOverlayEntry 5 }

cotvOverlayVlansExtendedSecond2k OBJECT-TYPE
    SYNTAX          Cisco2KVlanList
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the list of VLANs extended
        on this Overlay interface.

        It is a string of octets containing one bit per VLAN
        with VlanIndex values of 2048 through 4095.

        If the bit corresponding to a VLAN is set to 1,
        it indicates that VLAN is being extended on this
        Overlay interface.

        If the bit corresponding to a VLAN is set to 0,
        it indicates that VLAN is not being extended on
        this Overlay interface."
    DEFVAL          { "" } 
    ::= { cotvOverlayEntry 6 }

cotvOverlayControlGroupAddrType OBJECT-TYPE
    SYNTAX          InetAddressType
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the type of Internet address of
        Control Group."
    DEFVAL          { unknown } 
    ::= { cotvOverlayEntry 7 }

cotvOverlayControlGroupAddr OBJECT-TYPE
    SYNTAX          InetAddress
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the Internet address of Control Group.

        The type of this address is determined by
        cotvOverlayControlGroupAddrType."
    DEFVAL          { "" } 
    ::= { cotvOverlayEntry 8 }

cotvOverlayBroadcastGroupAddrType OBJECT-TYPE
    SYNTAX          InetAddressType
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the type of Internet address to be
        used as Broadcast Group Address."
    DEFVAL          { unknown } 
    ::= { cotvOverlayEntry 9 }

cotvOverlayBroadcastGroupAddr OBJECT-TYPE
    SYNTAX          InetAddress
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the Internet address to be used as
        Broadcast Group Address.

        The type of this address is determined by
        cotvOverlayBroadcastGroupAddrType."
    DEFVAL          { "" } 
    ::= { cotvOverlayEntry 10 }

cotvOverlayJoinInterface OBJECT-TYPE
    SYNTAX          InterfaceIndexOrZero
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the OTV Join Interface for this
        Overlay interface."
    DEFVAL          { 0 } 
    ::= { cotvOverlayEntry 11 }

cotvOverlaySourceInterface OBJECT-TYPE
    SYNTAX          InterfaceIndexOrZero
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the Source Interface for
        this Overlay interface."
    DEFVAL          { 0 } 
    ::= { cotvOverlayEntry 12 }

cotvOverlayAedCapable OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates AED (Authoritative Edge Device)
        capability on this Overlay interface.

        A value of 'true' indicates that the edge device has
        capability to act as an AED on this Overlay interface.

        A value of 'false' indicates that the edge device
        does not have the capability to act as an AED on this
        Overlay interface." 
    ::= { cotvOverlayEntry 13 }

cotvOverlayAedIncapableReason OBJECT-TYPE
    SYNTAX          INTEGER  {
                        other(0),
                        overlayDown(1),
                        siteIdNotConfigured(2),
                        siteIdMismatch(3),
                        versionMismatch(4),
                        siteVlanDown(5),
                        noExtendedVlanUp(6),
                        noOverlayAdjacencyUp(7),
                        lspdbSyncIncomplete(8),
                        overlayDownInProgress(9),
                        isisControlGroupSyncPending(10)
                    }
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the reason why the overlay is
        AED-incapable.

        'other' - Any other reason not covered by below enumerations

        'overlayDown' - Overlay is Down

        'siteIdNotConfigured' - Site ID is not configured

        'siteIdMismatch' - Site ID mismatch

        'versionMismatch' - Version mismatch

        'siteVlanDown' - Site VLAN is Down

        'noExtendedVlanUp' - No extended VLAN is operationally up

        'noOverlayAdjacencyUp' - No Overlay Adjacency is up

        'lspdbSyncIncomplete'  - LSPDB sync incomplete

        'overlayDownInProgress' - Overlay state down event in progress

        'isisControlGroupSyncPending'  - ISIS control group sync
                                         pending" 
    ::= { cotvOverlayEntry 14 }

cotvOverlayAdjServerTransportType OBJECT-TYPE
    SYNTAX          INTEGER  {
                        multicastAndUnicast(1),
                        unicastOnly(2)
                    }
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "The type of transport OTV control plane can use to
        exchange Adjacency Server information.

        'multicastAndUnicast' - OTV control plane can use both multicast
                                and unicast to exchange Adjacency Server
                                information

        'unicastOnly'  - OTV control plane can use only unicast
                         to exchange Adjacency Server information.

         Value of this object can be set to 'unicastOnly' only if
         the value of cotvOverlayPrimaryAdjServerAddrType is 'unknown'."
    DEFVAL          { multicastAndUnicast } 
    ::= { cotvOverlayEntry 15 }

cotvOverlayAdjServerEnable OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies Adjacency Server functionality
        for this Overlay interface.

        Setting the object to 'true' enables Adjacency Server
        functionality.

        Setting the object to 'false' disables Adjacency Server
        functionality."
    DEFVAL          { false } 
    ::= { cotvOverlayEntry 16 }

cotvOverlayPrimaryAdjServerAddrType OBJECT-TYPE
    SYNTAX          InetAddressType
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the type of Internet address of the
        Primary Adjacency Server for this Overlay interface."
    DEFVAL          { unknown } 
    ::= { cotvOverlayEntry 17 }

cotvOverlayPrimaryAdjServerAddr OBJECT-TYPE
    SYNTAX          InetAddress
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the Internet address of the Primary
        Adjacency Server for this Overlay interface.

        The type of this address is determined by the value of
        cotvOverlayPrimaryAdjServerAddrType."
    DEFVAL          { "" } 
    ::= { cotvOverlayEntry 18 }

cotvOverlaySecondaryAdjServerAddrType OBJECT-TYPE
    SYNTAX          InetAddressType
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the type of Internet address of the
        Secondary Adjacency Server for this Overlay interface."
    DEFVAL          { unknown } 
    ::= { cotvOverlayEntry 19 }

cotvOverlaySecondaryAdjServerAddr OBJECT-TYPE
    SYNTAX          InetAddress
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the Internet address of the Secondary
        Adjacency Server for this Overlay interface.

        The type of this address is determined by
        cotvOverlaySecondaryAdjServerAddrType."
    DEFVAL          { "" } 
    ::= { cotvOverlayEntry 20 }

cotvOverlaySuppressArpND OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies ARP Neighbor Discovery behavior
        on this Overlay interface.

        Setting the object to 'true' enables suppression of
        ARP Neighbor Discovery on this Overlay interface.

        Setting the object to 'false' disables suppression of
        ARP Neighbor Discovery on this Overlay interface."
    DEFVAL          { false } 
    ::= { cotvOverlayEntry 21 }

cotvOverlayStorageType OBJECT-TYPE
    SYNTAX          StorageType
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the storage type for this
        conceptual row."
    DEFVAL          { volatile } 
    ::= { cotvOverlayEntry 22 }

cotvOverlayRowStatus OBJECT-TYPE
    SYNTAX          RowStatus
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the status of this conceptual row." 
    ::= { cotvOverlayEntry 23 }
 


cotvVlansTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CotvVlansEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "A list of VLANs extended on Overlay interfaces."
    ::= { cotvOverlayObjects 2 }

cotvVlansEntry OBJECT-TYPE
    SYNTAX          CotvVlansEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry containing management information for a
        particular VLAN extended on an Overlay interface."
    INDEX           {
                        cotvOverlayNumber,
                        cotvVlanId
                    } 
    ::= { cotvVlansTable 1 }

CotvVlansEntry ::= SEQUENCE {
        cotvVlanId             VlanIndex,
        cotvVlanState          INTEGER,
        cotvVlanInactiveReason INTEGER,
        cotvVlanAedAddrType    InetAddressType,
        cotvVlanAedAddr        InetAddress,
        cotvVlanEdgeDevIsAed   TruthValue
}

cotvVlanId OBJECT-TYPE
    SYNTAX          VlanIndex
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object indicates the VLAN ID of the extended VLAN." 
    ::= { cotvVlansEntry 1 }

cotvVlanState OBJECT-TYPE
    SYNTAX          INTEGER  {
                        active(1),
                        inactive(2)
                    }
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the state of the extended VLAN.

        'active'   - OTV is ready to forward traffic for this VLAN

        'inactive' - OTV can not forward traffic for this VLAN" 
    ::= { cotvVlansEntry 2 }

cotvVlanInactiveReason OBJECT-TYPE
    SYNTAX          INTEGER  {
                        other(1),
                        nonAed(2),
                        vlanDisabled(3),
                        overlayDown(4),
                        deleteHoldDown(5),
                        hwDown(6)
                    }
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the reason the VLAN is
        in 'inactive' state.

        'other'          - Any other reason not covered by the
                           below enumerations

        'nonAed'         - Device is not an AED on this VLAN

        'vlanDisabled'   - Vlan is in disabled state

        'overlayDown'    - Overlay is currently down

        'deleteHoldDown' - The VLAN is in delete hold-down state

        'hwDown'         - An issue with hardware is preventing
                           VLAN from becoming 'active'

        Value of this object should be ignored if the value of
        cotvVlanInactiveReason is not 'inactive'." 
    ::= { cotvVlansEntry 3 }

cotvVlanAedAddrType OBJECT-TYPE
    SYNTAX          InetAddressType
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the type of Internet address of
        Authoritative Edge Device (AED) on this VLAN." 
    ::= { cotvVlansEntry 4 }

cotvVlanAedAddr OBJECT-TYPE
    SYNTAX          InetAddress
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the Internet address of Authoritative
        Edge Device (AED) on this VLAN.

        The type of this address is determined by the value of
        cotvVlanAedAddrType." 
    ::= { cotvVlansEntry 5 }

cotvVlanEdgeDevIsAed OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates if this device is acting as an AED
        for the VLAN.

        A value of 'true' indicates that this device is acting
        as an AED for the VLAN.

        A value of 'false' indicates that this device is not acting
        as an AED for the VLAN." 
    ::= { cotvVlansEntry 6 }
 


cotvDataGroupConfigTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CotvDataGroupConfigEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "A list of multicast data-group ranges configured for
        each Overlay interface."
    ::= { cotvOverlayObjects 3 }

cotvDataGroupConfigEntry OBJECT-TYPE
    SYNTAX          CotvDataGroupConfigEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry containing management information for a particular
        multicast data-group range configured for an Overlay interface."
    INDEX           {
                        cotvOverlayNumber,
                        cotvDataGroupMcastRangeAddrType,
                        cotvDataGroupMcastRangeAddr,
                        cotvDataGroupMcastRangePrefixLength
                    } 
    ::= { cotvDataGroupConfigTable 1 }

CotvDataGroupConfigEntry ::= SEQUENCE {
        cotvDataGroupMcastRangeAddrType     InetAddressType,
        cotvDataGroupMcastRangeAddr         InetAddress,
        cotvDataGroupMcastRangePrefixLength InetAddressPrefixLength,
        cotvDataGroupStorageType            StorageType,
        cotvDataGroupRowStatus              RowStatus
}

cotvDataGroupMcastRangeAddrType OBJECT-TYPE
    SYNTAX          InetAddressType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "The type of Internet address of multicast data-group range." 
    ::= { cotvDataGroupConfigEntry 1 }

cotvDataGroupMcastRangeAddr OBJECT-TYPE
    SYNTAX          InetAddress (SIZE  (4 | 16))
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "The Internet address of multicast data-group range.

        The type of this address is determined by
        the value of the cotvDataGroupMcastRangeAddrType object." 
    ::= { cotvDataGroupConfigEntry 2 }

cotvDataGroupMcastRangePrefixLength OBJECT-TYPE
    SYNTAX          InetAddressPrefixLength
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "The length of the prefix associated with
        cotvDataGroupMcastRangeAddr.

        The type of this address prefix is determined by
        the value of the cotvDataGroupMcastRangeAddrType object." 
    ::= { cotvDataGroupConfigEntry 3 }

cotvDataGroupStorageType OBJECT-TYPE
    SYNTAX          StorageType
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the storage type for this
        conceptual row."
    DEFVAL          { volatile } 
    ::= { cotvDataGroupConfigEntry 4 }

cotvDataGroupRowStatus OBJECT-TYPE
    SYNTAX          RowStatus
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the status of this conceptual row." 
    ::= { cotvDataGroupConfigEntry 5 }
 


cotvDataGroupInfoTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CotvDataGroupInfoEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "A table listing management information for active
        multicast sources and multicast groups on each
        Overlay interface."
    ::= { cotvOverlayObjects 4 }

cotvDataGroupInfoEntry OBJECT-TYPE
    SYNTAX          CotvDataGroupInfoEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry containing management information for an
        active multicast data-group."
    INDEX           {
                        cotvOverlayNumber,
                        cotvDataGroupActiveSrcLocation,
                        cotvDataGroupVlanId,
                        cotvDataGroupActiveGroupAddrType,
                        cotvDataGroupActiveGroupAddr,
                        cotvDataGroupActiveSrcAddrType,
                        cotvDataGroupActiveSrcAddr,
                        cotvDataGroupDeliveryGroupAddrType,
                        cotvDataGroupDeliveryGroupAddr,
                        cotvDataGroupDeliverySrcAddrType,
                        cotvDataGroupDeliverySrcAddr
                    } 
    ::= { cotvDataGroupInfoTable 1 }

CotvDataGroupInfoEntry ::= SEQUENCE {
        cotvDataGroupActiveSrcLocation     INTEGER,
        cotvDataGroupVlanId                VlanIndex,
        cotvDataGroupActiveGroupAddrType   InetAddressType,
        cotvDataGroupActiveGroupAddr       InetAddress,
        cotvDataGroupActiveSrcAddrType     InetAddressType,
        cotvDataGroupActiveSrcAddr         InetAddress,
        cotvDataGroupDeliveryGroupAddrType InetAddressType,
        cotvDataGroupDeliveryGroupAddr     InetAddress,
        cotvDataGroupDeliverySrcAddrType   InetAddressType,
        cotvDataGroupDeliverySrcAddr       InetAddress,
        cotvDataGroupJoinInterface         InterfaceIndexOrZero,
        cotvDataGroupLocalActiveSrcState   INTEGER
}

cotvDataGroupActiveSrcLocation OBJECT-TYPE
    SYNTAX          INTEGER  {
                        local(1),
                        remote(2)
                    }
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "The location of Active Multicast source." 
    ::= { cotvDataGroupInfoEntry 1 }

cotvDataGroupVlanId OBJECT-TYPE
    SYNTAX          VlanIndex
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "The VLAN associated with Active Multicast data-group." 
    ::= { cotvDataGroupInfoEntry 2 }

cotvDataGroupActiveGroupAddrType OBJECT-TYPE
    SYNTAX          InetAddressType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "The type of Internet address of the active multicast group
        (multicast group of the active multicast source)." 
    ::= { cotvDataGroupInfoEntry 3 }

cotvDataGroupActiveGroupAddr OBJECT-TYPE
    SYNTAX          InetAddress (SIZE  (4 | 16))
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "The Internet address of the active multicast group of the
        (multicast group of the active multicast source).

        The type of this address is determined by the value of
        cotvDataGroupActiveGroupAddrType." 
    ::= { cotvDataGroupInfoEntry 4 }

cotvDataGroupActiveSrcAddrType OBJECT-TYPE
    SYNTAX          InetAddressType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "The type of Internet address of active multicast source." 
    ::= { cotvDataGroupInfoEntry 5 }

cotvDataGroupActiveSrcAddr OBJECT-TYPE
    SYNTAX          InetAddress (SIZE  (4 | 16))
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "The Internet address of active multicast source.

        The type of this address is determined by the value of
        cotvDataGroupActiveSrcAddrType." 
    ::= { cotvDataGroupInfoEntry 6 }

cotvDataGroupDeliveryGroupAddrType OBJECT-TYPE
    SYNTAX          InetAddressType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "The type of Internet address of the delivery group that is
        mapped to active multicast group." 
    ::= { cotvDataGroupInfoEntry 7 }

cotvDataGroupDeliveryGroupAddr OBJECT-TYPE
    SYNTAX          InetAddress (SIZE  (4 | 16))
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "The Internet address of delivery group that is
        mapped to active multicast group.

        The type of this address is determined by
        cotvDataGroupDeliveryGroupAddrType." 
    ::= { cotvDataGroupInfoEntry 8 }

cotvDataGroupDeliverySrcAddrType OBJECT-TYPE
    SYNTAX          InetAddressType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "The type of Internet address of the delivery source that is
        mapped to the active multicast source." 
    ::= { cotvDataGroupInfoEntry 9 }

cotvDataGroupDeliverySrcAddr OBJECT-TYPE
    SYNTAX          InetAddress (SIZE  (4 | 16))
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "The Internet address of the delivery source that is
        mapped to the active multicast source.

        The type of this address is determined by the value of
        cotvDataGroupDeliverySrcAddrType." 
    ::= { cotvDataGroupInfoEntry 10 }

cotvDataGroupJoinInterface OBJECT-TYPE
    SYNTAX          InterfaceIndexOrZero
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the OTV Join interface on which
        active multicast source is located." 
    ::= { cotvDataGroupInfoEntry 11 }

cotvDataGroupLocalActiveSrcState OBJECT-TYPE
    SYNTAX          INTEGER  {
                        none(1),
                        local(2),
                        remote(3),
                        orphan(4)
                    }
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the state of the local Active
        Multicast source.

        'none'   - State of the multicast source is not
                   applicable

        'local'  - multicast source state is local

        'remote' - multicast source state is remote

        'orphan' - multicast source state is orphan 

        Value of this object should be 'none' if
        cotvDataGroupActiveSrcLocation is 'remote'." 
    ::= { cotvDataGroupInfoEntry 12 }
 


cotvAdjacencyDatabaseTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CotvAdjacencyDatabaseEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "A table containing OTV adjacency database information."
    ::= { cotvAdjacencyObjects 1 }

cotvAdjacencyDatabaseEntry OBJECT-TYPE
    SYNTAX          CotvAdjacencyDatabaseEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry containing management information about
        a particular OTV adjacency."
    INDEX           {
                        cotvOverlayNumber,
                        cotvAdjacentDevAddrType,
                        cotvAdjacentDevAddr
                    } 
    ::= { cotvAdjacencyDatabaseTable 1 }

CotvAdjacencyDatabaseEntry ::= SEQUENCE {
        cotvAdjacentDevAddrType InetAddressType,
        cotvAdjacentDevAddr     InetAddress,
        cotvAdjacentDevSystemID OCTET STRING,
        cotvAdjacentDevName     SnmpAdminString,
        cotvAdjacentDevState    INTEGER,
        cotvAdjacentDevUpTime   Unsigned32
}

cotvAdjacentDevAddrType OBJECT-TYPE
    SYNTAX          InetAddressType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "The type of Internet address of adjacent edge device." 
    ::= { cotvAdjacencyDatabaseEntry 1 }

cotvAdjacentDevAddr OBJECT-TYPE
    SYNTAX          InetAddress (SIZE  (1..64))
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "The Internet address of adjacent edge device.

        The type of this address is determined by the value of
        cotvAdjacentDevAddrType." 
    ::= { cotvAdjacencyDatabaseEntry 2 }

cotvAdjacentDevSystemID OBJECT-TYPE
    SYNTAX          OCTET STRING (SIZE  (0 | 6))
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the system identifier of the
        adjacent edge device.

        The value of this object contains zero length octet, if the
        system identifier of the adjacent edge devices is not
        available." 
    ::= { cotvAdjacencyDatabaseEntry 3 }

cotvAdjacentDevName OBJECT-TYPE
    SYNTAX          SnmpAdminString
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the DNS name of the
        adjacent edge device." 
    ::= { cotvAdjacencyDatabaseEntry 4 }

cotvAdjacentDevState OBJECT-TYPE
    SYNTAX          INTEGER  {
                        other(0),
                        up(1),
                        down(2)
                    }
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the state of adjacent edge device.

        'other'  - Any other state not covered by below enumeration.

        'up'    - The adjacent device is up

        'down'  - The adjacent device is down." 
    ::= { cotvAdjacencyDatabaseEntry 5 }

cotvAdjacentDevUpTime OBJECT-TYPE
    SYNTAX          Unsigned32
    UNITS           "seconds"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the amount of time for which
        the adjacent device has been up." 
    ::= { cotvAdjacencyDatabaseEntry 6 }
 


cotvArpNdCacheTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CotvArpNdCacheEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "A table containing ARP Neighbor Discovery cache information."
    ::= { cotvArpNdObjects 1 }

cotvArpNdCacheEntry OBJECT-TYPE
    SYNTAX          CotvArpNdCacheEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry containing management information about a particular
        entry in ARP Neighbor Discovery cache."
    INDEX           {
                        cotvOverlayNumber,
                        cotvVlanId,
                        cotvArpNdCacheL3AddrType,
                        cotvArpNdCacheL3Addr
                    } 
    ::= { cotvArpNdCacheTable 1 }

CotvArpNdCacheEntry ::= SEQUENCE {
        cotvArpNdCacheL3AddrType   InetAddressType,
        cotvArpNdCacheL3Addr       InetAddress,
        cotvArpNdCacheMacAddr      MacAddress,
        cotvArpNdCacheAge          Unsigned32,
        cotvArpNdCacheTimeToExpire Unsigned32
}

cotvArpNdCacheL3AddrType OBJECT-TYPE
    SYNTAX          InetAddressType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "The type of Internet address (IPv4/IPv6 address) of host
        discovered using ARP Neighbor discovery." 
    ::= { cotvArpNdCacheEntry 1 }

cotvArpNdCacheL3Addr OBJECT-TYPE
    SYNTAX          InetAddress (SIZE  (0..64))
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "The Internet address (IPv4/IPv6 address) of the host
        discovered using ARP Neighbor discovery.

        The type of this address is determined by the value of
        cotvArpNdCacheL3AddrType." 
    ::= { cotvArpNdCacheEntry 2 }

cotvArpNdCacheMacAddr OBJECT-TYPE
    SYNTAX          MacAddress
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the MAC address discovered using
        ARP Neighbor discovery and cached in this table." 
    ::= { cotvArpNdCacheEntry 3 }

cotvArpNdCacheAge OBJECT-TYPE
    SYNTAX          Unsigned32
    UNITS           "seconds"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the amount of time for which this
        entry has existed on the system." 
    ::= { cotvArpNdCacheEntry 4 }

cotvArpNdCacheTimeToExpire OBJECT-TYPE
    SYNTAX          Unsigned32
    UNITS           "seconds"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the amount of time left for this
        cache entry to be expired." 
    ::= { cotvArpNdCacheEntry 5 }
 


cotvRouteTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CotvRouteEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "A table listing route (unicast) information in OTV
        Routing Information Base (ORIB)."
    ::= { cotvRouteObjects 1 }

cotvRouteEntry OBJECT-TYPE
    SYNTAX          CotvRouteEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry containing management information about a particular
        route (unicast) in ORIB."
    INDEX           {
                        cotvRouteVlanId,
                        cotvRouteMacAddr
                    } 
    ::= { cotvRouteTable 1 }

CotvRouteEntry ::= SEQUENCE {
        cotvRouteVlanId          VlanIndex,
        cotvRouteMacAddr         MacAddress,
        cotvRouteMetric          Unsigned32,
        cotvRouteUpTime          Unsigned32,
        cotvRouteOwner           SnmpAdminString,
        cotvRouteNextHopIf       InterfaceIndexOrZero,
        cotvRouteNextHopAddrType InetAddressType,
        cotvRouteNextHopAddr     InetAddress
}

cotvRouteVlanId OBJECT-TYPE
    SYNTAX          VlanIndex
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "The object indicates VLAN associated with this route." 
    ::= { cotvRouteEntry 1 }

cotvRouteMacAddr OBJECT-TYPE
    SYNTAX          MacAddress
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object indicates the MAC address to be routed." 
    ::= { cotvRouteEntry 2 }

cotvRouteMetric OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the metric associated with this route." 
    ::= { cotvRouteEntry 3 }

cotvRouteUpTime OBJECT-TYPE
    SYNTAX          Unsigned32
    UNITS           "seconds"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the amount of time elapsed since
        the MAC route entry was installed in this table." 
    ::= { cotvRouteEntry 4 }

cotvRouteOwner OBJECT-TYPE
    SYNTAX          SnmpAdminString
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the type of owner (source) from where
        the MAC address was learnt." 
    ::= { cotvRouteEntry 5 }

cotvRouteNextHopIf OBJECT-TYPE
    SYNTAX          InterfaceIndexOrZero
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the interface on the device through
        which the MAC address will be routed.

        Value of this object should be ignored if cotvRouteOwner
        is other than 'site' or 'static'." 
    ::= { cotvRouteEntry 6 }

cotvRouteNextHopAddrType OBJECT-TYPE
    SYNTAX          InetAddressType
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the type of Internet address of the
        edge device through which the MAC address will be routed.

        Value of this object should be ignored if cotvRouteOwner
        is other than 'overlay'." 
    ::= { cotvRouteEntry 7 }

cotvRouteNextHopAddr OBJECT-TYPE
    SYNTAX          InetAddress
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the Internet address of the edge
        device through which the MAC address will be routed.

        The type of this address is determined by the value of
        cotvRouteNextHopAddrType.

        Value of this object should be ignored if cotvRouteOwner
        is other than 'overlay'." 
    ::= { cotvRouteEntry 8 }
 


cotvMcastRouteTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CotvMcastRouteEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "A table listing multicast route information in OTV
        Routing Information Base (ORIB)."
    ::= { cotvRouteObjects 2 }

cotvMcastRouteEntry OBJECT-TYPE
    SYNTAX          CotvMcastRouteEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry containing information about a particular
        multicast route in ORIB."
    INDEX           {
                        cotvMcastRouteVlanId,
                        cotvMcastRouteActiveSrcAddrType,
                        cotvMcastRouteActiveSrcAddr,
                        cotvMcastRouteActiveGroupAddrType,
                        cotvMcastRouteActiveGroupAddr
                    } 
    ::= { cotvMcastRouteTable 1 }

CotvMcastRouteEntry ::= SEQUENCE {
        cotvMcastRouteVlanId              VlanIndex,
        cotvMcastRouteActiveSrcAddrType   InetAddressType,
        cotvMcastRouteActiveSrcAddr       InetAddress,
        cotvMcastRouteActiveGroupAddrType InetAddressType,
        cotvMcastRouteActiveGroupAddr     InetAddress,
        cotvMcastRouteOwners              SnmpAdminString,
        cotvMcastRouteMetric              Unsigned32,
        cotvMcastRouteUpTime              Unsigned32
}

cotvMcastRouteVlanId OBJECT-TYPE
    SYNTAX          VlanIndex
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "The object indicates VLAN associated with this
        multicast route." 
    ::= { cotvMcastRouteEntry 1 }

cotvMcastRouteActiveSrcAddrType OBJECT-TYPE
    SYNTAX          InetAddressType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "The type of Internet address of active multicast source." 
    ::= { cotvMcastRouteEntry 2 }

cotvMcastRouteActiveSrcAddr OBJECT-TYPE
    SYNTAX          InetAddress (SIZE  (4 | 16))
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "The Internet address of active multicast source.

        The type of this address is determined by the value of
        cotvMcastRouteActiveSrcAddrType." 
    ::= { cotvMcastRouteEntry 3 }

cotvMcastRouteActiveGroupAddrType OBJECT-TYPE
    SYNTAX          InetAddressType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "The type of Internet address of the active multicast group
        (multicast group of the active multicast source)." 
    ::= { cotvMcastRouteEntry 4 }

cotvMcastRouteActiveGroupAddr OBJECT-TYPE
    SYNTAX          InetAddress (SIZE  (4 | 16))
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "The Internet address of the active multicast group of the
        (multicast group of the active multicast source).

        The type of this address is determined by the value of
        cotvMcastRouteActiveGroupAddrType." 
    ::= { cotvMcastRouteEntry 5 }

cotvMcastRouteOwners OBJECT-TYPE
    SYNTAX          SnmpAdminString
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the type of owner(s) (sources) from
        where this route was learnt." 
    ::= { cotvMcastRouteEntry 6 }

cotvMcastRouteMetric OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the metric associated with this
        multicast route." 
    ::= { cotvMcastRouteEntry 7 }

cotvMcastRouteUpTime OBJECT-TYPE
    SYNTAX          Unsigned32
    UNITS           "seconds"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the amount of time elapsed since
        this multicast route was installed in this table." 
    ::= { cotvMcastRouteEntry 8 }
 


cotvMcastRouteInfoTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CotvMcastRouteInfoEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "A table listing next-hop information associated with each
        multicast route in OTV Routing Information Base (ORIB)."
    ::= { cotvRouteObjects 3 }

cotvMcastRouteInfoEntry OBJECT-TYPE
    SYNTAX          CotvMcastRouteInfoEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry containing next-hop information about a particular
        multicast route in ORIB."
    INDEX           {
                        cotvMcastRouteInfoVlanId,
                        cotvMcastRouteInfoActiveSrcAddrType,
                        cotvMcastRouteInfoActiveSrcAddr,
                        cotvMcastRouteInfoActiveGroupAddrType,
                        cotvMcastRouteInfoActiveGroupAddr,
                        cotvMcastRouteInfoIf
                    } 
    ::= { cotvMcastRouteInfoTable 1 }

CotvMcastRouteInfoEntry ::= SEQUENCE {
        cotvMcastRouteInfoVlanId              VlanIndex,
        cotvMcastRouteInfoActiveSrcAddrType   InetAddressType,
        cotvMcastRouteInfoActiveSrcAddr       InetAddress,
        cotvMcastRouteInfoActiveGroupAddrType InetAddressType,
        cotvMcastRouteInfoActiveGroupAddr     InetAddress,
        cotvMcastRouteInfoIf                  InterfaceIndexOrZero,
        cotvMcastRouteInfoHostAddrType        InetAddressType,
        cotvMcastRouteInfoHostAddr            InetAddress,
        cotvMcastRouteInfoProtocolOwners      SnmpAdminString,
        cotvMcastRouteInfoMetric              Unsigned32,
        cotvMcastRouteInfoUpTime              Unsigned32
}

cotvMcastRouteInfoVlanId OBJECT-TYPE
    SYNTAX          VlanIndex
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "The object indicates VLAN associated with this
        multicast route." 
    ::= { cotvMcastRouteInfoEntry 1 }

cotvMcastRouteInfoActiveSrcAddrType OBJECT-TYPE
    SYNTAX          InetAddressType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "The type of Internet address of active multicast source." 
    ::= { cotvMcastRouteInfoEntry 2 }

cotvMcastRouteInfoActiveSrcAddr OBJECT-TYPE
    SYNTAX          InetAddress (SIZE  (4 | 16))
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "The Internet address of active multicast source.

        The type of this address is determined by the value of
        cotvMcastRouteInfoActiveSrcAddrType." 
    ::= { cotvMcastRouteInfoEntry 3 }

cotvMcastRouteInfoActiveGroupAddrType OBJECT-TYPE
    SYNTAX          InetAddressType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "The type of Internet address of the active multicast group
        (multicast group of the active multicast source)." 
    ::= { cotvMcastRouteInfoEntry 4 }

cotvMcastRouteInfoActiveGroupAddr OBJECT-TYPE
    SYNTAX          InetAddress (SIZE  (4 | 16))
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "The Internet address of the active multicast group of the
        (multicast group of the active multicast source).

        The type of this address is determined by the value of
        cotvMcastRouteInfoActiveGroupAddrType." 
    ::= { cotvMcastRouteInfoEntry 5 }

cotvMcastRouteInfoIf OBJECT-TYPE
    SYNTAX          InterfaceIndexOrZero
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object indicates the next-hop interface on the device
        through which the multicast group will be routed." 
    ::= { cotvMcastRouteInfoEntry 6 }

cotvMcastRouteInfoHostAddrType OBJECT-TYPE
    SYNTAX          InetAddressType
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the type of Internet address of the
        next-hop edge device through which the multicast group will
        be routed.

        Value of this object will be 'unknown' if no next-hop
        edge device information is associated with this route." 
    ::= { cotvMcastRouteInfoEntry 7 }

cotvMcastRouteInfoHostAddr OBJECT-TYPE
    SYNTAX          InetAddress
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the Internet address of the next-hop
        edge device through which the multicast group will be routed.

        The type of this address is determined by the value of
        cotvMcastRouteInfoHostAddrType.

        Value of this object will be a zero length string if no
        next-hop edge device information is associated with
        this route." 
    ::= { cotvMcastRouteInfoEntry 8 }

cotvMcastRouteInfoProtocolOwners OBJECT-TYPE
    SYNTAX          SnmpAdminString
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the protocols used by multicast
        route owner to learn this route information." 
    ::= { cotvMcastRouteInfoEntry 9 }

cotvMcastRouteInfoMetric OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the metric associated with this
        multicast route." 
    ::= { cotvMcastRouteInfoEntry 10 }

cotvMcastRouteInfoUpTime OBJECT-TYPE
    SYNTAX          Unsigned32
    UNITS           "seconds"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the amount of time elapsed since
        this multicast route entry was installed in this table." 
    ::= { cotvMcastRouteInfoEntry 11 }
 

-- Conformance

ciscoOtvMIBCompliances  OBJECT IDENTIFIER
    ::= { ciscoOtvMIBConform 1 }

ciscoOtvMIBGroups  OBJECT IDENTIFIER
    ::= { ciscoOtvMIBConform 2 }


ciscoOtvMIBCompliance MODULE-COMPLIANCE
    STATUS          current
    DESCRIPTION
        "The compliance statement for CISCO-OTV-MIB."
    MODULE          -- this module
    MANDATORY-GROUPS {
                        ciscoOtvSiteGroup,
                        ciscoOtvOverlayGroup,
                        ciscoOtvVlanGroup,
                        ciscoOtvDataGroupConfigGroup,
                        ciscoOtvDataGroupInfoGroup,
                        ciscoOtvAdjacencyGroup,
                        ciscoOtvArpNdCacheGroup,
                        ciscoOtvRouteGroup,
                        ciscoOtvMcastRouteGroup,
                        ciscoOtvMcastRouteInfoGroup
                    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    OBJECT          cotvOverlayRowStatus
    SYNTAX          INTEGER  {
                        active(1)
                    }
    WRITE-SYNTAX    INTEGER  {
                        createAndGo(4),
                        destroy(6)
                    }
    MIN-ACCESS      read-only
    DESCRIPTION
        "Write access is not required."

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

    OBJECT          cotvDataGroupRowStatus
    SYNTAX          INTEGER  {
                        active(1)
                    }
    WRITE-SYNTAX    INTEGER  {
                        createAndGo(4),
                        destroy(6)
                    }
    MIN-ACCESS      read-only
    DESCRIPTION
        "Write access is not required."
    ::= { ciscoOtvMIBCompliances 1 }

-- Units of Conformance

ciscoOtvSiteGroup OBJECT-GROUP
    OBJECTS         {
                        cotvSiteIdAdmin,
                        cotvSiteIdOper,
                        cotvSiteVlan,
                        cotvSiteVlanState
                    }
    STATUS          current
    DESCRIPTION
        "A collection of objects providing OTV site information."
    ::= { ciscoOtvMIBGroups 1 }

ciscoOtvOverlayGroup OBJECT-GROUP
    OBJECTS         {
                        cotvOverlayVpnName,
                        cotvOverlayVpnState,
                        cotvOverlayVpnDownReason,
                        cotvOverlayVlansExtendedFirst2k,
                        cotvOverlayVlansExtendedSecond2k,
                        cotvOverlayControlGroupAddrType,
                        cotvOverlayControlGroupAddr,
                        cotvOverlayBroadcastGroupAddrType,
                        cotvOverlayBroadcastGroupAddr,
                        cotvOverlayJoinInterface,
                        cotvOverlaySourceInterface,
                        cotvOverlayAedCapable,
                        cotvOverlayAedIncapableReason,
                        cotvOverlayAdjServerTransportType,
                        cotvOverlayAdjServerEnable,
                        cotvOverlayPrimaryAdjServerAddrType,
                        cotvOverlayPrimaryAdjServerAddr,
                        cotvOverlaySecondaryAdjServerAddrType,
                        cotvOverlaySecondaryAdjServerAddr,
                        cotvOverlaySuppressArpND,
                        cotvOverlayStorageType,
                        cotvOverlayRowStatus
                    }
    STATUS          current
    DESCRIPTION
        "A collection of objects providing OTV overlay information."
    ::= { ciscoOtvMIBGroups 2 }

ciscoOtvVlanGroup OBJECT-GROUP
    OBJECTS         {
                        cotvVlanState,
                        cotvVlanInactiveReason,
                        cotvVlanAedAddrType,
                        cotvVlanAedAddr,
                        cotvVlanEdgeDevIsAed
                    }
    STATUS          current
    DESCRIPTION
        "A collection of objects providing OTV extended VLANs."
    ::= { ciscoOtvMIBGroups 3 }

ciscoOtvDataGroupConfigGroup OBJECT-GROUP
    OBJECTS         {
                        cotvDataGroupStorageType,
                        cotvDataGroupRowStatus
                    }
    STATUS          current
    DESCRIPTION
        "A collection of objects providing overlay multicast
        data-group configuration information."
    ::= { ciscoOtvMIBGroups 4 }

ciscoOtvDataGroupInfoGroup OBJECT-GROUP
    OBJECTS         {
                        cotvDataGroupJoinInterface,
                        cotvDataGroupLocalActiveSrcState
                    }
    STATUS          current
    DESCRIPTION
        "A collection of objects providing active data-group
        related information."
    ::= { ciscoOtvMIBGroups 5 }

ciscoOtvAdjacencyGroup OBJECT-GROUP
    OBJECTS         {
                        cotvAdjacentDevSystemID,
                        cotvAdjacentDevName,
                        cotvAdjacentDevState,
                        cotvAdjacentDevUpTime
                    }
    STATUS          current
    DESCRIPTION
        "A collection of objects providing information about
        OTV Adjacency Database."
    ::= { ciscoOtvMIBGroups 6 }

ciscoOtvArpNdCacheGroup OBJECT-GROUP
    OBJECTS         {
                        cotvArpNdCacheMacAddr,
                        cotvArpNdCacheAge,
                        cotvArpNdCacheTimeToExpire
                    }
    STATUS          current
    DESCRIPTION
        "A collection of objects providing ARP/ND cache information."
    ::= { ciscoOtvMIBGroups 7 }

ciscoOtvRouteGroup OBJECT-GROUP
    OBJECTS         {
                        cotvRouteMetric,
                        cotvRouteUpTime,
                        cotvRouteOwner,
                        cotvRouteNextHopIf,
                        cotvRouteNextHopAddrType,
                        cotvRouteNextHopAddr
                    }
    STATUS          current
    DESCRIPTION
        "A collection of objects providing information about
        unicast routes in ORIB."
    ::= { ciscoOtvMIBGroups 8 }

ciscoOtvMcastRouteGroup OBJECT-GROUP
    OBJECTS         {
                        cotvMcastRouteOwners,
                        cotvMcastRouteMetric,
                        cotvMcastRouteUpTime
                    }
    STATUS          current
    DESCRIPTION
        "A collection of objects providing information about
        multicast routes in ORIB."
    ::= { ciscoOtvMIBGroups 9 }

ciscoOtvMcastRouteInfoGroup OBJECT-GROUP
    OBJECTS         {
                        cotvMcastRouteInfoHostAddrType,
                        cotvMcastRouteInfoHostAddr,
                        cotvMcastRouteInfoProtocolOwners,
                        cotvMcastRouteInfoMetric,
                        cotvMcastRouteInfoUpTime
                    }
    STATUS          current
    DESCRIPTION
        "A collection of objects providing interface level information
        for multicast routes in ORIB."
    ::= { ciscoOtvMIBGroups 10 }

END



