// Copyright (c) 2005 DMTF.  All rights reserved.
// <change cr="CIMCoreCR00752.000" type ="change">Update of
// descriptions based on Tech Edit review.</
// <change cr="ArchCR00066.004" type="add">Add UmlPackagePath
// qualifier values to CIM Schema.</change>
// ==================================================================
//  CIM_LogicalPort
// ==================================================================
   [UMLPackagePath ( "CIM::Device::Ports" ), Version ( "2.10.0" ), 
    Description (
       "The abstraction of a port or connection point of a Device. "
       "This object should be instantiated when the Port has "
       "independent management characteristics from the Device that "
       "includes it. Examples are a Fibre Channel Port and a USB Port.")]
class CIM_LogicalPort : CIM_LogicalDevice {

      [Description (
          "The bandwidth of the Port in Bits per Second."), 
       Units ( "Bits per Second" )]
   uint64 Speed;

      [Description (
          "The maximum bandwidth of the Port in Bits per Second."), 
       Units ( "Bits per Second" )]
   uint64 MaxSpeed;

      [Write, Description (
          "The requested bandwidth of the Port in Bits per Second. The "
          "actual bandwidth is reported in LogicalPort.Speed."), 
       Units ( "Bits per Second" ), 
       ModelCorrespondence { "CIM_LogicalPort.Speed" }]
   uint64 RequestedSpeed;

      [Description (
          "In some circumstances, a LogicalPort might be identifiable "
          "as a front end or back end port. An example of this "
          "situation would be a storage array that might have back end "
          "ports to communicate with disk drives and front end ports "
          "to communicate with hosts. If there is no restriction on "
          "the use of the port, then the value should be set to 'not "
          "restricted'."), 
       ValueMap { "0", "2", "3", "4" }, 
       Values { "Unknown", "Front-end only", "Back-end only",
          "Not restricted" }]
   uint16 UsageRestriction;

      [Description (
          "PortType is defined to force consistent naming of the "
          "'type' property in subclasses and to guarantee unique enum "
          "values for all instances of NetworkPort. When set to 1 "
          "(\"Other\"), related property OtherPortType contains a "
          "string description of the type of port. A range of values, "
          "DMTF_Reserved, has been defined that allows subclasses to "
          "override and define their specific types of ports."), 
       ValueMap { "0", "1", "2", "3..15999", "16000..65535" }, 
       Values { "Unknown", "Other", "Not Applicable", "DMTF Reserved",
          "Vendor Reserved" }, 
       ModelCorrespondence { "CIM_NetworkPort.OtherNetworkPortType" }]
   uint16 PortType;

      [Description (
          "Describes the type of module, when PortType is set to 1 "
          "(\"Other\")."), 
       ModelCorrespondence { "CIM_LogicalPort.PortType" }]
   string OtherPortType;
};
