DE60214670T2 - Verfahren und vorrichtung zur leitweglenkungstabellenverwaltung - Google Patents

Verfahren und vorrichtung zur leitweglenkungstabellenverwaltung Download PDF

Info

Publication number
DE60214670T2
DE60214670T2 DE60214670T DE60214670T DE60214670T2 DE 60214670 T2 DE60214670 T2 DE 60214670T2 DE 60214670 T DE60214670 T DE 60214670T DE 60214670 T DE60214670 T DE 60214670T DE 60214670 T2 DE60214670 T2 DE 60214670T2
Authority
DE
Germany
Prior art keywords
route
prefix
new route
index
mask length
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Lifetime
Application number
DE60214670T
Other languages
English (en)
Other versions
DE60214670D1 (de
Inventor
Alex Sunnyvale BACHMUTSKY
Vijay Santa Clara CHANDLER
Fai Chi Sunnyvale HO
Henry Cupertino TZENG
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nokia Inc
Original Assignee
Nokia Inc
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 Nokia Inc filed Critical Nokia Inc
Application granted granted Critical
Publication of DE60214670D1 publication Critical patent/DE60214670D1/de
Publication of DE60214670T2 publication Critical patent/DE60214670T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Circuits Of Receivers In General (AREA)
  • Time-Division Multiplex Systems (AREA)
  • Communication Control (AREA)
  • Electrical Discharge Machining, Electrochemical Machining, And Combined Machining (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Exchange Systems With Centralized Control (AREA)

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft im Allgemeinen das Gebiet der Netzadressierung. Genauer richtet sich die vorliegende Erfindung auf ein Verfahren und eine Vorrichtung zur Verwaltung einer Tabelle eines ternären inhaltsadressierbaren Speichers (TCAM).
  • ALLGEMEINER STAND DER TECHNIK
  • Das Internetprotokoll (IP) ist ein Netz vom Quellenleitwegtyp, wobei die Beförderung auf Basis einer Ziel-Internetadresse vorgenommen wird. Die Adressenbeförderung wird auf Basis von Etappen vorgenommen. Die Zieladresse wird in einer Leitweglenkungstabelle nachgeschlagen, um zu bestimmen, wo sich eine nächste Etappe befindet. Das Paket wird dann zur nächsten Etappe befördert. Ein Leitweglenkungsprotokoll wird verwendet, um sicherzustellen, daß das Paket während seiner Reise durch das Netz schließlich sein Ziel erreichen wird. Ein Dokument des Stands der Technik ist durch US-A-6,018,524 gegeben.
  • Das Wachstum des Internet verursacht, daß Leitweglenkungstabellen schneller als die Routertechnologie wachsen. Der Router würde Millionen von Einträgen in seiner Datenbank halten müssen, die den Millionen von Computern im Internet entsprechen. Der Nachschlagevorgang der Zieladresse in der Leitweglenkungstabelle ist ein wichtiger Teil des IP-Sendevorgangs. Eines der Internetprotokolle ist IP Version 4 ("Ipv4"). Der Adressenraum für das Ipv4 ist 32 Bit breit. Unter Ipv4 gibt es zwei Schemata von IP-Adressen. Ein IP-Adressen-Schema ist "klassenreich", während ein anderes IP-Adressen-Schema "klassenlos" ist. Jedes IP oder jede Internetadresse umfaßt eine Netzkennung und eine Wirtskennung. Die Netzkennung identifiziert das Netz, in dem sich der Wirt befindet. Die Netzkennung wird manchmal als Netzpräfix bezeichnet. Die Wirtskennung identifiziert den bestimmten Wirt im gegebenen Netz. Das klassereiche IP-Adressen-Schema umfaßt mehrere Klassen: A, B, C, D und E. Unter Klasse A ist die Netzkennung 8 Bit breit und die Wirtskennung 24 Bit breit. Unter Klasse B ist die Netzkennung 16 Bit breit, und unter Klasse C ist die Netzkennung 24 Bit breit. Jede der Klassen wird verwendet, um Netze unterschiedlicher Größe zu unterstützen, die eine unterschiedliche Anzahl von Wirten aufweisen. Netzkennungen nur aus Nullen oder nur aus Einsen sind für eine Standardleitweg- bzw. eine Rückschleifungsfunktion reserviert. Die Klasse D wird für einen Gruppenruf verwendet, und die Klasse E ist reserviert. Das klassenreiche IP-Adressen-Schema kann unterschiedliche Größen von Netzen nicht leistungsfähig unterbringen. Router in Netzen "des alten Stils" verwenden im Allgemeinen das klassenreiche IP-Adressen-Schema.
  • Das klassenlose IP-Adressen-Schema wird häufig als CIDR ("classless inter-domain routing – klassenlose Leitweglenkung zwischen Domänen") bezeichnet. Im Grunde beseitigt CIDR das Konzept von Netzen der Klasse A, B und C und ersetzt es dieses durch ein IP-Adressen-Präfix. CIDR kann verwendet werden, um eine Leitwegansammlung durchzuführen, wobei ein einzelner Leitweg den Adressenraum von mehreren Netznummern "des alten Stils" abdecken kann und daher viele der alten Leitwege ersetzt. CIDR macht es möglich, den verfügbaren Adressenraum leistungsfähiger zu nutzen und gestattet ein fortlaufendes ununterbrochenes Wachstum des Internet. Neuere Router verwenden das CIDR-Adressen-Schema.
  • Die IP-Paketbeförderung wird an jedem Router verarbeitet. Um den Nachschlagevorgang zu beschleunigen, wird im Vergleich zu Millionen von Internetadressen ein Satz von Adressenpräfixen gespeichert. Das Leitwegnachschlagen, das die Adressenpräfixe verwendet, wird als längste Präfixübereinstimmung bezeichnet. Bei der längsten Präfixübereinstimmung ist jede Zieladresse eine Zeichenkette von 32 Bit. Die Beförderungsentscheidung verläßt sich auf das Verwenden der Zieladresse und das Finden eines Eintrags, der die längste Präfixübereinstimmung aufweist. Die Zieladresse wird mit dem Satz von Adressenpräfixen verglichen, um einen nächsten Leitweg zu finden, um das Paket zu befördern. Es können zwar mehrere Präfixübereinstimmungen bestehen, doch würde der Leitweg gewählt werden, der die längste Präfixübereinstimmung aufweist. Der Algorithmus der längsten Übereinstimmung nimmt an, daß der Wirt Teil des Netzes ist, das die längste Präfixübereinstimmung aufweist.
  • Der herkömmliche Nachschlagevorgang beruht auf Software und verwendet Zerhackungen und Bäume. Es kann mehrere Nachschlagevorgänge pro Paket geben. Doch mit der Zunahme der Anzahl der Pakete sind schnellere Nachschlagevorgänge nötig. Ein Ansatz eines Hardware-Nachschlagens verwendet einen schnellen ternären inhaltsadressierbaren Speicher (TCAM). Der TCAM ist eine Speichervorrichtung, die schnelle Suchvorgänge wie etwa das Nachschlagen eines Eintrags in einer Leitweglenkungstabellendatenbank bereitstellt. Der TCAM gestattet das Abrufen einer Stelle eines Inhalts, sofern ein Teilinhalt gegeben ist. Wenn daher ein Inhalt (z.B. eine Zieladresse) gegeben ist, stellt der TCAM eine Stelleninformation (z.B. einen Leitweg) zu diesem Inhalt bereit. Zusätzlich gestattet der TCAM das Maskieren an Bitfeldern und kann er somit verwendet werden, um längste Präfixübereinstimmungen zu bestimmen. Jede TCAM-Speicherstelle weist ein entsprechendes Maskenregister auf Eine "1" im Maskenregister erzwingt eine Übereinstimmung am entsprechenden Bit in der TCAM-Speicherstelle, wo eine Adresse einer nächsten Etappe für einen nächsten Leitweg vorgespeichert ist. Das Präfix ist im Maskenregister gespeichert.
  • Die Verwaltung des TCAM-Speichers (der "TCAM-Tabelle") ist wesentlich, um in kürzester Zeit die richtige längste Präfixübereinstimmung bereitzustellen.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Es wird ein Verfahren und ein System zur Verwaltung einer TCAM-Tabelle offenbart. Ein neuer Leitweg wird unter Verwendung eines Index an einer verfügbaren Stelle in die TCAM-Tabelle eingesetzt. Der neue Leitweg wird einem Patricia-Baum hinzugefügt, der durch eine Maskenlänge organisiert ist, die dem neuen Leitweg zugehörig ist. In Patricia-Bäumen, die durch längere Maskenlängen organisiert sind, und in Patricia-Bäumen, die durch kürzere Maskenlängen organisiert sind, wird nach Leitwegen gesucht, die gemeinsame Präfixe mit dem neuen Leitweg aufweisen, um eine Kette für den neuen Leitweg ausfindig zu machen. Die Leitwege in der Kette sind in einer solchen Reihenfolge des längeren Präfixes zuerst sequenziert, daß ein Leitweg an einer Spitze der Kette ein längstes Präfix aufweist. Ein Vertauschen der Leitwege in der Kette wird durchgeführt, um den neuen Leitweg unterzubringen und die Reihenfolge des längsten Präfixes zuerst beizubehalten.
  • Andere Merkmale und Vorteile der vorliegenden Erfindung werden aus den beiliegenden Zeichnungen und aus der nachstehend folgenden ausführlichen Beschreibung offensichtlich werden.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die vorliegende Erfindung ist in den Figuren der beiliegenden Zeichnungen beispielhaft und ohne Beschränkung veranschaulicht, wobei gleiche Bezugszeichen gleichartige Elemente angeben, und wobei
  • 1 ein Beispiel der Tätigkeit der längsten Präfixübereinstimmung ist.
  • 2 ist eine beispielhafte TCAM-Tabelle, die eine längste Präfixübereinstimmung veranschaulicht.
  • 3 ist eine beispielhafte Darstellung eines TCAM.
  • 4 ist eine beispielhafte Darstellung von Leitwegketten.
  • 5 ist ein beispielhaftes Ablaufdiagramm, das einen Vorgang des Einsetzens eines neuen Leitwegs in eine TCAM-Tabelle nach einer Ausführungsform der vorliegenden Erfindung zeigt.
  • AUSFÜHRLICHE BESCHREIBUNG
  • 1 ist eine beispielhafte Darstellung einer Tätigkeit der längsten Präfixübereinstimmung. In diesem Beispiel wird die Zieladresse 105 (11.1.2.5) mit drei Leitwegen 110, 115 und 120 verglichen, um einen Leitweg mit dem längsten übereinstimmenden Präfix zu finden. Jeder Leitweg ist mit einer Maske verbunden, die eine Maskenlänge aufweist. Die binären Darstellungen der Zieladresse 105 und der Masken sind zum Bitvergleich gezeigt. Zum Beispiel ist die Maske für den Leitweg 110 24 Bit lang. Die Maske für den Leitweg 115 ist 16 Bit lang, und die Maske für den Leitweg 120 8 Bit lang. Die ersten 8 Bit der Zieladresse 105 stimmen mit allen drei Masken überein. Die ersten 16 Bit der Zieladresse stimmen mit den Masken für den Leitweg 110 und den Leitweg 115 überein. Die ersten 24 Bit der Zieladresse stimmen nur mit der Maske für den Leitweg 110 überein. Da der Leitweg 110 die längste Präfixübereinstimmung mit der Zieladresse bereitstellt, wird der Leitweg 110 ausgewählt. Es ist zu bemerken, daß in diesem Beispiel mehrere Vergleiche durchgeführt werden, um den Leitweg zu finden, der die längste Präfixübereinstimmung aufweist. Dies kann möglicherweise nicht leistungsfähig sein, wenn die Anzahl der Einträge oder Leitwege, die in der Leitweglenkungstabelle gespeichert sind, groß ist.
  • Es wäre vorteilhaft, wenn man fähig wäre, den Leitweg mit der längsten Präfixübereinstimmung in einem geringsten Zeitausmaß ausfindig zu machen.
  • 2 ist eine beispielhafte TCAM-Tabelle, die eine längste Präfixübereinstimmung veranschaulicht. Die Leitweglenkungstabelle ist im TCAM gespeichert. Diese Leitweglenkungstabelle wird als TCAM-Tabelle bezeichnet. Die TCAM-Tabelle 200 umfaßt IP-Adressen, die für Beförderungszwecke verwendet werden. Der TCAM gestattet, daß der oben beschriebene Vergleich in einem Schritt erfolgt. Jedes Mal, wenn der TCAM eine Präfixübereinstimmung findet, wird ein Ergebnis erzeugt.
  • In der TCAM-Tabelle 200 gibt es leere Räume, die verwendet werden können, um zusätzliche Leitwege einzusetzen. Die Zieladresse 205 in diesem Beispiel lautet 192.19.112.135. Wie oben besprochen ist jeder TCAM-Eintrag mit einer Maske (nicht gezeigt) verbunden. Wenn die Zieladresse 205 mit jedem Eintrag, der in der TCAM-Tabelle 200 gezeigt ist, verglichen wird, wird normalerweise der Leitweg, der mit dem Eintrag 215 verbunden ist, ausgewählt, da er die längste Präfixübereinstimmung bereitstellt. Doch da der Vergleich durch den TCAM auf eine solche Weise erfolgt, daß der erste Leitweg, der eine Präfixübereinstimmung aufweist, als das Ergebnis vorgelegt wird, wird der Leitweg, der mit dem Eintrag 210 verbunden ist, ausgewählt. Dies wäre eine unrichtige Auswahl, das die Maske, die mit dem Eintrag 210 verbunden ist, nur 24 Bit lang ist, während die Maske, die mit dem Eintrag 215 verbunden ist, 27 Bit lang ist. Was den TCAM betrifft, handelt der TCAM durch Bereitstellen der ersten Übereinstimmung richtig. Doch da die Software, die das Einsetzen von Leitwegen in die TCAM-Tabelle handhabt, unrichtig war, schafft es das Ergebnis nicht, die Anforderung der längsten Präfixübereinstimmung zu erfüllen. Ein Verfahren zum Finden der richtigen längsten Präfixübereinstimmung ist, die Einträge in der TCAM-Tabelle so anzuordnen, daß der Eintrag, der die längste Maske aufweist, vor jenen mit kürzeren Masken angeordnet ist. Auf diese Weise kann sichergestellt werden, daß die erste Übereinstimmung, die durch den TCAM gefunden wird, das längste Präfix aufweist. Diese Eigenschaft wird als "längste Präfixübereinstimmung zuerst" bezeichnet.
  • 3 ist eine beispielhafte Darstellung eines TCAM. Der TCAM besteht aus einem Bereich 305 eines ternären inhaltsadressierbaren Speichers (TCAM) und einem Speicherbereich 310. Bei einer Zieladresse 310 kann es im TCAM-Bereich 305 eine oder mehrere Präfixübereinstimmungen für Leitwege geben. Wenn ein Paket eintrifft, wird die Zieladresse extrahiert. Durch den TCAM 305 wird nachgeschlagen, um ein Ergebnis 325 abzurufen. Der TCAM 305 verwendet die Masken in Vergleichstätigkeiten, um das Ergebnis 325, das eine längste Präfixübereinstimmung aufweist, auszuwählen oder nachzuschlagen. Wenn keine Maske vorhanden ist, die mit der Zieladresse 325 übereinstimmt, hätte das Paket nicht an diesem Router eintreffen sollen und wird es verworfen.
  • Wenn eine Übereinstimmung vorhanden ist, wird das Ergebnis 325 untersucht. Das Ergebnis 325 muß verarbeitet werden, bevor es zu einer Schnittstelle ausgesendet werden kann. Das Ergebnis 325 kann ein direktes Ergebnis oder eine IP-Adresse sein. Ein Speicherzugriff vom Speicher 310 wird durchgeführt, um eine Bedeutung des TCAM-Ergebnisses 325 zu finden. Dieser Speicherzugriff stellt eine Handlung 330 bereit, die mit dem TCAM-Ergebnis 325 durchgeführt werden soll. Die Handlung 330 kann Informationen wie etwa eine Ausgangstornummer, eine Ausgangsart, eine Ausgangsverbindungsnummer, eine Schicht-2-Verkapselungsinformation usw. beinhalten. Zum Beispiel kann die Handlung das Zerhacken des Pakets in Zellen für den asynchronen Übermittlungsmodus, das Hinzufügen eines Datenkopfs für Frame-Relay, das Verwerfen des Ergebnisses 325, usw. erfordern. Abhängig von den Handlungsinformationen führt die virtuelle Maschine 335 die Handlung am Paket 320 durch und sendet sie ein Resultat 340 zur Schnittstelle aus. Das Resultat 340 kann ein neues Paket zur Übertragung sein. Es kann nichts sein, da das Paket verworfen worden sein kann. Wenn es sich um einen Router handelt, kann das Ergebnis eine IP-Adresse sein und gibt die Handlung an, dass das Paket 320 zu einer nächsten Etappe befördert werden soll.
  • Da eine direkte Beziehung zwischen einem Ergebnis 325 im TCAM 305 und einer Handlung 330 im Speicher 310 besteht, ist es wichtig, die TCAM-Tabelle so zu verwalten, daß Einsetz- und Löschvorgänge, die im TCAM 305 für die TCAM-Tabelle durchgeführt werden, keinerlei Unbeständigkeit mit dem Speicher 310 verursachen. Zusätzlich muß die TCAM-Tabelle in einer solchen Reichenfolge angeordnet sein, daß die Anforderung der längsten Präfixübereinstimmung mit minimaler Verzögerung durchgeführt werden kann. Daher wird dann, wenn in der TCAM-Tabelle ein neuer Eintrag hinzugefügt wird, dem Speicher 310 ein entsprechender Eintrag hinzugefügt. In der gleichen Weise muß dann, wenn ein Eintrag aus der TCAM-Tabelle entfernt wird, ein anderer entsprechender Eintrag aus dem Speicher 310 entfernt werden. Die Reihenfolge, in der Einträge in die TCAM-Tabelle und in den Speicher 310 hinzugefügt werden, ist wichtig, um eine Unbeständigkeit zu vermeiden.
  • Im Allgemeinen wird zum Einsetzen zuerst der Speicher 310 und dann die TCAM-Tabelle aktualisiert. Zum Löschen wird die TCAM-Tabelle zuerst gelöscht und ist die Löschung des Speichers 310 optional. Doch wenn ein Einsetzen an einer Stelle in der TCAM-Tabelle erfolgen soll, die bereits belegt ist, kommt es zu einer Kollision. Wenn eine Kollision vorhanden ist, ist ein Bewegen oder Vertauschen mehrerer Einträge in der TCAM-Tabelle nötig. Diese Vertauschungsvorgänge bieten ein potentielles Problem der Fehlübereinstimmung oder Unbeständigkeit zwischen den Einträgen in der TCAM-Tabelle und im Speicher 310.
  • 4 ist eine beispielhafte Darstellung von Leitwegketten. Die TCAM-Tabelle umfaßt Adressen und ihre entsprechenden Masken. Die Tabelle 400 in 4 listet die Adressen (Leitwege) und ihre zugehörigen Maskenlängen auf. Die Maskenlängen werden aus den Masken bestimmt. Jeder Leitweg ist durch seine Indexnummer identifiziert. Zum Beispiel wird die Indexnummer 10 in der TCAM-Tabelle 400 durch den Leitweg 405 eingenommen.
  • Die Indexnummern 30 und 32 entsprechen leeren Stellen in der TCAM-Tabelle 400. In einer Ausführungsform der vorliegenden Erfindung sind Leitwege, die die gleichen Präfixe aufweisen, in einer Kette zusammengruppiert. Zum Beispiel weisen die Leitwege 405, 410, 420 und 430 an den ersten 8 Bit gleiche Präfixe auf. Beginnend von der Oberseite der Tabelle 400 ist die erste Kette daher R1 → R2 → R4 → R6, und die zweite Kette R3 → R5, wobei ein Leitweg aus einer Kette von links nach rechts ausgewählt wird. Daher würde für die erste Kette R1 vor R2 gewählt werden, und würde R2 vor R4 gewählt werden. Die Ketten können unter Verwendung einer Verknüpfungslistendatenstruktur ausgeführt werden.
  • Die beiden Ketten sind voneinander unabhängig. Wenn es nur diese beiden Ketten gäbe, würde eine gültige Zieladresse mit einem der Leitwege in der ersten Kette oder einem der Leitwege in der zweiten Kette übereinstimmen. Eine ungültige Zieladresse würde nur eine Übereinstimmung für den Leitweg 435 erhalten und würde verworfen werden. Die erste Kette R1 → R2 → R4 → R6 weist R2 sogar dann vor R4 auf, wenn R4 eine längere Präfixübereinstimmung als R2 aufweist. In einer Ausführungsform müssen die Ketten in einer solchen Reihenfolge unterhalten werden, daß eine längste Präfixübereinstimmung mit einer ersten Übereinstimmung ausgewählt werden kann. Daher wäre R1 → R4 → R2 → R6 eine bessere Reihenfolge für die erste Kette. Dies würde gestatten, daß die erste Übereinstimmung die längste Präfixübereinstimmung ist.
  • Die erste Kette weist eine Länge von "Vier" auf, da sie vier Leitwege umfaßt. Die zweite Kette weist eine Länge von "Zwei" auf, dass sie zwei Leitwege umfaßt. Die größte Länge, die eine Kette aufweisen kann, ist "32". Dies liegt daran, daß das Präfix kürzer wird, wenn die Anzahl der Bits in der Maske jeweils um ein Bit länger wird. Die kürzeste Länge, die eine Kette aufweisen kann, ist "1", wobei kein anderer Leitweg vorhanden ist, der ein gemeinsames Präfix aufweist. Daher kann eine Kette mit einem Leitweg beginnen, der ein 32-Bit-Präfix aufweist, und kann sie mit einem Leitweg enden, der ein 1-Bit-Präfix aufweist. Alle Leitwege in einer Kette weisen ein gemeinsames Präfix von zumindest einem Bit auf. Daher ist eine Kette die Sequenz von Leitwegen vom längsten Präfix zum kürzesten Präfix für einen bestimmten Satz von Präfixen, die in einem Zusammenhang stehen. Es ist wichtig, zu bemerken, daß die Reihenfolge der Leitwege in der Kette bewahrt werden muß, wenn der TCAM mit neuen Leitwegen programmiert wird, um die Anforderung der längsten Präfixübereinstimmung zu erfüllen. Da bekannt ist, daß eine Kette eine Höchstanzahl von 32 Leitwegen aufweisen kann, würde die Zeit, die nötig ist, um jedwede Neuordnung der Kette durchzuführen, einen bestimmten festen Höchstwert nicht überschreiten. Dies ist vorteilhaft, da die feste Höchstzeit ungeachtet der Größe der TCAM-Tabelle die gleiche bleibt. Daher erfassen die Ketten die Reihenfolge der längsten Präfixübereinstimmung.
  • In einer Ausführungsform der vorliegenden Erfindung sind die einzelnen Leitwege in der TCAM-Tabelle, die die gleiche Maskenlänge aufweisen, miteinander verbunden. Zum Beispiel gehören alle Leitwege, die mit Masken verbunden sind, die Maskenlängen von 24 Bit aufweisen, zu einer Gruppe und gehören alle Leitwege, die mit Masken verbunden sind, die Maskenlängen von 16 Bit aufweisen, zu einer anderen Gruppe. Wenn die IP-Adresse 32 Bit lang ist, gibt es 32 Gruppen, die jeweils mit einer Maskenlänge von einem Bit bis 32 Bit verbunden sind. In der gleichen Weise gibt es dann, wenn die IP-Adresse 128 Bit lang ist (wie es bei IP Version 6 der Fall ist), 128 Gruppen, die jeweils mit einer Maskenlänge von einem Bit bis 128 Bit verbunden sind. Jede Gruppe ist als ein Patricia("Practical Algorithm to Retrieve Information Coded in Alphanumeric – praktischer Algorithmus zum Abrufen von alphanumerisch codierten Informationen")-Baum oder eine P-Baum-Datenstruktur dargestellt. Daher gibt es eine Höchstanzahl von 32 P-Bäumen. Eine P-Baum-Datenstruktur ist eine kompakte Darstellung eines Baums, bei dem alle Kinder mit ihren Eltern verschmolzen sind. Der Baum speichert Zeichenketten, wobei für jedes gemeinsame Präfix ein Knoten vorhanden ist. Die Zeichenketten sind in gesonderten Blattknoten gespeichert. Ein Fachmann kennt die Merkmale des P-Baums.
  • Unter Verwendung der P-Baum-Datenstruktur enthält der P-Baum-1 ("PT-1") alle Leitwege, die Maskenlängen von 1 aufweisen; enthält PT-16 alle Leitwege, die Maskenlängen von 16 aufweisen, enthält PT-32 alle Leitwege, die Maskenlängen von 32 Bit aufweisen, usw. Daher befinden sich unter Bezugnahme auf 4 der Leitweg 410 (R2) und der Leitweg 415 (R3) im gleichen PT-16. In der gleichen Weise befinden sich der Leitweg 425 (R5) und der Leitweg 430 (R6) im gleichen PT-8. Der Leitweg 405 (R1) befindet sich im PT-32, und der Leitweg 420 (R4) befindet sich im PT-24.
  • In einer Ausführungsform weisen die Leitwege im gleichen P-Baum keinerlei Reihenfolge auf. Daher erfassen die P-Bäume alle Leitwege, die die gleiche Maskenlänge aufweisen. In einer anderen Ausführungsform sind die Leitwege im gleichen P-Baum in einer lexikalisch graphischen Reihenfolge organisiert.
  • 5 ist ein beispielhaftes Ablaufdiagramm, das einen Vorgang des Einsetzens eines neuen Leitwegs in die TCAM-Tabelle nach der vorliegenden Erfindung veranschaulicht. Der Vorgang gestattet, daß die TCAM-Tabelle so aktualisiert wird, daß zwischen den Leitwegdaten im TCAM und den entsprechenden Handlungsinformationen im Speicher Beständigkeit bewahrt werden kann. Der Vorgang beginnt bei Block 505 mit einem neuen Leitweg, der in die TCAM-Tabelle eingesetzt werden soll. Jeder neue Leitweg weist eine Adresse ("A") und Maskendaten ("M") auf. Der Leitweg ("R") ist als ein Datenpaar (A/M, Index) dargestellt, wobei "Index" der Index des Leitwegeintrags in der TCAM-Tabelle ist. Jede Stelle in der TCAM-Tabelle ist mit einem Index verbunden. Der gleiche Index für die Stelle in der TCAM-Tabelle wird verwendet, um auf eine entsprechende Stelle im Speicher hinzuweisen. Zum Beispiel kann die TCAM-Tabelle die folgenden Leitwege in einer ansteigenden Indexreihenfolge umfassen:
    R1: (1.1.1.1/32, 10)
    R2: (1.1.1.0/24, 12)
    R3: (1.1.0.0/16, 30)
    R4: (1.0.0.0/8, 40),
    wobei jeder Leitweg als (Adresse/Maskenlänge, Index-im-TCAM) dargestellt ist. In diesem Beispiel soll ein neuer Leitweg R5: (1.128.0.0/9, X) in die TCAM-Tabelle eingesetzt werden, wobei "X" eine unbekannte Indexstelle ist.
  • In einer Ausführungsform wird der Index einer leeren Stelle in der TCAM-Tabelle auf Basis des ersten verfügbaren nichtverwendeten Eintrags in der TCAM-Tabelle bestimmt. In einer anderen Ausführungsform wird der Index bestimmt, indem zuerst das vorherige Präfix bestimmt wird, und dann der erste verfügbare Eintrag nach oder vor dem Eintrag, der mit dem vorherigen Präfix oder mit dem ersten verfügbaren Eintrag verbunden ist, bestimmt wird.
  • Bei Block 510 wird unter Verwendung des oben beschriebenen freien Index eine leere Stelle in der TCAM-Tabelle ausfindig gemacht. Die leere Stelle wird verwendet, um den Leitweg zu speichern. Nehmen wir an, daß die Stelle der TCAM-Tabelle bei Index 11 leer ist, und daß der neue Leitweg R5 an diese Stelle eingesetzt wird. Die Darstellung für den neuen Leitweg R5 ist (1.128.0.0/9, 11). Dieses Einsetzen in die TCAM-Tabelle ist bei Block 515 gezeigt. Die TCAM-Tabelle besteht nun aus den folgenden Einträgen:
    R1: (1.1.1.1/32, 10)
    R5: (1.128.0.0/9, 11)
    R2: (1.1.1.0/24, 12)
    R3: (1.1.0.0/16, 30)
    R4: (1.0.0.0/8, 40).
  • Wie oben besprochen ist eine Kette die Sequenz von Leitwegen vom längsten Präfix zum kürzesten Präfix für einen bestimmten Satz von Präfixen, die in einem Zusammenhang stehen. In diesem Beispiel lautet die Kette nach dem Einsetzen des neuen Leitwegs R5: R1 (1.1.1.1/32, 10) → R5 (1.128.0.0/9, 11) → R2 (1.1.1.0/24, 12) → R3 (1.1.0.0/16, 30) → R4 (1.0.0.0/8, 40). Alle Leitwege in der Kette weisen die gleichen ersten 8 Bit auf. Die Durchführung des Einsetzens ist jedoch nicht abgeschlossen, da sich die Kette nicht in der Abfolge der längsten Präfixübereinstimmung befindet. Die gegenwärtige Kette weist den neuen Leitweg R5 mit einer Maskenlänge von 9 vor den Leitwegen R2 und R3 auf, obwohl die Leitwege R2 und R3 Maskenlängen von 24 bzw. 16 aufweisen.
  • Um die Durchführung des Leitwegeinsetzens abzuschließen, müssen die Leitwegkette und der P-Baum aktualisiert werden, damit die Leitwegabfolge in der Kette richtig ist. In einer Ausführungsform ist das TCAM-Einsetzen nicht atomisch. In dieser Ausführungsform wird das Ungültigkeitsbit gesetzt, um anzugeben, daß der neu eingesetzte Leitweg nicht sofort verwendbar ist. Nachdem der gesamte Leitwegeintrag eingesetzt wurde, wird das Ungültigkeitsbit rückgestellt, um die Verwendung des Leitwegs zu ermöglichen.
  • In einer Ausführungsform wird die Maskenlänge verwendet, um den passenden P-Baum zu bestimmen, dem der neue Leitweg hinzugefügt werden soll. Zum Beispiel wird der neue Leitweg dem PT-16-Baum hinzugefügt, wenn der neue Leitweg eine Maskenlänge von 16 aufweist. Bei Block 520 wird der Leitweg auf Basis der Maskenlänge, die mit dem Leitweg verbunden ist, in den P-Baum eingesetzt. Dieses Leitwegeinsetzen kann als R(A, M) → PT(|M|) dargestellt werden, wobei R(A, M) der Leitweg und |M| die Maskenlänge ist.
  • Bei Block 525 wird eine Leitwegkette gesucht, die ein übereinstimmendes Präfix mit dem Leitweg aufweist. Wie oben besprochen gibt es höchstens 32 P-Bäume, wenn die IP-Adresse 32 Bit lang ist. Es kann möglich sein, daß nicht alle der 32 P-Bäume belegt sind. Wie oben besprochen erfassen die P-Bäume alle Leitwege, die die gleiche Maskenlänge aufweisen. Um Leitwege zu finden, die längere Präfixe als der neue Leitweg aufweisen, wird daher eine Suche mit den P-Bäumen vorgenommen, die eine höhere Ordnung von Maskenbits aufweisen. In der gleichen Weise wird eine Suche mit den P-Bäumen vorgenommen, die eine niedrigere Ordnung von Maskenbits aufweisen, um Leitwege zu finden, die kürzere Präfixe als der neue Leitweg aufweisen. Wenn der Leitweg zum Beispiel zu PT-16 hinzugefügt werden soll, werden Leitwege in PT-17 bis PT-32 (d.h., (PT(|M|)+1) bis PT-32) nach übereinstimmenden Präfixen durchsucht. In der gleichen Weise werden Leitwege in PT-1 bis PT-15 (d.h., PT(|M|) – 1) bis PT-1) nach übereinstimmenden Präfixen durchsucht. Somit sind in diesem Beispiel höchstens 31 P-Bäume nach Leitwegen zu durchsuchen, die gemeinsame Präfixe aufweisen.
  • Für jeden der Leitwege, die das gemeinsame Präfix mit dem neuen Leitweg aufweisen, wird eine Bestimmung vorgenommen, um zu sehen, ob die Reihenfolge der Leitwege in der Kette gemäß der Reihenfolge der längsten Präfixübereinstimmung zuerst ist. Wenn dies nicht der Fall ist, wird ein Vertauschen der Leitwege in der Kette und ein Vertauschen der Leitwege in der TCAM-Tabelle durchgeführt, wie in Block 530 gezeigt ist. Im gegenwärtigen Beispiel weist der neue Leitweg R5 eine Maskenlänge von 9 auf und ist er am Index 11 der TCAM-Tabelle angeordnet. Eine Suche nach Leitwegen, die gemeinsame Präfixe mit dem neuen Leitweg R5 aufweisen, wird mit P-Bäumen vorgenommen, die kürzere Maskenlängen aufweisen (d.h., PT-1 bis PT-8).
  • Es gibt nur einen Leitweg (R4), der eine kürzere Maskenlänge (8) aufweist, und dieser befindet sich an der Indexstelle 40. Ein Vergleich der Indexstellen von R5 und R4 wird vorgenommen, um zu sehen, ob die beiden Leitwege vertauscht werden müssen. Wenn R4 eine Indexstelle aufweist, die niedriger als jene von R5 ist, erfolgt ein Vertauschen, um eine ansteigende Indexreihenfolge und somit eine Reihenfolge der längsten Präfixübereinstimmung zuerst beizubehalten. Da der Index von R5 (11) in diesem Beispiel niedriger als der Index von R4 (40) ist, ist kein Vertauschen erforderlich. Daher befinden sich die Leitwege in der Kette auf Basis der ansteigenden Indexreihenfolge in der folgenden Reihenfolge: R1 (1.1.1.1/32, 10) → R5 (1.128.0.0/9, 11) → R2 (1.1.1.0/24, 12) → R3 (1.1.0.0/16, 30) → R4 (1.0.0.0/8, 40).
  • Eine Suche nach Leitwegen, die gemeinsame Präfixe mit dem neuen Leitweg R5 aufweisen, wird mit P-Bäumen vorgenommen, die längere Maskenlängen aufweisen (d.h., PT-10 bis PT-32). Im gegenwärtigen Beispiel weist der Leitweg R3 (16) ein längeres Präfix als der neue Leitweg R5 (9) auf. Da der Index für den Leitweg R3 30 und der Index für den neuen Leitweg R5 11 ist, befinden sich die beiden Leitwege nicht in der Reihenfolge und ist ein Vertauschen nötig, um die Reihenfolge der längsten Präfixübereinstimmung zu bewahren. Nach dem Vertauschen vom R3 und R5 befinden sich die Leitwege in der Kette in der folgenden Reihenfolge: R1 (1.1.1.1/32, 10) → R3 (1.1.0.0/16, 11) → R2 (1.1.1.0/24, 12) → R5 (1.128.0.0/9, 30) → R4 (1.0.0.0/8, 40).
  • Zusätzlich weist der Leitweg R2 eine längere Maskenlänge als der Leitweg R3 auf. Die Maskenlänge für den Leitweg R2 beträgt 24, während die Maskenlänge für den Leitweg R3 11 beträgt. Somit ist ein Vertauschen dieser beiden Leitwege R2 und R3 nötig, um die Reihenfolge der längsten Präfixübereinstimmung zuerst beizubehalten. Nach dem Vertauschen von R2 und R3 befinden sich die Leitwege in der Kette in der folgenden Reihenfolge: R1 (1.1.1.1/32, 10) → R2 (1.1.1.0/24, 11) → R3 (1.1.0.0/16, 12) → R5 (1.128.0.0/9, 30) → R4 (1.0.0.0/8, 40). Der Leitweg R3 wird in der TCAM-Tabelle an seine neue Indexstelle 12 eingesetzt, und der Leitweg R2 wird in der TCAM-Tabelle an seine neue Indexstelle 11 eingesetzt.
  • Der Vorgang des Ablaufdiagramms in 5 endet bei Block 535. Im gegenwärtigen Beispiel ist die endgültige Leitwegabfolge am Ende der Durchführung des Einsetzens R1 (1.1.1.1/32, 10) → R2 (1.1.1.0/24,11) → R3 (1.1.0.0/16, 12) → R5 (1.128.0.0/9, 30) → R4 (1.0.0.0/8, 40).
  • In der vorhergehenden Beschreibung wurde die Erfindung unter Bezugnahme auf bestimmte beispielhafte Ausführungsformen davon beschreiben. Es wird jedoch offensichtlich sein, daß daran verschiedenste Abwandlungen und Veränderungen vorgenommen werden können, ohne vom weiteren Geist und Umfang der Erfindung, wie er in den beiliegenden Ansprüchen aufgezeigt ist, abzuweichen. Die Beschreibung und die Zeichnungen sollen demgemäß vielmehr in einem erläuternden als in einem beschränkenden Sinn betrachtet werden.

Claims (10)

  1. Verfahren, umfassend: Einsetzen eines neuen Leitwegs unter Verwendung eines ersten Index an einer verfügbaren Stelle in die Tabelle eines ternären inhaltsadressierbaren Speichers (TCAM), wobei der neue Leitweg eine Maskenlänge aufweist, wobei der neue Leitweg, der in einen Patricia-Baum (P-Baum) gruppiert ist, einen oder mehr Leitwege aufweist, die die gleiche Maskenlänge aufweisen; Finden eines Leitwegs, der ein gemeinsames Präfix mit dem neuen Leitweg aufweist, wobei der Leitweg, der das gemeinsame Präfix aufweist, in einen P-Baum gruppiert ist, der eine andere Maskenlänge als der neue Leitweg aufweist, wobei der Leitweg, der das gemeinsame Präfix aufweist, in der TCAM-Tabelle in einen zweiten Index gestellt wird, wobei der Leitweg, der das gemeinsame Präfix aufweist, in eine Kette aus einem oder mehreren Leitwegen gruppiert ist, die das gleiche gemeinsame Präfix aufweisen, wobei die Leitwege in der Kette in einer solchen Reihenfolge sequenziert sind, dass sich ein Leitweg, der ein längeres Präfix aufweist, in der TCAM-Tabelle an einem höheren Index befindet, als ein Leitweg, der ein kürzeres Präfix aufweist, wobei ein Leitweg in der Kette an einem höchsten Index der Leitweg mit dem längsten Präfix ist; und derartiges Einsetzen des neuen Leitwegs auf Basis der Maskenlänge des neuen Leitwegs und auf Basis des ersten Index in die Kette, dass die Kette die Reihenfolge so beibehält, dass sich ein Leitweg, der ein längeres Präfix aufweist, in der TCAM-Tabelle an einer höheren Stelle als ein Leitweg befindet, der ein kürzeres Präfix aufweist.
  2. Verfahren nach Anspruch 1, wobei das Finden des Leitwegs, der das gemeinsame Präfix mit dem neuen Leitweg aufweist, das Suchen nach dem Leitweg in P-Bäumen, die längere Maskenlängen als die Maskenlänge des neuen Leitwegs aufweisen, und in P-Bäumen, die kürzere Maskenlängen als die Maskenlänge des neuen Leitwegs aufweisen, umfasst.
  3. Verfahren nach Anspruch 1, wobei das Einsetzen des neuen Leitwegs auf Basis der Maskenlänge des neuen Leitwegs und auf Basis des ersten Index in die Kette das Vergleichen der Maskenlänge des neuen Leitwegs mit der Maskenlänge des Leitwegs, der das gemeinsame Präfix aufweist, umfasst, wobei die Stellen des neuen Leitwegs und des Leitwegs, der das gemeinsame Präfix aufweist, in der TCAM-Tabelle vertauscht werden, wenn die Maskenlänge des neuen Leitwegs länger als die Maskenlänge des Leitwegs ist, der das gemeinsame Präfix aufweist, und der erste Index niedriger als der zweite Index ist.
  4. Vorrichtung, umfassend ein Mittel zum Einsetzen eines neuen Leitwegs unter Verwendung eines ersten Index an einer verfügbaren Stelle in die Tabelle eines ternären inhaltsadressierbaren Speichers (TCAM), wobei der neue Leitweg eine Maskenlänge aufweist, wobei der neue Leitweg, der in einen Patricia-Baum (P-Baum) gruppiert ist, einen oder mehr Leitwege aufweist, die die gleiche Maskenlänge aufweisen; ein Mittel zum Finden eines Leitwegs, der ein gemeinsames Präfix mit dem neuen Leitweg aufweist, wobei der Leitweg, der das gemeinsame Präfix aufweist, in einen P-Baum gruppiert ist, der eine andere Maskenlänge als der neue Leitweg aufweist, wobei der Leitweg, der das gemeinsame Präfix aufweist, in der TCAM-Tabelle in einen zweiten Index gestellt wird, wobei der Leitweg, der das gemeinsame Präfix aufweist, in eine Kette aus einem oder mehreren Leitwegen gruppiert ist, die das gleiche gemeinsame Präfix aufweisen, wobei die Leitwege in der Kette in einer solchen Reihenfolge sequenziert sind, dass sich ein Leitweg, der ein längeres Präfix aufweist, in der TCAM-Tabelle an einem höheren Index befindet, als ein Leitweg, der ein kürzeres Präfix aufweist, wobei ein Leitweg in der Kette an einem höchsten Index der Leitweg mit dem längsten Präfix ist; und ein Mittel zum derartigen Einsetzen des neuen Leitwegs auf Basis der Maskenlänge des neuen Leitwegs und auf Basis des ersten Index in die Kette, dass die Kette die Reihenfolge so beibehält, dass sich ein Leitweg, der ein längeres Präfix aufweist, in der TCAM-Tabelle an einer höheren Stelle als ein Leitweg befindet, der ein kürzeres Präfix aufweist.
  5. Vorrichtung nach Anspruch 4, wobei das Mittel zum Finden des Leitwegs, der das gemeinsame Präfix mit dem neuen Leitweg aufweist, ein Mittel zum Suchen des Leitwegs in P-Bäumen, die längere Maskenlängen als die Maskenlänge des neuen Leitwegs aufweisen, und in P-Bäumen, die kürzere Maskenlängen als die Maskenlänge des neuen Leitwegs aufweisen, umfasst.
  6. Vorrichtung nach Anspruch 4, wobei das Mittel zum Einsetzen des neuen Leitwegs auf Basis der Maskenlänge des neuen Leitwegs und auf Basis des ersten Index in die Kette ein Mittel zum Vergleichen der Maskenlänge des neuen Leitwegs mit der Maskenlänge des Leitwegs, der das gemeinsame Präfix aufweist, umfasst, wobei die Stellen des neuen Leitwegs und des Leitwegs, der das gemeinsame Präfix aufweist, in der TCAM-Tabelle vertauscht werden, wenn die Maskenlänge des neuen Leitwegs länger als die Maskenlänge des Leitwegs ist, der das gemeinsame Präfix aufweist, und der erste Index niedriger als der zweite Index ist.
  7. Computerlesbares Medium, worauf Abfolgen von Befehlen gespeichert sind, die durch ein digitales Verarbeitungssystem ausführbar sind, und die, wenn sie durch das digitale Verarbeitungssystem ausgeführt werden, das System veranlassen, ein Verfahren durchzuführen, das Folgendes umfasst: Einsetzen eines neuen Leitwegs unter Verwendung eines ersten Index an einer verfügbaren Stelle in die Tabelle eines ternären inhaltsadressierbaren Speichers (TCAM), wobei der neue Leitweg eine Maskenlänge aufweist, wobei der neue Leitweg, der in einen Patricia-Baum (P-Baum) gruppiert ist, einen oder mehr Leitwege aufweist, die die gleiche Maskenlänge aufweisen; Finden eines Leitwegs, der ein gemeinsames Präfix mit dem neuen Leitweg aufweist, wobei der Leitweg, der das gemeinsame Präfix aufweist, in einen P-Baum gruppiert ist, der eine andere Maskenlänge als der neue Leitweg aufweist, wobei der Leitweg, der das gemeinsame Präfix aufweist, in der TCAM-Tabelle in einen zweiten Index gestellt wird, wobei der Leitweg, der das gemeinsame Präfix aufweist, in eine Kette aus einem oder mehreren Leitwegen gruppiert ist, die das gleiche gemeinsame Präfix aufweisen, wobei die Leitwege in der Kette in einer solchen Reihenfolge sequenziert sind, dass sich ein Leitweg, der ein längeres Präfix aufweist, in der TCAM-Tabelle an einem höheren Index befindet, als ein Leitweg, der ein kürzeres Präfix aufweist, wobei ein Leitweg in der Kette an einem höchsten Index der Leitweg mit dem längsten Präfix ist; und derartiges Einsetzen des neuen Leitwegs auf Basis der Maskenlänge des neuen Leitwegs und auf Basis des ersten Index in die Kette, dass die Kette die Reihenfolge so beibehält, dass sich ein Leitweg, der ein längeres Präfix aufweist, in der TCAM-Tabelle an einer höheren Stelle als ein Leitweg befindet, der ein kürzeres Präfix aufweist.
  8. Computerlesbares Medium nach Anspruch 7, wobei das Finden des Leitwegs, der das gemeinsame Präfix mit dem neuen Leitweg aufweist, das Suchen nach dem Leitweg in P-Bäumen, die längere Maskenlängen als die Maskenlänge des neuen Leitwegs aufweisen, und in P-Bäumen, die kürzere Maskenlängen als die Maskenlänge des neuen Leitwegs aufweisen, umfasst.
  9. Computerlesbares Medium nach Anspruch 7, wobei das Einsetzen des neuen Leitwegs auf Basis der Maskenlänge des neuen Leitwegs und auf Basis des ersten Index in die Kette das Vergleichen der Maskenlänge des neuen Leitwegs mit der Maskenlänge des Leitwegs, der das gemeinsame Präfix aufweist, umfasst.
  10. Computerlesbares Medium nach Anspruch 9, wobei die Stellen des neuen Leitwegs und des Leitwegs, der das gemeinsame Präfix aufweist, in der TCAM-Tabelle vertauscht werden, wenn die Maskenlänge des neuen Leitwegs länger als die Maskenlänge des Leitwegs ist, der das gemeinsame Präfix aufweist, und der erste Index niedriger als der zweite Index ist.
DE60214670T 2001-01-30 2002-01-18 Verfahren und vorrichtung zur leitweglenkungstabellenverwaltung Expired - Lifetime DE60214670T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US773051 2001-01-30
US09/773,051 US6633548B2 (en) 2001-01-30 2001-01-30 Method and apparatus for ternary content addressable memory (TCAM) table management
PCT/US2002/001948 WO2002061625A2 (en) 2001-01-30 2002-01-18 Method and apparatus for routing table management

Publications (2)

Publication Number Publication Date
DE60214670D1 DE60214670D1 (de) 2006-10-26
DE60214670T2 true DE60214670T2 (de) 2007-09-20

Family

ID=25097050

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60214670T Expired - Lifetime DE60214670T2 (de) 2001-01-30 2002-01-18 Verfahren und vorrichtung zur leitweglenkungstabellenverwaltung

Country Status (9)

Country Link
US (1) US6633548B2 (de)
EP (1) EP1358739B1 (de)
CN (1) CN1270487C (de)
AT (1) ATE339831T1 (de)
AU (1) AU2002236848A1 (de)
CA (1) CA2434876C (de)
DE (1) DE60214670T2 (de)
HK (1) HK1062340A1 (de)
WO (1) WO2002061625A2 (de)

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6785699B1 (en) * 2001-05-04 2004-08-31 Lsi Logic Corporation Prefix comparator
US6665202B2 (en) * 2001-09-25 2003-12-16 Integrated Device Technology, Inc. Content addressable memory (CAM) devices that can identify highest priority matches in non-sectored CAM arrays and methods of operating same
US20030058860A1 (en) * 2001-09-25 2003-03-27 Kunze Aaron R. Destination address filtering
US7245623B1 (en) * 2002-01-08 2007-07-17 Cisco Technology, Inc. System and method using hierarchical parallel banks of associative memories
US6745280B2 (en) 2002-03-28 2004-06-01 Integrated Device Technology, Inc. Content addressable memories having entries stored therein with independently searchable weight fields and methods of operating same
US7441074B1 (en) * 2002-08-10 2008-10-21 Cisco Technology, Inc. Methods and apparatus for distributing entries among lookup units and selectively enabling less than all of the lookup units when performing a lookup operation
US6996664B2 (en) * 2003-01-22 2006-02-07 Micron Technology, Inc. Ternary content addressable memory with enhanced priority matching
JP3941709B2 (ja) * 2003-02-19 2007-07-04 ブラザー工業株式会社 ネットワーク印刷システム、Webサーバ、印刷装置、及びプログラム。
EP1657859B1 (de) * 2003-08-20 2013-05-15 Nippon Telegraph And Telephone Corporation Einrichtung zur vergrösserung der protokollgeschwindigkeit
CN100384131C (zh) * 2003-09-08 2008-04-23 华为技术有限公司 一种大容量组播路由表下提高组播数据转发效率的方法
CN100334851C (zh) * 2003-11-17 2007-08-29 华为技术有限公司 一种路由表复用的方法
CN100456840C (zh) * 2003-11-25 2009-01-28 华为技术有限公司 将lpm算法拆分到两个cpu的方法
US8346960B2 (en) 2005-02-15 2013-01-01 At&T Intellectual Property Ii, L.P. Systems, methods, and devices for defending a network
US20060190679A1 (en) * 2005-02-18 2006-08-24 Albrecht Alan R Content addressable memory supporting multiple width searches
KR100705545B1 (ko) 2005-07-02 2007-04-09 충남대학교산학협력단 이중 tcam을 이용한 패킷의 분류방법
CN100401723C (zh) * 2005-10-13 2008-07-09 华为技术有限公司 一种快速索引方法
US8225399B1 (en) * 2005-12-14 2012-07-17 At&T Intellectual Property Ii, Lp System and method for avoiding and mitigating a DDoS attack
CN100426796C (zh) * 2005-12-23 2008-10-15 华为技术有限公司 一种路由管理系统和方法
US7890655B2 (en) * 2006-02-16 2011-02-15 Cisco Technology, Inc. Storage area network port based data transfer acceleration
CN101039253B (zh) * 2006-03-17 2010-12-29 中兴通讯股份有限公司 一种实现三重内容可寻址存储器范围匹配的前缀扩展方法
CN100396015C (zh) * 2006-03-29 2008-06-18 华为技术有限公司 一种tcam路由表管理方法和系统
US7552275B1 (en) * 2006-04-03 2009-06-23 Extreme Networks, Inc. Method of performing table lookup operation with table index that exceeds CAM key size
KR100745693B1 (ko) * 2006-09-29 2007-08-03 한국전자통신연구원 Tcam 테이블 관리 방법
US20080123663A1 (en) * 2006-11-29 2008-05-29 Utstarcom, Incorporated Method and apparatus for managing ternary content addressable memory entries for use in a data packet routing device
US7706375B2 (en) * 2007-02-06 2010-04-27 Alcatel Lucent System and method of fast adaptive TCAM sorting for IP longest prefix matching
KR100864888B1 (ko) * 2007-02-12 2008-10-22 삼성전자주식회사 라우팅 시스템 및 라우팅 시스템의 룰 엔트리 관리 방법
US8270305B2 (en) * 2007-03-06 2012-09-18 Nec Corporation Node device, node system, and method and program for changing statistic information management table used for the node device
US8089961B2 (en) * 2007-12-07 2012-01-03 University Of Florida Research Foundation, Inc. Low power ternary content-addressable memory (TCAMs) for very large forwarding tables
US7903666B1 (en) * 2008-03-31 2011-03-08 Extreme Networks, Inc. Method and system for compressing route entries in a route table based on equal-cost multi-paths (ECMPs) matches
US20090276604A1 (en) * 2008-05-01 2009-11-05 Broadcom Corporation Assigning memory for address types
US8464074B1 (en) 2008-05-30 2013-06-11 Cisco Technology, Inc. Storage media encryption with write acceleration
CN101350771B (zh) * 2008-07-07 2010-12-29 中国人民解放军国防科学技术大学 三态内容可寻址存储器条目免排序存储方法及其系统
US8331362B2 (en) * 2008-12-30 2012-12-11 Juniper Networks, Inc. Methods and apparatus for distributed dynamic network provisioning
US8190769B1 (en) 2008-12-30 2012-05-29 Juniper Networks, Inc. Methods and apparatus for provisioning at a network device in response to a virtual resource migration notification
US8565118B2 (en) 2008-12-30 2013-10-22 Juniper Networks, Inc. Methods and apparatus for distributed dynamic network provisioning
US8255496B2 (en) 2008-12-30 2012-08-28 Juniper Networks, Inc. Method and apparatus for determining a network topology during network provisioning
US8054832B1 (en) 2008-12-30 2011-11-08 Juniper Networks, Inc. Methods and apparatus for routing between virtual resources based on a routing location policy
US8566276B1 (en) * 2009-08-19 2013-10-22 Juniper Networks, Inc. TCAM defragmentation candidate search scheme
US8953603B2 (en) 2009-10-28 2015-02-10 Juniper Networks, Inc. Methods and apparatus related to a distributed switch fabric
US8442048B2 (en) 2009-11-04 2013-05-14 Juniper Networks, Inc. Methods and apparatus for configuring a virtual network switch
CN101741737B (zh) * 2009-12-08 2013-01-16 中兴通讯股份有限公司 路由表的维护方法与装置
US8908564B2 (en) * 2010-06-28 2014-12-09 Avaya Inc. Method for Media Access Control address learning and learning rate suppression
US8891406B1 (en) 2010-12-22 2014-11-18 Juniper Networks, Inc. Methods and apparatus for tunnel management within a data center
CN103051543B (zh) * 2012-11-01 2015-09-09 广州键智桥网络技术有限公司 一种路由前缀的处理、查找、增加及删除方法
CN103561133B (zh) * 2013-11-19 2016-08-24 中国科学院计算机网络信息中心 一种ip地址归属信息索引方法及快速查询方法
CN104753788A (zh) * 2013-12-25 2015-07-01 深圳市中兴微电子技术有限公司 一种基于索引分配的数据转发方法及装置
US9411840B2 (en) * 2014-04-10 2016-08-09 Facebook, Inc. Scalable data structures
CN105516001A (zh) * 2014-09-22 2016-04-20 中兴通讯股份有限公司 控制软复位后数据恢复的方法、装置及分组传送网设备
CN105939264A (zh) * 2015-08-13 2016-09-14 杭州迪普科技有限公司 一种路由的管理方法和装置
US10516613B1 (en) 2015-10-14 2019-12-24 Innovium, Inc. Network device storage of incremental prefix trees
CN105721297B (zh) * 2016-01-28 2019-04-09 北京国电通网络技术有限公司 基于sdn网络中路由环路的检测方法及系统
CN105721303B (zh) * 2016-03-31 2018-05-18 华为技术有限公司 一种路由控制方法、网络设备及控制器
US10230639B1 (en) 2017-08-08 2019-03-12 Innovium, Inc. Enhanced prefix matching
CN108182156B (zh) * 2017-11-30 2019-04-26 北京卓讯科信技术有限公司 一种tcam多通道虚拟化实现方法及系统
US10397115B1 (en) 2018-04-09 2019-08-27 Cisco Technology, Inc. Longest prefix matching providing packet processing and/or memory efficiencies in processing of packets
US11140078B1 (en) 2018-10-18 2021-10-05 Innovium, Inc. Multi-stage prefix matching enhancements
US11316828B2 (en) * 2019-09-26 2022-04-26 Hewlett Packard Enterprise Development Lp Networking sub-ranges
CN112565089B (zh) * 2020-11-30 2022-06-21 锐捷网络股份有限公司 一种路由信息的处理方法及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6018524A (en) 1997-09-09 2000-01-25 Washington University Scalable high speed IP routing lookups
US6490279B1 (en) * 1998-07-23 2002-12-03 Advanced Communication Device, Inc. Fast data base research and learning apparatus
US6289414B1 (en) * 1998-10-08 2001-09-11 Music Semiconductors, Inc. Partially ordered cams used in ternary hierarchical address searching/sorting
US6457061B1 (en) * 1998-11-24 2002-09-24 Pmc-Sierra Method and apparatus for performing internet network address translation
JP4156112B2 (ja) * 1998-12-25 2008-09-24 富士通株式会社 高速検索方法及び高速検索装置

Also Published As

Publication number Publication date
CN1489849A (zh) 2004-04-14
WO2002061625A2 (en) 2002-08-08
CA2434876C (en) 2010-09-28
ATE339831T1 (de) 2006-10-15
WO2002061625A3 (en) 2003-04-24
US6633548B2 (en) 2003-10-14
HK1062340A1 (en) 2004-10-29
US20020131432A1 (en) 2002-09-19
EP1358739A2 (de) 2003-11-05
CA2434876A1 (en) 2002-08-08
CN1270487C (zh) 2006-08-16
AU2002236848A1 (en) 2002-08-12
EP1358739B1 (de) 2006-09-13
DE60214670D1 (de) 2006-10-26

Similar Documents

Publication Publication Date Title
DE60214670T2 (de) Verfahren und vorrichtung zur leitweglenkungstabellenverwaltung
DE60307241T2 (de) Vlan tabellenverwaltungssystem in hardwarebasierten paketvermittlungsstellen für speichereffizientes auslesen und einschreiben
DE60313371T2 (de) Verwendung von baumartigen "Bitmap" Datenstrukturen
DE60222622T2 (de) Verfahren und Vorrichtung zur Paketkopfteilverarbeitung
DE69829645T2 (de) Verfahren zur Änderung von dynamischen Entscheidungsbäume
DE69531337T2 (de) Weglenkung von Transaktionsnachrichten in einem digitalen Kommunikationsnetz
DE69934644T2 (de) Netzwerkvermittlungseinrichtung mit auf der Basis von Benutzung verteilten Umleitungsdatenbanken
US6490592B1 (en) Method of and apparatus for generating a tree data structure supporting longest match lookup
DE69912410T2 (de) Schnelles zeichenkettensuchen und -indizieren
DE60316696T2 (de) Verfahren zum Routen von Datenpaketen und Routing-Vorrichtung
DE10393053B4 (de) Bereichsbasierte Mehrfeldkorrelation - Paketklassifizierung mit logorithmischem Zeitverhalten
DE69636761T2 (de) Speichern und wiederauffinden von geordneten schlüsselmengen in einem kompakten 0-kompletten baum
DE10012123B4 (de) Verfahren zum Suchen einer MAC-Adresse in einem Netzwerk-Switch
DE69838180T2 (de) Verfahren und rechnerprogrammprodukt zur klassifizierung von in einem netzwerkstack verarbeiteten netzübertragungspaketen
US6594655B2 (en) Wildcards in radix- search tree structures
DE10297269B4 (de) Kennzeichnung von Paketen mit einem Nachschlageschlüssel zur leichteren Verwendung eines gemeinsamen Paketweiterleitungs-Cache
DE60026229T2 (de) Verfahren und Vorrichtung für Klassifizierung von Datenpaketen
DE69834122T2 (de) Verbindingsunterstützung in einer hochleistungsnetzwerkvorrichtung
DE10028563B4 (de) Kommunikationssteuerungseinheit
DE602004008911T2 (de) Verfahren und system um die reihenfolge von paketen mit hilfe eines zwischenspeichers zu gewährleisten
DE60032674T2 (de) Verfahren zum Suchen von Adressen
DE10058443A1 (de) Verfahren zum Klassifizieren von Datenpaketen
DE10085387T5 (de) Verfahren und Vorrichtung zur Adresssuche längster Übereinstimmung
DE112019002591T5 (de) Weiterleitungselement-datenebene mit flussgrössendetektor
DE60031712T2 (de) Tabellen-nachschlage-mechanismus zur adressauflösung in einer paket-netzwerkvermittlung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: NOKIA INC., IRVING, TEX., US