PLAN (Packet Language for Active Networks) is a new language for pro,scams
that form the packets of a programmable network. These programs replace the
packet headers (which can be viewed as very rudimentary programs) used in
current networks. As such, PLAN programs are lightweight and of restricted
functionality. These limitations are mitigated by allowing PLAN code to cal
l node-resident service routines written in other, more powerful languages.
This two-level architecture, in which PLAN serves as a scripting or 'glue'
language for more general services, is the primary contribution of this pa
per. We have successfully applied the PLAN programming environment to imple
ment an IP-free internetwork.
PLAN is based on the simply typed lambda calculus andprovides a restricted
set of primitives and datatypes. PLAN defines a special construct called a
chunk used to describe the remote execution of PLAN programs on other nodes
. Primitive operations on chunks are used to provide basic data transport i
n the network and to support layering of protocols. Remote execution can ma
ke debugging difficult, so PLAN provides strong static guarantees to the pr
ogrammer, such as type safety. A more novel property aimed at protecting ne
twork availability is a guarantee that PLAN programs use a bounded amount o
f network resources.