aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorBoaz Harrosh <bharrosh@panasas.com>2009-04-19 12:17:54 -0400
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2009-04-27 12:05:49 -0400
commite9da4d7f731dafc2b93ce7b31aa09c4d935ef978 (patch)
tree5394e6dfe88585cab608586f3cd2deb382c27f32 /include
parentf8d3a644bec74fd55dbfb11f95af7bf98fa963dc (diff)
[SCSI] libosd: OSD2r05: on-the-wire changes for latest OSD2 revision 5.
OSC's OSD2 target: [git clone git://git.open-osd.org/osc-osd/ master] (Initiator code prior to this patch must use: "git checkout CDB_VER_OSD2r01" in the target tree above) This is a summery of the wire changes: * OSDv2_ADDITIONAL_CDB_LENGTH == 192 => 228 (Total CDB is now 236 bytes) * Attributes List Element Header grew, so attribute values are 8 bytes aligned. * Cryptographic keys and signatures are 20 => 32 * Few new definitions. (Still missing new standard definitions attribute values, these do not change wire format and will be added later when needed) Signed-off-by: Boaz Harrosh <bharrosh@panasas.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'include')
-rw-r--r--include/scsi/osd_protocol.h23
1 files changed, 13 insertions, 10 deletions
diff --git a/include/scsi/osd_protocol.h b/include/scsi/osd_protocol.h
index bbeceeb0e553..62b2ab8c69d4 100644
--- a/include/scsi/osd_protocol.h
+++ b/include/scsi/osd_protocol.h
@@ -24,18 +24,17 @@ enum {
24 OSDv1_ADDITIONAL_CDB_LENGTH = 192, 24 OSDv1_ADDITIONAL_CDB_LENGTH = 192,
25 OSDv1_TOTAL_CDB_LEN = OSDv1_ADDITIONAL_CDB_LENGTH + 8, 25 OSDv1_TOTAL_CDB_LEN = OSDv1_ADDITIONAL_CDB_LENGTH + 8,
26 OSDv1_CAP_LEN = 80, 26 OSDv1_CAP_LEN = 80,
27
27 /* Latest supported version */ 28 /* Latest supported version */
28/* OSD_ADDITIONAL_CDB_LENGTH = 216,*/ 29 OSDv2_ADDITIONAL_CDB_LENGTH = 228,
29 OSD_ADDITIONAL_CDB_LENGTH = 30 OSD_ADDITIONAL_CDB_LENGTH =
30 OSDv1_ADDITIONAL_CDB_LENGTH, /* FIXME: Pete rev-001 sup */ 31 OSDv2_ADDITIONAL_CDB_LENGTH,
31 OSD_TOTAL_CDB_LEN = OSD_ADDITIONAL_CDB_LENGTH + 8, 32 OSD_TOTAL_CDB_LEN = OSD_ADDITIONAL_CDB_LENGTH + 8,
32/* OSD_CAP_LEN = 104,*/ 33 OSD_CAP_LEN = 104,
33 OSD_CAP_LEN = OSDv1_CAP_LEN,/* FIXME: Pete rev-001 sup */
34 34
35 OSD_SYSTEMID_LEN = 20, 35 OSD_SYSTEMID_LEN = 20,
36 OSDv1_CRYPTO_KEYID_SIZE = 20, 36 OSDv1_CRYPTO_KEYID_SIZE = 20,
37 /*FIXME: OSDv2_CRYPTO_KEYID_SIZE = 32,*/ 37 OSDv2_CRYPTO_KEYID_SIZE = 32,
38 OSDv2_CRYPTO_KEYID_SIZE = 20,
39 OSD_CRYPTO_KEYID_SIZE = OSDv2_CRYPTO_KEYID_SIZE, 38 OSD_CRYPTO_KEYID_SIZE = OSDv2_CRYPTO_KEYID_SIZE,
40 OSD_CRYPTO_SEED_SIZE = 4, 39 OSD_CRYPTO_SEED_SIZE = 4,
41 OSD_CRYPTO_NONCE_SIZE = 12, 40 OSD_CRYPTO_NONCE_SIZE = 12,
@@ -166,7 +165,11 @@ struct osd_cdb_head {
166 /* called allocation_length in some commands */ 165 /* called allocation_length in some commands */
167/*32*/ __be64 length; 166/*32*/ __be64 length;
168/*40*/ __be64 start_address; 167/*40*/ __be64 start_address;
169/*48*/ __be32 list_identifier;/* Rarely used */ 168 union {
169/*48*/ __be32 list_identifier;/* Rarely used */
170 /* OSD2r05 5.2.5 CDB continuation length */
171/*48*/ __be32 cdb_continuation_length;
172 };
170 } __packed v2; 173 } __packed v2;
171 }; 174 };
172/*52*/ union { /* selected attributes mode Page/List/Single */ 175/*52*/ union { /* selected attributes mode Page/List/Single */
@@ -331,6 +334,7 @@ struct osdv1_attributes_list_element {
331struct osdv2_attributes_list_element { 334struct osdv2_attributes_list_element {
332 __be32 attr_page; 335 __be32 attr_page;
333 __be32 attr_id; 336 __be32 attr_id;
337 u8 reserved[6];
334 __be16 attr_bytes; /* valid bytes at attr_val without padding */ 338 __be16 attr_bytes; /* valid bytes at attr_val without padding */
335 u8 attr_val[0]; 339 u8 attr_val[0];
336} __packed; 340} __packed;
@@ -520,7 +524,7 @@ enum osd_capability_bit_masks {
520 524
521 OSD_SEC_CAP_NONE1 = BIT(8), 525 OSD_SEC_CAP_NONE1 = BIT(8),
522 OSD_SEC_CAP_NONE2 = BIT(9), 526 OSD_SEC_CAP_NONE2 = BIT(9),
523 OSD_SEC_CAP_NONE3 = BIT(10), 527 OSD_SEC_GBL_REM = BIT(10), /*v2 only*/
524 OSD_SEC_CAP_QUERY = BIT(11), /*v2 only*/ 528 OSD_SEC_CAP_QUERY = BIT(11), /*v2 only*/
525 OSD_SEC_CAP_M_OBJECT = BIT(12), /*v2 only*/ 529 OSD_SEC_CAP_M_OBJECT = BIT(12), /*v2 only*/
526 OSD_SEC_CAP_POL_SEC = BIT(13), 530 OSD_SEC_CAP_POL_SEC = BIT(13),
@@ -595,8 +599,7 @@ struct osdv1_capability {
595 599
596struct osd_capability { 600struct osd_capability {
597 struct osd_capability_head h; 601 struct osd_capability_head h;
598/* struct osd_cap_object_descriptor od;*/ 602 struct osd_cap_object_descriptor od;
599 struct osdv1_cap_object_descriptor od; /* FIXME: Pete rev-001 sup */
600} __packed; 603} __packed;
601 604
602/** 605/**