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 .features = DEFAULT_FEATURES,
30 .hwhandler = DEFAULT_HWHANDLER,
31 .selector = DEFAULT_SELECTOR,
33 .pgfailback = -FAILBACK_IMMEDIATE,
34 .rr_weight = RR_WEIGHT_NONE,
35 .no_path_retry = NO_PATH_RETRY_QUEUE,
36 .minio = DEFAULT_MINIO,
37 .minio_rq = DEFAULT_MINIO_RQ,
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 .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 .minio_rq = DEFAULT_MINIO_RQ,
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 .features = DEFAULT_FEATURES,
74 .hwhandler = DEFAULT_HWHANDLER,
75 .selector = DEFAULT_SELECTOR,
77 .pgfailback = FAILBACK_UNDEF,
78 .rr_weight = RR_WEIGHT_NONE,
79 .no_path_retry = NO_PATH_RETRY_UNDEF,
80 .minio = DEFAULT_MINIO,
81 .minio_rq = DEFAULT_MINIO_RQ,
82 .checker_name = DEFAULT_CHECKER,
83 .prio_name = DEFAULT_PRIO,
89 .features = "1 queue_if_no_path",
90 .hwhandler = "1 hp_sw",
91 .selector = DEFAULT_SELECTOR,
92 .pgpolicy = GROUP_BY_PRIO,
93 .pgfailback = FAILBACK_UNDEF,
94 .rr_weight = RR_WEIGHT_NONE,
95 .no_path_retry = NO_PATH_RETRY_UNDEF,
96 .minio = DEFAULT_MINIO,
97 .minio_rq = DEFAULT_MINIO_RQ,
98 .checker_name = HP_SW,
99 .prio_name = PRIO_HP_SW,
105 .features = DEFAULT_FEATURES,
106 .hwhandler = DEFAULT_HWHANDLER,
107 .selector = DEFAULT_SELECTOR,
108 .pgpolicy = MULTIBUS,
109 .pgfailback = FAILBACK_UNDEF,
110 .rr_weight = RR_WEIGHT_NONE,
112 .minio = DEFAULT_MINIO,
113 .minio_rq = DEFAULT_MINIO_RQ,
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 .features = "1 queue_if_no_path",
123 .hwhandler = "1 hp_sw",
124 .selector = DEFAULT_SELECTOR,
125 .pgpolicy = GROUP_BY_PRIO,
126 .pgfailback = FAILBACK_UNDEF,
127 .rr_weight = RR_WEIGHT_NONE,
130 .checker_name = HP_SW,
131 .prio_name = PRIO_HP_SW,
135 /* MSA 1000/1500 with new firmware */
136 .vendor = "(COMPAQ|HP)",
137 .product = "MSA VOLUME",
138 .features = DEFAULT_FEATURES,
139 .hwhandler = DEFAULT_HWHANDLER,
140 .selector = DEFAULT_SELECTOR,
141 .pgpolicy = GROUP_BY_PRIO,
142 .pgfailback = -FAILBACK_IMMEDIATE,
143 .rr_weight = RR_WEIGHT_NONE,
147 .prio_name = PRIO_ALUA,
151 /* EVA 3000/5000 with new firmware, EVA 4000/6000/8000 */
152 .vendor = "(COMPAQ|HP)",
153 .product = "HSV1[01]1|HSV2[01]0|HSV300|HSV4[05]0",
154 .features = DEFAULT_FEATURES,
155 .hwhandler = DEFAULT_HWHANDLER,
156 .selector = DEFAULT_SELECTOR,
157 .pgpolicy = GROUP_BY_PRIO,
158 .pgfailback = -FAILBACK_IMMEDIATE,
159 .rr_weight = RR_WEIGHT_NONE,
163 .prio_name = PRIO_ALUA,
167 /* HP MSA2000 product family with old firmware */
169 .product = "MSA2[02]12fc|MSA2012i",
170 .features = DEFAULT_FEATURES,
171 .hwhandler = DEFAULT_HWHANDLER,
172 .selector = DEFAULT_SELECTOR,
173 .pgpolicy = MULTIBUS,
174 .pgfailback = -FAILBACK_IMMEDIATE,
175 .rr_weight = RR_WEIGHT_NONE,
179 .prio_name = DEFAULT_PRIO,
183 /* HP MSA2000 product family with new firmware */
185 .product = "MSA2012sa|MSA23(12|24)(fc|i|sa)|MSA2000s VOLUME",
186 .features = DEFAULT_FEATURES,
187 .hwhandler = DEFAULT_HWHANDLER,
188 .selector = DEFAULT_SELECTOR,
189 .pgpolicy = GROUP_BY_PRIO,
190 .pgfailback = -FAILBACK_IMMEDIATE,
191 .rr_weight = RR_WEIGHT_NONE,
195 .prio_name = PRIO_ALUA,
202 .product = "HSVX700",
203 .features = DEFAULT_FEATURES,
204 .hwhandler = "1 alua",
205 .selector = DEFAULT_SELECTOR,
206 .pgpolicy = GROUP_BY_PRIO,
207 .pgfailback = -FAILBACK_IMMEDIATE,
208 .rr_weight = RR_WEIGHT_NONE,
212 .prio_name = PRIO_ALUA,
219 .product = "LOGICAL VOLUME.*",
220 .features = DEFAULT_FEATURES,
221 .hwhandler = DEFAULT_HWHANDLER,
222 .selector = DEFAULT_SELECTOR,
223 .pgpolicy = MULTIBUS,
224 .pgfailback = FAILBACK_UNDEF,
225 .rr_weight = RR_WEIGHT_NONE,
227 .minio = DEFAULT_MINIO,
228 .minio_rq = DEFAULT_MINIO_RQ,
230 .prio_name = DEFAULT_PRIO,
234 /* HP P2000 family arrays */
236 .product = "P2000 G3 FC|P2000G3 FC/iSCSI|P2000 G3 SAS|P2000 G3 iSCSI",
237 .features = DEFAULT_FEATURES,
238 .hwhandler = DEFAULT_HWHANDLER,
239 .selector = DEFAULT_SELECTOR,
240 .pgpolicy = GROUP_BY_PRIO,
241 .pgfailback = -FAILBACK_IMMEDIATE,
242 .rr_weight = RR_WEIGHT_NONE,
245 .minio_rq = DEFAULT_MINIO_RQ,
247 .prio_name = PRIO_ALUA,
251 * DDN controller family
253 * Maintainer : Christophe Varoqui
254 * Mail : christophe.varoqui@opensvc.com
258 .product = "SAN DataDirector",
259 .features = DEFAULT_FEATURES,
260 .hwhandler = DEFAULT_HWHANDLER,
261 .selector = DEFAULT_SELECTOR,
262 .pgpolicy = MULTIBUS,
263 .pgfailback = FAILBACK_UNDEF,
264 .rr_weight = RR_WEIGHT_NONE,
265 .no_path_retry = NO_PATH_RETRY_UNDEF,
266 .minio = DEFAULT_MINIO,
267 .minio_rq = DEFAULT_MINIO_RQ,
268 .checker_name = DIRECTIO,
269 .prio_name = DEFAULT_PRIO,
273 * EMC / Clariion controller family
275 * Maintainer : Edward Goggin, EMC
276 * Mail : egoggin@emc.com
280 .product = "SYMMETRIX",
281 .features = DEFAULT_FEATURES,
282 .hwhandler = DEFAULT_HWHANDLER,
283 .selector = DEFAULT_SELECTOR,
284 .pgpolicy = MULTIBUS,
285 .pgfailback = FAILBACK_UNDEF,
286 .rr_weight = RR_WEIGHT_NONE,
288 .minio = DEFAULT_MINIO,
289 .minio_rq = DEFAULT_MINIO_RQ,
291 .prio_name = DEFAULT_PRIO,
297 .bl_product = "LUNZ",
298 .features = "1 queue_if_no_path",
299 .hwhandler = "1 emc",
300 .selector = DEFAULT_SELECTOR,
301 .pgpolicy = GROUP_BY_PRIO,
302 .pgfailback = -FAILBACK_IMMEDIATE,
303 .rr_weight = RR_WEIGHT_NONE,
304 .no_path_retry = (300 / DEFAULT_CHECKINT),
305 .minio = DEFAULT_MINIO,
306 .minio_rq = DEFAULT_MINIO_RQ,
307 .checker_name = EMC_CLARIION,
308 .prio_name = PRIO_EMC,
313 .product = "Invista",
314 .bl_product = "LUNZ",
315 .features = DEFAULT_FEATURES,
316 .hwhandler = DEFAULT_HWHANDLER,
317 .selector = DEFAULT_SELECTOR,
318 .pgpolicy = MULTIBUS,
319 .pgfailback = FAILBACK_UNDEF,
320 .rr_weight = RR_WEIGHT_NONE,
322 .minio = DEFAULT_MINIO,
323 .minio_rq = DEFAULT_MINIO_RQ,
325 .prio_name = DEFAULT_PRIO,
329 * Fujitsu controller family
331 * Maintainer : Christophe Varoqui
332 * Mail : christophe.varoqui@opensvc.com
336 .product = "CentricStor",
337 .features = DEFAULT_FEATURES,
338 .hwhandler = DEFAULT_HWHANDLER,
339 .selector = DEFAULT_SELECTOR,
340 .pgpolicy = GROUP_BY_SERIAL,
341 .pgfailback = FAILBACK_UNDEF,
342 .rr_weight = RR_WEIGHT_NONE,
343 .no_path_retry = NO_PATH_RETRY_UNDEF,
344 .minio = DEFAULT_MINIO,
345 .minio_rq = DEFAULT_MINIO_RQ,
346 .checker_name = DIRECTIO,
347 .prio_name = DEFAULT_PRIO,
352 .product = "ETERNUS_DX(L|400|8000)",
353 .features = "1 queue_if_no_path",
354 .hwhandler = DEFAULT_HWHANDLER,
355 .selector = DEFAULT_SELECTOR,
356 .pgpolicy = GROUP_BY_PRIO,
357 .pgfailback = -FAILBACK_IMMEDIATE,
358 .rr_weight = RR_WEIGHT_NONE,
360 .minio = DEFAULT_MINIO,
362 .prio_name = PRIO_ALUA,
366 * Hitachi controller family
368 * Maintainer : Matthias Rudolph
369 * Mail : matthias.rudolph@hds.com
372 .vendor = "(HITACHI|HP)",
373 .product = "OPEN-.*",
374 .features = DEFAULT_FEATURES,
375 .hwhandler = DEFAULT_HWHANDLER,
376 .selector = DEFAULT_SELECTOR,
377 .pgpolicy = MULTIBUS,
378 .pgfailback = FAILBACK_UNDEF,
379 .rr_weight = RR_WEIGHT_NONE,
380 .no_path_retry = NO_PATH_RETRY_UNDEF,
381 .minio = DEFAULT_MINIO,
382 .minio_rq = DEFAULT_MINIO_RQ,
384 .prio_name = DEFAULT_PRIO,
390 .features = "1 queue_if_no_path",
391 .hwhandler = DEFAULT_HWHANDLER,
392 .selector = DEFAULT_SELECTOR,
393 .pgpolicy = GROUP_BY_PRIO,
394 .pgfailback = -FAILBACK_IMMEDIATE,
395 .rr_weight = RR_WEIGHT_NONE,
396 .no_path_retry = NO_PATH_RETRY_UNDEF,
397 .minio = DEFAULT_MINIO,
398 .minio_rq = DEFAULT_MINIO_RQ,
400 .prio_name = PRIO_HDS,
404 * IBM controller family
406 * Maintainer : Hannes Reinecke, SuSE
407 * Mail : hare@suse.de
411 .product = "ProFibre 4000R",
412 .features = DEFAULT_FEATURES,
413 .hwhandler = DEFAULT_HWHANDLER,
414 .selector = DEFAULT_SELECTOR,
415 .pgpolicy = MULTIBUS,
416 .pgfailback = FAILBACK_UNDEF,
417 .rr_weight = RR_WEIGHT_NONE,
418 .no_path_retry = NO_PATH_RETRY_UNDEF,
419 .minio = DEFAULT_MINIO,
420 .minio_rq = DEFAULT_MINIO_RQ,
421 .checker_name = DIRECTIO,
422 .prio_name = DEFAULT_PRIO,
426 /* IBM FAStT 1722-600 */
428 .product = "^1722-600",
429 .bl_product = "Universal Xport",
430 .features = "1 queue_if_no_path",
431 .hwhandler = "1 rdac",
432 .selector = DEFAULT_SELECTOR,
433 .pgpolicy = GROUP_BY_PRIO,
434 .pgfailback = -FAILBACK_IMMEDIATE,
435 .rr_weight = RR_WEIGHT_NONE,
436 .no_path_retry = 300,
437 .minio = DEFAULT_MINIO,
438 .minio_rq = DEFAULT_MINIO_RQ,
439 .checker_name = RDAC,
440 .prio_name = PRIO_RDAC,
447 .bl_product = "Universal Xport",
448 .features = "1 queue_if_no_path",
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 = 300,
455 .minio = DEFAULT_MINIO,
456 .minio_rq = DEFAULT_MINIO_RQ,
457 .checker_name = RDAC,
458 .prio_name = PRIO_RDAC,
462 /* IBM DS3200 / DS3300 / DS3400 */
465 .bl_product = "Universal Xport",
466 .features = "1 queue_if_no_path",
467 .hwhandler = "1 rdac",
468 .selector = DEFAULT_SELECTOR,
469 .pgpolicy = GROUP_BY_PRIO,
470 .pgfailback = -FAILBACK_IMMEDIATE,
471 .rr_weight = RR_WEIGHT_NONE,
472 .no_path_retry = 300,
473 .minio = DEFAULT_MINIO,
474 .minio_rq = DEFAULT_MINIO_RQ,
475 .checker_name = RDAC,
476 .prio_name = PRIO_RDAC,
480 /* IBM DS4400 / DS4500 / FAStT700 */
483 .bl_product = "Universal Xport",
484 .features = DEFAULT_FEATURES,
485 .hwhandler = "1 rdac",
486 .selector = DEFAULT_SELECTOR,
487 .pgpolicy = GROUP_BY_PRIO,
488 .pgfailback = -FAILBACK_IMMEDIATE,
489 .rr_weight = RR_WEIGHT_NONE,
490 .no_path_retry = NO_PATH_RETRY_QUEUE,
491 .minio = DEFAULT_MINIO,
492 .minio_rq = DEFAULT_MINIO_RQ,
493 .checker_name = RDAC,
494 .prio_name = PRIO_RDAC,
499 .product = "^1745|^1746",
500 .bl_product = "Universal Xport",
501 .features = "2 pg_init_retries 50",
502 .hwhandler = "1 rdac",
503 .selector = DEFAULT_SELECTOR,
504 .pgpolicy = GROUP_BY_PRIO,
505 .pgfailback = -FAILBACK_IMMEDIATE,
506 .rr_weight = RR_WEIGHT_NONE,
508 .minio = DEFAULT_MINIO,
509 .minio_rq = DEFAULT_MINIO_RQ,
510 .checker_name = RDAC,
511 .prio_name = PRIO_RDAC,
518 .bl_product = "Universal Xport",
519 .features = DEFAULT_FEATURES,
520 .hwhandler = "1 rdac",
521 .selector = DEFAULT_SELECTOR,
522 .pgpolicy = GROUP_BY_PRIO,
523 .pgfailback = -FAILBACK_IMMEDIATE,
524 .rr_weight = RR_WEIGHT_NONE,
525 .no_path_retry = NO_PATH_RETRY_QUEUE,
526 .minio = DEFAULT_MINIO,
527 .minio_rq = DEFAULT_MINIO_RQ,
528 .checker_name = RDAC,
529 .prio_name = PRIO_RDAC,
536 .bl_product = "Universal Xport",
537 .features = DEFAULT_FEATURES,
538 .hwhandler = "1 rdac",
539 .selector = DEFAULT_SELECTOR,
540 .pgpolicy = GROUP_BY_PRIO,
541 .pgfailback = -FAILBACK_IMMEDIATE,
542 .rr_weight = RR_WEIGHT_NONE,
543 .no_path_retry = NO_PATH_RETRY_QUEUE,
544 .minio = DEFAULT_MINIO,
545 .minio_rq = DEFAULT_MINIO_RQ,
546 .checker_name = RDAC,
547 .prio_name = PRIO_RDAC,
554 .bl_product = "Universal Xport",
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 .minio_rq = DEFAULT_MINIO_RQ,
564 .checker_name = RDAC,
565 .prio_name = PRIO_RDAC,
569 /* IBM Netfinity Fibre Channel RAID Controller Unit */
572 .bl_product = "Universal Xport",
573 .features = DEFAULT_FEATURES,
574 .hwhandler = "1 rdac",
575 .selector = DEFAULT_SELECTOR,
576 .pgpolicy = GROUP_BY_PRIO,
577 .pgfailback = -FAILBACK_IMMEDIATE,
578 .rr_weight = RR_WEIGHT_NONE,
579 .no_path_retry = NO_PATH_RETRY_QUEUE,
580 .minio = DEFAULT_MINIO,
581 .minio_rq = DEFAULT_MINIO_RQ,
582 .checker_name = RDAC,
583 .prio_name = PRIO_RDAC,
587 /* IBM DS4200 / FAStT200 */
590 .features = DEFAULT_FEATURES,
591 .hwhandler = DEFAULT_HWHANDLER,
592 .selector = DEFAULT_SELECTOR,
593 .pgpolicy = GROUP_BY_SERIAL,
594 .pgfailback = FAILBACK_UNDEF,
595 .rr_weight = RR_WEIGHT_NONE,
596 .no_path_retry = NO_PATH_RETRY_UNDEF,
597 .minio = DEFAULT_MINIO,
598 .minio_rq = DEFAULT_MINIO_RQ,
600 .prio_name = DEFAULT_PRIO,
604 /* IBM ESS F20 aka Shark */
606 .product = "^2105800",
607 .features = "1 queue_if_no_path",
608 .hwhandler = DEFAULT_HWHANDLER,
609 .selector = DEFAULT_SELECTOR,
610 .pgpolicy = GROUP_BY_SERIAL,
611 .pgfailback = FAILBACK_UNDEF,
612 .rr_weight = RR_WEIGHT_NONE,
613 .no_path_retry = NO_PATH_RETRY_UNDEF,
614 .minio = DEFAULT_MINIO,
615 .minio_rq = DEFAULT_MINIO_RQ,
617 .prio_name = DEFAULT_PRIO,
621 /* IBM ESS F20 aka Shark */
623 .product = "^2105F20",
624 .features = "1 queue_if_no_path",
625 .hwhandler = DEFAULT_HWHANDLER,
626 .selector = DEFAULT_SELECTOR,
627 .pgpolicy = GROUP_BY_SERIAL,
628 .pgfailback = FAILBACK_UNDEF,
629 .rr_weight = RR_WEIGHT_NONE,
630 .no_path_retry = NO_PATH_RETRY_UNDEF,
631 .minio = DEFAULT_MINIO,
632 .minio_rq = DEFAULT_MINIO_RQ,
634 .prio_name = DEFAULT_PRIO,
640 .product = "^1750500",
641 .features = "1 queue_if_no_path",
642 .hwhandler = DEFAULT_HWHANDLER,
643 .selector = DEFAULT_SELECTOR,
644 .pgpolicy = GROUP_BY_PRIO,
645 .pgfailback = -FAILBACK_IMMEDIATE,
646 .rr_weight = RR_WEIGHT_NONE,
647 .no_path_retry = NO_PATH_RETRY_UNDEF,
648 .minio = DEFAULT_MINIO,
649 .minio_rq = DEFAULT_MINIO_RQ,
651 .prio_name = PRIO_ALUA,
657 .product = "^2107900",
658 .features = "1 queue_if_no_path",
659 .hwhandler = DEFAULT_HWHANDLER,
660 .selector = DEFAULT_SELECTOR,
661 .pgpolicy = MULTIBUS,
662 .pgfailback = FAILBACK_UNDEF,
663 .rr_weight = RR_WEIGHT_NONE,
664 .no_path_retry = NO_PATH_RETRY_UNDEF,
665 .minio = DEFAULT_MINIO,
666 .minio_rq = DEFAULT_MINIO_RQ,
668 .prio_name = DEFAULT_PRIO,
672 /* IBM SAN Volume Controller */
675 .features = "1 queue_if_no_path",
676 .hwhandler = DEFAULT_HWHANDLER,
677 .selector = DEFAULT_SELECTOR,
678 .pgpolicy = GROUP_BY_PRIO,
679 .pgfailback = -FAILBACK_IMMEDIATE,
680 .rr_weight = RR_WEIGHT_NONE,
681 .no_path_retry = NO_PATH_RETRY_UNDEF,
682 .minio = DEFAULT_MINIO,
683 .minio_rq = DEFAULT_MINIO_RQ,
685 .prio_name = PRIO_ALUA,
689 /* IBM S/390 ECKD DASD */
691 .product = "S/390 DASD ECKD",
692 .bl_product = "S/390.*",
693 .uid_attribute = "ID_UID",
694 .features = "1 queue_if_no_path",
695 .hwhandler = DEFAULT_HWHANDLER,
696 .selector = DEFAULT_SELECTOR,
697 .pgpolicy = MULTIBUS,
698 .pgfailback = FAILBACK_UNDEF,
699 .rr_weight = RR_WEIGHT_NONE,
700 .no_path_retry = NO_PATH_RETRY_UNDEF,
701 .minio = DEFAULT_MINIO,
702 .minio_rq = DEFAULT_MINIO_RQ,
703 .checker_name = DIRECTIO,
704 .prio_name = DEFAULT_PRIO,
708 /* IBM S/390 FBA DASD */
710 .product = "S/390 DASD FBA",
711 .bl_product = "S/390.*",
712 .uid_attribute = "ID_UID",
713 .features = "1 queue_if_no_path",
714 .hwhandler = DEFAULT_HWHANDLER,
715 .selector = DEFAULT_SELECTOR,
716 .pgpolicy = MULTIBUS,
717 .pgfailback = FAILBACK_UNDEF,
718 .rr_weight = RR_WEIGHT_NONE,
719 .no_path_retry = NO_PATH_RETRY_UNDEF,
720 .minio = DEFAULT_MINIO,
721 .minio_rq = DEFAULT_MINIO_RQ,
722 .checker_name = DIRECTIO,
723 .prio_name = DEFAULT_PRIO,
730 .features = "1 queue_if_no_path",
731 .hwhandler = "1 alua",
732 .selector = DEFAULT_SELECTOR,
733 .pgpolicy = GROUP_BY_PRIO,
734 .pgfailback = -FAILBACK_IMMEDIATE,
735 .rr_weight = RR_WEIGHT_NONE,
736 .no_path_retry = NO_PATH_RETRY_UNDEF,
737 .minio = DEFAULT_MINIO,
738 .minio_rq = DEFAULT_MINIO_RQ,
740 .prio_name = PRIO_ALUA,
746 .product = "1820N00",
747 .features = DEFAULT_FEATURES,
748 .hwhandler = DEFAULT_HWHANDLER,
749 .selector = DEFAULT_SELECTOR,
750 .pgpolicy = GROUP_BY_PRIO,
751 .pgfailback = -FAILBACK_IMMEDIATE,
752 .rr_weight = RR_WEIGHT_NONE,
753 .no_path_retry = NO_PATH_RETRY_QUEUE,
755 .minio_rq = DEFAULT_MINIO_RQ,
757 .prio_name = PRIO_ALUA,
761 /* IBM XIV Storage System */
763 .product = "2810XIV",
764 .features = "1 queue_if_no_path",
765 .hwhandler = DEFAULT_HWHANDLER,
766 .selector = DEFAULT_SELECTOR,
767 .pgpolicy = MULTIBUS,
769 .rr_weight = RR_WEIGHT_NONE,
770 .no_path_retry = NO_PATH_RETRY_UNDEF,
772 .minio_rq = DEFAULT_MINIO_RQ,
774 .prio_name = DEFAULT_PRIO,
778 * IBM Power Virtual SCSI Devices
780 * Maintainer : Brian King, IBM
781 * Mail : brking@linux.vnet.ibm.com
787 .features = DEFAULT_FEATURES,
788 .hwhandler = DEFAULT_HWHANDLER,
789 .selector = DEFAULT_SELECTOR,
790 .pgpolicy = MULTIBUS,
791 .pgfailback = -FAILBACK_IMMEDIATE,
792 .rr_weight = RR_WEIGHT_NONE,
793 .no_path_retry = (300 / DEFAULT_CHECKINT),
794 .minio = DEFAULT_MINIO,
795 .minio_rq = DEFAULT_MINIO_RQ,
796 .checker_name = DIRECTIO,
797 .prio_name = DEFAULT_PRIO,
801 /* IBM 3303 NVDISK */
803 .product = "3303 NVDISK",
804 .features = DEFAULT_FEATURES,
805 .hwhandler = DEFAULT_HWHANDLER,
806 .selector = DEFAULT_SELECTOR,
807 .pgpolicy = FAILOVER,
808 .pgfailback = -FAILBACK_IMMEDIATE,
809 .rr_weight = RR_WEIGHT_NONE,
810 .no_path_retry = (300 / DEFAULT_CHECKINT),
811 .minio = DEFAULT_MINIO,
812 .minio_rq = DEFAULT_MINIO_RQ,
814 .prio_name = DEFAULT_PRIO,
821 .features = DEFAULT_FEATURES,
822 .hwhandler = "1 alua",
823 .selector = DEFAULT_SELECTOR,
824 .pgpolicy = GROUP_BY_PRIO,
825 .pgfailback = -FAILBACK_IMMEDIATE,
826 .rr_weight = RR_WEIGHT_NONE,
827 .no_path_retry = (300 / DEFAULT_CHECKINT),
828 .minio = DEFAULT_MINIO,
829 .minio_rq = DEFAULT_MINIO_RQ,
831 .prio_name = PRIO_ALUA,
838 .bl_product = "Universal Xport",
839 .features = "2 pg_init_retries 50",
840 .hwhandler = "1 rdac",
841 .selector = DEFAULT_SELECTOR,
842 .pgpolicy = GROUP_BY_PRIO,
843 .pgfailback = -FAILBACK_IMMEDIATE,
844 .rr_weight = RR_WEIGHT_NONE,
846 .minio = DEFAULT_MINIO,
847 .minio_rq = DEFAULT_MINIO_RQ,
848 .checker_name = RDAC,
849 .prio_name = PRIO_RDAC,
855 .product = "MD3000i",
856 .bl_product = "Universal Xport",
857 .features = "2 pg_init_retries 50",
858 .hwhandler = "1 rdac",
859 .selector = DEFAULT_SELECTOR,
860 .pgpolicy = GROUP_BY_PRIO,
861 .pgfailback = -FAILBACK_IMMEDIATE,
862 .rr_weight = RR_WEIGHT_NONE,
864 .minio = DEFAULT_MINIO,
865 .minio_rq = DEFAULT_MINIO_RQ,
866 .checker_name = RDAC,
867 .prio_name = PRIO_RDAC,
874 .bl_product = "Universal Xport",
875 .features = "2 pg_init_retries 50",
876 .hwhandler = "1 rdac",
877 .selector = DEFAULT_SELECTOR,
878 .pgpolicy = GROUP_BY_PRIO,
879 .pgfailback = -FAILBACK_IMMEDIATE,
880 .rr_weight = RR_WEIGHT_NONE,
882 .minio = DEFAULT_MINIO,
883 .minio_rq = DEFAULT_MINIO_RQ,
884 .checker_name = RDAC,
885 .prio_name = PRIO_RDAC,
891 .product = "MD32xxi",
892 .bl_product = "Universal Xport",
893 .features = "2 pg_init_retries 50",
894 .hwhandler = "1 rdac",
895 .selector = DEFAULT_SELECTOR,
896 .pgpolicy = GROUP_BY_PRIO,
897 .pgfailback = -FAILBACK_IMMEDIATE,
898 .rr_weight = RR_WEIGHT_NONE,
900 .minio = DEFAULT_MINIO,
901 .minio_rq = DEFAULT_MINIO_RQ,
902 .checker_name = RDAC,
903 .prio_name = PRIO_RDAC,
907 * NETAPP controller family
909 * Maintainer : Dave Wysochanski
910 * Mail : davidw@netapp.com
915 .features = "3 queue_if_no_path pg_init_retries 50",
916 .hwhandler = DEFAULT_HWHANDLER,
917 .selector = DEFAULT_SELECTOR,
918 .pgpolicy = GROUP_BY_PRIO,
919 .pgfailback = -FAILBACK_IMMEDIATE,
920 .flush_on_last_del = FLUSH_ENABLED,
921 .rr_weight = RR_WEIGHT_NONE,
922 .no_path_retry = NO_PATH_RETRY_UNDEF,
925 .prio_name = PRIO_ONTAP,
929 * NEXENTA/COMSTAR controller family
931 * Maintainer : Yacine Kheddache
932 * Mail : yacine@alyseo.com
936 .product = "COMSTAR",
937 .features = "1 queue_if_no_path",
938 .hwhandler = DEFAULT_HWHANDLER,
939 .selector = DEFAULT_SELECTOR,
940 .pgpolicy = GROUP_BY_SERIAL,
941 .pgfailback = -FAILBACK_IMMEDIATE,
942 .rr_weight = RR_WEIGHT_NONE,
945 .checker_name = DIRECTIO,
946 .prio_name = DEFAULT_PRIO,
950 * IBM NSeries (NETAPP) controller family
952 * Maintainer : Dave Wysochanski
953 * Mail : davidw@netapp.com
957 .product = "Nseries.*",
958 .features = "1 queue_if_no_path",
959 .hwhandler = DEFAULT_HWHANDLER,
960 .selector = DEFAULT_SELECTOR,
961 .pgpolicy = GROUP_BY_PRIO,
962 .pgfailback = -FAILBACK_IMMEDIATE,
963 .rr_weight = RR_WEIGHT_NONE,
964 .no_path_retry = NO_PATH_RETRY_UNDEF,
966 .checker_name = DIRECTIO,
967 .prio_name = PRIO_ONTAP,
971 * Pillar Data controller family
973 * Maintainer : Srinivasan Ramani
974 * Mail : sramani@pillardata.com
978 .product = "Axiom.*",
979 .features = DEFAULT_FEATURES,
980 .hwhandler = DEFAULT_HWHANDLER,
981 .selector = DEFAULT_SELECTOR,
982 .pgpolicy = GROUP_BY_PRIO,
983 .pgfailback = FAILBACK_UNDEF,
984 .rr_weight = RR_WEIGHT_NONE,
985 .no_path_retry = NO_PATH_RETRY_UNDEF,
986 .minio = DEFAULT_MINIO,
987 .minio_rq = DEFAULT_MINIO_RQ,
989 .prio_name = PRIO_ALUA,
996 * Maintainer : Christophe Varoqui
997 * Mail : christophe.varoqui@opensvc.com
1001 .product = "TP9[13]00",
1002 .features = DEFAULT_FEATURES,
1003 .hwhandler = DEFAULT_HWHANDLER,
1004 .selector = DEFAULT_SELECTOR,
1005 .pgpolicy = MULTIBUS,
1006 .pgfailback = FAILBACK_UNDEF,
1007 .rr_weight = RR_WEIGHT_NONE,
1008 .no_path_retry = NO_PATH_RETRY_UNDEF,
1009 .minio = DEFAULT_MINIO,
1010 .minio_rq = DEFAULT_MINIO_RQ,
1011 .checker_name = DIRECTIO,
1012 .prio_name = DEFAULT_PRIO,
1017 .product = "TP9[45]00",
1018 .bl_product = "Universal Xport",
1019 .features = DEFAULT_FEATURES,
1020 .hwhandler = "1 rdac",
1021 .selector = DEFAULT_SELECTOR,
1022 .pgpolicy = GROUP_BY_PRIO,
1023 .pgfailback = -FAILBACK_IMMEDIATE,
1024 .rr_weight = RR_WEIGHT_NONE,
1025 .no_path_retry = NO_PATH_RETRY_QUEUE,
1026 .minio = DEFAULT_MINIO,
1027 .minio_rq = DEFAULT_MINIO_RQ,
1028 .checker_name = RDAC,
1029 .prio_name = PRIO_RDAC,
1035 .bl_product = "Universal Xport",
1036 .features = "2 pg_init_retries 50",
1037 .hwhandler = "1 rdac",
1038 .selector = DEFAULT_SELECTOR,
1039 .pgpolicy = GROUP_BY_PRIO,
1040 .pgfailback = -FAILBACK_IMMEDIATE,
1041 .rr_weight = RR_WEIGHT_NONE,
1042 .no_path_retry = 15,
1043 .minio = DEFAULT_MINIO,
1044 .minio_rq = DEFAULT_MINIO_RQ,
1045 .checker_name = RDAC,
1046 .prio_name = PRIO_RDAC,
1049 /* NEC Storage M Series */
1052 .product = "DISK ARRAY",
1053 .features = DEFAULT_FEATURES,
1054 .hwhandler = "1 alua",
1055 .selector = DEFAULT_SELECTOR,
1056 .pgpolicy = GROUP_BY_PRIO,
1057 .pgfailback = -FAILBACK_IMMEDIATE,
1058 .rr_weight = RR_WEIGHT_NONE,
1059 .no_path_retry = NO_PATH_RETRY_UNDEF,
1060 .minio = DEFAULT_MINIO,
1061 .minio_rq = DEFAULT_MINIO_RQ,
1062 .checker_name = TUR,
1063 .prio_name = PRIO_ALUA,
1069 * Maintainer : Christophe Varoqui
1070 * Mail : christophe.varoqui@opensvc.com
1074 .product = "OPENstorage D280",
1075 .bl_product = "Universal Xport",
1076 .features = DEFAULT_FEATURES,
1077 .hwhandler = "1 rdac",
1078 .selector = DEFAULT_SELECTOR,
1079 .pgpolicy = GROUP_BY_PRIO,
1080 .pgfailback = -FAILBACK_IMMEDIATE,
1081 .rr_weight = RR_WEIGHT_NONE,
1082 .no_path_retry = NO_PATH_RETRY_UNDEF,
1083 .minio = DEFAULT_MINIO,
1084 .minio_rq = DEFAULT_MINIO_RQ,
1085 .checker_name = TUR,
1086 .prio_name = PRIO_RDAC,
1092 * Maintainer : Christophe Varoqui
1093 * Mail : christophe.varoqui@opensvc.com
1097 .product = "(StorEdge 3510|T4)",
1098 .features = DEFAULT_FEATURES,
1099 .hwhandler = DEFAULT_HWHANDLER,
1100 .selector = DEFAULT_SELECTOR,
1101 .pgpolicy = MULTIBUS,
1102 .pgfailback = FAILBACK_UNDEF,
1103 .rr_weight = RR_WEIGHT_NONE,
1104 .no_path_retry = NO_PATH_RETRY_UNDEF,
1105 .minio = DEFAULT_MINIO,
1106 .minio_rq = DEFAULT_MINIO_RQ,
1107 .checker_name = DIRECTIO,
1108 .prio_name = DEFAULT_PRIO,
1112 .vendor = "EUROLOGC",
1113 .product = "FC2502",
1114 .features = DEFAULT_FEATURES,
1115 .hwhandler = DEFAULT_HWHANDLER,
1116 .selector = DEFAULT_SELECTOR,
1117 .pgpolicy = GROUP_BY_PRIO,
1118 .pgfailback = FAILBACK_UNDEF,
1119 .rr_weight = RR_WEIGHT_NONE,
1120 .no_path_retry = NO_PATH_RETRY_UNDEF,
1121 .minio = DEFAULT_MINIO,
1122 .minio_rq = DEFAULT_MINIO_RQ,
1123 .checker_name = DEFAULT_CHECKER,
1124 .prio_name = DEFAULT_PRIO,
1130 * Maintainer : Bart Brooks, Pivot3
1131 * Mail : bartb@pivot3.com
1135 .product = "RAIGE VOLUME",
1136 .features = "1 queue_if_no_path",
1137 .hwhandler = DEFAULT_HWHANDLER,
1138 .selector = DEFAULT_SELECTOR,
1139 .pgpolicy = MULTIBUS,
1140 .pgfailback = FAILBACK_UNDEF,
1141 .rr_weight = RR_WEIGHT_NONE,
1142 .no_path_retry = NO_PATH_RETRY_UNDEF,
1144 .checker_name = TUR,
1145 .prio_name = DEFAULT_PRIO,
1150 .product = "CSM200_R",
1151 .bl_product = "Universal Xport",
1152 .features = DEFAULT_FEATURES,
1153 .hwhandler = "1 rdac",
1154 .selector = DEFAULT_SELECTOR,
1155 .pgpolicy = GROUP_BY_PRIO,
1156 .pgfailback = -FAILBACK_IMMEDIATE,
1157 .rr_weight = RR_WEIGHT_NONE,
1158 .no_path_retry = NO_PATH_RETRY_QUEUE,
1159 .minio = DEFAULT_MINIO,
1160 .minio_rq = DEFAULT_MINIO_RQ,
1161 .checker_name = RDAC,
1162 .prio_name = PRIO_RDAC,
1165 /* SUN/LSI 2510, 2540, 2530, 2540 */
1168 .product = "LCSM100_[IEFS]",
1169 .bl_product = "Universal Xport",
1170 .features = DEFAULT_FEATURES,
1171 .hwhandler = "1 rdac",
1172 .selector = DEFAULT_SELECTOR,
1173 .pgpolicy = GROUP_BY_PRIO,
1174 .pgfailback = -FAILBACK_IMMEDIATE,
1175 .rr_weight = RR_WEIGHT_NONE,
1176 .no_path_retry = NO_PATH_RETRY_QUEUE,
1177 .minio = DEFAULT_MINIO,
1178 .minio_rq = DEFAULT_MINIO_RQ,
1179 .checker_name = RDAC,
1180 .prio_name = PRIO_RDAC,
1183 /* LSI/Engenio/NetApp E-Series RDAC storage */
1185 .vendor = "(LSI|ENGENIO)",
1186 .product = "INF-01-00",
1187 .bl_product = "Universal Xport",
1188 .features = "2 pg_init_retries 50",
1189 .hwhandler = "1 rdac",
1190 .selector = DEFAULT_SELECTOR,
1191 .pgpolicy = GROUP_BY_PRIO,
1192 .pgfailback = -FAILBACK_IMMEDIATE,
1193 .rr_weight = RR_WEIGHT_NONE,
1194 .no_path_retry = 15,
1195 .minio = DEFAULT_MINIO,
1196 .minio_rq = DEFAULT_MINIO_RQ,
1197 .checker_name = RDAC,
1198 .prio_name = PRIO_RDAC,
1203 .product = "FLEXLINE 380",
1204 .bl_product = "Universal Xport",
1205 .features = DEFAULT_FEATURES,
1206 .hwhandler = "1 rdac",
1207 .selector = DEFAULT_SELECTOR,
1208 .pgpolicy = GROUP_BY_PRIO,
1209 .pgfailback = -FAILBACK_IMMEDIATE,
1210 .rr_weight = RR_WEIGHT_NONE,
1211 .no_path_retry = NO_PATH_RETRY_QUEUE,
1212 .minio = DEFAULT_MINIO,
1213 .minio_rq = DEFAULT_MINIO_RQ,
1214 .checker_name = RDAC,
1215 .prio_name = PRIO_RDAC,
1233 .checker_name = NULL,
1240 setup_default_hwtable (vector hw)
1243 struct hwentry * hwe = default_hw;
1245 while (hwe->vendor) {
1246 r += store_hwe(hw, hwe);