[ipxe-devel] iSCSI protocol transition

Ferenc Wagner wferi at niif.hu
Mon Oct 27 09:22:45 UTC 2014


Hi,

Mutual CHAP iSCSI login to our Fujitsu-Siemens Eternus DX80 device went
into an infinite loop until I made the following change:

--- a/src/net/tcp/iscsi.c
+++ b/src/net/tcp/iscsi.c
@@ -767,8 +767,9 @@ static void iscsi_start_login ( struct iscsi_session *iscsi ) {
        iscsi_start_tx ( iscsi );
        request->opcode = ( ISCSI_OPCODE_LOGIN_REQUEST |
                            ISCSI_FLAG_IMMEDIATE );
-       request->flags = ( ( iscsi->status & ISCSI_STATUS_PHASE_MASK ) |
-                          ISCSI_LOGIN_FLAG_TRANSITION );
+       request->flags = iscsi->status & ISCSI_STATUS_PHASE_MASK;
+       if (iscsi->status & (ISCSI_STATUS_STRINGS_CHAP_RESPONSE | ISCSI_STATUS_STRINGS_OPERATIONAL))
+               request->flags |= ISCSI_LOGIN_FLAG_TRANSITION; 
        /* version_max and version_min left as zero */
        len = iscsi_build_login_request_strings ( iscsi, NULL, 0 );
        ISCSI_SET_LENGTHS ( request->lengths, 0, len );
-- 
Regards,
Feri.



More information about the ipxe-devel mailing list