-- MIB file created 13-Dec-2010 02:05:49, by -- SMICng version 2.2.11-beta(PRO)(Solaris), January 20, 2001. Enterprise key cisco.com CISCO-VRF-MIB DEFINITIONS ::= BEGIN -- From file: "CISCO-VRF-MIB.my" -- Compile options "4 7 F H N W 03 06 0B 0G 0N 0T" IMPORTS StorageType, RowStatus, TruthValue FROM SNMPv2-TC-v1 ifIndex, InterfaceIndex, ifName FROM IF-MIB SnmpAdminString FROM SNMP-FRAMEWORK-MIB ciscoMgmt FROM CISCO-SMI Gauge FROM RFC1155-SMI OBJECT-TYPE FROM RFC-1212 TRAP-TYPE FROM RFC-1215; ciscoVrfMIB OBJECT IDENTIFIER ::= { ciscoMgmt 711 } -- MODULE-IDENTITY -- LastUpdated -- 200912100000Z -- OrgName -- Cisco Systems, Inc. -- ContactInfo -- 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 -- Descr -- The MIB module for provisioning and managing network -- virtualization features. -- -- This module provides manageability for VRF, VRF-Lite and -- vNET. VRF stands for Virtual Routing and Forwarding. VRF -- is an extension of IP routing that provides multiple routing -- instances. VRF provides independent routing instances and -- hence the same or over-lapping addresses can be used without -- conflicting each other. VRFs are used in conjunction with -- MPLS VPN to provide traffic separation between multiple VPN -- customers. -- -- A VRF-Lite enabled device implements VRFs and does not require -- MPLS for end to end communication. Instead of using MPLS -- labels, VRF-Lite uses the interfaces to distinguish routes for -- different VPNs. VRF-Lite forms virtual packet-forwarding tables -- by associating one or more interfaces with each VRF, and -- interfaces cannot belong to more than one VRF at any time. -- -- VRF-Lite is an IP based hop-by-hop virtualization mechanism and -- it involves complex configuration of every hop in the network. -- vNET, virtual network, is also an IP based hop-by-hop mechanism -- that can provide end-to-end virtualization of the network. vNET -- greatly reduces the complexity in VRF-Lite deployment. -- -- This MIB module will allow the user to perform the following -- -- * Create and monitor VRFs -- * Group VRFs to create VRF List -- * Associate/Dis-associate interface to/from a VRF -- * Enable vNET trunking on an interface -- * Specify VRF list per trunk -- RevDate -- 200912100000Z -- RevDescr -- Latest version of this MIB module. ciscoVrfMIBObjects OBJECT IDENTIFIER ::= { ciscoVrfMIB 1 } ciscoVrfMIBNotifs OBJECT IDENTIFIER ::= { ciscoVrfMIB 0 } ciscoVrfMIBConform OBJECT IDENTIFIER ::= { ciscoVrfMIB 2 } cvVrf OBJECT IDENTIFIER ::= { ciscoVrfMIBObjects 1 } cvInterface OBJECT IDENTIFIER ::= { ciscoVrfMIBObjects 2 } cvNotifCntl OBJECT IDENTIFIER ::= { ciscoVrfMIBObjects 3 } cvMIBGroups OBJECT IDENTIFIER ::= { ciscoVrfMIBConform 1 } cvMIBCompliances OBJECT IDENTIFIER ::= { ciscoVrfMIBConform 2 } CvVrfIfType ::= INTEGER { vNETTrunkSI(1), vNETEdge(2), vrfEdge(3) } -- TEXTUAL-CONVENTION -- Status -- mandatory -- Descr -- The type value denotes the manner in which the interface is -- used. -- -- vNETTrunkSI(1) : The sub-interface is created under a vNET -- trunk interface to carry vNET tagged traffic -- belonging to a VRF. -- vNETEdge(2) : The interface is assigned to a VRF which is -- tagged with a vNET tag. -- vrfEdge(3) : The interface is assigned to an untagged VRF. CvVnetTagOrZero ::= Gauge(0|2..4094) -- TEXTUAL-CONVENTION -- Status -- mandatory -- Descr -- The tag value assigned to a vNET. The tag value is global, -- meaning on each router, the same vNET must be assigned the -- same numerical tag value. This is assigned by the system -- operator or NMS or through a network tag distribution -- mechanism. -- -- The valid tag value is ranged from 2 to 4094. Traffic that -- carries a vNET tag is called tagged traffic. On the other -- hand, traffic that does not carry a vNET tag is called -- untagged traffic. A vNET is defined as a VRF with a tag -- assigned. A valid tag value assigned to a VRF indicates -- it is a vNET. -- -- Zero(0) is a special value and its meaning should be -- interpreted in conjunction with the object definition -- using this type. cvVrfTable OBJECT-TYPE SYNTAX SEQUENCE OF CvVrfEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "This table contains entries representing a VRF - Virtual Routing and Forwarding instance. There will be an entry for each VRF instance created in the system." ::= { cvVrf 1 } cvVrfEntry OBJECT-TYPE SYNTAX CvVrfEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "An entry representing the information pertaining to a virtual routing and forwarding instance." INDEX { cvVrfIndex } ::= { cvVrfTable 1 } CvVrfEntry ::= SEQUENCE { cvVrfIndex Gauge, cvVrfName SnmpAdminString, cvVrfVnetTag CvVnetTagOrZero, cvVrfOperStatus INTEGER, cvVrfRouteDistProt OCTET STRING, cvVrfStorageType StorageType, cvVrfRowStatus RowStatus } cvVrfIndex OBJECT-TYPE SYNTAX Gauge(1..65535) ACCESS not-accessible STATUS mandatory DESCRIPTION "An identifier that is assigned to each VRF and is used to uniquely identify it. The uniqueness of this identifier is restricted only to this device." ::= { cvVrfEntry 1 } cvVrfName OBJECT-TYPE SYNTAX SnmpAdminString(SIZE(1..64)) -- Rsyntax OCTET STRING(SIZE(1..64)) ACCESS read-write STATUS mandatory DESCRIPTION "The human-readable name of the VRF instance. This name uniquely identifies the VRF instance in the system. This object is mandatory for creating an entry in this table." ::= { cvVrfEntry 2 } cvVrfVnetTag OBJECT-TYPE SYNTAX CvVnetTagOrZero(0|2..4094) -- Rsyntax Gauge(0|2..4094) ACCESS read-write STATUS mandatory DESCRIPTION "The vNET tag assigned to this VRF instance. A value of zero(0) indicates the VRF instance is not a vNET and such vrf could be part of a VRF-Lite or MPLS deployment. A set with a value of zero(0) will remove the vNET tag assigned to this VRF. The value of this object can be changed even when cvVrfRowStatus is having a value of active(1)." DEFVAL { 0 } ::= { cvVrfEntry 3 } cvVrfOperStatus OBJECT-TYPE SYNTAX INTEGER { up(1), down(2) } ACCESS read-only STATUS mandatory DESCRIPTION "Denotes whether a VRF is operational or not. A VRF is up(1) when at least one interface associated with the VRF, which ifOperStatus is up(1). A VRF is down(2) when: a. There does not exist at least one interface whose ifOperStatus is up(1). b. There are no interfaces associated with the VRF." ::= { cvVrfEntry 4 } cvVrfRouteDistProt OBJECT-TYPE SYNTAX OCTET STRING(SIZE(1..2)) -- BITS are: -- none(0) -- other(1) -- ospf(2) -- rip(3) -- isis(4) -- eigrp(5) -- bgp(6) ACCESS read-only STATUS mandatory DESCRIPTION "Denotes the route distribution protocol enabled in this VRF. Note that more than one routing protocol may be enabled at the same time." ::= { cvVrfEntry 5 } cvVrfStorageType OBJECT-TYPE SYNTAX StorageType -- Rsyntax INTEGER { -- other(1), -- volatile(2), -- nonVolatile(3), -- permanent(4), -- readOnly(5) -- } ACCESS read-only STATUS mandatory DESCRIPTION "The storage type for this entry." ::= { cvVrfEntry 6 } cvVrfRowStatus OBJECT-TYPE SYNTAX RowStatus -- Rsyntax INTEGER { -- active(1), -- notInService(2), -- notReady(3), -- createAndGo(4), -- createAndWait(5), -- destroy(6) -- } ACCESS read-write STATUS mandatory DESCRIPTION "This object is used to create, modify, and/or delete a row in this table." ::= { cvVrfEntry 7 } cvVrfListTable OBJECT-TYPE SYNTAX SEQUENCE OF CvVrfListEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "This table contains the entries representing the VRFs in a VRF List." ::= { cvVrf 2 } cvVrfListEntry OBJECT-TYPE SYNTAX CvVrfListEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "An entry in this table represents a VRF in a VRF list. A VRF list is a collection of VRFs grouped together. The list defined here can be associated to a vNET trunk interface, which would then act as a trunk carrying traffic for all VRFs in the VRF list. An example of a VRF List - list1.1 = Vrf_Finance list1.2 = Vrf_HR" INDEX { cvVrfListName, cvVrfListVindex } ::= { cvVrfListTable 1 } CvVrfListEntry ::= SEQUENCE { cvVrfListName SnmpAdminString, cvVrfListVindex Gauge, cvVrfListVrfIndex Gauge, cvVrfListStorageType StorageType, cvVrfListRowStatus RowStatus } cvVrfListName OBJECT-TYPE SYNTAX SnmpAdminString(SIZE(1..64)) -- Rsyntax OCTET STRING(SIZE(1..64)) ACCESS not-accessible STATUS mandatory DESCRIPTION "The human-readable name of the VRF List. This name uniquely identifies the VRF List in the system." ::= { cvVrfListEntry 1 } cvVrfListVindex OBJECT-TYPE SYNTAX Gauge(1..32) ACCESS not-accessible STATUS mandatory DESCRIPTION "This index uniquely identifies a VRF within the VRF list." ::= { cvVrfListEntry 2 } cvVrfListVrfIndex OBJECT-TYPE SYNTAX Gauge(1..65535) ACCESS read-write STATUS mandatory DESCRIPTION "This object indicates the associated VRF in the cvVrfTable. The value of this object is index value (cvVrfIndex) of cvVrfTable. The value of this object cannot be modified when the entry is in active(1) state." ::= { cvVrfListEntry 3 } cvVrfListStorageType OBJECT-TYPE SYNTAX StorageType -- Rsyntax INTEGER { -- other(1), -- volatile(2), -- nonVolatile(3), -- permanent(4), -- readOnly(5) -- } ACCESS read-only STATUS mandatory DESCRIPTION "The storage type for this entry." ::= { cvVrfListEntry 4 } cvVrfListRowStatus OBJECT-TYPE SYNTAX RowStatus -- Rsyntax INTEGER { -- active(1), -- notInService(2), -- notReady(3), -- createAndGo(4), -- createAndWait(5), -- destroy(6) -- } ACCESS read-write STATUS mandatory DESCRIPTION "This object is used to create, modify, and/or delete a row in this table." ::= { cvVrfListEntry 5 } cvVrfInterfaceTable OBJECT-TYPE SYNTAX SEQUENCE OF CvVrfInterfaceEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "This table contains the entries representing the interfaces associated with a VRF instance." ::= { cvInterface 1 } cvVrfInterfaceEntry OBJECT-TYPE SYNTAX CvVrfInterfaceEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "An entry in this table represents an interface to which a VRF is associated. A VRF can be associated to multiple interfaces. There will be one entry per interface for each VRF instance in this table." INDEX { cvVrfIndex, cvVrfInterfaceIndex } ::= { cvVrfInterfaceTable 1 } CvVrfInterfaceEntry ::= SEQUENCE { cvVrfInterfaceIndex InterfaceIndex, cvVrfInterfaceType CvVrfIfType, cvVrfInterfaceVnetTagOverride CvVnetTagOrZero, cvVrfInterfaceStorageType StorageType, cvVrfInterfaceRowStatus RowStatus } cvVrfInterfaceIndex OBJECT-TYPE SYNTAX InterfaceIndex(1..2147483647) -- Rsyntax INTEGER(1..2147483647) ACCESS not-accessible STATUS mandatory DESCRIPTION "This is a unique index for an entry in this table. A non-zero index for an entry indicates the ifIndex for the corresponding interface entry in the ifTable. Note that this table does not necessarily correspond one-to-one with all entries in the Interface MIB." ::= { cvVrfInterfaceEntry 1 } cvVrfInterfaceType OBJECT-TYPE SYNTAX CvVrfIfType -- Rsyntax INTEGER { -- vNETTrunkSI(1), -- vNETEdge(2), -- vrfEdge(3) -- } ACCESS read-only STATUS mandatory DESCRIPTION "The VRF type of this interface. The type of the interface is determined based on the VRF associated with this interface. If the VRF is not tagged with vnet tag then the type will be vrfEdge. If the VRF is tagged with vnet tag then it will become vnetEdge. For vNETTrunkSI, the sub-interface in question is automatically created for a VRF when trunking is enabled on the main interface." ::= { cvVrfInterfaceEntry 2 } cvVrfInterfaceVnetTagOverride OBJECT-TYPE SYNTAX CvVnetTagOrZero(0|2..4094) -- Rsyntax Gauge(0|2..4094) ACCESS read-write STATUS mandatory DESCRIPTION "This object can be used to over-ride the vNET tag assigned to the VRF traffic going through this interface. This object is applicable only if the cvVrfInterfaceType of this interface has a value of vNETTrunkSI(1). By default the tagged traffic will use the value denoted by cvVrfVnetTag of this VRF. In which case this object will have a value of zero(0). A set with a value of zero(0) will revert the tag assignment behaviour to default behaviour mentioned above." DEFVAL { 0 } ::= { cvVrfInterfaceEntry 3 } cvVrfInterfaceStorageType OBJECT-TYPE SYNTAX StorageType -- Rsyntax INTEGER { -- other(1), -- volatile(2), -- nonVolatile(3), -- permanent(4), -- readOnly(5) -- } ACCESS read-only STATUS mandatory DESCRIPTION "The storage type for this entry." ::= { cvVrfInterfaceEntry 4 } cvVrfInterfaceRowStatus OBJECT-TYPE SYNTAX RowStatus -- Rsyntax INTEGER { -- active(1), -- notInService(2), -- notReady(3), -- createAndGo(4), -- createAndWait(5), -- destroy(6) -- } ACCESS read-write STATUS mandatory DESCRIPTION "This object is used to create, modify, and/or delete a row in this table. When a row is created in this table the VRF is associated to an interface. When a row is deleted from this table the VRF is dis-associated from the interface." ::= { cvVrfInterfaceEntry 5 } cvInterfaceTable OBJECT-TYPE SYNTAX SEQUENCE OF CvInterfaceEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "This table contains entries representing the interfaces on which the vNET trunking can be enabled." ::= { cvInterface 2 } cvInterfaceEntry OBJECT-TYPE SYNTAX CvInterfaceEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "An entry in this table represents an interface on which the vNET trunking can be enabled. When an interface is enabled for vNET trunking, it will carry the traffic for the VRFs which are tagged with the vNET tag." INDEX { ifIndex } ::= { cvInterfaceTable 1 } CvInterfaceEntry ::= SEQUENCE { cvInterfaceVnetTrunkEnabled TruthValue, cvInterfaceVnetVrfList SnmpAdminString } cvInterfaceVnetTrunkEnabled OBJECT-TYPE SYNTAX TruthValue -- Rsyntax INTEGER { -- true(1), -- false(2) -- } ACCESS read-write STATUS mandatory DESCRIPTION "This object represents the vNET trunking status for this interface. When enabled for vNET trunking the interface will carry traffic of all vNETs in the device." DEFVAL { false } ::= { cvInterfaceEntry 1 } cvInterfaceVnetVrfList OBJECT-TYPE SYNTAX SnmpAdminString(SIZE(0|1..32)) -- Rsyntax OCTET STRING(SIZE(0|1..32)) ACCESS read-write STATUS mandatory DESCRIPTION "The name of the VRF List associated with this interface. A non-zero length string represent a list of vNET tagged VRFs, whose traffic will be forwarded through this interface. A zero length string denotes that the traffic for all the vNET tagged VRFs will be forwarded through this interface." DEFVAL { "" } ::= { cvInterfaceEntry 2 } cvVrfIfNotifEnable OBJECT-TYPE SYNTAX TruthValue -- Rsyntax INTEGER { -- true(1), -- false(2) -- } ACCESS read-write STATUS mandatory DESCRIPTION "This object indicates whether the device should generate notifications related to VRF Interface status change." DEFVAL { false } ::= { cvNotifCntl 1 } cvVnetTrunkNotifEnable OBJECT-TYPE SYNTAX TruthValue -- Rsyntax INTEGER { -- true(1), -- false(2) -- } ACCESS read-write STATUS mandatory DESCRIPTION "This object indicates whether the device should generate notifications related to vNET Trunk Interface status change." DEFVAL { false } ::= { cvNotifCntl 2 } cvVrfIfUp TRAP-TYPE -- Reverse mappable trap ENTERPRISE ciscoVrfMIB VARIABLES { ifName, cvVrfName, cvVrfOperStatus } -- Status -- mandatory DESCRIPTION "This notification is generated when: a. The ifOperStatus of an interface associated with a VRF changes to the up(1) state. b. When an interface with ifOperStatus = up(1) is associated with a VRF. The interface is identified by ifName and the VRF is identified by cvVrfName varbinds respectively." ::= 1 cvVrfIfDown TRAP-TYPE -- Reverse mappable trap ENTERPRISE ciscoVrfMIB VARIABLES { ifName, cvVrfName, cvVrfOperStatus } -- Status -- mandatory DESCRIPTION "This notification is generated when: a. The ifOperStatus of an interface associated with a VRF changes to the down(2) state. b. When an interface with ifOperStatus = up(1) state is disassociated with a VRF. The interface is identified by ifName and the VRF is identified by cvVrfName varbinds respectively. If all the interfaces associated with the VRF are in down(2) state or if there are no more interfaces associated with the VRF, then the cvVrfOperStatus will have a value of down(2)." ::= 2 cvVnetTrunkUp TRAP-TYPE -- Reverse mappable trap ENTERPRISE ciscoVrfMIB VARIABLES { ifName } -- Status -- mandatory DESCRIPTION "This notification is generated when the ifOperStatus of a vNET trunk interface changes to the up(1) state. The interface is identified by ifName varbind. The notification will be generated for only those interfaces for which the cvInterfaceVnetTrunkEnabled object has a value of True(1)." ::= 3 cvVnetTrunkDown TRAP-TYPE -- Reverse mappable trap ENTERPRISE ciscoVrfMIB VARIABLES { ifName } -- Status -- mandatory DESCRIPTION "This notification is generated when the ifOperStatus of a vNET trunk interface changes to the down(2) state. The interface is identified by ifName varbind. The notification will be generated for only those interfaces for which the cvInterfaceVnetTrunkEnabled object has a value of True(1)." ::= 4 cvMIBVrfGroup OBJECT IDENTIFIER ::= { cvMIBGroups 1 } -- OBJECT-GROUP -- Status -- mandatory -- Descr -- Collection of objects needed for VRF and VRF-Lite management. -- objects -- cvVrfOperStatus, cvVrfStorageType, cvVrfRowStatus, -- cvVrfRouteDistProt, cvVrfInterfaceType, -- cvVrfInterfaceStorageType, cvVrfInterfaceRowStatus, -- cvVrfIfNotifEnable, cvVrfName cvMIBVnetGroup OBJECT IDENTIFIER ::= { cvMIBGroups 3 } -- OBJECT-GROUP -- Status -- mandatory -- Descr -- Collection of objects needed for vNET management. -- objects -- cvVrfVnetTag, cvVrfListVrfIndex, cvVrfListStorageType, -- cvVrfListRowStatus, cvVrfInterfaceVnetTagOverride, -- cvInterfaceVnetTrunkEnabled, cvInterfaceVnetVrfList, -- cvVnetTrunkNotifEnable cvMIBVrfNotifGroup OBJECT IDENTIFIER ::= { cvMIBGroups 2 } -- NOTIFICATION-GROUP -- Status -- mandatory -- Descr -- Collection of VRF notifications. -- notifications -- cvVrfIfUp, cvVrfIfDown cvMIBVnetNotifGroup OBJECT IDENTIFIER ::= { cvMIBGroups 4 } -- NOTIFICATION-GROUP -- Status -- mandatory -- Descr -- Collection of VRF and vNET notifications. -- notifications -- cvVnetTrunkUp, cvVnetTrunkDown cvMIBCompliance OBJECT IDENTIFIER ::= { cvMIBCompliances 1 } -- MODULE-COMPLIANCE -- Status -- mandatory -- Descr -- The compliance statement for SNMP Agents which -- implement this MIB. -- Module -- >>current<< -- MandGroup -- cvMIBVrfGroup -- MandGroup -- cvMIBVrfNotifGroup -- OptGroup -- cvMIBVnetGroup -- OptGroup -- cvMIBVnetNotifGroup -- ObjVar -- cvVrfVnetTag -- ObjVar -- cvVrfInterfaceVnetTagOverride -- ObjVar -- cvVrfRowStatus -- ObjVar -- cvVrfListRowStatus -- ObjVar -- cvVrfInterfaceRowStatus -- ObjVar -- cvInterfaceVnetTrunkEnabled -- ObjVar -- cvInterfaceVnetVrfList END