PLAN (Programming Language for Active Networks) is designed to offer greater networking flexibility by providing the means to execute packet-carried programs in the network infrastructure. This ability would mean that networks might be configured dynamically rather than requiring extended downtime, as is currently the case. One key aspect of this flexibility is the division between PLAN and the layer of services resident on a given router.
Ironically, the original released implementation of PLAN had a very simple routing algorithm based on static routing tables which had to be maintained at each router. Therefore, a change in the PLAN network topology would require tearing down the whole network, altering the routing table files, and then restarting the network. In addition, the basic routing protocol was closely tied to the PLAN interpreter itself.
We have instead developed a dynamic routing protocol which uses PLAN as its administrative communication medium. This Service Layer Routing Protocol (SLRP) is implemented entirely within router-resident services which are separable from the PLAN base interpreter. Communication between nodes is achieved by sending PLAN packets containing service invocations. SLRP is used as the current default routing service for PLAN packets.
This document explains the design rationale and implementation details of SLRP. Section 2 provides a general overview of the protocol. Sections 3 and 4 detail the responsibilities of slave and master nodes, respectively. Finally, Section 5 discusses problems with the current protocol and implementation and explores possible future improvements. We have also included an appendix describing the command-line options for the active router which are SLRP-specific.