throbber
(12) United States Patent
`(10) Patent N0.:
`US 6,970,943 B1
`
`Subramanian et al.
`(45) Date of Patent:
`Nov. 29, 2005
`
`U5006970943B1
`
`(54) ROUTING ARCHITECTURE INCLUDINGA
`COMPUTE PLANE CONFIGURED FOR
`HIGH-SPEED PROCESSING OF PACKETS
`TO PROVIDE APPLICATION LAYER
`
`SUPPORT
`.
`,
`,
`.
`InVemorS Slva subr?maman> cam NC (US)>
`Tall-LaVlaIl,SunHYVa1€, CA(US)
`
`(75)
`
`.
`(73) ASSIgnee: Nortel Networks Limited, St. Laurent
`(CA)
`
`( * ) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U S C 154a,) by 1028 days
`'
`'
`'
`
`'
`
`6,134,589 A * 10/2000 Hultgren ..................... 709/227
`6,151,633 A
`11/2000 Hurst et al.
`709/235
`
`........... 709/202
`6,157,941 A * 12/2000 Verkler et al.
`............. 370/235
`6,226,267 B1
`5/2001 Spinney et al.
`6,286,052 B1
`9/2001 McClOghrie et al.
`....... 709/238
`6 289 389 B1
`9/2001 Kikinis
`709/239
`6:424:621 B1
`7/2002 Ramaswamy et al.
`...... 370/230
`6,560,644 B1 *
`5/2003 Lautmann et al.
`.......... 709/223
`6,570,867 B1
`5/2003 Robinson et al.
`.....
`370/351
`
`8/2003 McCanne ................... 709/238
`6,611,872 B1 *
`6,611,874 B1 *
`8/2003 Denecheau et al.
`......... 709/239
`6,754,219 B1 *
`6/2004 Cain et al.
`.................. 370/401
`6,757,289 B1 *
`6/2004 Cain et a1.
`.................. 370/401
`6,785,704 B1 *
`8/2004 McCanne ................... 718/105
`6,792,461 B1 *
`9/2004 Hericourt .......
`709/225
`
`6,810,421 B1 * 10/2004 Ishizaki et al.
`709/226
`.................. 709/238
`6,810,427 B1 * 10/2004 Cain et al.
`
`(21) Appl. No.: 09/736,692
`
`(22)
`
`Filed:
`
`Dec. 13, 2000
`
`Related US. Application Data
`
`* cited by examiner
`
`Primary Examiner—Nabil El-Hady
`(74) Attorney, Agent, or Firm—Withrow & Terranova,
`PLLC
`
`(60)
`
`PrOViSional application No. 60/239,484, filed on Oct.
`11, 2000.
`
`(57)
`
`ABSTRACT
`
`7
`
`............................................. G06F 15/173
`Int. Cl.
`(51)
`...................... 709/238; 709/223; 709/225;
`(52) US. Cl.
`709/226; 709/227; 709/230; 709/232
`_
`(58) Fleld of Search ................................ 709/200, 202,
`709/223, 225, 226, 227,238,239, 230, 232
`
`(56)
`
`References Cited
`US. PATENT DOCUMENTS
`
`5:167:03 A
`5,377,327 A
`5’495’426 A
`5,854,899 A
`6,044,075 A
`6,078,953 A
`6,092,096 A *
`
`11/1992 Bryant 6t al~ ~~~~~~~~~~~~~~~ 709/235
`
`12/1994 Jain et al. ................ 709/235
`2/1996 wadaWSky et al’ """" 709/226
`12/1998 Callon et al.
`............... 709/238
`..... 370/351
`3/2000 Le Boudec et al.
`.
`
`............... 709/223
`6/2000 Vaid et a1.
`
`........................ 709/200
`7/2000 Lewis
`
`The present invention provides a routing architecture includ-
`mg a control plane, a compute plane, and a forward plane.
`The forward plane provides traditional forwarding of pack-
`ets to the next-hop address, along with any necessary header
`manipulation, whlle the control plane configures the forward
`plane and the compute plane for desired operation. The
`compute plane is configured 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 filters sufficient to forward a received
`packet to the next_h0p address, to the compute plane for
`a
`lication rocessin
`or to the control
`lane to facilitate
`p
`.g’
`pp
`COHHOI 0r configuramn'
`
`p
`
`37 Claims, 4 Drawing Sheets
`
`/10
`
`COMPUTE PLANE
`
`MEMORY
`42
`—
`
`
`
`E
`
`B l
`A N
`FORWARD
`s B
`B I
`
`
`
`
`c T
`PROCESSOR
`w A
`A N
`
`E E
`fl
`C T
`I c
`FORWARDING
`L F
`LIBRARY MODULE
`K E
`T K
`
`N C
`50
`—
`A A
`RULES/FILTER
`(OP FUZ‘ET'ONS)
`E E
`S E
`
`E E
`_
`A A
`I A
`N C
`N N
`E
`E E
`G E
`g NETWORK E
`
`
`PROCESSOR
`
`
`
`INTERFACE
`52
`
`
`CONTROL PLANE
`BACKPLANE
`
`
`
`INTEngACE
`CONTROL
`
`
`MEMORY
`PROCESSOR
`
`Q
`223
`
`
`g
`
`1
`
`ARISTA 1006
`
`1
`
`ARISTA 1006
`
`

`

`US. Patent
`
`Nov. 29, 2005
`
`Sheet 1 0f4
`
`US 6,970,943 B1
`
`/10
`
`CONTROL PLANE
`
`12
`
`16
`
`COMPUTE SERVICES
`18
`
`NETWORK SERVICES
`20
`
`COMPUTE API
`
`NETWORK API
`
`2
`
`a
`
`COMPUTE PLANE
`14
`
`FORWARD PLANE
`
`FIG. 1
`
`CONTROL PLANE
`
`1.2
`
`1‘1
`
`COMPUTE SERVICES
`
`NETWORK SERVICES
`
`g
`
`20
`
`COMPUTE API
`
`NETWORK API
`
`2
`
`21
`
`COMPUTE PLANE
`
`FORWARD PLANE
`16
`
`FO RWARDED
`PACKETS
`
`FIG. 2
`
`2
`
`

`

`US. Patent
`
`Nov. 29, 2005
`
`Sheet 2 0f4
`
`US 6,970,943 B1
`
`/-10
`
`CONTROL PLANE
`
`
`
`COMPUTE SERVICES
`
`NETWORK SERVICES
`
`1_8
`
`2_0
`
`COMPUTE API
`
`NETWORK API
`
`2_2
`
`2_4
`
`COMPUiAE PLANE
`
`FORWARD PLANE
`
`16
`
`PACKETS
`MANIPULATED BY
`COM PUTE PLANE
`
`FIG. 3
`
`CONTROL PLANE
`
`CONFIGURATION
`INSTRUCTIONS
`
`2
`
`_1_4
`
`COMPUTE8SERVICES
`
`NETWORK SERVICES
`
`20
`
`COMP2U2TE API
`
`NETWORK API
`2_4
`
`COMPUTE PLANE
`
`FORWARD PLANE
`
`PACKETS DIRECTED
`TO CONTROL PLANE
`
`FIG. 4
`
`3
`
`

`

`US. Patent
`
`Nov. 29, 2005
`
`Sheet 3 0f 4
`
`US 6,970,943 B1
`
`w:
`
`omw
`
`
`
`
`
`mz<._n_mSasoomz<._n_355:8mz<._n_.5528
`
`
`
`
`
`
`
`x:_va_0<n_meme_NS__2:F25_E_m:_NF
`
`
`
`
`
`Qmw<mHmvadimm._.l__u_
`
`
`
`mml5mOz_om<>>m0n_ZO
`
`
`
`wao<am>_m0mm
`
`zO_.r<szm_o
`
`$01?sz
`
`
`
`om<>>m0u
`
`
`
`m.._.3n_s_oo._OE.zOO
`
`
`mom._bn__>_ooAOmHZOoOH
`sz<z:.mm_Qn_OI.._.xmz
`
`
`
`
`
`mo“.Eva/Emmmooma
`
`
`
`2089%.20.23%?
`
`
`
`szfiozEmSnSoo
`
`o<9><a5<o>j<oa>b
`20:39:32
`
`
`
`>z<025302meoE
`
`wmmOOmm
`ZOFSDEZ<Emmo<mI>m<mmmomz
`
`
`
`m0”.mZO_._.<EDG_n_ZOO.JmmmO_._.mOZO<_n_
`
`23m.w._
`
`>m<mmw0mzn:
`
`>m<mmw0mzu:
`
`m.GE
`
`ZO_._.<Z_._.wm_D
`
`
`
`
`
`EOIFXMZO._.meo<mom<>>m0u
`
`wZ<._n_om<>>m0uOH
`
`
`
`
`
`me0<n_Dmmwm—Oomm02mm
`
`
`mszmmm—mm0meo<n_wm<mmmm
`
`29.22;me<O...OzEzmmm0“—
`
`IOwHDQEOO
`
`
`
`me<IEDm<>>m0m
`
`
`
`lava/EmmmDOmn.
`
`
`
`._.m_v_0<aw>_w0mm
`
`m:
`
`v:
`
`4
`
`
`
`
`
`
`
`
`

`

`US. Patent
`
`Nov. 29, 2005
`
`Sheet 4 0f 4
`
`’US6
`
`970,943 B1
`
`
`
`wZ<n_n_DE<>>IOL
`
`fl
`
`<>>2<memwmoomaomm_momssmo“.<m
`
`
`
` 3m_Z<._n_mFDnzzoo
`
`557552.<._I43n.omn.629523“.gov
`ozam<>>m8MxFmx3802ESE:
`Ivmwm.mmzzozz<_M<|
`
`BEEF;8xmozfimzflmmmowmmmooxomn.
`
`m_Z<..n_v_0<m_
`
`.%m0<n_mm_._.z_
`
`JOmHZOO
`
`amOmmMOOmn.
`
`m.GE
`
`
`
` wmz<._n_AOEFZOO
`
`>mO_>_m=>_
`
`N”.
`
`5
`
`
`
`
`
`

`

`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 benefit of provisional appli-
`cation No. 60/239,484, filed Oct. 11, 2000, entitled COM-
`PUTATION IN NETWORK DEVICES, and is related to
`application Ser. No. 09/736,678, filed Dec. 13, 2000, entitled
`DISTRIBUTED
`COMPUTATION
`IN
`NETWORK
`DEVICES and Ser. No. 09/736,674, filed 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
`final 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 configured devices
`capable of providing application processing, such as fire-
`walls, are uniquely configured for the special application
`wherein the routing speeds for normal routing in the forward
`plane are significantly 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 signifi-
`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 configurable to provide various
`types of application support
`in any number of network
`environments.
`
`SUMMARY OF THE INVENTION
`
`invention provides a routing architecture
`The present
`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 configures the
`forward plane and the compute plane for desired operation.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`The compute plane is configured 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 filters sufficient 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
`configuration. 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 field programmable gate arrays (FPGAs), application
`specific integrated circuits (ASICs), digital signal processors
`(DSP), network processors, or a combination thereof suffi-
`cient to provide processing speeds that are close to forward-
`ing speeds of the forward plane. Further, the compute plane
`is preferably configurable by the control plane to provide
`various types of application processing. The compute plane
`may be configured 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
`figures.
`
`BRIEF DESCRIPTION OF THE DRAWING
`FIGURES
`
`The accompanying drawing figures incorporated in and
`forming a part of the specification 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 config-
`uring the compute plane and forward plane from the control
`plane according to a preferred embodiment of the present
`invention.
`
`6
`
`

`

`US 6,970,943 B1
`
`3
`FIG. 5 is a flow diagram outlining the basic flow 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 configuration 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 specific applications during routing. The for-
`ward plane provides traditional forwarding, along with any
`necessary header manipulation, while the control plane
`preferably configures the forward plane and the compute
`plane as desired. Upon reading the following description in
`light of the accompanying drawing figures, 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
`configured 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 final
`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 final 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 final 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, modified, and repacked as
`directed by any number of applications. The routing node 10
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`preferably supports programming and unique configuration
`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 specific 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 firewalls 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 configuration
`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 configurations 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 specific 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 filters that facilitate
`
`forwarding rules. These filters execute actions specified by
`a defined filter policy. Typically, these filters can be based on
`combinations of fields in the machine address, IP address,
`and transport headers. The filters may also be configured to
`trigger on a payload as well. The filter policy can define
`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 filter 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
`identified as being part of high-priority flow; these packets
`can be placed in a high-priority queue and delivered accord-
`ingly. As noted, the filter policy can also cause packet and
`header content to be selectively altered for most of these
`operations. The particular plane handling the processing is
`
`7
`
`

`

`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 filtering firewall may be implemented that allows or
`denies packets to traverse specified interfaces depending on
`whether the packet header matches a given bit map. An
`application specific firewall may be implemented that
`dynamically changes the firewall rules according to the
`application. For example, a file transfer protocol (FTP)
`gateway that dynamically changes the firewall 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) flow iden-
`tification is possible. RTP over User Datagram Protocol
`(UDP) flows, which are often not well known, are identified
`by a UDP port number. Mechanisms can be implemented to
`identify RTP flows 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
`configured as a differential service classifier by properly
`programming the filters 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
`configurable buffer is implemented with a specified 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) flexible control
`over sharing of reservations and forwarding of subfiows, 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
`
`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 efficiently 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
`efficiency for application support,
`the compute plane 14
`allows significant configuration 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 flow
`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 filter 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 configurations, 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 configurations 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 configure 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
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`8
`
`

`

`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 configured 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 configuration 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 sufficient
`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 configure 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.
`the
`to maximize the processing speeds,
`In an effort
`compute processors 36 may be implemented using field
`programmable gate arrays (FPGAs); application specific
`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 configura-
`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, firmware 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
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`8
`The compute processor 36 is configured 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 configured 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 filtering 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 traffic 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

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket