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,
42 * Apple controller family
44 * Maintainer : Shyam Sundar
45 * Mail : g.shyamsundar@yahoo.co.in
49 .product = "Xserve RAID ",
50 .getuid = DEFAULT_GETUID,
51 .features = DEFAULT_FEATURES,
52 .hwhandler = DEFAULT_HWHANDLER,
53 .selector = DEFAULT_SELECTOR,
55 .pgfailback = FAILBACK_UNDEF,
56 .rr_weight = RR_WEIGHT_NONE,
57 .no_path_retry = NO_PATH_RETRY_UNDEF,
58 .minio = DEFAULT_MINIO,
59 .checker_name = DEFAULT_CHECKER,
60 .prio_name = DEFAULT_PRIO,
63 * StorageWorks controller family
65 * Maintainer : Christophe Varoqui
66 * Mail : christophe.varoqui@free.fr
71 .getuid = DEFAULT_GETUID,
72 .features = DEFAULT_FEATURES,
73 .hwhandler = DEFAULT_HWHANDLER,
74 .selector = DEFAULT_SELECTOR,
76 .pgfailback = FAILBACK_UNDEF,
77 .rr_weight = RR_WEIGHT_NONE,
78 .no_path_retry = NO_PATH_RETRY_UNDEF,
79 .minio = DEFAULT_MINIO,
80 .checker_name = DEFAULT_CHECKER,
81 .prio_name = DEFAULT_PRIO,
86 .getuid = DEFAULT_GETUID,
87 .features = "1 queue_if_no_path",
88 .hwhandler = "1 hp-sw",
89 .selector = DEFAULT_SELECTOR,
90 .pgpolicy = GROUP_BY_PRIO,
91 .pgfailback = FAILBACK_UNDEF,
92 .rr_weight = RR_WEIGHT_NONE,
93 .no_path_retry = NO_PATH_RETRY_UNDEF,
94 .minio = DEFAULT_MINIO,
95 .checker_name = HP_SW,
96 .prio_name = PRIO_HP_SW,
101 .getuid = DEFAULT_GETUID,
102 .features = DEFAULT_FEATURES,
103 .hwhandler = DEFAULT_HWHANDLER,
104 .selector = DEFAULT_SELECTOR,
105 .pgpolicy = MULTIBUS,
106 .pgfailback = FAILBACK_UNDEF,
107 .rr_weight = RR_WEIGHT_NONE,
109 .minio = DEFAULT_MINIO,
110 .checker_name = DIRECTIO,
111 .prio_name = DEFAULT_PRIO,
114 /* MSA 1000/MSA1500 EVA 3000/5000 with old firmware */
115 .vendor = "(COMPAQ|HP)",
116 .product = "(MSA|HSV)1.0.*",
117 .getuid = DEFAULT_GETUID,
118 .features = "1 queue_if_no_path",
119 .hwhandler = "1 hp-sw",
120 .selector = DEFAULT_SELECTOR,
121 .pgpolicy = GROUP_BY_PRIO,
122 .pgfailback = FAILBACK_UNDEF,
123 .rr_weight = RR_WEIGHT_NONE,
126 .checker_name = HP_SW,
127 .prio_name = PRIO_HP_SW,
130 /* MSA 1000/1500 with new firmware */
132 .product = "MSA VOLUME",
133 .getuid = DEFAULT_GETUID,
134 .features = DEFAULT_FEATURES,
135 .hwhandler = DEFAULT_HWHANDLER,
136 .selector = DEFAULT_SELECTOR,
137 .pgpolicy = GROUP_BY_PRIO,
138 .pgfailback = -FAILBACK_IMMEDIATE,
139 .rr_weight = RR_WEIGHT_NONE,
143 .prio_name = PRIO_ALUA,
146 /* EVA 3000/5000 with new firmware, EVA 4000/6000/8000 */
147 .vendor = "(COMPAQ|HP)",
148 .product = "HSV1[01]1|HSV2[01]0|HSV300|HSV4[05]0",
149 .getuid = DEFAULT_GETUID,
150 .features = DEFAULT_FEATURES,
151 .hwhandler = DEFAULT_HWHANDLER,
152 .selector = DEFAULT_SELECTOR,
153 .pgpolicy = GROUP_BY_PRIO,
154 .pgfailback = -FAILBACK_IMMEDIATE,
155 .rr_weight = RR_WEIGHT_NONE,
159 .prio_name = PRIO_ALUA,
162 /* HP MSA2000 product family with old firmware */
164 .product = "MSA2[02]12fc|MSA2012i",
165 .getuid = DEFAULT_GETUID,
166 .features = DEFAULT_FEATURES,
167 .hwhandler = DEFAULT_HWHANDLER,
168 .selector = DEFAULT_SELECTOR,
169 .pgpolicy = MULTIBUS,
170 .pgfailback = -FAILBACK_IMMEDIATE,
171 .rr_weight = RR_WEIGHT_NONE,
175 .prio_name = DEFAULT_PRIO,
178 /* HP MSA2000 product family with new firmware */
180 .product = "MSA2012sa|MSA23(12|24)(fc|i|sa)|MSA2000s VOLUME",
181 .getuid = DEFAULT_GETUID,
182 .features = DEFAULT_FEATURES,
183 .hwhandler = DEFAULT_HWHANDLER,
184 .selector = DEFAULT_SELECTOR,
185 .pgpolicy = GROUP_BY_PRIO,
186 .pgfailback = -FAILBACK_IMMEDIATE,
187 .rr_weight = RR_WEIGHT_NONE,
191 .prio_name = PRIO_ALUA,
197 .product = "HSVX700",
198 .getuid = DEFAULT_GETUID,
199 .features = DEFAULT_FEATURES,
200 .hwhandler = "1 alua",
201 .selector = DEFAULT_SELECTOR,
202 .pgpolicy = GROUP_BY_PRIO,
203 .pgfailback = -FAILBACK_IMMEDIATE,
204 .rr_weight = RR_WEIGHT_NONE,
208 .prio_name = PRIO_ALUA,
214 .product = "LOGICAL VOLUME.*",
215 .getuid = DEFAULT_GETUID,
216 .features = DEFAULT_FEATURES,
217 .hwhandler = DEFAULT_HWHANDLER,
218 .selector = DEFAULT_SELECTOR,
219 .pgpolicy = MULTIBUS,
220 .pgfailback = FAILBACK_UNDEF,
221 .rr_weight = RR_WEIGHT_NONE,
223 .minio = DEFAULT_MINIO,
224 .checker_name = CCISS_TUR,
225 .prio_name = DEFAULT_PRIO,
228 * DDN controller family
230 * Maintainer : Christophe Varoqui
231 * Mail : christophe.varoqui@free.fr
235 .product = "SAN DataDirector",
236 .getuid = DEFAULT_GETUID,
237 .features = DEFAULT_FEATURES,
238 .hwhandler = DEFAULT_HWHANDLER,
239 .selector = DEFAULT_SELECTOR,
240 .pgpolicy = MULTIBUS,
241 .pgfailback = FAILBACK_UNDEF,
242 .rr_weight = RR_WEIGHT_NONE,
243 .no_path_retry = NO_PATH_RETRY_UNDEF,
244 .minio = DEFAULT_MINIO,
245 .checker_name = DIRECTIO,
246 .prio_name = DEFAULT_PRIO,
249 * EMC / Clariion controller family
251 * Maintainer : Edward Goggin, EMC
252 * Mail : egoggin@emc.com
256 .product = "SYMMETRIX",
257 .getuid = "/lib/udev/scsi_id --page=pre-spc3-83 --whitelisted --device=/dev/%n",
258 .features = DEFAULT_FEATURES,
259 .hwhandler = DEFAULT_HWHANDLER,
260 .selector = DEFAULT_SELECTOR,
261 .pgpolicy = MULTIBUS,
262 .pgfailback = FAILBACK_UNDEF,
263 .rr_weight = RR_WEIGHT_NONE,
264 .no_path_retry = NO_PATH_RETRY_UNDEF,
265 .minio = DEFAULT_MINIO,
266 .checker_name = DIRECTIO,
267 .prio_name = DEFAULT_PRIO,
272 .bl_product = "LUNZ",
273 .getuid = DEFAULT_GETUID,
274 .features = "1 queue_if_no_path",
275 .hwhandler = "1 emc",
276 .selector = DEFAULT_SELECTOR,
277 .pgpolicy = GROUP_BY_PRIO,
278 .pgfailback = -FAILBACK_IMMEDIATE,
279 .rr_weight = RR_WEIGHT_NONE,
280 .no_path_retry = (300 / DEFAULT_CHECKINT),
281 .minio = DEFAULT_MINIO,
282 .checker_name = EMC_CLARIION,
283 .prio_name = PRIO_EMC,
286 * Fujitsu controller family
288 * Maintainer : Christophe Varoqui
289 * Mail : christophe.varoqui@free.fr
293 .product = "CentricStor",
294 .getuid = DEFAULT_GETUID,
295 .features = DEFAULT_FEATURES,
296 .hwhandler = DEFAULT_HWHANDLER,
297 .selector = DEFAULT_SELECTOR,
298 .pgpolicy = GROUP_BY_SERIAL,
299 .pgfailback = FAILBACK_UNDEF,
300 .rr_weight = RR_WEIGHT_NONE,
301 .no_path_retry = NO_PATH_RETRY_UNDEF,
302 .minio = DEFAULT_MINIO,
303 .checker_name = DIRECTIO,
304 .prio_name = DEFAULT_PRIO,
307 * Hitachi controller family
309 * Maintainer : Matthias Rudolph
310 * Mail : matthias.rudolph@hds.com
313 .vendor = "(HITACHI|HP)",
314 .product = "OPEN-.*",
315 .getuid = DEFAULT_GETUID,
316 .features = DEFAULT_FEATURES,
317 .hwhandler = DEFAULT_HWHANDLER,
318 .selector = DEFAULT_SELECTOR,
319 .pgpolicy = MULTIBUS,
320 .pgfailback = FAILBACK_UNDEF,
321 .rr_weight = RR_WEIGHT_NONE,
322 .no_path_retry = NO_PATH_RETRY_UNDEF,
323 .minio = DEFAULT_MINIO,
325 .prio_name = DEFAULT_PRIO,
330 .getuid = DEFAULT_GETUID,
331 .features = "1 queue_if_no_path",
332 .hwhandler = DEFAULT_HWHANDLER,
333 .selector = DEFAULT_SELECTOR,
334 .pgpolicy = GROUP_BY_PRIO,
335 .pgfailback = -FAILBACK_IMMEDIATE,
336 .rr_weight = RR_WEIGHT_NONE,
337 .no_path_retry = NO_PATH_RETRY_UNDEF,
338 .minio = DEFAULT_MINIO,
340 .prio_name = PRIO_HDS,
343 * IBM controller family
345 * Maintainer : Hannes Reinecke, SuSE
346 * Mail : hare@suse.de
350 .product = "ProFibre 4000R",
351 .getuid = DEFAULT_GETUID,
352 .features = DEFAULT_FEATURES,
353 .hwhandler = DEFAULT_HWHANDLER,
354 .selector = DEFAULT_SELECTOR,
355 .pgpolicy = MULTIBUS,
356 .pgfailback = FAILBACK_UNDEF,
357 .rr_weight = RR_WEIGHT_NONE,
358 .no_path_retry = NO_PATH_RETRY_UNDEF,
359 .minio = DEFAULT_MINIO,
360 .checker_name = DIRECTIO,
361 .prio_name = DEFAULT_PRIO,
364 /* IBM FAStT 1722-600 */
366 .product = "1722-600",
367 .getuid = DEFAULT_GETUID,
368 .features = "1 queue_if_no_path",
369 .hwhandler = "1 rdac",
370 .selector = DEFAULT_SELECTOR,
371 .pgpolicy = GROUP_BY_PRIO,
372 .pgfailback = -FAILBACK_IMMEDIATE,
373 .rr_weight = RR_WEIGHT_NONE,
374 .no_path_retry = 300,
375 .minio = DEFAULT_MINIO,
376 .checker_name = RDAC,
377 .prio_name = PRIO_RDAC,
383 .getuid = DEFAULT_GETUID,
384 .features = "1 queue_if_no_path",
385 .hwhandler = "1 rdac",
386 .selector = DEFAULT_SELECTOR,
387 .pgpolicy = GROUP_BY_PRIO,
388 .pgfailback = -FAILBACK_IMMEDIATE,
389 .rr_weight = RR_WEIGHT_NONE,
390 .no_path_retry = 300,
391 .minio = DEFAULT_MINIO,
392 .checker_name = RDAC,
393 .prio_name = PRIO_RDAC,
396 /* IBM DS3200 / DS3300 / DS3400 */
399 .getuid = DEFAULT_GETUID,
400 .features = "1 queue_if_no_path",
401 .hwhandler = "1 rdac",
402 .selector = DEFAULT_SELECTOR,
403 .pgpolicy = GROUP_BY_PRIO,
404 .pgfailback = -FAILBACK_IMMEDIATE,
405 .rr_weight = RR_WEIGHT_NONE,
406 .no_path_retry = 300,
407 .minio = DEFAULT_MINIO,
408 .checker_name = RDAC,
409 .prio_name = PRIO_RDAC,
412 /* IBM DS4400 / DS4500 / FAStT700 */
415 .getuid = DEFAULT_GETUID,
416 .features = DEFAULT_FEATURES,
417 .hwhandler = "1 rdac",
418 .selector = DEFAULT_SELECTOR,
419 .pgpolicy = GROUP_BY_PRIO,
420 .pgfailback = -FAILBACK_IMMEDIATE,
421 .rr_weight = RR_WEIGHT_NONE,
422 .no_path_retry = NO_PATH_RETRY_QUEUE,
423 .minio = DEFAULT_MINIO,
424 .checker_name = RDAC,
425 .prio_name = PRIO_RDAC,
431 .getuid = DEFAULT_GETUID,
432 .features = DEFAULT_FEATURES,
433 .hwhandler = "1 rdac",
434 .selector = DEFAULT_SELECTOR,
435 .pgpolicy = GROUP_BY_PRIO,
436 .pgfailback = -FAILBACK_IMMEDIATE,
437 .rr_weight = RR_WEIGHT_NONE,
438 .no_path_retry = NO_PATH_RETRY_QUEUE,
439 .minio = DEFAULT_MINIO,
440 .checker_name = RDAC,
441 .prio_name = PRIO_RDAC,
447 .getuid = DEFAULT_GETUID,
448 .features = DEFAULT_FEATURES,
449 .hwhandler = "1 rdac",
450 .selector = DEFAULT_SELECTOR,
451 .pgpolicy = GROUP_BY_PRIO,
452 .pgfailback = -FAILBACK_IMMEDIATE,
453 .rr_weight = RR_WEIGHT_NONE,
454 .no_path_retry = NO_PATH_RETRY_QUEUE,
455 .minio = DEFAULT_MINIO,
456 .checker_name = RDAC,
457 .prio_name = PRIO_RDAC,
463 .getuid = DEFAULT_GETUID,
464 .features = DEFAULT_FEATURES,
465 .hwhandler = "1 rdac",
466 .selector = DEFAULT_SELECTOR,
467 .pgpolicy = GROUP_BY_PRIO,
468 .pgfailback = -FAILBACK_IMMEDIATE,
469 .rr_weight = RR_WEIGHT_NONE,
470 .no_path_retry = NO_PATH_RETRY_QUEUE,
471 .minio = DEFAULT_MINIO,
472 .checker_name = RDAC,
473 .prio_name = PRIO_RDAC,
476 /* IBM Netfinity Fibre Channel RAID Controller Unit */
479 .getuid = DEFAULT_GETUID,
480 .features = DEFAULT_FEATURES,
481 .hwhandler = "1 rdac",
482 .selector = DEFAULT_SELECTOR,
483 .pgpolicy = GROUP_BY_PRIO,
484 .pgfailback = -FAILBACK_IMMEDIATE,
485 .rr_weight = RR_WEIGHT_NONE,
486 .no_path_retry = NO_PATH_RETRY_QUEUE,
487 .minio = DEFAULT_MINIO,
488 .checker_name = RDAC,
489 .prio_name = PRIO_RDAC,
492 /* IBM DS4200 / FAStT200 */
495 .getuid = DEFAULT_GETUID,
496 .features = DEFAULT_FEATURES,
497 .hwhandler = DEFAULT_HWHANDLER,
498 .selector = DEFAULT_SELECTOR,
499 .pgpolicy = GROUP_BY_SERIAL,
500 .pgfailback = FAILBACK_UNDEF,
501 .rr_weight = RR_WEIGHT_NONE,
502 .no_path_retry = NO_PATH_RETRY_UNDEF,
503 .minio = DEFAULT_MINIO,
505 .prio_name = DEFAULT_PRIO,
508 /* IBM ESS F20 aka Shark */
510 .product = "2105800",
511 .getuid = DEFAULT_GETUID,
512 .features = "1 queue_if_no_path",
513 .hwhandler = DEFAULT_HWHANDLER,
514 .selector = DEFAULT_SELECTOR,
515 .pgpolicy = GROUP_BY_SERIAL,
516 .pgfailback = FAILBACK_UNDEF,
517 .rr_weight = RR_WEIGHT_NONE,
518 .no_path_retry = NO_PATH_RETRY_UNDEF,
519 .minio = DEFAULT_MINIO,
521 .prio_name = DEFAULT_PRIO,
524 /* IBM ESS F20 aka Shark */
526 .product = "2105F20",
527 .getuid = DEFAULT_GETUID,
528 .features = "1 queue_if_no_path",
529 .hwhandler = DEFAULT_HWHANDLER,
530 .selector = DEFAULT_SELECTOR,
531 .pgpolicy = GROUP_BY_SERIAL,
532 .pgfailback = FAILBACK_UNDEF,
533 .rr_weight = RR_WEIGHT_NONE,
534 .no_path_retry = NO_PATH_RETRY_UNDEF,
535 .minio = DEFAULT_MINIO,
537 .prio_name = DEFAULT_PRIO,
542 .product = "1750500",
543 .getuid = DEFAULT_GETUID,
544 .features = "1 queue_if_no_path",
545 .hwhandler = DEFAULT_HWHANDLER,
546 .selector = DEFAULT_SELECTOR,
547 .pgpolicy = GROUP_BY_PRIO,
548 .pgfailback = -FAILBACK_IMMEDIATE,
549 .rr_weight = RR_WEIGHT_NONE,
550 .no_path_retry = NO_PATH_RETRY_UNDEF,
551 .minio = DEFAULT_MINIO,
553 .prio_name = PRIO_ALUA,
558 .product = "2107900",
559 .getuid = DEFAULT_GETUID,
560 .features = "1 queue_if_no_path",
561 .hwhandler = DEFAULT_HWHANDLER,
562 .selector = DEFAULT_SELECTOR,
563 .pgpolicy = MULTIBUS,
564 .pgfailback = FAILBACK_UNDEF,
565 .rr_weight = RR_WEIGHT_NONE,
566 .no_path_retry = NO_PATH_RETRY_UNDEF,
567 .minio = DEFAULT_MINIO,
569 .prio_name = DEFAULT_PRIO,
572 /* IBM SAN Volume Controller */
575 .getuid = DEFAULT_GETUID,
576 .features = "1 queue_if_no_path",
577 .hwhandler = DEFAULT_HWHANDLER,
578 .selector = DEFAULT_SELECTOR,
579 .pgpolicy = GROUP_BY_PRIO,
580 .pgfailback = -FAILBACK_IMMEDIATE,
581 .rr_weight = RR_WEIGHT_NONE,
582 .no_path_retry = NO_PATH_RETRY_UNDEF,
583 .minio = DEFAULT_MINIO,
585 .prio_name = PRIO_ALUA,
588 /* IBM S/390 ECKD DASD */
590 .product = "S/390 DASD ECKD",
591 .bl_product = "S/390.*",
592 .getuid = "/sbin/dasdinfo -u -b %n",
593 .features = "1 queue_if_no_path",
594 .hwhandler = DEFAULT_HWHANDLER,
595 .selector = DEFAULT_SELECTOR,
596 .pgpolicy = MULTIBUS,
597 .pgfailback = FAILBACK_UNDEF,
598 .rr_weight = RR_WEIGHT_NONE,
599 .no_path_retry = NO_PATH_RETRY_UNDEF,
600 .minio = DEFAULT_MINIO,
601 .checker_name = DIRECTIO,
602 .prio_name = DEFAULT_PRIO,
605 /* IBM S/390 FBA DASD */
607 .product = "S/390 DASD FBA",
608 .bl_product = "S/390.*",
609 .getuid = "/sbin/dasdinfo -u -b %n",
610 .features = "1 queue_if_no_path",
611 .hwhandler = DEFAULT_HWHANDLER,
612 .selector = DEFAULT_SELECTOR,
613 .pgpolicy = MULTIBUS,
614 .pgfailback = FAILBACK_UNDEF,
615 .rr_weight = RR_WEIGHT_NONE,
616 .no_path_retry = NO_PATH_RETRY_UNDEF,
617 .minio = DEFAULT_MINIO,
618 .checker_name = DIRECTIO,
619 .prio_name = DEFAULT_PRIO,
625 .getuid = DEFAULT_GETUID,
626 .features = "1 queue_if_no_path",
627 .hwhandler = "1 alua",
628 .selector = DEFAULT_SELECTOR,
629 .pgpolicy = GROUP_BY_PRIO,
630 .pgfailback = -FAILBACK_IMMEDIATE,
631 .rr_weight = RR_WEIGHT_NONE,
632 .no_path_retry = NO_PATH_RETRY_UNDEF,
633 .minio = DEFAULT_MINIO,
635 .prio_name = PRIO_ALUA,
638 * IBM Power Virtual SCSI Devices
640 * Maintainer : Brian King, IBM
641 * Mail : brking@linux.vnet.ibm.com
647 .getuid = DEFAULT_GETUID,
648 .features = DEFAULT_FEATURES,
649 .hwhandler = DEFAULT_HWHANDLER,
650 .selector = DEFAULT_SELECTOR,
651 .pgpolicy = MULTIBUS,
652 .pgfailback = -FAILBACK_IMMEDIATE,
653 .rr_weight = RR_WEIGHT_NONE,
654 .no_path_retry = (300 / DEFAULT_CHECKINT),
655 .minio = DEFAULT_MINIO,
656 .checker_name = DIRECTIO,
657 .prio_name = DEFAULT_PRIO,
663 .getuid = DEFAULT_GETUID,
664 .features = "1 queue_if_no_path",
665 .hwhandler = "1 rdac",
666 .selector = DEFAULT_SELECTOR,
667 .pgpolicy = GROUP_BY_PRIO,
668 .pgfailback = -FAILBACK_IMMEDIATE,
669 .rr_weight = RR_WEIGHT_NONE,
670 .minio = DEFAULT_MINIO,
671 .checker_name = RDAC,
672 .prio_name = PRIO_RDAC,
677 .product = "MD3000i",
678 .getuid = DEFAULT_GETUID,
679 .features = "1 queue_if_no_path",
680 .hwhandler = "1 rdac",
681 .selector = DEFAULT_SELECTOR,
682 .pgpolicy = GROUP_BY_PRIO,
683 .pgfailback = -FAILBACK_IMMEDIATE,
684 .rr_weight = RR_WEIGHT_NONE,
685 .minio = DEFAULT_MINIO,
686 .checker_name = RDAC,
687 .prio_name = PRIO_RDAC,
690 * NETAPP controller family
692 * Maintainer : Dave Wysochanski
693 * Mail : davidw@netapp.com
698 .getuid = DEFAULT_GETUID,
699 .features = "1 queue_if_no_path",
700 .hwhandler = DEFAULT_HWHANDLER,
701 .selector = DEFAULT_SELECTOR,
702 .pgpolicy = GROUP_BY_PRIO,
703 .pgfailback = -FAILBACK_IMMEDIATE,
704 .rr_weight = RR_WEIGHT_NONE,
705 .no_path_retry = NO_PATH_RETRY_UNDEF,
707 .checker_name = DIRECTIO,
708 .prio_name = PRIO_NETAPP,
711 * IBM NSeries (NETAPP) controller family
713 * Maintainer : Dave Wysochanski
714 * Mail : davidw@netapp.com
718 .product = "Nseries.*",
719 .getuid = DEFAULT_GETUID,
720 .features = "1 queue_if_no_path",
721 .hwhandler = DEFAULT_HWHANDLER,
722 .selector = DEFAULT_SELECTOR,
723 .pgpolicy = GROUP_BY_PRIO,
724 .pgfailback = -FAILBACK_IMMEDIATE,
725 .rr_weight = RR_WEIGHT_NONE,
726 .no_path_retry = NO_PATH_RETRY_UNDEF,
728 .checker_name = DIRECTIO,
729 .prio_name = PRIO_NETAPP,
732 * Pillar Data controller family
734 * Maintainer : Srinivasan Ramani
735 * Mail : sramani@pillardata.com
739 .product = "Axiom.*",
740 .getuid = DEFAULT_GETUID,
741 .features = DEFAULT_FEATURES,
742 .hwhandler = DEFAULT_HWHANDLER,
743 .selector = DEFAULT_SELECTOR,
744 .pgpolicy = GROUP_BY_PRIO,
745 .pgfailback = FAILBACK_UNDEF,
746 .rr_weight = RR_WEIGHT_NONE,
747 .no_path_retry = NO_PATH_RETRY_UNDEF,
748 .minio = DEFAULT_MINIO,
750 .prio_name = PRIO_ALUA,
755 * Maintainer : Christophe Varoqui
756 * Mail : christophe.varoqui@free.fr
760 .product = "TP9[13]00",
761 .getuid = DEFAULT_GETUID,
762 .features = DEFAULT_FEATURES,
763 .hwhandler = DEFAULT_HWHANDLER,
764 .selector = DEFAULT_SELECTOR,
765 .pgpolicy = MULTIBUS,
766 .pgfailback = FAILBACK_UNDEF,
767 .rr_weight = RR_WEIGHT_NONE,
768 .no_path_retry = NO_PATH_RETRY_UNDEF,
769 .minio = DEFAULT_MINIO,
770 .checker_name = DIRECTIO,
771 .prio_name = DEFAULT_PRIO,
775 .product = "TP9[45]00",
776 .getuid = DEFAULT_GETUID,
777 .features = DEFAULT_FEATURES,
778 .hwhandler = "1 rdac",
779 .selector = DEFAULT_SELECTOR,
780 .pgpolicy = GROUP_BY_PRIO,
781 .pgfailback = -FAILBACK_IMMEDIATE,
782 .rr_weight = RR_WEIGHT_NONE,
783 .no_path_retry = NO_PATH_RETRY_QUEUE,
784 .minio = DEFAULT_MINIO,
785 .checker_name = RDAC,
786 .prio_name = PRIO_RDAC,
791 .getuid = DEFAULT_GETUID,
792 .features = DEFAULT_FEATURES,
793 .hwhandler = "1 rdac",
794 .selector = DEFAULT_SELECTOR,
795 .pgpolicy = GROUP_BY_PRIO,
796 .pgfailback = -FAILBACK_IMMEDIATE,
797 .rr_weight = RR_WEIGHT_NONE,
798 .no_path_retry = NO_PATH_RETRY_QUEUE,
799 .minio = DEFAULT_MINIO,
800 .checker_name = RDAC,
801 .prio_name = PRIO_RDAC,
806 * Maintainer : Christophe Varoqui
807 * Mail : christophe.varoqui@free.fr
811 .product = "OPENstorage D280",
812 .getuid = DEFAULT_GETUID,
813 .features = DEFAULT_FEATURES,
814 .hwhandler = "1 rdac",
815 .selector = DEFAULT_SELECTOR,
816 .pgpolicy = GROUP_BY_PRIO,
817 .pgfailback = -FAILBACK_IMMEDIATE,
818 .rr_weight = RR_WEIGHT_NONE,
819 .no_path_retry = NO_PATH_RETRY_UNDEF,
820 .minio = DEFAULT_MINIO,
822 .prio_name = PRIO_RDAC,
827 * Maintainer : Christophe Varoqui
828 * Mail : christophe.varoqui@free.fr
832 .product = "(StorEdge 3510|T4)",
833 .getuid = DEFAULT_GETUID,
834 .features = DEFAULT_FEATURES,
835 .hwhandler = DEFAULT_HWHANDLER,
836 .selector = DEFAULT_SELECTOR,
837 .pgpolicy = MULTIBUS,
838 .pgfailback = FAILBACK_UNDEF,
839 .rr_weight = RR_WEIGHT_NONE,
840 .no_path_retry = NO_PATH_RETRY_UNDEF,
841 .minio = DEFAULT_MINIO,
842 .checker_name = DIRECTIO,
843 .prio_name = DEFAULT_PRIO,
848 * Maintainer : Bart Brooks, Pivot3
849 * Mail : bartb@pivot3.com
853 .product = "RAIGE VOLUME",
854 .getuid = "/lib/udev/scsi_id --page=0x80 --whitelisted --device=/dev/%n",
855 .features = "1 queue_if_no_path",
856 .hwhandler = DEFAULT_HWHANDLER,
857 .selector = DEFAULT_SELECTOR,
858 .pgpolicy = MULTIBUS,
859 .pgfailback = FAILBACK_UNDEF,
860 .rr_weight = RR_WEIGHT_NONE,
861 .no_path_retry = NO_PATH_RETRY_UNDEF,
864 .prio_name = DEFAULT_PRIO,
868 .product = "CSM200_R",
869 .getuid = DEFAULT_GETUID,
870 .features = DEFAULT_FEATURES,
871 .hwhandler = "1 rdac",
872 .selector = DEFAULT_SELECTOR,
873 .pgpolicy = GROUP_BY_PRIO,
874 .pgfailback = -FAILBACK_IMMEDIATE,
875 .rr_weight = RR_WEIGHT_NONE,
876 .no_path_retry = NO_PATH_RETRY_QUEUE,
877 .minio = DEFAULT_MINIO,
878 .checker_name = RDAC,
879 .prio_name = PRIO_RDAC,
881 /* SUN/LSI 2510, 2540 */
884 .product = "LCSM100_[IF]",
885 .getuid = DEFAULT_GETUID,
886 .features = DEFAULT_FEATURES,
887 .hwhandler = "1 rdac",
888 .selector = DEFAULT_SELECTOR,
889 .pgpolicy = GROUP_BY_PRIO,
890 .pgfailback = -FAILBACK_IMMEDIATE,
891 .rr_weight = RR_WEIGHT_NONE,
892 .no_path_retry = NO_PATH_RETRY_QUEUE,
893 .minio = DEFAULT_MINIO,
894 .checker_name = RDAC,
895 .prio_name = PRIO_RDAC,
897 /* LSI Generic rdac storage */
899 .vendor = "(LSI|ENGENIO)",
900 .product = "INF-01-00",
901 .getuid = DEFAULT_GETUID,
902 .features = "2 pg_init_retries 50",
903 .hwhandler = "1 rdac",
904 .selector = DEFAULT_SELECTOR,
905 .pgpolicy = GROUP_BY_PRIO,
906 .pgfailback = -FAILBACK_IMMEDIATE,
907 .rr_weight = RR_WEIGHT_NONE,
909 .minio = DEFAULT_MINIO,
910 .checker_name = RDAC,
911 .prio_name = PRIO_RDAC,
928 .checker_name = NULL,
934 setup_default_hwtable (vector hw)
937 struct hwentry * hwe = default_hw;
939 while (hwe->vendor) {
940 r += store_hwe(hw, hwe);