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,
32 .pgfailback = -FAILBACK_IMMEDIATE,
33 .rr_weight = RR_WEIGHT_NONE,
34 .no_path_retry = NO_PATH_RETRY_QUEUE,
36 .prio_name = DEFAULT_PRIO,
40 * Apple controller family
42 * Maintainer : Shyam Sundar
43 * Mail : g.shyamsundar@yahoo.co.in
47 .product = "Xserve RAID ",
48 .features = DEFAULT_FEATURES,
49 .hwhandler = DEFAULT_HWHANDLER,
51 .pgfailback = FAILBACK_UNDEF,
52 .rr_weight = RR_WEIGHT_NONE,
53 .no_path_retry = NO_PATH_RETRY_UNDEF,
54 .checker_name = DEFAULT_CHECKER,
55 .prio_name = DEFAULT_PRIO,
59 * StorageWorks controller family
61 * Maintainer : Christophe Varoqui
62 * Mail : christophe.varoqui@opensvc.com
67 .features = DEFAULT_FEATURES,
68 .hwhandler = DEFAULT_HWHANDLER,
70 .pgfailback = FAILBACK_UNDEF,
71 .rr_weight = RR_WEIGHT_NONE,
72 .no_path_retry = NO_PATH_RETRY_UNDEF,
73 .checker_name = DEFAULT_CHECKER,
74 .prio_name = DEFAULT_PRIO,
80 .features = "1 queue_if_no_path",
81 .hwhandler = "1 hp_sw",
82 .pgpolicy = GROUP_BY_PRIO,
83 .pgfailback = FAILBACK_UNDEF,
84 .rr_weight = RR_WEIGHT_NONE,
85 .no_path_retry = NO_PATH_RETRY_UNDEF,
86 .checker_name = HP_SW,
87 .prio_name = PRIO_HP_SW,
93 .features = DEFAULT_FEATURES,
94 .hwhandler = DEFAULT_HWHANDLER,
96 .pgfailback = FAILBACK_UNDEF,
97 .rr_weight = RR_WEIGHT_NONE,
99 .checker_name = DIRECTIO,
100 .prio_name = DEFAULT_PRIO,
104 /* MSA 1000/MSA1500 EVA 3000/5000 with old firmware */
105 .vendor = "(COMPAQ|HP)",
106 .product = "(MSA|HSV)1.0.*",
107 .features = "1 queue_if_no_path",
108 .hwhandler = "1 hp_sw",
109 .pgpolicy = GROUP_BY_PRIO,
110 .pgfailback = FAILBACK_UNDEF,
111 .rr_weight = RR_WEIGHT_NONE,
114 .checker_name = HP_SW,
115 .prio_name = PRIO_HP_SW,
119 /* MSA 1000/1500 with new firmware */
120 .vendor = "(COMPAQ|HP)",
121 .product = "MSA VOLUME",
122 .features = DEFAULT_FEATURES,
123 .hwhandler = DEFAULT_HWHANDLER,
124 .pgpolicy = GROUP_BY_PRIO,
125 .pgfailback = -FAILBACK_IMMEDIATE,
126 .rr_weight = RR_WEIGHT_NONE,
130 .prio_name = PRIO_ALUA,
134 /* EVA 3000/5000 with new firmware, EVA 4000/6000/8000 */
135 .vendor = "(COMPAQ|HP)",
136 .product = "HSV1[01]1|HSV2[01]0|HSV3[046]0|HSV4[05]0",
137 .features = DEFAULT_FEATURES,
138 .hwhandler = DEFAULT_HWHANDLER,
139 .pgpolicy = GROUP_BY_PRIO,
140 .pgfailback = -FAILBACK_IMMEDIATE,
141 .rr_weight = RR_WEIGHT_NONE,
145 .prio_name = PRIO_ALUA,
149 /* HP MSA2000 product family with old firmware */
151 .product = "MSA2[02]12fc|MSA2012i",
152 .features = DEFAULT_FEATURES,
153 .hwhandler = DEFAULT_HWHANDLER,
154 .pgpolicy = MULTIBUS,
155 .pgfailback = -FAILBACK_IMMEDIATE,
156 .rr_weight = RR_WEIGHT_NONE,
160 .prio_name = DEFAULT_PRIO,
164 /* HP MSA2000 product family with new firmware */
166 .product = "MSA2012sa|MSA23(12|24)(fc|i|sa)|MSA2000s VOLUME",
167 .features = DEFAULT_FEATURES,
168 .hwhandler = DEFAULT_HWHANDLER,
169 .pgpolicy = GROUP_BY_PRIO,
170 .pgfailback = -FAILBACK_IMMEDIATE,
171 .rr_weight = RR_WEIGHT_NONE,
175 .prio_name = PRIO_ALUA,
182 .product = "HSVX700",
183 .features = DEFAULT_FEATURES,
184 .hwhandler = "1 alua",
185 .pgpolicy = GROUP_BY_PRIO,
186 .pgfailback = -FAILBACK_IMMEDIATE,
187 .rr_weight = RR_WEIGHT_NONE,
191 .prio_name = PRIO_ALUA,
198 .product = "LOGICAL VOLUME.*",
199 .features = DEFAULT_FEATURES,
200 .hwhandler = DEFAULT_HWHANDLER,
201 .pgpolicy = MULTIBUS,
202 .pgfailback = FAILBACK_UNDEF,
203 .rr_weight = RR_WEIGHT_NONE,
206 .prio_name = DEFAULT_PRIO,
210 /* HP P2000 family arrays */
212 .product = "P2000 G3 FC|P2000G3 FC/iSCSI|P2000 G3 SAS|P2000 G3 iSCSI",
213 .features = DEFAULT_FEATURES,
214 .hwhandler = DEFAULT_HWHANDLER,
215 .pgpolicy = GROUP_BY_PRIO,
216 .pgfailback = -FAILBACK_IMMEDIATE,
217 .rr_weight = RR_WEIGHT_NONE,
221 .prio_name = PRIO_ALUA,
225 * DDN controller family
227 * Maintainer : Christophe Varoqui
228 * Mail : christophe.varoqui@opensvc.com
232 .product = "SAN DataDirector",
233 .features = DEFAULT_FEATURES,
234 .hwhandler = DEFAULT_HWHANDLER,
235 .pgpolicy = MULTIBUS,
236 .pgfailback = FAILBACK_UNDEF,
237 .rr_weight = RR_WEIGHT_NONE,
238 .no_path_retry = NO_PATH_RETRY_UNDEF,
239 .checker_name = DIRECTIO,
240 .prio_name = DEFAULT_PRIO,
244 * EMC / Clariion controller family
246 * Maintainer : Edward Goggin, EMC
247 * Mail : egoggin@emc.com
251 .product = "SYMMETRIX",
252 .features = DEFAULT_FEATURES,
253 .hwhandler = DEFAULT_HWHANDLER,
254 .pgpolicy = MULTIBUS,
255 .pgfailback = FAILBACK_UNDEF,
256 .rr_weight = RR_WEIGHT_NONE,
259 .prio_name = DEFAULT_PRIO,
265 .bl_product = "LUNZ",
266 .features = "1 queue_if_no_path",
267 .hwhandler = "1 emc",
268 .pgpolicy = GROUP_BY_PRIO,
269 .pgfailback = -FAILBACK_IMMEDIATE,
270 .rr_weight = RR_WEIGHT_NONE,
271 .no_path_retry = (300 / DEFAULT_CHECKINT),
272 .checker_name = EMC_CLARIION,
273 .prio_name = PRIO_EMC,
278 .product = "Invista",
279 .bl_product = "LUNZ",
280 .features = DEFAULT_FEATURES,
281 .hwhandler = DEFAULT_HWHANDLER,
282 .pgpolicy = MULTIBUS,
283 .pgfailback = FAILBACK_UNDEF,
284 .rr_weight = RR_WEIGHT_NONE,
287 .prio_name = DEFAULT_PRIO,
291 * Fujitsu controller family
293 * Maintainer : Christophe Varoqui
294 * Mail : christophe.varoqui@opensvc.com
298 .product = "CentricStor",
299 .features = DEFAULT_FEATURES,
300 .hwhandler = DEFAULT_HWHANDLER,
301 .pgpolicy = GROUP_BY_SERIAL,
302 .pgfailback = FAILBACK_UNDEF,
303 .rr_weight = RR_WEIGHT_NONE,
304 .no_path_retry = NO_PATH_RETRY_UNDEF,
305 .checker_name = DIRECTIO,
306 .prio_name = DEFAULT_PRIO,
311 .product = "ETERNUS_DX(L|400|8000)",
312 .features = "1 queue_if_no_path",
313 .hwhandler = DEFAULT_HWHANDLER,
314 .pgpolicy = GROUP_BY_PRIO,
315 .pgfailback = -FAILBACK_IMMEDIATE,
316 .rr_weight = RR_WEIGHT_NONE,
319 .prio_name = PRIO_ALUA,
323 * Hitachi controller family
325 * Maintainer : Matthias Rudolph
326 * Mail : matthias.rudolph@hds.com
329 .vendor = "(HITACHI|HP)",
330 .product = "OPEN-.*",
331 .features = DEFAULT_FEATURES,
332 .hwhandler = DEFAULT_HWHANDLER,
333 .pgpolicy = MULTIBUS,
334 .pgfailback = FAILBACK_UNDEF,
335 .rr_weight = RR_WEIGHT_NONE,
336 .no_path_retry = NO_PATH_RETRY_UNDEF,
338 .prio_name = DEFAULT_PRIO,
344 .features = "1 queue_if_no_path",
345 .hwhandler = DEFAULT_HWHANDLER,
346 .pgpolicy = GROUP_BY_PRIO,
347 .pgfailback = -FAILBACK_IMMEDIATE,
348 .rr_weight = RR_WEIGHT_NONE,
349 .no_path_retry = NO_PATH_RETRY_UNDEF,
351 .prio_name = PRIO_HDS,
355 * IBM controller family
357 * Maintainer : Hannes Reinecke, SuSE
358 * Mail : hare@suse.de
362 .product = "ProFibre 4000R",
363 .features = DEFAULT_FEATURES,
364 .hwhandler = DEFAULT_HWHANDLER,
365 .pgpolicy = MULTIBUS,
366 .pgfailback = FAILBACK_UNDEF,
367 .rr_weight = RR_WEIGHT_NONE,
368 .no_path_retry = NO_PATH_RETRY_UNDEF,
369 .checker_name = DIRECTIO,
370 .prio_name = DEFAULT_PRIO,
374 /* IBM FAStT 1722-600 */
376 .product = "^1722-600",
377 .bl_product = "Universal Xport",
378 .features = "1 queue_if_no_path",
379 .hwhandler = "1 rdac",
380 .pgpolicy = GROUP_BY_PRIO,
381 .pgfailback = -FAILBACK_IMMEDIATE,
382 .rr_weight = RR_WEIGHT_NONE,
383 .no_path_retry = 300,
384 .checker_name = RDAC,
385 .prio_name = PRIO_RDAC,
392 .bl_product = "Universal Xport",
393 .features = "1 queue_if_no_path",
394 .hwhandler = "1 rdac",
395 .pgpolicy = GROUP_BY_PRIO,
396 .pgfailback = -FAILBACK_IMMEDIATE,
397 .rr_weight = RR_WEIGHT_NONE,
398 .no_path_retry = 300,
399 .checker_name = RDAC,
400 .prio_name = PRIO_RDAC,
404 /* IBM DS3200 / DS3300 / DS3400 */
407 .bl_product = "Universal Xport",
408 .features = "1 queue_if_no_path",
409 .hwhandler = "1 rdac",
410 .pgpolicy = GROUP_BY_PRIO,
411 .pgfailback = -FAILBACK_IMMEDIATE,
412 .rr_weight = RR_WEIGHT_NONE,
413 .no_path_retry = 300,
414 .checker_name = RDAC,
415 .prio_name = PRIO_RDAC,
419 /* IBM DS4400 / DS4500 / FAStT700 */
422 .bl_product = "Universal Xport",
423 .features = DEFAULT_FEATURES,
424 .hwhandler = "1 rdac",
425 .pgpolicy = GROUP_BY_PRIO,
426 .pgfailback = -FAILBACK_IMMEDIATE,
427 .rr_weight = RR_WEIGHT_NONE,
428 .no_path_retry = NO_PATH_RETRY_QUEUE,
429 .checker_name = RDAC,
430 .prio_name = PRIO_RDAC,
435 .product = "^1745|^1746",
436 .bl_product = "Universal Xport",
437 .features = "2 pg_init_retries 50",
438 .hwhandler = "1 rdac",
439 .pgpolicy = GROUP_BY_PRIO,
440 .pgfailback = -FAILBACK_IMMEDIATE,
441 .rr_weight = RR_WEIGHT_NONE,
443 .checker_name = RDAC,
444 .prio_name = PRIO_RDAC,
451 .bl_product = "Universal Xport",
452 .features = DEFAULT_FEATURES,
453 .hwhandler = "1 rdac",
454 .pgpolicy = GROUP_BY_PRIO,
455 .pgfailback = -FAILBACK_IMMEDIATE,
456 .rr_weight = RR_WEIGHT_NONE,
457 .no_path_retry = NO_PATH_RETRY_QUEUE,
458 .checker_name = RDAC,
459 .prio_name = PRIO_RDAC,
466 .bl_product = "Universal Xport",
467 .features = DEFAULT_FEATURES,
468 .hwhandler = "1 rdac",
469 .pgpolicy = GROUP_BY_PRIO,
470 .pgfailback = -FAILBACK_IMMEDIATE,
471 .rr_weight = RR_WEIGHT_NONE,
472 .no_path_retry = NO_PATH_RETRY_QUEUE,
473 .checker_name = RDAC,
474 .prio_name = PRIO_RDAC,
481 .bl_product = "Universal Xport",
482 .features = DEFAULT_FEATURES,
483 .hwhandler = "1 rdac",
484 .pgpolicy = GROUP_BY_PRIO,
485 .pgfailback = -FAILBACK_IMMEDIATE,
486 .rr_weight = RR_WEIGHT_NONE,
487 .no_path_retry = NO_PATH_RETRY_QUEUE,
488 .checker_name = RDAC,
489 .prio_name = PRIO_RDAC,
493 /* IBM Netfinity Fibre Channel RAID Controller Unit */
496 .bl_product = "Universal Xport",
497 .features = DEFAULT_FEATURES,
498 .hwhandler = "1 rdac",
499 .pgpolicy = GROUP_BY_PRIO,
500 .pgfailback = -FAILBACK_IMMEDIATE,
501 .rr_weight = RR_WEIGHT_NONE,
502 .no_path_retry = NO_PATH_RETRY_QUEUE,
503 .checker_name = RDAC,
504 .prio_name = PRIO_RDAC,
508 /* IBM DS4200 / FAStT200 */
511 .features = DEFAULT_FEATURES,
512 .hwhandler = DEFAULT_HWHANDLER,
513 .pgpolicy = GROUP_BY_SERIAL,
514 .pgfailback = FAILBACK_UNDEF,
515 .rr_weight = RR_WEIGHT_NONE,
516 .no_path_retry = NO_PATH_RETRY_UNDEF,
518 .prio_name = DEFAULT_PRIO,
522 /* IBM ESS F20 aka Shark */
524 .product = "^2105800",
525 .features = "1 queue_if_no_path",
526 .hwhandler = DEFAULT_HWHANDLER,
527 .pgpolicy = GROUP_BY_SERIAL,
528 .pgfailback = FAILBACK_UNDEF,
529 .rr_weight = RR_WEIGHT_NONE,
530 .no_path_retry = NO_PATH_RETRY_UNDEF,
532 .prio_name = DEFAULT_PRIO,
536 /* IBM ESS F20 aka Shark */
538 .product = "^2105F20",
539 .features = "1 queue_if_no_path",
540 .hwhandler = DEFAULT_HWHANDLER,
541 .pgpolicy = GROUP_BY_SERIAL,
542 .pgfailback = FAILBACK_UNDEF,
543 .rr_weight = RR_WEIGHT_NONE,
544 .no_path_retry = NO_PATH_RETRY_UNDEF,
546 .prio_name = DEFAULT_PRIO,
552 .product = "^1750500",
553 .features = "1 queue_if_no_path",
554 .hwhandler = DEFAULT_HWHANDLER,
555 .pgpolicy = GROUP_BY_PRIO,
556 .pgfailback = -FAILBACK_IMMEDIATE,
557 .rr_weight = RR_WEIGHT_NONE,
558 .no_path_retry = NO_PATH_RETRY_UNDEF,
560 .prio_name = PRIO_ALUA,
566 .product = "^2107900",
567 .features = "1 queue_if_no_path",
568 .hwhandler = DEFAULT_HWHANDLER,
569 .pgpolicy = MULTIBUS,
570 .pgfailback = FAILBACK_UNDEF,
571 .rr_weight = RR_WEIGHT_NONE,
572 .no_path_retry = NO_PATH_RETRY_UNDEF,
574 .prio_name = DEFAULT_PRIO,
578 /* IBM SAN Volume Controller */
581 .features = "1 queue_if_no_path",
582 .hwhandler = DEFAULT_HWHANDLER,
583 .pgpolicy = GROUP_BY_PRIO,
584 .pgfailback = -FAILBACK_IMMEDIATE,
585 .rr_weight = RR_WEIGHT_NONE,
586 .no_path_retry = NO_PATH_RETRY_UNDEF,
588 .prio_name = PRIO_ALUA,
592 /* IBM S/390 ECKD DASD */
594 .product = "S/390 DASD ECKD",
595 .bl_product = "S/390.*",
596 .uid_attribute = "ID_UID",
597 .features = "1 queue_if_no_path",
598 .hwhandler = DEFAULT_HWHANDLER,
599 .pgpolicy = MULTIBUS,
600 .pgfailback = FAILBACK_UNDEF,
601 .rr_weight = RR_WEIGHT_NONE,
602 .no_path_retry = NO_PATH_RETRY_UNDEF,
603 .checker_name = DIRECTIO,
604 .prio_name = DEFAULT_PRIO,
608 /* IBM S/390 FBA DASD */
610 .product = "S/390 DASD FBA",
611 .bl_product = "S/390.*",
612 .uid_attribute = "ID_UID",
613 .features = "1 queue_if_no_path",
614 .hwhandler = DEFAULT_HWHANDLER,
615 .pgpolicy = MULTIBUS,
616 .pgfailback = FAILBACK_UNDEF,
617 .rr_weight = RR_WEIGHT_NONE,
618 .no_path_retry = NO_PATH_RETRY_UNDEF,
619 .checker_name = DIRECTIO,
620 .prio_name = DEFAULT_PRIO,
627 .features = "1 queue_if_no_path",
628 .hwhandler = "1 alua",
629 .pgpolicy = GROUP_BY_PRIO,
630 .pgfailback = -FAILBACK_IMMEDIATE,
631 .rr_weight = RR_WEIGHT_NONE,
632 .no_path_retry = NO_PATH_RETRY_UNDEF,
634 .prio_name = PRIO_ALUA,
640 .product = "1820N00",
641 .features = DEFAULT_FEATURES,
642 .hwhandler = DEFAULT_HWHANDLER,
643 .pgpolicy = GROUP_BY_PRIO,
644 .pgfailback = -FAILBACK_IMMEDIATE,
645 .rr_weight = RR_WEIGHT_NONE,
646 .no_path_retry = NO_PATH_RETRY_QUEUE,
649 .prio_name = PRIO_ALUA,
653 /* IBM XIV Storage System */
655 .product = "2810XIV",
656 .features = "1 queue_if_no_path",
657 .hwhandler = DEFAULT_HWHANDLER,
658 .pgpolicy = MULTIBUS,
660 .rr_weight = RR_WEIGHT_NONE,
661 .no_path_retry = NO_PATH_RETRY_UNDEF,
664 .prio_name = DEFAULT_PRIO,
668 * IBM Power Virtual SCSI Devices
670 * Maintainer : Brian King, IBM
671 * Mail : brking@linux.vnet.ibm.com
677 .features = DEFAULT_FEATURES,
678 .hwhandler = DEFAULT_HWHANDLER,
679 .pgpolicy = MULTIBUS,
680 .pgfailback = -FAILBACK_IMMEDIATE,
681 .rr_weight = RR_WEIGHT_NONE,
682 .no_path_retry = (300 / DEFAULT_CHECKINT),
683 .checker_name = DIRECTIO,
684 .prio_name = DEFAULT_PRIO,
688 /* IBM 3303 NVDISK */
690 .product = "3303 NVDISK",
691 .features = DEFAULT_FEATURES,
692 .hwhandler = DEFAULT_HWHANDLER,
693 .pgpolicy = FAILOVER,
694 .pgfailback = -FAILBACK_IMMEDIATE,
695 .rr_weight = RR_WEIGHT_NONE,
696 .no_path_retry = (300 / DEFAULT_CHECKINT),
698 .prio_name = DEFAULT_PRIO,
705 .features = DEFAULT_FEATURES,
706 .hwhandler = "1 alua",
707 .pgpolicy = GROUP_BY_PRIO,
708 .pgfailback = -FAILBACK_IMMEDIATE,
709 .rr_weight = RR_WEIGHT_NONE,
710 .no_path_retry = (300 / DEFAULT_CHECKINT),
712 .prio_name = PRIO_ALUA,
719 .bl_product = "Universal Xport",
720 .features = "2 pg_init_retries 50",
721 .hwhandler = "1 rdac",
722 .pgpolicy = GROUP_BY_PRIO,
723 .pgfailback = -FAILBACK_IMMEDIATE,
724 .rr_weight = RR_WEIGHT_NONE,
726 .checker_name = RDAC,
727 .prio_name = PRIO_RDAC,
733 .product = "MD3000i",
734 .bl_product = "Universal Xport",
735 .features = "2 pg_init_retries 50",
736 .hwhandler = "1 rdac",
737 .pgpolicy = GROUP_BY_PRIO,
738 .pgfailback = -FAILBACK_IMMEDIATE,
739 .rr_weight = RR_WEIGHT_NONE,
741 .checker_name = RDAC,
742 .prio_name = PRIO_RDAC,
749 .bl_product = "Universal Xport",
750 .features = "2 pg_init_retries 50",
751 .hwhandler = "1 rdac",
752 .pgpolicy = GROUP_BY_PRIO,
753 .pgfailback = -FAILBACK_IMMEDIATE,
754 .rr_weight = RR_WEIGHT_NONE,
756 .checker_name = RDAC,
757 .prio_name = PRIO_RDAC,
763 .product = "MD32xxi",
764 .bl_product = "Universal Xport",
765 .features = "2 pg_init_retries 50",
766 .hwhandler = "1 rdac",
767 .pgpolicy = GROUP_BY_PRIO,
768 .pgfailback = -FAILBACK_IMMEDIATE,
769 .rr_weight = RR_WEIGHT_NONE,
771 .checker_name = RDAC,
772 .prio_name = PRIO_RDAC,
776 * NETAPP controller family
778 * Maintainer : Dave Wysochanski
779 * Mail : davidw@netapp.com
784 .features = "3 queue_if_no_path pg_init_retries 50",
785 .hwhandler = DEFAULT_HWHANDLER,
786 .pgpolicy = GROUP_BY_PRIO,
787 .pgfailback = -FAILBACK_IMMEDIATE,
788 .flush_on_last_del = FLUSH_ENABLED,
789 .rr_weight = RR_WEIGHT_NONE,
790 .no_path_retry = NO_PATH_RETRY_UNDEF,
792 .dev_loss = MAX_DEV_LOSS_TMO,
794 .prio_name = PRIO_ONTAP,
796 .retain_hwhandler = RETAIN_HWHANDLER_ON,
797 .user_friendly_names = USER_FRIENDLY_NAMES_OFF,
798 .detect_prio = DETECT_PRIO_ON,
801 * NEXENTA/COMSTAR controller family
803 * Maintainer : Yacine Kheddache
804 * Mail : yacine@alyseo.com
808 .product = "COMSTAR",
809 .features = "1 queue_if_no_path",
810 .hwhandler = DEFAULT_HWHANDLER,
811 .pgpolicy = GROUP_BY_SERIAL,
812 .pgfailback = -FAILBACK_IMMEDIATE,
813 .rr_weight = RR_WEIGHT_NONE,
816 .checker_name = DIRECTIO,
817 .prio_name = DEFAULT_PRIO,
821 * IBM NSeries (NETAPP) controller family
823 * Maintainer : Dave Wysochanski
824 * Mail : davidw@netapp.com
828 .product = "Nseries.*",
829 .features = "1 queue_if_no_path",
830 .hwhandler = DEFAULT_HWHANDLER,
831 .pgpolicy = GROUP_BY_PRIO,
832 .pgfailback = -FAILBACK_IMMEDIATE,
833 .rr_weight = RR_WEIGHT_NONE,
834 .no_path_retry = NO_PATH_RETRY_UNDEF,
836 .checker_name = DIRECTIO,
837 .prio_name = PRIO_ONTAP,
841 * Pillar Data controller family
843 * Maintainer : Srinivasan Ramani
844 * Mail : sramani@pillardata.com
848 .product = "Axiom.*",
849 .features = DEFAULT_FEATURES,
850 .hwhandler = DEFAULT_HWHANDLER,
851 .pgpolicy = GROUP_BY_PRIO,
852 .pgfailback = FAILBACK_UNDEF,
853 .rr_weight = RR_WEIGHT_NONE,
854 .no_path_retry = NO_PATH_RETRY_UNDEF,
856 .prio_name = PRIO_ALUA,
863 * Maintainer : Christophe Varoqui
864 * Mail : christophe.varoqui@opensvc.com
868 .product = "TP9[13]00",
869 .features = DEFAULT_FEATURES,
870 .hwhandler = DEFAULT_HWHANDLER,
871 .pgpolicy = MULTIBUS,
872 .pgfailback = FAILBACK_UNDEF,
873 .rr_weight = RR_WEIGHT_NONE,
874 .no_path_retry = NO_PATH_RETRY_UNDEF,
875 .checker_name = DIRECTIO,
876 .prio_name = DEFAULT_PRIO,
881 .product = "TP9[45]00",
882 .bl_product = "Universal Xport",
883 .features = DEFAULT_FEATURES,
884 .hwhandler = "1 rdac",
885 .pgpolicy = GROUP_BY_PRIO,
886 .pgfailback = -FAILBACK_IMMEDIATE,
887 .rr_weight = RR_WEIGHT_NONE,
888 .no_path_retry = NO_PATH_RETRY_QUEUE,
889 .checker_name = RDAC,
890 .prio_name = PRIO_RDAC,
896 .bl_product = "Universal Xport",
897 .features = "2 pg_init_retries 50",
898 .hwhandler = "1 rdac",
899 .pgpolicy = GROUP_BY_PRIO,
900 .pgfailback = -FAILBACK_IMMEDIATE,
901 .rr_weight = RR_WEIGHT_NONE,
903 .checker_name = RDAC,
904 .prio_name = PRIO_RDAC,
907 /* NEC Storage M Series */
910 .product = "DISK ARRAY",
911 .features = DEFAULT_FEATURES,
912 .hwhandler = "1 alua",
913 .pgpolicy = GROUP_BY_PRIO,
914 .pgfailback = -FAILBACK_IMMEDIATE,
915 .rr_weight = RR_WEIGHT_NONE,
916 .no_path_retry = NO_PATH_RETRY_UNDEF,
918 .prio_name = PRIO_ALUA,
924 * Maintainer : Christophe Varoqui
925 * Mail : christophe.varoqui@opensvc.com
929 .product = "OPENstorage D280",
930 .bl_product = "Universal Xport",
931 .features = DEFAULT_FEATURES,
932 .hwhandler = "1 rdac",
933 .pgpolicy = GROUP_BY_PRIO,
934 .pgfailback = -FAILBACK_IMMEDIATE,
935 .rr_weight = RR_WEIGHT_NONE,
936 .no_path_retry = NO_PATH_RETRY_UNDEF,
938 .prio_name = PRIO_RDAC,
944 * Maintainer : Christophe Varoqui
945 * Mail : christophe.varoqui@opensvc.com
949 .product = "(StorEdge 3510|T4)",
950 .features = DEFAULT_FEATURES,
951 .hwhandler = DEFAULT_HWHANDLER,
952 .pgpolicy = MULTIBUS,
953 .pgfailback = FAILBACK_UNDEF,
954 .rr_weight = RR_WEIGHT_NONE,
955 .no_path_retry = NO_PATH_RETRY_UNDEF,
956 .checker_name = DIRECTIO,
957 .prio_name = DEFAULT_PRIO,
962 .product = "STK6580_6780",
963 .features = DEFAULT_FEATURES,
964 .hwhandler = "1 rdac",
965 .pgpolicy = GROUP_BY_PRIO,
966 .pgfailback = -FAILBACK_IMMEDIATE,
967 .rr_weight = RR_WEIGHT_NONE,
968 .no_path_retry = NO_PATH_RETRY_UNDEF,
970 .prio_name = PRIO_RDAC,
974 .vendor = "EUROLOGC",
976 .features = DEFAULT_FEATURES,
977 .hwhandler = DEFAULT_HWHANDLER,
978 .pgpolicy = GROUP_BY_PRIO,
979 .pgfailback = FAILBACK_UNDEF,
980 .rr_weight = RR_WEIGHT_NONE,
981 .no_path_retry = NO_PATH_RETRY_UNDEF,
982 .checker_name = DEFAULT_CHECKER,
983 .prio_name = DEFAULT_PRIO,
989 * Maintainer : Bart Brooks, Pivot3
990 * Mail : bartb@pivot3.com
994 .product = "RAIGE VOLUME",
995 .features = "1 queue_if_no_path",
996 .hwhandler = DEFAULT_HWHANDLER,
997 .pgpolicy = MULTIBUS,
998 .pgfailback = FAILBACK_UNDEF,
999 .rr_weight = RR_WEIGHT_NONE,
1000 .no_path_retry = NO_PATH_RETRY_UNDEF,
1002 .checker_name = TUR,
1003 .prio_name = DEFAULT_PRIO,
1008 .product = "CSM200_R",
1009 .bl_product = "Universal Xport",
1010 .features = DEFAULT_FEATURES,
1011 .hwhandler = "1 rdac",
1012 .pgpolicy = GROUP_BY_PRIO,
1013 .pgfailback = -FAILBACK_IMMEDIATE,
1014 .rr_weight = RR_WEIGHT_NONE,
1015 .no_path_retry = NO_PATH_RETRY_QUEUE,
1016 .checker_name = RDAC,
1017 .prio_name = PRIO_RDAC,
1020 /* SUN/LSI 2510, 2540, 2530, 2540 */
1023 .product = "LCSM100_[IEFS]",
1024 .bl_product = "Universal Xport",
1025 .features = DEFAULT_FEATURES,
1026 .hwhandler = "1 rdac",
1027 .pgpolicy = GROUP_BY_PRIO,
1028 .pgfailback = -FAILBACK_IMMEDIATE,
1029 .rr_weight = RR_WEIGHT_NONE,
1030 .no_path_retry = NO_PATH_RETRY_QUEUE,
1031 .checker_name = RDAC,
1032 .prio_name = PRIO_RDAC,
1035 /* StorageTek 6180 */
1038 .product = "SUN_6180",
1039 .features = DEFAULT_FEATURES,
1040 .hwhandler = "1 rdac",
1041 .pgpolicy = GROUP_BY_PRIO,
1042 .pgfailback = -FAILBACK_IMMEDIATE,
1043 .rr_weight = RR_WEIGHT_NONE,
1044 .no_path_retry = NO_PATH_RETRY_QUEUE,
1045 .minio = DEFAULT_MINIO,
1046 .minio_rq = DEFAULT_MINIO_RQ,
1047 .checker_name = RDAC,
1048 .prio_name = PRIO_RDAC,
1050 /* LSI/Engenio/NetApp E-Series RDAC storage
1052 * Maintainer : Sean Stewart
1053 * Mail : sean.stewart@netapp.com
1056 .vendor = "(NETAPP|LSI|ENGENIO)",
1057 .product = "INF-01-00",
1058 .bl_product = "Universal Xport",
1059 .features = "2 pg_init_retries 50",
1060 .hwhandler = "1 rdac",
1061 .pgpolicy = GROUP_BY_PRIO,
1062 .pgfailback = -FAILBACK_IMMEDIATE,
1063 .rr_weight = RR_WEIGHT_NONE,
1064 .no_path_retry = 30,
1065 .checker_name = RDAC,
1066 .prio_name = PRIO_RDAC,
1068 .detect_prio = DETECT_PRIO_ON,
1069 .retain_hwhandler = RETAIN_HWHANDLER_ON,
1073 .product = "FLEXLINE 380",
1074 .bl_product = "Universal Xport",
1075 .features = DEFAULT_FEATURES,
1076 .hwhandler = "1 rdac",
1077 .pgpolicy = GROUP_BY_PRIO,
1078 .pgfailback = -FAILBACK_IMMEDIATE,
1079 .rr_weight = RR_WEIGHT_NONE,
1080 .no_path_retry = NO_PATH_RETRY_QUEUE,
1081 .checker_name = RDAC,
1082 .prio_name = PRIO_RDAC,
1087 .product = "Multi-Flex",
1088 .features = DEFAULT_FEATURES,
1089 .hwhandler = "1 alua",
1090 .pgpolicy = GROUP_BY_PRIO,
1091 .pgfailback = -FAILBACK_IMMEDIATE,
1092 .rr_weight = RR_WEIGHT_NONE,
1093 .no_path_retry = NO_PATH_RETRY_QUEUE,
1094 .checker_name = TUR,
1095 .prio_name = PRIO_ALUA,
1099 .vendor = "DataCore",
1100 .product = "SANmelody",
1101 .features = DEFAULT_FEATURES,
1102 .hwhandler = DEFAULT_HWHANDLER,
1103 .pgpolicy = GROUP_BY_PRIO,
1104 .pgfailback = -FAILBACK_IMMEDIATE,
1105 .rr_weight = RR_WEIGHT_NONE,
1106 .no_path_retry = NO_PATH_RETRY_QUEUE,
1107 .checker_name = TUR,
1108 .prio_name = PRIO_ALUA,
1112 .vendor = "DataCore",
1113 .product = "Virtual Disk",
1114 .features = DEFAULT_FEATURES,
1115 .hwhandler = DEFAULT_HWHANDLER,
1116 .pgpolicy = GROUP_BY_PRIO,
1117 .pgfailback = -FAILBACK_IMMEDIATE,
1118 .rr_weight = RR_WEIGHT_NONE,
1119 .no_path_retry = NO_PATH_RETRY_QUEUE,
1120 .checker_name = TUR,
1121 .prio_name = PRIO_ALUA,
1139 .checker_name = NULL,
1146 setup_default_hwtable (vector hw)
1149 struct hwentry * hwe = default_hw;
1151 while (hwe->vendor) {
1152 r += store_hwe(hw, hwe);