diff --git a/doc/api.rst.in b/doc/api.rst.in index 34787661..57188f63 100644 --- a/doc/api.rst.in +++ b/doc/api.rst.in @@ -16,3 +16,4 @@ functions. .. include:: rst/filters.rst .. include:: rst/util.rst .. include:: rst/log.rst +.. include:: rst/nbft.rst diff --git a/src/nvme/nbft.c b/src/nvme/nbft.c index f2ffc21e..b7d0dc84 100644 --- a/src/nvme/nbft.c +++ b/src/nvme/nbft.c @@ -246,6 +246,12 @@ static int read_ssns(struct nbft_info *nbft, ssns->nid_type = raw_ssns->nidt; ssns->nid = raw_ssns->nid; + /* flags */ + ssns->unavailable = !!(le16_to_cpu(raw_ssns->flags) & + NBFT_SSNS_UNAVAIL_NAMESPACE_UNAVAIL); + ssns->discovered = !!(le16_to_cpu(raw_ssns->flags) & + NBFT_SSNS_DISCOVERED_NAMESPACE); + /* security profile */ if (raw_ssns->security_desc_index) { ssns->security = security_from_index(nbft, raw_ssns->security_desc_index); diff --git a/src/nvme/nbft.h b/src/nvme/nbft.h index 6012e160..a9eaf6f4 100644 --- a/src/nvme/nbft.h +++ b/src/nvme/nbft.h @@ -12,6 +12,14 @@ #include #include "util.h" +/** + * DOC: nbft.h + * + * NVM Express Boot Specification, Revision 1.0 + * + * Note: this API is currently unstable, subject to further additions. + */ + /* * ACPI NBFT table structures (TP8012 Boot Specification rev. 1.0) */ @@ -994,17 +1002,17 @@ enum nbft_discovery_flags { /** * enum nbft_info_primary_admin_host_flag - Primary Administrative Host Descriptor Flags * @NBFT_INFO_PRIMARY_ADMIN_HOST_FLAG_NOT_INDICATED: Not Indicated by Driver: The driver - * that created this NBFT provided no - * administrative priority hint for - * this NBFT. + * that created this NBFT provided no + * administrative priority hint for + * this NBFT. * @NBFT_INFO_PRIMARY_ADMIN_HOST_FLAG_UNSELECTED: Unselected: The driver that created - * this NBFT explicitly indicated that - * this NBFT should not be prioritized - * over any other NBFT. + * this NBFT explicitly indicated that + * this NBFT should not be prioritized + * over any other NBFT. * @NBFT_INFO_PRIMARY_ADMIN_HOST_FLAG_SELECTED: Selected: The driver that created - * this NBFT explicitly indicated that - * this NBFT should be prioritized over - * any other NBFT. + * this NBFT explicitly indicated that + * this NBFT should be prioritized over + * any other NBFT. * @NBFT_INFO_PRIMARY_ADMIN_HOST_FLAG_RESERVED: Reserved. */ enum nbft_info_primary_admin_host_flag { @@ -1019,13 +1027,13 @@ enum nbft_info_primary_admin_host_flag { * @id: Host ID (raw UUID, length = 16 bytes). * @nqn: Host NQN. * @host_id_configured: HostID Configured Flag: value of True indicates that @id - * contains administratively-configured value, or driver - * default value if False. + * contains administratively-configured value, or driver + * default value if False. * @host_nqn_configured: Host NQN Configured Flag: value of True indicates that - * @nqn contains administratively-configured value, - * or driver default value if False. + * @nqn contains administratively-configured value, + * or driver default value if False. * @primary: Primary Administrative Host Descriptor, see - * &enum nbft_info_primary_admin_host_flag. + * &enum nbft_info_primary_admin_host_flag. */ struct nbft_info_host { unsigned char *id; @@ -1039,34 +1047,34 @@ struct nbft_info_host { * struct nbft_info_hfi_info_tcp - HFI Transport Info Descriptor - NVMe/TCP * @pci_sbdf: PCI Express Routing ID for the HFI Transport Function. * @mac_addr: MAC Address: The MAC address of this HFI, - * in EUI-48TM format. + * in EUI-48TM format. * @vlan: The VLAN identifier if the VLAN is associated with - * this HFI, as defined in IEEE 802.1q-2018 or zeroes - * if no VLAN is associated with this HFI. + * this HFI, as defined in IEEE 802.1q-2018 or zeroes + * if no VLAN is associated with this HFI. * @ip_origin: The source of Ethernet L3 configuration information - * used by the driver or 0 if not used. + * used by the driver or 0 if not used. * @ipaddr: The IPv4 or IPv6 address of this HFI. * @subnet_mask_prefix: The IPv4 or IPv6 subnet mask in CIDR routing prefix - * notation. + * notation. * @gateway_ipaddr: The IPv4 or IPv6 address of the IP gateway for this - * HFI or zeroes if no IP gateway is specified. + * HFI or zeroes if no IP gateway is specified. * @route_metric: The cost value for the route indicated by this HFI. * @primary_dns_ipaddr: The IPv4 or IPv6 address of the Primary DNS server - * for this HFI. + * for this HFI. * @secondary_dns_ipaddr: The IPv4 or IPv6 address of the Secondary DNS server - * for this HFI. + * for this HFI. * @dhcp_server_ipaddr: The IPv4 or IPv6 address of the DHCP server used - * to assign this HFI address. + * to assign this HFI address. * @host_name: The Host Name string. * @this_hfi_is_default_route: If True, then the BIOS utilized this interface - * described by HFI to be the default route with highest - * priority. If False, then routes are local to their - * own scope. + * described by HFI to be the default route with highest + * priority. If False, then routes are local to their + * own scope. * @dhcp_override: If True, then HFI information was populated - * by consuming the DHCP on this interface. If False, - * then the HFI information was set administratively - * by a configuration interface to the driver and - * pre-OS envrionment. + * by consuming the DHCP on this interface. If False, + * then the HFI information was set administratively + * by a configuration interface to the driver and + * pre-OS envrionment. */ struct nbft_info_hfi_info_tcp { __u32 pci_sbdf; @@ -1088,7 +1096,7 @@ struct nbft_info_hfi_info_tcp { /** * struct nbft_info_hfi - Host Fabric Interface (HFI) Descriptor * @index: HFI Descriptor Index: indicates the number of this HFI Descriptor - * in the Host Fabric Interface Descriptor List. + * in the Host Fabric Interface Descriptor List. * @transport: Transport Type string (e.g. 'tcp'). * @tcp_info: The HFI Transport Info Descriptor, see &struct nbft_info_hfi_info_tcp. */ @@ -1101,12 +1109,12 @@ struct nbft_info_hfi { /** * struct nbft_info_discovery - Discovery Descriptor * @index: The number of this Discovery Descriptor in the Discovery - * Descriptor List. + * Descriptor List. * @security: The Security Profile Descriptor, see &struct nbft_info_security. * @hfi: The HFI Descriptor associated with this Discovery Descriptor. - * See &struct nbft_info_hfi. + * See &struct nbft_info_hfi. * @uri: A URI which indicates an NVMe Discovery controller associated - * with this Discovery Descriptor. + * with this Discovery Descriptor. * @nqn: An NVMe Discovery controller NQN. */ struct nbft_info_discovery { @@ -1120,7 +1128,7 @@ struct nbft_info_discovery { /** * struct nbft_info_security - Security Profile Descriptor * @index: The number of this Security Profile Descriptor in the Security - * Profile Descriptor List. + * Profile Descriptor List. */ struct nbft_info_security { int index; @@ -1143,35 +1151,39 @@ enum nbft_info_nid_type { /** * struct nbft_info_subsystem_ns - Subsystem Namespace (SSNS) info - * @index: SSNS Descriptor Index in the descriptor list. + * @index: SSNS Descriptor Index in the descriptor list. * @discovery: Primary Discovery Controller associated with - * this SSNS Descriptor. + * this SSNS Descriptor. * @security: Security Profile Descriptor associated with - * this namespace. + * this namespace. * @num_hfis: Number of HFIs. * @hfis: List of HFIs associated with this namespace. - * Includes the primary HFI at the first position - * and all secondary HFIs. This array is null-terminated. + * Includes the primary HFI at the first position + * and all secondary HFIs. This array is null-terminated. * @transport: Transport Type string (e.g. 'tcp'). * @traddr: Subsystem Transport Address. * @trsvcid: Subsystem Transport Service Identifier. * @subsys_port_id: The Subsystem Port ID. * @nsid: The Namespace ID of this descriptor or when @nid - * should be used instead. + * should be used instead. * @nid_type: Namespace Identifier Type, see &enum nbft_info_nid_type. * @nid: The Namespace Identifier value. * @subsys_nqn: Subsystem and Namespace NQN. * @pdu_header_digest_required: PDU Header Digest (HDGST) Flag: the use of NVM Header - * Digest Enabled is required. - * @data_digest_required: Data Digest (DDGST) Flag: the use of NVM Data Digest - * Enabled is required. + * Digest Enabled is required. + * @data_digest_required: Data Digest (DDGST) Flag: the use of NVM Data Digest + * Enabled is required. * @controller_id: Controller ID (SSNS Extended Information Descriptor): - * The controller ID associated with the Admin Queue - * or 0 if not supported. + * The controller ID associated with the Admin Queue + * or 0 if not supported. * @asqsz: Admin Submission Queue Size (SSNS Extended Information - * Descriptor) or 0 if not supported. + * Descriptor) or 0 if not supported. * @dhcp_root_path_string: DHCP Root Path Override string (SSNS Extended - * Information Descriptor). + * Information Descriptor). + * @discovered: Indicates that this namespace was acquired + * through discovery. + * @unavailable: Namespace is unavailable as indicated by + * the pre-OS driver. */ struct nbft_info_subsystem_ns { int index; @@ -1192,6 +1204,8 @@ struct nbft_info_subsystem_ns { int controller_id; int asqsz; char *dhcp_root_path_string; + bool discovered; + bool unavailable; }; /** diff --git a/test/nbft/diffs/NBFT-Dell.PowerEdge.R660-fw1.5.5-mpath+discovery b/test/nbft/diffs/NBFT-Dell.PowerEdge.R660-fw1.5.5-mpath+discovery new file mode 100644 index 00000000..7d44d922 --- /dev/null +++ b/test/nbft/diffs/NBFT-Dell.PowerEdge.R660-fw1.5.5-mpath+discovery @@ -0,0 +1,312 @@ +raw_nbft_size=4147 +host.id=44454c4c44010448030b8c04f445833 +host.nqn=nqn.2014-08.org.nvmexpress:uuid:4c4c4544-0044-4410-8030-b8c04f445833 +host.host_id_configured=1 +host.host_nqn_configured=1 +host.primary=0 +hfi_list[0]->index=1 +hfi_list[0]->transport=tcp +hfi_list[0]->tcp_info.pci_sbdf=27136 +hfi_list[0]->tcp_info.mac_addr=062bcbeb70 +hfi_list[0]->tcp_info.vlan=0 +hfi_list[0]->tcp_info.ip_origin=95 +hfi_list[0]->tcp_info.ipaddr=172.18.240.1 +hfi_list[0]->tcp_info.subnet_mask_prefix=24 +hfi_list[0]->tcp_info.gateway_ipaddr=0.0.0.0 +hfi_list[0]->tcp_info.route_metric=500 +hfi_list[0]->tcp_info.primary_dns_ipaddr=0.0.0.0 +hfi_list[0]->tcp_info.secondary_dns_ipaddr=0.0.0.0 +hfi_list[0]->tcp_info.dhcp_server_ipaddr= +hfi_list[0]->tcp_info.host_name=(null) +hfi_list[0]->tcp_info.this_hfi_is_default_route=1 +hfi_list[0]->tcp_info.dhcp_override=0 +hfi_list[1]->index=2 +hfi_list[1]->transport=tcp +hfi_list[1]->tcp_info.pci_sbdf=27137 +hfi_list[1]->tcp_info.mac_addr=062bcbeb71 +hfi_list[1]->tcp_info.vlan=0 +hfi_list[1]->tcp_info.ip_origin=95 +hfi_list[1]->tcp_info.ipaddr=172.18.230.2 +hfi_list[1]->tcp_info.subnet_mask_prefix=24 +hfi_list[1]->tcp_info.gateway_ipaddr=0.0.0.0 +hfi_list[1]->tcp_info.route_metric=500 +hfi_list[1]->tcp_info.primary_dns_ipaddr=0.0.0.0 +hfi_list[1]->tcp_info.secondary_dns_ipaddr=0.0.0.0 +hfi_list[1]->tcp_info.dhcp_server_ipaddr= +hfi_list[1]->tcp_info.host_name=(null) +hfi_list[1]->tcp_info.this_hfi_is_default_route=1 +hfi_list[1]->tcp_info.dhcp_override=0 +discovery_list[0]->index=1 +discovery_list[0]->hfi->index=1 +discovery_list[0]->uri=nvme+tcp://172.18.240.70:8009/ +discovery_list[0]->nqn=nqn.2014-08.org.nvmexpress.discovery +discovery_list[1]->index=2 +discovery_list[1]->hfi->index=2 +discovery_list[1]->uri=nvme+tcp://172.18.230.70:8009/ +discovery_list[1]->nqn=nqn.2014-08.org.nvmexpress.discovery +subsystem_ns_list[0]->index=1 +subsystem_ns_list[0]->discovery->index=1 +subsystem_ns_list[0]->num_hfis=1 +subsystem_ns_list[0]->hfis[0]->index=1 +subsystem_ns_list[0]->transport=tcp +subsystem_ns_list[0]->traddr=172.18.240.60 +subsystem_ns_list[0]->trsvcid=4420 +subsystem_ns_list[0]->subsys_port_id=0 +subsystem_ns_list[0]->nsid=270 +subsystem_ns_list[0]->nid_type=2 +subsystem_ns_list[0]->nid=5380b42fc0c5de718ccf9680be3ca7 +subsystem_ns_list[0]->subsys_nqn=nqn.1988-11.com.dell:powerstore:00:88b402df2d762AA7AF94 +subsystem_ns_list[0]->pdu_header_digest_required=0 +subsystem_ns_list[0]->data_digest_required=0 +subsystem_ns_list[0]->controller_id=4186 +subsystem_ns_list[0]->asqsz=0 +subsystem_ns_list[0]->dhcp_root_path_string=(null) +subsystem_ns_list[0]->discovered=1 +subsystem_ns_list[0]->unavailable=0 +subsystem_ns_list[1]->index=2 +subsystem_ns_list[1]->discovery->index=1 +subsystem_ns_list[1]->num_hfis=1 +subsystem_ns_list[1]->hfis[0]->index=1 +subsystem_ns_list[1]->transport=tcp +subsystem_ns_list[1]->traddr=172.18.240.60 +subsystem_ns_list[1]->trsvcid=4420 +subsystem_ns_list[1]->subsys_port_id=0 +subsystem_ns_list[1]->nsid=1671 +subsystem_ns_list[1]->nid_type=2 +subsystem_ns_list[1]->nid=f4c66fce74afdb8ccf96807eaeae +subsystem_ns_list[1]->subsys_nqn=nqn.1988-11.com.dell:powerstore:00:88b402df2d762AA7AF94 +subsystem_ns_list[1]->pdu_header_digest_required=0 +subsystem_ns_list[1]->data_digest_required=0 +subsystem_ns_list[1]->controller_id=4186 +subsystem_ns_list[1]->asqsz=0 +subsystem_ns_list[1]->dhcp_root_path_string=(null) +subsystem_ns_list[1]->discovered=1 +subsystem_ns_list[1]->unavailable=0 +subsystem_ns_list[2]->index=3 +subsystem_ns_list[2]->discovery->index=1 +subsystem_ns_list[2]->num_hfis=1 +subsystem_ns_list[2]->hfis[0]->index=1 +subsystem_ns_list[2]->transport=tcp +subsystem_ns_list[2]->traddr=172.18.240.61 +subsystem_ns_list[2]->trsvcid=4420 +subsystem_ns_list[2]->subsys_port_id=0 +subsystem_ns_list[2]->nsid=270 +subsystem_ns_list[2]->nid_type=2 +subsystem_ns_list[2]->nid=5380b42fc0c5de718ccf9680be3ca7 +subsystem_ns_list[2]->subsys_nqn=nqn.1988-11.com.dell:powerstore:00:88b402df2d762AA7AF94 +subsystem_ns_list[2]->pdu_header_digest_required=0 +subsystem_ns_list[2]->data_digest_required=0 +subsystem_ns_list[2]->controller_id=52 +subsystem_ns_list[2]->asqsz=0 +subsystem_ns_list[2]->dhcp_root_path_string=(null) +subsystem_ns_list[2]->discovered=1 +subsystem_ns_list[2]->unavailable=0 +subsystem_ns_list[3]->index=4 +subsystem_ns_list[3]->discovery->index=1 +subsystem_ns_list[3]->num_hfis=1 +subsystem_ns_list[3]->hfis[0]->index=1 +subsystem_ns_list[3]->transport=tcp +subsystem_ns_list[3]->traddr=172.18.240.61 +subsystem_ns_list[3]->trsvcid=4420 +subsystem_ns_list[3]->subsys_port_id=0 +subsystem_ns_list[3]->nsid=1671 +subsystem_ns_list[3]->nid_type=2 +subsystem_ns_list[3]->nid=f4c66fce74afdb8ccf96807eaeae +subsystem_ns_list[3]->subsys_nqn=nqn.1988-11.com.dell:powerstore:00:88b402df2d762AA7AF94 +subsystem_ns_list[3]->pdu_header_digest_required=0 +subsystem_ns_list[3]->data_digest_required=0 +subsystem_ns_list[3]->controller_id=52 +subsystem_ns_list[3]->asqsz=0 +subsystem_ns_list[3]->dhcp_root_path_string=(null) +subsystem_ns_list[3]->discovered=1 +subsystem_ns_list[3]->unavailable=0 +subsystem_ns_list[4]->index=5 +subsystem_ns_list[4]->discovery->index=1 +subsystem_ns_list[4]->num_hfis=1 +subsystem_ns_list[4]->hfis[0]->index=1 +subsystem_ns_list[4]->transport=tcp +subsystem_ns_list[4]->traddr=172.18.240.51 +subsystem_ns_list[4]->trsvcid=4420 +subsystem_ns_list[4]->subsys_port_id=0 +subsystem_ns_list[4]->nsid=1 +subsystem_ns_list[4]->nid_type=3 +subsystem_ns_list[4]->nid=6be5e52f7fa24d57805b8cdce240e4c +subsystem_ns_list[4]->subsys_nqn=nqn.1992-08.com.netapp:sn.643ecb551e6b11eda647d039ea98949f:subsystem.dellr660 +subsystem_ns_list[4]->pdu_header_digest_required=0 +subsystem_ns_list[4]->data_digest_required=0 +subsystem_ns_list[4]->controller_id=6209 +subsystem_ns_list[4]->asqsz=0 +subsystem_ns_list[4]->dhcp_root_path_string=(null) +subsystem_ns_list[4]->discovered=1 +subsystem_ns_list[4]->unavailable=0 +subsystem_ns_list[5]->index=6 +subsystem_ns_list[5]->discovery->index=1 +subsystem_ns_list[5]->num_hfis=1 +subsystem_ns_list[5]->hfis[0]->index=1 +subsystem_ns_list[5]->transport=tcp +subsystem_ns_list[5]->traddr=172.18.240.50 +subsystem_ns_list[5]->trsvcid=4420 +subsystem_ns_list[5]->subsys_port_id=0 +subsystem_ns_list[5]->nsid=1 +subsystem_ns_list[5]->nid_type=3 +subsystem_ns_list[5]->nid=6be5e52f7fa24d57805b8cdce240e4c +subsystem_ns_list[5]->subsys_nqn=nqn.1992-08.com.netapp:sn.643ecb551e6b11eda647d039ea98949f:subsystem.dellr660 +subsystem_ns_list[5]->pdu_header_digest_required=0 +subsystem_ns_list[5]->data_digest_required=0 +subsystem_ns_list[5]->controller_id=6208 +subsystem_ns_list[5]->asqsz=0 +subsystem_ns_list[5]->dhcp_root_path_string=(null) +subsystem_ns_list[5]->discovered=1 +subsystem_ns_list[5]->unavailable=0 +subsystem_ns_list[6]->index=7 +subsystem_ns_list[6]->discovery->index=1 +subsystem_ns_list[6]->num_hfis=1 +subsystem_ns_list[6]->hfis[0]->index=1 +subsystem_ns_list[6]->transport=tcp +subsystem_ns_list[6]->traddr=172.18.230.51 +subsystem_ns_list[6]->trsvcid=4420 +subsystem_ns_list[6]->subsys_port_id=0 +subsystem_ns_list[6]->nsid=0 +subsystem_ns_list[6]->nid_type=0 +subsystem_ns_list[6]->nid=0000000000000000 +subsystem_ns_list[6]->subsys_nqn=nqn.1992-08.com.netapp:sn.643ecb551e6b11eda647d039ea98949f:subsystem.dellr660 +subsystem_ns_list[6]->pdu_header_digest_required=0 +subsystem_ns_list[6]->data_digest_required=0 +subsystem_ns_list[6]->controller_id=6208 +subsystem_ns_list[6]->asqsz=0 +subsystem_ns_list[6]->dhcp_root_path_string=(null) +subsystem_ns_list[6]->discovered=1 +subsystem_ns_list[6]->unavailable=1 +subsystem_ns_list[7]->index=8 +subsystem_ns_list[7]->discovery->index=1 +subsystem_ns_list[7]->num_hfis=1 +subsystem_ns_list[7]->hfis[0]->index=1 +subsystem_ns_list[7]->transport=tcp +subsystem_ns_list[7]->traddr=172.18.230.50 +subsystem_ns_list[7]->trsvcid=4420 +subsystem_ns_list[7]->subsys_port_id=0 +subsystem_ns_list[7]->nsid=0 +subsystem_ns_list[7]->nid_type=0 +subsystem_ns_list[7]->nid=0000000000000000 +subsystem_ns_list[7]->subsys_nqn=nqn.1992-08.com.netapp:sn.643ecb551e6b11eda647d039ea98949f:subsystem.dellr660 +subsystem_ns_list[7]->pdu_header_digest_required=0 +subsystem_ns_list[7]->data_digest_required=0 +subsystem_ns_list[7]->controller_id=6208 +subsystem_ns_list[7]->asqsz=0 +subsystem_ns_list[7]->dhcp_root_path_string=(null) +subsystem_ns_list[7]->discovered=1 +subsystem_ns_list[7]->unavailable=1 +subsystem_ns_list[8]->index=9 +subsystem_ns_list[8]->discovery->index=2 +subsystem_ns_list[8]->num_hfis=1 +subsystem_ns_list[8]->hfis[0]->index=2 +subsystem_ns_list[8]->transport=tcp +subsystem_ns_list[8]->traddr=172.18.230.61 +subsystem_ns_list[8]->trsvcid=4420 +subsystem_ns_list[8]->subsys_port_id=0 +subsystem_ns_list[8]->nsid=270 +subsystem_ns_list[8]->nid_type=2 +subsystem_ns_list[8]->nid=5380b42fc0c5de718ccf9680be3ca7 +subsystem_ns_list[8]->subsys_nqn=nqn.1988-11.com.dell:powerstore:00:88b402df2d762AA7AF94 +subsystem_ns_list[8]->pdu_header_digest_required=0 +subsystem_ns_list[8]->data_digest_required=0 +subsystem_ns_list[8]->controller_id=51 +subsystem_ns_list[8]->asqsz=0 +subsystem_ns_list[8]->dhcp_root_path_string=(null) +subsystem_ns_list[8]->discovered=1 +subsystem_ns_list[8]->unavailable=0 +subsystem_ns_list[9]->index=10 +subsystem_ns_list[9]->discovery->index=2 +subsystem_ns_list[9]->num_hfis=1 +subsystem_ns_list[9]->hfis[0]->index=2 +subsystem_ns_list[9]->transport=tcp +subsystem_ns_list[9]->traddr=172.18.230.61 +subsystem_ns_list[9]->trsvcid=4420 +subsystem_ns_list[9]->subsys_port_id=0 +subsystem_ns_list[9]->nsid=1671 +subsystem_ns_list[9]->nid_type=2 +subsystem_ns_list[9]->nid=f4c66fce74afdb8ccf96807eaeae +subsystem_ns_list[9]->subsys_nqn=nqn.1988-11.com.dell:powerstore:00:88b402df2d762AA7AF94 +subsystem_ns_list[9]->pdu_header_digest_required=0 +subsystem_ns_list[9]->data_digest_required=0 +subsystem_ns_list[9]->controller_id=51 +subsystem_ns_list[9]->asqsz=0 +subsystem_ns_list[9]->dhcp_root_path_string=(null) +subsystem_ns_list[9]->discovered=1 +subsystem_ns_list[9]->unavailable=0 +subsystem_ns_list[10]->index=11 +subsystem_ns_list[10]->discovery->index=2 +subsystem_ns_list[10]->num_hfis=1 +subsystem_ns_list[10]->hfis[0]->index=2 +subsystem_ns_list[10]->transport=tcp +subsystem_ns_list[10]->traddr=172.18.230.60 +subsystem_ns_list[10]->trsvcid=4420 +subsystem_ns_list[10]->subsys_port_id=0 +subsystem_ns_list[10]->nsid=270 +subsystem_ns_list[10]->nid_type=2 +subsystem_ns_list[10]->nid=5380b42fc0c5de718ccf9680be3ca7 +subsystem_ns_list[10]->subsys_nqn=nqn.1988-11.com.dell:powerstore:00:88b402df2d762AA7AF94 +subsystem_ns_list[10]->pdu_header_digest_required=0 +subsystem_ns_list[10]->data_digest_required=0 +subsystem_ns_list[10]->controller_id=4185 +subsystem_ns_list[10]->asqsz=0 +subsystem_ns_list[10]->dhcp_root_path_string=(null) +subsystem_ns_list[10]->discovered=1 +subsystem_ns_list[10]->unavailable=0 +subsystem_ns_list[11]->index=12 +subsystem_ns_list[11]->discovery->index=2 +subsystem_ns_list[11]->num_hfis=1 +subsystem_ns_list[11]->hfis[0]->index=2 +subsystem_ns_list[11]->transport=tcp +subsystem_ns_list[11]->traddr=172.18.230.60 +subsystem_ns_list[11]->trsvcid=4420 +subsystem_ns_list[11]->subsys_port_id=0 +subsystem_ns_list[11]->nsid=1671 +subsystem_ns_list[11]->nid_type=2 +subsystem_ns_list[11]->nid=f4c66fce74afdb8ccf96807eaeae +subsystem_ns_list[11]->subsys_nqn=nqn.1988-11.com.dell:powerstore:00:88b402df2d762AA7AF94 +subsystem_ns_list[11]->pdu_header_digest_required=0 +subsystem_ns_list[11]->data_digest_required=0 +subsystem_ns_list[11]->controller_id=4185 +subsystem_ns_list[11]->asqsz=0 +subsystem_ns_list[11]->dhcp_root_path_string=(null) +subsystem_ns_list[11]->discovered=1 +subsystem_ns_list[11]->unavailable=0 +subsystem_ns_list[12]->index=13 +subsystem_ns_list[12]->discovery->index=2 +subsystem_ns_list[12]->num_hfis=1 +subsystem_ns_list[12]->hfis[0]->index=2 +subsystem_ns_list[12]->transport=tcp +subsystem_ns_list[12]->traddr=172.18.230.51 +subsystem_ns_list[12]->trsvcid=4420 +subsystem_ns_list[12]->subsys_port_id=0 +subsystem_ns_list[12]->nsid=1 +subsystem_ns_list[12]->nid_type=3 +subsystem_ns_list[12]->nid=6be5e52f7fa24d57805b8cdce240e4c +subsystem_ns_list[12]->subsys_nqn=nqn.1992-08.com.netapp:sn.643ecb551e6b11eda647d039ea98949f:subsystem.dellr660 +subsystem_ns_list[12]->pdu_header_digest_required=0 +subsystem_ns_list[12]->data_digest_required=0 +subsystem_ns_list[12]->controller_id=6273 +subsystem_ns_list[12]->asqsz=0 +subsystem_ns_list[12]->dhcp_root_path_string=(null) +subsystem_ns_list[12]->discovered=1 +subsystem_ns_list[12]->unavailable=0 +subsystem_ns_list[13]->index=14 +subsystem_ns_list[13]->discovery->index=2 +subsystem_ns_list[13]->num_hfis=1 +subsystem_ns_list[13]->hfis[0]->index=2 +subsystem_ns_list[13]->transport=tcp +subsystem_ns_list[13]->traddr=172.18.230.50 +subsystem_ns_list[13]->trsvcid=4420 +subsystem_ns_list[13]->subsys_port_id=0 +subsystem_ns_list[13]->nsid=1 +subsystem_ns_list[13]->nid_type=3 +subsystem_ns_list[13]->nid=6be5e52f7fa24d57805b8cdce240e4c +subsystem_ns_list[13]->subsys_nqn=nqn.1992-08.com.netapp:sn.643ecb551e6b11eda647d039ea98949f:subsystem.dellr660 +subsystem_ns_list[13]->pdu_header_digest_required=0 +subsystem_ns_list[13]->data_digest_required=0 +subsystem_ns_list[13]->controller_id=6272 +subsystem_ns_list[13]->asqsz=0 +subsystem_ns_list[13]->dhcp_root_path_string=(null) +subsystem_ns_list[13]->discovered=1 +subsystem_ns_list[13]->unavailable=0 diff --git a/test/nbft/diffs/NBFT-Dell.PowerEdge.R660-fw1.5.5-single b/test/nbft/diffs/NBFT-Dell.PowerEdge.R660-fw1.5.5-single index 72a34def..17631fb3 100644 --- a/test/nbft/diffs/NBFT-Dell.PowerEdge.R660-fw1.5.5-single +++ b/test/nbft/diffs/NBFT-Dell.PowerEdge.R660-fw1.5.5-single @@ -36,6 +36,8 @@ subsystem_ns_list[0]->data_digest_required=0 subsystem_ns_list[0]->controller_id=4105 subsystem_ns_list[0]->asqsz=0 subsystem_ns_list[0]->dhcp_root_path_string=(null) +subsystem_ns_list[0]->discovered=0 +subsystem_ns_list[0]->unavailable=0 subsystem_ns_list[1]->index=2 subsystem_ns_list[1]->num_hfis=1 subsystem_ns_list[1]->hfis[0]->index=1 @@ -52,3 +54,5 @@ subsystem_ns_list[1]->data_digest_required=0 subsystem_ns_list[1]->controller_id=4105 subsystem_ns_list[1]->asqsz=0 subsystem_ns_list[1]->dhcp_root_path_string=(null) +subsystem_ns_list[1]->discovered=0 +subsystem_ns_list[1]->unavailable=0 diff --git a/test/nbft/diffs/NBFT-Dell.PowerEdge.R760 b/test/nbft/diffs/NBFT-Dell.PowerEdge.R760 index d7fab3f2..5bb854cd 100644 --- a/test/nbft/diffs/NBFT-Dell.PowerEdge.R760 +++ b/test/nbft/diffs/NBFT-Dell.PowerEdge.R760 @@ -41,6 +41,8 @@ subsystem_ns_list[0]->data_digest_required=0 subsystem_ns_list[0]->controller_id=5 subsystem_ns_list[0]->asqsz=0 subsystem_ns_list[0]->dhcp_root_path_string=(null) +subsystem_ns_list[0]->discovered=1 +subsystem_ns_list[0]->unavailable=0 subsystem_ns_list[1]->index=2 subsystem_ns_list[1]->discovery->index=1 subsystem_ns_list[1]->num_hfis=1 @@ -58,3 +60,5 @@ subsystem_ns_list[1]->data_digest_required=0 subsystem_ns_list[1]->controller_id=4166 subsystem_ns_list[1]->asqsz=0 subsystem_ns_list[1]->dhcp_root_path_string=(null) +subsystem_ns_list[1]->discovered=1 +subsystem_ns_list[1]->unavailable=0 diff --git a/test/nbft/diffs/NBFT-auto-ipv6 b/test/nbft/diffs/NBFT-auto-ipv6 index 83ee6430..4e198309 100644 --- a/test/nbft/diffs/NBFT-auto-ipv6 +++ b/test/nbft/diffs/NBFT-auto-ipv6 @@ -36,3 +36,5 @@ subsystem_ns_list[0]->data_digest_required=0 subsystem_ns_list[0]->controller_id=1 subsystem_ns_list[0]->asqsz=0 subsystem_ns_list[0]->dhcp_root_path_string=(null) +subsystem_ns_list[0]->discovered=0 +subsystem_ns_list[0]->unavailable=0 diff --git a/test/nbft/diffs/NBFT-dhcp-ipv4 b/test/nbft/diffs/NBFT-dhcp-ipv4 index 067079d9..4c9c61cb 100644 --- a/test/nbft/diffs/NBFT-dhcp-ipv4 +++ b/test/nbft/diffs/NBFT-dhcp-ipv4 @@ -41,3 +41,5 @@ subsystem_ns_list[0]->data_digest_required=0 subsystem_ns_list[0]->controller_id=7 subsystem_ns_list[0]->asqsz=0 subsystem_ns_list[0]->dhcp_root_path_string=(null) +subsystem_ns_list[0]->discovered=1 +subsystem_ns_list[0]->unavailable=0 diff --git a/test/nbft/diffs/NBFT-dhcp-ipv6 b/test/nbft/diffs/NBFT-dhcp-ipv6 index 11c974f6..27c54fd7 100644 --- a/test/nbft/diffs/NBFT-dhcp-ipv6 +++ b/test/nbft/diffs/NBFT-dhcp-ipv6 @@ -36,3 +36,5 @@ subsystem_ns_list[0]->data_digest_required=0 subsystem_ns_list[0]->controller_id=34 subsystem_ns_list[0]->asqsz=0 subsystem_ns_list[0]->dhcp_root_path_string=(null) +subsystem_ns_list[0]->discovered=0 +subsystem_ns_list[0]->unavailable=0 diff --git a/test/nbft/diffs/NBFT-rhpoc b/test/nbft/diffs/NBFT-rhpoc index d849b6e1..027ea402 100644 --- a/test/nbft/diffs/NBFT-rhpoc +++ b/test/nbft/diffs/NBFT-rhpoc @@ -36,3 +36,5 @@ subsystem_ns_list[0]->data_digest_required=0 subsystem_ns_list[0]->controller_id=12 subsystem_ns_list[0]->asqsz=0 subsystem_ns_list[0]->dhcp_root_path_string=(null) +subsystem_ns_list[0]->discovered=0 +subsystem_ns_list[0]->unavailable=0 diff --git a/test/nbft/diffs/NBFT-static-ipv4 b/test/nbft/diffs/NBFT-static-ipv4 index a6f38597..697d0e53 100644 --- a/test/nbft/diffs/NBFT-static-ipv4 +++ b/test/nbft/diffs/NBFT-static-ipv4 @@ -36,3 +36,5 @@ subsystem_ns_list[0]->data_digest_required=0 subsystem_ns_list[0]->controller_id=38 subsystem_ns_list[0]->asqsz=0 subsystem_ns_list[0]->dhcp_root_path_string=(null) +subsystem_ns_list[0]->discovered=0 +subsystem_ns_list[0]->unavailable=0 diff --git a/test/nbft/diffs/NBFT-static-ipv4-discovery b/test/nbft/diffs/NBFT-static-ipv4-discovery index 5bf0e46f..22473a0d 100644 --- a/test/nbft/diffs/NBFT-static-ipv4-discovery +++ b/test/nbft/diffs/NBFT-static-ipv4-discovery @@ -41,3 +41,5 @@ subsystem_ns_list[0]->data_digest_required=0 subsystem_ns_list[0]->controller_id=13 subsystem_ns_list[0]->asqsz=0 subsystem_ns_list[0]->dhcp_root_path_string=(null) +subsystem_ns_list[0]->discovered=1 +subsystem_ns_list[0]->unavailable=0 diff --git a/test/nbft/diffs/NBFT-static-ipv6 b/test/nbft/diffs/NBFT-static-ipv6 index c6ad844d..12554f55 100644 --- a/test/nbft/diffs/NBFT-static-ipv6 +++ b/test/nbft/diffs/NBFT-static-ipv6 @@ -36,3 +36,5 @@ subsystem_ns_list[0]->data_digest_required=0 subsystem_ns_list[0]->controller_id=9 subsystem_ns_list[0]->asqsz=0 subsystem_ns_list[0]->dhcp_root_path_string=(null) +subsystem_ns_list[0]->discovered=0 +subsystem_ns_list[0]->unavailable=0 diff --git a/test/nbft/meson.build b/test/nbft/meson.build index 919bf831..bf4c8949 100644 --- a/test/nbft/meson.build +++ b/test/nbft/meson.build @@ -19,7 +19,8 @@ tables = [ 'NBFT-static-ipv4-discovery', 'NBFT-static-ipv6', 'NBFT-Dell.PowerEdge.R760', - 'NBFT-Dell.PowerEdge.R660-fw1.5.5-single' + 'NBFT-Dell.PowerEdge.R660-fw1.5.5-single', + 'NBFT-Dell.PowerEdge.R660-fw1.5.5-mpath+discovery' ] tables_bad = [ diff --git a/test/nbft/nbft-dump.c b/test/nbft/nbft-dump.c index 3ff5efa4..5fb2f2e9 100644 --- a/test/nbft/nbft-dump.c +++ b/test/nbft/nbft-dump.c @@ -96,6 +96,8 @@ static void print_nbft(struct nbft_info *table) printf("subsystem_ns_list[%u]->controller_id=%d\n", i, (*ssns)->controller_id); printf("subsystem_ns_list[%u]->asqsz=%d\n", i, (*ssns)->asqsz); printf("subsystem_ns_list[%u]->dhcp_root_path_string=%s\n", i, (*ssns)->dhcp_root_path_string); + printf("subsystem_ns_list[%u]->discovered=%d\n", i, (*ssns)->discovered); + printf("subsystem_ns_list[%u]->unavailable=%d\n", i, (*ssns)->unavailable); } } diff --git a/test/nbft/tables/NBFT-Dell.PowerEdge.R660-fw1.5.5-mpath+discovery b/test/nbft/tables/NBFT-Dell.PowerEdge.R660-fw1.5.5-mpath+discovery new file mode 100644 index 00000000..0fbb35cf Binary files /dev/null and b/test/nbft/tables/NBFT-Dell.PowerEdge.R660-fw1.5.5-mpath+discovery differ