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 .getuid = DEFAULT_GETUID,
30 .features = DEFAULT_FEATURES,
31 .hwhandler = DEFAULT_HWHANDLER,
32 .selector = DEFAULT_SELECTOR,
34 .pgfailback = -FAILBACK_IMMEDIATE,
35 .rr_weight = RR_WEIGHT_NONE,
36 .no_path_retry = NO_PATH_RETRY_QUEUE,
37 .minio = DEFAULT_MINIO,
39 .prio_name = DEFAULT_PRIO,
43 * Apple controller family
45 * Maintainer : Shyam Sundar
46 * Mail : g.shyamsundar@yahoo.co.in
50 .product = "Xserve RAID ",
51 .getuid = DEFAULT_GETUID,
52 .features = DEFAULT_FEATURES,
53 .hwhandler = DEFAULT_HWHANDLER,
54 .selector = DEFAULT_SELECTOR,
56 .pgfailback = FAILBACK_UNDEF,
57 .rr_weight = RR_WEIGHT_NONE,
58 .no_path_retry = NO_PATH_RETRY_UNDEF,
59 .minio = DEFAULT_MINIO,
60 .checker_name = DEFAULT_CHECKER,
61 .prio_name = DEFAULT_PRIO,
65 * StorageWorks controller family
67 * Maintainer : Christophe Varoqui
68 * Mail : christophe.varoqui@opensvc.com
73 .getuid = DEFAULT_GETUID,
74 .features = DEFAULT_FEATURES,
75 .hwhandler = DEFAULT_HWHANDLER,
76 .selector = DEFAULT_SELECTOR,
78 .pgfailback = FAILBACK_UNDEF,
79 .rr_weight = RR_WEIGHT_NONE,
80 .no_path_retry = NO_PATH_RETRY_UNDEF,
81 .minio = DEFAULT_MINIO,
82 .checker_name = DEFAULT_CHECKER,
83 .prio_name = DEFAULT_PRIO,
89 .getuid = DEFAULT_GETUID,
90 .features = "1 queue_if_no_path",
91 .hwhandler = "1 hp_sw",
92 .selector = DEFAULT_SELECTOR,
93 .pgpolicy = GROUP_BY_PRIO,
94 .pgfailback = FAILBACK_UNDEF,
95 .rr_weight = RR_WEIGHT_NONE,
96 .no_path_retry = NO_PATH_RETRY_UNDEF,
97 .minio = DEFAULT_MINIO,
98 .checker_name = HP_SW,
99 .prio_name = PRIO_HP_SW,
105 .getuid = DEFAULT_GETUID,
106 .features = DEFAULT_FEATURES,
107 .hwhandler = DEFAULT_HWHANDLER,
108 .selector = DEFAULT_SELECTOR,
109 .pgpolicy = MULTIBUS,
110 .pgfailback = FAILBACK_UNDEF,
111 .rr_weight = RR_WEIGHT_NONE,
113 .minio = DEFAULT_MINIO,
114 .checker_name = DIRECTIO,
115 .prio_name = DEFAULT_PRIO,
119 /* MSA 1000/MSA1500 EVA 3000/5000 with old firmware */
120 .vendor = "(COMPAQ|HP)",
121 .product = "(MSA|HSV)1.0.*",
122 .getuid = DEFAULT_GETUID,
123 .features = "1 queue_if_no_path",
124 .hwhandler = "1 hp_sw",
125 .selector = DEFAULT_SELECTOR,
126 .pgpolicy = GROUP_BY_PRIO,
127 .pgfailback = FAILBACK_UNDEF,
128 .rr_weight = RR_WEIGHT_NONE,
131 .checker_name = HP_SW,
132 .prio_name = PRIO_HP_SW,
136 /* MSA 1000/1500 with new firmware */
137 .vendor = "(COMPAQ|HP)",
138 .product = "MSA VOLUME",
139 .getuid = DEFAULT_GETUID,
140 .features = DEFAULT_FEATURES,
141 .hwhandler = DEFAULT_HWHANDLER,
142 .selector = DEFAULT_SELECTOR,
143 .pgpolicy = GROUP_BY_PRIO,
144 .pgfailback = -FAILBACK_IMMEDIATE,
145 .rr_weight = RR_WEIGHT_NONE,
149 .prio_name = PRIO_ALUA,
153 /* EVA 3000/5000 with new firmware, EVA 4000/6000/8000 */
154 .vendor = "(COMPAQ|HP)",
155 .product = "HSV1[01]1|HSV2[01]0|HSV300|HSV4[05]0",
156 .getuid = DEFAULT_GETUID,
157 .features = DEFAULT_FEATURES,
158 .hwhandler = DEFAULT_HWHANDLER,
159 .selector = DEFAULT_SELECTOR,
160 .pgpolicy = GROUP_BY_PRIO,
161 .pgfailback = -FAILBACK_IMMEDIATE,
162 .rr_weight = RR_WEIGHT_NONE,
166 .prio_name = PRIO_ALUA,
170 /* HP MSA2000 product family with old firmware */
172 .product = "MSA2[02]12fc|MSA2012i",
173 .getuid = DEFAULT_GETUID,
174 .features = DEFAULT_FEATURES,
175 .hwhandler = DEFAULT_HWHANDLER,
176 .selector = DEFAULT_SELECTOR,
177 .pgpolicy = MULTIBUS,
178 .pgfailback = -FAILBACK_IMMEDIATE,
179 .rr_weight = RR_WEIGHT_NONE,
183 .prio_name = DEFAULT_PRIO,
187 /* HP MSA2000 product family with new firmware */
189 .product = "MSA2012sa|MSA23(12|24)(fc|i|sa)|MSA2000s VOLUME",
190 .getuid = DEFAULT_GETUID,
191 .features = DEFAULT_FEATURES,
192 .hwhandler = DEFAULT_HWHANDLER,
193 .selector = DEFAULT_SELECTOR,
194 .pgpolicy = GROUP_BY_PRIO,
195 .pgfailback = -FAILBACK_IMMEDIATE,
196 .rr_weight = RR_WEIGHT_NONE,
200 .prio_name = PRIO_ALUA,
207 .product = "HSVX700",
208 .getuid = DEFAULT_GETUID,
209 .features = DEFAULT_FEATURES,
210 .hwhandler = "1 alua",
211 .selector = DEFAULT_SELECTOR,
212 .pgpolicy = GROUP_BY_PRIO,
213 .pgfailback = -FAILBACK_IMMEDIATE,
214 .rr_weight = RR_WEIGHT_NONE,
218 .prio_name = PRIO_ALUA,
225 .product = "LOGICAL VOLUME.*",
226 .getuid = DEFAULT_GETUID,
227 .features = DEFAULT_FEATURES,
228 .hwhandler = DEFAULT_HWHANDLER,
229 .selector = DEFAULT_SELECTOR,
230 .pgpolicy = MULTIBUS,
231 .pgfailback = FAILBACK_UNDEF,
232 .rr_weight = RR_WEIGHT_NONE,
234 .minio = DEFAULT_MINIO,
235 .checker_name = CCISS_TUR,
236 .prio_name = DEFAULT_PRIO,
240 * DDN controller family
242 * Maintainer : Christophe Varoqui
243 * Mail : christophe.varoqui@opensvc.com
247 .product = "SAN DataDirector",
248 .getuid = DEFAULT_GETUID,
249 .features = DEFAULT_FEATURES,
250 .hwhandler = DEFAULT_HWHANDLER,
251 .selector = DEFAULT_SELECTOR,
252 .pgpolicy = MULTIBUS,
253 .pgfailback = FAILBACK_UNDEF,
254 .rr_weight = RR_WEIGHT_NONE,
255 .no_path_retry = NO_PATH_RETRY_UNDEF,
256 .minio = DEFAULT_MINIO,
257 .checker_name = DIRECTIO,
258 .prio_name = DEFAULT_PRIO,
262 * EMC / Clariion controller family
264 * Maintainer : Edward Goggin, EMC
265 * Mail : egoggin@emc.com
269 .product = "SYMMETRIX",
270 .getuid = "/lib/udev/scsi_id --page=pre-spc3-83 --whitelisted --device=/dev/%n",
271 .features = DEFAULT_FEATURES,
272 .hwhandler = DEFAULT_HWHANDLER,
273 .selector = DEFAULT_SELECTOR,
274 .pgpolicy = MULTIBUS,
275 .pgfailback = FAILBACK_UNDEF,
276 .rr_weight = RR_WEIGHT_NONE,
277 .no_path_retry = NO_PATH_RETRY_UNDEF,
278 .minio = DEFAULT_MINIO,
279 .checker_name = DIRECTIO,
280 .prio_name = DEFAULT_PRIO,
286 .bl_product = "LUNZ",
287 .getuid = DEFAULT_GETUID,
288 .features = "1 queue_if_no_path",
289 .hwhandler = "1 emc",
290 .selector = DEFAULT_SELECTOR,
291 .pgpolicy = GROUP_BY_PRIO,
292 .pgfailback = -FAILBACK_IMMEDIATE,
293 .rr_weight = RR_WEIGHT_NONE,
294 .no_path_retry = (300 / DEFAULT_CHECKINT),
295 .minio = DEFAULT_MINIO,
296 .checker_name = EMC_CLARIION,
297 .prio_name = PRIO_EMC,
302 .product = "Invista",
303 .bl_product = "LUNZ",
304 .getuid = DEFAULT_GETUID,
305 .features = DEFAULT_FEATURES,
306 .hwhandler = DEFAULT_HWHANDLER,
307 .selector = DEFAULT_SELECTOR,
308 .pgpolicy = MULTIBUS,
309 .pgfailback = FAILBACK_UNDEF,
310 .rr_weight = RR_WEIGHT_NONE,
312 .minio = DEFAULT_MINIO,
313 .prio_name = DEFAULT_PRIO,
317 * Fujitsu controller family
319 * Maintainer : Christophe Varoqui
320 * Mail : christophe.varoqui@opensvc.com
324 .product = "CentricStor",
325 .getuid = DEFAULT_GETUID,
326 .features = DEFAULT_FEATURES,
327 .hwhandler = DEFAULT_HWHANDLER,
328 .selector = DEFAULT_SELECTOR,
329 .pgpolicy = GROUP_BY_SERIAL,
330 .pgfailback = FAILBACK_UNDEF,
331 .rr_weight = RR_WEIGHT_NONE,
332 .no_path_retry = NO_PATH_RETRY_UNDEF,
333 .minio = DEFAULT_MINIO,
334 .checker_name = DIRECTIO,
335 .prio_name = DEFAULT_PRIO,
340 .product = "Invista",
341 .bl_product = "LUNZ",
342 .getuid = DEFAULT_GETUID,
343 .features = DEFAULT_FEATURES,
344 .hwhandler = DEFAULT_HWHANDLER,
345 .selector = DEFAULT_SELECTOR,
346 .pgpolicy = FAILOVER,
347 .pgfailback = FAILBACK_UNDEF,
348 .rr_weight = RR_WEIGHT_NONE,
350 .minio = DEFAULT_MINIO,
352 .prio_name = DEFAULT_PRIO,
356 * Hitachi controller family
358 * Maintainer : Matthias Rudolph
359 * Mail : matthias.rudolph@hds.com
362 .vendor = "(HITACHI|HP)",
363 .product = "OPEN-.*",
364 .getuid = DEFAULT_GETUID,
365 .features = DEFAULT_FEATURES,
366 .hwhandler = DEFAULT_HWHANDLER,
367 .selector = DEFAULT_SELECTOR,
368 .pgpolicy = MULTIBUS,
369 .pgfailback = FAILBACK_UNDEF,
370 .rr_weight = RR_WEIGHT_NONE,
371 .no_path_retry = NO_PATH_RETRY_UNDEF,
372 .minio = DEFAULT_MINIO,
374 .prio_name = DEFAULT_PRIO,
380 .getuid = DEFAULT_GETUID,
381 .features = "1 queue_if_no_path",
382 .hwhandler = DEFAULT_HWHANDLER,
383 .selector = DEFAULT_SELECTOR,
384 .pgpolicy = GROUP_BY_PRIO,
385 .pgfailback = -FAILBACK_IMMEDIATE,
386 .rr_weight = RR_WEIGHT_NONE,
387 .no_path_retry = NO_PATH_RETRY_UNDEF,
388 .minio = DEFAULT_MINIO,
390 .prio_name = PRIO_HDS,
394 * IBM controller family
396 * Maintainer : Hannes Reinecke, SuSE
397 * Mail : hare@suse.de
401 .product = "ProFibre 4000R",
402 .getuid = DEFAULT_GETUID,
403 .features = DEFAULT_FEATURES,
404 .hwhandler = DEFAULT_HWHANDLER,
405 .selector = DEFAULT_SELECTOR,
406 .pgpolicy = MULTIBUS,
407 .pgfailback = FAILBACK_UNDEF,
408 .rr_weight = RR_WEIGHT_NONE,
409 .no_path_retry = NO_PATH_RETRY_UNDEF,
410 .minio = DEFAULT_MINIO,
411 .checker_name = DIRECTIO,
412 .prio_name = DEFAULT_PRIO,
416 /* IBM FAStT 1722-600 */
418 .product = "1722-600",
419 .getuid = DEFAULT_GETUID,
420 .features = "1 queue_if_no_path",
421 .hwhandler = "1 rdac",
422 .selector = DEFAULT_SELECTOR,
423 .pgpolicy = GROUP_BY_PRIO,
424 .pgfailback = -FAILBACK_IMMEDIATE,
425 .rr_weight = RR_WEIGHT_NONE,
426 .no_path_retry = 300,
427 .minio = DEFAULT_MINIO,
428 .checker_name = RDAC,
429 .prio_name = PRIO_RDAC,
436 .getuid = DEFAULT_GETUID,
437 .features = "1 queue_if_no_path",
438 .hwhandler = "1 rdac",
439 .selector = DEFAULT_SELECTOR,
440 .pgpolicy = GROUP_BY_PRIO,
441 .pgfailback = -FAILBACK_IMMEDIATE,
442 .rr_weight = RR_WEIGHT_NONE,
443 .no_path_retry = 300,
444 .minio = DEFAULT_MINIO,
445 .checker_name = RDAC,
446 .prio_name = PRIO_RDAC,
450 /* IBM DS3200 / DS3300 / DS3400 */
453 .getuid = DEFAULT_GETUID,
454 .features = "1 queue_if_no_path",
455 .hwhandler = "1 rdac",
456 .selector = DEFAULT_SELECTOR,
457 .pgpolicy = GROUP_BY_PRIO,
458 .pgfailback = -FAILBACK_IMMEDIATE,
459 .rr_weight = RR_WEIGHT_NONE,
460 .no_path_retry = 300,
461 .minio = DEFAULT_MINIO,
462 .checker_name = RDAC,
463 .prio_name = PRIO_RDAC,
467 /* IBM DS4400 / DS4500 / FAStT700 */
470 .getuid = DEFAULT_GETUID,
471 .features = DEFAULT_FEATURES,
472 .hwhandler = "1 rdac",
473 .selector = DEFAULT_SELECTOR,
474 .pgpolicy = GROUP_BY_PRIO,
475 .pgfailback = -FAILBACK_IMMEDIATE,
476 .rr_weight = RR_WEIGHT_NONE,
477 .no_path_retry = NO_PATH_RETRY_QUEUE,
478 .minio = DEFAULT_MINIO,
479 .checker_name = RDAC,
480 .prio_name = PRIO_RDAC,
485 .product = "1745|1746",
486 .getuid = DEFAULT_GETUID,
487 .features = "2 pg_init_retries 50",
488 .hwhandler = "1 rdac",
489 .selector = DEFAULT_SELECTOR,
490 .pgpolicy = GROUP_BY_PRIO,
491 .pgfailback = -FAILBACK_IMMEDIATE,
492 .rr_weight = RR_WEIGHT_NONE,
494 .minio = DEFAULT_MINIO,
495 .checker_name = RDAC,
496 .prio_name = PRIO_RDAC,
503 .getuid = DEFAULT_GETUID,
504 .features = DEFAULT_FEATURES,
505 .hwhandler = "1 rdac",
506 .selector = DEFAULT_SELECTOR,
507 .pgpolicy = GROUP_BY_PRIO,
508 .pgfailback = -FAILBACK_IMMEDIATE,
509 .rr_weight = RR_WEIGHT_NONE,
510 .no_path_retry = NO_PATH_RETRY_QUEUE,
511 .minio = DEFAULT_MINIO,
512 .checker_name = RDAC,
513 .prio_name = PRIO_RDAC,
520 .getuid = DEFAULT_GETUID,
521 .features = DEFAULT_FEATURES,
522 .hwhandler = "1 rdac",
523 .selector = DEFAULT_SELECTOR,
524 .pgpolicy = GROUP_BY_PRIO,
525 .pgfailback = -FAILBACK_IMMEDIATE,
526 .rr_weight = RR_WEIGHT_NONE,
527 .no_path_retry = NO_PATH_RETRY_QUEUE,
528 .minio = DEFAULT_MINIO,
529 .checker_name = RDAC,
530 .prio_name = PRIO_RDAC,
537 .getuid = DEFAULT_GETUID,
538 .features = DEFAULT_FEATURES,
539 .hwhandler = "1 rdac",
540 .selector = DEFAULT_SELECTOR,
541 .pgpolicy = GROUP_BY_PRIO,
542 .pgfailback = -FAILBACK_IMMEDIATE,
543 .rr_weight = RR_WEIGHT_NONE,
544 .no_path_retry = NO_PATH_RETRY_QUEUE,
545 .minio = DEFAULT_MINIO,
546 .checker_name = RDAC,
547 .prio_name = PRIO_RDAC,
551 /* IBM Netfinity Fibre Channel RAID Controller Unit */
554 .getuid = DEFAULT_GETUID,
555 .features = DEFAULT_FEATURES,
556 .hwhandler = "1 rdac",
557 .selector = DEFAULT_SELECTOR,
558 .pgpolicy = GROUP_BY_PRIO,
559 .pgfailback = -FAILBACK_IMMEDIATE,
560 .rr_weight = RR_WEIGHT_NONE,
561 .no_path_retry = NO_PATH_RETRY_QUEUE,
562 .minio = DEFAULT_MINIO,
563 .checker_name = RDAC,
564 .prio_name = PRIO_RDAC,
568 /* IBM DS4200 / FAStT200 */
571 .getuid = DEFAULT_GETUID,
572 .features = DEFAULT_FEATURES,
573 .hwhandler = DEFAULT_HWHANDLER,
574 .selector = DEFAULT_SELECTOR,
575 .pgpolicy = GROUP_BY_SERIAL,
576 .pgfailback = FAILBACK_UNDEF,
577 .rr_weight = RR_WEIGHT_NONE,
578 .no_path_retry = NO_PATH_RETRY_UNDEF,
579 .minio = DEFAULT_MINIO,
581 .prio_name = DEFAULT_PRIO,
585 /* IBM ESS F20 aka Shark */
587 .product = "2105800",
588 .getuid = DEFAULT_GETUID,
589 .features = "1 queue_if_no_path",
590 .hwhandler = DEFAULT_HWHANDLER,
591 .selector = DEFAULT_SELECTOR,
592 .pgpolicy = GROUP_BY_SERIAL,
593 .pgfailback = FAILBACK_UNDEF,
594 .rr_weight = RR_WEIGHT_NONE,
595 .no_path_retry = NO_PATH_RETRY_UNDEF,
596 .minio = DEFAULT_MINIO,
598 .prio_name = DEFAULT_PRIO,
602 /* IBM ESS F20 aka Shark */
604 .product = "2105F20",
605 .getuid = DEFAULT_GETUID,
606 .features = "1 queue_if_no_path",
607 .hwhandler = DEFAULT_HWHANDLER,
608 .selector = DEFAULT_SELECTOR,
609 .pgpolicy = GROUP_BY_SERIAL,
610 .pgfailback = FAILBACK_UNDEF,
611 .rr_weight = RR_WEIGHT_NONE,
612 .no_path_retry = NO_PATH_RETRY_UNDEF,
613 .minio = DEFAULT_MINIO,
615 .prio_name = DEFAULT_PRIO,
621 .product = "1750500",
622 .getuid = DEFAULT_GETUID,
623 .features = "1 queue_if_no_path",
624 .hwhandler = DEFAULT_HWHANDLER,
625 .selector = DEFAULT_SELECTOR,
626 .pgpolicy = GROUP_BY_PRIO,
627 .pgfailback = -FAILBACK_IMMEDIATE,
628 .rr_weight = RR_WEIGHT_NONE,
629 .no_path_retry = NO_PATH_RETRY_UNDEF,
630 .minio = DEFAULT_MINIO,
632 .prio_name = PRIO_ALUA,
638 .product = "2107900",
639 .getuid = DEFAULT_GETUID,
640 .features = "1 queue_if_no_path",
641 .hwhandler = DEFAULT_HWHANDLER,
642 .selector = DEFAULT_SELECTOR,
643 .pgpolicy = MULTIBUS,
644 .pgfailback = FAILBACK_UNDEF,
645 .rr_weight = RR_WEIGHT_NONE,
646 .no_path_retry = NO_PATH_RETRY_UNDEF,
647 .minio = DEFAULT_MINIO,
649 .prio_name = DEFAULT_PRIO,
653 /* IBM SAN Volume Controller */
656 .getuid = DEFAULT_GETUID,
657 .features = "1 queue_if_no_path",
658 .hwhandler = DEFAULT_HWHANDLER,
659 .selector = DEFAULT_SELECTOR,
660 .pgpolicy = GROUP_BY_PRIO,
661 .pgfailback = -FAILBACK_IMMEDIATE,
662 .rr_weight = RR_WEIGHT_NONE,
663 .no_path_retry = NO_PATH_RETRY_UNDEF,
664 .minio = DEFAULT_MINIO,
666 .prio_name = PRIO_ALUA,
670 /* IBM S/390 ECKD DASD */
672 .product = "S/390 DASD ECKD",
673 .bl_product = "S/390.*",
674 .getuid = "/sbin/dasdinfo -u -b %n",
675 .features = "1 queue_if_no_path",
676 .hwhandler = DEFAULT_HWHANDLER,
677 .selector = DEFAULT_SELECTOR,
678 .pgpolicy = MULTIBUS,
679 .pgfailback = FAILBACK_UNDEF,
680 .rr_weight = RR_WEIGHT_NONE,
681 .no_path_retry = NO_PATH_RETRY_UNDEF,
682 .minio = DEFAULT_MINIO,
683 .checker_name = DIRECTIO,
684 .prio_name = DEFAULT_PRIO,
688 /* IBM S/390 FBA DASD */
690 .product = "S/390 DASD FBA",
691 .bl_product = "S/390.*",
692 .getuid = "/sbin/dasdinfo -u -b %n",
693 .features = "1 queue_if_no_path",
694 .hwhandler = DEFAULT_HWHANDLER,
695 .selector = DEFAULT_SELECTOR,
696 .pgpolicy = MULTIBUS,
697 .pgfailback = FAILBACK_UNDEF,
698 .rr_weight = RR_WEIGHT_NONE,
699 .no_path_retry = NO_PATH_RETRY_UNDEF,
700 .minio = DEFAULT_MINIO,
701 .checker_name = DIRECTIO,
702 .prio_name = DEFAULT_PRIO,
709 .getuid = DEFAULT_GETUID,
710 .features = "1 queue_if_no_path",
711 .hwhandler = "1 alua",
712 .selector = DEFAULT_SELECTOR,
713 .pgpolicy = GROUP_BY_PRIO,
714 .pgfailback = -FAILBACK_IMMEDIATE,
715 .rr_weight = RR_WEIGHT_NONE,
716 .no_path_retry = NO_PATH_RETRY_UNDEF,
717 .minio = DEFAULT_MINIO,
719 .prio_name = PRIO_ALUA,
723 * IBM Power Virtual SCSI Devices
725 * Maintainer : Brian King, IBM
726 * Mail : brking@linux.vnet.ibm.com
732 .getuid = DEFAULT_GETUID,
733 .features = DEFAULT_FEATURES,
734 .hwhandler = DEFAULT_HWHANDLER,
735 .selector = DEFAULT_SELECTOR,
736 .pgpolicy = MULTIBUS,
737 .pgfailback = -FAILBACK_IMMEDIATE,
738 .rr_weight = RR_WEIGHT_NONE,
739 .no_path_retry = (300 / DEFAULT_CHECKINT),
740 .minio = DEFAULT_MINIO,
741 .checker_name = DIRECTIO,
742 .prio_name = DEFAULT_PRIO,
746 /* IBM 3303 NVDISK */
748 .product = "3303 NVDISK",
749 .getuid = DEFAULT_GETUID,
750 .features = DEFAULT_FEATURES,
751 .hwhandler = DEFAULT_HWHANDLER,
752 .selector = DEFAULT_SELECTOR,
753 .pgpolicy = FAILOVER,
754 .pgfailback = -FAILBACK_IMMEDIATE,
755 .rr_weight = RR_WEIGHT_NONE,
756 .no_path_retry = (300 / DEFAULT_CHECKINT),
757 .minio = DEFAULT_MINIO,
759 .prio_name = DEFAULT_PRIO,
767 .getuid = DEFAULT_GETUID,
768 .features = "2 pg_init_retries 50",
769 .hwhandler = "1 rdac",
770 .selector = DEFAULT_SELECTOR,
771 .pgpolicy = GROUP_BY_PRIO,
772 .pgfailback = -FAILBACK_IMMEDIATE,
773 .rr_weight = RR_WEIGHT_NONE,
775 .minio = DEFAULT_MINIO,
776 .checker_name = RDAC,
777 .prio_name = PRIO_RDAC,
783 .product = "MD3000i",
784 .getuid = DEFAULT_GETUID,
785 .features = "2 pg_init_retries 50",
786 .hwhandler = "1 rdac",
787 .selector = DEFAULT_SELECTOR,
788 .pgpolicy = GROUP_BY_PRIO,
789 .pgfailback = -FAILBACK_IMMEDIATE,
790 .rr_weight = RR_WEIGHT_NONE,
792 .minio = DEFAULT_MINIO,
793 .checker_name = RDAC,
794 .prio_name = PRIO_RDAC,
801 .getuid = DEFAULT_GETUID,
802 .features = "2 pg_init_retries 50",
803 .hwhandler = "1 rdac",
804 .selector = DEFAULT_SELECTOR,
805 .pgpolicy = GROUP_BY_PRIO,
806 .pgfailback = -FAILBACK_IMMEDIATE,
807 .rr_weight = RR_WEIGHT_NONE,
809 .minio = DEFAULT_MINIO,
810 .checker_name = RDAC,
811 .prio_name = PRIO_RDAC,
817 .product = "MD32xxi",
818 .getuid = DEFAULT_GETUID,
819 .features = "2 pg_init_retries 50",
820 .hwhandler = "1 rdac",
821 .selector = DEFAULT_SELECTOR,
822 .pgpolicy = GROUP_BY_PRIO,
823 .pgfailback = -FAILBACK_IMMEDIATE,
824 .rr_weight = RR_WEIGHT_NONE,
826 .minio = DEFAULT_MINIO,
827 .checker_name = RDAC,
828 .prio_name = PRIO_RDAC,
832 * NETAPP controller family
834 * Maintainer : Dave Wysochanski
835 * Mail : davidw@netapp.com
840 .getuid = DEFAULT_GETUID,
841 .features = "1 queue_if_no_path",
842 .hwhandler = DEFAULT_HWHANDLER,
843 .selector = DEFAULT_SELECTOR,
844 .pgpolicy = GROUP_BY_PRIO,
845 .pgfailback = -FAILBACK_IMMEDIATE,
846 .rr_weight = RR_WEIGHT_NONE,
847 .no_path_retry = NO_PATH_RETRY_UNDEF,
849 .checker_name = DIRECTIO,
850 .prio_name = PRIO_NETAPP,
854 * NEXENTA/COMSTAR controller family
856 * Maintainer : Yacine Kheddache
857 * Mail : yacine@alyseo.com
861 .product = "COMSTAR",
862 .getuid = DEFAULT_GETUID,
863 .features = "1 queue_if_no_path",
864 .hwhandler = DEFAULT_HWHANDLER,
865 .selector = DEFAULT_SELECTOR,
866 .pgpolicy = GROUP_BY_SERIAL,
867 .pgfailback = -FAILBACK_IMMEDIATE,
868 .rr_weight = RR_WEIGHT_NONE,
871 .checker_name = DIRECTIO,
872 .prio_name = DEFAULT_PRIO,
876 * IBM NSeries (NETAPP) controller family
878 * Maintainer : Dave Wysochanski
879 * Mail : davidw@netapp.com
883 .product = "Nseries.*",
884 .getuid = DEFAULT_GETUID,
885 .features = "1 queue_if_no_path",
886 .hwhandler = DEFAULT_HWHANDLER,
887 .selector = DEFAULT_SELECTOR,
888 .pgpolicy = GROUP_BY_PRIO,
889 .pgfailback = -FAILBACK_IMMEDIATE,
890 .rr_weight = RR_WEIGHT_NONE,
891 .no_path_retry = NO_PATH_RETRY_UNDEF,
893 .checker_name = DIRECTIO,
894 .prio_name = PRIO_NETAPP,
898 * Pillar Data controller family
900 * Maintainer : Srinivasan Ramani
901 * Mail : sramani@pillardata.com
905 .product = "Axiom.*",
906 .getuid = DEFAULT_GETUID,
907 .features = DEFAULT_FEATURES,
908 .hwhandler = DEFAULT_HWHANDLER,
909 .selector = DEFAULT_SELECTOR,
910 .pgpolicy = GROUP_BY_PRIO,
911 .pgfailback = FAILBACK_UNDEF,
912 .rr_weight = RR_WEIGHT_NONE,
913 .no_path_retry = NO_PATH_RETRY_UNDEF,
914 .minio = DEFAULT_MINIO,
916 .prio_name = PRIO_ALUA,
922 * Maintainer : Christophe Varoqui
923 * Mail : christophe.varoqui@opensvc.com
927 .product = "TP9[13]00",
928 .getuid = DEFAULT_GETUID,
929 .features = DEFAULT_FEATURES,
930 .hwhandler = DEFAULT_HWHANDLER,
931 .selector = DEFAULT_SELECTOR,
932 .pgpolicy = MULTIBUS,
933 .pgfailback = FAILBACK_UNDEF,
934 .rr_weight = RR_WEIGHT_NONE,
935 .no_path_retry = NO_PATH_RETRY_UNDEF,
936 .minio = DEFAULT_MINIO,
937 .checker_name = DIRECTIO,
938 .prio_name = DEFAULT_PRIO,
943 .product = "TP9[45]00",
944 .getuid = DEFAULT_GETUID,
945 .features = DEFAULT_FEATURES,
946 .hwhandler = "1 rdac",
947 .selector = DEFAULT_SELECTOR,
948 .pgpolicy = GROUP_BY_PRIO,
949 .pgfailback = -FAILBACK_IMMEDIATE,
950 .rr_weight = RR_WEIGHT_NONE,
951 .no_path_retry = NO_PATH_RETRY_QUEUE,
952 .minio = DEFAULT_MINIO,
953 .checker_name = RDAC,
954 .prio_name = PRIO_RDAC,
960 .getuid = DEFAULT_GETUID,
961 .features = DEFAULT_FEATURES,
962 .hwhandler = "1 rdac",
963 .selector = DEFAULT_SELECTOR,
964 .pgpolicy = GROUP_BY_PRIO,
965 .pgfailback = -FAILBACK_IMMEDIATE,
966 .rr_weight = RR_WEIGHT_NONE,
967 .no_path_retry = NO_PATH_RETRY_QUEUE,
968 .minio = DEFAULT_MINIO,
969 .checker_name = RDAC,
970 .prio_name = PRIO_RDAC,
976 * Maintainer : Christophe Varoqui
977 * Mail : christophe.varoqui@opensvc.com
981 .product = "OPENstorage D280",
982 .getuid = DEFAULT_GETUID,
983 .features = DEFAULT_FEATURES,
984 .hwhandler = "1 rdac",
985 .selector = DEFAULT_SELECTOR,
986 .pgpolicy = GROUP_BY_PRIO,
987 .pgfailback = -FAILBACK_IMMEDIATE,
988 .rr_weight = RR_WEIGHT_NONE,
989 .no_path_retry = NO_PATH_RETRY_UNDEF,
990 .minio = DEFAULT_MINIO,
992 .prio_name = PRIO_RDAC,
998 * Maintainer : Christophe Varoqui
999 * Mail : christophe.varoqui@opensvc.com
1003 .product = "(StorEdge 3510|T4)",
1004 .getuid = DEFAULT_GETUID,
1005 .features = DEFAULT_FEATURES,
1006 .hwhandler = DEFAULT_HWHANDLER,
1007 .selector = DEFAULT_SELECTOR,
1008 .pgpolicy = MULTIBUS,
1009 .pgfailback = FAILBACK_UNDEF,
1010 .rr_weight = RR_WEIGHT_NONE,
1011 .no_path_retry = NO_PATH_RETRY_UNDEF,
1012 .minio = DEFAULT_MINIO,
1013 .checker_name = DIRECTIO,
1014 .prio_name = DEFAULT_PRIO,
1020 * Maintainer : Bart Brooks, Pivot3
1021 * Mail : bartb@pivot3.com
1025 .product = "RAIGE VOLUME",
1026 .getuid = "/lib/udev/scsi_id --page=0x80 --whitelisted --device=/dev/%n",
1027 .features = "1 queue_if_no_path",
1028 .hwhandler = DEFAULT_HWHANDLER,
1029 .selector = DEFAULT_SELECTOR,
1030 .pgpolicy = MULTIBUS,
1031 .pgfailback = FAILBACK_UNDEF,
1032 .rr_weight = RR_WEIGHT_NONE,
1033 .no_path_retry = NO_PATH_RETRY_UNDEF,
1035 .checker_name = TUR,
1036 .prio_name = DEFAULT_PRIO,
1041 .product = "CSM200_R",
1042 .getuid = DEFAULT_GETUID,
1043 .features = DEFAULT_FEATURES,
1044 .hwhandler = "1 rdac",
1045 .selector = DEFAULT_SELECTOR,
1046 .pgpolicy = GROUP_BY_PRIO,
1047 .pgfailback = -FAILBACK_IMMEDIATE,
1048 .rr_weight = RR_WEIGHT_NONE,
1049 .no_path_retry = NO_PATH_RETRY_QUEUE,
1050 .minio = DEFAULT_MINIO,
1051 .checker_name = RDAC,
1052 .prio_name = PRIO_RDAC,
1055 /* SUN/LSI 2510, 2540, 2530, 2540 */
1058 .product = "LCSM100_[IEFS]",
1059 .getuid = DEFAULT_GETUID,
1060 .features = DEFAULT_FEATURES,
1061 .hwhandler = "1 rdac",
1062 .selector = DEFAULT_SELECTOR,
1063 .pgpolicy = GROUP_BY_PRIO,
1064 .pgfailback = -FAILBACK_IMMEDIATE,
1065 .rr_weight = RR_WEIGHT_NONE,
1066 .no_path_retry = NO_PATH_RETRY_QUEUE,
1067 .minio = DEFAULT_MINIO,
1068 .checker_name = RDAC,
1069 .prio_name = PRIO_RDAC,
1072 /* LSI Generic rdac storage */
1074 .vendor = "(LSI|ENGENIO)",
1075 .product = "INF-01-00",
1076 .getuid = DEFAULT_GETUID,
1077 .features = "2 pg_init_retries 50",
1078 .hwhandler = "1 rdac",
1079 .selector = DEFAULT_SELECTOR,
1080 .pgpolicy = GROUP_BY_PRIO,
1081 .pgfailback = -FAILBACK_IMMEDIATE,
1082 .rr_weight = RR_WEIGHT_NONE,
1083 .no_path_retry = 15,
1084 .minio = DEFAULT_MINIO,
1085 .checker_name = RDAC,
1086 .prio_name = PRIO_RDAC,
1091 .product = "FLEXLINE 380",
1092 .bl_product = "Universal Xport",
1093 .getuid = DEFAULT_GETUID,
1094 .features = DEFAULT_FEATURES,
1095 .hwhandler = "1 rdac",
1096 .selector = DEFAULT_SELECTOR,
1097 .pgpolicy = GROUP_BY_PRIO,
1098 .pgfailback = -FAILBACK_IMMEDIATE,
1099 .rr_weight = RR_WEIGHT_NONE,
1100 .no_path_retry = NO_PATH_RETRY_QUEUE,
1101 .minio = DEFAULT_MINIO,
1102 .checker_name = RDAC,
1103 .prio_name = PRIO_RDAC,
1121 .checker_name = NULL,
1128 setup_default_hwtable (vector hw)
1131 struct hwentry * hwe = default_hw;
1133 while (hwe->vendor) {
1134 r += store_hwe(hw, hwe);