diff options
author | Boaz Harrosh <bharrosh@panasas.com> | 2009-04-19 12:17:54 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2009-04-27 12:05:49 -0400 |
commit | e9da4d7f731dafc2b93ce7b31aa09c4d935ef978 (patch) | |
tree | 5394e6dfe88585cab608586f3cd2deb382c27f32 /include/scsi/osd_protocol.h | |
parent | f8d3a644bec74fd55dbfb11f95af7bf98fa963dc (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/scsi/osd_protocol.h')
-rw-r--r-- | include/scsi/osd_protocol.h | 23 |
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 { | |||
331 | struct osdv2_attributes_list_element { | 334 | struct 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 | ||
596 | struct osd_capability { | 600 | struct 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 | /** |