Patent ID: 7617327
Filing Date: 2009-11-10
Classification: G06F,H04L

Abstract:
1. A routing device comprising: an operating system kernel; a plurality of physical interfaces configured to receive packets to be forwarded; a plurality of virtual routers, wherein the plurality of virtual routers comprise a plurality of instructions for controlling a data processor to perform one or more tasks, the instructions being stored on a computer readable medium, and wherein the plurality of virtual routers are external to the operating system kernel, wherein each virtual router further comprises: a router manager configured to manage the plurality of virtual routers, wherein the router manager is configured to couple each virtual router to at least one of the physical interfaces, wherein the router manager controls the coupling of the virtual routers to the physical interfaces, and wherein the coupling is performed on a dynamic basis; and an application, wherein the application is situated external to the plurality of virtual routers, and wherein the application being configured to receive requests to perform a plurality of tasks for at least one client; wherein the application is able to selectively communicate with one or more of the plurality of virtual routers and the operating system kernel on a dynamic basis to perform the plurality of tasks for the at least one client application, wherein the application selects a virtual router to perform a task based upon a set of routing protocols supported by the virtual router and the task to be performed; wherein the IP stack of each of the plurality of virtual routers resides external to the operating system kernel; wherein the operating system kernel further includes an associated socket layer, the socket layer having a corresponding socket application programming interface; and wherein the application is able to communicate with the operating system kernel via the associated socket layer using the corresponding socket application programming interface to have the operating system kernel perform one or more of the plurality of tasks.