N. Wakamiya et al. (Eds.): IWAN 2003, LNCS 2982, pp. 137-150, 2004. © IFIP International Federation for Information Processing 2004 Self-Configuring Active Services for Programmable Networks Ralph Keller and Bernhard Plattner Computer Engineering and Networks Laboratory Swiss Federal Institute of Technology, Switzerland {keller | plattner}@tik.ee.ethz.ch Abstract. This paper presents a service framework that allows routers to be programmed with user-specific code and coordinated such that the underlying network provides anticipated network services on behalf of applications. We describe how network services can be composed based on a high-level specification defining required and conditional processing steps, how capabilities about processing resources can be disseminated throughout the network by extending the OSPF protocol daemon, how services requirements are mapped onto the underlying network while minimizing both link and processing costs, and how service code is installed on selected nodes and forwarding state established along explicitly routed paths. Keywords: Active networks, service specification, resource discovery, self- configuration, service deployment. 1 Introduction During the last decades the original Internet architecture evolved dramatically with new functionality being added to the network layer to support a wide range of emerging applications. Network services such as firewalls, congestion control, media gateways, and traffic engineering all require a network that not only forwards packets based on the destination address, but also performs packet processing on nodes interior to the network. As a reaction to such application-specific packet handling requirements, router manufacturers have started to embed programmable elements into routers with the objective of providing network services in a more flexible way. However, deploying new services is usually a manual and time consuming process, requiring the installation of code on multiple routers distributed all over the network. Given the complexity of how services can be composed, the only feasible approach is to automate this process. In this work we present a services infrastructure that allows router resources to be programmed and coordinated such that the underlying network provides anticipated services on behalf of applications. We have implemented the active network control software (ANCS) that offers a generic service abstraction and automates the configuration of processing resources to form network services. Our system accepts processing demands from applications based on a high-level service description,