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,
766 .getuid = DEFAULT_GETUID,
767 .features = DEFAULT_FEATURES,
768 .hwhandler = "1 alua",
769 .selector = DEFAULT_SELECTOR,
770 .pgpolicy = GROUP_BY_PRIO,
771 .pgfailback = -FAILBACK_IMMEDIATE,
772 .rr_weight = RR_WEIGHT_NONE,
773 .no_path_retry = (300 / DEFAULT_CHECKINT),
774 .minio = DEFAULT_MINIO,
776 .prio_name = PRIO_ALUA,
783 .getuid = DEFAULT_GETUID,
784 .features = "2 pg_init_retries 50",
785 .hwhandler = "1 rdac",
786 .selector = DEFAULT_SELECTOR,
787 .pgpolicy = GROUP_BY_PRIO,
788 .pgfailback = -FAILBACK_IMMEDIATE,
789 .rr_weight = RR_WEIGHT_NONE,
791 .minio = DEFAULT_MINIO,
792 .checker_name = RDAC,
793 .prio_name = PRIO_RDAC,
799 .product = "MD3000i",
800 .getuid = DEFAULT_GETUID,
801 .features = "2 pg_init_retries 50",
802 .hwhandler = "1 rdac",
803 .selector = DEFAULT_SELECTOR,
804 .pgpolicy = GROUP_BY_PRIO,
805 .pgfailback = -FAILBACK_IMMEDIATE,
806 .rr_weight = RR_WEIGHT_NONE,
808 .minio = DEFAULT_MINIO,
809 .checker_name = RDAC,
810 .prio_name = PRIO_RDAC,
817 .getuid = DEFAULT_GETUID,
818 .features = "2 pg_init_retries 50",
819 .hwhandler = "1 rdac",
820 .selector = DEFAULT_SELECTOR,
821 .pgpolicy = GROUP_BY_PRIO,
822 .pgfailback = -FAILBACK_IMMEDIATE,
823 .rr_weight = RR_WEIGHT_NONE,
825 .minio = DEFAULT_MINIO,
826 .checker_name = RDAC,
827 .prio_name = PRIO_RDAC,
833 .product = "MD32xxi",
834 .getuid = DEFAULT_GETUID,
835 .features = "2 pg_init_retries 50",
836 .hwhandler = "1 rdac",
837 .selector = DEFAULT_SELECTOR,
838 .pgpolicy = GROUP_BY_PRIO,
839 .pgfailback = -FAILBACK_IMMEDIATE,
840 .rr_weight = RR_WEIGHT_NONE,
842 .minio = DEFAULT_MINIO,
843 .checker_name = RDAC,
844 .prio_name = PRIO_RDAC,
848 * NETAPP controller family
850 * Maintainer : Dave Wysochanski
851 * Mail : davidw@netapp.com
856 .getuid = DEFAULT_GETUID,
857 .features = "1 queue_if_no_path",
858 .hwhandler = DEFAULT_HWHANDLER,
859 .selector = DEFAULT_SELECTOR,
860 .pgpolicy = GROUP_BY_PRIO,
861 .pgfailback = -FAILBACK_IMMEDIATE,
862 .rr_weight = RR_WEIGHT_NONE,
863 .no_path_retry = NO_PATH_RETRY_UNDEF,
865 .checker_name = DIRECTIO,
866 .prio_name = PRIO_NETAPP,
870 * NEXENTA/COMSTAR controller family
872 * Maintainer : Yacine Kheddache
873 * Mail : yacine@alyseo.com
877 .product = "COMSTAR",
878 .getuid = DEFAULT_GETUID,
879 .features = "1 queue_if_no_path",
880 .hwhandler = DEFAULT_HWHANDLER,
881 .selector = DEFAULT_SELECTOR,
882 .pgpolicy = GROUP_BY_SERIAL,
883 .pgfailback = -FAILBACK_IMMEDIATE,
884 .rr_weight = RR_WEIGHT_NONE,
887 .checker_name = DIRECTIO,
888 .prio_name = DEFAULT_PRIO,
892 * IBM NSeries (NETAPP) controller family
894 * Maintainer : Dave Wysochanski
895 * Mail : davidw@netapp.com
899 .product = "Nseries.*",
900 .getuid = DEFAULT_GETUID,
901 .features = "1 queue_if_no_path",
902 .hwhandler = DEFAULT_HWHANDLER,
903 .selector = DEFAULT_SELECTOR,
904 .pgpolicy = GROUP_BY_PRIO,
905 .pgfailback = -FAILBACK_IMMEDIATE,
906 .rr_weight = RR_WEIGHT_NONE,
907 .no_path_retry = NO_PATH_RETRY_UNDEF,
909 .checker_name = DIRECTIO,
910 .prio_name = PRIO_NETAPP,
914 * Pillar Data controller family
916 * Maintainer : Srinivasan Ramani
917 * Mail : sramani@pillardata.com
921 .product = "Axiom.*",
922 .getuid = DEFAULT_GETUID,
923 .features = DEFAULT_FEATURES,
924 .hwhandler = DEFAULT_HWHANDLER,
925 .selector = DEFAULT_SELECTOR,
926 .pgpolicy = GROUP_BY_PRIO,
927 .pgfailback = FAILBACK_UNDEF,
928 .rr_weight = RR_WEIGHT_NONE,
929 .no_path_retry = NO_PATH_RETRY_UNDEF,
930 .minio = DEFAULT_MINIO,
932 .prio_name = PRIO_ALUA,
939 * Maintainer : Christophe Varoqui
940 * Mail : christophe.varoqui@opensvc.com
944 .product = "TP9[13]00",
945 .getuid = DEFAULT_GETUID,
946 .features = DEFAULT_FEATURES,
947 .hwhandler = DEFAULT_HWHANDLER,
948 .selector = DEFAULT_SELECTOR,
949 .pgpolicy = MULTIBUS,
950 .pgfailback = FAILBACK_UNDEF,
951 .rr_weight = RR_WEIGHT_NONE,
952 .no_path_retry = NO_PATH_RETRY_UNDEF,
953 .minio = DEFAULT_MINIO,
954 .checker_name = DIRECTIO,
955 .prio_name = DEFAULT_PRIO,
960 .product = "TP9[45]00",
961 .getuid = DEFAULT_GETUID,
962 .features = DEFAULT_FEATURES,
963 .hwhandler = "1 rdac",
964 .selector = DEFAULT_SELECTOR,
965 .pgpolicy = GROUP_BY_PRIO,
966 .pgfailback = -FAILBACK_IMMEDIATE,
967 .rr_weight = RR_WEIGHT_NONE,
968 .no_path_retry = NO_PATH_RETRY_QUEUE,
969 .minio = DEFAULT_MINIO,
970 .checker_name = RDAC,
971 .prio_name = PRIO_RDAC,
977 .getuid = DEFAULT_GETUID,
978 .features = DEFAULT_FEATURES,
979 .hwhandler = "1 rdac",
980 .selector = DEFAULT_SELECTOR,
981 .pgpolicy = GROUP_BY_PRIO,
982 .pgfailback = -FAILBACK_IMMEDIATE,
983 .rr_weight = RR_WEIGHT_NONE,
984 .no_path_retry = NO_PATH_RETRY_QUEUE,
985 .minio = DEFAULT_MINIO,
986 .checker_name = RDAC,
987 .prio_name = PRIO_RDAC,
993 * Maintainer : Christophe Varoqui
994 * Mail : christophe.varoqui@opensvc.com
998 .product = "OPENstorage D280",
999 .getuid = DEFAULT_GETUID,
1000 .features = DEFAULT_FEATURES,
1001 .hwhandler = "1 rdac",
1002 .selector = DEFAULT_SELECTOR,
1003 .pgpolicy = GROUP_BY_PRIO,
1004 .pgfailback = -FAILBACK_IMMEDIATE,
1005 .rr_weight = RR_WEIGHT_NONE,
1006 .no_path_retry = NO_PATH_RETRY_UNDEF,
1007 .minio = DEFAULT_MINIO,
1008 .checker_name = TUR,
1009 .prio_name = PRIO_RDAC,
1015 * Maintainer : Christophe Varoqui
1016 * Mail : christophe.varoqui@opensvc.com
1020 .product = "(StorEdge 3510|T4)",
1021 .getuid = DEFAULT_GETUID,
1022 .features = DEFAULT_FEATURES,
1023 .hwhandler = DEFAULT_HWHANDLER,
1024 .selector = DEFAULT_SELECTOR,
1025 .pgpolicy = MULTIBUS,
1026 .pgfailback = FAILBACK_UNDEF,
1027 .rr_weight = RR_WEIGHT_NONE,
1028 .no_path_retry = NO_PATH_RETRY_UNDEF,
1029 .minio = DEFAULT_MINIO,
1030 .checker_name = DIRECTIO,
1031 .prio_name = DEFAULT_PRIO,
1037 * Maintainer : Bart Brooks, Pivot3
1038 * Mail : bartb@pivot3.com
1042 .product = "RAIGE VOLUME",
1043 .getuid = "/lib/udev/scsi_id --page=0x80 --whitelisted --device=/dev/%n",
1044 .features = "1 queue_if_no_path",
1045 .hwhandler = DEFAULT_HWHANDLER,
1046 .selector = DEFAULT_SELECTOR,
1047 .pgpolicy = MULTIBUS,
1048 .pgfailback = FAILBACK_UNDEF,
1049 .rr_weight = RR_WEIGHT_NONE,
1050 .no_path_retry = NO_PATH_RETRY_UNDEF,
1052 .checker_name = TUR,
1053 .prio_name = DEFAULT_PRIO,
1058 .product = "CSM200_R",
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 /* SUN/LSI 2510, 2540, 2530, 2540 */
1075 .product = "LCSM100_[IEFS]",
1076 .getuid = DEFAULT_GETUID,
1077 .features = DEFAULT_FEATURES,
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 = NO_PATH_RETRY_QUEUE,
1084 .minio = DEFAULT_MINIO,
1085 .checker_name = RDAC,
1086 .prio_name = PRIO_RDAC,
1089 /* LSI Generic rdac storage */
1091 .vendor = "(LSI|ENGENIO)",
1092 .product = "INF-01-00",
1093 .getuid = DEFAULT_GETUID,
1094 .features = "2 pg_init_retries 50",
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 = 15,
1101 .minio = DEFAULT_MINIO,
1102 .checker_name = RDAC,
1103 .prio_name = PRIO_RDAC,
1108 .product = "FLEXLINE 380",
1109 .bl_product = "Universal Xport",
1110 .getuid = DEFAULT_GETUID,
1111 .features = DEFAULT_FEATURES,
1112 .hwhandler = "1 rdac",
1113 .selector = DEFAULT_SELECTOR,
1114 .pgpolicy = GROUP_BY_PRIO,
1115 .pgfailback = -FAILBACK_IMMEDIATE,
1116 .rr_weight = RR_WEIGHT_NONE,
1117 .no_path_retry = NO_PATH_RETRY_QUEUE,
1118 .minio = DEFAULT_MINIO,
1119 .checker_name = RDAC,
1120 .prio_name = PRIO_RDAC,
1138 .checker_name = NULL,
1145 setup_default_hwtable (vector hw)
1148 struct hwentry * hwe = default_hw;
1150 while (hwe->vendor) {
1151 r += store_hwe(hw, hwe);