1 kumpf 1.2 // ===================================================================
2 // Title: Network VLAN 2.7
3 // Filename: Network27_VLAN.mof
4 // Version: 2.7.0
5 // Status: Final
6 // Date: March 31, 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 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
54 // CR867 - Remove Min(1), Max(1) cardinality restrictions on Related
55 // TransparentBridgingService
56 // CR920 - Add missing parenthesis to the Description for CIM_VLAN
57 // ===================================================================
58
59 #pragma Locale ("en_US")
60
61
62 // ==================================================================
63 // VLAN
64 kumpf 1.2 // ==================================================================
65 [Version ("2.6.0"), Description (
66 "An instance of VLAN represents a VLAN within a switch. "
67 "In a particular switch, there should be an instance of VLAN "
68 "for every VLAN available. For example, in a switch with "
69 "port-based VLANs, if there are 16 VLANs to which ports can "
70 "be assigned (VLAN 1 through VLAN 16), there should "
71 "be an instance of CIM_VLAN for each of VLAN 1 through "
72 "VLAN 16. \n"
73 "\n"
74 "VLAN inherits Name from ServiceAccessPoint. Use this for "
75 "the textual name of the VLAN, if there is one. Otherwise, "
76 "synthesize a textual name, e.g., VLAN 0003. (Consider "
77 "leading zero fill, as shown, to ensure that if the textual "
78 "VLAN names are extracted and presented by a management "
79 "applictions, the VLAN names will sort in the expected order.) "
80 "The numeric part of the name should be at least four "
81 "digits wide since 802.1Q specifies 4095 VLANs. \n"
82 "\n"
83 "It is intended that VLAN be subclassed only if necessary "
84 "to add attributes. The type of the VLAN can be inferred from "
85 kumpf 1.2 "the VLANService(s) with which the VLAN is associated "
86 "in the VLANFor association. \n"
87 "\n"
88 "An instance of VLAN may be associated with more than one "
89 "VLANService. For example, there are switches that "
90 "support both 802.1Q VLANs and the vendor's proprietary "
91 "VLANs. In some such switches, if a broadcast packet is received "
92 "on a port in an 802.1Q VLAN (VLAN 5, for example), it may be "
93 "be transmitted from a port in a 'proprietary' VLAN 5. In effect, "
94 "there is only one VLAN 5, and the type of port only determines "
95 "the packet format for tagged packets. In the case just described, "
96 "only one instance of CIM_VLAN should be instantiated for VLAN 5, "
97 "and it should be associated both with the 802.1Q VLANService "
98 "and the proprietary VLANService. \n"
99 "\n"
100 "In typical VLAN-aware switches, packets can be assigned to "
101 "a VLAN based on the port on which they are received "
102 "(port-based VLANS), based on the source MAC address "
103 "(MAC-based VLANs), or based on the value of a set of bits in "
104 "the packet (protocol-based VLANs). If it is desirable to "
105 "represent the VLAN assignment predicate for some MAC-based "
106 kumpf 1.2 "VLAN switch, it will be necessary to subclass VLAN. The list "
107 "of MAC addresses associated with a VLAN might be an "
108 "attribute of the subclass. If it is desirable to represent"
109 "the VLAN assignment predicate in a protocol-based VLAN "
110 "switch, it will also be necessary to subclass VLAN, "
111 "InboundVLAN, or both. If the predicate applies to all ports "
112 "in the switch, then only VLAN need be used/instantiated. If "
113 "the predicate may vary based on the port, then InboundVLAN must "
114 "be subclassed, and CIM_VLAN might have to be subclassed "
115 "as well.") ]
116 class CIM_VLAN : CIM_ServiceAccessPoint {
117
118 [Description ("VLAN identifying number.") ]
119 uint32 VLANNumber;
120 };
121
122
123 // ==================================================================
124 // InboundVLAN
125 // ==================================================================
126 [Association, Version ("2.6.0"), Description (
127 kumpf 1.2 "This association makes explicit the operational "
128 "dependencies of a SwitchPort when operating in a VLAN. If "
129 "there is an association between a particular "
130 "SwitchPort and a particular VLAN, then there is the "
131 "possibility that a packet received by the port will be "
132 "assigned to the VLAN (or if the packet already has a VLAN "
133 "tag, that the packet will not be dropped). If there is no "
134 "such association, then there is NO possibility that a "
135 "packet received by the port will progress through the "
136 "switch having been assigned to the referenced VLAN.") ]
137 class CIM_InboundVLAN : CIM_SAPSAPDependency {
138
139 [Override ("Antecedent"),
140 Description ("The VLAN to which the SwitchPort is assigned.") ]
141 CIM_VLAN REF Antecedent;
142
143 [Override ("Dependent"),
144 Description ("The SwitchPort on the VLAN.") ]
145 CIM_SwitchPort REF Dependent;
146
147 [Description (
148 kumpf 1.2 "If TRUE, packets already tagged with this VLAN number will "
149 "be accepted when arriving at this port. For example, if "
150 "there is an InboundVLAN association between port 12 and "
151 "VLAN 7 for which Tagged is true, then when a packet tagged "
152 "with VLAN 7 arrives at port 12, the packet will be "
153 "accepted into the switch for further processing. If there "
154 "is no such association, then the packet will be dropped. \n"
155 "\n"
156 "If FALSE, it means that any untagged packets arriving at "
157 "this port MIGHT be classified into the associated VLAN. "
158 "If, for a particular SwitchPort, there is only one instance "
159 "of the association for which Tagged is FALSE, then all "
160 "incoming untagged packets will be classified into that VLAN. "
161 "This is the typical configuration of a non-trunk port in a "
162 "switch implementing port-based VLANs. If there is more than "
163 "one such association instance, then the packet MIGHT be "
164 "classified into any one of them, based on some criterion "
165 "other than the identity of the switch port. For example, "
166 "in a MAC-based VLAN switch, the decision would be based on "
167 "the source MAC address. In a protocol-based VLAN switch, "
168 "the decision would be based on the values of some set of "
169 kumpf 1.2 "bits in the packet. \n"
170 "\n"
171 "Note that the MAC address is formatted as twelve "
172 "hexadecimal digits (e.g., \"010203040506\"), with each "
173 "pair representing one of the six octets of the MAC address "
174 "in \"canonical\" bit order according to RFC 2469.") ]
175 boolean Tagged;
176
177 [Description (
178 "Default should be TRUE if untagged packets received by the "
179 "SwitchPort are assigned to the VLAN. For 802.1Q-compliant "
180 "ports, the Default property should be TRUE on the "
181 "association instance connecting a SwitchPort to the VLAN "
182 "corresponding to the port's PVID. Default MUST never be "
183 "TRUE if Tagged is true -- it applies only to untagged "
184 "packets.") ]
185 boolean Default;
186 };
187
188
189 // ==================================================================
190 kumpf 1.2 // OutboundVLAN
191 // ==================================================================
192 [Association, Version ("2.6.0"), Description (
193 "This association makes explicit the operational "
194 "dependencies of a SwitchPort when operating in a VLAN. "
195 "If there is no instance of OutboundVLAN between a given "
196 "SwitchPort and VLAN, then any packet that has been "
197 "assigned to the VLAN and whose destination address is "
198 "associated with the port will be dropped by the switch "
199 "without being transmitted. Otherwise, the packet will be "
200 "transmitted.") ]
201 class CIM_OutboundVLAN : CIM_SAPSAPDependency {
202
203 [Override ("Antecedent"),
204 Description ("The VLAN to which the SwitchPort is assigned.") ]
205 CIM_VLAN REF Antecedent;
206
207 [Override ("Dependent"),
208 Description ("The SwitchPort on the VLAN.") ]
209 CIM_SwitchPort REF Dependent;
210
211 kumpf 1.2 [Description (
212 "If Tagged is TRUE, then the packet will be transmitted in "
213 "encapsulated form, tagged with the associated VLAN tag. If "
214 "Tagged is FALSE, the packet will be trasmitted without any "
215 "VLAN tag.") ]
216 boolean Tagged;
217 };
218
219
220 // ==================================================================
221 // VLANService
222 // ==================================================================
223 [Abstract, Version ("2.6.0"), Description (
224 "VLANService represents the VLAN aspects of the function "
225 "performed by a switch. Some VLAN-aware devices participate "
226 "in protocols where VLAN information is propagated among "
227 "switches, e.g., GVRP in 802.1Q switches and VTP in Cisco "
228 "Catalyst switches. VLANService also represents the function "
229 "performed by the switch as a participant in such a protocol. "
230 "VLANService must be subclassed so that the type of instance "
231 "can be distinguished by its class.") ]
232 kumpf 1.2 class CIM_VLANService : CIM_Service {
233 };
234
235
236 // ==================================================================
237 // 802dot1QVLANService
238 // ==================================================================
239 [Version ("2.6.0"), Description (
240 "If a switch supports 802.1Q, an instance of this class "
241 "should be instantiated in the switch. If the switch "
242 "supports GVRP, this class represents the function that "
243 "the switch performs with respect to GVRP.") ]
244 class CIM_802dot1QVLANService : CIM_VLANService {
245 };
246
247
248 // ==================================================================
249 // VLANFor
250 // ==================================================================
251 [Association, Version ("2.6.0"), Description(
252 "The VLAN for the VLAN Service.") ]
253 kumpf 1.2 class CIM_VLANFor : CIM_ServiceSAPDependency {
254
255 [Override ("Antecedent"), Description (
256 "The VLAN for the VLANService.") ]
257 CIM_VLAN REF Antecedent;
258
259 [Override ("Dependent"), Min (1), Description (
260 "The VLANService which uses the VLAN for processing.") ]
261 CIM_VLANService REF Dependent;
262 };
263
264
265 // ==================================================================
266 // SwitchServiceVLAN
267 // ==================================================================
268 [Association, Aggregation, Version ("2.6.0"),
269 Description (
270 "An association linking SwitchService to a component "
271 "VLANService.") ]
272 class CIM_SwitchServiceVLAN : CIM_ServiceComponent {
273
274 kumpf 1.2 [Override ("GroupComponent"), Aggregate, Min (1), Max (1),
275 Description (
276 "The SwitchService containing the VLANService.") ]
277 CIM_SwitchService REF GroupComponent;
278
279 [Override ("PartComponent"), Description (
280 "The VLANService that is a component of the SwitchService.") ]
281 CIM_VLANService REF PartComponent;
282 };
283
284
285 // ==================================================================
286 // RelatedTransparentBridgingService
287 // ==================================================================
288 [Association, Version ("2.6.0"), Description (
289 "The association between a VLAN and the forwarding database "
290 "(some use the term filtering database) used to determine "
291 "which port a packet should be transmitted on, given that it "
292 "is assigned to the VLAN and that it has a particular "
293 "destination MAC address. The TransparentBridgingService "
294 "represents a forwarding database.") ]
295 kumpf 1.2 class CIM_RelatedTransparentBridgingService :
296 CIM_ServiceSAPDependency {
297
298 [Override ("Antecedent"), Description ("The VLAN.") ]
299 CIM_VLAN REF Antecedent;
300
301 [Override ("Dependent"), Description (
302 "The BridgingService that determines the port, given the "
303 "the VLAN and addressing information.") ]
304 CIM_TransparentBridgingService REF Dependent;
305 };
306
307
308 // ===================================================================
309 // end of file
310 // ===================================================================
|