// Copyright (c) 2009 DMTF. All rights reserved. [Version ( "2.22.0" ), UMLPackagePath ( "CIM::Device::Controller" ), Description ( "A device that is a replacement for physical cables and allows " "internal network physical ports in a chassis or rack to be " "made accessible from the external network. This may a fixed " "internal port to external port relationship, or a configurable " "mapping of internal ports to output ports via a cross-point " "switching function. The mapping between an internal and " "external port is modeled using the InternalPorts and " "ExternalPorts array properties. Corresponding array indices of " "the InternalPorts and ExternalPorts properties shall contain " "the port number of the internal port and external port, " "respectively in a mapping pair. Usage of this class is " "appropriate when modeling a simple n x n pass through module " "where the protocols supported by the module are not the target " "of management. Implementations wishing to enable management of " "the network function should instrument the appropriate device " "and network models. The tie into the device and network models " "is accomplished by correlating the port numbers in this class\' " "internal and external port arrays with CIM_NetworkPort\'s " "PortNumber property. The following is an example of how this " "class could be used: \n" "For a given instance, the value of NumberOfPorts is 3. This " "indicates that there are 3 internal ports and 3 external " "ports. Internal port 2 is mapped to external port 3. Internal " "ports 1 and 3 are not mapped to an external port. External " "ports 1 and 2 are not mapped to internal ports. For this " "instance the length of the InternalPorts and ExternalPorts " "arrays shall both be one. The first array position in " "InternalPortshall contain the value 2. The first array " "position in ExternalPorts shall contain the value 3." )] class CIM_PassThroughModule : CIM_LogicalModule { [Description ( "An enumeration of the link technologies that can be " "passed- through by this device. When set to 1 (\"Other\"), " "the property OtherLinkTechnologies contains string " "descriptions of the alternative link types." ), ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12..32767", "32768..65535" }, Values { "Unknown", "Other", "Ethernet", "IB", "FC", "FDDI", "ATM", "Token Ring", "Frame Relay", "Infrared", "BlueTooth", "Wireless LAN", "DMTF Reserved", "Vendor Specified" }, ArrayType ( "Indexed" ), ModelCorrespondence { "CIM_PassThroughModule.OtherLinkTechnologies" }] uint16 LinkTechnologies[]; [Description ( "An array of string values describing the supported " "technologies when an entry in the LinkTechnologies array " "is set to 1, \"Other\"." ), ArrayType ( "Indexed" ), ModelCorrespondence { "CIM_PassThroughModule.LinkTechnologies" }] string OtherLinkTechnologies[]; [Description ( "Boolean indicating if the port assignments on this " "switch are software programmable or not." )] boolean IsProgrammable = false; [Description ( "A PassThroughModule is a simple module with 1-1 " "correspondence between internal and external ports. This " "number represents the number of external ports. By " "virtue of there being a 1-1 correspondence of ports, it " "also represents the number of internal ports. \n" "The ports are numbered 1 through N." )] uint16 NumberOfPorts; [Description ( "An indexed array containing the internal port numbers. " "Corresponding external ports are in the ExternalPorts " "array. Only internal ports which are mapped to an " "external port shall appear in the array." ), ArrayType ( "Indexed" ), ModelCorrespondence { "CIM_PassThroughModule.ExternalPorts", "CIM_NetworkPort.PortNumber" }] uint16 InternalPorts[]; [Description ( "An indexed array containing the external ports. " "Corresponding internal ports are in the InternalPorts " "array. Only external ports which are mapped to an " "internal port shall appear in the array." ), ArrayType ( "Indexed" ), ModelCorrespondence { "CIM_PassThroughModule.InternalPorts", "CIM_NetworkPort.PortNumber" }] uint16 ExternalPorts[]; [Description ( "If the switch is software programmable, then this method " "is called to assign an internal port to an external " "port. \n" "If 0 is returned, the requested status of the mapping of " "InternalPort and ExternalPort is in effect. That is, an " "attempt to unmap two ports that are not mapped to any " "other ports or an attempt to map two ports which are " "already mapped to each other shall return 0, because the " "resultant state of the mapping is equivalent to the " "client request. For a mapping operation, if either " "target port is already mapped to a different port, the " "implementation shall first unmap it. An attempt to unmap " "two ports that are not mapped to each other shall fail " "with an error of \"Not Mapped\"." ), ValueMap { "0", "1", "2", "3", "4", "5..32767", "32768..65535" }, Values { "Completed with No Error", "Not Supported", "Unknown/Unspecified Error", "Busy", "Not Mapped", "DMTF Reserved", "Vendor Reserved" }] uint32 AssignPorts( [IN, Description ( "Boolean indicating if the ports are to be unmapped " "or mapped. If \"True\", InternalPorts and " "ExternalPorts shall be updated to contain a " "mapping of InternalPort to ExternalPort. If " "\"False\", InternalPorts and ExternalPorts shall " "be updated to remove the mapping if one exists." )] boolean Mapped, [IN, Description ( "The mapping for this internal port shall be updated." )] uint16 InternalPort, [IN, Description ( "The mapping for this external port shall be updated." )] uint16 ExternalPort); };