SE516703C2 - Device, system and method related to routing of packets in a data communication network - Google Patents

Device, system and method related to routing of packets in a data communication network

Info

Publication number
SE516703C2
SE516703C2 SE9902175A SE9902175A SE516703C2 SE 516703 C2 SE516703 C2 SE 516703C2 SE 9902175 A SE9902175 A SE 9902175A SE 9902175 A SE9902175 A SE 9902175A SE 516703 C2 SE516703 C2 SE 516703C2
Authority
SE
Sweden
Prior art keywords
cache
address
addresses
tree
search tree
Prior art date
Application number
SE9902175A
Other languages
Swedish (sv)
Other versions
SE9902175D0 (en
SE9902175L (en
Inventor
Joachim Stroembergson
Original Assignee
Ericsson Telefon Ab L M
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ericsson Telefon Ab L M filed Critical Ericsson Telefon Ab L M
Priority to SE9902175A priority Critical patent/SE516703C2/en
Publication of SE9902175D0 publication Critical patent/SE9902175D0/en
Priority to PCT/SE2000/001162 priority patent/WO2000077984A1/en
Priority to AU58584/00A priority patent/AU5858400A/en
Publication of SE9902175L publication Critical patent/SE9902175L/en
Publication of SE516703C2 publication Critical patent/SE516703C2/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/742Route cache; Operation thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The present invention relates to an arrangement (20), system and a method respectively for forwarding data packets through a routing device including router storing means (23) including a digital search tree, a trie (25), the searching of which comprises traversion the tree from the root to a leaf through a number of nodes. In addition to the trie (25) a cache memory (24) is provided for storing of a number of indices to the leaves containing next-hop addresses. For looking-up a next-hop address for an incoming packet, a search is performed at least in the cache memory (24), and in absence of a cache hit, a search is also performed in the trie (25). This can be done in parallel or in series.

Description

20 25 30 516 var, so» nu 2 använda en central processor soul betjänar alla ingångsportarna till en routinganordning för att utföra adressuppslagning. Ett startpaket tas då emot i processorn, som också kallas en vidarebefordringsmaskin, som använder destinationsadressen för att bestämma vilken utgångsport som är relevant för paketet och dess nästa hopp-(next-hop) adress. 20 25 30 516 var, so »nu 2 use a central processor soul serves all the input ports of a routing device to perform address lookup. A start packet is then received in the processor, also called a forwarding machine, which uses the destination address to determine which output port is relevant to the packet and its next-hop address.

I en routinganordning i vilken “next-hop” information lagras i en konventionell tabell, måste det finnas något slag av mappning mellan en inkommande IP-adress och minnesadressen eller det index där dess nästa-hopp information lagras. För att kunna utföra en IP-adressen till en korrekt adressuppslagning, transformeras minnesadress vilket därpå följes av en uppslagning i tabellen.In a routing device in which "next-hop" information is stored in a conventional table, there must be some kind of mapping between an incoming IP address and the memory address or index where its next-hop information is stored. In order to perform an IP address to a correct address lookup, memory address is transformed which is then followed by a lookup in the table.

För att snabba upp uppslagningen är det känt att använda så kallade digitala sökträd som lagringsmedel i många kända anordningar. Sådana sökträd kallas också “tries” (jämför eng. retrieval). I en trie-baserad routinganordning finns det inte motsvarande slag av mappning, som hänvisats till ovan, mellan IP- adress och platsen för lagring av nästa-hopp informationen. I stället utförs en analys av' den inkommande IP-adressen i flera steg. Varje steg ger en ny nod i det digitala sökträdet i vilket löv svarar emot poster i en fil. Sökning fortgår ifrån roten till ett löv. Den (varje) nod analyseras därpå så att det kan fastställas vilket av dess barn som är nästa steg i riktning mot slutnoden (jämför löv så som hänvisats till ovan) som innehåller nästa hopp-informationen. Detta betyder att träd gås igenom nod för nod och i varje steg måste informationen hämtas. Konsekvensen därav blir att en uppslagning för att hitta “next-hop” information involverar en genomgång av det digitala sökträdet vilket tekniskt betyder att minnesaccesser måste åtskilliga göras. För routinganordningar där lagringsmedlen uteslutande består av tabeller, kommer nästa-hopptabellerna att bli mycket stora. För 10 15 20 25 30 516 ”703 fë-ïïf" ' 3 att kunna utföra en snabb uppslagning lagras sådana tabeller i snabba och dyra minnen. För att ytterligare kunna öka prestandan för en routinganordning, förses minnena med ännu snabbare, fullt acossiativa cacheminnen så att en kopia av en nyligen hittad nästa-hopp information kan lagras däri. Ett cacheminne är ett höghastighetsminne som lagrar data som datorn kan accessa mycket snabbt. Det kan vara en oberoende höghastighetslagringsanordning eller också kan det utgöra en viss sektion av ett huvudminne.To speed up the search, it is known to use so-called digital search trees as storage means in many known devices. Such search trees are also called "tries" (compare retrieval). In a tri-based routing device, there is no corresponding type of mapping, as referred to above, between the IP address and the location for storing the next-hop information. Instead, an analysis of the incoming IP address is performed in several steps. Each step returns a new node in the digital search tree in which leaves correspond to entries in a file. Search continues from the root to a leaf. The (each) node is then analyzed so that it can be determined which of its children is the next step towards the end node (compare leaves as referred to above) which contains the next jump information. This means that trees are passed through node by node and in each step the information must be retrieved. The consequence of this is that a look-up to find “next-hop” information involves a review of the digital search tree, which technically means that memory accesses must be done several times. For routing devices where the storage means consists exclusively of tables, the next-jump tables will be very large. In order to be able to perform a quick look-up, such tables are stored in fast and expensive memories. In order to further increase the performance of a routing device, the memories are provided with even faster, fully acoustic caches so that that a copy of a recently found next-hop information can be stored therein.A cache memory is a high-speed memory that stores data that the computer can access very quickly.It can be an independent high-speed storage device or it can be a certain section of a main memory.

Detta fungerar eftersonl det finns en temporär' platsförbindelse mellan minnesaccessen, eller med andra ord, om nästa- hoppinformationen för en adress har slagits upp, är sannolikheten stor att samma information kommer att behövas igen inom den närmaste framtiden. Skälet till detta är att ett IP-paket sällan sänds ensamt utan som en del av ett flöde av flera paket.This works because there is a temporary 'location' connection between the memory access, or in other words, if the next hope information for an address has been looked up, it is very likely that the same information will be needed again in the near future. The reason for this is that an IP packet is rarely sent alone but as part of a flow of several packets.

I routinganordningar i vilka lagringsmedlen implementeras som ett digitalt sökträd, eller en trie, såsom hänvisats till ovan, Sökträdet självt kan vara komprimerat på olika sätt och det kan göras så litet att det representeras tabellen genom ett sökträd. kommer att finnas plats för det i den interna datacachen i en kommersiell processor. Resultatet därav är att en processor kan snabbt. Emellertid alla minnesacesser för att hitta noden med nästa-hopp-informationen göra nästa-hoppuppslagningar måste utföras. Varje sådan minnesacess är emellertid krävande, och eftersom ett stort antal minnesacesser kan behövas för varje ny adress, begränsar detta påtagligt prestanda för en routinganordning. Olika triebaserade routinganordningar är kända, se exempelvis “Small Forwarding Tables for Fast Routing Lookups”, 1997:02, Department of Computer av Mikael Degermark et al, Research Report Luleå University of Technology, Science and Electrical Engineering, “Fast Division of Computer Communication och IP Routing with LC-Tries”, Karlsson, Dr Dobb's Journal, augusti 1998, sidorna 70-75. av Stefan Nilsson, Gunnar 10 15 20 25 30 516 703 4 I allmänhet är flera sätt att använda komprimeringstekniksalgoritmer applicerade på routing kända.In routing devices in which the storage means are implemented as a digital search tree, or a trie, as referred to above, the search tree itself may be compressed in various ways and it may be made so small that the table is represented by a search tree. there will be room for it in the internal data cache of a commercial processor. The result is that a processor can quickly. However, all memory accesses to find the node with the next-jump information do next-jump lookups must be performed. However, each such memory access is demanding, and since a large number of memory accesses may be required for each new address, this significantly limits the performance of a routing device. Various tri-based routing devices are known, see for example “Small Forwarding Tables for Fast Routing Lookups”, 1997: 02, Department of Computer by Mikael Degermark et al, Research Report Luleå University of Technology, Science and Electrical Engineering, Fast Division of Computer Communication and IP Routing with LC-Tries ”, Karlsson, Dr Dobb's Journal, August 1998, pages 70-75. by Stefan Nilsson, Gunnar 10 15 20 25 30 516 703 4 In general, several ways of using compression technique algorithms applied to routing are known.

Emellertid tillhandahåller inte någon av dem en tillfredsställande lösning som möjliggör en snabb och effektiv uppslagning av nästa- hopp-information.However, none of them provide a satisfactory solution that enables fast and efficient retrieval of next-jump information.

RE DOGÖRELSE FÖR UPPFINNINGEN Vad som behövs är därför en anordning för att vidarebefordra datapaket genom en routinganordning, som har en hög prestanda.DISCLOSURE OF THE INVENTION What is needed, therefore, is a device for transmitting data packets through a high performance routing device.

Speciellt behövs en anordning genom vilken uppslagningen av nästa effektivt snabbt sätt, speciellt så att antalet nästa hopp-adresser som kan hittas per hopp-adresser kan utföras på ett och tidsenhet blir högt och speciellt högre än med hitintills kända anordningar. En anordning behövs också genom vilken ett paket kan transporteras på ett snabbt och säkert sätt genom en nod i ett IP- baserat nät. Speciellt behövs en anordning genom vilken antalet minnesacesser kan reduceras, och således höja prestanda. En triebaserad routinganordning behövs också som uppfyller ovan nämnda mål. Speciellt behövs en anordning av ovan nämnt slag som är billig och enkel att bygga.In particular, a device is needed by which the look-up of the next efficient fast method, especially so that the number of next hop addresses that can be found per hop addresses can be performed on one and unit of time becomes high and especially higher than with hitherto known devices. A device is also needed through which a packet can be transported in a fast and secure way through a node in an IP-based network. In particular, a device is needed through which the number of memory accesses can be reduced, and thus increase performance. A tri-based routing device is also needed that meets the above mentioned goals. A device of the above-mentioned type which is cheap and easy to build is especially needed.

Ett förfarande för att vidarebefordra routinganordning behövs också genom vilken ovan nämnda mål kan eller ett ett datapaket genom en uppfyllas. Dessutom behövs ett kommunikationssystem, nätverk av kommunikationssystem, som inkluderar antal routinganordningar, genom vilket ovan nämnda mål kan uppfyllas. tillhandahålles datapaket inom ett paketkopplat nät, eller mellan nät, genom en Därför en anordning för att vidarebefordra routinganordning, sonl innefattar ett antal ingångs-, respektive utgångsportar och en vidarebefordringsmaskin som innefattar routerlagringsmedel som inkluderar ett digitalt sökträd, också 10 15 20 25 30 kallat en trie. Sökningen i en sådan trie innefattar genomgång av trädet ifrån roten till ett löv genom ett antal noder. Styrmedel, exempelvis en vidarebefordringsmaskin, är vilka att anordnade, inkluderar en sökmaskin för styra adressuppslagning för inkommande paket.A method of forwarding the routing device is also needed by which the above-mentioned goal can be met or a data packet through one is fulfilled. In addition, a communication system, network of communication systems, is needed, which includes a number of routing devices, through which the above-mentioned goals can be met. A data packet is provided within a packet-switched network, or between networks, by a trie. The search in such a trie involves traversing the tree from the root to a leaf through a number of nodes. Control means, for example a forwarding machine, which are to be provided, include a search engine for controlling address lookup for incoming packets.

Ett cacheminne är anordnat utöver det digitala sökträdet. I cachen finns ett antal index till löven i sagda trie för ett antal nästa hopp-adresser. För att slå upp en nästa-hopp-adress för ett inkommande paket, utförs en sökning åtminstone i cacheminnet.A cache is arranged in addition to the digital search tree. In the cache there are a number of indexes to the leaves in said trie for a number of next jump addresses. To look up a next-hop address for an incoming packet, a search is performed at least in the cache.

Styrmedel används för att ta emot inkommande adresser, till exempel IP-adresser, och för att initiera en uppslagning av motsvarande nästa-hopp-adress, vilket innefattar en uppslagning i cacheminnet och en genomgång av det digitala sökträdet (om erforderligt).Control means are used to receive incoming addresses, for example IP addresses, and to initiate a look-up of the corresponding next-hop address, which includes a look-up in the cache and a review of the digital search tree (if necessary).

Speciellt initieras en tranversering av ett digitalt sökträd väsentligen samtidigt med uppslagningen i cacheminnet. Alternativt det sökträdet om ett att initieras bara traverseringen av digitala uppslagningen i cacheminnet inte lyckas, dvs om adressen med till Detta antingen görs sökningen i det digitala sökträdet parallellt index nästa-hopp-adressen ej hittas. betyder med det och uppslagningen i cacheminnet eller också så initieras den om blir cacheträff. Om cacheuppslagningen utförs inte någon sökningen i trien parallellt, traverseringen av sökträdet så snart som det blir en träff i väsentligen avbryts cachen.In particular, a transversal of a digital search tree is initiated substantially simultaneously with the lookup in the cache. Alternatively, the search tree if one is initiated only the traversal of the digital lookup in the cache does not succeed, ie if the address with to This either the search is done in the digital search tree parallel index the next-jump address is not found. means with it and the lookup in the cache or it is initialized if it becomes a cache hit. If the cache lookup does not perform any search in the trien in parallel, the traversal of the search tree as soon as there is a hit in the cache is essentially interrupted.

Speciellt lagras index till löven för ett antal av de mest nyligen uppslagna nästa-hopp-adresserna i cacheminnet. Index-cachen bildas företrädesvis på ett sådant sätt att de minst nyligen använda adresserna i cachen sucessivt ersätts av mera nyligen uppslagna ett alternativt definieras ett adresser. I utföringsexempel n u a nu no nøoøwu v 10 15 20 25 30 516 703 'I 6 tidsintervall för ersättande av adresser i cacheminnet så att adresser som inte har använts under ett dylikt intervall ersätts av nya adresser. Detta kan göras pà olika sätt, med användning av olika prioritetskrav och så vidare. kortare än för en cache-access sökträdet. accesstiden det Speciellt är en minnesaccess i digitala Cachen kan vara en direktmappande cache, en “set”-associativ cache eller en fullt associativ cache.In particular, indexes to the leaves for a number of the most recently searched next-jump addresses are stored in the cache. The index cache is preferably formed in such a way that the least recently used addresses in the cache are successively replaced by more recently opened ones or an address is defined. In exemplary embodiments n u a nu no nøoøwu v 10 15 20 25 30 516 703 'In 6 time intervals for replacing addresses in the cache so that addresses which have not been used during such an interval are replaced by new addresses. This can be done in different ways, using different priority requirements and so on. shorter than for a cache access search tree. access time it In particular, a memory access in the digital cache can be a direct mapping cache, a "set" associative cache or a fully associative cache.

I ett speciellt fördelaktigt utförande är anordningen implementerad som ett FPGA-(Field Programmable Gate Array) chip. I en alternativ implementering är anordningen implementerad som ett ASIC (Application Specification Integrated Circuit) chip.In a particularly advantageous embodiment, the device is implemented as an FPGA (Field Programmable Gate Array) chip. In an alternative implementation, the device is implemented as an ASIC (Application Specification Integrated Circuit) chip.

Lagringsmedlen, dvs det digitala sökträdet, kan implementeras som en digital trädstruktur Alternativt som är lagrad “on-chip”. lagras den “off-chip”.The storage means, ie the digital search tree, can be implemented as a digital tree structure. Alternatively, which is stored "on-chip". the “off-chip” is stored.

Speciellt är cacheminnet anordnat “on-chip”.In particular, the cache memory is arranged "on-chip".

I en speciell implementering innefattar anordningen en IP-router, dvs en Internet router. Speciellt innefattar routingtabellen som består av ett digitalt sökträd en komprimerad datastruktur. Det en Patricia-trie digitala sökträdet kan innefatta en LC-trie, eller någon annan lämplig, känd trie.In a special implementation, the device comprises an IP router, ie an Internet router. In particular, the routing table consisting of a digital search tree comprises a compressed data structure. The Patricia trie digital search tree may include an LC trie, or any other suitable known trie.

-I en synnerligen fördelaktig utföringsform slås ett antal adresser upp parallellt. Detta kan också implementeras genom något slag av pipe-line-förfarande.In a particularly advantageous embodiment, a number of addresses are displayed in parallel. This can also be implemented by any kind of pipe-line procedure.

Därför tillhandahålles också ett förfarande för att vidarebefordra paket genom en routinganordning i ett paketkopplat datanät.Therefore, a method of forwarding packets through a routing device in a packet-switched data network is also provided.

Routinganordningen inkluderar styrmedel (en vidarebefordrings- oc-ø-n 10 15 20 25 30 516 703 u oas n. ett sökträd. Förfarandet inkluderar stegen att lagra index till nästa- maskin) och routerlagringsmedel som innefattar digitalt hopp-adresserna för ett antal datapaketsadresser i ett cacheminne; använda cache-minnet och en traversering av det digitala sökträdet för att finna ett index till nästa-hopp-adressen eller det löv som innehåller nästa-hopp-adressen; avbryta traverseringen av det digitala sökträdet om det blir en träff i cachen, annars fortsätta med traverseringen av det digitala sökträdet tills nästa-hopp- adressen hittas. Därpå följer stegen att hämta informationen om nästa-hopp-adressen och vidarebefordra paketet till den relevanta utgångsporten med användning av den funna nästa-hopp- informationen.The routing device includes control means (a forwarding and / or island 10 15 20 25 30 516 703 u oas n. A search tree. The method includes the steps of storing indexes to the next machine) and router storage means comprising digitally the jump addresses of a number of data packet addresses in a cache; use the cache and a traversal of the digital search tree to find an index to the next-jump address or the leaf that contains the next-jump address; interrupt the traversal of the digital search tree if there is a hit in the cache, otherwise continue traversing the digital search tree until the next jump address is found. This is followed by the steps of retrieving the next-jump address information and forwarding the packet to the relevant exit port using the next-jump information found.

Speciellt inkluderar förfarandet stegen att först utföra en uppslagning' i cache-minnet, och omv det inte blir någon cache- träff, initiera en traversering av det digitala sökträdet. I en att samtidigt eller parallellt utföra en uppslagning i cacheminnet och alternativ implementering inkluderar förfarandet stegen initiera en traversering av' det digitala sökträdet och avbryta traverseringen av det digitala sökträdet om det blit en cache- träff, och annars fortsätta med traverseringen tills det löv som innehåller nästa-hopp-adressen hittas i sökträdet. Förfarandet inkluderar speciellt steget att, när en nästa-hopp-adress hittas genom traverseringen av det digitala sökträdet, lagra indexet till sagda nästa-hopp-adress i cacheminnet, exempelvis ersättande den minst nyligen acessade adressinformationen om det inte finns någon ledig plats i cachen med indexet till den mest nyligen använda adressinformation.In particular, the method includes the steps of first performing a lookup 'in the cache, and if there is no cache hit, initiating a traversal of the digital search tree. In performing a cache memory simultaneously and in parallel and alternative implementation, the method includes the steps of initiating a traversal of the digital search tree and interrupting the traversal of the digital search tree if it has become a cache hit, and otherwise continuing with the traversing until the leaf containing the next-hop address is found in the search tree. The method includes in particular the step of, when a next-hop address is found by traversing the digital search tree, storing the index to said next-hop address in the cache, for example replacing the least recently accessed address information if there is no free space in the cache with the index to the most recently used address information.

Enligt olika utföranden är cacheminnet exempelvis en direktmappande cache, en “set” associativ eller en fullt associativ indexcache anordnad “on-chip” för en FPGA eller en ASIC använd för implementeringen av routinganordningen. Vidare 10 15 20 25 30 s1s 703 on un... n 8 kännetecknas förfarandet genom steget att slà upp ett antal nästa- hopp-adresser väsentligen parallellt (eller i enlighet med ett pipe-line förfarande).According to various embodiments, the cache memory is, for example, a direct mapping cache, a "set" associative or a fully associative index cache arranged "on-chip" for an FPGA or an ASIC used for the implementation of the routing device. Furthermore, the method is characterized by the step of looking up a number of next-hop addresses substantially in parallel (or in accordance with a pipe-line method).

Ett paketdatakommunikationsystem anges också vilket innefattar ett antal routinganordingar inom ett nät eller för att förbinda nät, där varje routinganordning innefattar ett antal ingàngs respektive utgångsportar, styrmedel med ett antal vidarebefordrings- maskiner, router-lagringsmedel inkluderande ett digitalt sökträd eller en trie som innehåller nästa-hopp-adress-information_ Åtminstone ett antal av routinganordningarna innefattar ett cacheminne för att lagra index till ett antal nästa-hopp-adresser som finns i det digitala sökträdet. För att hitta en nästa-hopp- adress, utförs en uppslagning åtminstone i cacheminnet.A packet data communication system is also indicated which comprises a number of routing devices within a network or for connecting networks, each routing device comprising a number of input and output ports, control means with a number of forwarding machines, router storage means including a digital search tree or a trio containing the next hop address information_ At least a number of the routing devices include a cache memory to store indexes to a number of next hop addresses contained in the digital search tree. To find a next jump address, a lookup is performed at least in the cache.

Speciellt initieras en traversering av det digitala sökträdet väsentligen simultant med där Alternativt uppslagningen i träff i initieras en traversering av det digitala sökträdet bara om det cacheminnet, traverseringen avbryts vid en cachen. inte blir någon cacheträff.In particular, a traversal of the digital search tree is initiated substantially simultaneously with where. does not become a cache hit.

KORTFATTAD FIGURBESKRIVNING Uppfinningen kommer i det följande att ytterligare beskrivas, på ett icke begränsande sätt, och med hänvisning till bifogade figurer i vilka: FIG 1 är en förenklad, schematisk illustration av en anordning enligt uppfinningen, FIG 2 visar lagring av noder/ett löv i ett minne, FIG 3 är en förenklad illustration av en trie, 10 15 20 25 30 516 703 9 FIG 4 illustrerar mera i detalj ett utförande av en anordning enligt uppfinningen, FIG 5 visar ett annat utförande av en anordning enligt uppfinningen, FIG 6 är ett flödesdiagram som schematiskt illustrerar uppslagningen av en nästa-hopp-adress enligt uppfinningen, FIG 7 är ett flödesdiagram som visar trie-minnesaccess, och FIG 8 är ett flödesdiagram som illustrerar hur en nästa-hopp- adress hittas med användning av en trie och en cache enligt uppfinningen.BRIEF DESCRIPTION OF THE DRAWINGS The invention will be further described in the following, in a non-limiting manner, and with reference to the accompanying figures in which: Fig. 1 is a simplified, schematic illustration of a device according to the invention, Fig. 2 shows storage of nodes / a leaf in a memory, FIG. 3 is a simplified illustration of a trie, FIG. 4 illustrates in more detail an embodiment of a device according to the invention, FIG. 5 shows another embodiment of a device according to the invention, FIG. 6 is a flowchart schematically illustrating the look-up of a next-hop address according to the invention, Fig. 7 is a flowchart showing tri-memory access, and Fig. 8 is a flowchart illustrating how a next-hop address is found using a trie and a cache according to the invention.

DETALJERAD BESKRIVNING AV UPPFINNINGEN Fig. 1 beskriver en anordning enligt uppfinningen på ett förenklat sätt. Enligt uppfinningen beaktas den temporära lokaliseringen mellan paketen även om en triebaserad routinganordning används.DETAILED DESCRIPTION OF THE INVENTION Fig. 1 describes a device according to the invention in a simplified manner. According to the invention, the temporary location between the packets is considered even if a tri-based routing device is used.

Det antas här att paket inkommmer till styrmedel 2. I detta speciella utföringsexempel antas att paketen är så kallade IP- paket (för Internet) som har en IP-adress. Uppslagningen av nästa- hopp-information svarande mot ett inkommande pakets IP-adress styrs av styrmedlen 2 vilka, i detta utföringsexempel, simultant initierar en traversering av det digitala sökträdet (trie) 5 i routerlagringsmedlen 3 och en uppslagning i indexcachen 4. Om en av raderna i cachen 4 innehåller den relevanta IP-adressen, har det redan gjorts en framgångsrik uppslagning i trie 5 (nyligen).It is assumed here that packets are received by control means 2. In this special exemplary embodiment, it is assumed that the packets are so-called IP packets (for the Internet) which have an IP address. The look-up of next-hop information corresponding to the IP address of an incoming packet is controlled by the control means 2 which, in this exemplary embodiment, simultaneously initiate a traversal of the digital search tree (trie) 5 in the router storage means 3 and a look-up in the index cache 4. If one of the rows in cache 4 contain the relevant IP address, a successful lookup has already been performed in trie 5 (recent).

Det är då möjligt att avbryta traverseringen av trie 5. Med användning av det index som svarar mot den relevanta IP-adressen i cacheminnet 4, kan informationen som finns i lövet direkt hämtas ifrån trie 5. 10 15 20 25 30 516 703 10 Om det emellertid inte finns någon sådan rad som svarar emot den trie 5.It is then possible to interrupt the traversal of trie 5. Using the index corresponding to the relevant IP address in the cache 4, the information contained in the leaf can be retrieved directly from trie 5. 10 15 20 25 30 516 703 10 If however, there is no such line corresponding to the trie 5.

Indexet till lövet relevanta IP-adressen, fortsätter traverseringen av Traverseringen avslutas när lövet har hittats. (som innehålles i ett lövs föräldranod) lagras tillsammans med den inkommande IP-adressen i cachen 4, företrädesvis genom att ersätta den minst nyligen använda raden (adressen) i cachen.The index to the leaf relevant IP address, continues the traversing of The traversing ends when the leaf has been found. (which is contained in a leaf's parent node) is stored together with the incoming IP address in the cache 4, preferably by replacing the least recently used line (address) in the cache.

En framgångsrik traversering av det digitala sökträdet kräver åtminstone en minnesaccess. Eftersom. minnet, här routerlagringsmedel 3, antas vara mycket långsammare än cachen, kräver en enda trieminnesaccess fler cykler än en uppslagning i cachen 4. En framgångsrik uppslagning i cache 4 får därför som en följd. att den totala tiden räknad i cykler för att finna den önskade nästa-hopp-informationen kommer att reduceras väsentligt.Successful traversal of the digital search tree requires at least one memory access. Since. the memory, here router storage means 3, is assumed to be much slower than the cache, a single file access requires more cycles than a lookup in the cache 4. A successful lookup in the cache 4 therefore results. that the total time counted in cycles to find the desired next-jump information will be significantly reduced.

Generellt är det inte tillräckligt med en ndnnesaccess för att hitta ett löv i trädet utan det kräver flera minnesaccesser.In general, one ndnnesaccess is not enough to find a leaf in the tree, but it requires several memory accesses.

Fig. 2 illustrerar mycket schematiskt ett digitalt sökträd eller en trie 5' med ett antal noder l,2,3,4 och ett löv 5. Figuren illustrerar också att noderna och lövet i trie 5' kan lagras i cache 4' på ett sätt som är oberoende av läget, dvs nod 1 lagrad överst följd av nod 3 medan lövet lagras i mitten följt av noderna 4 respektive 2 svarande mot minnesplatser mh qnh. en trie kan Fig. 3 är en schematiskt illustration över hur traverseras. “Trie” kommer ifrån “retrieval” och den innefattar ett binärt, digitalt sökträd i vilket bitmönstret för adresserna traverseras och i vilket en eller flera bitar ger vilket barn till en given nod som ska väljas för att man ska komma till slutnoden, eller lövet. Fig. 3 visar hur, med start ifrån toppen av trädet och genom att undersöka bitarna som innehålles i IP-adressen från vänster till höger i varje nod, antingen väljes route 0 eller route 1 nedåt i trädet. När en nod som inte har några undernoder 10 15 20 25 30 516 703 .nu o; 11 undersöks om resten av IP- Om detta är fallet, har vägen till det Det antas här att IP-adressen är 0010. har nåtts, också betecknad ett löv, adressen finns i lövet. korrekta lövet hittats.Fig. 2 very schematically illustrates a digital search tree or a trie 5 'with a number of nodes 1, 2,3,4 and a leaf 5. The figure also illustrates that the nodes and the leaf in trie 5' can be stored in cache 4 'in a way which is independent of the position, ie node 1 stored at the top followed by node 3 while the leaf is stored in the middle followed by nodes 4 and 2 respectively corresponding to memory locations mh qnh. a trie can Fig. 3 is a schematic illustration of how to traverse. "Trie" comes from "retrieval" and it includes a binary, digital search tree in which the bit pattern for the addresses is traversed and in which one or more bits give which child to a given node to select to get to the end node, or the leaf. Fig. 3 shows how, starting from the top of the tree and by examining the bits contained in the IP address from left to right in each node, either route 0 or route 1 down in the tree is selected. When a node that has no sub-nodes 10 15 20 25 30 516 703 .nu o; 11 is examined if the rest of the IP- If this is the case, the path to it It is assumed here that the IP address is 0010. has been reached, also denoted a leaf, the address is in the leaf. correct leaf found.

Fig. 4 visar ett utföringsexempel av uppfinningen innefattande en anordning 20 i vilken paket inkommer över nätgränssnitt NIC1,m,NICm, l1,m,lm svarar mot ingàngsporten med samma nummer. Ett inkommet paket med adress x inges via databussar till styrmedel 22 som innefattar en sökmaskins-, 26A uppslagning för att finna nästa-hopp-adressen och utgångsport (utgång NIC) begärs.Fig. 4 shows an embodiment of the invention comprising a device 20 in which packets received via network interfaces NIC1, m, NICm, l1, m, lm correspond to the input port with the same number. An incoming packet with address x is submitted via data buses to control means 22 which includes a search engine, 26A lookup to find the next hop address and exit port (output NIC) is requested.

Sökmaskinen 26 utför då en uppslagning i cacheminnet 24 och i trieminnet 23 som innehåller det digitala sökträdet 25. Detta kan göras i serie eller parallellt. Nyligen uppslagna adressindex finns på olika platser i cacheminnet 24 och de behöver inte vara sorterade så redan diskuterats När den relevanta SOIII Ovan . informationen, dvs nästa-hopp-adressen och utgångsporten har hittats, antingen i cachen 24 eller i trien 25, och hämtats, sänds paketet ut på rätt NIC. Så som redan diskuterats ovan, avbryts en uppslagning i trie 25, om en sådan har initierats, i fallet av en cacheträff, dvs om adressen med medföljande index till ett löv i trien har hittats i cachen. Alternativt gås cache 24 igenom först och om det blir en cacheträff, behöver traverseringarna av trie 25 inte ens påbörjas. Om det emellertid inte blir någon cacheträff utan den relevanta informationen bara finns i trie 25, lagras index till lövet i trien in i cachen och ersätter fördelaktigt den minst nyligen accessade informationen eller adressen i cachen.The search engine 26 then performs a look-up in the cache memory 24 and in the file memory 23 which contains the digital search tree 25. This can be done in series or in parallel. Recently looked up address indexes are located in different places in the cache 24 and they do not need to be sorted so already discussed When the relevant SOIII Above. the information, ie the next jump address and the exit port have been found, either in the cache 24 or in the trien 25, and retrieved, the packet is sent out on the correct NIC. As already discussed above, a look-up in trie 25 is interrupted, if one has been initiated, in the case of a cache hit, ie if the address with the accompanying index to a leaf in the trie has been found in the cache. Alternatively, cache 24 is scanned first and if there is a cache hit, the traverses of trie 25 do not even have to start. However, if there is no cache encounter but the relevant information is only found in trie 25, the index to the leaf in the tri is stored in the cache and advantageously replaces the least recently accessed information or address in the cache.

Något annat lämpligt kriterium kan emellertid också tillämpas.However, another suitable criterion can also be applied.

I detta utförande är anordningen implementerad i hårdvara innefattar en ASIC 21. “on chip”. Emellertid “off chip”. fullt associativ cache “on chip” i ASIC:en och accesstiden som I detta fall tillhandahålles trieminne 23 skulle det Emellertid är cachen implementerad som en alternativt kunna ha varit anordnat snabb, 10 15 20 25 30 ,emot i. en routinganordning, 516 703 o.. n. 12 för en uppslagning i cachen är mycket kortare än den tid det tar för minnesaccess i trie 25. I alternativa utföranden består cachen av en direktmappande cache eller en “set” associativ cache.In this embodiment, the device implemented in hardware includes an ASIC 21. "on chip". However, "off chip". fully associative cache “on chip” in the ASIC and the access time provided in this case fileinn 23 it would However, the cache is implemented as an alternative could have been arranged fast, 10 15 20 25 30, against i. a routing device, 516 703 o .. n. 12 for a lookup in the cache is much shorter than the time it takes for memory access in trie 25. In alternative embodiments, the cache consists of a direct mapping cache or a "set" associative cache.

Fig. 5 visar ett annat utförande av uppfinningen bestående av en anordning 30 i vilken, i likhet med Fig 4, paket anländer över nätgränssnitt 11-lm och vilka därpå över databussar inges till styrmedel 32. Också här består ett styrmedel 32 av en sökmaskin 26 (eller en ansvarar för vidarebefordringsmaskin) som uppslagningarna i trieminnet 33 och i cacheminnet 34. Också i detta fall kan uppslagningarna göras parallellt eller i serie.Fig. 5 shows another embodiment of the invention consisting of a device 30 in which, like Fig. 4, packets arrive via network interface 11-lm and which are then input via data buses to control means 32. Here too a control means 32 consists of a search engine 26 (or one is responsible for forwarding machine) as the lookups in the file memory 33 and in the cache memory 34. Also in this case the lookups can be done in parallel or in series.

Liksom i den föregående figuren innefattar trieminnet 33 en trie 35. Emellertid är i detta fall anordningen implementerad som en FPGA (Field Programmable Gate Array) som innehåller styrmedlen 32 och cacheminnet 34. Trieminnet 33 tillhandahålles här “off chip", dvs det ligger inte på chipet.As in the previous figure, the file memory 33 comprises a drive 35. However, in this case the device is implemented as an FPGA (Field Programmable Gate Array) which contains the control means 32 and the cache memory 34. The file memory 33 is provided here "off chip", i.e. it is not on chipet.

I en alternativ implementering, ej visad, innehåller FPGA-chipet också trieminnet. Emellertid möjliggörs en liten och billig “on chip” implementering genom att hålla trieminnet 33 utanför chipet 31. I diskuterats under hänvisning till Fig. 4. andra avseenden är fungerandet detsamma som det som I Fig. 6, exempel på ett flöde, som är ett förenklat flödesdiagram som beskriver ett antas att ett paket (t.ex ett IP-paket) tas 1010. cacheuppslagning IP-adressen extraheras därpå, 1020, och en l030A, samtidigt som en traversering av trien initieras, utföres, väsentligen startande med nod 1, lO30B.In an alternative implementation, not shown, the FPGA chip also contains the file memory. However, a small and inexpensive "on chip" implementation is made possible by keeping the file memory 33 outside the chip 31. I have discussed with reference to Fig. 4. In other respects, the operation is the same as that in Fig. 6, example of a flow, which is a simplified flow chart describing one assumes that a packet (e.g., an IP packet) is taken 1010. cache lookup The IP address is then extracted, 1020, and a l030A, at the same time as a traversal of the triene is initiated, is performed, substantially starting with node 1, lO30B.

Efter, eller också innan, accessen till den första noden fullbordas, fastställes om adressen hittades i cachen, 1040A. Om ja, används det index som svarar mot den funna adressen för att 10 15 20 25 30 'var mindre än adressen i noden, 13 hitta lövet i trien, 1050A. Nästa-hopp-informationen och information om utgångsport hämtas därpå ifrån trielövet, l060A.After, or even before, access to the first node is completed, it is determined if the address was found in the cache, 1040A. If yes, the index corresponding to the found address is used because 10 '20 25 30' was smaller than the address in the node, 13 find the leaf in the triangle, 1050A. The next-jump information and information about the exit gate are then retrieved from the tri-leaf, l060A.

Därpå vidarebefordras paketet till den relevanta utgångsporten, 107OA. Om det emellertid inte blev någon träff i cachen, fortsätts trietraverseringen med nod n = I1 + 1; n = 1, ,p ~l040B, tills lövet hittas (p betecknar här helt enkelt lövet). Den önskade 1050B, 1060B, och adressen med indexet till lövet lagras in i l07OB. informationen hämtas därpå, paketet sänds vidare, enligt ovan, cachen, och ersätter den minst nyligen använda raden, Fig. 7 är ett flödesdiagram som illustrerar en traversering av en trie. I figuren illustreras inte någon föregående eller parallell Flödet starta, 100, i detta fall, uppslagning i. cacheminnet. antas med inkommmandet av ett paket till styrmedel. Adressen, IP-adressen, tillhandahàlles därpå till den översta noden i den 110. 120, någon matchning, och noden dvs det digitala trädstrukturen, för att Därpå hämtas noden, undersöks se om det finns undersöks om den sökta adressen är densamma som adressen i noden, dvs om den sökta adressen svarar mot 131, adressindex i 130. Vid överensstämmelse, adressen i noden, hämtas den sökta informationen från noden, och, i enlighet med uppfinningen, lagras cacheminnet, 132. Speciellt tillhandahàlles adressindex i den nod som är förälder till lövet i trädstrukturen. 133, enlighet med relevant nästa-hopp-adressinformation till relevant Förfarandet upphör, även om det givetvis fortsätts med sändande av paket i utgångsport osv.The packet is then forwarded to the relevant exit port, 107OA. However, if there was no hit in the cache, the triet traversation continues with node n = I1 + 1; n = 1,, p ~ l040B, until the leaf is found (p here simply denotes the leaf). The desired 1050B, 1060B, and the address with the index to the leaf are stored in 10OB. the information is retrieved thereon, the packet is forwarded, as above, the cache, and replaces the least recently used line, Fig. 7 is a flow chart illustrating a traversal of a trie. The figure does not illustrate any previous or parallel flow start, 100, in this case, lookup in the cache. adopted with the receipt of a package of instruments. The address, the IP address, is then provided to the top node in the 110. 120, any match, and the node ie the digital tree structure, in order to then retrieve the node, is examined to see if it is examined whether the searched address is the same as the address in the node , ie if the searched address corresponds to 131, address index in 130. In accordance, the address in the node, the searched information is retrieved from the node, and, in accordance with the invention, the cache is stored, 132. In particular, the address index in the node parent is provided. the leaf in the tree structure. 133, in accordance with relevant next-hop address information to relevant The procedure ceases, although of course it continues with sending packets at the exit port, etc.

Om det emellertid fastställdes att den sökta adressen inte svarade mot adressen i noden, undersöks om den sökta adressen är lägre än 140. barnnoden ifrån noden, adressen i noden, Om ja, hämtas adressen till den vänstra 141, osv. Om det emellertid fastställdes att den sökta adressen inte och den vänstra barnnoden hämtas, 120 undersöks om den sökta adressen är 10 15 20 25 30 51 s 703 nor n. 14 150. högra barnnoden ifrån noden 151, och den högra barnnoden hämtas, högre än adressen i noden, Om ja, hämtas adressen till den 120, och proceduren fortgår såsom diskuterats ovan.However, if it is determined that the searched address did not correspond to the address in the node, it is examined whether the searched address is lower than 140. the child node from the node, the address in the node, If yes, the address is retrieved to the left 141, etc. However, if it is determined that the searched address is not and the left child node is retrieved, 120 it is examined whether the searched address is 10 15 20 25 30 51 s 703 nor n. 14 150. the right child node from the node 151, and the right child node is retrieved, higher than the address in the node, If yes, the address of the 120 is retrieved, and the procedure proceeds as discussed above.

En minnesaccess i trieminnet svarar mot steg 120. Genom implementeringen av ett cacheminne i enlighet med uppfinningen, reduceras antalet sådana accesser väsentligt.A memory access in the file memory corresponds to step 120. By implementing a cache memory in accordance with the invention, the number of such accesses is significantly reduced.

Om emellertid hela trädet traverseras utan att man hittar någon matchande adress i någon nod, måste ett nytt träd byggas och detta görs på konvetionellt sätt. När det emellertid sker en förändring Det index som redan av träd i trieminnet, måste cachen tömmas. finns i en cache löper en risk att vara felaktigt.However, if the entire tree is traversed without finding a matching address in any node, a new tree must be built and this is done in a conventional way. However, when a change occurs The index already of trees in the file memory, the cache must be emptied. is in a cache runs a risk of being incorrect.

Fig. 8 är ett flödesdiagram som beskriver adressuppslagning med användning av en cache utöver trieminnet. 200, till styrmedlen i en anordning enligt uppfinningen. Den ingivna alla cacheminnet, 210, för att se om det blir någon cacheträff, 220. Om 221, och den 222, 223. emellertid fastställes att det inte blev någon cacheträff, utförs Återigen antas att starten, inkluderas ingivande av en adress, tex IP-adress, adressen matchas därpå mot adresser som innehålls i ja, hämtas den sökta noden från trieminnet, eftersökta informationen extraheras ifrån noden, varpå förfarandet, vad det gäller minnesaccess, avslutas, Om det en normal trieminnesaccess, 230, så som diskuterats under hänvisning till Fig.7. Emellertid visar Fig. 7 en speciell implementering. Det är också möjligt att bygga en sökmaskin som kör båda flödena simultant. Om det blir en cacheträff, avbryts det normala flödet. Vid cachemiss, avbryts flödet så som beskrivits ovan eftersom ett normalt flöde redan körs. När emellertid trieminnesaccessen 131 har utförts (framgångsrikt), lagras indexet i cachen, 231, varpå flödet av minnesaccesser avslutas, 232. 10 15 20 25 30 516 703 " nu g. 15 I en alternativ implementering kan det steg som innefattar hämtning av en nod, extrahering av information och cacheuppslagning delas in i tre pipe-linesteg och en ny uppslagning kan initieras för varje cykel.Fig. 8 is a flow chart describing address lookup using a cache in addition to the file memory. 200, to the control means in a device according to the invention. The entered all cache memory, 210, to see if there will be any cache hit, 220. If 221, and the 222, 223. however, it is determined that there was no cache hit, performed address, the address is then matched to addresses contained in yes, the searched node is retrieved from the file memory, the searched information is extracted from the node, whereupon the procedure, in terms of memory access, is terminated, If there is a normal file access, 230, as discussed Fig.7. However, Fig. 7 shows a special implementation. It is also possible to build a search engine that runs both feeds simultaneously. If there is a cache hit, the normal flow is interrupted. In case of cache failure, the flow is interrupted as described above because a normal flow is already running. However, when the file entry access 131 has been performed (successfully), the index is stored in the cache, 231, whereupon the flow of memory accesses is terminated, 232. In an alternative implementation, the step of retrieving a node may , information extraction and cache lookup are divided into three pipeline steps and a new lookup can be initiated for each cycle.

Parallella uppslagningar av fler än en adress kan också utföras.Parallel lookups of more than one address can also be performed.

Ett pipe-line-förfarande kan också åstadkommas på andra sätt. Ett enda flöde kan också tillhandahållas i pipe-line på något alternativt sätt.A pipe-line process can also be accomplished in other ways. A single flow can also be provided in the pipe-line in some alternative way.

Dessutom kan det uppfinningsmässiga konceptet användas i kombination med vilket slag av komprimerade algoritmer som helst osv för att snabba upp traverseringen av den triebaserade strukturen.In addition, the inventive concept can be used in combination with any kind of compressed algorithms, etc. to speed up the traversal of the tri-based structure.

Det uppfinningsmässiga konceptet kan implementeras för att tillhandahålla Gbyte routrar såväl som Tbyte routrar och det kan implementeras för IPv.4 såväl som för IPv.6; principen förblir densamma. Också i andra avseenden är uppfinningen inte begränsad till de specifikt illustrerade utföringsexemplen utan den kan varieras på ett antal sätt inom ramen för vidhängande patentkrav.The inventive concept can be implemented to provide Gbyte routers as well as Tbyte routers and it can be implemented for IPv.4 as well as for IPv.6; the principle remains the same. Also in other respects, the invention is not limited to the specifically illustrated embodiments but can be varied in a number of ways within the scope of the appended claims.

Claims (30)

1. 0 15 20 25 30 516 m 16 PATENTKRAV (l0;20;30) genom en routinganordning i ett paketkopplat nät eller mellan nät,A patent claim (10; 20; 30) by a routing device in a packet-switched network or between networks, 1. En anordning i för vidarebefordring av datapaket där sagda routinganordning innefattar ett antal ingàngsportar, ett antal utgångsportar och styrmedel (2), såsom en vidarebefordrings- maskin, för att styra adressuppslagning och vidarebefordring av routerlagringsmedel (3;23;33) sökträd (5;5';25;35), genomsökningen av vilket innefattar traversering av trädet ifrån paket mottagna över ingångsportar, som inkluderar ett digitalt (trie) roten till ett löv genom ett antal noder, k ä n n e t e c k n a d d ä r a v (4;4';24;34) antal adresser med lnotsvarande index till löven för ett antal att ett cacheminne är anordnat för lagring av ett nästa-hopp-adresser, och för att slå upp en nästa-hopp-adress för ett inkommande paket, (4;4';24;34). utförs en sökning åtminstone i cacheminnetA device in for forwarding data packets wherein said routing device comprises a number of input ports, a number of output ports and control means (2), such as a forwarding machine, for controlling address lookup and forwarding of router storage means (3; 23; 33) search trees (5). ; 5 '; 25; 35), the scan of which comprises traversing the tree from packets received over input ports, which includes a digital (trie) root of a leaf through a number of nodes, characterized by (4; 4'; 24 ; 34) number of addresses with corresponding indexes to the leaves for a number that a cache memory is provided for storing a next-hop addresses, and for looking up a next-hop address for an incoming packet, (4; 4 '; 24; 34). a search is performed at least in the cache 2. En anordning enligt patentkrav 1, k ä n n e t e c k n a d d ä r a v att styrmedlen (2) används för att ta emot inkommande adresser, tex IP-adresser, och för att initiera en uppslagning av motsvarande nästa-hopp-adress, innefattande en (4;4';24;34), om nödvändigt, det digitala sökträdet (5;5';25;35). uppslagning i cacheminnet och, en traversering avA device according to claim 1, characterized in that the control means (2) are used to receive incoming addresses, eg IP addresses, and to initiate a look-up of the corresponding next-hop address, comprising one (4; 4 '; 24; 34), if necessary, the digital search tree (5; 5'; 25; 35). cache storage and, a traversal of 3. En anordning enligt patentkrav 1 eller 2, k ä n n e t e c k n a d d ä r a v att en traversering av det digitala sökträdet (5;5';25;35) initieras uppslagningen i (4;4';24;34). väsentligen samtidigt med cachen 10 15 20 25 30 17A device according to claim 1 or 2, characterized in that a traversal of the digital search tree (5; 5 '; 25; 35) is initiated by the look-up in (4; 4'; 24; 34). substantially simultaneously with the cache 10 15 20 25 30 17 4. En anordning enligt patentkrav 3, k ä n n e t e c k n a d d ä r a v att traverseringen av det digitala sökträdet (5;5';25;35) avbryts vid en cacheträff.A device according to claim 3, characterized in that the traversal of the digital search tree (5; 5 '; 25; 35) is interrupted at a cache hit. 5. En anordning enligt patentkrav 1 eller 2, k ä n n'e t e c k n a d d ä r a v att traverseringen av det digitala trädet (5;5';25;35) endast initieras om uppslagningen i cachen (4;4';24;34) ej lyckas, dvs om adressen med ett index till nästa-hopp-adressen ej kan hittas.A device according to claim 1 or 2, characterized in that the traversal of the digital tree (5; 5 '; 25; 35) is initiated only if the look-up in the cache (4; 4'; 24; 34 ) does not succeed, ie if the address with an index to the next-jump address can not be found. 6. En anordnig enligt något av föregående patentkrav, k ä n n e t e c k n a d d ä r a v att indexen till löven för ett antal av de mest nyligen uppslagna nästa-hopp-adresserna lagras i cacheminnet (4;4';24;34).A device according to any one of the preceding claims, characterized in that the indexes of the leaves for a number of the most recently searched next-jump addresses are stored in the cache memory (4; 4 '; 24; 34). 7. En anordning enligt något av föregående patentkrav, k ä n n e t e c k n a d d ä r a v att de minst nyligen använda adresserna i cachen (4;4';24;34) successivt ersätts av nyuppslagna adresser.A device according to any one of the preceding claims, characterized in that the least recently used addresses in the cache (4; 4 '; 24; 34) are successively replaced by newly entered addresses. 8. En anordning enligt något av patentkraven l-6, k ä n n e t e c k n a d d ä r a v att ett tidsintervall definieras för ersättande av adresser i (4;4';24;34) under ett sådant tidsintervall ersätts av nya adresser. cacheminnet så att adresser som inte har använtsAn apparatus according to any one of claims 1-6, characterized in that a time interval defined for replacing addresses in (4; 4 '; 24; 34) during such a time interval is replaced by new addresses. cache so that addresses that have not been used 9. En anordning enligt något av föregående patentkrav, k ä n n e t e c k n a d d ä r a v att accesstiden för en cacheaccess är kortare än en minnesaccess i det digitala sökträdet (trie). 10 15 20 25 30 1-._- u nu-.-1 ' o nu .- o 0' . u ~,_. o ' a no- ucu- I . o n apan n gs16 7o3 18A device according to any one of the preceding claims, characterized in that the access time for a cache access is shorter than a memory access in the digital search tree (trie). 10 15 20 25 30 1 -._- u nu -.- 1 'o nu .- o 0'. u ~, _. o 'a no- ucu- I. o n apan n gs16 7o3 18 10. k ä n n e t e c k n a d d ä r a v En anordning enligt något av föregående patentkrav, att cacheminnet (4;4';24;34) består av en direktmappande cache, en “preset”associativ cache eller en fullt associativ cache.10. a device according to any one of the preceding claims, that the cache memory (4; 4 '; 24; 34) consists of a direct mapping cache, a “preset” associative cache or a fully associative cache. 11. ll. k ä att En anordning enligt något av föregående patentkrav, n n e t e c k n a d d ä r a v anordnigen är implementerad som ett ASIC-chip.11. ll. A device according to any one of the preceding claims, wherein the device is implemented as an ASIC chip. 12. k ä att En anordning enligt något av patentkraven 1-10, n n e t e c k n a d d ä r a V anordningen är implementerad som ett FPGA-chip.12. A device according to any one of claims 1-10, wherein the device is implemented as an FPGA chip. 13. k ä att En anordning enligt något av föregående patentkrav, n n e t e c k n a d d ä r a v den digitala trädstrukturen är anordnad “on-chip”.13. A device according to any one of the preceding claims, n n e t e c k n a d where the digital tree structure is arranged on-chip. 14. En anordning enligt något av patentkraven 1-12, k ä n n e t e c k n a d d ä r a v att lagringsmedlen trädstruktur tillhandahålles “off-chip”. som är implementerade som en digitalA device according to any one of claims 1-12, characterized in that the storage means tree structure is provided "off-chip". which are implemented as a digital 15. k ä n n e t e c k n a d d ä r a v En anordning enligt något av föregående patentkrav, att cacheminnet är anordnat “on-chip”.15. a device according to any one of the preceding claims, that the cache memory is arranged "on-chip". 16. k ä n n e t e c k n a d d ä r a v En anordning enligt något av föregående patentkrav, att anordningen innefattar en IP-(Internet) router.16. a device according to any one of the preceding claims, that the device comprises an IP (Internet) router. 17. k ä n n e t e c k n a d d ä r a v En anordning enligt något av föregående patentkrav, oss-ø ~ a oocogg 10 15 20 25 30 516 703 19 att routingtabellen innefattande ett digitalt sökträd är en komprimerad datastruktur.17. A device according to any one of the preceding claims, us-o ~ a oocogg 10 15 20 25 30 516 703 19 that the routing table comprising a digital search tree is a compressed data structure. 18. En anordning enligt något av föregående patentkrav, k ä n n e t e c k n a d d ä r a v att det digitala trädet består av en LC-trie, en Patricia-trie eller någon annan lämplig trie.A device according to any one of the preceding claims, characterized in that the digital tree consists of an LC tree, a Patricia tree or any other suitable tree. 19. En anordning enligt något av föregående patentkrav, k ä n n e t e c k n a d d ä r a v att ett antal adresser slås upp parallellt.A device according to any one of the preceding claims, characterized in that a number of addresses are looked up in parallel. 20. En anordning enligt något av föregående patentkrav, k ä n n e t e c k n a d d ä r a v att en pipe-lineprocedur implementeras.A device according to any one of the preceding claims, characterized in that a pipe-line procedure is implemented. 21. Ett förfarande för att routa ett paket genom routinganordning i paketkopplat datanät, där sagda routinganordning inkluderar ett styrmedel (2) och routerlagringsmedel (3;3';23;33) innefattande ett digitalt sökträd, där förfarandet kännetecknas av stegen att: - lagra index till nästa-hopp-adresserna för ett antal datapakets-adresser i ett associativt cacheminne, - använda cacheminnet och en traversering av det digitala sökträdet för att hitta ett index till nästa-hopp-adressen eller till det löv som innehåller nästa-hopp-adressen, - avbryta traverseringen av det digitala sökträdet om det blir en cacheträff, annars - fortsätta med traverseringen av det digitala sökträdet tills nästa-hopp-adressen hittas, - hämta nästa-hoppadressinformation och vidarebefordra paketet till den relevanta utgångsporten. 10 15 20 25 30 516703 n n .en n. 20A method for routing a packet by routing device in packet-switched data network, wherein said routing device includes a control means (2) and router storage means (3; 3 '; 23; 33) comprising a digital search tree, wherein the method is characterized by the steps of: - storing index to the next-hop addresses for a number of data packet addresses in an associative cache, - use the cache and a traversal of the digital search tree to find an index to the next-jump address or to the leaf that contains the next-jump address , - interrupt the traversal of the digital search tree if there is a cache hit, otherwise - continue traversing the digital search tree until the next jump address is found, - retrieve the next jump address information and forward the packet to the relevant exit port. 10 15 20 25 30 516703 n n .and n. 20 22. Förfarandet enligt patentkrav 21, k ä n n e t e c k n a t d ä r a v att det innefattar: - först utförande av' uppslagning j. cacheminnet; onx det inte blir någon cacheträff, - initiera en traversering av det digitala sökträdet.The method of claim 21, characterized in that it comprises: - first performing storage on the cache; onx there will be no cache hit, - initiate a traversal of the digital search tree. 23. Förfarandet enligt patentkrav 21, k ä n n e t e c k n a t d ä r a v att det innefattar: - simultant utförande av uppslagning i cacheminnet och initiering av en traversering av det digitala sökträdet, - avbryta traverseringen av det digitala sökträdet om det blir en cacheträff, annars - fortsätta med traverseringen tills det löv som innehåller nästa-hopp-adressen hittas.The method according to claim 21, characterized in that it comprises: - simultaneous execution of look-up in the cache and initiation of a traversal of the digital search tree, - interrupt the traversal of the digital search tree if it becomes a cache hit, otherwise - continue with traversing until the leaf containing the next-hop address is found. 24. Förfarandet enligt patentkrav 22 eller 23, k ä n n e t e c k n a t d ä r a v att det innefattar steget att, när en nästa-hopp-adress hittas genom traverseringen av det digitala sökträdet, till exempelvis genom att ersätta den minst nyligen accessade - lagra index sagda nästa-hopp-adress i cacheminnet, adressinformationen om det inte finns något ledigt utrymme.The method of claim 22 or 23, characterized in that it comprises the step of, when a next-hop address is found by traversing the digital search tree, for example by replacing the least recently accessed - stored index said jump address in the cache, the address information if there is no free space. 25. Förfarandet enligt patentkrav 21, k ä n n e t e c k n a t d ä r a v att det innefattar steget att: till adressinformationen i cacheminnet med index till den mest - ersätta index den minst nyligen accessade nyligen använda adressinformationen. 10 15 20 25 30 516 703 u n ma» oo 21The method of claim 21, characterized in that it comprises the step of: to the address information in the cache with index to the most-replaced index the least recently accessed recently used address information. 10 15 20 25 30 516 703 u n ma »oo 21 26. Förfarandet enligt något av patentkraven 21-25, k ä n n e t e c k n a t d ä r a v att cacheminnet är en fullt associativ cache anordnad “on-chip” i en FPGA ASIC använd för eller en implementeringen av routinganordningen.The method according to any one of claims 21-25, characterized in that the cache memory is a fully associative cache arranged "on-chip" in an FPGA ASIC used for or an implementation of the routing device. 27. Förfarandet enligt något av patentkraven 21-26, k ä n n e t e c k n a t d ä r a v att ett antal nästa-hopp-adresser slås upp väsentligen parallellt.27. The method of any of claims 21-26, characterized in that a number of next-hop addresses are looked up substantially in parallel. 28. Ett paketdatakommunikationssystem som innefattar ett antal routinganordningar inom ett nät eller sammankopplande nät, där varje routinganordning innefattar ett antal ingångs- och utgångsportar, styrmedel innefattade en 'vidarebefordringsmaskin ett digitalt sökträd (trie) som innehåller nästa-hopp-adressinformation, och routerlagringsmedel som inkluderar k ä n n e t e c k n a t d ä r a v att i åtminstone ett antal routinganordingar är ett cacheminne anordnat för att lagra index till ett antal nästa-hopp-adresser som innehålles i det digitala sökträdet, och för att hitta en nästa-hopp-adress utförs en uppslagning åtminstone i cacheminnet.A packet data communication system comprising a plurality of routing devices within a network or interconnecting network, each routing device comprising a plurality of input and output ports; characterized in that in at least a number of routing devices a cache is arranged to store indexes to a number of next-hop addresses contained in the digital search tree, and to find a next-jump address a look-up is performed at least in the cache . 29. Ett system enligt patentkrav 28, k ä n n e t e c k n a t d ä r a v att en traversering av det digitala sökträdet initieras väsentligen samtidigt med uppslagningen i cacheminnet och att den avbryts om det blir en cacheträff.A system according to claim 28, characterized in that a traversal of the digital search tree is initiated substantially simultaneously with the look-up in the cache memory and that it is interrupted if there is a cache hit. 30. Ett system enligt patentkrav 28, k ä n n e t e c k n a t d ä r a v att en traversering av det digitala sökträdet bara initieras om det inte blir någon cacheträff.A system according to claim 28, characterized in that a traversal of the digital search tree is only initiated if there is no cache hit.
SE9902175A 1999-06-10 1999-06-10 Device, system and method related to routing of packets in a data communication network SE516703C2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
SE9902175A SE516703C2 (en) 1999-06-10 1999-06-10 Device, system and method related to routing of packets in a data communication network
PCT/SE2000/001162 WO2000077984A1 (en) 1999-06-10 2000-06-06 Arrangement, system and method relating to datacommunication
AU58584/00A AU5858400A (en) 1999-06-10 2000-06-06 Arrangement, system and method relating to datacommunication

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
SE9902175A SE516703C2 (en) 1999-06-10 1999-06-10 Device, system and method related to routing of packets in a data communication network

Publications (3)

Publication Number Publication Date
SE9902175D0 SE9902175D0 (en) 1999-06-10
SE9902175L SE9902175L (en) 2000-12-11
SE516703C2 true SE516703C2 (en) 2002-02-12

Family

ID=20416008

Family Applications (1)

Application Number Title Priority Date Filing Date
SE9902175A SE516703C2 (en) 1999-06-10 1999-06-10 Device, system and method related to routing of packets in a data communication network

Country Status (3)

Country Link
AU (1) AU5858400A (en)
SE (1) SE516703C2 (en)
WO (1) WO2000077984A1 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7149216B1 (en) * 2000-09-05 2006-12-12 Cisco Technology, Inc. M-trie based packet processing
GB2368413B (en) * 2000-10-27 2002-09-11 3Com Corp Method and apparatus for searching databases employing a trie search structure
EP1246424A1 (en) * 2001-03-27 2002-10-02 STMicroelectronics Limited Searching for packet identifiers
US7286534B2 (en) * 2001-11-02 2007-10-23 Infineon Technologies North America Corporation SRAM based cache for DRAM routing table lookups
US20030236793A1 (en) * 2002-06-19 2003-12-25 Ericsson Inc. Compressed prefix tree structure and method for traversing a compressed prefix tree
KR100670818B1 (en) * 2005-05-31 2007-01-19 한국전자통신연구원 Method and system of managing layer2 table in distributed router

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5227778A (en) * 1991-04-05 1993-07-13 Digital Equipment Corporation Service name to network address translation in communications network
US5640551A (en) * 1993-04-14 1997-06-17 Apple Computer, Inc. Efficient high speed trie search process
US5546390A (en) * 1994-12-29 1996-08-13 Storage Technology Corporation Method and apparatus for radix decision packet processing
US6041053A (en) * 1997-09-18 2000-03-21 Microsfot Corporation Technique for efficiently classifying packets using a trie-indexed hierarchy forest that accommodates wildcards
US6597684B1 (en) * 1997-12-24 2003-07-22 Nortel Networks Ltd. Distributed architecture and associated protocols for efficient quality of service-based route computation

Also Published As

Publication number Publication date
SE9902175D0 (en) 1999-06-10
SE9902175L (en) 2000-12-11
AU5858400A (en) 2001-01-02
WO2000077984A1 (en) 2000-12-21

Similar Documents

Publication Publication Date Title
US7808929B2 (en) Efficient ACL lookup algorithms
US8295286B2 (en) Apparatus and method using hashing for efficiently implementing an IP lookup solution in hardware
US6553002B1 (en) Apparatus and method for routing data packets through a communications network
US6594655B2 (en) Wildcards in radix- search tree structures
EP1623347B1 (en) Comparison tree data structures and lookup operations
JP4614946B2 (en) System and method for efficiently searching a forwarding database divided into a limited number of sub-databases having a limited size
Waldvogel et al. Scalable high-speed prefix matching
US20050021752A1 (en) Reverse path forwarding protection of packets using automated population of access control lists based on a forwarding information base
CN111937360B (en) Longest prefix matching
EP2037381A1 (en) Database and database processing methods
WO2011078812A1 (en) Systolic array architecture for fast ip lookup
Le et al. Scalable tree-based architectures for IPv4/v6 lookup using prefix partitioning
CN107431660B (en) Search device, search method, and recording medium
JP2000151691A (en) Information retrieval memory by prefix analysis for building-up routing table of node for high speed communication network such as internet
US20140358886A1 (en) Internal search engines architecture
US20080263269A1 (en) Key selection device and process for content-addressable memory
Luo et al. A hybrid IP lookup architecture with fast updates
JP2004266837A (en) Packet classification apparatus and method using field level tree
US7478109B1 (en) Identification of a longest matching prefix based on a search of intervals corresponding to the prefixes
Le et al. Scalable high throughput and power efficient ip-lookup on fpga
SE516703C2 (en) Device, system and method related to routing of packets in a data communication network
US20040111395A1 (en) Mechanism to reduce lookup latency in a pipelined hardware implementation of a trie-based IP lookup algorithm
US11115333B2 (en) Single stage look up table based match action processor for data packets
US20070255676A1 (en) Methods and apparatus for performing tree-based processing using multi-level memory storage
Huang et al. Fast routing table lookup based on deterministic multi-hashing

Legal Events

Date Code Title Description
NUG Patent has lapsed