Publication of this Working Draft for review and comment has been approved by the Scalable Storage Management Technical Work Group. This draft represents a 'best effort' attempt by the Scalable Storage Management Technical Work Group to reach preliminary consensus, and it may be updated, replaced, or made obsolete at any time. This document should not be used as reference material or cited as other than a 'work in progress.' Suggestions for revision should be directed to http://www.snia.org/feedback.

Working Draft

Table of Contents

List of Tables

USAGE

Copyright (c) 2016 - 2025 Storage Networking Industry Association. All rights reserved. All other trademarks or registered trademarks are the property of their respective owners.

Storage Networking Industry Association (SNIA) hereby grants permission for individuals to use this document for personal use only, and for corporations and other business entities to use this document for internal use only (including internal copying, distribution, and display) provided that:

  1. Any text, diagram, chart, table or definition reproduced must be reproduced in its entirety with no alteration, and,

  2. Any document, printed or electronic, in which material from this document (or any portion hereof) is reproduced must acknowledge SNIA copyright on that material, and must credit SNIA for granting permission for its reuse.

Other than as explicitly provided above, you may not make any commercial use of this document, or any portion thereof, or distribute this document to third parties. All rights not explicitly granted are expressly reserved to SNIA.

Permission to use this document for purposes other than those enumerated above may be requested by emailing tcmd@snia.org. Please include the identity of the requesting individual and/or company and a brief description of the purpose, nature, and scope of the requested use.

All code fragments, scripts, data tables, and sample code in this SNIA document are made available under the following license:

BSD 3-Clause Software License

Copyright (c) 2025, Storage Networking Industry Association.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

DISCLAIMER

The information contained in this publication is subject to change without notice. SNIA makes no warranty of any kind with regard to this publication, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. The SNIA shall not be liable for errors contained herein or for incidental or consequential damages in connection with the furnishing, performance, or use.

Suggestions for revisions should be directed to http://www.snia.org/feedback/.

Current Revision

SNIA is actively engaged in expanding and refining the Swordfish documentation. The most current revision can be found on the SNIA web site at
https://www.snia.org/tech_activities/standards/curr_standards/swordfish.

Contact SNIA

Current SNIA practice is to make updates and other information available through their web site at http://www.snia.org.

FEEDBACK AND INTERPRETATIONS

Requests for interpretation, suggestions for improvement and addenda, or defect reports are welcome. They should be sent via the SNIA Feedback Portal at http://www.snia.org/feedback/ or by mail to SNIA, 5201 Great America Parkway, Suite 320, Santa Clara, CA 95054, USA.

INTENDED AUDIENCE

This document is intended for use by individuals and companies engaged in storage management.

VERSIONING POLICY

This document is versioned material. Versioned material shall have a three-level revision identifier, comprised of a version number ‘v’, a release number ‘r’ and an errata number ‘e’. Future publications of this document are subject to specific constraints on the scope of change that is permissible from one revision to the next and the degree of interoperability and backward compatibility that should be assumed between products designed to this standard. This versioning policy applies to all SNIA Swordfish versioned materials.

Version Number: Versioned material having version number ‘v’ shall be backwards compatible with all of revisions of that material that have the same version number ‘v’. There is no assurance of interoperability or backward compatibility between revisions of a versioned material with different version numbers.

Release Number: Versioned material with a version number ‘v’ and release number ‘r’ shall be backwards compatible with previous revisions of the material with the same version number, and a lower release number. A minor revision represents a technical change to existing content or an adjustment to the scope of the versioned material. Each minor revision causes the release number to be increased by one.

Errata Number: Versioned material having version number ‘v’, a release number ‘r’, and an errata number ‘e’ should be backwards compatible with previous revisions of the material with the same version number and release number (“errata versions”). An errata revision of versioned material is limited to minor corrections or clarifications of existing versioned material. An errata revision may be backwards incompatible, if the incompatibility is necessary for correct operation of implementations of the versioned material.

USAGE

Copyright (c) 2025 SNIA. All rights reserved. All other trademarks or registered trademarks are the property of their respective owners.

The SNIA hereby grants permission for individuals to use this document for personal use only, and for corporations and other business entities to use this document for internal use only (including internal copying, distribution, and display) provided that:

  1. Any text, diagram, chart, table or definition reproduced must be reproduced in its entirety with no alteration, and,

  2. Any document, printed or electronic, in which material from this document (or any portion hereof) is reproduced must acknowledge the SNIA copyright on that material, and must credit the SNIA for granting permission for its reuse.

Other than as explicitly provided above, you may not make any commercial use of this document, or any portion thereof, or distribute this document to third parties. All rights not explicitly granted are expressly reserved to SNIA.

Permission to use this document for purposes other than those enumerated above may be requested by emailing tcmd@snia.org. Please include the identity of the requesting individual and/or company and a brief description of the purpose, nature, and scope of the requested use.

All code fragments, scripts, data tables, and sample code in this SNIA document are made available under the following license:

BSD 3-Clause Software License

Copyright (c) 2025, The Storage Networking Industry Association.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

DISCLAIMER

The information contained in this publication is subject to change without notice. The SNIA makes no warranty of any kind with regard to this publication, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. The SNIA shall not be liable for errors contained herein or for incidental or consequential damages in connection with the furnishing, performance, or use.

Suggestions for revisions should be directed to http://www.snia.org/feedback/.

Current Revision

SNIA is actively engaged in expanding and refining the Swordfish documentation. The most current revision can be found on the SNIA web site at https://www.snia.org/tech_activities/standards/curr_standards/swordfish.

Contact SNIA

Current SNIA practice is to make updates and other information available through their web site at http://www.snia.org.

FEEDBACK AND INTERPRETATIONS

Requests for interpretation, suggestions for improvement and addenda, or defect reports are welcome. They should be sent via the SNIA Feedback Portal at http://www.snia.org/feedback/ or by mail to the Storage Networking Industry Association, 4360 ArrowsWest Drive, Colorado Springs, Colorado 80907, U.S.A.

INTENDED AUDIENCE

This document is intended for use by individuals and companies engaged in storage management.

VERSIONING POLICY

This document is versioned material. Versioned material shall have a three-level revision identifier, comprised of a version number ‘v’, a release number ‘r’ and an errata number ‘e’. Future publications of this document are subject to specific constraints on the scope of change that is permissible from one revision to the next and the degree of interoperability and backward compatibility that should be assumed between products designed to this standard. This versioning policy applies to all SNIA Swordfish versioned materials.

Version Number: Versioned material having version number ‘v’ shall be backwards compatible with all of revisions of that material that have the same version number ‘v’. There is no assurance of interoperability or backward compatibility between revisions of a versioned material with different version numbers.

Release Number: Versioned material with a version number ‘v’ and release number ‘r’ shall be backwards compatible with previous revisions of the material with the same version number, and a lower release number. A minor revision represents a technical change to existing content or an adjustment to the scope of the versioned material. Each minor revision causes the release number to be increased by one.

Errata Number: Versioned material having version number ‘v’, a release number ‘r’, and an errata number ‘e’ should be backwards compatible with previous revisions of the material with the same version number and release number (“errata versions”). An errata revision of versioned material is limited to minor corrections or clarifications of existing versioned material. An errata revision may be backwards incompatible, if the incompatibility is necessary for correct operation of implementations of the versioned material.

Revision History

The evolution of this document is summarized in Table 1.

Table 1: Revision History
Date Rev Notes
21 May 2024 1.2.7 Release as SNIA Working Draft
13 August 2024 1.2.7 Release as SNIA Publication
- Errata change in FeaturesRegistry: set Resources to type Resource.Resource
28 January 2025 1.2.8 Release as Working Draft
- Update Event profile to remove references to licensing
- Updated CreateConsistencyGroup Use Case to use ConsistencyGroup and
move to MappingMasking section
- Update NVMeNamespaceManagement profile
- Features Registry: Fix type of Resources collection

About SNIA

SNIA is a not-for-profit global organization made up of corporations, universities, startups, and individuals. The members collaborate to develop and promote vendor-neutral architectures, standards, and education for management, movement, and security for technologies related to handling and optimizing data. SNIA focuses on the transport, storage, acceleration, format, protection, and optimization of infrastructure for data. Learn more at www.snia.org.

Acknowledgements

The SNIA Scalable Storage Management Technical Work Group, which developed and reviewed this work in progress, would like to recognize the significant contributions made by the following members listed in Table 2.

Table 2: Contributors
Member Representatives (* – prior employer)
Intel Corporation Richelle Ahlvers

1 Introduction

1.1 Overview

The Swordfish Scalable Storage Management API (“Swordfish”) defines a RESTful interface and a standardized data model to provide a scalable, customer-centric interface for managing storage and related data services. It extends the Redfish Scalable Platforms Management API Specification from the DMTF.

In addition to the data model and API, Swordfish has developed a suite of supported functionality into profiles and grouped them in to supported features. These profiles form the basis for a robust and consistent assessment of an implementation’s conformance to the Swordfish specification, and its ability to reliably interoperate with other Swordfish-compliant tools and systems, while the features provide a common basis to advertise functionality in run-time, using high-level and easy to consume descriptions for both humans and automation.

As with many other elements in the Swordfish ecosystem, the Swordfish profiles definition leverage and extend the Redfish profile definition, defined in the RedfishInteroperabilityProfile schema.

This document:

1.2 Who should read this document?

This document will be most useful to anyone developing or deploying a Swordfish-based system. It provides a Swordfish developer with a clear definition of the profiles that have been built around the current Swordfish specification. The profile definitions provided by this document will also be useful to Swordfish client developers who are interested in developing a more complete undestanding of the profiles provided by Swordfish, and the implicaiton and requirements surrounding profile support offered by service providers.

1.3 Using this guide

This document is broken into two main sections:

2 Features and Profiles

2.1 Introduction

Features and Profiles are paired constructs that serve related, but different, functions.

Features are high-level descriptions of functionality. An implementation advertises that it supports a given set of Features through a Features Registry (/redfish/v1/Registries). Features reflect functionality defined in profiles.

Profiles are detailed descriptions that describe, down to the individual property level, what functionality is required in order to support advertised features. Different profile definitions can exist for the same feature type but for various types of storage configurations:

Features (and the Feature Registry) are something that clients can query at runtime to determine what functionality Swordfish Implementations supports. Profiles are predominantly a tool for developers and test, used to ensure that a implementation is accurate, complete and interoperable.

2.2 Profile document definition

Like the Redfish interoperability profile, which it extends, the SwordfishInteroperability profile is specified in a JSON document. The JSON objects and properties contained in the SwordfishInteroperability profile are described in this document and the RedfishInteroperabilityProfile.v1_5_0.json from DMTF’s Redfish schema repository at http://redfish.dmtf.org/profiles. The json-schema can be used to validate a profile document to ensure compatibility with automated conformance tools or utilities.

The JSON document structure is intended to align easily with JSON payloads retrieved from a Swordfish service implementations, and to allow for easy comparisons and conformance testing. Many of the properties defined within this structure have assumed default values that correspond with the most common use case, so that those properties can be omitted from the document for brevity.

As an aid to the reader, much of the material in the Redfish document is repeated here, and any changes or extensions are clearly identified.

NB: The latest version of the Redfish Interoperability Profile includes substantial functionality that was developed after the creation of the Swordfish Interoperability Profile. As an organizational design tenet to keep Swordfish and Redfish in sync, this will be revisited on a periodic basis. Accordingly, Swordfish developers should take care to work from this document. The Swordfish Interoperability Profile v1_0_0 is based on the Redfish Interoperability Profile v1_5_0.

2.3 File name conventions

The document that describes a profile follows the Redfish schema file naming conventions from the Redfish Specification. The file name format for profiles shall be:

<ProfileName>.v<MajorVersion>_<MinorVersion>_<Errata>.json

For example, the file name of the BasicServer profile v1.2.0 is BasicServer.v1_2_0.json. The file name for a given profile shall include the profile name and version, and aatch those property values within the profile’s JSON document.

2.4 Profile Structure

2.4.1 Basic profile properties

At the top level of the JSON document are the basic properties, which describe the profile, including authorship and contact information, versioning, and other profiles to include in order to build upon previous work. They are summarizded in Table 3.

Table 3: Basic Profile Summary
Property Type Description
SchemaDefinition string The JSON schema that defines this Redfish interoperability profile document and can be used to validate its contents.
ProfileName string The name of this profile.
ProfileVersion string The version of this Redfish profile. The version shall be represented using a .. format.
Purpose string A description of the purpose of this Redfish profile, such as its intended target audience, product segments, etc.
ContactInfo string An email address that can be used to provide feedback about this Redfish profile.
OwningEntity string The name of the owning entity that defined this Redfish interoperability profile.
ContributedBy string The name of the original author or entity that contributed the content of this profile to the owning entity.
License string The license statement for this profile.
RequiredProfiles object A set of Redfish profiles that serve as a basis for this profile. The requirements set forth in these profiles are included in this profile.
Protocol object Requirements related to the Redfish protocol outside of the JSON resources. See the Protocol requirements clause.
Resources object The JSON resource requirements. See the Resource (schema) requirements clause.
Registries object The registry requirements. See the Registry-level requirements clause.

2.4.2 Required profiles

The following RequiredProfiles object structure, while shared with Redfish, differs in capability for Swordfish. In the Swordfish Interoperability Profile, the inter-dependence of profiles can be defined using Conditionals (see Swordfish Extensions to Interoperability Profile Schema), rather than the simple include model in Redfish.

The RequiredProfiles object contains object properties whose names match the name of the profile to be included. Each of these sub-objects contains the properties listed below in Table 4.

Table 4: Required Properties
Property Type Description
Repository string A URI providing the location of the repository that contains the JSON files to be included. The filenames of the JSON files contained in the repository are expected to follow the Redfish interoperability profile filename conventions. If absent, the repository location shall be the Redfish profile repository (<http://redfish.dmtf.org/profiles>).
MinVersion string The minimum version required by this Redfish profile. The version shall be represented using a <major>.<minor>.<errata> format, including an optional errata version. If this property is absent, the minimum value shall be 1.0.0.
  "RequiredProfiles": {
    "SwordfishDiscovery": {
      "Repository": "https://redfish.dmtf.org/profiles/swordfish",
      "MinVersion": "1.1.4",
      "ReadRequirement": "None",
      "ConditionalRequirements": [{
        "Purpose": "Either SwordfishDiscovery or SwordfishCoSDiscovery must be supported.",
        "CompareProfile": "SwordfishCoSDiscovery",
        "CompareType": "Absent",
        "ReadRequirement": "Mandatory"
      }]
    },
    "SwordfishCoSDiscovery": {
      "Repository": "https://redfish.dmtf.org/profiles/swordfish",
      "MinVersion": "1.2.0",
      "ReadRequirement": "None",
      "ConditionalRequirements": [{
        "Purpose": "Either SwordfishDiscovery or SwordfishCoSDiscovery must be supported.",
        "CompareProfile": "SwordfishDiscovery",
        "CompareType": "Absent",
        "ReadRequirement": "Mandatory"
      }]
    }

2.4.3 Protocol requirements

The “Protocol” object in a Profile contains properties which describe the Redfish protocol version that is required for this profile.

Swordfish profiles tend to only instrument the MinVersion property of the protocol object, which defines the minimum required version of the Redfish specification and service root. There are also minimum requirements for Swordfish schema versions. They are defined by a profile’s version and included in the MinVersion of RequiredProfiles.

Property Type Description
MinVersion string Indicates the minimum version of the Redfish Specification protocol support required by this profile. This version shall be reported by the Redfish service in the ServiceRoot resource property RedfishVersion. The version shall be represented using a .. format, including an optional errata version. If this property is absent, the minimum value shall be 1.0.0.
Discovery string Indicates support requirements for the Redfish SSDP discovery protocol. If this property is absent, there is no requirement for SSDP. See the Requirement values clause.
HostInterface string Indicates support requirements for the Redfish host interface. If this property is absent, there is no requirement for a host interface. See the Requirement values clause.
ExpandQuery string Indicates support requirements for the $expand query parameter. Additional $expand support requirements may be specified in the resource entry for the ProtocolFeaturesSupported object within ServiceRoot. If this property is absent, there is no requirement for support of the $expand query parameter. See the Requirement values clause.
FilterQuery string Indicates support requirements for the $filter query parameter. If this property is absent, there is no requirement for support of the $filter query parameter. See the Requirement values clause.
SelectQuery string Indicates support requirements for the $select query parameter. If this property is absent, there is no requirement for support of the $select query parameter. See the Requirement values clause.
OnlyQuery string Indicates support requirements for the only query parameter. If this property is absent, there is no requirement for support of the only query parameter. See the Requirement values clause.
ExcerptQuery string Indicates support requirements for the excerpt query parameter. If this property is absent, there is no requirement for support of the excerpt query parameter. See the Requirement values clause.

2.4.3.1 Example

{
    "Protocol": {
        "MinVersion": "1.8"
    }
}

2.4.4 Conditional requirements

The most flexible aspect of the Redfish profile definition is the ability to make resource or property-level requirements that are dependent on one or more conditional requirements within the resource and the parent resources in the resource tree.

Swordfish extends this capability even further to apply to profiles and registries.

The ConditionalRequirements array function specifies these conditional requirements, which add to any requirements also defined for the resource or property. Note that a condition cannot override or weaken a requirement already specified. For example, if a property requirement is marked as Mandatory, no conditional requirement could mark the property as None. Instead, the property would be specified with a None requirement, and with one or more ConditionalRequirements that would specify when the property requirement becomes Mandatory.

The following options are available for each conditional requirement:

Property Type Description
ReadRequirement string The requirement to apply to the resource or property if the condition is met.
WriteRequirement string Property-level write (HTTP PATCH or PUT) requirement for this property. See the Write requirement clause.
Purpose string Text describing the purpose of this conditional requirement.
SubordinateToResource array An ordered list, from top of hierarchy to bottom, of resources where this resource is linked as a subordinate resource. The conditional requirements listed for the resource apply only to instances which are subordinate to the listed parent resource list. See the Parent and subordinate resources clause.
Comparison string The condition used to compare the value of the property to Values. See the Comparison clause.
Values array The values used to perform a comparison. Multiple values are only allowed for AnyOf or AllOf comparisons. If no Comparison property is present, the comparison is assumed to be an AnyOf comparison.
CompareProperty string The name or path to the property in this resource whose value is used to test this condition. If the value begins with a / character, the value shall represent an RFC6901-defined JSON Pointer, specifying an explicit path from the root level of the resource to a property within the resource. Otherwise, the property name will be evaluated at the current object level within the resource, and if it is not found, upper levels will be searched until the root level is reached.
CompareValues array Values of the CompareProperty used to test this condition.
CompareType string The condition used to compare the value of the property named by CompareProperty to the values of CompareValues. This property follows the same definition as the Comparison property. If the comparison is true, this conditional requirement applies.

2.4.4.1 Parent and subordinate resources

Because there can be several instances of a particular Redfish schema in the resource tree, the requirements placed on those resources may vary depending on their usage. Since the profile is schema-centric, the SubordinateToResource function allows a profile to specify requirements based a resource instance’s placement in the resource tree.

SubordinateToResource allows specifying the schema (resource) path from parent resources to the resource to which the requirements apply. This property contains an array of schema names, in the top-down order that they appear in the path to the required resource.

Example

    "AllocatedPools": {
        "ReadRequirement": "None",
        "ConditionalRequirements": [{
            "Purpose": "Required when NVMePoolType = EnduranceGroup. If NVMSet, do not implement.",
            "CompareProperty": "/NVMeProperties/NVMePoolType",
            "CompareType": "Equal",
            "CompareValues": ["EnduranceGroup"],
            "Comparison": "Absent",
            "ReadRequirement": "Mandatory"
        }]
    }
2.4.4.1.1 Compare property

A typical need for a conditional requirement is a dependency on the value of another property within the resource. This type of dependency can be used when several different product variations share a common schema definition. In that case, Redfish schemas normally define a type-specifying property with enumerations, for a variety of product categories, that can be used to differentiate profile requirements by product category.

To accomplish this, there are three Profile properties related to this function:

Property Type Description
CompareProperty string The name or path to the property in this resource whose value is used to test this condition. If the value begins with a / character, the value shall represent an RFC6901-defined JSON Pointer, specifying an explicit path from the root level of the resource to a property within the resource. Otherwise, the property name will be evaluated at the current object level within the resource, and if it is not found, upper levels will be searched until the root level is reached.
CompareType string The condition used to compare the value of the property named by CompareProperty to the values of CompareValues. This property follows the same definition as the Comparison property. If the comparison is true, this conditional requirement applies. This property is required and shall be present for all uses of CompareProperty.
CompareValues array Values of the CompareProperty used to test this condition. This property shall be present for any value of CompareType except Present and Absent.
2.4.4.1.2 Examples

Simple dependencies can be expressed using the conditional requirement and a comparison. This example shows a CompareProperty condition applied to the Pepperoni property. If the PizzaType property is not equal to Cheese, then the Pepperoni property becomes both mandatory and must have a value of true.

{
    "Pepperoni": {
        "ReadRequirement": "Recommended",
        "ConditionalRequirements": [
            {
                "Purpose": "Pepperoni is required on all pizza types except Cheese.",
                "CompareProperty": "PizzaType",
                "CompareType": "NotEqual",
                "CompareValues": [
                    "Cheese"
                ],
                "ReadRequirement": "Mandatory",
                "Comparison": "Equal",
                "Values": [
                    true
                ]
            }
        ]
    }
}

This example shows a CompareProperty condition applied to the IndicatorLED property, which has a base Recommended requirement, but becomes Mandatory if the SystemType property has a value of Physical or Composed.

{
    "IndicatorLED": {
        "ReadRequirement": "Recommended",
        "ConditionalRequirements": [
            {
                "Purpose": "Physical and composed systems must have a writable LED",
                "CompareProperty": "SystemType",
                "CompareType": "AnyOf",
                "CompareValues": [
                    "Physical",
                    "Composed"
                ],
                "ReadRequirement": "Mandatory",
                "WriteRequirement": "Mandatory"
            }
        ]
    }
}

This example shows a CompareProperty condition applied to the SerialNumber property, which has a Conditional requirement, becoming Mandatory only in cases where the /Location/PartLocation/LocationType property (specified as a JSON Pointer per RFC6901) has a value that is not Embedded.

{
    "SerialNumber": {
        "ReadRequirement": "Conditional",
        "ConditionalRequirements": [
            {
                "Purpose": "SerialNumber is required on Memory resources whose LocationType is not Embedded.",
                "CompareProperty": "/Location/PartLocation/LocationType",
                "CompareType": "NotEqual",
                "CompareValues": [
                    "Embedded"
                ],
                "ReadRequirement": "Mandatory"
            }
        ]
    }
}

2.5 Swordfish Extensions to Interoperability Profile Schema

Swordfish extends the Redfish Interoperability profile schema in multiple areas, several of which are detailed below. A primary area of focus is around an expanded use of conditionals, allowing more expansive comparisons across large sets of resources and resource types. It also adds conditional support to profiles, as Swordfish’s unique usage allows for the combinatorial effect for related features and profiles. Additionally, conditional requirements are extended to Actions, as functionality such as replication need only be instantiated in a portion of a broad-scale implementation.

2.5.1 PropertyProfile : PropertyRequirements

The SwordfishInteroperabilityProfile extends the Redfish model by extending comparisons and conditionals across resources. This allows for more complex dependencies in feature structure. For example, the underlying capacity requirements can be abstracted away from “must be disk-based” to allow for disk-based or memory-based capacity sources underlying storage systems.

Example

    "Volume": {
      "Purpose": "One of the following mechanisms is required to support reporting of volume capacity.  In order to claim support of the Capacity Management Feature, correspondingly 'write' (expand) on that property must be supported.",
      "PropertyRequirements": {
        "CapacityBytes": {
          "ReadRequirement": "Recommended",
          "ConditionalRequirements": [{
              "Purpose": "Either CapacityBytes or Capacity/#Data/#AllocatedBytes must be supported.",
              "CompareProperty": "/Capacity/Data/AllocatedBytes",
              "CompareType": "Absent",
              "WriteRequirement": "Mandatory"
          }]
        },
        "Capacity": {
          "PropertyRequirements": {
            "Data": {
              "PropertyRequirements": {
                "AllocatedBytes": {
                  "ConditionalRequirements": [{
                      "Purpose": "Either CapacityBytes or Capacity/#Data/#AllocatedBytes must be supported.",
                      "CompareProperty": "CapacityBytes",
                      "CompareType": "Absent",
                      "WriteRequirement": "Mandatory"
                  }]
                }
              }
            }
          }
        }
      }
    }

2.5.2 PropertyProfile : ReadRequirements

Swordfish has extended the ReadRequirements usage in an important way, adding the capability to specify a value of DoNotImplement, defined as “This property shall not be implemented in any instance of this resource”. The Swordfish CTP test framework has also been extended to check for this usage, flagging usage with warnings.

This is used to both harden use cases, such as properties that should not be implemented for a use case, or to highlight deprecated properties in favor of alternatives.

Examples

    "EthernetInterface": {
      "ReadRequirement": "DoNotImplement",
      "Purpose": "This property is recommended as 'Do not implement' for this device and protocol type."
    },
    "PhysicalNetworkPortAssignment": {}
  }
  "NetworkPorts": {
    "ReadRequirement": "DoNotImplement",
    "Purpose": "Deprecated, do not implement."
  },

2.5.3 ActionProfile : ConditionalRequirements

Swordfish also allows conditionals on actions. This enables flexibility again in large scale, complex configurations, where actions may be required in some like resources, but not all, of large configurations.

Example

  "Volume": {
    "ActionRequirements": {
      "CreateReplicaTarget": {
        "ReadRequirement": "IfImplemented",
        "Purpose": "Ability to reset the system is a core requirement of most users.",
        "ConditionalRequirements": [{
          "Purpose": "Either CreateReplicaTarget or AssignReplicaTarget must be supported in order to advertise local replication support, when ReplicationEnabled is defined on the volume.",
          "CompareProperty": "ReplicationEnabled",
          "CompareType": "Absent",
          "ReadRequirement": "None"
        },
          {
          "Purpose": "Either CreateReplicaTarget or AssignReplicaTarget must be supported in order to advertise local replication support, when ReplicationEnabled is defined on the volume.",
          "CompareProperty": "AssignReplicaTarget",
          "CompareType": "Absent",
          "ReadRequirement": "Mandatory"
        }]
      },
      "AssignReplicaTarget": {
        "ReadRequirement": "IfImplemented",
        "Purpose": "Ability to reset the system is a core requirement of most users.",
        "ConditionalRequirements": [{
          "Purpose": "Either CreateReplicaTarget or AssignReplicaTarget must be supported in order to advertise local replication support, when ReplicationEnabled is defined on the volume.",
          "CompareProperty": "ReplicationEnabled",
          "CompareType": "Absent",
          "ReadRequirement": "None"
        },{
          "Purpose": "Either CreateReplicaTarget or AssignReplicaTarget must be supported in order to advertise local replication support.",
          "CompareProperty": "CreateReplicaTarget",
          "CompareType": "Absent",
          "ReadRequirement": "Mandatory"
        }]
      }
    }
  }

2.5.4 Condition : Properties : CompareProfile

In the Swordfish Interoperability Profile, profiles support Conditionals through virtue of the addition of the CompareProfile property to Condition.

Example

  "RequiredProfiles": {
    "SwordfishDiscovery": {
      "Repository": "https://redfish.dmtf.org/profiles/swordfish",
      "MinVersion": "1.1.4"
    },
    "SwordfishBlockProvisioning": {
      "Repository": "https://redfish.dmtf.org/profiles/swordfish",
      "MinVersion": "1.3.0"
    },
    "SwordfishFabricConnectivityRightsforEthernet": {
      "Repository": "https://redfish.dmtf.org/profiles/swordfish",
      "MinVersion": "1.0.2",
      "ConditionalRequirements": [{
        "Purpose": "Either SwordfishFabricConnectivityRightsforEthernet or SwordfishFabricConnectivityRightsforRDMA must be supported.",
        "CompareProfile": "SwordfishFabricConnectivityRightsforRDMA",
        "CompareType": "Absent",
        "ReadRequirement": "Mandatory"
      }]
    },
    "SwordfishFabricConnectivityRightsforRDMA": {
      "Repository": "https://redfish.dmtf.org/profiles/swordfish",
      "MinVersion": "1.0.2",
      "ConditionalRequirements": [{
        "Purpose": "Either SwordfishFabricConnectivityRightsforEthernet or SwordfishFabricConnectivityRightsforRDMA must be supported.",
        "CompareProfile": "SwordfishFabricConnectivityRightsforEthernet",
        "CompareType": "Absent",
        "ReadRequirement": "Mandatory"
      }]
    },
    "SwordfishFabricAccessRightsforEthernet": {
      "Repository": "https://redfish.dmtf.org/profiles/swordfish",
      "MinVersion": "1.0.2",
      "ReadRequirement": "None",
      "ConditionalRequirements": [{
        "Purpose": "Either SwordfishFabricAccessRightsforEthernet or SwordfishFabricAccessRights must be supported.",
        "CompareProfile": "SwordfishFabricAccessRights",
        "CompareType": "Absent",
        "ReadRequirement": "Mandatory"
      }]
    },
    "SwordfishFabricAccessRights": {
      "Repository": "https://redfish.dmtf.org/profiles/swordfish",
      "MinVersion": "1.0.2",
      "ReadRequirement": "None",
      "ConditionalRequirements": [{
        "Purpose": "Either SwordfishFabricAccessRightsforEthernet or SwordfishFabricAccessRights must be supported.",
        "CompareProfile": "SwordfishFabricAccessRightsforEthernet",
        "CompareType": "Absent",
        "ReadRequirement": "Mandatory"
      }]
    }
  },

3 Feature Overview

The features summarized in this document are taken from vesion 1.6.0 of the Swordfish Features Registry and are summarized in Table 5 .

Feature Version Profile Summary
SNIA.Swordfish.Block.CapacityManagement 1.2.0 SwordfishBlockCapacityManagement.v1_2_0.json Supports the Swordfish Block Capacity Management Feature.
SNIA.Swordfish.Block.CoSLocalReplication 1.3.0 SwordfishBlockCoSLocalReplication.v1_3_0.json Supports the local replication for block storage Feature when using the Swordfish Class Of Service Feature.
SNIA.Swordfish.Block.CoSRemoteReplication 1.3.0 SwordfishBlockRemoteReplication.v1_3_0.json Supports the remote replication for block storage Feature when using the Swordfish Class Of Service Feature.
SNIA.Swordfish.Block.LocalReplication 1.3.0 SwordfishBlockLocalReplication.v1_3_0.json Supports the local replication for block storage Feature.
SNIA.Swordfish.Block.MappingMasking 1.3.0 SwordfishBlockMappingMasking.v1_3_0.json Supports the Swordfish Block Mapping and Masking Feature.
SNIA.Swordfish.Block.Provisioning 1.3.0 SwordfishBlockProvisioning.v1_3_0.json Supports the Block Provisioning Feature.
SNIA.Swordfish.Block.RemoteReplication 1.2.1 SwordfishBlockRemoteReplication.v1_2_1.json Supports the remote replication for block storage Feature.
SNIA.Swordfish.CoSDiscovery 1.2.0 SwordfishCoSDicovery.v1_2_0.json Supports Discovery requirements when using the Swordfish Class Of Service Feature.
SNIA.Swordfish.Discovery 1.1.4 SwordfishDiscovery.v1_1_4.json Supports discovery of resources in a Swordfish system.
SNIA.Swordfish.EnergyStar 1.1.4 SwordfishEnergyStar.v1_1_4.json Supports the Swordfish EnergyStar for Storage Feature.
SNIA.Swordfish.EventNotification 1.2.5 SwordfishEventNotification.v1_2_5.json Supports the Swordfish Event Notification Feature.
SNIA.Swordfish.FabricAccessRights 1.0.2 SwordfishFabricAccessRights.v1_0_2.json Supports the Swordfish Fabric Access Rights Feature.
SNIA.Swordfish.FabricAccessRightsforEthernet 1.0.2 SwordfishFabricAccessRightsforEthernet.v1_0_2.json Supports the Swordfish Fabric Access Rights for Ethernet Feature.
SNIA.Swordfish.FabricConnectivityRights 1.0.2 SwordfishFabricConnectivityRights.v1_0_2.json Supports the Swordfish Fabric Connectivity Rights Feature.
SNIA.Swordfish.FabricConnectivityRightsforEthernet 1.0.2 SwordfishFabricConnectivityRightsforEthernet.v1_0_2.json Supports the Swordfish Fabric Connectivity Rights for Ethernet Feature.
SNIA.Swordfish.FabricConnectivityRightsforRDMA 1.0.2 SwordfishFabricConnectivityRightsforRDMA.v1_0_2.json Supports the Swordfish Fabric Connectivity Rights for RDMA Feature.
SNIA.Swordfish.File.CapacityManagement 1.1.4 SwordfishFileCapacityManagement.v1_1_4.json Supports the Swordfish File Capacity Management Feature.
SNIA.Swordfish.File.Provisioning 1.1.4 SwordfishFileProvisioning.v1_1_4.json Supports the File Provisioning Feature.
SNIA.Swordfish.IOPerformance 1.2.0 SwordfishIOPerformance.v1_2_0.json Supports the Swordfish IOPerformance Feature.
SNIA.Swordfish.ManagementController 1.0.2 SwordfishManagementController.v1_0_2.json Supports the Swordfish Management Controller (e.g., embedded management controller) Feature.
SNIA.Swordfish.NVMeDrive 1.3.0 SwordfishNVMeDrive.v1_3_0.json Supports the Swordfish NVMe Drive Feature.
SNIA.Swordfish.NVMeDriveAdvancedFeatures 1.2.0 SwordfishNVMeDriveAdvancedFeatures.v1_2_0.json Supports Advanced Features functionality for NVMe Drives.
SNIA.Swordfish.NVMeDriveEthernetAttach 1.2.1 SwordfishNVMeEthernetAttach.v1_2_1.json Supports Ethernet Attach functionality for NVMe Drives.
SNIA.Swordfish.NVMeEBOF 1.2.1 SwordfishNVMeEBOF.v1_2_1.json Supports the NVMe EBOF Feature set.
SNIA.Swordfish.NVMeFrontEnd 1.3.0 SwordfishNVMeFrontEnd.v1_3_0.json Supports requirements for Swordfish implementations with NVMe front-end interfaces.
SNIA.Swordfish.NVMeoF 1.2.0 SwordfishNVMeoF.v1_2_0.json Supports the NVMe over Fabrics set.
SNIA.Swordfish.PCIeJBOF 1.2.1 SwordfishPCIeJBOF.v1_2_1.json Supports the PCIe JBOF Feature set.

Table 5: Feature overview

4 Profiles

4.1 Overview

All profile entries, at the profile, resource, or property level, are “additive”. That is, each requirement can only apply more rigid requirements that override less rigid requirements.

Profiles define a minimum set of required functionality. Swordfish profiles can also specify functionality that should not be implemented.

However, profile requirements do not allow for exclusions of data. Implementations are able to provide more data in their resources than required by a profile, as an implementation likely addresses multiple use cases or profiles. This includes both standard properties and OEM extensions.

Swordfish profiles are generally defined using a building block approach.

Each profile review contains:

4.2 SwordfishBlockCapacityManagement profile

4.2.1 Summary Information

4.2.2 Protocol Information

No protocol information defined in this profile.

4.2.3 Other Registry Information

4.2.4 Required profiles

The SwordfishBlockCapacityManagement profile depends upon the profiles listed in Table 6 .

Profile Version Conditions
SwordfishBlockProvisioning 1.3.0

Table 6: Required profiles for SwordfishBlockCapacityManagement

The SwordfishBlockCapacityManagement profile relies on the resources listed in Table 7

Resource Purpose
VolumeCollection
Volume One of the following mechanisms is required to support reporting of volume capacity. In order to claim support of the Capacity Management Feature, correspondingly ‘write’ (expand) on that property must be supported.
CapacityBytes Either CapacityBytes or Capacity/#Data/#AllocatedBytes must be supported.
Capacity
   Data
   AllocatedBytes Either CapacityBytes or Capacity/#Data/#AllocatedBytes must be supported.

Table 7: Related resources for SwordfishBlockCapacityManagement

4.2.6 Resource Manipulation

The SwordfishBlockCapacityManagement profile requires the resource manipulations listed in Table 8

Resource Read Write Create Delete Update
VolumeCollection IfImp T
Volume M
CapacityBytes R M/C
Capacity M
   Data M
   AllocatedBytes M M/C

Table 8: Resource manipulations for SwordfishBlockCapacityManagement

4.2.7 Conditional Requirements

4.2.7.1 CapacityBytes

Purpose

Either CapacityBytes or Capacity/#Data/#AllocatedBytes must be supported.

Test Condition / Requirement

if /Capacity/Data/AllocatedBytes is Absent, WriteRequirement is Mandatory

based on:

4.2.7.2 AllocatedBytes

Purpose

Either CapacityBytes or Capacity/#Data/#AllocatedBytes must be supported.

Test Condition / Requirement

if CapacityBytes is Absent, WriteRequirement is Mandatory

based on:

4.3 SwordfishBlockCoSLocalReplication profile

4.3.1 Summary Information

4.3.2 Protocol Information

No protocol information defined in this profile.

4.3.3 Other Registry Information

4.3.4 Required profiles

The SwordfishBlockCoSLocalReplication profile depends upon the profiles listed in Table 9 .

Profile Version Conditions
SwordfishBlockProvisioning 1.3.0
SwordfishCoSDiscovery 1.2.0

Table 9: Required profiles for SwordfishBlockCoSLocalReplication

The SwordfishBlockCoSLocalReplication profile relies on the resources listed in Table 10

Resource Purpose
Volume
ReplicaTargets At least one volume must exist defined as a replica target.
ReplicaInfo At least one volume must exist defined as a replica.
   ReplicaType At least one volume must exist defined as a replica.
   ReplicaFaultDomain The ReplicaFaultDomain type must be set to Local.

Must be set to [‘Local’]

StorageService
Links
   DataProtectionLoSCapabilities The Data Protection Line of Service must be supported. DataProtectionLoSCapabilities are a pre-requisite to the Line of Service.
DataProtectionLineOfServiceCollection The Data Protection Line of Service must be supported.
Members MinCount = 0
DataProtectionLineOfService
ACTIONS
CreateReplicas() Ability to create an on-demand (ad-hoc) replica.

Table 10: Related resources for SwordfishBlockCoSLocalReplication

4.3.6 Resource Manipulation

The SwordfishBlockCoSLocalReplication profile requires the resource manipulations listed in Table 11

Resource Read Write Create Delete Update
Volume M
ReplicaTargets M/C
ReplicaInfo M/C
   ReplicaType M/C
   ReplicaFaultDomain M/C
StorageService M
Links M
   DataProtectionLoSCapabilities IfImp
DataProtectionLineOfServiceCollection IfImp T T
Members M
DataProtectionLineOfService M
ACTIONS
CreateReplicas M
ACTIONS
CreateReplicas M

Table 11: Resource manipulations for SwordfishBlockCoSLocalReplication

4.3.7 Conditional Requirements

4.3.7.1 ReplicaTargets

Purpose

At least one volume must exist defined as a replica target.

Test Condition / Requirement

When subordinate to [‘StorageService’], ReadRequirement is Mandatory

based on:

4.3.7.2 ReplicaInfo

Purpose

At least one volume must exist defined as a replica.

Test Condition / Requirement

When subordinate to [‘StorageService’], ReadRequirement is Mandatory

based on:

4.3.7.3 ReplicaType

Purpose

At least one volume must exist defined as a replica.

Test Condition / Requirement

When subordinate to [‘StorageService’], ReadRequirement is Mandatory

based on:

4.3.7.4 ReplicaFaultDomain

Test Condition / Requirement

When subordinate to [‘StorageService’], ReadRequirement is Mandatory

based on:

4.3.7.5 DataProtectionLoSCapabilities

Purpose

The Data Protection Line of Service must be supported. DataProtectionLoSCapabilities are a pre-requisite to the Line of Service.

Test Condition / Requirement

When subordinate to [‘StorageService’], ReadRequirement is mandatory

based on:

4.4 SwordfishBlockLocalReplication profile

4.4.1 Summary Information

4.4.2 Protocol Information

No protocol information defined in this profile.

4.4.3 Other Registry Information

4.4.4 Required profiles

The SwordfishBlockLocalReplication profile depends upon the profiles listed in Table 12 .

Profile Version Conditions
SwordfishBlockProvisioning 1.3.0

Table 12: Required profiles for SwordfishBlockLocalReplication

The SwordfishBlockLocalReplication profile relies on the resources listed in Table 13

Resource Purpose
Volume
ACTIONS
AssignReplicaTarget() Ability to reset the system is a core requirement of most users.

Either CreateReplicaTarget or AssignReplicaTarget must be supported in order to advertise local replication support, when ReplicationEnabled is defined on the volume.

Either CreateReplicaTarget or AssignReplicaTarget must be supported in order to advertise local replication support.
ReplicationEnabled The ReplicationEnabled property shall be set on the volume to indicate that this volume is capable of supporting replication. When implemented and false, replication is supported and disabled. When implemented and true, replication is enabled. When replication is enabled, one of the two Actions, CreateReplicaTarget and AssignReplicaTarget, shall be implemented, regardless of whether the volume is currently in a replica relationship.

At least one volume must have ReplicationEnabled to support Swordfish block local replication; ReplicaFaultDomain type must be set to local.
ReplicaTargets
ReplicaInfo
   ReplicaType
   ReplicaFaultDomain The ReplicaFaultDomain type must be set to Local.

Table 13: Related resources for SwordfishBlockLocalReplication

4.4.6 Resource Manipulation

The SwordfishBlockLocalReplication profile requires the resource manipulations listed in Table 14

Resource Read Write Create Delete Update
Volume M
ACTIONS
CreateReplicaTarget M/C
AssignReplicaTarget M/C
ReplicationEnabled M/C
ReplicaTargets IfImp
ReplicaInfo IfImp
   ReplicaType M
   ReplicaFaultDomain M

Table 14: Resource manipulations for SwordfishBlockLocalReplication

4.4.7 Conditional Requirements

4.4.7.1 ReplicationEnabled

Purpose

At least one volume must have ReplicationEnabled to support Swordfish block local replication; ReplicaFaultDomain type must be set to local.

Test Condition / Requirement

When subordinate to [‘Volume’], ReadRequirement is Mandatory

based on:

4.5 SwordfishBlockMappingMasking profile

4.5.1 Summary Information

4.5.2 Protocol Information

No protocol information defined in this profile.

4.5.3 Other Registry Information

4.5.4 Required profiles

The SwordfishBlockMappingMasking profile depends upon the profiles listed in Table 15 .

Profile Version Conditions
CoSDiscovery 1.1.4 Required Either SwordfishDiscovery or SwordfishCoSDiscovery must be supported.
SwordfishDiscovery 1.1.4 Required Either SwordfishDiscovery or SwordfishCoSDiscovery must be supported.

Table 15: Required profiles for SwordfishBlockMappingMasking

The SwordfishBlockMappingMasking profile relies on the resources listed in Table 16

Resource Purpose
ConnectionCollection
Members MinCount = 1
EndpointCollection
Members MinCount = 1
EndpointGroupCollection
Members MinCount = 1
Connection
ConnectionType
VolumeInfo
   AccessCapabilities
   LUN
   Volume
Links
   InitiatorEndpointGroups
   TargetEndpointGroups

Table 16: Related resources for SwordfishBlockMappingMasking

4.5.6 Resource Manipulation

The SwordfishBlockMappingMasking profile requires the resource manipulations listed in Table 17

Resource Read Write Create Delete Update
ConnectionCollection S T T T
Members M
EndpointCollection IfImp T T T
Members M
EndpointGroupCollection IfImp T T T
Members M
Connection M
ConnectionType M
VolumeInfo M
   AccessCapabilities M
   LUN M
   Volume M
Links M
   InitiatorEndpointGroups M
   TargetEndpointGroups M

Table 17: Resource manipulations for SwordfishBlockMappingMasking

4.5.7 Conditional Requirements

4.5.7.1 ConnectionCollection

Test Condition / Requirement

When subordinate to [‘Fabric’], ReadRequirement is mandatory

based on:

4.6 SwordfishBlockProvisioning profile

4.6.1 Summary Information

4.6.2 Protocol Information

No protocol information defined in this profile.

4.6.3 Other Registry Information

4.6.4 Required profiles

The SwordfishBlockProvisioning profile depends upon the profiles listed in Table 18 .

Profile Version Conditions
SwordfishCoSDiscovery 1.2.0 Required Either SwordfishDiscovery or SwordfishCoSDiscovery must be supported.
SwordfishDiscovery 1.1.4 Required Either SwordfishDiscovery or SwordfishCoSDiscovery must be supported.

Table 18: Required profiles for SwordfishBlockProvisioning

The SwordfishBlockProvisioning profile relies on the resources listed in Table 19

Resource Purpose
VolumeCollection





Table 19: Related resources for SwordfishBlockProvisioning

4.6.6 Resource Manipulation

The SwordfishBlockProvisioning profile requires the resource manipulations listed in Table 20

Resource Read Write Create Delete Update
VolumeCollection IfImp T T

Table 20: Resource manipulations for SwordfishBlockProvisioning

4.6.7 Conditional Requirements

4.6.7.1 VolumeCollection

Test Condition / Requirement

When subordinate to [‘Storage’], ReadRequirement is mandatory

based on:

Test Condition / Requirement

When subordinate to [‘StoragePool’], ReadRequirement is mandatory

based on:

Test Condition / Requirement

When subordinate to [‘CapacitySource’], ReadRequirement is mandatory

based on:

Test Condition / Requirement

When subordinate to [‘StorageService’], ReadRequirement is mandatory

based on:

4.7 SwordfishBlockRemoteReplication profile

4.7.1 Summary Information

4.7.2 Protocol Information

No protocol information defined in this profile.

4.7.3 Other Registry Information

4.7.4 Required profiles

The SwordfishBlockRemoteReplication profile depends upon the profiles listed in Table 21 .

Profile Version Conditions
SwordfishBlockProvisioning 1.2.2

Table 21: Required profiles for SwordfishBlockRemoteReplication

The SwordfishBlockRemoteReplication profile relies on the resources listed in Table 22

Resource Purpose
Volume
ACTIONS
AssignReplicaTarget() Ability to reset the system is a core requirement of most users.

Either CreateReplicaTarget or AssignReplicaTarget must be supported in order to advertise remote replication support, when ReplicationEnabled is defined on the volume.

Either CreateReplicaTarget or AssignReplicaTarget must be supported in order to advertise remote replication support.
ReplicationEnabled The ReplicationEnabled property shall be set on the volume to indicate that this volume is capable of supporting replication. When implemented and false, replication is supported and disabled. When implemented and true, replication is enabled. When replication is enabled, one of the two Actions, CreateReplicaTarget and AssignReplicaTarget, shall be implemented, regardless of whether the volume is currently in a replica relationship.

At least one volume must have ReplicationEnabled to support Swordfish block remote replication; ReplicaFaultDomain type must be set to Remote.
ReplicaTargets
ReplicaInfo
   ReplicaType
   ReplicaFaultDomain The ReplicaFaultDomain type must be set to Remote.

Table 22: Related resources for SwordfishBlockRemoteReplication

4.7.6 Resource Manipulation

The SwordfishBlockRemoteReplication profile requires the resource manipulations listed in Table 23

Resource Read Write Create Delete Update
Volume M
ACTIONS
CreateReplicaTarget M/C
AssignReplicaTarget M/C
ReplicationEnabled M/C
ReplicaTargets IfImp
ReplicaInfo IfImp
   ReplicaType M
   ReplicaFaultDomain M

Table 23: Resource manipulations for SwordfishBlockRemoteReplication

4.7.7 Conditional Requirements

4.7.7.1 ReplicationEnabled

Purpose

At least one volume must have ReplicationEnabled to support Swordfish block remote replication; ReplicaFaultDomain type must be set to Remote.

Test Condition / Requirement

When subordinate to [‘Volume’], ReadRequirement is Mandatory

based on:

4.8 SwordfishCoSDiscovery profile

4.8.1 Summary Information

4.8.2 Protocol Information

4.8.3 Other Registry Information

4.8.4 Required profiles

The SwordfishCoSDiscovery profile relies on the resources listed in Table 24

Resource Purpose
StorageServiceCollection
Members MinCount = 1
ServiceRoot
StorageServices
StorageService
Identifier
Status
   State
   Health
ClassesOfService
Volumes Volumes must exist unless FileSystems exists, in which case it is only Recommended.
StoragePools
FileSystems FileSystems must exist unless Volumes exists, in which case it is only Recommended.
Links
   DefaultClassOfService When there is at least one class of service instantiated, the DefaultClassOfService property should be set.
   DataProtectionLoSCapabilities One or more Line of Service Capabilities must be defined.
   DataSecurityLoSCapabilities One or more Line of Service Capabilities must be defined.
   DataStorageLoSCapabilities One or more Line of Service Capabilities must be defined.
   IOConnectivityLoSCapabilities One or more Line of Service Capabilities must be defined.
   IOPerformanceLoSCapabilities One or more Line of Service Capabilities must be defined.

Table 24: Related resources for SwordfishCoSDiscovery

4.8.6 Resource Manipulation

The SwordfishCoSDiscovery profile requires the resource manipulations listed in Table 25

Resource Read Write Create Delete Update
StorageServiceCollection M
Members M
ServiceRoot M
StorageServices M
StorageService M
Identifier M
Status M
   State M
   Health M
ClassesOfService M
Volumes M/C
StoragePools M
FileSystems M/C
Links M
   DefaultClassOfService R
   DataProtectionLoSCapabilities M/C
   DataSecurityLoSCapabilities M/C
   DataStorageLoSCapabilities M/C
   IOConnectivityLoSCapabilities M/C
   IOPerformanceLoSCapabilities M/C

Table 25: Resource manipulations for SwordfishCoSDiscovery

4.8.7 Conditional Requirements

4.8.7.1 Volumes

Purpose

Volumes must exist unless FileSystems exists, in which case it is only Recommended.

Test Condition / Requirement

if FileSystems is Absent, ReadRequirement is Mandatory

based on:

4.8.7.2 FileSystems

Purpose

FileSystems must exist unless Volumes exists, in which case it is only Recommended.

Test Condition / Requirement

if Volumes is Absent, ReadRequirement is Mandatory

based on:

4.8.7.3 DataProtectionLoSCapabilities

Purpose

One or more Line of Service Capabilities must be defined.

Test Condition / Requirement

if is Absent, ReadRequirement is Mandatory

based on:

4.8.7.4 DataSecurityLoSCapabilities

Purpose

One or more Line of Service Capabilities must be defined.

Test Condition / Requirement

if is Absent, ReadRequirement is Mandatory

based on:

4.8.7.5 DataStorageLoSCapabilities

Purpose

One or more Line of Service Capabilities must be defined.

Test Condition / Requirement

if is Absent, ReadRequirement is Mandatory

based on:

4.8.7.6 IOConnectivityLoSCapabilities

Purpose

One or more Line of Service Capabilities must be defined.

Test Condition / Requirement

if is Absent, ReadRequirement is Mandatory

based on:

4.8.7.7 IOPerformanceLoSCapabilities

Purpose

One or more Line of Service Capabilities must be defined.

Test Condition / Requirement

if is Absent, ReadRequirement is Mandatory

based on:

4.9 SwordfishDiscovery profile

4.9.1 Summary Information

summary supplement

4.9.2 Protocol Information

4.9.3 Other Registry Information

4.9.4 Required profiles

required profiles supplement

related resources supplement

The SwordfishDiscovery profile relies on the resources listed in Table 26

Resource Purpose
ServiceRoot
Chassis If Drives are used as capacity sources, these must be in Chassis/{ChassisId}/Drives.
Storage
Systems If Storage is attached to a ComputerSystem rather than instantiated as a Standalone instance.
StorageSystems If Storage is attached to a ComputerSystem rather than instantiated as a Standalone instance.
StorageCollection
Members MinCount = 1
VolumeCollection
Chassis
Drives If Drives provide the capacity source for the related Storage object, Drives are required to be in at least one Chassis representation. As physical configurations can be represented by multiple Chassis instances, not all Chassis instances must include a Drives collection.
Storage
Volumes
StoragePools StoragePools must be implemented in primary Storage object instances. For Storage objects modeling embedded or back-end devices (e.g., NVMe drives), StoragePools are not required to be modeled.
Drives There are two requirements for Drives. The first is encapsulated in a custom test, as it cannot be well specified in the profile language. 1: The implementation must choose at least one selected media container (appropriate for the system’s selected media type) and instantiate a collection for it. This may be instantiated as a CapacitySources structure to feed a StoragePool, FileSystem, or Volume. When drives are used, the Drives Collection in either Storage or, when implementing the ClassOfService Feature, StorageServices shall be implemented. 2: When drives are used, the Drives Collection in Chassis shall be implemented.
ComputerSystem
HostingRoles Swordfish implementations must specify a hosting role type of StorageServer.

Must be set to [‘StorageServer’]

Table 26: Related resources for SwordfishDiscovery

4.9.6 Resource Manipulation

resource manipulation supplement

The SwordfishDiscovery profile requires the resource manipulations listed in Table 27

Resource Read Write Create Delete Update
ServiceRoot M
Chassis IfImp
Storage M
Systems IfImp
StorageSystems IfImp
StorageCollection M
Members M
VolumeCollection M
Chassis M
Drives IfImp/C
Storage M
Volumes M
StoragePools IfImp
Drives M/C
ComputerSystem IfImp
HostingRoles M

Table 27: Resource manipulations for SwordfishDiscovery

4.9.7 Conditional Requirements

conditional requirements supplement

4.9.7.1 Drives

Purpose

If Drives provide the capacity source for the related Storage object, Drives are required to be in at least one Chassis representation. As physical configurations can be represented by multiple Chassis instances, not all Chassis instances must include a Drives collection.

Test Condition / Requirement

When subordinate to [‘Chassis’], ReadRequirement is IfImplemented

based on:

4.9.7.2 Drives

Purpose

There are two requirements for Drives. The first is encapsulated in a custom test, as it cannot be well specified in the profile language. 1: The implementation must choose at least one selected media container (appropriate for the system’s selected media type) and instantiate a collection for it. This may be instantiated as a CapacitySources structure to feed a StoragePool, FileSystem, or Volume. When drives are used, the Drives Collection in either Storage or, when implementing the ClassOfService Feature, StorageServices shall be implemented. 2: When drives are used, the Drives Collection in Chassis shall be implemented.

Test Condition / Requirement

if /redfish/v1/Chassis/{ChassisId}/Drives is Present, ReadRequirement is Mandatory

based on:

4.10 SwordfishEnergyStar profile

4.10.1 Summary Information

4.10.2 Protocol Information

No protocol information defined in this profile.

4.10.3 Other Registry Information

4.10.4 Required profiles

The SwordfishEnergyStar profile depends upon the profiles listed in Table 28 .

Profile Version Conditions
CoSDiscovery 1.1.4 Required Either SwordfishDiscovery or SwordfishCoSDiscovery must be supported.
SwordfishDiscovery 1.1.4 Required Either SwordfishDiscovery or SwordfishCoSDiscovery must be supported.

Table 28: Required profiles for SwordfishEnergyStar

The SwordfishEnergyStar profile relies on the resources listed in Table 29

Resource Purpose
Chassis To meet EnergyStar compliance, if the data is not reported or aggregated at the system level, it shall be reported for each shelf or enclosure. (Note that data can be aggregated external to the system by the client when reported by subcomponents.) These properties should be collected in the same request. The system shall be able to support client queries of these properties at an interval of at least every 10 seconds (per ENERGY STAR Data Center Storage Version 1.1 Updated Program Requirements – April 1, 2019).
Power
   PowerSupply
   PowerInputWatts
Thermal Collect the inlet temperature for the power supply.
   ReadingCelsius
   PhysicalContext Shall be equal to [‘Intake’]

Table 29: Related resources for SwordfishEnergyStar

4.10.6 Resource Manipulation

The SwordfishEnergyStar profile requires the resource manipulations listed in Table 30

Resource Read Write Create Delete Update
Chassis IfImp
Power M
   PowerSupply M
   PowerInputWatts M
Thermal M
   ReadingCelsius M
   PhysicalContext M

Table 30: Resource manipulations for SwordfishEnergyStar

4.10.7 Conditional Requirements

None defined.

4.11 SwordfishEventNotification profile

4.11.1 Summary Information

4.11.2 Protocol Information

4.11.3 Other Registry Information

4.11.3.1 Registry Name:Base

Registry details:

4.11.3.2 Registry Name:ResourceEvent

Registry details:

4.11.4 Required profiles

The SwordfishEventNotification profile depends upon the profiles listed in Table 31 .

Profile Version Conditions
CoSDiscovery 1.1.4 Required Either SwordfishDiscovery or SwordfishCoSDiscovery must be supported.
SwordfishDiscovery 1.1.4 Required Either SwordfishDiscovery or SwordfishCoSDiscovery must be supported.

Table 31: Required profiles for SwordfishEventNotification

The SwordfishEventNotification profile relies on the resources listed in Table 32

Resource Purpose
EventService

Table 32: Related resources for SwordfishEventNotification

4.11.6 Resource Manipulation

The SwordfishEventNotification profile requires the resource manipulations listed in Table 33

Resource Read Write Create Delete Update
EventService M

Table 33: Resource manipulations for SwordfishEventNotification

4.11.7 Conditional Requirements

None defined.

4.12 SwordfishFabricAccessRights profile

4.12.1 Summary Information

4.12.2 Protocol Information

4.12.3 Other Registry Information

4.12.4 Required profiles

The SwordfishFabricAccessRights profile depends upon the profiles listed in Table 34 .

Profile Version Conditions
SwordfishDiscovery 1.1.4

Table 34: Required profiles for SwordfishFabricAccessRights

The SwordfishFabricAccessRights profile relies on the resources listed in Table 35

Resource Purpose
ServiceRoot
Fabrics
FabricCollection
Members MinCount = 1
ConnectionCollection
EndpointCollection
Fabric
Connections Required when Switches not defined for the fabric (switches are required for connectivity rights management).
Description
EndpointGroups
Endpoints
FabricType
Id
Name
Status
   State
Connection
ConnectionType
Description
Id
Links
   InitiatorEndpointGroups Either InitiatorEndpointGroups or InitiatorEndpoints must be supported.
   InitiatorEndpoints Either InitiatorEndpoints or InitiatorEndpointGroups must be supported.
   TargetEndpointGroups Either TargetEndpointGroups or TargetEndpoints must be supported.
   TargetEndpoints Either TargetEndpoints or TargetEndpointGroups must be supported.
Name
VolumeInfo
   AccessCapabilities
   Volume
   LUN Dependent on protocol. Required for SCSI, FC connect.
Endpoint
ConnectedEntities
   EntityLink
   EntityRole
   EntityType
EndpointProtocol
Identifiers
   DurableName
   DurableNameFormat
Links
   Connections
EndpointGroup
AccessState This property is recommended as ‘Do not implement’. This property has been deprecated.
Endpoints This property is recommended as ‘Do not implement’. This property has been deprecated.
GroupType
Id
Links
   Endpoints
   Connections
Preferred This property is recommended as ‘Do not implement’. This property has been deprecated.

Table 35: Related resources for SwordfishFabricAccessRights

4.12.6 Resource Manipulation

The SwordfishFabricAccessRights profile requires the resource manipulations listed in Table 36

Resource Read Write Create Delete Update
ServiceRoot M
Fabrics M
FabricCollection M
Members M
ConnectionCollection M
EndpointCollection M
Fabric M
Connections M/C
Description M
EndpointGroups R
Endpoints M
FabricType M
Id M
Name M
Status M
   State M
Connection M
ConnectionType M
Description M
Id M
Links M
   InitiatorEndpointGroups M/C
   InitiatorEndpoints M/C
   TargetEndpointGroups M/C
   TargetEndpoints M/C
Name M
VolumeInfo M
   AccessCapabilities M
   Volume M
   LUN R
Endpoint M
ConnectedEntities M
   EntityLink R
   EntityRole M
   EntityType M
EndpointProtocol M
Identifiers M
   DurableName M
   DurableNameFormat M
Links M
   Connections R
EndpointGroup R
AccessState DNI
Endpoints DNI
GroupType M
Id M
Links M
   Endpoints M
   Connections M
Preferred DNI

Table 36: Resource manipulations for SwordfishFabricAccessRights

4.12.7 Conditional Requirements

4.12.7.1 Connections

Purpose

Required when Switches not defined for the fabric (switches are required for connectivity rights management).

Test Condition / Requirement

if Switches is Absent, ReadRequirement is Mandatory

based on:

4.12.7.2 InitiatorEndpointGroups

Purpose

Either InitiatorEndpointGroups or InitiatorEndpoints must be supported.

Test Condition / Requirement

if InitiatorEndpoints is Absent, ReadRequirement is Mandatory

based on:

4.12.7.3 InitiatorEndpoints

Purpose

Either InitiatorEndpoints or InitiatorEndpointGroups must be supported.

Test Condition / Requirement

if InitiatorEndpointGroups is Absent, ReadRequirement is Mandatory

based on:

4.12.7.4 TargetEndpointGroups

Purpose

Either TargetEndpointGroups or TargetEndpoints must be supported.

Test Condition / Requirement

if TargetEndpoints is Absent, ReadRequirement is Mandatory

based on:

4.12.7.5 TargetEndpoints

Purpose

Either TargetEndpoints or TargetEndpointGroups must be supported.

Test Condition / Requirement

if TargetEndpointGroups is Absent, ReadRequirement is Mandatory

based on:

4.13 SwordfishFabricAccessRightsforEthernet profile

4.13.1 Summary Information

4.13.2 Protocol Information

4.13.3 Other Registry Information

4.13.4 Required profiles

The SwordfishFabricAccessRightsforEthernet profile depends upon the profiles listed in Table 37 .

Profile Version Conditions
SwordfishFabricAccessRights 1.0.2

Table 37: Required profiles for SwordfishFabricAccessRightsforEthernet

The SwordfishFabricAccessRightsforEthernet profile relies on the resources listed in Table 38

Resource Purpose
Endpoint
IPTransportDetails
   TransportProtocol
   IPv4Address Either IPv4Address or IPv6Address must be supported.
   IPv6Address Either IPv4Address or IPv6Address must be supported.
   Port

Table 38: Related resources for SwordfishFabricAccessRightsforEthernet

4.13.6 Resource Manipulation

The SwordfishFabricAccessRightsforEthernet profile requires the resource manipulations listed in Table 39

Resource Read Write Create Delete Update
Endpoint M/C
IPTransportDetails M
   TransportProtocol M
   IPv4Address M/C
   IPv6Address M/C
   Port M

Table 39: Resource manipulations for SwordfishFabricAccessRightsforEthernet

4.13.7 Conditional Requirements

4.13.7.1 Endpoint

Test Condition / Requirement

When subordinate to [‘Fabric’, ‘EndpointCollection’], ReadRequirement is Mandatory

based on:

4.13.7.2 IPv4Address

Purpose

Either IPv4Address or IPv6Address must be supported.

Test Condition / Requirement

if IPv6Address is Absent, ReadRequirement is Mandatory

based on:

4.13.7.3 IPv6Address

Purpose

Either IPv4Address or IPv6Address must be supported.

Test Condition / Requirement

if IPv4Address is Absent, ReadRequirement is Mandatory

based on:

4.14 SwordfishFabricConnectivityRights profile

4.14.1 Summary Information

4.14.2 Protocol Information

4.14.3 Other Registry Information

4.14.4 Required profiles

The SwordfishFabricConnectivityRights profile depends upon the profiles listed in Table 40 .

Profile Version Conditions
SwordfishDiscovery 1.1.4

Table 40: Required profiles for SwordfishFabricConnectivityRights

The SwordfishFabricConnectivityRights profile relies on the resources listed in Table 41

Resource Purpose
ServiceRoot
Fabrics
FabricCollection
Members MinCount = 1
SwitchCollection
ZoneCollection
EndpointCollection
Fabric
Description
EndpointGroups
Endpoints
FabricType
Id
Name
MaxZones
Status
   Conditions Reports Conditions when HealthRollup is not ‘OK’.
   HealthRollup
   Health
   State
Switches Required when Connections not defined for the fabric (connections are required only for access rights management).
Zones Required when Connections not defined for the fabric (connections are required only for access rights management).
Endpoint
ConnectedEntities
   EntityLink
   EntityRole
   EntityType
EndpointProtocol
Identifiers
   DurableName
   DurableNameFormat
Links
   Ports
   Zones
EndpointGroup
GroupType
Id
Links
   Endpoints
   Connections
Port
CurrentSpeedGbps
Id
Links
   AssociatedEndpoints
MaxSpeedGbps
Name
PortId
PortProtocol
Status
   State
Switch
Description
FirmwareVersion
Id
IndicatorLED Do not implement IndicatorLED
IsManaged
Links
   Chassis
Location
Manufacturer
Model
Name
PartNumber
Ports
SerialNumber
SupportedProtocols
SwitchType
Zone
Description
ExternalAccessibility
Id
Links
   Endpoints
   InvolvedSwitches
Name
Status
   State
ZoneType

Table 41: Related resources for SwordfishFabricConnectivityRights

4.14.6 Resource Manipulation

The SwordfishFabricConnectivityRights profile requires the resource manipulations listed in Table 42

Resource Read Write Create Delete Update
ServiceRoot M
Fabrics M
FabricCollection M
Members M
SwitchCollection M
ZoneCollection M
EndpointCollection M
Fabric M
Description M
EndpointGroups R
Endpoints M
FabricType M
Id M
Name M
MaxZones R
Status M
   Conditions M/C
   HealthRollup R
   Health M
   State M
Switches M/C
Zones M/C
Endpoint M
ConnectedEntities M
   EntityLink R
   EntityRole M
   EntityType M
EndpointProtocol M
Identifiers M
   DurableName M
   DurableNameFormat M
Links M
   Ports R
   Zones R
EndpointGroup IfImp
GroupType M
Id M
Links M
   Endpoints M
   Connections M
Port M
CurrentSpeedGbps M
Id M
Links M
   AssociatedEndpoints M
MaxSpeedGbps M
Name M
PortId M
PortProtocol M
Status M
   State M
Switch M
Description M
FirmwareVersion M
Id M
IndicatorLED DNI
IsManaged M
Links M
   Chassis M
Location R
Manufacturer M
Model M
Name M
PartNumber M
Ports M
SerialNumber M
SupportedProtocols M
SwitchType M
Zone M
Description M
ExternalAccessibility M
Id M
Links M
   Endpoints M
   InvolvedSwitches R
Name M
Status M
   State M
ZoneType M

Table 42: Resource manipulations for SwordfishFabricConnectivityRights

4.14.7 Conditional Requirements

4.14.7.1 Conditions

Purpose

Reports Conditions when HealthRollup is not ‘OK’.

Test Condition / Requirement

if HealthRollup is AnyOf to [‘Warning’, ‘Critical’], ReadRequirement is Mandatory

based on:

4.14.7.2 Switches

Purpose

Required when Connections not defined for the fabric (connections are required only for access rights management).

Test Condition / Requirement

if Connections is Absent, ReadRequirement is Mandatory

based on:

4.14.7.3 Zones

Purpose

Required when Connections not defined for the fabric (connections are required only for access rights management).

Test Condition / Requirement

if Connections is Absent, ReadRequirement is Mandatory

based on:

4.14.7.4 Endpoint

Test Condition / Requirement

When subordinate to [‘Fabric’, ‘EndpointCollection’], ReadRequirement is mandatory

based on:

4.14.7.5 EndpointGroup

Test Condition / Requirement

When subordinate to [‘Fabric’, ‘EndpointGroupCollection’], ReadRequirement is mandatory

based on:

4.14.7.6 Port

Test Condition / Requirement

When subordinate to [‘Fabric’, ‘SwitchCollection’, ‘Switch’], ReadRequirement is mandatory

based on:

4.14.7.7 Switch

Test Condition / Requirement

When subordinate to [‘Fabric’, ‘SwitchCollection’], ReadRequirement is mandatory

based on:

4.15 SwordfishFabricConnectivityRightsforEthernet profile

4.15.1 Summary Information

4.15.2 Protocol Information

4.15.3 Other Registry Information

4.15.4 Required profiles

The SwordfishFabricConnectivityRightsforEthernet profile depends upon the profiles listed in Table 43 .

Profile Version Conditions
SwordfishFabricConnectivityRights 1.0.2

Table 43: Required profiles for SwordfishFabricConnectivityRightsforEthernet

The SwordfishFabricConnectivityRightsforEthernet profile relies on the resources listed in Table 44

Resource Purpose
ServiceRoot
Chassis
Chassis
NetworkAdapters
ChassisCollection
Endpoint
IPTransportDetails
   TransportProtocol TransportProtocol must exist and be set to ‘Ethernet’

Shall be equal to [‘Ethernet’]
Port
EthernetInterface
DHCPv4
DHCPv6
Description
FQDN
HostName
IPv4Addresses
IPv4StaticAddresses
IPv6Addresses
IPv6DefaultGateway If IPv6Addresses is implemented, then IPv6DefaultGateway is required.
IPv6StaticAddresses If IPv6Addresses is implemented, then IPv6StaticAddresses is required.
IPv6StaticDefaultGateways If IPv6Addresses is implemented, then IPv6StaticDefaultGateways is required.
Id
LinkStatus
Links
   Chassis
MACAddress
Name
PermanentMACAddress
StatelessAddressAutoConfig
Status
   Health
   State
EthernetInterfaceCollection
NetworkAdapter
Controllers
   ControllerCapabilities
   NetworkDeviceFunctionCount
   NetworkPortCount
   Links
   Ports
Description
Id
Manufacturer
Measurements Deprecated, do not implement.
Model
Name
NetworkDeviceFunctions
NetworkPorts Deprecated, do not implement.
PartNumber
Ports
SKU
SerialNumber
NetworkAdapterCollection
NetworkDeviceFunction
AssignablePhysicalNetworkPorts
BootMode
DeviceEnabled
Ethernet
   EthernetInterfaces
   MACAddress
   MTUSize
   MUTSizeMaximum
   PermanentMACAddress
Id
Links
   PhysicalNetworkPortAssignment
MaxVirtualFunctions
NetDevFuncCapabilities
VirtualFunctionsEnabled
NetworkDeviceFunctionCollection
Port The Port object is used by both NetworkAdapter and Switch. Requirements for both are represented in this set of property requirements.



CurrentSpeedGbps
Ethernet
   AssociatedMACAddresses Optional for NetworkAdapter ports, Required for Switch ports.



   EEEEnabled Required for NetworkAdapter ports, optional for Switch ports.



   FlowControlConfiguration Required for NetworkAdapter ports, recommended for Switch ports.



   FlowControlStatus Required for NetworkAdapter ports, recommended for Switch ports.



   SupportedEthernetCapabilities Deprecated. Do not implement.
   WakeOnLANEnabled Required for NetworkAdapter ports, Optional for Switch ports.



Id
InterfaceEnabled
LinkConfiguration
   AutoSpeedNegotiationCapable
   AutoSpeedNegotiationEnabled
   CapableLinkSpeedGbps
   ConfiguredNetworkLinks
LinkNetworkTechnology
LinkState
LinkStatus
Links
   AssociatedEndpoints
LocationIndicatorActive
MaxFrameSize
MaxSpeedGbps
Name
PortId
PortProtocol PortProtocol must exist and be set to ‘Ethernet’

Shall be equal to [‘Ethernet’]
SFP
   Status
   State
   Type
Width
PortCollection
Switch
DomainID

Table 44: Related resources for SwordfishFabricConnectivityRightsforEthernet

4.15.6 Resource Manipulation

The SwordfishFabricConnectivityRightsforEthernet profile requires the resource manipulations listed in Table 45

Resource Read Write Create Delete Update
ServiceRoot M
Chassis M
Chassis M
NetworkAdapters M
ChassisCollection M
Endpoint M/C
IPTransportDetails M
   TransportProtocol M
Port R
EthernetInterface M/C
DHCPv4 R
DHCPv6 R
Description M
FQDN M
HostName M
IPv4Addresses M
IPv4StaticAddresses M
IPv6Addresses R
IPv6DefaultGateway M/C
IPv6StaticAddresses M/C
IPv6StaticDefaultGateways M/C
Id M
LinkStatus M
Links M
   Chassis M
MACAddress M
Name M
PermanentMACAddress R
StatelessAddressAutoConfig R
Status M
   Health M
   State M
EthernetInterfaceCollection M
NetworkAdapter M
Controllers M
   ControllerCapabilities M
   NetworkDeviceFunctionCount M
   NetworkPortCount M
   Links M
   Ports R
Description M
Id M
Manufacturer M
Measurements DNI
Model M
Name M
NetworkDeviceFunctions M
NetworkPorts DNI
PartNumber M
Ports M
SKU R
SerialNumber M
NetworkAdapterCollection M
NetworkDeviceFunction M
AssignablePhysicalNetworkPorts M
BootMode M
DeviceEnabled M
Ethernet M
   EthernetInterfaces M
   MACAddress M
   MTUSize M
   MUTSizeMaximum R
   PermanentMACAddress M
Id M
Links M
   PhysicalNetworkPortAssignment M
MaxVirtualFunctions M
NetDevFuncCapabilities M
VirtualFunctionsEnabled M
NetworkDeviceFunctionCollection M
Port M
CurrentSpeedGbps M
Ethernet M
   AssociatedMACAddresses R/C
   EEEEnabled R/C
   FlowControlConfiguration R/C
   FlowControlStatus R/C
   SupportedEthernetCapabilities DNI
   WakeOnLANEnabled ???
Id M
InterfaceEnabled M
LinkConfiguration M
   AutoSpeedNegotiationCapable M
   AutoSpeedNegotiationEnabled M
   CapableLinkSpeedGbps M
   ConfiguredNetworkLinks M
LinkNetworkTechnology M
LinkState M
LinkStatus M
Links M
   AssociatedEndpoints M
LocationIndicatorActive R
MaxFrameSize R
MaxSpeedGbps M
Name M
PortId M
PortProtocol M
SFP IfImp
   Status M
   State M
   Type M
Width M
PortCollection M
Switch M
DomainID M

Table 45: Resource manipulations for SwordfishFabricConnectivityRightsforEthernet

4.15.7 Conditional Requirements

4.15.7.1 Endpoint

Test Condition / Requirement

When subordinate to [‘Fabric’, ‘EndpointCollection’], ReadRequirement is Mandatory

based on:

4.15.7.2 EthernetInterface

Test Condition / Requirement

When subordinate to [‘Manager’, ‘EthernetInterfaceCollection’], ReadRequirement is Mandatory

based on:

4.15.7.3 IPv6DefaultGateway

Purpose

If IPv6Addresses is implemented, then IPv6DefaultGateway is required.

Test Condition / Requirement

if IPv6Addresses is Present, ReadRequirement is Mandatory

based on:

4.15.7.4 IPv6StaticAddresses

Purpose

If IPv6Addresses is implemented, then IPv6StaticAddresses is required.

Test Condition / Requirement

if IPv6Addresses is Present, ReadRequirement is Mandatory

based on:

4.15.7.5 IPv6StaticDefaultGateways

Purpose

If IPv6Addresses is implemented, then IPv6StaticDefaultGateways is required.

Test Condition / Requirement

if IPv6Addresses is Present, ReadRequirement is Mandatory

based on:

4.15.7.6 Port

Test Condition / Requirement

When subordinate to [‘NetworkAdapter’], ReadRequirement is mandatory

based on:

Test Condition / Requirement

When subordinate to [‘Fabric’, ‘SwitchCollection’, ‘Switch’], ReadRequirement is mandatory

based on:

4.15.7.7 AssociatedMACAddresses

Test Condition / Requirement

When subordinate to [‘NetworkAdapter’], ReadRequirement is None

based on:

Test Condition / Requirement

When subordinate to [‘Fabric’, ‘SwitchCollection’, ‘Switch’], ReadRequirement is Recommended

based on:

4.15.7.8 EEEEnabled

Test Condition / Requirement

When subordinate to [‘NetworkAdapter’], ReadRequirement is Mandatory

based on:

Test Condition / Requirement

When subordinate to [‘Fabric’, ‘SwitchCollection’, ‘Switch’], ReadRequirement is Recommended

based on:

4.15.7.9 FlowControlConfiguration

Test Condition / Requirement

When subordinate to [‘NetworkAdapter’], ReadRequirement is Mandatory

based on:

Test Condition / Requirement

When subordinate to [‘Fabric’, ‘SwitchCollection’, ‘Switch’], ReadRequirement is Recommended

based on:

4.15.7.10 FlowControlStatus

Test Condition / Requirement

When subordinate to [‘NetworkAdapter’], ReadRequirement is Mandatory

based on:

Test Condition / Requirement

When subordinate to [‘Fabric’, ‘SwitchCollection’, ‘Switch’], ReadRequirement is Recommended

based on:

4.15.7.11 WakeOnLANEnabled

Test Condition / Requirement

When subordinate to [‘NetworkAdapter’], ReadRequirement is Mandatory

based on:

Test Condition / Requirement

When subordinate to [‘Fabric’, ‘SwitchCollection’, ‘Switch’], ReadRequirement is None

based on:

4.16 SwordfishFabricConnectivityRightsforRDMA profile

4.16.1 Summary Information

4.16.2 Protocol Information

4.16.3 Other Registry Information

4.16.4 Required profiles

The SwordfishFabricConnectivityRightsforRDMA profile depends upon the profiles listed in Table 46 .

Profile Version Conditions
SwordfishFabricConnectivityRights 1.0.2

Table 46: Required profiles for SwordfishFabricConnectivityRightsforRDMA

The SwordfishFabricConnectivityRightsforRDMA profile relies on the resources listed in Table 47

Resource Purpose
ServiceRoot
Chassis
Chassis
NetworkAdapters
ChassisCollection
Endpoint
IPTransportDetails
   TransportProtocol TransportProtocol must exist and be set to ‘InfiniBand’

Shall be equal to [‘InfiniBand’]
Port
NetworkAdapter
Controllers
   ControllerCapabilities
   NetworkDeviceFunctionCount
   NetworkPortCount
Description
Id
Manufacturer
Measurements Deprecated, do not implement.
Model
Name
NetworkDeviceFunctions
NetworkPorts Deprecated, do not implement.
PartNumber
Ports
SKU
SerialNumber
NetworkAdapterCollection
NetworkDeviceFunction
AssignablePhysicalNetworkPorts
AssignableNetworkPorts Deprecated, do not implement.
DeviceEnabled
Id
InfiniBand
   MTUSize
   NodeGUID
   PermanentNodeGUID
   PermanentPortGUID
   PermanentSystemGUID
   PortGUID
   SupportedMTUSizes
   SystemGUID
Links
   PhysicalNetworkPortAssignment
MaxVirtualFunctions
NetDevFuncCapabilities
VirtualFunctionsEnabled
NetworkDeviceFunctionCollection
Port The Port object is used by both NetworkAdapter and Switch. Requirements for both are represented in this set of property requirements.



CurrentSpeedGbps
Id
InterfaceEnabled
LinkConfiguration
   AutoSpeedNegotiationCapable
   AutoSpeedNegotiationEnabled
   CapableLinkSpeedGbps
   ConfiguredNetworkLinks
LinkNetworkTechnology
LinkState
LinkStatus
Links
   AssociatedEndpoints
LocationIndicatorActive
MaxFrameSize
MaxSpeedGbps
Name
PortId
PortProtocol PortProtocol must exist and be set to ‘InfiniBand’

Shall be equal to [‘InfiniBand’]
SFP
   Status
   State
   Type
Width
PortCollection
Switch
DomainID

Table 47: Related resources for SwordfishFabricConnectivityRightsforRDMA

4.16.6 Resource Manipulation

The SwordfishFabricConnectivityRightsforRDMA profile requires the resource manipulations listed in Table 48

Resource Read Write Create Delete Update
ServiceRoot M
Chassis M
Chassis M
NetworkAdapters M
ChassisCollection M
Endpoint M/C
IPTransportDetails M
   TransportProtocol M
Port R
NetworkAdapter M
Controllers M
   ControllerCapabilities M
   NetworkDeviceFunctionCount M
   NetworkPortCount M
Description M
Id M
Manufacturer M
Measurements DNI
Model M
Name M
NetworkDeviceFunctions M
NetworkPorts DNI
PartNumber M
Ports M
SKU R
SerialNumber M
NetworkAdapterCollection M
NetworkDeviceFunction M
AssignablePhysicalNetworkPorts M
AssignableNetworkPorts DNI
DeviceEnabled M
Id M
InfiniBand M
   MTUSize M
   NodeGUID M
   PermanentNodeGUID M
   PermanentPortGUID M
   PermanentSystemGUID M
   PortGUID M
   SupportedMTUSizes R
   SystemGUID M
Links M
   PhysicalNetworkPortAssignment M
MaxVirtualFunctions M
NetDevFuncCapabilities M
VirtualFunctionsEnabled M
NetworkDeviceFunctionCollection M
Port M
CurrentSpeedGbps M
Id M
InterfaceEnabled M
LinkConfiguration M
   AutoSpeedNegotiationCapable M
   AutoSpeedNegotiationEnabled M
   CapableLinkSpeedGbps M
   ConfiguredNetworkLinks M
LinkNetworkTechnology M
LinkState M
LinkStatus M
Links M
   AssociatedEndpoints M
LocationIndicatorActive R
MaxFrameSize R
MaxSpeedGbps M
Name M
PortId M
PortProtocol M
SFP IfImp
   Status M
   State M
   Type M
Width M
PortCollection M
Switch M
DomainID M

Table 48: Resource manipulations for SwordfishFabricConnectivityRightsforRDMA

4.16.7 Conditional Requirements

4.16.7.1 Endpoint

Test Condition / Requirement

When subordinate to [‘Fabric’, ‘EndpointCollection’], ReadRequirement is Mandatory

based on:

4.16.7.2 Port

Test Condition / Requirement

When subordinate to [‘NetworkAdapter’], ReadRequirement is mandatory

based on:

Test Condition / Requirement

When subordinate to [‘Fabric’, ‘SwitchCollection’, ‘Switch’], ReadRequirement is mandatory

based on:

4.17 SwordfishFileCapacityManagement profile

4.17.1 Summary Information

4.17.2 Protocol Information

No protocol information defined in this profile.

4.17.3 Other Registry Information

4.17.4 Required profiles

The SwordfishFileCapacityManagement profile depends upon the profiles listed in Table 49 .

Profile Version Conditions
SwordfishFileProvisioning 1.1.4

Table 49: Required profiles for SwordfishFileCapacityManagement

The SwordfishFileCapacityManagement profile relies on the resources listed in Table 50

Resource Purpose
FileSystemCollection
FileSystem
Capacity

Table 50: Related resources for SwordfishFileCapacityManagement

4.17.6 Resource Manipulation

The SwordfishFileCapacityManagement profile requires the resource manipulations listed in Table 51

Resource Read Write Create Delete Update
FileSystemCollection IfImp T
FileSystem M
Capacity M M

Table 51: Resource manipulations for SwordfishFileCapacityManagement

4.17.7 Conditional Requirements

None defined.

4.18 SwordfishFileProvisioning profile

4.18.1 Summary Information

4.18.2 Protocol Information

No protocol information defined in this profile.

4.18.3 Other Registry Information

4.18.4 Required profiles

The SwordfishFileProvisioning profile depends upon the profiles listed in Table 52 .

Profile Version Conditions
CoSDiscovery 1.1.4 Required Either SwordfishDiscovery or SwordfishCoSDiscovery must be supported.
SwordfishDiscovery 1.1.4 Required Either SwordfishDiscovery or SwordfishCoSDiscovery must be supported.

Table 52: Required profiles for SwordfishFileProvisioning

The SwordfishFileProvisioning profile relies on the resources listed in Table 53

Resource Purpose
FileSystemCollection
Members MinCount = 0
Filesystem
ExportedShares
ImportedShares Require the Imported Shares structure to be complete and Create / Delete if implemented.
   ImportedShare
   FileSharePath

Table 53: Related resources for SwordfishFileProvisioning

4.18.6 Resource Manipulation

The SwordfishFileProvisioning profile requires the resource manipulations listed in Table 54

Resource Read Write Create Delete Update
FileSystemCollection M T T
Members M
Filesystem IfImp
ExportedShares IfImp M
ImportedShares IfImp M
   ImportedShare M
   FileSharePath M

Table 54: Resource manipulations for SwordfishFileProvisioning

4.18.7 Conditional Requirements

4.18.7.1 FileSystemCollection

Test Condition / Requirement

When subordinate to [‘Storage’, ‘StorageService’], ReadRequirement is mandatory

based on:

4.19 SwordfishIOPerformance profile

4.19.1 Summary Information

4.19.2 Protocol Information

No protocol information defined in this profile.

4.19.3 Other Registry Information

4.19.4 Required profiles

The SwordfishIOPerformance profile depends upon the profiles listed in Table 55 .

Profile Version Conditions
CoSDiscovery 1.2.0 Required Either SwordfishDiscovery or SwordfishCoSDiscovery must be supported.
SwordfishDiscovery 1.1.4 Required Either SwordfishDiscovery or SwordfishCoSDiscovery must be supported.

Table 55: Required profiles for SwordfishIOPerformance

The SwordfishIOPerformance profile relies on the resources listed in Table 56

Resource Purpose
Volume
Metrics
StoragePool
Metrics
FileSystem
Metrics
StorageService
Metrics
VolumeMetrics
IOStatistics
   WriteIORequestTime
   WriteIORequests
   WriteIOKiBytes
   WriteHitIORequests
   ReadIORequestTime
   ReadIORequests
   ReadIOKiBytes
   ReadHitIORequests
   NonIORequestTime
   NonIORequests
StoragePoolMetrics
IOStatistics
   WriteIORequestTime
   WriteIORequests
   WriteIOKiBytes
   WriteHitIORequests
   ReadIORequestTime
   ReadIORequests
   ReadIOKiBytes
   ReadHitIORequests
   NonIORequestTime
   NonIORequests
StorageServiceMetrics
IOStatistics
   WriteIORequestTime
   WriteIORequests
   WriteIOKiBytes
   WriteHitIORequests
   ReadIORequestTime
   ReadIORequests
   ReadIOKiBytes
   ReadHitIORequests
   NonIORequestTime
   NonIORequests
FileSystemMetrics
IOStatistics
   WriteIORequestTime
   WriteIORequests
   WriteIOKiBytes
   WriteHitIORequests
   ReadIORequestTime
   ReadIORequests
   ReadIOKiBytes
   ReadHitIORequests
   NonIORequestTime
   NonIORequests

Table 56: Related resources for SwordfishIOPerformance

4.19.6 Resource Manipulation

The SwordfishIOPerformance profile requires the resource manipulations listed in Table 57

Resource Read Write Create Delete Update
Volume IfImp
Metrics M
StoragePool IfImp
Metrics M
FileSystem IfImp
Metrics M
StorageService IfImp
Metrics M
VolumeMetrics IfImp
IOStatistics M
   WriteIORequestTime M
   WriteIORequests M
   WriteIOKiBytes M
   WriteHitIORequests M
   ReadIORequestTime M
   ReadIORequests M
   ReadIOKiBytes M
   ReadHitIORequests M
   NonIORequestTime M
   NonIORequests M
StoragePoolMetrics IfImp
IOStatistics M
   WriteIORequestTime M
   WriteIORequests M
   WriteIOKiBytes M
   WriteHitIORequests M
   ReadIORequestTime M
   ReadIORequests M
   ReadIOKiBytes M
   ReadHitIORequests M
   NonIORequestTime M
   NonIORequests M
StorageServiceMetrics IfImp
IOStatistics M
   WriteIORequestTime M
   WriteIORequests M
   WriteIOKiBytes M
   WriteHitIORequests M
   ReadIORequestTime M
   ReadIORequests M
   ReadIOKiBytes M
   ReadHitIORequests M
   NonIORequestTime M
   NonIORequests M
FileSystemMetrics IfImp
IOStatistics M
   WriteIORequestTime M
   WriteIORequests M
   WriteIOKiBytes M
   WriteHitIORequests M
   ReadIORequestTime M
   ReadIORequests M
   ReadIOKiBytes M
   ReadHitIORequests M
   NonIORequestTime M
   NonIORequests M

Table 57: Resource manipulations for SwordfishIOPerformance

4.19.7 Conditional Requirements

None defined.

4.20 SwordfishManagementController profile

4.20.1 Summary Information

4.20.2 Protocol Information

4.20.3 Other Registry Information

4.20.4 Required profiles

The SwordfishManagementController profile relies on the resources listed in Table 58

Resource Purpose
ServiceRoot
Managers
EthernetInterface
DHCPv4
DHCPv6
Description
FQDN
HostName
IPv4Addresses
IPv4StaticAddresses
IPv6Addresses
IPv6DefaultGateway If IPv6Addresses is implemented, then IPv6DefaultGateway is required.
IPv6StaticAddresses If IPv6Addresses is implemented, then IPv6StaticAddresses is required.
IPv6StaticDefaultGateways If IPv6Addresses is implemented, then IPv6StaticDefaultGateways is required.
Id
LinkStatus
Links
   Chassis
MACAddress
Name
PermanentMACAddress
StatelessAddressAutoConfig
Status
   Health
   State
EthernetInterfaceCollection
Manager
ACTIONS
Reset()
DateTime
DateTimeLocalOffset
Description
EthernetInterfaces
FirmwareVersion
Id
Links
   ManagerForServers Must have one of the ‘ManagerFor’ implemented.
   ManagerForChassis Must have one of the ‘ManagerFor’ implemented.
   ManagerForSwitches Must have one of the ‘ManagerFor’ implemented.
   ManagerForManagers Must have one of the ‘ManagerFor’ implemented.
LocationIndicatorActive
ManagerType
Manufacturer
Model
Name
NetworkProtocol
SerialNumber
ServiceEntryPointUUID
Status
   Health
   State
VirtualMedia Deprecated. Do not implement.
ManagerCollection
ManagerNetworkProtocol
Description
HTTP
HTTPS
Id
NTP
   NTPServers
   Port
Name
Proxy
SSDP
   NotifyIPv6Scope Required if IPv6 is implemented.
   NotifyMulticastIntervalSeconds
   NotifyTTL
   Port
   ProtocolEnabled

Table 58: Related resources for SwordfishManagementController

4.20.6 Resource Manipulation

The SwordfishManagementController profile requires the resource manipulations listed in Table 59

Resource Read Write Create Delete Update
ServiceRoot M
Managers M
EthernetInterface M/C
DHCPv4 R
DHCPv6 R
Description M
FQDN M
HostName M
IPv4Addresses M
IPv4StaticAddresses M
IPv6Addresses R
IPv6DefaultGateway M/C
IPv6StaticAddresses M/C
IPv6StaticDefaultGateways M/C
Id M
LinkStatus M
Links M
   Chassis M
MACAddress M
Name M
PermanentMACAddress R
StatelessAddressAutoConfig R
Status M
   Health M
   State M
EthernetInterfaceCollection M
Manager M
ACTIONS
Reset R
DateTime M
DateTimeLocalOffset M
Description M
EthernetInterfaces M
FirmwareVersion M
Id M
Links M
   ManagerForServers M/C
   ManagerForChassis M/C
   ManagerForSwitches M/C
   ManagerForManagers M/C
LocationIndicatorActive M
ManagerType M
Manufacturer M
Model M
Name M
NetworkProtocol M
SerialNumber M
ServiceEntryPointUUID M
Status M
   Health M
   State M
VirtualMedia DNI
ManagerCollection M
ManagerNetworkProtocol M
Description M
HTTP M
HTTPS M
Id M
NTP M
   NTPServers M
   Port M
Name M
Proxy M
SSDP M
   NotifyIPv6Scope R
   NotifyMulticastIntervalSeconds M
   NotifyTTL M
   Port M
   ProtocolEnabled M

Table 59: Resource manipulations for SwordfishManagementController

4.20.7 Conditional Requirements

4.20.7.1 EthernetInterface

Test Condition / Requirement

When subordinate to [‘Manager’, ‘EthernetInterfaceCollection’], ReadRequirement is Mandatory

based on:

4.20.7.2 IPv6DefaultGateway

Purpose

If IPv6Addresses is implemented, then IPv6DefaultGateway is required.

Test Condition / Requirement

if IPv6Addresses is Present, ReadRequirement is Mandatory

based on:

4.20.7.3 IPv6StaticAddresses

Purpose

If IPv6Addresses is implemented, then IPv6StaticAddresses is required.

Test Condition / Requirement

if IPv6Addresses is Present, ReadRequirement is Mandatory

based on:

4.20.7.4 IPv6StaticDefaultGateways

Purpose

If IPv6Addresses is implemented, then IPv6StaticDefaultGateways is required.

Test Condition / Requirement

if IPv6Addresses is Present, ReadRequirement is Mandatory

based on:

4.20.7.5 ManagerForServers

Purpose

Must have one of the ‘ManagerFor’ implemented.

Test Condition / Requirement

if is Absent, ReadRequirement is Mandatory

based on:

4.20.7.6 ManagerForChassis

Purpose

Must have one of the ‘ManagerFor’ implemented.

Test Condition / Requirement

if is Absent, ReadRequirement is Mandatory

based on:

4.20.7.7 ManagerForSwitches

Purpose

Must have one of the ‘ManagerFor’ implemented.

Test Condition / Requirement

if is Absent, ReadRequirement is Mandatory

based on:

4.20.7.8 ManagerForManagers

Purpose

Must have one of the ‘ManagerFor’ implemented.

Test Condition / Requirement

if is Absent, ReadRequirement is Mandatory

based on:

4.21 SwordfishNVMeDrive profile

4.21.1 Summary Information

4.21.2 Protocol Information

4.21.3 Other Registry Information

4.21.4 Required profiles

The SwordfishNVMeDrive profile relies on the resources listed in Table 60

Resource Purpose
ServiceRoot
Chassis
Storage
Systems If Storage is attached to a ComputerSystem rather than instantiated as a Standalone instance.
StorageSystems If Storage is attached to a ComputerSystem rather than instantiated as a Standalone instance.
DriveCollection
Members MinCount = 1
StorageCollection
Members MinCount = 1
VolumeCollection
StorageControllerCollection
Members MinCount = 1
Assembly
BinaryDataURI
Chassis
Drives
Drive
ACTIONS
Reset() This action resets this drive.
Assembly The BinaryDataURI property within the Assembly resource in Drive is recommended to be implemented to support mapping a binary blob via NVMe-MI to the VPD.
BlockSizeBytes
CapableSpeedGbs
CapacityBytes
Description
EncryptionAbility
EncryptionStatus Required when encryption is supported (EncryptionAbility is set to anything other than none).
FailurePredicted Recommended when controller type is Admin or IO.
Id
Identifiers
   DurableName
   DurableNameFormat
IndicatorLED This property is recommended as ‘Do not implement’ for this device and protocol type.
Links
   Volumes
Location This property is recommended as ‘Do not implement’ for this device and protocol type. This property has been deprecated in favor of the PhysicalLocation property.
LocationIndicatorActive
Manufacturer
MediaType
Model
Multipath
Name
NegotiatedSpeedGbs
PhysicalLocation
   PartLocation
PredictedMediaLifeLeftPercent
Protocol
PowerMode Required when MediaType != SSD. If SSD, do not implement.
Revision
RotationSpeedRPM Required when MediaType != SSD. If SSD, do not implement.
SKU
SerialNumber
Status
   State
   Health
StatusIndicator
WriteCacheEnabled
Storage
ACTIONS
SetEncryptionKey() This property is recommended as ‘Do not implement’ for this device and protocol type.
Controllers
Description Shall be equal to [‘An NVM Express Subsystem is an NVMe device that contains one or more NVM Express controllers and may contain one or more namespaces.’]
Drives
Id
Identifiers
   DurableName
   DurableNameFormat
Links
   Enclosures This resource shall contain the link to the chassis with the Drive object.
   SimpleStorage This resource is recommended as ‘Do not implement’ for this device and protocol type.
Name
Status
   Health
   State This property is recommended as ‘Do not implement’ for this device and protocol type.
   HealthRollup
StorageControllers This resource is recommended as ‘Do not implement’ for this device and protocol type. Use the ‘Controller’ resource instead.
StorageGroups This resource is recommended as ‘Do not implement’ for this device and protocol type. Note that this function has been deprecated and replaced by Connections in Fabrics.
Volumes
StorageController
Assembly This property is recommended as ‘Do not implement’ for this device and protocol type. This information is available in the Drive resource if needed.
AssetTag This property is recommended as ‘Do not implement’ for this device and protocol type. This information is available in the Drive resource if needed.
CacheSummary This property is recommended as ‘Do not implement’ for this device and protocol type.
ControllerRates This property is recommended as ‘Do not implement’ for this device and protocol type.
Description The Description must be set to the designated string when the ControllerType is Admin. There is a different specified value for IO and Discovery.

The Description must be set to the designated string when the ControllerType is Discovery. There is a different specified value for Admin and IO.

The Description must be set to the designated string when the ControllerType is IO. There is a different specified value for Admin and Discovery.
FirmwareVersion
Links
   AttachedVolumes AttachedVolumes must be implemented when the ControllerType is IO. Do not implement when ControllerType is Discovery or Admin.
Location This resource is recommended as ‘Do not implement’ for this device and protocol type. Implemented in the ‘Drive’ object as ‘PhysicalLocation’.
Manufacturer Manufacturer must be implemented when the ControllerType is IO. It may be implemented for a Discovery controller. It is generally optional for an Admin controller, but should not be implemented when NVMeoF is supported.

Manufacturer must be implemented when the ControllerType is IO. It may be implemented for a Discovery controller. It is generally optional for an Admin controller, but should not be implemented when NVMeoF is supported.

Manufacturer must be implemented when the ControllerType is IO. It may be implemented for a Discovery controller. It is generally optional for an Admin controller, but should not be implemented when NVMeoF is supported.
Model Model must be implemented when the ControllerType is IO. It is recommended to implement when ControllerType is Admin, and may be implemented for a Discovery controller.

Model must be implemented when the ControllerType is IO. It is recommended to implement when ControllerType is Admin, and may be implemented for a Discovery controller.
NVMeControllerProperties
   ControllerType
   NVMeVersion NVMeVersion is required when the underlying NVMe implementation is revision 1.2 or higher.
   MaxQueueSize
   NVMeControllerAttributes
   ReportsNamespaceGranularity
   Supports128BitHostId Required when controller type is Admin or IO. Do not implement for Discovery controllers.
   NVMeSMARTCriticalWarnings
   MediaInReadOnly
   OverallSubsystemDegraded Required when controller type is Admin or IO. Do not implement for Discovery controllers.
   PMRUnreliable
   PowerBackupFailed Recommended when controller type is Admin or IO. Do not implement for Discovery controllers.
   SpareCapacityWornOut Required when controller type is Admin or IO. Do not implement for Discovery controllers.
SpeedGbps This resource is recommended as ‘Do not implement’ for this device and protocol type.
SKU This resource is recommended as ‘Do not implement’ for this device and protocol type.
SupportedControllerProtocols
SupportedDeviceProtocols This resource is recommended as ‘Do not implement’ for this device and protocol type.
SupportedRAIDTypes
PCIeInterface This property is required for implementations that connect via PCIe (e.g., do not implement for Ethernet-Attach drives).
   PCIeType
   MaxPCIeType
   LanesInUse
   MaxLanes
Volume
BlockSizeBytes
Capacity
   Data
   AllocatedBytes
   ConsumedBytes
DisplayName
Description Shall be equal to [‘A Namespace is a quantity of non-volatile memory that may be formatted into logical blocks. When formatted, a namespace of size n is a collection of logical blocks with logical block addresses from 0 to (n-1). NVMe systems can support multiple namespaces.’]
Id
Identifiers
   DurableName
   DurableNameFormat
InitializeMethod
LogicalUnitNumber This resource is recommended as ‘Do not implement’ for this device and protocol type.
NVMeNamespaceProperties
   IsShareable
   NVMeVersion
   NamespaceFeatures
   SupportsDeallocatedOrUnwrittenLBError
   SupportsNGUIDReuse
   SupportsAtomicTransactionSize
   SupportsIOPerformanceHints
   NamespaceId
   MetadataTransferredAtEndOfDataLBA
Links
   Controllers This resource shall contain links to the associated controllers.
   Drives This resource shall contain the link to the Drive object.
Name
OptimumIOSizeBytes
ProvisioningPolicy Recommended to implement when device supports thin provisioning.
RAIDType
Status
   Health
   State
   HealthRollup This property is recommended as ‘Do not implement’ for this device and protocol type.
StorageGroups This resource is recommended as ‘Do not implement’ for this device and protocol type. Note that this function has been deprecated and replaced by Connections in Fabrics.
VolumeType This property is recommended as ‘Do not implement’ for this device and protocol type. It has been deprecated and replaced by RAIDType.
WriteCachePolicy

Table 60: Related resources for SwordfishNVMeDrive

4.21.6 Resource Manipulation

The SwordfishNVMeDrive profile requires the resource manipulations listed in Table 61

Resource Read Write Create Delete Update
ServiceRoot M
Chassis M
Storage M
Systems IfImp
StorageSystems IfImp
DriveCollection M
Members M
StorageCollection M
Members M
VolumeCollection M
StorageControllerCollection M
Members M
Assembly R/C
BinaryDataURI R
Chassis M
Drives M
Drive M
ACTIONS
Reset M
SecureErase M
Assembly R
BlockSizeBytes M
CapableSpeedGbs M
CapacityBytes M
Description M
EncryptionAbility M
EncryptionStatus M/C
FailurePredicted R/C
Id M
Identifiers M
   DurableName M
   DurableNameFormat M
IndicatorLED DNI
Links M
   Volumes M
Location DNI
LocationIndicatorActive R
Manufacturer M
MediaType M
Model M
Multipath R
Name M
NegotiatedSpeedGbs M
PhysicalLocation M
   PartLocation M
PredictedMediaLifeLeftPercent M
Protocol M
PowerMode M/C
Revision M
RotationSpeedRPM M/C
SKU M
SerialNumber M
Status M
   State M
   Health M
StatusIndicator M
WriteCacheEnabled M
Storage M
ACTIONS
SetEncryptionKey DNI
Controllers M
Description M
Drives M
Id M
Identifiers M
   DurableName M
   DurableNameFormat M
Links M
   Enclosures M
   SimpleStorage DNI
Name M
Status M
   Health M
   State DNI
   HealthRollup M
StorageControllers DNI
StorageGroups DNI
Volumes M
StorageController M
Assembly DNI
AssetTag DNI
CacheSummary DNI
ControllerRates DNI
Description M
FirmwareVersion M
Links M
   AttachedVolumes M/C M/C
Location DNI
Manufacturer ???
Model R/C
NVMeControllerProperties M
   ControllerType M
   NVMeVersion IfImp
   MaxQueueSize M
   NVMeControllerAttributes M
   ReportsNamespaceGranularity R
   Supports128BitHostId M/C
   NVMeSMARTCriticalWarnings M
   MediaInReadOnly M
   OverallSubsystemDegraded M/C
   PMRUnreliable R
   PowerBackupFailed R/C
   SpareCapacityWornOut M/C
SpeedGbps DNI
SKU DNI
SupportedControllerProtocols M
SupportedDeviceProtocols DNI
SupportedRAIDTypes M
PCIeInterface IfImp
   PCIeType M
   MaxPCIeType M
   LanesInUse M
   MaxLanes M
Volume M
BlockSizeBytes M
Capacity M
   Data M
   AllocatedBytes M
   ConsumedBytes M
DisplayName M
Description M
Id M
Identifiers M
   DurableName M
   DurableNameFormat M
InitializeMethod R
LogicalUnitNumber DNI
NVMeNamespaceProperties M
   IsShareable M
   NVMeVersion M
   NamespaceFeatures M
   SupportsDeallocatedOrUnwrittenLBError M
   SupportsNGUIDReuse M
   SupportsAtomicTransactionSize M
   SupportsIOPerformanceHints M
   NamespaceId M
   MetadataTransferredAtEndOfDataLBA M
Links M
   Controllers M
   Drives M
Name M
OptimumIOSizeBytes R
ProvisioningPolicy R
RAIDType M
Status M
   Health M
   State M
   HealthRollup DNI
StorageGroups DNI
VolumeType DNI
WriteCachePolicy R

Table 61: Resource manipulations for SwordfishNVMeDrive

4.21.7 Conditional Requirements

4.21.7.1 Assembly

Test Condition / Requirement

When subordinate to [‘Drive’], ReadRequirement is Recommended

based on:

4.21.7.2 EncryptionStatus

Purpose

Required when encryption is supported (EncryptionAbility is set to anything other than none).

Test Condition / Requirement

if EncryptionAbility is NotEqual to [‘None’], ReadRequirement is Mandatory

based on:

4.21.7.3 FailurePredicted

Purpose

Recommended when controller type is Admin or IO.

Test Condition / Requirement

if NVMeControllerProperties/ControllerType is Equal to [‘Admin’, ‘IO’], ReadRequirement is Recommended

based on:

4.21.7.4 PowerMode

Purpose

Required when MediaType != SSD. If SSD, do not implement.

Test Condition / Requirement

if MediaType is NotEqual to [‘SSD’], ReadRequirement is Mandatory

based on:

4.21.7.5 RotationSpeedRPM

Purpose

Required when MediaType != SSD. If SSD, do not implement.

Test Condition / Requirement

if MediaType is NotEqual to [‘SSD’], ReadRequirement is Mandatory

based on:

4.21.7.6 Description

Purpose

The Description must be set to the designated string when the ControllerType is Admin. There is a different specified value for IO and Discovery.

Test Condition / Requirement

if NVMeControllerProperties/ControllerType is Equal to [‘Admin’], ReadRequirement is mandatory

based on:

Purpose

The Description must be set to the designated string when the ControllerType is Discovery. There is a different specified value for Admin and IO.

Test Condition / Requirement

if NVMeControllerProperties/ControllerType is Equal to [‘Discovery’], ReadRequirement is mandatory

based on:

Purpose

The Description must be set to the designated string when the ControllerType is IO. There is a different specified value for Admin and Discovery.

Test Condition / Requirement

if NVMeControllerProperties/ControllerType is Equal to [‘IO’], ReadRequirement is mandatory

based on:

4.21.7.7 AttachedVolumes

Purpose

AttachedVolumes must be implemented when the ControllerType is IO. Do not implement when ControllerType is Discovery or Admin.

Test Condition / Requirement

if ControllerType is Equal to [‘IO’], WriteRequirement is Mandatory, ReadRequirement is Mandatory

based on:

4.21.7.8 Manufacturer

Purpose

Manufacturer must be implemented when the ControllerType is IO. It may be implemented for a Discovery controller. It is generally optional for an Admin controller, but should not be implemented when NVMeoF is supported.

Test Condition / Requirement

if NVMeControllerProperties/ControllerType is Equal to [‘IO’], ReadRequirement is Mandatory

based on:

Purpose

Manufacturer must be implemented when the ControllerType is IO. It may be implemented for a Discovery controller. It is generally optional for an Admin controller, but should not be implemented when NVMeoF is supported.

Test Condition / Requirement

if NVMeControllerProperties/ControllerType is Equal to [‘Discovery’], ReadRequirement is Recommended

based on:

Purpose

Manufacturer must be implemented when the ControllerType is IO. It may be implemented for a Discovery controller. It is generally optional for an Admin controller, but should not be implemented when NVMeoF is supported.

Test Condition / Requirement

if NVMeControllerProperties/ControllerType is Equal to [‘Admin’], ReadRequirement is None

based on:

4.21.7.9 Model

Purpose

Model must be implemented when the ControllerType is IO. It is recommended to implement when ControllerType is Admin, and may be implemented for a Discovery controller.

Test Condition / Requirement

if NVMeControllerProperties/ControllerType is Equal to [‘IO’], ReadRequirement is Mandatory

based on:

Purpose

Model must be implemented when the ControllerType is IO. It is recommended to implement when ControllerType is Admin, and may be implemented for a Discovery controller.

Test Condition / Requirement

if NVMeControllerProperties/ControllerType is Equal to [‘Discovery’], ReadRequirement is Recommended

based on:

4.21.7.10 Supports128BitHostId

Purpose

Required when controller type is Admin or IO. Do not implement for Discovery controllers.

Test Condition / Requirement

if NVMeControllerProperties/ControllerType is Equal to [‘Admin’, ‘IO’], ReadRequirement is Mandatory

based on:

4.21.7.11 OverallSubsystemDegraded

Purpose

Required when controller type is Admin or IO. Do not implement for Discovery controllers.

Test Condition / Requirement

if NVMeControllerProperties/ControllerType is Equal to [‘Admin’, ‘IO’], ReadRequirement is Mandatory

based on:

4.21.7.12 PowerBackupFailed

Purpose

Recommended when controller type is Admin or IO. Do not implement for Discovery controllers.

Test Condition / Requirement

if NVMeControllerProperties/ControllerType is Equal to [‘Admin’, ‘IO’], ReadRequirement is Recommended

based on:

4.21.7.13 SpareCapacityWornOut

Purpose

Required when controller type is Admin or IO. Do not implement for Discovery controllers.

Test Condition / Requirement

if NVMeControllerProperties/ControllerType is Equal to [‘Admin’, ‘IO’], ReadRequirement is Mandatory

based on:

4.22 SwordfishNVMeDriveAdvancedFeatures profile

4.22.1 Summary Information

4.22.2 Protocol Information

No protocol information defined in this profile.

4.22.3 Other Registry Information

4.22.4 Required profiles

The SwordfishNVMeDriveAdvancedFeatures profile depends upon the profiles listed in Table 62 .

Profile Version Conditions
SwordfishNVMeDrive 1.3.0

Table 62: Required profiles for SwordfishNVMeDriveAdvancedFeatures

The SwordfishNVMeDriveAdvancedFeatures profile relies on the resources listed in Table 63

Resource Purpose
StoragePoolCollection
Members MinCount = 1
Storage
StoragePools
StorageController
NVMeControllerProperties
   NVMeControllerAttributes
   SupportsEnduranceGroups
   SupportsNVMSets
StoragePool
AllocatedPools Required when NVMePoolType = EnduranceGroup. If NVMSet, do not implement.
Capacity
   Data
   AllocatedBytes
   ConsumedBytes
CapacitySources Required only when NVMePoolType = EnduranceGroup. Not required for NVM Sets.
Description The Description must be set to the designated string when the NVMePoolType is set to EnduranceGroup. There is a different specified value for NVMSet.

The Description must be set to the designated string when the NVMePoolType is set to NVMSet. There is a different specified value for EnduranceGroup.
Id
Identifier
Links
   OwningStorageResource Required only when NVMePoolType = EnduranceGroup. Not required for NVM Sets.
Name
NVMeEnduranceGroupProperties
   EndGrpLifetime
   DataUnitsRead Required only when NVMePoolType = EnduranceGroup. Otherwise, do not implement.
   DataUnitsWritten Required only when NVMePoolType = EnduranceGroup. Otherwise, do not implement.
   EnduranceEstimate Required only when NVMePoolType = EnduranceGroup. Otherwise, do not implement.
   ErrorInformationLogEntryCount Required only when NVMePoolType = EnduranceGroup. Otherwise, do not implement.
   HostReadCommandCount Required only when NVMePoolType = EnduranceGroup. Otherwise, do not implement.
   HostWriteCommandCount Required only when NVMePoolType = EnduranceGroup. Otherwise, do not implement.
   MediaAndDataIntegrityErrorCount Required only when NVMePoolType = EnduranceGroup. Otherwise, do not implement.
   MediaUnitsWritten Required only when NVMePoolType = EnduranceGroup. Otherwise, do not implement.
   PercentUsed Required only when NVMePoolType = EnduranceGroup. Otherwise, do not implement.
   PredictedMediaLifeLeftPercent Required only when NVMePoolType = EnduranceGroup. Otherwise, do not implement.
NVMeSetProperties
   EnduranceGroupIdentifier Required only when NVMePoolType = NVMSet. Otherwise, do not implement.
   OptimalWriteSizeBytes Required only when NVMePoolType = NVMSet. Otherwise, do not implement.
   Random4kReadTypicalNanoSeconds Required only when NVMePoolType = NVMSet. Otherwise, do not implement.
   SetIdentifier Required only when NVMePoolType = NVMSet. Otherwise, do not implement.
   UnallocatedNVMNamespaceCapacityBytes Required only when NVMePoolType = NVMSet. Otherwise, do not implement.
Status
   State This property is recommended as ‘Do not implement’ for this device and protocol type.
   Health This property is recommended as ‘Do not implement’ for this device and protocol type.

Table 63: Related resources for SwordfishNVMeDriveAdvancedFeatures

4.22.6 Resource Manipulation

The SwordfishNVMeDriveAdvancedFeatures profile requires the resource manipulations listed in Table 64

Resource Read Write Create Delete Update
StoragePoolCollection M
Members M
Storage M
StoragePools M
StorageController M
NVMeControllerProperties M
   NVMeControllerAttributes M
   SupportsEnduranceGroups M
   SupportsNVMSets M
StoragePool M
AllocatedPools M/C
Capacity M
   Data M
   AllocatedBytes M
   ConsumedBytes M
CapacitySources M/C
Description M
Id M
Identifier M
Links S
   OwningStorageResource M/C
Name M
NVMeEnduranceGroupProperties S
   EndGrpLifetime M
   DataUnitsRead M/C
   DataUnitsWritten M/C
   EnduranceEstimate M/C
   ErrorInformationLogEntryCount M/C
   HostReadCommandCount M/C
   HostWriteCommandCount M/C
   MediaAndDataIntegrityErrorCount M/C
   MediaUnitsWritten M/C
   PercentUsed M/C
   PredictedMediaLifeLeftPercent M/C
NVMeSetProperties S
   EnduranceGroupIdentifier M/C
   OptimalWriteSizeBytes M/C
   Random4kReadTypicalNanoSeconds M/C
   SetIdentifier M/C
   UnallocatedNVMNamespaceCapacityBytes M/C
Status ???
   State ???
   Health ???

Table 64: Resource manipulations for SwordfishNVMeDriveAdvancedFeatures

4.22.7 Conditional Requirements

4.22.7.1 StorageController

Test Condition / Requirement

When subordinate to [‘Storage’, ‘StorageCollection’], ReadRequirement is mandatory

based on:

4.22.7.2 StoragePool

Test Condition / Requirement

When subordinate to [‘Storage’, ‘StorageCollection’], ReadRequirement is mandatory

based on:

4.22.7.3 AllocatedPools

Purpose

Required when NVMePoolType = EnduranceGroup. If NVMSet, do not implement.

Test Condition / Requirement

if /NVMeProperties/NVMePoolType is Equal to [‘EnduranceGroup’], ReadRequirement is Mandatory

based on:

4.22.7.4 CapacitySources

Purpose

Required only when NVMePoolType = EnduranceGroup. Not required for NVM Sets.

Test Condition / Requirement

if NVMeProperties/NVMePoolType is Equal to [‘EnduranceGroup’], ReadRequirement is Mandatory

based on:

4.22.7.5 Description

Purpose

The Description must be set to the designated string when the NVMePoolType is set to EnduranceGroup. There is a different specified value for NVMSet.

Test Condition / Requirement

if NVMeProperties/NVMePoolType is Equal to [‘EnduranceGroup’], ReadRequirement is mandatory

based on:

Purpose

The Description must be set to the designated string when the NVMePoolType is set to NVMSet. There is a different specified value for EnduranceGroup.

Test Condition / Requirement

if NVMeProperties/NVMePoolType is Equal to [‘NVMSet’], ReadRequirement is mandatory

based on:

4.22.7.6 OwningStorageResource

Purpose

Required only when NVMePoolType = EnduranceGroup. Not required for NVM Sets.

Test Condition / Requirement

if NVMeProperties/NVMePoolType is Equal to [‘EnduranceGroup’], ReadRequirement is Mandatory

based on:

4.22.7.7 DataUnitsRead

Purpose

Required only when NVMePoolType = EnduranceGroup. Otherwise, do not implement.

Test Condition / Requirement

if NVMeProperties/NVMePoolType is Equal to [‘EnduranceGroup’], ReadRequirement is Mandatory

based on:

4.22.7.8 DataUnitsWritten

Purpose

Required only when NVMePoolType = EnduranceGroup. Otherwise, do not implement.

Test Condition / Requirement

if NVMeProperties/NVMePoolType is Equal to [‘EnduranceGroup’], ReadRequirement is Mandatory

based on:

4.22.7.9 EnduranceEstimate

Purpose

Required only when NVMePoolType = EnduranceGroup. Otherwise, do not implement.

Test Condition / Requirement

if NVMeProperties/NVMePoolType is Equal to [‘EnduranceGroup’], ReadRequirement is Mandatory

based on:

4.22.7.10 ErrorInformationLogEntryCount

Purpose

Required only when NVMePoolType = EnduranceGroup. Otherwise, do not implement.

Test Condition / Requirement

if NVMeProperties/NVMePoolType is Equal to [‘EnduranceGroup’], ReadRequirement is Mandatory

based on:

4.22.7.11 HostReadCommandCount

Purpose

Required only when NVMePoolType = EnduranceGroup. Otherwise, do not implement.

Test Condition / Requirement

if NVMeProperties/NVMePoolType is Equal to [‘EnduranceGroup’], ReadRequirement is Mandatory

based on:

4.22.7.12 HostWriteCommandCount

Purpose

Required only when NVMePoolType = EnduranceGroup. Otherwise, do not implement.

Test Condition / Requirement

if NVMeProperties/NVMePoolType is Equal to [‘EnduranceGroup’], ReadRequirement is Mandatory

based on:

4.22.7.13 MediaAndDataIntegrityErrorCount

Purpose

Required only when NVMePoolType = EnduranceGroup. Otherwise, do not implement.

Test Condition / Requirement

if NVMeProperties/NVMePoolType is Equal to [‘EnduranceGroup’], ReadRequirement is Mandatory

based on:

4.22.7.14 MediaUnitsWritten

Purpose

Required only when NVMePoolType = EnduranceGroup. Otherwise, do not implement.

Test Condition / Requirement

if NVMeProperties/NVMePoolType is Equal to [‘EnduranceGroup’], ReadRequirement is Mandatory

based on:

4.22.7.15 PercentUsed

Purpose

Required only when NVMePoolType = EnduranceGroup. Otherwise, do not implement.

Test Condition / Requirement

if NVMeProperties/NVMePoolType is Equal to [‘EnduranceGroup’], ReadRequirement is Mandatory

based on:

4.22.7.16 PredictedMediaLifeLeftPercent

Purpose

Required only when NVMePoolType = EnduranceGroup. Otherwise, do not implement.

Test Condition / Requirement

if NVMeProperties/NVMePoolType is Equal to [‘EnduranceGroup’], ReadRequirement is Mandatory

based on:

4.22.7.17 EnduranceGroupIdentifier

Purpose

Required only when NVMePoolType = NVMSet. Otherwise, do not implement.

Test Condition / Requirement

if NVMeProperties/NVMePoolType is Equal to [‘NVMSet’], ReadRequirement is Mandatory

based on:

4.22.7.18 OptimalWriteSizeBytes

Purpose

Required only when NVMePoolType = NVMSet. Otherwise, do not implement.

Test Condition / Requirement

if NVMeProperties/NVMePoolType is Equal to [‘NVMSet’], ReadRequirement is Mandatory

based on:

4.22.7.19 Random4kReadTypicalNanoSeconds

Purpose

Required only when NVMePoolType = NVMSet. Otherwise, do not implement.

Test Condition / Requirement

if NVMeProperties/NVMePoolType is Equal to [‘NVMSet’], ReadRequirement is Mandatory

based on:

4.22.7.20 SetIdentifier

Purpose

Required only when NVMePoolType = NVMSet. Otherwise, do not implement.

Test Condition / Requirement

if NVMeProperties/NVMePoolType is Equal to [‘NVMSet’], ReadRequirement is Mandatory

based on:

4.22.7.21 UnallocatedNVMNamespaceCapacityBytes

Purpose

Required only when NVMePoolType = NVMSet. Otherwise, do not implement.

Test Condition / Requirement

if NVMeProperties/NVMePoolType is Equal to [‘NVMSet’], ReadRequirement is Mandatory

based on:

4.23 SwordfishNVMeEBOF profile

4.23.1 Summary Information

4.23.2 Protocol Information

No protocol information defined in this profile.

4.23.3 Other Registry Information

4.23.4 Required profiles

The SwordfishNVMeEBOF profile depends upon the profiles listed in Table 65 .

Profile Version Conditions
SwordfishFabricAccessRightsforEthernet 1.0.2
SwordfishFabricConnectivityRightsforEthernet 1.0.2
SwordfishManagementController 1.0.2
SwordfishNVMeEthernetAttach 1.2.1

Table 65: Required profiles for SwordfishNVMeEBOF

None defined. ### Resource Manipulation

None defined. ### Conditional Requirements

None defined.

4.24 SwordfishNVMeEthernetAttach profile

4.24.1 Summary Information

4.24.2 Protocol Information

No protocol information defined in this profile.

4.24.3 Other Registry Information

4.24.4 Required profiles

The SwordfishNVMeEthernetAttach profile depends upon the profiles listed in Table 66 .

Profile Version Conditions
SwordfishNVMeDrive 1.2.1

Table 66: Required profiles for SwordfishNVMeEthernetAttach

The SwordfishNVMeEthernetAttach profile relies on the resources listed in Table 67

Resource Purpose
NetworkAdapterCollection
Members MinCount = 1
NetworkDeviceFunctionCollection
Members MinCount = 1
PortCollection
Members MinCount = 1
StorageController
NVMeControllerProperties
   NVMeControllerAttributes
   SupportsTrafficBasedKeepAlive Required when controller type is Admin or IO. Do not implement for Discovery controllers.
PCIeInterface This property is only required for implementations that connect via PCIe - do not implement for Ethernet-Attach drives.
Volume
OptimumIOSizeBytes
NetworkAdapter
Controllers
   ControllerCapabilities
   DataCenterBridging
      Capable
   NetworkDeviceFunctionCount
   NetworkPortCount
   VirtualizationOffload This property is required for implementations that connect via PCIe (e.g., do not implement for Ethernet-Attach drives).
   FirmwarePackageVersion
   Links
   NetworkDeviceFunctions
   Ports
   Location This property is recommended as ‘Do not implement’ for this device and protocol type.
Description
Id
Location This property is recommended as ‘Do not implement’ for this device and protocol type.
Manufacturer
Model
Name
NetworkDeviceFunctions
PartNumber
Ports
SKU
SerialNumber
NetworkDeviceFunction
AssignablePhysicalNetworkPorts
Description
DeviceEnabled
Ethernet
   MACAddress
   MTUSize
   MTUSizeMaximum
   PermanentMACAddress
FibreChannel This property is recommended as ‘Do not implement’ for this device and protocol type.
InfiniBand This property is recommended as ‘Do not implement’ for this device and protocol type.
Links
   Endpoints
   EthernetInterface This property is recommended as ‘Do not implement’ for this device and protocol type.
   PhysicalNetworkPortAssignment
Name
NetDevFuncCapabilities
NetDevFuncType
iSCSIBoot This property is recommended as ‘Do not implement’ for this device and protocol type.
Port
CurrentSpeedGbps
Description
Ethernet
   FlowControlConfiguration
   FlowControlStatus
   EEEEnabled
   WakeOnLANEnabled
FibreChannel This property is recommended as ‘Do not implement’ for this device and protocol type.
GenZ This property is recommended as ‘Do not implement’ for this device and protocol type.
Id
LinkConfiguration
   AutoSpeedNegotiationCapable
   AutoSpeedNegotiationEnabled
   CapableLinkSpeedGbps
   ConfiguredNetworkLinks
   ConfiguredLinkSpeedGbps
   ConfiguredWidth
LinkNetworkTechnology
LinkState
LinkStatus
Location This property is recommended as ‘Do not implement’ for this device and protocol type.
MaxFrameSize
MaxSpeedGbps
Name
PortId This property is recommended as ‘Do not implement’ for this device and protocol type.
PortMedium
PortProtocol This property is recommended as ‘Do not implement’ for this device and protocol type.
PortType This property is recommended as ‘Do not implement’ for this device and protocol type.
SignalDetected
Width

Table 67: Related resources for SwordfishNVMeEthernetAttach

4.24.6 Resource Manipulation

The SwordfishNVMeEthernetAttach profile requires the resource manipulations listed in Table 68

Resource Read Write Create Delete Update
NetworkAdapterCollection M
Members M
NetworkDeviceFunctionCollection M
Members M
PortCollection M
Members M
StorageController M
NVMeControllerProperties M
   NVMeControllerAttributes M
   SupportsTrafficBasedKeepAlive M/C
PCIeInterface DNI
Volume M
OptimumIOSizeBytes M
NetworkAdapter M
Controllers M
   ControllerCapabilities M
   DataCenterBridging M
      Capable M
   NetworkDeviceFunctionCount M
   NetworkPortCount M
   VirtualizationOffload DNI
   FirmwarePackageVersion M
   Links M
   NetworkDeviceFunctions M
   Ports M
   Location DNI
Description M
Id M
Location DNI
Manufacturer M
Model M
Name M
NetworkDeviceFunctions M
PartNumber M
Ports M
SKU M
SerialNumber M
NetworkDeviceFunction M
AssignablePhysicalNetworkPorts M
Description M
DeviceEnabled M
Ethernet M
   MACAddress M
   MTUSize M
   MTUSizeMaximum M
   PermanentMACAddress M
FibreChannel DNI
InfiniBand DNI
Links M
   Endpoints M
   EthernetInterface DNI
   PhysicalNetworkPortAssignment M
Name M
NetDevFuncCapabilities M
NetDevFuncType M
iSCSIBoot DNI
Port M
CurrentSpeedGbps M
Description M
Ethernet M
   FlowControlConfiguration M
   FlowControlStatus M
   EEEEnabled M
   WakeOnLANEnabled M
FibreChannel DNI
GenZ DNI
Id M
LinkConfiguration M
   AutoSpeedNegotiationCapable M
   AutoSpeedNegotiationEnabled M
   CapableLinkSpeedGbps M
   ConfiguredNetworkLinks M
   ConfiguredLinkSpeedGbps M
   ConfiguredWidth M
LinkNetworkTechnology M
LinkState M
LinkStatus M
Location DNI
MaxFrameSize M
MaxSpeedGbps M
Name M
PortId DNI
PortMedium M
PortProtocol DNI
PortType DNI
SignalDetected M
Width M

Table 68: Resource manipulations for SwordfishNVMeEthernetAttach

4.24.7 Conditional Requirements

4.24.7.1 SupportsTrafficBasedKeepAlive

Purpose

Required when controller type is Admin or IO. Do not implement for Discovery controllers.

Test Condition / Requirement

if NVMeControllerProperties/ControllerType is Equal to [‘Admin’, ‘IO’], ReadRequirement is Mandatory

based on:

4.25 SwordfishNVMeFrontEnd profile

4.25.1 Summary Information

4.25.2 Protocol Information

4.25.3 Other Registry Information

4.25.4 Required profiles

The SwordfishNVMeFrontEnd profile depends upon the profiles listed in Table 69 .

Profile Version Conditions
CoSDiscovery 1.2.0 Required Either SwordfishDiscovery or SwordfishCoSDiscovery must be supported.
SwordfishDiscovery 1.1.4 Required Either SwordfishDiscovery or SwordfishCoSDiscovery must be supported.

Table 69: Required profiles for SwordfishNVMeFrontEnd

The SwordfishNVMeFrontEnd profile relies on the resources listed in Table 70

Resource Purpose
ServiceRoot
Chassis
StorageCollection
Members MinCount = 1
VolumeCollection
StorageControllerCollection
Members MinCount = 1
Assembly
BinaryDataURI
Chassis
NetworkAdapters
Storage
ACTIONS
SetEncryptionKey() This property is recommended as ‘Do not implement’ for this device and protocol type.
Controllers Controllers are required for Storage instances representing the NVMeFrontEnd. They are not required for Storage instances representing embedded, or back-end NVMe devices.
Description Shall be equal to [‘An NVM Express Subsystem is an NVMe device that contains one or more NVM Express controllers and may contain one or more namespaces.’]
Id
Identifiers
   DurableName
   DurableNameFormat
Links
   Enclosures This resource shall contain the link to the chassis with the Drive object.
   SimpleStorage This resource is recommended as ‘Do not implement’ for this device and protocol type.
Name
Status
   Health
   State Map the device’s concept of ’Enabled / Disabled / etc. to the state reflected by the NVM Subsystem. There aren’t NVMe specific properties to correspond; these should map from the underlying device’s state. This should reflect the NVMe portion of the device, not the non-NVMe characteristics.
   HealthRollup
StorageControllers This resource is recommended as ‘Do not implement’ for this device and protocol type. Use the ‘Controller’ resource instead.
StorageGroups This resource is recommended as ‘Do not implement’ for this device and protocol type. Note that this function has been deprecated and replaced by Connections in Fabrics.
Volumes
StorageController
Assembly This property is recommended as ‘Do not implement’ for this device and protocol type. This information is available in the Drive resource if needed.
AssetTag This property is recommended as ‘Do not implement’ for this device and protocol type. This information is available in the Drive resource if needed.
CacheSummary This property is recommended as ‘Do not implement’ for this device and protocol type.
ControllerRates This property is recommended as ‘Do not implement’ for this device and protocol type.
Description The Description must be set to the designated string when the ControllerType is Admin. There is a different specified value for IO and Discovery.

The Description must be set to the designated string when the ControllerType is Discovery. There is a different specified value for Admin and IO.

The Description must be set to the designated string when the ControllerType is IO. There is a different specified value for Admin and Discovery.
FirmwareVersion
Id
Links
   AttachedVolumes AttachedVolumes must be implemented when the ControllerType is IO. Do not implement when ControllerType is Discovery or Admin.
   NetworkDeviceFunctions
Location This resource is recommended as ‘Do not implement’ for this device and protocol type. Implemented in the ‘Drive’ object as ‘PhysicalLocation’.
Manufacturer Manufacturer must be implemented when the ControllerType is IO. It may be implemented for a Discovery controller. It is generally optional for an Admin controller, but should not be implemented when NVMeoF is supported.

Manufacturer must be implemented when the ControllerType is IO. It may be implemented for a Discovery controller. It is generally optional for an Admin controller, but should not be implemented when NVMeoF is supported.

Manufacturer must be implemented when the ControllerType is IO. It may be implemented for a Discovery controller. It is generally optional for an Admin controller, but should not be implemented when NVMeoF is supported.
Model Model must be implemented when the ControllerType is IO. It is recommended to implement when ControllerType is Admin, and may be implemented for a Discovery controller.

Model must be implemented when the ControllerType is IO. It is recommended to implement when ControllerType is Admin, and may be implemented for a Discovery controller.
SpeedGbps This resource is recommended as ‘Do not implement’ for this device and protocol type.
SKU This resource is recommended as ‘Do not implement’ for this device and protocol type.
Status
   Health
   State
SupportedControllerProtocols
SupportedDeviceProtocols This resource is recommended as ‘Do not implement’ for this device and protocol type.
NVMeControllerProperties
   ControllerType
   NVMeVersion NVMeVersion is required when the underlying NVMe implementation is revision 1.2 or higher.
   MaxQueueSize
   NVMeControllerAttributes
   ReportsNamespaceGranularity
   Supports128BitHostId Required when controller type is Admin or IO. Do not implement for Discovery controllers.
   SupportsReservations
   SupportsTrafficBasedKeepAlive Required when controller type is Admin or IO. Do not implement for Discovery controllers.
   NVMeSMARTCriticalWarnings
   MediaInReadOnly
   OverallSubsystemDegraded Required when controller type is Admin or IO. Do not implement for Discovery controllers.
   PMRUnreliable
   PowerBackupFailed Required when controller type is Admin or IO. Do not implement for Discovery controllers.
   SpareCapacityWornOut Required when controller type is Admin or IO. Do not implement for Discovery controllers.
Volume
BlockSizeBytes
Capacity
   Data
   AllocatedBytes
   ConsumedBytes
DisplayName
Description Shall be equal to [‘A Namespace is a quantity of non-volatile memory that may be formatted into logical blocks. When formatted, a namespace of size n is a collection of logical blocks with logical block addresses from 0 to (n-1). NVMe systems can support multiple namespaces.’]
Id
Identifiers
   DurableName
   DurableNameFormat
InitializeMethod
Links
   Controllers This resource shall contain links to the associated controllers.
LogicalUnitNumber This resource is recommended as ‘Do not implement’ for this device and protocol type.
Name
NVMeNamespaceProperties
   IsShareable
   NVMeVersion
   NamespaceFeatures
   SupportsDeallocatedOrUnwrittenLBError
   SupportsNGUIDReuse
   SupportsAtomicTransactionSize
   SupportsIOPerformanceHints
   SupportsThinProvisioning
   NamespaceId
   MetadataTransferredAtEndOfDataLBA
OptimumIOSizeBytes
ProvisioningPolicy Recommended to implement when device supports thin provisioning.
RAIDType
Status
   Health
   State
   HealthRollup This property is recommended as ‘Do not implement’ for this device and protocol type.
StorageGroups This resource is recommended as ‘Do not implement’ for this device and protocol type. Note that this function has been deprecated and replaced by Connections in Fabrics.
VolumeType This property is recommended as ‘Do not implement’ for this device and protocol type. It has been deprecated and replaced by RAIDType.
WriteCachePolicy

Table 70: Related resources for SwordfishNVMeFrontEnd

4.25.6 Resource Manipulation

The SwordfishNVMeFrontEnd profile requires the resource manipulations listed in Table 71

Resource Read Write Create Delete Update
ServiceRoot M
Chassis M
StorageCollection M
Members M
VolumeCollection M
StorageControllerCollection M
Members M
Assembly R
BinaryDataURI R
Chassis M
NetworkAdapters IfImp
Storage M
ACTIONS
SetEncryptionKey DNI
Controllers IfImp
Description M
Id M
Identifiers M
   DurableName M
   DurableNameFormat M
Links M
   Enclosures M
   SimpleStorage DNI
Name M
Status M
   Health M
   State M
   HealthRollup M
StorageControllers DNI
StorageGroups DNI
Volumes M
StorageController M
Assembly DNI
AssetTag DNI
CacheSummary DNI
ControllerRates DNI
Description M
FirmwareVersion M
Id M
Links M
   AttachedVolumes M/C M/C
   NetworkDeviceFunctions R
Location DNI
Manufacturer ???
Model R/C
SpeedGbps DNI
SKU DNI
Status M
   Health M
   State M
SupportedControllerProtocols M
SupportedDeviceProtocols DNI
NVMeControllerProperties M
   ControllerType M
   NVMeVersion IfImp
   MaxQueueSize M
   NVMeControllerAttributes M
   ReportsNamespaceGranularity R
   Supports128BitHostId M/C
   SupportsReservations M
   SupportsTrafficBasedKeepAlive M/C
   NVMeSMARTCriticalWarnings M
   MediaInReadOnly M
   OverallSubsystemDegraded M/C
   PMRUnreliable R
   PowerBackupFailed M/C
   SpareCapacityWornOut M/C
Volume M
BlockSizeBytes M
Capacity M
   Data M
   AllocatedBytes M
   ConsumedBytes M
DisplayName M
Description M
Id M
Identifiers M
   DurableName M
   DurableNameFormat M
InitializeMethod R
Links M
   Controllers M
LogicalUnitNumber DNI
Name M
NVMeNamespaceProperties M
   IsShareable M
   NVMeVersion M
   NamespaceFeatures M
   SupportsDeallocatedOrUnwrittenLBError M
   SupportsNGUIDReuse M
   SupportsAtomicTransactionSize M
   SupportsIOPerformanceHints M
   SupportsThinProvisioning M
   NamespaceId M
   MetadataTransferredAtEndOfDataLBA M
OptimumIOSizeBytes R
ProvisioningPolicy R
RAIDType M
Status M
   Health M
   State M
   HealthRollup DNI
StorageGroups DNI
VolumeType DNI
WriteCachePolicy R

Table 71: Resource manipulations for SwordfishNVMeFrontEnd

4.25.7 Conditional Requirements

4.25.7.1 Description

Purpose

The Description must be set to the designated string when the ControllerType is Admin. There is a different specified value for IO and Discovery.

Test Condition / Requirement

if NVMeControllerProperties/ControllerType is Equal to [‘Admin’], ReadRequirement is mandatory

based on:

Purpose

The Description must be set to the designated string when the ControllerType is Discovery. There is a different specified value for Admin and IO.

Test Condition / Requirement

if NVMeControllerProperties/ControllerType is Equal to [‘Discovery’], ReadRequirement is mandatory

based on:

Purpose

The Description must be set to the designated string when the ControllerType is IO. There is a different specified value for Admin and Discovery.

Test Condition / Requirement

if NVMeControllerProperties/ControllerType is Equal to [‘IO’], ReadRequirement is mandatory

based on:

4.25.7.2 AttachedVolumes

Purpose

AttachedVolumes must be implemented when the ControllerType is IO. Do not implement when ControllerType is Discovery or Admin.

Test Condition / Requirement

if ControllerType is Equal to [‘IO’], WriteRequirement is Mandatory, ReadRequirement is Mandatory

based on:

4.25.7.3 Manufacturer

Purpose

Manufacturer must be implemented when the ControllerType is IO. It may be implemented for a Discovery controller. It is generally optional for an Admin controller, but should not be implemented when NVMeoF is supported.

Test Condition / Requirement

if NVMeControllerProperties/ControllerType is Equal to [‘IO’], ReadRequirement is Mandatory

based on:

Purpose

Manufacturer must be implemented when the ControllerType is IO. It may be implemented for a Discovery controller. It is generally optional for an Admin controller, but should not be implemented when NVMeoF is supported.

Test Condition / Requirement

if NVMeControllerProperties/ControllerType is Equal to [‘Discovery’], ReadRequirement is Recommended

based on:

Purpose

Manufacturer must be implemented when the ControllerType is IO. It may be implemented for a Discovery controller. It is generally optional for an Admin controller, but should not be implemented when NVMeoF is supported.

Test Condition / Requirement

if NVMeControllerProperties/ControllerType is Equal to [‘Admin’], ReadRequirement is None

based on:

4.25.7.4 Model

Purpose

Model must be implemented when the ControllerType is IO. It is recommended to implement when ControllerType is Admin, and may be implemented for a Discovery controller.

Test Condition / Requirement

if NVMeControllerProperties/ControllerType is Equal to [‘IO’], ReadRequirement is Mandatory

based on:

Purpose

Model must be implemented when the ControllerType is IO. It is recommended to implement when ControllerType is Admin, and may be implemented for a Discovery controller.

Test Condition / Requirement

if NVMeControllerProperties/ControllerType is Equal to [‘Discovery’], ReadRequirement is Recommended

based on:

4.25.7.5 Supports128BitHostId

Purpose

Required when controller type is Admin or IO. Do not implement for Discovery controllers.

Test Condition / Requirement

if NVMeControllerProperties/ControllerType is Equal to [‘Admin’, ‘IO’], ReadRequirement is Mandatory

based on:

4.25.7.6 SupportsTrafficBasedKeepAlive

Purpose

Required when controller type is Admin or IO. Do not implement for Discovery controllers.

Test Condition / Requirement

if NVMeControllerProperties/ControllerType is Equal to [‘Admin’, ‘IO’], ReadRequirement is Mandatory

based on:

4.25.7.7 OverallSubsystemDegraded

Purpose

Required when controller type is Admin or IO. Do not implement for Discovery controllers.

Test Condition / Requirement

if NVMeControllerProperties/ControllerType is Equal to [‘Admin’, ‘IO’], ReadRequirement is Mandatory

based on:

4.25.7.8 PowerBackupFailed

Purpose

Required when controller type is Admin or IO. Do not implement for Discovery controllers.

Test Condition / Requirement

if NVMeControllerProperties/ControllerType is Equal to [‘Admin’, ‘IO’], ReadRequirement is Mandatory

based on:

4.25.7.9 SpareCapacityWornOut

Purpose

Required when controller type is Admin or IO. Do not implement for Discovery controllers.

Test Condition / Requirement

if NVMeControllerProperties/ControllerType is Equal to [‘Admin’, ‘IO’], ReadRequirement is Mandatory

based on:

4.26 SwordfishNVMeoF profile

4.26.1 Summary Information

4.26.2 Protocol Information

4.26.3 Other Registry Information

4.26.4 Required profiles

The SwordfishNVMeoF profile depends upon the profiles listed in Table 72 .

Profile Version Conditions
SwordfishBlockProvisioning 1.3.0
SwordfishDiscovery 1.1.4
SwordfishFabricAccessRights 1.0.2 Required Either SwordfishFabricAccessRightsforEthernet or SwordfishFabricAccessRights must be supported.
SwordfishFabricAccessRightsforEthernet 1.0.2 Required Either SwordfishFabricAccessRightsforEthernet or SwordfishFabricAccessRights must be supported.
SwordfishFabricConnectivityRightsforEthernet 1.0.2 Required Either SwordfishFabricConnectivityRightsforEthernet or SwordfishFabricConnectivityRightsforRDMA must be supported.
SwordfishFabricConnectivityRightsforRDMA 1.0.2 Required Either SwordfishFabricConnectivityRightsforEthernet or SwordfishFabricConnectivityRightsforRDMA must be supported.

Table 72: Required profiles for SwordfishNVMeoF

The SwordfishNVMeoF profile relies on the resources listed in Table 73

Resource Purpose
ServiceRoot
Storage
Storage
Controllers
StorageController
Manufacturer Manufacturer should not be implemented when NVMeoF is supported.

Table 73: Related resources for SwordfishNVMeoF

4.26.6 Resource Manipulation

The SwordfishNVMeoF profile requires the resource manipulations listed in Table 74

Resource Read Write Create Delete Update
ServiceRoot M
Storage M
Storage M
Controllers M
StorageController M
Manufacturer DNI

Table 74: Resource manipulations for SwordfishNVMeoF

4.26.7 Conditional Requirements

None defined.

4.27 SwordfishPCIeJBOF profile

4.27.1 Summary Information

4.27.2 Protocol Information

No protocol information defined in this profile.

4.27.3 Other Registry Information

4.27.4 Required profiles

The SwordfishPCIeJBOF profile depends upon the profiles listed in Table 75 .

Profile Version Conditions
SwordfishManagementController 1.0.2
SwordfishNVMeDrive 1.3.0

Table 75: Required profiles for SwordfishPCIeJBOF

None defined. ### Resource Manipulation

None defined. ### Conditional Requirements

None defined.