From 7c3a22f93416d2f9a4bc24a85381e90fd37d08b1 Mon Sep 17 00:00:00 2001 From: Sebastian Vater Date: Fri, 11 Jul 2025 17:05:37 +0200 Subject: Added missing remaining login related text keys in iscsi.h. --- src/server/iscsi.h | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/src/server/iscsi.h b/src/server/iscsi.h index d0588e0..83aa1e4 100644 --- a/src/server/iscsi.h +++ b/src/server/iscsi.h @@ -1834,6 +1834,60 @@ typedef struct __attribute__((packed)) iscsi_text_response_packet { // +--------------+------------------------------------------+ // When TaskReporting is not negotiated to FastAbort, the // standard multi-task abort semantics MUST be used +#define ISCSI_LOGIN_AUTH_TEXT_KEY_X_NODE_ARCH "X#NodeArchitecture" // Use: LO, Declarative + // Senders: Initiator and target + // Scope: SW + // X#NodeArchitecture= + // Default is None. + // Examples: + // X#NodeArchitecture=ExampleOS/v1234,ExampleInc_SW_Initiator/1.05a + // X#NodeArchitecture=ExampleInc_HW_Initiator/4010,Firmware/2.0.0.5 + // X#NodeArchitecture=ExampleInc_SW_Initiator/2.1,CPU_Arch/i686 + // This document does not define the structure or content of the list of + // values. + // The initiator or target declares the details of its iSCSI node + // architecture to the remote endpoint. These details may include, but + // are not limited to, iSCSI vendor software, firmware, or hardware + // versions; the OS version; or hardware architecture. This key may be + // declared on a Discovery session or a Normal session. + // The length of the key value (total length of the list-of-values) MUST + // NOT be greater than 255 bytes. + // X#NodeArchitecture MUST NOT be redeclared during the Login Phase. + // Functional behavior of the iSCSI node (this includes the iSCSI + // protocol logic - the SCSI, iSCSI, and TCP/IP protocols) MUST NOT + // depend on the presence, absence, or content of the X#NodeArchitecture + // key. The key MUST NOT be used by iSCSI nodes for interoperability or + // for exclusion of other nodes. To ensure proper use, key values + // SHOULD be set by the node itself, and there SHOULD NOT be provisions + // for the key values to contain user-defined text. + // Nodes implementing this key MUST choose one of the following + // implementation options: + // - only transmit the key, + // - only log the key values received from other nodes, or + // - both transmit and log the key values. + // Each node choosing to implement transmission of the key values MUST + // be prepared to handle the response of iSCSI nodes that do not + // understand the key. + // Nodes that implement transmission and/or logging of the key values + // may also implement administrative mechanisms that disable and/or + // change the logging and key transmission details. + // Thus, a valid behavior for this key may be that a node is completely + // silent (the node does not transmit any key value and simply discards + // any key values it receives without issuing a NotUnderstood response) +#define ISCSI_LOGIN_AUTH_TEXT_KEY_IF_MARKER "IFMarker" // Obsoleted Keys +#define ISCSI_LOGIN_AUTH_TEXT_KEY_OF_MARKER "OFMarker" // This document obsoletes the following keys defined in RFC3720: +#define ISCSI_LOGIN_AUTH_TEXT_KEY_OF_MARK_INT "OFMarkInt" // IFMarker, OFMarker, OFMarkInt, and IFMarkInt. However, iSCSI +#define ISCSI_LOGIN_AUTH_TEXT_KEY_IF_MARK_INT "IFMarkInt" // implementations compliant to this document may still receive these + // obsoleted keys - i.e., in a responder role - in a text negotiation. + // When an IFMarker or OFMarker key is received, a compliant iSCSI + // implementation SHOULD respond with the constant "Reject" value. The + // implementation MAY alternatively respond with a "No" value. + // However, the implementation MUST NOT respond with a "NotUnderstood" + // value for either of these keys. + // When an IFMarkInt or OFMarkInt key is received, a compliant iSCSI + // implementation MUST respond with the constant "Reject" value. The + // implementation MUST NOT respond with a "NotUnderstood" value for + // either of these keys /* This is an initiator-defined component of the session identifier and is structured as follows: -- cgit v1.2.3-55-g7522