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
- ubuntu stonking: libnvme-dev 1.16.2-1build1 Β· LGPL-2.1-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms