#
fe0c9e86 |
| 31-Oct-2018 |
Andrew Jeffery <andrew@aj.id.au> |
mboxd: Broadcast the daemon is ready on all transports
The code as it stood only sent the state update at startup on the active transport, which is somewhat arbitrarily chosen as an implementation d
mboxd: Broadcast the daemon is ready on all transports
The code as it stood only sent the state update at startup on the active transport, which is somewhat arbitrarily chosen as an implementation detail of the mbox initialisation function.
If the host firmware is using IPMI, it will not learn of the update unless it attempts to contact mboxd, which it won't do if it knows the daemon isn't there, which it may have learned of by receiving a state update from the daemon's shutdown path. In this circumstance the host firmware is now stuck.
Relieve the host firmware of this problem by always sending the daemon state on all supported transports. To avoid some insanity we introduce a new callback in struct transport_ops that allows use to send the BMC's entire event state rather than just set or clear updates.
Change-Id: I094ff4089eeebd8be99fbd343b94f7bbef023fb1 Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
show more ...
|
#
f62601b8 |
| 31-Oct-2018 |
Andrew Jeffery <andrew@aj.id.au> |
transport: Fix event handling
Events were not quite being handled as per the intent of the recent refactor: The protocol layer was meant to record the raw set of events and provide the protocol-vers
transport: Fix event handling
Events were not quite being handled as per the intent of the recent refactor: The protocol layer was meant to record the raw set of events and provide the protocol-version-specific mask to the transport layer, which the transport layer would then use to flush out the state in accordance with its implementation-specific requirements.
What was going wrong was that the transport implementations were overwriting the raw set of events with the protocol-specific masked set of events, meaning that we'd lose the raw state and provide an incomplete BMC state value on protocol upgrade.
Rework the event handling to make sure the responsibilities are properly split between the layers.
Change-Id: Iace6615a121e4ce7dcca690d9adf62e5ab9ccee2 Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
show more ...
|
#
4414fb8d |
| 19-Aug-2018 |
Andrew Jeffery <andrew@aj.id.au> |
transport: Retain knowledge of setting and clearing of events
The protocol layer now just filters the events based on the version of the protocol in use, and leaves it to the transport layer to mana
transport: Retain knowledge of setting and clearing of events
The protocol layer now just filters the events based on the version of the protocol in use, and leaves it to the transport layer to manage how the resulting state is represented. For the moment this simply moves manipulation of bmc_events in struct mbox_context down in to the transport layer.
Change-Id: Iff1df934505dc9c769be3d376396d425fb4e8264 Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
show more ...
|
#
26558dbb |
| 09-Aug-2018 |
Andrew Jeffery <andrew@aj.id.au> |
mboxd: Refactor and rename mbox.h to mboxd.h
Refine the purpose of the header file to represent what's required for the daemon itself, not its constituent pieces. Rather, split those definitions out
mboxd: Refactor and rename mbox.h to mboxd.h
Refine the purpose of the header file to represent what's required for the daemon itself, not its constituent pieces. Rather, split those definitions out to their respective header files and include them as necessary.
Finally the header file is renamed to better reflect its purpose.
Change-Id: I48c409f57d96c844589cd865b24f197477dfe87c Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
show more ...
|
#
5335f093 |
| 09-Aug-2018 |
Andrew Jeffery <andrew@aj.id.au> |
protocol: Provide abstraction over event notification
How this works will be transport-dependent. Move the event notification helpers into the protocol abstraction and call-back through the register
protocol: Provide abstraction over event notification
How this works will be transport-dependent. Move the event notification helpers into the protocol abstraction and call-back through the registered flush handler as necessary.
Change-Id: I29e3a9a9785b92de46a2b2750257fb7f8480a184 Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
show more ...
|