1 kumpf 1.2 // ===================================================================
2 // Title: Network OSPF 2.7
3 // Filename: Network27_OSPF.mof
4 // Version: 2.7.0
5 // Status: Final
6 // Date: April 15, 2003
7 // ===================================================================
8 // Copyright 1998-2003 Distributed Management Task Force, Inc. (DMTF).
9 // All rights reserved.
10 // DMTF is a not-for-profit association of industry members dedicated
11 // to promoting enterprise and systems management and interoperability.
12 // DMTF specifications and documents may be reproduced for uses
13 // consistent with this purpose by members and non-members,
14 // provided that correct attribution is given.
15 // As DMTF specifications may be revised from time to time,
16 // the particular version and release date should always be noted.
17 //
18 // Implementation of certain elements of this standard or proposed
19 // standard may be subject to third party patent rights, including
20 // provisional patent rights (herein "patent rights"). DMTF makes
21 // no representations to users of the standard as to the existence
22 kumpf 1.2 // of such rights, and is not responsible to recognize, disclose, or
23 // identify any or all such third party patent right, owners or
24 // claimants, nor for any incomplete or inaccurate identification or
25 // disclosure of such rights, owners or claimants. DMTF shall have no
26 // liability to any party, in any manner or circumstance, under any
27 // legal theory whatsoever, for failure to recognize, disclose, or
28 // identify any such third party patent rights, or for such party's
29 // reliance on the standard or incorporation thereof in its product,
30 // protocols or testing procedures. DMTF shall have no liability to
31 // any party implementing such standard, whether such implementation
32 // is foreseeable or not, nor to any patent owner or claimant, and shall
33 // have no liability or responsibility for costs or losses incurred if
34 // a standard is withdrawn or modified after publication, and shall be
35 // indemnified and held harmless by any party implementing the
36 // standard from any and all claims of infringement by a patent owner
37 // for such implementations.
38 //
39 // For information about patents held by third-parties which have
40 // notified the DMTF that, in their opinion, such patent may relate to
41 // or impact implementations of DMTF standards, visit
42 // http://www.dmtf.org/about/policies/disclosures.php.
43 kumpf 1.2 // ===================================================================
44 // Description: The Network Model extends the management concepts to
45 // represent protocol interfaces and network/protocol
46 // services. This file defines classes to manage OSPF
47 // (Open Shortest Path First).
48 //
49 // The object classes below are listed in an order that
50 // avoids forward references. Required objects, defined
51 // by other working groups, are omitted.
52 // ==================================================================
53 // Change Log for v2.7
54 // CR788 - Add classes to support OSPF
55 // CR806 - Update the OSPF model to take into account the
56 // RangeOfIPAddresses class (vs IPAddressRange)
57 // CR837 - Add the property RFC1583Compatibility to OSPFService, and
58 // add the property StubMetricType to OSPFAreaConfiguration
59 // CR863 - Update the format of the MappingStrings qualifier when
60 // referencing IETF RFCs
61 // CR903 - Correction of EndpointInLink.Member reference.
62 // CR959 - Reposition OSPFLink using the ConnectivityCollection class
63 // CR982 - Removal of Experimental for preliminary to final
64 kumpf 1.2 // CR994 - Update of the InstanceID property Description
65 // ===================================================================
66
67 #pragma Locale ("en_US")
68
69
70 // ====================================================================
71 // OSPFArea
72 // ====================================================================
73 [Version ("2.7.0"), Description (
74 "This class represents an OSPF area. The definition of an "
75 "OSPF area from RFC2328, is 'OSPF allows sets of networks to "
76 "be grouped together. Such a grouping is called an area. "
77 "The topology of an area is hidden from the rest of the "
78 "Autonomous System. This information hiding enables a "
79 "significant reduction in routing traffic. Also, routing "
80 "within the area is determined only by the area's own "
81 "topology, lending the area protection from bad routing data.' "
82 "This class has a 'Type' propery, which distinguishes between the "
83 "different area types. This approach was chosen, because it "
84 "provides a simpler way to indicate the type of an area, "
85 kumpf 1.2 "and additional subclassing is not needed at this time.") ]
86 class CIM_OSPFArea : CIM_RoutingProtocolDomain {
87
88 [Description (
89 "The area ID of this OSPF area, see C.2 in RFC 2328."),
90 MappingStrings {"MIB.IETF|OSPF-MIB.ospfAreaId"} ]
91 uint32 AreaID;
92
93 [Required, Description ("The type of the OSPF area."),
94 ValueMap {"2", "3", "4"},
95 Values {"Plain", "Stub", "NSSA"} ]
96 uint16 AreaType;
97
98 [Description (
99 "When the number of non-default AS-external-LSAs in a "
100 "router's link-state database reaches this limit, the router "
101 "enters OverflowState, see 2.1 in RFC 1765."),
102 MappingStrings {"MIB.IETF|OSPF-MIB.ospfExtLsdbLimit"} ]
103 uint32 ExtLsdbLimit;
104 };
105
106 kumpf 1.2
107 // ====================================================================
108 // OSPFService
109 // ====================================================================
110 [Version ("2.7.0"), Description (
111 "This class is used to represent the basic operation of OSPF. "
112 "It is derived from the RouteCalculationService, the superclass "
113 "of all routing protocols.") ]
114 class CIM_OSPFService : CIM_RouteCalculationService {
115
116 [Description (
117 "This attribute indicates whether this router is running "
118 "MOSPF (multicast enhancements to OSPF) or not, "
119 "see B.1 in RFC 1584. This attribute only can be true, "
120 "when the SupportMOSPF property in OSPFService "
121 "Capabilities is also true. If SupportMOSPF is false, "
122 "then this property has no meaning."),
123 MappingStrings {"MIB.IETF|OSPF-MIB.ospfMulticastExtensions"},
124 ModelCorrespondence {
125 "CIM_OSPFServiceCapabillities.SupportMOSPF"} ]
126 boolean RunningMOSPF;
127 kumpf 1.2
128 [Description (
129 "This attribute indicates whether this router will forward "
130 "multicast datagrams between OSPF areas or not, see B.1 in "
131 "RFC 1584."),
132 MappingStrings {"MIB.IETF|OSPF-MIB.ospfMulticastExtensions"} ]
133 boolean IsInterAreaMulticastForwarder;
134
135 [Description (
136 "This attribute indicates whether this router will forward "
137 "multicast datagrams between Autonomous Systems or not, "
138 "see B.1 in RFC 1584."),
139 MappingStrings {"MIB.IETF|OSPF-MIB.ospfMulticastExtensions"} ]
140 boolean IsInterAsMulticastForwarder;
141
142 [Description (
143 "The number of seconds that, after entering OverflowState, "
144 "a router will attempt to leave OverflowState. When set to 0, "
145 "the router will not leave OverflowState until restarted, "
146 "see 2.1 in RFC 1765."),
147 MappingStrings {"MIB.IETF|OSPF-MIB.ospfExitOverflowInterval"},
148 kumpf 1.2 Units ("Seconds") ]
149 uint32 ExitOverflowInterval;
150
151 [Description (
152 "Controls the preference rules used in choosing among "
153 "multiple AS-external-LSAs advertising the same destination. "
154 "When set to TRUE, the preference rules remain those "
155 "specified by RFC 1583. When set to FALSE, the "
156 "preference rules are those stated in RFC 2328, which prevent "
157 "routing loops when AS-external-LSAs for the same destination "
158 "have been originated from different areas. See C.1 in "
159 "RFC2328.") ]
160 boolean RFC1583Compatibility;
161 };
162
163
164 // ==================================================================
165 // OSPFServiceCapabilities
166 // ==================================================================
167 [Version ("2.7.0"), Description (
168 "The OSPFServiceCapabilities class represents the capabilities "
169 kumpf 1.2 "of an OSPF service.") ]
170 class CIM_OSPFServiceCapabilities : CIM_Capabilities {
171
172 [Description (
173 "This attribute indicates whether this router supports NSSA "
174 "(\"not-so-stubby\") areas or not, see RFC 1587.") ]
175 boolean SupportNSSA;
176
177 [Description (
178 "This attribute indicates whether this router supports "
179 "on-demand circuits or not, see RFC 1793."),
180 MappingStrings {"MIB.IETF|OSPF-MIB.ospfDemandExtensions"} ]
181 boolean SupportOnDemand;
182
183 [Description (
184 "This attribute indicates whether this router supports "
185 "MOSPF (multicast enhancements to OSPF) or not, "
186 "see B.1 in RFC 1584."),
187 MappingStrings {"MIB.IETF|OSPF-MIB.ospfMulticastExtensions"} ]
188 boolean SupportMOSPF;
189 };
190 kumpf 1.2
191
192 // ====================================================================
193 // OSPFAreaConfiguration
194 // ====================================================================
195 [Version ("2.7.0"), Description (
196 "Each OSPF router has an association to one or more OSPF areas. "
197 "Into these areas, a router advertises summaries filtered by "
198 "specific address ranges. This would natively be modeled as a "
199 "ternary association (router/OSPFService to OSPFArea to "
200 "RangeOfIPAddresses), which is problematic in some "
201 "implementations. To get around this issue, the "
202 "OSPFAreaConfiguration class is defined to act as a "
203 "focal point to bring together the router (indicated as a "
204 "ComputerSystem with an instance of OSPFService, associated to "
205 "the AreaConfiguration using OSPFServiceConfiguration), the area "
206 "(indicated as an OSPFArea, associated to the AreaConfiguration "
207 "using AreaOfConfiguration) and the address ranges for "
208 "advertising (indicated as instances of RangeOfIPAddresses, "
209 "associated to the AreaConfiguration using RangesOfConfiguration). "
210 "There would be an instance of OSPFAreaConfiguration for each "
211 kumpf 1.2 "connected area of a router/OSPFService. \n"
212 "\n"
213 "When network administrators want to control the "
214 "advertisements of OSPF routers by filters, they first define "
215 "the relevant ranges. In order for a router to handle a range, "
216 "an instance of RangeOfIPAddresses MUST be associated to the "
217 "relevant OSPFAreaConfiguration (using the relationship, RangesOf"
218 "Configuration). The association between the range and "
219 "area configuration contains a property defining the handling "
220 "(EnableAdvertise) to allow or disallow advertisements in the "
221 "range. \n"
222 "\n"
223 "Notes: \n"
224 "- Because RangeOfIPAddresses is scoped by a System (via the "
225 "HostedCollection association), an instance of "
226 "RangeOfIPAddresses would be associated to an OSPFArea, "
227 "satisfying this semantic. \n"
228 "- This class is inherited from LogicalElement, because "
229 "a suitable subclass 'lower' in the inheritance "
230 "hiearchy does not exist.") ]
231 class CIM_OSPFAreaConfiguration : CIM_LogicalElement {
232 kumpf 1.2
233 [Key, Description (
234 "Within the scope of the instantiating Namespace, InstanceID "
235 "opaquely and uniquely identifies an instance of this class. "
236 "In order to ensure uniqueness within the NameSpace, the "
237 "value of InstanceID SHOULD be constructed using the "
238 "following 'preferred' algorithm: \n"
239 " <OrgID>:<OSPFService ID><Area Configuration ID> \n"
240 "where: \n"
241 " <OrgID> and the remainder of the InstanceID "
242 "are separated by a colon ':', and where <OrgID> MUST "
243 "include a copyrighted, trademarked or otherwise unique "
244 "name that is owned by the business entity "
245 "creating/defining the InstanceID, or is a registered ID that "
246 "is assigned to the business entity by a recognized global "
247 "authority. (This is similar to the <Schema Name>_<Class Name> "
248 "structure of Schema class names.) In addition, to ensure "
249 "uniqueness <OrgID> MUST NOT contain a colon (':'). When "
250 "using this algorithm, the first colon to appear in "
251 "InstanceID MUST appear between <OrgID> and the "
252 "<OSPFService ID>. For DMTF defined instances, "
253 kumpf 1.2 "the 'preferred' algorithm MUST be used, and the "
254 "<OrgID> set to 'CIM'. \n"
255 " <OSPFService ID> and <Area Configuration ID> MUST "
256 "specify vendor-unique identifiers for the OSPFService"
257 "and AreaConfiguration.") ]
258 string InstanceID;
259
260 [Description (
261 "This attribute contains the value of the default route that "
262 "this router advertises into a stub area, "
263 "see C.2 RFC 2328."),
264 MappingStrings {"MIB.IETF|OSPF-MIB.ospfStubMetric"} ]
265 uint32 StubDefaultCost;
266
267 [Description (
268 "This attribute contains the type of metric advertised as a "
269 "default route into a stub area, see 3. in RFC 1850."),
270 MappingStrings {"MIB.IETF|OSPF-MIB.ospfStubMetricType"},
271 ValueMap {"2", "3", "4"},
272 Values {"OSPF Metric", "Comparable Cost", "NonComparable"} ]
273 uint16 StubMetricType;
274 kumpf 1.2 };
275
276
277 // ====================================================================
278 // OSPFLink
279 // ====================================================================
280 [Version ("2.7.0"), Description (
281 "This class is used to represent OSPF connectivity between "
282 "two or more OSPF protocol endpoints.") ]
283 class CIM_OSPFLink : CIM_ConnectivityCollection {
284
285 [Required, Description (
286 "The type of the OSPF link, see section 1.2 in RFC 2328."),
287 ValueMap {"2", "3", "4", "5"},
288 Values {"Point-To-Point", "Point-To-Multipoint", "Broadcast",
289 "NBMA"} ]
290 uint16 LinkType;
291
292 [Description (
293 "The time, in seconds, between sending OSPF Hello-packets "
294 "over the interface, see section C.3 in RFC 2328." ),
295 kumpf 1.2 MappingStrings {"MIB.IETF|OSPF-MIB.ospfIfHelloInterval"},
296 Units ("Seconds") ]
297 uint32 HelloInterval;
298
299 [Description (
300 "After ceasing to hear a router's Hello-packets, the number "
301 "of seconds before its neighbors declare the router down, "
302 "see section C.3 in RFC 2328." ),
303 MappingStrings {"MIB.IETF|OSPF-MIB.ospfIfRtrDeadInterval"},
304 Units ("Seconds") ]
305 uint32 RouterDeadInterval;
306
307 [Required, Description (
308 "This parameter indicates whether IP multicast datagrams "
309 "should be forwarded over this OSPF link, and if so, how "
310 "the forwarding should be done, see section B.2 in RFC 1584."),
311 MappingStrings {"MIB.IETF|OSPF-MIB.ospfIfMulticastForwarding"},
312 ValueMap {"2", "3", "4"},
313 Values {"Disabled", "Data-link Multicast",
314 "Data-link Unicast"} ]
315 uint16 MulticastForwarding;
316 kumpf 1.2 };
317
318 // ====================================================================
319 // AreaOfConfiguration
320 // ====================================================================
321 [Association, Version ("2.7.0"), Description (
322 "This association connects an area configuration to its area. "
323 "The OSPFAreaConfiguration class is defined to act as a "
324 "focal point to bring together the router (indicated as a "
325 "ComputerSystem with an instance of OSPFService, associated to the "
326 "AreaConfiguration using OSPFServiceConfiguration), the area "
327 "(indicated as an OSPFArea, associated to the AreaConfiguration "
328 "using AreaOfConfiguration) and the address ranges for "
329 "advertising (indicated as instances of RangeOfIPAddresses, "
330 "associated to the AreaConfiguration using RangesOfConfiguration). "
331 "There is an instance of OSPFAreaConfiguration for each connected "
332 "area of a router/OSPFService.") ]
333 class CIM_AreaOfConfiguration : CIM_Dependency {
334
335 [Override ("Antecedent"), Max (1), Description (
336 "The OSPF area.") ]
337 kumpf 1.2 CIM_OSPFArea REF Antecedent ;
338
339 [Override ("Dependent"), Description (
340 "The configuration which is applied to an OSPF area. This "
341 "is the Dependent reference in this association, since it "
342 "depends on the area for any functional significance.") ]
343 CIM_OSPFAreaConfiguration REF Dependent;
344 };
345
346
347 // ====================================================================
348 // OSPFServiceConfiguration
349 // ====================================================================
350 [Association, Version ("2.7.0"), Description (
351 "OSPFServiceConfiguration connects an OSPF service to its area "
352 "configurations. The configurations are defined for the OSPF"
353 "Service, and so do not make sense as stand alone objects. "
354 "This is the reason for the Min (1), Max (1) cardinalities on "
355 "OSPFService. They mandate the instantiation of the service "
356 "and of this association for the referenced instance of "
357 "OSPFAreaConfiguration. The area configuration acts as "
358 kumpf 1.2 "a focal point to bring together the router (indicated as a "
359 "ComputerSystem with an instance of OSPFService, associated to "
360 "the AreaConfiguration using this relationship), the area "
361 "(indicated as an OSPFArea, associated to the AreaConfiguration "
362 "using AreaOfConfiguration) and the address ranges for advertising "
363 "(indicated as instances of RangeOfIPAddresses, associated to the "
364 "AreaConfiguration using RangesOfConfiguration). There would be an "
365 "instance of OSPFAreaConfiguration for each connected area of a "
366 "router/OSPFService.") ]
367 class CIM_OSPFServiceConfiguration : CIM_Dependency {
368
369 [Override ("Antecedent"), Min (1), Max (1), Description (
370 "The OSPF service.") ]
371 CIM_OSPFService REF Antecedent ;
372
373 [Override ("Dependent"), Description (
374 "The area configuration.") ]
375 CIM_OSPFAreaConfiguration REF Dependent;
376 };
377
378
379 kumpf 1.2 // ====================================================================
380 // RangesOfConfiguration
381 // ====================================================================
382 [Association, Version ("2.7.0"), Description (
383 "This association connects address ranges to the OSPF area "
384 "configuration. When network administrators want to control the "
385 "advertisements of OSPF routers by filters, they first define "
386 "the relevant ranges. In order for a router to handle a range, "
387 "an instance of RangeOfIPAddresses MUST be associated to the "
388 "router's OSPFAreaConfiguration, using this relationship. The "
389 "association between the range and area configuration contains "
390 "a property (EnableAdvertise) defining the handling - "
391 "to allow or disallow advertismenets in the range.") ]
392 class CIM_RangesOfConfiguration : CIM_Dependency {
393
394 [Override ("Antecedent"),
395 Description (
396 "The address range that is in the OSPF area configuration.") ]
397 CIM_RangeOfIPAddresses REF Antecedent;
398
399 [Override ("Dependent"),
400 kumpf 1.2 Description (
401 "The OSPF area configuration that contains the range.") ]
402 CIM_OSPFAreaConfiguration REF Dependent;
403
404 [Description (
405 "The address range is advertised (TRUE) or not (FALSE), "
406 "see C.2 in RFC 2328.") ]
407 boolean EnableAdvertise;
408 };
409
410
411 // ====================================================================
412 // EndpointInLink
413 // ====================================================================
414 [Association, Aggregation, Version ("2.7.0"),
415 Description (
416 "This association connects an OSPFLink to the OSPFProtocol"
417 "Endpoints that this link aggregates.") ]
418 class CIM_EndpointInLink : CIM_MemberOfCollection {
419
420 [Aggregate, Override ("Collection"), Max (1),
421 kumpf 1.2 Description ("The OSPF link.") ]
422 CIM_OSPFLink REF Collection;
423
424 [Override ("Member"),
425 Description ("The OSPF protocol endpoint.") ]
426 CIM_OSPFProtocolEndpointBase REF Member;
427 };
428
429
430 // ====================================================================
431 // EndpointInArea
432 // ====================================================================
433 [Association, Aggregation, Composition,
434 Version ("2.7.0"), Description (
435 "This relation connects an OSPF endpoint to an area.") ]
436 class CIM_EndpointInArea : CIM_Component {
437
438 [Aggregate, Override ("GroupComponent"), Min (1), Max (1),
439 Description ("The OSPF area.") ]
440 CIM_OSPFArea REF GroupComponent;
441
442 kumpf 1.2 [Override ("PartComponent"),
443 Description ("The OSPF endpoint in the area.") ]
444 CIM_OSPFProtocolEndpointBase REF PartComponent;
445 };
446
447
448 // ===================================================================
449 // end of file
450 // ===================================================================
|