[ipxe-devel] iSCSI protocol transition

Michael Brown mcb30 at ipxe.org
Mon Oct 27 12:59:15 UTC 2014


On 27/10/14 09:22, Ferenc Wagner wrote:
> 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 );

That change breaks the use of unauthenticated connections: in that 
situation no CHAP response will never be sent and so the initiator will 
never request a transition.

What is the nature of the problem you are seeing with the DX80 target?

Michael



More information about the ipxe-devel mailing list