-
Die
vorliegende Erfindung bezieht sich auf ein Verfahren zur Wiederabbildung
der Paket-Priorität
in einer Datenkommunikationsvermittlungsstelle, die eine Vielzahl
von Anschlüssen
hat und folgendes umfasst:
Empfangen eines Paketes, das einen
ersten Prioritätswert
enthält,
auf einem ersten Anschluss; Bestimmung eines zweiten Prioritätswertes
auf der Grundlage des ersten Prioritätswertes; und Senden des Paketes
einschließlich
des zweiten Prioritätswertes
auf einem zweiten Anschluss.
-
Weiterhin
bezieht sich die vorliegende Erfindung auf eine Netzwerkschnittstelle
für eine Datenkommunikationsvermittlungsstelle,
die folgendes umfasst:
Einen Zugangs-Controller, der einen
Anschluss zum Empfang eines Paketes hat, das einen ersten Prioritätswert enthält; und
einen Vermittlungs-Mechanismus, der an den Zugangs-Controller gekoppelt
ist, um das Paket vom Zugangs-Controller zu empfangen, zum Senden
einer Vielzahl von Werten an ein erstes Element als Reaktion auf
das Paket, zum Empfang eines zweiten Prioritätswertes vom zweiten Element
und zum Senden des Paketes, das den zweiten Prioritätswert enthält.
-
Ein
solches Verfahren auf einer solchen Netzwerkschnittstelle ist aus
WO 003 256 bekannt.
-
Der
vom Institute of Electrical and Electronics Engineers veröffentlichte
Standard 802.1Q mit dem Titel "Virtual
Bridged Local Area Networks" (Std. 802.1Q)
definiert ein Übereinkommen,
um neben anderen Dingen eine Verkehrs-Priorisierung in gebrückten lokalen
Netzen (LANs) zu unterstützen.
Der Standard enthält
eine Übereinkunft
für die
Unterbringung eines Identifizierungskennzeichens (Tag) in einem Paket
bei der Erzeugung eines zum Std. 802.1Q kompatiblen Paketes. Das
Tag kann neben anderen Dingen eine virtuelle LAN-(VLAN)-Kennung
und eine Priorität
enthalten. Allgemein ausgedrückt
wird die VLAN-Kennung angewendet, um zu bestimmen, wo das Paket
gesendet werden kann, und die Priorität wird verwendet, um festzulegen,
wie schnell das Paket bezogen auf andere Pakete verarbeitet wird.
-
Da
ein zum Std. 802.1Q kompatibles Paket jede Brücke in einem Netzwerk durchläuft, sorgt
die Übereinkunft
für eine "Regeneration" der Tag-Priorität im Paket,
wie empfangen (d. h. die Eingangs-Tag-Priorität) und für eine Unterbringung der regenerierten
Priorität
im Paket, wie gesendet (d. h. die Ausgangs-Tag-Priorität). Gemäß dem Standard kann
sich die Ausgangs-Tag-Priorität
von der Eingangs-Tag-Priorität
unterscheiden und kann auf jeder Brücke unabhängig auf der Grundlage des
physikalischen Anschlusses bestimmt werden, über den die Brücke das
Paket empfangen hat, und auf der Grundlage der Eingangs-Tag-Priorität. Im Standard
sind jedoch keine Vorkehrungen getroffen, andere Werte zur Bestimmung
der Ausgangs-Tag-Priorität
zu benutzen. Es kann wünschenswert
sein, eine Ausgangs-Tag-Priorität
zu bestimmen, die auf Werten beruht, die nicht der Eingangs-Tag-Priorität und dem physikalischen
Empfangs-Anschluss entsprechen.
-
Die
vorliegende Erfindung liefert ein Verfahren, wie zu Beginn erwähnt, wobei
das Verfahren dadurch gekennzeichnet ist, dass es einen virtuellen Bündelwert
auf der Grundlage einer Vielzahl von Werten bestimmt, und dass es
einen zweiten Prioritätswert
auf der Grundlage des ersten Prioritätswertes und des virtuellen
Bündelwertes
bestimmt.
-
Weiterhin
liefert die vorliegende Erfindung eine Netzwerkschnittstelle, wie
zu Beginn erwähnt, welche
den Vermittlungs-Mechanismus enthält, der an den Zugangs-Controller gekoppelt
ist, um eine virtuelle Bündelkennung
vom ersten Element als Reaktion auf die Vielzahl von Werten zu empfangen,
zum Senden der virtuellen Bündelkennung
und des ersten Prioritätswertes
zum zweiten Element und zum Empfangen eines zweiten Prioritätswertes
vom zweiten Element als Reaktion auf die virtuelle Bündelkennung
und den ersten Prioritätswert.
-
Die
vorliegende Erfindung bietet eine Prioritätsverarbeitung für eine Datenkommunikationsvermittlungsstelle,
wie z. B. eine LAN-Vermittlung,
die eine von der Quelle bewirkte Überbrückung unterstützt, in
der eine Priorität
zur Unterbringung in einem Paket bestimmt wird, die auf einer Priorität vom Paket und
einer Vielzahl anderer Werte beruht. Die Vielzahl anderer Werte
kann eine Empfangs-Anschluss-Kennung und eine VLAN-Kennung vom Paket
enthalten. Das Paket kann ein "mit
Tag versehenes" Paket
sein, das in Übereinstimmung
mit Std. 802.1Q formatiert ist. Die Vielzahl anderer Werte kann
anfangs zu einer virtuellen Bündelkennung
aufgelöst
werden, dessen virtuelle Bündelkennung
mit der Priorität
vom Paket angewendet werden kann, um die Priorität für die Unterbringung im Paket
zu bestimmen. Die virtuelle Bündelkennung
kann aufgelöst
werden, indem die Vielzahl anderer Werte auf einen Wert mit weniger
Bit reduziert wird und indem der Wert mit weniger Bit für einen
Tabellenzugriff verwendet wird.
-
Diese
und andere Aspekte der vorliegenden Erfindung können besser verstanden werden,
indem auf die folgende detaillierte Beschreibung zusammen mit den
begleitenden Zeichnungen Bezug genommen wird, die im Folgenden kurz
beschrieben werden:
-
1 zeigt
eine LAN-Vermittlung;
-
2 zeigt
eine repräsentative
Netzwerkschnittstelle in der LRN-Vermittlung aus 1;
-
3 zeigt
ein Paket, wie es am Zugangs-Controller in der Netzwerkschnittstelle
aus 2 von einem LAN empfangen wird;
-
4 zeigt
ein Paket, wie es an dem Vermittlungs-Mechanismus in der Netzwerkschnittstelle
aus 2 vom Zugangs-Controller aus 2 empfangen
wird;
-
5 zeigt
den virtuellen Bündel-Finder
in der Netzwerkschnittstelle aus 2;
-
6 zeigt
die Multiplexer-Anordnung im virtuellen Bündel-Finder aus 5;
-
7 zeigt
den virtuellen Bündel-Hash-RAM im
virtuellen Bündel-Finder
aus 5;
-
8 zeigt
die Prioritäts-Wiederabbildungs-Datenbank
in der Netzwerkschnittstelle aus 2;
-
9 zeigt
die Weiterleitungs-Datenbank in der Netzwerkschnittstelle aus 2;
-
10 zeigt
einen lokalen Kopfteil eines Paketes, wie er an dem Vermittlungs-Mechanismus
von einem Rückwandplatinen-Bus empfangen wird,
die in der Netzwerkschnittstelle aus 2 arbeitet;
-
11 zeigt
die Warteschlangen-Wiederabbildungs-Datenbank in der Netzwerkschnittstelle
aus 2;
-
12 zeigt
ein Paket, wie es vom Zugangs-Controller in der Netzwerkschnittstelle
aus 2 von dem Vermittlungs-Mechanismus aus 2 empfangen
wird;
-
13 zeigt
ein Paket, wie es vom Zugangs-Controller in der Netzwerkschnittstelle
aus 2 zu einem LAN gesendet wird;
-
14 ist
ein Flussdiagramm, das die Verarbeitung der Eingangs-Priorität gemäß einer
bevorzugten Ausführung
der vorliegenden Erfindung zeigt;
-
15 ist
ein Flussdiagramm, das die Verarbeitung der Ausgangs-Priorität gemäß einer
bevorzugten Ausführung
der vorliegenden Erfindung zeigt.
-
In 1 ist
eine LAN-Vermittlung gezeigt, in der die vorliegende Erfindung arbeitet.
Vermittlung 100 enthält
ein Koppelvielfach von Paket-Bussen 111–119, das von Schnittstellen 101–109 angesteuert
wird. Die Schnittstellen 101–109 enthalten Netzwerkschnittstellen 101–108,
von denen jede einem oder mehreren LANs 121–128 zugeordnet
ist und eine Management-Schnittstelle 109. Jeder Bus hat einen
Stamm (Root), der an eine der Schnittstellen 101–109 angeschlossen
ist und das exklusive Recht hat, Paketdaten auf dem Bus (d. h. auf
der Root-Schnittstelle) zu senden und Blätter (Leaves), die mit der
Vielzahl der Schnittstellen 101–109 verbunden sind,
die Paketdaten vom Bus empfangen (d. h. die Leaf-Schnittstellen). Vorzugsweise ist jede Schnittstelle
die Root-Schnittstelle
an einem der Busse 111–119 und
ist eine Leaf-Schnittstelle
an allen Bussen 111–119,
einschließlich
des Busses, für
den sie Root-Schnittstelle ist. Pakete werden vorzugsweise auf den
Bussen 111–119 in
einer Serie von Bursts mit konstanter Bitrate mit einer Rate von
einem Burst pro Taktzyklus gesendet. Die Busse 111–119 sind rundsendeorientiert,
so dass alle Daten-Burst, die auf einem Bus übertragen werden, alle Schnittstellen 101–109 erreichen.
Zusätzlich
zum Senden und Empfangen von Paketdaten dient Management-Schnittstelle 109 als "Nervenzentrum" von Vermittlung 100,
das die Netzwerkschnittstellen 101–108 dabei unterstützt, die
Adressen von Netzwerk-Einrichtungen an den zugeordneten LANs 121–128 zu lernen,
indem Informationen auf dem Management-Bus (nicht gezeigt) übertragen
werden. Natürlich
ist die oben beschriebene Stamm-Blatt-Architektur eine von vielen
möglichen
Architekturen für
eine Vermittlungsstelle, die gemäß der vorliegenden
Erfindung arbeitet. Andere mögliche
Architekturen haben einen einzigen gemeinsamen Bus zwischen Schnittstellen
oder ein "voll vermaschtes" Koppelvielfach von
Punkt-zu-Punkt-Verbindungen zwischen Schnittstellen.
-
In
einer grundlegenden Betriebsart unterstützt Vermittlung 100 eine
Brücken-Funktion
mit Lernen durch die Quellen. Zum Beispiel kommt ein Paket von einer
Netzwerk-Einrichtung (nicht gezeigt), die sich an einem der LANs 121 befindet,
die mit Netzwerkschnittstelle 101 verbunden sind. Das Paket
enthält
eine Quelladresse der Ursprungs-Netzwerk-Einrichtung, und wenn das
Paket ein Unicast-Paket ist, eine Zieladresse der Netzwerk-Einrichtung,
für welche
die Kommunikation gedacht ist. Adressen der Ebene 2 (Sicherungsschicht),
wie MAC-(Media Access Control)-Adressen werden erwartet. Da das
LAN rundsendet, kommt das Paket an Schnittstelle 101 an.
Wenn die Quelladresse des Paketes an Schnittstelle 101 nicht
erkannt wird, wird das Paket für
eine Lern-Operation an Management-Controller 109 gesendet, was
dazu führt,
dass die Adresse an Schnittstelle 101 "gelernt" wird, d. h. sie wird zu einer Liste
von an Schnittstelle 101 aktiven Adressen hinzugefügt. Anschließend erkennt
Schnittstelle 101 alle Pakete, die von den Bussen 101–109 empfangen werden
und die gelernte Adresse als Zieladresse haben, als an eine Netzwerk-Einrichtung
an einem der LANs 121 gerichtet und erfasst solche Pakete
für die Weiterleitung.
-
Die Überprüfung der
Zieladresse, die mit Paketen durchgeführt wird, die von den Paket-Bussen 101–109 empfangen
werden, wird oft "Filterungs"-Überprüfung genannt, da Pakete, die
als Zieladresse keine Adresse haben, die von Schnittstelle 101 gelernt
wurde, von Schnittstelle 101 verworfen oder "gefiltert" werden, was bestimmten
Ausnahmen unterliegt. Die Filterungs-Überprüfungen werden von den Schnittstellen 101–109 individuell
für jedes
Paket durchgeführt,
das von den Bussen 111–119 empfangen
wird. Die Entscheidung, ob ein Paket weitergeleitet oder gefiltert
wird, erfolgt im Allgemeinen auf der Grundlage, ob das Paket eine
Zieladresse enthält, die
von der Schnittstelle zuvor gelernt wurde, wie oben beschrieben.
Die Schnittstellen 101–109 nutzen
die Ergebnisse solcher Bestimmungen jedoch gemeinsam, um zu verhindern,
dass Pakete gefiltert werden, deren Zieladressen noch von keiner
Schnittstelle gelernt wurden. Solche Pakete mit "unbekanntem Ziel" werden von allen Schnittstellen erfasst. Spezieller
wendet in einer beispielhaften Filterungs-Überprüfung eine Schnittstelle die
folgenden Filterregeln an:
- 1. Wenn das Paket
eine Zieladresse hat, die vorher von der Schnittstelle gelernt wurde,
ist die Filterungs-Überprüfung bestanden.
Das Paket wird erfasst.
- 2. Wenn das Paket eine Zieladresse hat, die vorher von der Schnittstelle
nicht gelernt wurde, und die Zieladresse wurde vorher von einer
anderen Schnittstelle gelernt, ist die Filterungs-Überprüfung fehlgeschlagen.
Das Paket wird gefiltert.
- 3. Wenn das Paket eine Zieladresse hat, die vorher von der Schnittstelle
nicht gelernt wurde, und die Zieladresse wurde vorher nicht von
einer anderen Schnittstelle gelernt, ist die Filterungs-Überprüfung bestanden.
Das Paket wird erfasst.
-
Die
Schnittstellen 101–109 verwenden
vorzugsweise Beanspruchungs-Leitungen (nicht gezeigt), um sich gegenseitig über Entscheidungen
zur Erfassung von Paketen zu unterrichten.
-
Über die
Unterstützung
der gerade beschriebenen Brücken-Funktion mit Lernen
durch die Quellen hinaus unterstützt
Vermittlung 100 eine Prioritäts-Verarbeitung, deren Hauptaufgabe
die vorliegende Erfindung ist. Die Prioritäts-Verarbeitung ist beabsichtigt für den Einsatz
in Verbindung mit Paketen, denen eine Tag-Priorität zugeordnet
ist, wie z. B. Ethernet-Pakete, die zum Std. 802.1Q kompatibel sind.
-
Betrachtet
man nun 2, wird nun eine bevorzugte
Prioritäts-Verarbeitung
beschrieben, wobei auf Netzwerkschnittstelle 200 Bezug
genommen wird, die für
die Netzwerkschnittstellen 101–108 repräsentativ
ist. Schnittstelle 200 enthält Zugangs-Controller 201,
der an LANs angeschlossen ist, und den Vermittlungs-Mechanismus 211.
Controller 201 empfängt
Pakete von LANs, formatiert sie und sendet sie an den Mechanismus 211.
Controller 201 empfängt
auch Pakete von Mechanismus 211, formatiert sie und sendet
sie auf LANs. Mechanismus 211 ist mit Elementen zur Erleichterung
der Prioritätsverarbeitung
verbunden, einschließlich
dem virtuellen Bündel-Finder 221,
der Prioriäts-Wiederabbildungs- Datenbank 231,
einem inhaltsadressierbaren Speicher (CAM) 241, der Weiterleitungs-Datenbank 251 und
der Warteschlangen-Wiederabbildungs-Datenbank 261.
Insbesondere empfängt
der Mechanismus 211 Pakete von Controller 201,
unterwirft sie der Eingangs-Prioritäts-Verarbeitung und sendet
sie auf dem einem der Busse 111–119, für den Schnittstelle 200 die
Root-Schnittstelle
ist. Der Mechanismus 211 empfängt auch Pakete von den Bussen 111–119,
unterwirft ausgewählten
von ihnen der Eingangs-Prioritäts-Verarbeitung
und sendet ausgewählte
von ihnen zu Controller 201. Die Eingangs-Prioritäts-Verarbeitung
wird mit Unterstützung
des virtuellen Bündel-Finders 221,
der Prioriäts-Wiederabbildungs-Datenbank 231,
von CAM 241 und der Weiterleitungs-Datenbank 251 durchgeführt, während die Ausgangs-Prioritäts-Verarbeitung
mit Unterstützung des
CAM 241, der Weiterleitungs-Datenbank 251 und
der Warteschlangen-Wiederabbildungs-Datenbank 261 durchgeführt wird.
-
In
den 3 bis 16 wird die
in Vermittlung 100 unterstützte Prioritätsverarbeitung
detaillierter beschrieben, indem auf ein zum Std. 802.1Q kompatibles
Ethernet-Paket (im Folgenden "mit
Tag versehenes" Paket
genannt) in dem Format, das an Schnittstelle 200 von einem
der LANs empfangen wird, Bezug genommen wird. Betrachtet man zunächst 3,
enthält
das eintreffende Paket 300 eine Ziel-MAC-Adresse (DA0–DA5), gefolgt
von einer Quell-MAC-Adresse (SA0–SR5), einem Tag (TAG0–TAG3) und
einer Typen-Längen-Information (TLO
und TL1). Auf die Typen-Längen-Information folgt
zusätzliche
Information, die typischerweise einen Internet-Protokoll-(IP)-Kopfteil enthält, und
deren erste vier Bytes als D0–D3
gezeigt sind.
-
Am
Zugangs-Controller 201 wird das eintreffende Paket 300 als
mit Tag versehenes Paket erkannt und in einem zur Eingangs-Verarbeitung
fertigen Format bereitgestellt und an Vermittlungs-Mechanismus 211 gesendet.
Die Erkennung als mit Tag versehenes Paket erfolgt durch Referenz
auf einen Teil des Tag (TAG0 und TAG1), der den Wert ×8100 hat,
wenn das Paket ein mit einem Tag versehenes Paket ist, wie im Standard
IEEE 802.1Q definiert. Das eingangs-fertige Paket 400 ist
in 4 mit der Breite von zwei Byte gezeigt, um anzuzeigen,
dass in der erläuterten
Ausführung
das Paket 400 vom Controller 201 zum Mechanismus 211 in
Bursts aus zwei Bytes gesendet wird. Man muss sich jedoch bewusst sein,
dass die Übertragung
in anderen Ausführungen in
unterschiedlichen Breiten erfolgen kann. Paket 400 enthält eine
physikalische Anschluss-Kennung (PORT), die den physikalischen Anschluss
kennzeichnet, über
den das eintreffende Paket 300 empfangen wurde, gefolgt
von Steuerungsinformation (CTRL), die das Paket 400 als
mit Tag versehenes Paket kennzeichnet. Auf CTRL folgt ein Teil des
Tag (TAG2 und TAG3), der Tag-Steuerungs-Information (TCI) enthält, wie
in Std. 802.1Q definiert. Spezieller enthält TCI eine aus drei Byte bestehende
Eingangs-Tag-Priorität,
eine aus einem Bit bestehende kanonische Format-Kennung und eine
aus zwölf
Bit bestehende VLAN-Kennung. Der Rest von Paket 400 wird
als eintreffendes Paket 300 formatiert. Es muss erwähnt werden,
dass wenn ein eintreffendes Paket nicht mit Tag versehen ist, CTRL
diese Bedingung im entsprechenden eingangs-fertigen Paket anzeigt
und an ein solches Paket wird keine TCI angehängt.
-
In
Vermittlungs-Mechanismus 211 wird Paket 400 der
Eingangs-Prioritäts-Verarbeitung
ausgesetzt, um Paket 400 für die Übertragung auf dem Bus vorzubereiten,
für den
Schnittstelle 200 die Root-Schnittstelle ist. Mechanismus 211 erkennt
Paket 400 als mit Tag versehenes Paket, indem er auf CTRL
Bezug nimmt. Wenn sie einmal erkannt wurden, entfernt Mechanismus 211 PORT,
CTRL und TAG2 und TAG3 (einschließlich der darin enthaltenen aus
zwölf Bit
bestehenden VLAN-Kennung) aus Paket 400. PORT wird auf
eine aus acht Bit bestehenden virtuelle Anschluss-Kennung (VPI)
wiederabgebildet, die in Vermittlung 100 nur einmal vorhanden ist.
Diesbezüglich
wird erkannt, dass zwei oder mehr Netzwerk-Schnittstellen 101–108 einen
physikalischen Anschluss haben können,
der durch dieselbe physikalische Anschluss-Kennung repräsentiert
werden kann, und dass durch die Wiederabbildung von PORT in Paket 400 auf
eine VPI alle möglichen
Mehrdeutigkeiten vorteilhaft beseitigt werden. VPI und die aus zwölf Bit bestehende
VLAN-Kennung werden
auf Eingangsleitung 511, bzw. 512 als Paar zum
virtuellen Bündel-Finder 221 gesendet.
-
Im
virtuellen Bündel-Finder 221 wird
das aus zwanzig Bit bestehende VPI/VLAN-Kennungs-Paar auf einen
aus zehn Bit bestehenden Hash-Schlüssel reduziert, der dazu verwendet
wird, eine virtuelle Bündel-Kennung
(VTI) aufzulösen.
Es wird erkannt, dass durch diese Reduktion die Größe des RAM
verringert wird, der dazu benötigt
wird, ein index-basierendes Aufruf-Schema zu implementieren, um
eine Kennung aufzulösen,
wie das hier zur Auflösung
von VTIs beschriebene. Betrachtet man nun 5 und 6 wird
das durch Mechanismus 211 gesendete VPI/VLAN-Paar in Multiplexer-Anordnung 510 empfangen.
Anordnung 510 ist eine Anordnung von gestaffelten Multiplexern 611–620 zur
Reduzierung des VPI/VLAN-Paares auf einen Hash-Schlüssel,
der die Bits aus den Bitpositionen im VPI/VLAN-Paar enthält, die
ein Hashing-Algorithmus als die effektivsten zur Unterscheidung
verschiedener VPI/VLAN-Paare voneinander bestimmt hat. Das VPI/VLAN-Paar
wird in verschiedene Untermengen zerlegt, um von den Multiplexern 611–620 auf
den Eingangsleitungen 601–610 empfangen zu
werden. Die Untermengen, die von verschiedenen der Eingangsleitungen 601–610 gesendet
werden, werden so gestaffelt, dass die Multiplexer 611–620 insgesamt
den Hash-Schlüssel
aus jeder aus zehn Bit bestehenden Kombination im VPI/VLAN-Paar
in Übereinstimmung zu
an die Anordnung 510 angelegten Bit-Auswahl-Befehlen auswählen können. Somit
kann zum Beispiel Eingangsleitung 601 die Bits Null bis
Zwölf des
VPI/VLAN-Paares übertragen,
Eingangsleitung 602 die Bits Eins bis Dreizehn, Eingangsleitung 603 die
Bits Zwei bis Vierzehn, und so weiter übertragen. Mit Unterstützung der
Multiplexer-Steuerung 520 wählt jeder
der Multiplexer 611–620 ein
einzelnes Bit aus der zugehörigen
der Eingangsleitungen 601– 610 aus und sendet
nur das ausgewählte
Bit. Optional kann die Multiplexer-Steuerung 520 bewirken,
dass einer oder mehrere der Multiplexer 611–620 alle
Bits auf seiner zugehörigen
der Eingangsleitungen 601–610 ignoriert und
automatisch einen Wert von Null wählt. Die ausgewählten Bits
des VPI/VLAN-Paares und alle Werte Null werden auf Ausgangsleitungen 631–640 gesendet
und bilden zusammen den Hash-Schlüssel.
-
Die
Bitauswahl der Multiplexer wird durch die Multiplexer-Steuerung 520 gesteuert.
Steuerung 520 enthält
ein Speicherelement zur Speicherung einer Hash-Maske und der zugehörigen Logik.
Die Hash-Maske wird vorteilhaft auf Eingangsleitung 521 programmiert
und aktualisiert. Die Werte für
die Hash-Maske werden von einem Hashing-Algorithmus berechnet, so
dass jedes von Anordnung 510 empfangene VPI/VLAN-Paar auf
einen Hash-Schlüssel
reduziert werden kann, der die Bits von den Bitpositionen enthält, die
der Hashing-Algorithmus
als am effektivsten zur Unterscheidung von VPI/VLAN-Paaren voneinander
bestimmt hat. Um die Auswahl zu vereinfachen, ist die Steuerung 520 über die
Maskierungsleitungen 631–640 an die Multiplexer 611–620 gekoppelt.
Die Steuerung 520 bestimmt Bitauswahl-Befehle für jeden
der Multiplexer 611–620 aus der
Hash-Maske und sendet die Bitauswahlbefehle auf den Maskierungs-Leitungen 631–640.
Jeder Bitauswahlbefehl reicht aus, um ein einzelnen Bit des VPI/VLAN-Paares
zu erkennen, falls vorhanden, und jeder der Multiplexer 611–620 kann
für die
Aufnahme in den Hash-Schlüssel ausgewählt werden.
Somit kann zum Beispiel der vom Multiplexer 611 auf Leitung 631 empfangene
Bitauswahlbefehl dem Multiplexer 611 den Befehl geben,
eines der Bits Null bis Zwölf
des VPI/VLAN-Paares, falls vorhanden, zur Aufnahme in den Hash-Schlüssel auszuwählen; der vom
Multiplexer 612 auf Leitung 632 empfangene Bitauswahlbefehl
kann dem Multiplexer 612 den Befehl geben, eines der Bits
Eins bis Dreizehn, falls vorhanden, zur Aufnahme in den Hash-Schlüssel auszuwählen; und
so weiter. Der Hash-Schlüssel
wird zusammen mit einem Offset, der auf Eingangsleitung 513 gesendet
wird, zur virtuellen Bündel-Übereinstimmungs-Steuerung 530 gesendet,
die zusammen einen Zeiger-zu-virtuellem-Bündel-Hash-Speicher (RAM) 540 bilden.
Diesbezüglich
enthält
Hash-RAM 540 zwei Tabellen (Tabelle 1 und Tabelle 2), von
denen zu einem bestimmten Zeitpunkt in Übereinstimmung zum Offset eine
ausgewählt
wird.
-
Das
aus zwanzig Bit bestehende VPI/VLAN-Paar wird auch von der virtuellen
Bündel-Übereinstimmungs-Steuerung 530 empfangen, um
es zum Vergleich in einem assoziativen Vergleich mit einem oder
mehreren VPI/VLAN-Paaren zu verwenden, die vom Hash-RAM 540 zurückgegeben werden.
Der Vergleich soll nun detaillierter beschrieben werden. Mit Bezug
auf 7 ist die Übereinstimmungs-Steuerung 530 mit
Hash-RAM 540 verbunden, um assoziative Vergleiche unter
Verwendung des Zeigers durchzuführen,
der aus dem Hash-Schlüssel
und dem Offset gebildet wird. Der Zeiger wird als Anfangs-Zeiger
in den Hash-RAM 540 verwendet,
um den Inhalt des Eintrags abzurufen, der mit dem Index verbunden
ist, dessen Wert mit dem Zeiger übereinstimmt.
Der Zeiger wirkt so, dass er einen Durchlauf durch eine verkettete
Liste von Einträgen
in der Tabelle in Gang setzt, der andauert, bis entweder eine Übereinstimmung
für das VPI/VLAN-Paar
gefunden oder das Ende der verketteten Liste erreicht wird. Insbesondere
enthält
Tabelle 700 Eintrags-Inhalte bei entsprechenden Indizes. Der
Eintrags-Inhalt
umfasst für
jeden Eintrag ein VPI/VLAN-Paar, eine VTI und einen Schlüssel zum "nächsten Eintrag", falls vorhanden.
Im gezeigten Beispiel enthält
die Tabelle 700 N Eintrags-Untermengen, die N verkettete Listen
oder "Buckets" bilden. Der erste
Bucket enthält
die Indizes 701 und 709. Der zweite Bucket enthält die Indizes 702, 705, 707 und 710.
Der dritte Bucket enthält
die Indizes 703 und 708. Der N-te Bucket enthält die Indizes 704 und 706.
Wenn ein Zeiger zum Beispiel auf Index 702 zeigt und das
VPI/VLAN-Paar aus dem entsprechenden Eintrag nicht mit dem VPI/VLAN-Paar
in der Übereinstimmungs-Steuerung 530 übereinstimmt, wird
der Schlüssel
zum "nächsten Eintrag" aus dem Eintrag
(der Index 705 kennzeichnet) als Zeiger auf Index 705 verwendet.
Wenn das Paar, das von dem Eintrag zurückgegeben wird, der Index 705 entspricht,
nicht übereinstimmt,
wird der Schlüssel "nächster Eintrag" vom Eintrag (der
Index 707 kennzeichnet) als Zeiger auf Index-Satz 707 verwendet. Die Übereinstimmungs-Steuerung 530 setzt
diesen Durchlauf durch Hash-RAM 120 fort, bis eine Übereinstimmung
gefunden wird. Die Übereinstimmungs-Steuerung 530 gibt
die VTI, die mit dem passenden Eintrag verbunden ist, zur Übereinstimmungs-Steuerung 530 zurück, um sie
zum Vermittlungs-Mechanismus 211 auf Ausgangsleitung 531 weiterzuleiten.
-
Die
virtuelle Bündel-Übereinstimmungs-Steuerung 530 verfolgt
auch die Leistungsfähigkeit
des Hashing-Algorithmus und benachrichtigt einen externen Prozessor
(nicht gezeigt) über
Ausgangsleitung 532, wenn sich die Leistungsfähigkeit um
einen bestimmten Wert verschlechtert hat. Insbesondere erhöht die Steuerung 530 einen
Wert in einem Speicher für
jeden fehlgeschlagenen Versuch, eine Übereinstimmung des vom Hash-RAM 540 zurückgelieferten
VPI/VLAN-Paares mit dem Vergleichswert herzustellen. Wenn sich die
Leistungsfähigkeit
unter einen minimalen Leistungsfähigkeits-Standard
verschlechtert hat, sendet die Steuerung 530 auf Ausgangsleitung 532 eine
Fehlermeldung zum Prozessor, die bewirkt, dass der Prozessor den
Hashing-Algorithmus neu berechnet und die Hash-Maske auf Eingangsleitung 521 aktualisiert.
Es können
verschiedene Standards für
die minimale Leistungsfähigkeit
implementiert werden, die auf Überlegungen,
wie z. B. der Gesamtzahl fehlgeschlagener Versuche, der größten Zahl
fehlgeschlagener Versuche für
einen speziellen Durchlauf, der mittleren Zahl fehlgeschlagener
Versuche pro speziellen Durchlauf oder auf der Häufigkeit, mit der eine Anzahl fehlgeschlagener
Versuche überschritten
wurde, beruhen. Der Standard für
die minimale Leistungsfähigkeit
ist in der Übereinstimmungs-Steuerung 530 konfigurierbar.
Man ist sich dessen bewusst, dass immer wenn die Hash-Maske geändert wird,
die Einträge
im Hash-RAM 540 auf mit neuen Indizes versehene Speicherstellen
geschrieben werden müssen.
Das Neuschreiben der Einträge
kann mit minimalem Einfluss auf die Leistungsfähigkeit durchgeführt werden, indem
eine Tabelle für
die Suche verwendet wird, während
die andere neu geschrieben wird, und indem für den Zugriff auf den Hash-RAM 540 die
Suche Priorität
vor dem Neuschreiben bekommt.
-
In 8 ist
die Prioritäts-Wiederabbildungs-Datenbank 231 detaillierter
gezeigt. Datenbank 231 bestimmt eine Ausgangs-Tag-Priorität für ein eingangs-fertiges
Paket 400, die auf Eingangs-Tag-Priorität und der aufgelösten VTI
beruht. Insbesondere sendet Vermittlungs-Mechanismus 211 die
Eingangs-Tag-Priorität von Paket 400 und
die vom virtuellen Bündel-Finder 221 empfangene
VTI zur Datenbank 231. Die Eingangs-Tag-Priorität und die VTI werden als Zeiger
auf einen entsprechenden Index in der Datenbank 231 verwendet,
der eine Ausgangs-Tag-Priorität
zurückgibt.
-
Unabhängig von
der Bestimmung der Ausgangs-Tag-Priorität, die in der Prioritäts-Wiederabbildungs-Datenbank 231 durchgeführt wird,
fragt Vermittlungs-Mechanismus 211 CAM 241 und
die Weiterleitungs-Datenbank 251 ab, um eine Prioritäts-Auswahl für Paket 400 durchzuführen. Kehrt man
zu 2 zurück,
verfügt
CAM 241 über
Einträge,
die an verschiedenen CAM-Indizes gelernte Adressen von Netzwerk-Einrichtungen
enthalten, die sich an den LANs befinden, die Schnittstelle 200 zugeordnet
sind. Weiterleitungs-Datenbank 251 enthält Einträge, die mit diesen Einträgen in CAM 241 über einen
allgemeinen Index verbunden sind. Die Quelladresse in Paket 400 wird
an CAM 241 geliefert, der den CAM-Index zurückliefert,
an dem sich die Quelladresse befindet (im Folgenden Quell-CAM-Index oder
SCI genannt). Mit Bezug auf 9 wird der
SCI als Zeiger auf den verketteten Eintrag in Datenbank 251 verwendet,
um Weiterleitungs-Daten abzurufen, einschließlich einer Prioritäts-Auswahl-Anzeige
für Paket 400, die
an Mechanismus 211 zurückgegeben wird.
Die Prioritäts-Auswahl-Anzeige bestimmt,
ob ein Paket 400 in Vermittlung 100 in Relation
zu seiner Tag-Priorität
eine Dienstgüte
bekommt oder nicht, was im Folgenden detaillierter erklärt wird.
Wie gezeigt, enthält
Datenbank 251 an bestimmten Indizes Prioritäts-Auswahl-Anzeigen
und lokale Warteschlangen-Kennungen.
Lokale Warteschlangen-Kennungen sind in der vorliegenden Erläuterung nicht
an der Eingangs-Prioritäts-Verarbeitung beteiligt,
sie werden jedoch vorteilhaft in der Ausgangs-Prioritäts-Verarbeitung
implementiert, die später
erläutert
wird. Es muss erwähnt
werden, dass wenn die Quelladresse in Paket 400 noch nicht
gelernt wurde, keine gültige
SCI vom CAM 241 zurückgegeben
wird, und die vom virtuellen Bündel-Finder 221 zurückgegebene
VTI kann stattdessen als Index in eine andere Datenbank (nicht gezeigt)
verwendet werden, um eine Prioritäts-Auswahl für Paket 400 durchzuführen.
-
Vermittlungs-Mechanismus 211 hängt einen lokalen
Paketkopfteil an das eingangs-fertige Paket 400 an (ohne
PORT, CTRL und TAG2 und TAG3, die zuvor entfernt wurden), um das
Paket in ein ausgangs-fertiges Format zu bringen. In 10 ist
der lokale Paketkopfteil 1000 des ausgangs-fertigen Paketes
gezeigt. Kopfteil 1000 enthält SCI oder, wenn vom CAM 241 keine
gültige
SCI zurückgegeben
wurde, VTI und eine Schnittstellen-Kennung, die ausreicht, um anzuzeigen,
dass VTI von Schnittstelle 200 kommt. Diesbezüglich wird
erkannt, dass zwei oder mehr Netzwerkschnittstellen 101–108 ein VPI/VLAN-Paar haben können, das
durch dieselbe VTI repräsentiert
wird, und dass durch die zusätzlichen
Bits alle möglichen
Mehrdeutigkeiten vorteilhaft beseitigt werden. Kopfteil 1000 enthält weiterhin
eine Anzeige "ungültige SCI", mit der gekennzeichnet wird,
ob eine gültige
SCI zurückgegeben
wurde oder nicht. Insbesondere wird, wenn die Anzeige "ungültige SCI" gesetzt ist, das
ausgangs-fertige Paket von Management-Schnittstelle 109 erfasst und
dem "Quellen-Lernen" unterzogen, was
dazu führt,
dass die Quelladresse zum CAM 241 hinzugefügt wird. Kopfteil 1000 enthält auch
die Ausgangs-Tag-Priorität,
die von der Prioritäts-Wiederabbildungs-Datenbank 231 zurückgegeben
wurde, die Prioritäts-Auswahl-Anzeige,
die von der Weiterleitungs-Datenbank 251 zurückgegeben
wurde (oder vom VTI-Abruf, wenn CAM 241 keine gültige SCI
zurückgegeben hat),
sowie eine Kopfteil-Längen-Information,
eine Zieladresse und Paketsteuerungs-Information. Das ausgangs-fertige
Paket wird auf den Bus gesendet, für den Schnittstelle 200 die
Root-Schnittstelle
ist, was die Beendigung der Eingangs-Prioritäts-Verarbeitung kennzeichnet.
-
Bis
zu diesem Punkt der Erklärung
wurde eine Eingangs-Prioritäts-Verarbeitung
beschrieben, in der eine Ausgangs-Tag-Priorität für ein Paket auf der Grundlage
einer Eingangs-Tag-Priorität und einer Vielzahl
anderer Werte bestimmt und auf das Paket angewendet wird; und in
der eine Prioritäts-Auswahl-Anzeige für ein Paket
bestimmt und auf das Paket angewendet wird, wobei die Anzeige bestimmt, ob
das Paket auf der Grundlage seiner Tag-Priorität in der Vermittlungsstelle
priorisiert wird. Es gibt andere und weitere Fortschritte gegenüber herkömmlichen
Verfahren der hier beschriebenen Prioritäts-Verarbeitung; trotzdem wird
die bis zu diesem Punkt beschriebene Eingangs-Prioritäts-Verarbeitung
als ein wesentlicher Fortschritt gegenüber dem bisherigen Stand der
Technik angesehen.
-
Es
wird nun auf eine repräsentative
Netzwerkschnittstelle 200 Bezug genommen, um die Ausgangs-Prioritäts-Verarbeitung
des ausgangs-fertigen Paketes zu beschreiben. Um eine unnötige Kompliziertheit
zu vermeiden, wird angenommen, dass Schnittstelle 200 die
Schnittstelle der Netzwerkschnittstellen 101–108 ist,
die dem LAN zugeordnet ist, an dem sich die Netzwerk-Einrichtung
befindet, an die das ausgangs-fertige Paket gerichtet ist, und dass
die Netzwerk-Einrichtung, von der das Paket kommt, die Berechtigung
hat, mit der Netzwerk-Einrichtung
zu kommunizieren, an die das Paket gerichtet ist. Aspekte der Ausgangs-Verarbeitung,
die diese Annahmen überprüfen, wie
z. B. eine Berechtigungsprüfung,
welche die SCI-Komponente des Kopfteils 1000 nutzen, werden
daher nicht detaillierter beschrieben. Vermittlungs-Mechanismus 211 trennt den
Kopfteil 1000 vom Paket, fragt CAM 241 und die Weiterleitungs-Datenbank 251 ab,
um festzustellen, ob die Zieladresse in Kopfteil 1000 erkannt
wird, und bestimmt eine lokale Prioritäts-Warteschlangen-Kennung (LPQID)
dafür.
Wie oben erwähnt,
enthält
CAM 241 Einträge,
die unter verschiedenen CAM-Indizes die gelernten Adressen der Netzwerk-Einrichtungen enthalten,
die sich an LANs befinden, die der Schnittstelle 200 zugeordnet
sind. Weil die Zieladresse in dem betrachteten Beispiel erkannt
wird, liefert CAM 241 den CAM-Index zurück, an dem sich die Zieladresse
befindet (im Folgenden Ziel-CAM-Index oder DCI genannt). In 9 wird
der DCI als Zeiger auf den verbundenen Eintrag in der Weiterleitungs-Datenbank 251 verwendet,
um Weiterleitungs-Daten abzurufen,
einschließlich
der LPQID für
das Paket, die an Mechanismus 211 zurückgegeben wird. LPQID ist in
dem Sinne "lokal", dass sie von Vermittlungsstelle 100 bestimmt
wird, ohne auf eine Tag-Priorität
Bezug zu nehmen. LPQID bietet somit die Fähigkeit, das ausgangs-fertige
Paket zu priorisieren, insbesondere bezüglich der Planung seiner Aussendung
von Schnittstelle 200 bezogen auf andere Pakete, was von
seiner Tag-Priorität
unabhängig
ist. Die Entscheidung, ob eine Priorisierung in Übereinstimmung mit der Tag-Priorität oder unabhängig von
der Tag-Priorität
bewirkt werden soll, erfolgt durch Referenz auf die Prioritäts-Auswahl-Anzeige
und wird nun detaillierter erklärt.
-
Vermittlungs-Mechanismus 211 fragt
die Prioritäts-Auswahl-Anzeige in Kopfteil 1000 ab,
um festzustellen, ob das ausgangs-fertige Paket eine Priorisierung
auf Tag-Basis bekommen soll oder nicht. Wenn die Prioritäts-Auswahl-Anzeige
anzeigt, dass das Paket keine Priorisierung auf Tag-Basis bekommen
soll, wird das Paket (neu formatiert) in der Prioritäts-Warteschlange
gespeichert, die durch LPQID angegeben wird, um es gemäß einem
auf Prioritäten beruhenden
Scheduling-Algorithmus zum Zugangs-Controller 201 zu senden.
Wenn die Prioritäts-Auswahl-Anzeige
jedoch anzeigt, dass das Paket eine Priorisierung auf Tag-Basis
bekommen soll, benutzt Mechanismus 211 die Warteschlangen-Wiederabbildungs-Datenbank 261,
um eine Tag-Prioritäts-Warteschlangen-Kennung
(TPQID) zu bestimmen. In 11 wird
die Datenbank 261 detaillierter dargestellt. Datenbank 261 bestimmt
eine TPQID für das
Paket auf der Grundlage der Ausgangs-Tag-Priorität und der LPQID. Insbesondere
sendet Mechanismus 211 die Ausgangs-Tag-Priorität von Kopfteil 1000 und
die aus der Weiterleitungs-Datenbank 251 aufgelöste LPQID
an die Warteschlangen-Wiederabbildungs-Datenbank 261. Die Ausgangs-Tag-Priorität und die
LPQID werden als Zeiger auf einen entsprechenden Index in Datenbank 261 verwendet,
der TPQID zurückgibt.
TPQID wird an Mechanismus 211 zurückgegeben, und das Paket (neu
formatiert) wird in der Prioritäts-Warteschlange
gespeichert, die durch TPQID angegeben wird, um es gemäß einem auf
Prioritäten
beruhenden Scheduling-Algorithmus zum Zugangs-Controller 201 zu
senden.
-
In 12 ist
das Format gezeigt, in dem das Paket von Mechanismus 211 zum
Zugangs-Controller 201 gesendet wird. Paket 1200 enthält eine
physikalische Anschluss-Kennung (PORT), die den physikalischen Anschluss
kennzeichnet, über
den das abgehende Paket gesendet wird, gefolgt von Steuerungsinformation
(CTRL), die Paket 1200 als mit Tag versehenes Paket kennzeichnet.
Auf CTRL folgt ein Teil des Tag (TAG2 und TAG3), der eine TCI hat,
welche die Ausgangs-Tag-Priorität enthält. Paket 1200 hat
auch eine Zieladresse (DA0–DA5),
eine Quelladresse (SA0–SA5),
eine Typ-Längen-Information (TL0–TL1) und
weitere Informationen. An Zugangs-Controller 201 wird Paket 1200 als
mit Tag versehenes Paket erkannt, indem auf CTRL zugegriffen wird.
Wenn Paket 1200 als mit Tag versehenes Paket erkannt wurde,
entfernt Controller 201 PORT, CTRL und TAG2 und TAG3 aus
Paket 1200 und setzt ein vollständiges Tag (TAG0–TAG3) an
die Position, die vom Standard IEEE 802.1Q angegeben wird, um das
Ausgangs-Paket 1300 zu erzeugen. Paket 1300 wird
von Controller 201 über
den Anschluss, der durch PORT angegeben wird, an das betreffende
der LANs 121 gesendet.
-
In 14 wird
die Eingangs-Prioritäts-Verarbeitung
mit Bezug auf ein Flussdiagramm beschrieben. Ein mit Tag versehenes
Paket wird an einem physikalischen Anschluss von Vermittlungsstelle 100 empfangen
(1410), und eine virtuelle Anschluss-Kennung wird bestimmt,
die auf einer mit dem physikalischen Anschluss verbundenen Kennung
beruht (1420). Auf der Grundlage der virtuellen Anschluss-Kennung
und der VLAN-Kennung, die Teil des eintreffenden Tags ist, wird
eine virtuelle Bündel-Kennung
bestimmt (1430). Die virtuelle Anschluss-Kennung und die
Prioritäts-Komponente
des eintreffenden Tags werden dazu verwendet, die Ausgangs-Tag-Priorität zu bestimmen
(1440), und getrennt davon wird eine Quelladresse des eintreffenden
Paketes dazu benutzt, eine Prioritäts-Auswahl durchzuführen (1450).
Die Prioritäts-Auswahl-Anzeige und
die Ausgangs-Tag-Priorität
werden auf einen lokalen Kopfteil des Paketes angewendet (1460), und
das Paket wird gesendet (1470).
-
In 15 wird
die Ausgangs-Prioritäts-Verarbeitung
mit Bezug auf ein Flussdiagramm beschrieben. Ein eingangsverarbeitetes
Paket wird empfangen (1510), und es wird eine lokale Prioritäts-Warteschlangen-Kennung
auf der Grundlage der Zieladresse des Paketes (1520) bestimmt.
Die Prioritäts-Auswahl-Anzeige des
Paketes wird abgefragt, um zu bestimmen, ob das Paket auf der Grundlage seiner
mit einem Tag versehenen Priorität
zu priorisieren ist oder nicht (1530). Wenn die Antwort
negativ ist, wird das Paket auf der Basis der lokalen Prioritäts-Warteschlangen-Kennung
an eine Prioritäts-Warteschlange angelegt
(1550). Wenn die Antwort positiv ist, wird jedoch eine
Tag-Prioritäts-Kennung
auf der Basis der lokalen Prioritäts-Warteschlangen-Kennung und
der Ausgangs- Tag-Priorität bestimmt
(1540), und Paket wird auf der Basis der Tag-Prioritäts-Kennung
an eine Prioritäts-Warteschlange
angelegt (1550). In jedem Fall wird ein Ausgangs-Tag auf
das Paket angewendet (1560), einschließlich der Ausgangs-Tag-Priorität, und das
Paket wird von der Vermittlungsstelle 100 gesendet (1570).
-
Es
wurde daher eine Prioritäts-Verarbeitung beschrieben,
in der ein mit einem Tag versehenes Paket an einer Vermittlungsstelle
entweder (i) eine lokale Priorisierung unabhängig von der Tag-Priorität oder (ii)
eine mit Tag versehene Priorisierung abhängig von der Tag-Priorität liefert.
Darüber
hinaus wurde eine auf Prioritäten
beruhende Verarbeitung beschrieben, in der eine Ausgangs-Tag-Priorität zur Übertragung
in einem abgehenden, mit Tag versehenen Paket erhalten bleiben kann,
unabhängig
davon, ob die Ausgangs-Tag-Priorität auf die
Vermittlung angewendet wird, um eine Priorisierung zu bewirken. Diese
Attribute werden als zusätzliche
bedeutende Vorteile gegenüber
dem bisherigen Stand der Technik angesehen.