throbber
(12) United States Patent
`Salim
`
`USOO6628653B1
`US 6,628,653 B1
`Sep. 30, 2003
`
`(10) Patent No.:
`(45) Date of Patent:
`
`(54) PROGRAMMABLE PACKET SWITCHING
`DEVICE
`
`(75) Inventor: Jamal Hadi Salim, Nepean (CA)
`
`(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. 154(b) by 0 days.
`
`(21) Appl. No.: 09/090,285
`(22) Filed:
`Jun. 4, 1998
`(51) Int. Cl. ................................................ H04L 12/56
`(52) U.S. Cl. ........................................ 370/389; 370/401
`(58) Field of Search ................................. 370/389, 392,
`370/401, 402, 403, 404, 405
`
`(56)
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`5,572,512 A * 11/1996 Cutler, Jr. et al. .......... 370/248
`6,188,689 B1 * 2/2001 Katsube et al. ......
`... 370/389
`6,236,654 B1 * 5/2001 Egbert ........................ 370/392
`
`OTHER PUBLICATIONS
`Alexander, D. Scott, et al. “Active Bridging”.SIGCOMM
`97, Cannes, France, Sep. 1997.
`“Telecommunication Routers”, User Manual dated Apr. 16,
`1998, published by Obtek L.L.C., P.O. Box 399, Rockwall,
`Texas 75087-0399 U.S.A.
`* cited by examiner
`Primary Examiner-Chau Nguyen
`ASSistant Examiner-D. Trinh
`(57)
`ABSTRACT
`A packet processing apparatus comprises a programmable
`hardware discriminator for receiving incoming packets, and
`Selecting bits from any part of the incoming packets, a
`decision table for Storing information relating to how the
`packets are to be processed, programmable hardware Search
`ing logic for accessing the information in the table according
`to the Selected bits, and a packet handler for processing the
`packets according to the result of the access. Since many
`networking processing tasks can be broken down into bit
`Selection and table Searching, this generic type of arrange
`ment will Suit a wide variety of applications. It facilitates
`developing logic directly in hardware which can reduce the
`effort needed to convert a working prototype into a product
`ready for use in the field, e.g. for handling new protocol
`components.
`
`1 Claim, 14 Drawing Sheets
`
`INCOMING
`PACKETS
`
`PROGRAMMABLE
`DISCRIMINATOR
`
`
`
`SELECTED
`
`PROGRAMMABLE
`TABLE SEARCH/
`MAINTENANCE
`LOGIC
`
`DECISION
`TABLE
`
`
`
`
`
`PACKET
`HANDLER
`
`
`
`OUTGOING
`PACKETS
`
`Ex.1007
`CISCO SYSTEMS, INC. / Page 1 of 24
`
`

`

`U.S. Patent
`
`Sep. 30, 2003
`
`Sheet 1 of 14
`
`US 6,628,653 B1
`
`
`
`
`
`/ONIHOLIAAS
`
`
`
`
`
`{{OV HORIALNI
`
`JL[\d{NI
`
`JL:HXHOVdI
`
`RIGH H H []{
`
`ÅRHOVNIHWN
`
`080Z
`
`C)SRI}{{HJLTIH
`
`COVJLOEI
`
`00
`
`
`
`
`
`JLRIV RHOIRIGH I’OIGH
`
`Ex.1007
`CISCO SYSTEMS, INC. / Page 2 of 24
`
`

`

`U.S. Patent
`
`Sep. 30, 2003
`
`Sheet 2 of 14
`
`NOISIOHd
`
`TTaVL
`
`OC
`
`HTEVANNVADOdd
`
`
`
`/HOUVASATEVL
`
`YONVNALNIVAL
`
`JIDO'T
`
`LAAOVd
`
`¢Old
`
`CHLOYTHS
`ATEAVNINVaDOdd
`SLAAOVd
`
`YOLVNIATYOSIG
`
`ONINOONI
`
`US 6,628,653 B1
`
`ONIODINOUHTONVH
`
` SLHAOVd
`
`Ex.1007
`CISCO SYSTEMS, INC. / Page 3 of 24
`
`Ex.1007
`CISCO SYSTEMS, INC. / Page 3 of 24
`
`
`
`
`
`

`

`US 6,628,653 B1
`
`U.S. Patent
`
`Sep. 30, 2003
`
`Sheet 3 of 14
`
`TIAVNWVUDOUdATAVNWVYDOUd
`
`PIAVNNVUDOUdLa
`ONLLANAATLNIsava
`
`IN01aaana
`
`sdav)dN
`
`COLOre
`
`SaavVOANIT
`
`LNdLNo
`
`of€
`
`As
`
`DOT
`
`
`
`
`
`ATAVLHONVNALNIVINSuanLAWOVd
`
`Ex.1007
`CISCO SYSTEMS, INC. / Page 4 of 24
`
`Ex.1007
`CISCO SYSTEMS, INC. / Page 4 of 24
`
`
`
`

`

`U.S. Patent
`
`Sep. 30, 2003
`
`Sheet 4 of 14
`
`US 6,628,653 B1
`
`NIATAOSIG
`
`WOdANVdOWO
`
`
`
`JIDOTONILAYdaALNI
`
`POW
`
`
`
`YOLVNINTSOSICATAVNNVADOdd
`
`ONILDV
`
`YaLSIDOAa
`
`
`
`YALSIOdaASVA
`
`AONVNALNIVA
`
`HOUVHSOL
`
`JIDOT
`
`wal=AddOLO1P
`aeLAdLNoFTIOLSLAMOVA
`
`
`YOLVUVANODNOLLONOdONY
`
`
`
`00r
`
`Ex.1007
`CISCO SYSTEMS, INC. / Page 5 of 24
`
`Ex.1007
`CISCO SYSTEMS, INC. / Page 5 of 24
`
`
`
`
`

`

`U.S. Patent
`
`Sep. 30, 2003
`
`Sheet 5 of 14
`
`US 6,628,653 B1
`
`ataviOF COIOddLSOHWOws/OL
`
`
`
`JIDOTAONVNELNIVW
`
`
`
`FAOVANALNIAULNAMANAdvWOW
`
`
`
`
`
`/ONTIGNVHSYOLVNI
`
`
`
`TOULNOO-WIMOSICJIDO71INdNI
`
`
`
`ONLLLVAYOAIDOI
`
`
`
`-dudVLVGALATAC/ADV
`
`TOULNOO
`
`WOUd/OL
`
`Ld£10
`
`LOATAS
`
`a
`
`VWHLITYOOTV
`TOULNOOD
`
`HOUVAS
`/NOLLOYTES
`
`
`
`06WHLIMODTVWHLYOO'TVYWOLVNI
`
`
`
`HOUVASHOUVAS-WIOSIG
`
`O809
`
`WOW
`
`aTaViL
`
`
`
`SLTONSHaHOAVAS
`
`SOLLSLLVLS
`
`
`
`TOULNODOLNdLNO
`
`ONILYOdaa
`
`
`
`
`
`
`
`JIDOTJZONILAAdaAINIOLJIDOTONILAUNdaALNI|NOU
`
`Ex.1007
`CISCO SYSTEMS, INC. / Page 6 of 24
`
`Ex.1007
`CISCO SYSTEMS, INC. / Page 6 of 24
`
`
`
`
`
`
`
`
`

`

`U.S. Patent
`
`Sep. 30, 2003
`
`Sheet 6 of 14
`
`US 6,628,653 B1
`
`010s¢g5Iq99°
`
`
`
`JDOTONLLAAdva.ENI
`
`
`
`
`
`
`
`JDO0THOLVW-SINQJIDOTHOLVN
`
`davoOsid
`
`LAAOVd
`
`NOILONNA
`
`
`LOATASNOLLONDA
`
`LOATASNOLLONAA
`
`069
`
`AHLVddf)
`
`NOJLONOAATAVL
`
`ALVddf)
`
`LAAOVd
`
`NOILONNA
`
`WVadOddaa
`
`HOUVAS
`
`WVaddOddda
`WVaddOddaa
`
`NOILONOA
`
`WHLYOOTV
`YOLVNIATAOSIG
`NOILONAA
`NOLLONNAOLD0T
`ONDLLAAdaALNI
`
`Ex.1007
`CISCO SYSTEMS, INC. / Page 7 of 24
`
`Ex.1007
`CISCO SYSTEMS, INC. / Page 7 of 24
`
`
`
`
`
`
`
`
`
`

`

`U.S. Patent
`
`Sep. 30, 2003
`
`Sheet 7 of 14
`
`US 6,628,653 B1
`
`Low
`
`
`
`ASVHdNOILONOYXY
`
`;NOISIOdGANIA
`
`
`
`
`
`008ASVHdNOLLINIAAA
`
`
`
`
`
`
`
`“ASVHdNOISYAANODCNVHOLVWWATEVL
`
`
`
`
`
`
`
`SNOLLINISAGONINYOALSNWN109LAdLNO
`
`
`SLIdLOVULXA
`
`
`Wow
`
`DONTNOONI
`
`LAAOVd
`
`O1IDOTFUVMGUVHOLNI
`
`
`
`OS%JOSLIHOIHMANIAAG
`
`O98
`
`YOLVNIATYOSIGC
`
`WVadDOdd
`
`
`
`CNOdSHaaOOLAAOVd
`
`
`
`SNATODHOLVWOL
`
`HOUVAS
`
`NOISIOdd
`
`HOUVASNAVaDOdd
`
`SATINHOUVYSANIC
`
`4TaVL
`
`WHITYOO'TV
`
`
`
`‘SNANTOO/S.LIAHOIHM“D'd
`
`
`
`SNOLLVNIGWODHOIHM
`
`WVedOOddg
`
`LNOAWAVO
`
`dOCHHOLVN
`
`CHHOLVUCSIN
`
`NOILOV
`
`HOLVWATAVLNOISIONGTILineesTinsau
`
`
`
`WALINGaALNI
`
`
`
`NONOLLOVANITA
`
`
`
`
`
`NONOLLOVINIA
`
`
`
`LTASAYHOLVACSIN
`
`Ex.1007
`CISCO SYSTEMS, INC. / Page 8 of 24
`
`Ex.1007
`CISCO SYSTEMS, INC. / Page 8 of 24
`
`
`
`
`
`
`
`
`
`

`

`U.S. Patent
`
`Sep. 30, 2003
`
`Sheet 8 of 14
`
`US 6,628,653 B1
`
`
`
`
`
`TORIJLNOO OLYHOEHLETHdHRIGH LNI
`
`{DNIO O LÍQO
`
`SLEIXIOVd
`
`?96ZEITI?IVLTIO?HALNOO
`
`Z VO?IH
`
`096
`
`
`
`NOI LOGHTOEHS
`
`YHO LVNIWTRIOSICI
`
`TORIJLNO O·
`
`Z WOdIH
`
`SS6
`
`SZ60Z6
`
`8° OIH?I 6
`
`
`
`
`
`
`
`
`
`
`
`YHO
`
`NOILON(\'{
`
`| VOCH H
`
`I VOc{H
`
`@HT8IVJL
`
`TORIJLNOO
`
`RIO LVNIWTHOSICI |ONTWOONI
`
`
`
`
`SLOEIXIOVd
`
`Ex.1007
`CISCO SYSTEMS, INC. / Page 9 of 24
`
`

`

`U.S. Patent
`
`Sep. 30, 2003
`
`
`
`SHNINUALYCOIOOT
`
`ONILAAdaaNI
`
`
`
`VOddONIONVHDAd
`
`YALSIOdaAOLOdNI
`
`US 6,628,653 B1
`
`Sheet 9 of 14
`
`
`
`SHRLLNYaTaVMAN
`
`
`
`SHONVHOO1D07qTav.lMAN||vOoddSHDNVHOSAVO'INMOdNddLSOH
`
`
`
`ODOTONILAadddLNI
`
`
`
`SLOYULACATAaVL
`
`
`
`NOILLVaddOVOdaSHDNVHO
`
`AONVNALLNIVIAATEaViL
`
`
`
`
`SARLLNAFIAVLSdTaLNAAdNOLLVUddONOILVUNDIANODMAN
`
`
`
`JONVNALLNIVISHNINGALAGAddLSOH
`TIAVLLSOH
`
`
`UALSIOPa
`
`YOLAdNIVOdd
`
`
`
`ONIONVHOVWOddOL
`
`LAMOVd
`
`LAAOVd
`
`SLOALAdATaVtL
`
`
`
`ONINWVaDOadda
`
`SHHD.LIMSNdLSOH
`
`dayNDIINOOWa
`
`LINOUDNIVOdd
`
`Ex.1007
`CISCO SYSTEMS, INC. / Page 10 of 24
`
`Ex.1007
`CISCO SYSTEMS, INC. / Page 10 of 24
`
`
`
`
`
`
`
`
`

`

`Sheet 10 of 14
`
`ATAVLLSOH
`
`U.S. Patent
`
`Sep. 30, 2003
`
`OLOMAONVNALNIVI
`
`LHaOVd
`
`YOLVNIATAOSIG
`
`
`
`ATEaVLSLOALAG
`
`YOLVNIATAOSTG
`
`S.LOU.LAd
`
`DNINNAVYOOadda
`
`LAAOVd
`
`CVOINMOGNddLSOH
`
`
`
`
`SAONVHOOIDOTSaNIWRLaCoosortSaVvOOHONVNALNIVA
`
`US 6,628,653 B1
`
`ONIONVHO
`
`
`
`YOLAdNIVOdd
`
`YaLSIoda
`
`SHHOLIMSNdOLSOH
`
`CHaNDMNOOWaA
`
`LINOAIDNIVOdd
`
`VOddOL
`
`
`
`SARLLNAATAVLVEwaNONSONVELDNOLLVUNDIINOOMAN
`
`Ex.1007
`CISCO SYSTEMS, INC. / Page 11 of 24
`
`Ex.1007
`CISCO SYSTEMS, INC. / Page 11 of 24
`
`
`
`
`
`
`

`

`U.S. Patent
`
`Sep. 30, 2003
`
`Sheet 11 of 14
`
`US 6,628,653 B1
`
`Pol
`
`
`
`ATAVLSLONULSNI
`
`HLOWAa
`
`YONALAN
`
`OLO!
`
`qTTedVL
`
`
`
`OZOIWONLAN
`
`SLONULSNI
`
`DNININVaDOdda
`
`SIONVHDIDOTTAVLMAN||vodSADNVHOSACVOINMOGNdOLSOHVSHUNIAMALAGNddLSOH
`
`
`FONVNALNIVIALSOHScOl
`
`SdRLNaAAdNOLLVaadONOLLVUNDIFNOOMAN
`
` ODNIONVHO
`VOddOL
`
`AONVNELLNIVAHLOWAA
`
`
`
`YOLAdNIVOdA
`
`YALSIOda
`
`SHHO.LIMSNdOLSOH
`
`CHaNDIMNOOda
`
`LINOUDNIVOda
`
`Ex.1007
`CISCO SYSTEMS, INC. / Page 12 of 24
`
`Ex.1007
`CISCO SYSTEMS, INC. / Page 12 of 24
`
`
`
`
`
`
`
`
`

`

`U.S. Patent
`
`Sep. 30, 2003
`
`Sheet 12 of 14
`
`US 6,628,653 B1
`
`ONIODLNO
`
`SLAAOVd
`
`HOVAAELINI
`
`OTTT
`
`ANTI
`
`
`TOULNODATAVE
`YOLVNINTAOSIG
`
`ra
`
`ATEAVNNVADOdd
`ATEAVNANVADOdd
`
`ATaVL
`
`
`
`HOVAAAINI
`
`NOISIOAG
`
`O€ANITLOdNI
`
`
`ONINWOONI
`
`SDAAVd
`
`CVO
`
`Ex.1007
`CISCO SYSTEMS, INC. / Page 13 of 24
`
`Ex.1007
`CISCO SYSTEMS, INC. / Page 13 of 24
`
`
`
`
`
`
`
`

`

`U.S. Patent
`
`Sep. 30, 2003
`
`Sheet 13 of 14
`
`US 6,628,653 B1
`
`ÇI” OIH
`
`X JLSOH OL
`
`
`
`|
`
`X JLSOH
`
`09 I I
`
`Z£ZIJLSOH
`
`
`
`?HTI@HVJL NOISIO?HCI09 I I
`
`Ex.1007
`CISCO SYSTEMS, INC. / Page 14 of 24
`
`

`

`U.S. Patent
`
`Sep. 30, 2003
`
`Sheet 14 of 14
`
`US 6,628,653 B1
`
`NOISIOaG
`
`Oz
`
`0Scl
`
`LAIOVd
`
`Sudan
`
`
`
`
`ONILNOYLAAOWd
`0zc1ky1TOULNOO
`
`dTatHrowinooaay,ATavL|}Ove!
`ne!rol
`
`LSOH
`
`YOSSAOOUdAAUOM.LAN/NdO
`ONILOANNODMALNI
`HOVAAALNI
`
`JOLWNIATYOSIA
`
`O8IT
`
`LNO/NI
`
`Ex.1007
`CISCO SYSTEMS, INC. / Page 15 of 24
`
`Ex.1007
`CISCO SYSTEMS, INC. / Page 15 of 24
`
`
`

`

`1
`PROGRAMMABLE PACKET SWITCHING
`DEVICE
`
`US 6,628,653 B1
`
`BACKGROUND TO THE INVENTION
`1. Field of the Invention
`The invention relates to packet processing apparatus, to
`methods of reconfiguring a packet processor, and to methods
`of using a packet processor.
`2. Background Art
`It is known to transmit data in packets, each packet having
`header information as part of the packet, for use in proceSS
`ing the packet. The location and meaning of the header
`information within each packet is defined by a protocol.
`Most packet data transmission networks use multiple layers
`of protocols, in a hierarchy, according to the well known ISO
`model. Starting with the raw data from a top level
`application, each protocol adds its own header information
`to that added previously by preceding (higher) protocols. In
`the course of transmission through the network, the packet
`may pass through and be routed, forwarded Switched or
`processed according to information Stored in various parts of
`the packet header, depending on which level of the various
`levels of protocols, is being used.
`Conventionally, in a router or Switch operating according
`to a given one of the protocols, for each incoming packet,
`particular bits in the header relating to that given protocol
`are examined. The packet would be routed using those bits
`and passed to a chosen output port. Dedicated hardware is
`often used for Speed of operation.
`New types of protocol processing using different parts of
`header or payload information with different meanings, are
`always being proposed, at all different layers, to meet new
`requirements for e.g. quality of Service, billing functions,
`error handling, grouping of packets, prioritizing, and So on.
`However, development of appropriate hardware is time
`consuming, even when groups of programmable logic chips
`are used, for a number of reasons. Connections between
`Such chips must be defined and fixed, and changes made to
`the relatively complex logic which is often involved, will
`often have consequences to other parts of the logic, which
`are difficult to manage.
`Software simulations and verifications of hardware
`designs can be carried out, but often do not reveal all the
`problems of a real hardware implementation.
`Programmable chips for Switching packets of particular
`protocols are known, e.g. ethernet Switching chips, and
`protocol-specific dedicated router chips. Such router chips
`can extract destination information from a packet using
`hardcoded logic to achieve higher Speed or throughput. They
`use a routing table whose entries can programmed from an
`external host.
`A chipset produced by Obtek provides multiprotocol
`packet routing. A programmable filter examines the contents
`of each incoming packet to derive the buried protocols and
`retrieve Source and destination addresses. The filter passes a
`packet descriptor to a routing Systems control chip which
`manages memory allocation, input and output queues.
`This filter is programmable using a proprietary language,
`a rule-based language which enables a programmer to define
`actions to be taken according to recognition of bits in a
`packet. AS the filter's active Structure parses and processes
`the unknown incoming packet, it is capable of activating
`other processors (including a host) or special hardware (for
`very high performance) to perform concurrent and Support
`ing tasks.
`
`5
`
`1O
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`SUMMARY OF THE INVENTION
`It is an object of the invention to provide improved
`methods and apparatus.
`According to a first aspect of the invention there is
`provided a packet processing apparatus comprising:
`a programmable hardware discriminator for receiving
`incoming packets, and Selecting bits from any part of
`the incoming packets;
`a decision table for Storing information relating to how the
`packets are to be processed;
`programmable hardware Searching logic coupled to the
`decision table and to the discriminator for accessing the
`information in the table according to the Selected bits,
`and
`a packet handler coupled to the Searching logic, for
`processing the packets according to the result of the
`CCCSS.
`Advantages include the following:
`a) Providing programmable table Searching logic means
`that the Search algorithm and any corresponding table
`maintenance functions can be altered without neces
`Sarily altering the table contents, or the bit Selection
`hardware. This Separation of these functions can make
`it easier to develop and refine applications using new
`protocol components, Since changes to algorithms can
`be made more directly, at a lower level. It may enable
`applications to be developed to run faster, or use
`memory more efficiently for example. This was not
`possible in previous arrangements in which it was only
`possible to define the overall outputs of Such algorithms
`for given States of the bits selected from the packet,
`without being able to define how the selected bits were
`processed, or how a table of all the possible outputS is
`Searched.
`b) Since many networking processing tasks can be broken
`down into bit Selection and table Searching, this generic
`type of arrangement will Suit a wide variety of appli
`cations.
`c) Having the bit selection function programmable, and
`able to Select bits from any part of the incoming packets
`enables a wider range of operations using different
`protocols to be handled. This also makes it easier to
`interface with different input line interfaces, and
`enables Subsequent processing to be streamlined, if all
`the necessary information in the packet can be
`extracted in one step.
`d) Providing the table Searching logic in hardware enables
`the Speed of operation to be faster than equivalent
`Software, and makes it easier for the developer to
`resolve timing issues in the design.
`e) Developing logic directly in hardware can reduce the
`effort needed to convert a working prototype into a
`product ready for use in the field, and thus reduce the
`all important time to market for a product. The arrange
`ment could be used in networks which are designed to
`be reconfigurable in operation, e.g. active networks
`which may be reconfigured to Suit traffic conditions.
`f) Having a programmable Search algorithm enables the
`algorithm to be tailored to reduce Search times, and
`improve throughput, for example by using the mini
`mum number of bits or columns in the table necessary
`for Searching, according to the application.
`g) Having an explicit table can make it easier to maintain
`the contents of the table if it can be accessed directly.
`
`Ex.1007
`CISCO SYSTEMS, INC. / Page 16 of 24
`
`

`

`3
`This is in contrast to previous arrangements having an
`implicit table not accessible directly, but defined by
`mappings of output for a given State of bits Selected
`from the packet. If there are many Such mappings
`having the same output, then any change in that one
`output would require changing all the mappings which
`mention that output. Having direct access to the table
`enables one table entry to be changed which may be
`Simpler and quicker than changing multiple mappings
`in Such a case.
`Preferably the apparatus further comprises at least one
`packet output port, and the packet handler comprises a
`programmable hardware interpreting logic coupled to the
`packet output port, for interpreting the result of the access,
`to control the packet output port.
`An advantage of providing a programmable interpreting
`logic is that the reaction to the result of the table Search can
`be separately programmed, without necessarily altering
`other elements.
`Preferably the interpreting logic is arranged to react to
`both a match and a mismatch result.
`An advantage of being able to program action on a
`mismatch is that it broadens the range of applications to
`cover for example those in which a mismatch result can be
`used to alter the table, or to broadcast a packet. This is
`Significant for following the “route once, Switch many”
`principle, which means where a packet is received, if the
`table does not include its destination, it may be routed by for
`example a host CPU based routing algorithm, or by broad
`casting to neighbouring nodes, but thereafter, the table learns
`the destination, and the remaining packets can be Switched
`without the lengthy delay of using the CPU, or the ineffi
`ciency inherent in broadcasting.
`Preferably the programmable hardware Searching logic
`being arranged to be reprogrammable while in operation
`without interrupting the accessing of the information in the
`table.
`One advantage is that changes or upgrades can be made
`more easily, without needing to reinitialize the System. In
`field applications, maintenance or upgrades become easier,
`Since Service can be maintained without interruption.
`Furthermore, it makes the apparatus more Suitable for use as
`an active node in an active network, Since the node can be
`reconfigured more easily with less likelihood of disrupting
`Service.
`Preferably, the apparatus further comprises a table main
`tenance means coupled to the decision table to modify the
`decision table according to parameters derived from the
`incoming packets.
`An advantage of being able to modify the table from
`incoming packets is that the apparatus can better cover
`applications in which the table must be self learning. This
`feature is also significant for following the “route once,
`Switch many' principle. This applies whether the table
`maintenance means receives the derived parameters from
`the host CPU or whether it receives the packets and derives
`the parameters itself.
`Preferably the table maintenance means comprises pro
`grammable hardware logic for deriving the parameters from
`the incoming packet. An advantage of this, is that Such
`modifications can be made more quickly than if the host
`CPU makes the derivation.
`Preferably the apparatus further comprises at least one
`packet output port, and the packet handler comprises pro
`grammable hardware interpreting logic coupled to the
`packet output port, for interpreting the result of the access,
`to control the packet output port, the table maintenance
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 6,628,653 B1
`
`4
`means being coupled to the interpreting logic, and being
`arranged to modify the decision table on the basis of an
`output of the interpreting logic. An advantage of Such an
`arrangement is that Self learning of the table resulting for
`example from null Search results, can be carried out more
`quickly than if the host CPU needs to be invoked.
`Preferably the apparatus further comprises a host
`processor, the table maintenance means being coupled to the
`host processor and being arranged to modify the decision
`table on the basis of an output of the host processor. An
`advantage is the greater flexibility enabled by having the
`host CPU control the operation.
`Preferably the discriminator further comprises a compara
`tor for receiving the incoming packets, and comparing at
`least a portion of each packet with predetermined data, to
`identify particular types of packet from the incoming
`packets, the table maintenance means being coupled to the
`comparator and being arranged to modify the decision table
`on the basis of an output of the comparator. An advantage of
`being able to modify the table upon identification of a
`predetermined packet is that protocols which include pack
`ets carrying routing information for example, can be handled
`more quickly than if they must be passed to the host CPU.
`Preferably the discriminator further comprises a compara
`tor for receiving the incoming packets, and comparing at
`least a portion of each packet with predetermined data, to
`identify particular types of packet from the incoming
`packets, and process the packet according to its type. An
`advantage is that packets destined for the host CPU for
`example, can be routed there directly without the delay and
`additional processing overhead of a table Search.
`Preferably the programmable hardware Searching logic is
`arranged to access concurrently the information in the table
`relating to a plurality of the incoming packets. An advantage
`arising is an increase in throughput for what may otherwise
`be a bottleneck, particularly if the table is large.
`Preferably the packet handler further comprises a packet
`Switching fabric.
`Preferably the apparatus is part of a programmable packet
`filter.
`Preferably the apparatus is part of a programmable node
`in an active network.
`According to a further aspect of the invention there is
`provided a packet processing apparatus comprising:
`a programmable hardware discriminator for receiving
`incoming packets, and Selecting bits from any part of
`the incoming packets;
`a programmable hardware table processor coupled to the
`discriminator and comprising a decision table contain
`ing information relating to how the packets are to be
`processed, the processor further comprising hardware
`Searching logic for accessing the information in the
`table according to the Selected bits,
`a packet handler coupled to the table processor, for
`processing the packets according to the accessed infor
`mation; and
`and a means to modify the decision table according to
`parameters derived from the incoming packets. Accord
`ing to a further aspect of the invention there is provided
`a method of reconfiguring a packet processor, the
`packet processor comprising:
`a programmable hardware discriminator for receiving
`incoming packets, and Selecting bits from any part of
`the incoming packets;
`a decision table containing information relating to how
`the packets are to be processed; and
`
`Ex.1007
`CISCO SYSTEMS, INC. / Page 17 of 24
`
`

`

`S
`programmable hardware Searching logic coupled to the
`decision table and to the discriminator for accessing the
`information in the table according to the Selected bits,
`the method comprising the Steps of
`determining a column Structure for the decision table;
`determining which bits to Select from each packet;
`determining a correspondence between the Selected bits
`and the columns of the table;
`determining which bits are to be used in the Search;
`deriving a new configuration for the discriminator on
`the basis of the determination of which bits to select;
`deriving a new configuration for the Searching logic on
`the basis of the column structure, which bits are to be
`used in the Search, and the correspondence; and
`loading the new configurations into the Searching logic,
`and the discriminator respectively.
`According to a further aspect of the invention there is
`provided a method of reconfiguring a packet processor, the
`packet processor comprising:
`a programmable hardware discriminator for receiving
`incoming packets, and Selecting bits from any part of
`the incoming packets;
`a decision table containing information relating to how
`the packets are to be processed; and
`programmable hardware Searching logic coupled to the
`decision table and to the discriminator for accessing the
`information in the table according to the Selected bits,
`the method comprising the Steps of
`receiving incoming packets, and using the packet pro
`cessor to recognise an incoming packet which indi
`cates that the processor should be reconfigured;
`deriving from the incoming packet new configurations
`for at least one of the discriminator, the Searching
`logic, and the decision table.
`According to a further aspect of the invention there is
`provided a method of using the above mentioned packet
`proceSSOr apparatuS.
`Any of the preferred features may be combined, and
`combined with any aspect of the invention, as would be
`apparent to a perSon skilled in the art. Other advantages will
`be apparent to a person skilled in the art, particularly in
`relation to prior art other than that mentioned above.
`To show, by way of example, how to put the invention into
`practice, embodiments will now be described in more detail,
`with reference to the accompanying drawings.
`BRIEF DESCRIPTION OF THE DRAWINGS
`FIG. 1 shows a prior art arrangement,
`FIG. 2 shows processing apparatus according to an
`embodiment of the invention;
`FIG. 3 shows an example of the apparatus of FIG. 2;
`FIG. 4 shows an example of the programmable discrimi
`nator of FIG. 2 or 3;
`FIG. 5 shows an example of the programmable table
`Search/maintenance logic of FIG. 3;
`FIG. 6 shows an example of the interpreting logic of FIG.
`3;
`FIG. 7 shows method steps in a definition phase, a
`conversion phase, and an execution phase, related to the
`apparatus of FIG. 3;
`FIG. 8 shows another example of the apparatus of FIG. 2
`with dual redundant;
`FIG. 9 shows alternative reconfiguration possibilities fol
`lowing a reconfiguration indication contained in one of the
`incoming packets,
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 6,628,653 B1
`
`6
`FIG. 10 shows a number of reconfiguration possibilities
`following detection of a reconfiguration indication in an
`incoming packet, by the discriminator;
`FIG. 11 shows a number of reconfiguration possibilities
`initiated by an instruction from a remote network manage
`ment system to the host CPU;
`FIG. 12 shows an example of the apparatus of FIG. 2,
`Suitable for filtering or conditioning a stream of packets,
`FIG. 13 shows an example of applying the apparatus of
`FIG. 2 to an Ethernet Switch; and
`FIG. 14 shows an example of the apparatus of FIG. 2,
`applied to an IP router.
`DETAILED DESCRIPTION
`The term packet is intended to encompass any bounded
`data unit, such as ATM (Asynchronous transfer Mode) cells,
`frame relay frames, ethernet frames, T1 data units, and IP
`packets. The term programmable is intended to encompass
`hardware whose function can be changed by programming
`all or part of a chip, or by changing the contents of registers,
`or by changing control inputs.
`FIG. 1, Prior Art
`FIG. 1 shows in Schematic form a known arrangement
`based on a router using Obtek chips. The main components
`are the PSP 110 (Packet Script Processor), the RSC (Routing
`Systems Controller) 130, and the ETAC filter 120. Additional
`components shown, include a host CPU 100, an input
`interface 115, a Switch and output interface 140, and packet
`buffer memory 150. The input interface separates the packet
`headers, and feeds them to the ETAC filter. The ETAC filter
`can be programmed to identify protocols, addresses,
`Subnets, or implement firewalls, from packet headers. The
`routing System controller receives descriptorS produced by
`the ETAC filter, and manages memory allocation, input and
`output queues, and other network management taskS.
`The PSP controls the output of packets through the Switch
`140, and may make alterations to outgoing packets based on
`input received from the ETAC. The ETAC can be pro
`grammed to recognise predetermined bits or a signature of
`bits in the header, and map them into a descriptor, which
`indicates how the packet is to be processed. This descriptor
`is sent to the RSC. Furthermore, although there is a pro
`gramming language to enable a developer to Specify a
`mapping, there is no way to program how the mapping is
`achieved within the chip. There is no explicit table, but the
`mappings result in an implicit table. Thus Self learning of
`table elements or any other action as a consequence of
`mismatches apparently cannot be programmed.
`Furthermore, with no explicit table, table maintenance is
`more difficult.
`FIG. 2-Embodiment of the Invention
`FIG. 2 shows the principal elements in Schematic form.
`A programmable discriminator 200 selects bits from
`incoming packets. These are used by programmable table
`search logic 220, to access a decision table 230. The results
`of this access are ultimately used by the packet handler 240
`for processing packets. Some examples of how the indi
`vidual elements can be implemented, and examples of how
`the arrangement can be used in various applications, will be
`described below. The packet handler may be exemplified by
`programmable interpreting logic as described below, or by
`other circuitry for passing the table output directly to a
`packet Switch or packet filter for example. In the case of this
`other circuitry, there may be no need for it to be
`programmable, and the table output may indicate directly an
`
`Ex.1007
`CISCO SYSTEMS, INC. / Page 18 of 24
`
`

`

`7
`output port for the packet, or a go/no go instruction, also
`described in more detail below.
`FIG. 3-Example of the Embodiment of FIG. 2
`FIG. 3 shows the programmable discriminator 200, the
`programmable table Search/maintenance logic 220 and the
`decision table 230 of FIG. 2, and in addition shows other
`surrounding elements. Line cards 300 with input packet
`bufferS handle physical and data link layer protocols, and
`feed incoming packets to the programmable discriminator.
`These line cards will make the necessary conversion from
`whichever physical hardware is used for the data transmis
`Sion. Packets are also fed directly to packet buffers 330,
`where they may be queued, ready for Output on appropriate
`output line cards illustrated as 340. In practice, the output
`and input line card functions are usually merged onto a
`Single card.
`A host CPU 320 is connected to the principal elements via
`an interface 325, for the purpose of managing and main
`taining these elements, and for providing high level appli
`cation functions, depending on the purpose of the apparatus.
`The apparatus as shown in FIG. 3 would be configurable
`for use as a packet filter, or a bridge between networks, or
`as a router, for example. It could be used for developing new
`configurations for the hardware, to develop new protocol
`components, or new application features. In principle, the
`Same hardware configuration could then be taken and used
`in the field, to minimize the time to market.
`Connected to the programmable table Search/maintenance
`logic is a programmable interpreting logic 310 which is for
`interpreting the results of the table search. This element will
`be described in more detail below, with reference to FIG. 6.
`Outputs of this logic are shown going back to the program
`mable table Search/maintenance logic, to the packet buffers
`310, and to the programmable discriminator 200 as well as
`to the host CPU. This is one of the ways of making the whole
`System reconfigurable on the basis of incoming packets. For
`example, depending on the results of the Search, the inter
`preting logic may trigger adaptation or Switching to particu
`lar destination output line cards, of packets in the packet
`buffers 330. Alternatively, registers or control lines in the
`programmable discriminator or the programmable table
`Search/maintenance logic may be changed, to change or
`extend the operation of these blocks. Furthermore, the
`interpreting logic can make changes in the decision table, via
`the table maintenance logic.
`The host CPU 320 may perform housekeeping tasks for
`other elements, and, in Service, it may be connected via other
`parts (not shown) to remote centralized network manage
`ment Systems. Reconfiguration in the field may be triggered
`by instructions Sent from Such remote Systems to the host
`CPU. Alternatively, the host CPU may monitor local con
`ditions and initiate reconfiguration on that basis.
`When being used in experimental Set-ups, a separate
`general purpose CPU (not shown) with a general purpose
`operating System may be used to run compilers for devel
`oping programs for the various programmable elements in
`the apparatus. Alternatively, Such development could be
`carried out remotely and compiled programs downloaded to
`the host CPU across the network. In both cases, the host
`CPU could carry out authentication, verification and
`validation, before Such programs are downloaded to the
`programmable elements.
`The programmable hardware elements, the discriminator
`200, the table Search/maintenance logic, and the interpreting
`logic, may be implemented in any form of programmable
`hardware. Preferably it should be electronically program
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 6,628,653 B1
`
`8
`mable hardware, Such as field programmable gate arrayS
`(FPGA). Alternatives would include ot

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