blob: ec2923f1856b6b9028c098cc721397f727362c5b [file] [log] [blame]
Matthew Barth23dcffd2021-10-19 13:36:51 -05001[
Patrick Williamsa49e3f12022-12-08 06:12:40 -06002 {
3 // Hold fans at the given target when a number of fans are missing.
4 "name": "fan(s) missing",
5 "groups": [
6 {
7 "name": "fan inventory",
8 "interface": "xyz.openbmc_project.Inventory.Item",
9 "property": { "name": "Present" }
10 }
11 ],
12 "triggers": [
13 {
14 "class": "init",
15 "method": "get_properties"
16 },
17 {
18 "class": "signal",
19 "signal": "properties_changed"
20 }
21 ],
22 "actions": [
23 {
24 "name": "count_state_before_target",
25 "count": 1,
26 "state": false,
27 "target": 10400
28 }
Matthew Barth59031d42022-01-21 15:31:36 -060029 ]
Patrick Williamsa49e3f12022-12-08 06:12:40 -060030 },
31 {
32 // Hold fans at the given target when a number of rotors are nonfunctional.
33 "name": "fan rotor(s) faulted",
34 "groups": [
35 {
36 "name": "fan0 rotor inventory",
37 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
38 "property": { "name": "Functional" }
39 },
40 {
41 "name": "fan1 rotor inventory",
42 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
43 "property": { "name": "Functional" }
44 },
45 {
46 "name": "fan2 rotor inventory",
47 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
48 "property": { "name": "Functional" }
49 },
50 {
51 "name": "fan3 rotor inventory",
52 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
53 "property": { "name": "Functional" }
54 },
55 {
56 "name": "fan4 rotor inventory",
57 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
58 "property": { "name": "Functional" }
59 },
60 {
61 "name": "fan5 rotor inventory",
62 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
63 "property": { "name": "Functional" }
64 }
65 ],
66 "triggers": [
67 {
68 "class": "init",
69 "method": "get_properties"
70 },
71 {
72 "class": "signal",
73 "signal": "properties_changed"
74 }
75 ],
76 "actions": [
77 {
78 "name": "count_state_before_target",
79 "count": 1,
80 "state": false,
81 "target": 10400
82 }
83 ]
84 },
85 {
86 // Hold fans at the given target when any critical service
87 // is not running for 5 seconds.
88 "name": "service(s) missing",
89 "groups": [
90 {
91 "name": "fan inventory",
92 "interface": "xyz.openbmc_project.Inventory.Item",
93 "property": { "name": "Present" }
94 },
95 {
96 "name": "occ objects",
97 "interface": "org.open_power.OCC.Status",
98 "property": { "name": "OccActive" }
99 },
100 {
101 "name": "nvme temps",
102 "interface": "xyz.openbmc_project.Sensor.Value",
103 "property": { "name": "Value" }
104 },
105 {
106 "name": "planar temps",
107 "interface": "xyz.openbmc_project.Sensor.Value",
108 "property": { "name": "Value" }
109 },
110 {
111 "name": "flett temps",
112 "interface": "xyz.openbmc_project.Sensor.Value",
113 "property": { "name": "Value" }
114 },
115 {
116 "name": "pcie cable card temps",
117 "interface": "xyz.openbmc_project.Sensor.Value",
118 "property": { "name": "Value" }
119 },
120 {
121 "name": "ambient temp",
122 "interface": "xyz.openbmc_project.Sensor.Value",
123 "property": { "name": "Value" }
124 }
125 ],
126 "triggers": [
127 {
128 "class": "init",
129 "method": "name_has_owner"
130 },
131 {
132 "class": "signal",
133 "signal": "name_owner_changed"
134 }
135 ],
136 "actions": [
137 {
138 "name": "call_actions_based_on_timer",
139 "timer": {
140 "interval": 5000000,
141 "type": "oneshot"
142 },
143 "actions": [
144 {
145 "name": "set_target_on_missing_owner",
146 "groups": [
147 {
148 "name": "fan inventory",
149 "interface": "xyz.openbmc_project.Inventory.Item",
150 "property": { "name": "Present" }
151 },
152 {
153 "name": "occ objects",
154 "interface": "org.open_power.OCC.Status",
155 "property": { "name": "OccActive" }
156 },
157 {
158 "name": "nvme temps",
159 "interface": "xyz.openbmc_project.Sensor.Value",
160 "property": { "name": "Value" }
161 },
162 {
163 "name": "planar temps",
164 "interface": "xyz.openbmc_project.Sensor.Value",
165 "property": { "name": "Value" }
166 },
167 {
168 "name": "flett temps",
169 "interface": "xyz.openbmc_project.Sensor.Value",
170 "property": { "name": "Value" }
171 },
172 {
173 "name": "pcie cable card temps",
174 "interface": "xyz.openbmc_project.Sensor.Value",
175 "property": { "name": "Value" }
176 },
177 {
178 "name": "ambient temp",
179 "interface": "xyz.openbmc_project.Sensor.Value",
180 "property": { "name": "Value" }
181 }
182 ],
183 "target": 10400
184 }
185 ]
186 }
187 ]
188 },
189 {
190 // Set a fan floor if an OCC isn't active
191 "name": "Non-active OCCs",
192 "groups": [
193 {
194 "name": "occ objects",
195 "interface": "org.open_power.OCC.Status",
196 "property": {
197 "name": "OccActive"
198 }
199 }
200 ],
201 "triggers": [
202 {
203 "class": "signal",
204 "signal": "properties_changed"
205 },
206 {
207 "class": "signal",
208 "signal": "interfaces_added"
209 },
210 {
211 "class": "init",
212 "method": "get_properties"
213 }
214 ],
215 "actions": [
216 {
217 "name": "count_state_floor",
218 "count": 1,
219 "state": false,
220 "floor": 10400
221 }
222 ]
223 },
224 {
225 // Set a raised fan floor when any temperature sensor is nonfunctional
226 "name": "Nonfunctional temperature sensors",
227 "groups": [
228 {
229 "name": "proc0 core temps",
230 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
231 "property": { "name": "Functional" }
232 },
233 {
234 "name": "proc1 core temps",
235 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
236 "property": { "name": "Functional" }
237 },
238 {
239 "name": "proc2 core temps",
240 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
241 "property": { "name": "Functional" }
242 },
243 {
244 "name": "proc3 core temps",
245 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
246 "property": { "name": "Functional" }
247 },
248 {
249 "name": "proc0 ioring temp",
250 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
251 "property": { "name": "Functional" }
252 },
253 {
254 "name": "proc1 ioring temp",
255 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
256 "property": { "name": "Functional" }
257 },
258 {
259 "name": "proc2 ioring temp",
260 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
261 "property": { "name": "Functional" }
262 },
263 {
264 "name": "proc3 ioring temp",
265 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
266 "property": { "name": "Functional" }
267 },
268 {
269 "name": "dram temps",
270 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
271 "property": { "name": "Functional" }
272 },
273 {
274 "name": "pmic temps",
275 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
276 "property": { "name": "Functional" }
277 },
278 {
279 "name": "internal memory buffer temps",
280 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
281 "property": { "name": "Functional" }
282 },
283 {
284 "name": "dram and external memory buffer temps",
285 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
286 "property": { "name": "Functional" }
287 },
288 {
289 "name": "external memory buffer temps",
290 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
291 "property": { "name": "Functional" }
292 },
293 {
294 "name": "vdd vrm temps",
295 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
296 "property": { "name": "Functional" }
297 },
298 {
299 "name": "nvme temps",
300 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
301 "property": { "name": "Functional" }
302 },
303 {
304 "name": "planar temps",
305 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
306 "property": { "name": "Functional" }
307 },
308 {
309 "name": "flett temps",
310 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
311 "property": { "name": "Functional" }
312 },
313 {
314 "name": "pcie cable card temps",
315 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
316 "property": { "name": "Functional" }
317 },
318 {
319 "name": "ambient temp",
320 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
321 "property": { "name": "Functional" }
322 }
323 ],
324 "triggers": [
325 {
326 "class": "signal",
327 "signal": "properties_changed"
328 },
329 {
330 "class": "signal",
331 "signal": "interfaces_added"
332 },
333 {
334 "class": "signal",
335 "signal": "interfaces_removed"
336 },
337 {
338 "class": "init",
339 "method": "get_properties"
340 }
341 ],
342 "actions": [
343 {
344 "name": "count_state_floor",
345 "count": 1,
346 "state": false,
347 "floor": 10400
348 }
349 ]
350 },
351 {
352 "name": "Set Proc 0 Core DVFS parameter",
353 "groups": [
354 {
355 "name": "proc 0 core dvfs temp",
356 "interface": "xyz.openbmc_project.Sensor.Value",
357 "property": { "name": "Value" }
358 }
359 ],
360 "triggers": [
361 {
362 "class": "init",
363 "method": "get_properties"
364 },
365 {
366 "class": "signal",
367 "signal": "interfaces_added"
368 },
369 {
370 "class": "signal",
371 "signal": "properties_changed"
372 }
373 ],
374 "actions": [
375 {
376 "name": "set_parameter_from_group_max",
377 "parameter_name": "proc_0_core_dvfs_increase_temp",
378 "modifier": {
379 "operator": "minus",
380 "value": 10
381 }
382 },
383 {
384 "name": "set_parameter_from_group_max",
385 "parameter_name": "proc_0_core_dvfs_decrease_temp",
386 "modifier": {
387 "operator": "minus",
388 "value": 13
389 }
390 }
391 ]
392 },
393 {
394 "name": "Set Proc 1 Core DVFS parameter",
395 "groups": [
396 {
397 "name": "proc 1 core dvfs temp",
398 "interface": "xyz.openbmc_project.Sensor.Value",
399 "property": { "name": "Value" }
400 }
401 ],
402 "triggers": [
403 {
404 "class": "init",
405 "method": "get_properties"
406 },
407 {
408 "class": "signal",
409 "signal": "interfaces_added"
410 },
411 {
412 "class": "signal",
413 "signal": "properties_changed"
414 }
415 ],
416 "actions": [
417 {
418 "name": "set_parameter_from_group_max",
419 "parameter_name": "proc_1_core_dvfs_increase_temp",
420 "modifier": {
421 "operator": "minus",
422 "value": 10
423 }
424 },
425 {
426 "name": "set_parameter_from_group_max",
427 "parameter_name": "proc_1_core_dvfs_decrease_temp",
428 "modifier": {
429 "operator": "minus",
430 "value": 13
431 }
432 }
433 ]
434 },
435 {
436 "name": "Set Proc 2 Core DVFS parameter",
437 "groups": [
438 {
439 "name": "proc 2 core dvfs temp",
440 "interface": "xyz.openbmc_project.Sensor.Value",
441 "property": { "name": "Value" }
442 }
443 ],
444 "triggers": [
445 {
446 "class": "init",
447 "method": "get_properties"
448 },
449 {
450 "class": "signal",
451 "signal": "interfaces_added"
452 },
453 {
454 "class": "signal",
455 "signal": "properties_changed"
456 }
457 ],
458 "actions": [
459 {
460 "name": "set_parameter_from_group_max",
461 "parameter_name": "proc_2_core_dvfs_increase_temp",
462 "modifier": {
463 "operator": "minus",
464 "value": 10
465 }
466 },
467 {
468 "name": "set_parameter_from_group_max",
469 "parameter_name": "proc_2_core_dvfs_decrease_temp",
470 "modifier": {
471 "operator": "minus",
472 "value": 13
473 }
474 }
475 ]
476 },
477 {
478 "name": "Set Proc 3 Core DVFS parameter",
479 "groups": [
480 {
481 "name": "proc 3 core dvfs temp",
482 "interface": "xyz.openbmc_project.Sensor.Value",
483 "property": { "name": "Value" }
484 }
485 ],
486 "triggers": [
487 {
488 "class": "init",
489 "method": "get_properties"
490 },
491 {
492 "class": "signal",
493 "signal": "interfaces_added"
494 },
495 {
496 "class": "signal",
497 "signal": "properties_changed"
498 }
499 ],
500 "actions": [
501 {
502 "name": "set_parameter_from_group_max",
503 "parameter_name": "proc_3_core_dvfs_increase_temp",
504 "modifier": {
505 "operator": "minus",
506 "value": 10
507 }
508 },
509 {
510 "name": "set_parameter_from_group_max",
511 "parameter_name": "proc_3_core_dvfs_decrease_temp",
512 "modifier": {
513 "operator": "minus",
514 "value": 13
515 }
516 }
517 ]
518 },
519 {
520 "name": "Set Proc 0 IO Ring DVFS parameter",
521 "groups": [
522 {
523 "name": "proc 0 ioring dvfs temp",
524 "interface": "xyz.openbmc_project.Sensor.Value",
525 "property": { "name": "Value" }
526 }
527 ],
528 "triggers": [
529 {
530 "class": "init",
531 "method": "get_properties"
532 },
533 {
534 "class": "signal",
535 "signal": "interfaces_added"
536 },
537 {
538 "class": "signal",
539 "signal": "properties_changed"
540 }
541 ],
542 "actions": [
543 {
544 "name": "set_parameter_from_group_max",
545 "parameter_name": "proc_0_ioring_dvfs_increase_temp",
546 "modifier": {
547 "operator": "minus",
548 "value": 10
549 }
550 },
551 {
552 "name": "set_parameter_from_group_max",
553 "parameter_name": "proc_0_ioring_dvfs_decrease_temp",
554 "modifier": {
555 "operator": "minus",
556 "value": 13
557 }
558 }
559 ]
560 },
561
562 {
563 "name": "Set Proc 1 IO Ring DVFS parameter",
564 "groups": [
565 {
566 "name": "proc 1 ioring dvfs temp",
567 "interface": "xyz.openbmc_project.Sensor.Value",
568 "property": { "name": "Value" }
569 }
570 ],
571 "triggers": [
572 {
573 "class": "init",
574 "method": "get_properties"
575 },
576 {
577 "class": "signal",
578 "signal": "interfaces_added"
579 },
580 {
581 "class": "signal",
582 "signal": "properties_changed"
583 }
584 ],
585 "actions": [
586 {
587 "name": "set_parameter_from_group_max",
588 "parameter_name": "proc_1_ioring_dvfs_increase_temp",
589 "modifier": {
590 "operator": "minus",
591 "value": 10
592 }
593 },
594 {
595 "name": "set_parameter_from_group_max",
596 "parameter_name": "proc_1_ioring_dvfs_decrease_temp",
597 "modifier": {
598 "operator": "minus",
599 "value": 13
600 }
601 }
602 ]
603 },
604 {
605 "name": "Set Proc 2 IO Ring DVFS parameter",
606 "groups": [
607 {
608 "name": "proc 2 ioring dvfs temp",
609 "interface": "xyz.openbmc_project.Sensor.Value",
610 "property": { "name": "Value" }
611 }
612 ],
613 "triggers": [
614 {
615 "class": "init",
616 "method": "get_properties"
617 },
618 {
619 "class": "signal",
620 "signal": "interfaces_added"
621 },
622 {
623 "class": "signal",
624 "signal": "properties_changed"
625 }
626 ],
627 "actions": [
628 {
629 "name": "set_parameter_from_group_max",
630 "parameter_name": "proc_2_ioring_dvfs_increase_temp",
631 "modifier": {
632 "operator": "minus",
633 "value": 10
634 }
635 },
636 {
637 "name": "set_parameter_from_group_max",
638 "parameter_name": "proc_2_ioring_dvfs_decrease_temp",
639 "modifier": {
640 "operator": "minus",
641 "value": 13
642 }
643 }
644 ]
645 },
646 {
647 "name": "Set Proc 3 IO Ring DVFS parameter",
648 "groups": [
649 {
650 "name": "proc 3 ioring dvfs temp",
651 "interface": "xyz.openbmc_project.Sensor.Value",
652 "property": { "name": "Value" }
653 }
654 ],
655 "triggers": [
656 {
657 "class": "init",
658 "method": "get_properties"
659 },
660 {
661 "class": "signal",
662 "signal": "interfaces_added"
663 },
664 {
665 "class": "signal",
666 "signal": "properties_changed"
667 }
668 ],
669 "actions": [
670 {
671 "name": "set_parameter_from_group_max",
672 "parameter_name": "proc_3_ioring_dvfs_increase_temp",
673 "modifier": {
674 "operator": "minus",
675 "value": 10
676 }
677 },
678 {
679 "name": "set_parameter_from_group_max",
680 "parameter_name": "proc_3_ioring_dvfs_decrease_temp",
681 "modifier": {
682 "operator": "minus",
683 "value": 13
684 }
685 }
686 ]
687 },
688 {
689 // Collect group temperatures each iteration the repeating timer expires
690 "name": "Fan control timer loop",
691 "groups": [
692 {
693 "name": "proc0 core temps",
694 "interface": "xyz.openbmc_project.Sensor.Value",
695 "property": { "name": "Value" }
696 },
697 {
698 "name": "proc1 core temps",
699 "interface": "xyz.openbmc_project.Sensor.Value",
700 "property": { "name": "Value" }
701 },
702 {
703 "name": "proc2 core temps",
704 "interface": "xyz.openbmc_project.Sensor.Value",
705 "property": { "name": "Value" }
706 },
707 {
708 "name": "proc3 core temps",
709 "interface": "xyz.openbmc_project.Sensor.Value",
710 "property": { "name": "Value" }
711 },
712 {
713 "name": "proc0 ioring temp",
714 "interface": "xyz.openbmc_project.Sensor.Value",
715 "property": { "name": "Value" }
716 },
717 {
718 "name": "proc1 ioring temp",
719 "interface": "xyz.openbmc_project.Sensor.Value",
720 "property": { "name": "Value" }
721 },
722 {
723 "name": "proc2 ioring temp",
724 "interface": "xyz.openbmc_project.Sensor.Value",
725 "property": { "name": "Value" }
726 },
727 {
728 "name": "proc3 ioring temp",
729 "interface": "xyz.openbmc_project.Sensor.Value",
730 "property": { "name": "Value" }
731 },
732 {
733 "name": "dram temps",
734 "interface": "xyz.openbmc_project.Sensor.Value",
735 "property": { "name": "Value" }
736 },
737 {
738 "name": "pmic temps",
739 "interface": "xyz.openbmc_project.Sensor.Value",
740 "property": { "name": "Value" }
741 },
742 {
743 "name": "internal memory buffer temps",
744 "interface": "xyz.openbmc_project.Sensor.Value",
745 "property": { "name": "Value" }
746 },
747 {
748 "name": "dram and external memory buffer temps",
749 "interface": "xyz.openbmc_project.Sensor.Value",
750 "property": { "name": "Value" }
751 },
752 {
753 "name": "external memory buffer temps",
754 "interface": "xyz.openbmc_project.Sensor.Value",
755 "property": { "name": "Value" }
756 },
757 {
758 "name": "vdd vrm temps",
759 "interface": "xyz.openbmc_project.Sensor.Value",
760 "property": { "name": "Value" }
761 },
762 {
763 "name": "nvme temps",
764 "interface": "xyz.openbmc_project.Sensor.Value",
765 "property": { "name": "Value" }
766 },
767 {
768 "name": "planar temps",
769 "interface": "xyz.openbmc_project.Sensor.Value",
770 "property": { "name": "Value" }
771 },
772 {
773 "name": "flett temps",
774 "interface": "xyz.openbmc_project.Sensor.Value",
775 "property": { "name": "Value" }
776 },
777 {
778 "name": "pcie cable card temps",
779 "interface": "xyz.openbmc_project.Sensor.Value",
780 "property": { "name": "Value" }
781 }
782 ],
783 "triggers": [
784 {
785 "class": "timer",
786 "type": "repeating",
787 "interval": 2000000,
788 "preload_groups": true
789 }
790 ],
791 "actions": [
792 {
793 "name": "set_net_increase_target",
794 "groups": [
795 {
796 "name": "proc0 core temps",
797 "interface": "xyz.openbmc_project.Sensor.Value",
798 "property": { "name": "Value" }
799 }
800 ],
801 "state_parameter_name": "proc_0_core_dvfs_increase_temp",
802 "delta": 300
803 },
804 {
805 "name": "set_net_increase_target",
806 "groups": [
807 {
808 "name": "proc1 core temps",
809 "interface": "xyz.openbmc_project.Sensor.Value",
810 "property": { "name": "Value" }
811 }
812 ],
813 "state_parameter_name": "proc_1_core_dvfs_increase_temp",
814 "delta": 300
815 },
816 {
817 "name": "set_net_increase_target",
818 "groups": [
819 {
820 "name": "proc2 core temps",
821 "interface": "xyz.openbmc_project.Sensor.Value",
822 "property": { "name": "Value" }
823 }
824 ],
825 "state_parameter_name": "proc_2_core_dvfs_increase_temp",
826 "delta": 300
827 },
828 {
829 "name": "set_net_increase_target",
830 "groups": [
831 {
832 "name": "proc3 core temps",
833 "interface": "xyz.openbmc_project.Sensor.Value",
834 "property": { "name": "Value" }
835 }
836 ],
837 "state_parameter_name": "proc_3_core_dvfs_increase_temp",
838 "delta": 300
839 },
840 {
841 "name": "set_net_increase_target",
842 "groups": [
843 {
844 "name": "proc0 ioring temp",
845 "interface": "xyz.openbmc_project.Sensor.Value",
846 "property": { "name": "Value" }
847 }
848 ],
849 "state_parameter_name": "proc_0_ioring_dvfs_increase_temp",
850 "delta": 300
851 },
852 {
853 "name": "set_net_increase_target",
854 "groups": [
855 {
856 "name": "proc1 ioring temp",
857 "interface": "xyz.openbmc_project.Sensor.Value",
858 "property": { "name": "Value" }
859 }
860 ],
861 "state_parameter_name": "proc_1_ioring_dvfs_increase_temp",
862 "delta": 300
863 },
864 {
865 "name": "set_net_increase_target",
866 "groups": [
867 {
868 "name": "proc2 ioring temp",
869 "interface": "xyz.openbmc_project.Sensor.Value",
870 "property": { "name": "Value" }
871 }
872 ],
873 "state_parameter_name": "proc_2_ioring_dvfs_increase_temp",
874 "delta": 300
875 },
876 {
877 "name": "set_net_increase_target",
878 "groups": [
879 {
880 "name": "proc3 ioring temp",
881 "interface": "xyz.openbmc_project.Sensor.Value",
882 "property": { "name": "Value" }
883 }
884 ],
885 "state_parameter_name": "proc_3_ioring_dvfs_increase_temp",
886 "delta": 300
887 },
888 {
889 "name": "set_net_increase_target",
890 "groups": [
891 {
892 "name": "dram temps",
893 "interface": "xyz.openbmc_project.Sensor.Value",
894 "property": { "name": "Value" }
895 }
896 ],
897 "state": 63.0,
898 "delta": 200
899 },
900 {
901 "name": "set_net_increase_target",
902 "groups": [
903 {
904 "name": "pmic temps",
905 "interface": "xyz.openbmc_project.Sensor.Value",
906 "property": { "name": "Value" }
907 }
908 ],
909 "state": 65.0,
910 "delta": 200
911 },
912 {
913 "name": "set_net_increase_target",
914 "groups": [
915 {
916 "name": "internal memory buffer temps",
917 "interface": "xyz.openbmc_project.Sensor.Value",
918 "property": { "name": "Value" }
919 }
920 ],
921 "state": 74.0,
922 "delta": 200
923 },
924 {
925 "name": "set_net_increase_target",
926 "groups": [
927 {
928 "name": "dram and external memory buffer temps",
929 "interface": "xyz.openbmc_project.Sensor.Value",
930 "property": { "name": "Value" }
931 }
932 ],
933 "state": 66.0,
934 "delta": 200
935 },
936 {
937 "name": "set_net_increase_target",
938 "groups": [
939 {
940 "name": "external memory buffer temps",
941 "interface": "xyz.openbmc_project.Sensor.Value",
942 "property": { "name": "Value" }
943 }
944 ],
945 "state": 60.0,
946 "delta": 200
947 },
948 {
949 "name": "set_net_increase_target",
950 "groups": [
951 {
952 "name": "vdd vrm temps",
953 "interface": "xyz.openbmc_project.Sensor.Value",
954 "property": { "name": "Value" }
955 }
956 ],
957 "state": 82.0,
958 "delta": 300
959 },
960 {
961 "name": "set_net_increase_target",
962 "groups": [
963 {
964 "name": "nvme temps",
965 "interface": "xyz.openbmc_project.Sensor.Value",
966 "property": { "name": "Value" }
967 }
968 ],
969 "state": 58.0,
970 "delta": 200
971 },
972 {
973 "name": "set_net_increase_target",
974 "groups": [
975 {
976 "name": "planar temps",
977 "interface": "xyz.openbmc_project.Sensor.Value",
978 "property": { "name": "Value" }
979 }
980 ],
981 "state": 65.0,
982 "delta": 255
983 },
984 {
985 "name": "set_net_increase_target",
986 "groups": [
987 {
988 "name": "flett temps",
989 "interface": "xyz.openbmc_project.Sensor.Value",
990 "property": { "name": "Value" }
991 }
992 ],
993 "state": 80.0,
994 "delta": 200
995 },
996 {
997 "name": "set_net_increase_target",
998 "groups": [
999 {
1000 "name": "pcie cable card temps",
1001 "interface": "xyz.openbmc_project.Sensor.Value",
1002 "property": { "name": "Value" }
1003 }
1004 ],
1005 "state": 70.0,
1006 "delta": 255
1007 },
1008 {
1009 "name": "set_net_decrease_target",
1010 "groups": [
1011 {
1012 "name": "proc0 core temps",
1013 "interface": "xyz.openbmc_project.Sensor.Value",
1014 "property": { "name": "Value" }
1015 }
1016 ],
1017 "state_parameter_name": "proc_0_core_dvfs_decrease_temp",
1018 "delta": 50
1019 },
1020 {
1021 "name": "set_net_decrease_target",
1022 "groups": [
1023 {
1024 "name": "proc1 core temps",
1025 "interface": "xyz.openbmc_project.Sensor.Value",
1026 "property": { "name": "Value" }
1027 }
1028 ],
1029 "state_parameter_name": "proc_1_core_dvfs_decrease_temp",
1030 "delta": 50
1031 },
1032 {
1033 "name": "set_net_decrease_target",
1034 "groups": [
1035 {
1036 "name": "proc2 core temps",
1037 "interface": "xyz.openbmc_project.Sensor.Value",
1038 "property": { "name": "Value" }
1039 }
1040 ],
1041 "state_parameter_name": "proc_2_core_dvfs_decrease_temp",
1042 "delta": 50
1043 },
1044 {
1045 "name": "set_net_decrease_target",
1046 "groups": [
1047 {
1048 "name": "proc3 core temps",
1049 "interface": "xyz.openbmc_project.Sensor.Value",
1050 "property": { "name": "Value" }
1051 }
1052 ],
1053 "state_parameter_name": "proc_3_core_dvfs_decrease_temp",
1054 "delta": 50
1055 },
1056 {
1057 "name": "set_net_decrease_target",
1058 "groups": [
1059 {
1060 "name": "proc0 ioring temp",
1061 "interface": "xyz.openbmc_project.Sensor.Value",
1062 "property": { "name": "Value" }
1063 }
1064 ],
1065 "state_parameter_name": "proc_0_ioring_dvfs_decrease_temp",
1066 "delta": 50
1067 },
1068 {
1069 "name": "set_net_decrease_target",
1070 "groups": [
1071 {
1072 "name": "proc1 ioring temp",
1073 "interface": "xyz.openbmc_project.Sensor.Value",
1074 "property": { "name": "Value" }
1075 }
1076 ],
1077 "state_parameter_name": "proc_1_ioring_dvfs_decrease_temp",
1078 "delta": 50
1079 },
1080 {
1081 "name": "set_net_decrease_target",
1082 "groups": [
1083 {
1084 "name": "proc2 ioring temp",
1085 "interface": "xyz.openbmc_project.Sensor.Value",
1086 "property": { "name": "Value" }
1087 }
1088 ],
1089 "state_parameter_name": "proc_2_ioring_dvfs_decrease_temp",
1090 "delta": 50
1091 },
1092 {
1093 "name": "set_net_decrease_target",
1094 "groups": [
1095 {
1096 "name": "proc3 ioring temp",
1097 "interface": "xyz.openbmc_project.Sensor.Value",
1098 "property": { "name": "Value" }
1099 }
1100 ],
1101 "state_parameter_name": "proc_3_ioring_dvfs_decrease_temp",
1102 "delta": 50
1103 },
1104 {
1105 "name": "set_net_decrease_target",
1106 "groups": [
1107 {
1108 "name": "dram temps",
1109 "interface": "xyz.openbmc_project.Sensor.Value",
1110 "property": { "name": "Value" }
1111 }
1112 ],
1113 "state": 60.0,
1114 "delta": 50
1115 },
1116 {
1117 "name": "set_net_decrease_target",
1118 "groups": [
1119 {
1120 "name": "pmic temps",
1121 "interface": "xyz.openbmc_project.Sensor.Value",
1122 "property": { "name": "Value" }
1123 }
1124 ],
1125 "state": 62.0,
1126 "delta": 50
1127 },
1128 {
1129 "name": "set_net_decrease_target",
1130 "groups": [
1131 {
1132 "name": "internal memory buffer temps",
1133 "interface": "xyz.openbmc_project.Sensor.Value",
1134 "property": { "name": "Value" }
1135 }
1136 ],
1137 "state": 71.0,
1138 "delta": 50
1139 },
1140 {
1141 "name": "set_net_decrease_target",
1142 "groups": [
1143 {
1144 "name": "dram and external memory buffer temps",
1145 "interface": "xyz.openbmc_project.Sensor.Value",
1146 "property": { "name": "Value" }
1147 }
1148 ],
1149 "state": 63.0,
1150 "delta": 50
1151 },
1152 {
1153 "name": "set_net_decrease_target",
1154 "groups": [
1155 {
1156 "name": "external memory buffer temps",
1157 "interface": "xyz.openbmc_project.Sensor.Value",
1158 "property": { "name": "Value" }
1159 }
1160 ],
1161 "state": 57.0,
1162 "delta": 50
1163 },
1164 {
1165 "name": "set_net_decrease_target",
1166 "groups": [
1167 {
1168 "name": "vdd vrm temps",
1169 "interface": "xyz.openbmc_project.Sensor.Value",
1170 "property": { "name": "Value" }
1171 }
1172 ],
1173 "state": 79.0,
1174 "delta": 50
1175 },
1176 {
1177 "name": "set_net_decrease_target",
1178 "groups": [
1179 {
1180 "name": "nvme temps",
1181 "interface": "xyz.openbmc_project.Sensor.Value",
1182 "property": { "name": "Value" }
1183 }
1184 ],
1185 "state": 55.0,
1186 "delta": 50
1187 },
1188 {
1189 "name": "set_net_decrease_target",
1190 "groups": [
1191 {
1192 "name": "planar temps",
1193 "interface": "xyz.openbmc_project.Sensor.Value",
1194 "property": { "name": "Value" }
1195 }
1196 ],
1197 "state": 60.0,
1198 "delta": 50
1199 },
1200 {
1201 "name": "set_net_decrease_target",
1202 "groups": [
1203 {
1204 "name": "flett temps",
1205 "interface": "xyz.openbmc_project.Sensor.Value",
1206 "property": { "name": "Value" }
1207 }
1208 ],
1209 "state": 75.0,
1210 "delta": 40
1211 },
1212 {
1213 "name": "set_net_decrease_target",
1214 "groups": [
1215 {
1216 "name": "pcie cable card temps",
1217 "interface": "xyz.openbmc_project.Sensor.Value",
1218 "property": { "name": "Value" }
1219 }
1220 ],
1221 "state": 65.0,
1222 "delta": 50
1223 }
1224 ]
1225 },
1226 {
1227 // Remove NVMe temperature objects from cache when they are removed from
1228 // dbus. There's no need to react to their removal.
1229 "name": "remove nvme objects",
1230 "groups": [
1231 {
1232 "name": "nvme temps",
1233 "interface": "xyz.openbmc_project.Sensor.Value",
1234 "property": { "name": "Value" }
1235 },
1236 {
1237 "name": "nvme temps",
1238 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
1239 "property": { "name": "Functional" }
1240 }
1241 ],
1242 "triggers": [
1243 {
1244 "class": "signal",
1245 "signal": "interfaces_removed"
1246 }
1247 ]
1248 },
1249 {
1250 "name": "set pcie floor index",
1251 "groups": [
1252 {
1253 "name": "pcie slots",
1254 "interface": "xyz.openbmc_project.State.Decorator.PowerState",
1255 "property": {
1256 "name": "PowerState"
1257 }
1258 },
1259 {
1260 "name": "pcie cards",
1261 "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
1262 "property": {
1263 "name": "Function0DeviceId"
1264 }
1265 },
1266 {
1267 "name": "pcie cards",
1268 "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
1269 "property": {
1270 "name": "Function0VendorId"
1271 }
1272 },
1273 {
1274 "name": "pcie cards",
1275 "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
1276 "property": {
1277 "name": "Function0SubsystemId"
1278 }
1279 },
1280 {
1281 "name": "pcie cards",
1282 "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
1283 "property": {
1284 "name": "Function0SubsystemVendorId"
1285 }
1286 }
1287 ],
1288 "triggers": [
1289 {
1290 "class": "init",
1291 "method": "get_properties"
1292 },
1293 {
1294 "class": "signal",
1295 "signal": "properties_changed"
1296 },
1297 {
1298 "class": "signal",
1299 "signal": "interfaces_added"
1300 }
1301 ],
1302 "actions": [
1303 {
1304 "name": "pcie_card_floors",
1305 "use_config_specific_files": true,
1306 "settle_time": 2
1307 }
1308 ]
1309 },
1310 {
1311 "name": "Set altitude offset parameter",
1312 "groups": [
1313 {
1314 "name": "altitude",
1315 "interface": "xyz.openbmc_project.Sensor.Value",
1316 "property": { "name": "Value" }
1317 }
1318 ],
1319 "triggers": [
1320 {
1321 "class": "init",
1322 "method": "get_properties"
1323 },
1324 {
1325 "class": "signal",
1326 "signal": "interfaces_added"
1327 },
1328 {
1329 // Refresh altitude every 24hrs
1330 "class": "timer",
1331 "type": "repeating",
1332 "interval": 86400000000,
1333 "preload_groups": true
1334 }
1335 ],
1336 "actions": [
1337 {
1338 "name": "set_parameter_from_group_max",
1339 "parameter_name": "altitude_offset",
1340 "modifier": {
1341 "operator": "less_than",
1342 "default_value": 3000,
1343 "value": [
1344 { "arg_value": 1000, "parameter_value": 0 },
1345 { "arg_value": 1900, "parameter_value": 1000 },
1346 { "arg_value": 2800, "parameter_value": 2000 }
1347 ]
1348 }
1349 }
1350 ]
1351 },
1352 {
1353 "name": "Fan floors",
1354 "groups": [
1355 {
1356 "name": "ambient temp",
1357 "interface": "xyz.openbmc_project.Sensor.Value",
1358 "property": { "name": "Value" }
1359 },
1360 {
1361 "name": "power mode",
1362 "interface": "xyz.openbmc_project.Control.Power.Mode",
1363 "property": { "name": "PowerMode" }
1364 }
1365 ],
1366 "triggers": [
1367 {
1368 "class": "init",
1369 "method": "get_properties"
1370 },
1371 {
1372 "class": "signal",
1373 "signal": "properties_changed"
1374 },
1375 {
1376 "class": "signal",
1377 "signal": "interfaces_added"
1378 },
1379 {
1380 "class": "parameter",
1381 "parameter": "pcie_floor_index"
1382 },
1383 {
1384 "class": "parameter",
1385 "parameter": "altitude_offset"
1386 }
1387 ],
1388 "actions": [
1389 {
1390 "name": "mapped_floor",
1391 "key_group": "ambient temp",
1392 "fan_floors": [
1393 {
1394 // Entry valid for ambient temp < 27
1395 "key": 27,
1396 "default_floor": 5000,
1397 "floor_offset_parameter": "altitude_offset",
1398 "floors": [
1399 {
1400 "parameter": "pcie_floor_index",
1401 "floors": [
1402 { "value": 1, "floor": 7000 },
1403 { "value": 2, "floor": 8000 },
1404 { "value": 3, "floor": 9000 }
1405 ]
1406 }
1407 ]
1408 },
1409 {
1410 // Entry valid for ambient temp < 32
1411 "key": 32,
1412 "default_floor": 6000,
1413 "floor_offset_parameter": "altitude_offset",
1414 "floors": [
1415 {
1416 "parameter": "pcie_floor_index",
1417 "floors": [
1418 { "value": 1, "floor": 8000 },
1419 { "value": 2, "floor": 9000 },
1420 { "value": 3, "floor": 9500 }
1421 ]
1422 }
1423 ]
1424 },
1425 {
1426 // Entry valid for ambient temp < 37
1427 "key": 37,
1428 "default_floor": 7000,
1429 "floor_offset_parameter": "altitude_offset",
1430 "floors": [
1431 {
1432 "parameter": "pcie_floor_index",
1433 "floors": [
1434 { "value": 1, "floor": 9000 },
1435 { "value": 2, "floor": 9500 },
1436 { "value": 3, "floor": 10400 }
1437 ]
1438 }
1439 ]
1440 },
1441 {
1442 // Entry valid for ambient temp < 42
1443 "key": 42,
1444 "default_floor": 8000,
1445 "floor_offset_parameter": "altitude_offset",
1446 "floors": [
1447 {
1448 "parameter": "pcie_floor_index",
1449 "floors": [
1450 { "value": 1, "floor": 9500 },
1451 { "value": 2, "floor": 10400 },
1452 { "value": 3, "floor": 10400 }
1453 ]
1454 }
1455 ]
1456 }
1457 ]
1458 }
1459 ]
1460 }
Matthew Barth23dcffd2021-10-19 13:36:51 -05001461]