Loading README.md +678 −233 File changed.Preview size limit exceeded, changes collapsed. Show changes kinetic.proto +36 −47 Original line number Diff line number Diff line Loading @@ -62,8 +62,7 @@ message Message { // the TLS connection, execute the pin operation. PINAUTH = 2; // In the event that the device is going to close the connection, an // unsolicited status will be returned first. // In the event that the device needs to communicate with the user UNSOLICITEDSTATUS = 3; } Loading Loading @@ -103,25 +102,24 @@ message Command { message Header { // "cluster" is the number of the cluster definition. If this is incompatible, // the request is rejected. If it is missing, it is assumed to be 0. (0 allows systems not // using cluster versioning to ignore this field in the header and in the setup.) // the request is rejected. By default the value is 0, allowing systems not // using cluster versioning to ignore this field in the header and in the setup. optional int64 clusterVersion = 1; // 2 is reserved. // A unique number for this connection between the source and target. On the first request // to the device, this should be the time of day in seconds since 1970. The device can change this // A unique number for this connection between the source and target. The device can change this // number and the client must continue to use the new number and the number must remain // constant during the session. (See security document). // constant during the session. optional int64 connectionID = 3; // the sequence of this request in this TCP connection. As long as this value is getting larger we have // strong ordering and replay prevention within a session. This combined with the time and connectionID // provides strong ordering between sessions. (See security document). optional int64 sequence = 4; // provides strong ordering between sessions. optional uint64 sequence = 4; //co-related sequence optional int64 ackSequence = 6; optional uint64 ackSequence = 6; //operation code - put/get/delete/GetLog, etc. optional MessageType messageType = 7; Loading @@ -134,7 +132,7 @@ message Command { // - EXPIRED meaning that a long running operation was stopped because the time expired. // - DATA_ERROR meaning that the request was in process, but that the error recovery was not // complete at the time that the time expired optional int64 timeout = 9; optional uint64 timeout = 9; // If true, requests will not attempt multi revolution recoveries even if the timeout has not occurred. // In this case the result will be DATA_ERROR. To have the device exhaust all possible error recovery, leave Loading @@ -156,7 +154,7 @@ message Command { // sub operation and then check to see if there are other sub higher // priority operations. An example of a sub-operation might be a single put // in a P2P operation, etc. optional int64 TimeQuanta = 13; optional uint64 TimeQuanta = 13; // batch id to be included in each command of a batch operation // this id is generated by client library and must be unique Loading Loading @@ -206,17 +204,18 @@ message Command { message Batch { // set by the client library in END_BATCH request message. // the total number of operations in the batch optional int32 count = 1; optional uint32 count = 1; // set by the drive in END_BATCH_RESPONSE message. // If a batch is committed successfully, all sequence Ids of those // commands (PUT/DELETE) performed in the batch are // added in the END_BATCH_RESPONSE message. repeated int64 sequence = 2 [packed=true]; repeated uint64 sequence = 2 [packed=true]; // This field is set by the drive if a batch commit failed. // The first failed operation sequence in the batch is set as value. optional int64 failedSequence = 3; // The sequence of the first operation to fail in the batch. // There is no guarantee that the previous sequences would have succeeded. optional uint64 failedSequence = 3; } //operation status Loading Loading @@ -274,7 +273,7 @@ message Command { NO_SUCH_HMAC_ALGORITHM = 15; // The request is not valid. Subsequent attempts with the same request will return the same code. // Examples: GET does not specify keyValue message, GETKEYRANGE operation does not specify startKey, etc // Example: PUT a key whose size exceeds the specified maxKeySize in limits. INVALID_REQUEST = 16; // For P2P Requests, the operation was executed successfully but some nested operations Loading @@ -283,22 +282,18 @@ message Command { // of nested P2POperations NESTED_OPERATION_ERRORS = 17; // If the device is currently locked and can not validate // the hmac. This is returned as an status // and the connection is terminated. // If the device is currently locked DEVICE_LOCKED = 18; // The device was already unlocked. The validity of the // pin was NOT checked. The connection remains open. // The device is already unlocked. DEVICE_ALREADY_UNLOCKED = 19; // The connection is being terminated. Details as to why are // in the message string. CONNECTION_TERMINATED = 20; // During a batch operation, the only operations allowed are put " // and delete. This error is put against the offending command and " // the rest of the commands and the END_BATCH return NOT_ATTEMPTED." // The batch request is not valid. Subsequent attempts with the same batch request will return the // same code. Example: A batch that contains a command other than put or delete. INVALID_BATCH = 21; // the status is returned to caller if commands are received when Loading @@ -317,11 +312,11 @@ message Command { // 1 is reserved // On a put or delete, this is the next version that the data will be. The version field is opaque to the // target. (See Atomic operations document) // On a put, this is the next version that the data will be. The version field is opaque to the target. optional bytes newVersion = 2; // On a put or delete, this forces the write to ignore the existing version of existing data (if it exists). // If set to True, puts will ignore any existing version (if it exists), and deletes will ignore // any existing version or if the key is not found (allowing a success on the delete of a non-existent key). optional bool force = 8; //entry key Loading @@ -336,14 +331,12 @@ message Command { // The following is for the protection of the data. If the data is protected with a hash or CRC, then // the algorithm will be negative. If the data protection algorithm is not a standard unkeyed algorithm // then a positive number is used and the device has no idea what the key is. See the discussion of // encrypted key/value store.(See security document). // then a positive number is used and the device has no idea what the key is. optional Algorithm algorithm = 6; // for read operations, this will get all the information about the value except for the // value itself. This is valuable for getting the integrity field or the version without also // having to get the data. If this field is not present, it is as if it is false. For // write or delete operations, if this is set, the command is rejected. // having to get the data. optional bool metadataOnly = 7; // Synchronization allows the puts and deletes to determine if they are to be Loading @@ -370,7 +363,7 @@ message Command { optional bool endKeyInclusive = 4; // The maximum number of keys returned optional int32 maxReturned = 5; optional uint32 maxReturned = 5; // The keys are searched for and returned in a reverse order. For instance // if the search is startKey="j", endKey="k", maxReturned=2, Loading @@ -386,13 +379,11 @@ message Command { //set up operation. // if any or all of these are fields are included, they are set. // These are persistent options that are retained across power fail and // erased on either PIN erase or PIN secure erase. message Setup { // The cluster version to be checked. The default if never set is 0. // If this is missing, it is assumed to be unchanged; // This is persistent between boots of the device. optional int64 newClusterVersion = 1; Loading Loading @@ -442,7 +433,7 @@ message Command { message Peer { optional string hostname = 1; optional int32 port = 2; optional uint32 port = 2; optional bool tls = 3; } Loading Loading @@ -506,7 +497,7 @@ message Command { message Configuration { // name of the vendor. Should be "Seagate" // name of the vendor. optional string vendor = 5; // The model of the device. Loading @@ -520,7 +511,6 @@ message Command { optional bytes worldWideName = 14; // This is the vendor specific version of the software on the device in dot notation // if this is not set or ends with "x" this is test code. optional string version = 8; optional string compilationDate = 12; optional string sourceHash = 13; Loading @@ -536,8 +526,8 @@ message Command { repeated Interface interface = 9; // these are the port numbers for the software optional int32 port = 10; optional int32 tlsPort = 11; optional uint32 port = 10; optional uint32 tlsPort = 11; // The unsolicited message at the beginning of a connection will return // the drive status. The only two possible values are OPERATIONAL Loading Loading @@ -624,13 +614,13 @@ message Command { enum HMACAlgorithm { INVALID_HMAC_ALGORITHM = -1; // Must come first // 0 is reserved; do not use HmacSHA1 = 1; // this is the default HmacSHA1 = 1; } message Scope { optional int64 offset = 1; optional uint64 offset = 1; optional bytes value = 2; repeated Permission permission = 3; // one per role repeated Permission permission = 3; optional bool TlsRequired = 4; // This is only allowed over the the TLS connection } Loading @@ -647,9 +637,8 @@ message Command { POWER_MANAGEMENT = 9; // can setup power management } // The maxPriority is checked against the header priority and range // priority (if present) fields. The priority must be greater than // or equal to this maxPriority field. // The maxPriority is checked against the header priority field. The header priority // for any command must be less than or equal to this maxPriority field. optional Priority maxPriority = 5; } Loading Loading @@ -781,7 +770,7 @@ message Command { enum PowerLevel { INVALID_LEVEL = -1; OPERATIONAL = 1; // Fully operational mode, default mode for the drive HIBERNATE = 2; // All operations will be rejected HIBERNATE = 2; // All operations other than SET_POWER_LEVEL will be rejected SHUTDOWN = 3; FAIL = 4; } Loading Loading
kinetic.proto +36 −47 Original line number Diff line number Diff line Loading @@ -62,8 +62,7 @@ message Message { // the TLS connection, execute the pin operation. PINAUTH = 2; // In the event that the device is going to close the connection, an // unsolicited status will be returned first. // In the event that the device needs to communicate with the user UNSOLICITEDSTATUS = 3; } Loading Loading @@ -103,25 +102,24 @@ message Command { message Header { // "cluster" is the number of the cluster definition. If this is incompatible, // the request is rejected. If it is missing, it is assumed to be 0. (0 allows systems not // using cluster versioning to ignore this field in the header and in the setup.) // the request is rejected. By default the value is 0, allowing systems not // using cluster versioning to ignore this field in the header and in the setup. optional int64 clusterVersion = 1; // 2 is reserved. // A unique number for this connection between the source and target. On the first request // to the device, this should be the time of day in seconds since 1970. The device can change this // A unique number for this connection between the source and target. The device can change this // number and the client must continue to use the new number and the number must remain // constant during the session. (See security document). // constant during the session. optional int64 connectionID = 3; // the sequence of this request in this TCP connection. As long as this value is getting larger we have // strong ordering and replay prevention within a session. This combined with the time and connectionID // provides strong ordering between sessions. (See security document). optional int64 sequence = 4; // provides strong ordering between sessions. optional uint64 sequence = 4; //co-related sequence optional int64 ackSequence = 6; optional uint64 ackSequence = 6; //operation code - put/get/delete/GetLog, etc. optional MessageType messageType = 7; Loading @@ -134,7 +132,7 @@ message Command { // - EXPIRED meaning that a long running operation was stopped because the time expired. // - DATA_ERROR meaning that the request was in process, but that the error recovery was not // complete at the time that the time expired optional int64 timeout = 9; optional uint64 timeout = 9; // If true, requests will not attempt multi revolution recoveries even if the timeout has not occurred. // In this case the result will be DATA_ERROR. To have the device exhaust all possible error recovery, leave Loading @@ -156,7 +154,7 @@ message Command { // sub operation and then check to see if there are other sub higher // priority operations. An example of a sub-operation might be a single put // in a P2P operation, etc. optional int64 TimeQuanta = 13; optional uint64 TimeQuanta = 13; // batch id to be included in each command of a batch operation // this id is generated by client library and must be unique Loading Loading @@ -206,17 +204,18 @@ message Command { message Batch { // set by the client library in END_BATCH request message. // the total number of operations in the batch optional int32 count = 1; optional uint32 count = 1; // set by the drive in END_BATCH_RESPONSE message. // If a batch is committed successfully, all sequence Ids of those // commands (PUT/DELETE) performed in the batch are // added in the END_BATCH_RESPONSE message. repeated int64 sequence = 2 [packed=true]; repeated uint64 sequence = 2 [packed=true]; // This field is set by the drive if a batch commit failed. // The first failed operation sequence in the batch is set as value. optional int64 failedSequence = 3; // The sequence of the first operation to fail in the batch. // There is no guarantee that the previous sequences would have succeeded. optional uint64 failedSequence = 3; } //operation status Loading Loading @@ -274,7 +273,7 @@ message Command { NO_SUCH_HMAC_ALGORITHM = 15; // The request is not valid. Subsequent attempts with the same request will return the same code. // Examples: GET does not specify keyValue message, GETKEYRANGE operation does not specify startKey, etc // Example: PUT a key whose size exceeds the specified maxKeySize in limits. INVALID_REQUEST = 16; // For P2P Requests, the operation was executed successfully but some nested operations Loading @@ -283,22 +282,18 @@ message Command { // of nested P2POperations NESTED_OPERATION_ERRORS = 17; // If the device is currently locked and can not validate // the hmac. This is returned as an status // and the connection is terminated. // If the device is currently locked DEVICE_LOCKED = 18; // The device was already unlocked. The validity of the // pin was NOT checked. The connection remains open. // The device is already unlocked. DEVICE_ALREADY_UNLOCKED = 19; // The connection is being terminated. Details as to why are // in the message string. CONNECTION_TERMINATED = 20; // During a batch operation, the only operations allowed are put " // and delete. This error is put against the offending command and " // the rest of the commands and the END_BATCH return NOT_ATTEMPTED." // The batch request is not valid. Subsequent attempts with the same batch request will return the // same code. Example: A batch that contains a command other than put or delete. INVALID_BATCH = 21; // the status is returned to caller if commands are received when Loading @@ -317,11 +312,11 @@ message Command { // 1 is reserved // On a put or delete, this is the next version that the data will be. The version field is opaque to the // target. (See Atomic operations document) // On a put, this is the next version that the data will be. The version field is opaque to the target. optional bytes newVersion = 2; // On a put or delete, this forces the write to ignore the existing version of existing data (if it exists). // If set to True, puts will ignore any existing version (if it exists), and deletes will ignore // any existing version or if the key is not found (allowing a success on the delete of a non-existent key). optional bool force = 8; //entry key Loading @@ -336,14 +331,12 @@ message Command { // The following is for the protection of the data. If the data is protected with a hash or CRC, then // the algorithm will be negative. If the data protection algorithm is not a standard unkeyed algorithm // then a positive number is used and the device has no idea what the key is. See the discussion of // encrypted key/value store.(See security document). // then a positive number is used and the device has no idea what the key is. optional Algorithm algorithm = 6; // for read operations, this will get all the information about the value except for the // value itself. This is valuable for getting the integrity field or the version without also // having to get the data. If this field is not present, it is as if it is false. For // write or delete operations, if this is set, the command is rejected. // having to get the data. optional bool metadataOnly = 7; // Synchronization allows the puts and deletes to determine if they are to be Loading @@ -370,7 +363,7 @@ message Command { optional bool endKeyInclusive = 4; // The maximum number of keys returned optional int32 maxReturned = 5; optional uint32 maxReturned = 5; // The keys are searched for and returned in a reverse order. For instance // if the search is startKey="j", endKey="k", maxReturned=2, Loading @@ -386,13 +379,11 @@ message Command { //set up operation. // if any or all of these are fields are included, they are set. // These are persistent options that are retained across power fail and // erased on either PIN erase or PIN secure erase. message Setup { // The cluster version to be checked. The default if never set is 0. // If this is missing, it is assumed to be unchanged; // This is persistent between boots of the device. optional int64 newClusterVersion = 1; Loading Loading @@ -442,7 +433,7 @@ message Command { message Peer { optional string hostname = 1; optional int32 port = 2; optional uint32 port = 2; optional bool tls = 3; } Loading Loading @@ -506,7 +497,7 @@ message Command { message Configuration { // name of the vendor. Should be "Seagate" // name of the vendor. optional string vendor = 5; // The model of the device. Loading @@ -520,7 +511,6 @@ message Command { optional bytes worldWideName = 14; // This is the vendor specific version of the software on the device in dot notation // if this is not set or ends with "x" this is test code. optional string version = 8; optional string compilationDate = 12; optional string sourceHash = 13; Loading @@ -536,8 +526,8 @@ message Command { repeated Interface interface = 9; // these are the port numbers for the software optional int32 port = 10; optional int32 tlsPort = 11; optional uint32 port = 10; optional uint32 tlsPort = 11; // The unsolicited message at the beginning of a connection will return // the drive status. The only two possible values are OPERATIONAL Loading Loading @@ -624,13 +614,13 @@ message Command { enum HMACAlgorithm { INVALID_HMAC_ALGORITHM = -1; // Must come first // 0 is reserved; do not use HmacSHA1 = 1; // this is the default HmacSHA1 = 1; } message Scope { optional int64 offset = 1; optional uint64 offset = 1; optional bytes value = 2; repeated Permission permission = 3; // one per role repeated Permission permission = 3; optional bool TlsRequired = 4; // This is only allowed over the the TLS connection } Loading @@ -647,9 +637,8 @@ message Command { POWER_MANAGEMENT = 9; // can setup power management } // The maxPriority is checked against the header priority and range // priority (if present) fields. The priority must be greater than // or equal to this maxPriority field. // The maxPriority is checked against the header priority field. The header priority // for any command must be less than or equal to this maxPriority field. optional Priority maxPriority = 5; } Loading Loading @@ -781,7 +770,7 @@ message Command { enum PowerLevel { INVALID_LEVEL = -1; OPERATIONAL = 1; // Fully operational mode, default mode for the drive HIBERNATE = 2; // All operations will be rejected HIBERNATE = 2; // All operations other than SET_POWER_LEVEL will be rejected SHUTDOWN = 3; FAIL = 4; } Loading