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,
125 .minio = DEFAULT_MINIO,
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,
141 .minio = DEFAULT_MINIO,
143 .prio_name = PRIO_ALUA,
147 .product = "MSA2000s*",
148 .getuid = "/sbin/cciss_id %n",
149 .features = DEFAULT_FEATURES,
150 .hwhandler = DEFAULT_HWHANDLER,
151 .selector = DEFAULT_SELECTOR,
152 .pgpolicy = GROUP_BY_PRIO,
153 .pgfailback = -FAILBACK_IMMEDIATE,
154 .rr_weight = RR_WEIGHT_NONE,
156 .minio = DEFAULT_MINIO,
158 .prio_name = DEFAULT_PRIO,
161 /* EVA 3000/5000 with new firmware, EVA 4000/6000/8000 */
162 .vendor = "(COMPAQ|HP)",
163 .product = "HSV1[01]1|HSV2[01]0|HSV300",
164 .getuid = DEFAULT_GETUID,
165 .features = DEFAULT_FEATURES,
166 .hwhandler = DEFAULT_HWHANDLER,
167 .selector = DEFAULT_SELECTOR,
168 .pgpolicy = GROUP_BY_PRIO,
169 .pgfailback = -FAILBACK_IMMEDIATE,
170 .rr_weight = RR_WEIGHT_NONE,
172 .minio = DEFAULT_MINIO,
174 .prio_name = PRIO_ALUA,
177 /* HP MSA2000 product family */
179 .product = "MSA2[02]12*",
180 .getuid = DEFAULT_GETUID,
181 .features = DEFAULT_FEATURES,
182 .hwhandler = DEFAULT_HWHANDLER,
183 .selector = DEFAULT_SELECTOR,
184 .pgpolicy = MULTIBUS,
185 .pgfailback = -FAILBACK_IMMEDIATE,
186 .rr_weight = RR_WEIGHT_NONE,
188 .minio = DEFAULT_MINIO,
190 .prio_name = DEFAULT_PRIO,
195 .product = "LOGICAL VOLUME.*",
196 .getuid = DEFAULT_GETUID,
197 .features = DEFAULT_FEATURES,
198 .hwhandler = DEFAULT_HWHANDLER,
199 .selector = DEFAULT_SELECTOR,
200 .pgpolicy = MULTIBUS,
201 .pgfailback = FAILBACK_UNDEF,
202 .rr_weight = RR_WEIGHT_NONE,
204 .minio = DEFAULT_MINIO,
205 .checker_name = CCISS_TUR,
206 .prio_name = DEFAULT_PRIO,
209 * DDN controller family
211 * Maintainer : Christophe Varoqui
212 * Mail : christophe.varoqui@free.fr
216 .product = "SAN DataDirector",
217 .getuid = DEFAULT_GETUID,
218 .features = DEFAULT_FEATURES,
219 .hwhandler = DEFAULT_HWHANDLER,
220 .selector = DEFAULT_SELECTOR,
221 .pgpolicy = MULTIBUS,
222 .pgfailback = FAILBACK_UNDEF,
223 .rr_weight = RR_WEIGHT_NONE,
224 .no_path_retry = NO_PATH_RETRY_UNDEF,
225 .minio = DEFAULT_MINIO,
226 .checker_name = DIRECTIO,
227 .prio_name = DEFAULT_PRIO,
230 * EMC / Clariion controller family
232 * Maintainer : Edward Goggin, EMC
233 * Mail : egoggin@emc.com
237 .product = "SYMMETRIX",
238 .getuid = "/lib/udev/scsi_id --page=pre-spc3-83 --whitelisted --device=/dev/%n",
239 .features = DEFAULT_FEATURES,
240 .hwhandler = DEFAULT_HWHANDLER,
241 .selector = DEFAULT_SELECTOR,
242 .pgpolicy = MULTIBUS,
243 .pgfailback = FAILBACK_UNDEF,
244 .rr_weight = RR_WEIGHT_NONE,
245 .no_path_retry = NO_PATH_RETRY_UNDEF,
246 .minio = DEFAULT_MINIO,
247 .checker_name = DIRECTIO,
248 .prio_name = DEFAULT_PRIO,
253 .bl_product = "LUNZ",
254 .getuid = DEFAULT_GETUID,
255 .features = "1 queue_if_no_path",
256 .hwhandler = "1 emc",
257 .selector = DEFAULT_SELECTOR,
258 .pgpolicy = GROUP_BY_PRIO,
259 .pgfailback = -FAILBACK_IMMEDIATE,
260 .rr_weight = RR_WEIGHT_NONE,
261 .no_path_retry = (300 / DEFAULT_CHECKINT),
262 .minio = DEFAULT_MINIO,
263 .checker_name = EMC_CLARIION,
264 .prio_name = PRIO_EMC,
267 * Fujitsu controller family
269 * Maintainer : Christophe Varoqui
270 * Mail : christophe.varoqui@free.fr
274 .product = "CentricStor",
275 .getuid = DEFAULT_GETUID,
276 .features = DEFAULT_FEATURES,
277 .hwhandler = DEFAULT_HWHANDLER,
278 .selector = DEFAULT_SELECTOR,
279 .pgpolicy = GROUP_BY_SERIAL,
280 .pgfailback = FAILBACK_UNDEF,
281 .rr_weight = RR_WEIGHT_NONE,
282 .no_path_retry = NO_PATH_RETRY_UNDEF,
283 .minio = DEFAULT_MINIO,
284 .checker_name = DIRECTIO,
285 .prio_name = DEFAULT_PRIO,
288 * Hitachi controller family
290 * Maintainer : Matthias Rudolph
291 * Mail : matthias.rudolph@hds.com
294 .vendor = "(HITACHI|HP)",
295 .product = "OPEN-.*",
296 .getuid = DEFAULT_GETUID,
297 .features = "1 queue_if_no_path",
298 .hwhandler = DEFAULT_HWHANDLER,
299 .selector = DEFAULT_SELECTOR,
300 .pgpolicy = MULTIBUS,
301 .pgfailback = FAILBACK_UNDEF,
302 .rr_weight = RR_WEIGHT_NONE,
303 .no_path_retry = NO_PATH_RETRY_UNDEF,
304 .minio = DEFAULT_MINIO,
306 .prio_name = DEFAULT_PRIO,
311 .getuid = DEFAULT_GETUID,
312 .features = "1 queue_if_no_path",
313 .hwhandler = DEFAULT_HWHANDLER,
314 .selector = DEFAULT_SELECTOR,
315 .pgpolicy = GROUP_BY_PRIO,
316 .pgfailback = -FAILBACK_IMMEDIATE,
317 .rr_weight = RR_WEIGHT_NONE,
318 .no_path_retry = NO_PATH_RETRY_UNDEF,
319 .minio = DEFAULT_MINIO,
321 .prio_name = PRIO_HDS,
324 * IBM controller family
326 * Maintainer : Hannes Reinecke, SuSE
327 * Mail : hare@suse.de
331 .product = "ProFibre 4000R",
332 .getuid = DEFAULT_GETUID,
333 .features = DEFAULT_FEATURES,
334 .hwhandler = DEFAULT_HWHANDLER,
335 .selector = DEFAULT_SELECTOR,
336 .pgpolicy = MULTIBUS,
337 .pgfailback = FAILBACK_UNDEF,
338 .rr_weight = RR_WEIGHT_NONE,
339 .no_path_retry = NO_PATH_RETRY_UNDEF,
340 .minio = DEFAULT_MINIO,
341 .checker_name = DIRECTIO,
342 .prio_name = DEFAULT_PRIO,
345 /* IBM FAStT 1722-600 */
347 .product = "1722-600",
348 .getuid = DEFAULT_GETUID,
349 .features = "1 queue_if_no_path",
350 .hwhandler = "1 rdac",
351 .selector = DEFAULT_SELECTOR,
352 .pgpolicy = GROUP_BY_PRIO,
353 .pgfailback = -FAILBACK_IMMEDIATE,
354 .rr_weight = RR_WEIGHT_NONE,
355 .no_path_retry = 300,
356 .minio = DEFAULT_MINIO,
357 .checker_name = RDAC,
358 .prio_name = PRIO_RDAC,
364 .getuid = DEFAULT_GETUID,
365 .features = "1 queue_if_no_path",
366 .hwhandler = "1 rdac",
367 .selector = DEFAULT_SELECTOR,
368 .pgpolicy = GROUP_BY_PRIO,
369 .pgfailback = -FAILBACK_IMMEDIATE,
370 .rr_weight = RR_WEIGHT_NONE,
371 .no_path_retry = 300,
372 .minio = DEFAULT_MINIO,
373 .checker_name = RDAC,
374 .prio_name = PRIO_RDAC,
377 /* IBM DS3200 / DS3300 / DS3400 */
380 .getuid = DEFAULT_GETUID,
381 .features = "1 queue_if_no_path",
382 .hwhandler = "1 rdac",
383 .selector = DEFAULT_SELECTOR,
384 .pgpolicy = GROUP_BY_PRIO,
385 .pgfailback = -FAILBACK_IMMEDIATE,
386 .rr_weight = RR_WEIGHT_NONE,
387 .no_path_retry = 300,
388 .minio = DEFAULT_MINIO,
389 .checker_name = RDAC,
390 .prio_name = PRIO_RDAC,
393 /* IBM DS4400 / DS4500 / FAStT700 */
396 .getuid = DEFAULT_GETUID,
397 .features = DEFAULT_FEATURES,
398 .hwhandler = "1 rdac",
399 .selector = DEFAULT_SELECTOR,
400 .pgpolicy = GROUP_BY_PRIO,
401 .pgfailback = -FAILBACK_IMMEDIATE,
402 .rr_weight = RR_WEIGHT_NONE,
403 .no_path_retry = NO_PATH_RETRY_QUEUE,
404 .minio = DEFAULT_MINIO,
405 .checker_name = RDAC,
406 .prio_name = PRIO_RDAC,
412 .getuid = DEFAULT_GETUID,
413 .features = DEFAULT_FEATURES,
414 .hwhandler = "1 rdac",
415 .selector = DEFAULT_SELECTOR,
416 .pgpolicy = GROUP_BY_PRIO,
417 .pgfailback = -FAILBACK_IMMEDIATE,
418 .rr_weight = RR_WEIGHT_NONE,
419 .no_path_retry = NO_PATH_RETRY_QUEUE,
420 .minio = DEFAULT_MINIO,
421 .checker_name = RDAC,
422 .prio_name = PRIO_RDAC,
428 .getuid = DEFAULT_GETUID,
429 .features = DEFAULT_FEATURES,
430 .hwhandler = "1 rdac",
431 .selector = DEFAULT_SELECTOR,
432 .pgpolicy = GROUP_BY_PRIO,
433 .pgfailback = -FAILBACK_IMMEDIATE,
434 .rr_weight = RR_WEIGHT_NONE,
435 .no_path_retry = NO_PATH_RETRY_QUEUE,
436 .minio = DEFAULT_MINIO,
437 .checker_name = RDAC,
438 .prio_name = PRIO_RDAC,
444 .getuid = DEFAULT_GETUID,
445 .features = DEFAULT_FEATURES,
446 .hwhandler = "1 rdac",
447 .selector = DEFAULT_SELECTOR,
448 .pgpolicy = GROUP_BY_PRIO,
449 .pgfailback = -FAILBACK_IMMEDIATE,
450 .rr_weight = RR_WEIGHT_NONE,
451 .no_path_retry = NO_PATH_RETRY_QUEUE,
452 .minio = DEFAULT_MINIO,
453 .checker_name = RDAC,
454 .prio_name = PRIO_RDAC,
457 /* IBM Netfinity Fibre Channel RAID Controller Unit */
460 .getuid = DEFAULT_GETUID,
461 .features = DEFAULT_FEATURES,
462 .hwhandler = "1 rdac",
463 .selector = DEFAULT_SELECTOR,
464 .pgpolicy = GROUP_BY_PRIO,
465 .pgfailback = -FAILBACK_IMMEDIATE,
466 .rr_weight = RR_WEIGHT_NONE,
467 .no_path_retry = NO_PATH_RETRY_QUEUE,
468 .minio = DEFAULT_MINIO,
469 .checker_name = RDAC,
470 .prio_name = PRIO_RDAC,
473 /* IBM DS4200 / FAStT200 */
476 .getuid = DEFAULT_GETUID,
477 .features = DEFAULT_FEATURES,
478 .hwhandler = DEFAULT_HWHANDLER,
479 .selector = DEFAULT_SELECTOR,
480 .pgpolicy = GROUP_BY_SERIAL,
481 .pgfailback = FAILBACK_UNDEF,
482 .rr_weight = RR_WEIGHT_NONE,
483 .no_path_retry = NO_PATH_RETRY_UNDEF,
484 .minio = DEFAULT_MINIO,
486 .prio_name = DEFAULT_PRIO,
489 /* IBM ESS F20 aka Shark */
491 .product = "2105(800|F20)",
492 .getuid = DEFAULT_GETUID,
493 .features = "1 queue_if_no_path",
494 .hwhandler = DEFAULT_HWHANDLER,
495 .selector = DEFAULT_SELECTOR,
496 .pgpolicy = GROUP_BY_SERIAL,
497 .pgfailback = FAILBACK_UNDEF,
498 .rr_weight = RR_WEIGHT_NONE,
499 .no_path_retry = NO_PATH_RETRY_UNDEF,
500 .minio = DEFAULT_MINIO,
502 .prio_name = DEFAULT_PRIO,
507 .product = "1750500",
508 .getuid = DEFAULT_GETUID,
509 .features = "1 queue_if_no_path",
510 .hwhandler = DEFAULT_HWHANDLER,
511 .selector = DEFAULT_SELECTOR,
512 .pgpolicy = GROUP_BY_PRIO,
513 .pgfailback = -FAILBACK_IMMEDIATE,
514 .rr_weight = RR_WEIGHT_NONE,
515 .no_path_retry = NO_PATH_RETRY_UNDEF,
516 .minio = DEFAULT_MINIO,
518 .prio_name = PRIO_ALUA,
523 .product = "2107900",
524 .getuid = DEFAULT_GETUID,
525 .features = "1 queue_if_no_path",
526 .hwhandler = DEFAULT_HWHANDLER,
527 .selector = DEFAULT_SELECTOR,
528 .pgpolicy = MULTIBUS,
529 .pgfailback = FAILBACK_UNDEF,
530 .rr_weight = RR_WEIGHT_NONE,
531 .no_path_retry = NO_PATH_RETRY_UNDEF,
532 .minio = DEFAULT_MINIO,
534 .prio_name = DEFAULT_PRIO,
537 /* IBM SAN Volume Controller */
540 .getuid = DEFAULT_GETUID,
541 .features = "1 queue_if_no_path",
542 .hwhandler = DEFAULT_HWHANDLER,
543 .selector = DEFAULT_SELECTOR,
544 .pgpolicy = GROUP_BY_PRIO,
545 .pgfailback = -FAILBACK_IMMEDIATE,
546 .rr_weight = RR_WEIGHT_NONE,
547 .no_path_retry = NO_PATH_RETRY_UNDEF,
548 .minio = DEFAULT_MINIO,
550 .prio_name = PRIO_ALUA,
553 /* IBM S/390 ECKD DASD */
555 .product = "S/390 DASD ECKD",
556 .bl_product = "S/390.*",
557 .getuid = "/sbin/dasdinfo -u -b %n",
558 .features = "1 queue_if_no_path",
559 .hwhandler = DEFAULT_HWHANDLER,
560 .selector = DEFAULT_SELECTOR,
561 .pgpolicy = MULTIBUS,
562 .pgfailback = FAILBACK_UNDEF,
563 .rr_weight = RR_WEIGHT_NONE,
564 .no_path_retry = NO_PATH_RETRY_UNDEF,
565 .minio = DEFAULT_MINIO,
566 .checker_name = DIRECTIO,
567 .prio_name = DEFAULT_PRIO,
570 /* IBM S/390 FBA DASD */
572 .product = "S/390 DASD FBA",
573 .bl_product = "S/390.*",
574 .getuid = "/sbin/dasdinfo -u -b %n",
575 .features = "1 queue_if_no_path",
576 .hwhandler = DEFAULT_HWHANDLER,
577 .selector = DEFAULT_SELECTOR,
578 .pgpolicy = MULTIBUS,
579 .pgfailback = FAILBACK_UNDEF,
580 .rr_weight = RR_WEIGHT_NONE,
581 .no_path_retry = NO_PATH_RETRY_UNDEF,
582 .minio = DEFAULT_MINIO,
583 .checker_name = DIRECTIO,
584 .prio_name = DEFAULT_PRIO,
590 .getuid = DEFAULT_GETUID,
591 .features = "1 queue_if_no_path",
592 .hwhandler = "1 alua",
593 .selector = DEFAULT_SELECTOR,
594 .pgpolicy = GROUP_BY_PRIO,
595 .pgfailback = -FAILBACK_IMMEDIATE,
596 .rr_weight = RR_WEIGHT_NONE,
597 .no_path_retry = NO_PATH_RETRY_UNDEF,
598 .minio = DEFAULT_MINIO,
600 .prio_name = PRIO_ALUA,
606 .getuid = DEFAULT_GETUID,
607 .features = "1 queue_if_no_path",
608 .hwhandler = "1 rdac",
609 .selector = DEFAULT_SELECTOR,
610 .pgpolicy = GROUP_BY_PRIO,
611 .pgfailback = -FAILBACK_IMMEDIATE,
612 .rr_weight = RR_WEIGHT_NONE,
613 .minio = DEFAULT_MINIO,
614 .checker_name = RDAC,
615 .prio_name = PRIO_RDAC,
620 .product = "MD3000i",
621 .getuid = DEFAULT_GETUID,
622 .features = "1 queue_if_no_path",
623 .hwhandler = "1 rdac",
624 .selector = DEFAULT_SELECTOR,
625 .pgpolicy = GROUP_BY_PRIO,
626 .pgfailback = -FAILBACK_IMMEDIATE,
627 .rr_weight = RR_WEIGHT_NONE,
628 .minio = DEFAULT_MINIO,
629 .checker_name = RDAC,
630 .prio_name = PRIO_RDAC,
633 * NETAPP controller family
635 * Maintainer : Dave Wysochanski
636 * Mail : davidw@netapp.com
641 .getuid = DEFAULT_GETUID,
642 .features = "1 queue_if_no_path",
643 .hwhandler = DEFAULT_HWHANDLER,
644 .selector = DEFAULT_SELECTOR,
645 .pgpolicy = GROUP_BY_PRIO,
646 .pgfailback = -FAILBACK_IMMEDIATE,
647 .rr_weight = RR_WEIGHT_NONE,
648 .no_path_retry = NO_PATH_RETRY_UNDEF,
650 .checker_name = DIRECTIO,
651 .prio_name = PRIO_NETAPP,
654 * IBM NSeries (NETAPP) controller family
656 * Maintainer : Dave Wysochanski
657 * Mail : davidw@netapp.com
661 .product = "Nseries.*",
662 .getuid = DEFAULT_GETUID,
663 .features = "1 queue_if_no_path",
664 .hwhandler = DEFAULT_HWHANDLER,
665 .selector = DEFAULT_SELECTOR,
666 .pgpolicy = GROUP_BY_PRIO,
667 .pgfailback = -FAILBACK_IMMEDIATE,
668 .rr_weight = RR_WEIGHT_NONE,
669 .no_path_retry = NO_PATH_RETRY_UNDEF,
671 .checker_name = DIRECTIO,
672 .prio_name = PRIO_NETAPP,
675 * Pillar Data controller family
677 * Maintainer : Srinivasan Ramani
678 * Mail : sramani@pillardata.com
682 .product = "Axiom.*",
683 .getuid = DEFAULT_GETUID,
684 .features = DEFAULT_FEATURES,
685 .hwhandler = DEFAULT_HWHANDLER,
686 .selector = DEFAULT_SELECTOR,
687 .pgpolicy = GROUP_BY_PRIO,
688 .pgfailback = FAILBACK_UNDEF,
689 .rr_weight = RR_WEIGHT_NONE,
690 .no_path_retry = NO_PATH_RETRY_UNDEF,
691 .minio = DEFAULT_MINIO,
693 .prio_name = PRIO_ALUA,
698 * Maintainer : Christophe Varoqui
699 * Mail : christophe.varoqui@free.fr
703 .product = "TP9[13]00",
704 .getuid = DEFAULT_GETUID,
705 .features = DEFAULT_FEATURES,
706 .hwhandler = DEFAULT_HWHANDLER,
707 .selector = DEFAULT_SELECTOR,
708 .pgpolicy = MULTIBUS,
709 .pgfailback = FAILBACK_UNDEF,
710 .rr_weight = RR_WEIGHT_NONE,
711 .no_path_retry = NO_PATH_RETRY_UNDEF,
712 .minio = DEFAULT_MINIO,
713 .checker_name = DIRECTIO,
714 .prio_name = DEFAULT_PRIO,
718 .product = "TP9[45]00",
719 .getuid = DEFAULT_GETUID,
720 .features = DEFAULT_FEATURES,
721 .hwhandler = "1 rdac",
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_QUEUE,
727 .minio = DEFAULT_MINIO,
728 .checker_name = RDAC,
729 .prio_name = PRIO_RDAC,
734 .getuid = DEFAULT_GETUID,
735 .features = DEFAULT_FEATURES,
736 .hwhandler = "1 rdac",
737 .selector = DEFAULT_SELECTOR,
738 .pgpolicy = GROUP_BY_PRIO,
739 .pgfailback = -FAILBACK_IMMEDIATE,
740 .rr_weight = RR_WEIGHT_NONE,
741 .no_path_retry = NO_PATH_RETRY_QUEUE,
742 .minio = DEFAULT_MINIO,
743 .checker_name = RDAC,
744 .prio_name = PRIO_RDAC,
749 * Maintainer : Christophe Varoqui
750 * Mail : christophe.varoqui@free.fr
754 .product = "OPENstorage D280",
755 .getuid = DEFAULT_GETUID,
756 .features = DEFAULT_FEATURES,
757 .hwhandler = "1 rdac",
758 .selector = DEFAULT_SELECTOR,
759 .pgpolicy = GROUP_BY_PRIO,
760 .pgfailback = -FAILBACK_IMMEDIATE,
761 .rr_weight = RR_WEIGHT_NONE,
762 .no_path_retry = NO_PATH_RETRY_UNDEF,
763 .minio = DEFAULT_MINIO,
765 .prio_name = PRIO_RDAC,
770 * Maintainer : Christophe Varoqui
771 * Mail : christophe.varoqui@free.fr
775 .product = "(StorEdge 3510|T4)",
776 .getuid = DEFAULT_GETUID,
777 .features = DEFAULT_FEATURES,
778 .hwhandler = DEFAULT_HWHANDLER,
779 .selector = DEFAULT_SELECTOR,
780 .pgpolicy = MULTIBUS,
781 .pgfailback = FAILBACK_UNDEF,
782 .rr_weight = RR_WEIGHT_NONE,
783 .no_path_retry = NO_PATH_RETRY_UNDEF,
784 .minio = DEFAULT_MINIO,
785 .checker_name = DIRECTIO,
786 .prio_name = DEFAULT_PRIO,
791 * Maintainer : Bart Brooks, Pivot3
792 * Mail : bartb@pivot3.com
796 .product = "RAIGE VOLUME",
797 .getuid = "/lib/udev/scsi_id --page=0x80 --whitelisted --device=/dev/%n",
798 .features = "1 queue_if_no_path",
799 .hwhandler = DEFAULT_HWHANDLER,
800 .selector = DEFAULT_SELECTOR,
801 .pgpolicy = MULTIBUS,
802 .pgfailback = FAILBACK_UNDEF,
803 .rr_weight = RR_WEIGHT_NONE,
804 .no_path_retry = NO_PATH_RETRY_UNDEF,
807 .prio_name = DEFAULT_PRIO,
811 .product = "CSM200_R",
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_QUEUE,
820 .minio = DEFAULT_MINIO,
821 .checker_name = RDAC,
822 .prio_name = PRIO_RDAC,
827 .product = "LCSM100_F",
828 .getuid = DEFAULT_GETUID,
829 .features = DEFAULT_FEATURES,
830 .hwhandler = "1 rdac",
831 .selector = DEFAULT_SELECTOR,
832 .pgpolicy = GROUP_BY_PRIO,
833 .pgfailback = -FAILBACK_IMMEDIATE,
834 .rr_weight = RR_WEIGHT_NONE,
835 .no_path_retry = NO_PATH_RETRY_QUEUE,
836 .minio = DEFAULT_MINIO,
837 .checker_name = RDAC,
838 .prio_name = PRIO_RDAC,
840 /* LSI Generic rdac storage */
842 .vendor = "(LSI|ENGENIO)",
843 .product = "INF-01-00",
844 .getuid = DEFAULT_GETUID,
845 .features = "2 pg_init_retries 50",
846 .hwhandler = "1 rdac",
847 .selector = DEFAULT_SELECTOR,
848 .pgpolicy = GROUP_BY_PRIO,
849 .pgfailback = -FAILBACK_IMMEDIATE,
850 .rr_weight = RR_WEIGHT_NONE,
852 .minio = DEFAULT_MINIO,
853 .checker_name = RDAC,
854 .prio_name = PRIO_RDAC,
871 .checker_name = NULL,
877 setup_default_hwtable (vector hw)
880 struct hwentry * hwe = default_hw;
882 while (hwe->vendor) {
883 r += store_hwe(hw, hwe);