// =================================================================== // Title: Network MPLS 2.8 Preliminary // Filename: Network28_MPLS.mof // Version: 2.8 // Status: Preliminary // Date: August 18, 2003 // =================================================================== // Copyright 1998-2003 Distributed Management Task Force, Inc. (DMTF). // All rights reserved. // DMTF is a not-for-profit association of industry members dedicated // to promoting enterprise and systems management and interoperability. // DMTF specifications and documents may be reproduced for uses // consistent with this purpose by members and non-members, // provided that correct attribution is given. // As DMTF specifications may be revised from time to time, // the particular version and release date should always be noted. // // Implementation of certain elements of this standard or proposed // standard may be subject to third party patent rights, including // provisional patent rights (herein "patent rights"). DMTF makes // no representations to users of the standard as to the existence // of such rights, and is not responsible to recognize, disclose, or // identify any or all such third party patent right, owners or // claimants, nor for any incomplete or inaccurate identification or // disclosure of such rights, owners or claimants. DMTF shall have no // liability to any party, in any manner or circumstance, under any // legal theory whatsoever, for failure to recognize, disclose, or // identify any such third party patent rights, or for such party's // reliance on the standard or incorporation thereof in its product, // protocols or testing procedures. DMTF shall have no liability to // any party implementing such standard, whether such implementation // is foreseeable or not, nor to any patent owner or claimant, and shall // have no liability or responsibility for costs or losses incurred if // a standard is withdrawn or modified after publication, and shall be // indemnified and held harmless by any party implementing the // standard from any and all claims of infringement by a patent owner // for such implementations. // // For information about patents held by third-parties which have // notified the DMTF that, in their opinion, such patent may relate to // or impact implementations of DMTF standards, visit // http://www.dmtf.org/about/policies/disclosures.php. // =================================================================== // Description: The Network Model extends the management concepts to // represent protocol interfaces and network/protocol // services. This file defines concepts in support of // managing MPLS (Multi-Protocol Label Switching). // // The object classes below are listed in an order that // avoids forward references. Required objects, defined // by other working groups, are omitted. // ================================================================== // Change Log for v2.8 Preliminary // CR1061 - Add the MPLS Sub-Model that was removed from 2.7 Final. // CR1128 - Change subclassing from CIM_Dependency to // CIM_HostedDependency for identified classes. This is // needed as a result of the introduction of HostedDependency // by SysDev // // Change Log for v2.7.1 // CR920 - Add missing parenthesis to the Description for MPLSTunnel. // IncludeAnyAffinity // // Change Log for v2.7 // CR790 - Add classes to support MPLS // CR805 - Add MPLSSpecifiedRoute, MPLSSpecifiedNextHop, // MPSLComputedNextHop, and RouteSpecifiedForLSP // CR853 - MPLS Model changes: MPLSQoSPRTrfcProf should subclass from // SettingData and several property names are updated in // MPLSSegmentStats // CR905 - MPLS cleanup and updates // Add - MPLSTunnel, MPLSReverseDirectionTunnel, // MPLSTunnelHops, MPLSNextTunnelHop, // MPLSFecOfTunnel and MPLSTunnelStats // Remove - MPLSSpecifiedRoute, MPLSSpecifedNextHop, // MPLSComputedNextHop, RouteSpecifiedForLSP, // MPLSLSPTunnel, MPLSTrafficTrunk, // MPLSFecOfTrafficTrunk, MPLSFecOfLSP // and MPLSBiDirectionalTrunks // CR907 - MPLS cleanup and updates // Add - MPLSTunnelHop and HostedMPLSTunnelHop // Rename MPLSTunnelHops to MPLSHopInTunnel // Rename MPLSNextTunnelHop to MPLSNextHopInTunnel // Change reference from MPLSTrafficTrunk to MPLSTunnel // in MPLSCurrentlyAssignedLSP and MPLSBackupLSP // Rename MPLSTunnel.TunnelingSignalingProtocol to // TunnelSignalingProtocol // Remove .IsPinned, .LocalProtectionAvailable, .IsAdaptive, // and .IsDynamicallyRouted properties from MPLSLSP // Promote properties of MPLSTEService to MPLSService, // and remove MPLSTEService // Rename MPLSTunnelStats.MPLSTunnelStateTransitions to // TunnelStateTransitions // // =================================================================== #pragma Locale ("en_US") // ================================================================== // MPLSService // ================================================================== [Experimental, Version ("2.7.1000"), Description ( "This object class contains properties relating to the overall " "operation of MPLS on a router. This service is weak to the " "router (modeled as a ComputerSystem) via the association " "CIM_HostedService.") ] class CIM_MPLSService: CIM_Service { [Description ( "Path computation may be configured to be more or less " "reactive to network state. It may be desirable to have " "different values on different LSRs. Also, certain tunnels " "may not be re-optimized. This property specifies the " "re-optimization frequency for the LSR, in seconds. Default " "is 3600 (1 hour). The maximum interval is 604800 seconds " "(1 week). A value of 0 disables re- optimization."), Units ("Seconds"), MaxValue (604800) ] uint32 ReoptimizationFreq = 3600; [Description ( "Specifies the time interval in seconds at which traffic " "engineering information is flooded. Shorter intervals lead " "to more control overhead, more traffic in the network and " "more cycles wasted in processing this information at the " "routers. On the other hand longer intervals, make the " "route chosen for the tunnels to be less optimal with " "respect to the state of the network."), Units ("Seconds") ] uint16 FloodingInterval; [Description ( "This property describes what happens when the MPLSTEService " "obtains knowledge about a new link coming into operation. " "The value 'OnLinkUp' (1) denotes that immediately after " "detecting the new link, a re-optimization step is " "performed. 'NextTimeInSchedule' (2) waits until the next " "time a re- optimization needs to take place. The frequency " "is defined by the ReoptimizationFreq property. And, " "'Manual Trigger' (3) means the re-optimization MUST be " "triggered by manual interaction such as a human operator " "triggering the re-optimization."), ValueMap {"0", "1", "2", "3"}, Values {"Unknown", "OnLinkUp", "NextTimeInSchedule", "ManualTrigger"} ] uint16 ReoptimizationLinkUp; }; // ================================================================== // MPLSCapabilities // ================================================================== [Experimental, Version ("2.7.1000"), Description ( "This class specifies the capabilities of an MPLSService or " "MPLSProtocolEndpoint (interface) on a Label Switched Router " "(LSR). The association CIM_ElementCapabilities relates the " "instance with its MPLS Service and/or Endpoint.") ] class CIM_MPLSCapabilities : CIM_Capabilities { [Description ( "This is the minimum value of an MPLS label that this " "Endpoint or MPLSService is willing to receive. The values " "of an MPLSProtocolEndpoint may overrule the values " "specified for the LSR as a whole, based on the Endpoint's " "boolean property OverruleLSR."), MappingStrings { "MIB.IETF|MPLS-LSR-MIB.MPLSInterfaceLabelMinIn"} ] uint32 LabelMinIn; [Description ( "This is the maximum value of an MPLS label that this " "Endpoint or MPLSService is willing to receive. The values " "of an MPLSProtocolEndpoint may overrule the values " "specified for the LSR as a whole, based on the Endpoint's " "boolean property OverruleLSR."), MappingStrings { "MIB.IETF|MPLS-LSR-MIB.MPLSInterfaceLabelMaxIn"} ] uint32 LabelMaxIn; [Description ( "This is the minimum value of an MPLS label that this " "Endpoint or MPLSService is willing to send. The values of " "an MPLSProtocolEndpoint may overrule the values specified " "for the LSR as a whole, based on the Endpoint's boolean " "property OverruleLSR."), MappingStrings { "MIB.IETF|MPLS-LSR-MIB.MPLSInterfaceLabelMinOut"} ] uint32 LabelMinOut; [Description ( "This is the maximum value of an MPLS label that this " "Endpoint or MPLSService is willing to send. The values of " "an MPLSProtocolEndpoint may overrule the values specified " "for the LSR as a whole, based on the Endpoint's boolean " "property OverruleLSR."), MappingStrings { "MIB.IETF|MPLS-LSR-MIB.MPLSInterfaceLabelMaxOut"} ] uint32 LabelMaxOut; }; // ================================================================== // MPLSProtocolEndpointStats // ================================================================== [Experimental, Version ("2.7.1000"), Description ( "This class represents the statistics for an MPLSProtocol " "Endpoint. The statistics are associated with the Endpoint " "using the relationship CIM_ElementStatisticalData.") ] class CIM_MPLSProtocolEndpointStats : CIM_StatisticalData { [Description ( "This object contains the number of top-most labels that are " "in use at this point in time on this interface in the " "incoming direction."), Gauge, MappingStrings { "MIB.IETF|MPLS-LSR-MIB.MPLSInterfaceInLabelsUsed"} ] uint32 InLabelsUsed; [Description ( "This object contains the number of top-most labels that are " "in use at this point in time on this interface in the " "outgoing direction."), Gauge, MappingStrings { "MIB.IETF|MPLS-LSR-MIB.MPLSInterfaceOutLabelsUsed"} ] uint32 OutLabelsUsed; [Description ( "This object counts the number of labeled packets that have " "been received on this interface and were discarded because " "there was no matching cross-connect entry."), Counter, MappingStrings { "MIB.IETF|MPLS-LSR-MIB.MPLSInterfaceFailedLabelLookup"} ] uint32 FailedLabelLookups; [Description ( "This object counts the number of outgoing MPLS packets that " "required fragmentation before transmission on this " "interface."), Counter, MappingStrings { "MIB.IETF|MPLS-LSR-MIB.MPLSInterfaceOutFragments"} ] uint32 NumberOfPacketsFragmented; }; // ================================================================== // MPLSLSP // ================================================================== [Experimental, Version ("2.7.1000"), Description ( "This class is used to represent an MPLS Label Switch Path " "(LSP). This is usually a path from an ingress to an egress " "label edge router, through a sequence of label switch " "routers. Sometimes an LSP is a series of hop-by-hop LSPs that " "go from the ingress to egress LSRs. For example, using " "unordered downstream unsolicited mode in LDP, the result is a " "series of 'mini' LSPs along the path, each with incoming and " "outgoing labels, and a FEC to accept traffic onto the 'mini' " "LSP at each hop.\n" "\n" "An instance describes either an existing LSP, or the user's " "configurations of one to be established in the network. The " "boolean property, Established, indicates the state of the instance.\n" "\n" "Note that MPLSLSP subclasses from EnabledLogicalElement. This " "allows (via inherited properties) the explicit enabling and " "disabling of the path, as well as the ability to request that " "the path be 'tested' or shut down.") ] class CIM_MPLSLSP : CIM_EnabledLogicalElement { [Key, Description ( "InstanceID opaquely identifies a unique instance of " "MPLSLSP. The InstanceID must be unique within a " "namespace. In order to ensure uniqueness, the value of " "InstanceID should be constructed in the following manner: " "The instance id consists of the IPAddress of the ingress " "LSR, combined with the LocalLSPId found in this class.") ] string InstanceID; [Write, Description ( "Boolean indicating whether or not the LSP currently exists " "in the network. Note that if the LSP is not established, " "then the OperationalStatus properties inherited from " "Managed SystemElement have no meaning.") ] boolean Established; [Description ( "Property to indicate the nesting level of this LSP. Note " "that this a shortcut counting the number of instances of " "the MPLSLSPInLSP association. It is advantageous to " "determine the nesting level directly, instead of traversing " "several associations to do so.") ] uint16 NestingLevel; [Required, Description ( "Property indicating a unique (per ingress LSR) LSP ID.") ] uint16 LocalLSPId; [Description ( "The IP addresses of the ingress node(s) (LERs) of the " "path. This is an array to allow for multipoint LSPs.") ] string IngressIPAddresses[]; [Description ( "The IP addresses of the egress node(s) (LERs) of the path. " "This is an array to allow for multipoint LSPs.") ] string EgressIPAddresses[]; [Description ( "Flag to indicate that the LSP ingress node may choose to " "reroute this LSP without tearing it down.") ] boolean IngressMayReroute; [Description ( "Flag to indicate that this LSP should be restored " "automatically after a failure occurs.") ] boolean IsPersistent; }; // ================================================================== // MPLSTunnel // ================================================================== [Experimental, Version ("2.7.1000"), Description ( "This class represents an MPLS traffic engineering tunnel as " "defined in RFC 3031.") ] class CIM_MPLSTunnel : CIM_EnabledLogicalElement { [Key, Description ( "InstanceID opaquely identifies a unique instance of " "SettingData. The InstanceID must be unique within a " "namespace. In order to ensure uniqueness, the value of " "InstanceID SHOULD be constructed in the following manner:\n" "\n" " MUST include a copyrighted, trademarked or " "otherwise unique name that is owned by the business entity " "or a registered ID that is assigned to the business entity " "that is defining the InstanceID. (This is similar to the " "_ structure of Schema class " "names.) The purpose of is to ensure that " "is truly unique across multiple vendor implementations. If " "such a name is not used, the defining entity MUST assure " "that the portion of the Instance ID is unique when " "compared with other instance providers. For DMTF defined " "instances, the is 'CIM'.\n" " MUST include a vendor specified unique identifier.") ] string InstanceID; [Write, Description ( "Boolean indicating whether or not the tunnel is currently " "signaled. Note that if the tunnel is not established, then " "the OperationalStatus properties inherited from Managed " "SystemElement have no meaning.") ] boolean Established; [Description ( "The IsResilient property indicates the recovery procedure " "to be applied to tunnels whose paths are impacted by " "faults. More specifically, it contains a boolean value " "that determines whether the tunnel is to be rerouted or " "not, when segments of its path fail. If set to true, the " "tunnel should be rerouted in case of failure; if false, it " "should not (which means that other means are applied, e.g. " "lower layer technologies for rerouting.)") ] boolean IsResilient; [Description ( "The bandwidth property denotes the complete bandwidth (in " "kilobits per second) required to be transported by the " "tunnel. Note, that the bandwidth is not directly " "implemented/ configured in a router, but the MPLSTunnel's " "Reserved Bandwidth property might be derived from this " "information."), Units ("KiloBits per Second") ] uint32 Bandwidth; [Description ( "Reserved bandwidth for this tunnel in kilobits per second. " "In a load sharing environment, the bandwidth on each tunnel " "is set to be proportional to how traffic should be " "balanced. An LSR then load-shares into the tunnels based " "on the aggregate bandwidth. Note that it is possible to " "signal 0 bandwidth for a pure best-effort tunnel."), Units ("KiloBits per Second") ] uint32 ReservedBandwidth; [Description ( "Active bandwidth for this tunnel in kilobits per second. " "If the tunnel is not yet Established, then this property " "has no meaning. Knowing current Bandwidth is important " "because several path options may be configured for the " "tunnel. Note that it is possible to signal 0 bandwidth for " "a pure best- effort tunnel."), Units ("KiloBits per Second") ] uint32 ActiveBandwidth; [Description ( "Due to changes in network and traffic characteristics, " "there may be a need to periodically change the paths of " "tunnels for optimization purposes. This should not be done " "too frequently as it could adversely affect the stability " "of the network. This property indicates how often such " "reoptimization should be performed for a specific tunnel. " "Note that the class, CIM_MPLSTEService, also has a " "reoptimization frequency property. The frequency specified " "in this class is specific to a particular tunnel, whereas " "the MPLSTEService's frequency is per service, on a Label " "Switched Router."), Units ("Seconds"), MaxValue (604800) ] uint32 ReoptimizationFreq = 3600; [Description ( "Indicates whether the tunnel is a candidate for " "re-optimization at all. If true the ReoptimizationFreq " "property should be taken into account. By default, a " "tunnel is re-optimized periodically.") ] boolean Lockdown = true; [Description ( "Resource classes and resource class affinities are " "described in [RFC2702]. Resource classes can be associated " "with links and advertised in routing protocols. Resource " "class affinities are used by RSVP-TE [RFC3209]. In order " "to be used, a link MUST pass three tests. One of them is " "against this property.\n" "\n" "ExcludeAllAffinity is one type of resource class affinity. " "It specifies a set of attribute filters for the tunnel, and " "a match on any of the filters renders a link unacceptable " "(it is excluded for consideration). This test takes the form,\n" "(MPLSProtocolEndpoint.ResourceClass & ExcludeAllAffinity) " "== 0."), MappingStrings { "MIB.IETF|MPLS-TE-MIB.MPLSTunnelExcludeAllAffinity"} ] uint32 ExcludeAllAffinity; [Description ( "Resource classes and resource class affinities are " "described in [RFC2702]. Resource classes can be associated " "with links and advertised in routing protocols. Resource " "class affinities are used by RSVP-TE [RFC3209]. In order " "to be used, a link MUST pass three tests. One of them " "against this property.\n" "\n" "IncludeAllAffinity is one type of resource class affinity. " "It specifies a set of attribute filters for the tunnel, and " "all of the filters must match for a link to be acceptable " "(i.e., pass this test). If IncludeAllAffinity is zero, " "then the test automatically passes. The test takes the form,\n" "(IncludeAllAffinity == 0) || " "(((MPLSProtocolEndpoint.ResourceClass & IncludeAllAffinity) " "^ IncludeAllAffinity) == 0)"), MappingStrings { "MIB.IETF|MPLS-TE-MIB.MPLSTunnelIncludeAllAffinity"} ] uint32 IncludeAllAffinity; [Description ( "Resource classes and resource class affinities are " "described in [RFC2702]. Resource classes can be associated " "with links and advertised in routing protocols. Resource " "class affinities are used by RSVP-TE [RFC3209]. In order " "to be used, a link MUST pass three tests. One of them " "against this property.\n" "\n" "IncludeAnyAffinity is one type of resource class affinity. " "It specifies a set of attribute filters for the tunnel, and " "any of the filters must match for a link to be acceptable " "(i.e., pass this test). If IncludeAllAffinity is zero, " "then the test automatically passes. The test takes the form,\n" "(IncludeAnyAffinity == 0) || " "((MPLSProtocolEndpoint.ResourceClass & IncludeAnyAffinity) " "!= 0)"), MappingStrings { "MIB.IETF|MPLS-TE-MIB.MPLSTunnelIncludeAnyAffinity"} ] uint32 IncludeAnyAffinity; [Description ( "Property to indicate the holding priority of an established " "tunnel. If the tunnel is not yet established, this " "property has no meaning. A new tunnel is allowed to " "preempt the resources of this tunnel only if its " "SetupPriority is smaller than the HoldingPriority of the " "established one. (See RFC3209 for additional information.) " "The value 0 is the highest priority."), MinValue (0), MaxValue (7), MappingStrings {"MIB.IETF|MPLS-TE-MIB.mplsTunnelHoldingPrio"} ] uint8 HoldingPriority; [Description ( "Guaranteed bandwidth tunnels can have setup and preemption " "priorities associated with them. These priorities " "determine if an existing tunnel can be preempted by a new " "one. The SetupPriority of the new tunnel is compared to " "the Holding Priority of the established one, to determine " "if the new tunnel can preempt the existing one. It does " "preempt if the SetupPriority in smaller than the " "HoldingPriority. Note that the value 0 is the highest " "priority."), MinValue (0), MaxValue (7), MappingStrings {"MIB.IETF|MPLS-TE-MIB.mplsTunnelSetupPrio"} ] uint8 SetupPriority; [Description ( "Flag to indicate that this tunnel should be restored " "automatically after a failure occurs.") ] boolean IsPersistent; [Description ( "Flag to indicate whether the loosely-routed hops of this " "tunnel are to be pinned.") ] boolean IsPinned; [Description ( "Flag to indicate that transit routers are permitted to use " "a local repair mechanism which may result in violation of " "the explicit routing of this tunnel. When a fault is " "detected on an adjacent downstream link or node, a transit " "router can reroute traffic for fast service restoration.") ] boolean LocalProtectionAvailable; [Description ( "In some situations, it is necessary to reroute a tunnel " "without disrupting traffic. This flag indicates whether " "the tunnel's route is adaptive.") ] boolean IsAdaptive; [Description ( "Flag to indicate whether the route for the tunnel is " "selected dynamically based on routing protocols - as " "opposed to being specified 'statically' via configuration, " "where a network operator or other external entity specifies " "the path of the tunnel hop by hop.") ] boolean IsDynamicallyRouted; [Description ( "Flag to indicate that the tunnel ingress node may choose to " "reroute this tunnel without tearing it down.") ] boolean IngressMayReroute; [Description ( "The purpose of this object is to uniquely identity a tunnel " "within a network. When the MPLS signaling protocol is " "rsvp(3), this value SHOULD mimic the Extended Tunnel Id " "field in the SESSION object. When the MPLS signaling " "protoocol is crldp(4), this value SHOULD mimic the Ingress " "LSR Router ID field in the LSPID TLV object."), ModelCorrespondence { "CIM_MPLSTunnel.TunnelingSignalingProtocol"} ] uint32 IngressLSRId; [Description ( "ID of egress LSR.") ] uint32 EgressLSRId; [Override ("ElementName"), Description ( "The canonical name assigned to the tunnel. This name can " "be used to refer to the tunnel on the LSR's console port.") ] string ElementName; [Description ( "The signaling protocol, if any, which was used to setup " "this tunnel."), ValueMap {"0", "1", "2", "3", "4"}, Values {"Unknown", "Other", "None", "RSVP", "CRLDP"} ] uint8 TunnelSignalingProtocol; [Description ( "Indicates which protocol created and is responsible for " "managing this tunnel. Values rsvp(3) and crldp(4) should " "NOT be used at the head-end of an MPLS tunnel."), ValueMap {"0", "1", "2", "3", "4", "5"}, Values {"Unknown", "Other", "Admin", "RSVP", "CRDLP", "Policy Agent"} ] uint8 TunnelManagementOwner; [Description ( "This value represents the priority for a tunnel in " "descending order, with 0 indicating the lowest priority, " "within a group of tunnels used for redundancy/load " "sharing. Tunnel group priorities are used to denote the " "priority at which a particular tunnel instance will " "supercede another. Instances of tunnels containing the " "same TunnelInstancePriority will be used for load sharing.") ] uint32 TunnelInstancePriority ; [Description ( "This property signifies the role that this tunnel " "entry/instance represents. The value MUST be set to " "head(2) at the originating point of the tunnel, to " "transit(3) at transit points along the tunnel (if transit " "points are supported), and to tail(4) at the terminating " "point of the tunnel (if tunnel tails are supported)."), ValueMap {"0", "2", "3", "4"}, Values {"Unknown", "Head", "Transit", "Tail"} ] uint16 TunnelRole; }; // ================================================================== // MPLSReverseDirectionTunnel // ================================================================== [Association, Experimental, Version ("2.7.1000"), Description ( "Tunnels are unidirectional. This association relates two TE " "tunnels that carry traffic in reverse directions, creating a " "bi-directional connection.") ] class CIM_MPLSReverseDirectionTunnel : CIM_Dependency { [Override ("Antecedent"), Max (1), Description ( "An MPLSTunnel, which operates in the reverse direction of " "the Dependent reference.") ] CIM_MPLSTunnel REF Antecedent; [Override ("Dependent"), Max (1), Description ( "An MPLSTunnel, which operates in the reverse direction of " "the Antecedent reference.") ] CIM_MPLSTunnel REF Dependent; }; // ================================================================== // MPLSTunnelHop // ================================================================== [Experimental, Version ("2.7.1000"), Description ( "A destination in an MPLS tunnel. This may be specified by the " "user, calculated for the tunnel or actually in use. These " "different aspects are indicated by the HopDerivation " "enumeration.") ] class CIM_MPLSTunnelHop : CIM_RemoteServiceAccessPoint { [Description ( "The method used to determine the destination."), ValueMap {"0", "2", "3"}, Values {"Unknown", "User", "Calculated"} ] uint16 HopDerivation; }; // ================================================================== // MPLSHopInTunnel // ================================================================== [Association, Experimental, Version ("2.7.1000"), Description ( "This association represents the relationship between the " "tunnel head-end and the first hop in the tunnel's path. The " "hop may be of type Specified, Computed, or Actual.") ] class CIM_MPLSHopInTunnel : CIM_Dependency { [Override ("Antecedent"), Description ( "The head-end of an MPLS traffic engineering tunnel.") ] CIM_MPLSTunnelHop REF Antecedent; [Override ("Dependent"), Description ( "The MPLSTunnel whose first hop is described.") ] CIM_MPLSTunnel REF Dependent; }; // ================================================================== // MPLSNextHopInTunnel // ================================================================== [Association, Experimental, Version ("2.7.1000"), Description ( "This association represents the relationship between two " "consecutive tunnels hops.") ] class CIM_MPLSNextHopInTunnel : CIM_Dependency { [Override ("Antecedent"), Max (1), Description ( "Current MPLSTunnel hop.") ] CIM_MPLSTunnelHop REF Antecedent; [Override ("Dependent"), Max (1), Description ( "Next MPLSTunnel hop for the traversed path.") ] CIM_MPLSTunnelHop REF Dependent; }; // ================================================================== // HostedMPLSTunnelHop // ================================================================== [Association, Experimental, Version ("2.7.1000"), Description ( "HostedMPLSTunnelHop defines a MPLSTunnelHop in the context of " "a scoping AutonomousSystem. It represents a MPLSTunnelHop " "that only has meaning in the context of an AutonomousSystem.") ] class CIM_HostedMPLSTunnelHop : CIM_HostedDependency { [Override ("Antecedent"), Min (1), Max (1), Description ( "The scoping system.") ] CIM_AutonomousSystem REF Antecedent; [Override ("Dependent"), Description ( "The collection defined in the context of a system.") ] CIM_MPLSTunnelHop REF Dependent; }; // ================================================================== // MPLSFecOfTunnel // ================================================================== [Association, Experimental, Version ("2.7.1000"), Description ( "This association defines the forwarding equivalency class " "(FEC) for a traffic engineering tunnel. It is typically just " "an IP destination address - and can be defined using a " "FilterList. Although this is not truly a filter on the " "tunnel, the FilterList class is reused to describe the traffic " "on the tunnel.") ] class CIM_MPLSFecOfTunnel : CIM_Dependency { [Override ("Antecedent"), Max (1), Description ( "The FilterList defining the FEC of the MPLSTunnel.") ] CIM_FilterList REF Antecedent; [Override ("Dependent"), Description ( "The MPLSTunnel.") ] CIM_MPLSTunnel REF Dependent; }; // ================================================================== // MPLSTunnelStats // ================================================================== [Experimental, Version ("2.7.1000"), Description ( "This class represents the statistics for an MPLSTunnel. The " "statistics are associated to the tunnel using the " "relationship, CIM_ElementStatisticalData.") ] class CIM_MPLSTunnelStats : CIM_StatisticalData { [Description ( "Specifies the total time the primary tunnel has been " "active. A primary tunnel is found/designated in situations " "where multiple tunnels exist - i.e., when parallel or " "backup tunnels are defined."), Units ("Hundredths of a Second"), Counter, MaxValue (4294967295), MappingStrings { "MIB.IETF|MPLS-TE-MIB.MPLSTunnelPrimaryTimeUp"} ] uint32 TunnelPrimaryTimeUp; [Description ( "Specifies the number of times the paths have changed for " "this tunnel."), Counter, MappingStrings { "MIB.IETF|MPLS-TE-MIB.MPLSTunnelPathChanges"} ] uint32 TunnelPathChanges; [Description ( "Specifies the time since the last path change for this " "tunnel."), Units ("Hundredths of a Second"), Counter, MaxValue (4294967295), MappingStrings { "MIB.IETF|MPLS-TE-MIB.MPLSTunnelLastPathChange"} ] uint32 TunnelLastPathChange; [Description ( "Specifies the number of times the operational status of " "this tunnel has changed."), Counter, MappingStrings { "MIB.IETF|MPLS-TE-MIB.MPLSTunnelStateTransitions"} ] uint32 TunnelStateTransitions; [Description ( "This value identifies the total time for which the the " "OperationalStatus of the tunnel is up (i.e., \"OK\"=2)."), Units ("Hundredths of a Second"), Counter, MappingStrings { "MIB.IETF|MPLS-TE-MIB.MPLSTunnelInstanceUpTime"} ] uint32 TunnelInstanceUpTime; }; // ================================================================== // MPLSPerformance // ================================================================== [Experimental, Version ("2.7.1000"), Description ( "This class contains performance information for MPLS entities " "such as an MPLS Endpoint or LSP Tunnel. The statistics are " "associated with the MPSL entity, using the general " "CIM_ElementStatisticalData relationship.") ] class CIM_MPLSPerformance: CIM_StatisticalData { [Description ( "Denotes the number of packets lost."), Counter ] uint32 NumberOfPacketsLost; [Description ( "Denotes the number of packets successfully transmitted."), Counter ] uint32 NumberOfPacketsTransmitted; [Description ( "Denotes the number of octets transmitted."), Counter ] uint32 NumberOfOctets; [Description ( "Denotes the average delay of the packets transmitted in " "milliseconds."), Units ("MilliSeconds"), Gauge ] uint16 Delay; [Description ( "Denotes availability in hundredths of a percent."), Units ("Hundredths of Percent"), MinValue (0), MaxValue (100000) ] uint16 Availability; }; // ================================================================== // MPLSSegment // ================================================================== [Experimental, Abstract, Version ("2.7.1000"), Description ( "This class is abstract, and generalizes the notion of incoming " "and outgoing MPLS segments on an " "interface/MPLSProtocolEndpoint. (Both In and Out Segment " "subclasses are derived from MPLSSegment.) An instance is " "defined in the context of an MPLSProtocolEndpoint. This is " "specified using the association, CIM_MPLSSegmentOnProtocolEP.") ] class CIM_MPLSSegment : CIM_LogicalElement { [Key, Description ( "InstanceID opaquely identifies a unique instance of " "MPLSSegment. The InstanceID must be unique within a " "namespace. In order to ensure uniqueness, the value of " "InstanceID should be constructed in the following manner:\n" ".") ] string InstanceID; [Description ( "Denotes the entity that created and is responsible for " "managing this Segment. Note that the MappingString is " "depending on the instantiated class and corresponds to " "InSegmentOwner or OutSegmentOwner."), ValueMap {"0", "1", "2", "3", "4", "5", "6", "7"}, Values {"Unknown", "Other", "SNMP", "LDT", "RSVP", "CR-LDP", "Policy Agent", "CLI"}, MappingStrings {"MIB.IETF|MPLS-LSR-MIB.MPLSInSegmentOwner", "MIB.IETF|MPLS-LSR-MIB.MPLSIOutSegmentOwner"}, ModelCorrespondence {"CIM_MPLSSegment.OtherOwner"} ] uint16 SegmentOwner; [Description ( "If property SegmentOwner has a value 1 (\"Other\"), this " "property contains a string explaining the entity that " "created and manages the Segment."), ModelCorrespondence {"CIM_MPLSSegment.SegmentOwner"} ] string OtherOwner; }; // ================================================================== // MPLSSegmentStats // ================================================================== [Experimental, Version ("2.7.1000"), Description ( "The class represents the statistics for an In or Out " "MPLSSegment. The statistics are associated to the Segment " "using the relationship CIM_ElementStatisticalData.") ] class CIM_MPLSSegmentStats : CIM_StatisticalData { [Description ( "This value represents the total number of octets " "received/sent by this Segment. Whether it denotes In or " "Out Segments depends on the instance associated with " "MPLSSegmentStats."), Counter, MappingStrings {"MIB.IETF|MPLS-LSR-MIB.MPLSInSegmentOctets", "MIB.IETF|MPLS-LSR-MIB.MPLSIOutSegmentOctets"} ] uint32 NumberOfOctets; [Description ( "Total number of packets received/sent by this Segment. " "Whether this value denotes In or Out Segments depends on " "the instance associated with MPLSSegmentStats."), Counter, MappingStrings {"MIB.IETF|MPLS-LSR-MIB.MPLSInSegmentPackets", "MIB.IETF|MPLS-LSR-MIB.MPLSOutSegmentPackets"} ] uint32 NumberOfPackets; [Description ( "The number of errored packets received/sent on this " "Segment. Whether this value denotes In or Out Segments " "depends on the instance associated with MPLSSegmentStats."), Counter, MappingStrings {"MIB.IETF|MPLS-LSR-MIB.MPLSInSegmentErrors", "MIB.IETF|MPLS-LSR-MIB.MPLSIOutSegmentErrors"} ] uint32 NumberOfErrors; [Description ( "The number of labeled packets received/sent on this " "Segment, which were chosen to be discarded even though no " "errors had been detected to prevent their being " "transmitted. One possible reason for discarding such a " "labeled packet could be to free up buffer space. Whether " "this value denotes In or Out Segments depends on the " "instance associated with MPLSSegmentStats."), Counter, MappingStrings {"MIB.IETF|MPLS-LSR-MIB.MPLSInSegmentDiscards", "MIB.IETF|MPLS-LSR-MIB.MPLSIOutSegmentDiscards"} ] uint32 NumberOfDiscards; }; // ================================================================== // MPLSInSegment // ================================================================== [Experimental, Version ("2.7.1000"), Description ( "This class represents an incoming Segment on an MPLS " "interface.") ] class CIM_MPLSInSegment : CIM_MPLSSegment { [Required, Description ( "The incoming label for this segment."), MappingStrings {"MIB.IETF|MPLS-LSR-MIB.MPLSInSegmentLabel"} ] uint32 InLabel; [Description ( "The number of labels to pop from the incoming packet. " "Normally only the top label is popped from the packet, and " "used for all switching decisions. Note that technologies " "which do not support label popping should leave this value " "at its default (1)."), MappingStrings {"MIB.IETF|MPLS-LSR-MIB.MPLSInSegmentNPop"} ] uint32 NPop = 1; [Description ( "Describes the address type expected on the incoming " "Segment. This is used when the last label is popped to " "know to which IP stack the packet is forwarded."), ValueMap {"0", "1", "2"}, Values {"Unknown", "IPv4", "IPv6"}, MappingStrings {"MIB.IETF|MPLS-LSR-MIB.MPLSInSegmentAddrFamily"} ] uint16 AddressType; }; // ================================================================== // MPLSOutSegment // ================================================================== [Experimental, Version ("2.7.1000"), Description ( "This class represents an outgoing Segment on an MPLS " "interface.") ] class CIM_MPLSOutSegment : CIM_MPLSSegment { [Description ( "This value indicates whether or not a top label should be " "pushed onto the outgoing packet's label stack. The value " "of this variable must be set to true if the outgoing " "interface does not support pop- and-go (for example an ATM " "interface) or if it is a tunnel origination."), MappingStrings { "MIB.IETF|MPLS-LSR-MIB.MPLSOutSegmentPushTopLabel"} ] boolean PushTopLabel = true; [Required, Description ( "If the property, PushTopLabel, is true then this represents " "the label that should be pushed onto the top of the " "outgoing packet's label stack. If PushTopLabel is false, " "then the value should be 0."), MappingStrings { "MIB.IETF|MPLS-LSR-MIB.MPLSOutSegmentTopLabel"}, ModelCorrespondence {"CIM_MPLSOutSegment.PushTopLabel"} ] uint32 TopLabel; }; // ================================================================== // MPLSCrossConnect // ================================================================== [Experimental, Version ("2.7.1000"), Description ( "This class specifies information for switching between " "Segments within a LSR. It is scoped by a Computer System, " "that is the Label Switched Router, via the HostedService " "association. Specific In/Out Segments are associated with the " "cross-connect using the relationship, MPLSSegmentInXC. The " "service can support point-to-point, point-to-multipoint and " "multipoint-to-point connections by defining multiple instances " "of the association. CrossConnect Services can be aggregated " "into an overarching MPLSService using the CIM_ServiceComponent " "association. And, the LSP to which the CrossConnect belongs " "is indicated by the association, CrossConnectLSP.") ] class CIM_MPLSCrossConnect : CIM_Service { [Description ( "Denotes whether or not this CrossConnect entry and " "associated In and Out Segments should be restored " "automatically after failures."), MappingStrings {"MIB.IETF|MPLS-LSR-MIB.MPLSXCIsPersistent"} ] boolean IsPersistent; [Description ( "Identifies a stack of labels to be pushed beneath the top " "label. Note that the top label identified in an instance " "of OutSegment ensures that all the components of a " "multipoint-to-point connection have the same outgoing " "label. This array is 'Ordered' to maintain the sequence of " "entries."), ArrayType ("Ordered") ] uint16 LabelStack[]; }; // ================================================================== // MPLSQosPRTrfcProf // ================================================================== [Experimental, Version ("2.7.1000"), Description ( "A QoS traffic profile, which is associated to an LSP when QoS " "is guaranteed. The association ElementSetting ties the " "Setting to the LSP.") ] class CIM_MPLSQosPRTrfcProf : CIM_SettingData { [Description ( "The peak traffic rate in kilobits per second."), Units ("KiloBits per Second") ] uint32 PRRate; [Description ( "Traffic burst size in bytes."), Units ("Bytes") ] uint16 PRNormalBurst; [Description ( "Traffic excess burst in bytes."), Units ("Bytes") ] uint16 PRExcessBurst; }; // ================================================================== // MPLSCRLSPTrfcProf // ================================================================== [Experimental, Version ("2.7.1000"), Description ( "Class to represent the Constraint-based Routed LSP (CR-LSP) " "traffic parameters as specified in [RFC3212].") ] class CIM_MPLSCRLSPTrfcProf : CIM_MPLSQosPRTrfcProf { [Description ( "Property to indicate at what granularity the CDR (allocated " "to the CR-LSP) is made available."), ValueMap {"0", "1", "2"}, Values {"Unspecified", "Frequently", "Very Frequently"} ] uint16 CRLSPFrequency; [Description ( "Property to indicate the CR-LSP's relative share (in " "percent) of the possible excess bandwidth above its " "committed rate."), Units ("Percent"), MinValue (0), MaxValue (100) ] uint8 CRLSPWeight; [Description ( "Property to indicate the CR-LSP's committed data rate in " "bytes per second."), Units ("Bytes per Second") ] uint16 CRLSPCommitedDataRate; [Description ( "Property to indicate the CR-LSP's committed burst size in " "bytes."), Units ("Bytes") ] uint16 CRLSPCommitedBurstSize; }; // ================================================================== // MPLSSegmentOnProtocolEP // ================================================================== [Association, Experimental, Version ("2.7.1000"), Description ( "An MPLSSegment is defined in the context of an MPLS Endpoint. " "This association makes that relationship explicit.") ] class CIM_MPLSSegmentOnProtocolEP : CIM_Dependency { [Override ("Antecedent"), Min (1), Max (1), Description ( "The MPLSProtocolEndpoint which scopes the Segment.") ] CIM_MPLSProtocolEndpoint REF Antecedent; [Override ("Dependent"), Description ( "An MPLSSegment on the ProtocolEndpoint.") ] CIM_MPLSSegment REF Dependent; }; // ================================================================== // MPLSSegmentInXC // ================================================================== [Association, Experimental, Version ("2.7.1000"), Description ( "Defines the association between an In or Out Segment and a " "CrossConnect Service. The Segment is dependent on the Cross " "Connect for switching within the LSR.") ] class CIM_MPLSSegmentInXC : CIM_Dependency { [Override ("Antecedent"), Description ( "The MPLSCrossConnect.") ] CIM_MPLSCrossConnect REF Antecedent; [Override ("Dependent"), Description ( "An MPLSSegment dependent on the CrossConnect for " "switching.") ] CIM_MPLSSegment REF Dependent; }; // ================================================================== // MPLSFilterAtXC // ================================================================== [Association, Experimental, Version ("2.7.1000"), Description ( "The association denotes a filter list defining what traffic is " "mapped into the CrossConnect Service. A filter list is " "associated with the CrossConnect at the originating LSR.") ] class CIM_MPLSFilterAtXC : CIM_Dependency { [Override ("Antecedent"), Max (1), Description ( "A FilterList defining what traffic is mapped into the " "CrossConnect Service.") ] CIM_FilterList REF Antecedent; [Override ("Dependent"), Description ( "The CrossConnect whose traffic is filtered.") ] CIM_MPLSCrossConnect REF Dependent; }; // ================================================================== // MPLSCurrentlyAssignedLSP // ================================================================== [Association, Experimental, Version ("2.7.1000"), Description ( "Associates a traffic trunk with an LSP that is currently " "carrying its traffic.") ] class CIM_MPLSCurrentlyAssignedLSP : CIM_Dependency { [Override ("Antecedent"), Description ( "The LSP carrying the traffic of the trunk.") ] CIM_MPLSLSP REF Antecedent; [Override ("Dependent"), Description ( "The MPLSTrafficTrunk which is signaling using the LSP.") ] CIM_MPLSTunnel REF Dependent; [Description ( "The preference for the use of the LSP, if more than one LSP " "is available to a trunk. Possible values are 0 to 7, with " "7 indicating the highest preference."), MinValue (0), MaxValue (7) ] uint16 Preference; [Write, Description ( "This property is used to indicate the relative proportion " "of traffic to be carried by parallel LSPs, specified as a " "percentage from 0 to 100. The value is defined by the " "network user/administrator to indicate how a LSPtunnel's " "bandwidth should be set on a router. It allows load " "distribution across multiple parallel LSP tunnels, between " "two nodes. Quoting from RFC2702, 'In many practical " "situations, the aggregate traffic between two nodes may be " "such that no single link can carry the load. In this case, " "the only feasible solution is to appropriately divide the " "aggregate traffic into sub-streams and route the " "sub-streams through multiple paths between the two nodes. " "This problem can be addressed by instantiating multiple LSP " "tunnels between the two nodes, such that each traffic trunk " "carries a proportion of the aggregate traffic.' The " "proportion of traffic carried by each such LSP tunnel is " "specified by the TrafficProportion property."), Units ("Percent"), MinValue (0), MaxValue (100) ] uint8 TrafficProportion; }; // ================================================================== // MPLSBackupLSP // ================================================================== [Association, Experimental, Version ("2.7.1000"), Description ( "Identifies an LSP as a backup LSP for a traffic trunk.") ] class CIM_MPLSBackupLSP : CIM_Dependency { [Override ("Antecedent"), Description ( "The backup LSP for the traffic trunk.") ] CIM_MPLSLSP REF Antecedent; [Override ("Dependent"), Description ( "The traffic trunk using the LSP for backup.") ] CIM_MPLSTunnel REF Dependent; [Description ( "The preference for the use of the LSP, if more than one LSP " "is available to a trunk. Possible values are 0 to 7, with " "7 indicating the highest preference."), MinValue (0), MaxValue (7) ] uint16 Preference; }; // ================================================================== // MPLSLSPInLSP // ================================================================== [Association, Experimental, Aggregation, Composition, Version ("2.7.1000"), Description ( "Defines the nesting relationship of LSPs within LSPs. " "Arbitrary hierarchies of LSPs are possible.") ] class CIM_MPLSLSPInLSP : CIM_Component { [Aggregate, Override ("GroupComponent"), Description ( "The higher-level LSP containing another LSP.") ] CIM_MPLSLSP REF GroupComponent; [Override ("PartComponent"), Description ( "The LSP that is nested in the one referenced as " "GroupComponent.") ] CIM_MPLSLSP REF PartComponent; }; // ================================================================== // MPLSCrossConnectLSP // ================================================================== [Association, Experimental, Version ("2.7.1000"), Description ( "Defines the LSP to which the CrossConnect belongs.") ] class CIM_MPLSCrossConnectLSP : CIM_Dependency { [Override ("Antecedent"), Max (1), Description ( "The LSP.") ] CIM_MPLSLSP REF Antecedent; [Override ("Dependent"), Description ( "The CrossConnect belonging to the LSP.") ] CIM_MPLSCrossConnect REF Dependent; [Description ( "The XcType property defines whether a CrossConnect is at " "the terminating end (\"Term\", 1), or originating end " "(\"Orig\", 2) of an LSP. A value of 4, \"Normal\", " "indicates the CrossConnect is switching through an LSP on " "an intermediate node. A value of 3, \"Special\", implies a " "terminating LSP for special traffic, e.g. signaling " "neighbor discovery, etc. Reserved MPLS labels with values " "0 through 15 are used."), ValueMap {"1", "2", "3", "4"}, Values {"Term", "Orig", "Special", "Normal"} ] uint16 XcType; [Description ( "This property defines the order of the CrossConnects in an " "LSP. An incrementally higher number indicates the next " "Cross Connect in the ordered sequence. Note that the first " "CrossConnect must be of type 'Orig', and the last of type " "'Term' (see the property, XcType).") ] uint16 XcOrder; }; // =================================================================== // end of file // ===================================================================