diff options
Diffstat (limited to 'src/server/iscsi.h')
| -rw-r--r-- | src/server/iscsi.h | 55 |
1 files changed, 37 insertions, 18 deletions
diff --git a/src/server/iscsi.h b/src/server/iscsi.h index ded2d1d..f247621 100644 --- a/src/server/iscsi.h +++ b/src/server/iscsi.h @@ -9918,6 +9918,9 @@ typedef struct iscsi_key_value_pair_packet { /// Discovery mode. int discovery; + + /// First burst length has been passed by the initiator. + bool first_burst_len; } iscsi_key_value_pair_packet; int iscsi_parse_key_value_pairs(iscsi_hashmap *key_value_pairs, const uint8_t *packet_data, uint len, int c_bit, uint8_t **partial_pairs); // Extracts all text key / value pairs out of an iSCSI packet into a hash map @@ -9976,7 +9979,7 @@ int iscsi_parse_key_value_pairs(iscsi_hashmap *key_value_pairs, const uint8_t *p #define ISCSI_GLOBALS_SECTION_SCSI_DEVICE_PREFIX "scsi-device-" -/// iSCSI main global data config type: iHeader digest (CRC32), always MUST be 0 or 4 for now. +/// iSCSI main global data config type: Header digest (CRC32), always MUST be 0 or 4 for now. #define ISCSI_GLOBALS_CONFIG_TYPE_HEADER_DIGEST 0 /// iSCSI main global data config type: Data digest (CRC32), always MUST be 0 or 4 for now. @@ -10006,50 +10009,66 @@ int iscsi_parse_key_value_pairs(iscsi_hashmap *key_value_pairs, const uint8_t *p /// iSCSI main global data config type: Error recovery level. #define ISCSI_GLOBALS_CONFIG_TYPE_ERR_RECOVERY_LEVEL 9 +/// iSCSI main global data config type: CHAP authentication group. +#define ISCSI_GLOBALS_CONFIG_TYPE_CHAP_GROUP 10 + /// iSCSI main global data config type: SCSI emulation for device type. -#define ISCSI_GLOBALS_CONFIG_TYPE_SCSI_DEVICE_TYPE 10 +#define ISCSI_GLOBALS_CONFIG_TYPE_SCSI_DEVICE_TYPE 11 /// iSCSI main global data config type: SCSI emulation for physical block size. -#define ISCSI_GLOBALS_CONFIG_TYPE_SCSI_PHYSICAL_BLOCK_SIZE 11 +#define ISCSI_GLOBALS_CONFIG_TYPE_SCSI_PHYSICAL_BLOCK_SIZE 12 /// iSCSI main global data config type: SCSI emulation for physical block size shift count. -#define ISCSI_GLOBALS_CONFIG_TYPE_SCSI_PHYSICAL_BLOCK_SIZE_SHIFT 12 +#define ISCSI_GLOBALS_CONFIG_TYPE_SCSI_PHYSICAL_BLOCK_SIZE_SHIFT 13 /// iSCSI main global data config type: SCSI emulation for logical block size. -#define ISCSI_GLOBALS_CONFIG_TYPE_SCSI_LOGICAL_BLOCK_SIZE 13 +#define ISCSI_GLOBALS_CONFIG_TYPE_SCSI_LOGICAL_BLOCK_SIZE 14 /// iSCSI main global data config type: SCSI emulation for logical block size shift count. -#define ISCSI_GLOBALS_CONFIG_TYPE_SCSI_LOGICAL_BLOCK_SIZE_SHIFT 14 +#define ISCSI_GLOBALS_CONFIG_TYPE_SCSI_LOGICAL_BLOCK_SIZE_SHIFT 15 + +/// iSCSI main global data config type: CHAP authentication is disabled. +#define ISCSI_GLOBALS_CONFIG_TYPE_FLAGS_CHAP_DISABLE 16 + +/// iSCSI main global data config type: CHAP authentication is required. +#define ISCSI_GLOBALS_CONFIG_TYPE_FLAGS_CHAP_REQUIRE 17 + +/// iSCSI main global data config type: CHAP authentication is mutual. +#define ISCSI_GLOBALS_CONFIG_TYPE_FLAGS_CHAP_MUTUAL 18 /// iSCSI main global data config type: Initial ready to transfer. -#define ISCSI_GLOBALS_CONFIG_TYPE_FLAGS_INIT_R2T 15 +#define ISCSI_GLOBALS_CONFIG_TYPE_FLAGS_INIT_R2T 19 /// iSCSI main global data config type: Immediate data. -#define ISCSI_GLOBALS_CONFIG_TYPE_FLAGS_IMMEDIATE_DATA 16 +#define ISCSI_GLOBALS_CONFIG_TYPE_FLAGS_IMMEDIATE_DATA 20 /// iSCSI main global data config type: Data PDU in order. -#define ISCSI_GLOBALS_CONFIG_TYPE_FLAGS_DATA_PDU_IN_ORDER 17 +#define ISCSI_GLOBALS_CONFIG_TYPE_FLAGS_DATA_PDU_IN_ORDER 21 /// iSCSI main global data config type: Data sequence in order. -#define ISCSI_GLOBALS_CONFIG_TYPE_FLAGS_DATA_SEQ_IN_ORDER 18 +#define ISCSI_GLOBALS_CONFIG_TYPE_FLAGS_DATA_SEQ_IN_ORDER 22 /// iSCSI main global data config type: SCSI emulation for I/O removable device. -#define ISCSI_GLOBALS_CONFIG_TYPE_FLAGS_SCSI_IO_REMOVABLE 19 +#define ISCSI_GLOBALS_CONFIG_TYPE_FLAGS_SCSI_IO_REMOVABLE 23 /// iSCSI main global data config type: SCSI emulation for I/O UNMAP supporting device. -#define ISCSI_GLOBALS_CONFIG_TYPE_FLAGS_SCSI_IO_UNMAP 20 +#define ISCSI_GLOBALS_CONFIG_TYPE_FLAGS_SCSI_IO_UNMAP 24 /// iSCSI main global data config type: SCSI emulation for I/O non-rotating device. -#define ISCSI_GLOBALS_CONFIG_TYPE_FLAGS_SCSI_IO_NO_ROTATION 21 +#define ISCSI_GLOBALS_CONFIG_TYPE_FLAGS_SCSI_IO_NO_ROTATION 25 /// iSCSI main global data config type: SCSI emulation for I/O physical read only device. -#define ISCSI_GLOBALS_CONFIG_TYPE_FLAGS_SCSI_IO_PHYSICAL_READ_ONLY 22 +#define ISCSI_GLOBALS_CONFIG_TYPE_FLAGS_SCSI_IO_PHYSICAL_READ_ONLY 26 /// iSCSI main global data config type: SCSI emulation for I/O write protected device. -#define ISCSI_GLOBALS_CONFIG_TYPE_FLAGS_SCSI_IO_WRITE_PROTECT 23 +#define ISCSI_GLOBALS_CONFIG_TYPE_FLAGS_SCSI_IO_WRITE_PROTECT 27 /// iSCSI main global data config type: SCSI emulation for I/O write cache device. -#define ISCSI_GLOBALS_CONFIG_TYPE_FLAGS_SCSI_IO_WRITE_CACHE 24 +#define ISCSI_GLOBALS_CONFIG_TYPE_FLAGS_SCSI_IO_WRITE_CACHE 28 + + +/// iSCSI main global data config type: Value error result. +#define ISCSI_GLOBALS_CONFIG_TYPE_VALUE_ERROR -2147483648L /// iSCSI main global data SCSI device configuration flags: Initial ready to transfer. @@ -10274,8 +10293,8 @@ typedef struct iscsi_globals { /// Hash map containing iSCSI SCSI device specific configuration. iscsi_hashmap *scsi_device_config; - /// Mutex for hash map containing iSCSI SCSI device specific configuration. - pthread_mutex_t scsi_device_config_mutex; + /// Read/write lock for hash map containing iSCSI SCSI device specific configuration. + pthread_rwlock_t scsi_device_config_rwlock; /// Global flags. int flags; |
