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