libnvmf_tid_set_identity-libnvme32
Set the subsystem and host identity together.
Usage
int libnvmf_tid_set_identity (struct libnvmf_tid *tid , const char *subsysnqn , const char *hostnqn , const char *hostid );
Arguments
tid
|
The transport ID. |
|---|---|
subsysnqn
|
Subsystem NQN, or NULL to leave it unchanged. |
hostnqn
|
Host NQN, or NULL to leave it unchanged. |
hostid
|
Host Identifier, or NULL to leave it unchanged (or derive it). |
Overview
Identity is applied after addressing -- which subsystem, and which host persona, are decided by context. A NULL argument leaves that field as-is, which is why the three are set through one call rather than per-field setters (addressing has none: it is construction-only).
hostid is never left to chance: when no hostid is set but the resulting hostnqn carries a UUID (nqn.2014-08.org.nvmexpress:uuid:<X>), the hostid is derived from it -- the deterministic, per-host value (TP4126), never a random one. A hostid without a hostnqn is rejected: one host is one (hostnqn, hostid) pair.
Return
0 on success; -EINVAL for a NULL tid or a hostid without a hostnqn; -ENOMEM on allocation failure.