1 karl 1.1 // ===================================================================
2 // Title: Network VLAN 2.7
3 // Filename: Network27_VLAN.mof
4 // Version: 2.7.1
5 // Status: Preliminary
6 // Date: November 12 2002
7 // ===================================================================
8 // Copyright 1998-2002 Distributed Management Task Force, Inc. (DMTF).
9 // All rights reserved.
10 // DMTF is a not-for-profit association of industry members dedicated
11 // to promoting enterprise and systems management and interoperability.
12 // DMTF specifications and documents may be reproduced for uses
13 // consistent with this purpose by members and non-members,
14 // provided that correct attribution is given.
15 // As DMTF specifications may be revised from time to time,
16 // the particular version and release date should always be noted.
17 //
18 // Implementation of certain elements of this standard or proposed
19 // standard may be subject to third party patent rights, including
20 // provisional patent rights (herein "patent rights"). DMTF makes
21 // no representations to users of the standard as to the existence
22 karl 1.1 // of such rights, and is not responsible to recognize, disclose, or
23 // identify any or all such third party patent right, owners or
24 // claimants, nor for any incomplete or inaccurate identification or
25 // disclosure of such rights, owners or claimants. DMTF shall have no
26 // liability to any party, in any manner or circumstance, under any
27 // legal theory whatsoever, for failure to recognize, disclose, or
28 // identify any such third party patent rights, or for such party's
29 // reliance on the standard or incorporation thereof in its product,
30 // protocols or testing procedures. DMTF shall have no liability to
31 // any party implementing such standard, whether such implementation
32 // is foreseeable or not, nor to any patent owner or claimant, and shall
33 // have no liability or responsibility for costs or losses incurred if
34 // a standard is withdrawn or modified after publication, and shall be
35 // indemnified and held harmless by any party implementing the
36 // standard from any and all claims of infringement by a patent owner
37 // for such implementations.
38 //
39 // For information about patents held by third-parties which have
40 // notified the DMTF that, in their opinion, such patent may relate to
41 // or impact implementations of DMTF standards, visit
42 // http://www.dmtf.org/about/policies/disclosures.php.
43 karl 1.1 // ===================================================================
44 // Description: The Network Model extends the management concepts to
45 // represent protocol interfaces and network/protocol
46 // services. This file defines VLAN (virtual LAN)
47 // concepts.
48 //
49 // The object classes below are listed in an order that
50 // avoids forward references. Required objects, defined
51 // by other working groups, are omitted.
52 // ==================================================================
53 // Change Log for v2.7.1
54 // CR920 - Add missing parenthesis to the Description for CIM_VLAN
55 //
56 // Change Log for v2.7
57 // CR867 - Remove Min(1), Max(1) cardinality restrictions on Related
58 // TransparentBridgingService
59 // ===================================================================
60
61 #pragma Locale ("en_US")
62
63
64 karl 1.1 // ==================================================================
65 // VLAN
66 // ==================================================================
67 [Version ("2.6.0"), Description (
68 "An instance of VLAN represents a VLAN within a switch. "
69 "In a particular switch, there should be an instance of VLAN "
70 "for every VLAN available. For example, in a switch with "
71 "port-based VLANs, if there are 16 VLANs to which ports can "
72 "be assigned (VLAN 1 through VLAN 16), there should "
73 "be an instance of CIM_VLAN for each of VLAN 1 through "
74 "VLAN 16. \n"
75 "\n"
76 "VLAN inherits Name from ServiceAccessPoint. Use this for "
77 "the textual name of the VLAN, if there is one. Otherwise, "
78 "synthesize a textual name, e.g., VLAN 0003. (Consider "
79 "leading zero fill, as shown, to ensure that if the textual "
80 "VLAN names are extracted and presented by a management "
81 "applictions, the VLAN names will sort in the expected order.) "
82 "The numeric part of the name should be at least four "
83 "digits wide since 802.1Q specifies 4095 VLANs. \n"
84 "\n"
85 karl 1.1 "It is intended that VLAN be subclassed only if necessary "
86 "to add attributes. The type of the VLAN can be inferred from "
87 "the VLANService(s) with which the VLAN is associated "
88 "in the VLANFor association. \n"
89 "\n"
90 "An instance of VLAN may be associated with more than one "
91 "VLANService. For example, there are switches that "
92 "support both 802.1Q VLANs and the vendor's proprietary "
93 "VLANs. In some such switches, if a broadcast packet is received "
94 "on a port in an 802.1Q VLAN (VLAN 5, for example), it may be "
95 "be transmitted from a port in a 'proprietary' VLAN 5. In effect, "
96 "there is only one VLAN 5, and the type of port only determines "
97 "the packet format for tagged packets. In the case just described, "
98 "only one instance of CIM_VLAN should be instantiated for VLAN 5, "
99 "and it should be associated both with the 802.1Q VLANService "
100 "and the proprietary VLANService. \n"
101 "\n"
102 "In typical VLAN-aware switches, packets can be assigned to "
103 "a VLAN based on the port on which they are received "
104 "(port-based VLANS), based on the source MAC address "
105 "(MAC-based VLANs), or based on the value of a set of bits in "
106 karl 1.1 "the packet (protocol-based VLANs). If it is desirable to "
107 "represent the VLAN assignment predicate for some MAC-based "
108 "VLAN switch, it will be necessary to subclass VLAN. The list "
109 "of MAC addresses associated with a VLAN might be an "
110 "attribute of the subclass. If it is desirable to represent"
111 "the VLAN assignment predicate in a protocol-based VLAN "
112 "switch, it will also be necessary to subclass VLAN, "
113 "InboundVLAN, or both. If the predicate applies to all ports "
114 "in the switch, then only VLAN need be used/instantiated. If "
115 "the predicate may vary based on the port, then InboundVLAN must "
116 "be subclassed, and CIM_VLAN might have to be subclassed "
117 "as well.") ]
118 class CIM_VLAN : CIM_ServiceAccessPoint {
119
120 [Description ("VLAN identifying number.") ]
121 uint32 VLANNumber;
122 };
123
124
125 // ==================================================================
126 // InboundVLAN
127 karl 1.1 // ==================================================================
128 [Association, Version ("2.6.0"), Description (
129 "This association makes explicit the operational "
130 "dependencies of a SwitchPort when operating in a VLAN. If "
131 "there is an association between a particular "
132 "SwitchPort and a particular VLAN, then there is the "
133 "possibility that a packet received by the port will be "
134 "assigned to the VLAN (or if the packet already has a VLAN "
135 "tag, that the packet will not be dropped). If there is no "
136 "such association, then there is NO possibility that a "
137 "packet received by the port will progress through the "
138 "switch having been assigned to the referenced VLAN.") ]
139 class CIM_InboundVLAN : CIM_SAPSAPDependency {
140
141 [Override ("Antecedent"),
142 Description ("The VLAN to which the SwitchPort is assigned.") ]
143 CIM_VLAN REF Antecedent;
144
145 [Override ("Dependent"),
146 Description ("The SwitchPort on the VLAN.") ]
147 CIM_SwitchPort REF Dependent;
148 karl 1.1
149 [Description (
150 "If TRUE, packets already tagged with this VLAN number will "
151 "be accepted when arriving at this port. For example, if "
152 "there is an InboundVLAN association between port 12 and "
153 "VLAN 7 for which Tagged is true, then when a packet tagged "
154 "with VLAN 7 arrives at port 12, the packet will be "
155 "accepted into the switch for further processing. If there "
156 "is no such association, then the packet will be dropped. \n"
157 "\n"
158 "If FALSE, it means that any untagged packets arriving at "
159 "this port MIGHT be classified into the associated VLAN. "
160 "If, for a particular SwitchPort, there is only one instance "
161 "of the association for which Tagged is FALSE, then all "
162 "incoming untagged packets will be classified into that VLAN. "
163 "This is the typical configuration of a non-trunk port in a "
164 "switch implementing port-based VLANs. If there is more than "
165 "one such association instance, then the packet MIGHT be "
166 "classified into any one of them, based on some criterion "
167 "other than the identity of the switch port. For example, "
168 "in a MAC-based VLAN switch, the decision would be based on "
169 karl 1.1 "the source MAC address. In a protocol-based VLAN switch, "
170 "the decision would be based on the values of some set of "
171 "bits in the packet. \n"
172 "\n"
173 "Note that the MAC address is formatted as twelve "
174 "hexadecimal digits (e.g., \"010203040506\"), with each "
175 "pair representing one of the six octets of the MAC address "
176 "in \"canonical\" bit order according to RFC 2469.") ]
177 boolean Tagged;
178
179 [Description (
180 "Default should be TRUE if untagged packets received by the "
181 "SwitchPort are assigned to the VLAN. For 802.1Q-compliant "
182 "ports, the Default property should be TRUE on the "
183 "association instance connecting a SwitchPort to the VLAN "
184 "corresponding to the port's PVID. Default MUST never be "
185 "TRUE if Tagged is true -- it applies only to untagged "
186 "packets.") ]
187 boolean Default;
188 };
189
190 karl 1.1
191 // ==================================================================
192 // OutboundVLAN
193 // ==================================================================
194 [Association, Version ("2.6.0"), Description (
195 "This association makes explicit the operational "
196 "dependencies of a SwitchPort when operating in a VLAN. "
197 "If there is no instance of OutboundVLAN between a given "
198 "SwitchPort and VLAN, then any packet that has been "
199 "assigned to the VLAN and whose destination address is "
200 "associated with the port will be dropped by the switch "
201 "without being transmitted. Otherwise, the packet will be "
202 "transmitted.") ]
203 class CIM_OutboundVLAN : CIM_SAPSAPDependency {
204
205 [Override ("Antecedent"),
206 Description ("The VLAN to which the SwitchPort is assigned.") ]
207 CIM_VLAN REF Antecedent;
208
209 [Override ("Dependent"),
210 Description ("The SwitchPort on the VLAN.") ]
211 karl 1.1 CIM_SwitchPort REF Dependent;
212
213 [Description (
214 "If Tagged is TRUE, then the packet will be transmitted in "
215 "encapsulated form, tagged with the associated VLAN tag. If "
216 "Tagged is FALSE, the packet will be trasmitted without any "
217 "VLAN tag.") ]
218 boolean Tagged;
219 };
220
221
222 // ==================================================================
223 // VLANService
224 // ==================================================================
225 [Abstract, Version ("2.6.0"), Description (
226 "VLANService represents the VLAN aspects of the function "
227 "performed by a switch. Some VLAN-aware devices participate "
228 "in protocols where VLAN information is propagated among "
229 "switches, e.g., GVRP in 802.1Q switches and VTP in Cisco "
230 "Catalyst switches. VLANService also represents the function "
231 "performed by the switch as a participant in such a protocol. "
232 karl 1.1 "VLANService must be subclassed so that the type of instance "
233 "can be distinguished by its class.") ]
234 class CIM_VLANService : CIM_Service {
235 };
236
237
238 // ==================================================================
239 // 802dot1QVLANService
240 // ==================================================================
241 [Version ("2.6.0"), Description (
242 "If a switch supports 802.1Q, an instance of this class "
243 "should be instantiated in the switch. If the switch "
244 "supports GVRP, this class represents the function that "
245 "the switch performs with respect to GVRP.") ]
246 class CIM_802dot1QVLANService : CIM_VLANService {
247 };
248
249
250 // ==================================================================
251 // VLANFor
252 // ==================================================================
253 karl 1.1 [Association, Version ("2.6.0"), Description(
254 "The VLAN for the VLAN Service.") ]
255 class CIM_VLANFor : CIM_ServiceSAPDependency {
256
257 [Override ("Antecedent"), Description (
258 "The VLAN for the VLANService.") ]
259 CIM_VLAN REF Antecedent;
260
261 [Override ("Dependent"), Min (1), Description (
262 "The VLANService which uses the VLAN for processing.") ]
263 CIM_VLANService REF Dependent;
264 };
265
266
267 // ==================================================================
268 // SwitchServiceVLAN
269 // ==================================================================
270 [Association, Aggregation, Version ("2.6.0"),
271 Description (
272 "An association linking SwitchService to a component "
273 "VLANService.") ]
274 karl 1.1 class CIM_SwitchServiceVLAN : CIM_ServiceComponent {
275
276 [Override ("GroupComponent"), Aggregate, Min (1), Max (1),
277 Description (
278 "The SwitchService containing the VLANService.") ]
279 CIM_SwitchService REF GroupComponent;
280
281 [Override ("PartComponent"), Description (
282 "The VLANService that is a component of the SwitchService.") ]
283 CIM_VLANService REF PartComponent;
284 };
285
286
287 // ==================================================================
288 // RelatedTransparentBridgingService
289 // ==================================================================
290 [Association, Version ("2.6.0"), Description (
291 "The association between a VLAN and the forwarding database "
292 "(some use the term filtering database) used to determine "
293 "which port a packet should be transmitted on, given that it "
294 "is assigned to the VLAN and that it has a particular "
295 karl 1.1 "destination MAC address. The TransparentBridgingService "
296 "represents a forwarding database.") ]
297 class CIM_RelatedTransparentBridgingService :
298 CIM_ServiceSAPDependency {
299
300 [Override ("Antecedent"), Description ("The VLAN.") ]
301 CIM_VLAN REF Antecedent;
302
303 [Override ("Dependent"), Description (
304 "The BridgingService that determines the port, given the "
305 "the VLAN and addressing information.") ]
306 CIM_TransparentBridgingService REF Dependent;
307 };
308
309
310 // ===================================================================
311 // end of file
312 // ===================================================================
|