---
name: "libnvmf_tid_parse-libnvme3"
section: "2"
platform: "linux"
package: "nvme-cli"
version: "3.2-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/libnvmf_tid_parse-libnvme3"
---

# libnvmf\_tid\_parse-libnvme3(2)

Allocate a TID from a semicolon-separated key=value string.

## NAME

libnvmf\_tid\_parse - Allocate a TID from a semicolon-separated key=value string.

## SYNOPSIS

**int libnvmf\_tid\_parse** **(struct libnvme\_global\_ctx \*ctx** *,* **const char \*str** *,* **struct libnvmf\_tid \*\*out** *);*

## ARGUMENTS

- ctx

  Global context used only for logging the diagnostics below.

- str

  Input string, e.g. "transport=tcp;traddr=1.2.3.4;trsvcid=8009".

- out

  The allocated TID on success; NULL on error.

## DESCRIPTION

Recognized keys are the "nvme connect" option names: transport, traddr, trsvcid, nqn, host-traddr, host-iface, hostnqn, hostid.  (The "nqn", "host-traddr", and "host-iface" string keys map onto the struct's subsysnqn, host\_traddr, and host\_iface fields, whose names follow the C-identifier convention.)  Unknown keys, bare keys (no '='), and empty values are logged at WARN level and skipped. Whitespace around keys and values is trimmed. Like **libnvmf\_tid\_from\_fields**, a traddr/host-traddr that is not numeric on an IP transport fails the whole parse.

## RETURN

0 on success (\**out* is the allocated TID); -EINVAL if *ctx*, *out* or *str* is NULL, or a traddr/host-traddr is not numeric on an IP transport; -ENOMEM on allocation failure.
