1 karl 1.1 // ===================================================================
2 // Title: Network MPLS 2.7
3 // Filename: Network27_MPLS.mof
4 // Version: 2.7.1
5 // Status: Preliminary
6 // Date: November 12 2002
7 // ===================================================================
8 // Copyright 1998-2002 Distributed Management Task Force, Inc. (DMTF).
9 // All rights reserved.
10 // DMTF is a not-for-profit association of industry members dedicated
11 // to promoting enterprise and systems management and interoperability.
12 // DMTF specifications and documents may be reproduced for uses
13 // consistent with this purpose by members and non-members,
14 // provided that correct attribution is given.
15 // As DMTF specifications may be revised from time to time,
16 // the particular version and release date should always be noted.
17 //
18 // Implementation of certain elements of this standard or proposed
19 // standard may be subject to third party patent rights, including
20 // provisional patent rights (herein "patent rights"). DMTF makes
21 // no representations to users of the standard as to the existence
22 karl 1.1 // of such rights, and is not responsible to recognize, disclose, or
23 // identify any or all such third party patent right, owners or
24 // claimants, nor for any incomplete or inaccurate identification or
25 // disclosure of such rights, owners or claimants. DMTF shall have no
26 // liability to any party, in any manner or circumstance, under any
27 // legal theory whatsoever, for failure to recognize, disclose, or
28 // identify any such third party patent rights, or for such party's
29 // reliance on the standard or incorporation thereof in its product,
30 // protocols or testing procedures. DMTF shall have no liability to
31 // any party implementing such standard, whether such implementation
32 // is foreseeable or not, nor to any patent owner or claimant, and shall
33 // have no liability or responsibility for costs or losses incurred if
34 // a standard is withdrawn or modified after publication, and shall be
35 // indemnified and held harmless by any party implementing the
36 // standard from any and all claims of infringement by a patent owner
37 // for such implementations.
38 //
39 // For information about patents held by third-parties which have
40 // notified the DMTF that, in their opinion, such patent may relate to
41 // or impact implementations of DMTF standards, visit
42 // http://www.dmtf.org/about/policies/disclosures.php.
43 karl 1.1 // ===================================================================
44 // Description: The Network Model extends the management concepts to
45 // represent protocol interfaces and network/protocol
46 // services. This file defines concepts in support of
47 // managing MPLS (Multi-Protocol Label Switching).
48 //
49 // The object classes below are listed in an order that
50 // avoids forward references. Required objects, defined
51 // by other working groups, are omitted.
52 // ==================================================================
53 // Change Log for v2.7.1
54 // CR920 - Add missing parenthesis to the Description for MPLSTunnel.
55 // IncludeAnyAffinity
56 //
57 // Change Log for v2.7
58 // CR790 - Add classes to support MPLS
59 // CR805 - Add MPLSSpecifiedRoute, MPLSSpecifiedNextHop,
60 // MPSLComputedNextHop, and RouteSpecifiedForLSP
61 // CR853 - MPLS Model changes: MPLSQoSPRTrfcProf should subclass from
62 // SettingData and several property names are updated in
63 // MPLSSegmentStats
64 karl 1.1 // CR905 - MPLS cleanup and updates
65 // Add - MPLSTunnel, MPLSReverseDirectionTunnel,
66 // MPLSTunnelHops, MPLSNextTunnelHop,
67 // MPLSFecOfTunnel and MPLSTunnelStats
68 // Remove - MPLSSpecifiedRoute, MPLSSpecifedNextHop,
69 // MPLSComputedNextHop, RouteSpecifiedForLSP,
70 // MPLSLSPTunnel, MPLSTrafficTrunk,
71 // MPLSFecOfTrafficTrunk, MPLSFecOfLSP
72 // and MPLSBiDirectionalTrunks
73 // CR907 - MPLS cleanup and updates
74 // Add - MPLSTunnelHop and HostedMPLSTunnelHop
75 // Rename MPLSTunnelHops to MPLSHopInTunnel
76 // Rename MPLSNextTunnelHop to MPLSNextHopInTunnel
77 // Change reference from MPLSTrafficTrunk to MPLSTunnel
78 // in MPLSCurrentlyAssignedLSP and MPLSBackupLSP
79 // Rename MPLSTunnel.TunnelingSignalingProtocol to
80 // TunnelSignalingProtocol
81 // Remove .IsPinned, .LocalProtectionAvailable, .IsAdaptive,
82 // and .IsDynamicallyRouted properties from MPLSLSP
83 // Promote properties of MPLSTEService to MPLSService,
84 // and remove MPLSTEService
85 karl 1.1 // Rename MPLSTunnelStats.MPLSTunnelStateTransitions to
86 // TunnelStateTransitions
87 //
88 // ===================================================================
89
90 #pragma Locale ("en_US")
91
92 // ==================================================================
93 // MPLSService
94 // ==================================================================
95 [Experimental, Version ("2.7.0"), Description (
96 "This object class contains properties relating to the "
97 "overall operation of MPLS on a router. This service is "
98 "weak to the router (modeled as a ComputerSystem) via "
99 "the association CIM_HostedService.") ]
100 class CIM_MPLSService: CIM_Service {
101
102 [Description (
103 "Path computation may be configured to be more or less "
104 "reactive to network state. It may be desirable to have "
105 "different values on different LSRs. Also, certain "
106 karl 1.1 "tunnels may not be re-optimized. This property specifies "
107 "the re-optimization frequency for the LSR, in seconds. "
108 "Default is 3600 (1 hour). The maximum interval is "
109 "604800 seconds (1 week). A value of 0 disables re-"
110 "optimization."),
111 Units ("Seconds"), MaxValue (604800) ]
112 uint32 ReoptimizationFreq = 3600;
113
114 [Description (
115 "Specifies the time interval in seconds at which traffic "
116 "engineering information is flooded. Shorter intervals lead to "
117 "more control overhead, more traffic in the network and more "
118 "cycles wasted in processing this information at the routers. "
119 "On the other hand longer intervals, make the route "
120 "chosen for the tunnels to be less optimal with "
121 "respect to the state of the network."),
122 Units ("Seconds") ]
123 uint16 FloodingInterval;
124
125 [Description (
126 "This property describes what happens when the MPLSTEService "
127 karl 1.1 "obtains knowledge about a new link coming into operation. "
128 "The value 'OnLinkUp' (1) denotes that immediately after "
129 "detecting the new link, a re-optimization step is performed."
130 "'NextTimeInSchedule' (2) waits until the next time a re-"
131 "optimization needs to take place. The frequency is "
132 "defined by the ReoptimizationFreq property. And, 'Manual"
133 "Trigger' (3) means the re-optimization MUST be triggered "
134 "by manual interaction such as a human operator triggering "
135 "the re-optimization."),
136 ValueMap {"0", "1", "2", "3"},
137 Values {"Unknown", "OnLinkUp", "NextTimeInSchedule",
138 "ManualTrigger"} ]
139 uint16 ReoptimizationLinkUp;
140 };
141
142
143 // ==================================================================
144 // MPLSCapabilities
145 // ==================================================================
146 [Experimental, Version ("2.7.0"), Description (
147 "This class specifies the capabilities of an MPLSService "
148 karl 1.1 "or MPLSProtocolEndpoint (interface) on a Label Switched "
149 "Router (LSR). The association CIM_ElementCapabilities relates "
150 "the instance with its MPLS Service and/or Endpoint.") ]
151 class CIM_MPLSCapabilities : CIM_Capabilities {
152
153 [Description (
154 "This is the minimum value of an MPLS label that this "
155 "Endpoint or MPLSService is willing to receive. The values "
156 "of an MPLSProtocolEndpoint may overrule the values "
157 "specified for the LSR as a whole, based on the Endpoint's "
158 "boolean property OverruleLSR."),
159 MappingStrings {
160 "MIB.IETF|MPLS-LSR-MIB.MPLSInterfaceLabelMinIn"} ]
161 uint32 LabelMinIn;
162
163 [Description (
164 "This is the maximum value of an MPLS label that this "
165 "Endpoint or MPLSService is willing to receive. The values "
166 "of an MPLSProtocolEndpoint may overrule the values "
167 "specified for the LSR as a whole, based on the Endpoint's "
168 "boolean property OverruleLSR."),
169 karl 1.1 MappingStrings {
170 "MIB.IETF|MPLS-LSR-MIB.MPLSInterfaceLabelMaxIn"} ]
171 uint32 LabelMaxIn;
172
173 [Description (
174 "This is the minimum value of an MPLS label that this "
175 "Endpoint or MPLSService is willing to send. The values "
176 "of an MPLSProtocolEndpoint may overrule the values "
177 "specified for the LSR as a whole, based on the Endpoint's "
178 "boolean property OverruleLSR.") ,
179 MappingStrings {
180 "MIB.IETF|MPLS-LSR-MIB.MPLSInterfaceLabelMinOut"} ]
181 uint32 LabelMinOut;
182
183 [Description (
184 "This is the maximum value of an MPLS label that this "
185 "Endpoint or MPLSService is willing to send. The values of "
186 "an MPLSProtocolEndpoint may overrule the values specified "
187 "for the LSR as a whole, based on the Endpoint's boolean "
188 "property OverruleLSR."),
189 MappingStrings {
190 karl 1.1 "MIB.IETF|MPLS-LSR-MIB.MPLSInterfaceLabelMaxOut"} ]
191 uint32 LabelMaxOut;
192 };
193
194
195 // ==================================================================
196 // MPLSProtocolEndpointStats
197 // ==================================================================
198 [Experimental, Version ("2.7.0"), Description (
199 "This class represents the statistics for an MPLSProtocol"
200 "Endpoint. The statistics are associated with the Endpoint "
201 "using the relationship CIM_ElementStatisticalData.") ]
202 class CIM_MPLSProtocolEndpointStats : CIM_StatisticalData {
203
204 [Gauge, Description (
205 "This object contains the number of top-most labels "
206 "that are in use at this point in time on this "
207 "interface in the incoming direction."),
208 MappingStrings {
209 "MIB.IETF|MPLS-LSR-MIB.MPLSInterfaceInLabelsUsed"} ]
210 uint32 InLabelsUsed;
211 karl 1.1
212 [Gauge, Description (
213 "This object contains the number of top-most labels "
214 "that are in use at this point in time on this "
215 "interface in the outgoing direction."),
216 MappingStrings {
217 "MIB.IETF|MPLS-LSR-MIB.MPLSInterfaceOutLabelsUsed"} ]
218 uint32 OutLabelsUsed;
219
220 [Counter, Description (
221 "This object counts the number of labeled packets "
222 "that have been received on this interface and were "
223 "discarded because there was no matching cross-connect "
224 "entry."),
225 MappingStrings {
226 "MIB.IETF|MPLS-LSR-MIB.MPLSInterfaceFailedLabelLookup"} ]
227 uint32 FailedLabelLookups;
228
229 [Counter, Description (
230 "This object counts the number of outgoing MPLS "
231 "packets that required fragmentation before "
232 karl 1.1 "transmission on this interface."),
233 MappingStrings {
234 "MIB.IETF|MPLS-LSR-MIB.MPLSInterfaceOutFragments"} ]
235 uint32 NumberOfPacketsFragmented;
236 };
237
238
239 // ==================================================================
240 // MPLSLSP
241 // ==================================================================
242 [Experimental, Version ("2.7.0"), Description (
243 "This class is used to represent an MPLS Label Switch Path "
244 "(LSP). This is usually a path from an ingress to an egress "
245 "label edge router, through a sequence of label switch routers. "
246 "Sometimes an LSP is a series of hop-by-hop LSPs that go from "
247 "the ingress to egress LSRs. For example, using unordered "
248 "downstream unsolicited mode in LDP, the result is a "
249 "series of 'mini' LSPs along the path, each with incoming and "
250 "outgoing labels, and a FEC to accept traffic onto the 'mini' "
251 "LSP at each hop. \n"
252 "\n"
253 karl 1.1 "An instance describes either an existing LSP, or the user's "
254 "configurations of one to be established in the network. The "
255 "boolean property, Established, indicates the state of the "
256 "instance. \n"
257 "\n"
258 "Note that MPLSLSP subclasses from EnabledLogicalElement. "
259 "This allows (via inherited properties) the explicit "
260 "enabling and disabling of the path, as well as the ability "
261 "to request that the path be 'tested' or shut down.") ]
262 class CIM_MPLSLSP : CIM_EnabledLogicalElement {
263
264 [Key, Description (
265 "InstanceID opaquely identifies a unique instance of "
266 "MPLSLSP. The InstanceID must be unique within a namespace. "
267 "In order to ensure uniqueness, the value of InstanceID "
268 "should be constructed in the following manner: "
269 "The instance id consists of the IPAddress of the "
270 "ingress LSR, combined with the LocalLSPId found in "
271 "this class.") ]
272 string InstanceID;
273
274 karl 1.1 [Write, Description (
275 "Boolean indicating whether or not the LSP currently exists "
276 "in the network. Note that if the LSP is not established, "
277 "then the OperationalStatus properties inherited from Managed"
278 "SystemElement have no meaning.") ]
279 boolean Established;
280
281 [Description (
282 "Property to indicate the nesting level of this LSP. Note "
283 "that this a shortcut counting the number of instances of the "
284 "MPLSLSPInLSP association. It is advantageous to determine the "
285 "nesting level directly, instead of traversing several "
286 "associations to do so.") ]
287 uint16 NestingLevel;
288
289 [Required, Description (
290 "Property indicating a unique (per ingress LSR) LSP ID.") ]
291 uint16 LocalLSPId;
292
293 [Description (
294 "The IP addresses of the ingress node(s) (LERs) of the path. "
295 karl 1.1 "This is an array to allow for multipoint LSPs.") ]
296 string IngressIPAddresses[];
297
298 [Description (
299 "The IP addresses of the egress node(s) (LERs) of the path."
300 "This is an array to allow for multipoint LSPs.") ]
301 string EgressIPAddresses[];
302
303 [Description (
304 "Flag to indicate that the LSP ingress node may choose to "
305 "reroute this LSP without tearing it down.") ]
306 boolean IngressMayReroute;
307
308 [Description (
309 "Flag to indicate that this LSP should be restored "
310 "automatically after a failure occurs.") ]
311 boolean IsPersistent;
312
313 };
314
315
316 karl 1.1 // ==================================================================
317 // MPLSTunnel
318 // ==================================================================
319 [Experimental, Version ("2.7.0"), Description (
320 "This class represents an MPLS traffic engineering tunnel as "
321 "defined in RFC 3031.") ]
322 class CIM_MPLSTunnel : CIM_EnabledLogicalElement {
323
324 [Key, Description (
325 "InstanceID opaquely identifies a unique instance of "
326 "SettingData. The InstanceID must be unique within a "
327 "namespace. In order to ensure uniqueness, the value of "
328 "InstanceID SHOULD be constructed in the following manner: \n"
329 "<Vendor ID><ID> \n"
330 " <Vendor ID> MUST include a copyrighted, trademarked "
331 "or otherwise unique name that is owned by the business entity "
332 "or a registered ID that is assigned to the business entity "
333 "that is defining the InstanceID. (This is similar to the "
334 "<Schema Name>_<Class Name> structure of Schema class names.) "
335 "The purpose of <Vendor ID> is to ensure that <ID> is truly "
336 "unique across multiple vendor implementations. If such a "
337 karl 1.1 "name is not used, the defining entity MUST assure that the "
338 "<ID> portion of the Instance ID is unique when compared with "
339 "other instance providers. For DMTF defined instances, the "
340 "<Vendor ID> is 'CIM'. \n"
341 " <ID> MUST include a vendor specified unique "
342 "identifier.")]
343 string InstanceID;
344
345 [Write, Description (
346 "Boolean indicating whether or not the tunnel is currently "
347 "signaled. Note that if the tunnel is not established, then "
348 "the OperationalStatus properties inherited from Managed"
349 "SystemElement have no meaning.") ]
350 boolean Established;
351
352 [Description (
353 "The IsResilient property indicates the recovery procedure "
354 "to be applied to tunnels whose paths are impacted by faults. "
355 "More specifically, it contains a boolean value that "
356 "determines whether the tunnel is to be rerouted "
357 "or not, when segments of its path fail. If set to true, "
358 karl 1.1 "the tunnel should be rerouted in case of failure; "
359 "if false, it should not (which means that other means are "
360 "applied, e.g. lower layer technologies for rerouting.)") ]
361 boolean IsResilient;
362
363 [Description (
364 "The bandwidth property denotes the complete bandwidth "
365 "(in kilobits per second) required to be transported by the "
366 "tunnel. Note, that the bandwidth is not directly implemented/"
367 "configured in a router, but the MPLSTunnel's Reserved"
368 "Bandwidth property might be derived from this "
369 "information."),
370 Units ("KiloBits per Second") ]
371 uint32 Bandwidth;
372
373 [Description (
374 "Reserved bandwidth for this tunnel in kilobits per second. "
375 "In a load sharing environment, the bandwidth on each tunnel "
376 "is set to be proportional to how traffic should be balanced. "
377 "An LSR then load-shares into the tunnels based on the "
378 "aggregate bandwidth. Note that it is possible to signal 0 "
379 karl 1.1 "bandwidth for a pure best-effort tunnel."),
380 Units ("KiloBits per Second") ]
381 uint32 ReservedBandwidth;
382
383 [Description (
384 "Active bandwidth for this tunnel in kilobits per second. If "
385 "the tunnel is not yet Established, then this property has "
386 "no meaning. Knowing current Bandwidth is important because "
387 "several path options may be configured for the tunnel. Note "
388 "that it is possible to signal 0 bandwidth for a pure best-"
389 "effort tunnel."),
390 Units ("KiloBits per Second") ]
391 uint32 ActiveBandwidth;
392
393 [Description (
394 "Due to changes in network and traffic characteristics, "
395 "there may be a need to periodically change the paths of "
396 "tunnels for optimization purposes. This should not be done "
397 "too frequently as it could adversely affect the stability "
398 "of the network. This property indicates how often such "
399 "reoptimization should be performed for a specific tunnel. "
400 karl 1.1 "Note that the class, CIM_MPLSTEService, also has a "
401 "reoptimization frequency property. The frequency specified "
402 "in this class is specific to a particular tunnel, whereas "
403 "the MPLSTEService's frequency is per service, on a "
404 "Label Switched Router."),
405 Units ("Seconds"), MaxValue (604800) ]
406 uint32 ReoptimizationFreq = 3600;
407
408 [Description (
409 "Indicates whether the tunnel is a candidate for "
410 "re-optimization at all. If true the ReoptimizationFreq "
411 "property should be taken into account. "
412 "By default, a tunnel is re-optimized periodically.") ]
413 boolean Lockdown = true;
414
415 [Description (
416 "Resource classes and resource class affinities are "
417 "described in [RFC2702]. Resource classes can be associated "
418 "with links and advertised in routing protocols. Resource "
419 "class affinities are used by RSVP-TE [RFC3209]. "
420 "In order to be used, a link MUST pass three tests. One "
421 karl 1.1 "of them is against this property. \n"
422 "\n"
423 "ExcludeAllAffinity is one type of resource class affinity. "
424 "It specifies a set of attribute filters for the tunnel, "
425 "and a match on any of the filters renders a link "
426 "unacceptable (it is excluded for consideration). "
427 "This test takes the form, \n"
428 "(MPLSProtocolEndpoint.ResourceClass & ExcludeAllAffinity) "
429 "== 0"),
430 MappingStrings {
431 "MIB.IETF|MPLS-TE-MIB.MPLSTunnelExcludeAllAffinity"} ]
432 uint32 ExcludeAllAffinity;
433
434 [Description (
435 "Resource classes and resource class affinities are "
436 "described in [RFC2702]. Resource classes can be associated "
437 "with links and advertised in routing protocols. Resource "
438 "class affinities are used by RSVP-TE [RFC3209]. "
439 "In order to be used, a link MUST pass three tests. One "
440 "of them against this property. \n"
441 "\n"
442 karl 1.1 "IncludeAllAffinity is one type of resource class affinity. "
443 "It specifies a set of attribute filters for the tunnel, "
444 "and all of the filters must match for a link to be "
445 "acceptable (i.e., pass this test). If IncludeAllAffinity "
446 "is zero, then the test automatically passes. The test "
447 "takes the form, \n"
448 "(IncludeAllAffinity == 0) || "
449 "(((MPLSProtocolEndpoint.ResourceClass & IncludeAllAffinity) "
450 "^ IncludeAllAffinity) == 0)"),
451 MappingStrings {
452 "MIB.IETF|MPLS-TE-MIB.MPLSTunnelIncludeAllAffinity"} ]
453 uint32 IncludeAllAffinity;
454
455 [Description (
456 "Resource classes and resource class affinities are "
457 "described in [RFC2702]. Resource classes can be associated "
458 "with links and advertised in routing protocols. Resource "
459 "class affinities are used by RSVP-TE [RFC3209]. "
460 "In order to be used, a link MUST pass three tests. One "
461 "of them against this property. \n"
462 "\n"
463 karl 1.1 "IncludeAnyAffinity is one type of resource class affinity. "
464 "It specifies a set of attribute filters for the tunnel, "
465 "and any of the filters must match for a link to be "
466 "acceptable (i.e., pass this test). If IncludeAllAffinity "
467 "is zero, then the test automatically passes. The test "
468 "takes the form, \n"
469 "(IncludeAnyAffinity == 0) || "
470 "((MPLSProtocolEndpoint.ResourceClass & IncludeAnyAffinity) "
471 "!= 0)"),
472 MappingStrings {
473 "MIB.IETF|MPLS-TE-MIB.MPLSTunnelIncludeAnyAffinity"} ]
474 uint32 IncludeAnyAffinity;
475
476 [MinValue (0), MaxValue (7), Description (
477 "Property to indicate the holding priority of an "
478 "established tunnel. If the tunnel is not yet established, this "
479 "property has no meaning. A new tunnel is allowed to preempt the "
480 "resources of this tunnel only if its SetupPriority is smaller "
481 "than the HoldingPriority of the established one. (See RFC3209 "
482 "for additional information.) The value 0 is the highest "
483 "priority."),
484 karl 1.1 MappingStrings {"MIB.IETF|MPLS-TE-MIB.mplsTunnelHoldingPrio"} ]
485 uint8 HoldingPriority;
486
487 [MinValue (0), MaxValue (7), Description (
488 "Guaranteed bandwidth tunnels can have setup and preemption "
489 "priorities associated with them. These priorities determine "
490 "if an existing tunnel can be preempted by a new one. The "
491 "SetupPriority of the new tunnel is compared to the Holding"
492 "Priority of the established one, to determine if the new "
493 "tunnel can preempt the existing one. It does preempt if the "
494 "SetupPriority in smaller than the HoldingPriority. "
495 "Note that the value 0 is the highest priority."),
496 MappingStrings {"MIB.IETF|MPLS-TE-MIB.mplsTunnelSetupPrio"} ]
497 uint8 SetupPriority;
498
499 [Description (
500 "Flag to indicate that this tunnel should be restored "
501 "automatically after a failure occurs.") ]
502 boolean IsPersistent;
503
504 [Description (
505 karl 1.1 "Flag to indicate whether the loosely-routed hops of this "
506 "tunnel are to be pinned.") ]
507 boolean IsPinned;
508
509 [Description (
510 "Flag to indicate that transit routers are permitted to use "
511 "a local repair mechanism which may result in violation of "
512 "the explicit routing of this tunnel. When a fault is detected "
513 "on an adjacent downstream link or node, a transit router can "
514 "reroute traffic for fast service restoration.") ]
515 boolean LocalProtectionAvailable;
516
517 [Description (
518 "In some situations, it is necessary to reroute a tunnel "
519 "without disrupting traffic. This flag indicates whether "
520 "the tunnel's route is adaptive. ") ]
521 boolean IsAdaptive;
522
523 [Description (
524 "Flag to indicate whether the route for the tunnel is "
525 "selected dynamically based on routing protocols - as "
526 karl 1.1 "opposed to being specified 'statically' via configuration, "
527 "where a network operator or other external entity specifies "
528 "the path of the tunnel hop by hop.") ]
529 boolean IsDynamicallyRouted;
530
531 [Description (
532 "Flag to indicate that the tunnel ingress node may choose to "
533 "reroute this tunnel without tearing it down.") ]
534 boolean IngressMayReroute;
535
536 [Description (
537 "The purpose of this object is to uniquely identity a "
538 "tunnel within a network. When the MPLS signaling "
539 "protocol is rsvp(3), this value SHOULD mimic the "
540 "Extended Tunnel Id field in the SESSION object. "
541 "When the MPLS signaling protoocol is crldp(4), this "
542 "value SHOULD mimic the Ingress LSR Router ID field "
543 "in the LSPID TLV object."),
544 ModelCorrespondence {
545 "CIM_MPLSTunnel.TunnelingSignalingProtocol"} ]
546 uint32 IngressLSRId;
547 karl 1.1
548 [Description (
549 "ID of egress LSR.") ]
550 uint32 EgressLSRId;
551
552 [Override ("ElementName"), Description (
553 "The canonical name assigned to the tunnel. This name "
554 "can be used to refer to the tunnel on the LSR's "
555 "console port.") ]
556 string ElementName;
557
558 [Description (
559 "The signaling protocol, if any, which was used to "
560 "setup this tunnel."),
561 ValueMap {"0", "1", "2", "3", "4"},
562 Values {"Unknown", "Other", "None", "RSVP", "CRLDP"} ]
563 uint8 TunnelSignalingProtocol;
564
565 [Description (
566 "Indicates which protocol created and is responsible "
567 "for managing this tunnel. Values rsvp(3) and "
568 karl 1.1 "crldp(4) should NOT be used at the head-end of an "
569 "MPLS tunnel."),
570 ValueMap {"0", "1", "2", "3", "4", "5"},
571 Values {"Unknown", "Other", "Admin", "RSVP", "CRDLP",
572 "Policy Agent"}]
573 uint8 TunnelManagementOwner;
574
575 [Description (
576 "This value represents the priority for a tunnel in "
577 "descending order, with 0 indicating the lowest priority, "
578 "within a group of tunnels used for redundancy/load sharing. "
579 "Tunnel group priorities are used to denote the priority at "
580 "which a particular tunnel instance will supercede "
581 "another. Instances of tunnels containing the same "
582 "TunnelInstancePriority will be used for load "
583 "sharing.") ]
584 uint32 TunnelInstancePriority ;
585
586 [Description (
587 "This property signifies the role that this tunnel "
588 "entry/instance represents. The value MUST be set "
589 karl 1.1 "to head(2) at the originating point of the tunnel, to "
590 "transit(3) at transit points along the tunnel (if transit "
591 "points are supported), and to tail(4) at the "
592 " terminating point of the tunnel (if tunnel tails are"
593 "supported)."),
594 ValueMap {"0", "2", "3", "4"},
595 Values {"Unknown", "Head", "Transit", "Tail"} ]
596 uint16 TunnelRole;
597 };
598
599
600 // ==================================================================
601 // MPLSReverseDirectionTunnel
602 // ==================================================================
603 [Association, Experimental, Version ("2.7.0"), Description (
604 "Tunnels are unidirectional. This association relates two "
605 "TE tunnels that carry traffic in reverse directions, "
606 "creating a bi-directional connection.") ]
607 class CIM_MPLSReverseDirectionTunnel : CIM_Dependency {
608
609 [Override ("Antecedent"), Max (1), Description (
610 karl 1.1 "An MPLSTunnel, which operates in the reverse direction of "
611 "the Dependent reference.") ]
612 CIM_MPLSTunnel REF Antecedent;
613
614 [Override ("Dependent"), Max (1), Description (
615 "An MPLSTunnel, which operates in the reverse direction of "
616 "the Antecedent reference.") ]
617 CIM_MPLSTunnel REF Dependent;
618 };
619
620
621 // ==================================================================
622 // MPLSTunnelHop
623 // ==================================================================
624 [Experimental, Version ("2.7.0"), Description (
625 "A destination in an MPLS tunnel. This may be specified "
626 "by the user, calculated for the tunnel or actually in use. "
627 "These different aspects are indicated by the HopDerivation "
628 "enumeration.") ]
629 class CIM_MPLSTunnelHop : CIM_RemoteServiceAccessPoint {
630
631 karl 1.1 [Description (
632 "The method used to determine the destination."),
633 ValueMap {"0", "2", "3"},
634 Values {"Unknown", "User", "Calculated"} ]
635 uint16 HopDerivation;
636 };
637
638
639 // ==================================================================
640 // MPLSHopInTunnel
641 // ==================================================================
642 [Association, Experimental, Version ("2.7.0"), Description (
643 "This association represents the relationship between the "
644 "tunnel head-end and the first hop in the tunnel's path. "
645 "The hop may be of type Specified, Computed, or Actual.") ]
646 class CIM_MPLSHopInTunnel : CIM_Dependency {
647
648 [Override ("Antecedent"), Description (
649 "The head-end of an MPLS traffic engineering tunnel.") ]
650 CIM_MPLSTunnelHop REF Antecedent;
651
652 karl 1.1 [Override ("Dependent"), Description (
653 "The MPLSTunnel whose first hop is described.") ]
654 CIM_MPLSTunnel REF Dependent;
655 };
656
657
658 // ==================================================================
659 // MPLSNextHopInTunnel
660 // ==================================================================
661 [Association, Experimental, Version ("2.7.0"), Description (
662 "This association represents the relationship between two "
663 "consecutive tunnels hops." ) ]
664 class CIM_MPLSNextHopInTunnel : CIM_Dependency {
665
666 [Override ("Antecedent"), Max (1), Description (
667 "Current MPLSTunnel hop.") ]
668 CIM_MPLSTunnelHop REF Antecedent;
669
670 [Override ("Dependent"), Max (1), Description (
671 "Next MPLSTunnel hop for the traversed path.") ]
672 CIM_MPLSTunnelHop REF Dependent;
673 karl 1.1 };
674
675
676 // ==================================================================
677 // HostedMPLSTunnelHop
678 // ==================================================================
679 [Association, Experimental, Version ("2.7.0"), Description (
680 "HostedMPLSTunnelHop defines a MPLSTunnelHop in the context of a "
681 "scoping AutonomousSystem. It represents a MPLSTunnelHop that only "
682 "has meaning in the context of an AutonomousSystem.") ]
683 class CIM_HostedMPLSTunnelHop : CIM_Dependency {
684
685 [Override ("Antecedent"), Min (1), Max (1), Description (
686 "The scoping system.") ]
687 CIM_AutonomousSystem REF Antecedent;
688
689 [Override ("Dependent"), Description (
690 "The collection defined in the context of a system.") ]
691 CIM_MPLSTunnelHop REF Dependent;
692 };
693
694 karl 1.1
695 // ==================================================================
696 // MPLSFecOfTunnel
697 // ==================================================================
698 [Association, Experimental, Version ("2.7.0"), Description (
699 "This association defines the forwarding equivalency class "
700 "(FEC) for a traffic engineering tunnel. It is typically just "
701 "an IP destination address - and can be defined using a "
702 "FilterList. Although this is not truly a filter on the tunnel, "
703 "the FilterList class is reused to describe the traffic on the "
704 "tunnel.") ]
705 class CIM_MPLSFecOfTunnel : CIM_Dependency {
706
707 [Override ("Antecedent"), Max (1), Description (
708 "The FilterList defining the FEC of the MPLSTunnel.") ]
709 CIM_FilterList REF Antecedent;
710
711 [Override ("Dependent"), Description (
712 "The MPLSTunnel.") ]
713 CIM_MPLSTunnel REF Dependent;
714 };
715 karl 1.1
716
717 // ==================================================================
718 // MPLSTunnelStats
719 // ==================================================================
720 [Experimental, Version ("2.7.0"), Description (
721 "This class represents the statistics for an MPLSTunnel. "
722 "The statistics are associated to the tunnel "
723 "using the relationship, CIM_ElementStatisticalData.") ]
724 class CIM_MPLSTunnelStats : CIM_StatisticalData {
725
726 [Counter, Description (
727 "Specifies the total time the primary tunnel has been "
728 "active. A primary tunnel is found/designated in situations "
729 "where multiple tunnels exist - i.e., when parallel or backup "
730 "tunnels are defined."),
731 MappingStrings {
732 "MIB.IETF|MPLS-TE-MIB.MPLSTunnelPrimaryTimeUp"},
733 Units ("Hundredths of a Second"), MaxValue (4294967295)]
734 uint32 TunnelPrimaryTimeUp;
735
736 karl 1.1 [Counter, Description (
737 "Specifies the number of times the paths have changed "
738 "for this tunnel."),
739 MappingStrings {
740 "MIB.IETF|MPLS-TE-MIB.MPLSTunnelPathChanges"} ]
741 uint32 TunnelPathChanges;
742
743 [Counter, Description (
744 "Specifies the time since the last path change for "
745 "this tunnel."),
746 MappingStrings {
747 "MIB.IETF|MPLS-TE-MIB.MPLSTunnelLastPathChange"},
748 Units ("Hundredths of a Second"), MaxValue (4294967295)]
749 uint32 TunnelLastPathChange;
750
751 [Counter, Description (
752 "Specifies the number of times the operational status of "
753 "this tunnel has changed."),
754 MappingStrings {
755 "MIB.IETF|MPLS-TE-MIB.MPLSTunnelStateTransitions"} ]
756 uint32 TunnelStateTransitions;
757 karl 1.1
758 [Counter, Description (
759 "This value identifies the total time for which the "
760 "the OperationalStatus of the tunnel is up (i.e., \"OK\"=2)."),
761 MappingStrings {
762 "MIB.IETF|MPLS-TE-MIB.MPLSTunnelInstanceUpTime"},
763 Units ("Hundredths of a Second") ]
764 uint32 TunnelInstanceUpTime;
765 };
766
767
768 // ==================================================================
769 // MPLSPerformance
770 // ==================================================================
771 [Experimental, Version ("2.7.0"), Description (
772 "This class contains performance information for MPLS entities "
773 "such as an MPLS Endpoint or LSP Tunnel. The statistics are "
774 "associated with the MPSL entity, using the general "
775 "CIM_ElementStatisticalData relationship.") ]
776 class CIM_MPLSPerformance: CIM_StatisticalData {
777
778 karl 1.1 [Counter, Description (
779 "Denotes the number of packets lost.") ]
780 uint32 NumberOfPacketsLost;
781
782 [Counter, Description (
783 "Denotes the number of packets successfully transmitted.") ]
784 uint32 NumberOfPacketsTransmitted;
785
786 [Counter, Description (
787 "Denotes the number of octets transmitted.") ]
788 uint32 NumberOfOctets;
789
790 [Gauge, Description (
791 "Denotes the average delay of the packets transmitted in "
792 "milliseconds."),
793 Units ("MilliSeconds") ]
794 uint16 Delay;
795
796 [MinValue (0), MaxValue (100000), Description (
797 "Denotes availability in hundredths of a percent."),
798 Units ("Hundredths of Percent") ]
799 karl 1.1 uint16 Availability;
800 };
801
802
803 // ==================================================================
804 // MPLSSegment
805 // ==================================================================
806 [Abstract, Experimental, Version ("2.7.0"), Description (
807 "This class is abstract, and generalizes the notion of incoming "
808 "and outgoing MPLS segments on an interface/MPLSProtocolEndpoint. "
809 "(Both In and Out Segment subclasses are derived from "
810 "MPLSSegment.) An instance is defined in the context of an "
811 "MPLSProtocolEndpoint. This is specified using the association, "
812 "CIM_MPLSSegmentOnProtocolEP.") ]
813 class CIM_MPLSSegment : CIM_LogicalElement {
814
815 [Key, Description (
816 "InstanceID opaquely identifies a unique instance of "
817 "MPLSSegment. The InstanceID must be unique within a "
818 "namespace. In order to ensure uniqueness, the value of "
819 "InstanceID should be constructed in the following manner: \n"
820 karl 1.1 "<ID of the MPLSProtocolEndpoint>.<InLabel or TopLabel>") ]
821 string InstanceID;
822
823 [Description (
824 "Denotes the entity that created and is responsible "
825 "for managing this Segment. Note that the MappingString "
826 "is depending on the instantiated class and corresponds to "
827 "InSegmentOwner or OutSegmentOwner."),
828 ValueMap {"0", "1", "2", "3", "4", "5", "6", "7"},
829 Values {"Unknown", "Other", "SNMP", "LDT", "RSVP",
830 "CR-LDP", "Policy Agent", "CLI"},
831 ModelCorrespondence {"CIM_MPLSSegment.OtherOwner"},
832 MappingStrings {"MIB.IETF|MPLS-LSR-MIB.MPLSInSegmentOwner",
833 "MIB.IETF|MPLS-LSR-MIB.MPLSIOutSegmentOwner"} ]
834 uint16 SegmentOwner;
835
836 [Description (
837 "If property SegmentOwner has a value 1 (\"Other\"), "
838 "this property contains a string explaining the entity "
839 "that created and manages the Segment."),
840 ModelCorrespondence {"CIM_MPLSSegment.SegmentOwner"} ]
841 karl 1.1 string OtherOwner;
842 };
843
844
845 // ==================================================================
846 // MPLSSegmentStats
847 // ==================================================================
848 [Experimental, Version ("2.7.0"), Description (
849 "The class represents the statistics for an In or Out "
850 "MPLSSegment. The statistics are associated to the Segment "
851 "using the relationship CIM_ElementStatisticalData.") ]
852 class CIM_MPLSSegmentStats : CIM_StatisticalData {
853
854 [Counter, Description (
855 "This value represents the total number of octets "
856 "received/sent by this Segment. Whether it denotes "
857 "In or Out Segments depends on the instance "
858 "associated with MPLSSegmentStats."),
859 MappingStrings {"MIB.IETF|MPLS-LSR-MIB.MPLSInSegmentOctets",
860 "MIB.IETF|MPLS-LSR-MIB.MPLSIOutSegmentOctets"} ]
861 uint32 NumberOfOctets;
862 karl 1.1
863 [Counter, Description (
864 "Total number of packets received/sent by this Segment. "
865 "Whether this value denotes In or Out Segments depends on "
866 "the instance associated with MPLSSegmentStats."),
867 MappingStrings {"MIB.IETF|MPLS-LSR-MIB.MPLSInSegmentPackets",
868 "MIB.IETF|MPLS-LSR-MIB.MPLSOutSegmentPackets"} ]
869 uint32 NumberOfPackets;
870
871 [Counter, Description (
872 "The number of errored packets received/sent on this Segment."
873 "Whether this value denotes In or Out Segments depends on "
874 "the instance associated with MPLSSegmentStats."),
875 MappingStrings {"MIB.IETF|MPLS-LSR-MIB.MPLSInSegmentErrors",
876 "MIB.IETF|MPLS-LSR-MIB.MPLSIOutSegmentErrors"} ]
877 uint32 NumberOfErrors;
878
879 [Counter, Description (
880 "The number of labeled packets received/sent on this "
881 "Segment, which were chosen to be discarded even "
882 "though no errors had been detected to prevent their "
883 karl 1.1 "being transmitted. One possible reason for "
884 "discarding such a labeled packet could be to free up "
885 "buffer space. Whether this value denotes In or Out "
886 "Segments depends on the instance associated with "
887 "MPLSSegmentStats."),
888 MappingStrings {"MIB.IETF|MPLS-LSR-MIB.MPLSInSegmentDiscards",
889 "MIB.IETF|MPLS-LSR-MIB.MPLSIOutSegmentDiscards"} ]
890 uint32 NumberOfDiscards;
891 };
892
893
894 // ==================================================================
895 // MPLSInSegment
896 // ==================================================================
897 [Experimental, Version ("2.7.0"), Description (
898 "This class represents an incoming Segment on an MPLS "
899 "interface.") ]
900 class CIM_MPLSInSegment : CIM_MPLSSegment {
901
902 [Required, Description (
903 "The incoming label for this segment."),
904 karl 1.1 MappingStrings {"MIB.IETF|MPLS-LSR-MIB.MPLSInSegmentLabel"} ]
905 uint32 InLabel;
906
907 [Description (
908 "The number of labels to pop from the incoming packet. "
909 "Normally only the top label is popped from the packet, and "
910 "used for all switching decisions. Note that technologies which "
911 "do not support label popping should leave this value at its "
912 "default (1)."),
913 MappingStrings {"MIB.IETF|MPLS-LSR-MIB.MPLSInSegmentNPop"} ]
914 uint32 NPop = 1;
915
916 [Description (
917 "Describes the address type expected on the incoming Segment. "
918 "This is used when the last label is popped to know to which "
919 "IP stack the packet is forwarded."),
920 ValueMap {"0", "1", "2"},
921 Values {"Unknown", "IPv4", "IPv6"},
922 MappingStrings {"MIB.IETF|MPLS-LSR-MIB.MPLSInSegmentAddrFamily"} ]
923 uint16 AddressType;
924 };
925 karl 1.1
926
927 // ==================================================================
928 // MPLSOutSegment
929 // ==================================================================
930 [Experimental, Version ("2.7.0"), Description (
931 "This class represents an outgoing Segment on an MPLS "
932 "interface.") ]
933 class CIM_MPLSOutSegment : CIM_MPLSSegment {
934
935 [Description (
936 "This value indicates whether or not a top label "
937 "should be pushed onto the outgoing packet's label "
938 "stack. The value of this variable must be set to "
939 "true if the outgoing interface does not support pop-"
940 "and-go (for example an ATM interface) or if it is a "
941 "tunnel origination."),
942 MappingStrings {
943 "MIB.IETF|MPLS-LSR-MIB.MPLSOutSegmentPushTopLabel"} ]
944 boolean PushTopLabel = true;
945
946 karl 1.1 [Required, Description (
947 "If the property, PushTopLabel, is true then this "
948 "represents the label that should be pushed onto the "
949 "top of the outgoing packet's label stack. If PushTopLabel "
950 "is false, then the value should be 0."),
951 ModelCorrespondence {"CIM_MPLSOutSegment.PushTopLabel"},
952 MappingStrings {
953 "MIB.IETF|MPLS-LSR-MIB.MPLSOutSegmentTopLabel"} ]
954 uint32 TopLabel;
955 };
956
957
958 // ==================================================================
959 // MPLSCrossConnect
960 // ==================================================================
961 [Experimental, Version ("2.7.0"), Description (
962 "This class specifies information for switching "
963 "between Segments within a LSR. It is scoped by a Computer"
964 "System, that is the Label Switched Router, via "
965 "the HostedService association. Specific In/Out Segments are "
966 "associated with the cross-connect using the relationship, "
967 karl 1.1 "MPLSSegmentInXC. The service can support point-to-point, "
968 "point-to-multipoint and multipoint-to-point connections "
969 "by defining multiple instances of the association. "
970 "CrossConnect Services can be aggregated into an "
971 "overarching MPLSService using the CIM_ServiceComponent "
972 "association. And, the LSP to which the CrossConnect "
973 "belongs is indicated by the association, CrossConnectLSP.") ]
974 class CIM_MPLSCrossConnect : CIM_Service {
975
976 [Description (
977 "Denotes whether or not this CrossConnect entry and "
978 "associated In and Out Segments should be restored "
979 "automatically after failures."),
980 MappingStrings {"MIB.IETF|MPLS-LSR-MIB.MPLSXCIsPersistent"} ]
981 boolean IsPersistent;
982
983 [Description (
984 "Identifies a stack of labels to be pushed beneath the top "
985 "label. Note that the top label identified in an instance of "
986 "OutSegment ensures that all the components of a "
987 "multipoint-to-point connection have the same "
988 karl 1.1 "outgoing label. This array is 'Ordered' to maintain the "
989 "sequence of entries."),
990 ArrayType ("Ordered") ]
991 uint16 LabelStack[];
992 };
993
994
995 // ==================================================================
996 // MPLSQosPRTrfcProf
997 // ==================================================================
998 [Experimental, Version ("2.7.0"), Description (
999 "A QoS traffic profile, which is associated to an LSP when "
1000 "QoS is guaranteed. The association ElementSetting "
1001 "ties the Setting to the LSP.") ]
1002 class CIM_MPLSQosPRTrfcProf : CIM_SettingData {
1003
1004 [Description (
1005 "The peak traffic rate in kilobits per second."),
1006 Units ("KiloBits per Second") ]
1007 uint32 PRRate;
1008
1009 karl 1.1 [Description ("Traffic burst size in bytes."),
1010 Units ("Bytes") ]
1011 uint16 PRNormalBurst;
1012
1013 [Description ("Traffic excess burst in bytes."),
1014 Units ("Bytes") ]
1015 uint16 PRExcessBurst;
1016 };
1017
1018
1019 // ==================================================================
1020 // MPLSCRLSPTrfcProf
1021 // ==================================================================
1022 [Experimental, Version ("2.7.0"), Description (
1023 "Class to represent the Constraint-based Routed LSP (CR-LSP) "
1024 "traffic parameters as specified in [RFC3212].") ]
1025 class CIM_MPLSCRLSPTrfcProf : CIM_MPLSQosPRTrfcProf {
1026
1027 [Description (
1028 "Property to indicate at what granularity the CDR "
1029 "(allocated to the CR-LSP) is made available."),
1030 karl 1.1 ValueMap {"0", "1", "2"},
1031 Values {"Unspecified", "Frequently", "Very Frequently"} ]
1032 uint16 CRLSPFrequency;
1033
1034 [MinValue (0), MaxValue (100), Description (
1035 "Property to indicate the CR-LSP's relative share (in "
1036 "percent) of the possible excess bandwidth above its "
1037 "committed rate."),
1038 Units ("Percent") ]
1039 uint8 CRLSPWeight;
1040
1041 [Description (
1042 "Property to indicate the CR-LSP's committed data rate in "
1043 "bytes per second."),
1044 Units ("Bytes per Second") ]
1045 uint16 CRLSPCommitedDataRate;
1046
1047 [Description (
1048 "Property to indicate the CR-LSP's committed burst size in "
1049 "bytes."),
1050 Units ("Bytes") ]
1051 karl 1.1 uint16 CRLSPCommitedBurstSize;
1052 };
1053
1054
1055 // ==================================================================
1056 // MPLSSegmentOnProtocolEP
1057 // ==================================================================
1058 [Association, Experimental, Version ("2.7.0"),
1059 Description (
1060 "An MPLSSegment is defined in the context of an MPLS "
1061 "Endpoint. This association makes that relationship explicit.") ]
1062 class CIM_MPLSSegmentOnProtocolEP : CIM_Dependency {
1063
1064 [Override ("Antecedent"), Min (1), Max (1), Description (
1065 "The MPLSProtocolEndpoint which scopes the Segment.") ]
1066 CIM_MPLSProtocolEndpoint REF Antecedent;
1067
1068 [Override ("Dependent"), Description (
1069 "An MPLSSegment on the ProtocolEndpoint.") ]
1070 CIM_MPLSSegment REF Dependent;
1071 };
1072 karl 1.1
1073
1074 // ==================================================================
1075 // MPLSSegmentInXC
1076 // ==================================================================
1077 [Association, Experimental, Version ("2.7.0"), Description (
1078 "Defines the association between an In or Out Segment and a "
1079 "CrossConnect Service. The Segment is dependent on the Cross"
1080 "Connect for switching within the LSR.") ]
1081 class CIM_MPLSSegmentInXC : CIM_Dependency {
1082
1083 [Override ("Antecedent"), Description (
1084 "The MPLSCrossConnect.") ]
1085 CIM_MPLSCrossConnect REF Antecedent;
1086
1087 [Override ("Dependent"), Description (
1088 "An MPLSSegment dependent on the CrossConnect for "
1089 "switching.") ]
1090 CIM_MPLSSegment REF Dependent;
1091 };
1092
1093 karl 1.1
1094 // ==================================================================
1095 // MPLSFilterAtXC
1096 // ==================================================================
1097 [Association, Experimental, Version ("2.7.0"), Description (
1098 "The association denotes a filter list defining what traffic "
1099 "is mapped into the CrossConnect Service. A filter list is "
1100 "associated with the CrossConnect at the originating LSR.") ]
1101 class CIM_MPLSFilterAtXC : CIM_Dependency {
1102
1103 [Override ("Antecedent"), Max (1), Description (
1104 "A FilterList defining what traffic is mapped into "
1105 "the CrossConnect Service.") ]
1106 CIM_FilterList REF Antecedent;
1107
1108 [Override ("Dependent"), Description (
1109 "The CrossConnect whose traffic is filtered.") ]
1110 CIM_MPLSCrossConnect REF Dependent;
1111 };
1112
1113
1114 karl 1.1 // ==================================================================
1115 // MPLSCurrentlyAssignedLSP
1116 // ==================================================================
1117 [Association, Experimental, Version ("2.7.0"), Description (
1118 "Associates a traffic trunk with an LSP that is currently "
1119 "carrying its traffic.") ]
1120 class CIM_MPLSCurrentlyAssignedLSP : CIM_Dependency {
1121
1122 [Override ("Antecedent"), Description (
1123 "The LSP carrying the traffic of the trunk.") ]
1124 CIM_MPLSLSP REF Antecedent;
1125
1126 [Override ("Dependent"), Description (
1127 "The MPLSTrafficTrunk which is signaling using the LSP.") ]
1128 CIM_MPLSTunnel REF Dependent;
1129
1130 [MinValue (0), MaxValue (7), Description (
1131 "The preference for the use of the LSP, if more than one "
1132 "LSP is available to a trunk. Possible values are 0 to 7, "
1133 "with 7 indicating the highest preference.") ]
1134 uint16 Preference;
1135 karl 1.1
1136 [Write, MinValue (0), MaxValue (100), Description (
1137 "This property is used to indicate the relative proportion "
1138 "of traffic to be carried by parallel LSPs, specified "
1139 "as a percentage from 0 to 100. The value is defined by the "
1140 "network user/administrator to indicate how a LSPtunnel's "
1141 "bandwidth should be set on a router. It allows load "
1142 "distribution across multiple parallel LSP tunnels, between "
1143 "two nodes. Quoting from RFC2702, 'In many practical "
1144 "situations, the aggregate traffic between two nodes may be "
1145 "such that no single link can carry the load. In this case, "
1146 "the only feasible solution is to appropriately divide the "
1147 "aggregate traffic into sub-streams and route the sub-streams "
1148 "through multiple paths between the two nodes. This problem can "
1149 "be addressed by instantiating multiple LSP tunnels between the "
1150 "two nodes, such that each traffic trunk carries a proportion "
1151 "of the aggregate traffic.' The proportion of traffic "
1152 "carried by each such LSP tunnel is specified by the "
1153 "TrafficProportion property."),
1154 Units ("Percent") ]
1155 uint8 TrafficProportion;
1156 karl 1.1 };
1157
1158
1159 // ==================================================================
1160 // MPLSBackupLSP
1161 // ==================================================================
1162 [Association, Experimental, Version ("2.7.0"), Description (
1163 "Identifies an LSP as a backup LSP for a traffic trunk.") ]
1164 class CIM_MPLSBackupLSP : CIM_Dependency {
1165
1166 [Override ("Antecedent"), Description (
1167 "The backup LSP for the traffic trunk.") ]
1168 CIM_MPLSLSP REF Antecedent;
1169
1170 [Override ("Dependent"), Description (
1171 "The traffic trunk using the LSP for backup.") ]
1172 CIM_MPLSTunnel REF Dependent;
1173
1174 [MinValue (0), MaxValue (7), Description (
1175 "The preference for the use of the LSP, if more than one "
1176 "LSP is available to a trunk. Possible values are 0 to 7, "
1177 karl 1.1 "with 7 indicating the highest preference.") ]
1178 uint16 Preference;
1179 };
1180
1181
1182 // ==================================================================
1183 // MPLSLSPInLSP
1184 // ==================================================================
1185 [Association, Experimental, Version ("2.7.0"), Aggregation,
1186 Composition, Description (
1187 "Defines the nesting relationship of LSPs within LSPs. "
1188 "Arbitrary hierarchies of LSPs are possible.") ]
1189 class CIM_MPLSLSPInLSP : CIM_Component {
1190
1191 [Override ("GroupComponent"), Aggregate, Description (
1192 "The higher-level LSP containing another LSP.") ]
1193 CIM_MPLSLSP REF GroupComponent;
1194
1195 [Override ("PartComponent"), Description (
1196 "The LSP that is nested in the one referenced as "
1197 "GroupComponent.") ]
1198 karl 1.1 CIM_MPLSLSP REF PartComponent;
1199 };
1200
1201
1202 // ==================================================================
1203 // MPLSCrossConnectLSP
1204 // ==================================================================
1205 [Association, Experimental, Version ("2.7.0"), Description (
1206 "Defines the LSP to which the CrossConnect belongs.") ]
1207 class CIM_MPLSCrossConnectLSP : CIM_Dependency {
1208
1209 [Override ("Antecedent"), Max (1),
1210 Description ("The LSP.") ]
1211 CIM_MPLSLSP REF Antecedent;
1212
1213 [Override ("Dependent"), Description (
1214 "The CrossConnect belonging to the LSP.") ]
1215 CIM_MPLSCrossConnect REF Dependent;
1216
1217 [Description (
1218 "The XcType property defines whether a CrossConnect is at "
1219 karl 1.1 "the terminating end (\"Term\", 1), or originating end "
1220 "(\"Orig\", 2) of an LSP. A value of 4, \"Normal\", "
1221 "indicates the CrossConnect is switching through an LSP "
1222 "on an intermediate node. A value of 3, \"Special\", "
1223 "implies a terminating LSP for special traffic, e.g. "
1224 "signaling neighbor discovery, etc. Reserved MPLS labels "
1225 "with values 0 through 15 are used."),
1226 ValueMap {"1", "2", "3", "4"},
1227 Values {"Term", "Orig", "Special", "Normal"} ]
1228 uint16 XcType;
1229
1230 [Description (
1231 "This property defines the order of the CrossConnects in an"
1232 "LSP. An incrementally higher number indicates the next Cross"
1233 "Connect in the ordered sequence. Note that the first "
1234 "CrossConnect must be of type 'Orig', and the last of "
1235 "type 'Term' (see the property, XcType).") ]
1236 uint16 XcOrder;
1237 };
1238
1239
1240 karl 1.1 // ===================================================================
1241 // end of file
1242 // ===================================================================
|