xref: /openbmc/phosphor-dbus-interfaces/yaml/xyz/openbmc_project/State/BMC/Redundancy.interface.yaml (revision 669f3182ab0001f6812875b884ecfbfbd1c8ae2c)
1description: >
2    This interface holds redundant BMC related information.
3
4properties:
5    - name: Role
6      type: enum[self.Role]
7      flags:
8          - readonly
9      default: Unknown
10      description: >
11          The redundancy role of the BMC.
12    - name: RedundancyEnabled
13      type: boolean
14      flags:
15          - readonly
16      default: false
17      description: >
18          If redundancy is currently enabled.  In general, this means that the
19          BMCs are configured as active and passive and that the passive is able
20          to be failed over to.
21    - name: DisableRedundancyOverride
22      type: boolean
23      default: false
24      errors:
25          - xyz.openbmc_project.Common.Error.Unavailable
26      description: >
27          This is used to immediately and persistently disable redundancy.  The
28          use case is there are test phases where redundancy is not wanted and
29          this is how that is accomplished.
30
31          If set back to true, redundancy will immediately be re-enabled,
32          assuming nothing else is preventing it.
33
34          This can only be changed on the active BMC and when power is off,
35          otherwise it will throw the Unavailable error.
36    - name: FailoversAllowed
37      type: boolean
38      flags:
39          - readonly
40      default: false
41      description: >
42          States if failovers are currently allowed. Even when redundancy is
43          enabled, a failover may not be allowed because there are periods when
44          doing a failover could cause issues, such as in the middle of a boot
45          or code update.
46    - name: FailoverImminent
47      type: boolean
48      flags:
49          - readonly
50      default: false
51      description: >
52          There can be a grace period between a failover being requested and the
53          failover actually starting where this will be asserted to allow for
54          any preparation or tracing on the other BMC.
55    - name: FailoverInProgress
56      type: boolean
57      default: false
58      flags:
59          - readonly
60      description: >
61          Indicates that a failover is in progress.
62    - name: RedundancyMinimum
63      type: size
64      flags:
65          - readonly
66      default: 2
67      description: >
68          The minimum number of BMC objects needed for redundancy to be enabled.
69    - name: RedundancyMaximum
70      type: size
71      flags:
72          - readonly
73      default: maxint
74      description: >
75          The maximum number of BMC objects allowed to be part of the redundancy
76          group.
77
78enumerations:
79    - name: Role
80      description: >
81          Defines the redundancy role of the BMC.
82      values:
83          - name: Unknown
84            description: >
85                The role is unknown.
86          - name: Active
87            description: >
88                The role is for the active BMC.  This is the fully functioning
89                BMC and the main point of contact for external users.
90          - name: Passive
91            description: >
92                The role is for the passive BMC, which is the opposite of the
93                active BMC.  It may not have all services running, and would
94                require a failover to become active.
95
96signals:
97    - name: Heartbeat
98      description: >
99          This signal is to be emitted periodically from the management daemon
100          to let the sibling BMC interface daemon know it is alive.
101
102paths:
103    - namespace: /xyz/openbmc_project/state
104      segments:
105          - name: BMC
106            description: >
107                The object representing _this_ BMC is always at bmc0.
108            value: bmc0
109          - name: SiblingBMC
110            description: >
111                The object representing _the sibling_ BMC is always at bmc1 in a
112                2 BMC system.
113            value: bmc1
114