Mechanism for external event notification

Deepak Kodihalli dkodihal at linux.vnet.ibm.com
Fri Sep 15 23:29:07 AEST 2017


Hello,

I have a proposal on the mechanism be able to do external event 
notification from the BMC. With this, the BMC would be able to push 
event notifications to interested clients that have a connection 
established, without having the clients to do a poll.

I was primarily looking at websockets [1] and the gevent-websocket 
project [2]. The idea is to enhance OpenBMC's phosphor-rest-server 
implementation to be able to handle websockets. The existing rest server 
implementation uses the Bottle framework, and it is easily possible to 
handle a websocket route via Bottle. Once a websocket has been created, 
there are various possibilities - a client can subscribe to specific 
events and push data to the server, the server can push data to the 
client, and the client should still be able to use the regular http routes.

I hacked up a quick prototype [3] via which I can notify connected 
clients about d-bus paths being created on the BMC.

Thoughts or questions about the proposal?

[1] https://www.fullstackpython.com/websockets.html
[2] https://gitlab.com/noppo/gevent-websocket
[3] https://gerrit.openbmc-project.xyz/#/c/6679/

Regards,
Deepak



More information about the openbmc mailing list