IP Library Granted Patent US 8,225,013
Granted Patent B2
US 8,225,013 · App. 13/026,985 · Granted Jul 17, 2012

Generation of a formatted unique device identifier from an AT attachment serial number

Assignee: Coraid, Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,225,013
App. No.
13/026,985
Granted
Jul 17, 2012
Kind
B2
Abstract

A Network Address Authority (“NAA”) identifier associated with a storage device is generated from an Advanced Technology Attachment (“ATA”) serial number, or other identifier, associated with the storage device. The ATA serial number is received from the storage device and used to generate a unique string having a predefined length. In one embodiment, a hash function is applied to the ATA serial number to produce a unique value from the ATA serial number and a portion of the unique value, such as the least significant three bytes, is used as the string having the predefined length. Additional identifying data is combined with the predefined length string and reformatted to generate the NAA identifier. For example, an eight-byte data packet including a four-bit type identifier, a three-byte OUI and the three-byte predefined length string is generated and subsequently used to identify the storage device to processes or devices.

Claims (59)

1. A method for generating an identifier having a specified format and uniquely associated with a storage device, the method comprising:

receiving, from the storage device, an identifier associated with the storage device and having a first format which differs from the specified format;

generating a data string having a predefined length from the identifier associated with the storage device and having the first format, the predefined length of the string determined from the specified format;

combining additional identification data with the data string having the predefined length;

generating the identifier having the specified format by reformatting the additional identification data and the data string having the predefined length according to one or more formatting parameters associated with the specified format; and

storing the identifier having the specified format in a computer-readable storage medium,

wherein said generating the data string comprises applying a hash function to the identifier associated with the storage device and having the first format, and

wherein said applying the hash function comprises:

identifying a first byte of the identifier associated with the storage device and having the first format;

logically shifting the first byte by a shift amount to produce a shifted first byte;

adding the shifted first byte to an accumulator value;

incrementing the shift amount by a specified value to generate an incremented shift amount;

identifying a second byte of the identifier;

logically shifting the second byte by the incremented shift amount to produce a shifted second byte; and

adding the shifted second byte to the accumulator value.

2. The method of claim 1 wherein the identifier associated with the storage device and having the first format which differs from the specified format comprises an AT Attachment (“ATA”) serial number.

3. The method of claim 1 wherein the identifier having the specified format comprises a Network Address Authority (“NAA”) identifier.

4. The method of claim 1 , wherein incrementing the shift amount by the specified value to generate the incremented shift amount comprises:

responsive to the incremented shift amount exceeding a threshold value, initializing the incremented shift amount to an initial value.

5. The method of claim 1 , further comprising:

generating the data string having the predefined length from a subset of the accumulator.

6. The method of claim 5 , wherein the subset of the accumulator comprises a least-significant three bytes of the accumulator.

7. The method of claim 6 , wherein the subset of the accumulator comprises a least-significant three bytes of the accumulator.

8. The method of claim 1 , further comprising:

identifying an upper byte of the accumulator;

identifying a lower byte of the accumulator;

generating a modified lower byte by performing an exclusive-OR of the upper byte and the lower byte; and

generating the data string having the predefined length from a subset of the accumulator and the modified lower byte.

9. The method of claim 1 , wherein the additional identification data comprises an Organizationally Unique Identifier (“OUI”) associated with an entity.

10. The method of claim 1 , wherein the additional identification data comprises a type identifier associated with the specified format.

11. The method of claim 1 , wherein reformatting the additional identification data and the data string having the predefined length according to one or more formatting parameters associated with the specified format comprises:

generating a data packet having a specified packet size and including specified data types.

12. The method of claim 11 , wherein the specified packet size comprises eight bytes, and the specified data types comprise an Organizationally Unique Identifier, a type identifier associated with the specified format and the data string having the predefined length.

13. A computer readable storage medium storing a computer program product including instructions executable by a processor of a computing device to perform a computer-implemented method for generating an identifier having a specified format and uniquely associated with a storage device, the method comprising:

receiving, from the storage device, an identifier associated with the storage device and having a first format which differs from the specified format;

generating a data string having a predefined length from the identifier associated with the storage device and having the first format, the predefined length of the string determined from the specified format;

combining additional identification data with the data string having the predefined length;

generating the identifier having the specified format by reformatting the additional identification data and the data string having the predefined length according to one or more formatting parameters associated with the specified format; and

storing the identifier having the specified format in a computer-readable storage medium,

wherein said generating the data string comprises applying a hash function to the identifier associated with the storage device and having the first format, and

wherein said applying the hash function comprising

identifying a first byte of the identifier associated with the storage device and having the first format;

logically shifting the first byte by a shift amount to produce a shifted first byte;

adding the shifted first byte to an accumulator value;

incrementing the shift amount by a specified value to generate an incremented shift amount;

identifying a second byte of the identifier;

logically shifting the second byte by the incremented shift amount to produce a shifted second byte; and

adding the shifted second byte to the accumulator value.

14. The computer readable storage medium of claim 13 , wherein the identifier associated with the storage device and having the first format which differs from the specified format comprises an AT Attachment (“ATA”) serial number.

15. The computer readable storage medium of claim 13 , wherein the identifier having the specified format comprises a Network Address Authority (“NAA”) identifier.

16. The computer readable storage medium of claim 13 , wherein incrementing the shift amount by the specified value to generate the incremented shift amount comprises:

responsive to the incremented shift amount exceeding a threshold value, initializing the incremented shift amount to an initial value.

17. The computer readable storage medium of claim 16 , further comprising:

generating the data string having the predefined length from a subset of the accumulator.

18. The computer readable storage medium of claim 13 , wherein the additional identification data comprises an Organizationally Unique Identifier (“OUI”) associated with an entity.

19. The computer readable storage medium of claim 13 , wherein the additional identification data comprises a type identifier associated with the specified format.

20. The computer readable storage medium of claim 13 , wherein reformatting the additional identification data and the data string having the predefined length according to one or more formatting parameters associated with the specified format comprises:

generating a data packet having a specified packet size and including specified data types.

21. The computer readable storage medium of claim 20 , wherein the specified packet size comprises eight bytes, and the specified data types comprise an Organizationally Unique Identifier, a type identifier associated with the specified format and the data string having the predefined length.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 12, 2016
From: CORAID, INC.
To: INTERMODAL DATA, INC.
Reel/Frame 038576/0184 →
SECURITY INTEREST Recorded May 12, 2016
From: INTERMODAL DATA, INC.
To: TRIPLEPOINT VENTURE GROWTH BDC CORP.
Reel/Frame 038576/0311 →
SECURED PARTY BILL OF SALE Recorded Jun 4, 2015
From: CORAID, INC.
To: INTERMODAL DATA, INC.
Reel/Frame 035827/0886 →
ASSIGNMENT OF SECURITY AGREEMENT (REEL 031869, FRAME 0790) Recorded Mar 7, 2014
From: TRIPLEPOINT CAPITAL LLC
To: TRIPLEPOINT VENTURE GROWTH BDC CORP.
Reel/Frame 032410/0347 →
SECURITY AGREEMENT Recorded Dec 26, 2013
From: CORAID, INC.
To: TRIPLEPOINT CAPITAL LLC
Reel/Frame 031869/0790 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 14, 2011
From: COILE, BRANTLEY; HOPKINS, SAMUEL
To: CORAID, INC.
Reel/Frame 025806/0607 →
Continuity (2)
Provisional Application 61310688 · Mar 4, 2010
Related Publication 20110219151A1 · Sep 8, 2011