SE511972C2 - Uppslagningsanordning och förfarande för att klassificera och vidarebefordra datapaket - Google Patents

Uppslagningsanordning och förfarande för att klassificera och vidarebefordra datapaket

Info

Publication number
SE511972C2
SE511972C2 SE9703292A SE9703292A SE511972C2 SE 511972 C2 SE511972 C2 SE 511972C2 SE 9703292 A SE9703292 A SE 9703292A SE 9703292 A SE9703292 A SE 9703292A SE 511972 C2 SE511972 C2 SE 511972C2
Authority
SE
Sweden
Prior art keywords
output
memory means
pointer
gate
record
Prior art date
Application number
SE9703292A
Other languages
English (en)
Other versions
SE9703292L (sv
SE9703292D0 (sv
Inventor
Peter Sjoedin
Andreas Moestedt
Original Assignee
Sics Swedish Inst Of Computers
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 Sics Swedish Inst Of Computers filed Critical Sics Swedish Inst Of Computers
Priority to SE9703292A priority Critical patent/SE511972C2/sv
Publication of SE9703292D0 publication Critical patent/SE9703292D0/sv
Priority to AU91008/98A priority patent/AU9100898A/en
Priority to PCT/SE1998/001584 priority patent/WO1999013619A2/en
Priority to CA002302744A priority patent/CA2302744A1/en
Priority to EP98943155A priority patent/EP1025678A2/en
Publication of SE9703292L publication Critical patent/SE9703292L/sv
Publication of SE511972C2 publication Critical patent/SE511972C2/sv

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
    • 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

Landscapes

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

Description

lO 15 20 25 30 35 511 972 2 i ett antal sektioner, och varje sektion används för att adres- sera en viss nivå hos ett sökträd. Vid varje nivà används ett antal små tabeller för att lagra pekare till de lämpliga tabel- lerna på nästa nivå. Det finns fortfarande spillutrymme inom var och en av tabellerna, men endast ett partiellt träd behöver ska- pas, täckande partierna hos adressutrymmet som används vid någon tidpunkt. Trädet är mest effektivt när de utnyttjade adresserna är samlade i en klunga i adressutrymmet. I Artikeln ”VLSI Implementation of Routing Tables: Tries and CAMs”, Proceedings of INFOCOM *9l, 991, sid 0515-0524, visar användandet av träd i dirigeringsta- beller, av T. Pei, C. Zukowski, för adressuppslagning med fixerade längder.
Binära träd har också använts för adresser med variabel längd, exempelvis det vanligen använda Patricia-trädet, vilket är en förbättring av ett binärt träd. Men eftersom IP-adresser är 32-bitar långa, är en snabb hårdvaruimplementering av Patri- cia-träd dyr och komplex.
Det har förekommit flera förslag för att implementera dirigeringstabellsuppslagningar genom att använda innehàllsad- (CAM) teknologi tillhandahåller för närvarande emellertid inte till- resserbara minnen för att lagra dirigeringstabellen. CAM- räckligt stort minne vid en nöjaktigt låg kostnad för att det ska vara en praktisk lösning.
Sammanfattning av uppfinningen. Ändamålet med föreliggande uppfinning är att lösa de ovan nämnda problemen och att åstadkomma en uppslagningsanord- ning för klassificering och vidarebefordring av datapaket, var- vid insignalen till uppslagningsanordningen är en destination- sadress för ett inkommande datapaket och destinationsadressen innefattar n bitar, varvid n är ett heltal. Detta ändamål erhål- las genom att åstadkomma uppslagningsanordningen definierad i ingressen av patentkravet l med de fördelaktiga egenskaperna hos den kännetecknade delen av patentkravet.
Uppslagningsanordningen enligt föreliggande uppfinning innefattar i steg, varvid varje steg representerar en förutbe- stämd prefixlängd och ett prefix representerar en grupp adres- ser, varvid det första steget representerar den kortaste prefix- 10 15 20 25 30 35 511 972 längden och steg i representerar den längsta prefixlängden med n bitar. Uppslagningsnordningen innefattar också ett dirigerings- minnesorgan anslutet till steget i, varvid varje steg innefattar ett minnesorgan för att lagra en tabell med poster, varvid varje post innefattar ett pekarfält vilket antingen innefattar en pe- kare till minnesorganet i nästa steg, eller en pekare till diri- geringsminnesorganet som lagrar vidarebefordringsinformationen, varvid ett första antal bitar motsvarande den kortaste prefix- längden hos destinationsadressen eftersöks i det första minne- sorganet, och om posten i det första minnesorganet där en match- ning hittas innefattar en pekare till det andra minnesorganet, då söks ett andra antal bitar motsvarande den näst kortaste pre- fixlängden hos destinationsadressen i det andra minnesorganet, och så vidare till dess att ett längsta matchande prefix har hittats, varvid pekaren till dirigeringsminnesorganet ger vida- rebefordringsinformationen för att vidarebefordra det inkommande datapaketet. Huvudfördelen med denna konstruktion är att den kan utföra en uppslagning per minnescykel. Dessutom är konstruktio- nen enkel och snabb, och den är därför lämplig för en kvalifice- rad IP-nätväxel. Denna lösning fungerar också med identifierare med olika längder.
Fördelaktigtvis innefattar det första steget endast det första minnesorganet, och alla de andra stegen innefattar vart (q-l) och minnesorganet q, och ett ett logikorgan, varvid logikorganet är anslutet till bàde minnesorganet (q+1) varvid q är ett heltal och lsqíi-1.
Varje post i de första (i-l) minnesorganen innefattar företrädesvis också en delbit och en giltig bit, och varje post i minnesorganet i innefattar också en giltig bit, varvid en satt giltig bit i en post representerar ett giltigt prefix och pekar- fältet för denna post innefattar en pekare till dirigeringsmin- nesorganet, och en satt delbit i en post i minnesorganet q inne- bär att prefixet matchar en post i dirigeringsminnesorganet, men är kortare än denna post, och pekarfältet för denna post i min- (q+1). (i-l) minnesorganen en pekarutgång, en giltig bitutgáng och en del- nesorganet q innefattar en pekare till minnesorganet Fördelaktigtvis har vart och ett av de första bitsutgàng, och minnesorganet i har en pekarutgång och en giltig 10 15 20 25 30 35 511 972 bitutgång, varvid pekarutgàngen hos minnesorganet q är ansluten till minnesorganet (q+l), och till logikorganet hos steget (q+1), och varvid den giltiga bitutgàngen och delbitsutgàngen hos minnesorganet q är anslutna till logikorganet hos steget (q+l).
Logikorganet hos steget i innefattar företrädesvis en multiplexor, en ELLER-grind och en OCH-grind, och varje logik- organ i alla de andra stegen utom det första steget innefattar en ELLER-grind, OCH-grind, varvid ingångarna hos multiplexorn i det andra steget en multiplexor, en första OCH-grind och en andra är anslutna till pekarutgångarna hos de första och andra minne- sorganen och ingångarna hos den första OCH-grinden i det andra steget är anslutna till den giltiga bitutgàngen hos det andra minnesorganet och till delbitsutgàngen hos det första minnesor- ganet, och ingångarna hos den andra OCH-grinden i det andra ste- get är anslutna till delbitsutgángarna hos de första och andra minnesorganen, och ingångarna hos ELLER-grinden i det andra ste- get är anslutna till en utgång från den första OCH-grinden i det andra steget och till den giltiga bitutgàngen hos det första minnesorganet, varvid ingångarna till multiplexorn i steget p, där p är ett heltal och 3SpSi-1, är anslutna till pekarutgàngen hos minnesorganet p och till en utgång till multiplexorn hos steget (p-l), och ingångarna hos den första OCH-grinden i steget p är anslutna till den giltiga bitutgàngen hos minnesorganet p och till en utgång hos den andra OCH-grinden i steget (p-1), och ingångarna hos den andra OCH-grinden i steget p är anslutna till delbitsutgàngen hos minnesorganet p och till utgången hos den andra OCH-grinden i steget (p-1), och ingångarna hos ELLER- grinden i steget p är anslutna till utgången hos den första OCH- grinden i steget (p-1) och till en utgång hos ELLER-grinden i steget (p-1), och varvid ingångarna hos multiplexorn i steget i är anslutna till pekarutgàngen hos minnesorganet i och till en utgång hos multiplexorn hos steget (i-1), och ingångarna hos OCH-grinden i steget i är anslutna till den giltiga bitutgàngen hos minnesorganet i och till utgången hos den andra OCH-grinden i steget (i-1), och ingångarna hos ELLER-grinden i steget i är anslutna till utgången hos OCH-grinden i steget i och till ut- gången hos ELLER-grinden i steget (i-l). 10 15 20 25 30 35 511 972 Fördelaktigtvis hittas en matchning när en post i ett steg innefattar en satt giltig bitutsignal och alla de matchande posterna med kortare prefixlängder är satta delbitutsignaler.
Varje steg innefattar företrädesvis också ett dekompri- meringslogikorgan, varvid dekomprimeringslogikorganet i är an- slutet till multiplexorn i steget i och dekomprimeringslogikor- ganet q är anslutet till både minnesorganet q och till minnesor- ganet (q+l). Härigenom àstadkommes en minnesbesparande optime- ring.
Varje post i varje minnesorgan innefattar fördelaktigt- vis också ett maskfält, ett adressetikettfält, och en komprime- ringsflaggbit, varvid en satt komprimeringsflaggbit indikerar att komprimering används, och av att vart och ett av minnesorga- nen också har en maskfältutgàng, en adressetikettfältutgàng, och en komprimeringsflaggbitutgång, varvid maskfältutgàngen, adress- etikettfältutgången, komprimeringsflaggbitutgången, och pekar- utgången hos minnesorganet r är anslutet till dekomprimerings- logikorganet r, varvid r är ett heltal och lšrši, och varvid varje dekomprimeringslogikorgan utmatar en ny pekare, varvid den nya pekarutgàngen från dekomprimeringslogikorganet q är ansluten till minnesorganet (q+l) och den nya pekarutgàngen från dekomp- rimeringslogikorganet i är ansluten till multiplexorn hos steget i.
Företrädesvis innefattar varje dekomprimeringslogikor- gan en OCH-grind, en jämnförare, en första multiplexor, och en andra multiplexor, varvid ingången hos OCH-grinden i dekomprime- ringslogikorganet r är ansluten till maskfältutgàngen hos minne- sorganet r och till prefixlängden r hos destinationsadressen, och ingången hos jämnföraren i dekomprimeringslogikorganet r är ansluten till adressetikettfältutgàngen hos minnesorganet r och till en utgång från OCH-grinden i dekomprimeringslogikorganet r, och ingången hos den första multiplexorn i dekomprimeringslogik- organet r är ansluten till pekarutgàngen hos minnesorganet r och till en logisk 0-signal, och ingången hos den andra multiplexorn i dekomprimeringslogikorganet r är ansluten till utgången från OCH-grinden i dekomprimeringslogikorganet r, och till en utgång från jämnföraren i dekomprimeringslogikorganet r och av att den nya pekarutgàngen från dekomprimeringslogikorganet r antingen är 10 15 20 25 30 35 511972 utgången från den första multiplexorn eller utgången från den andra multiplexorn i dekomprimeringslogikorganet r beroende på om komprimeringsflaggbiten är satt eller inte.
Ett annat ändamål med uppfinningen är att åstadkomma ett förfarande för att klassificera och vidarebefordra datapa- ket, innefattar n bitar, varvid en destinationsadress hos ett inkommande datapaket varvid n är ett heltal. Detta ändamål erhål- les genom att åstadkomma ett förfarande definierat i ingressen av patentkravet 10 med de fördelaktiga egenskaperna hos den kän- netecknande delen av nämnda patentkrav.
Förfarandet enligt föreliggande uppfinning innefattar i steg, varvid varje steg representerar en förutbestämd prefix- längd och ett prefix representerar en grupp adresser, varvid det första steget representerar den kortaste prefixlängden och ste- get i representerar den längsta prefixlängden med n bitar, var- vid varje steg innefattar en tabell poster, varvid varje post innefattar ett pekarfält vilket antingen innefattar en pekare till tabellen i nästa steg, eller en pekare till en dirigerings- tabell som lagrar vidarebefordringsinformationen, varvid förfa- randet innefattar stegen: - att söka efter ett första antal bitar motsvarande den kortaste prefixlängden hos destinationsadressen i den första tabellen; - om posten i den första tabellen där en matchning hittas inne- fattar pekare till den andra tabellen, att söka efter ett andra antal bitar motsvarande den näst kortaste prefixlängden hos des- tinationsadressen i den andra tabellen; - och så vidare till dess att ett längsta matchande prefix har hittats, varvid pekaren till dirigeringstabellen ger vidarebe- fordringsinformationen för att vidarebefordra det inkommande da- tapaketet. Huvudfördelen med detta förfarande är att det kan ut- föra en uppslagning per tabellcykel. Dessutom är förfarandet enkelt och snabbt, och det är därför lämpligt för en kvalifice- rad IP-nätväxel.
Fördelaktigtvis innefattar varje post i de första (i- l)-tabellerna också en delbit och en giltig bit, och varje post i tabellen i innefattar också en giltig bit, varvid en satt gil- tig bit i en post representerar ett giltigt prefix, och pekar- fältet för denna post innefattar en pekare till dirigeringsta- 10 15 20 25 30 35 511972 bellen, och en satt delbit i en post i tabellen q innebär att prefixet matchar en post i dirigeringstabellen, men är kortare än denna post, och pekarfältet för posten i tabellen q innefat- tar en pekare till tabellen (q+l), varvid q är ett heltal och lšqši-1.
En post i de första (i-1)-tabellerna tillåts företrä- desvis inte att ha báde en satt giltig bit och en satt delbit.
En matchning hittas företrädesvis när en post i ett steg innefattar en satt giltig bit och alla de matchande poster- na för kortare prefixlängder är satta delbitar.
Varje post i varje tabell innefattar också företrädes- vis ett maskfält, ett adressetikettfält, och en komprimerings- flaggbit, varvid en satt komprimeringsflaggbit indikerar att komprimering används, varvid förfarandet för tabellen r, där r är ett heltal och lšrsi, också innefattar de följande stegen: - att OCH-behandla maskfältet och destinationsadressbitarna mot- svarande prefixlängden r, vilket ger maskerade destinationsad- ressbitar såsom utsignal; - om komprimeringsflaggbiten inte är satt, att utmata en ny pe- kare vilken inmatas till tabellen q, och som inmatas till diri- geringstabellen för tabellen i, varvid den nya pekaren bildas (q-l) tinationsadressbitarna motsvarande prefixlängden r sàsom lägre genom att använda pekaren från tabellen oändrad, med des- ordningens bitar; eller - om komprimeringsflaggbiten är satt, att utmata en ny pekare vilken inmatas till tabellen q, och som inmatas till dirige- ringstabellen för tabellen i, varvid den nya pekaren bildas med de högre ordningens bitar satta till 0, och de lägre ordningens bitar bildas genom att använda bitarna av delen med högre ord- ning av pekaren från tabellen (q-1), och den minst signifikanta biten hos den nya pekaren kommer från jämförarsteget.
Utföringsformer av uppfinningen kommer nu att beskrivas med en hänvisning till de bifogade ritningarna, där: Kort beskrivning av ritningarna.
Fig. l visar ett schema pà fälten i ett IP- datapakethuvud; 10 15 20 25 30 35 511972 Pig. 2 visar ett schema på ett prefixträd med adresser på 6-bitar som använder tre prefixlängder enligt principen en- ligt föreliggande uppfinning; Fig. 3 visar ett blockschema pà en uppslagningsanord- ning enligt föreliggande uppfinning; Fig. 4 visar ett blockschema pà ett dekomprimerings- logikorgan som utgör en del av uppslagningsanordningen enligt föreliggande uppfinning; och Fig. 5 visar ett flödesschema på förfarandet enligt föreliggande uppfinning.
Detaljerad beskrivning av utföringsformer.
I fig. 1 visas ett schema på fälten i ett IP-datapaket- huvud. IP-datapakethuvudet innefattar 12 olika fält. Såsom visas IP-huvudlängd, flaggor, i fig. 1 är dessa fält: version, typ av tjänst, total längd, livstid, protokoll, huvudkontrollsumma, källadress, och destina- Det kan också innefatta ett valfritt fält. identifiering, fragmentsförskjutning, tionsadress.
Det finns i princip två olika typer av IP-datapaket- klassificering: IP-adressuppslagning, vilken används för att vi- darebefordra unicast-datapaket baserat på deras destinations- adress, och identifieraruppslagning, som är avsedd att användas exempelvis för att vidarebefordra multicast-datapaket och flöden av datapaket.
Föreliggande uppfinning är baserad pà IP-adressuppslag- ning.
En dirigeringstabellspost för IP-adresser har två fält; ett prefix och en nästa hoppadress. Ett prefix representerar en grupp adresser, och erhålles såsom ett IP-adressprefix och en prefixlängd. IP-prefixet l93.10.66/234 representerar exempelvis alla IP-adresser vilkas 24 första bitar lika med l93.lO.66. Sà en dirigeringstabellspost för ett givet prefix gäller alla adresser vilka är i gruppen som täcks av prefixet.
Principen för en adressuppslagning är baserad pà det längsta matchande prefixet; med destinationsadressen hos ett in- kommande IP-datapaket såsom nyckel, söks dirigeringstabellen för poster med matchande prefix. Om det finns mer än en matchande post, väljs den med det längsta prefixet. Genom att använda den- 10 15 20 25 30 511 972 na princip är det alltid den mest specifika dirigeringstabells- post som väljes. Beakta exempelvis en dirigeringstabell med föl- jande tre poster: prefix nästa hopp 0/0 193.l0.66.l 193.l0.64/26 l93.10.66.27 l93.l0.66/28 l93.lO.66.l38 Adressen l93.10.66.50 skulle matcha alla tre posterna, (193.10.66/28) den är den mest speci- men det är den senaste posten som används efter- som den har det längsta prefixet (d.v.s., fika posten).
I fig. 2 visas ett schema på ett prefixträd med adres- ser med 6-bitar som använder tre prefixlängder enligt principen för föreliggande uppfinning. Adressutrymmet kan betraktas sàsom ett träd, där noderna representerar prefix. Varje nivå i trädet representerar en specifik prefixlängd. Prefix med andra längder än de som används i trädet, måste utsträckas till flera längre prefix. För exempelvis trädet i fig. 2 skulle prefixet ”0l0” med längden 3 utsträckas till ”0100” och ”0l0l” med längden 4.
I trädet har varje nod en av tvà egenskaper, varvid den första indikerar om noden representerar ett giltig prefix, mot- och det andra indikerar svarande en post i dirigeringstabellen, om den är en del av ett giltig prefix, varvid en del innebär att prefixet matchar en post i dirigeringstabellen men är kortare än denna post (ett prefix av ett prefix), varvid en nod inte till- làts vara både giltig och del. Om så är fallet måste den giltiga vägen utsträckas till den nästa längden, markerande alla noderna med denna längd såsom giltiga. Om ingen av egenskaperna är sat- ta, anses noden vara ogiltig.
För att hitta en matchande väg, söks trädet från det kortaste prefixet till man råkar ut för den första giltiga eller ogiltiga noden. Pà detta sätt garanteras att den längsta match- ningen hittas.
Det följande är proceduren för att hitta adressen ”OlOll0” i en dirigeringstabell representerad av trädet i fig. 10 15 20 25 30 35 10 511972 2. De tre prefixlängderna är 2,4 och 6. Först uppslages den kor- Den matchande posten är en del, resul- ”OlOl”. del. En sista uppslagning ”O10110” utföres sedan, resulterande taste prefixlängden ”Ol”. terande i en andra uppslagning, Denna post är också en i en giltig post. Denna post pekar pà dirigeringstabellen där vidarebefordringsinformationen är lagrad.
När färre prefixnivåer används i datastrukturen, behövs mera minne för att lagra den. Det är sà pà grund av att bitut- sträckningen upp till en giltig prefixlängd, och behovet av att alla poster i en prefixgrupp ska vara närvarande. Om exempelvis steget mellan två längder är 8-bitar, kommer varje nod som har delens egenskap satt att ha 256 barnnoder i sin prefixgrupp. Men med färre nivàer hittas ett prefix med färre minnesátkomster, vilket gör uppslagningen snabbare. Det ideala valet av nivåer och avståndet där mellan, beror på vilken prestanda som behövs, och hur mycket minne som kan användas.
I fig. 3 visas ett blockschema pà en uppslagningsanord- ning enligt föreliggande uppfinning. Uppslagningsanordningen 30 är baserad på IP-adressuppslagning, som används för att vidare- befordra unicast-datapaket baserat på deras destinationsadress.
Uppslagningsanordningen 30 innefattar i steg 321, 322,..., 322. I denna figur är i 4. Det första steget 321 representerar den kor- taste prefixlängden och det fjärde steget 324 representerar den längsta prefixlängden med n bitar. Uppslagningsanordningen 30 innefattar också ett dirigeringminnesorgan anslutet till det 322, 323, 324 innefattar ett minnesorgan 361, 362, 363, 364 för att lagra en tabell poster, fjärde steget 324. Varje steg 32h varvid varje post innefattar ett pekarfält som antingen innefat- tar en pekare till minnesorganet till nästa steg, eller en peka- re till dirigeringsminnesorganet 34 som lagrar vidarebeford- ringsinformationen. Destinationsadressen inmatas till uppslag- ningsanordningen 30 via en ledning 38. Ett första antal bitar motsvarande den kortaste prefixlängden hos destinationsadressen söks efter i det första minnesorganet 361, och om posten i det första minnesorganet 361 där en matchning hittas innefattar en pekare till det andra minnesorganet 362, dà söks ett andra antal bitar motsvarande den näst kortaste prefixlängden hos destina- tionsadressen i det andra minnesorganet 362, och så vidare till 10 15 20 25 30 35 ll 511 972 dess att ett längsta matchande prefix har hittats, varvid peka- ren till dirigeringsminnesorganet 34 ger vidarebefordringsinfor- mationen för att vidarebefordra det inkommande datapaketet. Alla 323, 324 innefattar vart och ett ett logikorgan 402, 403, 404, varvid logikorganet i är anslutet till stegen utom det första 322, både minnesorganet i och minnesorganet (i-1). Varje post i det fjärde minnesorganet 364 innefattar också en giltig bit, och varje post i de tre första minnesorganen 361, 362, 363 innefattar också en delbit och en giltig bit. En satt giltig bit i en post representerar ett giltigt prefix, och pekarfältet för denna post innefattar en pekare till dirigeringsminnesorganet 34. En satt delbit i en post i minnesorganet q 361, 362, 363 innebär att pre- fixet matchar en post i dirigeringsminnesorganet 34, men är kor- tare än denna post, och pekarfältet för posten i minnesorganet q 361, 362, 363 innefattar en pekare till minnesorganet (q+l) 36% 363, 364, varvid q är ett heltal och lšqíi-l=3. Vart och ett av de tre första minnesorganen 361, 362, 363 har en pekarutgàng, en giltig bitutgàng och en delbitsutgång. Det fjärde minnesorganet 364 har endast en pekarutgâng och en giltig bitutgàng. Det fjär- de logikorganet 404 innefattar en multiplexor 424, en ELLER- grind 444 och en OCH-grind 464. Varje logikorgan i alla de andra stegen utom det första steget 402, 403 innefattar en multiplexor 422;423, och en ELLER-grind 442;443, en första OCH-grind 462;463 och en andra OCH-grind 482;483. Ingångarna hos multiplexorn 422 är anslutna till pekarutgàngarna hos de första och andra minne- sorganen 361, 362. Ingångarna hos den första OCH-grinden 462 är anslutna till den giltiga bitutgàngen hos det andra minnesorga- net 362 och till delbitsutgången hos det första minnesorganet 361. Ingångarna hos den andra OCH-grinden 482 är anslutna till delbitsutgàngen hos de första och andra minnesorganen 361, 362.
Ingångarna hos ELLER-grinden 442 är anslutna till en utgång hos den första OCH-grinden 462 och till den giltiga bitutgàngen hos det första minnesorganet 361. Ingångarna till multiplexorn i steget p, där p är ett heltal och 3$pSi-1, är anslutna till pekarutgången hos minnesorganet p och till en utgång hos multi- plexorn hos steget (p-1). Ingångarna hos den första OCH-grinden i steget p är anslutna till den giltiga bitutgàngen hos minnes- organet p och till en utgång hos den andra OCH-grinden i steget 10 15 20 25 30 35 12 511 972 (p-1). Ingàngarna hos den andra OCH-grinden i steget p är an- slutna till delbitsutgàngen hos minnesorganet p och till utgàng- (p-l).
ELLER-grinden i steget p är anslutna till utgången hos den förs- (p-l) och till en utgång hos ELLER- Ingàngarna hos multiplexorn 424 är an- en hos den andra OCH-grinden i steget Ingàngarna hos ta OCH-grinden i steget (p-1)- slutna till pekarutgàngen hos minnesorganet 364 och till en ut- grinden i steget gàng hos multiplexorn 423. Ingàngarna hos OCH-grinden 464 är an- slutna till den giltiga bitutgàngen hos minnesorganet 364 och till utgången hos den andra OCH-grinden 483. Ingàngarna hos ELLER-grinden 444 är anslutna till utgången hos OCH-grinden 464 och till utgången hos ELLER-grinden 443. Dirigeringsminnesorga- net 44 är anslutet till utgàngarna från multiplexorn 424 och ELLER-grinden 44+ Delbiten och den giltiga biten används för att bestämma I korthet hittas en match- ning om en post i ett steg är giltig och alla de matchande pos- när den längsta matchningen hittas. terna med kortare längder är delar. Pekaren och delbiten och giltiga bitar sänds fràn ett steg till nästa till dess att alla längder har undersökts. När en matchning hittas flyter den re- sulterande nätverkstabellpekaren genom de följande stegen, utan att ändras. Multiplexorn väljer pekaren för sitt steg om den giltiga biten för detta steg är satt, och delbiten för alla ti- digare stegen är satta. Om detta inte är sant väljer multiplex- orn utsignaler från det tidigare steget, d.v.s., sänder resulta- ten vidare från en tidigare träff.
I fig. logikorgan innefattat i uppslagningsanordningen enligt förelig- 4 visas ett blockschema pà ett dekomprimerings- gande uppfinning. Det visas endast ett dekomprimeringslogikorgan 501/ innefattar ett dekomprimeringslogikorgan. men varje steg i uppslagningsanordningen 30 (jämför fig. 3) I uppslagningsanord- ningen 30 enligt fig. 3 skulle det finnas 4 dekomprimerings- logikorgan 501, 502, 503, 50@ 501 innefattar en OCH-grind 521, en jämnförare 541, en första Varje dekomprimeringslogikorgan multiplexor 561 och en andra multiplexor 581. Varje post i varje 362, 363, 364 ett adressetikettfält och en komprimeringsflagg- minnesorgan 36h (jämför fig. 3) innefattar också ett maskfält, bit, varvid en satt komprimeringsflaggbit indikerar att kompri- 10 15 20 25 30 35 13 511972 mering används. Vart och ett av minnesorganen 361, 362, 363, 364 har också en maskfältutgàng, en adressetikettfältutgàng och en komprimeringsflaggbitutgáng. I fig. 4 visas dekomprimerings- logikorganet 501 för det första steget. Dekomprimeringslogik- organen för de andra stegen är konstruerade på samma sätt och visas inte. Ingàngarna till OCH-grinden 521 är maskfältutgàngen och den första prefixlängden för destinationsadressen. Ingàngar- na till jämnföraren 541 är adressetikettfältutgången och en ut- gàng från OCH-grinden 521. Ingàngarna till den första multiplex- orn 561 är pekarutgàngen och en logisk 0-signal. Ingàngarna till den andra multiplexorn är utgången från OCH-grinden 521 och en utgång från jämnföraren 541. Dekomprimeringslogikorganet 501 ut- matar en ny pekare, vilken inmatas till det andra minnesorganet 362 (jämför fig. 3).
Bakgrunden till konstruktionen enligt fig. 4 är att ett vanligt fall i glesa dirigeringstabeller är att en prefixgrupp endast innefattar två olika typer av poster. Den första typen är en eller flera konsekutiva giltiga poster, alla identiska. Den andra typen består av alla andra poster i gruppen och är anting- en giltiga eller ogiltiga. Om de är giltiga är det på grund av utsträckningen av en kortare matchande väg, som den första typen av poster överlappar. För att optimera minneskraven för dessa grupper inför vi ett speciellt sätt att representera den. Till varje delpost adderas en etikett som identifierar den giltiga posten med den följande längden, och också en längdindikator eller en mask för att tillåta grupper med giltiga. Pà detta sätt kan tabellen minskas till endast två poster. En post för adres- ser som matchar etiketten, och en post för de andra adresserna.
Vi behöver också en bit för att ange att komprimering skall ut- föras. Bitar i posterna sparas genom att placera alla de kompri- merade tabellerna i làgadressomrádet hos minnet. Genom att utfö- ra detta kan de högre ordningens adressbitar istället användas såsom lägre ordningens bitar vid adressering bland de komprime- rade tabellerna.
I fig. 5 visas ett flödesschema pà förfarandet enligt föreliggande uppfinning. Förfarandet börjar vid blocket 60. För- farandet innefattar i steg, varvid varje steg representerar, en förutbestämd prefixlängd och ett prefix representerar en grupp 10 15 20 25 14 511 972 adresser, varvid det första steget representerar den kortaste prefixlängden och steget i representerar den längsta prefixläng- den med n bitar, varvid varje steg innefattar en tabell med pos- ter, varvid varje post innefattar ett pekarfält som antingen in- nefattar en pekare till tabellen i nästa steg, eller en pekare till en dirigeringstabell som lagrar vidarebefordringsinforma- vid blocket 62, att söka efter ett första antal bitar motsvarande den kortaste tionen. Därefter, fortsätter förfarandet genom prefixlängden hos destinationsadressen i den första tabellen.
Därefter, vid blocket 64, ställs frågan huruvida posten i den tabellen där en matchning hittas innefattar en pekare till den andra tabellen. Om svaret är jakande fortsätter förfarandet med blocket 66, motsvarande den näst kortaste prefixlängden hos destinationsad- vid blocket 68, ställs frågan huruvida posten i den andra tabellen där en matchning där en sökning utföres efter ett andra antal bitar ressen i den andra tabellen. Därefter, hittas innefattar en pekare till den tredje tabellen. Om svaret är jakande fortsätter förfarandet till dess att ett längsta mat- chande prefix har hittats, varvid pekaren till dirigeringstabel- len, vid blocket 70, ger vidarebefordringsinformationen för att vidarebefordra det inkommande datapaketet. Sedan avslutas förfa- randet vid blocket 72. gativt fortsätter förfarandet med blocket 70.
Om svaret vid blocket 64 eller 68 är ne- Uppfinningen är inte begränsad till den i det föregåen- de beskrivna utföringsformen. Det kommer att vara uppenbart att många olika modifieringar är möjliga inom omfattningen av de följande patentkraven.

Claims (14)

10 15 20 25 30 35 15 511 972 Patentkrav.
1. En uppslagningsanordning (30) för klassificering och vidarebefordring av datapaket, varvid insignalen till uppslag- ningsanordningen (30) är en destinationsadress hos ett inkomman- de datapaket och destinationsadressen innefattar n bitar, där n är ett heltal kännetecknad av att uppslagningsanordningen inne- fattar i steg (321, 322, 323, 324), varvid varje steg (321, 32% 323, 324) representerar en förutbestämd prefixlängd och ett pre- fix representerar en grupp adresser, varvid det första steget (321) representerar den kortaste prefixlängden och steget i (324) representerar den längsta prefixlängden med n bitar, och av att uppslagningsanordningen (30) också innefattar ett dirige- ringsminnesorgan (34) anslutet till steget i (324), varvid varje steg (321, 322, 323, 324) innefattar ett minnesorgan (361, 36% 363, 361) för att lagra en tabell med poster, varvid varje post innefattar ett pekarfält som antingen innefattar en pekare till minnesorganet i nästa steg, eller en pekare till dirigeringsmin- nesorganet (34) som lagrar vidarebefordringsinformationen, var- vid ett första antal bitar motsvarande den kortaste prefixläng- den hos destinationsadressen söks efter i det första minnesorga- net (361), och om posten i det första minnesorganet (361) där en matchning hittas innefattar en pekare till det andra minnesorga- net (362), då söks ett andra antal bitar motsvarande den näst kortaste prefixlängden hos destinationsadressen efter i det and- ra minnesorganet (362) och så vidare till dess att ett längsta matchande prefix har funnits, varvid pekaren till dirigerings- minnesorganet (34) ger vidarebefordringsinformationen för att vidarebefordra det inkommande datapaketet.
2. En uppslagningsanordning (30) enligt patentkravet 1, kännetecknad av att det första steget (321) endast innefattar det första minnesorganet (361), och av att alla de andra stegen (321, 323, 324) vart och ett innefattar ett logikorgan (402, 40% 404), varvid logikorganet (q+1) (402, 403, 405 både minnesorganet (q+1) (362, 363, 364) och minnesorganet q (361, 362, 363), varvid q är ett heltal och lšqíi-1. är anslutet till 10 15 20 25 30 35 16 511 972
3. En uppslagningsanordning (30) enligt patentkravet 2, kännetecknad av att varje post i de första (i-1) minnesorganen (361, 362, 363) också innefattar en delbit och en giltig bit, och varje post i minnesorganet i (364) innefattar också en giltig bit, varvid en satt giltig bit i en post representerar ett pre- fix, och pekarfältet för denna post innefattar en pekare till dirigeringsminnesorganet (34) och en satt delbit i en post i minnesorganet q innebär att prefixet matchar en post i dirige- (34), men är kortare än denna post, karfältet för posten i minnesorganet q (361, 362, 369 ringsminnesorganet och pe- innefattar en pekar till minnesorganet
4. En uppslagningsanordning (30) enligt patentkravet 3, (i-1) nen (361, 362, 363) har en pekarutgàng, en giltig bitutgàng och (36U utgång och en giltig bitutgàng, varvid pekarutgàngen hos minnes- organet q (361;362;363) är ansluten till minnesorganet (q+1) (362;363;364), (q+1) (322, 323/ 324), och varvid den giltiga bitutgàngen och delbitsutgàngen hos kännetecknad av att, vart och ett av de första minnesorga- en delbitsutgàng, och av att minnesorganet i har en pekar- och till logikorganet hos steget minnesorganet q (361, 362, 363) är anslutna till logikorganet hos steget (q+l) (322, 323, 329.
5. En uppslagningsanordning (30) enligt patentkravet 4, (324) innefat- och en OCH-grind kännetecknad av att logikorganet (404) i steget i tar en multiplexor (424), en ELLER-grind (449, (464), och av att varje logikorgan (402;4Ofl gen utom det första steget innefattar en multiplexor (422;42fl, en ELLER-grind (442;443), (462;46fi, andra OCH-grind (482, 483), varvid ingàngarna hos multiplexorn i alla de andra ste- en första OCH-grind och en (422) i det andra steget är anslutna till pekarutgàngarna hos de (3611 ß i det andra steget är anslutna till första och andra minnesorganen och ingàngarna hos (46fl den giltiga bitutgången hos det andra minnesorganet (362) och den första OCH-grinden till delbitsutgången hos det första minnesorganet (361), och in- gångarna hos det andra OCH-grinden (482) i det andra steget är anslutna till delbitsutgàngarna hos det första och andra minnes- 10 15 20 25 30 35 17 511 972 organet (361, 362), och ingángarna hos ELLER-grinden (442) i det andra steget är anslutna till en utgång från den första OCH- grinden (462) i det andra steget och till den giltiga bitutgàng- en hos det första minnesorganet (361), varvid ingángarna till multiplexorn (423) i steget p, där p är ett heltal och 3SpSi-1, är anslutna till pekarutgången hos minnesorganet p (363) och till en utgång hos multiplexorn (422) hos steget (p-l), och in- gångarna hos den första OCH-grinden (463) i steget p är anslutna till den giltiga bitutgången hos minnesorganet (363) och till en utgång hos den andra OCH-grinden (482) i steget (p-l), och in- gángarna hos den andra OCH-grinden (483) i steget p är anslutna till delbitsutgången hos minnesorganet p (363) och till utgången hos den andra OCH-grinden (482) (p-l), hos ELLER-grinden (443) i steget p är anslutna till utgången hos den första OCH-grinden (463) i steget p och till en utgång hos ELLER-grinden (442) i steget (p-l), multiplexorn (424) i steget i är anslutna till pekarutgången hos i steget och ingángarna och varvid ingángarna hos minnesorganet i (364) och till en utgång hos multiplexorn (429 hos steget (i-l), och ingángarna hos OCH-grinden (464) i steget i är anslutna till den giltiga bitutgången hos minnesorganet i (364) och till den andra OCH-grinden (483) (i-1), i steget i är anslutna till i steget och ingángarna hos ELLER-grinden (449 utgången hos OCH-grinden (464) i steget i och till utgången hos ELLER-grinden (443) i steget (i-1).
6. En uppslagningsanordning (30) enligt patentkravet 5, kännetecknad av att en matchning hittas när en post i ett steg innefattar en satt giltig bitutgàng och alla de matchande pos- terna med kortare prefixlängder har satta delbitsutgángar.
7. En uppslagningsanordning (30) enligt något av patent- kännetecknad av att varje steg (321, 322, 32” 324) också innefattar ett dekomprimeringslogikorgan (501, 50% kraven l - 6, 503, 504), varvid dekomprimeringslogikorganet i (504) är anslutet till multiplexorn (424) i steget i och dekomprimeringslogikorga- net q (5O1;5O2;503) är anslutet till både minnesorganet q (361;362;363) och minnesorganet (q+1) (362;363;364). 10 15 20 25 30 35 18 511 972 (30) enligt patentkravet 7, kännetecknad av att varje post i varje minnesorgan (361, 36% 363, 364) ett adressetikettfält och en komprimeringsflaggbit, varvid en satt komprimeringsflagg-
8. En uppslagningsanordning också innefattar ett maskfält, bit indikerar att komprimering används, och av att vart och ett (3611 362: 363: gång, en adressetikettutgång och en komprimeringsflaggbitutgång, av minnesorganen också har en maskfältut- varvid maskfältutgången, adressetikettutgàngen, komprimerings- flaggbitutgången och pekarutgången hos minnesorganet r (361F362i363í364) (5Û1i5Û2í5Û3i5Û4)/ je dekomprimeringslogikorgan (SOU är ansluten till dekomprimeringslogikorganet r där r är ett heltal och lšríi, 502, 503, 504) pekare, varvid den nya pekarutgången från dekomprimeringslogik- (q+l) (362;363;364) och den nya pekarutgången från dekomprimerings- och varvid var- utmatar en ny organet q (5O1;5O2;5O3) är ansluten till minnesorganet logikorganet i (504) är ansluten till multiplexorn (424) i ste- get i.
9. En uppslagningsanordning (30) enligt patentkravet 8, kännetecknad av att varje dekomprimeringslogikorgan (501;5O2;5O3;5O4) innefattar en OCH-grind (521;522;523;524), en jämnförare (541;542;543;544), en första multiplexor (561;562;563;564) och en andra multiplexor (581;582;583;58fl, vid ingången hos OCH-grinden (521;522;523;52U (5O1;502;503;504) (361;362;36a;364) hos destinationsadressen, och ingången hos jämnföraren (541;542;543F544) (5O1;502;5O3;5O4) är ansluten till adressetikettfältutgången hos minnesorganet r (361;362;363;36U var- i dekomprimerings- logikorganet r är ansluten till maskfältutgàng- en hos minnesorganet r och till prefixlängden r i dekomprimeringslogikorganet r och till en utgång från OCH- (521;522;523;524) i dekomprimeringslogikorganet r (50fi 5O2;5O3;504), och ingången hos den första multiplexorn (561;562; 563;564) (501;5O2;5O3;5O4) sluten till pekarutgången hos minnesorganet r (361;362;363;36U grinden i dekomprimeringslogikorganet r är an- och ingången hos den andra multi- (501: är ansluten till utgången från den OCH-grinden (529 (5Û1F502F5Û3i5Û4), och till en logisk 0-signal, plexorn (581;582;583;58U 502;503;5O4) 522;523;524) i dekomprimeringslogikorganet r i dekomprimeringslogikorganet r 10 15 20 25 30 35 19 511 972 och till en utgång fràn jämnföraren (541;542;543;544) i dekompri- meringslogikorganet r (501;502;5O3;504) och av att den nya pe- karutgàngen från dekomprimeringslogikorganet r (501;5O2;5O3;50U antingen är utgången från första multiplexorn (561;562;563;56U eller utgången fràn den andra multiplexorn (581;582;583;584) i dekomprimeringslogikorganet r (501;5O2;5O3;5O4) beroende på om komprimeringsflaggbiten är satt eller inte.
10. Ett förfarande för att klassificera och vidarebefordra datapaket, varvid en destinationsadress hos ett inkommande data- paket innefattar n bitar, varvid n är ett heltal, kännetecknad av att förfarandet innefattar i steg, varvid varje steg repre- senterar en förutbestämd prefixlängd och ett prefix represente- rar en grupp adresser, varvid det första steget representerar den kortaste prefixlängden och steget i representerar den längs- ta preifixlängden med n bitar, varvid varje steg innefattar en tabell med poster, varvid varje post innefattar ett pekarfält som antingen innefattar en pekare till tabellen i nästa steg, eller en pekare till en dirigeringstabell som lagrar vidarebe- fordringsinformationen, varvid förfarandet innefattar stegen: - att söka efter ett första antal bitar motsvarande den kortaste prefixlängden hos destinationsadressen i den första tabellen; - om posten i den första tabellen där en matchning hittas inne- fattar en pekare till den andra tabellen, att söka efter ett andra antal bitar motsvarande den näst kortaste prefixlängden hos destinationsadressen i den andra tabellen: - och så vidare till dess att ett längsta matchande prefix har funnits, varvid pekaren till dirigeringstabellen ger vidarebe- fordringsinformationen för att vidarebefordra det inkommande datapaketet.
11. ll. Ett förfarande enligt patentkravet 10, kännetecknad av att varje post i de första (i-1) tabellerna också innefattar en delbit och en giltig bit, och varje post i tabellen i innefattar också en giltig bit, varvid en satt giltig bit i en post repre- senterar ett giltigt prefix, och pekarfältet för denna post in- nefattar en pekare till dirigeringstabellen, och en satt delbit i en post i tabellen q innebär att prefixet matchar en post i 10 15 20 25 30 35 20 511 972 dirigeringstabellen, men är kortare än denna post, och pekar- fältet för posten i tabellen q innefattar en pekare till tabel- len (q+1), varvid q är ett heltal och líqši-1.
12. Ett förfarande enligt patentkravet ll, kännetecknad av att en post i de första (i-1)-tabellerna inte tillåts att både ha en satt giltig bit och en satt delbit.
13. Ett förfarande enligt patentkravet 12, kännetecknad av att en matchning hittas när en post i ett steg innefattar en satt giltig bit och alla de matchande posterna med kortare pre- fixlängder har satta delbitar.
14. Ett förfarande enligt patentkravet 13, kännetecknad av att varje post i varje tabell också innefattar ett maskfält, ett adressetikettfält, och en komprimeringsflaggbit, varvid en satt komprimeringsflaggbit indikerar att komprimering används, varvid förfarandet för tabellen r, där r är ett heltal och líríi, också innefattar de följande stegen: - att OCH-behandla maskfält och destinationsadressbitarna mot- svarande prefixlängden r, vilket ger maskerande destinationsad- ressbitar såsom utsignal; - att jämföra de maskerade destinationsadressbitarna med adress- etikettfältet; - om komprimeringsflaggbiten inte är satt, att utmata en ny pe- kare vilken inmatas till tabellen q, och som inmatas till diri- geringstabellen för tabellen i, varvid den nya pekaren bildas (q-l) tinationsadressbitarna motsvarande prefixlängden r såsom lägre genom att använda pekaren från tabellen oändrad, med des- ordningens bitar; eller - om komprimeringsflaggbiten är satt, att utmata en ny pekare vilken inmatas till tabellen q, och som inmatas till dirige- ringstabellen för tabellen i, varvid den nya pekaren bildas med de högre ordningens bitarna satta till noll, och de lägre ord- ningens bitarna bildas genom att använda bitarna hos delen med högre ordning av pekaren från tabellen (q-1), och den minst sig- nifikanta biten hos den nya pekaren kommer fràn jämförarsteget.
SE9703292A 1997-09-09 1997-09-09 Uppslagningsanordning och förfarande för att klassificera och vidarebefordra datapaket SE511972C2 (sv)

Priority Applications (5)

Application Number Priority Date Filing Date Title
SE9703292A SE511972C2 (sv) 1997-09-09 1997-09-09 Uppslagningsanordning och förfarande för att klassificera och vidarebefordra datapaket
AU91008/98A AU9100898A (en) 1997-09-09 1998-09-07 A lookup device and a method for classification and forwarding of packets
PCT/SE1998/001584 WO1999013619A2 (en) 1997-09-09 1998-09-07 A lookup device and a method for classification and forwarding of packets
CA002302744A CA2302744A1 (en) 1997-09-09 1998-09-07 A lookup device and a method for classification and forwarding of packets
EP98943155A EP1025678A2 (en) 1997-09-09 1998-09-07 A lookup device and a method for classification and forwarding of packets

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
SE9703292A SE511972C2 (sv) 1997-09-09 1997-09-09 Uppslagningsanordning och förfarande för att klassificera och vidarebefordra datapaket

Publications (3)

Publication Number Publication Date
SE9703292D0 SE9703292D0 (sv) 1997-09-09
SE9703292L SE9703292L (sv) 1999-03-10
SE511972C2 true SE511972C2 (sv) 2000-01-10

Family

ID=20408224

Family Applications (1)

Application Number Title Priority Date Filing Date
SE9703292A SE511972C2 (sv) 1997-09-09 1997-09-09 Uppslagningsanordning och förfarande för att klassificera och vidarebefordra datapaket

Country Status (5)

Country Link
EP (1) EP1025678A2 (sv)
AU (1) AU9100898A (sv)
CA (1) CA2302744A1 (sv)
SE (1) SE511972C2 (sv)
WO (1) WO1999013619A2 (sv)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6975631B1 (en) * 1998-06-19 2005-12-13 Juniper Networks, Inc. Network packet forwarding lookup with a reduced number of memory accesses
GB9912129D0 (en) 1999-05-26 1999-07-28 3Com Corp Communication device with forwarding database having having a trie search facility
SE9903460L (sv) * 1999-09-22 2001-03-23 Effnet Group Ab Metod och system för snabba routinguppslag
US6799202B1 (en) * 1999-12-16 2004-09-28 Hachiro Kawaii Federated operating system for a server
GB2359693B (en) * 2000-02-26 2003-07-16 3Com Corp Network switch with truncated trie look-up facility
JP2003533913A (ja) * 2000-05-11 2003-11-11 ソリダム システムズ コーポレーション パケット分類用状態遷移機械
JP2001326679A (ja) 2000-05-15 2001-11-22 Fujitsu Ltd 情報装置、テーブル検索装置、テーブル検索方法、及び記録媒体
US7966421B2 (en) 2000-06-21 2011-06-21 SAtech Group, A.B. Limited Liability Company Method and apparatus for logically expanding the length of a search key
US6917954B2 (en) 2001-05-30 2005-07-12 Mosaid Technologies, Inc. Load balancing in IP address lookup
GB2378622A (en) 2001-08-11 2003-02-12 Zarlink Semiconductor Ltd Updating a lookup table used in mapping between TDM channels and packets
SE521907C2 (sv) * 2002-01-21 2003-12-16 Rockstorm Technologies Ab Metod och system för snabb IP-vägvalssökning för att fastställa vart ett IP-datagram med en given destinationsadress ska vidarebefordras

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5206856A (en) * 1989-12-27 1993-04-27 Bell Communications Research, Inc. Routing of network traffic
US5365520A (en) * 1992-03-27 1994-11-15 Motorola, Inc. Dynamic signal routing

Also Published As

Publication number Publication date
AU9100898A (en) 1999-03-29
CA2302744A1 (en) 1999-03-18
WO1999013619A3 (en) 1999-06-03
WO1999013619A2 (en) 1999-03-18
EP1025678A2 (en) 2000-08-09
SE9703292L (sv) 1999-03-10
SE9703292D0 (sv) 1997-09-09

Similar Documents

Publication Publication Date Title
US6658482B1 (en) Method for speeding up internet protocol address lookups with efficient use of memory
CN107800631B (zh) 使用ram中的散列表的tcam规则的有效匹配的方法和装置
US10496680B2 (en) High-performance bloom filter array
US7111071B1 (en) Longest prefix match for IP routers
US6606681B1 (en) Optimized content addressable memory (CAM)
US6181698B1 (en) Network routing table using content addressable memory
US6880064B1 (en) Method and apparatus for physical width expansion of a longest prefix match lookup table
US7443841B2 (en) Longest prefix matching (LPM) using a fixed comparison hash table
US7990958B2 (en) Method and apparatus for a four-way hash table
US7433871B2 (en) Efficient ipv4/ipv6 best matching prefix method and apparatus
US7830877B2 (en) Congestion level management in a network device
US8199652B2 (en) IP address lookup method and apparatus by using Bloom filter and multi-hashing architecture
US7212531B1 (en) Apparatus and method for efficient longest prefix match lookup
US20030210702A1 (en) Configurable packet processor
US20060167843A1 (en) Tire search engines and ternary CAM used as pre-classifier
KR100586461B1 (ko) 파이프라인 이진 트리를 이용한 ip 어드레스 검색 방법,하드웨어 구조 및 기록매체
CA2365395C (en) Default route coding
IE20010248A1 (en) Prefix search method and data structure using compressed search tables
SE511972C2 (sv) Uppslagningsanordning och förfarande för att klassificera och vidarebefordra datapaket
GB2350534A (en) Packet-based network device with forwarding database having a trie search facility
US6917954B2 (en) Load balancing in IP address lookup
US20040044868A1 (en) Method and apparatus for high-speed longest prefix match of keys in a memory
US7003625B2 (en) Searching small entities in a wide CAM
SE511971C2 (sv) En uppslagningsanordning och ett förfarande för klassificering och vidarebefordring av datapaket i datapaketförmedlande nät
EP1175756B1 (en) Longest matching prefix lookup

Legal Events

Date Code Title Description
NUG Patent has lapsed