HUAWEI-MPLS-BGP-VPN-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, experimental, Integer32, Counter32, Unsigned32, TimeTicks FROM SNMPv2-SMI MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP FROM SNMPv2-CONF TEXTUAL-CONVENTION, TruthValue, RowStatus, StorageType, TimeStamp, DisplayString FROM SNMPv2-TC InterfaceIndex FROM IF-MIB SnmpAdminString FROM SNMP-FRAMEWORK-MIB InetAddress, InetAddressType FROM INET-ADDRESS-MIB huaweiMgmt FROM HUAWEI-3COM-OID-MIB; hwMpls OBJECT IDENTIFIER ::= { huaweiMgmt 12 } hwMplsVpn MODULE-IDENTITY LAST-UPDATED "200107201200Z" -- 20 July 2001 12:00:00 GMT ORGANIZATION "Provider Provisioned Virtual Private Networks Working Group." CONTACT-INFO " Thomas D. Nadeau tnadeau@cisco.com Luyuan Fang luyuanfang@att.com Stephen Brannon Fabio M. Chiussi fabio@bell-labs.com Joseph Dube jdube@avici.com Martin Tatham martin.tatham@bt.com Harmen Van Der Linde hvdl@att.com Comments and discussion to ppvpn@ietf.org" DESCRIPTION "This MIB contains managed object definitions for the Multiprotocol Label Switching (MPLS)/Border Gateway Protocol (BGP) Virtual Private Networks (VPNs) as defined in : Rosen, E., Viswanathan, A., and R. Callon, Multiprotocol Label Switching Architecture, Internet Draft , August 1999." -- Revision history. REVISION "200107201200Z" -- 20 July 2001 12:00:00 GMT DESCRIPTION "Re-published as PPVPN working group draft. No changes between this version and last; just name change." REVISION "200107171200Z" -- 17 July 2001 12:00:00 GMT DESCRIPTION "Removed mplsVpnVrfRouteTargetImport/Export from route target table, and modified indexing to better reflect N <> R distribution policy. Also added new object called mplsVpnVrfRouteTargetType which denotes import/export policy for the specified route target. Added mplsVpnInterfaceConfRowStatus which allows for an interface to be associated with a VPN through SNMP configuration. Added VrfName to index of VrfInterfaceConfEntry which allows interfaces to be associated with the appropriate VRF. Modified description of mplsVpnVrfConfMaxPossibleRoutes and mplsVpnVrfConfMaxRoutes to allow for undetermined value. Removed 'both' enumerated value in mplsVpnVrfBgpNbrRole. Updated example to reflect these changes." REVISION "200107101200Z" -- 10 July 2001 12:00:00 GMT DESCRIPTION "Renamed mplsNumVrfSecViolationThreshExceeded to mplsNumVrfSecIllegalLabelThreshExceeded, and removed mplsVpnInterfaceConfIndex from varbind. Changed MplsVpnId TC from SnmpAdminString to OCTET STRING. Added mplsVpnVrfSecIllegalLabelRcvThresh to mplsVpnVrfSecEntry. Changed duplicate mplsVpnVrfRouteTargetImport in mplsVpnVrfRouteTargetEntry INDEX to mplsVpnVrfRouteTargetExport." REVISION "200106191200Z" -- 19 June 2001 12:00:00 GMT DESCRIPTION "Fixed several compile errors." REVISION "200105301200Z" -- 30 May 2001 12:00:00 EST DESCRIPTION "Updated most of document and MIB to reflect comments from WG." REVISION "200009301200Z" -- 30 September 2000 12:00:00 EST DESCRIPTION "Initial draft version." ::= { hwMpls 3 } -- To be assigned -- Textual Conventions. MplsVpnId ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "An identifier that is assigned to each MPLS/BGP VPN and is used to uniquely identify it. This is assigned by the system operator or NMS and SHOULD be unique throughout the MPLS domain. If this is the case, then this identifier can then be used at any LSR within a specific MPLS domain to identify this MPLS/BGP VPN. It may also be possible to preserve the uniqueness of this identifier across MPLS domain boundaries, in which case this identifier can then be used to uniquely identify MPLS/BGP VPNs on a more global basis." REFERENCE "RFC 2685 [VPN-RFC2685] Fox B., et al, 'Virtual Private Networks Identifier', September 1999." SYNTAX OCTET STRING(SIZE (0..31)) MplsVpnRouteDistinguisher ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "Syntax for a route distinguisher and route target." SYNTAX OCTET STRING(SIZE (0..256)) -- Top level components of this MIB. mplsVpnObjects OBJECT IDENTIFIER ::= { hwMplsVpn 1 } mplsVpnScalars OBJECT IDENTIFIER ::= { mplsVpnObjects 1 } mplsVpnConf OBJECT IDENTIFIER ::= { mplsVpnObjects 2 } mplsVpnRoute OBJECT IDENTIFIER ::= { mplsVpnObjects 3 } -- Scalar Objects mplsVpnConfiguredVrfs OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of VRFs which are configured on this node." ::= { mplsVpnScalars 1 } mplsVpnActiveVrfs OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of VRFs which are active on this node. That is, those whose operStatus = Up (1)." ::= { mplsVpnScalars 2 } -- VPN Interface Configuration Table mplsVpnInterfaceConfTable OBJECT-TYPE SYNTAX SEQUENCE OF MplsVpnInterfaceConfEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table specifies per-interface MPLS capability and associated information." ::= { mplsVpnConf 1 } mplsVpnInterfaceConfEntry OBJECT-TYPE SYNTAX MplsVpnInterfaceConfEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry in this table is created by an LSR for every interface capable of supporting MPLS/BGP VPN. Each entry in this table is meant to correspond to an entry in the Interfaces Table." INDEX { mplsVpnVrfName, mplsVpnInterfaceConfIndex } ::= { mplsVpnInterfaceConfTable 1 } MplsVpnInterfaceConfEntry ::= SEQUENCE { mplsVpnInterfaceConfIndex InterfaceIndex, mplsVpnInterfaceLabelEdgeType INTEGER, mplsVpnInterfaceVpnClassification INTEGER, mplsVpnInterfaceIpAddress InetAddress, mplsVpnInterfaceIpAddressMask InetAddress, mplsVpnInterfaceConfRowStatus RowStatus } mplsVpnInterfaceConfIndex OBJECT-TYPE SYNTAX InterfaceIndex MAX-ACCESS read-only STATUS current DESCRIPTION "This is a unique index for an entry in the MplsVPNInterfaceConfTable." REFERENCE "RFC 2233 - The Interfaces Group MIB using SMIv2, McCloghrie, K., and F. Kastenholtz, Nov. 1997" ::= { mplsVpnInterfaceConfEntry 1 } mplsVpnInterfaceLabelEdgeType OBJECT-TYPE SYNTAX INTEGER { providerEdge (1), customerEdge (2) } MAX-ACCESS read-only STATUS current DESCRIPTION "Either the providerEdge(1) (PE) or customerEdge(2) (CE) bit MUST be set." DEFVAL { providerEdge } ::= { mplsVpnInterfaceConfEntry 2 } mplsVpnInterfaceVpnClassification OBJECT-TYPE SYNTAX INTEGER { carrierOfCarrier (1), enterprise (2), interProvider (3) } MAX-ACCESS read-only STATUS current DESCRIPTION "Denotes whether this link participates in a carrier-of-carrier's, enterprise, or inter-provider scenario." ::= { mplsVpnInterfaceConfEntry 3 } mplsVpnInterfaceIpAddress OBJECT-TYPE SYNTAX InetAddress MAX-ACCESS read-create STATUS current DESCRIPTION "The IP address of this interface." ::= { mplsVpnInterfaceConfEntry 4 } mplsVpnInterfaceIpAddressMask OBJECT-TYPE SYNTAX InetAddress MAX-ACCESS read-create STATUS current DESCRIPTION "The IP address mask of this interface." ::= { mplsVpnInterfaceConfEntry 5 } mplsVpnInterfaceConfRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "The row status for this entry. This value is used to create a row in this table, signifying that the specified interface is to be associated with the specified interface. If this operation suceeds, the interface will have been associated, otherwise the agent would not allow the association. If the agent only allows read-only operations on this table, it will create entries in this table as they are created." ::= { mplsVpnInterfaceConfEntry 6 } -- VRF Configuration Table mplsVpnVrfConfTable OBJECT-TYPE SYNTAX SEQUENCE OF MplsVpnVrfConfEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table specifies per-interface MPLS/BGP VPN VRF Table capability and associated information. Entries in this table define VRF routing instances associated with MPLS/VPN interfaces. Note that multiple interfaces can belong to the same VRF instance. The collection of all VRF instances comprises an actual VPN." ::= { mplsVpnConf 2 } mplsVpnVrfConfEntry OBJECT-TYPE SYNTAX MplsVpnVrfConfEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry in this table is created by an LSR for every VRF capable of supporting MPLS/BGP VPN. The indexing provides an ordering of VRFs per-VPN interface." INDEX { mplsVpnVrfName } ::= { mplsVpnVrfConfTable 1 } MplsVpnVrfConfEntry ::= SEQUENCE { mplsVpnVrfName MplsVpnId, mplsVpnVrfRouteDistinguisher MplsVpnRouteDistinguisher, mplsVpnVrfNetPrefixType INTEGER, mplsVpnVrfNetPrefix InetAddress, mplsVpnVrfIpRouteRedistributeConn TruthValue, mplsVpnVrfIpRouteRedistributeStatic TruthValue, mplsVpnVrfIpRouteRedistributeRip TruthValue, mplsVpnVrfConfHighRouteThreshold Unsigned32, mplsVpnVrfConfIsWarnOnly TruthValue, mplsVpnVrfConfMaxRoutes Unsigned32, mplsVpnVrfConfRowStatus RowStatus } mplsVpnVrfName OBJECT-TYPE SYNTAX MplsVpnId MAX-ACCESS read-only STATUS current DESCRIPTION "The human-readable name of this VPN. This MAY be equivalent to the RFC2685 VPN-ID." REFERENCE "RFC 2685 [VPN-RFC2685] Fox B., et al, `Virtual Private Networks Identifier`, September 1999." ::= { mplsVpnVrfConfEntry 1 } mplsVpnVrfRouteDistinguisher OBJECT-TYPE SYNTAX MplsVpnRouteDistinguisher MAX-ACCESS read-create STATUS current DESCRIPTION "The route distinguisher for this VRF." ::= { mplsVpnVrfConfEntry 2 } mplsVpnVrfNetPrefixType OBJECT-TYPE SYNTAX INTEGER { other(1), rip(2), ospf(3), isis(4), bgp(5), static(6) } MAX-ACCESS read-only STATUS current DESCRIPTION "Denotes the type network prefix in use for the PE-CE connections. " ::= { mplsVpnVrfConfEntry 3 } mplsVpnVrfNetPrefix OBJECT-TYPE SYNTAX InetAddress MAX-ACCESS read-only STATUS current DESCRIPTION "Denotes the network prefix for the PE-CE connections." ::= { mplsVpnVrfConfEntry 4 } mplsVpnVrfIpRouteRedistributeConn OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-create STATUS current DESCRIPTION "Denotes the redistribution of directly connected networks into the VRF BGP table." ::= { mplsVpnVrfConfEntry 5 } mplsVpnVrfIpRouteRedistributeStatic OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-create STATUS current DESCRIPTION "Denotes the redistribution of static routes into the VRF BGP table." ::= { mplsVpnVrfConfEntry 6 } mplsVpnVrfIpRouteRedistributeRip OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-create STATUS current DESCRIPTION "Denotes the redistribution of rip routes into the VRF BGP table." ::= { mplsVpnVrfConfEntry 7 } mplsVpnVrfConfHighRouteThreshold OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-create STATUS current DESCRIPTION "Denotes high-level water marker for the number of routes which this VRF may hold." ::= { mplsVpnVrfConfEntry 8 } mplsVpnVrfConfIsWarnOnly OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-create STATUS current DESCRIPTION "Denotes the action when the amount of VPN's routes exceed the mplsVpnVrfConfHighRouteThreshold." ::= { mplsVpnVrfConfEntry 9 } mplsVpnVrfConfMaxRoutes OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-create STATUS current DESCRIPTION "Denotes maximum number of routes which this VRF is configured to hold. This value MUST be less than or equal to mplsVrfMaxPossibleRoutes unless it is set to 0." ::= { mplsVpnVrfConfEntry 10 } mplsVpnVrfConfRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "This variable is used to create, modify, and/or delete a row in this table." ::= { mplsVpnVrfConfEntry 11 } -- MplsVpnRouteTargetTable mplsVpnVrfRouteTargetTable OBJECT-TYPE SYNTAX SEQUENCE OF MplsVpnVrfRouteTargetEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table specifies per-VRF route target association. Each entry identifies a connectivity policy supported as part of a VPN." ::= { mplsVpnConf 3 } mplsVpnVrfRouteTargetEntry OBJECT-TYPE SYNTAX MplsVpnVrfRouteTargetEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION " An entry in this table is created by an LSR for each route target configured for a VRF supporting a MPLS/BGP VPN instance. The indexing provides an ordering per-VRF instance." INDEX { mplsVpnVrfName, mplsVpnVrfRouteTarget, mplsVpnVrfRouteTargetType } ::= { mplsVpnVrfRouteTargetTable 1 } MplsVpnVrfRouteTargetEntry ::= SEQUENCE { mplsVpnVrfRouteTarget MplsVpnRouteDistinguisher, mplsVpnVrfRouteTargetType INTEGER, mplsVpnVrfRouteTargetRowStatus RowStatus } mplsVpnVrfRouteTarget OBJECT-TYPE SYNTAX MplsVpnRouteDistinguisher MAX-ACCESS read-only STATUS current DESCRIPTION "The route target distribution policy." ::= { mplsVpnVrfRouteTargetEntry 1 } mplsVpnVrfRouteTargetType OBJECT-TYPE SYNTAX INTEGER { import(1), export(2) } MAX-ACCESS read-only STATUS current DESCRIPTION "The route target export distribution type." ::= { mplsVpnVrfRouteTargetEntry 2 } mplsVpnVrfRouteTargetRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "Row status for this entry." ::= { mplsVpnVrfRouteTargetEntry 3 } -- MplsVpnVrfBgpNbrAddrTable -- Ed Note: how does this table relate to the BGP peering table; -- this is only EBGP; what about IBGP info? -- route/tag distributions mplsVpnVrfBgpNbrAddrTable OBJECT-TYPE SYNTAX SEQUENCE OF MplsVpnVrfBgpNbrAddrEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table specifies per-interface MPLS/BGP neighbor addresses for both PEs and CEs." ::= { mplsVpnConf 4 } mplsVpnVrfBgpNbrAddrEntry OBJECT-TYPE SYNTAX MplsVpnVrfBgpNbrAddrEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry in this table is created by an LSR for every VRF capable of supporting MPLS/BGP VPN. The indexing provides an ordering of VRFs per-VPN interface." INDEX { mplsVpnVrfName, mplsVpnVrfBgpNbrAddr } ::= { mplsVpnVrfBgpNbrAddrTable 1 } MplsVpnVrfBgpNbrAddrEntry ::= SEQUENCE { mplsVpnVrfBgpNbrAddr InetAddress, mplsVpnVrfBgpNbrRole INTEGER, mplsVpnVrfBgpNbrType InetAddressType, mplsVpnVrfBgpNbrAsNumber Unsigned32, mplsVpnVrfBgpNbrAdminStatus INTEGER, mplsVpnVrfBgpNbrRowStatus RowStatus } mplsVpnVrfBgpNbrAddr OBJECT-TYPE SYNTAX InetAddress MAX-ACCESS read-only STATUS current DESCRIPTION "Denotes the BGP neighbor address." ::= { mplsVpnVrfBgpNbrAddrEntry 1 } mplsVpnVrfBgpNbrRole OBJECT-TYPE SYNTAX INTEGER { ce(1), pe(2) } MAX-ACCESS read-create STATUS current DESCRIPTION "Denotes the role played by this BGP neighbor with respect to this VRF." ::= { mplsVpnVrfBgpNbrAddrEntry 2 } mplsVpnVrfBgpNbrType OBJECT-TYPE SYNTAX InetAddressType MAX-ACCESS read-create STATUS current DESCRIPTION "Denotes the address family of the PE address." ::= { mplsVpnVrfBgpNbrAddrEntry 3 } mplsVpnVrfBgpNbrAsNumber OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-create STATUS current DESCRIPTION "The Automonous System that the BGP's neighbour in." ::= { mplsVpnVrfBgpNbrAddrEntry 4 } mplsVpnVrfBgpNbrAdminStatus OBJECT-TYPE SYNTAX INTEGER { mplsVpnVrfBgpNbrSetUp (1), mplsVpnVrfBgpNbrSetDown (2) } MAX-ACCESS read-create STATUS current DESCRIPTION "The action set by SNMP client." ::= { mplsVpnVrfBgpNbrAddrEntry 5 } mplsVpnVrfBgpNbrRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "This variable is used to create, modify, and/or delete a row in this table." ::= { mplsVpnVrfBgpNbrAddrEntry 6 } -- VRF Routing Table mplsVpnVrfRouteTable OBJECT-TYPE SYNTAX SEQUENCE OF MplsVpnVrfRouteEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table specifies per-interface MPLS/BGP VPN VRF Table routing information. Entries in this table define VRF routing entries associated with the specified MPLS/VPN interfaces. Note that this table contains both BGP and IGP routes, as both may appear in the same VRF." REFERENCE "1. RFC 1213 Section 6.6, The IP Group. 2. RFC 2096 " ::= { mplsVpnRoute 1 } mplsVpnVrfRouteEntry OBJECT-TYPE SYNTAX MplsVpnVrfRouteEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry in this table is created by an LSR for every route present configured (either dynamically or statically) within the context of a specific VRF capable of supporting MPLS/BGP VPN. The indexing provides an ordering of VRFs per-VPN interface." INDEX { mplsVpnVrfName, mplsVpnVrfRouteDest, mplsVpnVrfRouteMask, mplsVpnVrfRouteNextHop } ::= { mplsVpnVrfRouteTable 1 } MplsVpnVrfRouteEntry ::= SEQUENCE { mplsVpnVrfRouteDest InetAddress, mplsVpnVrfRouteMask InetAddress, mplsVpnVrfRouteNextHop InetAddress, mplsVpnVrfRouteIfIndex InterfaceIndex, mplsVpnVrfRouteProto INTEGER, mplsVpnVrfRouteRowStatus RowStatus } mplsVpnVrfRouteDest OBJECT-TYPE SYNTAX InetAddress MAX-ACCESS read-only STATUS current DESCRIPTION "The destination IP address of this route. This object may not take a Multicast (Class D) address value." ::= { mplsVpnVrfRouteEntry 1 } mplsVpnVrfRouteMask OBJECT-TYPE SYNTAX InetAddress MAX-ACCESS read-create STATUS current DESCRIPTION "Indicate the mask to be logical-ANDed with the destination address before being compared to the value in the mplsVpnVrfRouteDest field. For those systems that do not support arbitrary subnet masks, an agent constructs the value of the mplsVpnVrfRouteMask 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 bit-wise logical-AND of x with the value of the corresponding instance of the mplsVpnVrfRouteDest object is not equal to mplsVpnVrfRouteDest." ::= { mplsVpnVrfRouteEntry 2 } mplsVpnVrfRouteNextHop OBJECT-TYPE SYNTAX InetAddress MAX-ACCESS read-only STATUS current DESCRIPTION "On remote routes, the address of the next system en route; Otherwise, 0.0.0.0. ." ::= { mplsVpnVrfRouteEntry 3 } mplsVpnVrfRouteIfIndex OBJECT-TYPE SYNTAX InterfaceIndex MAX-ACCESS read-create STATUS current DESCRIPTION "The ifIndex value that identifies the local interface through which the next hop of this route should be reached." ::= { mplsVpnVrfRouteEntry 4 } mplsVpnVrfRouteProto 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 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-create STATUS current DESCRIPTION "The routing mechanism via which this route was learned. Inclusion of values for gateway rout- ing protocols is not intended to imply that hosts should support those protocols." ::= { mplsVpnVrfRouteEntry 5 } mplsVpnVrfRouteRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "Row status for this table. It is used according to row installation and removal conventions." ::= { mplsVpnVrfRouteEntry 6 } -- End of MPLS-VPN-MIB END