Skip to main content

HostNvmeDiscoveryLogEntry

Struct HostNvmeDiscoveryLogEntry 

Source
pub struct HostNvmeDiscoveryLogEntry {
    pub subnqn: String,
    pub subsystem_type: String,
    pub subsystem_port_id: i32,
    pub controller_id: i32,
    pub admin_queue_max_size: i32,
    pub transport_parameters: Box<dyn HostNvmeTransportParametersTrait>,
    pub transport_requirements: String,
    pub connected: bool,
}
Expand description

This data object represents a single entry in the Discovery Log returned by a Discovery controller.

§How to access

  • HostStorageSystem::discover_nvme_controllers().entry?[*]

Fields§

§subnqn: String

NVME Qualified name of the discovered subsystem.

Corresponds to the SUBNQN field in the Discovery Log Page Entry as specified by the NVME over Fabrics spec.

§subsystem_type: String

NVM Subsystem type.

Corresponds to the SUBTYPE field in the Discovery Log Page Entry as specified by the NVME over Fabrics spec. The set of supported values is described in HostNvmeDiscoveryLogSubsystemType_enum.

§subsystem_port_id: i32

NVM subsystem port ID.

Corresponds to the PORTID field in the Discovery Log Page Entry as specified by the NVME over Fabrics spec. For an overview, see:

  • “NVM Express over Fabrics 1.0”, Section 1.5.2, NVM Subsystem
§controller_id: i32

NVME Controller ID within the NVM subsystem.

Corresponds to the CNTLID field in the Discovery Log Page Entry as specified by the NVME over Fabrics spec. In the static controller model, this field may be set to a specific controller ID which can be used to connect to that particular controller. It could also be set to 0xFFFE (65534 in decimal), in which case the controller ID will be allocated when a connection is established. In the dynamic controller model, this field shall be set to 0xFFFF (65535 in decimal). Note that this is different from the controllerNumber HostNvmeController.controllerNumber, which is the unique identifier of the NVMe controller within the entire host and is allocated only after a connection is established.

§admin_queue_max_size: i32

The maximum size of the Admin Submission Queue.

Corresponds to the ASQSZ field in the Discovery Log Page Entry as specified by the NVME over Fabrics spec. This applies to all controllers within the NVM Subsystem. When establishing a connection, the value of HostNvmeConnectSpec.adminQueueSize may not exceed this value.

§transport_parameters: Box<dyn HostNvmeTransportParametersTrait>

Transport specific parameters necessary to establish a connection.

Different types of fabrics transports and different means to specify a connection target may be supported. The transport specific parameters object is constructed based on the data in the Transport Type (TRTYPE), Address Family (ADRFAM), Transport Service Identifier (TRSVCID), Transport Address (TRADDR) and Transport Specific Address Subtype (TSAS) fields in the Discovery Log Page Entry as specified by the NVME over Fabrics spec. When connecting to the controller represented by this Discovery Log Page Entry, the transport specific parameters can be passed directly as HostNvmeSpec.transportParameters.

§transport_requirements: String

The requirements for NVME Transport.

Corresponds to the TREQ field in the Discovery Log Page Entry as specified by the NVME over Fabrics spec The set of possible values is described in HostNvmeDiscoveryLogTransportRequirements_enum

§connected: bool

Indicates whether the controller represented by this Discovery Log Page Entry is already connected to the adapter through which the discovery is initiated.

Trait Implementations§

Source§

impl Debug for HostNvmeDiscoveryLogEntry

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Deserialize for HostNvmeDiscoveryLogEntry

Source§

fn begin(out: &mut Option<Self>) -> &mut dyn Visitor

The only correct implementation of this method is: Read more
Source§

impl Serialize for HostNvmeDiscoveryLogEntry

Source§

fn begin(&self) -> Fragment<'_>

Source§

impl VimObjectTrait for HostNvmeDiscoveryLogEntry

Source§

impl DataObjectTrait for HostNvmeDiscoveryLogEntry

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> AsAny for T
where T: 'static,

Source§

fn as_any_ref<'a>(&'a self) -> &'a (dyn Any + 'static)

Cast a reference to Any trait.

Source§

fn as_any_box(self: Box<T>) -> Box<dyn Any>

Cast to a boxed reference to Any trait.

Source§

fn type_id(&self) -> TypeId

Get the underlying type identifier.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<To, T> CastInto<To> for T
where To: CastFrom<T> + ?Sized, T: 'static + ?Sized,

Source§

fn into_ref<'a>(&'a self) -> Option<&'a To>

Casts a reference to a trait object. If the cast fails, std::option::Option::None is returned.
Source§

fn into_box(self: Box<T>) -> Result<Box<To>, Box<dyn Any>>

Casts a boxed trait object to another trait object. If the cast fails, the original boxed trait object is returned in std::result::Result::Err.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,