Port management resources
You can get a list of all ports, information for a specific port, and update a port in Storage Advisor.
Listing ports
You can list all the ports in a storage system.
GET https://ipAddress/v1/storage-systems/storageSystemId/storage-ports
Use the storage system ID as the storageSystemId.
Not applicable.
The response body structure is shown below:
{ "resources": [ // For Fibre port { "storagePortId": "", "storageSystemId": "", "wwn": "", "attributes": [ "", "", "", "" ], "speed": "", "type": "", "loopId": "", "topology": "", "securitySwitchEnabled": , "vsmPort": , "iscsiPortInformation":, "t10PiStatus": }, // For iSCSI port { "storagePortId": "", "storageSystemId": "", "wwn": null, "attributes": [ "", "", "", "" ], "speed": "", "type": "", "loopId": "", "topology": "", "securitySwitchEnabled": , "isVsmPort": , "t10PiStatus":, "iscsiPortInformation": { "portIscsiName: "", "macAddress": "", "vlanUse": true, "vlanId": , "ipv4Information": { "address": "", "subnetMask": "", "defaultGateway": "" }, "ipv6Enabled": , "ipv6Information": { "linklocalAddressingMode": "", "linklocalAddress": "", "globalAddressingMode": "", "globalAddress": "", "defaultGateway": "" }, "tcpPort": , "selectiveAck": , "delayedAck": , "windowSizeInKBytes": , "mtuSizeInBytes": , "keepAliveTimerInSec": , "isnsInformation": { "isnsServerIpAddress": "", "isnsServerPort": , } } }, ... ], "total": , "nextToken": }
Parameter |
Type |
Description |
storagePortId | String | ID of the storage port. |
storageSystemId | String | ID of the storage system. |
wwn | String | World wide name of the storage port. |
attributes | List |
Attribute on the port. Valid values: TARGET_PORT, MCU_INITIATOR_PORT,RCU_TARGET_PORT, EXTERNAL_INITIATOR_PORT. All ports are universal ports. |
speed | String | Speed of the port, such as 1G, 2G, 4G, 8G, 10G, 16G, 32G, or AUTO. |
type | String | Type of port, such as FIBRE, SCSI, ISCSI, ENAS, FICON, ESCON, FCOE, HNASU, or HNASS. |
loopId | String | For disks that are connected using Fibre Channel-Arbitrated Loop (FC-AL or FC), the loop ID identifies the disk within its loop, and is included in the disk name, which uniquely identifies the disk for the entire system. The loop ID is a hexadecimal number from 0x01 to 0xEF.
For iSCSI port, the loop ID is always 0x00. |
topology | String | Topology of the port, such as the following.
For Fibre port:
For iSCSI port:
|
securitySwitchEnabled | Boolean | Security status of the port. If the status is TRUE, security is enabled on the port. |
vsmPort | Boolean | Whether the port is being used by a VSM. |
iscsiPortInformation | Object | Displays port information related to iSCSI.
NULL for FC port. |
portIscsiName | String | Displays the iSCSI port name. |
macAddress | String | Displays the MAC address of the port.
NULL if the port does not support outputting the MAC address. |
vlanUse | Boolean | Displays whether VLAN is enabled for this port.
|
vlanId | Number | Displays VLAN ID in decimal.
NULL if VLAN ID is not set (vlanUse is FALSE). |
ipv4Information | Object | Displays information related to IPv4. |
address | String | Displays the IPv4 address. |
subnetMask | String | Displays the IPv4 subnet address. |
defaultGateway | String | Displays the IPv4 address of the gateway to the user for iSCSI communication. |
ipv6Enabled | Boolean | Displays whether the port works with IPv6 address.
|
ipv6Information | Object | Displays information related to IPv6. |
linklocalAddressingMode | Enum | Displays the IPv6 link local addressing mode.
|
linklocalAddress | String | Displays the IPv6 link local address. |
globalAddressingMode | Enum | Displays the IPv6 global addressing mode.
|
globalAddress | String | Displays the IPv6 global address. |
tcpPort | Number | Displays the TCP port number for iSCSI communication.
The value is between 1 and 65535. |
selectiveAck | Boolean | Displays whether the selective ACK mode is enabled.
|
delayedAck | Boolean | Displays whether the delayed ACK mode is enabled.
|
windowSizeInKBytes | Number | Displays the value of the window size for iSCSI communication.
The value is in {64, 128, 256, 512, 1024} [KiB] |
mtuSizeInBytes | Number | Displays the value of MTU for iSCSI communication.
The value is in {1500/4500/900} [Byte] |
keepAliveTimerInSec | Number | Displays the value of the keep-alive timer for iSCSI communication.
The value is between 30 and 64800 [s]. |
isnsServerInformation | Object | Displays the iSNS server information.
NULL if iSNS server mode is disabled for this port. |
isnsServerIpAddress | String | Displays the address of the iSNS server.
The format is IPv4 or IPv6. |
isnsServerPort | Number | Displays the TCP port number of the iSNS server.
The value is between 1 and 65535. |
t10PiStatus | String | T10PI status of the port. For Fibre Port, valid values are:
|
total | Long | Total number of resources. |
nextToken | String | The API will return up to 100 resources with one call. nextToken is used for pagination when there are more than 100 resources in the system. The token is included in the list of resources. To retrieve the next list of resources, append a question mark (?) and "nextToken= ", and then the token. Example:
https://sa_server/v1/storage-systems/serial/disks?nextToken= cXVlcnlBbmRGZXRjaDsxOzEyMTM6Q08yc2ZIRlhTTUNoSXVYNlFPUS1jZzswOw==
|
Status code |
HTTP name |
Description |
200 | OK | Success. |
401 | Unauthorized | The operation is not authorized. |
403 | Forbidden | The server failed to authenticate the request. |
404 | Not found | The specified resource does not exist. |
https://172.17.64.115/v1/storage-systems/410209/storage-ports
{ "resources": [ // For Fibre port { "storagePortId": "CL1-D", "storageSystemId": "410209", "wwn": "50060E8012272F03", "attributes": [ "TARGET_PORT", "MCU_INITIATOR_PORT", "RCU_TARGET_PORT", "EXTERNAL_INITIATOR_PORT" ], "speed": "AUTO", "type": "FIBRE", "loopId": "AC", "topology": "FABRIC_ON_POINT_TO_POINT", "securitySwitchEnabled": true "vsmPort": false "iscsiPortInformation": null "t10PiStatus": "ENABLED" }, // For iSCSI port { "storagePortId": "CL4-B", "storageSystemId": "420209", "wwn": null, "attributes": [ "TARGET_PORT", "MCU_INITIATOR_PORT", "RCU_TARGET_PORT", "EXTERNAL_INITIATOR_PORT" ], "speed": "10G", "type": "ISCSI", "loopId": "0x00", "topology": "ISCSI", "securitySwitchEnabled": true, "isVsmPort": false, "t10PiStatus": null "iscsiPortInformation": { "portIscsiName: "iqn.1994-04.com.example:rsd.h8s.i.125f77.4b", "macAddress": "00:1f:67:af:c1:0d", "vlanUse": true, "vlanId": 0, "ipv4Information": { "address": "192.168.116.237", "subnetMask": "255.255.0.0", "defaultGateway": "0.0.0.0" }, "ipv6Enabled": true, "ipv6Information": { "linklocalAddressingMode": "AUTO", "linklocalAddress": "fe80::", "globalAddressingMode": "MANUAL", "globalAddress": "::", "defaultGateway": "::" }, "tcpPort": 0, "selectiveAck": true, "delayedAck": true, "windowSizeInKBytes": 64, "mtuSizeInBytes": 1500, "keepAliveTimerInSec": 0, "isnsInformation": { "isnsServerIpAddress": "", "isnsServerPort": 0, } } }, } ... ], "total": 16, "nextToken": null }
Updating ports
You can modify the port configuration settings for a specific storage port, such as topology, loop ID, security, and speed. For VSP G1000, VSP G1500, or VSP F1500 storage systems you can also change the port or role attributes.
POST https://ipAddress/v1/storage-systems/storageSystemId/storage-ports/storagePortId
Use the storage system ID as the storageSystemId.
Use the storage port ID as the storagePortId.
The request body structure is shown below:
For updating a FC port:
{ "topology":" " , "loopId":" ", "securitySwitchEnabled":" ", "speed":" ", "attribute":" " }
For updating an iSCSI port:
{ "securitySwitchEnabled":"", "speed":"", "attribute":" ", "iscsiPortInformation": { "ipv6Enabled": true, "ipv4Information": { "address": "", "subnetMask": "", "defaultGateway": "" }, "ipv6Information": { "linklocalAddressingMode": "", "linklocalAddress": "", "globalAddressingMode": "", "globalAddress": "", "defaultGateway": "" } } }
Parameter |
Required |
Type |
Description |
topology | Yes | String | The topology of the port:
Must be NULL for iSCSI port. |
loopId | No | String | For disks that are connected using Fibre Channel-Arbitrated Loop (FC-AL or FC), the loop ID identifies the disk within its loop, and is included in the disk name, which uniquely identifies the disk for the entire system. The loop ID is a hexadecimal number from 0x01 to 0xEF.
Must be NULL for iSCSI port. |
securitySwitchEnabled | No | Boolean | Security status of the port. If the status is TRUE, security is enabled on the port. |
speed | No | String | The speed of the port. Valid values: 1G, 2G, 4G, 8G, 10G, 16G, 32G, or AUTO.
You cannot specify 32G for a VSP G1000, VSP G1500, or VSP F1500 storage system. |
attribute | No | String | Port attribute. Valid values: TARGET_PORT,
RCU_TARGET_PORT,EXTERNAL_INITAITOR_PORT, MCU_INITIATOR_PORT. For VSP Gx00 and Fx00, you cannot specify this parameter. It must be NULL for these models. |
iscsiPortInformation | No | Object | Updates iSCSI port information.
Must be NULL for FC port. |
ipv6Enabled | No | Boolean | Updates whether the port works with IPv6.
|
ipv4Information | No | Object | Specify if updating the IPv4 settings.
If NULL is specified, the IPv4 settings do not change. |
address | No | String | Updates the IPv4 address. |
subnetMask | No | String | Updates the IPv4 subnet mask. |
defaultGateway | No | String | Updates the IPv4 address of the gateway for iSCSI communication. |
ipv6Information | No | Object | Specify if updating the IPv6 settings.
If NULL is specified, IPv6 settings are not changed. |
linklocalAddressingMode | No | Enum | Updates the IPv6 link local addressing mode.
|
linklocalAddress | No | String | Updates the IPv6 link local address.
Must be NULL if the addressing mode is AUTO. Must be specified if the addressing mode is MANUAL. |
globalAddressingMode | No | Enum | Updates the IPv6 global addressing mode.
|
globalAddress | No | String | Updates the IPv6 global address.
Must be NULL if the addressing mode is AUTO. Must be specified if the addressing mode is MANUAL. |
defaultGateway | No | String | Updates the IPv6 address of the gateway for iSCSI communication. |
The response body structure is shown below:
{ "jobId": "", "title": { "text": "", "messageCode": "", "parameters": { } }, "user": "", "status": "", "startDate": , "endDate": , "parentJobId": , "reports": [ ], "links": [ { "rel": "_self", "href": "/v1/jobs/jobId" } ], "tags": [ ], "isSystem": }
Parameter | Type | Description |
jobId | String | ID of the job. |
text | String | Title of the task that is in progress. |
messageCode | String | ID of the message. |
parameters | Object | List of parameters and the values, as captured in the job message. |
user | String | User who initiated the request. |
status | String | Status of the job:In_progress,Success,Success_With_Errors, orFailed. |
startDate | Long | Start date and time of the job (in Epoch time format). |
endDate | Long | End date and time of the job (in Epoch time format). |
parentJobId | String | ID of the job that spawned this job. If there is no parent job, this value is null. |
reports | List | Messages associated with this job. |
rel | String | Indicates the type of link for the href parameter. If the value is _self, it identifies a resource equivalent to the containing element. |
href | String | URL of this job. |
tags | Set | Any tags applied to this job. |
isSystem | Boolean | Whether or not a system or a user has created a job. If the job is generated by a system, the system automatically sets it to true. If a user generates a job, the system sets it to false. |
Status code |
HTTP name |
Description |
201 | Created | The server has started the operation. |
202 | Accepted | The request has been accepted for processing, but the processing has not been completed. |
401 | Unauthorized | The operation is not authorized. |
403 | Forbidden | The server failed to authenticate the request. |
404 | Not found | The specified resource does not exist. |
https://172.17.64.115/v1/storage-systems/440084/storage-ports/storagePortId
For updating a FC port:
{ "topology": "FABRIC_ON_POINT_TO_POINT" "loopId": "EF", "securitySwitchEnabled": true, "speed": "AUTO" "attribute":"MCU_INITIATOR_PORT" }
For updating an iSCSI port:
{ "securitySwitchEnabled": true, "speed":"10G", "attribute":"TARGET_PORT", "iscsiPortInformation": { "ipv6Enabled": true, "ipv4Information": { "address": "192.168.116.237", "subnetMask": "255.255.0.0", "defaultGateway": "0.0.0.0" }, "ipv6Information": { "linklocalAddressingMode": "AUTO", "linklocalAddress": "fe80::", "globalAddressingMode": "AUTO", "globalAddress": "::", "defaultGateway": "::" } } }
Getting port login information
GET https://ipAddress/v1/storage-systems/storageSystemId/ports-login-information
Use the storage system ID as the storageSystemId.
Not applicable.
{ "resources": [ { "storageSystemId": "", "storagePortId": "", "type": "", "loginWwn": "", "loginIscsiName": "" }, ], "total": , "nextToken": }
Parameter |
Type |
Description |
storagePortId | String | ID of the storage port. |
storageSystemId | String | ID of the storage system. |
loginWwn | String | Login name for the WWN Fiber port. |
loginIscsiName | String | Login name for the iSCSI port. |
type | String | Type of port, such as FIBRE, SCSI, ISCSI, ENAS, FICON, ESCON, FCOE, HNASU, or HNASS. |
total | Long | Total number of resources. |
nextToken | String | The API will return up to 100 resources with one call. nextToken is used for pagination when there are more than 100 resources in the system. The token is included in the list of resources. To retrieve the next list of resources, append a question mark (?) and "nextToken= ", and then the token. Example:
https://sa_server/v1/storage-systems/serial/disks?nextToken= cXVlcnlBbmRGZXRjaDsxOzEyMTM6Q08yc2ZIRlhTTUNoSXVYNlFPUS1jZzswOw==
|
Status code |
HTTP name |
Description |
200 | OK | Success |
401 | Unauthorized | The operation is not authorized. |
403 | Forbidden | The server failed to authenticate the request. |
404 | Not found | The specified resource does not exist. |
https://172.17.64.115/v1/storage-systems/410209/ports-login-information
{ "resources": [ { "storageSystemId": "410209", "storagePortId": "CL7-B", "type": "FIBRE", "loginWwn": "100000051EEE059C", "loginIscsiName": null }, { "storageSystemId": "410209", "storagePortId": "CL1-B", "type": "FIBRE", "loginWwn": "50060E80123ABF05", "loginIscsiName": null }, { "storageSystemId": "410209", "storagePortId": "CL5-B", "type": "FIBRE", "loginWwn": "50060E801227E135", "loginIscsiName": null }, { "storageSystemId": "410209", "storagePortId": "CL3-B", "type": "FIBRE", "loginWwn": "50060E80123ABF25", "loginIscsiName": null } ], "total": 4, "nextToken": null }
Listing a port
You can list port information for a storage port.
GET https://ipAddress/v1/storage-systems/storageSystemId/storage-ports/storagePortId
Use the storage system ID as the storageSystemId.
Use the storage port ID as the storagePortId.
Not applicable.
The response body structure is shown below:
{ "resources": [ // For Fibre port { "storagePortId": "", "storageSystemId": "", "wwn": "", "attributes": [ "", "", "", "" ], "speed": "", "type": "", "loopId": "", "topology": "", "securitySwitchEnabled": , "vsmPort": "iscsiPortInformation": null "t10PiStatus": }, // For iSCSI port { "storagePortId": "", "storageSystemId": "", "wwn": null, "attributes": [ "", "", "", "" ], "speed": "", "type": "", "loopId": "", "topology": "", "securitySwitchEnabled": , "isVsmPort": , "t10PiStatus":, "iscsiPortInformation": { "portIscsiName: "", "macAddress": "", "vlanUse": true, "vlanId": , "ipv4Information": { "address": "", "subnetMask": "", "defaultGateway": "" }, "ipv6Enabled": true, "ipv6Information": { "linklocalAddressingMode": "", "linklocalAddress": "", "globalAddressingMode": "", "globalAddress": "", "defaultGateway": "" }, "tcpPort": 0, "selectiveAck": true, "delayedAck": true, "windowSizeInKBytes": , "mtuSizeInBytes": , "keepAliveTimerInSec": , "isnsInformation": { "isnsServerIpAddress": "", "isnsServerPort": 0, } } }, ... ], "total": , "nextToken": }
Parameter |
Type |
Description |
storagePortId | String | ID of the storage port. |
storageSystemId | String | ID of the storage system. |
wwn | String | World wide name of the storage port. |
attributes | List |
Attribute on the port. Valid values: TARGET_PORT, MCU_INITIATOR_PORT,RCU_TARGET_PORT, EXTERNAL_INITIATOR_PORT. All ports are universal ports. |
speed | String | Speed of the port, such as 1G, 2G, 4G, 8G, 10G, 16G, 32G, or AUTO. |
type | String | Type of port, such as FIBRE, SCSI, ISCSI, ENAS, FICON, ESCON, FCOE, HNASU, or HNASS. |
loopId | String | For disks that are connected using Fibre Channel-Arbitrated Loop (FC-AL or FC), the loop ID identifies the disk within its loop, and is included in the disk name, which uniquely identifies the disk for the entire system. The loop ID is a hexadecimal number from 0x01 to 0xEF.
For iSCSI port, the loop ID is always 0x00. |
topology | String | Topology of the port, such as the following.
For Fibre port:
For iSCSI port:
|
securitySwitchEnabled | Boolean | Security status of the port. If the status is TRUE, security is enabled on the port. |
vsmPort | Boolean | Whether the port is being used by a VSM. |
iscsiPortInformation | Object | Displays port information related to iSCSI.
NULL for FC port. |
portIscsiName | String | Displays the iSCSI port name. |
macAddress | String | Displays the MAC address of the port.
NULL if the port does not support outputting the MAC address. |
vlanUse | Boolean | Displays whether VLAN is enabled for this port.
|
vlanId | Number | Displays VLAN ID in decimal.
NULL if VLAN ID is not set (vlanUse is FALSE). |
ipv4Information | Object | Displays information related to IPv4. |
address | String | Displays the IPv4 address. |
subnetMask | String | Displays the IPv4 subnet address. |
defaultGateway | String | Displays the IPv4 address of the gateway to the user for iSCSI communication. |
ipv6Enabled | Boolean | Displays whether the port works with IPv6 address.
|
ipv6Information | Object | Displays information related to IPv6. |
linklocalAddressingMode | Enum | Displays the IPv6 link local addressing mode.
|
linklocalAddress | String | Displays the IPv6 link local address. |
globalAddressingMode | Enum | Displays the IPv6 global addressing mode.
|
globalAddress | String | Displays the IPv6 global address. |
tcpPort | Number | Displays the TCP port number for iSCSI communication.
The value is between 1 and 65535. |
selectiveAck | Boolean | Displays whether the selective ACK mode is enabled.
|
delayedAck | Boolean | Displays whether the delayed ACK mode is enabled.
|
windowSizeInKBytes | Number | Displays the value of the window size for iSCSI communication.
The value is in {64, 128, 256, 512, 1024} [KiB] |
mtuSizeInBytes | Number | Displays the value of MTU for iSCSI communication.
The value is in {1500/4500/900} [Byte] |
keepAliveTimerInSec | Number | Displays the value of the keep-alive timer for iSCSI communication.
The value is between 30 and 64800 [s]. |
isnsServerInformation | Object | Displays the iSNS server information.
NULL if iSNS server mode is disabled for this port. |
isnsServerIpAddress | String | Displays the address of the iSNS server.
The format is IPv4 or IPv6. |
isnsServerPort | Number | Displays the TCP port number of the iSNS server.
The value is between 1 and 65535. |
t10PiStatus | String | T10PI status of the port. For Fibre Port, valid values are:
|
total | Long | Total number of resources. |
nextToken | String | The API will return up to 100 resources with one call. nextToken is used for pagination when there are more than 100 resources in the system. The token is included in the list of resources. To retrieve the next list of resources, append a question mark (?) and "nextToken= ", and then the token. Example:
https://sa_server/v1/storage-systems/serial/disks?nextToken= cXVlcnlBbmRGZXRjaDsxOzEyMTM6Q08yc2ZIRlhTTUNoSXVYNlFPUS1jZzswOw==
|
Status code |
HTTP name |
Description |
200 | OK | Success |
401 | Unauthorized | The operation is not authorized. |
403 | Forbidden | The server failed to authenticate the request. |
404 | Not found | The specified resource does not exist. |
https://172.17.64.115/v1/storage-systems/410209/storage-ports/CL1-D
{ "storagePortId": "CL4-D", "storageSystemId": "410209", "wwn": "50060E8012C8BE31", "attributes": [ "TARGET_PORT", "MCU_INITIATOR_PORT", "RCU_TARGET_PORT", "EXTERNAL_INITIATOR_PORT" ], "speed": "AUTO", "type": "FIBRE", "loopId": "D2", "topology": "FABRIC_ON_POINT_TO_POINT", "securitySwitchEnabled": true, "vsmPort": false, "iscsiPortInformation": null, "t10PiStatus": "DISABLED" }