SlideShare a Scribd company logo
1 of 12
Download to read offline
US006970943B1 
(12> Ulllted States Patent (16) Patent N0.: US 6,970,943 B1 
Subramanian et al. (45) Date of Patent: Nov. 29, 2005 
(54) ROUTING ARCHITECTURE INCLUDINGA 6,134,589 A * 10/2000 Hultgren ................... .. 709/227 
COMPUTE PLANE CONFIGURED FOR 6,151,633 A 11/2000 Hurst et a1. 709/235 
HIGI-LSPEEI) PROCESSING OF PACKETS 6,157,941 A * 12/2000 Verkler et a1. 709/202 
TO PROVIDE APPLICATION LAYER 6,226,267 B1 5/2001 Spinney et a1. ..... .. 370/235 
SUPPORT 6,286,052 B1 9/2001 McCloghne et a1. . 709/238 
6,289,389 B1 9/2001 Kikinis ..................... .. 709/239 
_ _ _ _ 6,424,621 B1 7/2002 Ramaswamy et a1. .... .. 370/230 
(75) Inventors Slva subr‘f‘maman’ Cary’ NC (Us), 6,560,644 B1 * 5/2003 Lautmann et a1. ........ .. 709/223 
Ta] I- Lavlall, Sunnyvale, CA(US) 6,570,867 B1 5/2003 Robinson et a1. . 370/351 
6,611,872 B1 * 8/2003 McCanne .......... .. 709/238 
(73) Assignee: Nortel Networks Limited, St Laurent 6,611,874 B1 * 8/2003 Denecheau et a1. 709/239 
(CA) 6,754,219 B1 * 6/2004 Cain et al. .......... .. 370/401 
6,757,289 B1 * 6/2004 Cain et al. ................ .. 370/401 
( * ) Notice: Subject to any disclaimer, the term of this 6,785,704 B1 * 8/2004 McCanne ................. .. 718/105 
patent is extended or adjusted under 35 6,792,461 B1 * 9/2004 Hericourt ........ .. 709/225 
U_S_C_ 154(k)) by 1028 days_ 6,810,421 B1 * 10/2004 lshizaki et a1. 709/226 
6,810,427 B1 * 10/2004 Cain et al. ................ .. 709/238 
(21) Appl. NO.Z 09/736,692 * Cited by examiner 
(22) Filed: Dec. 13, 2000 Primary Examiner—Nabil El-Hady 
74 A ttorney, A gent, 0r Fz ' rm— W'1 t h row & Te rranova, 
Related US. Application Data PLLC 
(60) l?oélggcgnal apphcatlon No. 60/239,484, ?led on Oct. (57) ABSTRACT 
7 The present invention provides a routing architecture includ 
IIlt- Cl- ........................................... .. a Control plane, a Compute plane, and a forward plane' 
(52) US. Cl. .................... .. 709/238; 709/223; 709/225; The forward plane provides traditional forwarding of pack 
_ 709/226; 709/227; 709/230; 709/232 ets to the next-hop address, along with any necessary header 
Fleld of Search .............................. .. manipulation, the Control plane Con?gures the forward 
709/223, 225, 226, 227,238,239, 230, 232 plane and the compute plane for desired operation. The 
compute plane is con?gured for high-speed processing of 
(56) References Cited packets to provide application level support, including 
Us PATENT DOCUMENTS manipulating application data in the payload of ‘the packets 
during routlng. The forward plane preferably implements 
5,167,033 A 11/1992 Bryant ct a1~ ~~~~~~~~~~~~~ ~~ 709/235 forwarding rules using ?lters suf?cient to forward a received 
5,377,327 A 12/1994 Jain et al. ................. .. 709/235 5 495 426 A 2 1996 W 1 k 1 709 226 packet to the next-hop address, to the compute plane for 
5’854’899 A 121998 cslfoiwjt :1 et a‘ """ " 709238 application processing, or to the control plane to facilitate 
6,044,075 A 3/2000 Le Boudec et a1. . 370/351 Control or Con?guranon' 
6,078,953 A 6/2000 Vaid et al. . . . . . . . . . . . . . .. 709/223 
6,092,096 A * 7/2000 Lewis ...................... .. 709/200 37 Claims, 4 Drawing Sheets 
’/10 
COMPUE PLANE FORM??? PLANE 
Y CP — 
ME??? 6 E T O — F RWARD IRULEEI I 2 IL VSVR c T PROCESSOR 
GP 38 C T /L__l | C /t_l g E Q 
LIBRARY MODULE K E T K 
(0P FUNCTIONS) E — P R c P k K FOHWARDING 
44 RuLEs L F H L RULES/FILTER 
_ A A | A N C 50 
2*38 N o ‘I l’ N N ‘I l’ E E 
- | E E e E @ 
HOST CP Q1 26 PR E R _ NETWORK 
0910880 E 1 INTERFACE 
— |—RuLE's] 2 aa Q I; 
coNTRoL PLANE BACKPLANE 
g INTEgBFACE 
CONTROL 
MEMORY PRocEssoR 
Q 28
U.S. Patent Nov. 29,2005 Sheet 1 of4 US 6,970,943 B1 
K10 
CONTROL PLANE 
12 
COMPUTE SERVICES NETWORK SERVICES 
E @ 
COMPUTE API NETWORK API 
2 a 
COMPUTE PLANE FORWARD PLANE 
u 2 
FIG. 1 
K10 
CONTROL PLANE 
12. 
COMPUTE SERVICES NETWORK SERVICES 
E Q 
COMPUTE API NETWORK API 
2 as 
COMPUTE PLANE FORWARD PLANE 
11 m 
/  FORWARDED 
PACKETS 
FIG. 2
U.S. Patent Nov. 29,2005 Sheet 2 of4 US 6,970,943 B1 
[-10 
CONTROL PLANE 
l2 
COMPUTE SERVICES NETWORK SERVICES 
E Q 
COMPUTE API NETWORK API 
2_2 & 
COMPUIII'4E PLANE FORWARD PLANE 
/ —  lg 
/  PACKETS 
MANIPULATED BY 
COM PUTE PLANE 
FIG. 3 
K10 
CONTROL PLANE 
CONFIGURATION 2 
INSTRUCTIONS 
COMPUTE SERVICES NETWORK SERVICES 
u 29 
COMPUTE API NETWORK API 
2 a 
_> COMPUTE PLANE FORWARD PLANE 
u m 
_> 
T“. 
PACKETS DIRECTED 
TO CONTROL PLANE 
FIG. 4
U.S. Patent Nov. 29,2005 Sheet 3 of4 US 6,970,943 B1 
,| 7K 
»-T 
»(N: +(v: »(w:
US 6,970,943 B1 
1 
ROUTING ARCHITECTURE INCLUDING A 
COMPUTE PLANE CONFIGURED FOR 
HIGH-SPEED PROCESSING OF PACKETS 
TO PROVIDE APPLICATION LAYER 
SUPPORT 
This application claims the bene?t of provisional appli 
cation No. 60/239,484, ?led Oct. 11, 2000, entitled COM 
PUTATION IN NETWORK DEVICES, and is related to 
application Ser. No. 09/736,678, ?led Dec. 13, 2000, entitled 
DISTRIBUTED COMPUTATION IN NETWORK 
DEVICES and Ser. No. 09/736,674, ?led Dec. 13, 2000, 
entitled SERVICE BASED ROUTING, the disclosures of 
Which are incorporated herein by reference in their entirety. 
FIELD OF THE INVENTION 
The present invention relates to processing and routing 
packets in a netWork, and in particular, to providing high 
speed, application level processing on the packets during 
routing. 
BACKGROUND OF THE INVENTION 
Existing routers have limited computation capacity and 
offer little or no application layer support during routing. 
These routers are typically divided into a control plane and 
a forWard plane. The control plane is used for basic setup 
and control of the router. For example, the control plane is 
generally used to establish routing tables used by the for 
Ward plane. The forWard plane receives packets, processes 
the packets based on the routing tables set up by the control 
plane, and delivers the packets to the next-hop address or the 
?nal destination, depending on the termination point for 
each packet. 
The forWard plane in existing routers is typically limited 
to packet delivery based on basic header analysis and 
manipulation. Application layer support, such as that requir 
ing analysis or manipulation of the packet’s payload, is 
typically avoided. Those specially con?gured devices 
capable of providing application processing, such as ?re 
Walls, are uniquely con?gured for the special application 
Wherein the routing speeds for normal routing in the forWard 
plane are signi?cantly impacted or the control plane is 
uniquely adapted to handle such processing. In either case, 
basic routing capability of the forWard plane is inhibited. 
Thus, traditional netWork routers typically do not provide 
application level processing, and routing devices providing 
such support are only used in limited applications. 
Given the general desire to distribute processing over a 
netWork, there is a need for efficient routing devices capable 
of providing application level processing Without signi? 
cantly impacting forWarding performance for the packets 
being processed at an application level or for those requiring 
only basic routing. There is a further need to provide a 
routing device that is readily con?gurable to provide various 
types of application support in any number of netWork 
environments. 
SUMMARY OF THE INVENTION 
The present invention provides a routing architecture 
including a control plane, a compute plane, and a forWard 
plane. The forWard plane provides traditional forWarding of 
packets to the next-hop address, along With any necessary 
header manipulation, While the control plane con?gures the 
forWard plane and the compute plane for desired operation. 
10 
15 
20 
25 
30 
35 
40 
45 
55 
60 
65 
2 
The compute plane is con?gured for high-speed processing 
of packets to provide application level support, including 
manipulating application data in the payload of the packets 
during routing. 
The forWard plane preferably implements forWarding 
rules using ?lters suf?cient to forWard a received packet to 
the next-hop address, to the compute plane for application 
processing, or to the control plane to facilitate control or 
con?guration. For those packets not sent to the compute 
plane or control plane, the forWard plane Will provide any 
necessary processing and forWard the packets from an input 
port to an output port. Additionally, the forWard plane 
receives packets from the control plane and the compute 
plane for forWarding after processing by the respective 
planes. 
Preferably, the compute plane is implemented using high 
speed ?eld programmable gate arrays (FPGAs), application 
speci?c integrated circuits (ASICs), digital signal processors 
(DSP), netWork processors, or a combination thereof suf? 
cient to provide processing speeds that are close to forWard 
ing speeds of the forWard plane. Further, the compute plane 
is preferably con?gurable by the control plane to provide 
various types of application processing. The compute plane 
may be con?gured to provide different types of application 
processing for different packets. The forWard plane may be 
set to determine Where to send the packets in the compute 
plane for processing, or the compute plane may determine 
hoW or Where to process the packets upon receipt. 
With the present invention, the routing device is able to 
perform application level processing on packets Without 
impacting forWarding performance. The invention separates 
the task of control from computation to avoid negatively 
impacting performance for either task. A neW, high-speed 
computation plane is provided in the routing device to 
handle application level processing, While the forWard plane 
provides basic forWarding. The routing abilities of the 
present invention may be provided in any number of net 
Work devices, including traditional routers and media gate 
Ways capable of routing packets over homogeneous or 
heterogeneous netWorks. 
Those skilled in the art Will appreciate the scope of the 
present invention and realiZe additional aspects thereof after 
reading the folloWing detailed description of the preferred 
embodiments in association With the accompanying draWing 
?gures. 
BRIEF DESCRIPTION OF THE DRAWING 
FIGURES 
The accompanying draWing ?gures incorporated in and 
forming a part of the speci?cation illustrate several aspects 
of the invention, and together With the description serve to 
explain the principles of the invention. 
FIG. 1 depicts a preferred architecture for a routing node 
constructed according to the present invention. 
FIG. 2 illustrates the forWarding path of packets pro 
cessed Within the forWard plane of the architecture shoWn in 
FIG. 1. 
FIG. 3 illustrates the forWarding path of packets pro 
cessed by the compute plane of the architecture shoWn in 
FIG. 1. 
FIG. 4 illustrates the forWarding path of packets directed 
to the control plane and the path of instructions for con?g 
uring the compute plane and forWard plane from the control 
plane according to a preferred embodiment of the present 
invention.
US 6,970,943 B1 
3 
FIG. 5 is a How diagram outlining the basic ?oW for 
processing packets in the control plane, compute plane, 
and/or the forward plane according to a preferred embodi 
ment of the present invention. 
FIG. 6 is a block schematic of a preferred con?guration of 
a routing node according to the present invention. 
DETAILED DESCRIPTION OF THE 
PREFERRED EMBODIMENTS 
The present invention provides for a routing node having 
a separate processing plane for application layer support 
during routing. The application layer support may include 
any type of processing or netWork service on packet content. 
In addition to forWard and control planes, the routing node 
includes a separate compute plane for processing packets 
according to speci?c applications during routing. The for 
Ward plane provides traditional forWarding, along With any 
necessary header manipulation, While the control plane 
preferably con?gures the forWard plane and the compute 
plane as desired. Upon reading the folloWing description in 
light of the accompanying draWing ?gures, those skilled in 
the art Will understand the concepts of the invention and Will 
recogniZe applications of these concepts not particularly 
addressed herein. It should be understood that these con 
cepts and applications fall Within the scope of this disclosure 
and the accompanying claims. 
The embodiments set forth beloW represent the necessary 
information to enable those skilled in the art to practice the 
invention and illustrate the best mode of practicing the 
invention. With reference to FIG. 1, a routing node is 
illustrated and generally referenced as 10. The routing node 
10 is divided into three primary processing planes; a control 
plane 12, a compute plane 14, and a forWard plane 16. 
Preferably, all incoming packets are received by the forWard 
plane 16 through various ports interacting With a netWork, 
such as a packet-sWitched netWork. The forWard plane 16 is 
con?gured to analyZe each of the incoming packets and 
determine Where to send each packet. In general, the incom 
ing packets need to be forWarded on toWard their ?nal 
destination, to the control plane 12, or to the compute plane 
14. 
Depending on the eXtent or nature of any necessary 
manipulation of the packet, the packet may be processed by 
the forWard plane 16 and forWarded to the neXt-hop routing 
node or ?nal destination. Preferably, any packet processing 
provided by the forWard plane 16 is limited to manipulating 
information in one or more headers of the packet as neces 
sary in traditional routing. As depicted in FIG. 2, packets 
requiring only traditional routing are maintained in the 
forWard plane 16 for processing and immediately forWarded 
to the neXt-hop routing node or destination. 
Packets entering the forWard plane 16 that require appli 
cation level processing, Which may entail manipulation of 
the packet’s payload, are directed to the compute plane 14 
by the forWard plane 16. As depicted in FIG. 3, these packets 
are passed through the forWard plane 16 to the compute 
plane 14 for processing and then sent back to the forWard 
plane 16, Which Will forWard the processed packet to the 
neXt-hop routing node or ?nal destination. 
Although additional detail is provided beloW, the compute 
plane 14 provides application level processing, and any 
necessary payload manipulation required by such process 
ing. During processing by the compute plane 14, the payload 
may be revieWed, removed, modi?ed, and repacked as 
directed by any number of applications. The routing node 10 
15 
25 
45 
55 
65 
4 
preferably supports programming and unique con?guration 
of the compute plane 14 and the forWard plane 16. 
Any number of applications may be supported through the 
compute plane 14. For eXample, Internet Protocol (IP) 
security and secure socket layer (SSL) applications may be 
implemented in a routing node 10 using the compute plane 
14. Various types of multimedia applications are made 
possible, alone or in combination With other applications. 
Further, incorporating a high-speed compute plane 14 for 
application speci?c packet processing enables streaming 
applications and minimiZes or eliminates the need for buff 
ering. The compute plane 14 is capable of implementing 
virtually any type of application, ranging from carrying out 
mathematical operations on payloads to implementing com 
pression and encryption algorithms. The compute plane 14 
may also help facilitate high-speed ?reWalls acting as a 
single point of entry or distributed to provide multiple points 
of entry. Typically, the compute plane 14 operates on layer 
four and higher protocols that are typically application 
related. 
In addition to traditional forWarding of incoming packets 
and directing packets to the compute plane 14 for process 
ing, the forWard plane 16 may direct selected incoming 
packets to the control plane 12 for basic communications 
With the routing node 10 as shoWn in FIG. 4. In essence, the 
control plane 12 provides overall control and con?guration 
for the routing node 10, and in particular, for the compute 
plane 14 and the forWard plane 16. This control may range 
from running diagnostics to setting con?gurations for the 
compute plane 14 and the forWard plane 16. These settings 
may dictate the type of processing to carry out on the 
incoming packets and Which plane handles the processing. 
Returning noW to FIG. 1, the routing node 10 may support 
various services, Which are groups of code or objects that 
implement speci?c functionality. Preferably, these services 
use Java code and may be divided into compute services 18 
related to the compute plane 14, and netWork services 20 
related to the operation of the forWard plane 16. Each of 
these services cooperates With the corresponding compute 
plane 14 and forWard plane 16 via a compute application 
program interface (API) 22 and netWork API 24, respec 
tively. Since the services are preferably Java compatible, the 
compute API 22 and netWork API 24 may specify interfaces 
for Java applications to control the respective compute plane 
14 and forWard plane 16. 
Preferably, the netWork API 24 can be used to instruct the 
forWard plane 16 to alter packet processing through the 
installation of hardWare or softWare ?lters that facilitate 
forWarding rules. These ?lters execute actions speci?ed by 
a de?ned ?lter policy. Typically, these ?lters can be based on 
combinations of ?elds in the machine address, IP address, 
and transport headers. The ?lters may also be con?gured to 
trigger on a payload as Well. The ?lter policy can de?ne 
Where the matching packets are delivered and can also be 
used to alter the packet content as noted above. 
Typical packet delivery options include discarding match 
ing packets and diverting matching packets to the control 
plane 12 or compute plane 14 based on the ?lter policy. With 
the present invention, a high-speed compute plane 14 is 
provided to handle such processing. Additionally, packets 
may be “copied” to the control or compute planes 12, 14 or 
may be mirrored to a selected interface. Packets may also be 
identi?ed as being part of high-priority ?oW; these packets 
can be placed in a high-priority queue and delivered accord 
ingly. As noted, the ?lter policy can also cause packet and 
header content to be selectively altered for most of these 
operations. The particular plane handling the processing is
US 6,970,943 B1 
5 
capable of re-computing IP header check sums at high 
speeds When and if the IP header or payload is changed. 
In the present invention, all control plane computations, 
such as installing neW routing tables or parsing a neW 
Internet Control Message Protocol (ICMP) message type, 
are easily accommodated through the netWork API 24. 
Through the netWork API 24, the forWard plane 16 may 
provide a number of services. The applications are typically 
contained Within the forWard plane 16 and Will not require 
additional processing by the compute plane 14 for traditional 
operation. The folloWing list of services is merely exemplary 
and is not intended to limit the scope of the present inven 
tion. 
A ?ltering ?reWall may be implemented that alloWs or 
denies packets to traverse speci?ed interfaces depending on 
Whether the packet header matches a given bit map. An 
application speci?c ?reWall may be implemented that 
dynamically changes the ?reWall rules according to the 
application. For example, a ?le transfer protocol (FTP) 
gateWay that dynamically changes the ?reWall rules to alloW 
FTP data connections to a trusted host can be implemented. 
Security functions like stopping Transmission Control Pro 
tocol (TCP) segments With no or all bits set can also be 
dynamically programmed. 
Dynamic Real-Time Transfer Protocol (RTP) ?oW iden 
ti?cation is possible. RTP over User Datagram Protocol 
(UDP) ?oWs, Which are often not Well knoWn, are identi?ed 
by a UDP port number. Mechanisms can be implemented to 
identify RTP ?oWs based on the UDP port number. For 
example, control protocol messages, such as those used in 
Session Initiation Protocol (SIP), Real Time Streaming 
Protocol (RTSP), and H.323, can be intercepted and parsed 
for their RTP port numbers. Various differential services may 
be provided. For example, the forWard plane 16 may be 
con?gured as a differential service classi?er by properly 
programming the ?lters or forWarding rules. Since the 
forWard plane 16 may change selected bits and IP header at 
line speed, the routing node 10 can be used to implement 
ingress/egress marker capabilities for differential services. 
Reliable multi-casts are also made possible With proper 
forWarding rules. 
In addition to being able to copy certain packets for 
inspection by the control plane 12, the forWard plane 16 may 
be used to divert acknowledgements from multi-cast ses 
sions to the control plane 12. For example, the forWard plane 
16 can send one copy of the acknowledgment to the control 
plane 12 and suppress duplicate acknoWledgements. Addi 
tionally, a token bucket system may be arranged Where a 
con?gurable buffer is implemented With a speci?ed packet 
draining rate. Differential service shapers and assorted 
RSVP policies can be implemented as Well. RSVP is a 
resource reservation setup protocol for the Internet. Its major 
features include: (1) the use of “soft state” in the routers, (2) 
receiver-controlled reservation requests, (3) ?exible control 
over sharing of reservations and forWarding of sub?oWs, and 
(4) the use of IP multicast for data distribution. For addi 
tional information regarding RSVP, please see the Internet 
Engineering Task Force’s RFCs 2205 through 2210, Which 
are incorporated herein by reference in their entirety. 
The various functions provided by the forWard plane 16 
listed above relate to analyZing incoming packets, manipu 
lating packet headers, if necessary, and forWarding the 
packets to the next-hop or destination at high speeds. 
The present invention supplements these abilities With 
high-speed, preferably line rate, processing capabilities at an 
application level. As noted, the compute plane 14 is prefer 
ably used to manipulate packet data or payloads beyond 
10 
15 
25 
35 
40 
45 
55 
65 
6 
layer three or four protocols that provide application layer 
support. Thus, instead of analyZing or modifying the header 
on a packet, data analysis and manipulation associated With 
application layers in the packet is possible in the compute 
plane 14. 
Importantly, the compute plane 14 provides application 
support ef?ciently and at high speeds Without impacting the 
traditional routing speeds of the forWard plane 16. Further, 
the application layer processing is provided at much faster 
speeds in the compute plane 14 than Would be possible in the 
control plane 12. In addition to increased routing speeds and 
ef?ciency for application support, the compute plane 14 
alloWs signi?cant con?guration of routing nodes 10 to 
facilitate any number of applications or combinations 
thereof. 
Overall interaction betWeen the control plane 12, compute 
plane 14, and forWard plane 16 is outlined in the How 
diagram of FIG. 5. Notably, the preferred processing for 
each of the three planes is illustrated. The process begins 
(block 100) With the forWard plane 16 receiving all incom 
ing packets regardless of Whether the packets are intended 
for the routing node directly or simply sent to the routing 
node for routing. When a packet is received (block 102), the 
forWard plane 16 Will ?lter the packet based on the forWard 
ing rules (block 104). 
In general, the forWarding rules Will dictate Whether the 
packet is forWarded to the control plane 12, compute plane 
14, or sent to the next-hop or destination after processing by 
the forWard plane 16 (step 106). As discussed above, packets 
directed to the routing node 10, such as those used for 
diagnostics or to set con?gurations, are directed to the 
control plane 12. Packets requiring application level pro 
cessing are sent to the compute plane 14. Packets for Which 
the forWard plane 16 can handle all processing are simply 
processed in the forWard plane 16 and forWarded to the 
next-hop or destination. Typically, packets processed by the 
compute plane 14 and forWard plane 16 are those requiring 
routing. 
Assuming that the packet is one capable of being handled 
solely by the forWard plane 16, the packet is processed 
accordingly in the forWard plane 16 (block 108) and for 
Warded to the next-hop or destination (block 110). As noted, 
packet processing in the forWard plane 16 is typically 
limited to header analysis and manipulation. 
If the packet received by the forWard plane 16 is deter 
mined to be one directed to the control plane 12 based on the 
forWarding rules (block 106), the packet is received by the 
control plane 12 (block 112) and processed by the control 
plane 12 accordingly (block 114). As noted, packets 
intended for the control plane 12 may facilitate diagnostic or 
control instructions for the compute plane 14, such as 
instructions to set particular con?gurations for the compute 
or forWard planes 14, 16. For example, the compute plane 14 
may receive information for establishing the forWarding 
rules for the forWard plane 16 as Well as con?gure the 
particular processing carried out by the compute plane 14 or 
the forWard plane 16. 
When the control plane 12 needs to respond to commu 
nications or deliver instructions to another netWork device, 
the control plane 12 Will prepare a suitable packet or 
response for sending to a select destination (block 116). 
Preferably, the packet or packets associated With an outgoing 
communication from the control plane 12 are sent to the 
forWard plane 16 Wherein the packet or packets are for 
Warded to the next-hop or destination (block 110). 
If the packet received by the forWard plane 16 from the 
netWork is one requiring application level support and the
US 6,970,943 B1 
7 
forwarding rules direct the packet to the compute plane 14 
(block 106), the packet is routed to the compute plane 14 
accordingly. As described in further detail beloW, the for 
Warding rules may dictate Where to send the packet Within 
the compute plane 14 or hoW the packet Will be processed 
once it is received by the compute plane 14. In general, the 
compute plane 14 receives the packet (block 118) and 
processes the packet as dictated by the application (block 
120). As noted, preferably the application data or payload is 
processed in the compute plane 14. 
In particular, the compute plane 14 is con?gured to carry 
out select functions to facilitate application level processing, 
Which results in data or payload manipulation (block 120). 
The processing may require restructuring or re-packetiZing 
the data or payload information depending on the particular 
application. Certain applications may simply process indi 
vidual packets Wherein other applications may require vari 
ous types of data or payload reconstruction. For eXample, 
information in one packet may be used to create multiple 
neW packets, or the information in multiple packets may be 
used to create a single packet. Regardless of the processing, 
the packets processed or provided by the compute plane 14 
are sent to the forWard plane 16 (block 122) for forWarding 
to the neXt-hop routing device or destination. As such, the 
forWard plane 16 Will receive packets from the compute 
plane 14 and forWard the packet to the neXt-hop or desti 
nation (block 110). 
A block diagram of a preferred con?guration of the 
sWitching node 10 is depicted in FIG. 6. Preferably, each of 
the control plane 12, compute plane 14 and forWard plane 16 
includes dedicated processing capability and is in commu 
nication With the other planes through a switching backplane 
26. As such, the control plane 12 Will include a control 
processor 28 associated With a backplane interface 30 
coupled to the sWitching backplane 26 and Will include 
sufficient memory 32 for storing the necessary instructions 
and data for operation. 
The compute plane 14 includes a backplane interface 34 
in communication With one or more high-speed compute 
processors (CP) 36. These compute processors 36 Will 
include or be able to carry out select processes, rules or 
functions 38. Further, the compute processors 36 may stand 
alone or be controlled in part by a host processor 40. 
Preferably, the host processor 40 is associated With suf?cient 
memory 42 for storing the necessary data and instructions 
for operation. The host processor 40 may also be associated 
With a library module 44, Which may store various types of 
compute processor functions used to con?gure the function 
or rules 38 of the compute processors 36. The speed of the 
host processor 40 is not as critical as insuring that the 
compute processors 36 are capable of high-speed process 
mg. 
In an effort to maXimiZe the processing speeds, the 
compute processors 36 may be implemented using ?eld 
programmable gate arrays (FPGAs); application speci?c 
integrated circuits (ASICs); digital signal processing (DSP) 
components; netWork processors; or a combination thereof. 
Preferably, each compute processor 36 Will include a pro 
cessor and an FPGA or ASIC cooperating to maXimiZe 
processing throughput. The processor facilitates con?gura 
tion of the cooperating FPGA or ASIC, While the FPGA or 
ASIC processes the packets. Notably, the compute processor 
36 is a generic name for any one or combination of hard 
Ware, ?rmWare or softWare capable of providing the high 
speed application processing required in the compute plane 
14. Those skilled in the art Will appreciate the numerous 
techniques available to provide high-speed processing. 
10 
15 
25 
35 
40 
45 
55 
65 
8 
The compute processor 36 is con?gured to carry out select 
functions or rules 38 at or close to Wire-line speeds on the 
selected packets directed to the compute plane 14 from the 
forWard plane 16. Importantly, the compute processors 36 
may provide a combination of functions for varying appli 
cations or may be con?gured Wherein each compute pro 
cessor 36 carries out a dedicated function or rule 38. In the 
latter case, different compute processors 36 may facilitate 
different processing based on the function or rules 38. As 
such, the packets sent to the compute plane 14 from the 
forWard plane 16 are directed to a select compute processor 
36 capable of handling the application associated With the 
given packet. 
The forWard plane 16 includes a backplane interface 46 
for communicating With the sWitching backplane 26. The 
backplane interface 46 of the forWard plane 16 is associated 
With a forWard processor 48 capable of implementing select 
forWarding rules 50 that facilitate packet ?ltering and deliv 
ery to the control plane 12, compute plane 14, and the 
neXt-hop or destination. The forWard processor 48 provides 
the typical routing processing and functions in traditional 
fashion for those packets that do not require the application 
processing of the compute plane 14. The forWard processor 
48 is also associated With a netWork interface 52, Which is 
coupled to the packet-switched netWork for receiving and 
sending packets. 
The netWork interface 52 may be any type of netWork 
interface, including a 10 Base T, 100 Base T, or gigabit 
Ethernet interface. As depicted, given the necessary volume 
of traf?c handled by the routing node 10, the forWard plane 
16 may be provided on multiple cards, all of Which interface 
With the sWitching backplane 26. These cards may include 
their oWn forWard processors 48 and netWork interfaces 52. 
Further, the compute plane 14 may be implemented on 
multiple cards in a fashion similar to that depicted for the 
forWard plane 16. 
As With the compute processors 36 in the compute plane 
14, the forWard processors 48 require high-speed processing 
capability. As such, the forWard processor 48 is also an 
ASIC, FPGA, DSP device, netWork processor, or combina 
tion thereof. Preferably, as With the compute processors 36, 
the forWard processors 48 are programmable in the sense 
that the forWarding rules 50 and basic processing con?gu 
rations are programmable. Preferably, the compute proces 
sors 36 and the forWard processors 48 are programmable and 
can be programmed under the control of the control plane 
In essence, it is preferable for the control plane 12 to be 
able to establish the forWarding rules 50 and con?gure 
processing for the forWard plane 16. Similarly, the control 
plane 12 is preferably capable of setting the functions and 
rules 38 implemented by the compute processors 36 in the 
compute plane 14. Those skilled in the art Will appreciate the 
tremendous ?exibility in programming and con?guring the 
compute plane 14 and the forWard plane 16. 
For example, assume that for a given media stream 
application level processing is required for type A packets 
and basic forWarding is required for type B packets. Con 
?guration instructions may be sent to the routing node 10 
de?ning the type A and B packets Within the media stream 
and the processing function to provide on the type Apackets. 
The con?guration instructions may be sent in one or more 
packets, Which Will be forWarded to the control plane 12 by 
the forWard plane 16. Upon receipt, the control plane 12 Will 
con?gure the forWard plane 16 to recogniZe the type A and 
B packets in the media stream and forWard the type A
US 6,970,943 B1 
9 
packets to the compute plane 14 and the type B packets on 
to the next-hop or the ?nal destination. 
Those skilled in the art Will recognize that the routing 
node 10 of the present invention may be used in homoge 
neous as Well as heterogeneous netWorks. For example, the 
routing node 10 may be implemented as a router in a 
packet-sWitched netWork or in a media gateway, bridging 
like or different netWorks. In the latter case, the compute 
plane 14 is very effective in alloWing the processing of 
packets or content being converted from one format or 
protocol to another. 
The present invention provides a compute plane 14 facili 
tating application processing during routing. Regardless of 
the processing function, the compute plane 14 in the routing 
node 10 alloWs the forWard plane 16 to maintain the 
extremely high processing and forWarding speeds required 
for traditional routing and maximiZes processing speeds for 
packets requiring processing at an application level during 
routing. The present invention alloWs tremendous ?exibility 
in con?guring routers and adds the ability to provide appli 
cation processing at or near Wire-line speeds Without effect 
ing normal routing speeds of the forWard plane 16 or 
requiring additional computation poWer in the control plane 
12. 
Those skilled in the art Will recogniZe improvements and 
modi?cations to the disclosed embodiments of the present 
invention. For example, the routing devices of the present 
invention may be any number of netWork devices, including 
routers, sWitches, gateWays, aggregation devices, netWork 
distribution devices, core routers, Wireless base stations, 
Wireless access points, and multiplexors (electrical and 
optical). All such improvements and modi?cations are con 
sidered Within the scope of the concepts disclosed herein and 
the claims that folloW. 
What is claimed is: 
1. A routing node comprising a forWard plane, a compute 
plane, and a control plane, the forWard plane adapted to: 
a) receive packets including ?rst packets requiring basic 
forWarding by the forWard plane, second packets 
requiring processing by the compute plane, and third 
packets requiring processing by the control plane; 
b) send the second packets to the compute plane and the 
third packets to the control plane; 
c) receive processed packets from the compute plane; and 
d) forWard the ?rst packets and the processed packets 
received by the compute plane; 
the compute plane adapted to provide application level 
processing on the second packets received from the 
forWard plane and return the processed packets to the 
forWard plane for forWarding; and 
the control plane adapted to con?gure the compute plane 
and the forWard plane. 
2. The routing node of claim 1 Wherein the forWard plane 
is further adapted to implement forWarding rules on the 
packets received to identify and forWard the ?rst packets, the 
second packets, and the third packets. 
3. The routing node of claim 2 Wherein the control plane 
further comprises a ?lter for implementing the forWarding 
rules on the packets received. 
4. The routing node of claim 2 Wherein the forWarding 
rules are based on at least one header in the packets received 
and the forWard plane is further adapted to analyZe the at 
least one header in the packets received in light of the 
forWarding rules to identify the ?rst packets, the second 
packets, and the third packets. 
5. The routing node of claim 2 Wherein the control plane 
is adapted to at least partially de?ne the forWarding rules. 
10 
15 
25 
35 
40 
45 
55 
65 
10 
6. The routing node of claim 1 Wherein the compute plane 
is further adapted to process application data carried in 
payloads of the second packets according to an application 
to create the processed packets. 
7. The routing node of claim 1 Wherein the second packets 
require processing according to one of a plurality of unique 
applications and the compute plane is further adapted to 
process the second packets according to a corresponding one 
of the plurality of unique applications to create the processed 
packets. 
8. The routing node of claim 1 Wherein the compute plane 
includes a plurality of compute processors adapted to pro 
vide the application level processing on the second packets 
such that application level processing is distributed among 
the plurality of compute processors. 
9. The routing node of claim 1 Wherein the second packets 
require processing according to one of a plurality of unique 
applications and the compute plane includes a plurality of 
compute processors adapted to provide the application level 
processing on the second packets according to a correspond 
ing one of the plurality of unique applications to create the 
processed packets. 
10. The routing node of claim 1 Wherein the control plane 
is adapted to at least partially de?ne functions facilitating the 
application level processing on the second packets. 
11. The routing node of claim 10 Wherein the control 
plane is further adapted to at least partially de?ne the 
forWarding rules. 
12. The routing node of claim 1 Wherein the control plane 
is further adapted to receive at least one of the third packets 
and con?gure at least one of the forWard plane and the 
compute plane based on the at least one of the third packets. 
13. The routing node of claim 1 Wherein the forWard plane 
is further adapted to manipulate headers of the ?rst packets 
to facilitate forWarding of the ?rst packets over a netWork 
toWard a destination. 
14. The routing node of claim 1 Wherein: 
a) the forWard plane includes a netWork interface associ 
ated With a plurality of forWard processors adapted to 
receive the packets via the netWork interface and imple 
ment forWarding rules on the packets received to iden 
tify the ?rst packets, the second packets, and the third 
packets; 
b) the compute plane includes a plurality of compute 
processors adapted to provide the application level 
processing on the second packets such that the appli 
cation level processing is distributed among the plu 
rality of compute processors; and 
c) a backplane coupling together the forWard plane, 
compute plane, and control plane. 
15. The routing node of claim 14 Wherein the compute 
plane further includes a host processor associated With each 
of the plurality of compute processors and adapted to 
establish processing rules to implement the application level 
processing for each of the plurality of compute processors. 
16. The routing node of claim 14 Wherein the forWard 
processors and the compute processors are high-speed pro 
cessing architectures consisting of one or a combination of 
the group consisting of ?eld programmable gate arrays, 
digital signal processors, netWork processors, and applica 
tion speci?c integrated circuits. 
17. The routing node of claim 1 Wherein the routing node 
is a router and the forWard plane includes a netWork inter 
face to facilitate packet-sWitched communication over a 
packet-sWitched netWork.
US 6,970,943 B1 
11 
18. The routing node of claim 1 wherein the routing node 
is a media gateway and the forward plane is associated with 
a network interface to facilitate communications between at 
least two networks. 
19. Arouting architecture for a forward plane of a routing 
node including the forward plane, a compute plane, and a 
control plane, the architecture for the forward plane com 
prising: 
a) means for receiving packets including ?rst packets 
requiring basic forwarding by the forward plane, sec 
ond packets requiring processing by the compute plane, 
and third packets directed to the control plane; 
b) means for identifying the ?rst packets, the second 
packets, and the third packets; and 
c) means for forwarding the third packets to the control 
plane; the second packets to the compute plane for 
processing; and the ?rst packets and packets processed 
by the compute plane over a network toward a desti 
nation based on forwarding rules. 
20. The routing architecture of claim 19 further compris 
ing means for receiving processed packets from the compute 
plane. 
21. The routing architecture of claim 19 wherein the 
forwarding rules are based on at least one header in the 
packets received and further comprising means for analyZ 
ing the at least one header in the packets received in light of 
the forwarding rules to identify the ?rst packets, the second 
packets, and the third packets. 
22. The routing architecture of claim 19 further compris 
ing means for receiving instructions to con?gure at least a 
portion of the forwarding rules from the control plane. 
23. The routing architecture of claim 19 wherein the 
compute plane is further adapted to process application data 
carried in payloads of the second packets according to an 
application to create the processed packets. 
24. The routing architecture of claim 19 further compris 
ing means for manipulating headers of the ?rst packets to 
facilitate forwarding of the ?rst packets over the network 
toward a destination. 
25. Arouting architecture for a compute plane of a routing 
node including a forward plane, the compute plane, and a 
control plane wherein the forward plane is adapted to 
receive packets including ?rst packets requiring basic for 
warding by the forward plane, second packets requiring 
processing by the compute plane, and third packets directed 
to the control plane, the architecture for the compute plane 
comprising: 
a) means for receiving the second packets requiring 
processing by the compute plane from the forward 
plane; 
b) means for processing the second packets at an appli 
cation level to create processed packets; and 
c) means for sending the processed packets to the forward 
plane for forwarding over a network toward a destina 
tion. 
26. The routing architecture of claim 25 wherein the 
means for processing processes application data carried in 
payloads of the second packets according to an application 
to create the processed packets. 
27. The routing architecture of claim 25 wherein the 
second packets require processing according to one of a 
plurality of unique applications and the means for process 
ing processes the second packets according to a correspond 
ing one of the plurality of unique applications to create the 
processed packets. 
15 
25 
35 
40 
45 
55 
65 
12 
28. A routing device comprising: 
a) a control plane for controlling the router; 
b) a compute plane adapted to process content contained 
in packets requiring application processing to provide 
processed packets; and 
c) a forward plane adapted to: 
i) receive packets requiring a basic forwarding service, 
packets requiring application processing, and pack 
ets for general control of the router; 
ii) process and forward the packets requiring the basic 
forwarding service; 
iii) send the packets requiring application processing to 
the compute plane; 
iv) receive the processed packets of the compute plane; 
v) forward the processed packets; and 
vi) send the packets for general control of the router to 
the control plane. 
29. A method of routing packets using a forward plane, a 
compute plane, and a control plane comprising: 
a) in the forward plane, receiving packets including ?rst 
packets requiring basic forwarding by the forward 
plane, second packets requiring processing by the com 
pute plane, and third packets requiring processing by 
the control plane; sending the second packets to the 
compute plane and the third packets to the control 
plane; receiving processed packets from the compute 
plane; and forwarding the ?rst packets and the pro 
cessed packets received by the compute plane over a 
network toward a destination; 
b) in the compute plane, providing application level 
processing on the second packets received from the 
forward plane and returning the processed packets to 
the forward plane for forwarding; and 
c) in the control plane, con?guring the compute plane and 
the forward plane. 
30. The method of claim 29 further comprising, in the 
forward plane, identifying the ?rst packets, the second 
packets, and the third packets from the packets received and 
forwarding the ?rst packets, the second packets, and the 
third packets based on forwarding rules. 
31. The method of claim 29 wherein the forwarding rules 
are based on at least one header in the packets received and 
further comprising, in the forward plane, analyZing the at 
least one header in the packets received in light of the 
forwarding rules to identify the ?rst packets, the second 
packets, and the third packets. 
32. The method of claim 29 further comprising, in the 
control plane, de?ning certain of the forwarding rules. 
33. The method of claim 29 further comprising, in the 
compute plane, processing application data carried in pay 
loads of the second packets according to an application to 
create the processed packets. 
34. The method of claim 29 wherein the second packets 
require processing according to one of a plurality of unique 
applications and further comprising, in the compute plane, 
processing the second packets according to a corresponding 
one of the plurality of unique applications to create the 
processed packets. 
35. The method of claim 29 further comprising, in the 
control plane, de?ning certain functions facilitating the 
application level processing on the second packets for the 
compute plane.
US 6,970,943 B1 
13 
36. The method of claim 35 further comprising, in the 
control plane, de?ning certain of the forwarding rules for the 
forward plane. 
37. The method of claim 29 further comprising, in the 
forWard plane, manipulating headers of the ?rst packets to 
14 
facilitate forWarding of the ?rst packets over the netWork 
toWard the destination.

More Related Content

Similar to Routing architecture including a compute plane configured for high-speed processing of packets to provide application layer support

Dynamic assignment of traffic classes to a priority queue in a packet forward...
Dynamic assignment of traffic classes to a priority queue in a packet forward...Dynamic assignment of traffic classes to a priority queue in a packet forward...
Dynamic assignment of traffic classes to a priority queue in a packet forward...Tal Lavian Ph.D.
 
Triton UAS Technical Design Paper 2020-2021
Triton UAS Technical Design Paper 2020-2021Triton UAS Technical Design Paper 2020-2021
Triton UAS Technical Design Paper 2020-2021KennyPham19
 
Network apparatus with Java co-processor
Network apparatus with Java co-processorNetwork apparatus with Java co-processor
Network apparatus with Java co-processorTal Lavian Ph.D.
 
Method and apparatus for transporting visualization information on a switched...
Method and apparatus for transporting visualization information on a switched...Method and apparatus for transporting visualization information on a switched...
Method and apparatus for transporting visualization information on a switched...Tal Lavian Ph.D.
 
Method and apparatus for intelligent management of a network element
Method and apparatus for intelligent management of a network elementMethod and apparatus for intelligent management of a network element
Method and apparatus for intelligent management of a network elementTal Lavian Ph.D.
 
Dynamic assignment of traffic classes to a priority queue in a packet forward...
Dynamic assignment of traffic classes to a priority queue in a packet forward...Dynamic assignment of traffic classes to a priority queue in a packet forward...
Dynamic assignment of traffic classes to a priority queue in a packet forward...Tal Lavian Ph.D.
 
Programmable command-line interface API for managing operation of a network d...
Programmable command-line interface API for managing operation of a network d...Programmable command-line interface API for managing operation of a network d...
Programmable command-line interface API for managing operation of a network d...Tal Lavian Ph.D.
 
Method and apparatus for automatically configuring a network switch
Method and apparatus for automatically configuring a network switchMethod and apparatus for automatically configuring a network switch
Method and apparatus for automatically configuring a network switchTal Lavian Ph.D.
 
IRJET- Development of a Smart Flipping System
IRJET-  	  Development of a Smart Flipping SystemIRJET-  	  Development of a Smart Flipping System
IRJET- Development of a Smart Flipping SystemIRJET Journal
 
Dynamic assignment of traffic classes to a priority queue in a packet forward...
Dynamic assignment of traffic classes to a priority queue in a packet forward...Dynamic assignment of traffic classes to a priority queue in a packet forward...
Dynamic assignment of traffic classes to a priority queue in a packet forward...Tal Lavian Ph.D.
 
GSM_UMTS_Single_RAN_operation_and_Maintenance_training_Volume_2.pptx
GSM_UMTS_Single_RAN_operation_and_Maintenance_training_Volume_2.pptxGSM_UMTS_Single_RAN_operation_and_Maintenance_training_Volume_2.pptx
GSM_UMTS_Single_RAN_operation_and_Maintenance_training_Volume_2.pptxhussenbelew
 
Transfer of ut information from fpga through ethernet interface
Transfer of ut information from fpga through ethernet interfaceTransfer of ut information from fpga through ethernet interface
Transfer of ut information from fpga through ethernet interfaceeSAT Publishing House
 
Qblade an open source tool for design and simulation
Qblade an open source tool for design and simulation Qblade an open source tool for design and simulation
Qblade an open source tool for design and simulation Phuong Dx
 
Method and apparatus for dynamically loading and managing software services o...
Method and apparatus for dynamically loading and managing software services o...Method and apparatus for dynamically loading and managing software services o...
Method and apparatus for dynamically loading and managing software services o...Tal Lavian Ph.D.
 
Time-value curves to provide dynamic QoS for time sensitive file transfer
Time-value curves to provide dynamic QoS for time sensitive file transferTime-value curves to provide dynamic QoS for time sensitive file transfer
Time-value curves to provide dynamic QoS for time sensitive file transferTal Lavian Ph.D.
 
70 laura s. schultz - 6760427 - computer telephone (ct) network serviing mu...
70   laura s. schultz - 6760427 - computer telephone (ct) network serviing mu...70   laura s. schultz - 6760427 - computer telephone (ct) network serviing mu...
70 laura s. schultz - 6760427 - computer telephone (ct) network serviing mu...Mello_Patent_Registry
 

Similar to Routing architecture including a compute plane configured for high-speed processing of packets to provide application layer support (20)

Dynamic assignment of traffic classes to a priority queue in a packet forward...
Dynamic assignment of traffic classes to a priority queue in a packet forward...Dynamic assignment of traffic classes to a priority queue in a packet forward...
Dynamic assignment of traffic classes to a priority queue in a packet forward...
 
Triton UAS Technical Design Paper 2020-2021
Triton UAS Technical Design Paper 2020-2021Triton UAS Technical Design Paper 2020-2021
Triton UAS Technical Design Paper 2020-2021
 
Network apparatus with Java co-processor
Network apparatus with Java co-processorNetwork apparatus with Java co-processor
Network apparatus with Java co-processor
 
Method and apparatus for transporting visualization information on a switched...
Method and apparatus for transporting visualization information on a switched...Method and apparatus for transporting visualization information on a switched...
Method and apparatus for transporting visualization information on a switched...
 
Method and apparatus for intelligent management of a network element
Method and apparatus for intelligent management of a network elementMethod and apparatus for intelligent management of a network element
Method and apparatus for intelligent management of a network element
 
Dynamic assignment of traffic classes to a priority queue in a packet forward...
Dynamic assignment of traffic classes to a priority queue in a packet forward...Dynamic assignment of traffic classes to a priority queue in a packet forward...
Dynamic assignment of traffic classes to a priority queue in a packet forward...
 
Making of Drone
Making of  DroneMaking of  Drone
Making of Drone
 
Programmable command-line interface API for managing operation of a network d...
Programmable command-line interface API for managing operation of a network d...Programmable command-line interface API for managing operation of a network d...
Programmable command-line interface API for managing operation of a network d...
 
Gbas
GbasGbas
Gbas
 
Method and apparatus for automatically configuring a network switch
Method and apparatus for automatically configuring a network switchMethod and apparatus for automatically configuring a network switch
Method and apparatus for automatically configuring a network switch
 
IRJET- Development of a Smart Flipping System
IRJET-  	  Development of a Smart Flipping SystemIRJET-  	  Development of a Smart Flipping System
IRJET- Development of a Smart Flipping System
 
Dynamic assignment of traffic classes to a priority queue in a packet forward...
Dynamic assignment of traffic classes to a priority queue in a packet forward...Dynamic assignment of traffic classes to a priority queue in a packet forward...
Dynamic assignment of traffic classes to a priority queue in a packet forward...
 
GSM_UMTS_Single_RAN_operation_and_Maintenance_training_Volume_2.pptx
GSM_UMTS_Single_RAN_operation_and_Maintenance_training_Volume_2.pptxGSM_UMTS_Single_RAN_operation_and_Maintenance_training_Volume_2.pptx
GSM_UMTS_Single_RAN_operation_and_Maintenance_training_Volume_2.pptx
 
hardware_design_RAFS
hardware_design_RAFShardware_design_RAFS
hardware_design_RAFS
 
Transfer of ut information from fpga through ethernet interface
Transfer of ut information from fpga through ethernet interfaceTransfer of ut information from fpga through ethernet interface
Transfer of ut information from fpga through ethernet interface
 
Capstone Project
Capstone ProjectCapstone Project
Capstone Project
 
Qblade an open source tool for design and simulation
Qblade an open source tool for design and simulation Qblade an open source tool for design and simulation
Qblade an open source tool for design and simulation
 
Method and apparatus for dynamically loading and managing software services o...
Method and apparatus for dynamically loading and managing software services o...Method and apparatus for dynamically loading and managing software services o...
Method and apparatus for dynamically loading and managing software services o...
 
Time-value curves to provide dynamic QoS for time sensitive file transfer
Time-value curves to provide dynamic QoS for time sensitive file transferTime-value curves to provide dynamic QoS for time sensitive file transfer
Time-value curves to provide dynamic QoS for time sensitive file transfer
 
70 laura s. schultz - 6760427 - computer telephone (ct) network serviing mu...
70   laura s. schultz - 6760427 - computer telephone (ct) network serviing mu...70   laura s. schultz - 6760427 - computer telephone (ct) network serviing mu...
70 laura s. schultz - 6760427 - computer telephone (ct) network serviing mu...
 

More from Tal Lavian Ph.D.

Ultra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerUltra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerTal Lavian Ph.D.
 
Ultra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerUltra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerTal Lavian Ph.D.
 
Photonic line sharing for high-speed routers
Photonic line sharing for high-speed routersPhotonic line sharing for high-speed routers
Photonic line sharing for high-speed routersTal Lavian Ph.D.
 
Systems and methods to support sharing and exchanging in a network
Systems and methods to support sharing and exchanging in a networkSystems and methods to support sharing and exchanging in a network
Systems and methods to support sharing and exchanging in a networkTal Lavian Ph.D.
 
Systems and methods for visual presentation and selection of IVR menu
Systems and methods for visual presentation and selection of IVR menuSystems and methods for visual presentation and selection of IVR menu
Systems and methods for visual presentation and selection of IVR menuTal Lavian Ph.D.
 
Grid proxy architecture for network resources
Grid proxy architecture for network resourcesGrid proxy architecture for network resources
Grid proxy architecture for network resourcesTal Lavian Ph.D.
 
Ultra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerUltra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerTal Lavian Ph.D.
 
Systems and methods for electronic communications
Systems and methods for electronic communicationsSystems and methods for electronic communications
Systems and methods for electronic communicationsTal Lavian Ph.D.
 
Ultra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerUltra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerTal Lavian Ph.D.
 
Ultra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerUltra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerTal Lavian Ph.D.
 
Radar target detection system for autonomous vehicles with ultra-low phase no...
Radar target detection system for autonomous vehicles with ultra-low phase no...Radar target detection system for autonomous vehicles with ultra-low phase no...
Radar target detection system for autonomous vehicles with ultra-low phase no...Tal Lavian Ph.D.
 
Grid proxy architecture for network resources
Grid proxy architecture for network resourcesGrid proxy architecture for network resources
Grid proxy architecture for network resourcesTal Lavian Ph.D.
 
Method and apparatus for scheduling resources on a switched underlay network
Method and apparatus for scheduling resources on a switched underlay networkMethod and apparatus for scheduling resources on a switched underlay network
Method and apparatus for scheduling resources on a switched underlay networkTal Lavian Ph.D.
 
Dynamic assignment of traffic classes to a priority queue in a packet forward...
Dynamic assignment of traffic classes to a priority queue in a packet forward...Dynamic assignment of traffic classes to a priority queue in a packet forward...
Dynamic assignment of traffic classes to a priority queue in a packet forward...Tal Lavian Ph.D.
 
Method and apparatus for using a command design pattern to access and configu...
Method and apparatus for using a command design pattern to access and configu...Method and apparatus for using a command design pattern to access and configu...
Method and apparatus for using a command design pattern to access and configu...Tal Lavian Ph.D.
 
Reliable rating system and method thereof
Reliable rating system and method thereofReliable rating system and method thereof
Reliable rating system and method thereofTal Lavian Ph.D.
 
Time variant rating system and method thereof
Time variant rating system and method thereofTime variant rating system and method thereof
Time variant rating system and method thereofTal Lavian Ph.D.
 
Systems and methods for visual presentation and selection of ivr menu
Systems and methods for visual presentation and selection of ivr menuSystems and methods for visual presentation and selection of ivr menu
Systems and methods for visual presentation and selection of ivr menuTal Lavian Ph.D.
 
Ultra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerUltra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerTal Lavian Ph.D.
 
Ultra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerUltra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerTal Lavian Ph.D.
 

More from Tal Lavian Ph.D. (20)

Ultra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerUltra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizer
 
Ultra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerUltra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizer
 
Photonic line sharing for high-speed routers
Photonic line sharing for high-speed routersPhotonic line sharing for high-speed routers
Photonic line sharing for high-speed routers
 
Systems and methods to support sharing and exchanging in a network
Systems and methods to support sharing and exchanging in a networkSystems and methods to support sharing and exchanging in a network
Systems and methods to support sharing and exchanging in a network
 
Systems and methods for visual presentation and selection of IVR menu
Systems and methods for visual presentation and selection of IVR menuSystems and methods for visual presentation and selection of IVR menu
Systems and methods for visual presentation and selection of IVR menu
 
Grid proxy architecture for network resources
Grid proxy architecture for network resourcesGrid proxy architecture for network resources
Grid proxy architecture for network resources
 
Ultra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerUltra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizer
 
Systems and methods for electronic communications
Systems and methods for electronic communicationsSystems and methods for electronic communications
Systems and methods for electronic communications
 
Ultra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerUltra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizer
 
Ultra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerUltra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizer
 
Radar target detection system for autonomous vehicles with ultra-low phase no...
Radar target detection system for autonomous vehicles with ultra-low phase no...Radar target detection system for autonomous vehicles with ultra-low phase no...
Radar target detection system for autonomous vehicles with ultra-low phase no...
 
Grid proxy architecture for network resources
Grid proxy architecture for network resourcesGrid proxy architecture for network resources
Grid proxy architecture for network resources
 
Method and apparatus for scheduling resources on a switched underlay network
Method and apparatus for scheduling resources on a switched underlay networkMethod and apparatus for scheduling resources on a switched underlay network
Method and apparatus for scheduling resources on a switched underlay network
 
Dynamic assignment of traffic classes to a priority queue in a packet forward...
Dynamic assignment of traffic classes to a priority queue in a packet forward...Dynamic assignment of traffic classes to a priority queue in a packet forward...
Dynamic assignment of traffic classes to a priority queue in a packet forward...
 
Method and apparatus for using a command design pattern to access and configu...
Method and apparatus for using a command design pattern to access and configu...Method and apparatus for using a command design pattern to access and configu...
Method and apparatus for using a command design pattern to access and configu...
 
Reliable rating system and method thereof
Reliable rating system and method thereofReliable rating system and method thereof
Reliable rating system and method thereof
 
Time variant rating system and method thereof
Time variant rating system and method thereofTime variant rating system and method thereof
Time variant rating system and method thereof
 
Systems and methods for visual presentation and selection of ivr menu
Systems and methods for visual presentation and selection of ivr menuSystems and methods for visual presentation and selection of ivr menu
Systems and methods for visual presentation and selection of ivr menu
 
Ultra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerUltra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizer
 
Ultra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerUltra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizer
 

Recently uploaded

(PARI) Alandi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(PARI) Alandi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(PARI) Alandi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(PARI) Alandi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escortsranjana rawat
 
Makarba ( Call Girls ) Ahmedabad ✔ 6297143586 ✔ Hot Model With Sexy Bhabi Rea...
Makarba ( Call Girls ) Ahmedabad ✔ 6297143586 ✔ Hot Model With Sexy Bhabi Rea...Makarba ( Call Girls ) Ahmedabad ✔ 6297143586 ✔ Hot Model With Sexy Bhabi Rea...
Makarba ( Call Girls ) Ahmedabad ✔ 6297143586 ✔ Hot Model With Sexy Bhabi Rea...Naicy mandal
 
Book Sex Workers Available Pune Call Girls Yerwada 6297143586 Call Hot India...
Book Sex Workers Available Pune Call Girls Yerwada  6297143586 Call Hot India...Book Sex Workers Available Pune Call Girls Yerwada  6297143586 Call Hot India...
Book Sex Workers Available Pune Call Girls Yerwada 6297143586 Call Hot India...Call Girls in Nagpur High Profile
 
Top Rated Pune Call Girls Chakan ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...
Top Rated  Pune Call Girls Chakan ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...Top Rated  Pune Call Girls Chakan ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...
Top Rated Pune Call Girls Chakan ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...Call Girls in Nagpur High Profile
 
Thane Escorts, (Pooja 09892124323), Thane Call Girls
Thane Escorts, (Pooja 09892124323), Thane Call GirlsThane Escorts, (Pooja 09892124323), Thane Call Girls
Thane Escorts, (Pooja 09892124323), Thane Call GirlsPooja Nehwal
 
Call Girls Kothrud Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Kothrud Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Kothrud Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Kothrud Call Me 7737669865 Budget Friendly No Advance Bookingroncy bisnoi
 
Top Rated Pune Call Girls Shirwal ⟟ 6297143586 ⟟ Call Me For Genuine Sex Ser...
Top Rated  Pune Call Girls Shirwal ⟟ 6297143586 ⟟ Call Me For Genuine Sex Ser...Top Rated  Pune Call Girls Shirwal ⟟ 6297143586 ⟟ Call Me For Genuine Sex Ser...
Top Rated Pune Call Girls Shirwal ⟟ 6297143586 ⟟ Call Me For Genuine Sex Ser...Call Girls in Nagpur High Profile
 
VVIP Pune Call Girls Kalyani Nagar (7001035870) Pune Escorts Nearby with Comp...
VVIP Pune Call Girls Kalyani Nagar (7001035870) Pune Escorts Nearby with Comp...VVIP Pune Call Girls Kalyani Nagar (7001035870) Pune Escorts Nearby with Comp...
VVIP Pune Call Girls Kalyani Nagar (7001035870) Pune Escorts Nearby with Comp...Call Girls in Nagpur High Profile
 
VVIP Pune Call Girls Balaji Nagar (7001035870) Pune Escorts Nearby with Compl...
VVIP Pune Call Girls Balaji Nagar (7001035870) Pune Escorts Nearby with Compl...VVIP Pune Call Girls Balaji Nagar (7001035870) Pune Escorts Nearby with Compl...
VVIP Pune Call Girls Balaji Nagar (7001035870) Pune Escorts Nearby with Compl...Call Girls in Nagpur High Profile
 
Dubai Call Girls O528786472 Call Girls In Dubai Wisteria
Dubai Call Girls O528786472 Call Girls In Dubai WisteriaDubai Call Girls O528786472 Call Girls In Dubai Wisteria
Dubai Call Girls O528786472 Call Girls In Dubai WisteriaUnited Arab Emirates
 
9892124323 Pooja Nehwal Call Girls Services Call Girls service in Santacruz A...
9892124323 Pooja Nehwal Call Girls Services Call Girls service in Santacruz A...9892124323 Pooja Nehwal Call Girls Services Call Girls service in Santacruz A...
9892124323 Pooja Nehwal Call Girls Services Call Girls service in Santacruz A...Pooja Nehwal
 
Call Girls in Nagpur Sakshi Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Sakshi Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Sakshi Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Sakshi Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
(=Towel) Dubai Call Girls O525547819 Call Girls In Dubai (Fav0r)
(=Towel) Dubai Call Girls O525547819 Call Girls In Dubai (Fav0r)(=Towel) Dubai Call Girls O525547819 Call Girls In Dubai (Fav0r)
(=Towel) Dubai Call Girls O525547819 Call Girls In Dubai (Fav0r)kojalkojal131
 
Call Girls Dubai Slut Wife O525547819 Call Girls Dubai Gaped
Call Girls Dubai Slut Wife O525547819 Call Girls Dubai GapedCall Girls Dubai Slut Wife O525547819 Call Girls Dubai Gaped
Call Girls Dubai Slut Wife O525547819 Call Girls Dubai Gapedkojalkojal131
 
Call Girls In Andheri East Call 9892124323 Book Hot And Sexy Girls,
Call Girls In Andheri East Call 9892124323 Book Hot And Sexy Girls,Call Girls In Andheri East Call 9892124323 Book Hot And Sexy Girls,
Call Girls In Andheri East Call 9892124323 Book Hot And Sexy Girls,Pooja Nehwal
 
Call Girls Chikhali Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Chikhali Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Chikhali Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Chikhali Call Me 7737669865 Budget Friendly No Advance Bookingroncy bisnoi
 
Develop Keyboard Skill.pptx er power point
Develop Keyboard Skill.pptx er power pointDevelop Keyboard Skill.pptx er power point
Develop Keyboard Skill.pptx er power pointGetawu
 
(👉Ridhima)👉VIP Model Call Girls Mulund ( Mumbai) Call ON 9967824496 Starting ...
(👉Ridhima)👉VIP Model Call Girls Mulund ( Mumbai) Call ON 9967824496 Starting ...(👉Ridhima)👉VIP Model Call Girls Mulund ( Mumbai) Call ON 9967824496 Starting ...
(👉Ridhima)👉VIP Model Call Girls Mulund ( Mumbai) Call ON 9967824496 Starting ...motiram463
 
Pallawi 9167673311 Call Girls in Thane , Independent Escort Service Thane
Pallawi 9167673311  Call Girls in Thane , Independent Escort Service ThanePallawi 9167673311  Call Girls in Thane , Independent Escort Service Thane
Pallawi 9167673311 Call Girls in Thane , Independent Escort Service ThanePooja Nehwal
 

Recently uploaded (20)

(PARI) Alandi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(PARI) Alandi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(PARI) Alandi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(PARI) Alandi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
 
Makarba ( Call Girls ) Ahmedabad ✔ 6297143586 ✔ Hot Model With Sexy Bhabi Rea...
Makarba ( Call Girls ) Ahmedabad ✔ 6297143586 ✔ Hot Model With Sexy Bhabi Rea...Makarba ( Call Girls ) Ahmedabad ✔ 6297143586 ✔ Hot Model With Sexy Bhabi Rea...
Makarba ( Call Girls ) Ahmedabad ✔ 6297143586 ✔ Hot Model With Sexy Bhabi Rea...
 
Book Sex Workers Available Pune Call Girls Yerwada 6297143586 Call Hot India...
Book Sex Workers Available Pune Call Girls Yerwada  6297143586 Call Hot India...Book Sex Workers Available Pune Call Girls Yerwada  6297143586 Call Hot India...
Book Sex Workers Available Pune Call Girls Yerwada 6297143586 Call Hot India...
 
Top Rated Pune Call Girls Chakan ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...
Top Rated  Pune Call Girls Chakan ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...Top Rated  Pune Call Girls Chakan ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...
Top Rated Pune Call Girls Chakan ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Thane Escorts, (Pooja 09892124323), Thane Call Girls
Thane Escorts, (Pooja 09892124323), Thane Call GirlsThane Escorts, (Pooja 09892124323), Thane Call Girls
Thane Escorts, (Pooja 09892124323), Thane Call Girls
 
Call Girls Kothrud Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Kothrud Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Kothrud Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Kothrud Call Me 7737669865 Budget Friendly No Advance Booking
 
Top Rated Pune Call Girls Shirwal ⟟ 6297143586 ⟟ Call Me For Genuine Sex Ser...
Top Rated  Pune Call Girls Shirwal ⟟ 6297143586 ⟟ Call Me For Genuine Sex Ser...Top Rated  Pune Call Girls Shirwal ⟟ 6297143586 ⟟ Call Me For Genuine Sex Ser...
Top Rated Pune Call Girls Shirwal ⟟ 6297143586 ⟟ Call Me For Genuine Sex Ser...
 
VVIP Pune Call Girls Kalyani Nagar (7001035870) Pune Escorts Nearby with Comp...
VVIP Pune Call Girls Kalyani Nagar (7001035870) Pune Escorts Nearby with Comp...VVIP Pune Call Girls Kalyani Nagar (7001035870) Pune Escorts Nearby with Comp...
VVIP Pune Call Girls Kalyani Nagar (7001035870) Pune Escorts Nearby with Comp...
 
VVIP Pune Call Girls Balaji Nagar (7001035870) Pune Escorts Nearby with Compl...
VVIP Pune Call Girls Balaji Nagar (7001035870) Pune Escorts Nearby with Compl...VVIP Pune Call Girls Balaji Nagar (7001035870) Pune Escorts Nearby with Compl...
VVIP Pune Call Girls Balaji Nagar (7001035870) Pune Escorts Nearby with Compl...
 
Dubai Call Girls O528786472 Call Girls In Dubai Wisteria
Dubai Call Girls O528786472 Call Girls In Dubai WisteriaDubai Call Girls O528786472 Call Girls In Dubai Wisteria
Dubai Call Girls O528786472 Call Girls In Dubai Wisteria
 
9892124323 Pooja Nehwal Call Girls Services Call Girls service in Santacruz A...
9892124323 Pooja Nehwal Call Girls Services Call Girls service in Santacruz A...9892124323 Pooja Nehwal Call Girls Services Call Girls service in Santacruz A...
9892124323 Pooja Nehwal Call Girls Services Call Girls service in Santacruz A...
 
Call Girls in Nagpur Sakshi Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Sakshi Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Sakshi Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Sakshi Call 7001035870 Meet With Nagpur Escorts
 
(=Towel) Dubai Call Girls O525547819 Call Girls In Dubai (Fav0r)
(=Towel) Dubai Call Girls O525547819 Call Girls In Dubai (Fav0r)(=Towel) Dubai Call Girls O525547819 Call Girls In Dubai (Fav0r)
(=Towel) Dubai Call Girls O525547819 Call Girls In Dubai (Fav0r)
 
Call Girls Dubai Slut Wife O525547819 Call Girls Dubai Gaped
Call Girls Dubai Slut Wife O525547819 Call Girls Dubai GapedCall Girls Dubai Slut Wife O525547819 Call Girls Dubai Gaped
Call Girls Dubai Slut Wife O525547819 Call Girls Dubai Gaped
 
Call Girls In Andheri East Call 9892124323 Book Hot And Sexy Girls,
Call Girls In Andheri East Call 9892124323 Book Hot And Sexy Girls,Call Girls In Andheri East Call 9892124323 Book Hot And Sexy Girls,
Call Girls In Andheri East Call 9892124323 Book Hot And Sexy Girls,
 
Call Girls Chikhali Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Chikhali Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Chikhali Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Chikhali Call Me 7737669865 Budget Friendly No Advance Booking
 
Develop Keyboard Skill.pptx er power point
Develop Keyboard Skill.pptx er power pointDevelop Keyboard Skill.pptx er power point
Develop Keyboard Skill.pptx er power point
 
(👉Ridhima)👉VIP Model Call Girls Mulund ( Mumbai) Call ON 9967824496 Starting ...
(👉Ridhima)👉VIP Model Call Girls Mulund ( Mumbai) Call ON 9967824496 Starting ...(👉Ridhima)👉VIP Model Call Girls Mulund ( Mumbai) Call ON 9967824496 Starting ...
(👉Ridhima)👉VIP Model Call Girls Mulund ( Mumbai) Call ON 9967824496 Starting ...
 
Pallawi 9167673311 Call Girls in Thane , Independent Escort Service Thane
Pallawi 9167673311  Call Girls in Thane , Independent Escort Service ThanePallawi 9167673311  Call Girls in Thane , Independent Escort Service Thane
Pallawi 9167673311 Call Girls in Thane , Independent Escort Service Thane
 

Routing architecture including a compute plane configured for high-speed processing of packets to provide application layer support

  • 1. US006970943B1 (12> Ulllted States Patent (16) Patent N0.: US 6,970,943 B1 Subramanian et al. (45) Date of Patent: Nov. 29, 2005 (54) ROUTING ARCHITECTURE INCLUDINGA 6,134,589 A * 10/2000 Hultgren ................... .. 709/227 COMPUTE PLANE CONFIGURED FOR 6,151,633 A 11/2000 Hurst et a1. 709/235 HIGI-LSPEEI) PROCESSING OF PACKETS 6,157,941 A * 12/2000 Verkler et a1. 709/202 TO PROVIDE APPLICATION LAYER 6,226,267 B1 5/2001 Spinney et a1. ..... .. 370/235 SUPPORT 6,286,052 B1 9/2001 McCloghne et a1. . 709/238 6,289,389 B1 9/2001 Kikinis ..................... .. 709/239 _ _ _ _ 6,424,621 B1 7/2002 Ramaswamy et a1. .... .. 370/230 (75) Inventors Slva subr‘f‘maman’ Cary’ NC (Us), 6,560,644 B1 * 5/2003 Lautmann et a1. ........ .. 709/223 Ta] I- Lavlall, Sunnyvale, CA(US) 6,570,867 B1 5/2003 Robinson et a1. . 370/351 6,611,872 B1 * 8/2003 McCanne .......... .. 709/238 (73) Assignee: Nortel Networks Limited, St Laurent 6,611,874 B1 * 8/2003 Denecheau et a1. 709/239 (CA) 6,754,219 B1 * 6/2004 Cain et al. .......... .. 370/401 6,757,289 B1 * 6/2004 Cain et al. ................ .. 370/401 ( * ) Notice: Subject to any disclaimer, the term of this 6,785,704 B1 * 8/2004 McCanne ................. .. 718/105 patent is extended or adjusted under 35 6,792,461 B1 * 9/2004 Hericourt ........ .. 709/225 U_S_C_ 154(k)) by 1028 days_ 6,810,421 B1 * 10/2004 lshizaki et a1. 709/226 6,810,427 B1 * 10/2004 Cain et al. ................ .. 709/238 (21) Appl. NO.Z 09/736,692 * Cited by examiner (22) Filed: Dec. 13, 2000 Primary Examiner—Nabil El-Hady 74 A ttorney, A gent, 0r Fz ' rm— W'1 t h row & Te rranova, Related US. Application Data PLLC (60) l?oélggcgnal apphcatlon No. 60/239,484, ?led on Oct. (57) ABSTRACT 7 The present invention provides a routing architecture includ IIlt- Cl- ........................................... .. a Control plane, a Compute plane, and a forward plane' (52) US. Cl. .................... .. 709/238; 709/223; 709/225; The forward plane provides traditional forwarding of pack _ 709/226; 709/227; 709/230; 709/232 ets to the next-hop address, along with any necessary header Fleld of Search .............................. .. manipulation, the Control plane Con?gures the forward 709/223, 225, 226, 227,238,239, 230, 232 plane and the compute plane for desired operation. The compute plane is con?gured for high-speed processing of (56) References Cited packets to provide application level support, including Us PATENT DOCUMENTS manipulating application data in the payload of ‘the packets during routlng. The forward plane preferably implements 5,167,033 A 11/1992 Bryant ct a1~ ~~~~~~~~~~~~~ ~~ 709/235 forwarding rules using ?lters suf?cient to forward a received 5,377,327 A 12/1994 Jain et al. ................. .. 709/235 5 495 426 A 2 1996 W 1 k 1 709 226 packet to the next-hop address, to the compute plane for 5’854’899 A 121998 cslfoiwjt :1 et a‘ """ " 709238 application processing, or to the control plane to facilitate 6,044,075 A 3/2000 Le Boudec et a1. . 370/351 Control or Con?guranon' 6,078,953 A 6/2000 Vaid et al. . . . . . . . . . . . . . .. 709/223 6,092,096 A * 7/2000 Lewis ...................... .. 709/200 37 Claims, 4 Drawing Sheets ’/10 COMPUE PLANE FORM??? PLANE Y CP — ME??? 6 E T O — F RWARD IRULEEI I 2 IL VSVR c T PROCESSOR GP 38 C T /L__l | C /t_l g E Q LIBRARY MODULE K E T K (0P FUNCTIONS) E — P R c P k K FOHWARDING 44 RuLEs L F H L RULES/FILTER _ A A | A N C 50 2*38 N o ‘I l’ N N ‘I l’ E E - | E E e E @ HOST CP Q1 26 PR E R _ NETWORK 0910880 E 1 INTERFACE — |—RuLE's] 2 aa Q I; coNTRoL PLANE BACKPLANE g INTEgBFACE CONTROL MEMORY PRocEssoR Q 28
  • 2. U.S. Patent Nov. 29,2005 Sheet 1 of4 US 6,970,943 B1 K10 CONTROL PLANE 12 COMPUTE SERVICES NETWORK SERVICES E @ COMPUTE API NETWORK API 2 a COMPUTE PLANE FORWARD PLANE u 2 FIG. 1 K10 CONTROL PLANE 12. COMPUTE SERVICES NETWORK SERVICES E Q COMPUTE API NETWORK API 2 as COMPUTE PLANE FORWARD PLANE 11 m / FORWARDED PACKETS FIG. 2
  • 3. U.S. Patent Nov. 29,2005 Sheet 2 of4 US 6,970,943 B1 [-10 CONTROL PLANE l2 COMPUTE SERVICES NETWORK SERVICES E Q COMPUTE API NETWORK API 2_2 & COMPUIII'4E PLANE FORWARD PLANE / — lg / PACKETS MANIPULATED BY COM PUTE PLANE FIG. 3 K10 CONTROL PLANE CONFIGURATION 2 INSTRUCTIONS COMPUTE SERVICES NETWORK SERVICES u 29 COMPUTE API NETWORK API 2 a _> COMPUTE PLANE FORWARD PLANE u m _> T“. PACKETS DIRECTED TO CONTROL PLANE FIG. 4
  • 4. U.S. Patent Nov. 29,2005 Sheet 3 of4 US 6,970,943 B1 ,| 7K »-T »(N: +(v: »(w:
  • 5.
  • 6. US 6,970,943 B1 1 ROUTING ARCHITECTURE INCLUDING A COMPUTE PLANE CONFIGURED FOR HIGH-SPEED PROCESSING OF PACKETS TO PROVIDE APPLICATION LAYER SUPPORT This application claims the bene?t of provisional appli cation No. 60/239,484, ?led Oct. 11, 2000, entitled COM PUTATION IN NETWORK DEVICES, and is related to application Ser. No. 09/736,678, ?led Dec. 13, 2000, entitled DISTRIBUTED COMPUTATION IN NETWORK DEVICES and Ser. No. 09/736,674, ?led Dec. 13, 2000, entitled SERVICE BASED ROUTING, the disclosures of Which are incorporated herein by reference in their entirety. FIELD OF THE INVENTION The present invention relates to processing and routing packets in a netWork, and in particular, to providing high speed, application level processing on the packets during routing. BACKGROUND OF THE INVENTION Existing routers have limited computation capacity and offer little or no application layer support during routing. These routers are typically divided into a control plane and a forWard plane. The control plane is used for basic setup and control of the router. For example, the control plane is generally used to establish routing tables used by the for Ward plane. The forWard plane receives packets, processes the packets based on the routing tables set up by the control plane, and delivers the packets to the next-hop address or the ?nal destination, depending on the termination point for each packet. The forWard plane in existing routers is typically limited to packet delivery based on basic header analysis and manipulation. Application layer support, such as that requir ing analysis or manipulation of the packet’s payload, is typically avoided. Those specially con?gured devices capable of providing application processing, such as ?re Walls, are uniquely con?gured for the special application Wherein the routing speeds for normal routing in the forWard plane are signi?cantly impacted or the control plane is uniquely adapted to handle such processing. In either case, basic routing capability of the forWard plane is inhibited. Thus, traditional netWork routers typically do not provide application level processing, and routing devices providing such support are only used in limited applications. Given the general desire to distribute processing over a netWork, there is a need for efficient routing devices capable of providing application level processing Without signi? cantly impacting forWarding performance for the packets being processed at an application level or for those requiring only basic routing. There is a further need to provide a routing device that is readily con?gurable to provide various types of application support in any number of netWork environments. SUMMARY OF THE INVENTION The present invention provides a routing architecture including a control plane, a compute plane, and a forWard plane. The forWard plane provides traditional forWarding of packets to the next-hop address, along With any necessary header manipulation, While the control plane con?gures the forWard plane and the compute plane for desired operation. 10 15 20 25 30 35 40 45 55 60 65 2 The compute plane is con?gured for high-speed processing of packets to provide application level support, including manipulating application data in the payload of the packets during routing. The forWard plane preferably implements forWarding rules using ?lters suf?cient to forWard a received packet to the next-hop address, to the compute plane for application processing, or to the control plane to facilitate control or con?guration. For those packets not sent to the compute plane or control plane, the forWard plane Will provide any necessary processing and forWard the packets from an input port to an output port. Additionally, the forWard plane receives packets from the control plane and the compute plane for forWarding after processing by the respective planes. Preferably, the compute plane is implemented using high speed ?eld programmable gate arrays (FPGAs), application speci?c integrated circuits (ASICs), digital signal processors (DSP), netWork processors, or a combination thereof suf? cient to provide processing speeds that are close to forWard ing speeds of the forWard plane. Further, the compute plane is preferably con?gurable by the control plane to provide various types of application processing. The compute plane may be con?gured to provide different types of application processing for different packets. The forWard plane may be set to determine Where to send the packets in the compute plane for processing, or the compute plane may determine hoW or Where to process the packets upon receipt. With the present invention, the routing device is able to perform application level processing on packets Without impacting forWarding performance. The invention separates the task of control from computation to avoid negatively impacting performance for either task. A neW, high-speed computation plane is provided in the routing device to handle application level processing, While the forWard plane provides basic forWarding. The routing abilities of the present invention may be provided in any number of net Work devices, including traditional routers and media gate Ways capable of routing packets over homogeneous or heterogeneous netWorks. Those skilled in the art Will appreciate the scope of the present invention and realiZe additional aspects thereof after reading the folloWing detailed description of the preferred embodiments in association With the accompanying draWing ?gures. BRIEF DESCRIPTION OF THE DRAWING FIGURES The accompanying draWing ?gures incorporated in and forming a part of the speci?cation illustrate several aspects of the invention, and together With the description serve to explain the principles of the invention. FIG. 1 depicts a preferred architecture for a routing node constructed according to the present invention. FIG. 2 illustrates the forWarding path of packets pro cessed Within the forWard plane of the architecture shoWn in FIG. 1. FIG. 3 illustrates the forWarding path of packets pro cessed by the compute plane of the architecture shoWn in FIG. 1. FIG. 4 illustrates the forWarding path of packets directed to the control plane and the path of instructions for con?g uring the compute plane and forWard plane from the control plane according to a preferred embodiment of the present invention.
  • 7. US 6,970,943 B1 3 FIG. 5 is a How diagram outlining the basic ?oW for processing packets in the control plane, compute plane, and/or the forward plane according to a preferred embodi ment of the present invention. FIG. 6 is a block schematic of a preferred con?guration of a routing node according to the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS The present invention provides for a routing node having a separate processing plane for application layer support during routing. The application layer support may include any type of processing or netWork service on packet content. In addition to forWard and control planes, the routing node includes a separate compute plane for processing packets according to speci?c applications during routing. The for Ward plane provides traditional forWarding, along With any necessary header manipulation, While the control plane preferably con?gures the forWard plane and the compute plane as desired. Upon reading the folloWing description in light of the accompanying draWing ?gures, those skilled in the art Will understand the concepts of the invention and Will recogniZe applications of these concepts not particularly addressed herein. It should be understood that these con cepts and applications fall Within the scope of this disclosure and the accompanying claims. The embodiments set forth beloW represent the necessary information to enable those skilled in the art to practice the invention and illustrate the best mode of practicing the invention. With reference to FIG. 1, a routing node is illustrated and generally referenced as 10. The routing node 10 is divided into three primary processing planes; a control plane 12, a compute plane 14, and a forWard plane 16. Preferably, all incoming packets are received by the forWard plane 16 through various ports interacting With a netWork, such as a packet-sWitched netWork. The forWard plane 16 is con?gured to analyZe each of the incoming packets and determine Where to send each packet. In general, the incom ing packets need to be forWarded on toWard their ?nal destination, to the control plane 12, or to the compute plane 14. Depending on the eXtent or nature of any necessary manipulation of the packet, the packet may be processed by the forWard plane 16 and forWarded to the neXt-hop routing node or ?nal destination. Preferably, any packet processing provided by the forWard plane 16 is limited to manipulating information in one or more headers of the packet as neces sary in traditional routing. As depicted in FIG. 2, packets requiring only traditional routing are maintained in the forWard plane 16 for processing and immediately forWarded to the neXt-hop routing node or destination. Packets entering the forWard plane 16 that require appli cation level processing, Which may entail manipulation of the packet’s payload, are directed to the compute plane 14 by the forWard plane 16. As depicted in FIG. 3, these packets are passed through the forWard plane 16 to the compute plane 14 for processing and then sent back to the forWard plane 16, Which Will forWard the processed packet to the neXt-hop routing node or ?nal destination. Although additional detail is provided beloW, the compute plane 14 provides application level processing, and any necessary payload manipulation required by such process ing. During processing by the compute plane 14, the payload may be revieWed, removed, modi?ed, and repacked as directed by any number of applications. The routing node 10 15 25 45 55 65 4 preferably supports programming and unique con?guration of the compute plane 14 and the forWard plane 16. Any number of applications may be supported through the compute plane 14. For eXample, Internet Protocol (IP) security and secure socket layer (SSL) applications may be implemented in a routing node 10 using the compute plane 14. Various types of multimedia applications are made possible, alone or in combination With other applications. Further, incorporating a high-speed compute plane 14 for application speci?c packet processing enables streaming applications and minimiZes or eliminates the need for buff ering. The compute plane 14 is capable of implementing virtually any type of application, ranging from carrying out mathematical operations on payloads to implementing com pression and encryption algorithms. The compute plane 14 may also help facilitate high-speed ?reWalls acting as a single point of entry or distributed to provide multiple points of entry. Typically, the compute plane 14 operates on layer four and higher protocols that are typically application related. In addition to traditional forWarding of incoming packets and directing packets to the compute plane 14 for process ing, the forWard plane 16 may direct selected incoming packets to the control plane 12 for basic communications With the routing node 10 as shoWn in FIG. 4. In essence, the control plane 12 provides overall control and con?guration for the routing node 10, and in particular, for the compute plane 14 and the forWard plane 16. This control may range from running diagnostics to setting con?gurations for the compute plane 14 and the forWard plane 16. These settings may dictate the type of processing to carry out on the incoming packets and Which plane handles the processing. Returning noW to FIG. 1, the routing node 10 may support various services, Which are groups of code or objects that implement speci?c functionality. Preferably, these services use Java code and may be divided into compute services 18 related to the compute plane 14, and netWork services 20 related to the operation of the forWard plane 16. Each of these services cooperates With the corresponding compute plane 14 and forWard plane 16 via a compute application program interface (API) 22 and netWork API 24, respec tively. Since the services are preferably Java compatible, the compute API 22 and netWork API 24 may specify interfaces for Java applications to control the respective compute plane 14 and forWard plane 16. Preferably, the netWork API 24 can be used to instruct the forWard plane 16 to alter packet processing through the installation of hardWare or softWare ?lters that facilitate forWarding rules. These ?lters execute actions speci?ed by a de?ned ?lter policy. Typically, these ?lters can be based on combinations of ?elds in the machine address, IP address, and transport headers. The ?lters may also be con?gured to trigger on a payload as Well. The ?lter policy can de?ne Where the matching packets are delivered and can also be used to alter the packet content as noted above. Typical packet delivery options include discarding match ing packets and diverting matching packets to the control plane 12 or compute plane 14 based on the ?lter policy. With the present invention, a high-speed compute plane 14 is provided to handle such processing. Additionally, packets may be “copied” to the control or compute planes 12, 14 or may be mirrored to a selected interface. Packets may also be identi?ed as being part of high-priority ?oW; these packets can be placed in a high-priority queue and delivered accord ingly. As noted, the ?lter policy can also cause packet and header content to be selectively altered for most of these operations. The particular plane handling the processing is
  • 8. US 6,970,943 B1 5 capable of re-computing IP header check sums at high speeds When and if the IP header or payload is changed. In the present invention, all control plane computations, such as installing neW routing tables or parsing a neW Internet Control Message Protocol (ICMP) message type, are easily accommodated through the netWork API 24. Through the netWork API 24, the forWard plane 16 may provide a number of services. The applications are typically contained Within the forWard plane 16 and Will not require additional processing by the compute plane 14 for traditional operation. The folloWing list of services is merely exemplary and is not intended to limit the scope of the present inven tion. A ?ltering ?reWall may be implemented that alloWs or denies packets to traverse speci?ed interfaces depending on Whether the packet header matches a given bit map. An application speci?c ?reWall may be implemented that dynamically changes the ?reWall rules according to the application. For example, a ?le transfer protocol (FTP) gateWay that dynamically changes the ?reWall rules to alloW FTP data connections to a trusted host can be implemented. Security functions like stopping Transmission Control Pro tocol (TCP) segments With no or all bits set can also be dynamically programmed. Dynamic Real-Time Transfer Protocol (RTP) ?oW iden ti?cation is possible. RTP over User Datagram Protocol (UDP) ?oWs, Which are often not Well knoWn, are identi?ed by a UDP port number. Mechanisms can be implemented to identify RTP ?oWs based on the UDP port number. For example, control protocol messages, such as those used in Session Initiation Protocol (SIP), Real Time Streaming Protocol (RTSP), and H.323, can be intercepted and parsed for their RTP port numbers. Various differential services may be provided. For example, the forWard plane 16 may be con?gured as a differential service classi?er by properly programming the ?lters or forWarding rules. Since the forWard plane 16 may change selected bits and IP header at line speed, the routing node 10 can be used to implement ingress/egress marker capabilities for differential services. Reliable multi-casts are also made possible With proper forWarding rules. In addition to being able to copy certain packets for inspection by the control plane 12, the forWard plane 16 may be used to divert acknowledgements from multi-cast ses sions to the control plane 12. For example, the forWard plane 16 can send one copy of the acknowledgment to the control plane 12 and suppress duplicate acknoWledgements. Addi tionally, a token bucket system may be arranged Where a con?gurable buffer is implemented With a speci?ed packet draining rate. Differential service shapers and assorted RSVP policies can be implemented as Well. RSVP is a resource reservation setup protocol for the Internet. Its major features include: (1) the use of “soft state” in the routers, (2) receiver-controlled reservation requests, (3) ?exible control over sharing of reservations and forWarding of sub?oWs, and (4) the use of IP multicast for data distribution. For addi tional information regarding RSVP, please see the Internet Engineering Task Force’s RFCs 2205 through 2210, Which are incorporated herein by reference in their entirety. The various functions provided by the forWard plane 16 listed above relate to analyZing incoming packets, manipu lating packet headers, if necessary, and forWarding the packets to the next-hop or destination at high speeds. The present invention supplements these abilities With high-speed, preferably line rate, processing capabilities at an application level. As noted, the compute plane 14 is prefer ably used to manipulate packet data or payloads beyond 10 15 25 35 40 45 55 65 6 layer three or four protocols that provide application layer support. Thus, instead of analyZing or modifying the header on a packet, data analysis and manipulation associated With application layers in the packet is possible in the compute plane 14. Importantly, the compute plane 14 provides application support ef?ciently and at high speeds Without impacting the traditional routing speeds of the forWard plane 16. Further, the application layer processing is provided at much faster speeds in the compute plane 14 than Would be possible in the control plane 12. In addition to increased routing speeds and ef?ciency for application support, the compute plane 14 alloWs signi?cant con?guration of routing nodes 10 to facilitate any number of applications or combinations thereof. Overall interaction betWeen the control plane 12, compute plane 14, and forWard plane 16 is outlined in the How diagram of FIG. 5. Notably, the preferred processing for each of the three planes is illustrated. The process begins (block 100) With the forWard plane 16 receiving all incom ing packets regardless of Whether the packets are intended for the routing node directly or simply sent to the routing node for routing. When a packet is received (block 102), the forWard plane 16 Will ?lter the packet based on the forWard ing rules (block 104). In general, the forWarding rules Will dictate Whether the packet is forWarded to the control plane 12, compute plane 14, or sent to the next-hop or destination after processing by the forWard plane 16 (step 106). As discussed above, packets directed to the routing node 10, such as those used for diagnostics or to set con?gurations, are directed to the control plane 12. Packets requiring application level pro cessing are sent to the compute plane 14. Packets for Which the forWard plane 16 can handle all processing are simply processed in the forWard plane 16 and forWarded to the next-hop or destination. Typically, packets processed by the compute plane 14 and forWard plane 16 are those requiring routing. Assuming that the packet is one capable of being handled solely by the forWard plane 16, the packet is processed accordingly in the forWard plane 16 (block 108) and for Warded to the next-hop or destination (block 110). As noted, packet processing in the forWard plane 16 is typically limited to header analysis and manipulation. If the packet received by the forWard plane 16 is deter mined to be one directed to the control plane 12 based on the forWarding rules (block 106), the packet is received by the control plane 12 (block 112) and processed by the control plane 12 accordingly (block 114). As noted, packets intended for the control plane 12 may facilitate diagnostic or control instructions for the compute plane 14, such as instructions to set particular con?gurations for the compute or forWard planes 14, 16. For example, the compute plane 14 may receive information for establishing the forWarding rules for the forWard plane 16 as Well as con?gure the particular processing carried out by the compute plane 14 or the forWard plane 16. When the control plane 12 needs to respond to commu nications or deliver instructions to another netWork device, the control plane 12 Will prepare a suitable packet or response for sending to a select destination (block 116). Preferably, the packet or packets associated With an outgoing communication from the control plane 12 are sent to the forWard plane 16 Wherein the packet or packets are for Warded to the next-hop or destination (block 110). If the packet received by the forWard plane 16 from the netWork is one requiring application level support and the
  • 9. US 6,970,943 B1 7 forwarding rules direct the packet to the compute plane 14 (block 106), the packet is routed to the compute plane 14 accordingly. As described in further detail beloW, the for Warding rules may dictate Where to send the packet Within the compute plane 14 or hoW the packet Will be processed once it is received by the compute plane 14. In general, the compute plane 14 receives the packet (block 118) and processes the packet as dictated by the application (block 120). As noted, preferably the application data or payload is processed in the compute plane 14. In particular, the compute plane 14 is con?gured to carry out select functions to facilitate application level processing, Which results in data or payload manipulation (block 120). The processing may require restructuring or re-packetiZing the data or payload information depending on the particular application. Certain applications may simply process indi vidual packets Wherein other applications may require vari ous types of data or payload reconstruction. For eXample, information in one packet may be used to create multiple neW packets, or the information in multiple packets may be used to create a single packet. Regardless of the processing, the packets processed or provided by the compute plane 14 are sent to the forWard plane 16 (block 122) for forWarding to the neXt-hop routing device or destination. As such, the forWard plane 16 Will receive packets from the compute plane 14 and forWard the packet to the neXt-hop or desti nation (block 110). A block diagram of a preferred con?guration of the sWitching node 10 is depicted in FIG. 6. Preferably, each of the control plane 12, compute plane 14 and forWard plane 16 includes dedicated processing capability and is in commu nication With the other planes through a switching backplane 26. As such, the control plane 12 Will include a control processor 28 associated With a backplane interface 30 coupled to the sWitching backplane 26 and Will include sufficient memory 32 for storing the necessary instructions and data for operation. The compute plane 14 includes a backplane interface 34 in communication With one or more high-speed compute processors (CP) 36. These compute processors 36 Will include or be able to carry out select processes, rules or functions 38. Further, the compute processors 36 may stand alone or be controlled in part by a host processor 40. Preferably, the host processor 40 is associated With suf?cient memory 42 for storing the necessary data and instructions for operation. The host processor 40 may also be associated With a library module 44, Which may store various types of compute processor functions used to con?gure the function or rules 38 of the compute processors 36. The speed of the host processor 40 is not as critical as insuring that the compute processors 36 are capable of high-speed process mg. In an effort to maXimiZe the processing speeds, the compute processors 36 may be implemented using ?eld programmable gate arrays (FPGAs); application speci?c integrated circuits (ASICs); digital signal processing (DSP) components; netWork processors; or a combination thereof. Preferably, each compute processor 36 Will include a pro cessor and an FPGA or ASIC cooperating to maXimiZe processing throughput. The processor facilitates con?gura tion of the cooperating FPGA or ASIC, While the FPGA or ASIC processes the packets. Notably, the compute processor 36 is a generic name for any one or combination of hard Ware, ?rmWare or softWare capable of providing the high speed application processing required in the compute plane 14. Those skilled in the art Will appreciate the numerous techniques available to provide high-speed processing. 10 15 25 35 40 45 55 65 8 The compute processor 36 is con?gured to carry out select functions or rules 38 at or close to Wire-line speeds on the selected packets directed to the compute plane 14 from the forWard plane 16. Importantly, the compute processors 36 may provide a combination of functions for varying appli cations or may be con?gured Wherein each compute pro cessor 36 carries out a dedicated function or rule 38. In the latter case, different compute processors 36 may facilitate different processing based on the function or rules 38. As such, the packets sent to the compute plane 14 from the forWard plane 16 are directed to a select compute processor 36 capable of handling the application associated With the given packet. The forWard plane 16 includes a backplane interface 46 for communicating With the sWitching backplane 26. The backplane interface 46 of the forWard plane 16 is associated With a forWard processor 48 capable of implementing select forWarding rules 50 that facilitate packet ?ltering and deliv ery to the control plane 12, compute plane 14, and the neXt-hop or destination. The forWard processor 48 provides the typical routing processing and functions in traditional fashion for those packets that do not require the application processing of the compute plane 14. The forWard processor 48 is also associated With a netWork interface 52, Which is coupled to the packet-switched netWork for receiving and sending packets. The netWork interface 52 may be any type of netWork interface, including a 10 Base T, 100 Base T, or gigabit Ethernet interface. As depicted, given the necessary volume of traf?c handled by the routing node 10, the forWard plane 16 may be provided on multiple cards, all of Which interface With the sWitching backplane 26. These cards may include their oWn forWard processors 48 and netWork interfaces 52. Further, the compute plane 14 may be implemented on multiple cards in a fashion similar to that depicted for the forWard plane 16. As With the compute processors 36 in the compute plane 14, the forWard processors 48 require high-speed processing capability. As such, the forWard processor 48 is also an ASIC, FPGA, DSP device, netWork processor, or combina tion thereof. Preferably, as With the compute processors 36, the forWard processors 48 are programmable in the sense that the forWarding rules 50 and basic processing con?gu rations are programmable. Preferably, the compute proces sors 36 and the forWard processors 48 are programmable and can be programmed under the control of the control plane In essence, it is preferable for the control plane 12 to be able to establish the forWarding rules 50 and con?gure processing for the forWard plane 16. Similarly, the control plane 12 is preferably capable of setting the functions and rules 38 implemented by the compute processors 36 in the compute plane 14. Those skilled in the art Will appreciate the tremendous ?exibility in programming and con?guring the compute plane 14 and the forWard plane 16. For example, assume that for a given media stream application level processing is required for type A packets and basic forWarding is required for type B packets. Con ?guration instructions may be sent to the routing node 10 de?ning the type A and B packets Within the media stream and the processing function to provide on the type Apackets. The con?guration instructions may be sent in one or more packets, Which Will be forWarded to the control plane 12 by the forWard plane 16. Upon receipt, the control plane 12 Will con?gure the forWard plane 16 to recogniZe the type A and B packets in the media stream and forWard the type A
  • 10. US 6,970,943 B1 9 packets to the compute plane 14 and the type B packets on to the next-hop or the ?nal destination. Those skilled in the art Will recognize that the routing node 10 of the present invention may be used in homoge neous as Well as heterogeneous netWorks. For example, the routing node 10 may be implemented as a router in a packet-sWitched netWork or in a media gateway, bridging like or different netWorks. In the latter case, the compute plane 14 is very effective in alloWing the processing of packets or content being converted from one format or protocol to another. The present invention provides a compute plane 14 facili tating application processing during routing. Regardless of the processing function, the compute plane 14 in the routing node 10 alloWs the forWard plane 16 to maintain the extremely high processing and forWarding speeds required for traditional routing and maximiZes processing speeds for packets requiring processing at an application level during routing. The present invention alloWs tremendous ?exibility in con?guring routers and adds the ability to provide appli cation processing at or near Wire-line speeds Without effect ing normal routing speeds of the forWard plane 16 or requiring additional computation poWer in the control plane 12. Those skilled in the art Will recogniZe improvements and modi?cations to the disclosed embodiments of the present invention. For example, the routing devices of the present invention may be any number of netWork devices, including routers, sWitches, gateWays, aggregation devices, netWork distribution devices, core routers, Wireless base stations, Wireless access points, and multiplexors (electrical and optical). All such improvements and modi?cations are con sidered Within the scope of the concepts disclosed herein and the claims that folloW. What is claimed is: 1. A routing node comprising a forWard plane, a compute plane, and a control plane, the forWard plane adapted to: a) receive packets including ?rst packets requiring basic forWarding by the forWard plane, second packets requiring processing by the compute plane, and third packets requiring processing by the control plane; b) send the second packets to the compute plane and the third packets to the control plane; c) receive processed packets from the compute plane; and d) forWard the ?rst packets and the processed packets received by the compute plane; the compute plane adapted to provide application level processing on the second packets received from the forWard plane and return the processed packets to the forWard plane for forWarding; and the control plane adapted to con?gure the compute plane and the forWard plane. 2. The routing node of claim 1 Wherein the forWard plane is further adapted to implement forWarding rules on the packets received to identify and forWard the ?rst packets, the second packets, and the third packets. 3. The routing node of claim 2 Wherein the control plane further comprises a ?lter for implementing the forWarding rules on the packets received. 4. The routing node of claim 2 Wherein the forWarding rules are based on at least one header in the packets received and the forWard plane is further adapted to analyZe the at least one header in the packets received in light of the forWarding rules to identify the ?rst packets, the second packets, and the third packets. 5. The routing node of claim 2 Wherein the control plane is adapted to at least partially de?ne the forWarding rules. 10 15 25 35 40 45 55 65 10 6. The routing node of claim 1 Wherein the compute plane is further adapted to process application data carried in payloads of the second packets according to an application to create the processed packets. 7. The routing node of claim 1 Wherein the second packets require processing according to one of a plurality of unique applications and the compute plane is further adapted to process the second packets according to a corresponding one of the plurality of unique applications to create the processed packets. 8. The routing node of claim 1 Wherein the compute plane includes a plurality of compute processors adapted to pro vide the application level processing on the second packets such that application level processing is distributed among the plurality of compute processors. 9. The routing node of claim 1 Wherein the second packets require processing according to one of a plurality of unique applications and the compute plane includes a plurality of compute processors adapted to provide the application level processing on the second packets according to a correspond ing one of the plurality of unique applications to create the processed packets. 10. The routing node of claim 1 Wherein the control plane is adapted to at least partially de?ne functions facilitating the application level processing on the second packets. 11. The routing node of claim 10 Wherein the control plane is further adapted to at least partially de?ne the forWarding rules. 12. The routing node of claim 1 Wherein the control plane is further adapted to receive at least one of the third packets and con?gure at least one of the forWard plane and the compute plane based on the at least one of the third packets. 13. The routing node of claim 1 Wherein the forWard plane is further adapted to manipulate headers of the ?rst packets to facilitate forWarding of the ?rst packets over a netWork toWard a destination. 14. The routing node of claim 1 Wherein: a) the forWard plane includes a netWork interface associ ated With a plurality of forWard processors adapted to receive the packets via the netWork interface and imple ment forWarding rules on the packets received to iden tify the ?rst packets, the second packets, and the third packets; b) the compute plane includes a plurality of compute processors adapted to provide the application level processing on the second packets such that the appli cation level processing is distributed among the plu rality of compute processors; and c) a backplane coupling together the forWard plane, compute plane, and control plane. 15. The routing node of claim 14 Wherein the compute plane further includes a host processor associated With each of the plurality of compute processors and adapted to establish processing rules to implement the application level processing for each of the plurality of compute processors. 16. The routing node of claim 14 Wherein the forWard processors and the compute processors are high-speed pro cessing architectures consisting of one or a combination of the group consisting of ?eld programmable gate arrays, digital signal processors, netWork processors, and applica tion speci?c integrated circuits. 17. The routing node of claim 1 Wherein the routing node is a router and the forWard plane includes a netWork inter face to facilitate packet-sWitched communication over a packet-sWitched netWork.
  • 11. US 6,970,943 B1 11 18. The routing node of claim 1 wherein the routing node is a media gateway and the forward plane is associated with a network interface to facilitate communications between at least two networks. 19. Arouting architecture for a forward plane of a routing node including the forward plane, a compute plane, and a control plane, the architecture for the forward plane com prising: a) means for receiving packets including ?rst packets requiring basic forwarding by the forward plane, sec ond packets requiring processing by the compute plane, and third packets directed to the control plane; b) means for identifying the ?rst packets, the second packets, and the third packets; and c) means for forwarding the third packets to the control plane; the second packets to the compute plane for processing; and the ?rst packets and packets processed by the compute plane over a network toward a desti nation based on forwarding rules. 20. The routing architecture of claim 19 further compris ing means for receiving processed packets from the compute plane. 21. The routing architecture of claim 19 wherein the forwarding rules are based on at least one header in the packets received and further comprising means for analyZ ing the at least one header in the packets received in light of the forwarding rules to identify the ?rst packets, the second packets, and the third packets. 22. The routing architecture of claim 19 further compris ing means for receiving instructions to con?gure at least a portion of the forwarding rules from the control plane. 23. The routing architecture of claim 19 wherein the compute plane is further adapted to process application data carried in payloads of the second packets according to an application to create the processed packets. 24. The routing architecture of claim 19 further compris ing means for manipulating headers of the ?rst packets to facilitate forwarding of the ?rst packets over the network toward a destination. 25. Arouting architecture for a compute plane of a routing node including a forward plane, the compute plane, and a control plane wherein the forward plane is adapted to receive packets including ?rst packets requiring basic for warding by the forward plane, second packets requiring processing by the compute plane, and third packets directed to the control plane, the architecture for the compute plane comprising: a) means for receiving the second packets requiring processing by the compute plane from the forward plane; b) means for processing the second packets at an appli cation level to create processed packets; and c) means for sending the processed packets to the forward plane for forwarding over a network toward a destina tion. 26. The routing architecture of claim 25 wherein the means for processing processes application data carried in payloads of the second packets according to an application to create the processed packets. 27. The routing architecture of claim 25 wherein the second packets require processing according to one of a plurality of unique applications and the means for process ing processes the second packets according to a correspond ing one of the plurality of unique applications to create the processed packets. 15 25 35 40 45 55 65 12 28. A routing device comprising: a) a control plane for controlling the router; b) a compute plane adapted to process content contained in packets requiring application processing to provide processed packets; and c) a forward plane adapted to: i) receive packets requiring a basic forwarding service, packets requiring application processing, and pack ets for general control of the router; ii) process and forward the packets requiring the basic forwarding service; iii) send the packets requiring application processing to the compute plane; iv) receive the processed packets of the compute plane; v) forward the processed packets; and vi) send the packets for general control of the router to the control plane. 29. A method of routing packets using a forward plane, a compute plane, and a control plane comprising: a) in the forward plane, receiving packets including ?rst packets requiring basic forwarding by the forward plane, second packets requiring processing by the com pute plane, and third packets requiring processing by the control plane; sending the second packets to the compute plane and the third packets to the control plane; receiving processed packets from the compute plane; and forwarding the ?rst packets and the pro cessed packets received by the compute plane over a network toward a destination; b) in the compute plane, providing application level processing on the second packets received from the forward plane and returning the processed packets to the forward plane for forwarding; and c) in the control plane, con?guring the compute plane and the forward plane. 30. The method of claim 29 further comprising, in the forward plane, identifying the ?rst packets, the second packets, and the third packets from the packets received and forwarding the ?rst packets, the second packets, and the third packets based on forwarding rules. 31. The method of claim 29 wherein the forwarding rules are based on at least one header in the packets received and further comprising, in the forward plane, analyZing the at least one header in the packets received in light of the forwarding rules to identify the ?rst packets, the second packets, and the third packets. 32. The method of claim 29 further comprising, in the control plane, de?ning certain of the forwarding rules. 33. The method of claim 29 further comprising, in the compute plane, processing application data carried in pay loads of the second packets according to an application to create the processed packets. 34. The method of claim 29 wherein the second packets require processing according to one of a plurality of unique applications and further comprising, in the compute plane, processing the second packets according to a corresponding one of the plurality of unique applications to create the processed packets. 35. The method of claim 29 further comprising, in the control plane, de?ning certain functions facilitating the application level processing on the second packets for the compute plane.
  • 12. US 6,970,943 B1 13 36. The method of claim 35 further comprising, in the control plane, de?ning certain of the forwarding rules for the forward plane. 37. The method of claim 29 further comprising, in the forWard plane, manipulating headers of the ?rst packets to 14 facilitate forWarding of the ?rst packets over the netWork toWard the destination.