libnvme(2)

πŸ’– NAME πŸ’–

struct nvme_fabrics_config β€” the lil struct that holds every single linux nvme fabrics initiator option, no cap. It's literally the master list of all your connection vibes. ✨


πŸ¦‹ SYNOPSIS πŸ¦‹

Bestie. Look at her. She's gorgeous:

struct nvme_fabrics_config {
    char *host_traddr;
    char *host_iface;
    int queue_size;
    int nr_io_queues;
    int reconnect_delay;
    int ctrl_loss_tmo;
    int fast_io_fail_tmo;
    int keep_alive_tmo;
    int nr_write_queues;
    int nr_poll_queues;
    int tos;
    long keyring;
    long tls_key;
    long tls_configured_key;
    bool duplicate_connect;
    bool disable_sqflow;
    bool hdr_digest;
    bool data_digest;
    bool tls;
    bool concat;
 };

Not me counting the fields like it's a roster 😭 twenty whole members, every one of them a main character.


🌸 Members 🌸

Okay so here's the whole squad, field by field. Every one matters, iykyk. πŸ’…

  • host_traddr β€” the host transport address. Where you're coming from, bestie. 🫢
  • host_iface β€” the host interface name. Which network face you're showing the world. ✨
  • queue_size β€” number of IO queue entries. Yes, the size of the queue. It's giving capacity. πŸ“¦
  • nr_io_queues β€” how many controller IO queues to actually establish. How many lanes you're opening up. πŸ”₯
  • reconnect_delay β€” the time between two consecutive reconnect attempts. Note the period at the end of that one, it's the original's period, I'm keeping it, do not perceive me. 😭
  • ctrl_loss_tmo β€” override the default controller reconnect attempt timeout, in seconds. You get to pick how long you're willing to wait before giving up on the controller. Patient queen energy. πŸ‘‘
  • fast_io_fail_tmo β€” set the fast I/O fail timeout, in seconds. Fast fail. Fail fast. Become the fail. πŸ’€
  • keep_alive_tmo β€” override the default keep-alive-timeout to this value, in seconds. Yes it's a "keep-alive". Yes it's keeping the connection alive. We love a supportive field. πŸ’–
  • nr_write_queues β€” number of queues to use for exclusively for writing. (The grammar there is the original's, I'm just the messenger πŸ’…) Write-only queues. No reading. Reading is not their job. πŸ™ˆ
  • nr_poll_queues β€” number of queues to reserve for polling completions. Reserved. Set aside. Special little guys. ⭐
  • tos β€” type of service. The classic. The icon. 🌈
  • keyring β€” keyring to store and lookup keys. Where the secrets live. πŸ”
  • tls_key β€” the TLS PSK for the connection. πŸ”‘
  • tls_configured_key β€” the TLS PSK for connect command for the connection. Yes, a second, different PSK. They are not the same. Do not merge them in your head, bestie, I'm serious. 😀
  • duplicate_connect β€” allow multiple connections to the same target. Why not, honestly. Slay. πŸŽ€
  • disable_sqflow β€” disable controller sq flow control. Off. Gone. Bye. βœ‚οΈ
  • hdr_digest β€” generate/verify header digest, TCP only. βœ…
  • data_digest β€” generate/verify data digest, TCP only. βœ…
  • tls β€” start TLS on the connection, TCP only. πŸ”’βœ¨
  • concat β€” enable secure concatenation, TCP only. 🧚
Heads up bestie: the last four? All TCP. Don't come for me if you're on a different transport and they're feeling unbothered. That's just what the page says. 🫢

And that's the whole struct, every last field, exactly as documented, no notes. Go forth and configure your fabrics. ✨

bye bestie, love u, read the field docs πŸ’œ


This lil page came straight outta the API Manual, struct name struct nvme_fabrics_config, stamped July 2026, and it lives in libnvme(2). Mwah. πŸ’…βœ¨

πŸ“¦ where this page comes from