summaryrefslogtreecommitdiffstats
path: root/src/include/ipxe
diff options
context:
space:
mode:
authorMichael Brown2010-10-18 15:37:11 +0200
committerMichael Brown2010-10-18 15:40:27 +0200
commit19c59bb1317e58c44ce606dadbd0ee8dcfcf19ac (patch)
treec2b1cd12fdeaac0fa22634cfe69c885011a2ca82 /src/include/ipxe
parent[romprefix] Add missing FILE_LICENCE declaration to undiloader.S (diff)
downloadipxe-19c59bb1317e58c44ce606dadbd0ee8dcfcf19ac.tar.gz
ipxe-19c59bb1317e58c44ce606dadbd0ee8dcfcf19ac.tar.xz
ipxe-19c59bb1317e58c44ce606dadbd0ee8dcfcf19ac.zip
[iscsi] Ensure ISID is consistent within an iSCSI session
Commit 5f4ab0d ("[iscsi] Randomise a portion of the ISID to force new session instantiation") introduced a regression by randomising the ISID on each call to iscsi_start_login(), which may be called more than once per connection, rather than on each call to iscsi_open_connection(), which is guaranteed to be called only once per connection. This is incorrect behaviour that causes our connection to be rejected by some iSCSI targets (observed with a COMSTAR target under OpenSolaris). Fix by generating the ISID in iscsi_open_connection(), and storing the randomised ISID as part of the session state. Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/include/ipxe')
-rw-r--r--src/include/ipxe/iscsi.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/include/ipxe/iscsi.h b/src/include/ipxe/iscsi.h
index e711459c9..4890bcc6d 100644
--- a/src/include/ipxe/iscsi.h
+++ b/src/include/ipxe/iscsi.h
@@ -539,6 +539,12 @@ struct iscsi_session {
/** CHAP response (used for both initiator and target auth) */
struct chap_response chap;
+ /** Initiator session ID (IANA format) qualifier
+ *
+ * This is part of the ISID. It is generated randomly
+ * whenever a new connection is opened.
+ */
+ uint16_t isid_iana_qual;
/** Initiator task tag
*
* This is the tag of the current command. It is incremented