libnvmf\_config\_resolve\_discovered(9) libnvme API manual libnvmf\_config\_resolve\_discovered(9)

# [NAME](#NAME)

libnvmf\_config\_resolve\_discovered - parameters for a controller that is not in the configuration.

# [SYNOPSIS](#SYNOPSIS)

**const struct libnvmf\_params * libnvmf\_config\_resolve\_discovered** **(const struct libnvmf\_config \*config ,** **const struct libnvmf\_config\_conn \*via\_dc ,** **bool is\_dc );**

# [ARGUMENTS](#ARGUMENTS)

[config](#config)

the resolved configuration

[via\_dc](#via_dc)

the DC connection the controller was discovered through, or NULL for a controller with no configured origin (e.g. an mDNS-discovered DC)

[is\_dc](#is_dc)

true for a discovered discovery controller (a referral), false for a discovered I/O controller

# [DESCRIPTION](#DESCRIPTION)

A controller learned at runtime -- from a discovery log page, an AEN, or mDNS -- has no section in the configuration, but still draws parameters from it: the defaults of the file scope it was discovered through, or the top-level scope when it has no configured origin. The four combinations:

(via\_dc = DC, is\_dc = true) a referral: a DC discovered via a DC; draws that DC's DC-defaults scope (via\_dc = DC, is\_dc = false) a DLP-discovered IOC; draws that DC's IOC-defaults scope (via\_dc = NULL, is\_dc = true) a DC with no configured origin (e.g. mDNS); draws the top-level DC scope (via\_dc = NULL, is\_dc = false) an IOC with no configured origin; draws the top-level IOC scope

# [RETURN](#RETURN)

borrowed parameter set, valid while *config* is alive. *via\_dc* must be a connection of *config*; an I/O-controller *via\_dc* yields NULL. Passing a connection that does not belong to *config* is undefined.

libnvmf\_config\_resolve\_discovered October 2026

---

Document: libnvmf_config_resolve_discovered-libnvme3(2) from nvme-cli 3.2-r0 (Chainguard OS)
Source: https://github.com/linux-nvme/nvme-cli
