Abstract | PLAN (Programming Language for Active Networks) is anew language for programs that are carried in the packets
of a programmable network. PLAN programs replace the
packet headers (which can be viewed as `dumb' programs)
used in current networks. As a header replacement, PLAN
programs must be lightweight and of limited functionality.
These limitations are mitigated by allowing PLAN code to
call service routines written in other, more powerful lan-
guages. These service routines may also be loaded into the
routers dynamically. This two-level architecture, in which
PLAN serves as a scripting or `glue' language for more gen-
eral services, is the primary contribution of the paper.
PLAN is a strict functional language providing a limited
set of primitives and datatypes. PLAN de nes primitives
for remotely executing PLAN programs on other nodes, and
these primitives are used to provide basic data transport
in the network. Because remote execution makes debugging
di cult, PLAN provides strong static guarantees to the pro-
grammer, such as type safety. A more novel property aimed
at protecting network availability is a guarantee that PLAN
programs use a bounded amount of space and time on active
routers and bandwidth in the network.
|