OCP_DatacenterSSD_2_0_UserInput¶
OCP_DCSSD_2_0_Thermal_CompositeTemperature.py¶
NOTE: Two identical drives are required to run this script – same vendor, same model, same capacity, same firmware version
- This script will run the following tests:
Precondition both drives with 128KiB sequential writes
Have the user insert DUT1 and power it on
Wait 10 minutes for DUT1 to reach idle steady state
Issue GetLogPage for LID 2h and record composite temperature
Start 100% 128KiB sequential writes and wait for steady state
Every 10 minutes for 2 hours, compute mininum, maximum, and average composite temperature values, and verify mininum and maximum delta is <= 2 degrees C
Stop I/O
Have the user replace DUT1 with DUT2 and power it on
Repeat steps 3-8
Verify delta for idle, mininum, maximum, and average composite temperature values, respectively, between both drives is <= 2 degrees C
Have the user replace DUT2 with DUT1 and power it on
NOTE: The user is required to run this script from the CLI as Yes/No questions will need to be answered
Pass/Fail: Script passes if all tests pass
Open Compute Project Datacenter NVMe SSD Spec v2.0 requirements referenced by this script:
TRPT-2/3
OCP_DCSSD_2_0_Labeling_IdentifyCommand.py¶
- This script will run the following tests:
Get various fields from Identify Controller
Have the user verify model number is same between identify controller, adaptation parameters, and label
Have the user verify serial number is same between identify controller, adaptation parameters, and label
Have the user verify firmware version is same between identify controller, adaptation parameters, and label
Have the user verify drive capacity is same between identify controller, adaptation parameters, and label
NOTE: The user is required to run this script from the CLI as Yes/No questions will need to be answered
Pass/Fail: Script passes if all tests pass
Open Compute Project Datacenter NVMe SSD Spec v2.0 requirements referenced by this script:
LABL-1/4/11/12
OCP_DCSSD_2_0_FormFactor_M2_ManualInspection.py¶
- This script will run the following tests:
Have the user check drive dimensions
Have the user check drive uses M key
Have the user check drive label placement
NOTE: The user is required to run this script from the CLI as Yes/No questions will need to be answered
Pass/Fail: Script passes if all tests pass
Open Compute Project Datacenter NVMe SSD Spec v2.0 requirements referenced by this script:
FFM2-1/2/3/4/11
OCP_DCSSD_2_0_Thermal_TemperatureSensors.py¶
- This script will run the following tests:
Precondition the drive with 128KiB sequential writes
Let drive reach idle steady state
Issue GetLogPage for LID 2h and record composite temperature field value
Based on temperature sensor count from adaptation data, verify temperature sensors are > 0
Have the user calculate composite temperature using vendor-specific equation and verify it agrees with composite temperature from LID 2h (15 minutes will be allowed to do this)
Perform 128KiB sequential writes
After workload reaches steady state, repeat steps 3-5
NOTE: The user is required to run this script from the CLI as Yes/No questions will need to be answered
Pass/Fail: Script passes if all tests pass
Open Compute Project Datacenter NVMe SSD Spec v2.0 requirements referenced by this script:
TRPT-1/4
- get_user_input_value(question)
Ask user a question and wait for input, and verify it’s an integer or float value
- Parameters
question (str) – Question to ask the user
- Returns
input_value – Value entered by the user
- Return type
int or float
OCP_DCSSD_2_0_FormFactor_E1S_1CConnector.py¶
- This script will run the following tests:
Verify PCI Express Link Capabilities register (0Ch) lane width supports at least x4
Have the user verify the device only has a 1C connector
NOTE: The user is required to run this script from the CLI as Yes/No questions will need to be answered
Pass/Fail: Script passes if all tests pass
Open Compute Project Datacenter NVMe SSD Spec v2.0 requirements referenced by this script:
FFE1S-12
OCP_DCSSD_2_0_FormFactor_E1L_HotSwap.py¶
- This script will run the following tests:
Run sequential read and write I/O test for 5 minutes
Verify performance is within 5% of performance numbers supplied in adaptation parameters
Run sequential write I/O test
Have the user unplug and plugin the drive
Do a sequential read and verify there’s no miscompare
Stop sequential write I/O test
Run sequential read and write I/O test for 5 minutes
Verify performance is within 5% of performance numbers supplied in adaptation parameters
NOTE: The user is required to run this script from the CLI as Yes/No questions will need to be answered
Pass/Fail: Script passes if all tests pass
Open Compute Project Datacenter NVMe SSD Spec v2.0 requirements referenced by this script:
GFF-5
OCP_DCSSD_2_0_FormFactor_E1S_HotSwap.py¶
- This script will run the following tests:
Run sequential read and write I/O test for 5 minutes
Verify performance is within 5% of performance numbers supplied in adaptation parameters
Run sequential write I/O test
Have the user unplug and plugin the drive
Do a sequential read and verify there’s no miscompare
Stop sequential write I/O test
Run sequential read and write I/O test for 5 minutes
Verify performance is within 5% of performance numbers supplied in adaptation parameters
NOTE: The user is required to run this script from the CLI as Yes/No questions will need to be answered
Pass/Fail: Script passes if all tests pass
Open Compute Project Datacenter NVMe SSD Spec v2.0 requirements referenced by this script:
GFF-5
OCP_DCSSD_2_0_Unsupported_Feature.py¶
- This script will run the following tests:
Do SetFeatures and GetFeatures for every reserved FID in the table and verify “invalid field in command” error is returned
Do SetFeatures and GetFeatures for every unsupported optional FID in the table and verify “invalid field in command” error is returned
Do SetFeatures and GetFeatures for every supported optional FID in the table and verify success is returned
Do SetFeatures and GetFeatures for every vendor unique FID in the table and verify “invalid field in command” error is returned
Have the user perform challenge-response device authentication if supported, otherwise exit script
Do SetFeatures and GetFeatures for every unsupported vendor unique FID in the table and verify “invalid field in command” error is returned
Do SetFeatures and GetFeatures for every supported vendor unique FID in the table and verify success is returned
Execute a controller reset
Do SetFeatures and GetFeatures previously unlocked vendor unique FIDs and verify “invalid field in command” error is returned
NOTE: The user is required to run this script from the CLI as Yes/No questions will need to be answered
Pass/Fail: Script passes if all tests pass
Open Compute Project Datacenter NVMe SSD Spec v2.0 requirements referenced by this script:
SEC-19
- check_fid_optional(dut, fid_list, num_fids_supp, fids_supp, fids_supp_len)
Verify unsupported optional FID returns INVALID_FIELD error, and supported optional FID doesn’t return that error
- Parameters
dut (XML_API) – Device object under test
fid_list (list) – List of FIDs (in integer format) to loop through
num_fids_supp (int) – Value of NUM_OPT_FIDS_SUPPORTED or NUM_VU_FIDS_SUPPORTED
fids_supp (list) – List of OPT_FIDS_SUPPORTED or VU_FIDS_SUPPORTED
fids_supp_len (int) – Length of OPT_FIDS_SUPPORTED or VU_FIDS_SUPPORTED
- Returns
- Return type
None
- check_fid_reserved(dut, nvme_ver, fid_list)
Verify reserved FID returns INVALID_FIELD error
- Parameters
dut (XML_API) – Device object under test
nvme_ver (int) – NVMe version supported by the controller
fid_list (list) – List of FIDs (in integer format) to loop through
- Returns
- Return type
None
- check_fid_vendor_unique(dut, fid_list, num_fids_supp, fids_supp, fids_supp_len, chall_flag)
Verify vendor unique FID returns INVALID_FIELD error when locked. When unlocked, verify supported vendor unique FID doesn’t fail with INVALID_FIELD error.
- Parameters
dut (XML_API) – Device object under test
fid_list (list) – List of FIDs (in integer format) to loop through
num_fids_supp (int) – Value of NUM_OPT_FIDS_SUPPORTED or NUM_VU_FIDS_SUPPORTED
fids_supp (list) – List of OPT_FIDS_SUPPORTED or VU_FIDS_SUPPORTED
fids_supp_len (int) – Length of OPT_FIDS_SUPPORTED or VU_FIDS_SUPPORTED
chall_flag (int) – 1 = Verify supported FIDs don’t fail with INVALID_FIELD, 0 = Verify supported FIDs do fail with INVALID_FIELD
- Returns
- Return type
None
- print_fids_supp_hex(param_name, fids_supp_hex, fids_supp_len_hex)
Print a hexadecimal list of controller-supported FIDs
- Parameters
param_name (str) – Parameter name (e.g. OPT_FIDS_SUPPORTED or VU_FIDS_SUPPORTED)
fids_supp_hex (list) – List of OPT_FIDS_SUPPORTED or VU_FIDS_SUPPORTED
fids_supp_len_hex (int) – Length of OPT_FIDS_SUPPORTED or VU_FIDS_SUPPORTED
- Returns
- Return type
None
OCP_DCSSD_2_0_FormFactor_E1S_GreenLED.py¶
- This script will run the following tests:
Have the user check drive green activity LED is lit solidly
Start write I/O and have the user check drive green activity LED is flashing while I/O is running
Start read I/O and have the user check drive green activity LED is flashing while I/O is running
Power off drive and have the user check drive green activity LED is off
Power on drive and have the user check drive green activity LED is lit solidly
NOTE: The user is required to run this script from the CLI as Yes/No questions will need to be answered
Pass/Fail: Script passes if all tests pass
Open Compute Project Datacenter NVMe SSD Spec v2.0 requirements referenced by this script:
FFE1S-3/4
OCP_DCSSD_2_0_FormFactor_U2U3_LED.py¶
- This script will run the following tests:
Have the user check drive activity LED is off
Start write I/O and have the user check drive activity LED is flashing while I/O is running
Start read I/O and have the user check drive activity LED is flashing while I/O is running
Power off drive and have the user check drive activity LED is off
Power on drive and have the user check drive activity LED is off
NOTE: The user is required to run this script from the CLI as Yes/No questions will need to be answered
Pass/Fail: Script passes if all tests pass
Open Compute Project Datacenter NVMe SSD Spec v2.0 requirements referenced by this script:
FF8639-3/4
OCP_DCSSD_2_0_FormFactor_M2_LED.py¶
- This script will run the following tests:
Have the user check drive activity LED is lit solidly
Start write I/O and have the user check drive activity LED is flashing while I/O is running
Start read I/O and have the user check drive activity LED is flashing while I/O is running
Power off drive and have the user check drive activity LED is off
Power on drive and have the user check drive activity LED is lit solidly
NOTE: The user is required to run this script from the CLI as Yes/No questions will need to be answered
Pass/Fail: Script passes if all tests pass
Open Compute Project Datacenter NVMe SSD Spec v2.0 requirements referenced by this script:
FFM2-6/7
OCP_DCSSD_2_0_Unsupported_LogPage.py¶
- This script will run the following tests:
Do GetLogPage for every reserved LID in the table and verify “invalid log page” error is returned
Do GetLogPage for every unsupported optional LID in the table and verify “invalid log page” error is returned
Do GetLogPage for every supported optional LID in the table and verify success is returned
Do GetLogPage for every vendor unique LID in the table and verify “invalid log page” error is returned
Have the user perform challenge-response device authentication if supported, otherwise exit script
Do GetLogPage for every unsupported vendor unique LID in the table and verify “invalid log page” error is returned
Do GetLogPage for every supported vendor unique LID in the table and verify success is returned
Execute a controller reset
Do GetLogPage previously unlocked vendor unique LIDs and verify “invalid log page” error is returned
NOTE: The user is required to run this script from the CLI as Yes/No questions will need to be answered
Pass/Fail: Script passes if all tests pass
Open Compute Project Datacenter NVMe SSD Spec v2.0 requirements referenced by this script:
SEC-19
- check_lid_optional(dut, lid_list, num_lids_supp, lids_supp, lids_supp_len)
Verify unsupported optional LID returns INVALID_LOG_PAGE error, and supported optional LID doesn’t return that error
- Parameters
dut (XML_API) – Device object under test
lid_list (list) – List of LIDs (in integer format) to loop through
num_lids_supp (int) – Value of NUM_OPT_LIDS_SUPPORTED or NUM_VU_LIDS_SUPPORTED
lids_supp (list) – List of OPT_LIDS_SUPPORTED or VU_LIDS_SUPPORTED
lids_supp_len (int) – Length of OPT_LIDS_SUPPORTED or VU_LIDS_SUPPORTED
- Returns
- Return type
None
- check_lid_reserved(dut, nvme_ver, lid_list)
Verify reserved LID returns INVALID_LOG_PAGE error
- Parameters
dut (XML_API) – Device object under test
nvme_ver (int) – NVMe version supported by the controller
lid_list (list) – List of LIDs (in integer format) to loop through
- Returns
- Return type
None
- check_lid_vendor_unique(dut, lid_list, num_lids_supp, lids_supp, lids_supp_len, chall_flag)
Verify vendor unique LID returns INVALID_LOG_PAGE error when locked. When unlocked, verify supported vendor unique LID doesn’t fail with INVALID_LOG_PAGE error.
- Parameters
dut (XML_API) – Device object under test
lid_list (list) – List of LIDs (in integer format) to loop through
num_lids_supp (int) – Value of NUM_OPT_LIDS_SUPPORTED or NUM_VU_LIDS_SUPPORTED
lids_supp (list) – List of OPT_LIDS_SUPPORTED or VU_LIDS_SUPPORTED
lids_supp_len (int) – Length of OPT_LIDS_SUPPORTED or VU_LIDS_SUPPORTED
chall_flag (int) – 1 = Verify supported LIDs don’t fail with INVALID_LOG_PAGE, 0 = Verify supported LIDs do fail with INVALID_LOG_PAGE
- Returns
- Return type
None
- print_lids_supp_hex(param_name, lids_supp_hex, lids_supp_len_hex)
Print a hexadecimal list of controller-supported LIDs
- Parameters
param_name (str) – Parameter name (e.g. OPT_LIDS_SUPPORTED or VU_LIDS_SUPPORTED)
lids_supp_hex (list) – List of OPT_LIDS_SUPPORTED or VU_LIDS_SUPPORTED
lids_supp_len_hex (int) – Length of OPT_LIDS_SUPPORTED or VU_LIDS_SUPPORTED
- Returns
- Return type
None
OCP_DCSSD_2_0_Unsupported_Command.py¶
- This script will run the following tests:
Verify reserved Admin and NVM opcodes in the table return an “invalid command opcode” error
Verify unsupported optional Admin and NVM opcodes in the table return an “invalid command opcode” error
Verify supported optional Admin and NVM opcodes in the table return success
Verify vendor unique Admin and NVM opcodes in the table return an “invalid command opcode” error
Have the user perform challenge-response device authentication if supported, otherwise exit script
Verify unsupported vendor unique Admin and NVM opcodes in the table return an “invalid command opcode” error
Verify supported vendor unique Admin and NVM opcodes in the adaptation parameters file return success
Execute a controller reset
Execute a command for previously unlocked vendor unique Admin and NVM opcodes and verify an “invalid command opcode” error is returned
NOTE: The user is required to run this script from the CLI as Yes/No questions will need to be answered
Pass/Fail: Script passes if all tests pass
Open Compute Project Datacenter NVMe SSD Spec v2.0 requirements referenced by this script:
SEC-19
- check_opcode_optional(dut, opcode_list, admin_nvm_flag, num_cmds_supp, cmds_supp, cmds_supp_len)
Verify unsupported optional opcode returns INVALID_OPCODE error, and supported optional opcode doesn’t return that error
- Parameters
dut (XML_API) – Device object under test
opcode_list (list) – List of opcodes (in integer format) to loop through
admin_nvm_flag (int) – 0 = Execute Admin command, 1 = Execute NVM command
num_cmds_supp (int) – Value of NUM_OPT_ADM_CMDS_SUPPORTED or NUM_OPT_NVM_CMDS_SUPPORTED
cmds_supp (list) – List of OPT_ADM_CMD_OPCODES or OPT_NVM_CMD_OPCODES
cmds_supp_len (int) – Length of OPT_ADM_CMD_OPCODES or OPT_NVM_CMD_OPCODES
- Returns
- Return type
None
- check_opcode_reserved(dut, nvme_ver, opcode_list, admin_nvm_flag)
Verify reserved opcode returns INVALID_OPCODE error
- Parameters
dut (XML_API) – Device object under test
nvme_ver (int) – NVMe version supported by the controller
opcode_list (list) – List of opcodes (in integer format) to loop through
admin_nvm_flag (int) – 0 = Execute Admin command, 1 = Execute NVM command
- Returns
- Return type
None
- check_opcode_vendor_unique(dut, opcode_list, admin_nvm_flag, num_cmds_supp, cmds_supp, cmds_supp_len, chall_flag)
Verify vendor unique opcode returns INVALID_OPCODE error when locked. When unlocked, verify supported vendor unique opcode doesn’t fail with INVALID_OPCODE error.
- Parameters
dut (XML_API) – Device object under test
opcode_list (list) – List of opcodes (in integer format) to loop through
admin_nvm_flag (int) – 0 = Execute Admin command, 1 = Execute NVM command
num_cmds_supp (int) – Value of NUM_OPT_ADM_CMDS_SUPPORTED or NUM_OPT_NVM_CMDS_SUPPORTED
cmds_supp (list) – List of OPT_ADM_CMD_OPCODES or OPT_NVM_CMD_OPCODES
cmds_supp_len (int) – Length of OPT_ADM_CMD_OPCODES or OPT_NVM_CMD_OPCODES
chall_flag (int) – 1 = Verify supported opcodes don’t fail with INVALID_OPCODE, 0 = Verify supported opcodes do fail with INVALID_OPCODE
- Returns
- Return type
None
- print_cmds_supp_hex(param_name, cmds_supp_hex, cmds_supp_len_hex)
Print a hexadecimal list of controller-supported opcodes
- Parameters
param_name (str) – Parameter name (e.g. OPT_ADM_CMD_OPCODES or OPT_NVM_CMD_OPCODES or VU_ADM_CMD_OPCODES or VU_NVM_CMD_OPCODES)
cmds_supp_hex (list) – List of OPT_ADM_CMD_OPCODES or OPT_NVM_CMD_OPCODES or VU_ADM_CMD_OPCODES or VU_NVM_CMD_OPCODES
cmds_supp_len_hex (int) – Length of OPT_ADM_CMD_OPCODES or OPT_NVM_CMD_OPCODES or VU_ADM_CMD_OPCODES or VU_NVM_CMD_OPCODES
- Returns
- Return type
None
OCP_DCSSD_2_0_Labeling_Barcodes.py¶
- This script will run the following tests:
Have the user verify barcode-1 scanned value
Have the user verify model number is same between adaptation parameters, label, and barcode-1 scanned value
Have the user verify serial number is same between adaptation parameters, label, and barcode-1 scanned value
If adaptation parameter PSID Type is “unique”, have the user verify PSID is the same between label and barcode-2 scanned value
NOTE: The user is required to run this script from the CLI as Yes/No questions will need to be answered
Pass/Fail: Script passes if all tests pass
Open Compute Project Datacenter NVMe SSD Spec v2.0 requirements referenced by this script:
LABL-1/5/11/12/14/21
OCP_DCSSD_2_0_Thermal_Throttling.py¶
- This script will run the following tests:
Issue IdentifyController and get WCTEMP value
Issue AER
Have the user set the oven temperature to 25 degrees Celsius
Issue GetLogPage for LID C0h and check thermal throttling status and count values
Perform 128KB sequential writes
Have the user increase the oven temperature 1 degree Celsius per minute
Issue GetLogPage for LID 2h and get composite temperature
Issue GetLogPage for LID C0h and check thermal throttling status and count values
Repeat steps 7-8 until composite temperature reaches 77 degrees Celsius
Verify AER completed successfully
Issue GetLogPage for LID 2h and verify critical warning bit 1 is set to 1
Issue GetLogPage for LID C0h and check thermal throttling status and count values
Have the user set the oven temperature to 25 degrees Celsius
Issue GetLogPage for LID 2h and verify composite temperature is below 77 degrees Celsius
Stop I/O
NOTE: The user is required to run this script from the CLI as Yes/No questions will need to be answered
Pass/Fail: Script passes if all tests pass
Open Compute Project Datacenter NVMe SSD Spec v2.0 requirements referenced by this script:
TTROTTLE-2/3/5/6, SMART-12
- wait_for_aen(dut, log_file)
Verify asynchronous event request completed and has the correct info
- Parameters
dut (XML_API) – Device object under test
log_file (file) – /var/log/messages output
- Returns
aer_flag – 0 = AER was successful, 1 = AER failed
- Return type
int
OCP_DCSSD_2_0_FormFactor_E1L_1CConnector.py¶
- This script will run the following tests:
Verify PCI Express Link Capabilities register (0Ch) lane width supports at least x4
Have the user verify the device only has a 1C connector
NOTE: The user is required to run this script from the CLI as Yes/No questions will need to be answered
Pass/Fail: Script passes if all tests pass
Open Compute Project Datacenter NVMe SSD Spec v2.0 requirements referenced by this script:
FFE1L-12
OCP_DCSSD_2_0_Labeling_ManualInspection.py¶
- This script will run the following tests:
Have the user check drive label placement
Have the user verify various fields are the same between adaptation parameters and label
Have the user verify PSID is either on or not on the label
Have the user verify either one or two barcodes are on the label
Have the user verify vendor logo and storage device text are on the label
Have the user check logos on the label
NOTE: The user is required to run this script from the CLI as Yes/No questions will need to be answered
Pass/Fail: Script passes if all tests pass
Open Compute Project Datacenter NVMe SSD Spec v2.0 requirements referenced by this script:
LABL-1/2/4/6/7/10/11/12/13/15/16/17/23
OCP_DCSSD_2_0_FormFactor_E1L_GreenLED.py¶
- This script will run the following tests:
Have the user check drive green activity LED is lit solidly
Start write I/O and have the user check drive green activity LED is flashing while I/O is running
Start read I/O and have the user check drive green activity LED is flashing while I/O is running
Power off drive and have the user check drive green activity LED is off
Power on drive and have the user check drive green activity LED is lit solidly
NOTE: The user is required to run this script from the CLI as Yes/No questions will need to be answered
Pass/Fail: Script passes if all tests pass
Open Compute Project Datacenter NVMe SSD Spec v2.0 requirements referenced by this script:
FFE1L-3/4