8 #include "pgpolicies.h"
13 * Tuning suggestions on these parameters should go to
14 * dm-devel@redhat.com (subscribers-only, see README)
16 * You are welcome to claim maintainership over a controller
17 * family. Please mail the currently enlisted maintainer and
18 * the upstream package maintainer.
20 * Please, use the TEMPLATE below to add new hardware.
24 * Devices with a proprietary handler must also be included in
25 * the kernel side. Currently at drivers/scsi/scsi_dh.c
27 * Moreover, if a device needs a special treatment by the SCSI
28 * subsystem it should be included in drivers/scsi/scsi_devinfo.c
33 * Copy this TEMPLATE to add new hardware.
35 * Keep only mandatory(.vendor and .product) and modified attributes.
36 * Attributes with default values must be removed.
37 * .vendor, .product, .revision and .bl_product are POSIX Extended regex.
41 * Maintainer: NAME <email>
47 .revision = "REVISION",
48 .bl_product = "BL_PRODUCT",
50 .uid_attribute = "ID_SERIAL",
51 .selector = "service-time 0",
53 .alias_prefix = "mpath",
56 .prio_name = PRIO_CONST,
58 .pgfailback = -FAILBACK_MANUAL,
59 .rr_weight = RR_WEIGHT_NONE,
60 .no_path_retry = NO_PATH_RETRY_UNDEF,
63 .flush_on_last_del = FLUSH_DISABLED,
64 .user_friendly_names = USER_FRIENDLY_NAMES_OFF,
67 .retain_hwhandler = RETAIN_HWHANDLER_ON,
68 .detect_prio = DETECT_PRIO_ON,
69 .detect_checker = DETECT_CHECKER_ON,
70 .deferred_remove = DEFERRED_REMOVE_OFF,
71 .delay_watch_checks = DELAY_CHECKS_OFF,
72 .delay_wait_checks = DELAY_CHECKS_OFF,
73 .skip_kpartx = SKIP_KPARTX_OFF,
74 .max_sectors_kb = MAX_SECTORS_KB_UNDEF,
75 .ghost_delay = GHOST_DELAY_OFF,
79 static struct hwentry default_hw[] = {
81 * Generic NVMe devices
83 * Due to the parsing logic in find_hwe(), generic entries
84 * have to be put on top of this list, and more specific ones
91 .uid_attribute = DEFAULT_NVME_UID_ATTRIBUTE,
93 .retain_hwhandler = RETAIN_HWHANDLER_OFF,
98 * Maintainer: Shyam Sundar <g.shyamsundar@yahoo.co.in>
103 .product = "Xserve RAID",
104 .pgpolicy = MULTIBUS,
111 .vendor = "3PARdata",
113 .pgpolicy = GROUP_BY_PRIO,
114 .pgfailback = -FAILBACK_IMMEDIATE,
115 .hwhandler = "1 alua",
116 .prio_name = PRIO_ALUA,
119 .dev_loss = MAX_DEV_LOSS_TMO,
122 /* RA8000 / ESA12000 */
125 .no_path_retry = NO_PATH_RETRY_QUEUE,
126 .hwhandler = "1 hp_sw",
127 .pgpolicy = GROUP_BY_PRIO,
128 .checker_name = HP_SW,
129 .prio_name = PRIO_HP_SW,
132 /* VIRTUAL ARRAY 7400 */
135 .pgpolicy = MULTIBUS,
139 /* MSA 1000/1500 and EVA 3000/5000, with old firmware */
140 .vendor = "(COMPAQ|HP)",
141 .product = "(MSA|HSV)1[01]0",
142 .hwhandler = "1 hp_sw",
143 .pgpolicy = GROUP_BY_PRIO,
145 .checker_name = HP_SW,
146 .prio_name = PRIO_HP_SW,
149 /* MSA 1000/1500 with new firmware */
150 .vendor = "(COMPAQ|HP)",
151 .product = "MSA VOLUME",
152 .pgpolicy = GROUP_BY_PRIO,
153 .pgfailback = -FAILBACK_IMMEDIATE,
155 .prio_name = PRIO_ALUA,
158 /* EVA 3000/5000 with new firmware, EVA 4000/6000/8000 */
159 .vendor = "(COMPAQ|HP)",
160 .product = "(HSV1[01]1|HSV2[01]0|HSV3[046]0|HSV4[05]0)",
161 .pgpolicy = GROUP_BY_PRIO,
162 .pgfailback = -FAILBACK_IMMEDIATE,
164 .prio_name = PRIO_ALUA,
167 /* MSA2000 family with old firmware */
169 .product = "(MSA2[02]12fc|MSA2012i)",
170 .pgpolicy = MULTIBUS,
174 /* MSA2000 family with new firmware */
176 .product = "(MSA2012sa|MSA23(12|24)(fc|i|sa)|MSA2000s VOLUME)",
177 .pgpolicy = GROUP_BY_PRIO,
178 .pgfailback = -FAILBACK_IMMEDIATE,
180 .prio_name = PRIO_ALUA,
183 /* MSA 1040, 1050, 2040 and 2050 families */
185 .product = "MSA [12]0[45]0 SA[NS]",
186 .pgpolicy = GROUP_BY_PRIO,
187 .pgfailback = -FAILBACK_IMMEDIATE,
189 .prio_name = PRIO_ALUA,
192 /* SAN Virtualization Services Platform */
194 .product = "HSVX700",
195 .hwhandler = "1 alua",
196 .pgpolicy = GROUP_BY_PRIO,
197 .pgfailback = -FAILBACK_IMMEDIATE,
199 .prio_name = PRIO_ALUA,
204 .product = "LOGICAL VOLUME",
205 .pgpolicy = MULTIBUS,
211 .product = "(P2000 G3 FC|P2000G3 FC/iSCSI|P2000 G3 SAS|P2000 G3 iSCSI)",
212 .pgpolicy = GROUP_BY_PRIO,
213 .pgfailback = -FAILBACK_IMMEDIATE,
215 .prio_name = PRIO_ALUA,
218 /* StoreVirtual 4000 and 3200 families */
219 .vendor = "LEFTHAND",
220 .product = "(P4000|iSCSIDisk|FCDISK)",
221 .pgpolicy = GROUP_BY_PRIO,
222 .pgfailback = -FAILBACK_IMMEDIATE,
224 .prio_name = PRIO_ALUA,
230 .hwhandler = "1 alua",
231 .pgpolicy = GROUP_BY_PRIO,
232 .pgfailback = -FAILBACK_IMMEDIATE,
233 .prio_name = PRIO_ALUA,
234 .no_path_retry = NO_PATH_RETRY_QUEUE,
238 /* Total Performance 9100 */
241 .pgpolicy = MULTIBUS,
244 /* Total Performance family */
246 .product = "TP9[3457]00",
247 .bl_product = "Universal Xport",
248 .pgpolicy = GROUP_BY_PRIO,
249 .checker_name = RDAC,
250 .features = "2 pg_init_retries 50",
251 .hwhandler = "1 rdac",
252 .prio_name = PRIO_RDAC,
253 .pgfailback = -FAILBACK_IMMEDIATE,
257 /* (RDAC) InfiniteStorage */
260 .bl_product = "Universal Xport",
261 .pgpolicy = GROUP_BY_PRIO,
262 .checker_name = RDAC,
263 .features = "2 pg_init_retries 50",
264 .hwhandler = "1 rdac",
265 .prio_name = PRIO_RDAC,
266 .pgfailback = -FAILBACK_IMMEDIATE,
270 /* (DDN) InfiniteStorage */
272 .product = "^DD[46]A-",
273 .pgpolicy = GROUP_BY_PRIO,
274 .pgfailback = -FAILBACK_IMMEDIATE,
275 .prio_name = PRIO_ALUA,
279 * DataDirect Networks
282 /* SAN DataDirector */
284 .product = "SAN DataDirector",
285 .pgpolicy = MULTIBUS,
290 .product = "^EF3010",
291 .pgpolicy = MULTIBUS,
295 /* EF3015 / S2A and SFA families */
297 .product = "^(EF3015|S2A|SFA)",
298 .pgpolicy = GROUP_BY_PRIO,
299 .pgfailback = -FAILBACK_IMMEDIATE,
300 .prio_name = PRIO_ALUA,
307 * Maintainer: Yacine Kheddache <yacine@alyseo.com>
310 .product = "COMSTAR",
311 .pgpolicy = GROUP_BY_SERIAL,
315 /* Tegile IntelliFlash */
317 .product = "(ZEBI-(FC|ISCSI)|INTELLIFLASH)",
318 .hwhandler = "1 alua",
319 .pgpolicy = GROUP_BY_PRIO,
320 .pgfailback = -FAILBACK_IMMEDIATE,
321 .prio_name = PRIO_ALUA,
328 /* Symmetrix / DMX / VMAX / PowerMax */
330 .product = "SYMMETRIX",
331 .pgpolicy = MULTIBUS,
335 /* DGC CLARiiON CX/AX / VNX and Unity */
337 .product = "^(RAID|DISK|VRAID)",
338 .bl_product = "LUNZ",
339 .hwhandler = "1 emc",
340 .pgpolicy = GROUP_BY_PRIO,
341 .pgfailback = -FAILBACK_IMMEDIATE,
342 .no_path_retry = (300 / DEFAULT_CHECKINT),
343 .checker_name = EMC_CLARIION,
344 .prio_name = PRIO_EMC,
347 /* Invista / VPLEX */
349 .product = "Invista",
350 .bl_product = "LUNZ",
351 .pgpolicy = MULTIBUS,
357 .product = "XtremApp",
358 .pgpolicy = MULTIBUS,
362 * SC Series, formerly Compellent
364 * Maintainer: Sean McGinnis <sean_mcginnis@dell.com>
366 .vendor = "COMPELNT",
367 .product = "Compellent Vol",
368 .pgpolicy = MULTIBUS,
369 .no_path_retry = NO_PATH_RETRY_QUEUE,
375 .bl_product = "Universal Xport",
376 .pgpolicy = GROUP_BY_PRIO,
377 .checker_name = RDAC,
378 .features = "2 pg_init_retries 50",
379 .hwhandler = "1 rdac",
380 .prio_name = PRIO_RDAC,
381 .pgfailback = -FAILBACK_IMMEDIATE,
385 /* EMC PowerMax NVMe */
387 .product = "^EMC PowerMax_",
388 .pgpolicy = MULTIBUS,
394 /* CentricStor Virtual Tape */
396 .product = "CentricStor",
397 .pgpolicy = GROUP_BY_SERIAL,
402 .product = "ETERNUS_DX(H|L|M|400|8000)",
403 .pgpolicy = GROUP_BY_PRIO,
404 .pgfailback = -FAILBACK_IMMEDIATE,
406 .prio_name = PRIO_ALUA,
410 .vendor = "(EUROLOGC|EuroLogc)",
412 .pgpolicy = MULTIBUS,
415 /* ETERNUS 2000, 3000 and 4000 */
417 .product = "E[234]000",
418 .pgpolicy = GROUP_BY_PRIO,
419 .pgfailback = -FAILBACK_IMMEDIATE,
421 .prio_name = PRIO_ALUA,
424 /* ETERNUS 6000 and 8000 */
426 .product = "E[68]000",
427 .pgpolicy = MULTIBUS,
433 * Maintainer: Matthias Rudolph <Matthias.Rudolph@hitachivantara.com>
436 /* USP-V, HUS VM, VSP, VSP G1X00 and VSP GX00 families / HP XP */
437 .vendor = "(HITACHI|HP)",
439 .pgpolicy = MULTIBUS,
442 /* AMS other than AMS 2000 */
445 .no_path_retry = NO_PATH_RETRY_QUEUE,
446 .pgpolicy = GROUP_BY_PRIO,
447 .pgfailback = -FAILBACK_IMMEDIATE,
448 .prio_name = PRIO_HDS,
451 /* AMS 2000 and HUS 100 families */
453 .product = "^DF600F",
454 .pgpolicy = MULTIBUS,
459 * Maintainer: Hannes Reinecke <hare@suse.de>
464 .product = "ProFibre 4000R",
465 .pgpolicy = MULTIBUS,
468 /* DS4300 / FAStT600 */
470 .product = "^1722-600",
471 .bl_product = "Universal Xport",
472 .pgpolicy = GROUP_BY_PRIO,
473 .checker_name = RDAC,
474 .features = "2 pg_init_retries 50",
475 .hwhandler = "1 rdac",
476 .prio_name = PRIO_RDAC,
477 .pgfailback = -FAILBACK_IMMEDIATE,
481 /* DS4100 / FAStT100 */
484 .bl_product = "Universal Xport",
485 .pgpolicy = GROUP_BY_PRIO,
486 .checker_name = RDAC,
487 .features = "2 pg_init_retries 50",
488 .hwhandler = "1 rdac",
489 .prio_name = PRIO_RDAC,
490 .pgfailback = -FAILBACK_IMMEDIATE,
494 /* DS3000 / DS3200 / DS3300 / DS3400 / Boot DS */
497 .bl_product = "Universal Xport",
498 .pgpolicy = GROUP_BY_PRIO,
499 .checker_name = RDAC,
500 .features = "2 pg_init_retries 50",
501 .hwhandler = "1 rdac",
502 .prio_name = PRIO_RDAC,
503 .pgfailback = -FAILBACK_IMMEDIATE,
507 /* DS4400 / DS4500 / FAStT700 / FAStT900 */
510 .bl_product = "Universal Xport",
511 .pgpolicy = GROUP_BY_PRIO,
512 .checker_name = RDAC,
513 .features = "2 pg_init_retries 50",
514 .hwhandler = "1 rdac",
515 .prio_name = PRIO_RDAC,
516 .pgfailback = -FAILBACK_IMMEDIATE,
520 /* DS3500 / DS3512 / DS3524 */
523 .bl_product = "Universal Xport",
524 .pgpolicy = GROUP_BY_PRIO,
525 .checker_name = RDAC,
526 .features = "2 pg_init_retries 50",
527 .hwhandler = "1 rdac",
528 .prio_name = PRIO_RDAC,
529 .pgfailback = -FAILBACK_IMMEDIATE,
536 .bl_product = "Universal Xport",
537 .pgpolicy = GROUP_BY_PRIO,
538 .checker_name = RDAC,
539 .features = "2 pg_init_retries 50",
540 .hwhandler = "1 rdac",
541 .prio_name = PRIO_RDAC,
542 .pgfailback = -FAILBACK_IMMEDIATE,
546 /* DS3950 / DS4200 / DS4700 / DS5020 */
549 .bl_product = "Universal Xport",
550 .pgpolicy = GROUP_BY_PRIO,
551 .checker_name = RDAC,
552 .features = "2 pg_init_retries 50",
553 .hwhandler = "1 rdac",
554 .prio_name = PRIO_RDAC,
555 .pgfailback = -FAILBACK_IMMEDIATE,
562 .bl_product = "Universal Xport",
563 .pgpolicy = GROUP_BY_PRIO,
564 .checker_name = RDAC,
565 .features = "2 pg_init_retries 50",
566 .hwhandler = "1 rdac",
567 .prio_name = PRIO_RDAC,
568 .pgfailback = -FAILBACK_IMMEDIATE,
572 /* DS5000 / DS5100 / DS5300 / DCS3700 */
575 .bl_product = "Universal Xport",
576 .pgpolicy = GROUP_BY_PRIO,
577 .checker_name = RDAC,
578 .features = "2 pg_init_retries 50",
579 .hwhandler = "1 rdac",
580 .prio_name = PRIO_RDAC,
581 .pgfailback = -FAILBACK_IMMEDIATE,
585 /* Netfinity Fibre Channel RAID Controller Unit */
588 .bl_product = "Universal Xport",
589 .pgpolicy = GROUP_BY_PRIO,
590 .checker_name = RDAC,
591 .features = "2 pg_init_retries 50",
592 .hwhandler = "1 rdac",
593 .prio_name = PRIO_RDAC,
594 .pgfailback = -FAILBACK_IMMEDIATE,
598 /* FAStT200 and FAStT500 */
600 .product = "^(3542|3552)",
601 .bl_product = "Universal Xport",
602 .pgpolicy = GROUP_BY_PRIO,
603 .checker_name = RDAC,
604 .features = "2 pg_init_retries 50",
605 .hwhandler = "1 rdac",
606 .prio_name = PRIO_RDAC,
607 .pgfailback = -FAILBACK_IMMEDIATE,
611 /* Enterprise Storage Server(ESS) / Shark family */
614 .no_path_retry = NO_PATH_RETRY_QUEUE,
615 .pgpolicy = MULTIBUS,
618 /* DS6000 / DS6800 */
620 .product = "^1750500",
621 .no_path_retry = NO_PATH_RETRY_QUEUE,
622 .pgpolicy = GROUP_BY_PRIO,
623 .pgfailback = -FAILBACK_IMMEDIATE,
624 .prio_name = PRIO_ALUA,
629 .product = "^2107900",
630 .no_path_retry = NO_PATH_RETRY_QUEUE,
631 .pgpolicy = MULTIBUS,
634 /* Storwize family / SAN Volume Controller / Flex System V7000 / FlashSystem V840/V9000/9100 */
637 .no_path_retry = NO_PATH_RETRY_QUEUE,
638 .pgpolicy = GROUP_BY_PRIO,
639 .pgfailback = -FAILBACK_IMMEDIATE,
640 .prio_name = PRIO_ALUA,
645 .product = "S/390 DASD ECKD",
646 .bl_product = "S/390",
647 .uid_attribute = "ID_UID",
648 .no_path_retry = NO_PATH_RETRY_QUEUE,
649 .pgpolicy = MULTIBUS,
650 .checker_name = DIRECTIO,
655 .product = "S/390 DASD FBA",
656 .bl_product = "S/390",
657 .uid_attribute = "ID_UID",
658 .no_path_retry = NO_PATH_RETRY_QUEUE,
659 .pgpolicy = MULTIBUS,
660 .checker_name = DIRECTIO,
666 .no_path_retry = NO_PATH_RETRY_QUEUE,
667 .hwhandler = "1 alua",
668 .pgpolicy = GROUP_BY_PRIO,
669 .pgfailback = -FAILBACK_IMMEDIATE,
670 .prio_name = PRIO_ALUA,
673 /* SAS RAID Controller Module (RSSM) */
675 .product = "1820N00",
676 .pgpolicy = GROUP_BY_PRIO,
677 .pgfailback = -FAILBACK_IMMEDIATE,
678 .no_path_retry = NO_PATH_RETRY_QUEUE,
679 .prio_name = PRIO_ALUA,
682 /* XIV Storage System / FlashSystem A9000/A9000R */
683 .vendor = "(XIV|IBM)",
684 .product = "(NEXTRA|2810XIV)",
685 .no_path_retry = NO_PATH_RETRY_QUEUE,
686 .pgpolicy = MULTIBUS,
689 /* TMS RamSan / FlashSystem 710/720/810/820/840/900 */
690 .vendor = "(TMS|IBM)",
691 .product = "(RamSan|FlashSystem)",
692 .pgpolicy = MULTIBUS,
695 /* (DDN) DCS9900, SONAS 2851-DR1 */
697 .product = "^(DCS9900|2851)",
698 .pgpolicy = GROUP_BY_PRIO,
699 .pgfailback = -FAILBACK_IMMEDIATE,
700 .prio_name = PRIO_ALUA,
704 * IBM Power Virtual SCSI Devices
706 * Maintainer: Brian King <brking@linux.vnet.ibm.com>
712 .pgpolicy = MULTIBUS,
713 .no_path_retry = (300 / DEFAULT_CHECKINT),
718 .product = "3303[ ]+NVDISK",
719 .no_path_retry = (300 / DEFAULT_CHECKINT),
725 .hwhandler = "1 alua",
726 .pgpolicy = GROUP_BY_PRIO,
727 .pgfailback = -FAILBACK_IMMEDIATE,
728 .no_path_retry = (300 / DEFAULT_CHECKINT),
729 .prio_name = PRIO_ALUA,
738 * Maintainer: NetApp RDAC team <ng-eseries-upstream-maintainers@netapp.com>
741 .product = "DE_Series",
742 .bl_product = "Universal Xport",
743 .pgpolicy = GROUP_BY_PRIO,
744 .checker_name = RDAC,
745 .features = "2 pg_init_retries 50",
746 .hwhandler = "1 rdac",
747 .prio_name = PRIO_RDAC,
748 .pgfailback = -FAILBACK_IMMEDIATE,
758 * Maintainer: Martin George <marting@netapp.com>
762 .features = "2 pg_init_retries 50",
763 .no_path_retry = NO_PATH_RETRY_QUEUE,
764 .pgpolicy = GROUP_BY_PRIO,
765 .pgfailback = -FAILBACK_IMMEDIATE,
766 .flush_on_last_del = FLUSH_ENABLED,
767 .dev_loss = MAX_DEV_LOSS_TMO,
768 .prio_name = PRIO_ONTAP,
769 .user_friendly_names = USER_FRIENDLY_NAMES_OFF,
773 * SANtricity(RDAC) family
775 * Maintainer: NetApp RDAC team <ng-eseries-upstream-maintainers@netapp.com>
777 .vendor = "(NETAPP|LSI|ENGENIO)",
778 .product = "INF-01-00",
779 .bl_product = "Universal Xport",
780 .pgpolicy = GROUP_BY_PRIO,
781 .checker_name = RDAC,
782 .features = "2 pg_init_retries 50",
783 .hwhandler = "1 rdac",
784 .prio_name = PRIO_RDAC,
785 .pgfailback = -FAILBACK_IMMEDIATE,
792 * Maintainer: PJ Waskiewicz <pj.waskiewicz@netapp.com>
794 .vendor = "SolidFir",
795 .product = "SSD SAN",
796 .pgpolicy = MULTIBUS,
801 * NVMe-FC namespace devices: MULTIBUS, queueing preferred
803 * The hwtable is searched backwards, so place this after "Generic NVMe"
806 .product = "^NetApp ONTAP Controller",
807 .pgpolicy = MULTIBUS,
808 .no_path_retry = NO_PATH_RETRY_QUEUE,
816 .product = "DISK ARRAY",
817 .hwhandler = "1 alua",
818 .pgpolicy = GROUP_BY_PRIO,
819 .pgfailback = -FAILBACK_IMMEDIATE,
820 .prio_name = PRIO_ALUA,
826 * Pillar Data / Oracle FS
828 * Maintainer: Srinivasan Ramani <srinivas.ramani@oracle.com>
834 .pgpolicy = GROUP_BY_PRIO,
835 .pgfailback = -FAILBACK_IMMEDIATE,
836 .prio_name = PRIO_ALUA,
841 .product = "^Oracle FS",
842 .pgpolicy = GROUP_BY_PRIO,
843 .pgfailback = -FAILBACK_IMMEDIATE,
844 .prio_name = PRIO_ALUA,
846 /* Sun - StorageTek */
848 /* B210, B220, B240 and B280 */
850 .product = "BladeCtlr",
851 .bl_product = "Universal Xport",
852 .pgpolicy = GROUP_BY_PRIO,
853 .checker_name = RDAC,
854 .features = "2 pg_init_retries 50",
855 .hwhandler = "1 rdac",
856 .prio_name = PRIO_RDAC,
857 .pgfailback = -FAILBACK_IMMEDIATE,
861 /* 9176, D173, D178, D210, D220, D240 and D280 */
863 .product = "OPENstorage",
864 .bl_product = "Universal Xport",
865 .pgpolicy = GROUP_BY_PRIO,
866 .checker_name = RDAC,
867 .features = "2 pg_init_retries 50",
868 .hwhandler = "1 rdac",
869 .prio_name = PRIO_RDAC,
870 .pgfailback = -FAILBACK_IMMEDIATE,
876 .product = "FLEXLINE 380",
877 .bl_product = "Universal Xport",
878 .pgpolicy = GROUP_BY_PRIO,
879 .checker_name = RDAC,
880 .features = "2 pg_init_retries 50",
881 .hwhandler = "1 rdac",
882 .prio_name = PRIO_RDAC,
883 .pgfailback = -FAILBACK_IMMEDIATE,
887 /* (Dot Hill) 3120, 3310, 3320, 3510 and 3511 */
889 .product = "StorEdge 3",
890 .pgpolicy = MULTIBUS,
895 .product = "STK6580_6780",
896 .bl_product = "Universal Xport",
897 .pgpolicy = GROUP_BY_PRIO,
898 .checker_name = RDAC,
899 .features = "2 pg_init_retries 50",
900 .hwhandler = "1 rdac",
901 .prio_name = PRIO_RDAC,
902 .pgfailback = -FAILBACK_IMMEDIATE,
908 .product = "CSM[12]00_R",
909 .bl_product = "Universal Xport",
910 .pgpolicy = GROUP_BY_PRIO,
911 .checker_name = RDAC,
912 .features = "2 pg_init_retries 50",
913 .hwhandler = "1 rdac",
914 .prio_name = PRIO_RDAC,
915 .pgfailback = -FAILBACK_IMMEDIATE,
919 /* 2500 / 2510 / 2530 / 2540 */
921 .product = "LCSM100_[IEFS]",
922 .bl_product = "Universal Xport",
923 .pgpolicy = GROUP_BY_PRIO,
924 .checker_name = RDAC,
925 .features = "2 pg_init_retries 50",
926 .hwhandler = "1 rdac",
927 .prio_name = PRIO_RDAC,
928 .pgfailback = -FAILBACK_IMMEDIATE,
934 .product = "SUN_6180",
935 .bl_product = "Universal Xport",
936 .pgpolicy = GROUP_BY_PRIO,
937 .checker_name = RDAC,
938 .features = "2 pg_init_retries 50",
939 .hwhandler = "1 rdac",
940 .prio_name = PRIO_RDAC,
941 .pgfailback = -FAILBACK_IMMEDIATE,
947 .product = "ArrayStorage",
948 .bl_product = "Universal Xport",
949 .pgpolicy = GROUP_BY_PRIO,
950 .checker_name = RDAC,
951 .features = "2 pg_init_retries 50",
952 .hwhandler = "1 rdac",
953 .prio_name = PRIO_RDAC,
954 .pgfailback = -FAILBACK_IMMEDIATE,
958 /* ZFS Storage Appliances */
960 .product = "(Sun Storage|ZFS Storage|COMSTAR)",
961 .pgpolicy = GROUP_BY_PRIO,
962 .pgfailback = -FAILBACK_IMMEDIATE,
963 .prio_name = PRIO_ALUA,
969 * Maintainer: Bart Brooks <bartb@pivot3.com>
974 .product = "RAIGE VOLUME",
975 .no_path_retry = NO_PATH_RETRY_QUEUE,
976 .pgpolicy = MULTIBUS,
980 .vendor = "(NexGen|Pivot3)",
981 .product = "(TierStore|vSTAC)",
982 .pgpolicy = GROUP_BY_PRIO,
983 .pgfailback = -FAILBACK_IMMEDIATE,
984 .prio_name = PRIO_ALUA,
985 .no_path_retry = NO_PATH_RETRY_QUEUE,
992 .vendor = "(Intel|INTEL)",
993 .product = "Multi-Flex",
994 .bl_product = "VTrak V-LUN",
995 .hwhandler = "1 alua",
996 .pgpolicy = GROUP_BY_PRIO,
997 .pgfailback = -FAILBACK_IMMEDIATE,
998 .no_path_retry = NO_PATH_RETRY_QUEUE,
999 .prio_name = PRIO_ALUA,
1005 /* Linux-IO Target */
1006 .vendor = "(LIO-ORG|SUSE)",
1008 .hwhandler = "1 alua",
1009 .pgpolicy = GROUP_BY_PRIO,
1010 .pgfailback = -FAILBACK_IMMEDIATE,
1011 .no_path_retry = 12,
1012 .prio_name = PRIO_ALUA,
1019 .vendor = "DataCore",
1020 .product = "SANmelody",
1021 .pgpolicy = GROUP_BY_PRIO,
1022 .pgfailback = -FAILBACK_IMMEDIATE,
1023 .no_path_retry = NO_PATH_RETRY_QUEUE,
1024 .prio_name = PRIO_ALUA,
1028 .vendor = "DataCore",
1029 .product = "Virtual Disk",
1030 .pgpolicy = GROUP_BY_PRIO,
1031 .pgfailback = -FAILBACK_IMMEDIATE,
1032 .no_path_retry = NO_PATH_RETRY_QUEUE,
1033 .prio_name = PRIO_ALUA,
1041 .product = "FlashArray",
1042 .pgpolicy = MULTIBUS,
1051 .pgpolicy = GROUP_BY_PRIO,
1052 .prio_name = PRIO_ALUA,
1061 .pgpolicy = MULTIBUS,
1066 * Maintainer: Arnon Yaari <arnony@infinidat.com>
1070 .vendor = "NFINIDAT",
1071 .product = "InfiniBox",
1072 .pgpolicy = GROUP_BY_PRIO,
1074 .prio_name = PRIO_ALUA,
1075 .selector = "round-robin 0",
1076 .rr_weight = RR_WEIGHT_PRIO,
1077 .no_path_retry = NO_PATH_RETRY_FAIL,
1080 .flush_on_last_del = FLUSH_ENABLED,
1091 .pgpolicy = MULTIBUS,
1099 .product = "NXS-B0",
1100 .pgpolicy = GROUP_BY_PRIO,
1101 .pgfailback = -FAILBACK_IMMEDIATE,
1102 .prio_name = PRIO_ALUA,
1103 .no_path_retry = 15,
1106 /* SATABeast / SATABoy */
1109 .pgpolicy = GROUP_BY_PRIO,
1110 .pgfailback = -FAILBACK_IMMEDIATE,
1111 .prio_name = PRIO_ALUA,
1112 .no_path_retry = 15,
1117 .product = "(NestOS|NST5000)",
1118 .hwhandler = "1 alua",
1119 .pgpolicy = GROUP_BY_PRIO,
1120 .pgfailback = -FAILBACK_IMMEDIATE,
1121 .prio_name = PRIO_ALUA,
1122 .no_path_retry = 30,
1128 /* 3000 / 6000 Series */
1130 .product = "SAN ARRAY$",
1131 .pgpolicy = GROUP_BY_SERIAL,
1132 .no_path_retry = 30,
1135 /* 3000 / 6000 Series - ALUA mode */
1137 .product = "SAN ARRAY ALUA",
1138 .hwhandler = "1 alua",
1139 .pgpolicy = GROUP_BY_PRIO,
1140 .pgfailback = -FAILBACK_IMMEDIATE,
1141 .prio_name = PRIO_ALUA,
1142 .no_path_retry = 30,
1145 /* FSP 7000 family */
1147 .product = "CONCERTO ARRAY",
1148 .pgpolicy = MULTIBUS,
1149 .no_path_retry = 30,
1153 /* Intelligent Storage Elements family */
1154 .vendor = "(XIOTECH|XIOtech)",
1156 .pgpolicy = MULTIBUS,
1157 .no_path_retry = 12,
1160 /* iglu blaze family */
1161 .vendor = "(XIOTECH|XIOtech)",
1162 .product = "IGLU DISK",
1163 .pgpolicy = MULTIBUS,
1164 .no_path_retry = 30,
1167 /* Magnitude family */
1168 .vendor = "(XIOTECH|XIOtech)",
1169 .product = "Magnitude",
1170 .pgpolicy = MULTIBUS,
1171 .no_path_retry = 30,
1174 * Promise Technology
1178 .vendor = "Promise",
1180 .bl_product = "VTrak V-LUN",
1181 .hwhandler = "1 alua",
1182 .pgpolicy = GROUP_BY_PRIO,
1183 .pgfailback = -FAILBACK_IMMEDIATE,
1184 .prio_name = PRIO_ALUA,
1185 .no_path_retry = 30,
1189 .vendor = "Promise",
1191 .bl_product = "Vess V-LUN",
1192 .hwhandler = "1 alua",
1193 .pgpolicy = GROUP_BY_PRIO,
1194 .pgfailback = -FAILBACK_IMMEDIATE,
1195 .prio_name = PRIO_ALUA,
1196 .no_path_retry = 30,
1199 * Infortrend Technology
1202 /* EonStor / ESVA */
1205 .pgpolicy = GROUP_BY_PRIO,
1206 .pgfailback = -FAILBACK_IMMEDIATE,
1207 .prio_name = PRIO_ALUA,
1208 .no_path_retry = 30,
1211 * Seagate Technology (Dot Hill Systems)
1215 .vendor = "DotHill",
1216 .product = "SANnet",
1217 .pgpolicy = MULTIBUS,
1218 .no_path_retry = 30,
1221 /* R/Evolution family */
1222 .vendor = "DotHill",
1224 .pgpolicy = GROUP_BY_PRIO,
1225 .pgfailback = -FAILBACK_IMMEDIATE,
1226 .prio_name = PRIO_ALUA,
1227 .no_path_retry = 30,
1230 /* AssuredSAN family */
1231 .vendor = "DotHill",
1233 .pgpolicy = GROUP_BY_PRIO,
1234 .pgfailback = -FAILBACK_IMMEDIATE,
1235 .prio_name = PRIO_ALUA,
1236 .no_path_retry = 30,
1244 .product = "NeoSapphire",
1245 .pgpolicy = MULTIBUS,
1246 .no_path_retry = 30,
1252 /* AS5300/AS5500 G2 */
1255 .pgpolicy = GROUP_BY_PRIO,
1256 .pgfailback = -FAILBACK_IMMEDIATE,
1257 .prio_name = PRIO_ALUA,
1269 int setup_default_hwtable(vector hw)
1272 struct hwentry * hwe = default_hw;
1274 while (hwe->vendor) {
1275 r += store_hwe(hw, hwe);