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",
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)",
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,
641 .getuid = DEFAULT_GETUID,
642 .features = "1 queue_if_no_path",
643 .hwhandler = "1 rdac",
644 .selector = DEFAULT_SELECTOR,
645 .pgpolicy = GROUP_BY_PRIO,
646 .pgfailback = -FAILBACK_IMMEDIATE,
647 .rr_weight = RR_WEIGHT_NONE,
648 .minio = DEFAULT_MINIO,
649 .checker_name = RDAC,
650 .prio_name = PRIO_RDAC,
655 .product = "MD3000i",
656 .getuid = DEFAULT_GETUID,
657 .features = "1 queue_if_no_path",
658 .hwhandler = "1 rdac",
659 .selector = DEFAULT_SELECTOR,
660 .pgpolicy = GROUP_BY_PRIO,
661 .pgfailback = -FAILBACK_IMMEDIATE,
662 .rr_weight = RR_WEIGHT_NONE,
663 .minio = DEFAULT_MINIO,
664 .checker_name = RDAC,
665 .prio_name = PRIO_RDAC,
668 * NETAPP controller family
670 * Maintainer : Dave Wysochanski
671 * Mail : davidw@netapp.com
676 .getuid = DEFAULT_GETUID,
677 .features = "1 queue_if_no_path",
678 .hwhandler = DEFAULT_HWHANDLER,
679 .selector = DEFAULT_SELECTOR,
680 .pgpolicy = GROUP_BY_PRIO,
681 .pgfailback = -FAILBACK_IMMEDIATE,
682 .rr_weight = RR_WEIGHT_NONE,
683 .no_path_retry = NO_PATH_RETRY_UNDEF,
685 .checker_name = DIRECTIO,
686 .prio_name = PRIO_NETAPP,
689 * IBM NSeries (NETAPP) controller family
691 * Maintainer : Dave Wysochanski
692 * Mail : davidw@netapp.com
696 .product = "Nseries.*",
697 .getuid = DEFAULT_GETUID,
698 .features = "1 queue_if_no_path",
699 .hwhandler = DEFAULT_HWHANDLER,
700 .selector = DEFAULT_SELECTOR,
701 .pgpolicy = GROUP_BY_PRIO,
702 .pgfailback = -FAILBACK_IMMEDIATE,
703 .rr_weight = RR_WEIGHT_NONE,
704 .no_path_retry = NO_PATH_RETRY_UNDEF,
706 .checker_name = DIRECTIO,
707 .prio_name = PRIO_NETAPP,
710 * Pillar Data controller family
712 * Maintainer : Srinivasan Ramani
713 * Mail : sramani@pillardata.com
717 .product = "Axiom.*",
718 .getuid = DEFAULT_GETUID,
719 .features = DEFAULT_FEATURES,
720 .hwhandler = DEFAULT_HWHANDLER,
721 .selector = DEFAULT_SELECTOR,
722 .pgpolicy = GROUP_BY_PRIO,
723 .pgfailback = FAILBACK_UNDEF,
724 .rr_weight = RR_WEIGHT_NONE,
725 .no_path_retry = NO_PATH_RETRY_UNDEF,
726 .minio = DEFAULT_MINIO,
728 .prio_name = PRIO_ALUA,
733 * Maintainer : Christophe Varoqui
734 * Mail : christophe.varoqui@free.fr
738 .product = "TP9[13]00",
739 .getuid = DEFAULT_GETUID,
740 .features = DEFAULT_FEATURES,
741 .hwhandler = DEFAULT_HWHANDLER,
742 .selector = DEFAULT_SELECTOR,
743 .pgpolicy = MULTIBUS,
744 .pgfailback = FAILBACK_UNDEF,
745 .rr_weight = RR_WEIGHT_NONE,
746 .no_path_retry = NO_PATH_RETRY_UNDEF,
747 .minio = DEFAULT_MINIO,
748 .checker_name = DIRECTIO,
749 .prio_name = DEFAULT_PRIO,
753 .product = "TP9[45]00",
754 .getuid = DEFAULT_GETUID,
755 .features = DEFAULT_FEATURES,
756 .hwhandler = "1 rdac",
757 .selector = DEFAULT_SELECTOR,
758 .pgpolicy = GROUP_BY_PRIO,
759 .pgfailback = -FAILBACK_IMMEDIATE,
760 .rr_weight = RR_WEIGHT_NONE,
761 .no_path_retry = NO_PATH_RETRY_QUEUE,
762 .minio = DEFAULT_MINIO,
763 .checker_name = RDAC,
764 .prio_name = PRIO_RDAC,
769 .getuid = DEFAULT_GETUID,
770 .features = DEFAULT_FEATURES,
771 .hwhandler = "1 rdac",
772 .selector = DEFAULT_SELECTOR,
773 .pgpolicy = GROUP_BY_PRIO,
774 .pgfailback = -FAILBACK_IMMEDIATE,
775 .rr_weight = RR_WEIGHT_NONE,
776 .no_path_retry = NO_PATH_RETRY_QUEUE,
777 .minio = DEFAULT_MINIO,
778 .checker_name = RDAC,
779 .prio_name = PRIO_RDAC,
784 * Maintainer : Christophe Varoqui
785 * Mail : christophe.varoqui@free.fr
789 .product = "OPENstorage D280",
790 .getuid = DEFAULT_GETUID,
791 .features = DEFAULT_FEATURES,
792 .hwhandler = "1 rdac",
793 .selector = DEFAULT_SELECTOR,
794 .pgpolicy = GROUP_BY_PRIO,
795 .pgfailback = -FAILBACK_IMMEDIATE,
796 .rr_weight = RR_WEIGHT_NONE,
797 .no_path_retry = NO_PATH_RETRY_UNDEF,
798 .minio = DEFAULT_MINIO,
800 .prio_name = PRIO_RDAC,
805 * Maintainer : Christophe Varoqui
806 * Mail : christophe.varoqui@free.fr
810 .product = "(StorEdge 3510|T4)",
811 .getuid = DEFAULT_GETUID,
812 .features = DEFAULT_FEATURES,
813 .hwhandler = DEFAULT_HWHANDLER,
814 .selector = DEFAULT_SELECTOR,
815 .pgpolicy = MULTIBUS,
816 .pgfailback = FAILBACK_UNDEF,
817 .rr_weight = RR_WEIGHT_NONE,
818 .no_path_retry = NO_PATH_RETRY_UNDEF,
819 .minio = DEFAULT_MINIO,
820 .checker_name = DIRECTIO,
821 .prio_name = DEFAULT_PRIO,
826 * Maintainer : Bart Brooks, Pivot3
827 * Mail : bartb@pivot3.com
831 .product = "RAIGE VOLUME",
832 .getuid = "/lib/udev/scsi_id --page=0x80 --whitelisted --device=/dev/%n",
833 .features = "1 queue_if_no_path",
834 .hwhandler = DEFAULT_HWHANDLER,
835 .selector = DEFAULT_SELECTOR,
836 .pgpolicy = MULTIBUS,
837 .pgfailback = FAILBACK_UNDEF,
838 .rr_weight = RR_WEIGHT_NONE,
839 .no_path_retry = NO_PATH_RETRY_UNDEF,
842 .prio_name = DEFAULT_PRIO,
846 .product = "CSM200_R",
847 .getuid = DEFAULT_GETUID,
848 .features = DEFAULT_FEATURES,
849 .hwhandler = "1 rdac",
850 .selector = DEFAULT_SELECTOR,
851 .pgpolicy = GROUP_BY_PRIO,
852 .pgfailback = -FAILBACK_IMMEDIATE,
853 .rr_weight = RR_WEIGHT_NONE,
854 .no_path_retry = NO_PATH_RETRY_QUEUE,
855 .minio = DEFAULT_MINIO,
856 .checker_name = RDAC,
857 .prio_name = PRIO_RDAC,
862 .product = "LCSM100_F",
863 .getuid = DEFAULT_GETUID,
864 .features = DEFAULT_FEATURES,
865 .hwhandler = "1 rdac",
866 .selector = DEFAULT_SELECTOR,
867 .pgpolicy = GROUP_BY_PRIO,
868 .pgfailback = -FAILBACK_IMMEDIATE,
869 .rr_weight = RR_WEIGHT_NONE,
870 .no_path_retry = NO_PATH_RETRY_QUEUE,
871 .minio = DEFAULT_MINIO,
872 .checker_name = RDAC,
873 .prio_name = PRIO_RDAC,
875 /* LSI Generic rdac storage */
877 .vendor = "(LSI|ENGENIO)",
878 .product = "INF-01-00",
879 .getuid = DEFAULT_GETUID,
880 .features = "2 pg_init_retries 50",
881 .hwhandler = "1 rdac",
882 .selector = DEFAULT_SELECTOR,
883 .pgpolicy = GROUP_BY_PRIO,
884 .pgfailback = -FAILBACK_IMMEDIATE,
885 .rr_weight = RR_WEIGHT_NONE,
887 .minio = DEFAULT_MINIO,
888 .checker_name = RDAC,
889 .prio_name = PRIO_RDAC,
906 .checker_name = NULL,
912 setup_default_hwtable (vector hw)
915 struct hwentry * hwe = default_hw;
917 while (hwe->vendor) {
918 r += store_hwe(hw, hwe);