xref: /openbmc/phosphor-dbus-interfaces/yaml/xyz/openbmc_project/State/BMC/Redundancy.interface.yaml (revision 4c5876f0f69c06b47c931e3224c1c34b126623b5)
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
53enumerations:
54    - name: Role
55      description: >
56          Defines the redundancy role of the BMC.
57      values:
58          - name: Unknown
59            description: >
60                The role is unknown.
61          - name: Active
62            description: >
63                The role is for the active BMC.  This is the fully functioning
64                BMC and the main point of contact for external users.
65          - name: Passive
66            description: >
67                The role is for the passive BMC, which is the opposite of the
68                active BMC.  It may not have all services running, and would
69                require a failover to become active.
70
71signals:
72    - name: Heartbeat
73      description: >
74          This signal is to be emitted periodically from the management daemon
75          to let the sibling BMC interface daemon know it is alive.
76
77paths:
78    - namespace: /xyz/openbmc_project/state
79      segments:
80          - name: BMC
81            description: >
82                The object representing _this_ BMC is always at bmc0.
83            value: bmc0
84