Network interconnecting apparatus having a separate forwarding engine object at each interface
DCFirst Claim
1. In an interconnecting apparatus having a plurality of interfaces for providing data forwarding services between a plurality of communication networks, wherein each interface is capable of attaching to at least one of the plurality of communication networks, and wherein a forwarding and service engine in a source interface is used to determine a destination interface positioned in a path from a source communication network to a destination communication network, the source interface being operable to forward a plurality of data packets to the destination interface within the interconnecting device, the improvement comprising:
- an object-oriented program stored in a memory of the interconnecting apparatus and executed by the interconnect apparatus, wherein data and operations are united into fundamental logical building blocks of classes and objects;
an interface object instantiated for each media device driver at each interface of the interconnecting apparatus, each interface object representing a logical interface and being bound to its associated media device driver each media device driver to operate with a respective communication medium attached to the respective interface of the interconnecting apparatus; and
a plurality of separate forwarding and service engine objects, each instantiated and bound to a respective one of the interface objects, and each being operable to forward the plurality of data packets received at the respective interface of the interconnecting apparatus to the destination interface.
5 Assignments
Litigations
0 Petitions
Accused Products
Abstract
An interconnecting apparatus includes one or more interfaces. Each interface connects to a network. The interconnecting apparatus interconnects the networks attached to the interfaces. The device utilizes distributed autonomous forwarding engines on each interface in that each interface has a forwarding engine corresponding to it. Each forwarding engine only knows the configuration information and how to receive and transmit packets on the one interface to which it corresponds. Each forwarding engine acts independently to process packets, yet each interacts together to collectively provide packet forwarding which is protocol independent, interface independent, and scalable.
197 Citations
17 Claims
-
1. In an interconnecting apparatus having a plurality of interfaces for providing data forwarding services between a plurality of communication networks, wherein each interface is capable of attaching to at least one of the plurality of communication networks, and wherein a forwarding and service engine in a source interface is used to determine a destination interface positioned in a path from a source communication network to a destination communication network, the source interface being operable to forward a plurality of data packets to the destination interface within the interconnecting device, the improvement comprising:
-
an object-oriented program stored in a memory of the interconnecting apparatus and executed by the interconnect apparatus, wherein data and operations are united into fundamental logical building blocks of classes and objects; an interface object instantiated for each media device driver at each interface of the interconnecting apparatus, each interface object representing a logical interface and being bound to its associated media device driver each media device driver to operate with a respective communication medium attached to the respective interface of the interconnecting apparatus; and a plurality of separate forwarding and service engine objects, each instantiated and bound to a respective one of the interface objects, and each being operable to forward the plurality of data packets received at the respective interface of the interconnecting apparatus to the destination interface. - View Dependent Claims (2, 3)
-
-
4. In a method of providing data forwarding services between a plurality of communication networks including forwarding of a data packet from a source network to a destination network, the improvement comprising:
-
in an interconnecting apparatus having a plurality of interfaces for providing data forwarding services between the plurality of communication networks, instantiating an interface object for each media device driver on each interface of the interconnecting apparatus, each interface object representing a logical interface and being bound to its associated media device driver, each media device driver to operate with a respective communication medium attached to the respective interface of the interconnecting apparatus; instantiating and binding a separate forwarding engine object to each separate interface object; in response to receipt of a data packet on a source interface of the interconnecting apparatus, the interface object for the source interface calling a service method in its bound forwarding engine object; the service method removing the sublayer framing on the data packet; the service method performing validation and extraction of the destination address from the data packet; the service method providing a next hop determination by looking up the destination address in a cache memory of active addresses to determine a destination forwarding engine object handle identifying the engine object to which the data packet is forwarded, and, if the destination address is not located in the cache memory, accessing a forwarding lookup table for the best route to the destination address and updating the cache memory; and returning the determined destination forwarding engine object handle to the interface object for the source interface. - View Dependent Claims (5)
-
-
6. A method of distributed input/output processing by an input/output interface in an interconnecting apparatus having a plurality of input/output interfaces operable between a plurality of communication networks for providing data forwarding services between a plurality of communication networks, the method comprising the steps of:
-
a) providing a plurality of interface objects, each interface object having only configuration and forwarding information for an associated input/output interface of the interconnecting apparatus, wherein the associated input/output interface is capable of attaching to at least one of the plurality of communication networks and wherein each interface object represents a logical interface which is bound to its associated input/output interface; and b) upon receipt of an incoming data packet at one interface object, the one interface object accessing its forwarding information to determine a next interface object and forwarding the data packet to the determined next interface object, wherein each interface object acts independently to process the incoming data packet. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A computer-readable storage medium having computer-readable program code embodied on the computer-readable storage medium, the program code enabling an interconnecting apparatus having a plurality of input/output interfaces operable between a plurality of communication networks to forward data packets between input/output interfaces, the program code including:
-
a resource object being operable to instantiate a plurality of autonomous interface objects and to bind each interface object to an associated input/output interface; and each interface object having media and data packet framing information only for the associated input/output interface and its own forwarding information for forwarding an incoming data packet received on the associated input/output interface to a next interface object.
-
Specification