blob: 7714e3718b5b753b6ad2f921608505e8c38f1204 [file] [log] [blame]
Matt Spinlera75f61e2022-05-11 13:26:52 -05001[
2 {
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,
Matt Spinlercd6c6682022-06-03 15:26:20 -050027 "target": 11000
Matt Spinlera75f61e2022-05-11 13:26:52 -050028 }
29 ]
30 },
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 "triggers": [
57 {
58 "class": "init",
59 "method": "get_properties"
60 },
61 {
62 "class": "signal",
63 "signal": "properties_changed"
64 }
65 ],
66 "actions": [
67 {
68 "name": "count_state_before_target",
69 "count": 2,
70 "state": false,
Matt Spinlercd6c6682022-06-03 15:26:20 -050071 "target": 11000
Matt Spinlera75f61e2022-05-11 13:26:52 -050072 }
73 ]
74 },
75 {
76 // Hold fans at the given target when any critical service
77 // is not running for 5 seconds.
78 "name": "service(s) missing",
79 "groups": [
80 {
81 "name": "fan inventory",
82 "interface": "xyz.openbmc_project.Inventory.Item",
83 "property": { "name": "Present" }
84 },
85 {
86 "name": "occ objects",
87 "interface": "org.open_power.OCC.Status",
88 "property": { "name": "OccActive" }
89 },
90 {
91 "name": "nvme temps",
92 "interface": "xyz.openbmc_project.Sensor.Value",
93 "property": { "name": "Value" }
94 },
95 {
96 "name": "planar temps",
97 "interface": "xyz.openbmc_project.Sensor.Value",
98 "property": { "name": "Value" }
99 },
100 {
101 "name": "pcie cable card temps",
102 "interface": "xyz.openbmc_project.Sensor.Value",
103 "property": { "name": "Value" }
104 },
105 {
106 "name": "ambient temp",
107 "interface": "xyz.openbmc_project.Sensor.Value",
108 "property": { "name": "Value" }
109 },
110 {
111 "name": "altitude",
112 "interface": "xyz.openbmc_project.Sensor.Value",
113 "property": { "name": "Value" }
114 }
115 ],
116 "triggers": [
117 {
118 "class": "init",
119 "method": "name_has_owner"
120 },
121 {
122 "class": "signal",
123 "signal": "name_owner_changed"
124 }
125 ],
126 "actions": [
127 {
128 "name": "call_actions_based_on_timer",
129 "timer": {
130 "interval": 5000000,
131 "type": "oneshot"
132 },
133 "actions": [
134 {
135 "name": "set_target_on_missing_owner",
136 "groups": [
137 {
138 "name": "fan inventory",
139 "interface": "xyz.openbmc_project.Inventory.Item",
140 "property": { "name": "Present" }
141 },
142 {
143 "name": "occ objects",
144 "interface": "org.open_power.OCC.Status",
145 "property": { "name": "OccActive" }
146 },
147 {
148 "name": "nvme temps",
149 "interface": "xyz.openbmc_project.Sensor.Value",
150 "property": { "name": "Value" }
151 },
152 {
153 "name": "planar temps",
154 "interface": "xyz.openbmc_project.Sensor.Value",
155 "property": { "name": "Value" }
156 },
157 {
158 "name": "pcie cable card temps",
159 "interface": "xyz.openbmc_project.Sensor.Value",
160 "property": { "name": "Value" }
161 },
162 {
163 "name": "ambient temp",
164 "interface": "xyz.openbmc_project.Sensor.Value",
165 "property": { "name": "Value" }
166 }
167 ],
168 "target": 9700
169 }
170 ]
171 }
172 ]
173 },
174 {
175 // Set a fan floor if an OCC isn't active
176 "name": "Non-active OCC(s)",
177 "groups": [
178 {
179 "name": "occ objects",
180 "interface": "org.open_power.OCC.Status",
181 "property": {
182 "name": "OccActive"
183 }
184 }
185 ],
186 "triggers": [
187 {
188 "class": "signal",
189 "signal": "properties_changed"
190 },
191 {
192 "class": "signal",
193 "signal": "interfaces_added"
194 },
195 {
196 "class": "init",
197 "method": "get_properties"
198 }
199 ],
200 "actions": [
201 {
202 "name": "count_state_floor",
203 "count": 1,
204 "state": false,
Matt Spinlercd6c6682022-06-03 15:26:20 -0500205 "floor": 11000
Matt Spinlera75f61e2022-05-11 13:26:52 -0500206 }
207 ]
208 },
209 {
210 // Set a raised fan floor when any temperature or altitude sensor is
211 // nonfunctional
212 "name": "Nonfunctional temperature sensors",
213 "groups": [
214 {
215 "name": "proc0 core temps",
216 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
217 "property": { "name": "Functional" }
218 },
219 {
220 "name": "proc1 core temps",
221 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
222 "property": { "name": "Functional" }
223 },
224 {
225 "name": "proc2 core temps",
226 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
227 "property": { "name": "Functional" }
228 },
229 {
230 "name": "proc3 core temps",
231 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
232 "property": { "name": "Functional" }
233 },
234 {
235 "name": "proc4 core temps",
236 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
237 "property": { "name": "Functional" }
238 },
239 {
240 "name": "proc5 core temps",
241 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
242 "property": { "name": "Functional" }
243 },
244 {
245 "name": "proc6 core temps",
246 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
247 "property": { "name": "Functional" }
248 },
249 {
250 "name": "proc7 core temps",
251 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
252 "property": { "name": "Functional" }
253 },
254 {
255 "name": "proc0 ioring temp",
256 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
257 "property": { "name": "Functional" }
258 },
259 {
260 "name": "proc1 ioring temp",
261 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
262 "property": { "name": "Functional" }
263 },
264 {
265 "name": "proc2 ioring temp",
266 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
267 "property": { "name": "Functional" }
268 },
269 {
270 "name": "proc3 ioring temp",
271 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
272 "property": { "name": "Functional" }
273 },
274 {
275 "name": "proc4 ioring temp",
276 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
277 "property": { "name": "Functional" }
278 },
279 {
280 "name": "proc5 ioring temp",
281 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
282 "property": { "name": "Functional" }
283 },
284 {
285 "name": "proc6 ioring temp",
286 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
287 "property": { "name": "Functional" }
288 },
289 {
290 "name": "proc7 ioring temp",
291 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
292 "property": { "name": "Functional" }
293 },
294 {
295 "name": "dram temps",
296 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
297 "property": { "name": "Functional" }
298 },
299 {
300 "name": "pmic temps",
301 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
302 "property": { "name": "Functional" }
303 },
304 {
305 "name": "internal memory buffer temps",
306 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
307 "property": { "name": "Functional" }
308 },
309 {
310 "name": "dram and external memory buffer temps",
311 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
312 "property": { "name": "Functional" }
313 },
314 {
315 "name": "external memory buffer temps",
316 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
317 "property": { "name": "Functional" }
318 },
319 {
320 "name": "vdd vrm temps",
321 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
322 "property": { "name": "Functional" }
323 },
324 {
325 "name": "nvme temps",
326 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
327 "property": { "name": "Functional" }
328 },
329 {
330 "name": "planar temps",
331 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
332 "property": { "name": "Functional" }
333 },
334 {
335 "name": "pcie cable card temps",
336 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
337 "property": { "name": "Functional" }
338 },
339 {
340 "name": "ambient temp",
341 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
342 "property": { "name": "Functional" }
343 },
344 {
345 "name": "altitude",
346 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
347 "property": { "name": "Functional" }
348 }
349 ],
350 "triggers": [
351 {
352 "class": "signal",
353 "signal": "properties_changed"
354 },
355 {
356 "class": "signal",
357 "signal": "interfaces_added"
358 },
359 {
360 "class": "signal",
361 "signal": "interfaces_removed"
362 },
363 {
364 "class": "init",
365 "method": "get_properties"
366 }
367 ],
368 "actions": [
369 {
370 "name": "count_state_floor",
371 "count": 1,
372 "state": false,
Matt Spinlercd6c6682022-06-03 15:26:20 -0500373 "floor": 11000
Matt Spinlera75f61e2022-05-11 13:26:52 -0500374 }
375 ]
376 },
377 {
378 "name": "Set Proc 0 Core DVFS parameter",
379 "groups": [
380 {
381 "name": "proc 0 core dvfs temp",
382 "interface": "xyz.openbmc_project.Sensor.Value",
383 "property": { "name": "Value" }
384 }
385 ],
386 "triggers": [
387 {
388 "class": "init",
389 "method": "get_properties"
390 },
391 {
392 "class": "signal",
393 "signal": "interfaces_added"
394 },
395 {
396 "class": "signal",
397 "signal": "properties_changed"
398 }
399 ],
400 "actions": [
401 {
402 "name": "set_parameter_from_group_max",
403 "parameter_name": "proc_0_core_dvfs_increase_temp",
404 "modifier": {
405 "operator": "minus",
406 "value": 7
407 }
408 },
409 {
410 "name": "set_parameter_from_group_max",
411 "parameter_name": "proc_0_core_dvfs_decrease_temp",
412 "modifier": {
413 "operator": "minus",
414 "value": 9
415 }
416 }
417 ]
418 },
419 {
420 "name": "Set Proc 1 Core DVFS parameter",
421 "groups": [
422 {
423 "name": "proc 1 core dvfs temp",
424 "interface": "xyz.openbmc_project.Sensor.Value",
425 "property": { "name": "Value" }
426 }
427 ],
428 "triggers": [
429 {
430 "class": "init",
431 "method": "get_properties"
432 },
433 {
434 "class": "signal",
435 "signal": "interfaces_added"
436 },
437 {
438 "class": "signal",
439 "signal": "properties_changed"
440 }
441 ],
442 "actions": [
443 {
444 "name": "set_parameter_from_group_max",
445 "parameter_name": "proc_1_core_dvfs_increase_temp",
446 "modifier": {
447 "operator": "minus",
448 "value": 7
449 }
450 },
451 {
452 "name": "set_parameter_from_group_max",
453 "parameter_name": "proc_1_core_dvfs_decrease_temp",
454 "modifier": {
455 "operator": "minus",
456 "value": 9
457 }
458 }
459 ]
460 },
461 {
462 "name": "Set Proc 2 Core DVFS parameter",
463 "groups": [
464 {
465 "name": "proc 2 core dvfs temp",
466 "interface": "xyz.openbmc_project.Sensor.Value",
467 "property": { "name": "Value" }
468 }
469 ],
470 "triggers": [
471 {
472 "class": "init",
473 "method": "get_properties"
474 },
475 {
476 "class": "signal",
477 "signal": "interfaces_added"
478 },
479 {
480 "class": "signal",
481 "signal": "properties_changed"
482 }
483 ],
484 "actions": [
485 {
486 "name": "set_parameter_from_group_max",
487 "parameter_name": "proc_2_core_dvfs_increase_temp",
488 "modifier": {
489 "operator": "minus",
490 "value": 7
491 }
492 },
493 {
494 "name": "set_parameter_from_group_max",
495 "parameter_name": "proc_2_core_dvfs_decrease_temp",
496 "modifier": {
497 "operator": "minus",
498 "value": 9
499 }
500 }
501 ]
502 },
503 {
504 "name": "Set Proc 3 Core DVFS parameter",
505 "groups": [
506 {
507 "name": "proc 3 core dvfs temp",
508 "interface": "xyz.openbmc_project.Sensor.Value",
509 "property": { "name": "Value" }
510 }
511 ],
512 "triggers": [
513 {
514 "class": "init",
515 "method": "get_properties"
516 },
517 {
518 "class": "signal",
519 "signal": "interfaces_added"
520 },
521 {
522 "class": "signal",
523 "signal": "properties_changed"
524 }
525 ],
526 "actions": [
527 {
528 "name": "set_parameter_from_group_max",
529 "parameter_name": "proc_3_core_dvfs_increase_temp",
530 "modifier": {
531 "operator": "minus",
532 "value": 7
533 }
534 },
535 {
536 "name": "set_parameter_from_group_max",
537 "parameter_name": "proc_3_core_dvfs_decrease_temp",
538 "modifier": {
539 "operator": "minus",
540 "value": 9
541 }
542 }
543 ]
544 },
545 {
546 "name": "Set Proc 4 Core DVFS parameter",
547 "groups": [
548 {
549 "name": "proc 4 core dvfs temp",
550 "interface": "xyz.openbmc_project.Sensor.Value",
551 "property": { "name": "Value" }
552 }
553 ],
554 "triggers": [
555 {
556 "class": "init",
557 "method": "get_properties"
558 },
559 {
560 "class": "signal",
561 "signal": "interfaces_added"
562 },
563 {
564 "class": "signal",
565 "signal": "properties_changed"
566 }
567 ],
568 "actions": [
569 {
570 "name": "set_parameter_from_group_max",
571 "parameter_name": "proc_4_core_dvfs_increase_temp",
572 "modifier": {
573 "operator": "minus",
574 "value": 7
575 }
576 },
577 {
578 "name": "set_parameter_from_group_max",
579 "parameter_name": "proc_4_core_dvfs_decrease_temp",
580 "modifier": {
581 "operator": "minus",
582 "value": 9
583 }
584 }
585 ]
586 },
587 {
588 "name": "Set Proc 5 Core DVFS parameter",
589 "groups": [
590 {
591 "name": "proc 5 core dvfs temp",
592 "interface": "xyz.openbmc_project.Sensor.Value",
593 "property": { "name": "Value" }
594 }
595 ],
596 "triggers": [
597 {
598 "class": "init",
599 "method": "get_properties"
600 },
601 {
602 "class": "signal",
603 "signal": "interfaces_added"
604 },
605 {
606 "class": "signal",
607 "signal": "properties_changed"
608 }
609 ],
610 "actions": [
611 {
612 "name": "set_parameter_from_group_max",
613 "parameter_name": "proc_5_core_dvfs_increase_temp",
614 "modifier": {
615 "operator": "minus",
616 "value": 7
617 }
618 },
619 {
620 "name": "set_parameter_from_group_max",
621 "parameter_name": "proc_5_core_dvfs_decrease_temp",
622 "modifier": {
623 "operator": "minus",
624 "value": 9
625 }
626 }
627 ]
628 },
629 {
630 "name": "Set Proc 6 Core DVFS parameter",
631 "groups": [
632 {
633 "name": "proc 6 core dvfs temp",
634 "interface": "xyz.openbmc_project.Sensor.Value",
635 "property": { "name": "Value" }
636 }
637 ],
638 "triggers": [
639 {
640 "class": "init",
641 "method": "get_properties"
642 },
643 {
644 "class": "signal",
645 "signal": "interfaces_added"
646 },
647 {
648 "class": "signal",
649 "signal": "properties_changed"
650 }
651 ],
652 "actions": [
653 {
654 "name": "set_parameter_from_group_max",
655 "parameter_name": "proc_6_core_dvfs_increase_temp",
656 "modifier": {
657 "operator": "minus",
658 "value": 7
659 }
660 },
661 {
662 "name": "set_parameter_from_group_max",
663 "parameter_name": "proc_6_core_dvfs_decrease_temp",
664 "modifier": {
665 "operator": "minus",
666 "value": 9
667 }
668 }
669 ]
670 },
671 {
672 "name": "Set Proc 7 Core DVFS parameter",
673 "groups": [
674 {
675 "name": "proc 7 core dvfs temp",
676 "interface": "xyz.openbmc_project.Sensor.Value",
677 "property": { "name": "Value" }
678 }
679 ],
680 "triggers": [
681 {
682 "class": "init",
683 "method": "get_properties"
684 },
685 {
686 "class": "signal",
687 "signal": "interfaces_added"
688 },
689 {
690 "class": "signal",
691 "signal": "properties_changed"
692 }
693 ],
694 "actions": [
695 {
696 "name": "set_parameter_from_group_max",
697 "parameter_name": "proc_7_core_dvfs_increase_temp",
698 "modifier": {
699 "operator": "minus",
700 "value": 7
701 }
702 },
703 {
704 "name": "set_parameter_from_group_max",
705 "parameter_name": "proc_7_core_dvfs_decrease_temp",
706 "modifier": {
707 "operator": "minus",
708 "value": 9
709 }
710 }
711 ]
712 },
713 {
714 "name": "Set Proc 0 IO Ring DVFS parameter",
715 "groups": [
716 {
717 "name": "proc 0 ioring dvfs temp",
718 "interface": "xyz.openbmc_project.Sensor.Value",
719 "property": { "name": "Value" }
720 }
721 ],
722 "triggers": [
723 {
724 "class": "init",
725 "method": "get_properties"
726 },
727 {
728 "class": "signal",
729 "signal": "interfaces_added"
730 },
731 {
732 "class": "signal",
733 "signal": "properties_changed"
734 }
735 ],
736 "actions": [
737 {
738 "name": "set_parameter_from_group_max",
739 "parameter_name": "proc_0_ioring_dvfs_increase_temp",
740 "modifier": {
741 "operator": "minus",
742 "value": 10
743 }
744 },
745 {
746 "name": "set_parameter_from_group_max",
747 "parameter_name": "proc_0_ioring_dvfs_decrease_temp",
748 "modifier": {
749 "operator": "minus",
750 "value": 13
751 }
752 }
753 ]
754 },
755 {
756 "name": "Set Proc 1 IO Ring DVFS parameter",
757 "groups": [
758 {
759 "name": "proc 1 ioring dvfs temp",
760 "interface": "xyz.openbmc_project.Sensor.Value",
761 "property": { "name": "Value" }
762 }
763 ],
764 "triggers": [
765 {
766 "class": "init",
767 "method": "get_properties"
768 },
769 {
770 "class": "signal",
771 "signal": "interfaces_added"
772 },
773 {
774 "class": "signal",
775 "signal": "properties_changed"
776 }
777 ],
778 "actions": [
779 {
780 "name": "set_parameter_from_group_max",
781 "parameter_name": "proc_1_ioring_dvfs_increase_temp",
782 "modifier": {
783 "operator": "minus",
784 "value": 10
785 }
786 },
787 {
788 "name": "set_parameter_from_group_max",
789 "parameter_name": "proc_1_ioring_dvfs_decrease_temp",
790 "modifier": {
791 "operator": "minus",
792 "value": 13
793 }
794 }
795 ]
796 },
797 {
798 "name": "Set Proc 2 IO Ring DVFS parameter",
799 "groups": [
800 {
801 "name": "proc 2 ioring dvfs temp",
802 "interface": "xyz.openbmc_project.Sensor.Value",
803 "property": { "name": "Value" }
804 }
805 ],
806 "triggers": [
807 {
808 "class": "init",
809 "method": "get_properties"
810 },
811 {
812 "class": "signal",
813 "signal": "interfaces_added"
814 },
815 {
816 "class": "signal",
817 "signal": "properties_changed"
818 }
819 ],
820 "actions": [
821 {
822 "name": "set_parameter_from_group_max",
823 "parameter_name": "proc_2_ioring_dvfs_increase_temp",
824 "modifier": {
825 "operator": "minus",
826 "value": 10
827 }
828 },
829 {
830 "name": "set_parameter_from_group_max",
831 "parameter_name": "proc_2_ioring_dvfs_decrease_temp",
832 "modifier": {
833 "operator": "minus",
834 "value": 13
835 }
836 }
837 ]
838 },
839 {
840 "name": "Set Proc 3 IO Ring DVFS parameter",
841 "groups": [
842 {
843 "name": "proc 3 ioring dvfs temp",
844 "interface": "xyz.openbmc_project.Sensor.Value",
845 "property": { "name": "Value" }
846 }
847 ],
848 "triggers": [
849 {
850 "class": "init",
851 "method": "get_properties"
852 },
853 {
854 "class": "signal",
855 "signal": "properties_changed"
856 },
857 {
858 "class": "signal",
859 "signal": "interfaces_added"
860 }
861 ],
862 "actions": [
863 {
864 "name": "set_parameter_from_group_max",
865 "parameter_name": "proc_3_ioring_dvfs_increase_temp",
866 "modifier": {
867 "operator": "minus",
868 "value": 10
869 }
870 },
871 {
872 "name": "set_parameter_from_group_max",
873 "parameter_name": "proc_3_ioring_dvfs_decrease_temp",
874 "modifier": {
875 "operator": "minus",
876 "value": 13
877 }
878 }
879 ]
880 },
881 {
882 "name": "Set Proc 4 IO Ring DVFS parameter",
883 "groups": [
884 {
885 "name": "proc 4 ioring dvfs temp",
886 "interface": "xyz.openbmc_project.Sensor.Value",
887 "property": { "name": "Value" }
888 }
889 ],
890 "triggers": [
891 {
892 "class": "init",
893 "method": "get_properties"
894 },
895 {
896 "class": "signal",
897 "signal": "interfaces_added"
898 },
899 {
900 "class": "signal",
901 "signal": "properties_changed"
902 }
903 ],
904 "actions": [
905 {
906 "name": "set_parameter_from_group_max",
907 "parameter_name": "proc_4_ioring_dvfs_increase_temp",
908 "modifier": {
909 "operator": "minus",
910 "value": 10
911 }
912 },
913 {
914 "name": "set_parameter_from_group_max",
915 "parameter_name": "proc_4_ioring_dvfs_decrease_temp",
916 "modifier": {
917 "operator": "minus",
918 "value": 13
919 }
920 }
921 ]
922 },
923 {
924 "name": "Set Proc 5 IO Ring DVFS parameter",
925 "groups": [
926 {
927 "name": "proc 5 ioring dvfs temp",
928 "interface": "xyz.openbmc_project.Sensor.Value",
929 "property": { "name": "Value" }
930 }
931 ],
932 "triggers": [
933 {
934 "class": "init",
935 "method": "get_properties"
936 },
937 {
938 "class": "signal",
939 "signal": "interfaces_added"
940 },
941 {
942 "class": "signal",
943 "signal": "properties_changed"
944 }
945 ],
946 "actions": [
947 {
948 "name": "set_parameter_from_group_max",
949 "parameter_name": "proc_5_ioring_dvfs_increase_temp",
950 "modifier": {
951 "operator": "minus",
952 "value": 10
953 }
954 },
955 {
956 "name": "set_parameter_from_group_max",
957 "parameter_name": "proc_5_ioring_dvfs_decrease_temp",
958 "modifier": {
959 "operator": "minus",
960 "value": 13
961 }
962 }
963 ]
964 },
965 {
966 "name": "Set Proc 6 IO Ring DVFS parameter",
967 "groups": [
968 {
969 "name": "proc 6 ioring dvfs temp",
970 "interface": "xyz.openbmc_project.Sensor.Value",
971 "property": { "name": "Value" }
972 }
973 ],
974 "triggers": [
975 {
976 "class": "init",
977 "method": "get_properties"
978 },
979 {
980 "class": "signal",
981 "signal": "interfaces_added"
982 },
983 {
984 "class": "signal",
985 "signal": "properties_changed"
986 }
987 ],
988 "actions": [
989 {
990 "name": "set_parameter_from_group_max",
991 "parameter_name": "proc_6_ioring_dvfs_increase_temp",
992 "modifier": {
993 "operator": "minus",
994 "value": 10
995 }
996 },
997 {
998 "name": "set_parameter_from_group_max",
999 "parameter_name": "proc_6_ioring_dvfs_decrease_temp",
1000 "modifier": {
1001 "operator": "minus",
1002 "value": 13
1003 }
1004 }
1005 ]
1006 },
1007 {
1008 "name": "Set Proc 7 IO Ring DVFS parameter",
1009 "groups": [
1010 {
1011 "name": "proc 7 ioring dvfs temp",
1012 "interface": "xyz.openbmc_project.Sensor.Value",
1013 "property": { "name": "Value" }
1014 }
1015 ],
1016 "triggers": [
1017 {
1018 "class": "init",
1019 "method": "get_properties"
1020 },
1021 {
1022 "class": "signal",
1023 "signal": "interfaces_added"
1024 },
1025 {
1026 "class": "signal",
1027 "signal": "properties_changed"
1028 }
1029 ],
1030 "actions": [
1031 {
1032 "name": "set_parameter_from_group_max",
1033 "parameter_name": "proc_7_ioring_dvfs_increase_temp",
1034 "modifier": {
1035 "operator": "minus",
1036 "value": 10
1037 }
1038 },
1039 {
1040 "name": "set_parameter_from_group_max",
1041 "parameter_name": "proc_7_ioring_dvfs_decrease_temp",
1042 "modifier": {
1043 "operator": "minus",
1044 "value": 13
1045 }
1046 }
1047 ]
1048 },
1049 {
1050 // Collect group temperatures each iteration the repeating timer expires
1051 "name": "Fan control timer loop",
1052 "groups": [
1053 {
1054 "name": "proc0 core temps",
1055 "interface": "xyz.openbmc_project.Sensor.Value",
1056 "property": { "name": "Value" }
1057 },
1058 {
1059 "name": "proc1 core temps",
1060 "interface": "xyz.openbmc_project.Sensor.Value",
1061 "property": { "name": "Value" }
1062 },
1063 {
1064 "name": "proc2 core temps",
1065 "interface": "xyz.openbmc_project.Sensor.Value",
1066 "property": { "name": "Value" }
1067 },
1068 {
1069 "name": "proc3 core temps",
1070 "interface": "xyz.openbmc_project.Sensor.Value",
1071 "property": { "name": "Value" }
1072 },
1073 {
1074 "name": "proc4 core temps",
1075 "interface": "xyz.openbmc_project.Sensor.Value",
1076 "property": { "name": "Value" }
1077 },
1078 {
1079 "name": "proc5 core temps",
1080 "interface": "xyz.openbmc_project.Sensor.Value",
1081 "property": { "name": "Value" }
1082 },
1083 {
1084 "name": "proc6 core temps",
1085 "interface": "xyz.openbmc_project.Sensor.Value",
1086 "property": { "name": "Value" }
1087 },
1088 {
1089 "name": "proc7 core temps",
1090 "interface": "xyz.openbmc_project.Sensor.Value",
1091 "property": { "name": "Value" }
1092 },
1093 {
1094 "name": "proc0 ioring temp",
1095 "interface": "xyz.openbmc_project.Sensor.Value",
1096 "property": { "name": "Value" }
1097 },
1098 {
1099 "name": "proc1 ioring temp",
1100 "interface": "xyz.openbmc_project.Sensor.Value",
1101 "property": { "name": "Value" }
1102 },
1103 {
1104 "name": "proc2 ioring temp",
1105 "interface": "xyz.openbmc_project.Sensor.Value",
1106 "property": { "name": "Value" }
1107 },
1108 {
1109 "name": "proc3 ioring temp",
1110 "interface": "xyz.openbmc_project.Sensor.Value",
1111 "property": { "name": "Value" }
1112 },
1113 {
1114 "name": "proc4 ioring temp",
1115 "interface": "xyz.openbmc_project.Sensor.Value",
1116 "property": { "name": "Value" }
1117 },
1118 {
1119 "name": "proc5 ioring temp",
1120 "interface": "xyz.openbmc_project.Sensor.Value",
1121 "property": { "name": "Value" }
1122 },
1123 {
1124 "name": "proc6 ioring temp",
1125 "interface": "xyz.openbmc_project.Sensor.Value",
1126 "property": { "name": "Value" }
1127 },
1128 {
1129 "name": "proc7 ioring temp",
1130 "interface": "xyz.openbmc_project.Sensor.Value",
1131 "property": { "name": "Value" }
1132 },
1133 {
1134 "name": "dram temps",
1135 "interface": "xyz.openbmc_project.Sensor.Value",
1136 "property": { "name": "Value" }
1137 },
1138 {
1139 "name": "pmic temps",
1140 "interface": "xyz.openbmc_project.Sensor.Value",
1141 "property": { "name": "Value" }
1142 },
1143 {
1144 "name": "internal memory buffer temps",
1145 "interface": "xyz.openbmc_project.Sensor.Value",
1146 "property": { "name": "Value" }
1147 },
1148 {
1149 "name": "dram and external memory buffer temps",
1150 "interface": "xyz.openbmc_project.Sensor.Value",
1151 "property": { "name": "Value" }
1152 },
1153 {
1154 "name": "external memory buffer temps",
1155 "interface": "xyz.openbmc_project.Sensor.Value",
1156 "property": { "name": "Value" }
1157 },
1158 {
1159 "name": "vdd vrm temps",
1160 "interface": "xyz.openbmc_project.Sensor.Value",
1161 "property": { "name": "Value" }
1162 },
1163 {
1164 "name": "nvme temps",
1165 "interface": "xyz.openbmc_project.Sensor.Value",
1166 "property": { "name": "Value" }
1167 },
1168 {
1169 "name": "planar temps",
1170 "interface": "xyz.openbmc_project.Sensor.Value",
1171 "property": { "name": "Value" }
1172 },
1173 {
1174 "name": "pcie cable card temps",
1175 "interface": "xyz.openbmc_project.Sensor.Value",
1176 "property": { "name": "Value" }
1177 }
1178 ],
1179 "triggers": [
1180 {
1181 "class": "timer",
1182 "type": "repeating",
1183 "interval": 2000000,
1184 "preload_groups": true
1185 }
1186 ],
1187 "actions": [
1188 {
1189 "name": "set_net_increase_target",
1190 "groups": [
1191 {
1192 "name": "proc0 core temps",
1193 "interface": "xyz.openbmc_project.Sensor.Value",
1194 "property": { "name": "Value" }
1195 }
1196 ],
1197 "state_parameter_name": "proc_0_core_dvfs_increase_temp",
1198 "delta": 255
1199 },
1200 {
1201 "name": "set_net_increase_target",
1202 "groups": [
1203 {
1204 "name": "proc1 core temps",
1205 "interface": "xyz.openbmc_project.Sensor.Value",
1206 "property": { "name": "Value" }
1207 }
1208 ],
1209 "state_parameter_name": "proc_1_core_dvfs_increase_temp",
1210 "delta": 255
1211 },
1212 {
1213 "name": "set_net_increase_target",
1214 "groups": [
1215 {
1216 "name": "proc2 core temps",
1217 "interface": "xyz.openbmc_project.Sensor.Value",
1218 "property": { "name": "Value" }
1219 }
1220 ],
1221 "state_parameter_name": "proc_2_core_dvfs_increase_temp",
1222 "delta": 255
1223 },
1224 {
1225 "name": "set_net_increase_target",
1226 "groups": [
1227 {
1228 "name": "proc3 core temps",
1229 "interface": "xyz.openbmc_project.Sensor.Value",
1230 "property": { "name": "Value" }
1231 }
1232 ],
1233 "state_parameter_name": "proc_3_core_dvfs_increase_temp",
1234 "delta": 255
1235 },
1236 {
1237 "name": "set_net_increase_target",
1238 "groups": [
1239 {
1240 "name": "proc4 core temps",
1241 "interface": "xyz.openbmc_project.Sensor.Value",
1242 "property": { "name": "Value" }
1243 }
1244 ],
1245 "state_parameter_name": "proc_4_core_dvfs_increase_temp",
1246 "delta": 255
1247 },
1248 {
1249 "name": "set_net_increase_target",
1250 "groups": [
1251 {
1252 "name": "proc5 core temps",
1253 "interface": "xyz.openbmc_project.Sensor.Value",
1254 "property": { "name": "Value" }
1255 }
1256 ],
1257 "state_parameter_name": "proc_5_core_dvfs_increase_temp",
1258 "delta": 255
1259 },
1260 {
1261 "name": "set_net_increase_target",
1262 "groups": [
1263 {
1264 "name": "proc6 core temps",
1265 "interface": "xyz.openbmc_project.Sensor.Value",
1266 "property": { "name": "Value" }
1267 }
1268 ],
1269 "state_parameter_name": "proc_6_core_dvfs_increase_temp",
1270 "delta": 255
1271 },
1272 {
1273 "name": "set_net_increase_target",
1274 "groups": [
1275 {
1276 "name": "proc7 core temps",
1277 "interface": "xyz.openbmc_project.Sensor.Value",
1278 "property": { "name": "Value" }
1279 }
1280 ],
1281 "state_parameter_name": "proc_7_core_dvfs_increase_temp",
1282 "delta": 255
1283 },
1284 {
1285 "name": "set_net_increase_target",
1286 "groups": [
1287 {
1288 "name": "proc0 ioring temp",
1289 "interface": "xyz.openbmc_project.Sensor.Value",
1290 "property": { "name": "Value" }
1291 }
1292 ],
1293 "state_parameter_name": "proc_0_ioring_dvfs_increase_temp",
1294 "delta": 255
1295 },
1296 {
1297 "name": "set_net_increase_target",
1298 "groups": [
1299 {
1300 "name": "proc1 ioring temp",
1301 "interface": "xyz.openbmc_project.Sensor.Value",
1302 "property": { "name": "Value" }
1303 }
1304 ],
1305 "state_parameter_name": "proc_1_ioring_dvfs_increase_temp",
1306 "delta": 255
1307 },
1308 {
1309 "name": "set_net_increase_target",
1310 "groups": [
1311 {
1312 "name": "proc2 ioring temp",
1313 "interface": "xyz.openbmc_project.Sensor.Value",
1314 "property": { "name": "Value" }
1315 }
1316 ],
1317 "state_parameter_name": "proc_2_ioring_dvfs_increase_temp",
1318 "delta": 255
1319 },
1320 {
1321 "name": "set_net_increase_target",
1322 "groups": [
1323 {
1324 "name": "proc3 ioring temp",
1325 "interface": "xyz.openbmc_project.Sensor.Value",
1326 "property": { "name": "Value" }
1327 }
1328 ],
1329 "state_parameter_name": "proc_3_ioring_dvfs_increase_temp",
1330 "delta": 255
1331 },
1332 {
1333 "name": "set_net_increase_target",
1334 "groups": [
1335 {
1336 "name": "proc4 ioring temp",
1337 "interface": "xyz.openbmc_project.Sensor.Value",
1338 "property": { "name": "Value" }
1339 }
1340 ],
1341 "state_parameter_name": "proc_4_ioring_dvfs_increase_temp",
1342 "delta": 255
1343 },
1344 {
1345 "name": "set_net_increase_target",
1346 "groups": [
1347 {
1348 "name": "proc5 ioring temp",
1349 "interface": "xyz.openbmc_project.Sensor.Value",
1350 "property": { "name": "Value" }
1351 }
1352 ],
1353 "state_parameter_name": "proc_5_ioring_dvfs_increase_temp",
1354 "delta": 255
1355 },
1356 {
1357 "name": "set_net_increase_target",
1358 "groups": [
1359 {
1360 "name": "proc6 ioring temp",
1361 "interface": "xyz.openbmc_project.Sensor.Value",
1362 "property": { "name": "Value" }
1363 }
1364 ],
1365 "state_parameter_name": "proc_6_ioring_dvfs_increase_temp",
1366 "delta": 255
1367 },
1368 {
1369 "name": "set_net_increase_target",
1370 "groups": [
1371 {
1372 "name": "proc7 ioring temp",
1373 "interface": "xyz.openbmc_project.Sensor.Value",
1374 "property": { "name": "Value" }
1375 }
1376 ],
1377 "state_parameter_name": "proc_7_ioring_dvfs_increase_temp",
1378 "delta": 255
1379 },
1380 {
1381 "name": "set_net_increase_target",
1382 "groups": [
1383 {
1384 "name": "dram temps",
1385 "interface": "xyz.openbmc_project.Sensor.Value",
1386 "property": { "name": "Value" }
1387 }
1388 ],
Matt Spinlerf32c6432022-05-31 14:49:06 -05001389 "state": 69.0,
Matt Spinlera75f61e2022-05-11 13:26:52 -05001390 "delta": 175
1391 },
1392 {
1393 "name": "set_net_increase_target",
1394 "groups": [
1395 {
1396 "name": "pmic temps",
1397 "interface": "xyz.openbmc_project.Sensor.Value",
1398 "property": { "name": "Value" }
1399 }
1400 ],
Matt Spinlerf32c6432022-05-31 14:49:06 -05001401 "state": 58.0,
Matt Spinlera75f61e2022-05-11 13:26:52 -05001402 "delta": 200
1403 },
1404 {
1405 "name": "set_net_increase_target",
1406 "groups": [
1407 {
1408 "name": "internal memory buffer temps",
1409 "interface": "xyz.openbmc_project.Sensor.Value",
1410 "property": { "name": "Value" }
1411 }
1412 ],
Matt Spinlerf32c6432022-05-31 14:49:06 -05001413 "state": 75.0,
Matt Spinlera75f61e2022-05-11 13:26:52 -05001414 "delta": 150
1415 },
1416 {
1417 "name": "set_net_increase_target",
1418 "groups": [
1419 {
1420 "name": "dram and external memory buffer temps",
1421 "interface": "xyz.openbmc_project.Sensor.Value",
1422 "property": { "name": "Value" }
1423 }
1424 ],
1425 "state": 55.0,
1426 "delta": 200
1427 },
1428 {
1429 "name": "set_net_increase_target",
1430 "groups": [
1431 {
1432 "name": "external memory buffer temps",
1433 "interface": "xyz.openbmc_project.Sensor.Value",
1434 "property": { "name": "Value" }
1435 }
1436 ],
1437 "state": 55.0,
1438 "delta": 200
1439 },
1440 {
1441 "name": "set_net_increase_target",
1442 "groups": [
1443 {
1444 "name": "vdd vrm temps",
1445 "interface": "xyz.openbmc_project.Sensor.Value",
1446 "property": { "name": "Value" }
1447 }
1448 ],
1449 "state": 85.0,
1450 "delta": 255
1451 },
1452 {
1453 "name": "set_net_increase_target",
1454 "groups": [
1455 {
1456 "name": "nvme temps",
1457 "interface": "xyz.openbmc_project.Sensor.Value",
1458 "property": { "name": "Value" }
1459 }
1460 ],
1461 "state": 58.0,
1462 "delta": 200
1463 },
1464 {
1465 "name": "set_net_increase_target",
1466 "groups": [
1467 {
1468 "name": "planar temps",
1469 "interface": "xyz.openbmc_project.Sensor.Value",
1470 "property": { "name": "Value" }
1471 }
1472 ],
1473 "state": 50.0,
1474 "delta": 255
1475 },
1476 {
1477 "name": "set_net_increase_target",
1478 "groups": [
1479 {
1480 "name": "pcie cable card temps",
1481 "interface": "xyz.openbmc_project.Sensor.Value",
1482 "property": { "name": "Value" }
1483 }
1484 ],
1485 "state": 70.0,
1486 "delta": 255
1487 },
1488 {
1489 "name": "set_net_decrease_target",
1490 "groups": [
1491 {
1492 "name": "proc0 core temps",
1493 "interface": "xyz.openbmc_project.Sensor.Value",
1494 "property": { "name": "Value" }
1495 }
1496 ],
1497 "state_parameter_name": "proc_0_core_dvfs_decrease_temp",
1498 "delta": 50
1499 },
1500 {
1501 "name": "set_net_decrease_target",
1502 "groups": [
1503 {
1504 "name": "proc1 core temps",
1505 "interface": "xyz.openbmc_project.Sensor.Value",
1506 "property": { "name": "Value" }
1507 }
1508 ],
1509 "state_parameter_name": "proc_1_core_dvfs_decrease_temp",
1510 "delta": 50
1511 },
1512 {
1513 "name": "set_net_decrease_target",
1514 "groups": [
1515 {
1516 "name": "proc2 core temps",
1517 "interface": "xyz.openbmc_project.Sensor.Value",
1518 "property": { "name": "Value" }
1519 }
1520 ],
1521 "state_parameter_name": "proc_2_core_dvfs_decrease_temp",
1522 "delta": 50
1523 },
1524 {
1525 "name": "set_net_decrease_target",
1526 "groups": [
1527 {
1528 "name": "proc3 core temps",
1529 "interface": "xyz.openbmc_project.Sensor.Value",
1530 "property": { "name": "Value" }
1531 }
1532 ],
1533 "state_parameter_name": "proc_3_core_dvfs_decrease_temp",
1534 "delta": 50
1535 },
1536 {
1537 "name": "set_net_decrease_target",
1538 "groups": [
1539 {
1540 "name": "proc4 core temps",
1541 "interface": "xyz.openbmc_project.Sensor.Value",
1542 "property": { "name": "Value" }
1543 }
1544 ],
1545 "state_parameter_name": "proc_4_core_dvfs_decrease_temp",
1546 "delta": 50
1547 },
1548 {
1549 "name": "set_net_decrease_target",
1550 "groups": [
1551 {
1552 "name": "proc5 core temps",
1553 "interface": "xyz.openbmc_project.Sensor.Value",
1554 "property": { "name": "Value" }
1555 }
1556 ],
1557 "state_parameter_name": "proc_5_core_dvfs_decrease_temp",
1558 "delta": 50
1559 },
1560 {
1561 "name": "set_net_decrease_target",
1562 "groups": [
1563 {
1564 "name": "proc6 core temps",
1565 "interface": "xyz.openbmc_project.Sensor.Value",
1566 "property": { "name": "Value" }
1567 }
1568 ],
1569 "state_parameter_name": "proc_6_core_dvfs_decrease_temp",
1570 "delta": 50
1571 },
1572 {
1573 "name": "set_net_decrease_target",
1574 "groups": [
1575 {
1576 "name": "proc7 core temps",
1577 "interface": "xyz.openbmc_project.Sensor.Value",
1578 "property": { "name": "Value" }
1579 }
1580 ],
1581 "state_parameter_name": "proc_7_core_dvfs_decrease_temp",
1582 "delta": 50
1583 },
1584 {
1585 "name": "set_net_decrease_target",
1586 "groups": [
1587 {
1588 "name": "proc0 ioring temp",
1589 "interface": "xyz.openbmc_project.Sensor.Value",
1590 "property": { "name": "Value" }
1591 }
1592 ],
1593 "state_parameter_name": "proc_0_ioring_dvfs_decrease_temp",
1594 "delta": 50
1595 },
1596 {
1597 "name": "set_net_decrease_target",
1598 "groups": [
1599 {
1600 "name": "proc1 ioring temp",
1601 "interface": "xyz.openbmc_project.Sensor.Value",
1602 "property": { "name": "Value" }
1603 }
1604 ],
1605 "state_parameter_name": "proc_1_ioring_dvfs_decrease_temp",
1606 "delta": 50
1607 },
1608 {
1609 "name": "set_net_decrease_target",
1610 "groups": [
1611 {
1612 "name": "proc2 ioring temp",
1613 "interface": "xyz.openbmc_project.Sensor.Value",
1614 "property": { "name": "Value" }
1615 }
1616 ],
1617 "state_parameter_name": "proc_2_ioring_dvfs_decrease_temp",
1618 "delta": 50
1619 },
1620 {
1621 "name": "set_net_decrease_target",
1622 "groups": [
1623 {
1624 "name": "proc3 ioring temp",
1625 "interface": "xyz.openbmc_project.Sensor.Value",
1626 "property": { "name": "Value" }
1627 }
1628 ],
1629 "state_parameter_name": "proc_3_ioring_dvfs_decrease_temp",
1630 "delta": 50
1631 },
1632 {
1633 "name": "set_net_decrease_target",
1634 "groups": [
1635 {
1636 "name": "proc4 ioring temp",
1637 "interface": "xyz.openbmc_project.Sensor.Value",
1638 "property": { "name": "Value" }
1639 }
1640 ],
1641 "state_parameter_name": "proc_4_ioring_dvfs_decrease_temp",
1642 "delta": 50
1643 },
1644 {
1645 "name": "set_net_decrease_target",
1646 "groups": [
1647 {
1648 "name": "proc5 ioring temp",
1649 "interface": "xyz.openbmc_project.Sensor.Value",
1650 "property": { "name": "Value" }
1651 }
1652 ],
1653 "state_parameter_name": "proc_5_ioring_dvfs_decrease_temp",
1654 "delta": 50
1655 },
1656 {
1657 "name": "set_net_decrease_target",
1658 "groups": [
1659 {
1660 "name": "proc6 ioring temp",
1661 "interface": "xyz.openbmc_project.Sensor.Value",
1662 "property": { "name": "Value" }
1663 }
1664 ],
1665 "state_parameter_name": "proc_6_ioring_dvfs_decrease_temp",
1666 "delta": 50
1667 },
1668 {
1669 "name": "set_net_decrease_target",
1670 "groups": [
1671 {
1672 "name": "proc7 ioring temp",
1673 "interface": "xyz.openbmc_project.Sensor.Value",
1674 "property": { "name": "Value" }
1675 }
1676 ],
1677 "state_parameter_name": "proc_7_ioring_dvfs_decrease_temp",
1678 "delta": 50
1679 },
1680 {
1681 "name": "set_net_decrease_target",
1682 "groups": [
1683 {
1684 "name": "dram temps",
1685 "interface": "xyz.openbmc_project.Sensor.Value",
1686 "property": { "name": "Value" }
1687 }
1688 ],
Matt Spinlerf32c6432022-05-31 14:49:06 -05001689 "state": 66.0,
Matt Spinlera75f61e2022-05-11 13:26:52 -05001690 "delta": 40
1691 },
1692 {
1693 "name": "set_net_decrease_target",
1694 "groups": [
1695 {
1696 "name": "pmic temps",
1697 "interface": "xyz.openbmc_project.Sensor.Value",
1698 "property": { "name": "Value" }
1699 }
1700 ],
Matt Spinlerf32c6432022-05-31 14:49:06 -05001701 "state": 55.0,
Matt Spinlera75f61e2022-05-11 13:26:52 -05001702 "delta": 40
1703 },
1704 {
1705 "name": "set_net_decrease_target",
1706 "groups": [
1707 {
1708 "name": "internal memory buffer temps",
1709 "interface": "xyz.openbmc_project.Sensor.Value",
1710 "property": { "name": "Value" }
1711 }
1712 ],
Matt Spinlerf32c6432022-05-31 14:49:06 -05001713 "state": 72.0,
Matt Spinlera75f61e2022-05-11 13:26:52 -05001714 "delta": 40
1715 },
1716 {
1717 "name": "set_net_decrease_target",
1718 "groups": [
1719 {
1720 "name": "dram and external memory buffer temps",
1721 "interface": "xyz.openbmc_project.Sensor.Value",
1722 "property": { "name": "Value" }
1723 }
1724 ],
1725 "state": 52.0,
1726 "delta": 40
1727 },
1728 {
1729 "name": "set_net_decrease_target",
1730 "groups": [
1731 {
1732 "name": "external memory buffer temps",
1733 "interface": "xyz.openbmc_project.Sensor.Value",
1734 "property": { "name": "Value" }
1735 }
1736 ],
1737 "state": 52.0,
1738 "delta": 40
1739 },
1740 {
1741 "name": "set_net_decrease_target",
1742 "groups": [
1743 {
1744 "name": "vdd vrm temps",
1745 "interface": "xyz.openbmc_project.Sensor.Value",
1746 "property": { "name": "Value" }
1747 }
1748 ],
1749 "state": 80.0,
1750 "delta": 30
1751 },
1752 {
1753 "name": "set_net_decrease_target",
1754 "groups": [
1755 {
1756 "name": "nvme temps",
1757 "interface": "xyz.openbmc_project.Sensor.Value",
1758 "property": { "name": "Value" }
1759 }
1760 ],
1761 "state": 55.0,
1762 "delta": 40
1763 },
1764 {
1765 "name": "set_net_decrease_target",
1766 "groups": [
1767 {
1768 "name": "planar temps",
1769 "interface": "xyz.openbmc_project.Sensor.Value",
1770 "property": { "name": "Value" }
1771 }
1772 ],
1773 "state": 48.0,
1774 "delta": 80
1775 },
1776 {
1777 "name": "set_net_decrease_target",
1778 "groups": [
1779 {
1780 "name": "pcie cable card temps",
1781 "interface": "xyz.openbmc_project.Sensor.Value",
1782 "property": { "name": "Value" }
1783 }
1784 ],
1785 "state": 65.0,
1786 "delta": 80
1787 }
1788 ]
1789 },
1790 {
1791 // Remove NVMe temperature objects from cache when they are removed from
1792 // dbus. There's no need to react to their removal.
1793 "name": "remove nvme objects",
1794 "groups": [
1795 {
1796 "name": "nvme temps",
1797 "interface": "xyz.openbmc_project.Sensor.Value",
1798 "property": { "name": "Value" }
1799 },
1800 {
1801 "name": "nvme temps",
1802 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
1803 "property": { "name": "Functional" }
1804 }
1805 ],
1806 "triggers": [
1807 {
1808 "class": "signal",
1809 "signal": "interfaces_removed"
1810 }
1811 ]
1812 },
1813 {
1814 "name": "set pcie floor index",
1815 "groups": [
1816 {
1817 "name": "pcie slots",
1818 "interface": "xyz.openbmc_project.State.Decorator.PowerState",
1819 "property": {
1820 "name": "PowerState"
1821 }
1822 },
1823 {
1824 "name": "pcie cards",
1825 "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
1826 "property": {
1827 "name": "Function0DeviceId"
1828 }
1829 },
1830 {
1831 "name": "pcie cards",
1832 "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
1833 "property": {
1834 "name": "Function0VendorId"
1835 }
1836 },
1837 {
1838 "name": "pcie cards",
1839 "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
1840 "property": {
1841 "name": "Function0SubsystemId"
1842 }
1843 },
1844 {
1845 "name": "pcie cards",
1846 "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
1847 "property": {
1848 "name": "Function0SubsystemVendorId"
1849 }
1850 }
1851 ],
1852 "triggers": [
1853 {
1854 "class": "init",
1855 "method": "get_properties"
1856 },
1857 {
1858 "class": "signal",
1859 "signal": "properties_changed"
1860 },
1861 {
1862 "class": "signal",
1863 "signal": "interfaces_added"
1864 }
1865 ],
1866 "actions": [
1867 {
1868 "name": "pcie_card_floors",
1869 "use_config_specific_files": true,
1870 "settle_time": 2
1871 }
1872 ]
1873 },
1874 {
1875 "name": "Set altitude offset parameter",
1876 "groups": [
1877 {
1878 "name": "altitude",
1879 "interface": "xyz.openbmc_project.Sensor.Value",
1880 "property": { "name": "Value" }
1881 }
1882 ],
1883 "triggers": [
1884 {
1885 "class": "init",
1886 "method": "get_properties"
1887 },
1888 {
1889 "class": "signal",
1890 "signal": "interfaces_added"
1891 },
1892 {
1893 // Refresh altitude every 24hrs
1894 "class": "timer",
1895 "type": "repeating",
1896 "interval": 86400000000,
1897 "preload_groups": true
1898 }
1899 ],
1900 "actions": [
1901 {
1902 "name": "set_parameter_from_group_max",
1903 "parameter_name": "ambient_20_altitude_offset",
1904 "modifier": {
1905 "operator": "less_than",
1906 "default_value": 1500,
1907 "value": [
1908 { "arg_value": 500, "parameter_value": 0 },
1909 { "arg_value": 1000, "parameter_value": 375 },
1910 { "arg_value": 1500, "parameter_value": 550 },
1911 { "arg_value": 2000, "parameter_value": 775 },
1912 { "arg_value": 2500, "parameter_value": 1000 },
1913 { "arg_value": 3050, "parameter_value": 1275 }
1914 ]
1915 }
1916 },
1917 {
1918 "name": "set_parameter_from_group_max",
1919 "parameter_name": "ambient_25_altitude_offset",
1920 "modifier": {
1921 "operator": "less_than",
1922 "default_value": 2000,
1923 "value": [
1924 { "arg_value": 500, "parameter_value": 0 },
1925 { "arg_value": 1000, "parameter_value": 450 },
1926 { "arg_value": 1500, "parameter_value": 700 },
1927 { "arg_value": 2000, "parameter_value": 975 },
1928 { "arg_value": 2500, "parameter_value": 1275 },
1929 { "arg_value": 3050, "parameter_value": 1625 }
1930 ]
1931 }
1932 },
1933 {
1934 "name": "set_parameter_from_group_max",
1935 "parameter_name": "ambient_30_altitude_offset",
1936 "modifier": {
1937 "operator": "less_than",
1938 "default_value": 2500,
1939 "value": [
1940 { "arg_value": 500, "parameter_value": 0 },
1941 { "arg_value": 1000, "parameter_value": 600 },
1942 { "arg_value": 1500, "parameter_value": 900 },
1943 { "arg_value": 2000, "parameter_value": 1275 },
1944 { "arg_value": 2500, "parameter_value": 1650 },
1945 { "arg_value": 3050, "parameter_value": 2100 }
1946 ]
1947 }
1948 },
1949 {
1950 "name": "set_parameter_from_group_max",
1951 "parameter_name": "ambient_35_altitude_offset",
1952 "modifier": {
1953 "operator": "less_than",
1954 "default_value": 3000,
1955 "value": [
1956 { "arg_value": 500, "parameter_value": 0 },
1957 { "arg_value": 1000, "parameter_value": 750 },
1958 { "arg_value": 1500, "parameter_value": 1175 },
1959 { "arg_value": 2000, "parameter_value": 1625 },
1960 { "arg_value": 2500, "parameter_value": 2125 },
1961 { "arg_value": 3050, "parameter_value": 2725 }
1962 ]
1963 }
1964 },
1965 {
1966 "name": "set_parameter_from_group_max",
1967 "parameter_name": "ambient_40_altitude_offset",
1968 "modifier": {
1969 "operator": "less_than",
1970 "default_value": 3500,
1971 "value": [
1972 { "arg_value": 500, "parameter_value": 0 },
1973 { "arg_value": 1000, "parameter_value": 975 },
1974 { "arg_value": 1500, "parameter_value": 1500 },
1975 { "arg_value": 2000, "parameter_value": 2100 },
1976 { "arg_value": 2500, "parameter_value": 2750 },
1977 { "arg_value": 3050, "parameter_value": 3500 }
1978 ]
1979 }
1980 }
1981 ]
1982 },
1983 {
1984 "name": "Fan floors",
1985 "groups": [
1986 {
1987 "name": "ambient temp",
1988 "interface": "xyz.openbmc_project.Sensor.Value",
1989 "property": { "name": "Value" }
1990 }
1991 ],
1992 "triggers": [
1993 {
1994 "class": "init",
1995 "method": "get_properties"
1996 },
1997 {
1998 "class": "signal",
1999 "signal": "properties_changed"
2000 },
2001 {
2002 "class": "signal",
2003 "signal": "interfaces_added"
2004 },
2005 {
2006 "class": "parameter",
2007 "parameter": "pcie_floor_index"
2008 },
2009 {
2010 "class": "parameter",
2011 "parameter": "ambient_20_altitude_offset"
2012 },
2013 {
2014 "class": "parameter",
2015 "parameter": "ambient_25_altitude_offset"
2016 },
2017 {
2018 "class": "parameter",
2019 "parameter": "ambient_30_altitude_offset"
2020 },
2021 {
2022 "class": "parameter",
2023 "parameter": "ambient_35_altitude_offset"
2024 },
2025 {
2026 "class": "parameter",
2027 "parameter": "ambient_40_altitude_offset"
2028 }
2029 ],
2030 "actions": [
2031 {
2032 "name": "mapped_floor",
2033 "key_group": "ambient temp",
2034 "fan_floors": [
2035 {
2036 // Entry valid for temps < 20
2037 "key": 20,
2038 "default_floor": 3800,
2039 "floor_offset_parameter": "ambient_20_altitude_offset",
2040 "floors": [
2041 {
2042 "parameter": "pcie_floor_index",
2043 "floors": [
2044 { "value": 1, "floor": 3800 },
2045 { "value": 2, "floor": 4200 },
2046 { "value": 3, "floor": 4600 }
2047 ]
2048 }
2049 ]
2050 },
2051 {
2052 // Entry valid for temps < 25
2053 "key": 25,
2054 "default_floor": 4400,
2055 "floor_offset_parameter": "ambient_25_altitude_offset",
2056 "floors": [
2057 {
2058 "parameter": "pcie_floor_index",
2059 "floors": [
2060 { "value": 1, "floor": 4400 },
2061 { "value": 2, "floor": 4800 },
2062 { "value": 3, "floor": 5400 }
2063 ]
2064 }
2065 ]
2066 },
2067 {
2068 // Entry valid for temps < 30
2069 "key": 30,
2070 "default_floor": 5000,
2071 "floor_offset_parameter": "ambient_30_altitude_offset",
2072 "floors": [
2073 {
2074 "parameter": "pcie_floor_index",
2075 "floors": [
2076 { "value": 1, "floor": 5000 },
2077 { "value": 2, "floor": 5600 },
2078 { "value": 3, "floor": 6500 }
2079 ]
2080 }
2081 ]
2082 },
2083 {
2084 // Entry valid for temps < 35
2085 "key": 35,
2086 "default_floor": 5800,
2087 "floor_offset_parameter": "ambient_35_altitude_offset",
2088 "floors": [
2089 {
2090 "parameter": "pcie_floor_index",
2091 "floors": [
2092 { "value": 1, "floor": 5800 },
2093 { "value": 2, "floor": 6700 },
2094 { "value": 3, "floor": 7700 }
2095 ]
2096 }
2097 ]
2098 },
2099 {
2100 // Entry valid for temps < 40
2101 "key": 40,
2102 "default_floor": 6900,
2103 "floor_offset_parameter": "ambient_40_altitude_offset",
2104 "floors": [
2105 {
2106 "parameter": "pcie_floor_index",
2107 "floors": [
2108 { "value": 1, "floor": 6900 },
2109 { "value": 2, "floor": 7900 },
2110 { "value": 3, "floor": 9200 }
2111 ]
2112 }
2113 ]
2114 }
2115 ]
2116 }
2117 ]
2118 }
2119]