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