IP services creation in a programmable router

We describe a framework for programming value-added services into an edge router, such as a router used by a local enterprise domain for access to external IP transport services. Service programming modules and policies are downloaded from servers by CORBA object invocations made by an operator to the programmable router. The programmable functions include creation of virtual networks (VNs) providing selective treatments to aggregated IP traffic classes defined according to user(s), applications, or other classifications that can be determined from the traffic itself. VNs may be mapped into a variety of external transport services, including IntServ, DiffServ, or ATM services. We illustrate these capabilities with two examples: a "guest IP" service that provides a visiting portable IP device with access to the Internet and specified local resources without requiring any configuration changes in the portable device; and priority-ranked VNs for traffic of Internet applications such as HTTP, FTP, Telnet and RealAudio. These mechanisms have been implemented and verified in a 3-month trial with four guests, on a 233 MHz Pentium II/Linux platform.