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 /* Symmetrix / DMX / VMAX / PowerMax */
309 .product = "SYMMETRIX",
310 .pgpolicy = MULTIBUS,
314 /* DGC CLARiiON CX/AX / VNX and Unity */
316 .product = "^(RAID|DISK|VRAID)",
317 .bl_product = "LUNZ",
318 .hwhandler = "1 emc",
319 .pgpolicy = GROUP_BY_PRIO,
320 .pgfailback = -FAILBACK_IMMEDIATE,
321 .no_path_retry = (300 / DEFAULT_CHECKINT),
322 .checker_name = EMC_CLARIION,
323 .prio_name = PRIO_EMC,
326 /* Invista / VPLEX */
328 .product = "Invista",
329 .bl_product = "LUNZ",
330 .pgpolicy = MULTIBUS,
336 .product = "XtremApp",
337 .pgpolicy = MULTIBUS,
341 * SC Series, formerly Compellent
343 * Maintainer: Sean McGinnis <sean_mcginnis@dell.com>
345 .vendor = "COMPELNT",
346 .product = "Compellent Vol",
347 .pgpolicy = MULTIBUS,
348 .no_path_retry = NO_PATH_RETRY_QUEUE,
354 .bl_product = "Universal Xport",
355 .pgpolicy = GROUP_BY_PRIO,
356 .checker_name = RDAC,
357 .features = "2 pg_init_retries 50",
358 .hwhandler = "1 rdac",
359 .prio_name = PRIO_RDAC,
360 .pgfailback = -FAILBACK_IMMEDIATE,
367 /* CentricStor Virtual Tape */
369 .product = "CentricStor",
370 .pgpolicy = GROUP_BY_SERIAL,
375 .product = "ETERNUS_DX(H|L|M|400|8000)",
376 .pgpolicy = GROUP_BY_PRIO,
377 .pgfailback = -FAILBACK_IMMEDIATE,
379 .prio_name = PRIO_ALUA,
383 .vendor = "(EUROLOGC|EuroLogc)",
385 .pgpolicy = MULTIBUS,
388 /* ETERNUS 2000, 3000 and 4000 */
390 .product = "E[234]000",
391 .pgpolicy = GROUP_BY_PRIO,
392 .pgfailback = -FAILBACK_IMMEDIATE,
394 .prio_name = PRIO_ALUA,
397 /* ETERNUS 6000 and 8000 */
399 .product = "E[68]000",
400 .pgpolicy = MULTIBUS,
406 * Maintainer: Matthias Rudolph <Matthias.Rudolph@hitachivantara.com>
409 /* USP-V, HUS VM, VSP, VSP G1X00 and VSP GX00 families / HP XP */
410 .vendor = "(HITACHI|HP)",
412 .pgpolicy = MULTIBUS,
415 /* AMS other than AMS 2000 */
418 .no_path_retry = NO_PATH_RETRY_QUEUE,
419 .pgpolicy = GROUP_BY_PRIO,
420 .pgfailback = -FAILBACK_IMMEDIATE,
421 .prio_name = PRIO_HDS,
424 /* AMS 2000 and HUS 100 families */
426 .product = "^DF600F",
427 .pgpolicy = MULTIBUS,
432 * Maintainer: Hannes Reinecke <hare@suse.de>
437 .product = "ProFibre 4000R",
438 .pgpolicy = MULTIBUS,
441 /* DS4300 / FAStT600 */
443 .product = "^1722-600",
444 .bl_product = "Universal Xport",
445 .pgpolicy = GROUP_BY_PRIO,
446 .checker_name = RDAC,
447 .features = "2 pg_init_retries 50",
448 .hwhandler = "1 rdac",
449 .prio_name = PRIO_RDAC,
450 .pgfailback = -FAILBACK_IMMEDIATE,
454 /* DS4100 / FAStT100 */
457 .bl_product = "Universal Xport",
458 .pgpolicy = GROUP_BY_PRIO,
459 .checker_name = RDAC,
460 .features = "2 pg_init_retries 50",
461 .hwhandler = "1 rdac",
462 .prio_name = PRIO_RDAC,
463 .pgfailback = -FAILBACK_IMMEDIATE,
467 /* DS3000 / DS3200 / DS3300 / DS3400 / Boot DS */
470 .bl_product = "Universal Xport",
471 .pgpolicy = GROUP_BY_PRIO,
472 .checker_name = RDAC,
473 .features = "2 pg_init_retries 50",
474 .hwhandler = "1 rdac",
475 .prio_name = PRIO_RDAC,
476 .pgfailback = -FAILBACK_IMMEDIATE,
480 /* DS4400 / DS4500 / FAStT700 / FAStT900 */
483 .bl_product = "Universal Xport",
484 .pgpolicy = GROUP_BY_PRIO,
485 .checker_name = RDAC,
486 .features = "2 pg_init_retries 50",
487 .hwhandler = "1 rdac",
488 .prio_name = PRIO_RDAC,
489 .pgfailback = -FAILBACK_IMMEDIATE,
493 /* DS3500 / DS3512 / DS3524 */
496 .bl_product = "Universal Xport",
497 .pgpolicy = GROUP_BY_PRIO,
498 .checker_name = RDAC,
499 .features = "2 pg_init_retries 50",
500 .hwhandler = "1 rdac",
501 .prio_name = PRIO_RDAC,
502 .pgfailback = -FAILBACK_IMMEDIATE,
509 .bl_product = "Universal Xport",
510 .pgpolicy = GROUP_BY_PRIO,
511 .checker_name = RDAC,
512 .features = "2 pg_init_retries 50",
513 .hwhandler = "1 rdac",
514 .prio_name = PRIO_RDAC,
515 .pgfailback = -FAILBACK_IMMEDIATE,
519 /* DS3950 / DS4200 / DS4700 / DS5020 */
522 .bl_product = "Universal Xport",
523 .pgpolicy = GROUP_BY_PRIO,
524 .checker_name = RDAC,
525 .features = "2 pg_init_retries 50",
526 .hwhandler = "1 rdac",
527 .prio_name = PRIO_RDAC,
528 .pgfailback = -FAILBACK_IMMEDIATE,
535 .bl_product = "Universal Xport",
536 .pgpolicy = GROUP_BY_PRIO,
537 .checker_name = RDAC,
538 .features = "2 pg_init_retries 50",
539 .hwhandler = "1 rdac",
540 .prio_name = PRIO_RDAC,
541 .pgfailback = -FAILBACK_IMMEDIATE,
545 /* DS5000 / DS5100 / DS5300 / DCS3700 */
548 .bl_product = "Universal Xport",
549 .pgpolicy = GROUP_BY_PRIO,
550 .checker_name = RDAC,
551 .features = "2 pg_init_retries 50",
552 .hwhandler = "1 rdac",
553 .prio_name = PRIO_RDAC,
554 .pgfailback = -FAILBACK_IMMEDIATE,
558 /* Netfinity Fibre Channel RAID Controller Unit */
561 .bl_product = "Universal Xport",
562 .pgpolicy = GROUP_BY_PRIO,
563 .checker_name = RDAC,
564 .features = "2 pg_init_retries 50",
565 .hwhandler = "1 rdac",
566 .prio_name = PRIO_RDAC,
567 .pgfailback = -FAILBACK_IMMEDIATE,
571 /* FAStT200 and FAStT500 */
573 .product = "^(3542|3552)",
574 .bl_product = "Universal Xport",
575 .pgpolicy = GROUP_BY_PRIO,
576 .checker_name = RDAC,
577 .features = "2 pg_init_retries 50",
578 .hwhandler = "1 rdac",
579 .prio_name = PRIO_RDAC,
580 .pgfailback = -FAILBACK_IMMEDIATE,
584 /* Enterprise Storage Server(ESS) / Shark family */
587 .no_path_retry = NO_PATH_RETRY_QUEUE,
588 .pgpolicy = MULTIBUS,
591 /* DS6000 / DS6800 */
593 .product = "^1750500",
594 .no_path_retry = NO_PATH_RETRY_QUEUE,
595 .pgpolicy = GROUP_BY_PRIO,
596 .pgfailback = -FAILBACK_IMMEDIATE,
597 .prio_name = PRIO_ALUA,
602 .product = "^2107900",
603 .no_path_retry = NO_PATH_RETRY_QUEUE,
604 .pgpolicy = MULTIBUS,
607 /* Storwize family / SAN Volume Controller / Flex System V7000 / FlashSystem V840/V9000/9100 */
610 .no_path_retry = NO_PATH_RETRY_QUEUE,
611 .pgpolicy = GROUP_BY_PRIO,
612 .pgfailback = -FAILBACK_IMMEDIATE,
613 .prio_name = PRIO_ALUA,
618 .product = "S/390 DASD ECKD",
619 .bl_product = "S/390",
620 .uid_attribute = "ID_UID",
621 .no_path_retry = NO_PATH_RETRY_QUEUE,
622 .pgpolicy = MULTIBUS,
623 .checker_name = DIRECTIO,
628 .product = "S/390 DASD FBA",
629 .bl_product = "S/390",
630 .uid_attribute = "ID_UID",
631 .no_path_retry = NO_PATH_RETRY_QUEUE,
632 .pgpolicy = MULTIBUS,
633 .checker_name = DIRECTIO,
639 .no_path_retry = NO_PATH_RETRY_QUEUE,
640 .hwhandler = "1 alua",
641 .pgpolicy = GROUP_BY_PRIO,
642 .pgfailback = -FAILBACK_IMMEDIATE,
643 .prio_name = PRIO_ALUA,
646 /* SAS RAID Controller Module (RSSM) */
648 .product = "1820N00",
649 .pgpolicy = GROUP_BY_PRIO,
650 .pgfailback = -FAILBACK_IMMEDIATE,
651 .no_path_retry = NO_PATH_RETRY_QUEUE,
652 .prio_name = PRIO_ALUA,
655 /* XIV Storage System / FlashSystem A9000/A9000R */
656 .vendor = "(XIV|IBM)",
657 .product = "(NEXTRA|2810XIV)",
658 .no_path_retry = NO_PATH_RETRY_QUEUE,
659 .pgpolicy = MULTIBUS,
662 /* TMS RamSan / FlashSystem 710/720/810/820/840/900 */
663 .vendor = "(TMS|IBM)",
664 .product = "(RamSan|FlashSystem)",
665 .pgpolicy = MULTIBUS,
668 /* (DDN) DCS9900, SONAS 2851-DR1 */
670 .product = "^(DCS9900|2851)",
671 .pgpolicy = GROUP_BY_PRIO,
672 .pgfailback = -FAILBACK_IMMEDIATE,
673 .prio_name = PRIO_ALUA,
677 * IBM Power Virtual SCSI Devices
679 * Maintainer: Brian King <brking@linux.vnet.ibm.com>
685 .pgpolicy = MULTIBUS,
686 .no_path_retry = (300 / DEFAULT_CHECKINT),
691 .product = "3303[ ]+NVDISK",
692 .no_path_retry = (300 / DEFAULT_CHECKINT),
698 .hwhandler = "1 alua",
699 .pgpolicy = GROUP_BY_PRIO,
700 .pgfailback = -FAILBACK_IMMEDIATE,
701 .no_path_retry = (300 / DEFAULT_CHECKINT),
702 .prio_name = PRIO_ALUA,
711 * Maintainer: NetApp RDAC team <ng-eseries-upstream-maintainers@netapp.com>
714 .product = "DE_Series",
715 .bl_product = "Universal Xport",
716 .pgpolicy = GROUP_BY_PRIO,
717 .checker_name = RDAC,
718 .features = "2 pg_init_retries 50",
719 .hwhandler = "1 rdac",
720 .prio_name = PRIO_RDAC,
721 .pgfailback = -FAILBACK_IMMEDIATE,
731 * Maintainer: Martin George <marting@netapp.com>
735 .features = "2 pg_init_retries 50",
736 .no_path_retry = NO_PATH_RETRY_QUEUE,
737 .pgpolicy = GROUP_BY_PRIO,
738 .pgfailback = -FAILBACK_IMMEDIATE,
739 .flush_on_last_del = FLUSH_ENABLED,
740 .dev_loss = MAX_DEV_LOSS_TMO,
741 .prio_name = PRIO_ONTAP,
742 .user_friendly_names = USER_FRIENDLY_NAMES_OFF,
746 * SANtricity(RDAC) family
748 * Maintainer: NetApp RDAC team <ng-eseries-upstream-maintainers@netapp.com>
750 .vendor = "(NETAPP|LSI|ENGENIO)",
751 .product = "INF-01-00",
752 .bl_product = "Universal Xport",
753 .pgpolicy = GROUP_BY_PRIO,
754 .checker_name = RDAC,
755 .features = "2 pg_init_retries 50",
756 .hwhandler = "1 rdac",
757 .prio_name = PRIO_RDAC,
758 .pgfailback = -FAILBACK_IMMEDIATE,
765 * Maintainer: PJ Waskiewicz <pj.waskiewicz@netapp.com>
767 .vendor = "SolidFir",
768 .product = "SSD SAN",
769 .pgpolicy = MULTIBUS,
774 * NVMe-FC namespace devices: MULTIBUS, queueing preferred
776 * The hwtable is searched backwards, so place this after "Generic NVMe"
779 .product = "^NetApp ONTAP Controller",
780 .pgpolicy = MULTIBUS,
781 .no_path_retry = NO_PATH_RETRY_QUEUE,
786 * Maintainer: Yacine Kheddache <yacine@alyseo.com>
791 .product = "COMSTAR",
792 .pgpolicy = GROUP_BY_SERIAL,
801 .product = "DISK ARRAY",
802 .hwhandler = "1 alua",
803 .pgpolicy = GROUP_BY_PRIO,
804 .pgfailback = -FAILBACK_IMMEDIATE,
805 .prio_name = PRIO_ALUA,
811 * Pillar Data / Oracle FS
813 * Maintainer: Srinivasan Ramani <srinivas.ramani@oracle.com>
819 .pgpolicy = GROUP_BY_PRIO,
820 .pgfailback = -FAILBACK_IMMEDIATE,
821 .prio_name = PRIO_ALUA,
826 .product = "^Oracle FS",
827 .pgpolicy = GROUP_BY_PRIO,
828 .pgfailback = -FAILBACK_IMMEDIATE,
829 .prio_name = PRIO_ALUA,
831 /* Sun - StorageTek */
833 /* B210, B220, B240 and B280 */
835 .product = "BladeCtlr",
836 .bl_product = "Universal Xport",
837 .pgpolicy = GROUP_BY_PRIO,
838 .checker_name = RDAC,
839 .features = "2 pg_init_retries 50",
840 .hwhandler = "1 rdac",
841 .prio_name = PRIO_RDAC,
842 .pgfailback = -FAILBACK_IMMEDIATE,
846 /* 9176, D173, D178, D210, D220, D240 and D280 */
848 .product = "OPENstorage",
849 .bl_product = "Universal Xport",
850 .pgpolicy = GROUP_BY_PRIO,
851 .checker_name = RDAC,
852 .features = "2 pg_init_retries 50",
853 .hwhandler = "1 rdac",
854 .prio_name = PRIO_RDAC,
855 .pgfailback = -FAILBACK_IMMEDIATE,
861 .product = "FLEXLINE 380",
862 .bl_product = "Universal Xport",
863 .pgpolicy = GROUP_BY_PRIO,
864 .checker_name = RDAC,
865 .features = "2 pg_init_retries 50",
866 .hwhandler = "1 rdac",
867 .prio_name = PRIO_RDAC,
868 .pgfailback = -FAILBACK_IMMEDIATE,
872 /* (Dot Hill) 3120, 3310, 3320, 3510 and 3511 */
874 .product = "StorEdge 3",
875 .pgpolicy = MULTIBUS,
880 .product = "STK6580_6780",
881 .bl_product = "Universal Xport",
882 .pgpolicy = GROUP_BY_PRIO,
883 .checker_name = RDAC,
884 .features = "2 pg_init_retries 50",
885 .hwhandler = "1 rdac",
886 .prio_name = PRIO_RDAC,
887 .pgfailback = -FAILBACK_IMMEDIATE,
893 .product = "CSM[12]00_R",
894 .bl_product = "Universal Xport",
895 .pgpolicy = GROUP_BY_PRIO,
896 .checker_name = RDAC,
897 .features = "2 pg_init_retries 50",
898 .hwhandler = "1 rdac",
899 .prio_name = PRIO_RDAC,
900 .pgfailback = -FAILBACK_IMMEDIATE,
904 /* 2500 / 2510 / 2530 / 2540 */
906 .product = "LCSM100_[IEFS]",
907 .bl_product = "Universal Xport",
908 .pgpolicy = GROUP_BY_PRIO,
909 .checker_name = RDAC,
910 .features = "2 pg_init_retries 50",
911 .hwhandler = "1 rdac",
912 .prio_name = PRIO_RDAC,
913 .pgfailback = -FAILBACK_IMMEDIATE,
919 .product = "SUN_6180",
920 .bl_product = "Universal Xport",
921 .pgpolicy = GROUP_BY_PRIO,
922 .checker_name = RDAC,
923 .features = "2 pg_init_retries 50",
924 .hwhandler = "1 rdac",
925 .prio_name = PRIO_RDAC,
926 .pgfailback = -FAILBACK_IMMEDIATE,
932 .product = "ArrayStorage",
933 .bl_product = "Universal Xport",
934 .pgpolicy = GROUP_BY_PRIO,
935 .checker_name = RDAC,
936 .features = "2 pg_init_retries 50",
937 .hwhandler = "1 rdac",
938 .prio_name = PRIO_RDAC,
939 .pgfailback = -FAILBACK_IMMEDIATE,
943 /* ZFS Storage Appliances */
945 .product = "(Sun Storage|ZFS Storage|COMSTAR)",
946 .pgpolicy = GROUP_BY_PRIO,
947 .pgfailback = -FAILBACK_IMMEDIATE,
948 .prio_name = PRIO_ALUA,
954 * Maintainer: Bart Brooks <bartb@pivot3.com>
959 .product = "RAIGE VOLUME",
960 .no_path_retry = NO_PATH_RETRY_QUEUE,
961 .pgpolicy = MULTIBUS,
965 .vendor = "(NexGen|Pivot3)",
966 .product = "(TierStore|vSTAC)",
967 .pgpolicy = GROUP_BY_PRIO,
968 .pgfailback = -FAILBACK_IMMEDIATE,
969 .prio_name = PRIO_ALUA,
970 .no_path_retry = NO_PATH_RETRY_QUEUE,
977 .vendor = "(Intel|INTEL)",
978 .product = "Multi-Flex",
979 .bl_product = "VTrak V-LUN",
980 .hwhandler = "1 alua",
981 .pgpolicy = GROUP_BY_PRIO,
982 .pgfailback = -FAILBACK_IMMEDIATE,
983 .no_path_retry = NO_PATH_RETRY_QUEUE,
984 .prio_name = PRIO_ALUA,
990 /* Linux-IO Target */
991 .vendor = "(LIO-ORG|SUSE)",
993 .hwhandler = "1 alua",
994 .pgpolicy = GROUP_BY_PRIO,
995 .pgfailback = -FAILBACK_IMMEDIATE,
997 .prio_name = PRIO_ALUA,
1004 .vendor = "DataCore",
1005 .product = "SANmelody",
1006 .pgpolicy = GROUP_BY_PRIO,
1007 .pgfailback = -FAILBACK_IMMEDIATE,
1008 .no_path_retry = NO_PATH_RETRY_QUEUE,
1009 .prio_name = PRIO_ALUA,
1013 .vendor = "DataCore",
1014 .product = "Virtual Disk",
1015 .pgpolicy = GROUP_BY_PRIO,
1016 .pgfailback = -FAILBACK_IMMEDIATE,
1017 .no_path_retry = NO_PATH_RETRY_QUEUE,
1018 .prio_name = PRIO_ALUA,
1026 .product = "FlashArray",
1027 .pgpolicy = MULTIBUS,
1036 .pgpolicy = GROUP_BY_PRIO,
1037 .prio_name = PRIO_ALUA,
1046 .pgpolicy = MULTIBUS,
1051 * Maintainer: Arnon Yaari <arnony@infinidat.com>
1055 .vendor = "NFINIDAT",
1056 .product = "InfiniBox",
1057 .pgpolicy = GROUP_BY_PRIO,
1059 .prio_name = PRIO_ALUA,
1060 .selector = "round-robin 0",
1061 .rr_weight = RR_WEIGHT_PRIO,
1062 .no_path_retry = NO_PATH_RETRY_FAIL,
1065 .flush_on_last_del = FLUSH_ENABLED,
1076 .pgpolicy = MULTIBUS,
1079 * Western Digital (Tegile Systems)
1084 .product = "(ZEBI-(FC|ISCSI)|INTELLIFLASH)",
1085 .hwhandler = "1 alua",
1086 .pgpolicy = GROUP_BY_PRIO,
1087 .pgfailback = -FAILBACK_IMMEDIATE,
1088 .prio_name = PRIO_ALUA,
1089 .no_path_retry = 10,
1097 .product = "NXS-B0",
1098 .pgpolicy = GROUP_BY_PRIO,
1099 .pgfailback = -FAILBACK_IMMEDIATE,
1100 .prio_name = PRIO_ALUA,
1101 .no_path_retry = 15,
1104 /* SATABeast / SATABoy */
1107 .pgpolicy = GROUP_BY_PRIO,
1108 .pgfailback = -FAILBACK_IMMEDIATE,
1109 .prio_name = PRIO_ALUA,
1110 .no_path_retry = 15,
1115 .product = "(NestOS|NST5000)",
1116 .hwhandler = "1 alua",
1117 .pgpolicy = GROUP_BY_PRIO,
1118 .pgfailback = -FAILBACK_IMMEDIATE,
1119 .prio_name = PRIO_ALUA,
1120 .no_path_retry = 30,
1126 /* 3000 / 6000 Series */
1128 .product = "SAN ARRAY$",
1129 .pgpolicy = GROUP_BY_SERIAL,
1130 .no_path_retry = 30,
1133 /* 3000 / 6000 Series - ALUA mode */
1135 .product = "SAN ARRAY ALUA",
1136 .hwhandler = "1 alua",
1137 .pgpolicy = GROUP_BY_PRIO,
1138 .pgfailback = -FAILBACK_IMMEDIATE,
1139 .prio_name = PRIO_ALUA,
1140 .no_path_retry = 30,
1143 /* FSP 7000 family */
1145 .product = "CONCERTO ARRAY",
1146 .pgpolicy = MULTIBUS,
1147 .no_path_retry = 30,
1151 /* Intelligent Storage Elements family */
1152 .vendor = "(XIOTECH|XIOtech)",
1154 .pgpolicy = MULTIBUS,
1155 .no_path_retry = 12,
1158 /* iglu blaze family */
1159 .vendor = "(XIOTECH|XIOtech)",
1160 .product = "IGLU DISK",
1161 .pgpolicy = MULTIBUS,
1162 .no_path_retry = 30,
1165 /* Magnitude family */
1166 .vendor = "(XIOTECH|XIOtech)",
1167 .product = "Magnitude",
1168 .pgpolicy = MULTIBUS,
1169 .no_path_retry = 30,
1172 * Promise Technology
1176 .vendor = "Promise",
1178 .bl_product = "VTrak V-LUN",
1179 .hwhandler = "1 alua",
1180 .pgpolicy = GROUP_BY_PRIO,
1181 .pgfailback = -FAILBACK_IMMEDIATE,
1182 .prio_name = PRIO_ALUA,
1183 .no_path_retry = 30,
1187 .vendor = "Promise",
1189 .bl_product = "Vess V-LUN",
1190 .hwhandler = "1 alua",
1191 .pgpolicy = GROUP_BY_PRIO,
1192 .pgfailback = -FAILBACK_IMMEDIATE,
1193 .prio_name = PRIO_ALUA,
1194 .no_path_retry = 30,
1197 * Infortrend Technology
1200 /* EonStor / ESVA */
1203 .pgpolicy = GROUP_BY_PRIO,
1204 .pgfailback = -FAILBACK_IMMEDIATE,
1205 .prio_name = PRIO_ALUA,
1206 .no_path_retry = 30,
1209 * Seagate Technology (Dot Hill Systems)
1213 .vendor = "DotHill",
1214 .product = "SANnet",
1215 .pgpolicy = MULTIBUS,
1216 .no_path_retry = 30,
1219 /* R/Evolution family */
1220 .vendor = "DotHill",
1222 .pgpolicy = GROUP_BY_PRIO,
1223 .pgfailback = -FAILBACK_IMMEDIATE,
1224 .prio_name = PRIO_ALUA,
1225 .no_path_retry = 30,
1228 /* AssuredSAN family */
1229 .vendor = "DotHill",
1231 .pgpolicy = GROUP_BY_PRIO,
1232 .pgfailback = -FAILBACK_IMMEDIATE,
1233 .prio_name = PRIO_ALUA,
1234 .no_path_retry = 30,
1242 .product = "NeoSapphire",
1243 .pgpolicy = MULTIBUS,
1244 .no_path_retry = 30,
1250 /* AS5300/AS5500 G2 */
1253 .pgpolicy = GROUP_BY_PRIO,
1254 .pgfailback = -FAILBACK_IMMEDIATE,
1255 .prio_name = PRIO_ALUA,
1267 int setup_default_hwtable(vector hw)
1270 struct hwentry * hwe = default_hw;
1272 while (hwe->vendor) {
1273 r += store_hwe(hw, hwe);