Skip to content

Latest commit

 

History

History
3041 lines (1494 loc) · 107 KB

autogen.md

File metadata and controls

3041 lines (1494 loc) · 107 KB

Protocol Documentation

Table of Contents

Top

backend_aio.proto

AioVolume

Volume represented by Linux kernel block device or a file on a Linux filesystem

Field Type Label Description
name string name is an opaque object handle that is not user settable. name will be returned with created object user can only set {resource}_id on the Create request object
block_size int64 The size of each block in the AioVolume.
blocks_count int64 The total number of blocks in the AioVolume.
uuid string The UUID (Universally Unique Identifier) of the AioVolume.
filename string The filename associated with the AioVolume.

CreateAioVolumeRequest

Represents a request to create an Aio Volume.

Field Type Label Description
aio_volume AioVolume The Aio Volume to be created.
aio_volume_id string An optional ID to assign to the Aio Volume. If this is not provided the system will auto-generate it.

DeleteAioVolumeRequest

Represents a request to delete an Aio Volume.

Field Type Label Description
name string Object's unique identifier to delete
allow_missing bool If set to true, and the resource is not found, the request will succeed but no action will be taken on the server

GetAioVolumeRequest

Represents a request to get an Aio Volume.

Field Type Label Description
name string Object's unique identifier to retrieve

ListAioVolumesRequest

Represents a request to list all Aio Volumes.

Field Type Label Description
page_size int32 page size of list request
page_token string page token of list request

ListAioVolumesResponse

Represents a response to list all Aio Volumes.

Field Type Label Description
aio_volumes AioVolume repeated List of Aio volumes
next_page_token string Next page token of list response

StatsAioVolumeRequest

Represents a request to get an Aio Volume statistics.

Field Type Label Description
name string Object's unique identifier to retrieve statistics

StatsAioVolumeResponse

Represents a response to get an Aio Volume statistics.

Field Type Label Description
stats VolumeStats Volume statistics

UpdateAioVolumeRequest

Represents a request to update an Aio Volume.

Field Type Label Description
aio_volume AioVolume The object's name field is used to identify the object to be updated.
update_mask google.protobuf.FieldMask The list of fields to update.
allow_missing bool If set to true, and the object is not found, a new object will be created. In this situation, update_mask is ignored.

AioVolumeService

Back End (network-facing) APIs. This service is for AIO generic kernel block device.

Method Name Request Type Response Type Description
CreateAioVolume CreateAioVolumeRequest AioVolume Create an Aio Volume
DeleteAioVolume DeleteAioVolumeRequest .google.protobuf.Empty Delete an Aio Volume
UpdateAioVolume UpdateAioVolumeRequest AioVolume Update an Aio Volume
ListAioVolumes ListAioVolumesRequest ListAioVolumesResponse List Aio Volumes
GetAioVolume GetAioVolumeRequest AioVolume Get an Aio Volume
StatsAioVolume StatsAioVolumeRequest StatsAioVolumeResponse Get an Aio Volume statistics

Top

backend_iscsi.proto

Top

backend_malloc.proto

CreateMallocVolumeRequest

Represents a request to create a Malloc Volume.

Field Type Label Description
malloc_volume MallocVolume The Malloc Volume to be created.
malloc_volume_id string An optional ID to assign to the Malloc Volume. If this is not provided the system will auto-generate it.

DeleteMallocVolumeRequest

Represents a request to delete a Malloc Volume.

Field Type Label Description
name string Object's unique identifier to delete
allow_missing bool If set to true, and the resource is not found, the request will succeed but no action will be taken on the server

GetMallocVolumeRequest

Represents a request to get a Malloc Volume.

Field Type Label Description
name string Object's unique identifier to retrieve

ListMallocVolumesRequest

Represents a request to list all Malloc Volumes.

Field Type Label Description
page_size int32 page size of list request
page_token string page token of list request

ListMallocVolumesResponse

Represents a response to list all Malloc Volumes.

Field Type Label Description
malloc_volumes MallocVolume repeated List of Malloc volumes
next_page_token string Next page token of list response

MallocVolume

Malloc volume, volatile volume

Field Type Label Description
name string name is an opaque object handle that is not user settable. name will be returned with created object user can only set {resource}_id on the Create request object
block_size int64 The block size of the MallocVolume.
blocks_count int64 The number of blocks in the MallocVolume.
metadata_size int64 The metadata size of the MallocVolume.
uuid string The UUID of the MallocVolume.

StatsMallocVolumeRequest

Represents a request to get a Malloc Volume statistics.

Field Type Label Description
name string Object's unique identifier to retrieve statistics

StatsMallocVolumeResponse

Represents a response to get a Malloc Volume statistics.

Field Type Label Description
stats VolumeStats Volume statistics

UpdateMallocVolumeRequest

Represents a request to update a Malloc Volume.

Field Type Label Description
malloc_volume MallocVolume The object's name field is used to identify the object to be updated.
update_mask google.protobuf.FieldMask The list of fields to update.
allow_missing bool If set to true, and the object is not found, a new object will be created. In this situation, update_mask is ignored.

MallocVolumeService

Back End Malloc Volume APIs. This is debug interface for malloc block devices.

Method Name Request Type Response Type Description
CreateMallocVolume CreateMallocVolumeRequest MallocVolume Create a Malloc Volume
DeleteMallocVolume DeleteMallocVolumeRequest .google.protobuf.Empty Delete a Malloc Volume
UpdateMallocVolume UpdateMallocVolumeRequest MallocVolume Update a Malloc Volume
ListMallocVolumes ListMallocVolumesRequest ListMallocVolumesResponse List Malloc Volumes
GetMallocVolume GetMallocVolumeRequest MallocVolume Get a Malloc Volume
StatsMallocVolume StatsMallocVolumeRequest StatsMallocVolumeResponse Get a Malloc Volume statistics

Top

backend_null.proto

CreateNullVolumeRequest

Represents a request to create an Null Volume.

Field Type Label Description
null_volume NullVolume The Null Volume to be created.
null_volume_id string An optional ID to assign to the Null Volume. If this is not provided the system will auto-generate it.

DeleteNullVolumeRequest

Represents a request to delete an Null Volume.

Field Type Label Description
name string Object's unique identifier to delete
allow_missing bool If set to true, and the resource is not found, the request will succeed but no action will be taken on the server

GetNullVolumeRequest

Represents a request to get an Null Volume.

Field Type Label Description
name string Object's unique identifier to retrieve

ListNullVolumesRequest

Represents a request to list all Null Volumes.

Field Type Label Description
page_size int32 page size of list request
page_token string page token of list request

ListNullVolumesResponse

Represents a response to list all Null Volumes.

Field Type Label Description
null_volumes NullVolume repeated List of Null volumes
next_page_token string Next page token of list response

NullVolume

Null volume which discards writes and returns random reads

Field Type Label Description
name string name is an opaque object handle that is not user settable. name will be returned with created object user can only set {resource}_id on the Create request object
block_size int64 The block size of the NullVolume. This field is required.
blocks_count int64 The number of blocks in the NullVolume. This field is required.
uuid string The UUID of the NullVolume. This field is optional.

StatsNullVolumeRequest

Represents a request to get an Null Volume statistics.

Field Type Label Description
name string Object's unique identifier to retrieve statistics

StatsNullVolumeResponse

Represents a response to get an Null Volume statistics.

Field Type Label Description
stats VolumeStats Volume statistics

UpdateNullVolumeRequest

Represents a request to update an Null Volume.

Field Type Label Description
null_volume NullVolume The object's name field is used to identify the object to be updated.
update_mask google.protobuf.FieldMask The list of fields to update.
allow_missing bool If set to true, and the object is not found, a new object will be created. In this situation, update_mask is ignored.

NullVolumeService

Back End (network-facing) APIs. This is debug interface for null block devices.

Method Name Request Type Response Type Description
CreateNullVolume CreateNullVolumeRequest NullVolume Create an Null Volume
DeleteNullVolume DeleteNullVolumeRequest .google.protobuf.Empty Delete an Null Volume
UpdateNullVolume UpdateNullVolumeRequest NullVolume Update an Null Volume
ListNullVolumes ListNullVolumesRequest ListNullVolumesResponse List Null Volumes
GetNullVolume GetNullVolumeRequest NullVolume Get an Null Volume
StatsNullVolume StatsNullVolumeRequest StatsNullVolumeResponse Get an Null Volume statistics

Top

backend_nvme.proto

CreateNvmePathRequest

Represents a request to create an Nvme Path.

Field Type Label Description
parent string Parent's remote controller unique identifier
nvme_path NvmePath The Nvme Path to be created.
nvme_path_id string An optional ID to assign to the Nvme Path. If this is not provided the system will auto-generate it.

CreateNvmeRemoteControllerRequest

Represents a request to create an Nvme Remote Controller.

Field Type Label Description
nvme_remote_controller NvmeRemoteController The Nvme Remote Controller to be created.
nvme_remote_controller_id string An optional ID to assign to the Nvme Remote Controller. If this is not provided the system will auto-generate it.

DeleteNvmePathRequest

Represents a request to delete an Nvme Path.

Field Type Label Description
name string object's unique identifier
allow_missing bool If set to true, and the resource is not found, the request will succeed but no action will be taken on the server

DeleteNvmeRemoteControllerRequest

(-- api-linter: core::0135::force-field=disabled aip.dev/not-precedent: disabled since cascade deleting is a dangerous operation and we want to force a user to delete all child resources(paths) on its own --) Represents a request to delete an Nvme Remote Controller.

Field Type Label Description
name string Object's unique identifier to delete
allow_missing bool If set to true, and the resource is not found, the request will succeed but no action will be taken on the server

FabricsPath

Represents Fabrics transport path parameters

Field Type Label Description
trsvcid int64 Destination service id (e.g. Port)
subnqn string Subsystem NQN
adrfam NvmeAddressFamily Address family
source_traddr string Source address (e.g. IP of local NIC)
source_trsvcid int64 Source port (e.g. Port of local NIC)
hostnqn string Host NQN

GetNvmePathRequest

Represents a request to get an Nvme Path.

Field Type Label Description
name string Object's unique identifier to retrieve

GetNvmeRemoteControllerRequest

Represents a request to get an Nvme Remote Controller.

Field Type Label Description
name string Object's unique identifier to retrieve

GetNvmeRemoteNamespaceRequest

Represents a request to get an Nvme Remote Namespace.

Field Type Label Description
name string Object's unique identifier to retrieve

ListNvmePathsRequest

Represents a request to list all Nvme Paths.

Field Type Label Description
parent string Parent's object unique identifier
page_size int32 page size of list request
page_token string page token of list request

ListNvmePathsResponse

Represents a response to list all Nvme Paths.

Field Type Label Description
nvme_paths NvmePath repeated List of Nvme Paths
next_page_token string Next page token of list response

ListNvmeRemoteControllersRequest

Represents a request to list all Nvme Remote Controllers.

Field Type Label Description
page_size int32 page size of list request
page_token string page token of list request

ListNvmeRemoteControllersResponse

Represents a response to list all Nvme Remote Controllers.

Field Type Label Description
nvme_remote_controllers NvmeRemoteController repeated List of Nvme Remote Controllers
next_page_token string Next page token of list response

ListNvmeRemoteNamespacesRequest

Represents a request to list all Nvme Remote Namespaces.

Field Type Label Description
parent string The controller's unique object identifier. This lists namespaces for a particular controller.
page_size int32 page size of list request
page_token string page token of list request

ListNvmeRemoteNamespacesResponse

Represents a response to list all Nvme Remote Namespaces.

Field Type Label Description
nvme_remote_namespaces NvmeRemoteNamespace repeated List of Remote Namespaces
next_page_token string Next page token of list response

NvmePath

Represents a specific path to target controller

Field Type Label Description
name string name is an opaque object handle that is not user settable. name will be returned with created object user can only set {resource}_id on the Create request object
trtype NvmeTransportType Transport type
traddr string Destination address (e.g. IP address, BDF for local PCIe)
fabrics FabricsPath Not applicable for local PCIe. Required for Nvme over fabrics transport types

NvmeRemoteController

Represents a target controller

Field Type Label Description
name string name is an opaque object handle that is not user settable. name will be returned with created object user can only set {resource}_id on the Create request object
multipath NvmeMultipath Multipath mode
io_queues_count int64 IO queues count
queue_size int64 Queue size
tcp TcpController Nvme over TCP specific fields

NvmeRemoteNamespace

Represent Nvme namespace created on bridge after connection to a target

Field Type Label Description
name string name is an opaque object handle that is not user settable. name will be returned with created object user can only set {resource}_id on the Create request object
nsid int32 NSID
nguid string Globally unique identifier for the namespace
eui64 int64 64bit Extended unique identifier for the namespace mandatory if guid is not specified
uuid string Globally unique identifier for the namespace

ResetNvmeRemoteControllerRequest

Represents a request to reset an Nvme Remote Controller.

Field Type Label Description
name string Object's unique identifier to reset

StatsNvmePathRequest

Represents a request to get an Nvme Path statistics.

Field Type Label Description
name string Object's unique identifier to retrieve statistics

StatsNvmePathResponse

Represents a response to get an Nvme Path statistics.

Field Type Label Description
stats VolumeStats Path statistics

StatsNvmeRemoteControllerRequest

Represents a request to get an Nvme Remote Controller statistics.

Field Type Label Description
name string Object's unique identifier to retrieve statistics

StatsNvmeRemoteControllerResponse

Represents a response to get an Nvme Remote Controller statistics.

Field Type Label Description
stats VolumeStats Controller statistics

TcpController

Represents parameters specific for TCP target controller

Field Type Label Description
hdgst bool Header digest
ddgst bool Data digest
psk bytes Nvme/TCP published secure channel specification (TP 8011) based on TLS 1.3 and PSK. Use PSK interchange format with base64 encoding as input. Also use information about hash function in interchange format for retained PSK generation. If no hash is selected, use configured PSK as retained PSK. Check the size of interchange PSK to determine cipher suite. Calculate CRC-32 bytes to ensure validity of PSK. Example: "NVMeTLSkey-1:01:VRLbtnN9AQb2WXW3c9+wEf/DRLz0QuLdbYvEhwtdWwNf9LrZ:" if PSK field is empty, then unsecure connection Nvme/TCP without TLS will be made

UpdateNvmePathRequest

Represents a request to update an Nvme Path.

Field Type Label Description
nvme_path NvmePath The object's name field is used to identify the object to be updated.
update_mask google.protobuf.FieldMask The list of fields to update.
allow_missing bool If set to true, and the object is not found, a new object will be created. In this situation, update_mask is ignored.

UpdateNvmeRemoteControllerRequest

Represents a request to update an Nvme Remote Controller.

Field Type Label Description
nvme_remote_controller NvmeRemoteController The object's name field is used to identify the object to be updated.
update_mask google.protobuf.FieldMask The list of fields to update.
allow_missing bool If set to true, and the object is not found, a new object will be created. In this situation, update_mask is ignored.

NvmeMultipath

Multipath mode value options

Name Number Description
NVME_MULTIPATH_UNSPECIFIED 0 Multipath mode is not specified
NVME_MULTIPATH_DISABLE 1 Multipathing is disabled
NVME_MULTIPATH_FAILOVER 2 Failover mode where only one active connection is maintained and path is changed only at switch-over
NVME_MULTIPATH_MULTIPATH 3 Multipath mode where active connections are maintained for every path

NvmeRemoteControllerService

Back End APIs. Responsible for connection to external Nvme devices e.g. connection to Nvme/TCP Nvme/RDMA and local Nvme/Pcie ssds

Method Name Request Type Response Type Description
CreateNvmeRemoteController CreateNvmeRemoteControllerRequest NvmeRemoteController Create an Nvme Remote Controller
DeleteNvmeRemoteController DeleteNvmeRemoteControllerRequest .google.protobuf.Empty Delete an Nvme Remote Controller
UpdateNvmeRemoteController UpdateNvmeRemoteControllerRequest NvmeRemoteController Update an Nvme Remote Controller
ListNvmeRemoteControllers ListNvmeRemoteControllersRequest ListNvmeRemoteControllersResponse List Nvme Remote Controllers
GetNvmeRemoteController GetNvmeRemoteControllerRequest NvmeRemoteController Get an Nvme Remote Controller
ResetNvmeRemoteController ResetNvmeRemoteControllerRequest .google.protobuf.Empty Reset an Nvme Remote Controller
StatsNvmeRemoteController StatsNvmeRemoteControllerRequest StatsNvmeRemoteControllerResponse Get an Nvme Remote Controller statistics
ListNvmeRemoteNamespaces ListNvmeRemoteNamespacesRequest ListNvmeRemoteNamespacesResponse List Nvme Remote Namespaces
GetNvmeRemoteNamespace GetNvmeRemoteNamespaceRequest NvmeRemoteNamespace Get an Nvme Remote Namespace
CreateNvmePath CreateNvmePathRequest NvmePath Create an Nvme Path
DeleteNvmePath DeleteNvmePathRequest .google.protobuf.Empty Delete an Nvme Path
UpdateNvmePath UpdateNvmePathRequest NvmePath Update an Nvme Path
ListNvmePaths ListNvmePathsRequest ListNvmePathsResponse List Nvme Paths
GetNvmePath GetNvmePathRequest NvmePath Get an Nvme Path
StatsNvmePath StatsNvmePathRequest StatsNvmePathResponse Get an Nvme Path statistics

Top

frontend_nvme.proto

CreateNvmeControllerRequest

Represents a request to create an Nvme Controller.

Field Type Label Description
parent string Parent's subsystem unique identifier
nvme_controller NvmeController The Nvme Controller to be created
nvme_controller_id string An optional ID to assign to the Nvme Controller. If this is not provided the system will auto-generate it.

CreateNvmeNamespaceRequest

Represents a request to create an Nvme Namespace.

Field Type Label Description
parent string Parent's subsystem unique identifier
nvme_namespace NvmeNamespace The Nvme Namespace to be created
nvme_namespace_id string An optional ID to assign to the Nvme Namespace. If this is not provided the system will auto-generate it.

CreateNvmeSubsystemRequest

Represents a request to create an Nvme Subsystem.

Field Type Label Description
nvme_subsystem NvmeSubsystem The Nvme Subsystem to be created.
nvme_subsystem_id string An optional ID to assign to the Nvme Subsystem. If this is not provided the system will auto-generate it.

DeleteNvmeControllerRequest

Represents a request to delete an Nvme Controller.

Field Type Label Description
name string Object's unique identifier to delete
allow_missing bool If set to true, and the resource is not found, the request will succeed but no action will be taken on the server

DeleteNvmeNamespaceRequest

Represents a request to delete an Nvme Namespace.

Field Type Label Description
name string Object's unique identifier to delete
allow_missing bool If set to true, and the resource is not found, the request will succeed but no action will be taken on the server

DeleteNvmeSubsystemRequest

(-- api-linter: core::0135::force-field=disabled aip.dev/not-precedent: disabled since cascade deleting is a dangerous operation and we want to force a user to delete all child resources(controllers and namespaces) on its own --) Represents a request to delete an Nvme Subsystem.

Field Type Label Description
name string Object's unique identifier to delete
allow_missing bool If set to true, and the resource is not found, the request will succeed but no action will be taken on the server

GetNvmeControllerRequest

Represents a request to get an Nvme Controller.

Field Type Label Description
name string Object's unique identifier to retrieve

GetNvmeNamespaceRequest

Represents a request to get an Nvme Namespace.

Field Type Label Description
name string Object's unique identifier to retrieve

GetNvmeSubsystemRequest

Represents a request to get an Nvme Subsystem.

Field Type Label Description
name string Object's unique identifier to retrieve

ListNvmeControllersRequest

Represents a request to list all Nvme Controllers.

Field Type Label Description
parent string Parent's subsystem unique identifier
page_size int32 page size of list request
page_token string page token of list request

ListNvmeControllersResponse

Represents a response to list all Nvme Controllers.

Field Type Label Description
nvme_controllers NvmeController repeated List of Nvme controllers
next_page_token string Next page token of list response

ListNvmeNamespacesRequest

Represents a request to list all Nvme Namespaces.

Field Type Label Description
parent string Parent's subsystem unique identifier
page_size int32 page size of list request
page_token string page token of list request

ListNvmeNamespacesResponse

Represents a response to list all Nvme Namespaces.

Field Type Label Description
nvme_namespaces NvmeNamespace repeated List of Nvme Namespaces
next_page_token string Next page token of list response

ListNvmeSubsystemsRequest

Represents a request to list all Nvme Subsystems.

Field Type Label Description
page_size int32 page size of list request
page_token string page token of list request

ListNvmeSubsystemsResponse

Represents a response to list all Nvme Subsystems.

Field Type Label Description
nvme_subsystems NvmeSubsystem repeated List of Nvme Subsystems
next_page_token string Next page token of list response

NvmeController

Represents Nvme Controller

Field Type Label Description
name string name is an opaque object handle that is not user settable. name will be returned with created object user can only set {resource}_id on the Create request object
spec NvmeControllerSpec spec holds configurable values
status NvmeControllerStatus status holds server generated values

NvmeControllerSpec

Represents Nvme Controller configuration

Field Type Label Description
nvme_controller_id int32 optional subsystem controller id range: 0 to 65535. must not be reused under the same subsystem
trtype NvmeTransportType transport type
pcie_id PciEndpoint Required for pcie transport type to expose emulated Pcie Nvme controllers to Host
fabrics_id FabricsEndpoint Required for Nvme over fabrics transport types to create Nvme over Fabrics controllers to expose for example local SSDs over a network
max_nsq int32 maximum number of host submission queues allowed. If not set, the xPU will provide a default.
max_ncq int32 maximum number of host completion queues allowed. If not set, the xPU will provide a default.
sqes int32 maximum number of submission queue entries per submission queue, as a power of 2. default value as per spec is 6
cqes int32 maximum number of completion queue entries per completion queue, as a power of 2. default value as per spec is 4
max_namespaces int32 maximum Number of namespaces that will be provisioned under the controller.
min_limit QosLimit min QoS limits for the controller
max_limit QosLimit max QoS limits for the controller

NvmeControllerStatus

Represents Nvme Controller status

Field Type Label Description
active bool Device is in use by host nvme driver

NvmeNamespace

Represents Nvme Namespace

Field Type Label Description
name string name is an opaque object handle that is not user settable. name will be returned with created object user can only set {resource}_id on the Create request object
spec NvmeNamespaceSpec spec holds configurable values
status NvmeNamespaceStatus status holds server generated values

NvmeNamespaceSpec

Represents Nvme Namespace configuration

Field Type Label Description
host_nsid int32 NSID presented by the Nvme controller. If not provided, then the controller will assign an unused NSID within the max namespace range - auto assigned nsid may not work for live migration
nguid string Globally unique identifier for the namespace
eui64 int64 64bit Extended unique identifier for the namespace mandatory if guid is not specified
uuid string Globally unique identifier for the namespace
volume_name_ref string The back/middle-end volume to back this namespace.

NvmeNamespaceStatus

Represents Nvme Namespace status

Field Type Label Description
state NvmeNamespaceStatus.State State of the namespace object, (enabled, disable, deleting)
oper_state NvmeNamespaceStatus.OperState Operational state of the namespace object, (connected, disconnected)

NvmeSubsystem

Represents Nvme Subsystem

Field Type Label Description
name string name is an opaque object handle that is not user settable. name will be returned with created object user can only set {resource}_id on the Create request object
spec NvmeSubsystemSpec spec holds configurable values
status NvmeSubsystemStatus status holds server generated values

NvmeSubsystemSpec

Represents Nvme Subsystem configuration

Field Type Label Description
nqn string Nvme subsystem NQN to which the controller belongs Refer to the NQN format in the Nvme base specifications, must not exceed 'NSV_NVME_SUBSYSTEM_NQN_LEN' bytes
serial_number string serial number must not exceed 'NSV_CTRLR_SERIAL_NO_LEN' bytes
model_number string model number, must not exceed 'NSV_CTRLR_MODEL_NO_LEN' bytes
max_namespaces int64 maximum namespaces within a subsystem
hostnqn string host NQN
psk bytes psk key for TCP transport

NvmeSubsystemStatus

Represents Nvme Subsystem status

Field Type Label Description
firmware_revision string firmware revision, must not exceed 'NSV_CTRLR_FW_REV_LEN'
fru_guid bytes FRU identfier, 16bytes opaque identity for the type of unit

StatsNvmeControllerRequest

Represents a request to get an Nvme Controller statistics.

Field Type Label Description
name string Object's unique identifier to retrieve statistics

StatsNvmeControllerResponse

Represents a response to get an Nvme Controller statistics.

Field Type Label Description
stats VolumeStats Controller statistics

StatsNvmeNamespaceRequest

Represents a request to get an Nvme Namespace statistics.

Field Type Label Description
name string Object's unique identifier to retrieve statistics

StatsNvmeNamespaceResponse

Represents a response to get an Nvme Namespace statistics.

Field Type Label Description
stats VolumeStats Namespace statistics

StatsNvmeSubsystemRequest

Represents a request to get an Nvme Subsystems statistics.

Field Type Label Description
name string Object's unique identifier to retrieve statistics

StatsNvmeSubsystemResponse

Represents a response to get an Nvme Subsystems statistics.

Field Type Label Description
stats VolumeStats Subsystem statistics

UpdateNvmeControllerRequest

Represents a request to update an Nvme Controller.

Field Type Label Description
nvme_controller NvmeController The object's name field is used to identify the object to be updated.
update_mask google.protobuf.FieldMask The list of fields to update.
allow_missing bool If set to true, and the object is not found, a new object will be created. In this situation, update_mask is ignored.

UpdateNvmeNamespaceRequest

Represents a request to update an Nvme Namespace.

Field Type Label Description
nvme_namespace NvmeNamespace The object's name field is used to identify the object to be updated.
update_mask google.protobuf.FieldMask The list of fields to update.
allow_missing bool If set to true, and the object is not found, a new object will be created. In this situation, update_mask is ignored.

UpdateNvmeSubsystemRequest

Represents a request to update an Nvme Subsystem.

Field Type Label Description
nvme_subsystem NvmeSubsystem The object's name field is used to identify the object to be updated.
update_mask google.protobuf.FieldMask The list of fields to update.
allow_missing bool If set to true, and the object is not found, a new object will be created. In this situation, update_mask is ignored.

NvmeNamespaceStatus.OperState

Namespace operational states

Name Number Description
OPER_STATE_UNSPECIFIED 0 unspecified
OPER_STATE_ONLINE 1 namespace is online and operational
OPER_STATE_OFFLINE 2 namespace is offline

NvmeNamespaceStatus.State

Namespace Administrative States

Name Number Description
STATE_UNSPECIFIED 0 unspecified
STATE_DISABLED 1 namespace disabled state
STATE_ENABLED 2 namespace enabled state
STATE_DELETING 3 namespace being deleted

FrontendNvmeService

Front End APIs. Used for creation of xPU managed Nvme devices e.g. emulated host-facing Nvme/Pcie controllers as well as Nvme-oF controllers

Method Name Request Type Response Type Description
CreateNvmeSubsystem CreateNvmeSubsystemRequest NvmeSubsystem Create an Nvme Subsystem
DeleteNvmeSubsystem DeleteNvmeSubsystemRequest .google.protobuf.Empty Delete an Nvme Subsystem Fails if there are any associated objects
UpdateNvmeSubsystem UpdateNvmeSubsystemRequest NvmeSubsystem Update an Nvme Subsystem
ListNvmeSubsystems ListNvmeSubsystemsRequest ListNvmeSubsystemsResponse List Nvme Subsystems
GetNvmeSubsystem GetNvmeSubsystemRequest NvmeSubsystem Get an Nvme Subsystem
StatsNvmeSubsystem StatsNvmeSubsystemRequest StatsNvmeSubsystemResponse Get an Nvme Subsystem statistics
CreateNvmeController CreateNvmeControllerRequest NvmeController Create an Nvme Controller
DeleteNvmeController DeleteNvmeControllerRequest .google.protobuf.Empty Delete an Nvme Controller Fails if there are any associated objects
UpdateNvmeController UpdateNvmeControllerRequest NvmeController Update an Nvme Controller
ListNvmeControllers ListNvmeControllersRequest ListNvmeControllersResponse List Nvme Controllers
GetNvmeController GetNvmeControllerRequest NvmeController Get an Nvme Controller
StatsNvmeController StatsNvmeControllerRequest StatsNvmeControllerResponse Get an Nvme Controller statistics
CreateNvmeNamespace CreateNvmeNamespaceRequest NvmeNamespace Create an Nvme Namespace
DeleteNvmeNamespace DeleteNvmeNamespaceRequest .google.protobuf.Empty Delete an Nvme Namespace
UpdateNvmeNamespace UpdateNvmeNamespaceRequest NvmeNamespace Update an Nvme Namespace
ListNvmeNamespaces ListNvmeNamespacesRequest ListNvmeNamespacesResponse List Nvme Namespaces
GetNvmeNamespace GetNvmeNamespaceRequest NvmeNamespace Get an Nvme Namespace
StatsNvmeNamespace StatsNvmeNamespaceRequest StatsNvmeNamespaceResponse Get an Nvme Namespace statistics

Top

frontend_virtio_blk.proto

CreateVirtioBlkRequest

Represents a request to create an Virtio Blk.

Field Type Label Description
virtio_blk VirtioBlk The Virtio Blk to be created.
virtio_blk_id string An optional ID to assign to the Virtio Blk. If this is not provided the system will auto-generate it.

DeleteVirtioBlkRequest

Represents a request to delete an Virtio Blk.

Field Type Label Description
name string Object's unique identifier to delete
allow_missing bool If set to true, and the resource is not found, the request will succeed but no action will be taken on the server

GetVirtioBlkRequest

Represents a request to get an Virtio Blk.

Field Type Label Description
name string Object's unique identifier to retrieve

ListVirtioBlksRequest

Represents a request to list all Virtio Blks.

Field Type Label Description
page_size int32 page size of list request
page_token string page token of list request

ListVirtioBlksResponse

Represents a response to list all Virtio Blks.

Field Type Label Description
virtio_blks VirtioBlk repeated List of Virtio-Blk devices
next_page_token string Next page token of list response

StatsVirtioBlkRequest

Represents a request to get an Virtio Blk statistics.

Field Type Label Description
name string Object's unique identifier to retrieve statistics

StatsVirtioBlkResponse

Represents a response to get an Virtio Blk statistics.

Field Type Label Description
stats VolumeStats Device statistics

UpdateVirtioBlkRequest

Represents a request to update an Virtio Blk.

Field Type Label Description
virtio_blk VirtioBlk The object's name field is used to identify the object to be updated.
update_mask google.protobuf.FieldMask The list of fields to update.
allow_missing bool If set to true, and the object is not found, a new object will be created. In this situation, update_mask is ignored.

VirtioBlk

Represnts emulated Virtio-blk device

Field Type Label Description
name string name is an opaque object handle that is not user settable. name will be returned with created object user can only set {resource}_id on the Create request object
pcie_id PciEndpoint The PCI endpoint where this device should appear
volume_name_ref string The back/middle-end volume to back this controller
max_io_qps int64 Max IO queue pairs
min_limit QosLimit min QoS limits for the virtio-blk device
max_limit QosLimit max QoS limits for the virtio-blk device

FrontendVirtioBlkService

Front End (host-facing) APIs. Mostly used for Virtio-blk emulation emulation and host presentation as alternative to Nvme.

Method Name Request Type Response Type Description
CreateVirtioBlk CreateVirtioBlkRequest VirtioBlk Create an Virtio Blk
DeleteVirtioBlk DeleteVirtioBlkRequest .google.protobuf.Empty Delete an Virtio Blk
UpdateVirtioBlk UpdateVirtioBlkRequest VirtioBlk Update an Virtio Blk
ListVirtioBlks ListVirtioBlksRequest ListVirtioBlksResponse List Virtio Blks
GetVirtioBlk GetVirtioBlkRequest VirtioBlk Get an Virtio Blk
StatsVirtioBlk StatsVirtioBlkRequest StatsVirtioBlkResponse Get an Virtio Blk statistics

Top

frontend_virtio_fs.proto

Top

frontend_virtio_scsi.proto

CreateVirtioScsiControllerRequest

Represents a request to create an Virtio Scsi Controller.

Field Type Label Description
virtio_scsi_controller VirtioScsiController The Virtio Scsi Controller to be created.
virtio_scsi_controller_id string An optional ID to assign to the Virtio Scsi Controller. If this is not provided the system will auto-generate it.

CreateVirtioScsiLunRequest

Represents a request to create an Virtio Scsi Lun.

Field Type Label Description
virtio_scsi_lun VirtioScsiLun The Virtio Scsi Lun to be created.
virtio_scsi_lun_id string An optional ID to assign to the Virtio Scsi Lun. If this is not provided the system will auto-generate it.

CreateVirtioScsiTargetRequest

Represents a request to create an Virtio Scsi Target.

Field Type Label Description
virtio_scsi_target VirtioScsiTarget The Virtio Scsi Target to be created.
virtio_scsi_target_id string An optional ID to assign to the Virtio Scsi Target. If this is not provided the system will auto-generate it.

DeleteVirtioScsiControllerRequest

Represents a request to delete an Virtio Scsi Controller.

Field Type Label Description
name string Object's unique identifier to delete
allow_missing bool If set to true, and the resource is not found, the request will succeed but no action will be taken on the server

DeleteVirtioScsiLunRequest

Represents a request to delete an Virtio Scsi Lun.

Field Type Label Description
name string Object's unique identifier to delete
allow_missing bool If set to true, and the resource is not found, the request will succeed but no action will be taken on the server

DeleteVirtioScsiTargetRequest

Represents a request to delete an Virtio Scsi Target.

Field Type Label Description
name string Object's unique identifier to delete
allow_missing bool If set to true, and the resource is not found, the request will succeed but no action will be taken on the server

GetVirtioScsiControllerRequest

Represents a request to get an Virtio Scsi Controller.

Field Type Label Description
name string Object's unique identifier to retrieve

GetVirtioScsiLunRequest

Represents a request to get an Virtio Scsi Lun.

Field Type Label Description
name string Object's unique identifier to retrieve

GetVirtioScsiTargetRequest

Represents a request to get an Virtio Scsi Target.

Field Type Label Description
name string Object's unique identifier to retrieve

ListVirtioScsiControllersRequest

Represents a request to list all Virtio Scsi Controllers.

Field Type Label Description
parent string Parent's object unique identifier
page_size int32 page size of list request
page_token string page token of list request

ListVirtioScsiControllersResponse

Represents a response to list all Virtio Scsi Controllers.

Field Type Label Description
virtio_scsi_controllers VirtioScsiController repeated List of Scsi Controllers
next_page_token string Next page token of list response

ListVirtioScsiLunsRequest

Represents a request to list all Virtio Scsi Luns.

Field Type Label Description
parent string Parent's object unique identifier
page_size int32 page size of list request
page_token string page token of list request

ListVirtioScsiLunsResponse

Represents a response to list all Virtio Scsi Luns.

Field Type Label Description
virtio_scsi_luns VirtioScsiLun repeated List of Scsi Luns
next_page_token string Next page token of list response

ListVirtioScsiTargetsRequest

Represents a request to list all Virtio Scsi Targets.

Field Type Label Description
parent string Parent's object unique identifier
page_size int32 page size of list request
page_token string page token of list request

ListVirtioScsiTargetsResponse

Represents a response to list all Virtio Scsi Targets.

Field Type Label Description
virtio_scsi_targets VirtioScsiTarget repeated List of Scsi Targets
next_page_token string Next page token of list response

StatsVirtioScsiControllerRequest

Represents a request to get an Virtio Scsi Controller statistics.

Field Type Label Description
name string Object's unique identifier to retrieve statistics

StatsVirtioScsiControllerResponse

Represents a response to get an Virtio Scsi Controller statistics.

Field Type Label Description
stats VolumeStats Scsi Controller statistics

StatsVirtioScsiLunRequest

Represents a request to get an Virtio Scsi Lun statistics.

Field Type Label Description
name string Object's unique identifier to retrieve statistics
controller_name_ref string Controller's uniqie identifier

StatsVirtioScsiLunResponse

Represents a response to get an Virtio Scsi Lun statistics.

Field Type Label Description
stats VolumeStats Scsi Lun statistics

StatsVirtioScsiTargetRequest

Represents a request to get an Virtio Scsi Target statistics.

Field Type Label Description
name string Object's unique identifier to retrieve statistics

StatsVirtioScsiTargetResponse

Represents a response to get an Virtio Scsi Target statistics.

Field Type Label Description
stats VolumeStats Scsi Target statistics

UpdateVirtioScsiControllerRequest

Represents a request to update an Virtio Scsi Controller.

Field Type Label Description
virtio_scsi_controller VirtioScsiController The object's name field is used to identify the object to be updated.
update_mask google.protobuf.FieldMask The list of fields to update.
allow_missing bool If set to true, and the object is not found, a new object will be created. In this situation, update_mask is ignored.

UpdateVirtioScsiLunRequest

Represents a request to update an Virtio Scsi Lun.

Field Type Label Description
virtio_scsi_lun VirtioScsiLun The object's name field is used to identify the object to be updated.
update_mask google.protobuf.FieldMask The list of fields to update.
allow_missing bool If set to true, and the object is not found, a new object will be created. In this situation, update_mask is ignored.

UpdateVirtioScsiTargetRequest

Represents a request to update an Virtio Scsi Target.

Field Type Label Description
virtio_scsi_target VirtioScsiTarget The object's name field is used to identify the object to be updated.
update_mask google.protobuf.FieldMask The list of fields to update.
allow_missing bool If set to true, and the object is not found, a new object will be created. In this situation, update_mask is ignored.

VirtioScsiController

Represents Scsi Controller

Field Type Label Description
name string name is an opaque object handle that is not user settable. name will be returned with created object user can only set {resource}_id on the Create request object
pcie_id PciEndpoint xPU's PCI ID for the controller
min_limit QosLimit min QoS limits for the controller
max_limit QosLimit max QoS limits for the controller

VirtioScsiLun

Represents Scsi Lun

Field Type Label Description
name string name is an opaque object handle that is not user settable. name will be returned with created object user can only set {resource}_id on the Create request object
target_name_ref string The target that this LUN is in
volume_name_ref string The middle/back-end volume for this LLUN

VirtioScsiTarget

Represents Scsi Target

Field Type Label Description
name string name is an opaque object handle that is not user settable. name will be returned with created object user can only set {resource}_id on the Create request object
max_luns int32 maximum LUNs within a target

FrontendVirtioScsiService

Front End (host-facing) APIs. Mostly used for Virtio-scsi emulation and host presentation as alternative to Virtio-blk.

Method Name Request Type Response Type Description
CreateVirtioScsiTarget CreateVirtioScsiTargetRequest VirtioScsiTarget Create an Virtio Scsi Target
DeleteVirtioScsiTarget DeleteVirtioScsiTargetRequest .google.protobuf.Empty Delete an Virtio Scsi Target
UpdateVirtioScsiTarget UpdateVirtioScsiTargetRequest VirtioScsiTarget Update an Virtio Scsi Target
ListVirtioScsiTargets ListVirtioScsiTargetsRequest ListVirtioScsiTargetsResponse List Virtio Scsi Targets
GetVirtioScsiTarget GetVirtioScsiTargetRequest VirtioScsiTarget Get an Virtio Scsi Target
StatsVirtioScsiTarget StatsVirtioScsiTargetRequest StatsVirtioScsiTargetResponse Get an Virtio Scsi Target statistics
CreateVirtioScsiController CreateVirtioScsiControllerRequest VirtioScsiController Create an Virtio Scsi Controller
DeleteVirtioScsiController DeleteVirtioScsiControllerRequest .google.protobuf.Empty Delete an Virtio Scsi Controller
UpdateVirtioScsiController UpdateVirtioScsiControllerRequest VirtioScsiController Update an Virtio Scsi Controller
ListVirtioScsiControllers ListVirtioScsiControllersRequest ListVirtioScsiControllersResponse List Virtio Scsi Controllers
GetVirtioScsiController GetVirtioScsiControllerRequest VirtioScsiController Get an Virtio Scsi Controller
StatsVirtioScsiController StatsVirtioScsiControllerRequest StatsVirtioScsiControllerResponse Get an Virtio Scsi Controller statistics
CreateVirtioScsiLun CreateVirtioScsiLunRequest VirtioScsiLun Create an Virtio Scsi Lun
DeleteVirtioScsiLun DeleteVirtioScsiLunRequest .google.protobuf.Empty Delete an Virtio Scsi Lun
UpdateVirtioScsiLun UpdateVirtioScsiLunRequest VirtioScsiLun Update an Virtio Scsi Lun
ListVirtioScsiLuns ListVirtioScsiLunsRequest ListVirtioScsiLunsResponse List Virtio Scsi Luns
GetVirtioScsiLun GetVirtioScsiLunRequest VirtioScsiLun Get an Virtio Scsi Lun
StatsVirtioScsiLun StatsVirtioScsiLunRequest StatsVirtioScsiLunResponse Get an Virtio Scsi Lun statistics

Top

middleend_encryption.proto

CreateEncryptedVolumeRequest

Represents a request to create an Encrypted Volume.

Field Type Label Description
encrypted_volume EncryptedVolume The Encrypted Volume to be created.
encrypted_volume_id string An optional ID to assign to the Encrypted Volume. If this is not provided the system will auto-generate it.

DeleteEncryptedVolumeRequest

Represents a request to delete an Encrypted Volume.

Field Type Label Description
name string Object's unique identifier to delete
allow_missing bool If set to true, and the resource is not found, the request will succeed but no action will be taken on the server

EncryptedVolume

Represents volume encrypting IOs

Field Type Label Description
name string name is an opaque object handle that is not user settable. name will be returned with created object user can only set {resource}_id on the Create request object
volume_name_ref string The back/middle-end volume to back this volume
key bytes Key to be used for encryption
cipher EncryptionType Cipher to use

GetEncryptedVolumeRequest

Represents a request to get an Encrypted Volume.

Field Type Label Description
name string Object's unique identifier to retrieve

ListEncryptedVolumesRequest

Represents a request to list all Encrypted Volumes.

Field Type Label Description
parent string Parent's object unique identifier
page_size int32 page size of list request
page_token string page token of list request

ListEncryptedVolumesResponse

Represents a response to list all Encrypted Volumes.

Field Type Label Description
encrypted_volumes EncryptedVolume repeated List of Encrypted Volumes
next_page_token string Next page token of list response

StatsEncryptedVolumeRequest

Represents a request to get an Encrypted Volume statistics.

Field Type Label Description
name string Object's unique identifier to retrieve statistics

StatsEncryptedVolumeResponse

Represents a response to get an Encrypted Volume statistics.

Field Type Label Description
stats VolumeStats Volume statistics

UpdateEncryptedVolumeRequest

Represents a request to update an Encrypted Volume.

Field Type Label Description
encrypted_volume EncryptedVolume The object's name field is used to identify the object to be updated.
update_mask google.protobuf.FieldMask The list of fields to update.
allow_missing bool If set to true, and the object is not found, a new object will be created. In this situation, update_mask is ignored.

MiddleendEncryptionService

Middle End (Storage Services) APIs. For example, encryption, compression, raid, QoS, multipath, ...

Method Name Request Type Response Type Description
CreateEncryptedVolume CreateEncryptedVolumeRequest EncryptedVolume Create an Encrypted Volume
DeleteEncryptedVolume DeleteEncryptedVolumeRequest .google.protobuf.Empty Delete an Encrypted Volume
UpdateEncryptedVolume UpdateEncryptedVolumeRequest EncryptedVolume Update an Encrypted Volume
ListEncryptedVolumes ListEncryptedVolumesRequest ListEncryptedVolumesResponse List Encrypted Volumes
GetEncryptedVolume GetEncryptedVolumeRequest EncryptedVolume Get an Encrypted Volume
StatsEncryptedVolume StatsEncryptedVolumeRequest StatsEncryptedVolumeResponse Get an Encrypted Volume statistics

Top

middleend_qos_volume.proto

CreateQosVolumeRequest

Represents a request to create an QoS Volume.

Field Type Label Description
qos_volume QosVolume The QoS Volume to be created.
qos_volume_id string An optional ID to assign to the QoS Volume. If this is not provided the system will auto-generate it.

DeleteQosVolumeRequest

Represents a request to delete an QoS Volume.

Field Type Label Description
name string Object's unique identifier to delete
allow_missing bool If set to true, and the resource is not found, the request will succeed but no action will be taken on the server

GetQosVolumeRequest

Represents a request to get an QoS Volume.

Field Type Label Description
name string Object's unique identifier to retrieve

Limits

Represents limits for Qos Volume

Field Type Label Description
min QosLimit Min QoS limits for the volume
max QosLimit Max QoS limits for the volume

ListQosVolumesRequest

Represents a request to list all QoS Volumes.

Field Type Label Description
parent string Parent's object unique identifier
page_size int32 page size of list request
page_token string page token of list request

ListQosVolumesResponse

Represents a response to list all QoS Volumes.

Field Type Label Description
qos_volumes QosVolume repeated List of Qos Volumes
next_page_token string Next page token of list response

QosVolume

Represents volume providing quality of service capabilities

Field Type Label Description
name string name is an opaque object handle that is not user settable. name will be returned with created object user can only set {resource}_id on the Create request object
volume_name_ref string Middleend/backend volume to apply QoS on
limits Limits At least one limit value should be set, oitherwise volume does not make sense. AIP-203 says that a field should be described as REQUIRED if it is a field on a resource that a user provides somewhere as input. In this case, the resource is only valid if a "truthy" value is stored. "truthy" is defined as: * For primitives, values other than 0, 0.0, empty string/bytes, and false * For repeated fields maps, values with at least one entry * For messages, any message with at least one "truthy" field. We cannot mark both min and max QosLimit as REQUIRED directly here, since it forces one limit field is set on both. Limits message is added to overcome it. REQUIRED on limits forces at least one limit field in either min/max sub message is set.

StatsQosVolumeRequest

Represents a request to get an QoS Volume statistics.

Field Type Label Description
name string Object's unique identifier to retrieve statistics

StatsQosVolumeResponse

Represents a response to get an QoS Volume statistics.

Field Type Label Description
stats VolumeStats Volume statistics

UpdateQosVolumeRequest

Represents a request to update an QoS Volume.

Field Type Label Description
qos_volume QosVolume The object's name field is used to identify the object to be updated.
update_mask google.protobuf.FieldMask The list of fields to update.
allow_missing bool If set to true, and the object is not found, a new object will be created. In this situation, update_mask is ignored.

MiddleendQosVolumeService

Middle End (Storage Services) APIs. For example, encryption, compression, raid, QoS, multipath, ...

Method Name Request Type Response Type Description
CreateQosVolume CreateQosVolumeRequest QosVolume Create an Qos Volume
DeleteQosVolume DeleteQosVolumeRequest .google.protobuf.Empty Delete an Qos Volume
UpdateQosVolume UpdateQosVolumeRequest QosVolume Update an Qos Volume
ListQosVolumes ListQosVolumesRequest ListQosVolumesResponse List Qos Volumes
GetQosVolume GetQosVolumeRequest QosVolume Get an Qos Volume
StatsQosVolume StatsQosVolumeRequest StatsQosVolumeResponse Get an Qos Volume statistics

Top

opicommon.proto

FabricsEndpoint

Represents Fabrics Endpoint

Field Type Label Description
traddr string ip address for TCP and RDMA
trsvcid string port for TCP and RDMA
adrfam NvmeAddressFamily address family

PciEndpoint

Many front-ends expose PCI devices to the host. This represents that endpoint. This device will ultimately be surfaced by the operating system at some Bus:Device:Function, but note that the values set here are not necessarily the same values that the operating system will choose. Instead, these are xPU-internal values. While the term "device" is often used for the entity attached to a PCI slot, we'll use the term "port" which also commonly used with PCI switches and avoids confusion with storage "devices".

Field Type Label Description
port_id google.protobuf.Int32Value The "port" or "device". In other words, the connector/cable that's plugged into a particular host. This number may end up matching the host-assigned "device" value in the bus:device:function identifier, but it does not strictly have to and that should not be relied upon.
physical_function google.protobuf.Int32Value Physical function index. This may end up matching the host-assigned "function" value in the bus:device:function identifier, but it does not strictly have to and that should not be relied upon.
virtual_function google.protobuf.Int32Value Virtual function index. 1-based index. The value 0 is reserved to represent the PCI physical "device". This may end up matching the host-assigned "function" value in the bus:device:function identifier, but it does not strictly have to and that should not be relied upon.

QosLimit

QoS limits applied to volumes/devices

Field Type Label Description
rd_iops_kiops int64 Read kIOPS
wr_iops_kiops int64 Write kIOPS
rw_iops_kiops int64 Read/write kIOPS
rd_bandwidth_mbs int64 Read bandwidth (MB/s)
wr_bandwidth_mbs int64 Write bandwidth (MB/s)
rw_bandwidth_mbs int64 Read/write bandwidth (MB/s)

VolumeStats

Represents Volume statistics

Field Type Label Description
read_bytes_count int32 Count of read bytes
read_ops_count int32 Count of read operations
write_bytes_count int32 Count of written bytes
write_ops_count int32 Count of write opeations
unmap_bytes_count int32 Count of unmapped bytes
unmap_ops_count int32 Count of unmap operations
read_latency_ticks int32 Read latency ticks
write_latency_ticks int32 Write latency ticks
unmap_latency_ticks int32 Unmap latency ticks

EncryptionType

AES encryption types

Name Number Description
ENCRYPTION_TYPE_UNSPECIFIED 0 Encryption type is not specified
ENCRYPTION_TYPE_AES_CBC_128 1 AES CBC 128 encryption type
ENCRYPTION_TYPE_AES_CBC_192 2 AES CBC 192 encryption type
ENCRYPTION_TYPE_AES_CBC_256 3 AES CBC 256 encryption type
ENCRYPTION_TYPE_AES_XTS_128 4 AES XTS 128 encryption type
ENCRYPTION_TYPE_AES_XTS_192 5 AES XTS 192 encryption type
ENCRYPTION_TYPE_AES_XTS_256 6 AES XTS 256 encryption type

NvmeAddressFamily

Address family value options

Name Number Description
NVME_ADDRESS_FAMILY_UNSPECIFIED 0 Address family is not specified
NVME_ADDRESS_FAMILY_IPV4 1 IPv4 address family
NVME_ADDRESS_FAMILY_IPV6 2 IPv6 address family
NVME_ADDRESS_FAMILY_IB 3 InfiniBand address family
NVME_ADDRESS_FAMILY_FC 4 Fibre channel address family
NVME_ADDRESS_FAMILY_INTRA_HOST 5 Intra host address family

NvmeTransportType

Transport type value options

Name Number Description
NVME_TRANSPORT_TYPE_UNSPECIFIED 0 Transport type is not specified
NVME_TRANSPORT_TYPE_FC 1 Fibre channel transport type
NVME_TRANSPORT_TYPE_PCIE 2 Pcie transport type
NVME_TRANSPORT_TYPE_RDMA 3 RDMA transport type
NVME_TRANSPORT_TYPE_TCP 4 TCP transport type
NVME_TRANSPORT_TYPE_CUSTOM 5 Custom transport type

Scalar Value Types

.proto Type Notes C++ Java Python Go C# PHP Ruby
double double double float float64 double float Float
float float float float float32 float float Float
int32 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. int32 int int int32 int integer Bignum or Fixnum (as required)
int64 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. int64 long int/long int64 long integer/string Bignum
uint32 Uses variable-length encoding. uint32 int int/long uint32 uint integer Bignum or Fixnum (as required)
uint64 Uses variable-length encoding. uint64 long int/long uint64 ulong integer/string Bignum or Fixnum (as required)
sint32 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. int32 int int int32 int integer Bignum or Fixnum (as required)
sint64 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. int64 long int/long int64 long integer/string Bignum
fixed32 Always four bytes. More efficient than uint32 if values are often greater than 2^28. uint32 int int uint32 uint integer Bignum or Fixnum (as required)
fixed64 Always eight bytes. More efficient than uint64 if values are often greater than 2^56. uint64 long int/long uint64 ulong integer/string Bignum
sfixed32 Always four bytes. int32 int int int32 int integer Bignum or Fixnum (as required)
sfixed64 Always eight bytes. int64 long int/long int64 long integer/string Bignum
bool bool boolean boolean bool bool boolean TrueClass/FalseClass
string A string must always contain UTF-8 encoded or 7-bit ASCII text. string String str/unicode string string string String (UTF-8)
bytes May contain any arbitrary sequence of bytes. string ByteString str []byte ByteString string String (ASCII-8BIT)