PLAN: A Packet Language for Active Networks

Michael Hicks, Pankaj Kakkar, Jonathan T. Moore, Carl A. Gunter, Scott Nettles

Research output: Contribution to conferencePaperpeer-review

Abstract

PLAN (Packet Language for Active Networks) is a new language for programs 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 call 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 paper. We have successfully applied the PLAN programming environment to implement an IP-free internetwork. PLAN is based on the simply typed lambda calculus and provides 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 in the network and to support layering of protocols. Remote execution can make debugging difficult, so PLAN provides strong static guarantees to the programmer, such as type safety. A more novel property aimed at protecting network availability is a guarantee that PLAN programs use a bounded amount of network resources.

Original languageEnglish (US)
Pages86-93
Number of pages8
StatePublished - 1998
Externally publishedYes
EventProceedings of the 1998 3rd ACM SIGPLAN International Conference on Functional Programming, ICFP-98 - Baltimore, MD, USA
Duration: Sep 27 1998Sep 29 1998

Conference

ConferenceProceedings of the 1998 3rd ACM SIGPLAN International Conference on Functional Programming, ICFP-98
CityBaltimore, MD, USA
Period9/27/989/29/98

ASJC Scopus subject areas

  • Software

Fingerprint

Dive into the research topics of 'PLAN: A Packet Language for Active Networks'. Together they form a unique fingerprint.

Cite this