Imported Upstream version 0.8.9
[platform/upstream/multipath-tools.git] / libmultipath / hwtable.c
index 1d96433..bd15710 100644 (file)
@@ -38,7 +38,7 @@
         *
         * COMPANY_NAME
         *
-        * Maintainer: XXX <email>
+        * Maintainer: NAME <email>
         */
        {
                /* Product Name */
@@ -88,7 +88,7 @@ static struct hwentry default_hw[] = {
                /* Generic NVMe */
                .vendor        = "NVME",
                .product       = ".*",
-               .uid_attribute = "ID_WWN",
+               .uid_attribute = DEFAULT_NVME_UID_ATTRIBUTE,
                .checker_name  = NONE,
                .retain_hwhandler = RETAIN_HWHANDLER_OFF,
        },
@@ -107,7 +107,7 @@ static struct hwentry default_hw[] = {
         * HPE
         */
        {
-               /* 3PAR */
+               /* 3PAR / Primera / Alletra 9000 */
                .vendor        = "3PARdata",
                .product       = "VV",
                .pgpolicy      = GROUP_BY_PRIO,
@@ -117,6 +117,7 @@ static struct hwentry default_hw[] = {
                .no_path_retry = 18,
                .fast_io_fail  = 10,
                .dev_loss      = MAX_DEV_LOSS_TMO,
+               .vpd_vendor_id = VPD_VP_HP3PAR,
        },
        {
                /* RA8000 / ESA12000 */
@@ -180,9 +181,9 @@ static struct hwentry default_hw[] = {
                .prio_name     = PRIO_ALUA,
        },
        {
-               /* MSA 1040, 1050, 2040 and 2050 families */
+               /* MSA 1040, 1050, 1060, 2040, 2050 and 2060 families */
                .vendor        = "HP",
-               .product       = "MSA [12]0[45]0 SA[NS]",
+               .product       = "MSA [12]0[456]0 SA[NS]",
                .pgpolicy      = GROUP_BY_PRIO,
                .pgfailback    = -FAILBACK_IMMEDIATE,
                .no_path_retry = 18,
@@ -224,7 +225,7 @@ static struct hwentry default_hw[] = {
                .prio_name     = PRIO_ALUA,
        },
        {
-               /* Nimble Storage */
+               /* Nimble Storage / HPE Alletra 6000 */
                .vendor        = "Nimble",
                .product       = "Server",
                .hwhandler     = "1 alua",
@@ -300,6 +301,27 @@ static struct hwentry default_hw[] = {
                .prio_name     = PRIO_ALUA,
                .no_path_retry = 30,
        },
+       {
+               /*
+                * Nexenta COMSTAR
+                *
+                * Maintainer: Yacine Kheddache <yacine@alyseo.com>
+                */
+               .vendor        = "NEXENTA",
+               .product       = "COMSTAR",
+               .pgpolicy      = GROUP_BY_SERIAL,
+               .no_path_retry = 30,
+       },
+       {
+               /* Tegile IntelliFlash */
+               .vendor        = "TEGILE",
+               .product       = "(ZEBI-(FC|ISCSI)|INTELLIFLASH)",
+               .hwhandler     = "1 alua",
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .prio_name     = PRIO_ALUA,
+               .no_path_retry = 10,
+       },
        /*
         * Dell EMC
         */
@@ -337,14 +359,11 @@ static struct hwentry default_hw[] = {
                .pgpolicy      = MULTIBUS,
        },
        {
-               /*
-                * SC Series, formerly Compellent
-                *
-                * Maintainer: Sean McGinnis <sean_mcginnis@dell.com>
-                */
+               /* SC Series, formerly Compellent */
                .vendor        = "COMPELNT",
                .product       = "Compellent Vol",
-               .pgpolicy      = MULTIBUS,
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
                .no_path_retry = NO_PATH_RETRY_QUEUE,
        },
        {
@@ -360,6 +379,32 @@ static struct hwentry default_hw[] = {
                .pgfailback    = -FAILBACK_IMMEDIATE,
                .no_path_retry = 30,
        },
+       {
+               /* EMC PowerMax NVMe */
+               .vendor        = "NVME",
+               .product       = "^EMC PowerMax_",
+               .pgpolicy      = MULTIBUS,
+       },
+       {
+               /* PowerStore */
+               .vendor        = "DellEMC",
+               .product       = "PowerStore",
+               .pgpolicy      = GROUP_BY_PRIO,
+               .prio_name     = PRIO_ALUA,
+               .hwhandler     = "1 alua",
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .no_path_retry = 3,
+               .fast_io_fail  = 15,
+       },
+       {
+               /* PowerVault ME4 */
+               .vendor        = "DellEMC",
+               .product       = "ME4",
+               .pgpolicy      = GROUP_BY_PRIO,
+               .prio_name     = PRIO_ALUA,
+               .hwhandler     = "1 alua",
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+       },
        /*
         * Fujitsu
         */
@@ -400,6 +445,22 @@ static struct hwentry default_hw[] = {
                .pgpolicy      = MULTIBUS,
                .no_path_retry = 10,
        },
+       {
+               /*
+                * ETERNUS AB/HB
+                * Maintainer: NetApp RDAC team <ng-eseries-upstream-maintainers@netapp.com>
+                */
+               .vendor        = "FUJITSU",
+               .product       = "ETERNUS_AHB",
+               .bl_product    = "Universal Xport",
+               .pgpolicy      = GROUP_BY_PRIO,
+               .checker_name  = RDAC,
+               .features      = "2 pg_init_retries 50",
+               .hwhandler     = "1 rdac",
+               .prio_name     = PRIO_RDAC,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .no_path_retry = 30,
+       },
        /*
         * Hitachi Vantara
         *
@@ -428,8 +489,6 @@ static struct hwentry default_hw[] = {
        },
        /*
         * IBM
-        *
-        * Maintainer: Hannes Reinecke <hare@suse.de>
         */
        {
                /* ProFibre 4000R */
@@ -601,10 +660,12 @@ static struct hwentry default_hw[] = {
                .vendor        = "IBM",
                .product       = "^2107900",
                .no_path_retry = NO_PATH_RETRY_QUEUE,
-               .pgpolicy      = MULTIBUS,
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
        },
        {
-               /* Storwize family / SAN Volume Controller / Flex System V7000 / FlashSystem V840/V9000/9100 */
+               // Storwize V5000 and V7000 lines / SAN Volume Controller (SVC) / Flex System V7000 /
+               // FlashSystem V840/V9000/5000/5100/5200/7200/9100/9200/9200R
                .vendor        = "IBM",
                .product       = "^2145",
                .no_path_retry = NO_PATH_RETRY_QUEUE,
@@ -656,7 +717,8 @@ static struct hwentry default_hw[] = {
                .vendor        = "(XIV|IBM)",
                .product       = "(NEXTRA|2810XIV)",
                .no_path_retry = NO_PATH_RETRY_QUEUE,
-               .pgpolicy      = MULTIBUS,
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = 15,
        },
        {
                /* TMS RamSan / FlashSystem 710/720/810/820/840/900 */
@@ -701,26 +763,26 @@ static struct hwentry default_hw[] = {
                .no_path_retry = (300 / DEFAULT_CHECKINT),
                .prio_name     = PRIO_ALUA,
        },
-        /*
-         * Lenovo
-         */
-        {
-                /*
+       /*
+        * Lenovo
+        */
+       {
+               /*
                 * DE Series
                 *
-                * Maintainer: ng-eseries-upstream-maintainers@netapp.com
+                * Maintainer: NetApp RDAC team <ng-eseries-upstream-maintainers@netapp.com>
                 */
-                .vendor        = "LENOVO",
-                .product       = "DE_Series",
-                .bl_product    = "Universal Xport",
-                .pgpolicy      = GROUP_BY_PRIO,
-                .checker_name  = RDAC,
-                .features      = "2 pg_init_retries 50",
-                .hwhandler     = "1 rdac",
-                .prio_name     = PRIO_RDAC,
-                .pgfailback    = -FAILBACK_IMMEDIATE,
-                .no_path_retry = 30,
-        },
+               .vendor        = "LENOVO",
+               .product       = "DE_Series",
+               .bl_product    = "Universal Xport",
+               .pgpolicy      = GROUP_BY_PRIO,
+               .checker_name  = RDAC,
+               .features      = "2 pg_init_retries 50",
+               .hwhandler     = "1 rdac",
+               .prio_name     = PRIO_RDAC,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .no_path_retry = 30,
+       },
        /*
         * NetApp
         */
@@ -775,24 +837,12 @@ static struct hwentry default_hw[] = {
                 *
                 * The hwtable is searched backwards, so place this after "Generic NVMe"
                 */
-               .vendor        = "NVME",
+               .vendor        = "NVME",
                .product       = "^NetApp ONTAP Controller",
                .pgpolicy      = MULTIBUS,
                .no_path_retry = NO_PATH_RETRY_QUEUE,
        },
        /*
-        * Nexenta
-        *
-        * Maintainer: Yacine Kheddache <yacine@alyseo.com>
-        */
-       {
-               /* COMSTAR */
-               .vendor        = "NEXENTA",
-               .product       = "COMSTAR",
-               .pgpolicy      = GROUP_BY_SERIAL,
-               .no_path_retry = 30,
-       },
-       /*
         * NEC
         */
        {
@@ -989,7 +1039,7 @@ static struct hwentry default_hw[] = {
        {
                /* Linux-IO Target */
                .vendor        = "(LIO-ORG|SUSE)",
-               .product       = "RBD",
+               .product       = ".",
                .hwhandler     = "1 alua",
                .pgpolicy      = GROUP_BY_PRIO,
                .pgfailback    = -FAILBACK_IMMEDIATE,
@@ -1024,17 +1074,25 @@ static struct hwentry default_hw[] = {
                /* FlashArray */
                .vendor        = "PURE",
                .product       = "FlashArray",
-               .pgpolicy      = MULTIBUS,
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .hwhandler     = "1 alua",
+               .prio_name     = PRIO_ALUA,
+               .fast_io_fail  = 10,
+               .max_sectors_kb = 4096,
        },
        /*
         * Huawei
         */
        {
-               /* OceanStor V3 */
+               /* OceanStor V3-V6 */
+               // This config works with multibus and ALUA
+               // ALUA is required by HyperMetro
                .vendor        = "HUAWEI",
                .product       = "XSG1",
                .pgpolicy      = GROUP_BY_PRIO,
-               .prio_name     = PRIO_ALUA,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .no_path_retry = 15,
        },
        /*
         * Kove
@@ -1076,21 +1134,9 @@ static struct hwentry default_hw[] = {
                .pgpolicy      = MULTIBUS,
        },
        /*
-        * Western Digital (Tegile Systems)
-        */
-       {
-               /* IntelliFlash */
-               .vendor        = "TEGILE",
-               .product       = "(ZEBI-(FC|ISCSI)|INTELLIFLASH)",
-               .hwhandler     = "1 alua",
-               .pgpolicy      = GROUP_BY_PRIO,
-               .pgfailback    = -FAILBACK_IMMEDIATE,
-               .prio_name     = PRIO_ALUA,
-               .no_path_retry = 10,
-       },
-       /*
-        * Imation/Nexsan
+        * StorCentric
         */
+               /* Nexsan */
        {
                /* E-Series */
                .vendor        = "NEXSAN",
@@ -1119,9 +1165,7 @@ static struct hwentry default_hw[] = {
                .prio_name     = PRIO_ALUA,
                .no_path_retry = 30,
        },
-       /*
-        * Violin Systems
-        */
+               /* Violin Systems */
        {
                /* 3000 / 6000 Series */
                .vendor        = "VIOLIN",
@@ -1168,6 +1212,14 @@ static struct hwentry default_hw[] = {
                .pgpolicy      = MULTIBUS,
                .no_path_retry = 30,
        },
+               /* Vexata */
+       {
+               /* VX */
+               .vendor        = "Vexata",
+               .product       = "VX",
+               .pgpolicy      = MULTIBUS,
+               .no_path_retry = 30,
+       },
        /*
         * Promise Technology
         */
@@ -1255,6 +1307,18 @@ static struct hwentry default_hw[] = {
                .prio_name     = PRIO_ALUA,
        },
        /*
+        * MacroSAN Technologies
+        */
+       {
+               /* MS family */
+               .vendor        = "MacroSAN",
+               .product       = "LU",
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .prio_name     = PRIO_ALUA,
+               .no_path_retry = 30,
+       },
+       /*
         * EOL
         */
        {