At the very lowest levels, there is special handling of the PCI configuration to manage hot-swap insertion and removal of various devices on the CPCI bus. Above this layer are the special device drivers that can be loaded, unloaded, started, and stopped with minimum effort. This is difficult and expensive on the computation and bandwidth needs of the system, but a lot of research is currently focused on this issue. The drivers must be capable of creating the right software events based on various conditions of the device. Further up the layers, the operating system must provide functions such as heartbeat messaging, checkpointing critical data, and monitoring.
Event management becomes a critical function of such an operating system.
Finally, at the application layer, policy and decision-making modules that can enforce various conditions and react to the various possible events are required. Software components of a high-availability system. For example, if the Lassen card failed, the device driver would raise an event that causes the policy-management software to reroute all Ethernet traffic by switching to a redundant switch, either on the same CPCI backplane or on another backplane. For such changes to occur on the fly requires both HA-aware software components and significant planning during systems design. The trickiest piece of the high-availability puzzle is that of controller redundancy.