// =================================================================== // Title: Network VLAN 2.7 // Filename: Network27_VLAN.mof // Version: 2.7.0 // Status: Final // Date: March 31, 2003 // =================================================================== // Copyright 1998-2003 Distributed Management Task Force, Inc. (DMTF). // All rights reserved. // DMTF is a not-for-profit association of industry members dedicated // to promoting enterprise and systems management and interoperability. // DMTF specifications and documents may be reproduced for uses // consistent with this purpose by members and non-members, // provided that correct attribution is given. // As DMTF specifications may be revised from time to time, // the particular version and release date should always be noted. // // Implementation of certain elements of this standard or proposed // standard may be subject to third party patent rights, including // provisional patent rights (herein "patent rights"). DMTF makes // no representations to users of the standard as to the existence // of such rights, and is not responsible to recognize, disclose, or // identify any or all such third party patent right, owners or // claimants, nor for any incomplete or inaccurate identification or // disclosure of such rights, owners or claimants. DMTF shall have no // liability to any party, in any manner or circumstance, under any // legal theory whatsoever, for failure to recognize, disclose, or // identify any such third party patent rights, or for such party's // reliance on the standard or incorporation thereof in its product, // protocols or testing procedures. DMTF shall have no liability to // any party implementing such standard, whether such implementation // is foreseeable or not, nor to any patent owner or claimant, and shall // have no liability or responsibility for costs or losses incurred if // a standard is withdrawn or modified after publication, and shall be // indemnified and held harmless by any party implementing the // standard from any and all claims of infringement by a patent owner // for such implementations. // // For information about patents held by third-parties which have // notified the DMTF that, in their opinion, such patent may relate to // or impact implementations of DMTF standards, visit // http://www.dmtf.org/about/policies/disclosures.php. // =================================================================== // Description: The Network Model extends the management concepts to // represent protocol interfaces and network/protocol // services. This file defines VLAN (virtual LAN) // concepts. // // The object classes below are listed in an order that // avoids forward references. Required objects, defined // by other working groups, are omitted. // ================================================================== // Change Log for v2.7 // CR867 - Remove Min(1), Max(1) cardinality restrictions on Related // TransparentBridgingService // CR920 - Add missing parenthesis to the Description for CIM_VLAN // =================================================================== #pragma Locale ("en_US") // ================================================================== // VLAN // ================================================================== [Version ("2.6.0"), Description ( "An instance of VLAN represents a VLAN within a switch. " "In a particular switch, there should be an instance of VLAN " "for every VLAN available. For example, in a switch with " "port-based VLANs, if there are 16 VLANs to which ports can " "be assigned (VLAN 1 through VLAN 16), there should " "be an instance of CIM_VLAN for each of VLAN 1 through " "VLAN 16. \n" "\n" "VLAN inherits Name from ServiceAccessPoint. Use this for " "the textual name of the VLAN, if there is one. Otherwise, " "synthesize a textual name, e.g., VLAN 0003. (Consider " "leading zero fill, as shown, to ensure that if the textual " "VLAN names are extracted and presented by a management " "applictions, the VLAN names will sort in the expected order.) " "The numeric part of the name should be at least four " "digits wide since 802.1Q specifies 4095 VLANs. \n" "\n" "It is intended that VLAN be subclassed only if necessary " "to add attributes. The type of the VLAN can be inferred from " "the VLANService(s) with which the VLAN is associated " "in the VLANFor association. \n" "\n" "An instance of VLAN may be associated with more than one " "VLANService. For example, there are switches that " "support both 802.1Q VLANs and the vendor's proprietary " "VLANs. In some such switches, if a broadcast packet is received " "on a port in an 802.1Q VLAN (VLAN 5, for example), it may be " "be transmitted from a port in a 'proprietary' VLAN 5. In effect, " "there is only one VLAN 5, and the type of port only determines " "the packet format for tagged packets. In the case just described, " "only one instance of CIM_VLAN should be instantiated for VLAN 5, " "and it should be associated both with the 802.1Q VLANService " "and the proprietary VLANService. \n" "\n" "In typical VLAN-aware switches, packets can be assigned to " "a VLAN based on the port on which they are received " "(port-based VLANS), based on the source MAC address " "(MAC-based VLANs), or based on the value of a set of bits in " "the packet (protocol-based VLANs). If it is desirable to " "represent the VLAN assignment predicate for some MAC-based " "VLAN switch, it will be necessary to subclass VLAN. The list " "of MAC addresses associated with a VLAN might be an " "attribute of the subclass. If it is desirable to represent" "the VLAN assignment predicate in a protocol-based VLAN " "switch, it will also be necessary to subclass VLAN, " "InboundVLAN, or both. If the predicate applies to all ports " "in the switch, then only VLAN need be used/instantiated. If " "the predicate may vary based on the port, then InboundVLAN must " "be subclassed, and CIM_VLAN might have to be subclassed " "as well.") ] class CIM_VLAN : CIM_ServiceAccessPoint { [Description ("VLAN identifying number.") ] uint32 VLANNumber; }; // ================================================================== // InboundVLAN // ================================================================== [Association, Version ("2.6.0"), Description ( "This association makes explicit the operational " "dependencies of a SwitchPort when operating in a VLAN. If " "there is an association between a particular " "SwitchPort and a particular VLAN, then there is the " "possibility that a packet received by the port will be " "assigned to the VLAN (or if the packet already has a VLAN " "tag, that the packet will not be dropped). If there is no " "such association, then there is NO possibility that a " "packet received by the port will progress through the " "switch having been assigned to the referenced VLAN.") ] class CIM_InboundVLAN : CIM_SAPSAPDependency { [Override ("Antecedent"), Description ("The VLAN to which the SwitchPort is assigned.") ] CIM_VLAN REF Antecedent; [Override ("Dependent"), Description ("The SwitchPort on the VLAN.") ] CIM_SwitchPort REF Dependent; [Description ( "If TRUE, packets already tagged with this VLAN number will " "be accepted when arriving at this port. For example, if " "there is an InboundVLAN association between port 12 and " "VLAN 7 for which Tagged is true, then when a packet tagged " "with VLAN 7 arrives at port 12, the packet will be " "accepted into the switch for further processing. If there " "is no such association, then the packet will be dropped. \n" "\n" "If FALSE, it means that any untagged packets arriving at " "this port MIGHT be classified into the associated VLAN. " "If, for a particular SwitchPort, there is only one instance " "of the association for which Tagged is FALSE, then all " "incoming untagged packets will be classified into that VLAN. " "This is the typical configuration of a non-trunk port in a " "switch implementing port-based VLANs. If there is more than " "one such association instance, then the packet MIGHT be " "classified into any one of them, based on some criterion " "other than the identity of the switch port. For example, " "in a MAC-based VLAN switch, the decision would be based on " "the source MAC address. In a protocol-based VLAN switch, " "the decision would be based on the values of some set of " "bits in the packet. \n" "\n" "Note that the MAC address is formatted as twelve " "hexadecimal digits (e.g., \"010203040506\"), with each " "pair representing one of the six octets of the MAC address " "in \"canonical\" bit order according to RFC 2469.") ] boolean Tagged; [Description ( "Default should be TRUE if untagged packets received by the " "SwitchPort are assigned to the VLAN. For 802.1Q-compliant " "ports, the Default property should be TRUE on the " "association instance connecting a SwitchPort to the VLAN " "corresponding to the port's PVID. Default MUST never be " "TRUE if Tagged is true -- it applies only to untagged " "packets.") ] boolean Default; }; // ================================================================== // OutboundVLAN // ================================================================== [Association, Version ("2.6.0"), Description ( "This association makes explicit the operational " "dependencies of a SwitchPort when operating in a VLAN. " "If there is no instance of OutboundVLAN between a given " "SwitchPort and VLAN, then any packet that has been " "assigned to the VLAN and whose destination address is " "associated with the port will be dropped by the switch " "without being transmitted. Otherwise, the packet will be " "transmitted.") ] class CIM_OutboundVLAN : CIM_SAPSAPDependency { [Override ("Antecedent"), Description ("The VLAN to which the SwitchPort is assigned.") ] CIM_VLAN REF Antecedent; [Override ("Dependent"), Description ("The SwitchPort on the VLAN.") ] CIM_SwitchPort REF Dependent; [Description ( "If Tagged is TRUE, then the packet will be transmitted in " "encapsulated form, tagged with the associated VLAN tag. If " "Tagged is FALSE, the packet will be trasmitted without any " "VLAN tag.") ] boolean Tagged; }; // ================================================================== // VLANService // ================================================================== [Abstract, Version ("2.6.0"), Description ( "VLANService represents the VLAN aspects of the function " "performed by a switch. Some VLAN-aware devices participate " "in protocols where VLAN information is propagated among " "switches, e.g., GVRP in 802.1Q switches and VTP in Cisco " "Catalyst switches. VLANService also represents the function " "performed by the switch as a participant in such a protocol. " "VLANService must be subclassed so that the type of instance " "can be distinguished by its class.") ] class CIM_VLANService : CIM_Service { }; // ================================================================== // 802dot1QVLANService // ================================================================== [Version ("2.6.0"), Description ( "If a switch supports 802.1Q, an instance of this class " "should be instantiated in the switch. If the switch " "supports GVRP, this class represents the function that " "the switch performs with respect to GVRP.") ] class CIM_802dot1QVLANService : CIM_VLANService { }; // ================================================================== // VLANFor // ================================================================== [Association, Version ("2.6.0"), Description( "The VLAN for the VLAN Service.") ] class CIM_VLANFor : CIM_ServiceSAPDependency { [Override ("Antecedent"), Description ( "The VLAN for the VLANService.") ] CIM_VLAN REF Antecedent; [Override ("Dependent"), Min (1), Description ( "The VLANService which uses the VLAN for processing.") ] CIM_VLANService REF Dependent; }; // ================================================================== // SwitchServiceVLAN // ================================================================== [Association, Aggregation, Version ("2.6.0"), Description ( "An association linking SwitchService to a component " "VLANService.") ] class CIM_SwitchServiceVLAN : CIM_ServiceComponent { [Override ("GroupComponent"), Aggregate, Min (1), Max (1), Description ( "The SwitchService containing the VLANService.") ] CIM_SwitchService REF GroupComponent; [Override ("PartComponent"), Description ( "The VLANService that is a component of the SwitchService.") ] CIM_VLANService REF PartComponent; }; // ================================================================== // RelatedTransparentBridgingService // ================================================================== [Association, Version ("2.6.0"), Description ( "The association between a VLAN and the forwarding database " "(some use the term filtering database) used to determine " "which port a packet should be transmitted on, given that it " "is assigned to the VLAN and that it has a particular " "destination MAC address. The TransparentBridgingService " "represents a forwarding database.") ] class CIM_RelatedTransparentBridgingService : CIM_ServiceSAPDependency { [Override ("Antecedent"), Description ("The VLAN.") ] CIM_VLAN REF Antecedent; [Override ("Dependent"), Description ( "The BridgingService that determines the port, given the " "the VLAN and addressing information.") ] CIM_TransparentBridgingService REF Dependent; }; // =================================================================== // end of file // ===================================================================