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