From 46f46dcc0ad7d0cda2f41c1ccfa137d2413ff209 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 5 May 2024 13:06:51 +0200 Subject: Merging upstream version 1.9. Signed-off-by: Daniel Baumann --- ...BFT-Dell.PowerEdge.R660-fw1.5.5-mpath+discovery | 312 +++++++++++++++++++++ .../diffs/NBFT-Dell.PowerEdge.R660-fw1.5.5-single | 4 + test/nbft/diffs/NBFT-Dell.PowerEdge.R760 | 4 + test/nbft/diffs/NBFT-auto-ipv6 | 2 + test/nbft/diffs/NBFT-dhcp-ipv4 | 2 + test/nbft/diffs/NBFT-dhcp-ipv6 | 2 + test/nbft/diffs/NBFT-mpath+disc-ipv4+6_half | 141 ++++++++++ test/nbft/diffs/NBFT-rhpoc | 2 + test/nbft/diffs/NBFT-static-ipv4 | 2 + test/nbft/diffs/NBFT-static-ipv4-discovery | 2 + test/nbft/diffs/NBFT-static-ipv6 | 2 + test/nbft/meson.build | 4 +- test/nbft/nbft-dump.c | 2 + ...BFT-Dell.PowerEdge.R660-fw1.5.5-mpath+discovery | Bin 0 -> 4147 bytes test/nbft/tables/NBFT-mpath+disc-ipv4+6_half | Bin 0 -> 1922 bytes test/register.c | 8 +- test/sysfs/meson.build | 45 +-- test/sysfs/setup.sh | 11 - test/sysfs/sysfs-tree-diff.sh | 22 ++ test/sysfs/sysfs.c | 77 +---- test/test-util.c | 58 ++++ 21 files changed, 598 insertions(+), 104 deletions(-) create mode 100644 test/nbft/diffs/NBFT-Dell.PowerEdge.R660-fw1.5.5-mpath+discovery create mode 100644 test/nbft/diffs/NBFT-mpath+disc-ipv4+6_half create mode 100644 test/nbft/tables/NBFT-Dell.PowerEdge.R660-fw1.5.5-mpath+discovery create mode 100644 test/nbft/tables/NBFT-mpath+disc-ipv4+6_half delete mode 100755 test/sysfs/setup.sh create mode 100644 test/sysfs/sysfs-tree-diff.sh (limited to 'test') 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 0000000..7d44d92 --- /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 72a34de..17631fb 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 d7fab3f..5bb854c 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 83ee643..4e19830 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 067079d..4c9c61c 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 11c974f..27c54fd 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-mpath+disc-ipv4+6_half b/test/nbft/diffs/NBFT-mpath+disc-ipv4+6_half new file mode 100644 index 0000000..1e1d678 --- /dev/null +++ b/test/nbft/diffs/NBFT-mpath+disc-ipv4+6_half @@ -0,0 +1,141 @@ +raw_nbft_size=1922 +host.id=12345678abcdabcdabcd123456789012 +host.nqn=nqn.2014-08.org.nvmexpress:uuid:12345678-abcd-abcd-abcd-123456789012 +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=24 +hfi_list[0]->tcp_info.mac_addr=5254072c5ae +hfi_list[0]->tcp_info.vlan=0 +hfi_list[0]->tcp_info.ip_origin=1 +hfi_list[0]->tcp_info.ipaddr=192.168.122.158 +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=0 +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=32 +hfi_list[1]->tcp_info.mac_addr=5254072c5af +hfi_list[1]->tcp_info.vlan=0 +hfi_list[1]->tcp_info.ip_origin=1 +hfi_list[1]->tcp_info.ipaddr=4321::bbbb:2 +hfi_list[1]->tcp_info.subnet_mask_prefix=0 +hfi_list[1]->tcp_info.gateway_ipaddr=:: +hfi_list[1]->tcp_info.route_metric=0 +hfi_list[1]->tcp_info.primary_dns_ipaddr=:: +hfi_list[1]->tcp_info.secondary_dns_ipaddr=:: +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://192.168.122.1:4420/ +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://[4321::BBBB:1]:4420/ +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=192.168.122.1 +subsystem_ns_list[0]->trsvcid=4420 +subsystem_ns_list[0]->subsys_port_id=0 +subsystem_ns_list[0]->nsid=123 +subsystem_ns_list[0]->nid_type=3 +subsystem_ns_list[0]->nid=d592cdf3ffffffff84123fcf7d99df27 +subsystem_ns_list[0]->subsys_nqn=nqn.2014-08.org.nvmexpress.boot.poc:test-target +subsystem_ns_list[0]->pdu_header_digest_required=0 +subsystem_ns_list[0]->data_digest_required=0 +subsystem_ns_list[0]->controller_id=0 +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=192.168.122.1 +subsystem_ns_list[1]->trsvcid=4420 +subsystem_ns_list[1]->subsys_port_id=0 +subsystem_ns_list[1]->nsid=201 +subsystem_ns_list[1]->nid_type=3 +subsystem_ns_list[1]->nid=9b9e1b6ea02c427fbdeb2a0be9cb945 +subsystem_ns_list[1]->subsys_nqn=nqn.2014-08.org.nvmexpress.boot.poc:test-target +subsystem_ns_list[1]->pdu_header_digest_required=0 +subsystem_ns_list[1]->data_digest_required=0 +subsystem_ns_list[1]->controller_id=0 +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=192.168.122.1 +subsystem_ns_list[2]->trsvcid=4420 +subsystem_ns_list[2]->subsys_port_id=0 +subsystem_ns_list[2]->nsid=202 +subsystem_ns_list[2]->nid_type=3 +subsystem_ns_list[2]->nid=5353d4e551a40f492a563231b833c5 +subsystem_ns_list[2]->subsys_nqn=nqn.2014-08.org.nvmexpress.boot.poc:test-target +subsystem_ns_list[2]->pdu_header_digest_required=0 +subsystem_ns_list[2]->data_digest_required=0 +subsystem_ns_list[2]->controller_id=0 +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=192.168.122.1 +subsystem_ns_list[3]->trsvcid=4420 +subsystem_ns_list[3]->subsys_port_id=0 +subsystem_ns_list[3]->nsid=203 +subsystem_ns_list[3]->nid_type=3 +subsystem_ns_list[3]->nid=fb13e6ffac2940c0a988cb1c17d39f4b +subsystem_ns_list[3]->subsys_nqn=nqn.2014-08.org.nvmexpress.boot.poc:test-target +subsystem_ns_list[3]->pdu_header_digest_required=0 +subsystem_ns_list[3]->data_digest_required=0 +subsystem_ns_list[3]->controller_id=0 +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=2 +subsystem_ns_list[4]->num_hfis=1 +subsystem_ns_list[4]->hfis[0]->index=2 +subsystem_ns_list[4]->transport=tcp +subsystem_ns_list[4]->traddr=4321::bbbb:1 +subsystem_ns_list[4]->trsvcid=4420 +subsystem_ns_list[4]->subsys_port_id=0 +subsystem_ns_list[4]->nsid=0 +subsystem_ns_list[4]->nid_type=0 +subsystem_ns_list[4]->nid=0000000000000000 +subsystem_ns_list[4]->subsys_nqn=nqn.2014-08.org.nvmexpress.discovery +subsystem_ns_list[4]->pdu_header_digest_required=0 +subsystem_ns_list[4]->data_digest_required=0 +subsystem_ns_list[4]->controller_id=0 +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=1 diff --git a/test/nbft/diffs/NBFT-rhpoc b/test/nbft/diffs/NBFT-rhpoc index d849b6e..027ea40 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 a6f3859..697d0e5 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 5bf0e46..22473a0 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 c6ad844..12554f5 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 919bf83..7882df6 100644 --- a/test/nbft/meson.build +++ b/test/nbft/meson.build @@ -19,7 +19,9 @@ 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', + 'NBFT-mpath+disc-ipv4+6_half' ] tables_bad = [ diff --git a/test/nbft/nbft-dump.c b/test/nbft/nbft-dump.c index 3ff5efa..5fb2f2e 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 0000000..0fbb35c Binary files /dev/null and b/test/nbft/tables/NBFT-Dell.PowerEdge.R660-fw1.5.5-mpath+discovery differ diff --git a/test/nbft/tables/NBFT-mpath+disc-ipv4+6_half b/test/nbft/tables/NBFT-mpath+disc-ipv4+6_half new file mode 100644 index 0000000..13333b1 Binary files /dev/null and b/test/nbft/tables/NBFT-mpath+disc-ipv4+6_half differ diff --git a/test/register.c b/test/register.c index 8a41628..1fb692b 100644 --- a/test/register.c +++ b/test/register.c @@ -79,10 +79,13 @@ void nvme_print_registers(void *regs) printf(" %-8s : %llx\n", "NSSRC", NVME_CAP_NSSRC(cap)); printf(" %-8s : %llx\n", "CSS", NVME_CAP_CSS(cap)); printf(" %-8s : %llx\n", "BPS", NVME_CAP_BPS(cap)); + printf(" %-8s : %llx\n", "CPS", NVME_CAP_CPS(cap)); printf(" %-8s : %llx\n", "MPSMIN", NVME_CAP_MPSMIN(cap)); printf(" %-8s : %llx\n", "MPSMAX", NVME_CAP_MPSMAX(cap)); - printf(" %-8s : %llx\n", "CMBS", NVME_CAP_CMBS(cap)); printf(" %-8s : %llx\n", "PMRS", NVME_CAP_PMRS(cap)); + printf(" %-8s : %llx\n", "CMBS", NVME_CAP_CMBS(cap)); + printf(" %-8s : %llx\n", "NSSS", NVME_CAP_NSSS(cap)); + printf(" %-8s : %llx\n", "CRMS", NVME_CAP_CRMS(cap)); printf("%-10s : %x\n", "VS", vs); printf(" %-8s : %x\n", "MJR", NVME_VS_TER(vs)); @@ -107,6 +110,7 @@ void nvme_print_registers(void *regs) printf(" %-8s : %x\n", "SHST", NVME_CSTS_SHST(csts)); printf(" %-8s : %x\n", "NSSRO", NVME_CSTS_NSSRO(csts)); printf(" %-8s : %x\n", "PP", NVME_CSTS_PP(csts)); + printf(" %-8s : %x\n", "ST", NVME_CSTS_ST(csts)); printf("%-10s : %x\n", "NSSR", nssr); @@ -162,7 +166,7 @@ void nvme_print_registers(void *regs) printf(" %-8s : %x\n", "WDS", NVME_PMRCAP_WDS(pmrcap)); printf(" %-8s : %x\n", "BIR", NVME_PMRCAP_BIR(pmrcap)); printf(" %-8s : %x\n", "PMRTU", NVME_PMRCAP_PMRTU(pmrcap)); - printf(" %-8s : %x\n", "PMRWMB", NVME_PMRCAP_PMRWMB(pmrcap)); + printf(" %-8s : %x\n", "PMRWBM", NVME_PMRCAP_PMRWBM(pmrcap)); printf(" %-8s : %x\n", "PMRTO", NVME_PMRCAP_PMRTO(pmrcap)); printf(" %-8s : %x\n", "CMSS", NVME_PMRCAP_CMSS(pmrcap)); diff --git a/test/sysfs/meson.build b/test/sysfs/meson.build index c004fc0..119fa97 100644 --- a/test/sysfs/meson.build +++ b/test/sysfs/meson.build @@ -5,25 +5,32 @@ # # Authors: Daniel Wagner +diff = find_program('diff', required : false) +if diff.found() + sysfs_tree_print = executable( + 'sysfs-tree-print', + ['sysfs.c'], + dependencies: libnvme_dep, + include_directories: [incdir], + ) -sysfs = executable( - 'test-sysfs', - ['sysfs.c'], - dependencies: libnvme_dep, - include_directories: [incdir, internal_incdir] -) + sysfs_files= [ + 'nvme-sysfs-tw-carbon-6.8.0-rc1+' + ] -sysfs_files= [ - 'nvme-sysfs-tw-carbon-6.8.0-rc1+' -] + sysfs_tree_diff = find_program('sysfs-tree-diff.sh') -setup = find_program('setup.sh') - -foreach t_file : sysfs_files - r = run_command(setup, files('data'/t_file + '.tar.xz'), meson.current_build_dir(), check: true) - i = r.stdout().strip() - e0 = 'LIBNVME_SYSFS_PATH=' + i - e1 = 'LIBNVME_HOSTNQN=nqn.2014-08.org.nvmexpress:uuid:ce4fee3e-c02c-11ee-8442-830d068a36c6' - e2 = 'LIBNVME_HOSTID=ce4fee3e-c02c-11ee-8442-830d068a36c6' - test('sysfs', sysfs, args : [ i, t_file + '.out', files('data'/t_file + '.out') ], env : [ e0, e1, e2 ]) -endforeach + foreach t_file : sysfs_files + test( + 'sysfs', + sysfs_tree_diff, + args : [ + meson.current_build_dir(), + sysfs_tree_print.full_path(), + files('data'/t_file + '.tar.xz'), + files('data'/t_file + '.out'), + ], + depends : sysfs_tree_print, + ) + endforeach +endif diff --git a/test/sysfs/setup.sh b/test/sysfs/setup.sh deleted file mode 100755 index 3437d4e..0000000 --- a/test/sysfs/setup.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env bash -# SPDX-License-Identifier: LGPL-2.1-or-later - -TARFILE=$1 -BASEDIR=$2 -TESTDIR="$BASEDIR/$(basename -s .tar.xz ${TARFILE})" - -mkdir -p "${TESTDIR}" -tar -x -f "${TARFILE}" -C "${TESTDIR}" || exit 1 - -echo "${TESTDIR}" diff --git a/test/sysfs/sysfs-tree-diff.sh b/test/sysfs/sysfs-tree-diff.sh new file mode 100644 index 0000000..dfe3cb3 --- /dev/null +++ b/test/sysfs/sysfs-tree-diff.sh @@ -0,0 +1,22 @@ +#!/bin/bash -e +# SPDX-License-Identifier: LGPL-2.1-or-later + +BUILD_DIR=$1 +SYSFS_TREE_PRINT=$2 +INPUT=$3 +EXPECTED_OUTPUT=$4 + +TEST_NAME="$(basename -s .tar.xz $INPUT)" +TEST_DIR="$BUILD_DIR/$TEST_NAME" +ACTUAL_OUTPUT="$TEST_DIR.out" + +rm -rf "$TEST_DIR" +mkdir "$TEST_DIR" +tar -x -f "$INPUT" -C "$TEST_DIR" + +LIBNVME_SYSFS_PATH="$TEST_DIR" \ +LIBNVME_HOSTNQN=nqn.2014-08.org.nvmexpress:uuid:ce4fee3e-c02c-11ee-8442-830d068a36c6 \ +LIBNVME_HOSTID=ce4fee3e-c02c-11ee-8442-830d068a36c6 \ +"$SYSFS_TREE_PRINT" > "$ACTUAL_OUTPUT" + +diff -u "$EXPECTED_OUTPUT" "$ACTUAL_OUTPUT" diff --git a/test/sysfs/sysfs.c b/test/sysfs/sysfs.c index c2df178..06d0035 100644 --- a/test/sysfs/sysfs.c +++ b/test/sysfs/sysfs.c @@ -4,86 +4,21 @@ * Copyright (c) 2024 Daniel Wagner, SUSE LLC */ -#include "nvme/tree.h" #include -#include -#include -#include -#include -#include - -#include #include -#include -static bool test_sysfs(const char *path, const char *filename) +int main(int argc, char *argv[]) { - FILE *f; nvme_root_t r; - int err; - - f = fopen(filename, "w"); - if (!f) - return false; - r = nvme_create_root(f, LOG_ERR); + r = nvme_create_root(stdout, LOG_ERR); assert(r); - err = nvme_scan_topology(r, NULL, NULL); - if (!err) - nvme_dump_tree(r); - fprintf(f, "\n"); - - nvme_free_tree(r); - fclose(f); - - return err == 0; -} - -static bool compare_content(const char *filename1, const char *filename2) -{ - FILE *f1, *f2; - char c1, c2; - bool pass = false; - - f1 = fopen(filename1, "r"); - if (!f1) - return false; + assert(nvme_scan_topology(r, NULL, NULL) == 0); - f2 = fopen(filename2, "r"); - if (!f2) { - fclose(f1); - return false; - } + assert(nvme_dump_tree(r) == 0); + printf("\n"); - do { - c1 = getc(f1); - c2 = getc(f2); - if (c1 != c2) - goto out; - } while (c1 != EOF || c2 != EOF); - - if (c1 == c2) - pass = true; -out: - fclose(f1); - fclose(f2); - - return pass; -} - -int main(int argc, char *argv[]) -{ - bool pass = true; - - if (argc < 4) { - fprintf(stderr, "usage: test-sysfs SYSFS_DIR OUTPUT_FILE COMPARE_FILE\n"); - return EXIT_FAILURE; - } - - pass &= test_sysfs(argv[1], argv[2]); - pass &= compare_content(argv[2], argv[3]); - - exit(pass ? EXIT_SUCCESS : EXIT_FAILURE); + nvme_free_tree(r); } diff --git a/test/test-util.c b/test/test-util.c index 88a3f42..6bee89b 100644 --- a/test/test-util.c +++ b/test/test-util.c @@ -89,6 +89,58 @@ static bool test_ipaddrs_eq() { return test_success; } +static bool test_nvme_id_ns_flbas_to_lbaf_inuse() { + const __u8 flbas[] = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, + 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F, + }; + const __u8 inuse[] = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F, + }; + __u8 test_in_use; + bool result, test_success = true; + + for (int i = 0; i < sizeof(flbas); i++) { + nvme_id_ns_flbas_to_lbaf_inuse(flbas[i], &test_in_use); + result = (test_in_use == inuse[i] ? true : false); + printf("flbas = 0x%02x, inuse = 0x%02x (expect = 0x%02x) %s\n", + flbas[i], test_in_use, inuse[i], + result ? "[PASS]" : "[FAIL]"); + if (!result) + test_success = false; + } + return test_success; +} + int main(int argc, char *argv[]) { int exit_val = EXIT_SUCCESS; bool pass; @@ -117,5 +169,11 @@ int main(int argc, char *argv[]) { if (!pass) exit_val = EXIT_FAILURE; + printf("\n------------------------------------------------------------------------------\n"); + pass = test_nvme_id_ns_flbas_to_lbaf_inuse(); + printf("nvme_id_ns_flbas_to_lbaf_inuse() %s\n", pass ? "[PASS]" : "[FAIL]"); + if (!pass) + exit_val = EXIT_FAILURE; + exit(exit_val); } -- cgit v1.2.3