1libnvme(9) API Manual libnvme(9)
2
3
4
6 struct nbft_ssns - Subsystem Namespace (SSNS) Descriptor (Figure 15)
7
9 struct nbft_ssns {
10 __u8 structure_id;
11 __le16 index;
12 __le16 flags;
13 __u8 trtype;
14 __le16 trflags;
15 __u8 primary_discovery_ctrl_index;
16 __u8 reserved1;
17 struct nbft_heap_obj subsys_traddr_obj;
18 struct nbft_heap_obj subsys_trsvcid_obj;
19 __le16 subsys_port_id;
20 __le32 nsid;
21 __u8 nidt;
22 __u8 nid[16];
23 __u8 security_desc_index;
24 __u8 primary_hfi_desc_index;
25 __u8 reserved2;
26 struct nbft_heap_obj secondary_hfi_assoc_obj;
27 struct nbft_heap_obj subsys_ns_nqn_obj;
28 struct nbft_heap_obj ssns_extended_info_desc_obj;
29 __u8 reserved3[62];
30 };
31
32
34 structure_id
35 Structure ID: This field shall be set to 4h (i.e., SSNS;
36 #NBFT_DESC_SSNS).
37
38 index SSNS Descriptor Index: This field indicates the number of
39 this Subsystem Namespace Descriptor in the Subsystem Name‐
40 space Descriptor List.
41
42 flags SSNS Flags, see enum nbft_ssns_flags.
43
44 trtype Transport Type, see enum nbft_trtype.
45
46 trflags Transport Specific Flags, see enum nbft_ssns_trflags.
47
48 primary_discovery_ctrl_index
49 Primary Discovery Controller Index: The Discovery Descrip‐
50 tor Index field of the Discovery Descriptor (see struct
51 nbft_discovery) that is associated with this SSNS Descrip‐
52 tor. If a Discovery controller was used to establish this
53 record this value shall be set to a non-zero value. If this
54 namespace was associated with multiple Discovery con‐
55 trollers, those Discovery controllers shall have records in
56 the Discovery Descriptor to facilitate multi-path rediscov‐
57 ery as required. If no Discovery controller was utilized to
58 inform this namespace record, this field shall be cleared
59 to 0h.
60
61 reserved1 Reserved.
62
63 subsys_traddr_obj
64 Subsystem Transport Address Heap Object Reference: This
65 field indicates the location and size of a heap object con‐
66 taining the Subsystem Transport Address. For IP based
67 transports types, shall be an IP Address.
68
69 subsys_trsvcid_obj
70 Subsystem Transport Service Identifier Heap Object Refer‐
71 ence: This field indicates the location and size of a heap
72 object containing an array of bytes indicating the Subsys‐
73 tem Transport Service Identifier. See enum nbft_trtype.
74
75 subsys_port_id
76 Subsystem Port ID: Port in the NVM subsystem associated
77 with this transport address used by the pre-OS driver.
78
79 nsid Namespace ID: This field indicates the namespace identifier
80 (NSID) of the namespace indicated by this descriptor. This
81 field shall be cleared to 0h if not specified by the user.
82 If this value is cleared to 0h, then consumers of the NBFT
83 shall rely on the NID.
84
85 nidt Namespace Identifier Type (NIDT): This field contains the
86 value of the Namespace Identifier Type (NIDT) field in the
87 Namespace Identification Descriptor for the namespace indi‐
88 cated by this descriptor. If a namespace supports multiple
89 NIDT entries for uniqueness, the order of preference is
90 NIDT field value of 3h (i.e., UUID) before 2h (i.e., NS‐
91 GUID), and 2h before 1h (i.e., EUI-64).
92
93 nid Namespace Identifier (NID): This field contains the value
94 of the Namespace Identifier (NID) field in the Namespace
95 Identification Descriptor for the namespace indicated by
96 this descriptor.
97
98 security_desc_index
99 Security Profile Descriptor Index: If the Use Security Flag
100 bit in the SSNS Flags field is set to 1h, then this field
101 indicates the value of the Security Profile Descriptor In‐
102 dex field of the Security Profile Descriptor (see struct
103 nbft_security) associated with this namespace. If the Use
104 Security Flag bit is cleared to 0h, then no Security Pro‐
105 file Descriptor is associated with this namespace and this
106 field is reserved.
107
108 primary_hfi_desc_index
109 Primary HFI Descriptor Index: This field indicates the
110 value of the HFI Descriptor Index field of the HFI Descrip‐
111 tor (see struct nbft_hfi) for the interface associated with
112 this namespace. If multiple HFIs are associated with this
113 record, subsequent interfaces should be populated in the
114 Secondary HFI Associations field.
115
116 reserved2 Reserved.
117
118 secondary_hfi_assoc_obj
119 Secondary HFI Associations Heap Object Reference: If this
120 field is set to a non-zero value, then this field indicates
121 an array of bytes, in which each byte contains the value of
122 the HFI Descriptor Index field of an HFI Descriptor in the
123 HFI Descriptor List. If this field is cleared to 0h, then
124 no secondary HFI associations are specified.
125
126 subsys_ns_nqn_obj
127 Subsystem and Namespace NQN Heap Object Reference: This
128 field indicates the location and size of a heap object con‐
129 taining the Subsystem and Namespace NQN.
130
131 ssns_extended_info_desc_obj
132 SSNS Extended Information Descriptor Heap Object Reference:
133 If the SSNS Extended Info In-use Flag bit is set to 1h,
134 then this field indicates the offset in bytes of a heap ob‐
135 ject containing an SSNS Extended Information Descriptor
136 (see struct nbft_ssns_ext_info) heap object from byte off‐
137 set 0h of the NBFT Table Header. If the SSNS Extended Info
138 In-use Flag bit is cleared to 0h, then this field is re‐
139 served.
140
141 reserved3 Reserved.
142
143
144
145October 2023 struct nbft_ssns libnvme(9)