1 karl 1.1 // ===================================================================
2 // Title: Network MOF Specification 2.5
3 // Filename: CIM_Network25.mof
4 // Version: 2.5
5 // Release: 0
6 // Date: 12/19/2000
7 // Description: The object classes below are listed in an order that
8 // avoids forward references. Required objects, defined
9 // by other working groups, are omitted.
10 // ===================================================================
11 // Contents: Network Model specification, including the
12 // BGP, Multi-Protocol Bridge, VLAN and QoS sub-models.
13 // Editor: John Strassner
14 // Authors: John Strassner, Al Grimstad, and Thomas McNeill,
15 // with valuable input from other Networks WG team
16 // members, including Andrea Westerinen, Lee Rafalow,
17 // Marc Lavine, Walter Weiss, and Bernie Volz (for 2.2).
18 //
19 // For 2.4 (the QoS model and various small changes),
20 // the authors were John Strassner and Andrea Westerinen.
21 // Valuable input was contributed by Bob Moore, Lee
22 karl 1.1 // Rafalow, and Alex Wang, along with Walter Weiss and
23 // Dave Durham.
24 //
25 // References: The information model represented here is based on
26 // the following RFCs: BGP: 1657, 1700, 1771, 1965, 1966,
27 // and 1997; Bridge: 1493 and 1525; VLAN includes
28 // compliance with the 802.1q specification. Also, MAC
29 // address formats are required to be in canonical form,
30 // as stated in RFC 2469.
31 //
32 // The QoS model is based on the IETF DiffServ RFCs
33 // (2474, 2475, 2597, and 2598), as well as other
34 // related drafts (the conceptual model, the MIB,
35 // and to a small extent, the PIB).
36 //
37 // ===================================================================
38 // Date: 04/21/1999 - Initial release of the model, consolidating
39 // each of the sub-models into a single spec
40 // for CIM V2.2
41 // 05/06/1999 - Incorporated CR324, deleted references to the
42 // User Model (this functionality will be added
43 karl 1.1 // back into CIM in V2.3)
44 // 05/16/1999 - Fixed typos; Incorporated Novell
45 // member review comments
46 // 06/10/1999 - Added CRs 308a, 324a, 356a, 390a, 391b,
47 // 404a, and 413
48 // 07/03/1999 - Miscellaneous changes according to CR cisco022
49 // 02/26/2000 - Incorporated the following CRs: 448b (this added
50 // ManagedElement to the Core model); CIMCR 454
51 // and 455 (misc changes to the Network model)
52 // 02/27/2000 - Incorporated CR464, which promotes the
53 // CIM_ServiceComponent and the
54 // CIM_AdapterActiveConnection classes to Core
55 // 06/18/2000 - Integrated the QoS model into the Network model
56 // (CR499)
57 // (ERRATA) (CR500) - Corrected keys of BGPPathAttributes
58 // (ERRATA) (CR501) - Correced cardinality of Forwarded
59 // Routes (Antecedent must be Min(1), Max(1))
60 // (ERRATA) (CR506) - Corrected subclassing of Network
61 // ServicesInAdminDomain
62 // (ERRATA) (CR508) - Corrected 3 BGP-specific
63 // associations - EGPRouteCalcDependency,
64 karl 1.1 // BGPAttributesForRoute and BGPPeerUsesRouteMap
65 // (ERRATA) (CR510) - Removed subclassing from CIM_
66 // Dependency to not force reference name changes
67 // (LogicalNetworkService and NetworksInAdminDomain)
68 // (ERRATA) (CR512) - SwitchPortXXXStatistics should
69 // subclass from SAPStatisticalInformation (not
70 // SAPStatistics) and TransparentBridgingStatic
71 // Forwarding was incorrectly named SwitchService
72 // StaticForwarding (cut and paste error)
73 // Added MOF for the following CRs:
74 // CR483 updated the enum for ForwardingService.
75 // ProtocolType
76 // CR484 added "IB" and "FC" to various enums
77 // CR485 created PortImplementsEndpoint
78 // CR489 added "Policy Repository" to AdminDomain's
79 // NameFormat enumeration
80 // CR490a added missing associations, FilterListIn
81 // System and FilterEntryInSystem
82 // CR492a added FilterEntryBase, subclasses Filter
83 // Entry from it and updates EntriesInFilterList
84 // CR496 corrected use of SQL reserved words
85 karl 1.1 // CR498 added to the existing enums, and defined
86 // two new properties of FilterEntry
87 // CR502 added IsNegated boolean to FilterEntryBase
88 // CR503 - Member comments on QoS
89 // CR507a removed Min(1) or Max(1) from some
90 // association references, to generalize them
91 // CR509 added Override qualifier which was
92 // missing on three associations
93 //
94 // ===================================================================
95 // Generic Pragmas
96 // ===================================================================
97
98 #pragma Locale ("en_US")
99
100 // ==================================================================
101 // NetworkService
102 // ==================================================================
103 [Abstract, Description (
104 "This is an abstract base class, derived from the Service "
105 "class. It serves as the root of the network service "
106 karl 1.1 "hierarchy. Network services represent generic functions "
107 "that are available from the network that configure and/or "
108 "modify the traffic being sent. For example, FTP is not a "
109 "network service, as it simply passes data unchanged from "
110 "source to destination. On the other hand, services "
111 "that provide quality of service (e.g., DiffServ) and "
112 "security (e.g., IPSec) do affect the traffic stream. "
113 "Quality of service, IPSec, and other services are "
114 "subclasses of this class. This class hierarchy enables "
115 "developers to match services to users, groups, "
116 "and other objects in the network.") ]
117
118 class CIM_NetworkService : CIM_Service
119 {
120 [Description (
121 "This is a free-form array of strings that provide "
122 "descriptive words and phrases that can be used in queries "
123 "to help locate and identify instances of this service.") ]
124 string Keywords [ ];
125 [Description (
126 "This is a URL that provides the protocol, network "
127 karl 1.1 "location, and other service-specific information required "
128 "in order to access the service. This should be implemented "
129 "as a LabeledURI, with syntax DirectoryString and a "
130 "matching rule of CaseExactMatch, for directory "
131 "implementors.") ]
132 string ServiceURL;
133 [Description (
134 "This is a free-form array of strings that specify any "
135 "specific pre-conditions that must be met in order for this "
136 "service to start correctly. It is expected that subclasses "
137 "will refine the inherited StartService() and StopService()"
138 "methods to suit their own application-specific needs. This "
139 "property is used to specify application-specific conditions "
140 "needed by the refined StartService and StopService"
141 "methods.") ]
142 string StartupConditions [ ];
143 [Description (
144 "This is a free-form array of strings that specify any "
145 "specific parameters that must be supplied to the "
146 "StartService() method in order for this service to start "
147 "correctly. It is expected that subclasses will refine the "
148 karl 1.1 "inherited StartService() and StopService() methods to suit "
149 "their own application-specific needs. This property is used "
150 "to specify application-specific parameters needed by the "
151 "refined StartService and StopService methods.") ]
152 string StartupParameters [ ];
153 };
154
155 // ==================================================================
156 // NetworkServicesInAdminDomain
157 // ==================================================================
158 [Association, Description (
159 " This association establishes the Dependency relationships "
160 "that exist between an administrative domain and the Network"
161 "Services that it hosts. This also has the semantics that "
162 "the associated Services are commonly administered. \n"
163 " This relationship could be viewed as a kind of Hosted"
164 "Service. However, the latter carries the additional "
165 "semantics of 'weak'ness (or naming) the NetworkService "
166 "relative to the hosted System. NetworkServices are scoped/"
167 "named by the network device that 'hosts' them, not by "
168 "the AdminDomain in which they are administered. Therefore, "
169 karl 1.1 "this relationship is similar to HostedService, but not a "
170 "subclass of it.") ]
171
172 class CIM_NetworkServicesInAdminDomain : CIM_HostedService
173 {
174 [Override ("Antecedent"), Min(1), Description (
175 "The AdminDomain that aggregates the various "
176 "network services and administers them.") ]
177 CIM_AdminDomain REF Antecedent;
178 [Override ("Dependent"), Description (
179 "The network service that is hosted in the administrative "
180 "domain.") ]
181 CIM_NetworkService REF Dependent;
182 };
183
184 // ==================================================================
185 // ForwardingService
186 // ==================================================================
187 [Description (
188 "This class represents the functions used in forwarding "
189 "network traffic. Its instances act on packets received"
190 karl 1.1 "from one or more ProtocolEndpoints or Services, and "
191 "drop (discard), or send those packets to one or more "
192 "other ProtocolEndpoints or Services. The explicit "
193 "Endpoints being forwarded between, are described using the "
194 "ForwardsAmong association (or one of its subclasses). "
195 "\n\n"
196 "ForwardingService is different than RouteCalculation"
197 "Service in that it represents a way to forward "
198 "traffic independent of calculating routing information "
199 "(e.g., using static routing). Generally, the Endpoints "
200 "among which a ForwardingService routes data are at the "
201 "same protocol layer and are usually of similar types, "
202 "or of the same type. This kind of service is used in the "
203 "implementation of routers, switches and other network "
204 "devices.") ]
205 class CIM_ForwardingService : CIM_NetworkService
206 {
207 [Description (
208 "This defines the type of protocol that is being "
209 "forwarded. "),
210 ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8",
211 karl 1.1 "9", "10", "11", "12", "13", "14", "15", "16",
212 "17", "18", "19"},
213 Values { "Unknown", "Other", "IPv4", "IPv6", "IPv4/IPv6",
214 "IPX", "AppleTalk", "DECnet", "SNA", "CONP",
215 "CLNP", "VINES", "XNS", "ATM", "Frame Relay",
216 "Ethernet", "TokenRing", "FDDI", "Infiniband",
217 "Fibre Channel"} ]
218 uint16 ProtocolType;
219 [MaxLen(32), Description (
220 "This defines the type of protocol that is being forwarded "
221 "when the value of the ProtocolType attribute is 1 (e.g., "
222 "'Other'). This provides for future extensibility."),
223 ModelCorrespondence {"CIM_ForwardingService.ProtocolType" } ]
224 string OtherProtocolType;
225 };
226
227 // ==================================================================
228 // AutonomousSystem
229 // ==================================================================
230 [Description (
231 "An Autonomous System (AS) is a fundamental concept in "
232 karl 1.1 "networking. An AS provides a structured view of routing by "
233 "segregating the system that is using routing (e.g., the "
234 "Internet, or an extranet) into a set of separately "
235 "administered domains that each have their own independent "
236 "routing policies. These domains are called autonomous "
237 "systems."
238 "\n\n"
239 "The classic definition of an AS, from RFC1771, is '...a set "
240 "of routers under a single technical administration, using "
241 "an interior gateway protocol and common metrics to route "
242 "packets within the AS, and using an exterior gateway "
243 "protocol to route packets to other ASs'. The RFC continues: "
244 "'Since this classic definition was developed, it has become "
245 "common for a single AS to use several interior gateway "
246 "protocols and sometimes several sets of metrics "
247 "within an AS. The use of the term Autonomous System here "
248 "stresses the fact that, even when multiple IGPs and metrics "
249 "are used, the administration of an AS appears to other ASs "
250 "to have a single coherent interior routing plan and "
251 "presents a consistent picture of what destinations are "
252 "reachable through it.") ]
253 karl 1.1
254 class CIM_AutonomousSystem : CIM_AdminDomain
255 {
256 [Description (
257 "An ASNumber is an integer between 1 and 65535, with the "
258 "range 64512 through 65535 reserved for private use. Every "
259 "AS has a unique AS number, which is assigned to it by an "
260 "Internet Registry or a provider. IANA assigns and "
261 "administers AS numbers.") ]
262 uint16 ASNumber;
263 [Description (
264 "IsSingleHomed is a boolean that, when its value is TRUE, "
265 "indicates that this AS reaches networks outside of its "
266 "domain through a single exit point. Whether a given AS is "
267 "single-homed or not has important ramifications for BGP "
268 "configuration.") ]
269 boolean IsSingleHomed;
270 [Description (
271 "IsTransit is a boolean that, when its value is TRUE, "
272 "indicates that this AS will advertise routes that it "
273 "learns from other ASs. A non-transit AS will only "
274 karl 1.1 "advertise its own routes.") ]
275 boolean IsTransit;
276 [Description (
277 "RequireIGPSync is a boolean that, when its value is TRUE, "
278 "indicates that this AS must obey the following BGP rule: a "
279 "BGP router should not advertise destinations learned from "
280 "internal BGP neighbors to external BGP destinations unless "
281 "those destinations are also known via some internal gateway "
282 "protocol. Otherwise, a BGP router may receive traffic that "
283 "cannot yet be routed. However, since this is a costly "
284 "choice, it is common practice to allow this rule to be "
285 "broken under certain carefully controlled circumstances.") ]
286 boolean RequireIGPSync;
287 [Description (
288 "RoutingUpdateSource defines how routing information is to "
289 "be injected into BGP. Statically injected routes are "
290 "maintained by the routing table and are independent of the "
291 "status of the networks that they refer to. This is done by "
292 "defining static routes in the BGP routing table. "
293 "Dynamically injected routes are of two types. "
294 "Dynamic routes refer to distributing all of the IGP routes "
295 karl 1.1 "into BGP. Semi-dynamic routes define a set of specific IGP "
296 "routes that will be injected into BGP."),
297 ValueMap { "0", "1", "2", "3" },
298 Values { "Unknown", "Static", "Dynamic", "Semi-Dynamic" } ]
299 uint16 RoutingUpdateSource;
300 [Description (
301 "Route aggregation refers to summarizing ranges of routes "
302 "into one or more aggregate routes. This is done to minimize "
303 "the number of routes in the global routing table. A "
304 "potential drawback is that specific path information (e.g., "
305 "AS_Path attribute value) is lost, which may lead to "
306 "potential routing loops. There are a variety of ways to "
307 "ensure that this does not happen. Note, however, that BGP4 "
308 "is required to do this. "
309 "\n\n"
310 "There are many ways to form aggregate routes. The following "
311 "are the most popular: 'Aggregate only', where only the "
312 "aggregate is advertised, and all of its more specific "
313 "routes are suppressed; 'Aggregate Plus Specific Routes', "
314 "where both the aggregate as well as its more specific "
315 "routes are advertised (e.g., send the aggregate to the NAP, "
316 karl 1.1 "but send the more specific routes to providers); "
317 "'Aggregate Based on a Subset of Specific Routes', where the "
318 "aggregate route is formed by looking at certain more "
319 "specific routes and forming an aggregate on them, "
320 "suppressing all others."),
321 ValueMap { "0", "1", "2", "3", "4" },
322 Values { "Unknown", "None", "Aggregate Only ",
323 "Aggregate And All Specific Routes ",
324 "Aggregate Based on Subset of Specific Routes" } ]
325 uint16 AggregationType;
326 };
327
328 // ==================================================================
329 // LogicalNetwork
330 // ==================================================================
331 [Description (
332 "A LogicalNetwork groups together a set of "
333 "ProtocolEndpoints of a given type which are able to "
334 "communicate with each other directly. It is used for "
335 "describing the characteristics of the grouping "
336 "and/or its associated medium. A LogicalNetwork "
337 karl 1.1 "represents the ability to send and/or receive data "
338 "over a network.") ]
339
340 class CIM_LogicalNetwork : CIM_CollectionOfMSEs
341 {
342 [Propagated ("CIM_System.CreationClassName"), Key,
343 MaxLen (256), Description (
344 "The scoping System's CreationClassName.") ]
345 string SystemCreationClassName;
346 [Propagated ("CIM_System.Name"), Key, MaxLen (256),
347 Description ("The scoping System's Name.") ]
348 string SystemName;
349 [Key, MaxLen (256), Description (
350 "CreationClassName indicates the name of the class or the "
351 "subclass used in the creation of an instance. When used "
352 "with the other key properties of this class, this property "
353 "allows all instances of this class and its subclasses to "
354 "be uniquely identified.") ]
355 string CreationClassName;
356 [Key, MaxLen (256), Description (
357 "The Name property defines the label by which the object is "
358 karl 1.1 "known.") ]
359 string Name;
360 [MaxLen(64), Description (
361 "Type is an enumeration that provides additional "
362 "information that can be used to help categorize and "
363 "classify different instances of this class . "
364 "\n\n"
365 "Subclasses should ensure that they are of the "
366 "appropriate type defined in the Type enumeration. "
367 "That is, the IPSubnet subclass should define its "
368 "property as either IPv4 or IPv6, as opposed to, "
369 "for example, ATM."),
370 ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
371 "10", "11", "12", "13", "14", "15", "16", "17",
372 "18"},
373 Values { "Unknown", "Other", "IPv4", "IPv6",
374 "IPX", "AppleTalk", "DECnet", "SNA", "CONP",
375 "CLNP", "VINES", "XNS", "ATM", "Frame Relay",
376 "Ethernet", "TokenRing", "FDDI", "Infiniband",
377 "Fibre Channel" },
378 ModelCorrespondence {
379 karl 1.1 "CIM_LogicalNetwork.OtherTypeDescription"} ]
380 string NetworkType;
381 [MaxLen(64), Description (
382 "A string describing the type of protocol that is being "
383 "run by this LogicalNetwork when the value of the Type "
384 "property of the Collection class (or any of its subclasses "
385 "is set to 1 (e.g., 'Other'). The format of the string "
386 "inserted in this property should be similar in format to "
387 "the values defined for the Type property. This property "
388 "should be set to NULL when the Type property is any value "
389 "other than 1."),
390 ModelCorrespondence {"CIM_LogicalNetwork.NetworkType"} ]
391 string OtherTypeDescription;
392 };
393
394 // ==================================================================
395 // LogicalNetworkService
396 // ==================================================================
397 [Association, Description (
398 "A LogicalNetworkService represents network services that "
399 "either originate and/or terminate in a LogicalNetwork. This "
400 karl 1.1 "enables management applications to more easily identify "
401 "services that are provided by particular network devices.") ]
402
403 class CIM_LogicalNetworkService
404 {
405 [Key, Description (
406 "The LogicalNetwork that contains the network service.") ]
407 CIM_LogicalNetwork REF Network;
408 [Key, Description (
409 "The NetworkService that is running in the LogicalNetwork. ")]
410 CIM_NetworkService REF NetworkService;
411 [Description (
412 "An enumeration that explicitly defines this network service "
413 "as originating, terminating, or residing in this "
414 "LogicalNetwork. "),
415 ValueMap { "0", "1", "2", "3" },
416 Values {"Unknown", "Originates In", "Terminates In",
417 "Resides In" } ]
418 uint16 ContainmentType;
419 };
420
421 karl 1.1 // ==================================================================
422 // IPSubnet
423 // ==================================================================
424 [Description (
425 "An IPSubnet represents a group of related "
426 "IPProtocolEndpoints that can communicate with each other "
427 "directly using IP. It is used for describing the "
428 "characteristics of the grouping.") ]
429
430 class CIM_IPSubnet : CIM_LogicalNetwork
431 {
432 [Description (
433 "The IP address of the entire subnet, formatted according "
434 "to the appropriate convention as defined in the AddressType "
435 "property of this class. "
436 "\n\n"
437 "Note that CIDR format is not supported for this release. "
438 "This is because, without more formal methods like "
439 "constraints, it is possible to create different instances "
440 "of the same object that have different naming formats."
441 "\n\n"
442 karl 1.1 "IPv4-compatible addresses should be used instead of IPv6 "
443 "addresses (see RFC 2373, section 2.5.4). In order to have a "
444 "consistent format for IPv4 addresses in a mixed IPv4/v6 "
445 "environment, all IPv4 addresses and both IPv4-compatible "
446 "IPv6 addresses and IPv4-mapped IPv6 addresses, per "
447 "RFC 2373, section 2.5.4, should be formatted in standard "
448 "IPv4 format. However, this (the 2.2) version of the Network "
449 "Common Model will not explicitly support mixed IPv4/IPv6 "
450 "environments. This will be added in a future release.") ]
451 string SubnetNumber;
452 [Description (
453 "The mask for the starting IP address of the IPSubnet, "
454 "formatted according to the appropriate convention as "
455 "defined in the AddressType property of this class "
456 " (e.g., '255.255.252.0').") ]
457 string SubnetMask;
458 [Description (
459 "An enumeration that describes the format of the address "
460 "property. Addresses that can be formatted in IPv4 format, "
461 "must be formatted that way to ensure mixed IPv4/IPv6 "
462 "support."),
463 karl 1.1 ValueMap { "0", "1", "2" },
464 Values { "Unknown", "IPv4", "IPv6" } ]
465 uint16 AddressType;
466 };
467
468 // ==================================================================
469 // ProtocolEndpoint
470 // ==================================================================
471 [Description (
472 "A communication point from which data may be sent or "
473 "received. ProtocolEndpoints link router interfaces and "
474 "switch ports to LogicalNetworks.") ]
475
476 class CIM_ProtocolEndpoint : CIM_ServiceAccessPoint
477 {
478 [Override ("Name"), MaxLen(256), Description (
479 "A string which identifies this ProtocolEndpoint with either "
480 "a port or an interface on a device. To ensure uniqueness, "
481 "the Name property should be prepended or appended with "
482 "information from the Type or OtherTypeDescription "
483 "properties. The method chosen is described in the "
484 karl 1.1 "NameFormat property of this class.") ]
485 string Name;
486 [MaxLen (256), Description (
487 "NameFormat contains the naming heuristic that is chosen to "
488 "ensure that the value of the Name property is unique. For "
489 "example, one might choose to prepend the name of the port "
490 "or interface with the Type of ProtocolEndpoint that this "
491 "instance is (e.g., IPv4)followed by an underscore.") ]
492 string NameFormat;
493 [MaxLen (64), Description (
494 "ProtocolType is an enumeration that provides additional "
495 "information that can be used to help categorize and "
496 "classify different instances of this class."),
497 ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
498 "10", "11", "12", "13", "14", "15", "16", "17",
499 "18"},
500 Values { "Unknown", "Other", "IPv4", "IPv6",
501 "IPX", "AppleTalk", "DECnet", "SNA", "CONP",
502 "CLNP", "VINES", "XNS", "ATM", "Frame Relay",
503 "Ethernet", "TokenRing", "FDDI", "Infiniband",
504 "Fibre Channel" },
505 karl 1.1 ModelCorrespondence {
506 "CIM_ProtocolEndpoint.OtherTypeDescription"} ]
507 string ProtocolType;
508 [MaxLen(64), Description (
509 "A string describing the type of ProtocolEndpoint that this "
510 "instance is when the Type property of this class (or any of "
511 "its subclasses) is set to 1 (e.g., 'Other'). The format of "
512 "the string inserted in this property should be similar in "
513 "format to the values defined for the Type property. This "
514 "property should be set to NULL when the Type property is "
515 "any value other than 1."),
516 ModelCorrespondence {"CIM_ProtocolEndpoint.ProtocolType"} ]
517 string OtherTypeDescription;
518 };
519
520 // ==================================================================
521 // ForwardsAmong
522 // ==================================================================
523 [Association, Description (
524 "This association represents the dependency that exists "
525 "between the ProtocolEndpoints that are used to forward data "
526 karl 1.1 "and the ForwardingService that is performing the forwarding "
527 "of data.") ]
528
529 class CIM_ForwardsAmong : CIM_ServiceSAPDependency
530 {
531 [Override ("Antecedent"), Description(
532 "The ProtocolEndpoints that are used to forward the data") ]
533 CIM_ProtocolEndpoint REF Antecedent;
534 [Override ("Dependent"), Description(
535 "The service that is forwarding the data") ]
536 CIM_ForwardingService REF Dependent;
537 };
538
539 // ===================================================================
540 // PortImplementsEndpoint
541 // ===================================================================
542 [Association, Description (
543 "PortImplementsEndpoint associates a LogicalPort with one or "
544 "more ProtocolEndpoints that are implemented `on it'. This "
545 "class specializes the DeviceSAPImplementation association. "
546 "It indicates that the referenced Endpoint is dependent on the "
547 karl 1.1 "operations of the Port Device. (In the cases where Ports are "
548 "not currently defined for a protocol, for example for "
549 "Ethernet, an Endpoint could be associated directly with an "
550 "EthernetAdapter via the DeviceSAPImplementation "
551 "relationship.)")
552 ]
553 class CIM_PortImplementsEndpoint : CIM_DeviceSAPImplementation
554 {
555 [Override ("Antecedent"),
556 Description (
557 "The LogicalPort that represents the Device behind "
558 "the ProtocolEndpoint.")
559 ]
560 CIM_LogicalPort REF Antecedent;
561 [Override ("Dependent"),
562 Description (
563 "The ProtocolEndpoint implemented on the LogicalPort.")
564 ]
565 CIM_ProtocolEndpoint REF Dependent;
566 };
567
568 karl 1.1 // ==================================================================
569 // LANEndpoint
570 // ==================================================================
571
572 [Description (
573 "A communication endpoint which, when its associated "
574 "interface device is connected to a LAN, may send and "
575 "receive data frames. LANEndpoints link switch ports and "
576 "host interfaces to LANs. ") ]
577
578 class CIM_LANEndpoint : CIM_ProtocolEndpoint
579 {
580 [Description (
581 "A label or identifier for the LAN Segment."),
582 ModelCorrespondence {"CIM_LANSegment.LANID"} ]
583 string LANID;
584 [Description (
585 "An indication of the kind of technology used on the LAN."),
586 ValueMap { "0", "1", "2", "3", "4" },
587 Values { "Unknown", "Other", "Ethernet", "TokenRing", "FDDI" },
588 ModelCorrespondence {"CIM_LANSegment.LANType"} ]
589 karl 1.1 uint16 LANType;
590 [Description (
591 "A free-form string that describes the type of technology "
592 "used on the LAN when the value of the LANType property "
593 "is equal to 1 (e.g., 'Other'). This provides built-in "
594 "extensibility."),
595 ModelCorrespondence {"CIM_LANEndpoint.LANType"} ]
596 string OtherLANType;
597 [MaxLen(12), Description (
598 "The principal unicast address used in communication "
599 "with the LANEndpoint. The MAC address is formatted as "
600 "twelve hexadecimal digits (e.g., \"010203040506\"), "
601 "with each pair representing one of the six octets "
602 "of the MAC address in \"canonical\" bit order "
603 "according to RFC 2469.") ]
604 string MACAddress;
605 [Description (
606 "Other unicast addresses that may be used to communicate "
607 "with the LANEndpoint.") ]
608 string AliasAddresses[];
609 [Description (
610 karl 1.1 "Multicast addresses to which the LANEndpoint "
611 "listens.") ]
612 string GroupAddresses[];
613 [Description (
614 "The largest information field that may be sent or received "
615 "by the LANEndpoint."), Units ("Bits") ]
616 uint32 MaxDataSize;
617 };
618
619 // ==================================================================
620 // LANSegment
621 // ==================================================================
622 [Description (
623 "A collection of LAN Endpoints of a particular type "
624 "that are able to intercommunicate directly without "
625 "the assistance of bridging or routing services.") ]
626
627 class CIM_LANSegment : CIM_LogicalNetwork
628 {
629 [MaxLen(64), Description (
630 "A label or identifier for the LAN Segment."),
631 karl 1.1 ModelCorrespondence {"CIM_LANEndpoint.LANID"} ]
632 string LANID;
633 [Description (
634 "An indication of the kind of technology used on the LAN."),
635 ValueMap { "0", "1", "2", "3", "4" },
636 Values { "Unknown", "Other", "Ethernet", "TokenRing", "FDDI" },
637 ModelCorrespondence {"CIM_LANEndpoint.LANType"} ]
638 uint16 LANType;
639 [MaxLen(64), Description (
640 "A string describing the type of technology used on the LAN "
641 "when the value of the LANType property of this class (or "
642 "any of its subclasses) is set to 1 (e.g., 'Other'). The "
643 "format of the string inserted in this property should be "
644 "similar in format to the values defined for the LANType "
645 "property. This property should be set to NULL when the "
646 "LANType property is any value other than 1."),
647 ModelCorrespondence {"CIM_LANSegment.LANType"} ]
648 string OtherLANType;
649 };
650
651 // ==================================================================
652 karl 1.1 // InLogicalNetwork
653 // ==================================================================
654 [Association, Aggregation, Description (
655 "This association defines a ProtocolEndpoint as a member of "
656 "a specific LogicalNetwork.") ]
657
658 class CIM_InLogicalNetwork : CIM_CollectedMSEs
659 {
660 [Aggregate, Max(1), Override ("Collection"),
661 Description (
662 "The LogicalNetwork that groups the ProtocolEndpoint "
663 "instances.") ]
664 CIM_LogicalNetwork REF Collection;
665 [Override ("Member"), Description (
666 "The child ProtocolEndpoints that are components of the "
667 "LogicalNetwork.") ]
668 CIM_ProtocolEndpoint REF Member;
669 };
670
671 // ==================================================================
672 // InSegment
673 karl 1.1 // ==================================================================
674 [Association, Aggregation, Description (
675 "Defines a LANEndpoint as a member of a specific "
676 "LANSegment.") ]
677
678 class CIM_InSegment : CIM_InLogicalNetwork
679 {
680 [Aggregate, Max(1), Override ("Collection"), Description (
681 "The LANSegment that groups the LANEndpoint instances.") ]
682 CIM_LANSegment REF Collection;
683 [Override ("Member"), Description (
684 "A child LANEndpoint that is a component of the "
685 "LANSegment.") ]
686 CIM_LANEndpoint REF Member;
687 };
688
689 // ==================================================================
690 // ActiveConnection
691 // ==================================================================
692 [Association, Description (
693 "This association defines a connection that is currently "
694 karl 1.1 "carrying traffic between two ProtocolEndpoints.") ]
695
696 class CIM_ActiveConnection : CIM_SAPSAPDependency
697 {
698 [Override ("Antecedent"), Description (
699 "A ProtocolEndpoint in active communication with the "
700 "dependent ProtocolEndpoint.") ]
701 CIM_ProtocolEndpoint REF Antecedent;
702 [Override ("Dependent"), Description (
703 "A second ProtocolEndpoint communicating with the "
704 "Antecedent ProtocolEndpoint.") ]
705 CIM_ProtocolEndpoint REF Dependent;
706 [Description ("The type of traffic that is carried "
707 "over this connection."),
708 ValueMap { "0", "1", "2", "3", "4", "5" },
709 Values { "Unknown", "Other", "Unicast", "Broadcast",
710 "Multicast", "Anycast" },
711 ModelCorrespondence {
712 "CIM_ActiveConnection.OtherTrafficDescription" } ]
713 uint16 TrafficType;
714 [MaxLen(64), Description (
715 karl 1.1 "A string describing the type of traffic that is being "
716 "carried over this instance when its Type property is set "
717 "to 1 (e.g., 'Other'). The format of the string inserted "
718 "in this property should be similar in format to the "
719 "values defined for the TrafficType property. This "
720 "property should be set to NULL when the TrafficType "
721 "property is any value other than 1."),
722 ModelCorrespondence {
723 "CIM_ActiveConnection.TrafficType" } ]
724 string OtherTrafficDescription;
725 [Description (
726 "TRUE means that this connection is uni-directional; FALSE "
727 "means that this connection is bi-directional.") ]
728 boolean IsUnidirectional;
729 };
730
731 // ==================================================================
732 // IPAddressRange
733 // ==================================================================
734 [Abstract, Description (
735 "This represents a grouping of specific addresses, and "
736 karl 1.1 "provides additional semantics for this group if "
737 "appropriate.") ]
738
739 class CIM_IPAddressRange : CIM_CollectionOfMSEs
740 {
741 [Description (
742 "The starting IP address of the AddressRange, formatted "
743 "according to the appropriate convention as defined in the "
744 "AddressType property of this class (e.g., 171.79.6.40).") ]
745 string StartAddress;
746 [Description (
747 "The ending IP address of the AddressRange, formatted "
748 "according to the appropriate convention as defined in the "
749 "AddressType property of this class (e.g., 171.79.6.40).") ]
750 string EndAddress;
751 [Description (
752 "An enumeration that defines how to format the address and "
753 "mask of the address range that defines this IPSubnet)."
754 "\n\n"
755 "Whenever possible, IPv4-compatible addresses should "
756 "be used instead of IPv6 addresses (see RFC 2373, "
757 karl 1.1 "section 2.5.4). In order to have a consistent format "
758 "for IPv4 addresses in a mixed IPv4/v6 environment, all "
759 "IPv4 addresses and both IPv4-compatible IPv6 addresses "
760 "and IPv4-mapped IPv6 addresses, per RFC 2373, section "
761 "2.5.4, should be formatted in standard IPv4 format. "
762 "However, this (the 2.2) version of the Network Common "
763 "Model will not explicitly support mixed IPv4/IPv6 "
764 "environments. This will be added in a future release."),
765 ValueMap { "0", "1", "2" },
766 Values { "Unknown", "IPv4", "IPv6" } ]
767 uint16 TypeOfAddress;
768 [Description (
769 "This attribute defines the region that addresses can be "
770 "allocated to."),
771 ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8" },
772 Values {"Unknown",
773 "Multiregional: 192.0.0.0 to 193.255.255.255",
774 "Europe: 194.0.0.0 to 195.255.255.255",
775 "Others: 196.0.0.0 to 197.255.255.255",
776 "North America: 198.0.0.0 to 199.255.255.255",
777 "Central & South America: 200.0.0.0 to 201.255.255.255",
778 karl 1.1 "Pacific Rim: 202.0.0.0 to 203.255.255.255",
779 "Others: 204.0.0.0 to 205.255.255.255",
780 "Others: 206.0.0.0 to 207.255.255.255" } ]
781 uint16 AllocationRegion;
782 };
783
784 // ==================================================================
785 // IPProtocolEndpoint
786 // ==================================================================
787 [Description (
788 "A ProtocolEndpoint that is dedicated to running IP.") ]
789
790 class CIM_IPProtocolEndpoint : CIM_ProtocolEndpoint
791 {
792 [Description (
793 "The IP address that this ProtocolEndpoint represents, "
794 "formatted according to the appropriate convention as "
795 "defined in the AddressType property of this class "
796 " (e.g., 171.79.6.40).") ]
797 string Address;
798 [Description (
799 karl 1.1 "The mask for the IP address of this ProtocolEndpoint, "
800 "formatted according to the appropriate convention as "
801 "defined in the AddressType property of this class "
802 " (e.g., 255.255.252.0).") ]
803 string SubnetMask;
804 [Description (
805 "An enumeration that describes the format of the address "
806 "property. Whenever possible, IPv4-compatible addresses "
807 "should be used instead of native IPv6 addresses (see "
808 "RFC 2373, section 2.5.4). In order to have a consistent "
809 "format for IPv4 addresses in a mixed IPv4/v6 environment, "
810 "all IPv4 addresses and both IPv4-compatible IPv6 addresses "
811 "and IPv4-mapped IPv6 addresses, per RFC 2373, section "
812 "2.5.4, should be formatted in standard IPv4 format. "
813 "However, this (the 2.2) version of the Network Common "
814 "Model will not explicitly support mixed IPv4/IPv6 "
815 "environments. This will be added in a future release."),
816 ValueMap { "0", "1", "2" },
817 Values { "Unknown", "IPv4", "IPv6" } ]
818 uint16 AddressType;
819 [Description (
820 karl 1.1 "It is not possible to tell from the address alone if a "
821 "given IPProtocolEndpoint can support IPv4 and IPv6, or "
822 "just one of these. This property explicitly defines the "
823 "support for different versions of IP that this "
824 "IPProtocolEndpoint has. "
825 "\n\n"
826 "More implementation experience is needed in order to "
827 "correctly model mixed IPv4/IPv6 networks; therefore, this "
828 "version (2.2) of the Network Common Model will not support "
829 "mixed IPv4/IPv6 environments. This will be looked at "
830 "further in a future version."),
831 ValueMap { "0", "1", "2" },
832 Values { "Unknown", "IPv4 Only", "IPv6 Only" } ]
833 uint16 IPVersionSupport;
834 };
835
836 // ==================================================================
837 // BGPProtocolEndpoint
838 // ==================================================================
839 [Description (
840 "A ProtocolEndpoint that is dedicated to running BGP.") ]
841 karl 1.1
842 class CIM_BGPProtocolEndpoint : CIM_ProtocolEndpoint
843 {
844 [Description (
845 "A boolean that, when TRUE, signifies that this is an "
846 "instance of the external version of BGP (FALSE is the "
847 "internal version).") ]
848 boolean IsEBGP;
849 [Description (
850 "Normally, two routers running EBGP must be physically "
851 "connected. This boolean, when TRUE, denotes a LOGICAL "
852 "connection between two routers that are running EBGP "
853 "(e.g., there is an intermediate router or interface "
854 "between them.") ]
855 boolean IsEBGPMultihop;
856 [Description (
857 "This is the unique identifier of the local BGP router. "
858 "This is often the router ID (e.g., an IP address)."),
859 Mappingstrings {"MIB.IETF|RFC1657-MIB.bgpIdentifier"} ]
860 string LocalIdentifier;
861 [Description (
862 karl 1.1 "This is the unique identifier of the peer BGP router. "
863 "This is often the router ID (e.g., an IP address)."),
864 Mappingstrings {"MIB.IETF|RFC1657-MIB.bgpPeerIdentifier"} ]
865 string PeerIdentifier;
866 [Description (
867 "This defines the current connection state of the "
868 "BGP Peer."),
869 ValueMap { "1", "2", "3", "4", "5", "6" },
870 Values { "Idle", "Connect", "Active", "OpenSet",
871 "OpenConfirm", "Established" },
872 Mappingstrings {"MIB.IETF|RFC1657-MIB.bgpPeerState"} ]
873 uint16 State;
874 [Description (
875 "This defines the desired state of the BGP connection."),
876 ValueMap { "1", "2" },
877 Values { "Stop", "Start" },
878 Mappingstrings {"MIB.IETF|RFC1657-MIB.bgpPeerAdminStatus"} ]
879 uint16 AdminStatus;
880 [Description (
881 "This defines the negotiated version of BGP that is "
882 "running between the two peers."),
883 karl 1.1 Mappingstrings {
884 "MIB.IETF|RFC1657- MIB.bgpPeerNegotiatedVersion"} ]
885 string NegotiatedVersion;
886 [Description (
887 "This is the local IP address of this router's BGP "
888 "connection."),
889 Mappingstrings {"MIB.IETF|RFC1657-MIB.bgpPeerLocalAddr"} ]
890 string LocalAddress;
891 [Description (
892 "This is the local port number for the TCP connection of "
893 "this router's BGP connection."),
894 Mappingstrings {"MIB.IETF|RFC1657-MIB.bgpPeerLocalPort"} ]
895 uint16 LocalPort;
896 [Description (
897 "This is the remote IP address of this router's BGP "
898 "connection."),
899 Mappingstrings {"MIB.IETF|RFC1657-MIB.bgpPeerRemoteAddr"} ]
900 string RemoteAddress;
901 [Description (
902 "This is the remote port number for the TCP connection of "
903 "this router's BGP connection."),
904 karl 1.1 Mappingstrings {"MIB.IETF|RFC1657-MIB.bgpPeerRemotePort"} ]
905 uint16 RemotePort;
906 [Description (
907 "This is the remote AS number for this router's BGP "
908 "connection."),
909 Mappingstrings {"MIB.IETF|RFC1657-MIB.bgpPeerRemoteAs"} ]
910 uint16 RemoteAS;
911 [Description (
912 "This defines the maximum amount of time in seconds that "
913 "may elapse between the receipt of successive KEEPALIVE or "
914 "UPDATE messages. This is instrumented as a counter that "
915 "increments from zero to the value specified in this "
916 "property. The value of this property is calculated by "
917 "this BGP speaker by using the smaller of the values of "
918 "bgpPeerHoldTimeConfigured and the Hold Time received in "
919 "the OPEN message. This value, if not zero seconds, must "
920 "be at least three seconds, up to a maximum of 65535 "
921 "seconds. Receipt of either a KEEPALIVE or an UPDATE "
922 "message resets this value."),
923 Units ("Seconds"),
924 Mappingstrings {"MIB.IETF|RFC1657-MIB.bgpPeerHoldTime"} ]
925 karl 1.1 uint16 HoldTime;
926 [Description (
927 "This defines the time interval in seconds for the KeepAlive "
928 "timer established with the peer. The value of this property "
929 "is calculated by this speaker such that, when compared with "
930 "the HoldTime property, it has the same proportion as the "
931 "KeepAliveConfigured property has with the "
932 "HoldTimeConfigured property. A value of 0 indicates that "
933 "the KeepAlive timer has not yet been established. The "
934 "maximum value of this property is 21845 seconds."),
935 Units ("Seconds"),
936 Mappingstrings {"MIB.IETF|RFC1657-MIB.bgpPeerKeepAlive"} ]
937 uint16 KeepAlive;
938 };
939
940 // ==================================================================
941 // IPXProtocolEndpoint
942 // ==================================================================
943 [Description (
944 "An IPX communication point from which data may be sent "
945 "or received.") ]
946 karl 1.1
947 class CIM_IPXProtocolEndpoint : CIM_ProtocolEndpoint
948 {
949 [Description (
950 "An IPX address formatted as eight hexadecimal digits "
951 "representing the network number, followed by a colon, "
952 "followed by twelve hexadecimal digits representing the "
953 "host address (e.g. \"00112233:010203040506\").") ]
954 string Address;
955 };
956
957 // ==================================================================
958 // IPXNetwork
959 // ==================================================================
960 [Description ("A network or subnet that uses the IPX "
961 "protocol") ]
962
963 class CIM_IPXNetwork : CIM_LogicalNetwork
964 {
965 [Description (
966 "An IPX network number formatted as eight hexadecimal "
967 karl 1.1 "digits (e.g., \"00112233\").") ]
968 string NetworkNumber;
969 };
970
971
972 // ==================================================================
973 // IPRoute
974 // ==================================================================
975 [Abstract, Description (
976 "An IPRoute relates a remote IP address (destination) to a "
977 "local IP address (source) through which the remote address "
978 "may be reached. The local and remote addresses may be "
979 "either specific IP endpoints or IP subnets. This class may "
980 "used to represent a generic routing table entry.") ]
981
982 class CIM_IPRoute : CIM_LogicalElement
983 {
984 [Propagated("CIM_System.CreationClassName"),
985 Key, MaxLen (256), Description (
986 "The scoping System's CreationClassName.") ]
987 string SystemCreationClassName;
988 karl 1.1 [Propagated("CIM_System.Name"), Key, MaxLen (256),
989 Description (
990 "The scoping System's Name.") ]
991 string SystemName;
992 [Propagated("CIM_Service.CreationClassName"),
993 Key, MaxLen (256), Description (
994 "The scoping Service's CreationClassName.") ]
995 string ServiceCreationClassName;
996 [Propagated("CIM_Service.Name"), Key, MaxLen (256),
997 Description (
998 "The scoping Service's Name.") ]
999 string ServiceName;
1000 [Key, MaxLen (256), Description (
1001 "CreationClassName indicates the name of the class or the "
1002 "subclass used in the creation of an instance. When used "
1003 "with the other key properties of this class, this property "
1004 "allows all instances of this class and its subclasses to "
1005 "be uniquely identified.") ]
1006 string CreationClassName;
1007 [Key, Description (
1008 "The IP address which serves as the destination of the "
1009 karl 1.1 "traffic, formatted according to the appropriate convention "
1010 "as defined in the AddressType property of this class.") ]
1011 string IPDestinationAddress;
1012 [Key, Description (
1013 "The mask for the destination IP address, formatted "
1014 "according to the appropriate convention as defined in the "
1015 "AddressType property of this class.") ]
1016 string IPDestinationMask;
1017 [Key, Description (
1018 "This contains either the address of the directly connected "
1019 "interface of the next-hop router or the address of the "
1020 "interface to which the destination is connected to.") ]
1021 string NextHop;
1022 [Key, Description (
1023 "An enumeration that describes the format of the address "
1024 "property. Addresses that can be formatted in IPv4 format, "
1025 "must be formatted that way to ensure mixed IPv4/IPv6 "
1026 "support. "
1027 "\n\n"
1028 "AddressType is part of the key so that an IPv4 and an IPv6 "
1029 "route to IP subnets with the same network number but "
1030 karl 1.1 "different versions (v4/v6) can coexist "),
1031 ValueMap { "0", "1", "2" },
1032 Values { "Unknown", "IPv4", "IPv6" } ]
1033 uint16 AddressType;
1034 [Description (
1035 "TRUE indicates that this ProtocolEndpoint represents a "
1036 "static route, and FALSE means that it represents a "
1037 "dynamically-learned route.") ]
1038 boolean IsStatic;
1039 };
1040
1041 // ==================================================================
1042 // ForwardedRoutes
1043 // ==================================================================
1044 [Association, Description (
1045 "This assocation makes explicit the routes that are used by "
1046 "a specific ForwardingService. Thus, every ForwardingService "
1047 "can have its own unique set of routing destinations.") ]
1048
1049 class CIM_ForwardedRoutes : CIM_Dependency
1050 {
1051 karl 1.1 [Override ("Antecedent"), Min (1), Max (1) ]
1052 CIM_ForwardingService REF Antecedent;
1053 [Override ("Dependent"), Weak ]
1054 CIM_IPRoute REF Dependent;
1055 [Description (
1056 "This property contains the current administrative distance "
1057 "of this route. Note that the AdministrativeDistance class "
1058 "contains the default values, not the current values, of "
1059 "administrative distances that are to be used with routes.") ]
1060 uint16 AdminDistance;
1061 [Description (
1062 "This contains an integer which provides an indication as to "
1063 "the preference of this route compared to other routes that "
1064 "reach the same destination.") ]
1065 uint16 PathMetric;
1066 };
1067
1068 // ==================================================================
1069 // BindsTo
1070 // ==================================================================
1071 [Association, Description (
1072 karl 1.1 "This association establishes a ServiceAccessPoint "
1073 "as a requestor of protocol services from a "
1074 "ProtocolEndpoint. Typically, this association runs "
1075 "between SAPs and endpoints on a single system. Since a "
1076 "ProtocolEndpoint is a kind of ServiceAccessPoint, this "
1077 "binding can be used to establish a layering of two "
1078 "protocols, the upper layer represented by the Dependent "
1079 "and the lower layer represented by the Antecedent.") ]
1080
1081 class CIM_BindsTo : CIM_SAPSAPDependency
1082 {
1083 [Override ("Antecedent") ]
1084 CIM_ProtocolEndpoint REF Antecedent;
1085 [Override ("Dependent") ]
1086 CIM_ServiceAccessPoint REF Dependent;
1087 };
1088
1089 // ==================================================================
1090 // BindsToLANEndpoint
1091 // ==================================================================
1092 [Association, Description (
1093 karl 1.1 "This association makes explicit the dependency of a "
1094 "ProtocolEndpoint on some lower layer ProtocolEndpoint on "
1095 "the same system.") ]
1096
1097 class CIM_BindsToLANEndpoint : CIM_BindsTo
1098 {
1099 [Override ("Antecedent") ]
1100 CIM_LANEndpoint REF Antecedent;
1101 [Description (
1102 "This describes the framing method for the upper layer "
1103 "protocol endpoint that is bound to a LANEndpoint. Note: "
1104 "\"Raw802.3\" is only known to be used with the IPX "
1105 "protocol."),
1106 ValueMap { "0", "1", "2", "3", "4" },
1107 Values { "Unknown", "Ethernet", "802.2", "SNAP", "Raw802.3" } ]
1108 uint16 FrameType;
1109 };
1110
1111 // ==================================================================
1112 // BGPIPRoute
1113 // ==================================================================
1114 karl 1.1 [Description (
1115 "BGPIPRoute describes a BGP routing entry that connects two "
1116 "peer routers that are running BGP. The source and "
1117 "destination addresses may be either specific IP endpoints "
1118 "or IP subnets.") ]
1119
1120 class CIM_BGPIPRoute : CIM_IPRoute
1121 {
1122 [Description (
1123 "Usually, the administrative distance is used to determine "
1124 "which route gets installed in the routing table. Using this "
1125 "scheme, routes learned via EBGP will win over routes "
1126 "learned via an IGP. If this is not desired, then this "
1127 "assigns the administrative distance of this route to be "
1128 "equal to that of a local route, which means that the same "
1129 "route learned by an IGP will have a lower administrative "
1130 "distance and be installed instead.") ]
1131 boolean IsBackDoorRoute;
1132 [Description (
1133 "Loopback interfaces are often used by IBGP peers, because "
1134 "they eliminate a dependency that would otherwise occur if "
1135 karl 1.1 "the actual IP address of a physical interface was used to "
1136 "configure BGP. The loopback interface instead instructs the "
1137 "router to use any available interface.") ]
1138 boolean UsesLoopbackPeering;
1139 };
1140
1141 // ==================================================================
1142 // RoutesBGP
1143 // ==================================================================
1144 [Association, Description (
1145 "This association defines a BGP route, and makes explicit "
1146 "the dependency between a BGPIPRoute and a "
1147 "BGPProtocolEndpoint.") ]
1148
1149 class CIM_RoutesBGP : CIM_Dependency
1150 {
1151 [Max (2), Override ("Antecedent"), Description (
1152 "The BGPProtocolEndpoints that represent the source and "
1153 "destination (or at least the next hop) of the BGP route.") ]
1154 CIM_BGPProtocolEndpoint REF Antecedent;
1155 [Min (1), Override ("Dependent"), Description (
1156 karl 1.1 "The routing table entry that represents a BGP route.") ]
1157 CIM_BGPIPRoute REF Dependent;
1158 };
1159
1160 // ==================================================================
1161 // NetworksInAdminDomain
1162 // ==================================================================
1163 [Association, Description (
1164 "This association is used to define the set of Logical"
1165 "Networks contained in an AdminDomain. This has the implied "
1166 "semantics that this set of LogicalNetworks are all "
1167 "administered by the same network administrator that "
1168 "administrates the AdminDomain.") ]
1169
1170 class CIM_NetworksInAdminDomain
1171 {
1172 [Min(1), Max(1), Key, Description (
1173 "The AdminDomain that hosts the various LogicalNetworks.") ]
1174 CIM_AdminDomain REF Domain;
1175 [Weak, Key, Description (
1176 "The LogicalNetworks that are hosted by the AdminDomain.") ]
1177 karl 1.1 CIM_LogicalNetwork REF Network;
1178 };
1179
1180 // ==================================================================
1181 // BGPCluster
1182 // ==================================================================
1183 [Description (
1184 "The BGP speakers in an AS are required to be fully meshed. "
1185 "This can lead to a huge number of TCP connections per "
1186 "router. One way to reduce the peering requirements is to "
1187 "use a route reflector. This is based on specifying one or "
1188 "more routers to act as focal points for IBGP sessions. "
1189 "\n\n"
1190 "The route reflector as a whole is called a cluster. It is "
1191 "logically divided into three types of routers: reflectors, "
1192 "clients of the route reflector(s), and non-clients of the "
1193 "route reflector. "
1194 "\n\n"
1195 "An AS can have more than one route reflector. There can be "
1196 "more than one route reflector in a cluster, and there can "
1197 "be more than one cluster in an AS.") ]
1198 karl 1.1
1199 class CIM_BGPCluster : CIM_CollectionOfMSEs
1200 {
1201 [Key, Description (
1202 "If a cluster has more than one route reflector, all of the "
1203 "route reflectors in the cluster need to be configured with "
1204 "a 4-byte cluster ID. This allows route reflectors to "
1205 "recognize updates from other route reflectors in the "
1206 "same cluster.") ]
1207 uint32 ClusterID;
1208 };
1209
1210 // ==================================================================
1211 // RoutersInBGPCluster
1212 // ==================================================================
1213 [Association, Aggregation, Description (
1214 "This aggregation establishes 'whole-part' relationships "
1215 "between a BGPCluster and the ComputerSystems (e.g., the "
1216 "routers) that it contains. At least three routers are "
1217 "required to form a cluster - a reflector and two clients. "
1218 "In addition, the routers that form a cluster share common "
1219 karl 1.1 "configuration information, and are commonly administered.") ]
1220
1221 class CIM_RoutersInBGPCluster : CIM_CollectedMSEs
1222 {
1223 [Override ("Collection"), Aggregate, Max(1),
1224 Description (
1225 "The Cluster that aggregates the routers belonging to it "
1226 "and administers them.") ]
1227 CIM_BGPCluster REF Collection;
1228 [Override ("Member"), Min(3), Description (
1229 "The routers that form the Cluster.") ]
1230 CIM_ComputerSystem REF Member;
1231 };
1232
1233 // ==================================================================
1234 // BGPClustersInAS
1235 // ==================================================================
1236 [Association, Aggregation, Description (
1237 "This aggregation establishes 'whole-part' relationships "
1238 "between an AutonomousSystem and the BGPClusters that it "
1239 "In addition, the routers that form a cluster share common "
1240 karl 1.1 "configuration information, and are commonly administered.") ]
1241
1242 class CIM_BGPClustersInAS
1243 {
1244 [Key, Aggregate, Max(1), Description (
1245 "The AutonomousSystem that aggregates the Clusters belonging "
1246 "to it and administers them.") ]
1247 CIM_AutonomousSystem REF GroupAS;
1248 [Key, Description (
1249 "The Clusters that are contained in the AS.") ]
1250 CIM_BGPCluster REF PartAS;
1251 };
1252
1253 // ==================================================================
1254 // RoutersInAS
1255 // ==================================================================
1256 [Association, Aggregation, Description (
1257 "This aggregation establishes 'whole-part' relationships "
1258 "between an AutonomousSystem and the routers that it "
1259 "contains. In addition, the routers in the AS share common "
1260 "configuration information, and are commonly administered.") ]
1261 karl 1.1
1262 class CIM_RoutersInAS : CIM_SystemComponent
1263 {
1264 [Aggregate, Override ("GroupComponent"), Max(1), Description (
1265 "The AutonomousSystem that aggregates the routers belonging "
1266 "to it and administers them.") ]
1267 CIM_AutonomousSystem REF GroupComponent;
1268 [Override ("PartComponent"), Description (
1269 "The Routers that are contained in the AS.") ]
1270 CIM_ComputerSystem REF PartComponent;
1271 [Description (
1272 "This is an array of strings that contain the BGP attributes "
1273 "supported by this router.") ]
1274 string BGPSupportedAttributes [];
1275 [Description (
1276 "TRUE means that the community value of this router is added "
1277 "to the existing community value, and FALSE means that the "
1278 "community value of this router replaces the existing "
1279 "community value.") ]
1280 boolean AddCommunityValue;
1281 [Description (
1282 karl 1.1 "This is an enumeration that defines the function, from the "
1283 "point of view of BGP, of this router."),
1284 ValueMap { "0", "1", "2", "3", "4", "5", "6", "7" },
1285 Values { "Unknown", "Other", "Conventional BGP Speaker",
1286 "Route Reflector", "Router Reflector Client",
1287 "Route Reflector Non-Client", "Peer Group Member",
1288 "Confederation Member" },
1289 ModelCorrespondence {
1290 "CIM_BGPService.OtherRoleDescription"} ]
1291 uint16 Role;
1292 [MaxLen(64), Description (
1293 "A string describing the type of function that this router "
1294 "has in its AS when the value of the Role property of this "
1295 "class is set to 1 (e.g., 'Other'). The format of the string "
1296 "inserted in this property should be similar in format to "
1297 "the values defined for the Role property. This property "
1298 "should be set to NULL when the Role property is any value "
1299 "other than 1."),
1300 ModelCorrespondence {"CIM_BGPService.Role"} ]
1301 string OtherRoleDescription;
1302 };
1303 karl 1.1
1304 // ==================================================================
1305 // ProvidesEndpoint
1306 // ==================================================================
1307 [Association, Description (
1308 "This association represents the endpoints that a network "
1309 "service provides to access it.") ]
1310
1311 class CIM_ProvidesEndpoint : CIM_ServiceAccessBySAP
1312 {
1313 [Override ("Antecedent"), Max(1), Description (
1314 "The NetworkService that is being accessed by the "
1315 "ProtocolEndpoints.") ]
1316 CIM_NetworkService REF Antecedent;
1317 [Override ("Dependent"), Description (
1318 "The ProtocolEndpoints that provide access to the "
1319 "NetworkService.") ]
1320 CIM_ProtocolEndpoint REF Dependent;
1321 };
1322
1323 // ==================================================================
1324 karl 1.1 // ASBGPEndpoints
1325 // ==================================================================
1326 [Association, Aggregation, Description (
1327 "This aggregation defines the different router interfaces "
1328 "that are running BGP in the AutonomousSystem.") ]
1329
1330 class CIM_ASBGPEndpoints : CIM_SystemComponent
1331 {
1332 [Aggregate, Override ("GroupComponent"), Max(1), Description (
1333 "The AutonomousSystem that aggregates the router interfaces "
1334 "that are running BGP.") ]
1335 CIM_AutonomousSystem REF GroupComponent;
1336 [Override ("PartComponent"), Description (
1337 "The router interfaces that are contained in the AS.") ]
1338 CIM_BGPProtocolEndpoint REF PartComponent;
1339 };
1340
1341 // ==================================================================
1342 // Confederation
1343 // ==================================================================
1344 [Association, Aggregation, Description (
1345 karl 1.1 "The BGP speakers in an AS are required to be fully meshed. "
1346 "This can lead to a huge number of TCP connections per "
1347 "router. One way to reduce the peering requirements is to "
1348 "use a confederation. A confederation effectively partitions "
1349 "one AS into a group of 'sub-ASs'. This enables all of the "
1350 "benefits of IBGP to be applied inside the confederation, "
1351 "while enabling EBGP to be run between each confederation. "
1352 "This enables certain BGP attribute values to be preserved "
1353 "between confederations. However, to the outside world, the "
1354 "AS with its confederations appear to be a single AS.") ]
1355
1356 class CIM_Confederation : CIM_SystemComponent
1357 {
1358 [Aggregate, Max(1), Override ("GroupComponent"),
1359 Description (
1360 "The AutonomousSystem that contains the confederations.") ]
1361 CIM_AutonomousSystem REF GroupComponent;
1362 [Override ("PartComponent"), Description (
1363 "The Confederation within the AutonomousSystem.") ]
1364 CIM_AutonomousSystem REF PartComponent;
1365 [Description (
1366 karl 1.1 "A unique identifier of the AutonomousSystem that contains "
1367 "the confederations.") ]
1368 uint32 ParentASNumber;
1369 [Description (
1370 "A unique identifier of the Confederation within the "
1371 "AutonomousSystem.") ]
1372 uint32 ChildASNumber;
1373 };
1374
1375 // ==================================================================
1376 // RouteCalculationService
1377 // ==================================================================
1378 [Abstract, Description (
1379 "This is an abstract base class, derived from Network"
1380 "Service, that represents the route calculation aspects of "
1381 "a router. This class also addresses functions performed by "
1382 "the router when it exchanges routing information. "
1383 "\n\n"
1384 "Note that there are a large variety of additional routing "
1385 "protocols that are not enumerated below, or currently "
1386 "subclassed. These will be added as models are developed.") ]
1387 karl 1.1
1388 class CIM_RouteCalculationService : CIM_NetworkService
1389 {
1390 [Description (
1391 "The RouterID uniquely identifies the router that is "
1392 "performing the route calculation. It is the highest IP "
1393 "address on the router (or the highest loopback interface, "
1394 "if there is one).") ]
1395 string RouterID;
1396 [Description (
1397 "This is an enumerated value that defines the routing "
1398 "algorithm used that this route calculation is being "
1399 "performed for."),
1400 ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8" },
1401 Values { "Unknown", "RIPv1", "RIPv2", "OSPFv1", "OSPFv2",
1402 "BGPv1", "BGPv2", "BGPv3", "BGPv4" } ]
1403 uint16 Type;
1404 };
1405
1406 // ==================================================================
1407 // CalculatedRoutes
1408 karl 1.1 // ==================================================================
1409 [Association, Description (
1410 "This assocation makes explicit the routes that are "
1411 "calculated by a specific RouteCalculationService. Thus, "
1412 "every RouteCalculationService can have its own unique set "
1413 "of calculated routes.") ]
1414
1415 class CIM_CalculatedRoutes : CIM_Dependency
1416 {
1417 [Override ("Antecedent"), Max(1) ]
1418 CIM_RouteCalculationService REF Antecedent;
1419 [Override ("Dependent") ]
1420 CIM_IPRoute REF Dependent;
1421 };
1422
1423 // ==================================================================
1424 // HostedRoutingServices
1425 // ==================================================================
1426 [Association, Description (
1427 "This is a specialization of CIM_HostedService, which is an"
1428 "association between a Service and the System on which the "
1429 karl 1.1 "functionality resides. The ComputerSystem is made up of "
1430 "different routing services, which take the form of internal "
1431 "and external routing protocols. These are different "
1432 "NetworkServices, and are weak with respect to their hosting "
1433 "ComputerSystem.") ]
1434
1435 class CIM_HostedRoutingServices : CIM_HostedService
1436 {
1437 [Override ("Antecedent"), Max(1), Min(1),
1438 Description ("The hosting router.") ]
1439 CIM_ComputerSystem REF Antecedent;
1440 [Override ("Dependent"), Description (
1441 "The Service hosted on the System.") ]
1442 CIM_RouteCalculationService REF Dependent;
1443 };
1444
1445 // ==================================================================
1446 // HostedForwardingServices
1447 // ==================================================================
1448 [Association, Description (
1449 "This is a specialization of CIM_HostedService, which is an"
1450 karl 1.1 "association between a Service and the System on which the "
1451 "functionality resides. The ComputerSystem is made up of "
1452 "different forwarding services, which take the form of "
1453 "internal and external routing protocols. These are "
1454 "different NetworkServices, and are weak with respect to "
1455 "their hosting ComputerSystem.") ]
1456
1457 class CIM_HostedForwardingServices : CIM_HostedService
1458 {
1459 [Override ("Antecedent"), Max(1), Min(1),
1460 Description ("The hosting router.") ]
1461 CIM_ComputerSystem REF Antecedent;
1462 [Override ("Dependent"), Description (
1463 "The Service hosted on the System.") ]
1464 CIM_ForwardingService REF Dependent;
1465 };
1466
1467 // ==================================================================
1468 // EGPRouteCalcDependency
1469 // ==================================================================
1470 [Association, Description (
1471 karl 1.1 "This is a specialization of ServiceServiceDependency, and "
1472 "captures the dependency that external gateway protocols "
1473 "(such as BGP) have on interior gateway protocols (such "
1474 "as OSPF).") ]
1475
1476 class CIM_EGPRouteCalcDependency : CIM_ServiceServiceDependency
1477 {
1478 [Override ("Antecedent"), Description (
1479 "The independent RouteCalculationService that provides "
1480 "routing information from the AS, for the EGP to use.") ]
1481 CIM_RouteCalculationService REF Antecedent;
1482 [Override ("Dependent"), Description (
1483 "The dependent RouteCalculationService (e.g., the Route"
1484 "CalculationService that is functioning as an EGP.") ]
1485 CIM_RouteCalculationService REF Dependent;
1486 [Description (
1487 "Sometimes it is necessary to inject EGP information, such "
1488 "as that from BGP, into IGPs. This attribute defines whether "
1489 "this should be done for the two routing protocols that are "
1490 "defined by this association. The values below mean that no, "
1491 " partial, and full EGP information is injected into the "
1492 karl 1.1 "IGP, respectively."),
1493 ValueMap { "1", "2", "3" },
1494 Values { "None", "Partial", "Full" } ]
1495 uint16 IGPInjection;
1496 };
1497
1498 // ==================================================================
1499 // BGPService
1500 // ==================================================================
1501 [Description (
1502 "This class is used to represent the basic operation of BGP. "
1503 "It is derived from RouteCalculationService, the superclass "
1504 "of all routing protocols.") ]
1505
1506 class CIM_BGPService : CIM_RouteCalculationService
1507 {
1508 [Description (
1509 "The BGPVersion property defines the version of BGP that "
1510 "this router is using. This is part of the BGP peer "
1511 "negotiation process)."),
1512 Mappingstrings {"MIB.IETF|RFC1657-MIB.bgpVersion"} ]
1513 karl 1.1 uint8 BGPVersion;
1514 [Description (
1515 "BGP sends errors using a NOTIFICATION message. This message "
1516 "contains an error code, an error subcode, and error data. "
1517 "The error code defines the type of the notification. The "
1518 "'Cease' error is for all fatal errors that are not one of "
1519 "the other five types of errors."),
1520 ValueMap { "0", "1", "2", "3", "4", "5", "6" },
1521 Values { "None", "Message Header Error", "OPEN Message Error",
1522 "UPDATE Message Error", "Hold Timer Expired",
1523 "Finite State Machine Error", "Cease" } ]
1524 uint16 LastErrorCode;
1525 [Description (
1526 "This defines the BGP error subcode for message header "
1527 "errors. If the ErrorCode property is any other value, "
1528 "then this property should be set to NULL."),
1529 ValueMap { "0", "1", "2", "3" },
1530 Values { "None", "Connection Not Synchronized",
1531 "Bad Message Length", "Bad Message Type" },
1532 ModelCorrespondence {"CIM_BGPService.ErrorCode"} ]
1533 uint16 LastMessageErrorSubCode;
1534 karl 1.1 [Description (
1535 "This defines the BGP error subcode for OPEN message "
1536 "errors. If the ErrorCode property is any other value, "
1537 "then this property should be set to NULL."),
1538 ValueMap { "0", "1", "2", "3", "4", "5", "6" },
1539 Values { "None", "Unsupported Version Number", "Bad Peer AS",
1540 "Bad BGP Identifier", "Unsupported Optional Parameter",
1541 "Authentication Failure", "Unacceptable Hold Time"},
1542 ModelCorrespondence {"CIM_BGPService.ErrorCode"} ]
1543 uint16 LastOpenErrorSubCode;
1544 [Description (
1545 "This defines the BGP error subcode for UPDATE message "
1546 "errors. If the ErrorCode property is any other value, "
1547 "then this property should be set to NULL."),
1548 ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
1549 "10", "11" },
1550 Values { "None", "Malformed Attribute List",
1551 "Unrecognized Well-Known Attribute",
1552 "Missing Well-Known Attribute", "Attribute Flags Error",
1553 "Attribute Length Error", "Invalid Origin Attribute",
1554 "AS Routing Loop", "Invalid NEXT_HOP Attribute",
1555 karl 1.1 "Optional Attribute Error", "Invalid Network Field",
1556 "Malformed AS_path" },
1557 ModelCorrespondence {"CIM_BGPService.ErrorCode"} ]
1558 uint16 LastUpdateErrorSubCode;
1559 };
1560
1561 // ==================================================================
1562 // BGPPeerGroup
1563 // ==================================================================
1564 [Description (
1565 "A BGP Peer Group is a set of BGP neighbors that share the "
1566 "same update policies. This enables an administrator to "
1567 "assign policies to the peer group, instead of individually. "
1568 "This enables the routers in the Peer Group to optimize "
1569 "UPDATE messages. Consequently, Peer Groups have a set of "
1570 "restrictions that must be followed in order to work "
1571 "correctly with external BGP peers. Otherwise, loss of "
1572 "routing information could occur."
1573 "\n\n"
1574 "A BGPPeerGroup is weak to the AutonomousSystem that "
1575 "contains it. Therefore, the keys from System must be "
1576 karl 1.1 "propagated to it.") ]
1577
1578 class CIM_BGPPeerGroup : CIM_CollectionOfMSEs
1579 {
1580 [Propagated ("CIM_AutonomousSystem.CreationClassName"), Key,
1581 MaxLen (256), Description (
1582 "The scoping AutonomousSystem's CreationClassName. ") ]
1583 string SystemCreationClassName;
1584 [Propagated ("CIM_AutonomousSystem.Name"), Key, MaxLen (256),
1585 Description ("The scoping AutonomousSystem's Name.") ]
1586 string SystemName;
1587 [Key, Description (
1588 "The type of class that this instance is.") ]
1589 string CreationClassName;
1590 [MaxLen(256), Key, Description (
1591 "This is the name of the BGP Peer Group.") ]
1592 string Name;
1593 [Description (
1594 "This defines the time interval, in seconds, for the "
1595 "ConnectRetry timer. The suggested value is 120 seconds."),
1596 Units ("Seconds"),
1597 karl 1.1 Mappingstrings {
1598 "MIB.IETF|RFC1657-MIB.bgpConnectRetryInterval"} ]
1599 uint32 ConnectRetryInterval;
1600 [Description (
1601 "This defines the time interval in seconds for the Hold "
1602 "Time configured for this BGP speaker with a peer. This "
1603 "value is placed in an OPEN message sent to a peer by "
1604 "this BGP speaker, and is compared with the Hold Time "
1605 "field in the OPEN message received from the peer. This "
1606 "enables this speaker to establish a mutually agreeable "
1607 "Hold Time with the peer. This value must not be less "
1608 "than three seconds. If it is zero, then the Hold Time "
1609 "is NOT to be established with the peer. The suggested"
1610 "value for this timer is 90 seconds."),
1611 Units ("Seconds"),
1612 Mappingstrings
1613 {"MIB.IETF|RFC1657-MIB.bgpPeerHoldTimeConfigured"} ]
1614 uint16 HoldTimeConfigured;
1615 [Description (
1616 "This defines the time interval in seconds for the "
1617 "KeepAlive timer configured for this BGP speaker with "
1618 karl 1.1 "a peer. This value will determine the frequency of "
1619 "the KEEPALIVE messages relative to the value of the "
1620 "HoldTimeConfigured property; the actual frequency is "
1621 "specified by the value of the KeepAlive property. A "
1622 "reasonable value is one third of that of the value of "
1623 "the HoldTimeConfigured property. If it is zero, then "
1624 "NO periodic KEEPALIVE messages are sent to the peer. "
1625 "The suggested value for this property is 30 seconds. "
1626 "The maximum value of this property is 21845 seconds."),
1627 Units ("Seconds"),
1628 Mappingstrings {
1629 "MIB.IETF|RFC1657-MIB.bgpPeerKeepAliveConfigured"} ]
1630 uint16 KeepAliveConfigured;
1631 [Description (
1632 "This defines the time interval in seconds for the "
1633 "MinASOriginationInterval timer. The suggested value for "
1634 "this property is 15 seconds."),
1635 Units ("Seconds"),
1636 Mappingstrings
1637 {"MIB.IETF|RFC1657-MIB.bgpPeerMinASOriginationInterval"} ]
1638 uint16 MinASOriginationInterval;
1639 karl 1.1 [Description (
1640 "This defines the time interval in seconds for the "
1641 "MinRouteAdvertisementInterval timer. The suggested value "
1642 "for this property is 30 seconds."),
1643 Units ("Seconds"),
1644 Mappingstrings {
1645 "MIB.IETF|RFC1657-MIB.bgpPeerMinRouteAdvertisementInterval"} ]
1646 uint16 MinRouteAdvertisementInterval;
1647 };
1648
1649 // ==================================================================
1650 // ReflectorService
1651 // ==================================================================
1652 [Association, Description (
1653 "This association will serve as the base class for defining "
1654 "BGP routing policies for the reflector of this Cluster.") ]
1655
1656 class CIM_ReflectorService : CIM_Dependency
1657 {
1658 [Override ("Antecedent"), Max(1), Description (
1659 "The Cluster for which this policy is being defined.") ]
1660 karl 1.1 CIM_BGPCluster REF Antecedent;
1661 [Override ("Dependent"), Min(1), Description (
1662 "The BGPService to which the policy will be applied in "
1663 "the Cluster.") ]
1664 CIM_BGPService REF Dependent;
1665 };
1666
1667 // ==================================================================
1668 // ReflectorClientService
1669 // ==================================================================
1670 [Association, Description (
1671 "This association will serve as the base class for defining "
1672 "BGP routing policies for clients of the reflector of "
1673 "this Cluster.") ]
1674
1675 class CIM_ReflectorClientService : CIM_Dependency
1676 {
1677 [Override ("Antecedent"), Max(1), Description (
1678 "The Cluster for which this policy is being defined.") ]
1679 CIM_BGPCluster REF Antecedent;
1680 [Override ("Dependent"), Min(1), Description (
1681 karl 1.1 "The BGPService to which the policy will be applied in "
1682 "the Cluster.") ]
1683 CIM_BGPService REF Dependent;
1684 };
1685
1686 // ==================================================================
1687 // ReflectorNonClientService
1688 // ==================================================================
1689 [Association, Description (
1690 "This association will serve as the base class for defining "
1691 "BGP routing policies for the non-clients of the reflector "
1692 "of this Cluster.") ]
1693
1694 class CIM_ReflectorNonClientService : CIM_Dependency
1695 {
1696 [Override ("Antecedent"), Max(1), Description (
1697 "The Cluster for which this policy is being defined.") ]
1698 CIM_BGPCluster REF Antecedent;
1699 [Override ("Dependent"), Description (
1700 "The BGPService to which the policy will be applied in "
1701 "the Cluster.") ]
1702 karl 1.1 CIM_BGPService REF Dependent;
1703 };
1704
1705 // ===================================================================
1706 // CIM_FilterEntryBase
1707 // ===================================================================
1708 [Description (
1709 " FilterEntryBase is an abstract class to define the naming "
1710 "of all filter entries, and to allow their common "
1711 "aggregation into FilterLists. The FilterEntry subclass "
1712 "represents packet filtering. Other types of Entries are "
1713 "possible - for example, to filter security credentials. \n"
1714 " FilterEntryBase is weak to the network device (e.g., the "
1715 "ComputerSystem) that contains it. Hence, the ComputerSystem "
1716 "keys are propagated to this class.") ]
1717
1718 class CIM_FilterEntryBase : CIM_LogicalElement
1719 {
1720 [Propagated ("CIM_ComputerSystem.CreationClassName"), Key,
1721 MaxLen (256),
1722 Description (
1723 karl 1.1 "The scoping ComputerSystem's CreationClassName. ") ]
1724 string SystemCreationClassName;
1725 [Propagated ("CIM_ComputerSystem.Name"), Key, MaxLen (256),
1726 Description (
1727 "The scoping ComputerSystem's Name.") ]
1728 string SystemName;
1729 [Key, MaxLen (256),
1730 Description (
1731 "CreationClassName indicates the name of the class or the "
1732 "subclass used in the creation of an instance. When used "
1733 "with the other key properties of this class, this property "
1734 "allows all instances of this class and its subclasses to "
1735 "be uniquely identified.") ]
1736 string CreationClassName;
1737 [Key, MaxLen (256),
1738 Description (
1739 "The Name property defines the label by which the Filter"
1740 "Entry is known and uniquely identified.") ]
1741 string Name;
1742 [Description (
1743 "Boolean indicating that the match condition described "
1744 karl 1.1 "in the properties of the FilterEntryBase subclass "
1745 "should be negated.") ]
1746 boolean IsNegated;
1747 };
1748
1749 // ==================================================================
1750 // FilterEntry
1751 // ==================================================================
1752 [Description (
1753 "A FilterEntry is used by network devices to identify "
1754 "traffic and either forward them (with possibly further "
1755 "processing) to their destination, or to deny their "
1756 "forwarding. They are the building block of FilterLists."
1757 "\n\n"
1758 "This class is oriented towards packet filtering. Other "
1759 "subclasses of FilterEntryBase can be defined to do other "
1760 "types of filtering. "
1761 "\n\n"
1762 "A FilterEntry is weak to the network device (e.g., the "
1763 "ComputerSystem) that contains it. Hence, the ComputerSystem "
1764 "keys are propagated to this class.") ]
1765 karl 1.1
1766 class CIM_FilterEntry : CIM_FilterEntryBase
1767 {
1768 [Description (
1769 "This defines the type of traffic that is being filtered. "
1770 "This will affect the filtering rules in the MatchCondition "
1771 "property of this class."),
1772 ValueMap { "0", "1", "2", "3" },
1773 Values { "Unknown", "IPv4", "IPX", "IPv6" } ]
1774 uint16 TrafficType;
1775 [Description (
1776 "This specifies one of a set of ways to identify traffic. "
1777 "if the value is 1 (e.g., 'Other'), then the specific "
1778 "type of filtering is specified in the "
1779 "OtherMatchConditionType property of this class."),
1780 ValueMap { "1", "2", "3", "4", "5", "6", "7", "8", "9",
1781 "10", "11", "12" },
1782 Values {"Other", "Source Address and Mask",
1783 "Destination Address and Mask", "Source Port",
1784 "Source Port Range", "Destination Port",
1785 "Destination Port Range", "Protocol Type",
1786 karl 1.1 "Protocol Type and Option", "DSCP", "ToS Value",
1787 "802.1P Priority Value" },
1788 ModelCorrespondence {
1789 "CIM_FilterEntry.OtherMatchConditionType" } ]
1790 uint16 MatchConditionType;
1791 [Description (
1792 "If the value of the MatchConditionType property in this "
1793 "class is 1 (e.g., 'Other'), then the specific type of "
1794 "filtering is specified in this property."),
1795 ModelCorrespondence {
1796 "CIM_FilterEntry.MatchConditionType" } ]
1797 string OtherMatchConditionType;
1798 [Description (
1799 "This is the value of the condition that filters the "
1800 "traffic. It corresponds to the condition specified in the "
1801 "MatchConditionType property. If, however, the value of the "
1802 "MatchConditionProperty is 1, then it corresponds to the "
1803 "condition specified in the OtherMatchConditionType "
1804 "property.") ]
1805 string MatchConditionValue;
1806 [Description (
1807 karl 1.1 "This defines whether the action should be to forward or "
1808 "deny traffic meeting the match condition specified in "
1809 "this filter."),
1810 ValueMap { "1", "2" },
1811 Values { "Permit", "Deny" } ]
1812 uint16 Action;
1813 [Description (
1814 "This defines whether this FilterEntry is the default "
1815 "entry to use by its FilterList.") ]
1816 boolean DefaultFilter;
1817 [Description (
1818 "This defines the traffic class that is being matched by "
1819 "this FilterEntry. Note that FilterEntries are aggregated "
1820 "into FilterLists by the EntriesInFilterList "
1821 "relationship. If the EntrySequence property of the "
1822 "aggregation is set to 0, this means that all the Filter"
1823 "Entries should be ANDed together. Consequently, the "
1824 "TrafficClass property of each of the aggregated Entries "
1825 "should be set to the same value."),
1826 ModelCorrespondence { "CIM_NextService.TrafficClass" } ]
1827 string TrafficClass;
1828 karl 1.1 };
1829
1830 // ==================================================================
1831 // FilterList
1832 // ==================================================================
1833 [Description (
1834 "A FilterList is used by network devices to identify routes "
1835 "by aggregating a set of FilterEntries into a unit, called a "
1836 "FilterList. FilterLists can also be used to accept or deny "
1837 "routing updates."
1838 "\n\n"
1839 "A FilterList is weak to the network device (e.g., the "
1840 "ComputerSystem) that contains it. Hence, the ComputerSystem "
1841 "keys are propagated to this class.") ]
1842
1843 class CIM_FilterList : CIM_LogicalElement
1844 {
1845 [Propagated ("CIM_ComputerSystem.CreationClassName"), Key,
1846 MaxLen (256), Description (
1847 "The scoping ComputerSystem's CreationClassName. ") ]
1848 string SystemCreationClassName;
1849 karl 1.1 [Propagated ("CIM_ComputerSystem.Name"), Key, MaxLen (256),
1850 Description ("The scoping ComputerSystem's Name.") ]
1851 string SystemName;
1852 [Key, Description (
1853 "The type of class that this instance is.") ]
1854 string CreationClassName;
1855 [Key, MaxLen(256), Description (
1856 "This is the name of the FilterList.") ]
1857 string Name;
1858 [Description (
1859 "This defines whether this FilterList is used for input, "
1860 "output, or both input and output filtering."),
1861 ValueMap { "1", "2", "3" },
1862 Values { "Input", "Output", "Both" } ]
1863 uint16 Direction;
1864 };
1865
1866 // ==================================================================
1867 // FilterEntryInSystem
1868 // ==================================================================
1869 [Association, Aggregation, Description (
1870 karl 1.1 "All filter entries (FilterEntryBase and its subclasses) "
1871 "can be used directly in the implementation of a network "
1872 "device such as a router, host or firewall, or they can be "
1873 "aggregated in a FilterList. Since both of these uses are "
1874 "possible, FilterEntryBase is defined as weak to the "
1875 "ComputerSystem (i.e., the network device) where it is used "
1876 "to identify and act on network traffic.") ]
1877
1878 class CIM_FilterEntryInSystem : CIM_SystemComponent
1879 {
1880 [Aggregate, Override ("GroupComponent"), Min (1), Max (1),
1881 Description (
1882 "The ComputerSystem/network device that aggregates the "
1883 "FilterEntry, for identifying and acting on network "
1884 "traffic.") ]
1885 CIM_ComputerSystem REF GroupComponent;
1886 [Override ("PartComponent"), Weak, Description (
1887 "The FilterEntry used in the System's operation.") ]
1888 CIM_FilterEntryBase REF PartComponent;
1889 };
1890
1891 karl 1.1 // ==================================================================
1892 // FilterListInSystem
1893 // ==================================================================
1894 [Association, Aggregation, Description (
1895 "The purpose of this weak association is to model the use of "
1896 "a FilterList by a ComputerSystem (e.g., a router, firewall "
1897 "or host). One example of such a use is in the QoS Model, "
1898 "where a ClassifierService aggregates a set of FilterLists "
1899 "in order to build its services.") ]
1900
1901 class CIM_FilterListInSystem : CIM_SystemComponent
1902 {
1903 [Aggregate, Override ("GroupComponent"), Min (1), Max (1),
1904 Description (
1905 "The ComputerSystem/network device that aggregates the "
1906 "FilterList and administers it.") ]
1907 CIM_ComputerSystem REF GroupComponent;
1908 [Override ("PartComponent"), Weak, Description (
1909 "The FilterList used in the System's operation.") ]
1910 CIM_FilterList REF PartComponent;
1911 };
1912 karl 1.1
1913 // ==================================================================
1914 // RoutingPolicy
1915 // ==================================================================
1916 [Description (
1917 "This class is used to implement routing policies. It "
1918 "aggregates a set of FilterLists, along with other "
1919 "appropriate constructs, into a unit. One of the most "
1920 "important uses of this class is to change the routing "
1921 "policy by changing values of various BGP attributes in a "
1922 "consistent manner."
1923 "\n\n"
1924 "A RoutingPolicy is weak to the network device (e.g., the "
1925 "ComputerSystem) that contains it. Hence, the ComputerSystem "
1926 "keys are propagated to this class.") ]
1927
1928 class CIM_RoutingPolicy : CIM_LogicalElement
1929 {
1930 [Propagated ("CIM_ComputerSystem.CreationClassName"), Key,
1931 MaxLen (256), Description (
1932 "The scoping ComputerSystem's CreationClassName. ") ]
1933 karl 1.1 string SystemCreationClassName;
1934 [Propagated ("CIM_ComputerSystem.Name"), Key, MaxLen (256),
1935 Description ("The scoping ComputerSystem's Name.") ]
1936 string SystemName;
1937 [Key, MaxLen(256), Description (
1938 "CreationClassName indicates the name of the class or the "
1939 "subclass used in the creation of an instance. When used "
1940 "with the other key properties of this class, this property "
1941 "allows all instances of this class and its subclasses to "
1942 "be uniquely identified.") ]
1943 string CreationClassName;
1944 [Key, MaxLen(256), Description (
1945 "This is the name of the Routing Policy.") ]
1946 string Name;
1947 [Description (
1948 "The Description property is a free-form string that "
1949 "provides a textual description of the routing policy.") ]
1950 string Description;
1951 [Description (
1952 "This defines the type of action that will be performed "
1953 "if the match conditions of this filter policy are met. "
1954 karl 1.1 "There are essentially three choices: forward the traffic "
1955 "unmodified, forward the traffic, but modify either the "
1956 "BGP attributes describing the route and/or other "
1957 "attributes that define how to condition the traffic "
1958 "(e.g., its ToS byte settings), or prevent the traffic "
1959 "from being forwarded."),
1960 ValueMap { "1", "2", "3", "4", "5", "6", "7", "8", "9" },
1961 Values { "Accept As Is", "Accept With BGP Changes",
1962 "Accept and Remark Packet",
1963 "Accept With BGP and Remark Changes",
1964 "Accept With Other Actions",
1965 "Accept With BGP Changes and Other Actions",
1966 "Accept with Remark Changes and Other Actions",
1967 "Accept with BGP and Remark Changes and Other Actions",
1968 "Deny" } ]
1969 uint16 Action;
1970 [Description (
1971 "This defines one or more BGP attributes that should be"
1972 "used to modify this routing update."),
1973 ValueMap { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" },
1974 Values { "Origin", "AS_Path", "NEXT_HOP", "Multi_Exit_Disc",
1975 karl 1.1 "Local_Pref", "Atomic_Aggregate", "Aggregator", "Community",
1976 "Originator_ID", "Cluster_List" } ]
1977 uint16 BGPAction;
1978 [Description (
1979 "The value for the corresponding BGPAction.") ]
1980 string BGPValue;
1981 [Description (
1982 "This defines a remarking action for this traffic."),
1983 ValueMap { "1", "2", "3", "4", "5", "6", "7" },
1984 Values { "Change DSCP", "Change ToS", "Change 802.1Q Value",
1985 "Change CIR", "Change CBR", "Change ABR", "Change VBR" } ]
1986 uint16 RemarkAction;
1987 [Description (
1988 "The value for the corresponding RemarkAction.") ]
1989 string RemarkValue;
1990 [Description (
1991 "This defines other actions to be taken for this traffic."),
1992 ValueMap { "1", "2", "3", "4", "5", "6", "7" },
1993 Values { "Other", "Input Flow Policing",
1994 "Output Flow Policing", "Input Aggregate Policing",
1995 "Output Aggregate Policing",
1996 karl 1.1 "PoliceByMarkingDown", "PoliceByDroppingDown" } ]
1997 uint16 ConditioningAction;
1998 [Description (
1999 "If the value of the ConditioningAction property of this "
2000 "class is 1, this contains an application-specific type of "
2001 "conditioning that is to be performed. Otherwise, if the "
2002 "ConditioningAction property is any other value, the value "
2003 "of this property should be NULL."),
2004 ModelCorrespondence {
2005 "CIM_RoutingPolicy.ConditioningAction" } ]
2006 string OtherConditioningAction;
2007 [Description (
2008 "The value for the corresponding ConditioningAction.") ]
2009 string ConditioningValue;
2010 [Description (
2011 "This controls whether BGP attribute values replace, get "
2012 "prepended, or get appended to their existing values."),
2013 ValueMap { "1", "2", "3" },
2014 Values { "Replace", "Prepend", "Append" } ]
2015 uint16 AttributeAction;
2016 };
2017 karl 1.1
2018 // ==================================================================
2019 // EntriesInFilterList
2020 // ==================================================================
2021 [Association, Aggregation, Description (
2022 "This is a specialization of the CIM_Component aggregation "
2023 "which is used to define a set of filter entries (subclasses "
2024 "of FilterEntryBase) that are aggregated by a particular "
2025 "FilterList.") ]
2026 class CIM_EntriesInFilterList : CIM_Component
2027 {
2028 [Aggregate, Max(1), Override ("GroupComponent"),
2029 Description (
2030 "The FilterList, which aggregates the set "
2031 "of FilterEntries.") ]
2032 CIM_FilterList REF GroupComponent;
2033 [Override ("PartComponent"),
2034 Description (
2035 "Any subclass of FilterEntryBase which is a part of "
2036 "the FilterList.") ]
2037 CIM_FilterEntryBase REF PartComponent;
2038 karl 1.1 [Description (
2039 "The order of the Entry relative to all others in the "
2040 "FilterList. A value of zero indicates that all the Entries "
2041 "should be ANDed together. Use of the Sequence property "
2042 "should be consistent across the List. It is not valid to "
2043 "define some Entries as ANDed in the FilterList (Sequence"
2044 "=0) while other Entries have a non-zero Sequence number.") ]
2045 uint16 EntrySequence;
2046 };
2047
2048 // ==================================================================
2049 // ListsInRoutingPolicy
2050 // ==================================================================
2051 [Association, Aggregation, Description (
2052 "This is a specialization of the CIM_Component aggregation "
2053 "which is used to define a set of FilterLists that are "
2054 "aggregated by a particular RoutingPolicy.") ]
2055
2056 class CIM_ListsInRoutingPolicy : CIM_Component
2057 {
2058 [Aggregate, Override ("GroupComponent"), Description (
2059 karl 1.1 "The RoutingPolicy, which aggregates the set "
2060 "of FilterLists.") ]
2061 CIM_RoutingPolicy REF GroupComponent;
2062 [Override ("PartComponent"), Description (
2063 "A FilterList, which is part-of the RoutingPolicy.") ]
2064 CIM_FilterList REF PartComponent;
2065 [Description ("The position of the FilterList relative "
2066 "to all other entries in the RoutingPolicy.") ]
2067 uint16 ListSequence;
2068 };
2069
2070 // ==================================================================
2071 // BGPRoutingPolicy
2072 // ==================================================================
2073 [Association, Description (
2074 "This is a specialization of the Dependency association, and "
2075 "defines the relationship between a BGPService and the "
2076 "RoutingPolicy that control it.") ]
2077
2078 class CIM_BGPRoutingPolicy : CIM_Dependency
2079 {
2080 karl 1.1 [Override ("Antecedent"), Description (
2081 "The BGP routing policy object.") ]
2082 CIM_RoutingPolicy REF Antecedent;
2083 [Override ("Dependent"), Description (
2084 "The BGPService that is controlled by the routing policy.") ]
2085 CIM_BGPService REF Dependent;
2086 };
2087
2088 // ==================================================================
2089 // BGPPeerGroupService
2090 // ==================================================================
2091 [Association, Description (
2092 "This defines the relationship between a BGPService and the "
2093 "BGP Peer Group that hosts it.") ]
2094
2095 class CIM_BGPPeerGroupService : CIM_Dependency
2096 {
2097 [Override ("Antecedent"), Min(1), Max(1),
2098 Description (
2099 "The BGP Peer Group that hosts the BGP Service.") ]
2100 CIM_BGPPeerGroup REF Antecedent;
2101 karl 1.1 [Override ("Dependent"),
2102 Description (
2103 "The BGPService that is hosted in the BGP Peer Group.") ]
2104 CIM_BGPService REF Dependent;
2105 };
2106
2107 // ==================================================================
2108 // AdministrativeDistance
2109 // ==================================================================
2110 [Description (
2111 "This class is used to control the choosing of which "
2112 "protocol to give preference over when two protocols learn "
2113 "the same route. This preference parameter is called the "
2114 "distance of the protocol. The lower the distance, the "
2115 "higher the preference for that protocol. This table "
2116 "affects ALL routes. "
2117 "\n\n"
2118 "AdministrativeDistance, being a global object, is weak to "
2119 "the AdminDomain that contains it. Hence, the AdminDomain "
2120 "keys are propagated to this class.") ]
2121
2122 karl 1.1 class CIM_AdministrativeDistance : CIM_LogicalElement
2123 {
2124 [Propagated ("CIM_ComputerSystem.CreationClassName"), Key,
2125 MaxLen (256), Description (
2126 "The scoping ComputerSystem's CreationClassName. ") ]
2127 string SystemCreationClassName;
2128 [Propagated ("CIM_ComputerSystem.Name"), Key, MaxLen (256),
2129 Description ("The scoping ComputerSystem's Name.") ]
2130 string SystemName;
2131 [Key, Description (
2132 "The type of class that this instance is.") ]
2133 string CreationClassName;
2134 [Key, MaxLen(256), Description (
2135 "This is the name of the AdministrativeDistance class.") ]
2136 string Name;
2137 [Description (
2138 "The distance for directly connected peers. It has a default "
2139 "value of 0.") ]
2140 uint8 DirectConnect;
2141 [Description (
2142 "The distance for staticly connected peers. It has a default "
2143 karl 1.1 "value of 1.") ]
2144 uint8 Static;
2145 [Description (
2146 "The distance for peers using EBGP. It has a default value "
2147 "of 20.") ]
2148 uint8 EBGP;
2149 [Description (
2150 "The distance for peers using internal EIGRP. It has a "
2151 "default value of 90.") ]
2152 uint8 EIGRPInternal;
2153 [Description (
2154 "The distance for peers using IGRP. It has a default value "
2155 "of 100.") ]
2156 uint8 IGRP;
2157 [Description (
2158 "The distance for peers using OSPF. It has a default value "
2159 "of 110.") ]
2160 uint8 OSPF;
2161 [Description (
2162 "The distance for peers using ISIS. It has a default value "
2163 "of 115.") ]
2164 karl 1.1 uint8 ISIS;
2165 [Description (
2166 "The distance for peers using RIP. It has a default value "
2167 "of 120.") ]
2168 uint8 RIP;
2169 [Description (
2170 "The distance for peers using EGP. It has a default value "
2171 "of 140.") ]
2172 uint8 EGP;
2173 [Description (
2174 "The distance for peers using external EIGRP. It has a "
2175 "default value of 170.") ]
2176 uint8 EIGRPExternal;
2177 [Description (
2178 "The distance for peers using IBGP. It has a default value "
2179 "of 200.") ]
2180 uint8 IBGP;
2181 [Description (
2182 "The distance for peers using BGP locally. It has a default "
2183 "value of 200.") ]
2184 uint8 BGPLocal;
2185 karl 1.1 [Description (
2186 "The distance for peers using an unknown protocol. It has a "
2187 "default value of 255.") ]
2188 uint8 Unknown;
2189 };
2190
2191 // ==================================================================
2192 // BGPAdminDistance
2193 // ==================================================================
2194 [Association, Description (
2195 "This is a specialization of the Dependency association, and "
2196 "defines the relationship between a BGPService and the "
2197 "Administrative Distances that it uses to control the "
2198 "(BGP) routing decisions that it makes.") ]
2199
2200 class CIM_BGPAdminDistance : CIM_Dependency
2201 {
2202 [Override ("Antecedent"), Min(1), Max(1), Description (
2203 "The table of (global) administrative distances that are "
2204 " used by all BGP services.") ]
2205 CIM_AdministrativeDistance REF Antecedent;
2206 karl 1.1 [Override ("Dependent"), Description (
2207 "The BGP service object, that makes BGP routing decisions.") ]
2208 CIM_BGPService REF Dependent;
2209 };
2210
2211 // ==================================================================
2212 // BGPRouteMap
2213 // ==================================================================
2214 [Description (
2215 "A route map is used to control and modify routing "
2216 "information as well as to define when a route is "
2217 "redistributed between routing domains. Route maps are "
2218 "placed in router configuration files, and several "
2219 "instances of the same route map may be used to implement "
2220 "different actions (see accompanying white paper). "
2221 "\n\n"
2222 "Route maps may use FilterLists to identify the route "
2223 " (again, see the accompanying white paper). "
2224 "\n\n"
2225 "A BGPRouteMap is specific to a given AutonomousSystem that "
2226 "contains it. Hence, the keys of the AutonomousSystem are "
2227 karl 1.1 "propagated to this class.") ]
2228
2229 class CIM_BGPRouteMap : CIM_LogicalElement
2230 {
2231 [Propagated ("CIM_AutonomousSystem.CreationClassName"), Key,
2232 MaxLen (256), Description (
2233 "The scoping AutonomousSystem's CreationClassName. ") ]
2234 string SystemCreationClassName;
2235 [Propagated ("CIM_AutonomousSystem.Name"), Key, MaxLen (256),
2236 Description ("The scoping AutonomousSystem's Name.") ]
2237 string SystemName;
2238 [Key, Description (
2239 "The type of class that this instance is.") ]
2240 string CreationClassName;
2241 [Key, MaxLen(256), Description (
2242 "This is the name of the RouteMap class.") ]
2243 string Name;
2244 [Description (
2245 "This defines whether this RouteMap is used for input, "
2246 "output, or both input and output filtering."),
2247 ValueMap { "1", "2", "3" },
2248 karl 1.1 Values { "Input", "Output", "Both" } ]
2249 uint16 Direction;
2250 [Description (
2251 "This defines whether the action should be to forward or "
2252 "deny traffic meeting the match condition specified in this "
2253 "RouteMap"),
2254 ValueMap { "1", "2" },
2255 Values { "Permit", "Deny" } ]
2256 uint16 Action;
2257 [Description (
2258 "This specifies the criteria that must be matched in order "
2259 "for the corresponding MatchAction to take effect. The "
2260 "matching of the criteria may be specified by using a "
2261 "FilterList. For example, the command 'match ip address foo' "
2262 "uses the FilterList named 'foo' to do the matching of IP "
2263 "addresses."),
2264 ValueMap { "1", "2", "3", "4", "5", "6", "7", "8", "9" },
2265 Values {"Other", "Source Address and Mask",
2266 "Destination Address and Mask", "Source Port",
2267 "Source Port Range", "Destination Port",
2268 "Destination Port Range", "Protocol Type",
2269 karl 1.1 "Protocol Type and Option" },
2270 ModelCorrespondence {
2271 "CIM_RouteMap.OtherMatchConditionType" } ]
2272 uint16 MatchConditionType;
2273 [Description (
2274 "If the value of the MatchConditionType property in this "
2275 "class is 1 (e.g., 'Other'), then the specific type of "
2276 "filtering is specified in this property."),
2277 ModelCorrespondence {
2278 "CIM_RouteMap.MatchConditionType" } ]
2279 string OtherMatchConditionType;
2280 [Description (
2281 "This defines an additional action to take if the "
2282 "MatchCondition is satisfied. This definition is "
2283 "specifically limited to BGP filtering for now (e.g., its "
2284 "use is limited to setting a BGP attribute to a specific "
2285 "value), and will be upgraded in a subsequent release. The "
2286 "actual value of the metric is specified in the "
2287 "SetMetricValue property. "),
2288 ValueMap { "1", "2", "3", "4", "5", "6", "7", "8", "9" },
2289 Values { "Origin", "AS_Path", "NEXT_HOP", "Multi_Exit_Disc",
2290 karl 1.1 "Local_Pref", "Atomic_Aggregate", "Aggregator", "Community",
2291 "Originator_ID" } ]
2292 uint16 SetMetricType;
2293 [Description (
2294 "This is the value of the metric that is being set for the "
2295 "BGP attribute defined in the SetMetricType property.") ]
2296 string SetMetricValue;
2297 };
2298
2299 // ==================================================================
2300 // BGPRouteMapsInRoutingPolicy
2301 // ==================================================================
2302 [Association, Aggregation, Description (
2303 "This aggregation defines the RouteMaps that are used by a "
2304 "particular RoutingPolicy object. Multiple instances of the "
2305 "same RouteMap may be used in the same RoutingPolicy "
2306 "instance; if this is desired, then the Sequence attribute "
2307 "of this aggregation can be used to disambiguate them.") ]
2308
2309 class CIM_BGPRouteMapsInRoutingPolicy : CIM_Component
2310 {
2311 karl 1.1 [Aggregate, Override ("GroupComponent"), Description (
2312 "The RoutingPolicy that aggregates the RouteMaps.") ]
2313 CIM_RoutingPolicy REF GroupComponent;
2314 [Override ("PartComponent"), Description (
2315 "The RouteMaps that are used by the RoutingPolicy.") ]
2316 CIM_BGPRouteMap REF PartComponent;
2317 [Description (
2318 "This defines the position of this RouteMap instance "
2319 "relative to all other instances of the same RouteMap.") ]
2320 uint16 MapSequence;
2321 };
2322
2323 // ==================================================================
2324 // BGPPeerUsesRouteMap
2325 // ==================================================================
2326 [Association, Aggregation, Description (
2327 "This association defines the RouteMaps that are aggregated "
2328 "and used by a particular BGPPeerGroup object. Multiple "
2329 "instances of the same RouteMap may be aggregated into the "
2330 "same BGPPeerGroup; if this is desired, then the MapSequence "
2331 "attribute of the association can be used to disambiguate "
2332 karl 1.1 "them.") ]
2333
2334 class CIM_BGPPeerUsesRouteMap : CIM_CollectedMSEs
2335 {
2336 [Override("Collection"), Aggregate,
2337 Description (
2338 "The BGPPeerGroup that aggregates the RouteMaps.") ]
2339 CIM_BGPPeerGroup REF Collection;
2340 [Override("Member"),
2341 Description (
2342 "The RouteMaps that are used by the BGPPeerGroup.") ]
2343 CIM_BGPRouteMap REF Member;
2344 [Description (
2345 "This defines the position of this RouteMap instance "
2346 "relative to all other instances of the same RouteMap.") ]
2347 uint16 MapSequence;
2348 };
2349
2350 // ==================================================================
2351 // FilterListsInBGPRouteMap
2352 // ==================================================================
2353 karl 1.1 [Association, Description (
2354 "RouteMaps do not have to use FilterLists, but if they do, "
2355 "this association defines which FilterList is used by a "
2356 "particular RouteMap.") ]
2357
2358 class CIM_FilterListsInBGPRouteMap : CIM_Dependency
2359 {
2360 [Override ("Antecedent"), Description (
2361 "The FilterList used by a RouteMap.") ]
2362 CIM_FilterList REF Antecedent;
2363 [Override ("Dependent"), Description (
2364 "The RouteMap using the FilterList.") ]
2365 CIM_BGPRouteMap REF Dependent;
2366 };
2367
2368 // ==================================================================
2369 // InBGPPeerGroup
2370 // ==================================================================
2371 [Association, Aggregation, Description (
2372 "This aggregation defines the specific routers (e.g., "
2373 "ComputerSystems) that participate in a PeerGroup.") ]
2374 karl 1.1
2375 class CIM_InBGPPeerGroup : CIM_CollectedMSEs
2376 {
2377 [Aggregate, Override ("Collection"), Max(1), Description (
2378 "The PeerGroup that aggregates the routers.") ]
2379 CIM_BGPPeerGroup REF Collection;
2380 [Min(2), Override ("Member"), Description (
2381 "The routers that comprise the PeerGroup.") ]
2382 CIM_ComputerSystem REF Member;
2383 };
2384
2385 // ==================================================================
2386 // CalculatesAmong
2387 // ==================================================================
2388 [Association, Description (
2389 "This is a specialization of the ServiceSAPDependency "
2390 "association, indicating that the referenced "
2391 "ProtocolEndpoint is utilized by the "
2392 "RouteCalculationService to provide its functionality.") ]
2393
2394 class CIM_CalculatesAmong : CIM_ServiceSAPDependency
2395 karl 1.1 {
2396 [Override ("Antecedent"),
2397 Description ("The required ProtocolEndpoint") ]
2398 CIM_ProtocolEndpoint REF Antecedent;
2399 [Override ("Dependent"), Description (
2400 "The RouteCalculationService, which is dependent on the "
2401 "underlying ProtocolEndpoint.") ]
2402 CIM_RouteCalculationService REF Dependent;
2403 [Description (
2404 "TRUE indicates that this ProtocolEndpoint represents a "
2405 "static route, and FALSE means that it represents a "
2406 "dynamically-learned route.") ]
2407 boolean IsStatic;
2408 };
2409
2410 // ==================================================================
2411 // BGPAttributes
2412 // ==================================================================
2413 [Description (
2414 "This class defines all of the BGP Attributes, for a given "
2415 "version of the BGP protocol, that can be used to affect "
2416 karl 1.1 "routing decisions. "
2417 "\n\n"
2418 "BGPAttributes are specific to a given AutonomousSystem that "
2419 "contains it. Hence, the keys of the AutonomousSystem are "
2420 "propagated to this class.") ]
2421
2422 class CIM_BGPAttributes : CIM_LogicalElement
2423 {
2424 [Propagated ("CIM_AutonomousSystem.CreationClassName"), Key,
2425 MaxLen (256), Description (
2426 "The scoping AutonomousSystem's CreationClassName. ") ]
2427 string SystemCreationClassName;
2428 [Propagated ("CIM_AutonomousSystem.Name"), Key, MaxLen (256),
2429 Description ("The scoping AutonomousSystem's Name.") ]
2430 string SystemName;
2431 [Key, Description (
2432 "This defines the version of the BGP protocol.") ]
2433 string Version;
2434 [Description (
2435 "This defines the priority, or preference, of a route, in "
2436 "order to better compare it with other routes for the same "
2437 karl 1.1 "destination. Higher values indicate a higher preference "
2438 "for a route."),
2439 Mappingstrings {"MIB.IETF|RFC1657-MIB.bgp4PathAttrLocalPref"} ]
2440 uint16 LocalPreference;
2441 [Description (
2442 "This attribute is a sequences of the AS numbers through "
2443 "which routing information carried in this UPDATE message "
2444 "has passed. The components of this list can be AS_SETs "
2445 "or AS_SEQUENCEs."),
2446 Mappingstrings {"MIB.IETF|RFC1657-MIB.bgp4PathAttrASPath"} ]
2447 string ASPath;
2448 [Description (
2449 "This is the set of all elements contained in all specific "
2450 "paths that are being summarized, so that those attributes "
2451 "will remain available to the routing decision process.") ]
2452 string AS_Set;
2453 [Description (
2454 "This attribute defines the IP address of the border router "
2455 "that should be used as the next hop to the destinations "
2456 "listed in the UPDATE message."),
2457 Mappingstrings {"MIB.IETF|RFC1657-MIB.bgp4PathAttrNextHop"} ]
2458 karl 1.1 string NextHop;
2459 [Description (
2460 "This defines the next hop to be the IP address of the "
2461 "border IBGP neighbor.") ]
2462 string NextHopSelf;
2463 [Description (
2464 "This is used on external (e.g., inter-AS) links to indicate "
2465 "which is the preferred entry point into an AS, when that AS "
2466 "has multiple entry points. Lower MED values have "
2467 "preference."),
2468 Mappingstrings {
2469 "MIB.IETF|RFC1657-MIB.bgp4PathAttrMultiExitDisc"} ]
2470 uint32 MED;
2471 [Description (
2472 "This defines a group of destinations that share a similar "
2473 "property. Communities are not restricted to a single AS, "
2474 "and can span multiple ASs. This attribute is used to "
2475 "simplify routing policies by basing policies on a logical "
2476 "value, as opposed to an IP address or an AS number. ") ]
2477 uint32 BGPCommunityValue;
2478 [Description (
2479 karl 1.1 "This attribute gets set if there are overlapping routes, "
2480 "and a less-specific route is selected instead of a more "
2481 "specific one (e.g., a system propagates an aggregate "
2482 "that causes loss of information."),
2483 Mappingstrings {
2484 "MIB.IETF|RFC1657- MIB.bgp4PathAttrAtomicAggregate"} ]
2485 boolean AtomicAggregate;
2486 [Description (
2487 "This specifies the AS and IP address of the router that has "
2488 "generated an aggregate."),
2489 Mappingstrings {
2490 "MIB.IETF|RFC1657- MIB.bgp4PathAttrAggregatorAS"} ]
2491 string Aggregator;
2492 [Description (
2493 "This is generated by the AS that originates the routing "
2494 "information. There are three types of origins - IGP, EGP, "
2495 "and INCOMPLETE. These correspond to whether the information "
2496 "was learned internally in the AS, externally via an EGP, "
2497 "or by some other means."),
2498 ValueMap { "1", "2", "3" },
2499 Values { "IGP", "EGP", "INCOMPLETE" },
2500 karl 1.1 Mappingstrings {"MIB.IETF|RFC1657-MIB.bgp4PathAttrOrigin"} ]
2501 uint16 Origin;
2502 [Description (
2503 "This is the router ID for the ORIGIN attribute.") ]
2504 string OriginatorID;
2505 };
2506
2507 // ==================================================================
2508 // FilteredBGPAttributes
2509 // ==================================================================
2510 [Association, Aggregation, Description (
2511 "This is a specialization of the Component aggregation, "
2512 "which is used to define the set of BGP Attributes that are "
2513 "used by a particular Routing Policy.") ]
2514
2515 class CIM_FilteredBGPAttributes : CIM_Component
2516 {
2517 [Aggregate, Override ("GroupComponent"), Description (
2518 "The RoutingPolicy, which aggregates a set of BGP "
2519 "attributes.") ]
2520 CIM_RoutingPolicy REF GroupComponent;
2521 karl 1.1 [Override ("PartComponent"), Description (
2522 "A BGP attribute, which is part-of the RoutingPolicy.") ]
2523 CIM_BGPAttributes REF PartComponent;
2524 };
2525
2526 // ==================================================================
2527 // BGPPathAttributes
2528 // ==================================================================
2529 [Description (
2530 "This class defines the per-path information used to process "
2531 "specific BGP attribute information, as defined in the "
2532 "bgp4PathAttrTable of RFC 1657.") ]
2533
2534 class CIM_BGPPathAttributes : CIM_LogicalElement
2535 {
2536 [Description (
2537 "This property and its description are taken directly from "
2538 "RFC 1657. The property represents a sequence of AS path "
2539 "segments. Each AS path segment is represented by the "
2540 "tuple: \n"
2541 " <type, length, value>"
2542 karl 1.1 "\n\n"
2543 "The type is a 1-octet field which has two possible values: \n"
2544 " 1 = AS_SET \n"
2545 " 2 = AS_SEQUENCE \n"
2546 "An AS_SET is an unordered set of ASs representing the path "
2547 "that an UPDATE message has traversed, and an AS_SEQUENCE is "
2548 "an ordered set of ASs representing the path that an UPDATE "
2549 "message has traversed. "
2550 "\n\n"
2551 "The length is a 1-octet field containing the number of ASs "
2552 "in the value field. "
2553 "\n\n"
2554 "The value field contains one or more AS numbers, each AS is "
2555 "represented in the octet string as a pair of octets "
2556 "according to the following algorithm: "
2557 " first-byte-of-pair = ASNumber / 256; "
2558 " second-byte-of-pair = ASNumber & 255;"
2559 "\n\n"
2560 "This property is mapped from the bgp4PathAttrASPathSegment "
2561 "MIB variable, which is an OctetString. Its length is "
2562 "defined as a minimum of 2 and a maximum of 255 octets. "),
2563 karl 1.1 ArrayType ("Indexed"),
2564 Mappingstrings {
2565 "MIB.IETF|RFC1657-MIB.bgp4PathAttrASPathSegment"} ]
2566 uint8 PathAttrASPathSegment[ ];
2567 [Key, MaxLen (512), Description (
2568 "A comma-separated list of AS numbers, as would be stored "
2569 "in the value portion of the path segment in the "
2570 "PathAttrASPathSegment property. This list can be ordered "
2571 "or unordered.") ]
2572 string ASNumbers;
2573 [Key, MaxLen (32), Description (
2574 "This is the address of the border router that should be "
2575 "used for the destination network."),
2576 Mappingstrings {"MIB.IETF|RFC1657-MIB.bgp4PathAttrNextHop"} ]
2577 string PathAttrNextHop;
2578 [Description (
2579 "This is an enumeration that defines the ultimate origin of "
2580 "the path information. The value 'IGP' means that the origin "
2581 "is interior; the value 'EGP' means that it was learned via "
2582 "an EGP; the value 'INCOMPLETE' means that the origin is "
2583 "undetermined."),
2584 karl 1.1 ValueMap { "1", "2", "3" },
2585 Values {"IGP", "EGP", "INCOMPLETE"},
2586 Mappingstrings {"MIB.IETF|RFC1657-MIB.bgp4PathAttrOrigin"} ]
2587 uint16 PathAttrOrigin;
2588 [Description (
2589 "This metric is used to discriminate between multiple "
2590 "adjacent autonomous systems. A value of -1 indicates the "
2591 "absence of this attribute. The range of this attribute "
2592 "is defined to be -1 to 2147483647."),
2593 Mappingstrings {
2594 "MIB.IETF|RFC1657- MIB.bgp4PathAttrMultiExitDisc"} ]
2595 sint32 PathAttrMultiExitDisc;
2596 [Description (
2597 "This is the originating BGP4 speaker's degree of preference "
2598 "for an advertised route. A value of -1 indicates the "
2599 "absence of this attribute. The range of this attribute is "
2600 "defined to be -1 to 2147483647."),
2601 Mappingstrings {"MIB.IETF|RFC1657-MIB.bgp4PathAttrLocalPref"} ]
2602 sint32 PathAttrLocalPref;
2603 [Description (
2604 "This is an enumeration that defines whether or not the "
2605 karl 1.1 "local system has selected a less specific route without "
2606 "selecting a more specific route. There are two values, 1 "
2607 "and 2, indicating that a less specific route has not and "
2608 "has been selected, respectively. This is a 32-bit integer "
2609 "to correspond to the IETF MIB."),
2610 ValueMap { "1", "2" },
2611 Values {"Less Specific Not Selected",
2612 "Less Specific Selected"},
2613 Mappingstrings {
2614 "MIB.IETF|RFC1657- MIB.bgp4PathAttrAtomicAggregate"} ]
2615 uint32 PathAttrAtomicAggregate;
2616 [Description (
2617 "This is the AS number of the last BGP4 speaker that "
2618 "performed route aggregation. A value of 0 indicates the "
2619 "absence of this attribute. The range of this attribute is "
2620 "defined to be 0 to 65535."),
2621 Mappingstrings {
2622 "MIB.IETF|RFC1657- MIB.bgp4PathAttrAggregatorAS"} ]
2623 uint16 PathAttrAggregatorAS;
2624 [Description (
2625 "This is the IP address of the last BGP4 speaker that "
2626 karl 1.1 "performed route aggregation. A value of 0.0.0.0 indicates "
2627 "the absence of this attribute."),
2628 Mappingstrings {
2629 "MIB.IETF|RFC1657- MIB.bgp4PathAttrAggregatorAddr"} ]
2630 string PathAttrAggregatorAddr;
2631 [Description (
2632 "This is the degree of preference calculated by the "
2633 "receiving BGP4 speaker for an advertised route. A value of "
2634 "-1 indicates the absence of this attribute. The range of "
2635 "this attribute is defined to be -1 to 2147483647."),
2636 Mappingstrings {
2637 "MIB.IETF|RFC1657- MIB.bgp4PathAttrCalcLocalPref"} ]
2638 sint16 PathAttrCalcLocalPref;
2639 [Description (
2640 "This is an indication of whether or not this route was "
2641 "chosen as the best BGP4 route. There are two possible "
2642 "values, 1 (FALSE) and 2 (TRUE)."),
2643 Mappingstrings {"MIB.IETF|RFC1657-MIB.bgp4PathAttrBest"} ]
2644 uint16 PathAttrBest;
2645 [Description (
2646 "This contains one or more path atributes not understood by "
2647 karl 1.1 "this BGP4 speaker. The MIB variable is an OctetString, and "
2648 "contains a 1-octet length field and up to 254 additional "
2649 "octets of data. The length is placed in a separate "
2650 "attribute of this class, PathAttrUnknownNumber."),
2651 ModelCorrespondence {
2652 "CIM_BGPPathAttributes.PathAttrUnknownNumber" },
2653 Mappingstrings {"MIB.IETF|RFC1657-MIB.bgp4PathAttrUnknown"} ]
2654 string PathAttrUnknown[ ];
2655 [Description (
2656 "The MIB variable is an OctetString, and contains a 1-octet "
2657 "length field and up to 255 additional octets of data. The "
2658 "length is placed in this attribute."),
2659 ModelCorrespondence {
2660 "CIM_BGPPathAttributes.PathAttrUnknown" },
2661 Mappingstrings {"MIB.IETF|RFC1657-MIB.bgp4PathAttrUnknown"} ]
2662 uint16 PathAttrUnknownNumber;
2663 };
2664
2665 // ==================================================================
2666 // BGPAttributesForRoute
2667 // ==================================================================
2668 karl 1.1 [Association, Description (
2669 "This defines the attributes that are transmitted between "
2670 "BGP peers on a per-route basis.") ]
2671
2672 class CIM_BGPAttributesForRoute : CIM_Dependency
2673 {
2674 [Max(1), Override ("Antecedent"), Description (
2675 "The BGPPathAttribute object that may be associated with "
2676 "a BGP route.") ]
2677 CIM_BGPPathAttributes REF Antecedent;
2678 [Override ("Dependent"), Max(1), Description (
2679 "The BGPIPRoute that may have an associated set of "
2680 "per-peer attributes.") ]
2681 CIM_BGPIPRoute REF Dependent;
2682 [Description (
2683 "This defines the IP address of the peer where the path "
2684 "information was learned."),
2685 Mappingstrings {"MIB.IETF|RFC1657-MIB.bgp4PathAttrPeer"} ]
2686 string PathAttrPeer;
2687 [Description (
2688 "This defines the length in bits of the IP address prefix "
2689 karl 1.1 "in the Network Layer Reachability information field. The "
2690 "range of this attribute is defined to be 0 to 32."),
2691 Mappingstrings {
2692 "MIB.IETF|RFC1657- MIB.bgp4PathAttrIpAddrPrefixLen"} ]
2693 uint8 PathAttrIPAddrPrefixLen;
2694 [Description (
2695 "An IP address prefix in the Network Layer Reachability "
2696 "Information field. This object is an IP address "
2697 "containing the prefix with length specified by the "
2698 "PathAttrIpAddrPrefixLen attribute."),
2699 ModelCorrespondence {
2700 "CIM_BGPPathAttributes.PathAttrIpAddrPrefixLen" },
2701 Mappingstrings {
2702 "MIB.IETF|RFC1657- MIB.bgp4PathAttrIpAddrPrefix"} ]
2703 string PathAttrIPAddrPrefix;
2704 };
2705
2706 // ==================================================================
2707 // BGPServiceAttributes
2708 // ==================================================================
2709 [Association, Aggregation, Description (
2710 karl 1.1 "This is a specialization of the Component aggregation. This "
2711 "aggregation defines the set of BGP Attributes that are "
2712 "transmitted in per-path UPDATE messages.") ]
2713
2714 class CIM_BGPServiceAttributes : CIM_Component
2715 {
2716 [Aggregate, Max(1),
2717 Override ("GroupComponent"), Description (
2718 "The BGPService that aggregates BGP attributes as part of "
2719 "its routing information.") ]
2720 CIM_BGPService REF GroupComponent;
2721 [Override ("PartComponent"), Min(1), Max(1), Description (
2722 "The BGP attribute, which are part-of the BGP UPDATE "
2723 "message.") ]
2724 CIM_BGPPathAttributes REF PartComponent;
2725 };
2726
2727 // ===================================================================
2728 // SwitchService
2729 // ===================================================================
2730 [Description (
2731 karl 1.1 "Generic switch (bridging) service class. Additional "
2732 "switching functions are incorporated as subordinate "
2733 "services related to this class via ServiceComponent "
2734 "associations.")
2735 ]
2736
2737 class CIM_SwitchService : CIM_ForwardingService
2738 {
2739 [MaxLen(12), Description (
2740 "MAC address used by this switch service when it must be "
2741 "uniquely identified. When concatenated with a "
2742 "SpanningTreeService Priority, a unique bridge identifier "
2743 "results. The MAC address is formatted as twelve "
2744 "hexadecimal digits (e.g., \"010203040506\"), with each "
2745 "pair representing one of the six octets of the MAC address "
2746 "in \"canonical\" bit order according to RFC 2469."),
2747 Mappingstrings {
2748 "MIB.IETF|RFC1493- MIB.dot1dBaseBridgeAddress"} ]
2749 string BridgeAddress ;
2750 [Description (
2751 "The number of switch ports controlled by this "
2752 karl 1.1 "switching service.") ,
2753 Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dBaseNumPorts"} ]
2754 uint16 NumPorts ;
2755 [Description (
2756 "Indicates what type of switching service can be "
2757 "performed."),
2758 ValueMap {"1", "2", "3", "4"},
2759 Values {"unknown", "transparent-only", "sourceroute-only",
2760 "srt"},
2761 Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dBaseType"} ]
2762 uint8 BridgeType ;
2763 };
2764
2765 // ===================================================================
2766 // SwitchPort
2767 // ===================================================================
2768 [Description (
2769 "Switch Port from which frames are received "
2770 "and out which they are transmitted.") ]
2771
2772 class CIM_SwitchPort : CIM_ProtocolEndpoint
2773 karl 1.1 {
2774 [Description (
2775 "Numeric identifier for a switch port."),
2776 Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dPort"} ]
2777 uint16 PortNumber;
2778 };
2779
2780 // ===================================================================
2781 // SwitchesAmong
2782 // ===================================================================
2783 [Association, Description (
2784 "A SwitchService switches frames between SwitchPorts. "
2785 "This association makes that relationship explicit.") ]
2786
2787 class CIM_SwitchesAmong : CIM_ForwardsAmong
2788 {
2789 [Override ("Antecedent"),
2790 Description ("The switch port.") ]
2791 CIM_SwitchPort REF Antecedent;
2792 [Override ("Dependent"), Max(1),
2793 Description ("The switching service.") ]
2794 karl 1.1 CIM_SwitchService REF Dependent;
2795 };
2796
2797 // ===================================================================
2798 // Switchable
2799 // ===================================================================
2800 [Association,
2801 Description (
2802 "A switch port has a LANEndpoint that is "
2803 "exposed via this relationship.") ]
2804
2805 class CIM_Switchable : CIM_BindsToLANEndpoint
2806 {
2807 [Override ("Antecedent"), Max(1),
2808 Description ("The switch port.") ]
2809 CIM_LANEndpoint REF Antecedent;
2810 [Override ("Dependent"), Max(1),
2811 Description ("The LAN endpoint.") ]
2812 CIM_SwitchPort REF Dependent;
2813 };
2814
2815 karl 1.1 // ===================================================================
2816 // TransparentBridgingService
2817 // ===================================================================
2818 [Description (
2819 "This service class represents the learning/transparent "
2820 "bridging aspect of switch service.") ]
2821
2822 class CIM_TransparentBridgingService : CIM_Service
2823 {
2824 [Description (
2825 "The timeout period in seconds for aging out "
2826 "dynamically learned forwarding information. "
2827 "802.1D-1990 recommends a default of 300 seconds."),
2828 Units("Seconds"),
2829 Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dTpAgingTime"}
2830 ]
2831 uint32 AgingTime;
2832 [Description (
2833 "Filtering Database Identifier. Used by VLAN-aware "
2834 "switch having more than one filtering database."),
2835 Mappingstrings {"MIB.IETF|RFC????-MIB.dot1qFdbId"}
2836 karl 1.1 ]
2837 uint32 FID;
2838 };
2839
2840 // ===================================================================
2841 // SpanningTreeService
2842 // ===================================================================
2843 [Description (
2844 "This service class represents the capability of a switch "
2845 "to participate in the distributed construction of a "
2846 "spanning tree.") ]
2847
2848 class CIM_SpanningTreeService : CIM_Service
2849 {
2850 [Description (
2851 "The version of the spanning tree protocol "
2852 "used by the switch."),
2853 ValueMap {"1", "2", "3"},
2854 Values {"unknown", "decLb100", "ieee802d"},
2855 Mappingstrings {
2856 "MIB.IETF|RFC1493- MIB.dot1dStpProtocolSpecification"} ]
2857 karl 1.1 uint16 ProtocolSpec;
2858 [Description (
2859 "The format of the priority bits are the first two octets of "
2860 "the 8-octet long Bridge ID. The other (last) 6 octets of the "
2861 "Bridge ID are given by the value of the Bridge Address. "
2862 "\n\n"
2863 "A priority that can be assigned to the switch for use in "
2864 "constructing the spanning tree. The unique identifier for "
2865 "a switch is constructed by concatenating the MAC address "
2866 "associated with the switch for spanning tree operations "
2867 "to the two-byte priority. Choice of the priority value "
2868 "influences election of the root bridge."),
2869 Mappingstrings {"MIB.IETF|RFC1493- MIB.dot1dStpPriority"} ]
2870 uint16 Priority;
2871 [MaxLen(16), Description (
2872 "The Bridge ID (Priority + MAC Address) of the root bridge."
2873 "\n\n"
2874 "The format of the priority bits are the first two octets of "
2875 "the 8-octet long Bridge ID. The other (last) 6 octets of the "
2876 "Bridge ID are given by the value of the Bridge Address. "
2877 "Note that the MAC address is formatted as twelve "
2878 karl 1.1 "hexadecimal digits (e.g., \"010203040506\"), with each "
2879 "pair representing one of the six octets of the MAC address "
2880 "in \"canonical\" bit order according to RFC 2469. "),
2881 Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dStpDesignatedRoot"}
2882 ]
2883 string DesignatedRoot;
2884 [Description (
2885 "The cost of the path from the switch to the root."),
2886 Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dStpRootCost"}
2887 ]
2888 uint16 RootCost;
2889 [Description (
2890 "The port number of the port having the lowest cost path "
2891 "to the root bridge."),
2892 Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dStpRootPort"}
2893 ]
2894 uint16 RootPort;
2895 [Description (
2896 "The current value for the maximum age of Spanning Tree "
2897 "information before discard, as learned from the network."),
2898 Units ("Hundredths of Seconds"),
2899 karl 1.1 Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dStpMaxAge"}
2900 ]
2901 uint32 MaxAge;
2902 [Description (
2903 "The current value of the interval between transmission "
2904 "of bridge PDUs by the switch on any port for which it is "
2905 "the spanning tree root or trying to become so, as learned "
2906 "from the network."),
2907 Units ("Hundredths of Seconds"),
2908 Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dStpHelloTime"}
2909 ]
2910 uint32 HelloTime;
2911 [Description (
2912 "The minimum interval between transmission of bridge PDUs "
2913 "through a given port, as learned from the network."),
2914 Units ("Hundredths of Seconds"),
2915 Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dStpHoldTime"}
2916 ]
2917 uint32 HoldTime;
2918 [Description (
2919 "The time spent by a port in the listening state before "
2920 karl 1.1 "transitioning to the learning state and in the learning "
2921 "state before transitioning to the forwarding state, as "
2922 "learned from the network. This value is also used during "
2923 "the period of a topology change as the maximum age of "
2924 "Spanning Tree information before discard. "),
2925 Units ("Hundredths of Seconds"),
2926 Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dStpForwardDelay"}
2927 ]
2928 uint32 ForwardDelay;
2929 [Description (
2930 "The MaxAge parameter to be used by all switches in the "
2931 "network if this switch becomes the root."),
2932 Units ("Hundredths of Seconds"),
2933 Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dStpBridgeMaxAge"}
2934 ]
2935 uint32 BridgeMaxAge;
2936 [Description (
2937 "The HelloTime parameter to be used by all switches in the "
2938 "network if this switch becomes the root."),
2939 Units ("Hundredths of Seconds"),
2940 Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dStpBridgeHelloTime"}
2941 karl 1.1 ]
2942 uint32 BridgeHelloTime;
2943 [Description (
2944 "The ForwardDelay parameter to be used by all switches in "
2945 "the network if this switch becomes the root."),
2946 Units ("Hundredths of Seconds"),
2947 Mappingstrings {
2948 "MIB.IETF|RFC1493- MIB.dot1dStpBridgeForwardDelay"} ]
2949 uint32 BridgeForwardDelay;
2950 [Description (
2951 "MAC address used by the spanning tree service when it "
2952 "must be uniquely identified. When concatenated with a "
2953 "SpanningTreeService Priority, a unique bridge identifier "
2954 "results. This property is defined for use of switches "
2955 "supporting multiple spanning tree services. "
2956 "\n\n"
2957 "Note that the MAC address is formatted as twelve "
2958 "hexadecimal digits (e.g., \"010203040506\"), with each "
2959 "pair representing one of the six octets of the MAC address "
2960 "in \"canonical\" bit order according to RFC 2469.") ]
2961 string SpanningTreeBridgeAddress;
2962 karl 1.1 };
2963
2964 // ===================================================================
2965 // SwitchPortSpanningTree
2966 // ===================================================================
2967 [Association,
2968 Description (
2969 "A switch participating in the spanning tree maintains "
2970 "spanning-tree specific information about each port "
2971 "whose forwarding is determined by the spanning tree. "
2972 "This association represents that information.") ]
2973
2974 class CIM_SwitchPortSpanningTree : CIM_ServiceSAPDependency
2975 {
2976 [Override ("Antecedent"), Description ("The switch port.")]
2977 CIM_SwitchPort REF Antecedent;
2978 [Override ("Dependent"),
2979 Description ("The spanning tree service.") ]
2980 CIM_SpanningTreeService REF Dependent;
2981 [Description (
2982 "The priority assigned to the port. Contained in "
2983 karl 1.1 "the first octet of the two-octet port ID; the other "
2984 "octet is the port number."),
2985 Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dStpPortPriority"}
2986 ]
2987 uint8 Priority;
2988 [Description (
2989 "The current state of the port as determined by the "
2990 "spanning tree protocol."),
2991 ValueMap {"1", "2", "3", "4", "5", "6"},
2992 Values {"disabled", "blocking", "listening", "learning",
2993 "forwarding", "broken"},
2994 Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dStpPortState"}
2995 ]
2996 uint16 State;
2997 [Description (
2998 "The enabled/disabled status of the port."),
2999 ValueMap {"1", "2"},
3000 Values {"enabled", "disabled"},
3001 Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dStpPortEnable"}
3002 ]
3003 uint16 Enable;
3004 karl 1.1 [Description (
3005 "The contribution of this port to the path cost of "
3006 "paths towards the spanning tree root which include "
3007 "this port."),
3008 Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dStpPortPathCost"}
3009 ]
3010 uint16 PathCost;
3011 [Description (
3012 "The bridge identifier of the root bridge for the segment "
3013 "to which the port is attached, as transmitted by the "
3014 "designated bridge for the segment."),
3015 Mappingstrings {
3016 "MIB.IETF|RFC1493- MIB.dot1dStpPortDesignatedRoot"} ]
3017 string DesignatedRoot;
3018 [Description (
3019 "The cost of the path to the root offered by the "
3020 "designated bridge for the segment."),
3021 Mappingstrings {
3022 "MIB.IETF|RFC1493- MIB.dot1dStpPortDesignatedCost"} ]
3023 uint16 DesignatedCost;
3024 [Description (
3025 karl 1.1 "The bridge identifier of the designated bridge for the "
3026 "segment to which the port is attached."),
3027 Mappingstrings {
3028 "MIB.IETF|RFC1493- MIB.dot1dStpPortDesignatedBridge"} ]
3029 string DesignatedBridge;
3030 [Description (
3031 "The port identifier of the port on the designated bridge "
3032 "serving the segment to which the port is attached."),
3033 Mappingstrings {
3034 "MIB.IETF|RFC1493- MIB.dot1dStpPortDesignatedPort"} ]
3035 uint16 DesignatedPort;
3036 };
3037
3038 // ===================================================================
3039 // DynamicForwardingEntry
3040 // ===================================================================
3041 [Description (
3042 "A DynamicForwardingEntry represents an entry in the "
3043 "forwarding (filtering) database associated with the "
3044 "transparent bridging service.")
3045 ]
3046 karl 1.1 class CIM_DynamicForwardingEntry : CIM_LogicalElement
3047 {
3048 [Propagated("CIM_System.CreationClassName"),
3049 Key, MaxLen (256),
3050 Description ("The scoping System's CreationClassName.") ]
3051 string SystemCreationClassName;
3052 [Propagated("CIM_System.Name"),
3053 Key, MaxLen (256),
3054 Description ("The scoping System's Name.") ]
3055 string SystemName;
3056 [Propagated("CIM_Service.CreationClassName"),
3057 Key, MaxLen (256),
3058 Description ("The scoping Service's CreationClassName.")
3059 ]
3060 string ServiceCreationClassName;
3061 [Propagated("CIM_Service.Name"),
3062 Key, MaxLen (256),
3063 Description ("The scoping Service's Name.") ]
3064 string ServiceName;
3065 [Key, MaxLen (256),
3066 Description (
3067 karl 1.1 "CreationClassName indicates the name of the class or the "
3068 "subclass used in the creation of an instance. When used "
3069 "with the other key properties of this class, this property "
3070 "allows all instances of this class and its subclasses to "
3071 "be uniquely identified.") ]
3072 string CreationClassName;
3073 [Key, MaxLen (6), Description (
3074 "Unicast MAC address for which the transparent bridging "
3075 "service has forwarding and/or filtering information. "
3076 "\n\n"
3077 "Note that the MAC address is formatted as twelve "
3078 "hexadecimal digits (e.g., \"010203040506\"), with each "
3079 "pair representing one of the six octets of the MAC address "
3080 "in \"canonical\" bit order according to RFC 2469."),
3081 Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dTpFdbAddress"}
3082 ]
3083 string MACAddress;
3084 [Description (
3085 "The status of the entry."),
3086 ValueMap {"1", "2", "3", "4", "5"},
3087 Values {"other", "invalid", "learned", "self", "mgmt"},
3088 karl 1.1 Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dTpFdbStatus"}
3089 ]
3090 uint16 DynamicStatus;
3091 };
3092
3093 // ==================================================================
3094 // TransparentBridgingDynamicForwarding
3095 // ==================================================================
3096 [Association,
3097 Description (
3098 "This association links an instance of the transparent "
3099 "bridging service to the entries of its forwarding database. "
3100 "The forwarding database is weak to the service.")
3101 ]
3102 class CIM_TransparentBridgingDynamicForwarding : CIM_Dependency
3103 {
3104 [Override ("Antecedent"), Min(1), Max(1),
3105 Description ("The transparent bridging service.") ]
3106 CIM_TransparentBridgingService REF Antecedent;
3107 [Override ("Dependent"), Weak,
3108 Description ("Dynamic Forwarding Entry of forwarding database.")
3109 karl 1.1 ]
3110 CIM_DynamicForwardingEntry REF Dependent;
3111 };
3112
3113 // ==================================================================
3114 // SwitchPortDynamicForwarding
3115 // ==================================================================
3116 [Association,
3117 Description (
3118 "This association links a dynamic forwarding entry "
3119 "and the switch port to which the entry applies.") ]
3120
3121 class CIM_SwitchPortDynamicForwarding : CIM_Dependency
3122 {
3123 [Override ("Antecedent"), Min(1), Max(1),
3124 Description ("The switch port.") ]
3125 CIM_SwitchPort REF Antecedent;
3126 [Override ("Dependent"),
3127 Description ("Dynamic Forwarding Entry of forwarding database.")
3128 ]
3129 CIM_DynamicForwardingEntry REF Dependent;
3130 karl 1.1 };
3131
3132 // ===================================================================
3133 // StaticForwardingEntry
3134 // ===================================================================
3135 [Description (
3136 "A StaticForwardingEntry represents an entry in the "
3137 "static (destination-address filtering) database associated "
3138 "with the switch service.") ]
3139
3140 class CIM_StaticForwardingEntry : CIM_LogicalElement
3141 {
3142 [Propagated("CIM_System.CreationClassName"),
3143 Key, MaxLen (256),
3144 Description ("The scoping System's CreationClassName.") ]
3145 string SystemCreationClassName;
3146 [Propagated("CIM_System.Name"),
3147 Key, MaxLen (256),
3148 Description ("The scoping System's Name.") ]
3149 string SystemName;
3150 [Propagated("CIM_Service.CreationClassName"),
3151 karl 1.1 Key, MaxLen (256),
3152 Description ("The scoping Service's CreationClassName.") ]
3153 string ServiceCreationClassName;
3154 [Propagated("CIM_Service.Name"),
3155 Key, MaxLen (256),
3156 Description ("The scoping Service's Name.") ]
3157 string ServiceName;
3158 [Key, MaxLen (256),
3159 Description (
3160 "CreationClassName indicates the name of the class or the "
3161 "subclass used in the creation of an instance. When used "
3162 "with the other key properties of this class, this property "
3163 "allows all instances of this class and its subclasses to "
3164 "be uniquely identified.") ]
3165 string CreationClassName;
3166 [Key, MaxLen (6), Description (
3167 "Destination MAC address (unicast, multicast or broadcast) "
3168 "to which the filtering information applies. "
3169 "\n\n"
3170 "Note that the MAC address is formatted as twelve "
3171 "hexadecimal digits (e.g., \"010203040506\"), with each "
3172 karl 1.1 "pair representing one of the six octets of the MAC address "
3173 "in \"canonical\" bit order according to RFC 2469."),
3174 Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dStaticAddress"}
3175 ]
3176 string MACAddress;
3177 [Description (
3178 "The status of the entry."),
3179 ValueMap {"1", "2", "3", "4", "5"},
3180 Values {"other", "invalid", "permanent", "deleteOnReset",
3181 "DeleteOnTimeout"},
3182 Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dStaticStatus"}
3183 ]
3184 uint16 StaticStatus;
3185 [Description (
3186 "The ports to which frames with the destination MAC "
3187 "address arriving on the port represented by the "
3188 "SwitchPortStaticForwarding association are allowed "
3189 "to be forwarded.")
3190 ]
3191 uint16 AllowedToGo[];
3192 };
3193 karl 1.1
3194
3195 // ==================================================================
3196 // TransparentBridgingStaticForwarding
3197 // ==================================================================
3198 [Association,
3199 Description (
3200 "This association links an instance of the transparent "
3201 "bridging service to the entries of its static "
3202 "(destination-address filtering) database.")
3203 ]
3204
3205 class CIM_TransparentBridgingStaticForwarding : CIM_Dependency
3206 {
3207 [Override ("Antecedent"), Min(1), Max(1),
3208 Description ("The transparent bridging service.")
3209 ]
3210 CIM_TransparentBridgingService REF Antecedent;
3211 [Override ("Dependent"), Weak,
3212 Description ("Static Forwarding Entry of forwarding database.")
3213 ]
3214 karl 1.1 CIM_StaticForwardingEntry REF Dependent;
3215 };
3216
3217 // ==================================================================
3218 // SwitchPortStaticForwarding
3219 // ==================================================================
3220 [Association,
3221 Description (
3222 "This association links a static database entry "
3223 "and the switch port to which the entry applies.") ]
3224 class CIM_SwitchPortStaticForwarding : CIM_Dependency
3225 {
3226 [Override ("Antecedent"), Min(1),
3227 Description ("The switch port.") ]
3228 CIM_SwitchPort REF Antecedent;
3229 [Override ("Dependent"),
3230 Description ("Static Forwarding Entry of static database.")
3231 ]
3232 CIM_StaticForwardingEntry REF Dependent;
3233 };
3234
3235 karl 1.1 // ==================================================================
3236 // SwitchServiceTransparentBridging
3237 // ==================================================================
3238 [Association, Aggregation, Description (
3239 "An association linking SwitchService to a component "
3240 "TransparentBridgingService. The cardinality of the "
3241 "TransparentBridgingService is 0..1 for a VLAN-unaware "
3242 "switch.") ]
3243
3244 class CIM_SwitchServiceTransparentBridging : CIM_ServiceComponent
3245 {
3246 [Override ("GroupComponent"), Aggregate, Min(1),
3247 Description ("The parent service.") ]
3248 CIM_SwitchService REF GroupComponent;
3249 [Override ("PartComponent"),
3250 Description ("The component service.") ]
3251 CIM_TransparentBridgingService REF PartComponent;
3252 };
3253
3254 // ==================================================================
3255 // SwitchServiceSpanningTree
3256 karl 1.1 // ==================================================================
3257 [Association, Aggregation, Description (
3258 "An association linking SwitchService to a component "
3259 "SpanningTreeService. The cardinality of the "
3260 "SpanningTreeService is 0..1 for a VLAN-unaware "
3261 "switch.") ]
3262
3263 class CIM_SwitchServiceSpanningTree : CIM_ServiceComponent
3264 {
3265 [Override ("GroupComponent"), Aggregate, Min(1),
3266 Description ("The parent service.") ]
3267 CIM_SwitchService REF GroupComponent;
3268 [Override ("PartComponent"),
3269 Description ("The component service.") ]
3270 CIM_SpanningTreeService REF PartComponent;
3271 };
3272
3273 // ===================================================================
3274 // SourceRoutingService
3275 // ===================================================================
3276 [Description (
3277 karl 1.1 "This service class represents the capability of a switch "
3278 "to participate in the source routing of frames received "
3279 "at its ports.") ]
3280
3281 class CIM_SourceRoutingService : CIM_Service
3282 {
3283 [Description (
3284 "Indicates whether the bridge operates using older "
3285 "3 bit length negotiation fields or the newer 6 bit "
3286 "length field in its RIF."),
3287 ValueMap {"1", "2"},
3288 Values {"mode3", "mode6"},
3289 Mappingstrings {"MIB.IETF|RFC1525-MIB.dot1dSrBridgeLfMode"}
3290 ]
3291 uint16 BridgeLfMode;
3292 };
3293
3294 // ==================================================================
3295 // SwitchServiceSourceRouting
3296 // ==================================================================
3297 [Association, Aggregation, Description (
3298 karl 1.1 "An association linking SwitchService to a component "
3299 "SourceRoutingService. The cardinality of the "
3300 "SourceRoutingService is 0..1 for a VLAN-unaware "
3301 "switch.") ]
3302
3303 class CIM_SwitchServiceSourceRouting : CIM_ServiceComponent
3304 {
3305 [Override ("GroupComponent"), Aggregate, Min(1),
3306 Description ("The parent service.") ]
3307 CIM_SwitchService REF GroupComponent;
3308 [Override ("PartComponent"),
3309 Description ("The component service.") ]
3310 CIM_SourceRoutingService REF PartComponent;
3311 };
3312
3313 // ==================================================================
3314 // SwitchPortPair
3315 // ==================================================================
3316 [Association, Description (
3317 "This association represents information regarding port "
3318 "pairings that is used by the SourceRoutingService of a "
3319 karl 1.1 "switch.") ]
3320
3321 class CIM_SwitchPortPair : CIM_SAPSAPDependency
3322 {
3323 [Override ("Antecedent"), Min(1), Description (
3324 "The lower numbered port.")]
3325 CIM_SwitchPort REF Antecedent;
3326 [Override ("Dependent"), Min(1), Description (
3327 "The higher numbered port.")]
3328 CIM_SwitchPort REF Dependent;
3329 [Description (
3330 "A bridge number that uniquely identifies the path "
3331 "provided by this source routing bridge between the "
3332 "segments connected to high and low ports. The purpose "
3333 "of bridge number is to disambiguate between multiple paths "
3334 "connecting the same two LANs."),
3335 Mappingstrings {"MIB.IETF|RFC1525-MIB.dot1dPortPairBridgeNum"}
3336 ]
3337 uint16 BridgeNum;
3338 [Description (
3339 "The state of dot1dPortPairBridgeNum. Writing "
3340 karl 1.1 "'invalid(3)' to this property removes the "
3341 "association instance."),
3342 ValueMap {"1", "2", "3"},
3343 Values {"enabled", "disabled", "invalid"},
3344 Mappingstrings {"MIB.IETF|RFC1525-MIB.dot1dPortPairBridgeState"}
3345 ]
3346 uint16 BridgeState;
3347 };
3348
3349 // ===================================================================
3350 // SwitchPortSourceRouting
3351 // ===================================================================
3352 [Association, Description (
3353 "A switch capable of source routing maintains "
3354 "source-routing specific information about each port. "
3355 "This association represents that information.") ]
3356
3357 class CIM_SwitchPortSourceRouting : CIM_ServiceSAPDependency
3358 {
3359 [Override ("Antecedent"), Description ("The switch port.")]
3360 CIM_SwitchPort REF Antecedent;
3361 karl 1.1 [Override ("Dependent"), Min(0), Max(1),
3362 Description ("The source routing service.") ]
3363 CIM_SourceRoutingService REF Dependent;
3364 [Description (
3365 "The maximum number of routing descriptors allowed "
3366 "in an All Paths or Spanning Tree Explorer frames."),
3367 Mappingstrings {"MIB.IETF|RFC1525-MIB.dot1dSrPortHopCount"}
3368 ]
3369 uint16 HopCount;
3370 [Description (
3371 "The segment number that uniquely identifies the "
3372 "segment to which this port is connected. Current "
3373 "source routing protocols limit this value to the "
3374 "range: 0 through 4095. (The value 0 is used by "
3375 "some management applications for special test "
3376 "cases.) A value of 65535 signifies that no segment "
3377 "number is assigned to this port."),
3378 Mappingstrings {"MIB.IETF|RFC1525-MIB.dot1dSrPortLocalSegment"}
3379 ]
3380 uint16 LocalSegment;
3381 [Description (
3382 karl 1.1 "A bridge number uniquely identifies a bridge when "
3383 "more than one bridge is used to span the same two "
3384 "segments. Current source routing protocols limit "
3385 "this value to the range: 0 through 15. A value of "
3386 "65535 signifies that no bridge number is assigned "
3387 "to this bridge."),
3388 Mappingstrings {"MIB.IETF|RFC1525-MIB.dot1dSrPortBridgeNum"}
3389 ]
3390 uint16 BridgeNum;
3391 [Description (
3392 "The segment number that corresponds to the target "
3393 "segment this port is considered to be connected to "
3394 "by the switch. Current source routing protocols "
3395 "limit this value to the range: 0 through 4095. "
3396 "(The value 0 is used by some management "
3397 "applications for special test cases.) A value of "
3398 "65535 signifies that no target segment is assigned "
3399 "to this port."),
3400 Mappingstrings {"MIB.IETF|RFC1525-MIB.dot1dSrPortTargetSegment"}
3401 ]
3402 uint16 TargetSegment;
3403 karl 1.1 [Description (
3404 "Determines how the port behaves when presented "
3405 "with a Spanning Tree Explorer frame. The value "
3406 "'disabled(2)' indicates that the port will not "
3407 "accept or send Spanning Tree Explorer packets; any "
3408 "STE packets received will be silently discarded. "
3409 "The value 'forced(3)' indicates the port will "
3410 "always accept and propagate Spanning Tree Explorer "
3411 "frames. This allows a manually configured "
3412 "Spanning Tree for this class of packet to be "
3413 "configured. Note that unlike transparent "
3414 "bridging, this is not catastrophic to the network "
3415 "if there are loops. The value 'auto-span(1)' can "
3416 "only be returned by a bridge that both implements "
3417 "the Spanning Tree Protocol and has use of the "
3418 "protocol enabled on this port. The behavior of the "
3419 "port for Spanning Tree Explorer frames is "
3420 "determined by the value of the State property of "
3421 "the SwitchPortSpanningTree association for the port. "
3422 "If the port is in the 'forwarding' state, the frame "
3423 "will be accepted or propagated. Otherwise, it "
3424 karl 1.1 "will be silently discarded."),
3425 ValueMap {"1", "2", "3"},
3426 Values {"auto-span", "disabled", "forced"},
3427 Mappingstrings {"MIB.IETF|RFC1525-MIB.dot1dSrPortSTESpanMod"}
3428 ]
3429 uint16 STESpanMode;
3430 };
3431
3432 // ==================================================================
3433 // VLAN
3434 // ==================================================================
3435 [Description (
3436 "An instance of VLAN represents a VLAN within a switch. "
3437 "In a particular switch, there should be an instance of VLAN "
3438 "for every VLAN available in the switch. For example, in a "
3439 "switch with port-based VLANs, if there are 16 VLANs to which "
3440 "ports can be assigned (VLAN 1 through VLAN 16), there should "
3441 "be an instance of CIM_VLAN for each of VLAN 1 through "
3442 "VLAN 16."
3443 "\n\n"
3444 "VLAN inherits Name from ServiceAccessPoint. Use this for "
3445 karl 1.1 "the textual name of the VLAN, if there is one. Otherwise, "
3446 "synthesize a textual name, e.g., VLAN 0003. (Consider "
3447 "leading zero fill, as shown, to ensure that if the textual "
3448 "VLAN names are extracted and presented by a management "
3449 "applictions, the VLAN names will sort in the expected order. "
3450 "It's irritating to see a list sorted"
3451 "'VLAN 1, VLAN 10, VLAN 11, VLAN 2, VLAN 3...'"
3452 "when it could have been"
3453 "'VLAN 0001, VLAN 0002, ..., VLAN 0010, VLAN 0011, ....')"
3454 "The numeric part of the name should be at least four "
3455 "digits wide since 802.1Q specifies 4095 VLANs."
3456 "\n\n"
3457 "It is intended that VLAN be subclassed only if necessary "
3458 "to add attributes. The type of the VLAN can be inferred from "
3459 "the VLANService(s) with which the VLAN is associated "
3460 "in the VLANFor association."
3461 "\n\n"
3462 "An instance of VLAN may be associated with more than one "
3463 "VLANService. For example, there are switches that "
3464 "support both 802.1Q VLANs and the vendor's proprietary "
3465 "VLANs. In some such switches if a broadcast packet received "
3466 karl 1.1 "on a port in 802.1Q VLAN 5 will be transmitted from a port "
3467 "in proprietary VLAN 5. In effect, there is only one VLAN 5, "
3468 "and the type of port only determines the packet format for "
3469 "tagged packets. In the case just described, only one "
3470 "instance of CIM_VLAN should be instantiated for VLAN 5, and "
3471 "it should be associated both with the 802.1Q VLANService "
3472 "and the proprietary VLANService. "
3473 "\n\n"
3474 "In typical VLAN-aware switches, packets can be assigned to "
3475 "a VLAN based on the port on which they are received "
3476 "(port-based VLANS), based on the source MAC address "
3477 "(MAC-based VLANs), or based on the value of a set of bits in "
3478 "the packet (protocol-based VLANs). If it is desirable to "
3479 "represent the VLAN assignment predicate for some MAC-based "
3480 "VLAN switch, it will be necessary to subclass VLAN. The list "
3481 "of MAC addresses associated with a VLAN would be an "
3482 "attribute of the subclass. If it is desirable to represent"
3483 "the VLAN assignment predicate in a protocol-based VLAN "
3484 "switch, it will be necessary to subclass VLAN, "
3485 "InboundVLAN, or both. If the predicate applies to all ports "
3486 "in the switch, then only VLAN need be subclassed. If the "
3487 karl 1.1 "predicate may vary based on the port, then InboundVLAN must "
3488 "be subclassed, and CIM_VLAN might have to be subclassed "
3489 "as well.") ]
3490
3491 class CIM_VLAN : CIM_ServiceAccessPoint
3492 {
3493 [Description ("VLAN identifying number.") ]
3494 uint32 VLANNumber;
3495 };
3496
3497
3498 // ==================================================================
3499 // RelatedTransparentBridgingService
3500 // ==================================================================
3501 [Association, Description (
3502 "The association between a VLAN and the forwarding database"
3503 "(some use the term filtering database) used to determine"
3504 "which port a packet should be transmitted on, given that it"
3505 "is assigned to the VLAN and that it has a particular"
3506 "destination MAC address. The TransparentBridgingService"
3507 "represents a forwarding database.") ]
3508 karl 1.1
3509 class CIM_RelatedTransparentBridgingService : CIM_ServiceSAPDependency
3510 {
3511 [Override ("Antecedent"), Min(0)]
3512 CIM_VLAN REF Antecedent;
3513 [Override ("Dependent"), Min(1), Max(1)]
3514 CIM_TransparentBridgingService REF Dependent;
3515 };
3516
3517
3518 // ==================================================================
3519 // CIM_RelatedSpanningTree
3520 // ==================================================================
3521 [Association, Description (
3522 "This association identifies the spanning tree in which"
3523 "a forwarding database (TransparentBridgingService) is"
3524 "nested.") ]
3525
3526 class CIM_RelatedSpanningTree : CIM_ServiceServiceDependency
3527 {
3528 [Override ("Antecedent"), Min(0)]
3529 karl 1.1 CIM_TransparentBridgingService REF Antecedent;
3530 [Override ("Dependent"), Min(0), Max(1)]
3531 CIM_SpanningTreeService REF Dependent;
3532 };
3533
3534
3535 // ==================================================================
3536 // InboundVLAN
3537 // ==================================================================
3538 [Association, Description (
3539 "This association makes explicit the operational "
3540 "dependencies of a SwitchPort when operating in a VLAN."
3541 "\n\n"
3542 "If there is an association between a particular "
3543 "SwitchPort and a particular VLAN, then there is the "
3544 "possibility that a packet received by the port will be "
3545 "assigned to the VLAN (or if the packet already has a VLAN "
3546 "tag, that the packet will not be dropped). If there is no "
3547 "such association, then there is no possibility that a "
3548 "packet received by the port will progress through the "
3549 "switch having been assigned to the VLAN in question.") ]
3550 karl 1.1
3551 class CIM_InboundVLAN : CIM_SAPSAPDependency
3552 {
3553 [Override ("Antecedent"), Min(0)]
3554 CIM_VLAN REF Antecedent;
3555 [Override ("Dependent"), Min(0)]
3556 CIM_SwitchPort REF Dependent;
3557 [Description (
3558 "If true, packets already tagged with this VLAN number will be"
3559 "accepted when arriving at this port. For example, if there is"
3560 "an InboundVLAN association between port 12 and VLAN 7 for"
3561 "which Tagged is true, then if a packet tagged with VLAN 7"
3562 "arrives at port 12, the packet will be accepted into the"
3563 "switch for further processing. If there is no such "
3564 "association, then the packet will be dropped."
3565 "\n\n"
3566 "If false, it means that any untagged packets arriving at this"
3567 "port MIGHT be classified into the associated VLAN. If, for a"
3568 "particular SwitchPort, there is only one instance of the"
3569 "association for which Tagged is false, then all incoming"
3570 "untagged packets will be classified into that VLAN. This is"
3571 karl 1.1 "the typical configuration of a non-trunk port in a switch"
3572 "implementing port-based VLANs. If there is more than one such"
3573 "association instance, then the packet MIGHT be classified"
3574 "into any one of them, based on some criterion other than the"
3575 "identity of the switch port. For example, in a MAC-based "
3576 "VLAN switch, the decision would be based on the source MAC "
3577 "address. In a protocol-based VLAN switch, the decision would "
3578 "be based on the values of some set of bits in the packet. "
3579 "\n\n"
3580 "Note that the MAC address is formatted as twelve "
3581 "hexadecimal digits (e.g., \"010203040506\"), with each "
3582 "pair representing one of the six octets of the MAC address "
3583 "in \"canonical\" bit order according to RFC 2469.") ]
3584 boolean Tagged;
3585 [Description (
3586 "Default should be true if untagged packets received by the "
3587 "SwitchPort are assigned to the VLAN by default. For "
3588 "802.1Q-compliant ports, the Default property should be "
3589 "true on the association instance connecting a SwitchPort to "
3590 "the CIM_VLAN corresponding to the port's PVID. Default "
3591 "should never be true if Tagged is true -- it applies only "
3592 karl 1.1 "to untagged packets.") ]
3593 boolean Default;
3594 };
3595
3596 // ==================================================================
3597 // OutboundVLAN
3598 // ==================================================================
3599 [Association, Description (
3600 "This association makes explicit the operational "
3601 "dependencies of a SwitchPort when operating in a VLAN. "
3602 "\n\n"
3603 "If there is no instance of OutboundVLAN between a given "
3604 "SwitchPort and CIM_VLAN, then any packet that has been "
3605 "assigned to the VLAN and whose destination address is "
3606 "associated with the port will be dropped by the switch "
3607 "without being transmitted. Otherwise, the packet will be "
3608 "transmitted.") ]
3609
3610 class CIM_OutboundVLAN : CIM_SAPSAPDependency
3611 {
3612 [Override ("Antecedent"), Min(0)]
3613 karl 1.1 CIM_VLAN REF Antecedent;
3614 [Override ("Dependent"), Min(0)]
3615 CIM_SwitchPort REF Dependent;
3616 [Description (
3617 "If Tagged is true, then the packet will be transmitted in"
3618 "encapsulated form, tagged with the associated VLAN tag. If"
3619 "Tagged is false, the packet will be trasmitted without any"
3620 "VLAN tag.") ]
3621 boolean Tagged;
3622 };
3623
3624 // ==================================================================
3625 // VLANService
3626 // ==================================================================
3627 [Abstract, Description (
3628 "VLANService represents the VLAN aspects of the function"
3629 "performed by a switch. Some VLAN-aware devices participate"
3630 "in protocols where VLAN information is propagated among"
3631 "switches, e.g., GVRP in 802.1Q switches and VTP in Cisco"
3632 "Catalyst switches. VLANService also represents the function"
3633 "performed by the switch as a participant in such a protocol."
3634 karl 1.1 "\n\n"
3635 "VLANService must be subclassed so that instances can be"
3636 "distinguished by their class. If there is a name assigned to"
3637 "a set of VLAN-aware switches, e.g., the VTP domain name in"
3638 "Cisco Catalyst switches, use the Name attribute inherited"
3639 "from CIM_Service to store the name."
3640 "\n\n"
3641 "A VLANService should be instantiated in a VLAN-aware switch"
3642 "even if there is no GVRP-like protocol.") ]
3643
3644 class CIM_VLANService : CIM_Service
3645 {
3646 };
3647
3648 // ==================================================================
3649 // 802dot1QVLANService
3650 // ==================================================================
3651 [Description (
3652 "If a switch supports 802.1Q, an instance of this class should"
3653 "be instantiated in the switch. If the switch supports GVRP,"
3654 "this class represents the function that the switch performs"
3655 karl 1.1 "with respect to GVRP.") ]
3656
3657 class CIM_802dot1QVLANService : CIM_VLANService
3658 {
3659 };
3660
3661 // ==================================================================
3662 // SwitchServiceVLAN
3663 // ==================================================================
3664 [Association, Aggregation, Description (
3665 "An association linking SwitchService to a component "
3666 "VLANService.") ]
3667
3668 class CIM_SwitchServiceVLAN : CIM_ServiceComponent
3669 {
3670 [Override ("GroupComponent"), Min(1), Max(1), Aggregate]
3671 CIM_SwitchService REF GroupComponent;
3672 [Override ("PartComponent")]
3673 CIM_VLANService REF PartComponent;
3674 };
3675
3676 karl 1.1 // ==================================================================
3677 // VLANFor
3678 // ==================================================================
3679 [Association, Description(
3680 "The VLAN Port used by the VLAN Service.") ]
3681
3682 class CIM_VLANFor : CIM_ServiceSAPDependency
3683 {
3684 [Override ("Antecedent"), Min(0)]
3685 CIM_VLAN REF Antecedent;
3686 [Override ("Dependent"), Min(1)]
3687 CIM_VLANService REF Dependent;
3688 };
3689
3690 // ===================================================================
3691 // TransparentBridgingStatistics
3692 // ===================================================================
3693 [Description(
3694 "Statistical information regarding the Transparent Bridging "
3695 "Service.") ]
3696
3697 karl 1.1 class CIM_TransparentBridgingStatistics :
3698 CIM_ServiceStatisticalInformation
3699 {
3700 [Description (
3701 "The total number of Forwarding Database entries, "
3702 "which have been or would have been learnt, but "
3703 "have been discarded due to a lack of space to "
3704 "store them in the Forwarding Database. "),
3705 Mappingstrings {
3706 "MIB.IETF|RFC1493- MIB.dot1dTpLearnedEntryDiscards"}
3707 ]
3708 uint32 LearnedEntryDiscards;
3709 };
3710
3711 // ===================================================================
3712 // SpanningTreeStatistics
3713 // ===================================================================
3714 [Description(
3715 "Statistical information regarding the Spanning Tree "
3716 "Service.") ]
3717
3718 karl 1.1 class CIM_SpanningTreeStatistics : CIM_ServiceStatisticalInformation
3719 {
3720 [Description(
3721 "The time since the last topology change was "
3722 "detected by the switch."),
3723 Units ("Hundredths of Seconds"),
3724 Mappingstrings {
3725 "MIB.IETF|RFC1493- MIB.dot1dStpTimeSinceTopologyChange"} ]
3726 uint32 TimeSinceTopologyChange;
3727 [Description (
3728 "The total number of topology changes detected by "
3729 "the switch since the counter was last reset or "
3730 "initialized."),
3731 Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dStpTopChanges"}
3732 ]
3733 uint32 TopChanges;
3734 };
3735
3736 // ===================================================================
3737 // SwitchPortStatistics
3738 // ===================================================================
3739 karl 1.1 [Description (
3740 "Statistical information regarding a generic switch port, "
3741 "independent of the specific kind of switching done on "
3742 "frames arriving at the port.") ]
3743
3744 class CIM_SwitchPortStatistics : CIM_SAPStatisticalInformation
3745 {
3746 [Description (
3747 "The number of frames discarded by this port due "
3748 "to excessive transit delay through the bridge."),
3749 Mappingstrings {
3750 "MIB.IETF|RFC1493- MIB.dot1dBasePortDelayExceededDiscards"}
3751 ]
3752 uint32 DelayExceededDiscards;
3753 [Description (
3754 "The number of frames discarded by this port due "
3755 "to an excessive size."),
3756 Mappingstrings {
3757 "MIB.IETF|RFC1493- MIB.dot1dBasePortMtuExceededDiscards"}
3758 ]
3759 uint32 MtuExceededDiscards;
3760 karl 1.1 };
3761
3762 // ===================================================================
3763 // SwitchPortTransparentBridgingStatistics
3764 // ===================================================================
3765 [Description (
3766 "Statistical information regarding a switch port, "
3767 "at which transparent bridging is performed.") ]
3768
3769 class CIM_SwitchPortTransparentBridgingStatistics :
3770 CIM_SAPStatisticalInformation
3771 {
3772 [Description (
3773 "The number of frames that have been received by "
3774 "the port from its segment. Note that a frame "
3775 "is only counted if and only if it is for a "
3776 "protocol being processed by the local bridging "
3777 "function, including bridge management frames."),
3778 Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dTpPortInFrames"}
3779 ]
3780 uint32 InFrames;
3781 karl 1.1 [Description (
3782 "The number of frames that have been transmitted by "
3783 "the port to its segment. Note that a frame "
3784 "is only counted if and only if it is for a "
3785 "protocol being processed by the local bridging "
3786 "function, including bridge management frames."),
3787 Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dTpPortOutFrames"}
3788 ]
3789 uint32 OutFrames;
3790 [Description (
3791 "Count of valid frames received which were "
3792 "discarded (i.e., filtered) by the Forwarding Process."),
3793 Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dTpPortInDiscards"}
3794 ]
3795 uint32 InDiscards;
3796 };
3797
3798 // ===================================================================
3799 // SwitchPortSpanningTreeStatistics
3800 // ===================================================================
3801 [Description (
3802 karl 1.1 "Statistical information regarding a switch port "
3803 "participating in the spanning tree.") ]
3804
3805 class CIM_SwitchPortSpanningTreeStatistics :
3806 CIM_SAPStatisticalInformation
3807 {
3808 [Description (
3809 "The number of times the port has transitioned "
3810 "from the Learning state to the Forwarding state."),
3811 Mappingstrings {
3812 "MIB.IETF|RFC1493- MIB.dot1dStpPortForwardTransitions"}
3813 ]
3814 uint32 ForwardTransitions;
3815 };
3816
3817 // ===================================================================
3818 // SwitchPortSourceRoutingStatistics
3819 // ===================================================================
3820 [Description (
3821 "Statistical information regarding a switch port "
3822 "supporting source routing.") ]
3823 karl 1.1
3824 class CIM_SwitchPortSourceRoutingStatistics :
3825 CIM_SAPStatisticalInformation
3826 {
3827 [Counter, Description (
3828 "The number of Specifically Routed frames, also "
3829 "referred to as Source Routed Frames, that have "
3830 "been received from the segment attached to the port."),
3831 Mappingstrings {"MIB.IETF|RFC1525-MIB.dot1dSrPortSpecInFrames"}
3832 ]
3833 uint32 SpecInFrames;
3834 [Counter, Description (
3835 "The number of Specifically Routed frames, also "
3836 "referred to as Source Routed Frames, that the "
3837 "port has transmitted on its segment."),
3838 Mappingstrings {"MIB.IETF|RFC1525-MIB.dot1dSrPortSpecOutFrames"}
3839 ]
3840 uint32 SpecOutFrames;
3841 [Counter, Description (
3842 "The number of All Paths Explorer frames, also "
3843 "referred to as All Routes Explorer frames, that "
3844 karl 1.1 "have been received by the port from its segment."),
3845 Mappingstrings {"MIB.IETF|RFC1525-MIB.dot1dSrPortApeInFrames"}
3846 ]
3847 uint32 ApeInFrames;
3848 [Counter, Description (
3849 "The number of all Paths Explorer Frames, also "
3850 "referred to as All Routes Explorer frames, that "
3851 "have been transmitted by the port on its segment."),
3852 Mappingstrings {"MIB.IETF|RFC1525-MIB.dot1dSrPortApeOutFrames"}
3853 ]
3854 uint32 ApeOutFrames;
3855 [Counter, Description (
3856 "The number of spanning tree explorer frames that "
3857 "have been received by the port from its segment."),
3858 Mappingstrings {"MIB.IETF|RFC1525-MIB.dot1dSrPortSteInFrames"}
3859 ]
3860 uint32 SteInFrames;
3861 [Counter, Description (
3862 "The number of spanning tree explorer frames that "
3863 "have been transmitted by the port on its segment."),
3864 Mappingstrings {"MIB.IETF|RFC1525-MIB.dot1dSrPortSteOutFrames"}
3865 karl 1.1 ]
3866 uint32 SteOutFrames;
3867 [Counter, Description (
3868 "The number of explorer frames that have been "
3869 "discarded by the port because the routing "
3870 "descriptor field contained an invalid adjacent "
3871 "segment value."),
3872 Mappingstrings {
3873 "MIB.IETF|RFC1525- MIB.dot1dSrPortSegmentMismatchDiscards"}
3874 ]
3875 uint32 SegmentMismatchDiscards;
3876 [Counter, Description (
3877 "The number of frames that have been discarded by "
3878 "the port because the routing descriptor field "
3879 "contained a duplicate segment identifier."),
3880 Mappingstrings {
3881 "MIB.IETF|RFC1525- MIB.dot1dSrPortDuplicateSegmentDiscards"}
3882 ]
3883 uint32 DuplicateSegmentDiscards;
3884 [Counter, Description (
3885 "The number of explorer frames that have been "
3886 karl 1.1 "discarded by the port because the Routing "
3887 "Information Field has exceeded the maximum route "
3888 "descriptor length."),
3889 Mappingstrings {
3890 "MIB.IETF|RFC1525- MIB.dot1dSrPortHopCountExceedsDiscards"}
3891 ]
3892 uint32 HopCountExceedsDiscards;
3893 [Counter, Description (
3894 "The number of duplicate LAN IDs or Tree errors. "
3895 "This helps in detection of problems in networks "
3896 "containing older IBM Source Routing Bridges."),
3897 Mappingstrings {
3898 "MIB.IETF|RFC1525- MIB.dot1dSrPortDupLanIdOrTreeErrors"}
3899 ]
3900 uint32 DupLanIdOrTreeErrors;
3901 [Counter, Description (
3902 "The number of ARE and STE frames that were "
3903 "discarded because the last LAN ID in the routing "
3904 "information field did not equal the LAN-in ID. "
3905 "This error can occur in implementations which do "
3906 "only a LAN-in ID and Bridge Number check instead "
3907 karl 1.1 "of a LAN-in ID, Bridge Number, and LAN-out ID "
3908 "check before they forward broadcast frames."),
3909 Mappingstrings {
3910 "MIB.IETF|RFC1525- MIB.dot1dSrPortLanIdMismatches"}
3911 ]
3912 uint32 LanIdMismatches;
3913 };
3914
3915 // ==================================================================
3916 // BGPStatistics
3917 // ==================================================================
3918 [Description (
3919 "This class contains statistical information for a "
3920 "Group sessions.") ]
3921
3922 class CIM_BGPStatistics : CIM_ServiceStatisticalInformation
3923 {
3924 [Counter, Description (
3925 "This is the number of BGP UPDATE messages received on this"
3926 "router's BGP connection. This is a 32-bit counter."),
3927 Mappingstrings {"MIB.IETF|RFC1657-MIB.bgpPeerInUpdates"} ]
3928 karl 1.1 uint32 InUpdates;
3929 [Counter, Description (
3930 "This is the number of BGP UPDATE messages transmitted on "
3931 "this router's BGP connection. This is a 32-bit counter."),
3932 Mappingstrings {"MIB.IETF|RFC1657-MIB.bgpPeerOutUpdates"} ]
3933 uint32 OutUpdates;
3934 [Counter, Description (
3935 "This is the total number of BGP messages received on this"
3936 "router's BGP connection. This is a 32-bit counter."),
3937 Mappingstrings {
3938 "MIB.IETF|RFC1657-MIB.bgpPeerInTotalMessages"} ]
3939 uint32 InTotalMessages;
3940 [Counter, Description (
3941 "This is the total number of BGP messages transmitted on "
3942 "this router's BGP connection. This is a 32-bit counter."),
3943 Mappingstrings {
3944 "MIB.IETF|RFC1657-MIB.bgpPeerOutTotalMessages"} ]
3945 uint32 OutTotalMessages;
3946 [Description (
3947 "This contains the last error code and error subcode for "
3948 "this router's BGP connection. If no error has occurred, "
3949 karl 1.1 "then each integer in the array is zero."),
3950 Mappingstrings {"MIB.IETF|RFC1657-MIB.bgpPeerLastError"} ]
3951 uint8 LastError [2];
3952 [Counter, Description (
3953 "This contains the total number of times that the BGP Finite "
3954 "State Machine has transitioned into the established state "
3955 "for this router's BGP connection. This is a 32-bit "
3956 "counter."),
3957 Mappingstrings
3958 {"MIB.IETF|RFC1657-MIB.bgpPeerFsmEstablishedTransitions"} ]
3959 uint32 FsmEstablishedTransitions;
3960 [Gauge, Description (
3961 "This indicates how long, in seconds, this peer has been in "
3962 "the established state, or how long since this peer was last "
3963 "in the established state. It is set to zero when a new peer "
3964 "is configured or when the router is booted. This has the "
3965 "semantics of a 32-bit gauge."),
3966 Units ("Seconds"),
3967 Mappingstrings {
3968 "MIB.IETF|RFC1657-MIB.bgpPeerFsmEstablishedTime"} ]
3969 uint32 FsmEstablishedTime;
3970 karl 1.1 [Gauge, Description (
3971 "This defines the time in seconds since the last BGP UPDATE "
3972 "message was received from the peer. This has the semantics "
3973 "of a 32-bit gauge."),
3974 Units ("Seconds"),
3975 Mappingstrings
3976 {"MIB.IETF|RFC1657-MIB.bgpPeerInUpdateElapsedTime"} ]
3977 uint32 InUpdateElapsedTime;
3978 };
3979
3980 // ==================================================================
3981 // BGPServiceStatistics
3982 // ==================================================================
3983 [Association, Description (
3984 "This association defines statistics collected for a BGP "
3985 "session.") ]
3986
3987 class CIM_BGPServiceStatistics : CIM_ServiceStatistics
3988 {
3989 [Max(1), Override("Stats"), Weak, Description (
3990 "The statistics object for the BGP session.") ]
3991 karl 1.1 CIM_BGPStatistics REF Stats;
3992 [Min(1), Max(1), Override("Element"), Description (
3993 "The BGPService for which statistics are being gathered.") ]
3994 CIM_BGPService REF Element;
3995 };
3996
3997
3998 // ===================================================================
3999 // CIM_EndpointIdentity (CR308a) - this class stays here!
4000 // ===================================================================
4001 [Association, Description (
4002 "CIM_EndpointIdentity indicates that two ProtocolEndpoints "
4003 "represent different aspects of the same underlying address "
4004 "or protocol-specific ID. This association refines the "
4005 "CIM_LogicalIdentity superclass by restricting it to the "
4006 "Endpoint level and defining its use in well understood "
4007 "scenarios. One of these scenarios is to represent that an "
4008 "Endpoint has both 'LAN' and protocol-specific aspects. "
4009 "For example, an Endpoint could be both a LANEndpoint as "
4010 "well as a DHCPEndpoint.") ]
4011
4012 karl 1.1 class CIM_EndpointIdentity: CIM_LogicalIdentity
4013 {
4014 [Override ("SystemElement"), Description (
4015 "SystemElement represents one aspect of the "
4016 "Endpoint.") ]
4017 CIM_ProtocolEndpoint ref SystemElement;
4018 [Override ("SameElement"), Description (
4019 "SameElement represents an alternate aspect of "
4020 "the Endpoint.") ]
4021 CIM_ProtocolEndpoint ref SameElement;
4022 };
4023
4024 // ===================================================================
4025 // Start of the QoS sub-model
4026 // ===================================================================
4027
4028 // ===================================================================
4029 // CIM_QoSService
4030 // ===================================================================
4031
4032 [Description (
4033 karl 1.1 "This is a concrete class that represents the ability to "
4034 "conceptualize a QoS service as a set of coordinated "
4035 "sub-services. This enables the network administrator to map "
4036 "business rules to the network, and the network designer to "
4037 "engineer the network such that it can provide different "
4038 "functions for different traffic streams. "
4039 "\n\n"
4040 "This class has two main purposes. First, it serves as a "
4041 "common base class for defining various sub-services that "
4042 "are needed to build higher-level QoS services. Second, it "
4043 "serves as a way to consolidate relationships between "
4044 "different types of QoS services and different types of "
4045 "ConditioningServices."
4046 "\n\n"
4047 "For example, Gold Service may be defined as a set of "
4048 "sub-services, where each of these sub-services perform one "
4049 "or more different functions required by the higher-level "
4050 "service. Continuing the example, Gold Service may be used "
4051 "to specify EF for one traffic stream along with different "
4052 "AF services for other different traffic streams. Each of "
4053 "these services are instances of the class QoSService, and "
4054 karl 1.1 "each require a set of sub-services to be defined as part of "
4055 "their implementation. For example, one would expect to see "
4056 "different marking, dropping, and queuing sub-services to be "
4057 "defined for each of these services.") ]
4058
4059 class CIM_QoSService: CIM_NetworkService
4060 {
4061 };
4062
4063 // ==================================================================
4064 // QoSSubService
4065 // ==================================================================
4066 [Association, Aggregation, Description (
4067 " The associations - QoSSubService and QoSConditioningSub"
4068 "Service - operate in conjunction. High level QoS "
4069 "definitions, such as 'John gets Gold Service', map to "
4070 "lower level, more concrete QoSServices (the subclasses "
4071 "of QoSService). This is described by the QoSSubService "
4072 "association. In turn, each of the SubServices may require "
4073 "their own conditioning. This is modeled using the "
4074 "QoSConditioningSubService aggregation. \n"
4075 karl 1.1 " Note that a more concrete QoSService may only be "
4076 "aggregated into one higher level Service, using this "
4077 "association. The cardinality on the GroupComponent "
4078 "reference is Max (1).") ]
4079
4080 class CIM_QoSSubService : CIM_ServiceComponent
4081 {
4082 [Aggregate, Override ("GroupComponent"), Max (1),
4083 Description (
4084 "The higher level QoSService that is constructed by"
4085 "aggregating one or more lower-level QoSServices.") ]
4086 CIM_QoSService REF GroupComponent;
4087 [Override ("PartComponent"), Description (
4088 "The more concrete QoSService that is used to provide "
4089 "the higher level Service.") ]
4090 CIM_QoSService REF PartComponent;
4091 };
4092
4093 // ===================================================================
4094 // CIM_PrecedenceService
4095 // ===================================================================
4096 karl 1.1 [Description (
4097 "This class represents a specialization of the general "
4098 "concept of forwarding network traffic by adding specific "
4099 "semantics that define how traffic is forwarded based on "
4100 "the value of the ToS byte of a packet. "
4101 "\n\n"
4102 "This class is used to enable DiffServ devices and non-"
4103 "DiffServ devices to exchange traffic. This is done by "
4104 "defining a sibling class, DiffServService, to represent "
4105 "devices that forward traffic based on the DiffServ code "
4106 "point. This enables the administrator to define mappings "
4107 "between devices that do not support DiffServ, and instead "
4108 "use IP Precedence, to devices that do support DiffServ, "
4109 "which use DSCPs. "
4110 "\n\n"
4111 "Since the PrecedenceService class is a specialization of "
4112 "QoSService, it can be related to higher-level QoS services "
4113 "as well as to lower-level sub-services (e.g., "
4114 "classification, metering, dropping, queuing, and others).") ]
4115
4116 class CIM_PrecedenceService: CIM_NetworkService
4117 karl 1.1 {
4118 [Description (
4119 "This property is an 8-bit unsigned integer that defines the "
4120 "notion of precedence for different types of traffic.") ]
4121 uint8 PrecedenceValue;
4122 };
4123
4124 // ===================================================================
4125 // CIM_DiffServService
4126 // ===================================================================
4127 [Description (
4128 "DiffServService represents using standard or custom "
4129 "DiffServ services to implement a (higher-level) QoS service. "
4130 "Note that the DiffServService may be just one of a set of "
4131 "coordinated QoSSubServices that together implement a "
4132 "higher-level QoS service."
4133 "\n\n"
4134 "DiffServService is modeled as a specialization of QoS"
4135 "Service. This enables it to be related to a higher-level "
4136 "QoSService (via QoSSubService) as well as to specific "
4137 "ConditioningServices (e.g., classification, metering, "
4138 karl 1.1 "dropping, queuing, and others).") ]
4139
4140 class CIM_DiffServService: CIM_QoSService
4141 {
4142 [Description (
4143 "This property is an unsigned 8-bit integer, and defines the "
4144 "Differentiated Services Code Point (DSCP) that this link "
4145 "uses to represent various types of differentiated "
4146 "services through device-specific configuration commands.") ]
4147 uint8 DSCP;
4148 };
4149
4150 // ===================================================================
4151 // CIM_8021PService
4152 // ===================================================================
4153
4154 [Description (
4155 "This class represents a specialization to the general "
4156 "concept of forwarding network traffic by adding specific "
4157 "semantics that define how traffic is forwarded based on "
4158 "the value of the Priority field in the 802.1P header. "
4159 karl 1.1 "\n\n"
4160 "This class is used to enable DiffServ domains and domains "
4161 "that support 802.1P only to exchange traffic. It represents "
4162 "the mapping between implementations that only support "
4163 "802.1P priority marking to be mapped to implementations "
4164 "that support DiffServ, which use DSCPs. "
4165 "\n\n"
4166 "The 8021PService class is modeled as a specialization of "
4167 "QoSService. This enables it to be related to a higher-level "
4168 "QoS service as well as to lower-level sub-services (e.g., "
4169 "classification, metering, dropping, queuing, and others).") ]
4170
4171 class CIM_8021PService: CIM_QoSService
4172 {
4173 [Description (
4174 "This property is an 8-bit unsigned integer that defines the "
4175 "notion of priority as specified in 802.1P "
4176 "implementations.") ]
4177 uint8 PriorityValue;
4178 };
4179
4180 karl 1.1 // ===================================================================
4181 // CIM_AFService
4182 // ===================================================================
4183
4184 [Description (
4185 "This class represents a specialization to the general "
4186 "concept of forwarding network traffic by adding specific "
4187 "semantics that characterize the operation of the Assured "
4188 "Forwarding (AF) Service (RFC2597). This RFC defines four "
4189 "different AF classes to represent four different treatments "
4190 "of traffic (e.g., a different amount of forwarding "
4191 "resources, such as buffer space and bandwidth, are "
4192 "allocated. Within each AF class, IP packets are marked with "
4193 "one of three possible drop precedence values. The drop "
4194 "precedence of a packet determines the relative "
4195 "importance of that packet compared to other packets within "
4196 "the same AF class if congestion occurs. A congested "
4197 "interface will try to avoid dropping packets with a lower "
4198 "drop precedence value by instead discarding packets with a "
4199 "higher drop precedence value."
4200 "\n\n"
4201 karl 1.1 "Note that this RFC defines 12 DSCPs that together implement "
4202 "the AF Per-Hop Behavior (PHB) group. Implementations are "
4203 "free to extend this (e.g., add more classes and/or drop "
4204 "precedences) and indeed do not have to implement the AF PHB "
4205 "to be considered compliant to DiffServ. However, "
4206 "implementations should use this set of DSCPs if they "
4207 "implement the AF PHB. "
4208 "\n\n"
4209 "The AFService class is modeled as a specialization of "
4210 "DiffServService, which is in turn a specialization of "
4211 "QoSService. This enables it to be related to a higher-level "
4212 "QoS services as well as to lower-level sub-services (e.g., "
4213 "classification, metering, dropping, queuing, and others).") ]
4214
4215 class CIM_AFService: CIM_DiffServService
4216 {
4217 [Description (
4218 "This property is an 8-bit unsigned integer that defines the "
4219 "number of classes that this AF implementation uses. "
4220 "Implementations should define at least four classes.") ]
4221 uint8 ClassNumber;
4222 karl 1.1 [Description (
4223 "This property is an 8-bit unsigned integer that defines the "
4224 "number of drop precedence values that this AF "
4225 "implementation uses. The number of drop precedence values "
4226 "are PER AF CLASS. Implementations should define at least "
4227 "three drop precedence values per class.") ]
4228 uint8 DropperNumber;
4229 };
4230
4231 // ===================================================================
4232 // CIM_EFService
4233 // ===================================================================
4234
4235 [Description (
4236 "This class represents a specialization to the general "
4237 "concept of forwarding network traffic by adding specific "
4238 "semantics that characterize the operation of the "
4239 "Expedited Forwarding (EF) Service (defined in RFC 2598). "
4240 "\n\n"
4241 "The EFService class is modeled as a specialization of "
4242 "DiffServService, which is in turn a specialization of "
4243 karl 1.1 "QoSService. This enables it to be related to a higher-level "
4244 "QoS service as well as to lower-level sub-services (e.g., "
4245 "classification, metering, dropping, queuing, and others). "
4246 "\n\n"
4247 "The EF PHB can be used to build a low loss, low latency, "
4248 "low jitter, assured bandwidth, end-to-end service through "
4249 "DiffServ domains. Such a service appears to the endpoints "
4250 "like a point-to-point connection or a virtual leased line. "
4251 "This service has also been described as Premium service in "
4252 "the IETF literature. "
4253 "\n\n"
4254 "The EF PHB is not a mandatory part of the DiffServ "
4255 "architecture (e.g., a node does not have to implement the "
4256 "EF PHB to be considered DiffServ-compliant. However, when "
4257 "a DiffServ-compliant node claims to implement the EF PHB, "
4258 "the implementation must conform to the specification given "
4259 "in RFC2598."
4260 "\n\n"
4261 "RFC 2598 defines one DSCP for the EF service. Thus, there "
4262 "is no need to define any attributes in this class, since an "
4263 "instance of the EFService class, by definition, means that "
4264 karl 1.1 "this particular DSCP is used.") ]
4265
4266 class CIM_EFService: CIM_DiffServService
4267 {
4268 };
4269
4270 // ==================================================================
4271 // AFRelatedServices
4272 // ==================================================================
4273 [Association, Description (
4274 "The IETF's RFC2597 describes a Differentiated Services "
4275 "Per-Hop-Behavior (PHB) Group called Assured Forwarding "
4276 "(AF). Quoting from the RFC, \"The AF PHB group provides "
4277 "delivery of IP packets in four independently forwarded "
4278 "AF classes. Within each AF class, an IP packet can be "
4279 "assigned one of three different levels of drop "
4280 "precedence.\" The AFRelatedServices association describes "
4281 "the precedence of the individual AF drop-related "
4282 "Services within an AF IP packet-forwarding class.") ]
4283
4284 class CIM_AFRelatedServices
4285 karl 1.1 {
4286 [Key, Max (1), Description (
4287 "The AFService with a lower drop precedence (ie, lower "
4288 "probability of dropping packets).") ]
4289 CIM_AFService REF AFLowerDropPrecedence;
4290 [Key, Description (
4291 "An AFService at the same IP packet-forwarding class level, "
4292 "but at a higher drop precedence.") ]
4293 CIM_AFService REF AFHigherDropPrecedence;
4294 };
4295
4296 // ===================================================================
4297 // CIM_ConditioningService
4298 // ===================================================================
4299 [Description (
4300 "This class is a specialization of ForwardingService, and "
4301 "represents the ability to define how traffic will be "
4302 "conditioned in the data forwarding path of a device. The "
4303 "subclasses of ConditioningService define the particular "
4304 "type of conditioning that is done. Five fundamental types "
4305 "of functions are defined in this version (2.4) of the "
4306 karl 1.1 "model. They are the services performed by a classifier, "
4307 "meter, marker, dropper, and queue. Note that other, more "
4308 "sophisticated, types of actions may be defined in the "
4309 "future.") ]
4310
4311 class CIM_ConditioningService: CIM_ForwardingService
4312 {
4313 [Description (
4314 "This property is a boolean that, if TRUE, signifies that "
4315 "one or more conditioning functions can be performed on "
4316 "traffic encountered by this ConditioningService. This "
4317 "allows one or more ConditioningServices to be enabled or "
4318 "disabled to provide different types of conditioning for "
4319 "traffic.") ]
4320 boolean Enabled;
4321 };
4322
4323 // ==================================================================
4324 // QoSConditioningSubService
4325 // ==================================================================
4326 [Association, Aggregation, Description (
4327 karl 1.1 "A QoSService utilizes underlying ConditioningServices as "
4328 "part of its overall functionality. This is modeled using "
4329 "the QoSConditioningSubService association. Note that "
4330 "a ConditioningService may only be part of a single "
4331 "QoSService - the cardinality on the QoSService "
4332 "reference is Max (1).") ]
4333
4334 class CIM_QoSConditioningSubService : CIM_ServiceComponent
4335 {
4336 [Aggregate, Override ("GroupComponent"), Max (1),
4337 Description (
4338 "The QoSService that includes the ConditioningService.") ]
4339 CIM_QoSService REF GroupComponent;
4340 [Override ("PartComponent"),
4341 Description ("The ConditioningService.") ]
4342 CIM_ConditioningService REF PartComponent;
4343 };
4344
4345 // ==================================================================
4346 // ConditioningServiceOnEndpoint
4347 // ==================================================================
4348 karl 1.1 [Association, Description (
4349 "The QoS Model describes the traffic conditioning functions "
4350 "in place for a network device. In order to 'be "
4351 "conditioned', a packet is received at a ProtocolEndpoint. "
4352 "After 'conditioning', a packet is dropped or leaves the "
4353 "device via a ProtocolEndpoint. This dependency on "
4354 "ProtocolEndpoints is defined by the ConditioningServiceOn"
4355 "Endpoint association. A property of the association, "
4356 "ServiceType, indicates whether the ConditioningService "
4357 "handles incoming (\"Ingress\") or out-going (\"Egress\") "
4358 "packets.") ]
4359
4360 class CIM_ConditioningServiceOnEndpoint : CIM_ForwardsAmong
4361 {
4362 [Override ("Antecedent"), Max (1), Description (
4363 "The ProtocolEndpoint through which traffic arrives at or "
4364 "leaves from a network device.") ]
4365 CIM_ProtocolEndpoint REF Antecedent;
4366 [Override ("Dependent"), Max (1), Description (
4367 "The ConditioningService which begins or ends the traffic "
4368 "conditioning processing within a network device.") ]
4369 karl 1.1 CIM_ConditioningService REF Dependent;
4370 [Description (
4371 "Indicates whether a packet is incoming (value = 1, "
4372 "\"Ingress\") or out-going (value = 2, \"Egress\") at the "
4373 "ProtocolEndpoint, relative to the ConditioningService."),
4374 Values {"Unknown", "Ingress", "Egress"} ]
4375 uint16 ServiceType;
4376 };
4377
4378
4379 // ==================================================================
4380 // NextService
4381 // ==================================================================
4382 [Association, Description (
4383 " In processing or 'conditioning' a packet at a network "
4384 "device, that packet is handled by a variety of Conditioning"
4385 "Services (such as Classifiers, Meters, Droppers, etc.). "
4386 "The Services may feed one another directly, or be more "
4387 "discretely mapped to multiple 'next' Services (for example, "
4388 "queues) based on the characteristics of the packet. \n"
4389 " There is a need to indicate the sequence of Services "
4390 karl 1.1 "when conditioning packets in a network device. This "
4391 "is accomplished via the NextService association. Both one-"
4392 "to-one and fan in/fan out relationships can be described. \n"
4393 " Note that this relationship is truly a Dependency "
4394 "association, but can not be modeled as such - since an "
4395 "additional key property is required. This key allows a "
4396 "ConditioningService to forward multiple traffic flows to "
4397 "the same 'next' Service but maintain their traffic "
4398 "'identity'. This identity must be maintained to allow a "
4399 "later step in the conditioning process to 'fan out' from "
4400 "one to many 'next' Services. The TrafficClass key "
4401 "property uniquely distinguishes potentially multiple "
4402 "NextService instances between the same "
4403 "ConditioningServices.") ]
4404
4405 class CIM_NextService
4406 {
4407 [Key, Description (
4408 "The preceeding ConditioningService, 'earlier' in the "
4409 "processing sequence for a packet.") ]
4410 CIM_ConditioningService REF PreceedingService;
4411 karl 1.1 [Key, Description (
4412 "The 'next' or following ConditioningService.") ]
4413 CIM_ConditioningService REF FollowingService;
4414 [Key, Description (
4415 "Traffic flows from the various ConditioningServices may be "
4416 "distinguished by their specific traffic class (information "
4417 "which is conveyed in the FilterEntry.TrafficClass "
4418 "property). There can be only one traffic 'class of "
4419 "service' per output from the ConditioningService (i.e., "
4420 "per instance of this association)."),
4421 ModelCorrespondence { "CIM_FilterEntry.TrafficClass" } ]
4422 string TrafficClass;
4423 };
4424
4425 // ===================================================================
4426 // CIM_ClassifierService
4427 // ===================================================================
4428 [Description (
4429 "This class represents a logical entity that resides in the "
4430 "data forwarding path of a network device. A classifier "
4431 "takes a single input traffic stream and sorts it into one "
4432 karl 1.1 "or more output traffic streams. The sorting is done by a "
4433 "set of filters that select packets based on the packet "
4434 "contents (or possibly other attributes associated with the "
4435 "packet). Each output stream is the result of matching a "
4436 "particular filter (or not matching any filter). "
4437 "\n\n"
4438 "Classification is modeled as a QoSSubService that occurs "
4439 "as part of the conditioning that may be applied to a "
4440 "traffic stream. Thus, it is subclassed from "
4441 "ConditioningService.") ]
4442
4443 class CIM_ClassifierService : CIM_ConditioningService
4444 {
4445 [Description (
4446 "This property is an enumerated 16-bit unsigned integer "
4447 "that is used to define the specific type of classifier "
4448 "of this instance. The following types of "
4449 "classifiers are defined: "
4450 "\n\n"
4451 " 1 - Other; \n 2 - Behavior Aggregate; \n"
4452 " 3 - IPv4 Multi-Field-5; \n"
4453 karl 1.1 " 4 - IPv6 Multi-Field-5; \n 5 - IPv4 Multi-Field-6; \n"
4454 " 6 - IPv6 Multi-Field-6; \n 7 - 802 MAC; \n "
4455 " 8 - IEEE Priority; \n"
4456 " 9 - IEEE VLAN; \n 10 - Free-form. "
4457 "\n\n"
4458 "Here, Multi-Field-5 defines a filter to match on source "
4459 "and destination IP address, source and destination port, "
4460 "and IP Protocol. Multi-Field-6 is the same, except that "
4461 "the DSCP value is also matched."),
4462 ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9",
4463 "10"},
4464 Values {"Other", "Behavior Aggregate",
4465 "IPv4 Multi-Field-5", "IPv6 Multi-Field-5",
4466 "IPv4 Multi-Field-6", "IPv6 Multi-Field-6",
4467 "802 MAC", "IEEE Priority", "IEEE VLAN",
4468 "Free-form"},
4469 ModelCorrespondence {
4470 "CIM_ClassifierService.OtherClassifierType" } ]
4471 uint16 ClassifierType;
4472 [Description (
4473 "This is a vendor-specified string describing the type "
4474 karl 1.1 "of classifier. It is used when the value of the "
4475 "ClassifierType attribute of this class is equal to 1."),
4476 ModelCorrespondence {
4477 "CIM_ClassifierService.ClassifierType" } ]
4478 string OtherClassifierType;
4479 [Description (
4480 "This is a boolean attribute that, if TRUE, means that "
4481 "this Classifier has already processed at least one "
4482 "packet.") ]
4483 boolean HaveClassifiedPackets;
4484 };
4485
4486 // ==================================================================
4487 // ClassifierFilterSet
4488 // ==================================================================
4489 [Association, Description (
4490 "In order for a ClassifierService to correctly identify and "
4491 "process network traffic, that traffic must be described by "
4492 "FilterEntries, which are aggregated into FilterLists. This "
4493 "association defines the Dependency of the ClassifierService "
4494 "on FilterLists (and therefore, their FilterEntries). The "
4495 karl 1.1 "cardinality of the association requires that the Classifier"
4496 "Service operate against at least one FilterList.") ]
4497
4498 class CIM_ClassifierFilterSet : CIM_Dependency
4499 {
4500 [Override ("Antecedent"), Min (1), Description (
4501 "The FilterList aggregating FilterEntries, these in turn "
4502 "describe how traffic is identified and processed by the "
4503 "ClassifierService.") ]
4504 CIM_FilterList REF Antecedent;
4505 [Override ("Dependent"), Description (
4506 "The ClassifierService which uses the FilterList and its "
4507 "aggregated FilterEntries.") ]
4508 CIM_ClassifierService REF Dependent;
4509 [Description (
4510 "The ordering of the FilterLists used in the classification "
4511 "and forwarding functions of the ClassifierService.") ]
4512 uint16 FilterListPosition;
4513 };
4514
4515 // ===================================================================
4516 karl 1.1 // CIM_MeterService
4517 // ===================================================================
4518 [Description (
4519 "This class represents a logical entity that resides in the "
4520 "data forwarding path of a network device. It describes "
4521 "the metering of network traffic. Metering is the "
4522 "function of monitoring the arrival times of packets of a "
4523 "traffic stream and determining the level of conformance of "
4524 "each packet with respect to a pre-established traffic "
4525 "profile. A meter has the ability to invoke different "
4526 "ConditioningServices for conforming traffic and non-"
4527 "conforming traffic. Non-conforming packets may be further "
4528 "conditioned (e.g., dropped or queued) by routing the packet "
4529 "to the appropriate conditioning element. "
4530 "\n\n"
4531 "This class is the base class for defining different types "
4532 "of meters. As such, it contains common properties that all "
4533 "meter subclasses share. ") ]
4534
4535 class CIM_MeterService: CIM_ConditioningService
4536 {
4537 karl 1.1 [Description (
4538 "This property is an enumerated 16-bit unsigned integer "
4539 "that is used to specify the particular type of meter. "
4540 "Defined values of the enumeration are: "
4541 "\n\n"
4542 " 1: Other \n"
4543 " 2: AverageRateMeter \n"
4544 " 3: EWMAMeter \n"
4545 " 4: TokenBucketMeter."
4546 "\n\n"
4547 "Note: The MeterType property and the MeterService "
4548 "subclasses provide similar information. This property is "
4549 "defined for query purposes and for future expansion. It "
4550 "is assumed that not all MeterServices will require a "
4551 "subclass to define them. Therefore, MeterService will "
4552 "be instantiated directly and the Type property is "
4553 "needed."),
4554 ValueMap {"1", "2", "3", "4"},
4555 Values {"Other", "AverageRateMeter",
4556 "EWMAMeter", "TokenBucketMeter"},
4557 ModelCorrespondence {"CIM_MeterService.OtherMeterType"} ]
4558 karl 1.1 uint16 MeterType;
4559 [Description (
4560 "This property is a string used in conjunction with "
4561 "the MeterType property. When the value of MeterType "
4562 "is 1 (e.g., \"Other\"), then the name of the conformance "
4563 "level for this meter is defined in this property."),
4564 ModelCorrespondence { "CIM_MeterService.MeterType" } ]
4565 string OtherMeterType;
4566 [Description (
4567 "An unsigned integer indicating the number of conformance "
4568 "levels supported by the Meter. For example, when only "
4569 "'in-profile' or 'out of profile' metering is supported. "
4570 "ConformanceLevels is set to 2.") ]
4571 uint16 ConformanceLevels;
4572 };
4573
4574 // ===================================================================
4575 // CIM_AverageRateMeterService
4576 // ===================================================================
4577 [Description (
4578 "This class represents a logical entity that resides in the "
4579 karl 1.1 "data forwarding path of a network device. It describes the "
4580 "metering of network traffic using an Average Rate Meter. "
4581 "This type of meter measures the average rate at which "
4582 "packets are submitted to it over a specified time. Packets "
4583 "are defined as conformant if their average arrival rate "
4584 "does not exceed the specified measuring rate of the meter. "
4585 "Any packet that causes the specified measuring rate to be "
4586 "exceeded is defined to be non-conforming. "
4587 "\n\n"
4588 "This is modeled as a subclass of ConditioningService and "
4589 "has the ability to invoke different ConditioningServices "
4590 "for conforming and non-conforming traffic.") ]
4591
4592 class CIM_AverageRateMeterService: CIM_MeterService
4593 {
4594 [Description (
4595 "This property is a 32-bit real number that defines the "
4596 "rate that determines whether admitted packets are in "
4597 "conformance or not."),
4598 Units ("KiloBits per Second") ]
4599 real32 AverageRate;
4600 karl 1.1 [Description (
4601 "This property is a 32-bit real number that defines the "
4602 "time period over which the average measurement should "
4603 "be taken."),
4604 Units ("MicroSeconds") ]
4605 real32 DeltaInterval;
4606 };
4607
4608 // ===================================================================
4609 // CIM_EWMAMeterService
4610 // ===================================================================
4611 [Description (
4612 "This class represents a logical entity that resides in the "
4613 "data forwarding path of a network device. It describes the "
4614 "metering of network traffic using an Exponentially Weighted "
4615 "Moving Average meter. This meter can be modeled as a simple "
4616 "IIR low-pass filter that measures the rate of incoming "
4617 "packets over a small fixed sampling interval. Any admitted "
4618 "packet that pushes the average rate over a pre-defined "
4619 "limit is defined to be non-conforming. "
4620 "\n\n"
4621 karl 1.1 "This is modeled as a subclass of ConditioningService and "
4622 "has the ability to invoke different ConditioningServices "
4623 "for conforming and non-conforming traffic.") ]
4624
4625 class CIM_EWMAMeterService: CIM_MeterService
4626 {
4627 [Description (
4628 "This property is a 32-bit real number that defines the "
4629 "average rate against which the sampled arrival rate of "
4630 "packets should be measured. Any packet that causes the "
4631 "sampled rate to exceed this rate is deemed "
4632 "non-conforming."),
4633 Units ("KiloBits Per Second") ]
4634 real32 AverageRate;
4635 [Description (
4636 "This property is a 32-bit real number that defines the "
4637 "sampling interval used to measure the arrival rate in "
4638 "bytes. The calculated rate is averaged over this interval "
4639 "and checked against the AverageRate property. All "
4640 "packets whose computed average arrival rate is "
4641 "less than the AverageRate are deemed conforming."),
4642 karl 1.1 Units ("MicroSeconds") ]
4643 real32 DeltaInterval;
4644 [Description (
4645 "This property is a 32-bit real number that defines the time "
4646 "constant (e.g. frequency response) of what is essentially a "
4647 "simple IIR low-pass filter.") ]
4648 real32 Gain;
4649 };
4650
4651 // ===================================================================
4652 // CIM_TokenBucketMeterService
4653 // ===================================================================
4654 [Description (
4655 "This class represents a logical entity that resides in the "
4656 "data forwarding path of a network device. It describes the "
4657 "metering of network traffic using a token bucket meter. "
4658 "Two types of token bucket meters are defined using this "
4659 "class - a simple, 2 parameter bucket meter, and a multi-"
4660 "stage meter."
4661 "\n\n"
4662 "A simple token bucket usually has two parameters, an "
4663 karl 1.1 "average token rate and a burst size. Quoting from the IETF "
4664 "Draft, 'A Conceptual Model for DiffServ Routers', \"TB "
4665 "meters compare the arrival rate of packets to the average "
4666 "rate specified by the TB profile. Logically, tokens "
4667 "accumulate in a bucket at the average rate, up to a "
4668 "maximum credit which is the burst size. Packets of length "
4669 "L bytes are considered conforming if any tokens are "
4670 "available in the bucket at the time of packet arrival: up "
4671 "to L bytes may then be borrowed from future token "
4672 "allocations. Packets are allowed to exceed the average "
4673 "rate in bursts up to the burst size. Packets which arrive "
4674 "to find a bucket with no tokens in it are deemed "
4675 "non-conforming.\" This type of meter has only two "
4676 "conformance levels - conforming and non-conforming. "
4677 "\n\n"
4678 "This class also defines an excess burst size, which enables "
4679 "the meter to have three conformance levels (basically, "
4680 "'conforming', 'partially conforming', and 'non-conforming'). "
4681 "The difference is that packets that exceed the excess burst "
4682 "size are deemed non-conforming, while packets that exceed "
4683 "the smaller BurstSize but are less than the ExcessBurst"
4684 karl 1.1 "Size are deemed partially conforming. "
4685 "\n\n"
4686 "This is modeled as a subclass of ConditioningService and "
4687 "has the ability to invoke different ConditioningServices "
4688 "for conforming, partially conforming and non-conforming "
4689 "traffic.") ]
4690
4691 class CIM_TokenBucketMeterService: CIM_MeterService
4692 {
4693 [Description (
4694 "This property is a 32-bit real number that is used to "
4695 "define the committed rate of the meter."),
4696 Units ("KiloBits per Second") ]
4697 real32 AverageRate;
4698 [Description (
4699 "This attribute is a 32-bit real number that is used to "
4700 "define the peak rate of the meter."),
4701 Units ("KiloBits per Second") ]
4702 real32 PeakRate;
4703 [Description (
4704 "This property is a 32-bit real number that is used to "
4705 karl 1.1 "define the maximum number of tokens available for the "
4706 "committed rate (specified by the AverageRate property)."),
4707 Units ("KiloBytes") ]
4708 real32 BurstSize;
4709 [Description (
4710 "This property is a 32-bit real number that is used to "
4711 "define the maximum number of tokens available for the "
4712 "peak rate (specified by the PeakRate property)."),
4713 Units ("KiloBytes") ]
4714 real32 ExcessBurstSize;
4715 };
4716
4717 // ==================================================================
4718 // NextServiceAfterMeter
4719 // ==================================================================
4720 [Association, Description (
4721 "Describes the 'next' ConditioningService for a packet, "
4722 "after processing by the MeterService.") ]
4723
4724 class CIM_NextServiceAfterMeter : CIM_NextService
4725 {
4726 karl 1.1 [Override ("PreceedingService"),
4727 Description ("The MeterService.") ]
4728 CIM_MeterService REF PreceedingService;
4729 [Description (
4730 "Information on the result of the metering. Traffic "
4731 "is distinguished as being in- or out-of-profile, or "
4732 "\"Partially Conforming\" for a 3 color Meter. This "
4733 "is captured through setting the property to the value "
4734 "1, 3 or 2, respectively."),
4735 Values {"Unknown", "In-profile", "Partially Conforming",
4736 "Out-of-profile"} ]
4737 uint16 MeterResult;
4738 };
4739
4740 // ===================================================================
4741 // CIM_MarkerService
4742 // ===================================================================
4743 [Description (
4744 "This class represents a logical entity that resides in the "
4745 "data forwarding path of a network device. It describes the "
4746 "marking or re-marking (e.g., set or reset a particular "
4747 karl 1.1 "field in a packet header) of network traffic. Markers may "
4748 "act either on unmarked packets or re-mark previously "
4749 "marked packets. Markers are usually invoked as a result of "
4750 "a preceding classifier match. "
4751 "\n\n"
4752 "This is modeled as a QoSSubService that is part of a "
4753 "higher-level QoSService. It is a subclass of Conditioning"
4754 "Service and has the ability to mark traffic and then invoke "
4755 "another ConditioningServices for further processing of the "
4756 "traffic.") ]
4757
4758 class CIM_MarkerService: CIM_ConditioningService
4759 {
4760 [Description (
4761 "This property is a boolean attribute that, when TRUE, "
4762 "signifies that this Marker can remark the field value "
4763 "specified in the RemarkType property, with the value "
4764 "specified in the RemarkValue property. This change is "
4765 "made to unmarked packets or to re-mark a previously "
4766 "marked packet.") ]
4767 boolean CanRemark;
4768 karl 1.1 [Description (
4769 "This property is an enumerated 16-bit unsigned integer "
4770 "that defines what type of remarking will be done. Values "
4771 "are: "
4772 "\n\n"
4773 " 1: Other \n"
4774 " 2: Mark ToS Byte \n"
4775 " 3: Mark the DSCP \n"
4776 " 4: Mark the Priority Field "),
4777 ValueMap {"1", "2", "3", "4"},
4778 Values {"Other", "Mark ToS Byte", "Mark the DSCP",
4779 "Mark the Priority Field"},
4780 ModelCorrespondence {
4781 "CIM_MarkerService.OtherRemarkType" } ]
4782 uint16 RemarkType;
4783 [Description (
4784 "This property contains a vendor-specific value for "
4785 "the type of remarking that is done. It is used when the "
4786 "value of the RemarkType property is 1 (Other)."),
4787 ModelCorrespondence { "CIM_MarkerService.RemarkType" } ]
4788 string OtherRemarkType;
4789 karl 1.1 [Description (
4790 "This property is a 16-bit unsigned integer that is the "
4791 "value to be applied to the field specified in the "
4792 "RemarkType attribute.") ]
4793 uint16 RemarkValue;
4794 };
4795
4796 // ===================================================================
4797 // CIM_DropperService
4798 // ===================================================================
4799 [Description (
4800 "This class represents a logical entity that resides in the "
4801 "data forwarding path of a network device. It describes the "
4802 "ability to drop network traffic. As such, it is the base "
4803 "class for different types of droppers. These droppers are "
4804 "distinguished by the algorithm that they use to drop "
4805 "traffic. "
4806 "\n\n"
4807 "This is modeled as a QoSSubService that is part of a "
4808 "higher-level QoSService. It is a subclass of Conditioning"
4809 "Service and has the ability to drop traffic or invoke "
4810 karl 1.1 "another ConditioningServices for further processing of the "
4811 "remaining traffic.") ]
4812
4813 class CIM_DropperService: CIM_ConditioningService
4814 {
4815 [Description (
4816 "This property is an enumerated 16-bit unsigned integer "
4817 "that defines the type of dropper. Values are: "
4818 "\n\n"
4819 " 1: Other \n"
4820 " 2: Head \n"
4821 " 3: Tail \n"
4822 " 4: RED \n"
4823 " 5: Weighted RED"
4824 "\n\n"
4825 "Note: The DropperType property and the DropperService "
4826 "subclasses provide similar information. This property is "
4827 "defined for query purposes and to not require a "
4828 "subclass for all types of DropperServices (for example, "
4829 "to describe a Head or Tail Dropper in today's model). "
4830 "Therefore, DropperService can be instantiated directly "
4831 karl 1.1 "and the Type property is needed."),
4832 ValueMap {"1", "2", "3", "4", "5"},
4833 Values {"Other", "Head", "Tail", "RED", "Weighted RED"},
4834 ModelCorrespondence {
4835 "CIM_DropperService.OtherDropperType" } ]
4836 uint16 DropperType;
4837 [Description (
4838 "This property contains a vendor-specific value for the "
4839 "type of dropping that is done. It is used when the value "
4840 "of the DropperType property is 1 (Other)."),
4841 ModelCorrespondence { "CIM_DropperService.DropperType" } ]
4842 string OtherDropperType;
4843 [Description (
4844 "This property is a boolean attribute that, if TRUE, "
4845 "indicates that this Dropper will always drop incoming "
4846 "packets regardless of their type.") ]
4847 uint16 AlwaysDrop;
4848 [Description (
4849 "This property is an enumerated unsigned 16-bit integer "
4850 "that defines the metric used to trigger the start of "
4851 "dropping packets. This does NOT mean that all packets "
4852 karl 1.1 "will be dropped; it does mean that SOME packets will "
4853 "start to be dropped. The number and type of packets "
4854 "dropped is a function of the type of algorithm used by "
4855 "this Dropper. Values are: "
4856 "\n\n"
4857 " 1: Other \n"
4858 " 2: Queue Threshold \n"
4859 " 3: Arrival Rate "),
4860 ValueMap {"1", "2", "3"},
4861 Values {"Other", "Queue Threshold", "Arrival Rate"} ]
4862 uint16 DropStartMetric;
4863 [Description (
4864 "This property is an enumerated unsigned 16-bit integer "
4865 "that defines the metric used to determine when ALL "
4866 "packets will be dropped REGARDLESS of the type of "
4867 "algorithm used by this Dropper. Values are: "
4868 "\n\n"
4869 " 1: Other \n"
4870 " 2: Queue Threshold \n"
4871 " 3: Arrival Rate "),
4872 ValueMap {"1", "2", "3"},
4873 karl 1.1 Values {"Other", "Queue Threshold", "Arrival Rate"} ]
4874 uint16 DropMaintainMetric;
4875 };
4876
4877 // ===================================================================
4878 // CIM_REDDropperService
4879 // ===================================================================
4880 [Description (
4881 "This class represents a logical entity that resides in the "
4882 "data forwarding path of a network device. It describes the "
4883 "ability to drop network traffic using a Random Early "
4884 "Detection (RED) algorithm. The purpose of RED is to avoid "
4885 "congestion (as opposed to managing congestion). That is, "
4886 "instead of waiting for the queues to fill up and then "
4887 "dropping large numbers of packets, RED works by monitoring "
4888 "the average queue depth. When the queue depth exceeds "
4889 "a minimum threshold, packets are randomly discarded, asking "
4890 "only those connections to slow down. "
4891 "\n\n"
4892 "This is modeled as a QoSSubService that is part of a "
4893 "higher-level QoSService. It is a subclass of Conditioning"
4894 karl 1.1 "Service and has the ability to drop traffic or invoke "
4895 "another ConditioningServices for further processing of the "
4896 "remaining traffic.") ]
4897
4898 class CIM_REDDropperService: CIM_DropperService
4899 {
4900 [Description (
4901 "This property is a 32-bit unsigned integer, and is used "
4902 "to define the minimum queue length at which packets are "
4903 "subject to being dropped according to the dropping "
4904 "algorithm being used.") ]
4905 uint32 MinQueueThreshold;
4906 [Description (
4907 "This property is a 32-bit unsigned integer, and is used "
4908 "to define the maximum queue length at which packets are "
4909 "subject to always being dropped regardless of the dropping "
4910 "algorithm being used.") ]
4911 uint32 MaxQueueThreshold;
4912 [Description (
4913 "This property is a 32-bit real number, and is used in "
4914 "conjunction with the StopProbability attribute to define "
4915 karl 1.1 "the slope of the drop probability function. The latter "
4916 "governs the rate at which packets are subject to being "
4917 "dropped, as a function of the queue length."),
4918 MinValue (0), MaxValue (100),
4919 ModelCorrespondence {
4920 "CIM_REDDropperService.StopProbability"} ]
4921 real32 StartProbability;
4922 [Description (
4923 "This property is a 32-bit real number, and is used in "
4924 "conjunction with the StartProbability attribute to define "
4925 "the slope of the drop probability function. The latter "
4926 "governs the rate at which packets are subject to being "
4927 "dropped, as a function of the queue length."),
4928 MinValue (0), MaxValue (100),
4929 ModelCorrespondence {
4930 "CIM_REDDropperService.StartProbability"} ]
4931 real32 StopProbability;
4932 };
4933
4934 // ===================================================================
4935 // CIM_WeightedREDDropperService
4936 karl 1.1 // ===================================================================
4937 [Description (
4938 "This class represents a logical entity that resides in the "
4939 "data forwarding path of a network device. It describes the "
4940 "ability to drop network traffic using a Weighted Random "
4941 "Early Detection (WRED) algorithm. Like RED, the purpose of "
4942 "WRED is to avoid congestion (as opposed to managing "
4943 "congestion). This modification of the basic RED algorithm "
4944 "enables packets belonging to different traffic classes to "
4945 "be dropped at different queue depths. This algorithm also "
4946 "enables discard to be done based on different information "
4947 "contained in the packet header, such as IP Precedence, "
4948 "RSVP session parameters, or even on other factors not "
4949 "directly encoded in the packet header, such as the "
4950 "queue depth. "
4951 "\n\n"
4952 "This is modeled as a QoSSubService that is part of a "
4953 "higher-level QoSService. It is a subclass of Conditioning"
4954 "Service and has the ability to drop traffic or invoke "
4955 "another ConditioningServices for further processing of the "
4956 "remaining traffic.") ]
4957 karl 1.1
4958 class CIM_WeightedREDDropperService: CIM_DropperService
4959 {
4960 [Description (
4961 "This property is an enumerated 16-bit unsigned integer, "
4962 "and defines the type of metric that is used to drop "
4963 "traffic. Values are: "
4964 "\n\n"
4965 " 1: Other \n"
4966 " 2: IP Precedence \n"
4967 " 3: DSCP Value \n"
4968 " 4: 802.1P Priority Value \n"
4969 " 5: RSVP Session \n"
4970 " 6: Queue Depth \n"
4971 " 7: Packet Arrival Rate "),
4972 ValueMap {"1", "2", "3", "4", "5", "6", "7"},
4973 Values {"Other", "IP Precedence", "DSCP Value",
4974 "802.1P Priority Value", "RSVP Session",
4975 "Queue Depth", "Packet Arrival Rate"},
4976 ModelCorrespondence
4977 { "CIM_WeightedREDDropperService.OtherDropMetric" } ]
4978 karl 1.1 uint16 DropMetric;
4979 [Description (
4980 "This string property is used in conjunction with the "
4981 "DropMetric property. When the value of DropMetric is "
4982 "1 (e.g., Other), then the type of metric to be used "
4983 "is defined in this property. "),
4984 ModelCorrespondence
4985 { "CIM_WeightedREDDropperService.DropMetric" } ]
4986 string OtherDropMetric;
4987 [Description (
4988 "This is a 32-bit real number that represents the "
4989 "weighting factor used to determine which queues "
4990 "get more service."),
4991 MinValue (0), MaxValue (100) ]
4992 real32 Weight;
4993 };
4994
4995 // ===================================================================
4996 // CIM_QueuingService
4997 // ===================================================================
4998 [Description (
4999 karl 1.1 "This class represents a logical entity that resides in the "
5000 "data forwarding path of a network device. It describes the "
5001 "ability to queue network traffic and to specify the "
5002 "characteristics for determining long-term congestion. "
5003 "\n\n"
5004 "This is modeled as a QoSSubService that is part of a "
5005 "higher-level QoSService. It is a subclass of Conditioning"
5006 "Service and has the ability to queue traffic or invoke "
5007 "another ConditioningServices for further processing.") ]
5008
5009 class CIM_QueuingService: CIM_ConditioningService
5010 {
5011 [Description (
5012 "This property is a 32-bit real number, and defines the "
5013 "degree to which each actual queue depth influences the "
5014 "averaged (smoothed) queue depth used for determining "
5015 "long-term congestion in RED-like droppers. This "
5016 "property is specified as the percentage/weight that "
5017 "each calculation of averaged queue depth influences "
5018 "the new value of average depth."),
5019 MinValue (0), MaxValue (100) ]
5020 karl 1.1 real32 SmoothingWeight;
5021 [Description (
5022 "This property is a 32-bit unsigned integer, and defines "
5023 "the number of nano-seconds between each calculation of "
5024 "average queue depth. When this property is not specified, "
5025 "it implies that the calculation is performed every time a "
5026 "packet departs from the queue under normal operating "
5027 "conditions. In other words, if the queue is serviced "
5028 "intermittently, the calculations will be performed "
5029 "logically to simulate a consistent queue servicing "
5030 "interval."),
5031 Units ("NanoSeconds") ]
5032 uint32 TimeInterval;
5033 [Description (
5034 "This property is a boolean attribute that, if TRUE, "
5035 "enables the queue to be made available to other "
5036 "queue/scheduler instances. When true, the queue "
5037 "can be used to hold packets from other traffic "
5038 "classes than normally serviced. For example, assume "
5039 "that queues for Gold, Silver and Bronze traffic "
5040 "classes are defined. Further assume that the "
5041 karl 1.1 "Silver queue is full and the others are empty. If "
5042 "this boolean is set for the Gold and Bronze queues, "
5043 "their capacity can be used to hold Silver traffic, "
5044 "as opposed to dropping it.") ]
5045 boolean GiveExcessCapacity;
5046 };
5047
5048 // ==================================================================
5049 // QueueHierarchy
5050 // ==================================================================
5051 [Association, Description (
5052 "Describes the reliance of a QueuingService on other, "
5053 "supporting queues and their QueuingServices. A given Service "
5054 "can only act in support of one QueuingService; but a "
5055 "higher level queue may be supported by many lower level "
5056 "QueuingServices.") ]
5057
5058 class CIM_QueueHierarchy : CIM_ServiceServiceDependency
5059 {
5060 [Override ("Antecedent"), Description (
5061 "The supporting queue(s) and its QueuingService. This Service "
5062 karl 1.1 "can only support at most one, higher level QueuingService.") ]
5063 CIM_QueuingService REF Antecedent;
5064 [Override ("Dependent"), Max (1), Description (
5065 "The QueuingService dependent on other, supporting Queuing"
5066 "Services.") ]
5067 CIM_QueuingService REF Dependent;
5068 };
5069
5070 // ===================================================================
5071 // CIM_BufferPool
5072 // ===================================================================
5073 [Description (
5074 "This class represents the use of buffers by a Queuing"
5075 "Service. The existence and management of individual buffers "
5076 "will be modeled in a future release. At the current level "
5077 "of abstraction, modeling the existence of the BufferPool "
5078 "is necessary. Long term, it is not sufficient."
5079 "\n\n"
5080 "In implementations where there are "
5081 "multiple buffer sizes, an instance of BufferPool should be "
5082 "defined for each set of buffers with identical or similar "
5083 karl 1.1 "sizes. These instances of buffer pools can then be grouped "
5084 "together using the CollectedBuffersPool association. "
5085 "\n\n"
5086 "Note that this class is derived from CollectionOfMSEs, "
5087 "and not from Forwarding or ConditioningService. BufferPool "
5088 "is only a collection of storage, and is NOT a Service.") ]
5089
5090 class CIM_BufferPool: CIM_CollectionOfMSEs
5091 {
5092 [Key, Override ("CollectionID"), MaxLen (256),
5093 Description (
5094 "This property is defined in the CollectionOfMSEs class, "
5095 "but is overridden here to serve as part of the "
5096 "(composite) key that identifies the BufferPool instance.") ]
5097 string CollectionID;
5098 [Key, MaxLen (256), Description (
5099 "CreationClassName indicates the name of the class or the "
5100 "subclass used in the creation of an instance. When used "
5101 "with the other key properties of this class, this property "
5102 "allows all instances of this class and its subclasses to "
5103 "be uniquely identified.") ]
5104 karl 1.1 string CreationClassName;
5105 [Key, MaxLen (256), Description (
5106 "The Name property defines the label by which the object "
5107 "is known.") ]
5108 string Name;
5109 [Description (
5110 "This property is a 16-bit unsigned integer, and defines "
5111 "the number of bytes in each buffer.") ]
5112 uint16 BufferSize;
5113 [Description (
5114 "This property is a 32-bit unsigned integer, and defines "
5115 "the total number of buffers in the Pool.") ]
5116 uint32 TotalBuffers;
5117 [Description (
5118 "This property is a 32-bit unsigned integer, and defines "
5119 "the number of buffers in the Pool that are currently "
5120 "not allocated to any instance of a QueuingService. "
5121 "Buffers allocated to a QueuingService could either be "
5122 "in use (containing packet data), or allocated to a Queue "
5123 "pending the arrival of new packet data.") ]
5124 uint32 AvailableBuffers;
5125 karl 1.1 [Description (
5126 "This property is a 32-bit unsigned integer, and defines "
5127 "the number of buffers in the Pool that have been "
5128 "simultaneously allocated to multiple instances of "
5129 "QueuingService.") ]
5130 uint32 SharedBuffers;
5131 };
5132
5133 // ==================================================================
5134 // QueueAllocation
5135 // ==================================================================
5136 [Association, Description (
5137 "Describes the reliance of a QueuingService on the "
5138 "availability of space in a BufferPool. ") ]
5139
5140 class CIM_QueueAllocation : CIM_Dependency
5141 {
5142 [Override ("Antecedent"), Description (
5143 "The BufferPool supporting packet storage for a "
5144 "QueuingService.") ]
5145 CIM_BufferPool REF Antecedent;
5146 karl 1.1 [Override ("Dependent"), Description (
5147 "The QueuingService dependent on the BufferPool for storage "
5148 "space.") ]
5149 CIM_QueuingService REF Dependent;
5150 };
5151
5152 // ==================================================================
5153 // CollectedBufferPool
5154 // ==================================================================
5155 [Association, Aggregation, Description (
5156 "CIM_CollectedBufferPool is an aggregation association "
5157 "representing that a Pool may itself be contained "
5158 "in a 'higher level' Pool.") ]
5159 class CIM_CollectedBufferPool : CIM_MemberOfCollection
5160 {
5161 [Override("Collection"), Aggregate,
5162 Description ("The 'higher level' or parent Pool.") ]
5163 CIM_BufferPool REF Collection;
5164 [Override("Member"),
5165 Description ("The 'collected' Pool.") ]
5166 CIM_BufferPool REF Member;
5167 karl 1.1 };
5168
5169 // ===================================================================
5170 // CIM_PacketSchedulingService
5171 // ===================================================================
5172 [Description (
5173 "This class represents the scheduling service, which is a "
5174 "process that determines whether a queued packet should be "
5175 "removed from a queue and sent to an output interface. Note "
5176 "that output interfaces can be physical network interfaces or "
5177 "interfaces to components internal to systems, such as "
5178 "crossbars or backplanes. In either case, if multiple queues "
5179 "are involved, schedulers are used to provide access to the "
5180 "interface. Each instance of a PacketSchedulingService "
5181 "describes a scheduler from the perspective of the queue "
5182 "that the scheduler is servicing. One can describe that "
5183 "different schedulers support different queues, or that "
5184 "a scheduler supports several queues. "
5185 "\n\n"
5186 "PacketSchedulingService is modeled as a sibling service "
5187 "to ConditioningService. Both are derived from a common "
5188 karl 1.1 "root, ForwardingService. ") ]
5189
5190 class CIM_PacketSchedulingService: CIM_ForwardingService
5191 {
5192 [Description (
5193 "This property is an enumerated 16-bit unsigned integer, and "
5194 "defines the type of scheduler. Values are: "
5195 "\n\n"
5196 " 1: Other \n"
5197 " 2: FIFO \n"
5198 " 3: Priority \n"
5199 " 4: Bandwidth \n"
5200 " 5: Priority Bandwidth \n"
5201 " 6: Round Robin Packet \n"
5202 " 7: Weighted Round Robin Packet. "
5203 "\n\n"
5204 "Note: The SchedulerType property and the Scheduler"
5205 "Service subclasses provide similar information. This "
5206 "property is defined for query purposes and to not require "
5207 "a subclass for all types of SchedulerServices (for "
5208 "example, to describe a FIFO Scheduler in today's model). "
5209 karl 1.1 "Therefore, SchedulerService can be instantiated directly "
5210 "and the Type property is needed."),
5211 ValueMap {"1", "2", "3", "4", "5", "6", "7"},
5212 Values {"Other", "FIFO", "Priority", "Bandwidth",
5213 "Priority Bandwidth", "Round Robin Packet",
5214 "Weighted Round Robin Packet"},
5215 ModelCorrespondence
5216 { "CIM_PacketSchedulingService.SchedulerType" } ]
5217 uint16 SchedulerType;
5218 [Description (
5219 "This string property is used in conjunction with "
5220 "the SchedulerType property. When the value of "
5221 "SchedulerType is 1 (e.g., Other), then the type of "
5222 "metric to be used is defined in this attribute. "),
5223 ModelCorrespondence
5224 { "CIM_ PacketSchedulingService.SchedulerType" } ]
5225 string OtherSchedulerType;
5226 };
5227
5228 // ==================================================================
5229 // SchedulerUsed
5230 karl 1.1 // ==================================================================
5231 [Association, Description (
5232 "In order to remove queued packets, a process or Service "
5233 "(identified as a PacketSchedulingService) runs. This "
5234 "association describes the Dependency of the queue and its "
5235 "QueuingService on a SchedulingService, which empties it.") ]
5236
5237 class CIM_SchedulerUsed : CIM_ServiceServiceDependency
5238 {
5239 [Override ("Antecedent"), Min(1), Max (1), Description (
5240 "The PacketSchedulingService which empties the Queuing"
5241 "Service's queue.") ]
5242 CIM_PacketSchedulingService REF Antecedent;
5243 [Override ("Dependent"), Description (
5244 "The queue and its QueuingService from which packets "
5245 "are emptied.") ]
5246 CIM_QueuingService REF Dependent;
5247 };
5248
5249 // ===================================================================
5250 // CIM_PrioritySchedulingService
5251 karl 1.1 // ===================================================================
5252 [Description (
5253 "This class represents a simple priority scheduler, which is "
5254 "a process that schedules arriving packets into different "
5255 "priority queues. "
5256 "\n\n"
5257 "This is modeled as a specialization of the "
5258 "PacketSchedulingService, which is a sibling service to "
5259 "ConditioningService. Both PacketSchedulingService and "
5260 "ConditioningService instances are derived from a "
5261 "common root, ForwardingService. ") ]
5262
5263 class CIM_PrioritySchedulingService : CIM_PacketSchedulingService
5264 {
5265 [Description (
5266 "This property is a 16-bit unsigned integer that defines "
5267 "the priority level of the queue that is being scheduled. ") ]
5268 uint16 Priority;
5269 };
5270
5271 // ===================================================================
5272 karl 1.1 // CIM_PriorityBandwidthSchedulingService
5273 // ===================================================================
5274 [Description (
5275 "This class represents a priority scheduler that is extended "
5276 "to specify an upper limit on the bandwidth that can be sent "
5277 "on the priority queue, over some time interval. "
5278 "\n\n"
5279 "This is modeled as a specialization of the "
5280 "PacketSchedulingService, which is a sibling service to "
5281 "ConditioningService. Both PacketSchedulingService and "
5282 "ConditioningService instances are derived from a "
5283 "common root, ForwardingService. ") ]
5284
5285 class CIM_PriorityBndwidthSchedulingService: CIM_PrioritySchedulingService
5286 {
5287 [Description (
5288 "This property is a 32-bit unsigned integer, and defines "
5289 "the number of bytes that can be delivered from a queue each "
5290 "cycle. "),
5291 Units ("Bytes") ]
5292 uint32 BandwidthAllocation;
5293 karl 1.1 [Description (
5294 "This is a boolean property which, if TRUE, signifies that a "
5295 "temporary or short-term allocation of additional bandwidth "
5296 "in addition to the amount of bandwidth allocated through the "
5297 "BandwidthAllocation attribute is allowed. ") ]
5298 boolean BurstsAllowed;
5299 [Description (
5300 "This property is a 32-bit unsigned integer, and specifies "
5301 "the amount of temporary or short-term bandwidth that can be "
5302 "allocated beyond the amount of bandwidth allocated through "
5303 "the BandwidthAllocation attribute. If the maximum actual "
5304 "bandwidth allocation were to be measured, it would be the "
5305 "sum of the BurstAllocation and the BandwidthAllocation "
5306 "properties."),
5307 Units ("Bytes") ]
5308 uint32 BurstAllocation;
5309 };
5310
5311 // ===================================================================
5312 // CIM_BandwidthSchedulingService
5313 // ===================================================================
5314 karl 1.1 [Description (
5315 "This class represents a bandwidth scheduler, which is a "
5316 "process that reserves a portion of the bandwidth of a link "
5317 "for each selected traffic type. This is modeled as a "
5318 "specialization of the PacketSchedulingService, which is a "
5319 "sibling service to ConditioningService. Both "
5320 "PacketSchedulingService and ConditioningService instances "
5321 "are derived from a common root, ForwardingService. ") ]
5322
5323 class CIM_BandwidthSchedulingService: CIM_PacketSchedulingService
5324 {
5325 [Description (
5326 "This property is a 32-bit unsigned integer, and defines "
5327 "the number of bytes that can be delivered from a queue "
5328 "each cycle. "),
5329 Units ("Bytes") ]
5330 uint32 BandwidthAllocation;
5331 [Description (
5332 "This is a boolean attribute which, if TRUE, signifies that "
5333 "a temporary or short-term allocation of additional bandwidth "
5334 "in addition to the amount of bandwidth allocated through the "
5335 karl 1.1 "BandwidthAllocation attribute is allowed. ") ]
5336 boolean BurstsAllowed;
5337 [Description (
5338 "This property is a 32-bit unsigned integer, and specifies "
5339 "the amount of temporary or short-term bandwidth that can be "
5340 "allocated beyond the amount of bandwidth allocated through "
5341 "the BandwidthAllocation attribute. If the maximum actual "
5342 "bandwidth allocation were to be measured, it would be the "
5343 "sum of the BurstAllocation and the BandwidthAllocation "
5344 "properties."),
5345 Units ("Bytes") ]
5346 uint32 BurstAllocation;
5347 [Description (
5348 "This is a boolean attribute that, if TRUE, enables unused "
5349 "bandwidth from the associated queue to be allocated to "
5350 "queues that need additional resources. ") ]
5351 boolean CanShare;
5352 [Description (
5353 "This is a boolean attribute that, if TRUE, prevents the "
5354 "scheduler from bursting traffic from the queue to which this "
5355 "instance of the scheduler is associated (via SchedulerUsed). "
5356 karl 1.1 "When TRUE, this attribute also prevents bandwidth from other "
5357 "idle queues to be consumed by the associated queue, thereby "
5358 "preventing resource allocations above the assigned "
5359 "bandwidth. ") ]
5360 boolean WorkConserving;
5361 };
5362
5363 // ===================================================================
5364 // CIM_RoundRobinPacketSchedulingService
5365 // ===================================================================
5366 [Description (
5367 "This class represents a round robin packet scheduler, which "
5368 "is a process that guarantees that bandwidth will be "
5369 "allocated fairly at the packet level. With this type of "
5370 "scheduler, each associated queue is entitled to equal access "
5371 "to the output interface. This is modeled as a specialization "
5372 "of the PacketSchedulingService, which is a sibling service "
5373 "to ConditioningService. Both PacketSchedulingService and "
5374 "ConditioningService are derived from a common root, "
5375 "ForwardingService. ") ]
5376
5377 karl 1.1 class CIM_RoundRobinPacketSchedulingService: CIM_PacketSchedulingService
5378 {
5379 };
5380
5381 // ===================================================================
5382 // CIM_WeightedRoundRobinPacketSchedulingService
5383 // ===================================================================
5384 [Description (
5385 "This class represents a weighted round robin packet "
5386 "scheduler, which is the same as a fair packet scheduler "
5387 "except that a per-traffic stream multiplier is applied to "
5388 "each stream. This is modeled as a specialization of the "
5389 "PacketSchedulingService, which is a sibling service to "
5390 "ConditioningService. Both PacketSchedulingService and "
5391 "ConditioningService are derived from a common root, "
5392 "ForwardingService.") ]
5393
5394 class CIM_WeightedRoundRobinPacketSchedulingService :
5395 CIM_PacketSchedulingService
5396 {
5397 [Description (
5398 karl 1.1 "This property is a real 32-bit number, which is used to "
5399 "define the weighting factor that will be used to offer some "
5400 "queues a higher probability of being serviced than other "
5401 "queues. This property represents this probability. "),
5402 MinValue (0), MaxValue (100) ]
5403 real32 WeightingFactor;
5404 [Description (
5405 "This property is a 16-bit unsigned integer, which specifies "
5406 "a tie breaker in the event that two or more queues achieve "
5407 "an equal weighting. While this condition may not occur in "
5408 "some implementations of a weighted round robin scheduler, "
5409 "there are many implementations that require a priority to "
5410 "resolve this condition. However, in instances where this "
5411 "behavior is not necessary or is undesirable, this property "
5412 "may be left unspecified. ") ]
5413 uint16 Priority;
5414 };
5415
5416 // ==================================================================
5417 // Pragmas for new classes in premliminary release status
5418 // ==================================================================
5419 karl 1.1
5420 #pragma include ("CIM_Network25_Add.mof")
5421
5422
5423 // ===================================================================
5424 // end of file
5425 // ===================================================================
5426
|