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: XXX <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 = "ID_WWN",
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 */
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: Martin George <marting@netapp.com>
715 .features = "2 pg_init_retries 50",
716 .no_path_retry = NO_PATH_RETRY_QUEUE,
717 .pgpolicy = GROUP_BY_PRIO,
718 .pgfailback = -FAILBACK_IMMEDIATE,
719 .flush_on_last_del = FLUSH_ENABLED,
720 .dev_loss = MAX_DEV_LOSS_TMO,
721 .prio_name = PRIO_ONTAP,
725 * SANtricity(RDAC) family
727 * Maintainer: NetApp RDAC team <ng-eseries-upstream-maintainers@netapp.com>
729 .vendor = "(NETAPP|LSI|ENGENIO)",
730 .product = "INF-01-00",
731 .bl_product = "Universal Xport",
732 .pgpolicy = GROUP_BY_PRIO,
733 .checker_name = RDAC,
734 .features = "2 pg_init_retries 50",
735 .hwhandler = "1 rdac",
736 .prio_name = PRIO_RDAC,
737 .pgfailback = -FAILBACK_IMMEDIATE,
744 * Maintainer: PJ Waskiewicz <pj.waskiewicz@netapp.com>
746 .vendor = "SolidFir",
747 .product = "SSD SAN",
748 .pgpolicy = MULTIBUS,
753 * NVMe-FC namespace devices: MULTIBUS, queueing preferred
755 * The hwtable is searched backwards, so place this after "Generic NVMe"
758 .product = "^NetApp ONTAP Controller",
759 .pgpolicy = MULTIBUS,
760 .no_path_retry = NO_PATH_RETRY_QUEUE,
765 * Maintainer: Yacine Kheddache <yacine@alyseo.com>
770 .product = "COMSTAR",
771 .pgpolicy = GROUP_BY_SERIAL,
780 .product = "DISK ARRAY",
781 .hwhandler = "1 alua",
782 .pgpolicy = GROUP_BY_PRIO,
783 .pgfailback = -FAILBACK_IMMEDIATE,
784 .prio_name = PRIO_ALUA,
790 * Pillar Data / Oracle FS
792 * Maintainer: Srinivasan Ramani <srinivas.ramani@oracle.com>
798 .pgpolicy = GROUP_BY_PRIO,
799 .pgfailback = -FAILBACK_IMMEDIATE,
800 .prio_name = PRIO_ALUA,
805 .product = "^Oracle FS",
806 .pgpolicy = GROUP_BY_PRIO,
807 .pgfailback = -FAILBACK_IMMEDIATE,
808 .prio_name = PRIO_ALUA,
810 /* Sun - StorageTek */
812 /* B210, B220, B240 and B280 */
814 .product = "BladeCtlr",
815 .bl_product = "Universal Xport",
816 .pgpolicy = GROUP_BY_PRIO,
817 .checker_name = RDAC,
818 .features = "2 pg_init_retries 50",
819 .hwhandler = "1 rdac",
820 .prio_name = PRIO_RDAC,
821 .pgfailback = -FAILBACK_IMMEDIATE,
825 /* 9176, D173, D178, D210, D220, D240 and D280 */
827 .product = "OPENstorage",
828 .bl_product = "Universal Xport",
829 .pgpolicy = GROUP_BY_PRIO,
830 .checker_name = RDAC,
831 .features = "2 pg_init_retries 50",
832 .hwhandler = "1 rdac",
833 .prio_name = PRIO_RDAC,
834 .pgfailback = -FAILBACK_IMMEDIATE,
840 .product = "FLEXLINE 380",
841 .bl_product = "Universal Xport",
842 .pgpolicy = GROUP_BY_PRIO,
843 .checker_name = RDAC,
844 .features = "2 pg_init_retries 50",
845 .hwhandler = "1 rdac",
846 .prio_name = PRIO_RDAC,
847 .pgfailback = -FAILBACK_IMMEDIATE,
851 /* (Dot Hill) 3120, 3310, 3320, 3510 and 3511 */
853 .product = "StorEdge 3",
854 .pgpolicy = MULTIBUS,
859 .product = "STK6580_6780",
860 .bl_product = "Universal Xport",
861 .pgpolicy = GROUP_BY_PRIO,
862 .checker_name = RDAC,
863 .features = "2 pg_init_retries 50",
864 .hwhandler = "1 rdac",
865 .prio_name = PRIO_RDAC,
866 .pgfailback = -FAILBACK_IMMEDIATE,
872 .product = "CSM[12]00_R",
873 .bl_product = "Universal Xport",
874 .pgpolicy = GROUP_BY_PRIO,
875 .checker_name = RDAC,
876 .features = "2 pg_init_retries 50",
877 .hwhandler = "1 rdac",
878 .prio_name = PRIO_RDAC,
879 .pgfailback = -FAILBACK_IMMEDIATE,
883 /* 2500 / 2510 / 2530 / 2540 */
885 .product = "LCSM100_[IEFS]",
886 .bl_product = "Universal Xport",
887 .pgpolicy = GROUP_BY_PRIO,
888 .checker_name = RDAC,
889 .features = "2 pg_init_retries 50",
890 .hwhandler = "1 rdac",
891 .prio_name = PRIO_RDAC,
892 .pgfailback = -FAILBACK_IMMEDIATE,
898 .product = "SUN_6180",
899 .bl_product = "Universal Xport",
900 .pgpolicy = GROUP_BY_PRIO,
901 .checker_name = RDAC,
902 .features = "2 pg_init_retries 50",
903 .hwhandler = "1 rdac",
904 .prio_name = PRIO_RDAC,
905 .pgfailback = -FAILBACK_IMMEDIATE,
911 .product = "ArrayStorage",
912 .bl_product = "Universal Xport",
913 .pgpolicy = GROUP_BY_PRIO,
914 .checker_name = RDAC,
915 .features = "2 pg_init_retries 50",
916 .hwhandler = "1 rdac",
917 .prio_name = PRIO_RDAC,
918 .pgfailback = -FAILBACK_IMMEDIATE,
922 /* ZFS Storage Appliances */
924 .product = "(Sun Storage|ZFS Storage|COMSTAR)",
925 .pgpolicy = GROUP_BY_PRIO,
926 .pgfailback = -FAILBACK_IMMEDIATE,
927 .prio_name = PRIO_ALUA,
933 * Maintainer: Bart Brooks <bartb@pivot3.com>
938 .product = "RAIGE VOLUME",
939 .no_path_retry = NO_PATH_RETRY_QUEUE,
940 .pgpolicy = MULTIBUS,
944 .vendor = "(NexGen|Pivot3)",
945 .product = "(TierStore|vSTAC)",
946 .pgpolicy = GROUP_BY_PRIO,
947 .pgfailback = -FAILBACK_IMMEDIATE,
948 .prio_name = PRIO_ALUA,
949 .no_path_retry = NO_PATH_RETRY_QUEUE,
956 .vendor = "(Intel|INTEL)",
957 .product = "Multi-Flex",
958 .bl_product = "VTrak V-LUN",
959 .hwhandler = "1 alua",
960 .pgpolicy = GROUP_BY_PRIO,
961 .pgfailback = -FAILBACK_IMMEDIATE,
962 .no_path_retry = NO_PATH_RETRY_QUEUE,
963 .prio_name = PRIO_ALUA,
969 /* Linux-IO Target */
970 .vendor = "(LIO-ORG|SUSE)",
972 .hwhandler = "1 alua",
973 .pgpolicy = GROUP_BY_PRIO,
974 .pgfailback = -FAILBACK_IMMEDIATE,
976 .prio_name = PRIO_ALUA,
983 .vendor = "DataCore",
984 .product = "SANmelody",
985 .pgpolicy = GROUP_BY_PRIO,
986 .pgfailback = -FAILBACK_IMMEDIATE,
987 .no_path_retry = NO_PATH_RETRY_QUEUE,
988 .prio_name = PRIO_ALUA,
992 .vendor = "DataCore",
993 .product = "Virtual Disk",
994 .pgpolicy = GROUP_BY_PRIO,
995 .pgfailback = -FAILBACK_IMMEDIATE,
996 .no_path_retry = NO_PATH_RETRY_QUEUE,
997 .prio_name = PRIO_ALUA,
1005 .product = "FlashArray",
1006 .pgpolicy = MULTIBUS,
1015 .pgpolicy = GROUP_BY_PRIO,
1016 .prio_name = PRIO_ALUA,
1025 .pgpolicy = MULTIBUS,
1030 * Maintainer: Arnon Yaari <arnony@infinidat.com>
1034 .vendor = "NFINIDAT",
1035 .product = "InfiniBox",
1036 .pgpolicy = GROUP_BY_PRIO,
1038 .prio_name = PRIO_ALUA,
1039 .selector = "round-robin 0",
1040 .rr_weight = RR_WEIGHT_PRIO,
1041 .no_path_retry = NO_PATH_RETRY_FAIL,
1044 .flush_on_last_del = FLUSH_ENABLED,
1055 .pgpolicy = MULTIBUS,
1058 * Western Digital (Tegile Systems)
1063 .product = "(ZEBI-(FC|ISCSI)|INTELLIFLASH)",
1064 .hwhandler = "1 alua",
1065 .pgpolicy = GROUP_BY_PRIO,
1066 .pgfailback = -FAILBACK_IMMEDIATE,
1067 .prio_name = PRIO_ALUA,
1068 .no_path_retry = 10,
1076 .product = "NXS-B0",
1077 .pgpolicy = GROUP_BY_PRIO,
1078 .pgfailback = -FAILBACK_IMMEDIATE,
1079 .prio_name = PRIO_ALUA,
1080 .no_path_retry = 15,
1083 /* SATABeast / SATABoy */
1086 .pgpolicy = GROUP_BY_PRIO,
1087 .pgfailback = -FAILBACK_IMMEDIATE,
1088 .prio_name = PRIO_ALUA,
1089 .no_path_retry = 15,
1094 .product = "(NestOS|NST5000)",
1095 .hwhandler = "1 alua",
1096 .pgpolicy = GROUP_BY_PRIO,
1097 .pgfailback = -FAILBACK_IMMEDIATE,
1098 .prio_name = PRIO_ALUA,
1099 .no_path_retry = 30,
1105 /* Intelligent Storage Elements family */
1106 .vendor = "(XIOTECH|XIOtech)",
1108 .pgpolicy = MULTIBUS,
1109 .no_path_retry = 12,
1112 /* iglu blaze family */
1113 .vendor = "(XIOTECH|XIOtech)",
1114 .product = "IGLU DISK",
1115 .pgpolicy = MULTIBUS,
1116 .no_path_retry = 30,
1119 /* Magnitude family */
1120 .vendor = "(XIOTECH|XIOtech)",
1121 .product = "Magnitude",
1122 .pgpolicy = MULTIBUS,
1123 .no_path_retry = 30,
1129 /* 3000 / 6000 Series */
1131 .product = "SAN ARRAY$",
1132 .pgpolicy = GROUP_BY_SERIAL,
1133 .no_path_retry = 30,
1136 /* 3000 / 6000 Series - ALUA mode */
1138 .product = "SAN ARRAY ALUA",
1139 .hwhandler = "1 alua",
1140 .pgpolicy = GROUP_BY_PRIO,
1141 .pgfailback = -FAILBACK_IMMEDIATE,
1142 .prio_name = PRIO_ALUA,
1143 .no_path_retry = 30,
1146 /* FSP 7000 family */
1148 .product = "CONCERTO ARRAY",
1149 .pgpolicy = MULTIBUS,
1150 .no_path_retry = 30,
1153 * Promise Technology
1157 .vendor = "Promise",
1159 .bl_product = "VTrak V-LUN",
1160 .hwhandler = "1 alua",
1161 .pgpolicy = GROUP_BY_PRIO,
1162 .pgfailback = -FAILBACK_IMMEDIATE,
1163 .prio_name = PRIO_ALUA,
1164 .no_path_retry = 30,
1168 .vendor = "Promise",
1170 .bl_product = "Vess V-LUN",
1171 .hwhandler = "1 alua",
1172 .pgpolicy = GROUP_BY_PRIO,
1173 .pgfailback = -FAILBACK_IMMEDIATE,
1174 .prio_name = PRIO_ALUA,
1175 .no_path_retry = 30,
1178 * Infortrend Technology
1181 /* EonStor / ESVA */
1184 .pgpolicy = GROUP_BY_PRIO,
1185 .pgfailback = -FAILBACK_IMMEDIATE,
1186 .prio_name = PRIO_ALUA,
1187 .no_path_retry = 30,
1190 * Seagate Technology (Dot Hill Systems)
1194 .vendor = "DotHill",
1195 .product = "SANnet",
1196 .pgpolicy = MULTIBUS,
1197 .no_path_retry = 30,
1200 /* R/Evolution family */
1201 .vendor = "DotHill",
1203 .pgpolicy = GROUP_BY_PRIO,
1204 .pgfailback = -FAILBACK_IMMEDIATE,
1205 .prio_name = PRIO_ALUA,
1206 .no_path_retry = 30,
1209 /* AssuredSAN family */
1210 .vendor = "DotHill",
1212 .pgpolicy = GROUP_BY_PRIO,
1213 .pgfailback = -FAILBACK_IMMEDIATE,
1214 .prio_name = PRIO_ALUA,
1215 .no_path_retry = 30,
1223 .product = "NeoSapphire",
1224 .pgpolicy = MULTIBUS,
1225 .no_path_retry = 30,
1231 /* AS5300/AS5500 G2 */
1234 .pgpolicy = GROUP_BY_PRIO,
1235 .pgfailback = -FAILBACK_IMMEDIATE,
1236 .prio_name = PRIO_ALUA,
1248 int setup_default_hwtable(vector hw)
1251 struct hwentry * hwe = default_hw;
1253 while (hwe->vendor) {
1254 r += store_hwe(hw, hwe);