// Copyright (c) 2005 DMTF.  All rights reserved.
   [Version ( "2.11.0" ), 
    UMLPackagePath ( "CIM::Network::iSCSI" ), 
    Description ( 
       "The default negotiation settings for an iSCSI Session. These "
       "properties are used as the starting position for login "
       "negotiations between initiator and target nodes. The "
       "properties describing the resulting outcome of the login "
       "negotiation are in the iSCSISession class. Depending on a "
       "given implementation an instance of iSCSISessionSettings will "
       "be associated by ElementSettingData to one or more instances "
       "of iSCSIProtocolEndpoint, SCSIProtocolController, or "
       "ComputerSystem." )]
class CIM_iSCSISessionSettings : CIM_SettingData {

      [Write, Description ( 
          "The maximum number of connections allowed in each "
          "session to and/or from this node." ), 
       MinValue ( 1 ), 
       MaxValue ( 65535 ), 
       MappingStrings { "MIB.IETF|iSCSI-MIB.iscsiNodeMaxConnections" }, 
       ModelCorrespondence { 
          "CIM_iSCSISession.MaxConnectionsPerSession" }]
   uint32 MaxConnectionsPerSession = 1;

      [Write, Description ( 
          "This property indicates the InitialR2T preference for "
          "this node: true = YES, false = will try to negotiate NO, "
          "will accept YES." ), 
       MappingStrings { "MIB.IETF|iSCSI-MIB.iscsiNodeInitialR2T" }, 
       ModelCorrespondence { "CIM_iSCSISession.InitialR2T" }]
   boolean InitialR2TPreference = true;

      [Write, Description ( 
          "This property indicates ImmediateData preference for "
          "this node True = YES (but will accept NO), False = NO." ), 
       MappingStrings { "MIB.IETF|iSCSI-MIB.iscsiNodeImmediateData" }, 
       ModelCorrespondence { "CIM_iSCSISession.ImmediateData" }]
   boolean ImmediateDataPreference = true;

      [Write, Description ( 
          "Maximum number of outstanding R2Ts allowed per ISCSI task."
           ), 
       MinValue ( 1 ), 
       MaxValue ( 65535 ), 
       MappingStrings { 
          "MIB.IETF|iSCSI-MIB.iscsiNodeMaxOutstandingR2T" }, 
       ModelCorrespondence { "CIM_iSCSISession.MaxOutstandingR2T" }]
   uint32 MaxOutstandingR2T = 1;

      [Write, Description ( 
          "The maximum length (bytes) supported for unsolicited "
          "data to/from this node." ), 
       Units ( "Bytes" ), 
       MinValue ( 512 ), 
       MaxValue ( 16777215 ), 
       MappingStrings { 
          "MIB.IETF|iSCSI-MIB.iscsiNodeFirstBurstLength" }, 
       ModelCorrespondence { 
          "CIM_iSCSISession.MaxUnsolicitedFirstDataBurstLength" }]
   uint32 MaxUnsolicitedFirstDataBurstLength = 65536;

      [Write, Description ( 
          "The maximum number of bytes which can be sent within a "
          "single sequence of Data-In or Data-Out PDUs." ), 
       Units ( "Bytes" ), 
       MinValue ( 512 ), 
       MaxValue ( 16777215 ), 
       MappingStrings { "MIB.IETF|iSCSI-MIB.iscsiNodeMaxBurstLength" }, 
       ModelCorrespondence { "CIM_iSCSISession.MaxDataBurstLength" }]
   uint32 MaxDataBurstLength = 262144;

      [Write, Description ( 
          "The DataSequenceInOrder preference of this node. False "
          "(=No) indicates that iSCSI data PDU sequences MAY be "
          "transferred in any order. True (=Yes) indicates that "
          "data PDU sequences MUST be transferred using "
          "continuously increasing offsets, except during error "
          "recovery." ), 
       MappingStrings { 
          "MIB.IETF|iSCSI-MIB.iscsiNodeDataSequenceInOrder" }, 
       ModelCorrespondence { "CIM_iSCSISession.DataSequenceInOrder" }]
   boolean DataSequenceInOrderPreference = true;

      [Write, Description ( 
          "The DataPDUInOrder preference of this node. False (=No) "
          "indicates that iSCSI data PDUs within sequences MAY be "
          "in any order. True (=Yes) indicates that data PDUs "
          "within sequences MUST be at continuously increasing "
          "addresses, with no gaps or overlay between PDUs." ), 
       MappingStrings { "MIB.IETF|iSCSI-MIB.iscsiNodeDataPDUInOrder" }, 
       ModelCorrespondence { "CIM_iSCSISession.DataPDUInOrder" }]
   boolean DataPDUInOrderPreference = true;

      [Write, Description ( 
          "The DefaultTime2Wait preference of this node. This is "
          "the minimum time, in seconds, to wait before attempting "
          "an explicit/implicit logout or active iSCSI task "
          "reassignment after an unexpected connection termination "
          "or a connection reset." ), 
       Units ( "Seconds" ), 
       MinValue ( 0 ), 
       MaxValue ( 3600 ), 
       MappingStrings { 
          "MIB.IETF|iSCSI-MIB.iscsiNodeDefaultTime2Wait" }, 
       ModelCorrespondence { "CIM_iSCSISession.DefaultTimeToWait" }]
   uint32 DefaultTimeToWaitPreference = 2;

      [Write, Description ( 
          "The DefaultTime2Retain preference of this node. This is "
          "the maximum time, in seconds after an initial wait "
          "(Time2Wait), before which an active iSCSI task "
          "reassignment is still possible after an unexpected "
          "connection termination or a connection reset." ), 
       Units ( "Seconds" ), 
       MinValue ( 0 ), 
       MaxValue ( 3600 ), 
       MappingStrings { 
          "MIB.IETF|iSCSI-MIB.iscsiNodeDefaultTime2Retain" }, 
       ModelCorrespondence { "CIM_iSCSISession.DefaultTimeToRetain" }]
   uint32 DefaultTimeToRetainPreference = 20;

      [Write, Description ( 
          "The ErrorRecoveryLevel preference of this node. "
          "Currently, only 0-2 are valid. This is designed to "
          "accommodate future error recover levels. \n"
          "Higher error recovery levels imply support in addition "
          "to support for the lower error level functions. In other "
          "words, error level 2 implies support for levels 0-1, "
          "since those functions are subsets of error level 2." ), 
       MinValue ( 0 ), 
       MaxValue ( 255 ), 
       MappingStrings { 
          "MIB.IETF|iSCSI-MIB.iscsiNodeErrorRecoveryLevel" }, 
       ModelCorrespondence { "CIM_iSCSISession.ErrorRecoveryLevel" }]
   uint32 ErrorRecoveryLevelPreference = 0;


};
