xref: /openbmc/phosphor-dbus-interfaces/yaml/xyz/openbmc_project/State/BMC/Redundancy.interface.yaml (revision dffc8a8c49797822d60c52550943257aea3ee2a4)
1description: >
2    This interface holds redundant BMC related information.  There would be
3    instance of this interface on each BMC.
4
5properties:
6    - name: Role
7      type: enum[self.Role]
8      flags:
9          - readonly
10      default: Unknown
11      description: >
12          The redundancy role of the BMC.
13    - name: RedundancyEnabled
14      type: boolean
15      flags:
16          - readonly
17      default: false
18      description: >
19          If redundancy is currently enabled.  In general, this means that the
20          BMCs are configured as active and passive and that the passive is able
21          to be failed over to.
22    - name: DisableRedundancyOverride
23      type: boolean
24      default: false
25      errors:
26          - xyz.openbmc_project.Common.Error.Unavailable
27      description: >
28          This is used to immediately and persistently disable redundancy.  The
29          use case is there are test phases where redundancy is not wanted and
30          this is how that is accomplished.
31
32          If set back to true, redundancy will immediately be re-enabled,
33          assuming nothing else is preventing it.
34
35          This can only be changed on the active BMC and when power is off,
36          otherwise it will throw the Unavailable error.
37    - name: FailoversPaused
38      type: boolean
39      flags:
40          - readonly
41      default: false
42      description: >
43          When redundancy is enabled, there may be periods when either failovers
44          are not allowed, such as in the middle of a code update, or won't work
45          because the passive BMC is temporarily offline, such as when the
46          passive BMC reboots. A timer would be put on how long redundancy could
47          still be considered enabled in this latter case in case the passive
48          BMC never comes back.  Redundancy is left enabled initially so as to
49          not trigger any intervention that could be necessary when redundancy
50          is lost just due to a BMC reboot.  Any time the passive BMC goes
51          offline a full file sync would be necessary when it comes back.
52    - name: RedundancyMinimum
53      type: size
54      flags:
55          - readonly
56      default: 2
57      description: >
58          The minimum number of BMC objects needed for redundancy to be enabled.
59    - name: RedundancyMaximum
60      type: size
61      flags:
62          - readonly
63      default: maxint
64      description: >
65          The maximum number of BMC objects allowed to be part of the redundancy
66          group.
67
68enumerations:
69    - name: Role
70      description: >
71          Defines the redundancy role of the BMC.
72      values:
73          - name: Unknown
74            description: >
75                The role is unknown.
76          - name: Active
77            description: >
78                The role is for the active BMC.  This is the fully functioning
79                BMC and the main point of contact for external users.
80          - name: Passive
81            description: >
82                The role is for the passive BMC, which is the opposite of the
83                active BMC.  It may not have all services running, and would
84                require a failover to become active.
85
86signals:
87    - name: Heartbeat
88      description: >
89          This signal is to be emitted periodically from the management daemon
90          to let the sibling BMC interface daemon know it is alive.
91
92paths:
93    - namespace: /xyz/openbmc_project/state
94      segments:
95          - name: BMC
96            description: >
97                The object representing _this_ BMC is always at bmc0.
98            value: bmc0
99