Much of the recent work in network control has concentrated on opening up t
he network, moving away from closed, monolithic control systems. Such work
can be placed into two categories: use of generic APIs, giving rise to open
control of networks; and allowing packets on the datapath to program the n
etwork nodes, leading to the concept of the active network, Drawing on expe
rience in both of these areas, this paper presents the design and implement
ation of a framework that enables clients to program all aspects of the net
work in a manageable, controllable manner.
By using resource partitioning, clients are allowed to inject code into the
various entities of the network's control system, subject to access contro
l restraints. This form of programmable network is termed an elastic networ
k and it is proposed as an alternative to current active networking approac
hes. The elastic network has two key advantages over open control and activ
e networks, Firstly, the elastic network allow's dynamic customization of a
ll aspects of the network control, management and data processing component
s. Secondly, all customization takes place in a safe, resource-controlled w
ay.
This makes available the flexibility of active networks, and the resource c
ontrollability of open control networks, without imposing the attendant cos
ts on all users of the network. Costs still exist, but their imposition is
restricted to those places where the available functionality is actually us
ed.