8 #include "pgpolicies.h"
12 * Tuning suggestions on these parameters should go to
15 * You are welcome to claim maintainership over a controller
16 * family. Please mail the currently enlisted maintainer and
17 * the upstream package maintainer.
19 static struct hwentry default_hw[] = {
21 * Compellent Technologies, Inc.
23 * Maintainer : Jim Lester, Compellent
24 * Mail : jim.lester@compellent.com
28 .product = "Compellent Vol",
29 .features = DEFAULT_FEATURES,
30 .hwhandler = DEFAULT_HWHANDLER,
32 .pgfailback = -FAILBACK_IMMEDIATE,
33 .rr_weight = RR_WEIGHT_NONE,
34 .no_path_retry = NO_PATH_RETRY_QUEUE,
36 .prio_name = DEFAULT_PRIO,
40 * Apple controller family
42 * Maintainer : Shyam Sundar
43 * Mail : g.shyamsundar@yahoo.co.in
47 .product = "Xserve RAID ",
48 .features = DEFAULT_FEATURES,
49 .hwhandler = DEFAULT_HWHANDLER,
51 .pgfailback = FAILBACK_UNDEF,
52 .rr_weight = RR_WEIGHT_NONE,
53 .no_path_retry = NO_PATH_RETRY_UNDEF,
54 .checker_name = DEFAULT_CHECKER,
55 .prio_name = DEFAULT_PRIO,
59 * StorageWorks controller family
61 * Maintainer : Christophe Varoqui
62 * Mail : christophe.varoqui@opensvc.com
67 .features = DEFAULT_FEATURES,
68 .hwhandler = DEFAULT_HWHANDLER,
70 .pgfailback = FAILBACK_UNDEF,
71 .rr_weight = RR_WEIGHT_NONE,
72 .no_path_retry = NO_PATH_RETRY_UNDEF,
73 .checker_name = DEFAULT_CHECKER,
74 .prio_name = DEFAULT_PRIO,
80 .features = "1 queue_if_no_path",
81 .hwhandler = "1 hp_sw",
82 .pgpolicy = GROUP_BY_PRIO,
83 .pgfailback = FAILBACK_UNDEF,
84 .rr_weight = RR_WEIGHT_NONE,
85 .no_path_retry = NO_PATH_RETRY_UNDEF,
86 .checker_name = HP_SW,
87 .prio_name = PRIO_HP_SW,
93 .features = DEFAULT_FEATURES,
94 .hwhandler = DEFAULT_HWHANDLER,
96 .pgfailback = FAILBACK_UNDEF,
97 .rr_weight = RR_WEIGHT_NONE,
99 .checker_name = DIRECTIO,
100 .prio_name = DEFAULT_PRIO,
104 /* MSA 1000/MSA1500 EVA 3000/5000 with old firmware */
105 .vendor = "(COMPAQ|HP)",
106 .product = "(MSA|HSV)1.0.*",
107 .features = "1 queue_if_no_path",
108 .hwhandler = "1 hp_sw",
109 .pgpolicy = GROUP_BY_PRIO,
110 .pgfailback = FAILBACK_UNDEF,
111 .rr_weight = RR_WEIGHT_NONE,
114 .checker_name = HP_SW,
115 .prio_name = PRIO_HP_SW,
119 /* MSA 1000/1500 with new firmware */
120 .vendor = "(COMPAQ|HP)",
121 .product = "MSA VOLUME",
122 .features = DEFAULT_FEATURES,
123 .hwhandler = DEFAULT_HWHANDLER,
124 .pgpolicy = GROUP_BY_PRIO,
125 .pgfailback = -FAILBACK_IMMEDIATE,
126 .rr_weight = RR_WEIGHT_NONE,
130 .prio_name = PRIO_ALUA,
134 /* EVA 3000/5000 with new firmware, EVA 4000/6000/8000 */
135 .vendor = "(COMPAQ|HP)",
136 .product = "HSV1[01]1|HSV2[01]0|HSV3[046]0|HSV4[05]0",
137 .features = DEFAULT_FEATURES,
138 .hwhandler = DEFAULT_HWHANDLER,
139 .pgpolicy = GROUP_BY_PRIO,
140 .pgfailback = -FAILBACK_IMMEDIATE,
141 .rr_weight = RR_WEIGHT_NONE,
145 .prio_name = PRIO_ALUA,
149 /* HP MSA2000 product family with old firmware */
151 .product = "MSA2[02]12fc|MSA2012i",
152 .features = DEFAULT_FEATURES,
153 .hwhandler = DEFAULT_HWHANDLER,
154 .pgpolicy = MULTIBUS,
155 .pgfailback = -FAILBACK_IMMEDIATE,
156 .rr_weight = RR_WEIGHT_NONE,
160 .prio_name = DEFAULT_PRIO,
164 /* HP MSA2000 product family with new firmware */
166 .product = "MSA2012sa|MSA23(12|24)(fc|i|sa)|MSA2000s VOLUME",
167 .features = DEFAULT_FEATURES,
168 .hwhandler = DEFAULT_HWHANDLER,
169 .pgpolicy = GROUP_BY_PRIO,
170 .pgfailback = -FAILBACK_IMMEDIATE,
171 .rr_weight = RR_WEIGHT_NONE,
175 .prio_name = PRIO_ALUA,
182 .product = "HSVX700",
183 .features = DEFAULT_FEATURES,
184 .hwhandler = "1 alua",
185 .pgpolicy = GROUP_BY_PRIO,
186 .pgfailback = -FAILBACK_IMMEDIATE,
187 .rr_weight = RR_WEIGHT_NONE,
191 .prio_name = PRIO_ALUA,
198 .product = "LOGICAL VOLUME.*",
199 .features = DEFAULT_FEATURES,
200 .hwhandler = DEFAULT_HWHANDLER,
201 .pgpolicy = MULTIBUS,
202 .pgfailback = FAILBACK_UNDEF,
203 .rr_weight = RR_WEIGHT_NONE,
206 .prio_name = DEFAULT_PRIO,
210 /* HP P2000 family arrays */
212 .product = "P2000 G3 FC|P2000G3 FC/iSCSI|P2000 G3 SAS|P2000 G3 iSCSI",
213 .features = DEFAULT_FEATURES,
214 .hwhandler = DEFAULT_HWHANDLER,
215 .pgpolicy = GROUP_BY_PRIO,
216 .pgfailback = -FAILBACK_IMMEDIATE,
217 .rr_weight = RR_WEIGHT_NONE,
221 .prio_name = PRIO_ALUA,
225 * DDN controller family
227 * Maintainer : Christophe Varoqui
228 * Mail : christophe.varoqui@opensvc.com
232 .product = "SAN DataDirector",
233 .features = DEFAULT_FEATURES,
234 .hwhandler = DEFAULT_HWHANDLER,
235 .pgpolicy = MULTIBUS,
236 .pgfailback = FAILBACK_UNDEF,
237 .rr_weight = RR_WEIGHT_NONE,
238 .no_path_retry = NO_PATH_RETRY_UNDEF,
239 .checker_name = DIRECTIO,
240 .prio_name = DEFAULT_PRIO,
244 * EMC / Clariion controller family
246 * Maintainer : Edward Goggin, EMC
247 * Mail : egoggin@emc.com
251 .product = "SYMMETRIX",
252 .features = DEFAULT_FEATURES,
253 .hwhandler = DEFAULT_HWHANDLER,
254 .pgpolicy = MULTIBUS,
255 .pgfailback = FAILBACK_UNDEF,
256 .rr_weight = RR_WEIGHT_NONE,
259 .prio_name = DEFAULT_PRIO,
265 .bl_product = "LUNZ",
266 .features = "1 queue_if_no_path",
267 .hwhandler = "1 emc",
268 .pgpolicy = GROUP_BY_PRIO,
269 .pgfailback = -FAILBACK_IMMEDIATE,
270 .rr_weight = RR_WEIGHT_NONE,
271 .no_path_retry = (300 / DEFAULT_CHECKINT),
272 .checker_name = EMC_CLARIION,
273 .prio_name = PRIO_EMC,
275 .retain_hwhandler = RETAIN_HWHANDLER_ON,
276 .detect_prio = DETECT_PRIO_ON,
280 .product = "Invista",
281 .bl_product = "LUNZ",
282 .features = DEFAULT_FEATURES,
283 .hwhandler = DEFAULT_HWHANDLER,
284 .pgpolicy = MULTIBUS,
285 .pgfailback = FAILBACK_UNDEF,
286 .rr_weight = RR_WEIGHT_NONE,
289 .prio_name = DEFAULT_PRIO,
294 .product = "XtremApp",
295 .features = DEFAULT_FEATURES,
296 .hwhandler = DEFAULT_HWHANDLER,
297 .selector = "queue-length 0",
298 .pgpolicy = MULTIBUS,
299 .pgfailback = FAILBACK_UNDEF,
302 .prio_name = DEFAULT_PRIO,
306 * Fujitsu controller family
308 * Maintainer : Christophe Varoqui
309 * Mail : christophe.varoqui@opensvc.com
313 .product = "CentricStor",
314 .features = DEFAULT_FEATURES,
315 .hwhandler = DEFAULT_HWHANDLER,
316 .pgpolicy = GROUP_BY_SERIAL,
317 .pgfailback = FAILBACK_UNDEF,
318 .rr_weight = RR_WEIGHT_NONE,
319 .no_path_retry = NO_PATH_RETRY_UNDEF,
320 .checker_name = DIRECTIO,
321 .prio_name = DEFAULT_PRIO,
326 .product = "ETERNUS_DX(H|L|M|400|8000)",
327 .features = "1 queue_if_no_path",
328 .hwhandler = DEFAULT_HWHANDLER,
329 .pgpolicy = GROUP_BY_PRIO,
330 .pgfailback = -FAILBACK_IMMEDIATE,
331 .rr_weight = RR_WEIGHT_NONE,
334 .prio_name = PRIO_ALUA,
338 * Hitachi controller family
340 * Maintainer : Matthias Rudolph
341 * Mail : matthias.rudolph@hds.com
344 .vendor = "(HITACHI|HP)",
345 .product = "OPEN-.*",
346 .features = DEFAULT_FEATURES,
347 .hwhandler = DEFAULT_HWHANDLER,
348 .pgpolicy = MULTIBUS,
349 .pgfailback = FAILBACK_UNDEF,
350 .rr_weight = RR_WEIGHT_NONE,
351 .no_path_retry = NO_PATH_RETRY_UNDEF,
353 .prio_name = DEFAULT_PRIO,
359 .features = "1 queue_if_no_path",
360 .hwhandler = DEFAULT_HWHANDLER,
361 .pgpolicy = GROUP_BY_PRIO,
362 .pgfailback = -FAILBACK_IMMEDIATE,
363 .rr_weight = RR_WEIGHT_NONE,
364 .no_path_retry = NO_PATH_RETRY_UNDEF,
366 .prio_name = PRIO_HDS,
370 * IBM controller family
372 * Maintainer : Hannes Reinecke, SuSE
373 * Mail : hare@suse.de
377 .product = "ProFibre 4000R",
378 .features = DEFAULT_FEATURES,
379 .hwhandler = DEFAULT_HWHANDLER,
380 .pgpolicy = MULTIBUS,
381 .pgfailback = FAILBACK_UNDEF,
382 .rr_weight = RR_WEIGHT_NONE,
383 .no_path_retry = NO_PATH_RETRY_UNDEF,
384 .checker_name = DIRECTIO,
385 .prio_name = DEFAULT_PRIO,
389 /* IBM FAStT 1722-600 */
391 .product = "^1722-600",
392 .bl_product = "Universal Xport",
393 .features = "1 queue_if_no_path",
394 .hwhandler = "1 rdac",
395 .pgpolicy = GROUP_BY_PRIO,
396 .pgfailback = -FAILBACK_IMMEDIATE,
397 .rr_weight = RR_WEIGHT_NONE,
398 .no_path_retry = 300,
399 .checker_name = RDAC,
400 .prio_name = PRIO_RDAC,
407 .bl_product = "Universal Xport",
408 .features = "1 queue_if_no_path",
409 .hwhandler = "1 rdac",
410 .pgpolicy = GROUP_BY_PRIO,
411 .pgfailback = -FAILBACK_IMMEDIATE,
412 .rr_weight = RR_WEIGHT_NONE,
413 .no_path_retry = 300,
414 .checker_name = RDAC,
415 .prio_name = PRIO_RDAC,
419 /* IBM DS3200 / DS3300 / DS3400 */
422 .bl_product = "Universal Xport",
423 .features = "1 queue_if_no_path",
424 .hwhandler = "1 rdac",
425 .pgpolicy = GROUP_BY_PRIO,
426 .pgfailback = -FAILBACK_IMMEDIATE,
427 .rr_weight = RR_WEIGHT_NONE,
428 .no_path_retry = 300,
429 .checker_name = RDAC,
430 .prio_name = PRIO_RDAC,
434 /* IBM DS4400 / DS4500 / FAStT700 */
437 .bl_product = "Universal Xport",
438 .features = DEFAULT_FEATURES,
439 .hwhandler = "1 rdac",
440 .pgpolicy = GROUP_BY_PRIO,
441 .pgfailback = -FAILBACK_IMMEDIATE,
442 .rr_weight = RR_WEIGHT_NONE,
443 .no_path_retry = NO_PATH_RETRY_QUEUE,
444 .checker_name = RDAC,
445 .prio_name = PRIO_RDAC,
450 .product = "^1745|^1746",
451 .bl_product = "Universal Xport",
452 .features = "2 pg_init_retries 50",
453 .hwhandler = "1 rdac",
454 .pgpolicy = GROUP_BY_PRIO,
455 .pgfailback = -FAILBACK_IMMEDIATE,
456 .rr_weight = RR_WEIGHT_NONE,
458 .checker_name = RDAC,
459 .prio_name = PRIO_RDAC,
466 .bl_product = "Universal Xport",
467 .features = DEFAULT_FEATURES,
468 .hwhandler = "1 rdac",
469 .pgpolicy = GROUP_BY_PRIO,
470 .pgfailback = -FAILBACK_IMMEDIATE,
471 .rr_weight = RR_WEIGHT_NONE,
472 .no_path_retry = NO_PATH_RETRY_QUEUE,
473 .checker_name = RDAC,
474 .prio_name = PRIO_RDAC,
481 .bl_product = "Universal Xport",
482 .features = DEFAULT_FEATURES,
483 .hwhandler = "1 rdac",
484 .pgpolicy = GROUP_BY_PRIO,
485 .pgfailback = -FAILBACK_IMMEDIATE,
486 .rr_weight = RR_WEIGHT_NONE,
487 .no_path_retry = NO_PATH_RETRY_QUEUE,
488 .checker_name = RDAC,
489 .prio_name = PRIO_RDAC,
496 .bl_product = "Universal Xport",
497 .features = DEFAULT_FEATURES,
498 .hwhandler = "1 rdac",
499 .pgpolicy = GROUP_BY_PRIO,
500 .pgfailback = -FAILBACK_IMMEDIATE,
501 .rr_weight = RR_WEIGHT_NONE,
502 .no_path_retry = NO_PATH_RETRY_QUEUE,
503 .checker_name = RDAC,
504 .prio_name = PRIO_RDAC,
508 /* IBM Netfinity Fibre Channel RAID Controller Unit */
511 .bl_product = "Universal Xport",
512 .features = DEFAULT_FEATURES,
513 .hwhandler = "1 rdac",
514 .pgpolicy = GROUP_BY_PRIO,
515 .pgfailback = -FAILBACK_IMMEDIATE,
516 .rr_weight = RR_WEIGHT_NONE,
517 .no_path_retry = NO_PATH_RETRY_QUEUE,
518 .checker_name = RDAC,
519 .prio_name = PRIO_RDAC,
523 /* IBM DS4200 / FAStT200 */
526 .features = DEFAULT_FEATURES,
527 .hwhandler = DEFAULT_HWHANDLER,
528 .pgpolicy = GROUP_BY_SERIAL,
529 .pgfailback = FAILBACK_UNDEF,
530 .rr_weight = RR_WEIGHT_NONE,
531 .no_path_retry = NO_PATH_RETRY_UNDEF,
533 .prio_name = DEFAULT_PRIO,
537 /* IBM ESS F20 aka Shark */
539 .product = "^2105800",
540 .features = "1 queue_if_no_path",
541 .hwhandler = DEFAULT_HWHANDLER,
542 .pgpolicy = GROUP_BY_SERIAL,
543 .pgfailback = FAILBACK_UNDEF,
544 .rr_weight = RR_WEIGHT_NONE,
545 .no_path_retry = NO_PATH_RETRY_UNDEF,
547 .prio_name = DEFAULT_PRIO,
551 /* IBM ESS F20 aka Shark */
553 .product = "^2105F20",
554 .features = "1 queue_if_no_path",
555 .hwhandler = DEFAULT_HWHANDLER,
556 .pgpolicy = GROUP_BY_SERIAL,
557 .pgfailback = FAILBACK_UNDEF,
558 .rr_weight = RR_WEIGHT_NONE,
559 .no_path_retry = NO_PATH_RETRY_UNDEF,
561 .prio_name = DEFAULT_PRIO,
567 .product = "^1750500",
568 .features = "1 queue_if_no_path",
569 .hwhandler = DEFAULT_HWHANDLER,
570 .pgpolicy = GROUP_BY_PRIO,
571 .pgfailback = -FAILBACK_IMMEDIATE,
572 .rr_weight = RR_WEIGHT_NONE,
573 .no_path_retry = NO_PATH_RETRY_UNDEF,
575 .prio_name = PRIO_ALUA,
581 .product = "^2107900",
582 .features = "1 queue_if_no_path",
583 .hwhandler = DEFAULT_HWHANDLER,
584 .pgpolicy = MULTIBUS,
585 .pgfailback = FAILBACK_UNDEF,
586 .rr_weight = RR_WEIGHT_NONE,
587 .no_path_retry = NO_PATH_RETRY_UNDEF,
589 .prio_name = DEFAULT_PRIO,
593 /* IBM SAN Volume Controller */
596 .features = "1 queue_if_no_path",
597 .hwhandler = DEFAULT_HWHANDLER,
598 .pgpolicy = GROUP_BY_PRIO,
599 .pgfailback = -FAILBACK_IMMEDIATE,
600 .rr_weight = RR_WEIGHT_NONE,
601 .no_path_retry = NO_PATH_RETRY_UNDEF,
603 .prio_name = PRIO_ALUA,
607 /* IBM S/390 ECKD DASD */
609 .product = "S/390 DASD ECKD",
610 .bl_product = "S/390.*",
611 .uid_attribute = "ID_UID",
612 .features = "1 queue_if_no_path",
613 .hwhandler = DEFAULT_HWHANDLER,
614 .pgpolicy = MULTIBUS,
615 .pgfailback = FAILBACK_UNDEF,
616 .rr_weight = RR_WEIGHT_NONE,
617 .no_path_retry = NO_PATH_RETRY_UNDEF,
618 .checker_name = DIRECTIO,
619 .prio_name = DEFAULT_PRIO,
623 /* IBM S/390 FBA DASD */
625 .product = "S/390 DASD FBA",
626 .bl_product = "S/390.*",
627 .uid_attribute = "ID_UID",
628 .features = "1 queue_if_no_path",
629 .hwhandler = DEFAULT_HWHANDLER,
630 .pgpolicy = MULTIBUS,
631 .pgfailback = FAILBACK_UNDEF,
632 .rr_weight = RR_WEIGHT_NONE,
633 .no_path_retry = NO_PATH_RETRY_UNDEF,
634 .checker_name = DIRECTIO,
635 .prio_name = DEFAULT_PRIO,
642 .features = "1 queue_if_no_path",
643 .hwhandler = "1 alua",
644 .pgpolicy = GROUP_BY_PRIO,
645 .pgfailback = -FAILBACK_IMMEDIATE,
646 .rr_weight = RR_WEIGHT_NONE,
647 .no_path_retry = NO_PATH_RETRY_UNDEF,
649 .prio_name = PRIO_ALUA,
655 .product = "1820N00",
656 .features = DEFAULT_FEATURES,
657 .hwhandler = DEFAULT_HWHANDLER,
658 .pgpolicy = GROUP_BY_PRIO,
659 .pgfailback = -FAILBACK_IMMEDIATE,
660 .rr_weight = RR_WEIGHT_NONE,
661 .no_path_retry = NO_PATH_RETRY_QUEUE,
664 .prio_name = PRIO_ALUA,
668 /* IBM XIV Storage System */
670 .product = "2810XIV",
671 .features = "1 queue_if_no_path",
672 .hwhandler = DEFAULT_HWHANDLER,
673 .pgpolicy = MULTIBUS,
675 .rr_weight = RR_WEIGHT_NONE,
676 .no_path_retry = NO_PATH_RETRY_UNDEF,
679 .prio_name = DEFAULT_PRIO,
683 * IBM Power Virtual SCSI Devices
685 * Maintainer : Brian King, IBM
686 * Mail : brking@linux.vnet.ibm.com
692 .features = DEFAULT_FEATURES,
693 .hwhandler = DEFAULT_HWHANDLER,
694 .pgpolicy = MULTIBUS,
695 .pgfailback = -FAILBACK_IMMEDIATE,
696 .rr_weight = RR_WEIGHT_NONE,
697 .no_path_retry = (300 / DEFAULT_CHECKINT),
698 .checker_name = DIRECTIO,
699 .prio_name = DEFAULT_PRIO,
703 /* IBM 3303 NVDISK */
705 .product = "3303 NVDISK",
706 .features = DEFAULT_FEATURES,
707 .hwhandler = DEFAULT_HWHANDLER,
708 .pgpolicy = FAILOVER,
709 .pgfailback = -FAILBACK_IMMEDIATE,
710 .rr_weight = RR_WEIGHT_NONE,
711 .no_path_retry = (300 / DEFAULT_CHECKINT),
713 .prio_name = DEFAULT_PRIO,
720 .features = DEFAULT_FEATURES,
721 .hwhandler = "1 alua",
722 .pgpolicy = GROUP_BY_PRIO,
723 .pgfailback = -FAILBACK_IMMEDIATE,
724 .rr_weight = RR_WEIGHT_NONE,
725 .no_path_retry = (300 / DEFAULT_CHECKINT),
727 .prio_name = PRIO_ALUA,
734 .bl_product = "Universal Xport",
735 .features = "2 pg_init_retries 50",
736 .hwhandler = "1 rdac",
737 .pgpolicy = GROUP_BY_PRIO,
738 .pgfailback = -FAILBACK_IMMEDIATE,
739 .rr_weight = RR_WEIGHT_NONE,
741 .checker_name = RDAC,
742 .prio_name = PRIO_RDAC,
748 .product = "MD3000i",
749 .bl_product = "Universal Xport",
750 .features = "2 pg_init_retries 50",
751 .hwhandler = "1 rdac",
752 .pgpolicy = GROUP_BY_PRIO,
753 .pgfailback = -FAILBACK_IMMEDIATE,
754 .rr_weight = RR_WEIGHT_NONE,
756 .checker_name = RDAC,
757 .prio_name = PRIO_RDAC,
764 .bl_product = "Universal Xport",
765 .features = "2 pg_init_retries 50",
766 .hwhandler = "1 rdac",
767 .pgpolicy = GROUP_BY_PRIO,
768 .pgfailback = -FAILBACK_IMMEDIATE,
769 .rr_weight = RR_WEIGHT_NONE,
771 .checker_name = RDAC,
772 .prio_name = PRIO_RDAC,
778 .product = "MD32xxi",
779 .bl_product = "Universal Xport",
780 .features = "2 pg_init_retries 50",
781 .hwhandler = "1 rdac",
782 .pgpolicy = GROUP_BY_PRIO,
783 .pgfailback = -FAILBACK_IMMEDIATE,
784 .rr_weight = RR_WEIGHT_NONE,
786 .checker_name = RDAC,
787 .prio_name = PRIO_RDAC,
793 .product = "MD36xxi",
794 .bl_product = "Universal Xport",
795 .features = "2 pg_init_retries 50",
796 .hwhandler = "1 rdac",
797 .pgpolicy = GROUP_BY_PRIO,
798 .pgfailback = -FAILBACK_IMMEDIATE,
799 .rr_weight = RR_WEIGHT_NONE,
801 .checker_name = RDAC,
802 .prio_name = PRIO_RDAC,
808 .product = "MD36xxf",
809 .bl_product = "Universal Xport",
810 .features = "2 pg_init_retries 50",
811 .hwhandler = "1 rdac",
812 .pgpolicy = GROUP_BY_PRIO,
813 .pgfailback = -FAILBACK_IMMEDIATE,
814 .rr_weight = RR_WEIGHT_NONE,
816 .checker_name = RDAC,
817 .prio_name = PRIO_RDAC,
821 * NETAPP controller family
823 * Maintainer : Dave Wysochanski
824 * Mail : davidw@netapp.com
829 .features = "3 queue_if_no_path pg_init_retries 50",
830 .hwhandler = DEFAULT_HWHANDLER,
831 .pgpolicy = GROUP_BY_PRIO,
832 .pgfailback = -FAILBACK_IMMEDIATE,
833 .flush_on_last_del = FLUSH_ENABLED,
834 .rr_weight = RR_WEIGHT_NONE,
835 .no_path_retry = NO_PATH_RETRY_UNDEF,
837 .dev_loss = MAX_DEV_LOSS_TMO,
839 .prio_name = PRIO_ONTAP,
841 .retain_hwhandler = RETAIN_HWHANDLER_ON,
842 .user_friendly_names = USER_FRIENDLY_NAMES_OFF,
843 .detect_prio = DETECT_PRIO_ON,
846 * NEXENTA/COMSTAR controller family
848 * Maintainer : Yacine Kheddache
849 * Mail : yacine@alyseo.com
853 .product = "COMSTAR",
854 .features = "1 queue_if_no_path",
855 .hwhandler = DEFAULT_HWHANDLER,
856 .pgpolicy = GROUP_BY_SERIAL,
857 .pgfailback = -FAILBACK_IMMEDIATE,
858 .rr_weight = RR_WEIGHT_NONE,
861 .checker_name = DIRECTIO,
862 .prio_name = DEFAULT_PRIO,
866 * IBM NSeries (NETAPP) controller family
868 * Maintainer : Dave Wysochanski
869 * Mail : davidw@netapp.com
873 .product = "Nseries.*",
874 .features = "1 queue_if_no_path",
875 .hwhandler = DEFAULT_HWHANDLER,
876 .pgpolicy = GROUP_BY_PRIO,
877 .pgfailback = -FAILBACK_IMMEDIATE,
878 .rr_weight = RR_WEIGHT_NONE,
879 .no_path_retry = NO_PATH_RETRY_UNDEF,
881 .checker_name = DIRECTIO,
882 .prio_name = PRIO_ONTAP,
886 * Pillar Data controller family
888 * Maintainer : Srinivasan Ramani
889 * Mail : sramani@pillardata.com
893 .product = "Axiom.*",
894 .features = DEFAULT_FEATURES,
895 .hwhandler = DEFAULT_HWHANDLER,
896 .pgpolicy = GROUP_BY_PRIO,
897 .pgfailback = FAILBACK_UNDEF,
898 .rr_weight = RR_WEIGHT_NONE,
899 .no_path_retry = NO_PATH_RETRY_UNDEF,
901 .prio_name = PRIO_ALUA,
908 * Maintainer : Christophe Varoqui
909 * Mail : christophe.varoqui@opensvc.com
913 .product = "TP9[13]00",
914 .features = DEFAULT_FEATURES,
915 .hwhandler = DEFAULT_HWHANDLER,
916 .pgpolicy = MULTIBUS,
917 .pgfailback = FAILBACK_UNDEF,
918 .rr_weight = RR_WEIGHT_NONE,
919 .no_path_retry = NO_PATH_RETRY_UNDEF,
920 .checker_name = DIRECTIO,
921 .prio_name = DEFAULT_PRIO,
926 .product = "TP9[45]00",
927 .bl_product = "Universal Xport",
928 .features = DEFAULT_FEATURES,
929 .hwhandler = "1 rdac",
930 .pgpolicy = GROUP_BY_PRIO,
931 .pgfailback = -FAILBACK_IMMEDIATE,
932 .rr_weight = RR_WEIGHT_NONE,
933 .no_path_retry = NO_PATH_RETRY_QUEUE,
934 .checker_name = RDAC,
935 .prio_name = PRIO_RDAC,
941 .bl_product = "Universal Xport",
942 .features = "2 pg_init_retries 50",
943 .hwhandler = "1 rdac",
944 .pgpolicy = GROUP_BY_PRIO,
945 .pgfailback = -FAILBACK_IMMEDIATE,
946 .rr_weight = RR_WEIGHT_NONE,
948 .checker_name = RDAC,
949 .prio_name = PRIO_RDAC,
952 /* NEC Storage M Series */
955 .product = "DISK ARRAY",
956 .features = DEFAULT_FEATURES,
957 .hwhandler = "1 alua",
958 .pgpolicy = GROUP_BY_PRIO,
959 .pgfailback = -FAILBACK_IMMEDIATE,
960 .rr_weight = RR_WEIGHT_NONE,
961 .no_path_retry = NO_PATH_RETRY_UNDEF,
963 .prio_name = PRIO_ALUA,
969 * Maintainer : Christophe Varoqui
970 * Mail : christophe.varoqui@opensvc.com
974 .product = "OPENstorage D280",
975 .bl_product = "Universal Xport",
976 .features = DEFAULT_FEATURES,
977 .hwhandler = "1 rdac",
978 .pgpolicy = GROUP_BY_PRIO,
979 .pgfailback = -FAILBACK_IMMEDIATE,
980 .rr_weight = RR_WEIGHT_NONE,
981 .no_path_retry = NO_PATH_RETRY_UNDEF,
983 .prio_name = PRIO_RDAC,
989 * Maintainer : Christophe Varoqui
990 * Mail : christophe.varoqui@opensvc.com
994 .product = "(StorEdge 3510|T4)",
995 .features = DEFAULT_FEATURES,
996 .hwhandler = DEFAULT_HWHANDLER,
997 .pgpolicy = MULTIBUS,
998 .pgfailback = FAILBACK_UNDEF,
999 .rr_weight = RR_WEIGHT_NONE,
1000 .no_path_retry = NO_PATH_RETRY_UNDEF,
1001 .checker_name = DIRECTIO,
1002 .prio_name = DEFAULT_PRIO,
1007 .product = "STK6580_6780",
1008 .features = DEFAULT_FEATURES,
1009 .hwhandler = "1 rdac",
1010 .pgpolicy = GROUP_BY_PRIO,
1011 .pgfailback = -FAILBACK_IMMEDIATE,
1012 .rr_weight = RR_WEIGHT_NONE,
1013 .no_path_retry = NO_PATH_RETRY_UNDEF,
1014 .checker_name = TUR,
1015 .prio_name = PRIO_RDAC,
1019 .vendor = "EUROLOGC",
1020 .product = "FC2502",
1021 .features = DEFAULT_FEATURES,
1022 .hwhandler = DEFAULT_HWHANDLER,
1023 .pgpolicy = GROUP_BY_PRIO,
1024 .pgfailback = FAILBACK_UNDEF,
1025 .rr_weight = RR_WEIGHT_NONE,
1026 .no_path_retry = NO_PATH_RETRY_UNDEF,
1027 .checker_name = DEFAULT_CHECKER,
1028 .prio_name = DEFAULT_PRIO,
1034 * Maintainer : Bart Brooks, Pivot3
1035 * Mail : bartb@pivot3.com
1039 .product = "RAIGE VOLUME",
1040 .features = "1 queue_if_no_path",
1041 .hwhandler = DEFAULT_HWHANDLER,
1042 .pgpolicy = MULTIBUS,
1043 .pgfailback = FAILBACK_UNDEF,
1044 .rr_weight = RR_WEIGHT_NONE,
1045 .no_path_retry = NO_PATH_RETRY_UNDEF,
1047 .checker_name = TUR,
1048 .prio_name = DEFAULT_PRIO,
1053 .product = "CSM200_R",
1054 .bl_product = "Universal Xport",
1055 .features = DEFAULT_FEATURES,
1056 .hwhandler = "1 rdac",
1057 .pgpolicy = GROUP_BY_PRIO,
1058 .pgfailback = -FAILBACK_IMMEDIATE,
1059 .rr_weight = RR_WEIGHT_NONE,
1060 .no_path_retry = NO_PATH_RETRY_QUEUE,
1061 .checker_name = RDAC,
1062 .prio_name = PRIO_RDAC,
1065 /* SUN/LSI 2510, 2540, 2530, 2540 */
1068 .product = "LCSM100_[IEFS]",
1069 .bl_product = "Universal Xport",
1070 .features = DEFAULT_FEATURES,
1071 .hwhandler = "1 rdac",
1072 .pgpolicy = GROUP_BY_PRIO,
1073 .pgfailback = -FAILBACK_IMMEDIATE,
1074 .rr_weight = RR_WEIGHT_NONE,
1075 .no_path_retry = NO_PATH_RETRY_QUEUE,
1076 .checker_name = RDAC,
1077 .prio_name = PRIO_RDAC,
1080 /* StorageTek 6180 */
1083 .product = "SUN_6180",
1084 .features = DEFAULT_FEATURES,
1085 .hwhandler = "1 rdac",
1086 .pgpolicy = GROUP_BY_PRIO,
1087 .pgfailback = -FAILBACK_IMMEDIATE,
1088 .rr_weight = RR_WEIGHT_NONE,
1089 .no_path_retry = NO_PATH_RETRY_QUEUE,
1090 .minio = DEFAULT_MINIO,
1091 .minio_rq = DEFAULT_MINIO_RQ,
1092 .checker_name = RDAC,
1093 .prio_name = PRIO_RDAC,
1095 /* LSI/Engenio/NetApp E-Series RDAC storage
1097 * Maintainer : Sean Stewart
1098 * Mail : sean.stewart@netapp.com
1101 .vendor = "(NETAPP|LSI|ENGENIO)",
1102 .product = "INF-01-00",
1103 .bl_product = "Universal Xport",
1104 .features = "2 pg_init_retries 50",
1105 .hwhandler = "1 rdac",
1106 .pgpolicy = GROUP_BY_PRIO,
1107 .pgfailback = -FAILBACK_IMMEDIATE,
1108 .rr_weight = RR_WEIGHT_NONE,
1109 .no_path_retry = 30,
1110 .checker_name = RDAC,
1111 .prio_name = PRIO_RDAC,
1113 .detect_prio = DETECT_PRIO_ON,
1114 .retain_hwhandler = RETAIN_HWHANDLER_ON,
1118 .product = "FLEXLINE 380",
1119 .bl_product = "Universal Xport",
1120 .features = DEFAULT_FEATURES,
1121 .hwhandler = "1 rdac",
1122 .pgpolicy = GROUP_BY_PRIO,
1123 .pgfailback = -FAILBACK_IMMEDIATE,
1124 .rr_weight = RR_WEIGHT_NONE,
1125 .no_path_retry = NO_PATH_RETRY_QUEUE,
1126 .checker_name = RDAC,
1127 .prio_name = PRIO_RDAC,
1132 .product = "Multi-Flex",
1133 .features = DEFAULT_FEATURES,
1134 .hwhandler = "1 alua",
1135 .pgpolicy = GROUP_BY_PRIO,
1136 .pgfailback = -FAILBACK_IMMEDIATE,
1137 .rr_weight = RR_WEIGHT_NONE,
1138 .no_path_retry = NO_PATH_RETRY_QUEUE,
1139 .checker_name = TUR,
1140 .prio_name = PRIO_ALUA,
1144 .vendor = "DataCore",
1145 .product = "SANmelody",
1146 .features = DEFAULT_FEATURES,
1147 .hwhandler = DEFAULT_HWHANDLER,
1148 .pgpolicy = GROUP_BY_PRIO,
1149 .pgfailback = -FAILBACK_IMMEDIATE,
1150 .rr_weight = RR_WEIGHT_NONE,
1151 .no_path_retry = NO_PATH_RETRY_QUEUE,
1152 .checker_name = TUR,
1153 .prio_name = PRIO_ALUA,
1157 .vendor = "DataCore",
1158 .product = "Virtual Disk",
1159 .features = DEFAULT_FEATURES,
1160 .hwhandler = DEFAULT_HWHANDLER,
1161 .pgpolicy = GROUP_BY_PRIO,
1162 .pgfailback = -FAILBACK_IMMEDIATE,
1163 .rr_weight = RR_WEIGHT_NONE,
1164 .no_path_retry = NO_PATH_RETRY_QUEUE,
1165 .checker_name = TUR,
1166 .prio_name = PRIO_ALUA,
1171 .product = "FlashArray",
1172 .features = DEFAULT_FEATURES,
1173 .hwhandler = DEFAULT_HWHANDLER,
1174 .selector = "queue-length 0",
1175 .pgpolicy = MULTIBUS,
1176 .pgfailback = -FAILBACK_IMMEDIATE,
1177 .checker_name = TUR,
1179 .user_friendly_names = USER_FRIENDLY_NAMES_OFF,
1180 .prio_name = DEFAULT_PRIO,
1200 .checker_name = NULL,
1207 setup_default_hwtable (vector hw)
1210 struct hwentry * hwe = default_hw;
1212 while (hwe->vendor) {
1213 r += store_hwe(hw, hwe);