linux/drivers/target/iscsi
Nicholas Bellinger 281e36cbaf iscsi-target: Drop work-around for legacy GlobalSAN initiator
commit 1c99de981f upstream.

Once upon a time back in 2009, a work-around was added to support
the GlobalSAN iSCSI initiator v3.3 for MacOSX, which during login
did not propose nor respond to MaxBurstLength, FirstBurstLength,
DefaultTime2Wait and DefaultTime2Retain keys.

The work-around in iscsi_check_proposer_for_optional_reply()
allowed the missing keys to be proposed, but did not require
waiting for a response before moving to full feature phase
operation.  This allowed GlobalSAN v3.3 to work out-of-the
box, and for many years we didn't run into login interopt
issues with any other initiators..

Until recently, when Martin tried a QLogic 57840S iSCSI Offload
HBA on Windows 2016 which completed login, but subsequently
failed with:

    Got unknown iSCSI OpCode: 0x43

The issue was QLogic MSFT side did not propose DefaultTime2Wait +
DefaultTime2Retain, so LIO proposes them itself, and immediately
transitions to full feature phase because of the GlobalSAN hack.
However, the QLogic MSFT side still attempts to respond to
DefaultTime2Retain + DefaultTime2Wait, even though LIO has set
ISCSI_FLAG_LOGIN_NEXT_STAGE3 + ISCSI_FLAG_LOGIN_TRANSIT
in last login response.

So while the QLogic MSFT side should have been proposing these
two keys to start, it was doing the correct thing per RFC-3720
attempting to respond to proposed keys before transitioning to
full feature phase.

All that said, recent versions of GlobalSAN iSCSI (v5.3.0.541)
does correctly propose the four keys during login, making the
original work-around moot.

So in order to allow QLogic MSFT to run unmodified as-is, go
ahead and drop this long standing work-around.

Reported-by: Martin Svec <martin.svec@zoner.cz>
Cc: Martin Svec <martin.svec@zoner.cz>
Cc: Himanshu Madhani <Himanshu.Madhani@cavium.com>
Cc: Arun Easi <arun.easi@cavium.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2017-04-21 09:31:21 +02:00
..
cxgbit chcr/cxgb4i/cxgbit/RDMA/cxgb4: Allocate resources dynamically for all cxgb4 ULD's 2016-09-19 01:37:32 -04:00
iscsi_target.c iscsi-target: fix iscsi cmd leak 2016-10-19 21:22:31 -07:00
iscsi_target.h target/iscsi: Replace __kernel_sockaddr_storage with sockaddr_storage 2015-08-26 23:27:25 -07:00
iscsi_target_auth.c treewide: Fix typos in printk 2016-04-28 10:52:28 +02:00
iscsi_target_auth.h iscsi-target: Fix CHAP_A parameter list handling 2014-06-05 19:44:02 -07:00
iscsi_target_configfs.c iscsi-target: Return error if unable to add network portal 2017-01-09 08:32:21 +01:00
iscsi_target_datain_values.c iscsi-target: export symbols 2016-05-09 23:12:28 -07:00
iscsi_target_datain_values.h iscsi-target: Add iSCSI fabric support for target v4.1 2011-07-26 09:16:43 +00:00
iscsi_target_device.c target: Fix max_cmd_sn increment w/o cmdsn mutex regressions 2015-09-11 00:32:28 -07:00
iscsi_target_device.h target/iscsi: Remove unneeded wrapper functions 2012-02-25 14:37:47 -08:00
iscsi_target_erl0.c iscsi-target: remove usage of ->shutdown_session 2016-05-10 01:19:41 -07:00
iscsi_target_erl0.h iscsi-target: remove support for obsolete markers 2015-05-30 22:41:43 -07:00
iscsi_target_erl1.c iscsi-target: Fix indentation + spelling + unreachable code 2016-01-06 13:39:19 -08:00
iscsi_target_erl1.h iscsit: use the itt_t abstract type 2012-10-03 14:21:50 -07:00
iscsi_target_erl2.c iscsi-target: Move iscsi_target_[core,stat].h under linux include 2015-01-30 13:06:21 -08:00
iscsi_target_erl2.h iscsit: proper endianess conversions 2012-10-03 14:39:22 -07:00
iscsi_target_login.c iscsi-target: fix spelling mistake "Unsolicitied" -> "Unsolicited" 2016-10-19 21:22:30 -07:00
iscsi_target_login.h Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending 2015-09-11 19:00:42 -07:00
iscsi_target_nego.c iscsi-target: Fix early sk_data_ready LOGIN_FLAGS_READY race 2016-05-17 00:27:05 -07:00
iscsi_target_nego.h iscsi-target: Initial traditional TCP conversion to iscsit_transport 2013-04-25 01:05:26 -07:00
iscsi_target_nodeattrib.c iscsi-target: Move iscsi_target_[core,stat].h under linux include 2015-01-30 13:06:21 -08:00
iscsi_target_nodeattrib.h iscsi-target: Expose default_erl as TPG attribute 2013-11-20 11:57:18 -08:00
iscsi_target_parameters.c iscsi-target: Drop work-around for legacy GlobalSAN initiator 2017-04-21 09:31:21 +02:00
iscsi_target_parameters.h iscsi-target: remove support for obsolete markers 2015-05-30 22:41:43 -07:00
iscsi_target_seq_pdu_list.c iscsi-target: Move iscsi_target_[core,stat].h under linux include 2015-01-30 13:06:21 -08:00
iscsi_target_seq_pdu_list.h target/iscsi: Fold _decide_list_to_build into _build_pdu_and_seq_lists 2012-04-14 17:40:38 -07:00
iscsi_target_stat.c target: use per-attribute show and store methods 2015-10-13 22:17:49 -07:00
iscsi_target_tmr.c iscsi-target: Fix indentation + spelling + unreachable code 2016-01-06 13:39:19 -08:00
iscsi_target_tmr.h iscsi-target: Add iSCSI fabric support for target v4.1 2011-07-26 09:16:43 +00:00
iscsi_target_tpg.c target/iscsi: Fix double free in lio_target_tiqn_addtpg() 2017-01-12 11:39:30 +01:00
iscsi_target_tpg.h target: Convert ACL change queue_depth se_session reference usage 2016-01-20 01:34:14 -08:00
iscsi_target_transport.c target: Deletion of unnecessary checks before the function call "module_put" 2014-12-01 21:35:21 -08:00
iscsi_target_util.c iscsi-target: Fix TMR reference leak during session shutdown 2017-04-21 09:31:20 +02:00
iscsi_target_util.h iscsi-target: remove support for obsolete markers 2015-05-30 22:41:43 -07:00
Kconfig cxgbit: add files for cxgbit.ko 2016-05-09 23:12:54 -07:00
Makefile cxgbit: add files for cxgbit.ko 2016-05-09 23:12:54 -07:00