Here we have published the finite state machines that describes our solutions. Note that the FSMs are not complete. We have left out some error messages (all HTTP messages can be answered by HTTP errors) and combined some messages to make the FSMs more readable.
The first solution is the invisible proxy. This means that no devices in the network are aware of the proxy's presence. The proxy works completely autonomously. This solution means no changes to any protocols, no added software and no changes to the end devices (except for the additional configuration of power sleep and WOL). Therefore the FSMs of the service and control point in the first solution describe the current UPnP protocol with the additional power sleep functionality.
FSM for UPnP Service (PDF)
FSM for UPnP Control Point (PDF)
FSM for Invisible Proxy (PDF)
This is the second and somewhat improved solution, the cooperating proxy. Unlike the invisible proxy this program communicates directly with devices in the network. The proxy will only work with devices that implement the power management service. No other devices are allowed to enter power sleep. If they do they will be considered disconnected from the network. The power management service has two states: SLEEP and POWER. The proxy will only start working when it is notified of a device entering SLEEP state. There is no control point FSM because the control point must implement the power management service to be allowed to enter power sleep and can therefore be considered a service. The dotted structures in the FSMs are parts of the old invisible proxy that has not been changed.
FSM for UPnP Power Management Service (PDF)
FSM for Cooperating Proxy (PDF)