FDP

FDP_IO_Management_Receive_01h_Valid.py

FDP I/O Management Receive Management Operation 01h Valid

Objective:

The objectives of FDP I/O Management Receive Management Operation 01h Valid tests are to verify the following:

  1. Issue an I/O Management Receive Command with Management Operation 01h Reclaim Unit Handle Status and verify:

    o For each Placement Handle of the namespace, the controller returns a Reclaim Unit Handle Status Descriptor

    for each Reclaim Group.

    o The Reserved fields are cleared to 0h.

Pass/Fail:

All actions must succeed for script to pass

FDP_LogPage_21h_FDP_Disabled.py

FDP Log Page 21h Reclaim Unit Handle Usage - FDP Disabled

Objective:

The objectives of FDP Log Page 21h Reclaim Unit Handle Usage FDP Disabled tests are to verify the following:

  1. If Flexible Data Placement is disabled in the specified Endurance Group and the Get Log Page command specifies LID = 21h, then the controller shall abort the command with a status code of FDP Disabled.

Pass/Fail:

All actions must succeed for script to pass

FDP_LogPage_23h_FDP_Disabled.py

FDP Events Log Page 23h FDP Disabled

Objective:

The objectives of FDP Events Log Page 23h FDP Disabled tests are to verify the following:

  1. Issue Get Log Page command, LID = 23h, and verify the following:

    o Verify that the Log Page returns data only if Flexible Data Placement is enabled on the specified Endurance Group.

Pass/Fail:

All actions must succeed for script to pass

FDP_Log_Page_Support_IO_Controller.py

FDP Log page Support IO Controller

Objective:

The objectives of the FDP Feature Support IO Controller test is to verify the following:

  • Verify rotational media and the log pages are supported IO Controller
    • FDP Configurations Log Page (0x20)

    • Reclaim Unit Hand Usage Log Page (0x21)

    • FDP Statistics Log Page (0x22)

    • FDP Events Log Page ((0x23)

Pass/Fail:

All actions must succeed for script to pass

FDP_LogPage_21h_Valid.py

FDP Reclaim Unit Handle Usage Log Page 21h Valid

Objective:

The objectives of FDP Reclaim Unit Handle Usage Log Page 21h Valid tests are to verify the following:

  1. Issue Get Log Page command, LID = 21h, and verify the following:

    o The Number of Reclaim Unit Handles (NRUH) field is a non-zero value.

    o The Number of Reclaim Unit Handles (NRUH) field is set to the value of the NRUH field in the current

    FDP configuration for the specified Endurance Group.

    o The Reserved fields are cleared to 0.

    o For each Reclaim Unit Handle Usage Descriptor (RUHUD), the following conditions are met:

    • The Reclaim Unit Handle Attributes field is set to 0, 1, or 2.

    • The Reserved fields are cleared to 0.

    • No more than one RUHUD has the Reclaim Unit Handle Attributes field set to Controller Specified 2h.

Pass/Fail:

All actions must succeed for script to pass

FDP_Basic_Support.py

FDP Basic Support

Objective:

The objectives of the FDP Basic Support test is to verify the following:

  1. If Flexible Data Placement capability is supported, then the controller supports the following:

    o The Feature Identifiers Supported and Effects (12h), FDP Configurations (20h),

    Reclaim Unit Handle Usage (21h), FDP Statistics (22h), and FDP Events (23h) Log Pages

    o The I/O Management Send Command and the Placement Identifier Update Management Operation

    o The I/O Management Receive command and the Reclaim Unit Handle Status Management Operation

    o The Flexible Data Placement (1Dh), and Flexible Data Placement Events (1Eh) Features

    o The Data Placement Directive

Pass/Fail:

All actions must succeed for script to pass

FDP_Directives_IO_Negative_Response.py

FDP Directives - I/O Negative Response

Objective:

The objectives of FDP Directives I/O Negative Response tests are to verify the following:

  1. In an I/O command, if one or more I/O Command Directives is enabled and the DTYPE field is set to a value that is not supported or not enabled, then the controller shall abort the command with a status code of Invalid Field in Command.

Pass/Fail:

All actions must succeed for script to pass

FDP_LogPage_20h_Valid.py

FDP Configurations Log Page 20h Valid

Objective:

The objectives of FDP Configurations Log Page 20h Valid tests are to verify the following:

  1. The reserved fields of the FDP Configurations Log Page 20h are properly set to 0.

  2. The Number of Reclaim Units reported in the FDP Configuration Descriptor is set to a non-zero value.

  3. The Number of Reclaim Unit Handles reported in the FDP Configuration Descriptor is set to a non-zero value.

4. If the Number of Reclaim Unit Groups reported in the FDP Configuration Descriptor is 1, then the Reclaim Group Identifier Format field is cleared to 0.

5. If the Number of Reclaim Unit Groups reported in the FDP Configuration Descriptor is greater than 1, then the Reclaim Group Identifier Format field is set to a non-zero value.

6. The Max Placement Identifiers reported in the FDP Configuration Descriptor is less than the product of the Number of Reclaim Groups and the Number of Reclaim Unit Handles.

7. If the Maximum Number of Allowed Namespaces reported in the Identify Controller Data Structure is 0, then the Number of Namespaces Supported reported in the FDP Configuration Descriptor is less than the Number of Namespaces reported in the Identify Controller Data Structure.

8. If the Maximum Number of Allowed Namespaces reported in the Identify Controller Data Structure is greater than 0, then the Number of Namespaces Supported reported in the FDP Configuration Descriptor is less than or equal to the Maximum Number of Allowed Namespaces.

Pass/Fail:

All actions must succeed for script to pass

FDP_LogPage_22h_FDP_Disabled.py

FDP Statistics Log Page 22h Disabled

Objective:

The objectives of FDP Statistics Log Page 22h FDP Disabled tests are to verify the following:

  1. If Flexible Data Placement is disabled in the specified Endurance Group and the Get Log Page command specifies LID = 22h, then the controller shall abort the command with a status code of FDP Disabled.

Pass/Fail:

All actions must succeed for script to pass

FDP_LogPage_23h_Events_Disabled.py

FDP Log Page 23h Flexible Data Placement (FDP) Events - Events Disabled

Objective:

The objectives of FDP Log Page 23h Flexible Data Placement (FDP) Events - Events Disabled tests are to verify the following:

  1. Issue a Get Log Page command with LID = 23h and verify:

    o An FDP event shall only be reported if the FDP event occurs and that FDP event is enabled for that

    Reclaim Unit Handle.

Pass/Fail:

All actions must succeed for script to pass

FDP_Feature_06h_Volatile_Write_Cache_Present.py

FDP Volatile Write Cache Feature Identifier 06h - Volatile Write Cache Present

Objective:

The objectives of FDP Volatile Write Cache Feature Identifier 06h Toggled tests are to verify the following:

  1. If a volatile write cache is present, then Feature Identifier 06h shall be supported.

Pass/Fail:

All actions must succeed for script to pass

FDP_IO_Management_Negative_Response.py

FDP I/O Management Negative Response

Objective:

The objectives of FDP I/O Management Negative Response tests are to verify the following:

  1. Issue an I/O Management Receive Command with Management Operation 01h Reclaim Unit Handle Status and verify:

    o The command is aborted with a status code of FDP Disabled if Flexible Data Placement is disabled in the

    Endurance Group containing the specified namespace.

    o The command is aborted with a status code of Invalid Namespace or Format if the NSID field is set to 0h or

    FFFFFFFFh.

  2. Issue an I/O Management Send Command with Management Operation 01h Reclaim Unit Handle Update and verify:

    o The command is aborted with a status code of Invalid Field in Command under the following conditions:

    • The value of the Reclaim Group Identifier field is greater than or equal to the Number of Reclaim Groups field of the FDP Configuration Descriptor for the Endurance Group associated with the specified namespace.

    • The specified Placement Handle field is greater than or equal to the Number of Placement Handles field specified when the namespace was created.

    • The value represented by the Number of Placement Identifiers (NPID) field is greater than the Max Placement Identifiers (MAXPIDS) field in the current FDP configuration.

    o The command is aborted with a status code of FDP Disabled if Flexible Data Placement is disabled in the

    Endurance Group containing the specified namespace.

Pass/Fail:

All actions must succeed for script to pass

FDP_NVMe_FormatNVM_Format_Index.py

FDP NVMe Format NVM - Format Index

Objective:

The objectives of FDP NVMe Format NVM Format Index h tests are to verify the following:

  1. If any Reclaim Unit Handle utilized by the specified namespace is shared by other namespaces and the specified Format Index does not match the Format Index of the other namespaces, then the command shall be aborted with a status code of Invalid Format.

Pass/Fail:

All actions must succeed for script to pass

FDP_Identify_CNS08h_UID_Reuse.py

FDP Identify Controller CNS 1h UID Reuse

Objective:

The objectives of FDP Identify Controller CNS 1h VWC Valid tests are to verify the following:

1. Issue NVMe Identify command, CNS = 1h, and read the Common Namespace Features (NSFEAT) field of the Identify Controller Data Structure to verify the following:

o In the Identify Namespace Data Structure, if the NGUID field is 0h and the EUI64 field is 0h, then the UIDREUSE field is 0h.

Pass/Fail:

All actions must succeed for script to pass

FDP_IO_Management_Receive_01h_Time_Increment.py

FDP I/O Management Receive Management Operation 01h Time Increment

Objective:

The objectives of FDP I/O Management Receive Management Operation 01h Time Increment tests are to verify the following:

  1. Issue an I/O Management Receive Command with Management Operation 01h Reclaim Unit Handle Status and verify:

    o The Estimated Active Reclaim Unit Time Remaining (EARUTR) field in the Reclaim Unit Handle Status

    Descriptor (RUHSD) properly decrements as time progresses.

Pass/Fail:

All actions must succeed for script to pass

FDP_LogPage_20h_Volatile_Write_Cache.py

FDP Configurations Log Page 20h Volatile Write Cache

Objective:

The objectives of FDP Configurations Log Page 20h Volatile Write Cache tests are to verify the following:

  1. Issue Get Log Page command, LID = 20h, and verify the following:

    o Verify that VWCP in the Identify Controller is 1 if FDPVWC in the FDP Configuration Descriptor is set to 1.

Pass/Fail:

All actions must succeed for script to pass

FDP_Directives_Basic_Support.py

FDP Directives - Basic Support

Objective:

The objectives of FDP Directives - Basic Support tests are to verify the following:

  1. If the controller supports directives, then the controller supports Directive Send and Receive commands.

  2. If the controller supports directives, then the controller supports the Identify Directive (00h) directive type.

  3. All Reserved fields of any parsed structures are cleared to 0.

Pass/Fail:

All actions must succeed for script to pass

FDP_Identify_CNS01h_FDPS.py

FDP Identify CNS 1h Identify Controller - FDPS

Objective:

The objectives of FDP Identify CNS 1h Identify Controller FDPS tests are to verify the following:

  1. If Flexible Data Placement is supported on the controller, then the controller does not indicate support for Fixed Capacity Management in the Fixed Capacity Management (FCM) bit of the Identify Controller Data Structure.

Pass/Fail:

All actions must succeed for script to pass

FDP_NVMe_Write_Invalid_Handle.py

FDP NVMe Write - Invalid Handle

Objective:

The objectives of FDP NVMe Write DTYPE 0h tests are to verify the following:

If the Placement Identifier in the DSPEC field of a write command is invalid, then the controller shall:

o Determine the placement of the user data for that write command.

o Generate an Invalid Placement Identifier FDP Event if that event is enabled for the selected Reclaim Unit

Handle.

Pass/Fail:

All actions must succeed for script to pass

FDP_Endurance_Groups_Basic_Support.py

FDP Endurance Groups - Basic Support

Objective:

The objectives of the FDP Endurance Groups Basic Support test is to verify the following:

  1. If Endurance Groups are supported on the drive, then the controller:

    o Indicates support for Endurance Groups in the Controller Attributes field in the Identify Controller

    data structure

    o Indicates the Endurance Group Identifier with which the namespace is associated in the Identify Namespace

    data structure

    o Supports the Endurance Group Information Log Page

    o Supports the Endurance Group Event Aggregate Log Page, if more than one Endurance Group is supported in

    the NVM subsystem

Pass/Fail:

All actions must succeed for script to pass

FDP_Feature_Support_IO_Controller.py

FDP Feature Support I/O Controller

Objective:

The objectives of the FDP Feature Support I/O Controller test is to verify the following:

  1. If the I/O Controller supports Flexible Data Placement, verify the controller supports the following mandatory features:

    o Flexible Data Placement (FID 1Dh)

    o Flexible Data Placement Events (FID 1Eh)

Pass/Fail:

All actions must succeed for script to pass

FDP_Feature_1Dh_Default.py

FDP Get Features - FID 1Dh Default Values

Objective:

The objectives of FDP Get Features - FID 1Dh Default Values tests are to verify the following:

  1. Perform a Get Feature command with Feature Identifier 1Dh and verify the following fields:

    o The default value of DW0 is set to 0h.

Pass/Fail:

All actions must succeed for script to pass

FDP_Feature_06h_Volatile_Write_Cache_Persistent.py

FDP Volatile Write Cache Feature Identifier 06h - Persistent

Objective:

The objectives of FDP Volatile Write Cache Feature Identifier 06h Persistent tests are to verify the following:

  1. If a volatile write cache is present, and the volatile write cache is disabled, then user data written by any command to a namespace shall be persistent.

Pass/Fail:

All actions must succeed for script to pass

FDP_LogPage_23h_Cleared.py

FDP Log Page 23h Flexible Data Placement (FDP) Events - Cleared

Objective:

The objectives of FDP Log Page 23h Flexible Data Placement (FDP) Events Cleared tests are to verify the following:

  1. Issue a Set Features command with Feature Identifier 1Dh and verify:

    o If the Set Features command is successful and changes the Feature value, then all events in the FDP Events

    Log Page are cleared.

Pass/Fail:

All actions must succeed for script to pass

FDP_LogPage_21h_Reported_Handle_Attributes.py

FDP Log Page 21h Reclaim Unit Handle Usage - Reported Handle Attributes

Objective:

The objectives of the FDP Log Page 21h Reported Handle Attributes test is to verify the following:

  1. Issue a Namespace Management command with SEL = 0h and verify:

    o The Reclaim Unit Handle Usage Descriptor List Data Structure returned by Log Page 21h accurately reflects

    the Placement Handle List specified by the Namespace Management command.

Pass/Fail:

All actions must succeed for script to pass

FDP_Feature_1Dh_Saveable.py

FDP Feature FID 1Dh Savable

Objective:

The objectives of FDP Feature FID 1Dh Saveable tests are to verify the following:

  1. Perform a Set Feature command with Feature Identifier 1Dh and verify the following fields:

    o The value of FDP Feature 1Dh changes only when the SV bit is set to 1.

Pass/Fail:

All actions must succeed for script to pass

FDP_Directives_Controller_Level_Reset.py

FDP Directives - Controller Level Reset

Objective:

The objectives of FDP Directives Negative Response tests are to verify the following:

  1. Issue a Directive Receive Command with Directive Type 00h Identify and Directive Operation 01h Return Parameters and verify:

    o On a controller level reset, all Directives other than the Identify Directive that have the Directive

    Persistent Across Controller Level Resets bit cleared to 0 are disabled for that controller.

    o On a controller level reset, if there is an enabled controller associated with the Host Identifier for the

    controller that was reset, then for namespaces attached to enabled controllers associated with that Host Identifier, Directives are not disabled.

    o If the Data Placement Directive is supported, then the Data Placement Directive bit in the Directive

    Persistent Across Controller Level Resets field shall be set to 1. If not supported, then this bit shall be set to 0.

    o The Streams Directive bit in the Directive Persistent Across Controller Level Resets field shall be

    cleared to 0.

    o The Identify Directive bit in the Directive Persistent Across Controller Level Resets field shall be

    cleared to 0.

    o If the Vendor Specific Directive is not supported, then the Vendor Specific Directive bit in the Directive

    Persistent Across Controller Level Resets field shall be set to 0.

Pass/Fail:

All actions must succeed for script to pass

FDP_Identify_CNS01h_FCM.py

FDP Identify CNS 1h Identify Controller - FCM

Objective:

The objectives of FDP Identify CNS 1h Identify Controller FCM tests are to verify the following:

  1. If Fixed Capacity Management is supported on the controller, then the controller does not indicate support for Flexible Data Placement in the Flexible Data Placement Support (FDPS) bit of the Identify Controller Data Structure.

Pass/Fail:

All actions must succeed for script to pass

FDP_Identify_CNS01h_VWC_Valid.py

FDP Identify Controller CNS 1h VWC Valid

Objective:

The objectives of FDP Identify Controller CNS 1h VWC Valid tests are to verify the following:

  1. Issue NVMe Identify command, CNS = 1h, and read the VWC field of the Identify Controller Data Structure to verify the following:

    o Reserved bits 07:03 are cleared to 0.

    o Flush Behavior is set to 00b, 10b, or 11b.

    o Volatile Write Cache Present is set to 0 or 1.

Pass/Fail:

All actions must succeed for script to pass

FDP_LogPage_23h_Reported_Events.py

FDP Log Page 23h Flexible Data Placement (FDP) Events - Reported Events

Objective:

The objectives of FDP Log Page 23h Flexible Data Placement (FDP) Events Reported Events tests are to verify the following:

  1. Issue a Get Log Page command with LID = 23h, and verify:

    o The controller does not report both host events and controller events in the log page.

Pass/Fail:

All actions must succeed for script to pass

FDP_Identify_CNS01h_Flush_Behavior.py

FDP Identify Flush Behavior

Objective:

The objectives of FDP Identify Flush Behavior tests are to verify the following:

  1. Verify the Flush Behavior bit matches accordingly with its intended behavior.

Pass/Fail:

All actions must succeed for script to pass

FDP_LogPage_22h_Cleared.py

FDP Statistics Log Page 22h Cleared

Objective:

The objectives of FDP Statistics Log Page 22h Cleared tests are to verify the following:

  1. Verify that disabling and enabling FDP clears the values in log page 22h.

Pass/Fail:

All actions must succeed for script to pass

FDP_Feature_1Eh_Invalid_Placement_Handles.py

FDP Flexible Data Placement Events Feature Identifier 1Eh - Invalid Placement Handles

Objective:

The objectives of FDP Flexible Data Placement Events Feature Identifier 1Eh - Invalid Placement Handles tests are to verify the following:

  1. Perform a Set Feature command with Feature Identifier 1Eh and verify:

    o If the specified Placement Handle in Command Dword 11 is not valid for the namespace, then the

    controller shall abort with a status code of Invalid Field in Command.

  2. Perform a Get Feature command with Feature Identifier 1Eh and verify:

    o If the specified Placement Handle in Command Dword 11 is not valid for the namespace, then the

    controller shall abort with a status code of Invalid Field in Command.

Pass/Fail:

All actions must succeed for script to pass

FDP_NVMe_Write_DTYPE_0h.py

FDP NVMe Write - DTYPE 0h

Objective:

The objectives of FDP NVMe Write DTYPE 0h tests are to verify the following:

  1. Any write command to a namespace that exists in an Endurance Group with Flexible Data Placement enabled that does not specify the Data Placement Directive uses the Placement Handle value 0h and the controller selects the Reclaim Group for that command.

Pass/Fail:

All actions must succeed for script to pass

FDP_NS_Management_NPHNDLS_0h.py

FDP Namespace Management - NPHNDLS 0h

Objective:

The objectives of FDP Namespace Management - NPHNDLS 0h tests are to verify the following:

  1. Issue Namespace Management Create Operation with NPHNDLS = 0h and verify:

    o If no namespace exists in the specified Endurance Group that was created with a Namespace Management

    command that specified the NPHNDLS field cleared to 0h, then the controller shall select a Reclaim Unit Handle for the Reclaim Unit Handle Identifier 0 field that is not utilized by any namespace in the same Endurance Group that was created with a Namespace Management command that specified a non-zero NPHNDLS field.

    o If any namespace exists in the specified Endurance Group that was created with a Namespace Management

    command that specified the NPHNDLS field cleared to 0h, then the controller shall utilize the same Reclaim Unit Handle for the Reclaim Unit Handle Identifier 0 field that is utilized by those namespaces in the same Endurance Group that were created with a Namespace Management command that specified the NPHNDLS field cleared to 0h.

Pass/Fail:

All actions must succeed for script to pass

FDP_Directives_Enabled_Negative_Response.py

FDP Directives - Enabled Negative Response

Objective:

The objectives of FDP Directives Enabled Negative Response are to verify the following:

  1. If a Directive is not supported or is supported and disabled, then all Directive Send commands and Directive Receive commands with that Directive Type shall be aborted with a status code of Invalid Field in Command.

Pass/Fail:

All actions must succeed for script to pass

FDP_IO_Management_Send_01h_Update.py

FDP I/O Management Send Management Operation 01h Update

Objective:

The objectives of FDP I/O Management Send Management Operation 01h Update tests are to verify the following:

  1. Issue an I/O Management Send Command with Management Operation 01h Reclaim Unit Handle Update and verify:

    o The reference to the Reclaim Unit specified by each Placement Identifier listed in the Management

    Operation Specific field references a different Reclaim Unit if the currently referenced Unit has been written with user data.

Pass/Fail:

All actions must succeed for script to pass

FDP_Feature_06h_Negative_Response.py

FDP Volatile Write Cache Feature Identifier 06h - Negative Response

Objective:

The objectives of FDP Volatile Write Cache Feature Identifier 06h Negative Response tests are to verify the following:

  1. Issue a Set Features Command with Feature Identifier 06h and verify:

    o If a volatile write cache is not present, then the Set Features command aborts with a status code of

    Invalid Field in Command.

  2. Issue a Get Features Command with Feature Identifier 06h and verify:

    o If a volatile write cache is not present, then the Get Features command aborts with a status code of

    Invalid Field in Command.

Pass/Fail:

All actions must succeed for script to pass

FDP_NS_Management_Negative_Response.py

FDP Namespace Management - Negative Response

Objective:

The objectives of FDP Namespace Management Negative Response tests are to verify the following:

  1. Issue Namespace Management Create Operation and verify the command fails with status code 2Ah Invalid Placement Handle List in the following scenarios:

    o When the NPHNDLS field is cleared to 0h, and all Reclaim Unit Handle Identifiers accessible to the

    namespace are allocated to namespaces created by Namespace Management command with the NPHNDLS field set to a non-zero value.

    o When the NPHNDLS field is non-zero, and a Reclaim Unit Handle Identifier specified by the host is the same

    as the Reclaim Unit Handle Identifier selected by the controller due to an existing namespace being created by Namespace Management command with the NPHNDLS field cleared to 0h,

    o If the NPHNDLS field is greater than the lesser value of:

    • the number of Reclaim Unit Handles supported by the FDP configuration and

    • 128

    o If a Reclaim Unit Handle Identifier value in any entry in the Placement Handle List is greater than or

    equal to the number of Reclaim Unit Handles supported by the FDP configuration for the Endurance Group.

    o If the same Reclaim Unit Handle Identifier value is in two or more entries in the Placement Handle List.

  2. Issue Namespace Management Create Operation and verify the command fails with status code 0Ah Invalid Format in the following scenario:

    o If a Reclaim Unit Handle specified in the Placement Handle List is utilized by another namespace and the

    Format Index for that namespace does not match the specified Format Index for the namespace to be created.

Pass/Fail:

All actions must succeed for script to pass

FDP_Basic_Negative_Response.py

FDP Basic Negative Response

Objective:

The objectives of FDP Basic Negative Response are to verify the following:

  1. Verify that Log Pages specifying an Endurance Group Identifier (ENDGID) fail with status code 02h Invalid Field in Command if ENDGID = 0.

Pass/Fail:

All actions must succeed for script to pass

FDP_Feature_1Eh_Negative_Response.py

FDP Feature FID 1Eh Negative Response

Objective:

The objectives of FDP Feature FID 1Eh Negative Response tests are to verify the following:

  1. Perform a Get and Set Feature command with Feature Identifier 1Eh and verify:

    o If Flexible Data Placement is disabled, then the controller aborts the command with status code

    29h FDP Disabled.

    o If the NSID field is set to FFFFFFFFh, then the controller aborts the command with status code

    2h Invalid Field in Command.

    o If the specified Placement Handle is not valid for the namespace, then the controller aborts the command

    with status code 2h Invalid Field in Command.

Pass/Fail:

All actions must succeed for script to pass

FDP_Directive_Send_Operation_01h_Enable.py

FDP Directive Send Directive Operation 01h - Enable

Objective:

The objectives of FDP Directive Send Directive Operation 01h Enable are to verify the following:

  1. Issuing a Directive Send command with Directive Type 00h (Identify) and Directive Operation 01h (Enable Directive) correctly enables and disables the directive type specified in Command Dword 12, if that directive type is supported by the controller.

Pass/Fail:

All actions must succeed for script to pass

FDP_IO_Controller_Required_Support_IO_Controller.py

FDP I/O Controller Required Support IO Controller

Objective:

Verify basic command support for required IO Controllers Common I/O Command support (Figure 23)

Pass/Fail:

All actions must succeed for script to pass

FDP_Directives_Negative_Response.py

FDP Directives Negative Response

Objective:

The objectives of FDP Directives Negative Response tests are to verify the following:

  1. Issue a Directive Receive Command with Directive Type 00h Identify and Directive Operation 01h Return Parameters and verify:

    o The command is aborted with a status code of Invalid Field in Command if the NSID field is set

    to FFFFFFFh.

  2. Issue a Directive Receive Command with Directive Type 02h Data Placement and verify:

    o The command is aborted with a status code of Invalid Field in Command.

  3. Issue a Directive Send Command with Directive Type 02h Data Placement and verify:

    o The command is aborted with a status code of Invalid Field in Command.

    o The command is aborted with a status code of Invalid Namespace or Format if the NSID field is set

    to FFFFFFFFh.

    o The command is aborted with a status code of FDP Disabled if Flexible Data Placement is disabled in the

    Endurance Group containing the specified namespace.

Pass/Fail:

All actions must succeed for script to pass

FDP_Feature_1Dh_Negative_Response.py

FDP Feature FID 1Dh Flexible Data Placement Negative Response

Objective:

The objectives of FDP Feature FID 1Dh Flexible Data Placement Negative Response tests are to verify the following:

  1. Issue a Set Features command with Feature Identifier 1Dh Flexible Data Placement and verify:

    o The command fails with status code 0x0C Command Sequence Error when issuing the command to an Endurance

    Group in which one or more namespaces exist, and specifying a different value from the current value of the Feature for that Endurance Group.

Pass/Fail:

All actions must succeed for script to pass

FDP_Endurance_Groups_Unsupported_ENDGID.py

FDP Endurance Groups - Unsupported ENDGID

Objective:

The objectives of the FDP Basic Support test is to verify the following:

  1. If Endurance Groups are not supported and the controller returns information to the host that contains an Endurance Group Identifier field, then that field shall be cleared to 0h.

Pass/Fail:

All actions must succeed for script to pass

FDP_Rotational_Media_Basic_Support.py

FDP Rotational Media - Basic Support

Objective:

The objectives of the FDP Rotational Media test is to verify the following:

  1. If the controller supports namespaces that store user data on rotational media, then that controller:

    o Sets the Rotational Media bit to ‘1’ in the NSFEAT field of the I/O Command Set Independent Identify

    Namespace data structure for any namespace that stores data on rotational media.

    o Support the Rotational Media Information log page.

    o Support the Spinup Control feature.

    o Set the EG Rotational Media bit to ‘1’ in the EGFEAT field in the Endurance Group Information log page

    for each Endurance Group that stores data on rotational media.

Pass/Fail:

All actions must succeed for script to pass