Control-on-demand an efficient approach to router programmability. - Hjalmtysson, G. (IEEE Journal on selected areas in communications)
Control-on-demand is a paradigm for network programmability at the network transport level. Prior work on active and programmable networking at this level either achieves flexibility by inserting significant software in the critical path of forwarding or achieves efficiency by sacrificing functionality and relegating programmability to connection management. In contrast, control-on-demand acts both in the control plane and in the data plane, still without adding software in the critical forwarding path. Rather than applying essential programs to every datagram, our approach is to apply the installed service logic asynchronously from data forwarding. This way we avoid essential processing in the critical forwarding path, applying the (user) installed service logic for service enhancement only. In this paper, we describe control-on-demand and how its service model provides sufficient richness to act in the data path. Set is restrictive enough to avoid the significant performance overhead of other in-data path approaches. The expressiveness of the programmable model is limited to observing and suggesting to the forwarding engine, but is never essential for correct processing, thus significantly reducing security and robustness concerns. Consequently, control-on-demand is efficient enough to make it viable for elementary services. Rather than replacing the interoperability layer, control-on-demand represents an evolution of router (switch) control functionality. As the required modification of router forwarding engines is insignificant, control-on-demand is viable in practice in the near future. These concepts have been prototyped as part of the Pronto Control Platform. In this paper, we describe our IPv6 router prototype implementation and discuss the application of control-on-demand on a number of interesting problems