-
HINTERGRUND DER ERFINDUNG
-
Gebiet der Erfindung
-
Die
Erfindung betrifft Systeme und Verfahren für die Hochleistungs-Netzwerkvermittlung.
Insbesondere betrifft die Erfindung eine neue Vermittlungsarchitektur
zum Integrieren mehrerer Switches in eine einzelne Vorrichtung.
-
Beschreibung der verwandten
Fachgebiete
-
Da
sich die Leistungsfähigkeit
von Computern in den letzten Jahren erhöht hat, sind die Anforderungen an
Computer-Netzwerke beträchtlich
gestiegen; schnellere Computer-Prozessoren und höhere Speicherleistungen erfordern
Netzwerke mit hoher Leistungsfähigkeit
hinsichtlich der Bandbreite, um die Hochgeschwindigkeitsübertragung
von bedeutenden Datenmengen zu ermöglichen. Die gut bekannte Ethernet-Technologie, die
auf zahlreichen IEEE-Ethernet-Standards basiert, ist ein Beispiel
für Computer-Netzwerktechnologie,
die so verändert
und verbessert werden konnte, dass sie weiterhin eine brauchbare
Computer-Technologie darstellt. Eine umfassendere Abhandlung über Netzwerksysteme
nach dem Stand der Technik findet sich beispielsweise in SWITCHED
AND FAST ETHERNET von Breyer und Riley (Ziff-Davis, 1996) und in
zahlreichen, sich auf die IEEE 802-Standards beziehenden IEEE-Veröffentlichungen.
Die auf dem OSI-7-Schichten-Referenzmodell basierenden Netzwerkfunktionen
wurden durch die Entwicklung von Repeatern, Bridges, Routern und
in jüngster
Zeit "Switches" ausgebaut, die mit
verschiedenen Arten von Kommunikationsmedien funktionieren. Thick-Wire-,
Thin-Wire-, Twisted-Pair- und Glasfaserkabel sind Beispiele für Medien,
die für
Computer-Netzwerke
eingesetzt wurden und werden. Unter Switches versteht man mit Bezug
auf Computer-Netzwerke und Ethernet Hardware-gestützte Vorrichtungen,
die den Fluss von Datenpaketen oder Zellen auf der Grundlage von
Zieladresseninformationen steuern, die in jedem Paket zur Verfügung stehen.
Ein in geeigneter Weise konstruierter und implementierter Switch
sollte in der Lage sein, ein Paket zu empfangen und das Paket mit
so genannter Leitungsgeschwindigkeit an einen geeigneten Ausgangs-Port
zu vermitteln, wobei es sich um die maximale Geschwindigkeit handelt,
die in dem betreffenden Netzwerk leistungsmäßig möglich ist. Aktuelle grundle gende
Ethernet-Leitungsgeschwindigkeiten reichen typischerweise von 10
Megabit pro Sekunde bis zu 10.000 Megabit pro Sekunde bzw. 10 Gigabit
pro Sekunde. Mit zunehmender Geschwindigkeit sind die Konstruktions-Randbedingungen
und -anforderungen im Hinblick auf das Befolgen geeigneter Konstruktions-
und Protokollregeln und das Bereitstellen einer preisgünstigen,
wirtschaftlich machbaren Lösung
immer komplexer geworden. Beispielsweise können nun Netzwerkvorrichtungen
mit sich ändernder Übertragungsgeschwindigkeit
nebeneinander in einem einzelnen Netzwerk existieren, wodurch ein
Switch erforderlich ist, um mehrere mit unterschiedlichen Geschwindigkeiten
betriebene Vorrichtungen zu handhaben. Als Ergebnis der Nichtübereinstimmung
der Geschwindigkeiten wird die Flusssteuerung innerhalb eines Switches
immer wichtiger.
-
Der
Wettbewerb und andere marktbedingte Zwänge erfordern die Herstellung
von leistungsfähigeren Netzwerkvorrichtungen,
die den Verbraucher weniger kosten. Um die Fertigungskosten von
Netzwerkvorrichtungen zu verringern, können aktuelle Vermittlungslösungen miteinander
kombiniert werden, um größere Vorrichtungen
zu niedrigeren Kosten auszubilden. Demgemäß besteht Bedarf an neuen und
verbesserten Systemen und Verfahren zum Integrieren von Switches,
um Netzwerkvorrichtungen mit einer größeren Anzahl von Ports und
verbesserter Leistungsfähigkeit
herzustellen.
-
Das
Dokument LEVEL ONE: "Level
OneTM IXP1200 Network Processor", LEVEL ONE, September 1999
(1999-90), XP002187948, aus dem Internet abgerufen unter:
<URL:http://www.cs.utah.edu/~cs6935/Previous/s01/netprocs/ixalixp1200ad.pdf> [abgerufen am 22.01.2002] offenbart
einen integrierten Hybrid-Datenprozessor, der einer breiten Palette
von Netzwerk- und Kommunikationsprodukten Parallelprozessorleistung
und Flexibilität
zur Verfügung
stellt.
-
Das
Dokument "NOUREDDINE
W ET AL: "SELECTIVE
BACKPRESSURE IN SWITCHED ETHERNET LANS" (Selektiver Staudruck in vermittelten
Ethernet-LANs), 1999 IEEE GLOBAL TELECOMMUNICATIONS CONFERENCE.
GLOBECOM'99. SEAMLESS
INTERCONNECTION FOR UNIVERSAL SERVICES (Nahtlose Verbindung für universelle
Dienste). RIO DE JANEIRO, BRASILIEN, 05–09. Dezember 1999, IEEE GLOBAL
TELECOMMUNICATIONS CONFERENCE, NEW YORK, NY: IEEE, USA, Band 2,
5. Dezember 1999 (1999-12-05), Seiten Nr. 1256-1263, XP002258500
ISBN: 0-7803-5797-3
offenbart einen Staudruck-Mechanismus auf der Sicherungsschicht
zur Ergänzung
einer Ende-zu-Ende-Flusssteuerung mittels der Behandlung von Kurzzeitüberlastungen.
-
Das
Dokument WO 0003256 A offenbart eine Lösung für einen Netzwerk-Switch, wobei sich
der Switch auf einem Chip befindet, die geeignet ist, um in Ethernet-,
Fast Ethernet- und Gigabit Ethernet-Systemen verwendet zu werden,
wobei die gesamte Vermittlungs-Hardware auf einem einzelnen Mikrochip
angeordnet ist.
-
Das
Dokument "DOGANATA
Y ET AL: "Effects
of cascading on the performance of a switching subsystem" (Auswirkungen des
Kaskadierens auf die Leistung eines Vermittlungs-Subsystems) COMMUNICATION
FOR GLOBAL USERS. INCLUDING A COMMUNICATIONS THEORY MINI CONFERENCE
(Kommunikation für
globale Anwender, einschließlich
einer Mini-Konferenz über
Kommunikationstheorie). ORLANDO, 06. bis 09. Dezember 1992, PROCEEDINGS
OF THE GLOBAL TELECOMMUNICATIONS CONFERENCE (Tagungsband der globalen
Telekommunikationskonferenz) (GLOBECOM), NEW YORK, IEEE, USA, Band
1, 6. Dezember 1992 (1992-12-06) Seiten Nr. 1493 bis 1497, XP010062487
ISBN: 0-7803-0608-2
offenbart ein Vermittlungs-Subsystem, das so angepasst ist, dass
es eine effiziente Zuteilungsstrategie zur Zuweisung von Intra-Switch-Links
auswählt.
-
Es
ist eine Aufgabe der vorliegenden Erfindung, einen Netzwerk-Switch
bereitzustellen, der in der Lage ist, die Last an seinen jeweiligen
Ports in ausgesprochen effektiver und schneller Weise auszugleichen, um
mit einem Switch auf einem Chip (SOC) eine Vermittlung bei hoher
Betriebsleistung bereitzustellen.
-
Diese
Aufgabe wird durch eine in dem unabhängigen Anspruch 1 angegebene
Netzwerkvorrichtung erreicht.
-
Insbesondere
wird diese Aufgabe mittels der Kombination von Adressauflösungslogik
erreicht, die mit einer Verringerung der Anzahl von in der Regeltabelle
notwendigen Einträgen
mittels Auflösung
von Interstack-Tags kombiniert wird.
-
Vorteilhafte
Ausführungsbeispiele
der Erfindung sind in den Unteransprüchen definiert.
-
Es
wird eine beispielhafte Netzwerkvorrichtung mit einer Vielzahl von
Ports zum Vermitteln von Datenpaketen zwischen Netzwerk-Ports der
Vielzahl von Ports bereitgestellt. Die Netzwerkvorrichtung umfasst
einen ersten Switch, einen zweiten Switch und eine CPU. Der erste
Switch umfasst eine erste Gruppe von Ports, bei denen es sich um
eine Untermenge der Vielzahl von Ports handelt und die durch ein
erstes Nummerierungsschema nummeriert sind, eine erste Logik zur Übertragungsgeschwindigkeitssteuerung
zum Ausführen
von Funktionen zur Übertragungsgeschwindigkeitssteuerung,
die sich auf das Vermitteln von Datenpaketen zwischen den Netzwerk-Ports
beziehen, und einen ersten lokalen Kommunikationskanal zum Übermitteln
von Nachrichten zwischen der ersten Gruppe von Ports und der Logik
zur Übertragungsgeschwindigkeitssteuerung.
Der erste Switch ist so konfiguriert, dass er auf der Grundlage
des Datenpaketverkehrs zu der ersten Gruppe von Ports Nachrichten
zur Übertragungsgeschwindigkeitssteuerung
generiert. Der zweite Switch umfasst eine zweite Gruppe von Ports,
bei denen es sich um eine Untermenge der Vielzahl von Ports handelt
und die durch ein von dem ersten Nummerierungsschema abweichendes
zweites Nummerierungsschemas nummeriert sind, eine zweite Logik
zur Übertragungsgeschwindigkeitssteuerung
zum Ausführen
von Funktionen zur Übertragungsgeschwindigkeitssteuerung,
die sich auf das Vermitteln von Datenpaketen zwischen den Netzwerk-Ports
beziehen, und einen zweiten lokalen Kommunikationskanal zum Übermitteln
von Nachrichten zwischen der zweiten Gruppe von Ports und der zweiten
Logik zur Übertragungsgeschwindigkeitssteuerung. Der
zweite Switch ist außerdem
so konfiguriert, dass er auf der Grundlage des Datenpaketverkehrs
zu der zweiten Gruppe von Ports Nachrichten zur Übertragungsgeschwindigkeitssteuerung
generiert. Die CPU ist mit dem ersten Switch und dem zweiten Switch
gekoppelt und so konfiguriert, dass sie den ersten Switch und den zweiten
Switch steuert. Ein erster Link-Port der ersten Gruppe von Ports
ist mit einem zweiten Link-Port
der zweiten Gruppe von Ports gekoppelt, und der erste Link-Port
und der zweite Link-Port sind so konfiguriert, dass sie sich die
Nachrichten zur Übertragungsgeschwindigkeitssteuerung
gegenseitig weiterleiten; und ferner umfassend Adressauflösungslogik,
die so konfiguriert ist, dass sie eine Adressauflösung von
Datenpaketen durchführt,
die an Netzwerk-Ports der Vielzahl von Ports empfangen werden, und
dass sie Datenpakete von einem ersten Netzwerk-Port zu einem zweiten
Netzwerk-Port der
Vielzahl von Ports vermittelt, dass sie auf der Grundlage des ersten
und des zweiten Nummerierungsschemas eine Adressauflösung in
solcher Weise durchführt,
so dass, wenn sich der erste Netzwerk-Port in der ersten Gruppe
von Ports befindet und sich der zweite Netzwerk-Port in der zweiten
Gruppe von Ports befindet, ein an dem ersten Netzwerk-Port empfangenes
Datenpaket, das für
den zweiten Netzwerk-Port
bestimmt ist, direkt von dem ersten Netzwerk-Port zu dem zweiten
Netzwerk-Port geleitet
wird, wobei wenigstens einer von dem ersten und zweiten Link-Port
eine Tag-Einfügungseinheit
zum Einfügen
eines auf das Ziel bezogenen Interstack-Tags in ein Paket umfasst; eine Verarbeitungseinheit
zum Verarbeiten des Pakets; und eine Entfernungseinheit zum Entfernen
des Interstack-Tags aus dem Paket, wenn das Paket zu einem Ziel-Port
vermittelt wird; wobei die Adressauflösung ferner auf dem Interstack-Tag
basiert.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Die
Aufgaben und Merkmale der Erfindung sind unter Bezugnahme auf die
folgende Beschreibung und die beigefügten Zeichnungen besser verständlich.
Es zeigen:
-
1 ein
allgemeines Blockdiagramm von Elementen der vorliegenden Erfindung;
-
2 ein
detaillierteres Blockdiagramm eines Netzwerk-Switches gemäß der vorliegenden
Erfindung;
-
3 eine
Veranschaulichung des Datenflusses auf dem CPS-Kanal eines Netzwerk-Switches
gemäß der vorliegenden
Erfindung;
-
4A eine Veranschaulichung der Arbitration mittels
Demand-Priority-Verfahren
nach dem Round-Robin-Mechanismus für den Zugriff auf den C-Kanal
des Netzwerk-Switches;
-
4B eine Veranschaulichung des Zugriffs auf den
C-Kanal auf der Grundlage der in 4A veranschaulichten
Arbitration nach dem Round-Robin-Mechanismus;
-
5 eine
Veranschaulichung der P-Kanal-Nachrichtentypen;
-
6 eine
Veranschaulichung eines Nachrichtenformats für S-Kanal-Nachrichtentypen;
-
7 eine
Veranschaulichung des OSI-7-Schichten-Referenzmodells;
-
8 eine
Veranschaulichung eines Funktionsdiagramms eines EPIC-Moduls;
-
9 eine
Veranschaulichung des Teilens eines Datenpakets an dem Eintritt
in ein EPIC-Modul;
-
10 eine Detailansicht von Elementen der PMMU;
-
11 eine Veranschaulichung des CBM-Zellenformats;
-
12 eine Veranschaulichung eines Ablaufdiagramms
für die
Zulassung zu dem internen/externen Speicher;
-
13 eine Veranschaulichung eines Blockdiagramms
eines in 10 veranschaulichten Austritts-Managers 76;
-
14 eine Veranschaulichung weiterer Details eines
EPIC-Moduls;
-
15 ein Blockdiagramm eines schnellen Filterprozessors
(FFP);
-
16 ein Blockdiagramm der Elemente des CMIC 40;
-
17 eine Veranschaulichung einer Reihe von Schritten,
die zum Programmieren eines FFP verwendet werden;
-
18 ein Ablaufdiagramm, das den Alterungsprozess
für ARL-(S2)-
und S3-Tabellen veranschaulicht;
-
19 eine Veranschaulichung der Kommunikation unter
Verwendung einer Trunk-Gruppe gemäß der vorliegenden Erfindung;
-
20 eine Veranschaulichung einer generischen Stacking-Konfiguration
für Netzwerk-Switches;
-
21 eine Veranschaulichung eines ersten Ausführungsbeispiels
einer Stacking-Konfiguration für Netzwerk-Switches;
-
22 eine Veranschaulichung eines zweiten Ausführungsbeispiels
einer Stacking-Konfiguration für Netzwerk-Switches;
-
23 eine Veranschaulichung eines dritten Ausführungsbeispiels
einer Stacking-Konfiguration für Netzwerk-Switches;
-
24A eine Veranschaulichung eines Pakets, in das
ein IS-Tag eingefügt
wurde;
-
24B eine Veranschaulichung der spezifischen Felder
des IS-Tags;
-
25 eine Veranschaulichung von Adresslernvorgängen in
einer in 20 veranschaulichten Stacking-Konfiguration;
-
26 eine Veranschaulichung von Adresslernvorgängen ähnlich denen
in 25, aber mit einer Trunking-Konfiguration;
-
27A–27D Veranschaulichungen von ARL-Tabellen, nachdem
Adressen erlernt wurden;
-
28 eine Veranschaulichung einer weiteren Trunking-Konfiguration;
-
29 eine Veranschaulichung der Handhabung von SNMP-Paketen
unter Verwendung einer zentralen CPU und lokalen CPUs;
-
30 eine Veranschaulichung von Adresslernvorgängen in
einer in 22 und 23 veranschaulichten
Duplex-Konfiguration;
-
31 eine Veranschaulichung von Adresslernvorgängen in
einer Duplex-Konfiguration
unter Verwendung von Trunking (Bündelung);
-
32A–32D Veranschaulichungen von ARL-Tabellen nach
dem Erlernen von Adressen in einer Duplex-Konfiguration;
-
33 eine Veranschaulichung einer zweiten Trunking-Konfiguration,
die sich auf das Erlernen von Adressen bezieht;
-
34A–34D Veranschaulichungen von ARL-Tabellen nach
dem Erlernen von Adressen;
-
35 eine Veranschaulichung mehrerer VLANs in einem
Stack;
-
36 eine Veranschaulichung eines Beispiels für die Initialisierung
einer Trunk-Gruppentabelle für die
Trunking-Konfiguration von 31;
-
37 eine Veranschaulichung eines Beispiels für die Initialisierung
einer Trunk-Gruppentabelle für die
Trunking-Konfiguration von 33;
-
38 ein Blockdiagramm einer Netzwerkvorrichtung
gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung;
-
39 eine S-Kanalnachricht gemäß dem Ausführungsbeispiel von 38;
-
40 ein weiteres Blockdiagramm der Vorrichtung
von 38;
-
41 ein weiteres Blockdiagramm der Vorrichtung
von 38;
-
42 ein weiteres Blockdiagramm der Vorrichtung
von 38;
-
43A–43D Schaubilder eines Zellenzählers und von Paketzählern für verschiedene
Port-Warteschlangen innerhalb der Vorrichtung des Ausführungsbeispiels
von 38;
-
44A–44D ebenfalls Schaubilder eines Zellenzählers und
von Paketzählern
für verschiedene Port-Warteschlangen
innerhalb der Vorrichtung des Ausführungsbeispiels von 38;
-
45 ein Ablaufdiagramm eines Verfahrens zum Integrieren
mehrerer Switches in eine einzelne Netzwerkvorrichtung gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung;
-
46 ein Ablaufdiagramm eines Verfahrens zum Bereitstellen
der Nachrichtenübermittlung
für die Übertragungsgeschwindigkeitssteuerung über einen
Link innerhalb des Ausführungsbeispiels
einer Vorrichtung von 38; und
-
47 ein Ablaufdiagramm eines Verfahrens zum Bereitstellen
einer Übertragungsgeschwindigkeitssteuerung
für einen
Link innerhalb des Ausführungsbeispiels
einer Vorrichtung von 38.
-
DETAILLIERTE BESCHREIBUNG
DER BEVORZUGTEN AUSFÜHRUNGSBEISPIELE
-
1 veranschaulicht
eine Konfiguration, bei der ein Switch auf einem Chip (SOC) 10 funktionell
mit externen Vorrichtungen 11, externem Speicher 12,
Fast-Ethernet-Ports 13 und
Gigabit-Ethernet-Ports 15 verbunden ist. Zum Zweck dieser
Erörterung
werden Fast-Ethernet-Ports 13 als Ethernet-Ports mit niedriger
Geschwindigkeit betrachtet, da sie bei Geschwindigkeiten zwischen
10 Mbps und 100 Mbps betrieben werden können, während die Gigabit-Ethernet-Ports 15,
bei denen es sich um Hochgeschwindigkeits-Ethernet-Ports handelt,
bei 1.000 Mbps betrieben werden können. Externe Vorrichtungen 11 könnten weitere
Vermittlungsvorrichtungen zum Erweitern der Vermittlungsfunktionen
umfassen, oder andere Vorrichtungen, wie sie für eine bestimmte Anwendung
erforderlich sein können.
Bei dem externen Speicher 12 handelt es sich um zusätzlichen,
nicht auf dem Chip befindlichen Speicher, der zusätzlich zu
dem internen Speicher vorhanden ist, der sich, wie weiter unten
behandelt, auf dem SOC 10 befindet. Die Zentralrechnereinheit
(CPU) 52 kann nach Bedarf zum Programmieren des SOC 10 mit
Regeln verwendet werden, die zum Steuern der Paketverarbeitung geeignet
sind. Sobald der SOC 10 in geeigneter Weise programmiert
oder konfiguriert wurde, funktioniert der SOC 10 jedoch
so weit wie möglich
in einer ungebundenen Weise, ohne mit der CPU 52 zu kommunizieren.
Da die CPU 52 nicht jeden Aspekt des Betriebs des SOC 10 steuert,
sind die Leistungsanforderungen an die CPU 52, wenigstens
im Hinblick auf den SOC 10, recht niedrig. Daher kann eine
im Vergleich zu bekannten Netzwerk-Switches weniger leistungsfähige und
daher auch weniger teure CPU 52 verwendet werden. Wie außerdem nachfolgend
erläutert
wird, nutzt der SOC 10 den externen Speicher 12 auf
effiziente Weise, so dass die Kosten- und Leistungsanforderungen
an den Speicher 12 verringert werden können. Der interne Speicher auf
dem SOC 10 ist, wie weiter unten noch ausgeführt wird,
auch so konfiguriert, dass bei der Vermittlung der Durchsatz maximiert
und die Kosten minimiert werden.
-
Es
sei angemerkt, dass die beschriebenen Port-Geschwindigkeiten nur
beispielhalber aufgeführt
sind und dass die Ports so konfiguriert werden können, dass sie mit einer Vielzahl
von höheren
und niedrigeren Geschwindigkeiten arbeiten können.
-
2 veranschaulicht
ein detaillierteres Blockdiagramm der Funktionselemente des SOC 10.
Wie aus 2 hervorgeht und weiter oben
bereits angemerkt wurde, umfasst der SOC 10 eine Vielzahl
von modularen Systemen auf dem Chip, wobei jedes modulare System,
obwohl es sich auf demselben Chip befindet, funktionell von den übrigen modularen
Systemen getrennt ist. Daher kann jedes Modul auf effiziente Weise
parallel mit anderen Modulen betrieben werden, und diese Konfiguration
ermöglicht
ein beträchtliches
Maß an
Freiheit beim Aktualisieren und Re-Engineering des SOC 10.
-
Der
SOC 10 kann eine Vielzahl von Ethernet-Port-Schnittstellen-Controllern
(EPIC) 20a, 20b, 20c, usw., eine Vielzahl
von Gigabit-Port-Schnittstellen-Controllern (GPIC) 30a, 30b,
usw., einen CPU-Verwaltungs-Schnittstellen-Controller (CMIC) 40,
einen gemeinsamen Pufferspeicher-Pool (CBP) 50, eine Speicherverwaltungseinheit
mit Pipeline-Technologie (PMMU) 70, einschließlich eines
gemeinsamen Puffer-Managers (CBM) 71, und eine systemweite
Busstruktur umfassen, die als CPS-Kanal 80 bezeichnet wird.
Die PMMU 70 kommuniziert mit dem externen Speicher 12,
der einen globalen Pufferspeicher-Pool (GBP) 60 umfasst.
Der CPS-Kanal 80 umfasst
den C-Kanal 81, den P-Kanal 82 und den S-Kanal 83.
Der CPS-Kanal wird
auch als "Zellen-Protokoll-Seitenband-Kanal" bezeichnet, und
es handelt sich dabei um einen 17 Gbps-Kanal, der die verschiedenen
Module miteinander verbindet. Wie auch in 2 veranschaulicht,
können
weitere Hochgeschwindigkeits-Interconnect-Verbindungen
bereitgestellt werden, wie hier als erweiterbare Hochgeschwindigkeits-Interconnect-Verbindung
gezeigt ist. In einer Konfiguration kann diese Interconnect-Verbindung
in Form eines Interconnect-Port-Schnittstellen-Controllers (IPIC) 90 vorliegen,
der in der Lage ist, die Schnittstelle zwischen dem CPS-Kanal 80 und
den externen Vorrichtungen 11 über einen erweiterbaren Hochgeschwindigkeits-Interconnect-Link
zu bilden. Wie weiter unten noch behandelt wird, stehen jeder EPIC 20a, 20b und 20c, die
allgemein als EPIC 20 bezeichnet werden, und jeder GPIC 30a und 30b,
die allgemein als GPIC 30 bezeichnet werden, eng mit geeigneten
Tabellen für
die Adressauflösungslogik
und Tabellen für
die Schicht-3-Vermittlung 21a, 21b, 21c, 31a, 31b,
Regeltabellen 22a, 22b, 22c, 31a, 31b und
VLAN-Tabellen 23a, 23b, 23c, 31a, 31b in
Beziehung. Diese Tabellen werden allgemein mit 21, 31, 22, 32, 23 bzw. 33 bezeichnet.
Diese Tabellen werden, wie andere Tabellen auf dem SOC 10,
als zweidimensionale Arrays in Silizium implementiert.
-
Beispielsweise
kann jeder EPIC 20 8 Fast-Ethernet-Ports 13 unterstützen, und
er vermittelt Pakete nach Bedarf von und/oder zu diesen Ports. Die
Ports sind daher unter Verwendung einer bekannten Medienanschlusstechnologie
an das Netzwerkmedium (Koaxial-, Twisted-Pair-, Glasfaserkabel,
usw.) angeschlossen und kommunizieren mit dem CPS-Kanal 80 auf
deren anderer Seite. Die Schnittstelle jedes EPIC 20 zu
dem Netzwerkmedium kann durch eine reduzierte interne Medienschnittstelle
(RMII) bereitgestellt werden, die den direkten Anschluss des Mediums
an den SOC 10 ermöglicht.
Wie nach dem Stand der Technik bekannt ist, ist das automatische
Aushandeln (Auto-Negotiation) ein Aspekt von Fast Ethernet, wobei
das Netzwerk in der Lage ist, eine höchste Kommunikationsgeschwindigkeit
zwischen einer Quelle und einem Ziel auf der Grundlage der Leistungsfähigkeit
der jeweiligen Vorrichtungen auszuhandeln. Die Kommunikationsgeschwindigkeit kann,
wie zuvor bereits angemerkt, beispielsweise zwischen 10 Mbps und
100 Mbps variieren; die Funktion zum automatischen Aushandeln ist
daher direkt in jedes Modul vom Typ EPIC 20 oder GPIC 30 integriert.
Die Tabellen für
die Adressauflösungslogik
(ARL) und die Schicht-3-Tabellen (ARL/S3) 21a, 21b, 21c,
die Regeltabellen 22a, 22b, 22c und die
VLAN-Tabellen 23a, 23b und 23c sind so
konfiguriert, dass sie auf effiziente und zweckmäßige Weise Bestandteil des
zugehörigen
EPIC sind bzw. eine Schnittstelle zu diesem bilden, um außerdem den
Paketfluss mit Leitungsgeschwindigkeit zu unterstützen.
-
Jeder
EPIC 20 und jeder GPIC 30 weist getrennte Eintritts-
und Austrittsfunktionen auf. Auf der Eintrittsseite können das
selbst eingeleitete und das von der CPU eingeleitete Erlernen der
Schicht-2-Adressinformationen erfolgen. Die Adressauflösungslogik
(ARL) wird verwendet, um diese Aufgabe zu unterstützen. Die
Adressalterung ist als Merkmal integriert, um das Speichern von
Adressinformationen zu verhindern, die nicht mehr gültig oder
nützlich
sind. Der EPIC und der GPIC können
außerdem
das Spiegeln auf Schicht 2 durchführen. Ein schneller Filterprozessor
(FFP) 141 (siehe 14)
kann in den EPIC integriert sein, um die Paketweiterleitung zu beschleunigen
und den Paketfluss zu verbessern. Die Eintrittsseite jedes EPIC
und GPIC, die in 8 als Eintritts-Submodul 14 veranschaulicht
ist, weist eine be trächtliche
Komplexität
auf, damit sie in der Lage ist, eine beträchtliche Anzahl von verschiedenen
Pakettypen einwandfrei zu verarbeiten, die an dem Port ankommen
können,
um eine Pufferung bei Leitungsgeschwindigkeit und dann einen geeigneten
Transfer zu dem Austritt zu erreichen. Funktionell weist jeder Port
an jedem Modul des SOC 10 ein mit ihm verbundenes, gesondertes
Eintritts-Submodul 14 auf. Aus der Sichtweise der Implementierung
können
jedoch zum Implementieren einer Vielzahl von Eintritts-Submodulen
in jedem einzelnen Modul übliche
Hardware-Elemente in Silizium verwendet werden, um die Menge der
auf dem Einzel-Chip-SOC 10 implementierten Hardware möglichst
gering zu halten. Die in diesem Dokument behandelte Konfiguration
des SOC 10 erlaubt das gleichzeitige Suchen und Filtern.
Das Suchen auf Schicht 2, das Suchen auf Schicht 3 und
das Filtern erfolgen gleichzeitig, um ein hohes Leistungsniveau
zu erreichen. Auf der Austrittsseite sind der EPIC und der GPIC
in der Lage, das Abfragen von Paketen entweder als Funktion des
Austritts-Managements oder der Service-Klasse (COS) zu unterstützen. Eine
Umleitung/Planung von zu übertragenden
Paketen kann auftreten, sowie eine Benachrichtigung bei Head-of-Line-Blocking
(HOL), wie später
in diesem Dokument noch erörtert
wird, Paketalterung, Wiederzusammensetzen der Zellen (Cell Reassembly)
und weitere mit der Ethernet-Port-Schnittstelle verbundene Funktionen.
-
Jeder
GPIC 30 ähnelt
jedem EPIC 20, allerdings unterstützt er nur einen Gigabit-Ethernet-Port
und verwendet eine Port-spezifische ARL-Tabelle, anstatt eine ARL-Tabelle
zu verwenden, die mit anderen Ports gemeinsam verwendet wird. Außerdem bildet
jeder GPIC-Port die Schnittstelle zu dem Netzwerkmedium unter Verwendung
einer medienunabhängigen
Gigabit-Schnittstelle (GMII) anstelle einer RMII.
-
Der
CMIC 40 fungiert als Gateway zwischen dem SOC 10 und
der Host-CPU. Die
Kommunikation kann beispielsweise auf einem PCI-Bus oder einem anderen
akzeptablen Kommunikationsbus erfolgen. Der CMIC 40 kann
sequenzielle, direkte, abgebildete Zugriffe zwischen der Host-CPU 52 und
dem SOC 10 bereitstellen. Die CPU 52 ist durch
den CMIC 40 in der Lage, auf zahlreiche Ressourcen auf
dem SOC 10 zuzugreifen, einschließlich MIB-Zähler, programmierbare Register,
Status- und Steuerregister, Konfigurationsregister, ARL-Tabellen,
Port-basierte VLAN-Tabellen, VLAN-Tabellen nach IEEE 802.1q, Schicht-3-Tabellen,
Regeltabellen, CBP-Adressen- und -Datenspeicher sowie GBP-Adressen-
und -Datenspei cher. Optional kann der CMIC 40 DMA-Unterstützung, DMA-Verkettung
und Scatter/Gather-Operationen sowie Master- und Ziel-PCI 64 umfassen.
-
Der
gemeinsame Pufferspeicher-Pool bzw. CBP 50 kann als der
Datenspeicher auf dem Chip betrachtet werden. In einer Konfiguration
kann es sich bei dem CBP 50 um First-Level-Hochgeschwindigkeits-SRAM-Speicher
handeln, um die Leistung zu optimieren und die Anforderungen für den Hardware-Systemaufwand
möglichst
gering zu halten. Der CBP kann eine Größe von beispielsweise 720 KByte
bei 132 MHz aufweisen. Pakete werden in dem CBP 50 typischerweise
als Zellen anstatt als Pakete gespeichert. Wie in der Figur veranschaulicht,
beinhaltet die PMMU 70 außerdem den gemeinsamen Puffer-Manager
(CBM) 71. Der CBM 71 handhabt die Warteschlangenverwaltung
und ist für
das Zuweisen von Zellenzeigern zu ankommenden Zellen zuständig, sowie
für das
Zuweisen von gemeinsamen Paket-IDs
(CPID), sobald das Paket vollständig
in den CBP geschrieben wurde. Der CBM 71 kann außerdem für die Verwaltung
des Pools der freien Adresszeiger auf dem Chip zuständig sein,
den tatsächlichen
Datentransfer zu dem und von dem Datenpool steuern und eine Speicherbudgetverwaltung
bereitstellen.
-
Der
globale Speicherpuffer-Pool bzw. GBP 60 kann als Second-Level-Speicher
verwendet werden, und er kann sich auf dem Chip befinden oder Chip-extern
vorliegen. In einer Konfiguration liegt der GBP 60 in Bezug
auf den SOC 10 Chip-extern
vor. Wenn er Chip-extern vorliegt, wird der GBP 60 als
Teil des externen Speichers 12 oder als dessen Gesamtheit
betrachtet. Als Second-Level-Speicher braucht es sich bei dem GBP nicht
um teure Hochgeschwindigkeits-SRAMs zu handeln, und es kann sich
um langsameren, preiswerteren Speicher wie DRAM handeln. Der GBP
ist eng an die PMMU 70 gekoppelt und funktioniert insofern
wie der CBP, als Pakete als Zellen gespeichert werden. Bei Rundsende-
und Mehrfachsende-Nachrichten wird nur ein Exemplar des Pakets in
dem GBP 60 gespeichert.
-
Wie
in der Figur gezeigt, kann die PMMU 70 zwischen dem GBP 60 und
dem CPS-Kanal 80 angeordnet sein und fungiert als Schnittstelle
zu dem externen Speicher. Um die Speichernutzung zu optimieren,
weist die PMMU 70 mehrere Lese- und Schreibpuffer auf und
unterstützt
zahlreiche Funktionen einschließlich
globaler Warteschlangenverwaltung, was ganz allgemein die Zuweisung
von Zellenzeigern für
umgeleitete ankommende Pakete, die Pflege des globalen FAP, die
zeitoptimierte Zellenverwaltung, die Verwaltung des globalen Speicherbudgets,
die GPID-Zuweisung und die Benachrichtigung des Austritts-Managers,
die Verwaltung des Schreibpuffers, Lese-Pre-Fetches auf der Grundlage
von Anforderungen des Austritts-Managers/der Service-Klasse und
eine intelligente Speichersteuerung umfasst.
-
Wie
in 2 gezeigt, kann es sich bei dem CPS-Kanal 80 tatsächlich um
drei getrennte Kanäle
handelt, die als C-Kanal, P-Kanal und S-Kanal bezeichnet werden.
Der C-Kanal kann 128 Bit breit sein und bei 132 MHz laufen. Paketübertragungen
zwischen den Ports erfolgen auf dem C-Kanal. Da dieser Kanal allein für die Datenübertragung
genutzt wird, gibt es in Verbindung mit seiner Verwendung keinen
Systemaufwand. Der P-Kanal bzw. Protokollkanal ist mit dem C-Kanal
synchron bzw. mit diesem fixiert. Während der Übertragung von Zellen wird
der Nachrichten-Header
von der PMMU über
den P-Kanal gesendet. Der P-Kanal kann 32 Bit breit sein und bei
132 MHz laufen.
-
Der
S-Kanal bzw. Seitenbandkanal kann bei 132 MHz laufen und 32 Bit
breit sein. Der S-Kanal kann für
Funktionen wie das Übermitteln
des Port-Link-Status, von Empfangs-Port-Überlastungsnachrichten, Port-Statistiken,
ARL-Tabellensynchronisation, Speicher- und Registerzugriff an die
CPU und an andere CPU-Verwaltungsfunktionen dienen, wobei Nachrichten
zur Steuerung der Übertragungsgeschwindigkeit
und Benachrichtigungen bei Überlastung
des globalen Speichers und des gemeinsamen Speichers weitergeleitet werden.
-
Um
die Funktionsweise des SOC 10 einwandfrei verstehen zu
können,
ist ein einwandfreies Verständnis
der Funktionsweise des CPS-Kanals 80 erforderlich. Unter
Bezugnahme auf 3 ist ersichtlich, dass Pakete
in dem SOC 10 beim Eintritt von einem EPIC 20 bzw.
einem GPIC 30 in 64 Byte große Zellen geteilt werden. Die
Verwendung von Zellen auf dem Chip anstelle von Paketen erleichtert
es, den SOC für
das Arbeiten mit zellengestützten
Protokollen, wie beispielsweise ATM (Asynchronous Transfer Mode)
anzupassen. Gegenwärtig
verwendet ATM jedoch Zellen mit einer Länge von 53 Byte, davon 48 Byte
für Nutzdaten
und 5 Byte für den
Header. In dem SOC werden ankommende Pakete, wie weiter oben dargelegt,
in Zellen mit einer Länge von
64 Byte geteilt, und die Zellen werden weiter in vier getrennte,
16 Byte große
Zellenblöcke
Cn0 ... Cn3 geteilt. Mit dem C-Kanal ist der P-Kanal fixiert, wodurch
der Befehlscode bzw. Opcode in Synchronisation mit Cn0 fixiert wird.
Ein Port-Bitmuster wird während
der Phase Cn1 in den P-Kanal eingefügt. Das nicht mit Tags versehene
Bitmuster wird während
der Phase Cn2 in den P-Kanal eingefügt, und in Cn3 wird ein Zeitstempel auf
dem P-Kanal platziert. Unabhängig
von den Vorkommnissen auf dem C- und P-Kanal wird der S-Kanal als Seitenband
verwendet und ist somit von den Aktivitäten auf dem C- und P-Kanal
entkoppelt.
-
Zellen- oder C-Kanal
-
Die
Arbitration für
den CPS-Kanal erfolgt außerhalb
des Bands. Jedes Modul (EPIC, GPIC, usw.) überwacht den Kanal, und übereinstimmende
Ziel-Ports antworten auf geeignete Transaktionen. Bei der C-Kanal-Arbitration
handelt es sich um ein Demand-Priority-Verfahren, welches den Round-Robin-Arbitrationsmechanismus
verwendet. Wenn keine Anforderungen aktiv sind, kann jedoch das
Standard-Modul, das während der
Konfiguration des SOC 10 ausgewählt werden kann, auf dem Kanal
parken und vollständigen
Zugriff darauf erhalten. Wenn alle Anforderungen aktiv sind, ist
der SOC 10 so konfiguriert, dass der PMMU in jedem zweiten
Zellenzyklus Zugriff gewährt
wird und dass die EPICs 20 und die GPICs 30 gemeinsam
gleichen Zugriff auf den C-Kanal haben, wobei das Round-Robin-Verfahren
angewendet wird. 4A und 4B veranschaulichen
einen C-Kanal-Arbitrationsmechanismus, wobei Abschnitt A die PMMU
darstellt und Abschnitt B aus zwei GPICs und drei EPICs besteht.
Die Abschnitte wechseln sich beim Zugriff ab, und da die PMMU das einzige
Modul in Abschnitt A ist, erhält
sie in jedem zweiten Zyklus Zugriff. Die Module in Abschnitt B erhalten, wie
bereits angemerkt, Zugriff auf der Grundlage des Round-Robin-Verfahrens.
-
Protokoll- oder P-Kanal
-
Unter
nochmaliger Bezugnahme auf den Protokoll- bzw. P-Kanal kann eine
Vielzahl von Nachrichten auf dem P-Kanal platziert werden, um den
auf dem C-Kanal fließenden
Datenfluss ordnungsgemäß zu leiten. Angenommen,
der P-Kanal 82 ist 32 Bit breit, und für eine Nachricht sind typischerweise
128 Bit erforderlich, so können
vier kleinere 32-Bit-Nachrichten zusammengestellt werden, um eine
vollständige
P-Kanalnachricht auszubilden. Die folgende Liste nennt die Felder
mit Funktion sowie die verschiedenen Bit-Anzahlen in der 128 Bit
langen Nachricht auf dem P-Kanal.
Opcode (Befehlscode) – Länge 2 Bit – Gibt den
Typ der Nachricht an, die auf dem C-Kanal 81 anliegt;
IP
Bit – Länge 1 Bit – Dieses
Bit wird gesetzt, um anzugeben, dass es sich um ein IP-vermitteltes
Paket handelt;
IPX Bit – Länge 1 Bit – Dieses
Bit wird gesetzt, um anzugeben, dass es sich um ein IPX-vermitteltes
Paket handelt;
Next Cell (Nächste
Zelle) – Länge 2 Bit – Eine Folge
von Werten, um die gültigen
Bytes in der entsprechenden Zelle auf dem C-Kanal 81 zu
identifizieren;
SRC DEST Port (QUELL-ZIEL-Port) – Länge 6 Bit – Definiert
die Nummer des Ports, der die Nachricht sendet bzw. die Nachricht
empfängt,
wobei die Interpretation der Quelle bzw. des Ziels von dem Befehlscode
abhängt;
Cos
(Service-Klasse) – Länge 3 Bit – Definiert
die Service-Klasse für
das aktuelle Paket, das gerade verarbeitet wird;
J – Länge 1 Bit – Beschreibt,
ob es sich bei dem aktuellen Paket um ein Jumbo-Paket handelt;
S – Länge 1 Bit – Gibt an,
ob es sich bei der aktuellen Zelle um die erste Zelle des Pakets
handelt;
E – Länge 1 Bit – Gibt an,
ob es sich bei der aktuellen Zelle um die letzte Zelle des Pakets
handelt;
CRC – Länge 2 Bit – Gibt an,
ob ein Wert für
eine zyklische Redundanzprüfung
(CRC) an das Paket angehängt werden
soll und ob ein CRC-Wert neu generiert werden soll;
P Bit – Länge 1 Bit – Bestimmt,
ob die MMU das gesamte Paket löschen
soll;
Len (Länge) – Länge 7 Bit – Gibt die
gültige
Anzahl von Byte bei der aktuellen Übertragung an;
O – Länge 2 Bit – Definiert
eine Optimierung für
die Verarbeitung durch die CPU 52; und
Bc/Mc Bitmap
(Bitmuster für
Rundsenden/Mehrfachsenden) – Länge 28 Bit – Definiert
das Rundsende- oder Mehrfachsende-Bitmuster. Gibt Austritts-Ports
an, auf die das Paket bezüglich
Rundsende- oder Mehrfachsende-Nachrichten gesetzt werden soll.
-
Untag
Bits/Source Port (Bits ohne Tags/Quell-Port) – Länge 28/5 Bit – Je nach
Befehlscode wird das Paket von dem Port zur MMU übertragen, und dieses Feld
wird als Bitmuster ohne Tags interpretiert. Ein anderer ausgewählter Befehlscode
gibt an, dass das Paket von der MMU zu dem Austritts-Port übertragen
wird, und die letzten sechs Bit dieses Felds werden als Quell-Port-Feld
interpretiert. Die Bits ohne Tags geben die Austritts-Ports an,
welche den Tag-Header entfernen, und die Quell-Port-Bits geben die
Nummer des Ports an, auf dem das Paket in den Switch gelangt ist;
U
Bit – Länge 1 Bit – Bei Auswahl
eines bestimmten Befehlscodes (0x01) bedeutet das Setzen dieses
Bits, dass das Paket den Port ohne Tags verlassen soll; in diesem
Fall wird das Entfernen der Tags von dem geeigneten MAC vorgenommen;
CPU
Opcode (CPU-Befehlscode) – Länge 18 Bit – Diese
Bits werden gesetzt, wenn das Paket aus irgendeinem Grund an die
CPU gesendet wird. Befehlscodes werden auf der Grundlage einer Übereinstimmung
mit einem Filter, gesetzten Lern-Bits, Weiterleitungs-Bits, dem
Scheitern der Zielsuche (DLF), der Verlagerung einer Station, usw.
definiert;
Time Stamp (Zeitstempel) – 14 Bit – Das System setzt einen Zeitstempel
in diesem Feld, wenn das Paket ankommt, wobei eine Detailgenauigkeit
von 1 s gilt.
-
Das
Feld "Opcode" der P-Kanalnachricht
definiert den Typ der aktuell gesendeten Nachricht. Während der
Befehlscode aktuell mit einer Länge
von 2 Bit gezeigt wird, kann das Feld "Opcode" nach Bedarf erweitert werden, um neue
Nachrichtentypen zu berücksichtigen,
die gegebenenfalls in der Zukunft definiert werden. In 5 ist
jedoch der oben definierte P-Kanal-Nachrichtentyp grafisch gezeigt.
-
Eine
Nachricht für
eine vorzeitige Beendigung wird verwendet, um dem CBM 71 anzugeben,
dass das aktuelle Paket beendet werden soll. Während des Betriebs wird, wie
weiter unten noch detaillierter behandelt wird, das Statusbitfeld
(P) in der Nachricht gesetzt, um anzugeben, dass das gesamte Paket
aus dem Speicher gelöscht
werden soll. Außerdem
würden
alle betroffenen Austritts-Ports als Reaktion auf das Statusbit
das aktuelle Paket vor der Übertragung
löschen.
-
Das
Feld "Src Dest Port" der P-Kanalnachricht
gibt, wie weiter oben angegeben, die Adresse des Ziel- bzw. des
Quell-Ports an. Jedes dieser Felder ist 6 Bit lang und ermöglicht daher
die Adressierung von vierundsechzig Ports.
-
Das
Feld "CRC" der Nachricht ist
zwei Bit lang und definiert CRC-Aktionen. Bit 0 des Felds stellt
eine Angabe bereit, ob der zugehörige
Austritts-Port einen CRC an das aktuelle Paket anhängen soll.
Ein Austritts-Port würde
einen CRC an das aktuelle Paket anhängen, wenn Bit 0 des Felds "CRC" auf eine logische Eins
gesetzt ist. Bit 1 des Felds "CRC" stellt eine Angabe
bereit, ob der zugehörige
Austritts-Port einen CRC für
das aktuelle Paket neu generieren soll. Ein Austritts-Port würde einen
CRC neu generieren, wenn Bit 1 des Felds "CRC" auf
eine logische Eins gesetzt ist. Das Feld "CRC" ist
nur für
die letzte übertragene
Zelle gültig, wie
sie durch das auf eine logische Eins gesetzte Feld "E Bit" der P-Kanalnachricht
definiert ist.
-
Wie
bei dem Feld "CRC" sind das Statusbitfeld
(st), das Feld "Len" und das Feld "Cell Count" der Nachricht nur
für die
letzte Zelle eines übertragenen
Pakets gültig,
wie es durch das Feld "E
Bit" der Nachricht definiert
ist.
-
Schließlich weist
das Feld "Time Stamp" der Nachricht eine
Auflösung
von 1 s auf und ist nur für
die erste Zelle des Pakets gültig,
die durch das Feld "S
Bit" der Nachricht
definiert ist. Eine Zelle wird als erste Zelle eines empfangenen
Pakets definiert, wenn das Feld "S
Bit" der Nachricht
auf den logischen Wert Eins gesetzt ist.
-
Wie
weiter unten noch eingehend beschrieben, sind der C-Kanal 81 und
der P-Kanal 82 synchron so miteinander verknüpft, dass
Daten auf dem C-Kanal 81 über den CPS-Kanal 80 übertragen
werden, während gleichzeitig
eine entsprechende P-Kanalnachricht übertragen
wird.
-
S-Kanal oder Seitenbandkanal
-
Bei
dem S-Kanal 83 handelt es sich um einen 32 Bit breiten
Kanal, der einen gesonderten Kommunikationspfad innerhalb des SOC 10 bereitstellt.
Der S-Kanal 83 wird für
die Verwaltung durch die CPU 52, zur internen Datenfluss-Steuerung
in dem SOC 10 und zur Nachrichtenübermittlung zwischen den Modulen
des SOC 10 verwendet. Der S-Kanal 83 ist ein Seitenbandkanal
des CPS-Kanals 80 und elektrisch und physisch von dem C-Kanal 81 und
dem P-Kanal 82 isoliert. Da der S-Kanal von dem C-Kanal 81 und
von dem P-Kanal 82 getrennt und unterschiedlich ist, ist
es wichtig, darauf hinzuweisen, dass der Betrieb des S-Kanals 83 ohne Leistungs einbußen in Bezug
auf den Betrieb des C-Kanals 81 und des P-Kanals 82 fortgesetzt
werden kann. Da umgekehrt der C-Kanal nicht für die Übertragung von Systemnachrichten
verwendet wird, sondern nur für Daten,
gibt es in Verbindung mit dem C-Kanal 81 keinen
Systemaufwand, und somit ist der C-Kanal 81 in der Lage,
wie erforderlich ungebunden zu laufen, um die ankommenden und abgehenden
Paketinformationen zu handhaben.
-
Der
S-Kanal 83 des CPS-Kanals 80 stellt einen systemweiten
Kommunikationspfad zum Übertragen von
Systemnachrichten bereit, beispielsweise, indem er für die CPU 52 den
Zugriff auf die Steuerstruktur des SOC 10 bereitstellt.
Die Systemnachrichten umfassen Port-Statusinformationen, einschließlich Port-Link-Status,
Empfangs-Port-Überlastungsnachrichten
und Port-Statistiken, Synchronisation der ARL-Tabelle 22,
Zugriff der CPU 52 auf die Speicherpuffer des GBP 60 und
des CBP 50 sowie die Steuerregister des SOC 10 und Benachrichtigungen
bei Überlastung
des Speichers, der dem GBP 60 und/oder dem CBP 50 entspricht.
-
6 veranschaulicht
ein beispielhaftes Nachrichtenformat für eine S-Kanalnachricht auf
dem S-Kanal 83. Die Nachricht wird aus vier 32-Bit-Datenwörtern gebildet;
die Bits der Felder der einzelnen Wörter sind wie folgt definiert:
Opcode
(Befehlscode) – Länge 6 Bit – Gibt den
Typ der Nachricht an, die auf dem S-Kanal anliegt;
Dest Port
(Ziel-Port) – Länge 6 Bit – Definiert
die Nummer des Ports, an den die aktuelle S-Kanalnachricht adressiert
ist;
Src Port (Quell-Port) – Länge 6 Bit – Definiert die Nummer des
Ports, von dem die aktuelle S-Kanalnachricht stammt;
COS (Service-Klasse) – Länge 3 Bit – Definiert
die Service-Klasse, die mit der aktuellen S-Kanalnachricht verbunden
ist; und
C Bit – Länge 1 Bit – Definiert
logisch, ob die aktuelle S-Kanalnachricht für die CPU 52 gedacht
ist.
Error Code (Fehlercode) – Länge 2 Bit – Definiert einen gültigen Fehler,
wenn das E-Bit gesetzt ist.
DataLen (Datenlänge) – Länge 7 Bit – Definiert die Gesamtanzahl
der Datenbytes in dem Feld Data;
E Bit – Länge 1 Bit – Gibt logisch an, ob bei der
Ausführung
des durch den Befehlscode definierten, aktuellen Befehls ein Fehler
aufgetreten ist;
Address (Adresse) – Länge 32 Bit – Definiert die Speicheradresse,
die mit dem durch den Befehlscode definierten, aktuellen Befehl
verbunden ist;
Data (Daten) – Länge 0–127 Bit – Enthält die mit dem aktuellen Befehlscode
verbundenen Daten.
-
Durch
die weiter oben erläuterte
Konfiguration des CPS-Kanals 80 ist der S-Kanal so von dem
C-Kanal und dem P-Kanal entkoppelt, dass die Bandbreite auf dem
C-Kanal für
die Übertragung
von Zellen reserviert werden kann und die Überladung des C-Kanals keine
Auswirkungen auf die Kommunikation auf dem Seitenbandkanal hat.
-
Betrieb des SOC
-
Zum
besseren Verständnis
von Vermittlungskonfigurationen mit mehreren Chips wird zunächst die Konfiguration
eines einzelnen SOC 10 erläutert. Die Konfiguration des
SOC 10 kann, wie weiter oben bereits erörtert wurde, Fast-Ethernet-Ports, Gigabit-Ports
und erweiterbare Interconnect-Links unterstützen. Die Konfiguration des
SOC kann auch "gestapelt" (stacked) oder "verbunden" sein, wodurch eine
erhebliche Leistungsfähigkeit
hinsichtlich der Port-Erweiterung ermöglicht wird. Sobald Datenpakete
von dem SOC 10 empfangen, in Zellen geteilt und auf dem
CPS-Kanal 80 platziert wurden, können gestapelte SOC-Module
eine Schnittstelle mit dem CPS-Kanal bilden und den Kanal überwachen
und nach Bedarf geeignete Informationen extrahieren. Wie weiter
unten noch erörtert
wird, erfolgen im Hinblick auf die Suche auf Schicht 2 und Schicht 3
und eine schnelle Filterung eine erhebliche Anzahl von gleichzeitigen
Such- und Filtervorgängen,
sowie das Paket an dem Eintritts-Submodul 14 eines EPIC 20 oder
GPIC 30 ankommt.
-
Nun
wird unter Bezugnahme auf 8 und 9 die
Handhabung eines Datenpakets beschrieben. Zum Zweck der Erläuterung
wird davon ausgegangen, dass zu empfangende Ethernet-Daten an einem
der Ports 24a des EPIC 20a ankommen. Es wird angenommen,
dass beabsichtigt ist, das Paket zu einem Benutzer an einem der
Ports 24c des EPIC 20c zu übermitteln. Alle EPICs 20 (20a, 20b, 20c,
usw.) weisen ähnliche Merkmale
und Funktionen auf, und jeder arbeitet einzeln auf der Grundlage
eines Paketflusses.
-
Es
wird ein Eingangs-Datenpaket 112 gezeigt, das auf den Port 24a angewendet
wird. Das Datenpaket 112 ist in diesem Beispiel durch die
aktuellen Standards für
die 10/100-Mbps-Ethernet-Übertragung
definiert und kann jede Länge
bzw. Struktur aufweisen, die durch diesen Standard definiert ist.
Bei dieser Erörterung wird
davon ausgegangen, dass die Länge
des Datenpakets 112 1024 Bit bzw. 128 Byte beträgt.
-
Wenn
das Datenpaket 112 von dem EPIC-Modul 20a empfangen
wird, bestimmt ein Eintritts-Submodul 14a als Eintrittsfunktion
das Ziel des Pakets 112. Die ersten 64 Byte des Datenpakets 112 werden
von dem Eintritts-Submodul 14a gepuffert und mit Daten
verglichen, die in den Suchtabellen 21a gespeichert sind,
um den Ziel-Port 24c zu bestimmen. Ebenfalls als Eintrittsfunktion
teilt das Eintritts-Submodul 14a das Datenpaket 112 in
eine Anzahl von 64-Byte-Zellen; in diesem Fall wird das 128 Byte
lange Paket in zwei 64-Byte-Zellen 112a und 112b geteilt.
Während
das Datenpaket 112 in diesem Beispiel als aus genau zwei
64 Byte langen Zellen 112a und 112b bestehend
gezeigt wird, kann ein tatsächlich
ankommendes Datenpaket jede beliebige Anzahl von Zellen umfassen,
wobei wenigstens eine Zelle eine Länge von weniger als 64 Byte
aufweist. Zum Füllen
einer solcher Zelle werden Füll-Bytes
verwendet. In solchen Fällen
ignoriert das Eintritts-Submodul 14a die Füll-Bytes
innerhalb der Zelle. Bei weiteren Erörterungen der Handhabung von
Paketen wird auf das Paket 112 und/oder die Zellen 112a und 112b Bezug
genommen.
-
Es
sei angemerkt, dass jeder EPIC 20 (genauso wie jeder GPIC 30)
ein Eintritts-Submodul 14 und ein Austritts-Submodul 16 aufweist,
welche Port-spezifische Eintritts- und Austrittsfunktionen bereitstellen.
Die gesamte Verarbeitung der ankommenden Pakete erfolgt in dem Eintritts-Submodul 14,
und Merkmale wie der schnelle Filterprozessor, Suchvorgänge auf
Schicht 2 (S2) und Schicht 3 (S3), sowohl selbst eingeleitete als auch
von der CPU 52 eingeleitete Lernvorgänge auf Schicht 2, Tabellenverwaltung
auf Schicht 2, Vermittlung auf Schicht 2, Paketteilung und Kanalversandvorgänge kommen
alle in dem Eintritts-Submodul 14 vor. Wie weiter oben
bereits angemerkt wurde und weiter unten noch erörtert wird, wird das Paket
nach den Suchvorgängen,
der schnellen Filterverarbeitung und dem Teilen in Zellen von dem
Eintritts-Submodul 14 aus in die Versandeinheit 18 überführt und
dann auf dem CPS-Kanal 80 platziert, und die Speicherverwaltung
wird von der PMMU 70 vorgenommen. In der Versandeinheit 18 ist
eine Anzahl von Eintritts- Puffern
vorgesehen, um die ordnungsgemäße Handhabung
der Pakete/Zellen sicherzustellen. Sobald die Zellen oder die in
Zellen geteilten Pakete auf dem CPS-Kanal 80 platziert
wurden, ist das Eintritts-Submodul mit der Verarbeitung des Pakets
fertig. Der Eintritt hat nichts mit der dynamischen Speicherzuweisung
oder dem spezifischen Pfad zu tun, den die Zellen verwenden werden,
um ihr Ziel zu erreichen. Das in 8 als
Submodul 16a des EPIC 20a veranschaulichte Austritts-Submodul 16 überwacht
den CPS-Kanal 80 und sucht ständig nach Zellen, die für einen
Port dieses speziellen EPIC 20 bestimmt sind. Wenn die
PMMU 70 ein Signal empfängt,
dass ein mit einem Ziel eines in dem Speicher befindlichen Pakets
verbundener Austritt bereit ist, Zellen zu empfangen, zieht die
PMMU 70 die mit dem Paket verbundenen Zellen, wie weiter
unten noch erörtert
wird, aus dem Speicher heraus und platziert die Zellen auf dem CPS-Kanal 80,
der für
das geeignete Austritts-Submodul bestimmt ist. Ein FIFO in dem Austritts-Submodul 16 sendet
ständig
ein Signal auf den CPS-Kanal 80, dass er bereit ist, Pakete
zu empfangen, wenn in dem FIFO Platz für zu empfangende Pakete bzw.
Zellen ist. Wie bereits zuvor angemerkt, ist der CPS-Kanal 80 so
konfiguriert, dass er Zellen handhabt, allerdings werden Zellen
eines bestimmten Pakets immer zusammen gehandhabt, um die Beschädigung von
Paketen zu vermeiden.
-
Um
Probleme hinsichtlich einer Verschlechterung des Datenflusses zu überwinden,
die mit der übermäßigen Auslastung
des C-Kanals 81 verbunden sind, werden alle Lernvorgänge auf
Schicht 2 und die Tabellenverwaltung auf Schicht 2 durch die Verwendung
des S-Kanals 83 erreicht. Das selbst eingeleitete Lernen auf
Schicht 2 wird durch Entschlüsseln
der Quelladresse eines Benutzers an einem bestimmten Eintritts-Port 24 erreicht,
der die mit dem Paket verbundene Adresse verwendet. Sobald die Identität des Benutzers
an dem Eintritts-Port 24 bestimmt ist, werden die ARL-/S3-Tabellen 21a aktualisiert,
um die Benutzeridentifikation widerzuspiegeln. Die ARL-/S3-Tabellen 21 jedes
anderen EPIC 20 und GPIC 30 werden aktualisiert,
um die neu erworbene Benutzeridentifikation in einem Synchronisationsschritt
widerzuspiegeln, wie nachfolgend noch erörtert wird. Dies führt dazu,
dass während
der Eintritt des EPIC 20a bestimmen kann, dass ein bestimmter
Benutzer sich an einem bestimmten Port 24a befindet, der
Austritt von EPIC 20b, dessen Tabelle 21b mit
der Identifikation des Benutzers an Port 24a aktualisiert
wurde, dem Benutzer an Port 24a Informationen bereitstellen
kann, ohne erneut zu erlernen, an welchem Port der Benutzer verbunden
war.
-
Die
Tabellenverwaltung kann auch durch die Verwendung der CPU 52 erreicht
werden. Die CPU 52 kann über den CMIC 40 dem
SOC 10 Softwarefunktionen bereitstellen, welche die Bezeichnung
der Identifikation eines Benutzers an einem bestimmten Port 24 zur
Folge haben. Wie weiter oben bereits erörtert, ist es nicht wünschenswert,
dass die CPU 52 auf die Paketinformationen in ihrer Gesamtheit
zugreift, da dies zu Leistungseinbußen führen würde. Vielmehr wird der SOC 10 durch
die CPU 52 mit Identifikationsinformationen bezüglich des
Benutzers programmiert. Der SOC 10 kann einen Echtzeit-Datenfluss
aufrechterhalten, da die Kommunikation bezüglich der Tabellendaten zwischen
der CPU 52 und dem SOC 10 ausschließlich auf
dem S-Kanal 83 erfolgt. Während der SOC 10 der
CPU 52 direkte Paketinformationen über den C-Kanal 81 bereitstellen
kann, ist eine solche Systemeinrichtung aus den vorgenannten Gründen nicht
wünschenswert.
Wie weiter oben erwähnt,
wird als Eintrittsfunktion eine Adressauflösungs-Suche durchgeführt, indem
die ARL-Tabelle 21a untersucht wird. Wenn das Paket an
einen der Schicht-3-Switches (S3) des SOC 10 adressiert
ist, führt das
Eintritts-Submodul 14a die S3- und die Standardtabellensuche
durch. Sobald der Ziel-Port bestimmt wurde, setzt der EPIC 20a ein
Fertig-Flag in der Versandeinheit 18a, die dann für den C-Kanal 81 eine
Arbitration vornimmt.
-
Bei
dem Arbitrations-Schema des C-Kanals 81 handelt es sich,
wie zuvor bereits erörtert
und in 4A und 4B veranschaulicht,
um das Demand-Priority-Verfahren
nach dem Round-Robin-Mechanismus. Jedes E/A-Modul, jeder EPIC 20,
GPIC 30 und CMIC 40 kann zusammen mit der PMMU 70 eine
Anforderung für
den Zugriff auf den C-Kanal 81 einleiten. Wenn zu einem
bestimmten Zeitpunkt keine Anforderungen vorhanden sind, wird einem
Standard-Modul, das mit einer hohen Priorität eingerichtet wurde, vollständiger Zugriff
auf den C-Kanal 81 erteilt. Wenn irgendein einzelnes E/A-Modul
oder die PMMU 70 Zugriff auf den C-Kanal anfordert, erhält dieses
einzelne Modul den Zugriff auf den C-Kanal 81 auf Anforderung
(on Demand).
-
Wenn
die EPIC-Module 20a, 20b, 20c und die
GPIC-Module 30a und 30b sowie der CMIC 40 gleichzeitig
Zugriff auf den C-Kanal anfordern, wird dieser Zugriff mittels des
Round-Robin-Verfahrens gewährt. Während eines
bestimmten Arbitrations-Zeitraums würde jedem E/A-Modul Zugriff
auf den C-Kanal 81 gewährt.
So würde
beispielsweise jedem der GPIC-Module 30a und 30b Zugriff
gewährt,
anschließend
den EPIC-Modulen und schließlich
dem CMIC 40. Nach jedem Arbitrations-Zeitraum würde dem
nächsten
E/A-Modul mit einer gültigen
Anforderung Zugriff auf den C-Kanal 81 gewährt. Dieses
Muster würde
so lange fortgesetzt, wie jedes der E/A-Module eine aktive Anforderung
zum Zugriff auf den C-Kanal 81 bereitstellt.
-
Wenn
alle E/A-Module einschließlich
der PMMU 70 Zugriff auf den C-Kanal 81 anfordern,
wird der PMMU 70 der Zugriff wie in 4B gezeigt
gewährt,
da die PMMU einen wesentlichen Datenpfad für alle Module auf dem Switch
bereitstellt. Wenn die Versandeinheit 18a Zugriff auf den
Kanal 81 erhält,
fährt sie
fort, das empfangene Paket 112 jeweils zellenweise an den
C-Kanal 81 zu übergeben.
-
Unter
nochmaliger Bezugnahme auf 3 sind
die einzelnen Kanäle
C, P und S des CPS-Kanals 80 gezeigt. Sobald die Versandeinheit 18a die
Erlaubnis erhalten hat, auf den CPS-Kanal 80 zuzugreifen,
platziert die Versandeinheit 18a während des ersten Zeitraums
Cn0 die ersten 16 Byte der ersten Zelle 112a des empfangenen
Pakets 112 auf dem C-Kanal 81. Gleichzeitig platziert
die Versandeinheit 18a die erste P-Kanalnachricht, die
der aktuell übertragenen
Zelle entspricht. Wie weiter oben bereits erwähnt, definiert die erste P-Kanalnachricht
unter anderem den Nachrichtentyp. Daher würde in diesem Beispiel die
erste P-Kanalnachricht definieren, dass es sich bei der aktuellen
Zelle um eine Nachricht vom Typ "Unicast" handelt, die zu
dem Ziel-Austritts-Port 21c geleitet werden soll.
-
Während des
zweiten Takts Cn1 werden die zweiten 16 Byte (16:31) der aktuell übertragenen
Datenzelle 112a auf dem C-Kanal 81 platziert.
Analog wird während
des zweiten Takts Cn1 das Bc/Mc-Port-Bitmuster auf dem P-Kanal 82 platziert.
-
Wie
durch die Schraffur des S-Kanals 83 während der Zeiträume Cn0
bis Cn3 in 3 angegeben, ist der Betrieb
des S-Kanals 83 von dem Betrieb des C-Kanals 81 und
des P-Kanals 82 entkoppelt. So kann beispielsweise die
CPU 52 über
den CMIC 40 Nachrichten auf Systemebene an nicht aktive
Module weiterleiten, während
ein aktives Modul Zellen auf dem C-Kanal 81 weiterleitet.
Wie zuvor bereits erwähnt,
ist dies ein wichtiger Aspekt des SOC 10, weil der Betrieb
des S-Kanals eine parallele Aufgabenverarbeitung erlaubt, wodurch die Übertragung
von Zellendaten auf dem C-Kanal 81 in Echtzeit ermöglicht wird.
Sobald die erste Zelle 112a des ankommenden Pakets 112 auf
dem CPS-Kanal 80 platziert wird, bestimmt die PMMU 70,
ob die Zelle an einen Austritts-Port 21 übertragen
werden soll, der sich lokal auf dem SOC 10 befindet.
-
Wenn
die PMMU 70 bestimmt, dass die aktuelle Zelle 112a auf
dem C-Kanal 81 für
einen Austritts-Port des SOC 10 bestimmt ist, übernimmt
die PMMU 70 die Steuerung des Zelldatenflusses.
-
10 veranschaulicht auf detailliertere Weise die
funktionalen Austrittsmerkmale der PMMU 70. Die PMMU 70 umfasst
den CBM 71 und bildet eine Schnittstelle zwischen dem GBP,
dem CBP und einer Vielzahl von Austritts-Managern (EgM) 76 des
Austritts-Submoduls 18, wobei für jeden Austritts-Port ein
Austritts-Manager 76 bereitgestellt wird. Der CBM 71 ist
in einer Parallelkonfiguration über
den R-Kanal-Datenbus 77 mit jedem Austritts-Manager 76 verbunden.
Der R-Kanal-Datenbus 77 ist
ein 32 Bit breiter Bus, der von dem CBM 71 und den Austritts-Managern 76 bei
der Übertragung
von Speicherzeigern und Systemnachrichten verwendet wird. Jeder
Austritts-Manager 76 ist außerdem zur Übertragung der Datenzellen 112a und 112b mit
dem CPS-Kanal 80 verbunden.
-
Zusammenfassend
lässt sich
sagen, dass der CBM 71 die Funktionen einer auf dem Chip
befindlichen Verwaltung des Pools der freien Adressen (FAP), die Übertragung
von Zellen an den CBP 50, die Zusammenstellung von Paketen
und die Benachrichtigung an die jeweiligen Austritts-Manager, die
Weiterleitung von Paketen an den GBP 60 über einen
globalen Puffer-Manager sowie die Handhabung des Paketflusses von
dem GBP 60 zu dem CBP 50 vornimmt. Speicherbereinigung,
Speicherbudgetverwaltung, Kanalschnittstelle und Zellenzeiger-Zuweisung
sind ebenfalls Funktionen des CBM 71. Im Hinblick auf den
Pool der freien Adressen verwaltet der CBM 71 den Pool
der freien Adressen und weist ankommenden Zellen freie Zellenzeiger
zu. Der Pool der freien Adressen wird auch von dem CBM 71 zurückgeschrieben,
dergestalt, dass die von verschiedenen Austritts-Managern 76 freigegebenen
Zellenzeiger auf geeignete Weise gelöscht werden. Ausgehend davon,
dass in dem CBP 50 genügend
Speicherplatz verfügbar
ist und dass genügend
freie Adresszeiger verfügbar
sind, verwaltet der CBM 71 wenigstens zwei Zellenzeiger
pro Austritts-Manager 76, der gerade verwaltet wird. Die
erste Zelle eines Pakets kommt an einem Austritts-Manager 76 an,
und der CBM 71 schreibt diese Zelle in die CBM-Speicherzuweisung
an der Adresse, auf die der erste Zeiger gezeigt hat. Der zweite
Zeiger wird in das Header-Feld "Next
Cell" geschrieben.
Das Format der Zelle, wie sie in dem CBP 50 gespeichert wird,
ist in 11 gezeigt; jede Zeile ist
18 Byte lang. Zeile 0 enthält
geeignete Informationen im Hinblick auf Informationen zur ersten
und zur letzten Zelle, das Rundsenden/Mehrfachsenden, die Anzahl
der Austritts-Ports für
das Rundsenden oder Mehrfachsenden, die Zellenlänge bezüglich der Anzahl von gültigen Bytes
in der Zelle, den nächsten
Zellenzeiger, die Gesamtanzahl der Zellen in dem Paket und den Zeitstempel. Die übrigen Zeilen
enthalten Zellendaten als 64-Byte-Zellen. Der Pool der freien Adressen
innerhalb der PMMU 70 speichert alle freien Zeiger für den CBP 50.
Jeder Zeiger in dem Pool der freien Adressen zeigt auf eine 64-Byte-Zelle
in dem CBP 50; die tatsächlich
in dem CBP gespeicherte Zelle weist insgesamt 72 Byte auf, wobei
64 Byte Bytedaten sind und 8 Byte Steuerinformationen. Funktionen
wie HOL-Blocking, Hinweis auf Höchst-
und Niedrigststände,
Budgetregister für
Ausgangswarteschlangen, CPID-Zuweisung und weitere Funktionen werden
in dem CBM 71 innerhalb der PMMU 70 behandelt,
wie in diesem Dokument erörtert.
-
Wenn
die PMMU 70 bestimmt, dass Zelle 112a für einen
geeigneten Austritts-Port in dem SOC 10 bestimmt ist, steuert
die PMMU 70 den Fluss der Zellen von dem CPS-Kanal 80 zu
dem CBP 50. Wenn das Datenpaket 112 von dem CPS-Kanal 80 an
der PMMU 70 ankommt, bestimmt der CBM 71, ob in
dem CBP 50 genügend
Speicher für
das Datenpaket 112 verfügbar
ist. Ein (nicht gezeigter) Pool der freien Adressen kann pro Service-Klasse
Speicherplatz für
wenigstens zwei Zellenzeiger pro Austritts-Manager 76 bereitstellen. Wenn
in dem CBP 50 genügend
Speicher für
das Speichern und Identifizieren des ankommenden Datenpakets verfügbar ist,
platziert der CBM 71 die Datenzelleninformationen auf dem
CPS-Kanal 80. Die Datenzelleninformationen werden dem CBP 50 von
dem CBM 71 an der zugewiesenen Adresse bereitgestellt.
Wenn neue Zellen von der PMMU 70 empfangen werden, weist
der CBM 71 Zellenzeiger zu. Der anfängliche Zeiger für die erste
Zelle 112a zeigt auf den Austritts-Manager 76,
der dem Austritts-Port entspricht, an den das Datenpaket 112 gesendet
wird, nachdem es in dem Speicher platziert worden ist. In dem Beispiel
von 8 kommen Pakete an dem Port 24a des EPIC 20a an
und sind für
Port 24c des EPIC 20c bestimmt. Für jede zusätzliche
Zelle 112b weist der CBM 71 einen entsprechenden
Zeiger zu. Dieser entsprechende Zellenzeiger wird als NC_Header
mit einem Wert von zwei Byte bzw. 16 Bit an einer geeigneten Stelle
in einer Steuernachricht gespeichert, wobei der anfängliche
Zeiger auf den entsprechenden Austritts-Manager 76 zeigt
und die folgenden Zellenzeiger Teil jedes Zellen-Headers sind, und
es wird eine verknüpfte
Liste von Speicherzeigern ausgebildet, die das Paket 112 definiert,
wenn das Paket über
den geeigneten Austritts-Port übertragen
wird, in diesem Fall 24c. Sobald das Paket vollständig in
den CBP 50 geschrieben worden ist, wird dem geeigneten Austritts-Manager 76 eine
entsprechende CBP-Paket-ID (CPID) bereitgestellt; diese CPID zeigt
auf die Speicherposition der anfänglichen
Zelle 112a. Die CPID für
das Datenpaket wird dann verwendet, wenn das Datenpaket 112 an
den Ziel-Austritts-Port 24c gesendet wird. Tatsächlich verwaltet
der CBM 71 zwei Puffer, die einen CBP-Zellenzeiger enthalten,
wobei die Zulassung zu dem CBP auf der Grundlage einer Reihe von
Faktoren erfolgt. Ein Beispiel für
die Logik zur Zulassung für
den CBP 50 wird weiter unten unter Bezugnahme auf 12 erörtert.
-
Da
der CBM 71 den Datenfluss innerhalb des SOC 10 steuert,
kann der Datenfluss, der mit jedem beliebigen Eintritts-Port verbunden
ist, gleichermaßen
gesteuert werden. Wenn das Paket 112 empfangen und in dem
CBP 50 gespeichert wurde, wird dem zugehörigen Austritts-Manager 76 eine
CPID bereitgestellt. Die Gesamtzahl von Datenzellen, die mit dem
Datenpaket verbunden sind, wird in einem Budgetregister (nicht gezeigt)
gespeichert. Wenn weitere Datenpakete 112 empfangen werden
und so bezeichnet werden, dass sie zu demselben Austritts-Manager 76 gesendet
werden sollen, wird der Wert des Budgetregisters, das dem zugehörigen Austritts-Manager 76 entspricht,
um die Anzahl der Datenzellen 112a, 112b der empfangenen
neuen Datenzellen erhöht.
Das Budgetregister stellt daher dynamisch die Gesamtanzahl der Zellen
dar, die so bezeichnet sind, dass sie von einem beliebigen speziellen
Austritts-Port auf einem EPIC 20 gesendet werden sollen.
Der CBM 71 steuert den eingehenden Strom von zusätzlichen
Datenpaketen, indem er das Budgetregister mit einem Höchststand-Registerwert
bzw. einem Niedrigststand-Registerwert für denselben Austritt vergleicht.
-
Wenn
der Wert des Budgetregisters den Höchststandwert überschreitet,
wird der zugehörige
Eintritts-Port deaktiviert. Wenn analog Datenzellen eines Austritts-Managers 76 über den
Austritts-Port gesendet werden und das entsprechende Budgetregister
sich auf einen Wert unterhalb des Niedrigststandwerts verringert,
wird der Eintritt-Port wieder aktiviert. Wenn der Austritts-Manager 76 die Übertragung
von Paket 112 einleitet, benachrichtigt der Austritts-Manager 76 den
CBM 71, welcher dann den Budgetregisterwert um die Anzahl
von übertragenen
Datenzellen dekrementiert. Die spezifischen Höchststand- und Niedrigststandwerte können von
dem Benutzer über
die CPU 52 programmiert werden. Damit erhält der Benutzer
die Kon trolle über den
Datenfluss an jedem beliebigen Port auf jedem beliebigen EPIC 20 bzw.
GPIC 30.
-
Der
Austritts-Manager 76 ist ebenfalls in der Lage, den Datenfluss
zu steuern. Für
jeden Austritts-Manager 76 ist die Möglichkeit vorgesehen, die Informationen
zur Paketidentifikation in einem Paketzeiger-Budgetregister zu verfolgen;
sowie ein neuer Zeiger von dem Austritts-Manager 76 empfangen
wird, wird das zugehörige
Paketzeiger-Budgetregister inkrementiert. Sowie der Austritts-Manager 76 ein
Datenpaket 112 heraussendet, wird das Paketzeiger-Budgetregister
dekrementiert. Wenn ein dem Register zugewiesenes Speicherlimit
erreicht ist, was einem vollen Paketidentifikations-Pool entspricht,
wird eine Benachrichtigungsnachricht an alle Eintritts-Ports des
SOC 10 gesendet, welche angibt, dass der von diesem Austritts-Manager 76 gesteuerte
Ziel-Austritts-Port nicht verfügbar
ist. Wenn das Paketzeiger-Budgetregister
unter den Höchststandwert
für den
Paket-Pool dekrementiert wird, wird eine Benachrichtigungsnachricht
gesendet, dass der Ziel-Austritts-Port jetzt verfügbar ist.
Die Benachrichtigungsnachrichten werden von dem CBM 71 auf
dem S-Kanal 83 gesendet.
-
Wie
zuvor bereits angemerkt, kann die Flusssteuerung von dem CBM 71 und
auch von dem Eintritts-Submodul 14 entweder eines EPIC 20 oder
eines GPIC 30 bereitgestellt werden. Das Eintritts-Submodul 14 überwacht
die Zellenübertragung
in den Eintritts-Port 24. Wenn ein Datenpaket 112 an
einem Eintritts-Port 24 empfangen wird, inkrementiert das
Eintritts-Submodul 14 ein Empfangs-Budgetregister um die
Anzahl der Zellen des ankommenden Datenpakets. Wenn ein Datenpaket 112 gesendet
wird, dekrementiert der entsprechende Eintritt 14 das Empfangs-Budgetregister
um die Anzahl der Zellen des abgehenden Datenpakets 112. Das
Budgetregister 72 wird durch den Eintritt 14 als
Reaktion auf eine von dem CBM 71 eingeleitete Nachricht zur
Dekrementierung der Zellenanzahl dekrementiert, wenn ein Datenpaket 112 erfolgreich
von dem CBP 50 übertragen
wurde.
-
Die
effiziente Handhabung des CBP und des GBP ist erforderlich, um den
Durchsatz zu maximieren sowie Port-Starvation und Port-Underrun
zu verhindern. Für
jeden Eintritt gibt es einen Niedrigststand und einen Höchststand;
wenn die Anzahl der Zellen unter dem Niedrigststand liegt, wird
das Paket in dem CBP zugelassen, wodurch Port-Starvation verhindert
wird, indem dem Port ein angemessener Anteil an dem CBP-Speicher
zugewiesen wird.
-
12 veranschaulicht allgemein die Handhabung eines
Datenpakets 112, wenn es an einem geeigneten Eintritts-Port
empfangen wird. Diese Figur veranschaulicht die dynamische Speicherzuweisung
an einem einzelnen Port und ist auf jeden Eintritts-Port anwendbar.
In Schritt 12-1 wird die Paketlänge geschätzt, indem die Anzahl der Zellen
auf der Grundlage der Anzahl in dem Austritts-Manager plus der Anzahl
der ankommenden Zellen geschätzt
wird. Nachdem diese Anzahl der Zellen geschätzt wurde, wird in Schritt 12-2 die aktuelle
Anzahl der Zellen in dem GBP geprüft, um zu bestimmen, ob der
GBP 60 leer ist oder nicht. Wenn die Anzahl der Zellen
in dem GBP gleich 0 ist, was angibt, dass der GBP 60 leer
ist, wird das Verfahren bei Schritt 12-3 fortgesetzt, wo
bestimmt wird, ob die geschätzte
Anzahl der Zellen aus Schritt 12-1 geringer ist als der Zulassungs-Niedrigststand.
Der Zulassungs-Niedrigststandwert erlaubt den Empfang von neuen
Paketen 112 in dem CBP 50, wenn die Gesamtanzahl
von Zellen in dem zugehörigen
Austritt unterhalb des Zulassungs-Niedrigststandwerts liegt. Wenn
diese Prüfung
den Wert "Ja" ergibt, wird das
Paket daher in Schritt 12-5 zugelassen. Wenn die geschätzte Anzahl
der Zellen nicht unterhalb des Zulassungs-Niedrigststands liegt, nimmt
der CBM 71 in Schritt 12-4 eine Arbitration für die CBP-Speicherzuweisung
mit anderen Eintritts-Ports von
anderen EPICs und GPICs vor. Wenn die Arbitration nicht erfolgreich
ist, wird das ankommende Paket an einen Weiterleitungs-Prozess gesendet,
der als A bezeichnet wird. Wenn die Arbitration erfolgreich ist,
wird das Paket in Schritt 12-5 in dem CBP zugelassen. Die
Zulassung zu dem CBP ist erforderlich, damit eine Kommunikation
mit Leitungsgeschwindigkeit erfolgen kann.
-
Die
oben dargelegte Erörterung
ist auf eine Situation gerichtet, in der bestimmt wird, dass die
Anzahl der Zellen in dem GBP gleich 0 ist. Wenn in Schritt 12-2 bestimmt
wird, dass die Anzahl der Zellen in dem GBP nicht gleich 0 ist,
wird das Verfahren in Schritt 12-6 fortgesetzt, in dem
die in Schritt 12-1 geschätzte Anzahl von Zellen mit
dem Zulassungs-Höchststand
verglichen wird. Wenn das Ergebnis "Nein" ist,
wird das Paket in Schritt 12-7 zu dem GBP 60 weitergeleitet.
Wenn das Ergebnis "Ja" ist, wird die geschätzte Anzahl
der Zellen anschließend
in Schritt 12-8 mit dem Zulassungs-Niedrigststand verglichen.
Wenn das Ergebnis "Nein" ist, was bedeutet,
dass die geschätzte
Anzahl der Zellen zwischen dem Höchststand
und dem Niedrigststand liegt, wird das Paket in Schritt 12-7 zu
dem GBP 60 weitergeleitet. Wenn die geschätzte Anzahl
der Zellen unterhalb des Zulassungs-Niedrigststands liegt, wird
die aktuelle Anzahl in dem GBP in Schritt 12-9 mit einem
Weiter leitungs-Zellengrenzwert verglichen. Dieser Weiterleitungs-Zellengrenzwert
kann von dem Benutzer über
die CPU 52 programmiert werden. Wenn die Anzahl in dem
GBP in Schritt 12-9 unterhalb des Weiterleitungs-Zellengrenzwerts
liegt oder gleich diesem ist, werden die geschätzte Anzahl der Zellen und
die Anzahl in dem GBP mit einem Niedrigststand für die geschätzte Anzahl von Zellen verglichen;
wenn die Kombination von geschätzter
Anzahl von Zellen und Anzahl in dem GBP geringer ist als der Niedrigststand
für die
geschätzte
Anzahl von Zellen, wird das Paket zu dem CBP zugelassen. Wenn die
Summe größer ist
als der Niedrigststand für
die geschätzte
Anzahl von Zellen, wird das Paket in Schritt 12-7 zu dem
GBP 60 weitergeleitet. Nach der Weiterleitung zu dem GBP 60 wird
die Anzahl der Zellen in dem GBP aktualisiert, und die Paketverarbeitung ist
beendet. Es sei angemerkt, dass das Paket gelöscht wird, wenn sowohl der
CBP als auch der GBP voll sind. Gelöschte Pakete werden gemäß bekannten
Ethernet- oder Netzwerk-Kommunikationsverfahren gehandhabt, und
sie bewirken, dass die Kommunikation verzögert wird. In dieser Konfiguration
wird jedoch ein angemessener Staudruck auf geeignete Pufferwerte
pro einzelnem Port angewendet, indem über die CPU 52 entsprechende
Höchst-
und Niedrigststände
festgelegt werden, um die Speichernutzung zu optimieren. Mit dieser
Zulassungslogik zu dem CBP/GBP wird eine Konfiguration eines verteilten,
hierarchischen, gemeinsam genutzten Speichers bewirkt, bei der eine
Hierarchie zwischen dem CBP 50 und dem GBP 60 sowie
Hierarchien innerhalb des CBP bestehen.
-
Adressauflösung (S2) + (S3)
-
14 veranschaulicht einige der Details für gleichzeitiges
Filtern und Suchen eines auf der Eintrittsseite eines EPIC 20 ankommenden
Pakets. Wie bereits zuvor erörtert,
veranschaulicht 12 die Handhabung eines Datenpakets
im Hinblick auf die Zulassung zu dem verteilten, hierarchisch gemeinsam
genutzten Speicher. 14 behandelt die Anwendung
von Filterungs-, Adressauflösungs-
und Regelanwendungs-Segmenten des SOC 10. Diese Funktionen
werden hinsichtlich der oben erörterten
Zulassung zu dem CBP gleichzeitig durchgeführt. Wie in der Figur gezeigt,
wird das Paket 112 an dem Eingangs-Port 24 des
EPIC 20 empfangen. Es wird dann an den Eingangs-FIFO 142 geleitet.
Sobald die ersten sechzehn Byte des Pakets in dem Eingangs-FIFO 142 ankommen,
wird eine Anforderung zur Adress auflösung an die ARL-Maschine 143 gesendet;
dies leitet die Suche in den ARL-/S3-Tabellen 21 ein.
-
Es
folgt eine Beschreibung der Felder einer ARL-Tabelle der ARL-/S3-Tabellen 21:
Mac
Address (MAC-Adresse) – Länge 48 Bit – MAC-Adresse;
VLAN
Tag – Länge 12 Bit – VLAN-Tag-ID,
wie in dem Standard IEEE 802.1q für Pakete mit Tags beschrieben. Bei
einem Paket ohne Tags wird dieser Wert der Port-basierten VLAN-Tabelle
entnommen.
CosDst (Ziel-Service-Klasse) – Länge 3 Bit – Service-Klasse auf der Grundlage
der Zieladresse. Die Service-Klasse gibt die Priorität dieses
Pakets an. In dem Standard IEEE 802.1p sind 8 Prioritätsebenen
beschrieben.
Port Number (Port-Nummer) – Länge 6 Bit – Die Port-Nummer bezeichnet
den Port, auf dem diese MAC-Adresse erlernt wird.
SD_Disc Bits
(Bits zum Verwerfen Quelle/Ziel) – Länge 2 Bit – Diese Bits geben an, ob das
Paket auf der Grundlage der Quelladresse oder der Zieladresse verworfen
werden soll. Der Wert 1 bedeutet, dass das Paket anhand der Quelle
verworfen werden soll. Der Wert 2 bedeutet, dass das Paket anhand
des Ziels verworfen werden soll.
C Bit – Länge 1 Bit – Das C-Bit gibt an, dass das
Paket an den CPU-Port geleitet werden soll.
St Bit (Statik-Bit) – Länge 1 Bit – Das St-Bit
gibt an, dass es sich um einen statischen Eintrag handelt (er wird nicht
dynamisch erlernt), und bedeutet, dass er nicht durch Alterung verworfen
werden darf. Nur die CPU 52 kann diesen Eintrag löschen.
Ht
Bit (Treffer-Bit) – Länge 1 Bit – Das Treffer-Bit
wird gesetzt, wenn es eine Übereinstimmung
mit der Quelladresse gibt. Es wird in dem Alterungsmechanismus verwendet.
CosSrc
(Quell-Service-Klasse) – Länge 3 Bit – Service-Klasse
auf der Grundlage der Quelladresse. Die Service-Klasse gibt die
Priorität
dieses Pakets an.
L3 Bit (Schicht-3-Bit) – Länge 1 Bit – Das Schicht-3-Bit gibt an,
dass dieser Eintrag als Ergebnis der Konfiguration der Schicht-3-Schnittstelle
erstellt wurde. Die MAC-Adresse in diesem Eintrag ist die MAC-Adresse
der Schicht-3-Schnittstelle, und alle Pakete, die an diese MAC-Adresse
adressiert sind, müssen
weitergeleitet werden.
T Bit – Länge 1 Bit – Das T-Bit gibt an, dass diese
MAC-Adresse von einem der Trunk-Ports erlernt wurde. Wenn es eine Übereinstimmung
bezüglich
der Zieladresse gibt, erfolgt die Entscheidung über den Ausgabe-Port nicht
anhand der Port-Nummer
in diesem Eintrag, sondern über
den Trunk-Identifikationsprozess auf der Grundlage der von den RTAG-Bits
angegebenen Regeln und der durch die TGID angegebenen Trunk-Gruppe.
TGID – Länge 3 Bit – Die TGID
gibt die Trunk-Gruppe an, wenn das T-Bit gesetzt ist. Der SOC 10 unterstützt 6 Trunk-Gruppen
pro Switch.
RTAG – Länge 3 Bit – Mit RTAG
wird das Kriterium zur Trunk-Auswahl angegeben, wenn die Zieladresse
mit diesem Eintrag übereinstimmt
und das T-Bit in diesem Eintrag gesetzt ist. Wert 1 – auf der
Grundlage der Quell-MAC-Adresse. Wert 2 – auf der Grundlage der Ziel-MAC-Adresse.
Wert 3 – auf
der Grundlage der Quell- und der Zieladresse. Wert 4 – auf der
Grundlage der Quell-IP-Adresse. Wert 5 – auf der Grundlage der Ziel-IP-Adresse.
Wert 6 – auf
der Grundlage der Quell- und der Ziel-IP-Adresse.
S C P (Quell-Service-Klassen-Priorität) – Länge 1 Bit – Quell-Service-Klassen-Prioritäts-Bit – Wenn dieses
Bit gesetzt ist (in dem übereinstimmenden
Quell-MAC-Eintrag), hat die Service-Klasse der Quelle Priorität gegenüber der
Service-Klasse des Ziels.
-
Es
sei außerdem
angemerkt, dass die VLAN-Tabellen 23 eine Reihe von Tabellenformaten
aufweisen; in diesem Dokument werden nicht alle Tabellen und Tabellenformate
behandelt. Als Beispiel werden jedoch die Felder der Port-basierten
VLAN-Tabelle wie folgt beschrieben:
Port VLAN Id – Länge 12 Bit – Hierbei
handelt es sich um die Port-VLAN-ID,
die von dem Port-basierten VLAN verwendet wird.
Sp State (SP-Status) – Länge 2 Bit – Dieses
Feld gibt den aktuellen Spanning-Tree-Status an. Wert 0x00 – Der Port
ist im Status "Deaktiviert". In diesem Status
werden keine Pakete angenommen, nicht einmal BPDUs. Wert 0x01 – Der Port
ist im Status "Blockiert" oder "Empfangsbereit". In diesem Status
werden außer
BPDUs keine Pakete von dem Port angenommen. Wert 0x02 – Der Port
ist im Status "Lernen". In diesem Status
werden die Pakete nicht an einen anderen Port weitergeleitet, sondern
werden zum Lernen angenommen. Wert 0x03 – Der Port ist im Status "Weiterleiten". In diesem Status
werden die Pakete sowohl zum Lernen als auch zum Weiterleiten angenommen.
Port
Discard Bits (Bits für
das Verwerfen am Port) – Länge 6 Bit – Dieses
Feld enthält
6 Bits, von denen jedes das Kriterium zum Verwerfen der Pakete angibt,
die an diesem Port ankommen. Hinweis: Die Bits 0 bis 3 werden nicht
verwendet. Bit 4 – Wenn
dieses Bit gesetzt ist, werden alle an diesem Port ankommenden Rahmen verworfen.
Bit 5 – Wenn
dieses Bit gesetzt ist, werden alle Rahmen mit Prioritäts-Tag gemäß 802.1q
(vid = 0) und Rahmen ohne Tags, die an diesem Port ankommen, verworfen.
J
Bit – Länge 1 Bit – Das J-Bit
steht für
Jumbo-Bit. Wenn dieses Bit gesetzt ist, sollte dieser Port Jumbo-Rahmen
annehmen.
RTAG – Länge 3 Bit – Mit RTAG
wird das Kriterium zur Trunk-Auswahl angegeben, wenn die Zieladresse
mit diesem Eintrag übereinstimmt
und das T-Bit in diesem Eintrag gesetzt ist. Wert 1 – auf der
Grundlage der Quell-MAC-Adresse. Wert 2 – auf der Grundlage der Ziel-MAC-Adresse.
Wert 3 – auf
der Grundlage der Quell- und der Zieladresse. Wert 4 – auf der
Grundlage der Quell-IP-Adresse. Wert 5 – auf der Grundlage der Ziel-IP-Adresse.
Wert 6 – auf
der Grundlage der Quell- und der Ziel-IP-Adresse.
T Bit – Länge 1 Bit – Dieses
Bit gibt an, dass der Port ein Mitglied der Trunk-Gruppe ist.
C
Learn Bit (C-Lern-Bit) – Länge 1 Bit – CPU-Lern-Bit – Wenn dieses
Bit gesetzt ist, wird das Paket jedes Mal, wenn die Quelladresse
erlernt wird, an die CPU gesendet.
PT – Länge 2 Bit – Dieses Bit gibt den Port-Typ
an. Wert 0 – 10
MBit-Port. Wert 1 – 100
MBit-Port. Wert 2 – 1 GBit-Port.
Wert 3 – CPU-Port.
VLAN
Port Bitmap (VLAN-Port-Bitmuster) – Länge 28 Bit – Das VLAN-Port-Bitmuster gibt alle Austritts-Ports an,
an denen das Paket abgehen soll.
B Bit – Länge 1 Bit – Das B-Bit ist ein BPDU-Bit.
Wenn dieses Bit gesetzt ist, weist der Port BPDUs zurück. Dieses
Bit wird für
Trunk-Ports gesetzt, die keine BPDUs annehmen sollen.
TGID – Länge 3 Bit – Dieses
Feld gibt die Trunk-Gruppe an, zu der dieser Port gehört.
Untagged
Bitmap (Bitmuster ohne Tags) – Länge 28 Bit – Dieses
Bitmuster gibt die Mitglieder des VLAN ohne Tag an, das heißt, ob der
Rahmen, der aus diesen Mitglieds-Ports heraus gesendet werden soll,
ohne Tag-Header übertragen
werden soll.
M Bit – Länge 1 Bit – Das M-Bit
wird für
die Spiegelungs-Funktionalität
verwendet. Wenn dieses Bit gesetzt ist, wird das Spiegeln an dem
Eintritt aktiviert.
-
Die
ARL-Maschine 143 liest das Paket; wenn das Paket ein VLAN-Tag
gemäß dem Standard
IEEE 802.1q aufweist, führt
die ARL-Maschine 143 eine Suche auf der Grundlage der Tag-VLAN-Tabelle 231 durch, die
Bestandteil der VLAN-Tabelle 23 ist.
Wenn das Paket dieses Tag nicht enthält, führt die ARL-Maschine eine VLAN-Suche
auf der Grundlage der Port-basierten VLAN-Tabelle 232 durch.
Sobald das VLAN für
das ankommende Paket identifiziert wurde, führt die ARL-Maschine 143 eine ARL-Tabellensuche
auf der Grundlage der Quell-MAC-Adresse und der Ziel-MAC-Adresse
durch. Wenn das Ergebnis der Zielsuche eine S3-Schnittstellen-MAC-Adresse ist, wird
eine S3-Suche in einer S3-Tabelle innerhalb der ARL-/S3-Tabellen 21 durchgeführt. Wenn
die S3-Suche erfolgreich ist, wird das Paket entsprechend den Paket-Weiterleitungsregeln
geändert. Um
die Vorgänge
des Suchens, Lernens und Vermittelns besser zu verstehen, erscheint
es ratsam, nochmals die Handhabung des Pakets 112 unter
Bezugnahme auf 8 zu erörtern. Wenn das Datenpaket 112 von
einer Quellstation A an den Port 24a des EPIC 20a gesendet
wird und für
eine Zielstation B an dem Port 24c von EPIC 20c bestimmt
ist, teilt das Eintritts-Submodul 14a das Datenpaket 112 in
die Zellen 112a und 112b. Das Eintritts-Submodul
liest dann das Paket, um die Quell-MAC-Adresse und die Ziel-MAC-Adresse zu bestimmen.
Wie zuvor bereits erwähnt,
führt das
Eintritts-Submodul 14a, insbesondere die ARL-Maschine 143, die
Suche in den geeigneten Tabellen innerhalb der ARL-/S3-Tabellen 21a und
der VLAN-Tabelle 23a durch, um festzustellen, ob die Ziel-MAC-Adresse
in den ARL-/S3-Tabellen 21a vorhanden ist; wenn die Adresse
nicht gefunden wird, aber die VLAN-IDs für die Quelle und das Ziel identisch
sind, legt das Eintritts-Submodul 14a fest, dass das Paket
an alle Ports gesendet wird. Das Paket wird dann an die geeignete
Zieladresse weitergegeben. Eine Suche nach der Quelle und eine Suche
nach dem Ziel werden parallel durchgeführt. Gleichzeitig wird die
Quell-MAC-Adresse des ankommenden Pakets erlernt und daher zu einer
ARL-Tabelle innerhalb der ARL-/S3-Tabellen 21a hinzugefügt. Nachdem
das Paket von dem Ziel empfangen wurde, wird eine Bestätigung von
der Zielstation B an die Quellstation A gesendet. Da die Quell-MAC-Adresse
des ankommenden Pakets von der geeigneten Tabelle von B erlernt
wird, wird die Bestätigung
auf geeignete Weise an den Port gesendet, auf dem sich A befindet.
Wenn die Bestätigung
an dem Port 24a empfangen wird, erlernt daher die ARL-Tabelle
die Quell-MAC-Adresse von B aus dem Bestätigungspaket. Es sei angemerkt,
dass die vorgenannte Schicht-2-Vermittlung durchgeführt wird,
solange die VLAN-IDs (für
Pakete mit Tags) der Quell-MAC-Adressen und der Ziel-MAC-Adressen
identisch sind. Die S2-Vermittlung und -Suche werden daher auf der
Grundlage der ersten 16 Byte eines ankommenden Pakets durchgeführt. Bei
Paketen ohne Tags wird das Feld für die Port-Nummer in dem Paket
anhand der Port-basierten VLAN-Tabelle innerhalb der VLAN-Tabelle 23a indiziert,
und die VLAN-ID kann dann bestimmt werden. Wenn die VLAN-IDs voneinander abweichen,
ist jedoch eine S3-Vermittlung erforderlich, wobei die Pakete zu
einem anderen VLAN gesendet werden. Die S3-Vermittlung basiert jedoch auf dem Feld
für den
IP-Header des Pakets. Der IP-Header umfasst die Quell-IP-Adresse,
die Ziel-IP-Adresse und die TTL (Lebenszeit).
-
Um
die erfindungsgemäße Schicht-3-Vermittlung
besser zu verstehen, wird im Folgenden beschrieben, wie das Paket 112 von
der Quellstation A an den Port 24a von EPIC 20a gesendet
und dann an die Zielstation B geleitet wird; es ist jedoch davon
auszugehen, dass die Station B in einem anderen VLAN angeordnet ist,
was dadurch deutlich wird, dass die Quell-MAC-Adresse und die Ziel-MAC-Adresse
unterschiedliche VLAN-IDs aufweisen. Die Suche nach B würde scheitern,
weil sich B in einem anderen VLAN befindet, und das alleinige Senden
des Pakets an alle Ports in dem VLAN würde dazu führen, dass B das Paket niemals empfangen
würde.
Durch die Schicht-3-Vermittlung wird daher das Überbrücken der VLAN-Grenzen ermöglicht,
es erfordert allerdings das Lesen von mehr Paketinformationen als
nur der für
die S2-Vermittlung benötigten
MAC-Adressen. Zusätzlich
zum Lesen der Quell- und der Ziel-MAC-Adresse liest daher der Eintritt 14a außerdem die
IP-Adresse der Quelle und des Ziels. Wie zuvor bereits angemerkt,
sind Pakettypen durch IEEE-Standards
und andere Standards definiert und nach dem Stand der Technik bekannt.
Durch das Lesen der IP-Adresse des Ziels ist der SOC 10 in
der Lage, das Paket zu einer geeigneten Router-Schnittstelle zu leiten,
die mit der Ziel-IP-Adresse konsistent ist. Das Paket 112 wird
daher mittels der Versandeinheit 18a an den CPS-Kanal 80 gesendet
und ist für
eine geeignete Router-Schnittstelle bestimmt (nicht gezeigt, kein
Teil des SOC 10), auf der sich das Ziel B befindet. Steuerrahmen,
die durch ihre Zieladresse als solche identifiziert sind, werden über den
CMIC 40 an die CPU 52 gesendet. Die Ziel-MAC-Adresse
ist daher die Router-MAC-Adresse für B. Die Router-MAC-Adresse
wird mittels der Unterstützung
durch die CPU 52 erlernt, welche eine Adressauflösungsprotokoll-Anforderung
(ARP-Anforderung) verwendet, um die Ziel-MAC-Adresse für den Router
für B auf
der Grundlage der IP-Adresse von B anzufordern. Durch die Verwendung
der IP-Adresse kann der SOC 10 daher die MAC-Adresse erlernen.
Durch den Bestätigungs-
und Lernvorgang wird allerdings nur das erste Paket dieser aufgrund
der Einbindung der CPU 52 "langsamen" Behandlung unterzogen. Nachdem die
geeigneten MAC-Adressen erlernt wurden, kann das Vermitteln bei
Leitungsgeschwindigkeit durch die Verwendung von gleichzeitigen
Tabellen-Suchvorgängen
erfolgen, da die erforderlichen Informationen von den Tabellen erlernt
werden. Das Implementieren der Tabellen in Silizium als zweidimensionale
Arrays ermöglicht
solche schnellen, gleichzeitigen Suchvorgänge. Sobald die MAC-Adresse
für B erlernt wurde, ändert daher
der Eintritt 14a, wenn Pakete mit der IP-Adresse für B ankommen,
die IP-Adresse in die Ziel-MAC-Adresse, um die Vermittlung bei Leitungsgeschwindigkeit
zu ermöglichen.
Außerdem
wird die Quelladresse des ankommenden Pakets in die Router-MAC-Adresse
für A und
nicht in die IP-Adresse für
A geändert,
so dass die Bestätigung
von B an A schnell erfolgen kann, ohne dass hierzu eine CPU auf
der Ziel-Seite verwendet zu werden braucht, um die Quell-MAC-Adresse
als Ziel für
die Bestätigung
zu identifizieren. Außerdem
wird ein TTL-Feld (Lebenszeit) in dem Paket auf geeignete Weise
entsprechend dem Standard der IETF (Internet Engineering Task Force)
geändert.
Ein einzigartiges Merkmal des SOC 10 besteht darin, dass
alle Vermittlungs-, Paketverarbeitungs- und Tabellensuchvorgänge in der
Hardware durchgeführt
werden, anstatt zu erfordern, dass die CPU 52 oder eine
andere CPU Zeit mit der Verarbeitung von Anweisungen verbringt. Es
sei angemerkt, dass die Schicht-3-Tabellen für den EPIC 20 sich ändernde
Größen aufweisen
können.
-
Unter
nochmaliger Bezugnahme auf die Erörterung von 14 wird, sobald die ersten 64 (vierundsechzig)
Byte des Pakets in dem Eingangs-FIFO 142 ankommen, eine
Filteranforderung an den FFP 141 gesendet. Bei dem FFP 141 handelt
es sich um einen umfassenden Filtermechanismus, mit dem der SOC 10 auf jedes
beliebige Feld eines Pakets von Schicht 2 bis Schicht 7 des OSI-7-Schichtenmodells
einschließende
und ausschließende
Filter setzen kann. Filter werden zur Klassifikation von Paketen
auf der Grundlage eines Protokollfelds in den Paketen verwendet.
Verschiedene Aktionen werden auf der Grundlage der Paketklassifikation
durchgeführt,
hierzu gehören
das Verwerfen von Paketen, das Senden des Pakets an die CPU, das
Senden des Pakets an andere Ports, das Senden des Pakets an bestimmte
Service-Klassen-Prioritätswarteschlangen, das Ändern des
Vorrangs des Service-Typs (TOS). Der ausschließende Filter wird hauptsächlich zum
Implementieren von Sicherheitsmerkmalen verwendet und erlaubt es
einem Paket nur dann weiterzukommen, wenn eine Übereinstimmung mit dem Filter
vorhanden ist. Wenn keine Übereinstimmung
besteht, wird das Paket verworfen.
-
Es
sei angemerkt, dass der SOC 10 eine einzigartige Funktion
zum Handhaben von ankommenden Paketen sowohl mit als auch ohne Tags
aufweist. Pakete mit Tags weisen Tags gemäß den IEEE-Standards auf und
enthalten ein spezifisches Prioritätsfeld für das Paket gemäß IEEE 802.1p.
Pakete ohne Tags hingegen weisen kein Prioritätsfeld gemäß 802.1p auf. Auf der Grundlage
entweder der Zieladresse oder der Quelladresse des Pakets, je nachdem,
was für
eine Übereinstimmung
in einem der Tabellensuchvorgänge
gefunden wurde, kann der SOC 10 einen geeigneten Wert für die Service-Klasse
für das
Paket zuweisen, der als Entsprechung zu einer gewichteten Priorität angesehen
werden kann. Wie in der Erörterung
des ARL-Tabellenformats in diesem Dokument bereits angemerkt, ist
ein SCP-Bit (Quell-Service-Klassen-Prioritäts-Bit) als eines der Felder
in der Tabelle enthalten. Wenn dieses SCP-Bit gesetzt ist, weist
der SOC 10 auf der Grundlage eines Quellen-Service-Klassen-Werts in
der ARL-Tabelle eine gewichtete Priorität zu. Wenn das SCP-Bit nicht gesetzt
ist, weist der SOC 10 eine Service-Klasse für das Paket
auf der Grundlage des Felds für
die Ziel-Service-Klassen in der ARL-Tabelle zu. Bei diesen Service-Klassen-Werten
handelt es sich um drei Bit lange Felder in der ARL-Tabelle, wie
bereits weiter oben in der Beschreibung der ARL-Tabellenfelder angemerkt.
-
Bei
dem FFP 141 handelt es sich im Wesentlichen um eine programmierbare
Regel-Maschine, die durch einen Zustandsautomaten angesteuert wird.
Die von dem FFP verwendeten Filter sind 64 (vierundsechzig) Byte
lang, und sie werden auf ein ankommendes Paket angewendet; es kann
ein beliebiger Offset verwendet werden, es wird jedoch ein Offset
von null bevorzugt, und daher basieren die Vorgänge auf den ersten 64 Byte
bzw. 512 Bit eines Pakets. Die von dem Filter durchgeführten Aktionen
umfassen das Einfügen
von Tags, das Zuordnen von Prioritäten, das Einfügen von
TOS-Tags, das Senden des Pakets an die CPU, das Löschen des
Pakets, das Weiterleiten des Pakets an einen Austritts-Port und
das Senden des Pakets an einen gespiegelten Port. Die von dem FFP 141 verwendeten
Filter sind durch die Regeltabelle 22 definiert. Die Regeltabelle 22 ist über den
CMIC 40 vollständig
von der CPU 52 programmierbar. Die Regeltabelle kann beispielsweise 256
Einträge
lang sein und kann in einschließende
und ausschließende
Filter unterteilt sein, mit, wiederum beispielsweise, 128 Einträgen für einschließende Filter
und 128 Einträgen
für ausschließende Filter.
Eine Filterdatenbank innerhalb des FFP 141 umfasst eine
Anzahl von einschließenden
Maskenregistern und ausschließenden
Maskenregistern, derart, dass die Filter auf der Grundlage der Regeln
in der Regeltabelle 22 ausgebildet werden und die Filter
daher im Wesentlichen eine 64 Byte lange Maske bzw. ein Bitmuster
bilden, das auf das ankommende Paket angewendet wird. Wenn der Filter
als ausschließender
Filter bezeichnet wird, schließt
er alle Pakete aus, es sei denn, es liegt eine Übereinstimmung vor. Anders
ausgedrückt
erlaubt es der ausschließende
Filter einem Paket nur dann, das Weiterleitungsverfahren zu durchlaufen,
wenn eine Übereinstimmung
mit dem Filter vorliegt. Wenn keine Übereinstimmung mit dem Filter
vorliegt, wird das Paket gelöscht.
Wenn es bei einem einschließenden
Filter keine Übereinstimmung
gibt, wird keine Aktion durchgeführt, aber
das Paket wird auch nicht gelöscht.
Damit eine Aktion bei einem ausschließenden Filter durchgeführt werden
kann, muss bei allen Feldern des Filters eine exakte Übereinstimmung
vorliegen. Wenn bei einem ausschließenden Filter eine exakte Übereinstimmung
vorliegt, wird daher die Aktion durchgeführt, die in dem Aktionsfeld
angegeben ist; welche Aktionen durchgeführt werden können, wurde
weiter oben bereits erörtert. Wenn
keine vollständige
oder exakte Übereinstimmung
aller Felder des Filters vorliegt, sondern eine Teilübereinstimmung,
wird das Paket gelöscht.
Eine Teilübereinstimmung
ist definiert als eine Übereinstimmung
in dem Eintrittsfeld, in dem Austrittsfeld oder in den Filterauswahlfeldern.
Wenn zwischen dem Paket und dem ausschließenden Filter weder eine vollständige Übereinstimmung
noch eine Teilübereinstimmung
vorliegt, erfolgt keine Aktion, und das Paket durchläuft das
Weiterleitungsverfahren. Die FFP-Konfiguration, die Aktionen auf der
Grundlage der ersten 64 Byte eines Pakets vornimmt, verbessert die
Handhabung des Echtzeit-Datenverkehrs,
da im laufenden Betrieb Pakete gefiltert und Aktionen durchgeführt werden
können.
Ohne einen erfindungsgemäßen FFP
müssten
die Pakete zu der CPU übertragen
werden, damit eine geeignete Aktion interpretiert und vorgenommen
wird. Bei einschließenden
Filtern wird, wenn eine Übereinstimmung
mit dem Filter vorliegt, eine Aktion durchgeführt, und wenn keine Übereinstimmung
mit dem Filter vorliegt, wird keine Aktion durchgeführt; die
Pakete werden jedoch bei einschließenden Filtern nicht auf der
Grundlage einer Übereinstimmungs-
bzw. Nicht-Übereinstimmungssituation
gelöscht.
-
Zusammenfassend
kann der FFP eine Filterdatenbank mit acht Sätzen von einschließenden und
acht Sätzen
von ausschließenden
Filtern als getrennten Filtermasken aufweisen. Wenn ein Paket in
den FFP gelangt, werden die Filtermasken auf das Paket angewendet;
anders ausgedrückt
wird eine logische UND-Operation mit der Maske und dem Paket durchgeführt. Wenn
eine Übereinstimmung
vorliegt, werden die passenden Einträge auf die Regeltabellen 22 angewendet,
um zu bestimmen, welche spezifischen Aktionen durchgeführt werden
sollen. Wie zuvor bereits erwähnt,
umfassen die Aktion das Einfügen
von Tags gemäß 802.1p, das
Zuordnen von Prioritäten
gemäß 802.1p,
das Einfügen
von IP-TOS-Tags (für
den Service-Typ), das Senden des Pakets an die CPU, das Verwerfen
bzw. Löschen
des Pakets, das Weiterleiten des Pakets an einen Austritts-Port
und das Senden des Pakets an den gespiegelten Port. Da die Regeltabelle
nur eine begrenzte Anzahl von Feldern enthält und da bestimmte Regeln
auf verschiedene Pakettypen angewendet werden müssen, werden die Anforderungen
bezüglich
der Regeltabellen dadurch verringert, dass alle ankommenden Pakete
als Pakete mit Tags festgelegt werden; alle Pakete ohne Tags werden
daher einer Einfügung
von Tags gemäß 802.1p
unterzogen, um die Anzahl der erforderlichen Einträge in der
Regeltabelle zu verringern. Durch diese Aktion entfällt die
Notwendigkeit von Einträgen
bezüglich
der Handhabung von Paketen ohne Tags. Es sei angemerkt, dass spezifische
Pakettypen in verschiedenen IEEE-Standards
und anderen Netzwerk-Standards definiert sind und in diesem Dokument
nicht definiert werden.
-
Wie
zuvor bereits angemerkt, werden ausschließende Filter in der Regeltabelle
als Filter definiert, welche Pakete ausschließen, für die keine Übereinstimmung
besteht; ausgeschlossene Pakete werden gelöscht. Bei einschließenden Filtern
werden die Pakete allerdings unter keinen Umständen gelöscht. Wenn eine Übereinstimmung
besteht, wird, wie weiter oben erörtert, eine Aktion durchgeführt; wenn
keine Übereinstimmung vorliegt,
wird keine Aktion durchgeführt,
und das Paket durchläuft
den Weiterleitungsprozess. Unter Bezugnahme auf 15 ist gezeigt, dass der FFP 141 die
Filtermasken enthaltende Filterdatenbank 1410 umfasst und mit
der Logikschaltung 1411 kommuniziert, um die Pakettypen
zu bestimmen und geeignete Filtermasken anzuwenden. Nachdem die
Filtermaske wie oben angemerkt angewendet wurde, wird das Ergebnis
der Anwendung auf die Regeltabelle 22 angewendet, damit
die geeignete Suche und Aktion durchgeführt werden können. Es
sei angemerkt, dass die Filtermasken, Regeltabellen und Logik zwar
durch die CPU 52 programmierbar sind, aber bei ihrer Verarbeitung
und Berechnung nicht auf die CPU 52 zurückgreifen. Nach der Programmierung
wird eine Hardware-Konfiguration bereitgestellt, die eine Filteranwendung
und Suche mit Leitungsgeschwindigkeit ermöglicht.
-
Unter
nochmaliger Bezugnahme auf 14 bestimmt
die Logik 1411 in dem FFP 141, nachdem der FFP 141 geeignete,
konfigurierte Filter angewendet hat und von den geeigneten Regeltabellen 22 Ergebnisse erhalten
werden, die geeignete Aktion und führt diese durch. Die Filterlogik
kann das Paket verwerfen, das Paket an die CPU 52 senden,
den Paket-Header oder den IP-Header verändern und IP-Prüfsummenfelder
neu berechnen, oder sie führt
andere geeignete Aktionen bezüglich
der Header durch. Die Änderung
erfolgt beim Puffer-Teiler 144, und das Paket wird auf
dem C-Kanal 81 platziert. Die Steuernachricht und die Nachrichten-Header-Informationen
werden von dem FFP 141 und der ARL-Maschine 143 angewendet,
und der Nachrichten-Header wird auf dem P-Kanal 82 platziert.
Die Versandeinheit 18, die auch unter Bezugnahme auf 8 allgemein
erörtert
wurde, koordiniert alle Versandvorgänge an den C-Kanal, P-Kanal
und S-Kanal. Wie zuvor bereits angemerkt, sind alle EPIC-Module 20,
GPIC-Module 30, die PMMU 70, usw. einzeln so konfiguriert,
dass sie über
den CPS-Kanal kommunizieren. Jedes Modul kann unabhängig von
den übrigen
geändert werden,
und solange die CPS-Kanalschnittstellen beibehalten werden, sollten
interne Änderungen
an jeglichen Modulen, wie beispielsweise dem EPIC 20a,
beliebige andere Module, wie beispielsweise den EPIC 20b oder
die GPICs 30, nicht beeinträchtigen.
-
Wie
zuvor bereits erwähnt,
wird der FFP 141 über
die CPU 52 von dem Benutzer auf der Grundlage der spezifischen
Funktionen programmiert, die von jedem FFP 141 gehandhabt
werden sollen. Unter Bezugnahme auf 17 ist
ersichtlich, dass in Schritt 17-1 ein Schritt zur Programmierung
des FFP von dem Benutzer eingeleitet wird. Sobald die Programmierung
eingeleitet worden ist, identifiziert der Benutzer in Schritt 17-2 die
Protokollfelder des Pakets, die für den Filter von Interesse
sind. In Schritt 17-3 werden der Pakettyp und die Filterbedingungen
bestimmt, und in Schritt 17-4 wird auf der Grundlage des
identifizierten Pakettyps und der gewünschten Filterbedingungen eine
Filtermaske aufgebaut. Bei der Filtermaske handelt es sich im Wesentlichen
um ein Bitmuster, das auf die ausgewählten Felder des Pakets angewendet
bzw. durch eine UND-Operation mit diesen verknüpft wird. Nach dem Aufbau der
Filtermaske wird dann abhängig
von den zu lösenden
Problemen, den weiterzuleitenden Paketen, den durchzuführenden
Aktionen, usw. bestimmt, ob es sich bei dem Filter um einen einschließenden oder
ausschließenden
Filter handeln soll. In Schritt 17-6 wird bestimmt, ob
der Filter sich an dem Eintritts-Port befindet oder nicht, und in
Schritt 17-7 wird bestimmt, ob der Filter sich an dem Austritts-Port befindet oder
nicht. Wenn sich der Filter an dem Eintritts-Port befindet, wird
in Schritt 17-8 eine Eintritts-Port-Maske verwendet. Wenn
bestimmt wird, dass sich der Filter an dem Austritts-Port befindet,
wird in Schritt 17-9 eine Austrittsmaske verwendet. Auf
der Grundlage dieser Schritte wird dann ein Regeltabelleneintrag
für die
Regeltabellen 22 aufgebaut, und der Eintrag bzw. die Einträge wird
bzw. werden in die geeignete Regeltabelle aufgenommen (Schritte 17-10 und 17-11).
Diese Schritte werden durchgeführt,
indem der Benutzer bestimmte Sätze
von Regeln und Informationen über
eine geeignete Eingabevorrichtung in die CPU 52 eingibt,
und die CPU 52 führt
im Hinblick auf das Erstellen der Filter die geeignete Aktion über den
CMIC 40 und die geeigneten Eintritts- oder Austritts-Submodule
auf einem geeigneten EPIC-Modul 20 oder GPIC-Modul 30 durch.
-
Es
sei außerdem
angemerkt, dass das Blockdiagramm des SOC 10 in 2 veranschaulicht,
dass jeder GPIC 30 seine eigenen ARL-/S3-Tabellen 31,
seine eigene Regeltabelle 32 und seine eigenen VLAN-Tabellen 33 aufweist
und dass außerdem
jeder EPIC 20 ebenfalls seine eigenen ARL-/S3-Tabellen 21,
seine eigene Regeltabelle 22 und seine eigenen VLAN-Tabellen 23 aufweist.
Es wird bevorzugt, dass zwei getrennte Module eine gemeinsame ARL-/S3-Tabelle
und eine gemeinsame VLAN-Tabelle verwenden können. Jedes Modul weist allerdings
seine eigene Regeltabelle 22 auf. Daher kann beispielsweise
der GPIC 30a die ARL-/S3-Tabelle 21a und die VLAN-Tabelle 23a mit
dem EPIC 20a gemeinsam verwenden. Analog dazu kann der
GPIC 30b die ARL-Tabelle 21b und die VLAN-Tabelle 23b mit
dem EPIC 20b gemeinsam verwenden. Diese gemeinsame Verwendung
von Tabellen verringert die Anzahl der Gatter, die zum Implementieren
dieser Konfiguration erforderlich sind, und ermöglicht vereinfachte Such- und
Synchronisationsvorgänge,
wie weiter unten noch erörtert
wird.
-
Tabellensynchronisation und
Alterung
-
Der
SOC 10 kann ein einzigartiges Verfahren der Tabellensynchronisation
und Alterung verwenden, um sicherzustellen, dass nur aktuelle und
aktive Adressinformationen in den Tabellen verwaltet werden. Wenn ARL-/S3-Tabellen
aktualisiert werden, um eine neue Quelladresse aufzunehmen, wird
innerhalb der Tabelle des "Eigentümers" oder des erhaltenden
Moduls ein Treffer-Bit gesetzt, um anzugeben, dass auf die Adresse zugegriffen
wurde. Wenn außerdem
eine neue Adresse erlernt und in der ARL-Tabelle platziert wird,
wird eine S-Kanalnachricht auf dem S- Kanal 83 als ARL-Einfügenachricht
platziert, welche alle ARL-/S3-Tabellen auf dem SOC 10 anweist,
diese neue Adresse zu erlernen. Der Eintrag in den ARL-/S3-Tabellen umfasst
eine Identifikation des Ports, der das Paket ursprünglich empfangen
und die Adresse erlernt hat. Wenn daher der EPIC 20a den
Port enthält,
der das Paket ursprünglich
empfangen hat und der deshalb die Adresse ursprünglich erlernt hat, wird EPIC 20a "Eigentümer" der Adresse. Daher
kann nur der EPIC 20a diese Adresse aus der Tabelle löschen. Die
ARL-Einfügenachricht
wird von allen Modulen empfangen, und die Adresse wird zu allen ARL-/S3-Tabellen
auf dem SOC 10 hinzugefügt.
Der CMIC 40 sendet die Adressinformation auch an die CPU 52.
Wenn jedes Modul die Adressinformation empfangen und erlernt hat,
wird eine Bestätigungsnachricht (ACK-Nachricht)
an den EPIC 20a zurückgesendet;
weitere ARL-Einfügenachrichten
können
von dem EPIC 20a als dem Eigentümer erst gesendet werden, wenn
alle ACK-Nachrichten von allen Modulen empfangen wurden. Es wird
bevorzugt, dass der CMIC 40 keine ACK-Nachricht sendet,
da der CMIC 40 keine Eintritts-/Austrittsmodule aufweist,
sondern nur mit der CPU 52 kommuniziert.
-
Unter
Bezugnahme auf 18 wird der ARL-Alterungsprozess
erörtert.
Ein Alterungs-Timer wird innerhalb jedes EPIC-Moduls 20 und
GPIC-Moduls 30 bereitgestellt; in Schritt 18-1 wird
bestimmt, ob der Alterungs-Timer abgelaufen ist. Wenn der Timer
abgelaufen ist, beginnt der Alterungsprozess, indem der erste Eintrag
in der ARL-Tabelle 21 untersucht wird. In Schritt 18-2 wird
bestimmt, ob der Port, auf den in dem ARL-Eintrag Bezug genommen
wird, zu dem bestimmten Modul gehört oder nicht. Wenn das Ergebnis "Nein" ist, wird der Prozess
bei Schritt 18-3 fortgesetzt, in dem bestimmt wird, ob
es sich bei diesem Eintrag um den letzten Eintrag in der Tabelle
handelt. Wenn das Ergebnis in Schritt 18-3 "Ja" ist, wird in Schritt 18-4 der
Alterungs-Timer neu gestartet, und der Prozess wird abgeschlossen.
Wenn es sich nicht um den letzten Eintrag in der Tabelle handelt,
kehrt der Prozess in Schritt 18-5 zu dem nächsten ARL-Eintrag
zurück.
Wenn jedoch in Schritt 18-2 bestimmt wird, dass der Port
zu diesem bestimmten Modul gehört,
wird in Schritt 18-6 bestimmt, ob das Treffer-Bit gesetzt
ist oder nicht, oder ob es sich um einen statischen Eintrag handelt.
Wenn das Treffer-Bit gesetzt wurde, wird das Treffer-Bit in Schritt 18-7 zurückgesetzt,
und der Prozess wird dann bei Schritt 18-3 fortgesetzt.
Wenn das Treffer-Bit nicht gesetzt ist, wird der ARL-Eintrag in
Schritt 18-8 gelöscht,
und eine Nachricht zum Löschen
des ARL-Eintrags wird auf dem CPS-Kanal an die übrigen Module einschließlich des
CMIC 40 gesendet, so dass die Tabelle in geeigneter Weise
wie oben angemerkt synchronisiert werden kann. Dieser Alterungsprozess
kann sowohl für
die ARL-Einträge
(Schicht 2) durchgeführt
werden als auch für
die Schicht-3-Einträge,
um sicherzustellen, dass gealterte Pakete auf geeignete Weise von
den Eigentümern
der Einträge
aus den Tabellen gelöscht
werden. Wie zuvor angemerkt, wird der Alterungsprozess nur für Einträge durchgeführt, bei
denen der Port, auf den Bezug genommen wird, zu dem bestimmten Modul
gehört,
das den Alterungsprozess durchführt.
Zu diesem Zweck wird daher das Treffer-Bit nur in dem Modul des
Eigentümers gesetzt.
Das Treffer-Bit wird nicht für
Einträge
in Tabellen anderer Module gesetzt, welche die ARL-Einfügenachricht
erhalten. Das Treffer-Bit ist daher in den synchronisierten Tabellen
der Nicht-Eigentümer
immer auf null gesetzt.
-
Der
Zweck der Quell- und Zielsuche und der Gesamtsuchvorgänge besteht
darin, die Port-Nummer innerhalb des SOC 10 zu ermitteln,
an die das Paket geleitet werden soll, nachdem es entweder in dem
CBP 50 oder in dem GBP 60 platziert worden ist.
Natürlich
führt ein
Scheitern der Quellensuche dazu, dass die Quelle aus der Quell-MAC-Adressinformation
in dem Paket erlernt wird; ein Scheitern der Zielsuche hingegen führt, da
kein Port identifiziert werden konnte, dazu, dass das Paket an alle
Ports in dem SOC 10 gesendet wird. Solange die Ziel-VLAN-ID
der Quell-VLAN-ID
entspricht, wird das Paket in dem VLAN weitergereicht und erreicht
sein letztendliches Ziel, wobei zu diesem Zeitpunkt ein Bestätigungspaket
empfangen wird, um dadurch die ARL-Tabelle in die Lage zu versetzen,
den Ziel-Port für
die Verwendung bei nachfolgenden Paketen zu erlernen. Wenn die VLAN-IDs
voneinander abweichen, wird, wie zuvor bereits erörtert, ein
S3-Such- und Lernprozess durchgeführt. Es sei angemerkt, dass
jeder EPIC und jeder GPIC eine FIFO-Warteschlange enthalten können, um
ARL-Einfügenachrichten
zu speichern, da, obwohl jedes Modul jeweils nur eine Nachricht gleichzeitig
senden kann, eine Warteschlange für die geeignete Behandlung
der Nachrichten vorgesehen sein muss, wenn jedes Modul eine Einfügenachricht
sendet.
-
Port-Verlagerung
-
Wenn
die ARL-/S3-Tabellen schon mit Einträgen gefüllt sind, kann es manchmal
vorkommen, dass ein bestimmter Benutzer bzw. eine bestimmte Station
seine bzw. ihre Position von einem Port an einen anderen Port ändert. Um Übertragungsfehler
zu verhindern, umfasst der SOC 10 daher Funktionen, um
solche Verla gerungen zu erkennen und die Tabelleneinträge entsprechend
zu aktualisieren. Beispielhalber soll angenommen werden, dass die
Station A, die sich zum Beispiel auf dem Port 1 befindet, versucht,
mit der Station B zu kommunizieren, deren Einträge angeben, dass sich Benutzer
B an dem Port 26 befindet. Wenn die Station B dann an einen anderen
Port verlagert wird, beispielsweise Port 15, wird ein Scheitern
der Zielsuche auftreten, und das Paket wird an alle Ports gesendet.
Wenn das Paket dann von Station B an Port 15 empfangen wird, sendet
die Station B eine Bestätigungsnachricht
(ACK-Nachricht), die dann von dem Eintritt des EPIC/GPIC-Moduls
empfangen wird, in dem Port 1 enthalten ist. Bei einer Suche nach
der Quelle (der Bestätigungsnachricht)
wird eine Übereinstimmung
anhand der Quelladresse ermittelt, aber die Port-Informationen stimmen
nicht überein.
Daher muss der EPIC/GPIC, der das Paket von B empfängt, den
alten Eintrag aus der ARL-/S3-Tabelle löschen und außerdem eine
ARL/S3-Löschnachricht
auf dem S-Kanal senden, damit alle Tabellen synchronisiert werden.
Dann wird die neue Quellinformation mit dem richtigen Port in die
ARL/S3-Tabelle eingefügt,
und eine ARL-/S3-Einfügenachricht
wird auf dem S-Kanal platziert, wodurch die ARL-/S3-Tabellen anhand
der neuen Information aktualisiert werden. Die aktualisierte ARL-Einfügenachricht
kann erst gesendet werden, wenn alle Bestätigungsnachrichten bezüglich der
ARL-Löschnachricht
gesendet wurden, damit eine ordnungsgemäße Tabellensynchronisation
sichergestellt ist. Wie zuvor bereits dargelegt, können typische
ARL-Einfüge-
und Löschbefehle
nur durch das Eigentümermodul
eingeleitet werden. Da die Port-Verlagerung durch jedes Modul erkannt
werden kann, das ein Paket an einen verlagerten Port sendet, können in dem
Fall einer Port-Verlagerung jedoch die auf die Port-Verlagerung
bezogenen Lösch-
und Einfügenachrichten
durch jedes beliebige Modul eingeleitet werden.
-
Bündelung
(Trunking)
-
Während des
Konfigurationsprozesses, bei dem ein lokales Netzwerk mit einer
Vielzahl von Switches, usw. durch einen Administrator konfiguriert
wird, können
zahlreiche Ports gebündelt
werden, um die Bandbreite zu vergrößern. Wenn beispielsweise vorhergesehen
wird, dass der Datenverkehr zwischen einem ersten Switch SW1 und
einem zweiten Switch SW2 hoch sein wird, kann das LAN so konfiguriert
werden, dass eine Vielzahl von Ports, beispielsweise Port 1 und
2, miteinander verbunden werden können. In einer Umgebung mit
einer Übertragungsgeschwindigkeit
von 100 Megabit pro Sekunde stellt das Trunking von zwei Ports effektiv eine
erhöhte
Bandbreite von 200 Megabit pro Sekunde zwischen den beiden Ports
bereit. Die beiden Ports 1 und 2 werden daher als Trunk-Gruppe identifiziert,
und die CPU 52 wird verwendet, um die Handhabung der Trunk-Gruppe
ordnungsgemäß zu konfigurieren.
Sobald eine Trunk-Gruppe identifiziert ist, wird sie als Vielzahl von
Ports behandelt, die als ein logischer Port fungieren. 19 veranschaulicht eine Konfiguration, bei der SW1,
der eine Vielzahl von Ports enthält,
eine Trunk-Gruppe mit den Ports 1 und 2 von SW2 aufweist, wobei es
sich bei der Trunk-Gruppe um zwei Kommunikationsleitungen handelt,
welche die Ports 1 und 2 von jedem der Switches SW1 und SW2 verbinden.
Dadurch wird die Trunk-Gruppe T ausgebildet. In diesem Beispiel
versucht die Station A, die mit dem Port 3 von SW1 verbunden ist,
mit der sich auf dem Port 26 des Switches SW2 befindenden Station
B zu kommunizieren bzw. ein Paket an diese zu senden. Das Paket
muss daher von Port 3 von SW1 durch die Trunk-Gruppe T zu Port 26
von SW2 gelangen. Es sei angemerkt, dass die Trunk-Gruppe jede beliebige
Anzahl von Ports zwischen den Switches enthalten könnte. Mit
zunehmendem Datenverkehr zwischen SW1 und SW2 könnte die Trunk-Gruppe T von
dem Administrator neu konfiguriert werden, um mehr Ports zu enthalten,
wodurch die Bandbreite effektiv erhöht würde. Zusätzlich zur Bereitstellung einer
erhöhten Bandbreite
stellt das Trunking auch Redundanz bereit, falls einer der Links
zwischen den Switches ausfällt. Sobald
die Trunk-Gruppe erstellt worden ist, programmiert ein Benutzer
den SOC 10 über
die CPU 52, damit die geeignete(n) Trunk-Gruppe(n) erkannt
wird bzw. werden, mit Trunk-Gruppen-Identifikationsinformationen (TGID).
Für jede
TGID wird ein Trunk-Gruppen-Port-Bitmuster vorbereitet; und eine
Trunk-Gruppentabelle, die für
jedes Modul auf dem SOC 10 vorgesehen ist, wird verwendet,
um die Trunk-Gruppe zu implementieren, die auch als Port-Bündel bezeichnet
werden kann. Außerdem
wird eine Bitmustertabelle für
die Trunk-Gruppe bereitgestellt. Diese beiden Tabellen werden pro
Modul bereitgestellt und wie die Tabellen 21, 22 und 23 als
zweidimensionale Arrays in Silizium implementiert. In einem Ausführungsbeispiel
des SOC 10 können
sechs Trunk-Gruppen unterstützt
werden, wobei jede Trunk-Gruppe bis zu acht Trunk-Ports aufweisen
kann. Um das "Lahmlegen" von Paketen oder
Rahmen zu verhindern, muss bei deren Kommunikation allerdings derselbe Port
für den
Paketdatenfluss verwendet werden. Die Angabe, welcher Port für die Kommunikation
verwendet wird, kann auf jedem der folgenden Elemente basieren:
Quell-MAC-Adresse, Ziel-MAC-Adresse, Quell-IP-Adresse, Ziel-IP-Adresse oder Kombinationen
von Quell- und Zieladresse. Wenn die Quell-MAC-Adresse verwendet
wird, und wenn beispielsweise die Station A auf dem Port 3 des SW1
versucht, ein Paket an die Station B auf dem Port 26 des SW2 zu
senden, so werden die letzten drei Bit der Quell-MAC-Adresse von
der Station A, die sich in dem Quell-Adressfeld des Pakets befinden,
verwendet, um einen Trunk-Port-Index
zu generieren. Der Trunk-Port-Index wird dann in der Trunk-Gruppentabelle
durch das Eintritts-Submodul 14 des bestimmten Ports auf
dem Switch gesucht, um zu bestimmen, welcher Port der Trunk-Gruppe
für die
Kommunikation verwendet wird. Wenn anders ausgedrückt ein
Paket von der Station A zu der Station B gesendet werden soll, wird
die Adressauflösung
wie oben dargelegt durchgeführt.
Wenn das Paket durch eine Trunk-Gruppe gehandhabt werden soll, wird
ein T-Bit in dem ARL-Eintrag gesetzt, der mit der Zieladresse übereinstimmt.
Wenn das T-Bit bzw. Trunk-Bit gesetzt wurde, wird die Zieladresse
aus einem der Trunk-Ports erlernt. Der Austritts-Port wird daher
nicht anhand der in dem ARL-Eintrag erhaltenen Port-Nummer erlernt,
sondern anhand der Trunk-Gruppen-ID und des Regel-Tags (RTAG), das
aus dem ARL-Eintrag entnommen wird und das verwendet werden kann,
um den Trunk-Port auf der Grundlage des in der Trunk-Gruppentabelle
enthaltenen Trunk-Port-Indexes zu identifizieren. Die Felder RTAG
und TGID, die in dem ARL-Eintrag enthalten sind, definieren daher,
welcher Teil des Pakets verwendet wird, um den Trunk-Port-Index
zu generieren. Wenn beispielsweise der Wert für RTAG 1 ist, werden die letzten
drei Bit der Quell-MAC-Adresse zur Identifikation des Trunk-Port-Indexes
verwendet; unter Verwendung der Trunk-Gruppentabelle kann dann der
Trunk-Port-Index verwendet werden, um den geeigneten Trunk-Port
für die
Kommunikation zu identifizieren. Wenn der Wert für RTAG 2 ist, werden die letzten
drei Bit der Ziel-MAC-Adresse zum Generieren des Trunk-Port-Indexes
verwendet. Wenn der Wert für
RTAG 3 ist, werden die letzten drei Bit der Quell-MAC-Adresse durch eine
XOR-Verknüpfung
mit den letzten drei Bits der Ziel-MAC-Adresse verknüpft. Das
Ergebnis dieses Vorgangs wird zum Generieren des Trunk-Port-Indexes verwendet.
Für IP-Pakete
werden zusätzliche
RTAG-Werte verwendet, so dass anstelle der MAC-Adressen die Quell-IP-Adresse
und die Ziel-IP-Adresse für
den Trunk-Port-Index verwendet werden.
-
Der
SOC 10 ist so konfiguriert, dass über den CMIC 40 eine
Benachrichtigung an die CPU 52 gesendet wird, wenn ein
Trunk-Port ausfällt
oder aus irgend einem Grund gestört
ist. Die CPU 52 ist dann so konfiguriert, dass sie die
Trunk-Gruppentabelle
und die VLAN-Tabellen automatisch prüft, um sicherzustellen, dass
die geeigneten Port-Bitmuster geändert
werden, um die Tatsache widerzuspiegeln, dass ein Port ausgefallen
ist und daher entfernt wird. Wenn der Trunk-Port oder der Link wiederhergestellt
wurde, muss der Prozess analog umgekehrt werden, und es muss eine
Nachricht an die CPU 52 gesendet werden, so dass die VLAN-Tabellen,
die Trunk-Gruppentabellen, usw. aktualisiert werden können, um
das Vorhandensein des Trunk-Ports widerzuspiegeln.
-
Außerdem sei
angemerkt, dass die Trunk-Gruppe so konfiguriert ist, dass sie Steuerrahmen
oder Steuerpakete, die auch als BPDUs bezeichnet werden, nur auf
einem der Trunk-Ports annimmt, da die Trunk-Gruppe als einzelner
logischer Link behandelt wird. Die Port-basierte VLAN-Tabelle muss
daher so konfiguriert sein, dass ankommende BPDUs von nicht angegebenen
Trunk-Ports abgewiesen werden. Diese Abweisung kann einfach durch
das Setzen eines B-Bits in der VLAN-Tabelle festgelegt werden. Der
IEEE-Standard 802.1d definiert einen Algorithmus, der als Spanning-Tree-Algorithmus
bezeichnet wird, um Datenschleifen in Switches zu vermeiden, für die Trunk-Gruppen
vorhanden sind. Unter Bezugnahme auf 19 könnte zwischen
den Ports 1 und 2 und den Switches SW1 und SW2 eine logische Schleife
vorhanden sein. Der Spanning-Tree-Algorithmus definiert vier getrennte
Zustände,
wobei diese Zustände
Deaktivieren, Blockieren, Empfangsbereit, Lernen und Weiterleiten
umfassen. Die Port-basierte VLAN-Tabelle ist so konfiguriert, dass sie
die CPU 52 in die Lage versetzt, die Ports für einen
bestimmten ARL-Zustand zu programmieren, so dass die ARL-Logik die
geeignete Aktion für
die ankommenden Pakete durchführt.
Wie zuvor bereits angemerkt, stellt das B-Bit in der VLAN-Tabelle
die Funktion zum Zurückweisen
von BPDUs bereit. Das St-Bit in der ARL-Tabelle ermöglicht es der CPU, die statischen
Einträge
zu erlernen; wie in 18 angemerkt, werden statische
Einträge
nicht über
den Alterungsprozess einer Alterung unterzogen. Wie zuvor bereits
erwähnt,
ermöglicht
es das Treffer-Bit in der ARL-Tabelle
der ARL-Maschine 143 zu erkennen, ob für diesen Eintrag ein Treffer vorlag
oder nicht. Anders ausgedrückt
verwendet der SOC 10 eine einmalige Konfiguration von ARL-Tabellen, VLAN-Tabellen,
Modulen, usw., um eine effiziente, auf Silizium basierende Implementierung
der Spanning-Tree-Zustände
bereitzustellen.
-
In
bestimmten Situationen, wie beispielsweise dem Scheitern einer Zielsuche
(DLF), in denen ein Paket an alle Ports in einem VLAN gesendet wird,
oder bei einem Mehrfachsende-Paket ist die Bitmustertabelle für die Trunk-Gruppen
so konfiguriert, dass sie geeignete Port-Informationen aufnimmt,
so dass das Paket nicht an die Mitglieder derselben Quell-Trunk-Gruppe
zurückgesendet
wird. Dadurch wird unnötiger
Datenverkehr in dem LAN verhindert, und die Effizienz in der Trunk-Gruppe bleibt erhalten.
-
IP/IPX
-
Unter
nochmaliger Bezugnahme auf 14 kann
jeder EPIC 20 oder GPIC 30 so konfiguriert werden, dass
er die Unterstützung
sowohl des IP- als auch des IPX-Protokolls bei Leitungsgeschwindigkeit
ermöglicht. Diese
Flexibilität
wird bereitgestellt, ohne dass dies negative Auswirkungen auf die
Systemleistung hat, wobei eine in Silizium implementierte Tabelle
verwendet wird, die für
das IP-Protokoll, das IPX-Protokoll oder eine Kombination aus dem
IP-Protokoll und dem IPX-Protokoll ausgewählt werden kann. Diese Funktionalität wird innerhalb
der Logik-Schaltung 1411 bereitgestellt, und sie verwendet
eine Cache-Suche nach längsten
IP-Präfixen
(IP_LPC) und eine Cache-Suche nach längsten IPX-Präfixen (IPX_LPC).
Während
der Suche auf Schicht 3 wird eine Anzahl von gleichzeitigen Suchvorgängen durchgeführt; eine
schnelle S3-Suche und die Cache-Suche nach dem längsten IP-Präfix werden
gleichzeitig durchgeführt,
wenn das Paket durch den Paket-Header als IP-Paket identifiziert wird. Wenn der Paket-Header
das Paket als IPX-Paket identifiziert, werden die schnelle S3-Suche
und die Cache-Suche nach längsten
IPX-Präfixen
gleichzeitig durchgeführt.
Es sei angemerkt, dass die ARL-/S3-Tabellen 21/31 eine
Standard-IP-Router-Tabelle umfassen, die für eine Cache-Suche nach dem
längsten
IP-Präfix
verwendet wird, wenn das Paket als IP-Paket identifiziert wird,
und sie umfassen außerdem
eine Standard-IPX-Router-Tabelle, die verwendet wird, wenn das Paket über den
Paket-Header als IPX-Paket identifiziert wird. Zum Bestimmen der
Pakettypen werden geeignete Hexadezimalcodes verwendet. Wenn das
Paket weder als IP-Paket noch als IPX-Paket identifiziert wird,
wird das Paket über
den CPS-Kanal 80 und den CMIC 40 an die CPU 52 geleitet.
Es sei angemerkt, dass es sich bei dem Paket, wenn es als IPX-Paket
identifiziert wird, um jeden beliebigen der vier Typen von IPX-Paketen
handeln kann. Diese Typen können
Ethernet 802.3, Ethernet 802.2, Ethernet SNAP und Ethernet II umfassen.
-
Die
gleichzeitige Suche auf Schicht 3 und entweder IP oder IPX ist für die Leistungsfähigkeit
des SOC 10 wichtig. In einem Ausführungsbeispiel des SOC 10 könnte die
S3-Tabelle als Standard-Router-Tabellen einen Bereich enthalten,
der IP-Adressinformationen
enthält,
und einen anderen Bereich, der IPX-Informationen enthält. Diese
Standard-Router-Tabellen werden, wie zuvor bereits angemerkt, durchsucht,
je nachdem, ob es sich bei dem Paket um ein IP-Paket oder um ein
IPX- Paket handelt.
Um die Tabellen noch deutlicher zu veranschaulichen, ist im Folgenden
das S3-Tabellenformat für
eine S3-Tabelle innerhalb der ARL-/S3-Tabellen 21 angegeben:
IP
Address bzw. IPX Address (IP-Adresse bzw. IPX-Adresse) – Länge 32 Bit – Hierbei
handelt es sich um die 32 Bit lange IP- bzw. IPX-Adresse. Die Ziel-IP- bzw. -IPX-Adresse
in einem Paket wird bei der Suche in dieser Tabelle als Schlüssel verwendet.
Mac
Address (MAC-Adresse) – Länge 48 Bit – Bei der
MAC-Adresse handelt es sich tatsächlich
um die nächste
Hop-MAC-Adresse. Diese MAC-Adresse wird als Ziel-MAC-Adresse in
dem weitergeleiteten IP-Paket verwendet.
Port Number (Port-Nummer) – Länge 6 Bit – Hierbei
handelt es sich um die Port-Nummer, auf der das Paket abgeht, wenn
die Ziel-IP-Adresse mit der IP-Adresse
dieses Eintrags übereinstimmt.
L3
Interface Num (S3-Schnittstellen-Nr.) – Länge 5 Bit – Diese S3-Schnittstellen-Nummer wird verwendet,
um die Router-MAC-Adresse aus der S3-Schnittstellentabelle abzurufen.
L3
Hit Bit (S3-Treffer-Bit) – Länge 1 Bit – Das S3-Treffer-Bit
wird verwendet, um zu prüfen,
ob für
diesen Eintrag ein Treffer vorliegt. Das Treffer-Bit wird gesetzt,
wenn die Suche nach der Quell-IP-Adresse diesen Eintrag als Übereinstimmung
liefert. Wenn dieses Bit nicht gesetzt ist, erfährt der Eintrag durch den S3-Alterungsprozess eine
Alterung.
Frame Type (Rahmentyp) – Länge 2 Bit – Der Rahmentyp gibt den Typ
des IPX-Rahmens an (802.2, Ethernet II, SNAP und 802.3), der von
diesem IPX-Knoten akzeptiert wird. Wert 00 – Ethernet II-Rahmen. Wert
01 – SNAP-Rahmen.
Wert 02 – Rahmen
gemäß 802.2.
Wert 03 – Rahmen
gemäß 802.3.
Reserved
(Reserviert) – Länge 4 Bit – Für die zukünftige Verwendung
reserviert.
-
Für die Standard-IP-Router-Tabelle
sind die folgenden Felder vorgesehen:
IP Subnet Address (IP-Teilnetzadresse) – Länge 32 Bit – Hierbei
handelt es sich um die 32 Bit lange IP-Adresse des Teilnetzes.
Mac
Address (MAC-Adresse) – Länge 48 Bit – Bei der
MAC-Adresse handelt es sich tatsächlich
um die nächste
Hop-MAC-Adresse, in diesem Fall ist dies die MAC-Adresse des Standard-Routers.
Port
Number (Port-Nummer) – Länge 6 Bit – Die Port-Nummer
bezeichnet den Port, auf dem das weitergeleitete Paket abgehen soll.
L3
Interface Num (S3-Schnitstellen-Nr.) – Länge 5 Bit – Hierbei handelt es sich um
die S3-Schnittstellen-Nummer.
IP Subnet Bits (IP-Teilnetz-Bits) – Länge 5 Bit – Hierbei
handelt es sich um die Gesamtanzahl der Teilnetz-Bits in der Teilnetzmaske.
Diese Bits werden durch eine AND-Verknüpfung mit der Ziel-IP-Adresse
verknüpft,
bevor ein Vergleich mit der Teilnetzadresse vorgenommen wird.
C
Bit – Länge 1 Bit – Wenn das
C-Bit gesetzt ist, wird das Paket auch an die CPU gesendet.
-
Für die Standard-IPX-Router-Tabelle
innerhalb der ARL-/S3-Tabellen 21 sind die folgenden Felder vorgesehen:
IPX
Subnet Address (IPX-Teilnetzadresse) – Länge 32 Bit – Hierbei handelt es sich um
die 32 Bit lange IPX-Adresse des Teilnetzes.
Mac Address (MAC-Adresse) – Länge 48 Bit – Bei der
MAC-Adresse handelt es sich tatsächlich
um die nächste
Hop-MAC-Adresse, in diesem Fall ist dies die MAC-Adresse des Standard-Routers.
Port
Number (Port-Nummer) – Länge 6 Bit – Die Port-Nummer
bezeichnet den Port, auf dem das weitergeleitete Paket abgehen soll.
L3
Interface Num (S3-Schnitstellen-Nr.) – Länge 5 Bit – Hierbei handelt es sich um
die S3-Schnittstellen-Nummer.
IPX Subnet Bits (IPX-Teilnetz-Bits) – Länge 5 Bit – Hierbei
handelt es sich um die Gesamtanzahl der Teilnetz-Bits in der Teilnetzmaske.
Diese Bits werden durch eine AND-Verknüpfung mit der Ziel-IPX-Adresse
verknüpft,
bevor ein Vergleich mit der Teilnetzadresse vorgenommen wird.
C
Bit – Länge 1 Bit – Wenn das
C-Bit gesetzt ist, wird das Paket auch an die CPU gesendet.
-
Wenn
in der S3-Tabelle keine Übereinstimmung
für die
Ziel-IP-Adresse gefunden wird, scheitert die Suche nach dem längsten Präfix in dem
Standard-IP-Rou ter, und das Paket wird dann an die CPU übergeben. Wenn
analog in der S3-Tabelle keine Übereinstimmung
für eine
Ziel-IPX-Adresse gefunden wird und die Suche nach dem längsten Präfix in dem
Standard-IPX-Router scheitert, wird das Paket dann an die CPU übergeben. Die
Suchvorgänge
erfolgen parallel, aber wenn die Ziel-IP- bzw. -IPX-Adresse in der S3-Tabelle
gefunden wird, werden die Ergebnisse der Suche in der Standard-Router-Tabelle
verworfen.
-
Die
Cache-Suche nach längsten
IP-Präfixen
umfasst, unabhängig
davon, ob sie für
IP oder IPX durchgeführt
wird, den wiederholten Versuch, eine Übereinstimmung von Bits in
der IP-Teilnetzadresse zu finden. Die Suche nach der längsten Präfix-Übereinstimmung
besteht darin, die Ziel-IP-Adresse durch eine AND-Verknüpfung mit
der Anzahl von IP- oder IPX-Teilnetz-Bits zu verknüpfen und
das Ergebnis mit der IP-Teilnetzadresse zu vergleichen. Sobald eine Übereinstimmung
des längsten
Präfix
gefunden wurde, werden, solange die TTL noch nicht gleich eins ist,
erneut geeignete IP-Prüfsummen
berechnet, die Ziel-MAC-Adresse wird durch die MAC-Adresse für den nächsten Hop
ersetzt, und die Quell-MAC-Adresse wird durch die Router-MAC-Adresse
der Schnittstelle ersetzt. Die VLAN-ID wird aus der S3-Schnittstellentabelle
erhalten, und das Paket wird dann je nachdem mit oder ohne Tag gesendet.
Wenn das C-Bit gesetzt ist, wird eine Kopie des Pakets an die CPU
gesendet, da dies für
die Lernfunktion oder andere CPU-bezogene Funktionen erforderlich sein
kann.
-
Es
sei daher angemerkt, dass der Eintritt, wenn ein Paket ankommt,
das für
eine MAC-Adresse bestimmt ist, die mit einer Schicht-3-Schnittstelle
für ein
ausgewähltes
VLAN verbunden ist, nach einer Übereinstimmung
auf der Ebene des IP-/IPX-Ziel-Teilnetzes
sucht. Wenn keine Übereinstimmung
des IP-/IPX-Ziel-Teilnetzes vorliegt, wird das Paket zur geeigneten
Weiterleitung an die CPU 52 weitergeleitet. Wenn es jedoch
eine IP-/IPX-Übereinstimmung
gibt, werden die MAC-Adresse für
den nächsten
Hop sowie die Austritts-Port-Nummer identifiziert, und das Paket
wird auf geeignete Weise weitergeleitet.
-
Anders
ausgedrückt
ist der Eintritt des EPIC 20 oder GPIC 30 im Hinblick
auf die ARL-/S3-Tabellen 21 so konfiguriert, dass der Eintritt
beim Eintreten eines Pakets in das Eintritts-Submodul 14 ermitteln
kann, ob es sich bei dem Paket um ein IP-Paket oder ein IPX-Paket
handelt oder nicht. IP-Pakete werden zu einer IP-/ARL-Suche geleitet, und
als IPX konfigurierte Pakete werden zu einer IPX-/ARL-Suche geleitet.
Wenn während
der S3-Suche eine S3-Übereinstimmung
gefunden wird, werden die Suchvorgänge auf Übereinstimmung mit dem längsten Präfix abgebrochen.
-
HOL-Blocking
-
Der
SOC 10 enthält
einige einzigartige Merkmale bezüglich
des Datenflusses, um die Effizienz und die Vermittlungsgeschwindigkeit
zu maximieren. Bei der Netzwerkkommunikation tritt ein als Head-of-Line-Blocking
(HOL-Blocking) bekanntes Phänomen
auf, wenn ein Port versucht, ein Paket an einen überlasteten Port zu senden
und sich direkt hinter diesem Paket ein weiteres Paket befindet,
das an einen nicht überlasteten Port
gesendet werden soll. Die Überlastung
an dem Ziel-Port für
das erste Paket würde
dazu führen,
dass die Übertragung
des zweiten Pakets an den nicht überlasteten
Port verzögert
wird. Jeder EPIC 20 und GPIC 30 innerhalb des
SOC 10 umfasst einen einzigartigen Mechanismus zum HOL-Blocking,
um den Durchsatz zu maximieren und die negativen Auswirkungen zu
minimieren, die ein einzelner, überlasteter
Port auf den Datenverkehr haben würde, der an nicht überlastete
Ports geht. Wenn beispielsweise ein Port auf einem GPIC 30 mit
einer Datenübertragungsgeschwindigkeit
von beispielsweise 1.000 Megabit pro Sekunde versucht, Daten an
einen anderen Port 24a auf dem EPIC 20a zu senden,
wäre der
Port 24a sofort überlastet.
Jeder Port auf jedem GPIC 30 und EPIC 20 ist durch
die CPU 52 so programmiert, dass pro Port und Service-Klasse (COS)
ein Höchststand
und ein Niedrigststand in Bezug auf den Pufferspeicherplatz innerhalb
des CBP 50 vorhanden ist. Die Tatsache, dass der Mechanismus
für das
HOL-Blocking eine Verhinderung des HOL-Blocking pro Port und Service-Klasse
aktiviert, ermöglicht
einen effektiveren Datenfluss, als nach dem Stand der Technik bekannt
ist. Wenn die Ausgangswarteschlange für einen bestimmten Port den
vorprogrammierten Höchststand
innerhalb des zugewiesenen Puffers in dem CBP 50 erreicht,
sendet die PMMU 70 auf dem S-Kanal 83 eine COS-Warteschlangen-Zustandsmeldung
bzw. COS-Warteschlangen-Statusbenachrichtigung an das geeignete
Eintrittsmodul des geeigneten GPIC 30 oder EPIC 20.
Wenn die Nachricht empfangen wird, wird das aktive Port-Register, das der
in der Nachricht angegebenen Service-Klasse entspricht, aktualisiert.
Wenn das Port-Bit für
den betreffenden Port auf null gesetzt ist, wird der Eintritt so
konfiguriert, dass er alle Pakete löscht, die an diesen Port gehen
sollen. Obwohl die gelöschten
Pakete eine negative Auswirkung auf die Kommunikation zu dem überlasteten
Port haben, ermöglicht
es das Löschen
der Pakete, die für überlastete
Ports bestimmt sind, dass Pakete, die an nicht überlastete Ports gehen, zügig an diese
weitergeleitet werden. Wenn die Ausgangswarteschlange unter den
vorprogrammierten Niedrigststand sinkt, sendet die PMMU 70 eine Nachricht
mit einer COS-Warteschlangenstatus-Benachrichtigung auf dem Seitenbandkanal,
wobei das Bit für den
betreffenden Port gesetzt ist. Wenn der Eintritt diese Nachricht
erhält,
bewirkt das Bit, das dem Port in dem aktiven Port-Register für das Modul
entspricht, dass das Paket an die geeignete Ausgangswarteschlange
gesendet wird. Dadurch, dass gewartet wird, bis die Ausgangswarteschlange
unter den Niedrigststand sinkt, bevor der Port wieder aktiviert
wird, ist eine Hysterese in das System eingebaut, um eine ständige Aktivierung und
Deaktivierung des Ports auf der Grundlage des Weiterleitens nur
eines einzigen Pakets oder einer geringen Anzahl von Paketen zu
verhindern. Es sei angemerkt, dass jedes Modul ein aktives Port-Register
aufweist. Beispielsweise kann jede Service-Klasse pro Port vier
Register zum Speichern des Höchststandes
und des Niedrigststandes aufweisen; diese Register können Daten
als Anzahl von Zellen in der Ausgangswarteschlange oder als Anzahl
von Paketen in der Ausgangswarteschlange speichern. In dem Fall
einer Nachricht vom Typ "Unicast" wird das Paket nur
gelöscht;
in dem Fall einer Rundsende- oder Mehrfachsendenachricht wird die
Nachricht für überlastete
Ports gelöscht,
aber an nicht überlastete
Ports weitergeleitet. Die PMMU 70 umfasst die gesamte Logik,
die zum Implementieren dieses Mechanismus zum Verhindern von HOL-Blocking
bezüglich
der Budgetierung von Zellen und Paketen erforderlich ist. Die PMMU 70 umfasst
ein HOL-Blocking-Markierungsregister zum Implementieren des Mechanismus
auf der Grundlage von Zellen. Wenn die lokale Zellenanzahl plus
der globalen Zellenanzahl für
einen bestimmten Austritts-Port den Wert in dem HOL-Blocking-Markierungsregister übersteigt,
sendet die PMMU 70 die Nachricht zur HOL-Statusbenachrichtigung.
Die PMMU 70 kann außerdem
durch die Verwendung eines Bits in dem PMMU-Konfigurationsregister, das
als "Use Advanced
Warning Bit" (Bit
zur frühzeitigen
Warnung verwenden) bezeichnet wird, eine frühzeitige HOL-Benachrichtigung
implementieren. Wenn dieses Bit gesetzt ist, sendet die PMMU 70 die
Nachricht zur HOL-Benachrichtigung,
wenn die lokale Zellenanzahl plus der globalen Zellenanzahl plus
121 größer ist als
der Wert in dem HOL-Blocking-Markierungsregister. 121 ist die Anzahl
von Zellen in einem Jumbo-Rahmen. Die Erfindung ist nicht auf das
Senden einer frühzeitigen
HOL-Benachrichtigung als solches beschränkt, und die PMMU 70 kann
wie erforderlich programmiert werden.
-
In
Bezug auf die vorgenannte Hysterese sei angemerkt, dass die PMMU 70 sowohl
eine räumliche
als auch eine zeitliche Hysterese implementiert. Wenn der Wert für die lokale
Zellenanzahl plus der globalen Zellenanzahl unterhalb des Wertes
in dem HOL-Blocking-Markierungsregister fällt, wird ein Kurzzeit-Timerwert aus
einem PMMU-Konfigurationsregister verwendet, um in einen Zähler geladen
zu werden. Der Zähler
wird alle 32 Takte dekrementiert. Wenn der Zähler 0 erreicht, sendet die
PMMU 70 die HOL-Statusnachricht mit dem neuen Port-Bitmuster.
Das dem Austritts-Port entsprechende Bit wird auf 0 zurückgesetzt,
um anzugeben, dass an dem Austritts-Port kein HOL-Blocking mehr
auftritt. Um die Verhinderung des HOL-Blocking auf der Grundlage
von Paketen fortzusetzen, ist ein "Bremsspur"-Wert
in dem PMMU-Konfigurationsregister definiert. Wenn die Anzahl der
Einträge
in der Transaktionswarteschlange plus dem "Bremsspur"-Wert größer ist als die maximale Größe der Transaktionswarteschlange
pro Service-Klasse, sendet die PMMU 70 die COS-Warteschlangen-Statusnachricht
auf dem S-Kanal. Sobald der Eintritts-Port diese Nachricht empfängt, beendet
der Eintritts-Port das Senden von Paketen an diese bestimmte Kombination
aus Port und Service-Klasse. Je nach Konfiguration und der an dem
Austritts-Port empfangenen Paketlänge kann entweder der HOL-Blocking-Höchststand
für Zellen
oder der HOL-Blocking-Höchststand
für Pakete
zuerst erreicht werden. Diese Konfiguration dient daher zum Verhindern,
dass entweder eine kleine Reihe von sehr großen Paketen oder eine große Reihe
von sehr kleinen Paketen HOL-Blocking-Probleme verursacht.
-
Der
zuvor in Bezug auf die Logik für
die CBP-Zulassung erörterte
Niedrigststand dient dem Zweck sicherzustellen, dass jeder Port
unabhängig
von den Datenverkehrsbedingungen über angemessenen Pufferspeicher
verfügt,
der ihm in dem CBP zugewiesen wurde, um Port-Starvation zu verhindern
und um sicherzustellen, dass jeder Port in der Lage ist, in dem
Maße,
in dem das Netzwerk eine solche Kommunikation unterstützen kann,
mit jedem anderen Port zu kommunizieren.
-
Unter
nochmaliger Bezugnahme auf die in 10 veranschaulichte
PMMU 70 ist der CBM 71 so konfiguriert, dass die
Verfügbarkeit
von mit ankommenden Paketen verbundenen Adresszeigern aus einem
Pool freier Adressen maximiert wird. Wie zuvor bereits angemerkt,
speichert der CBM 71 den ersten Zellzeiger, bis das ankommende
Paket 112 empfangen und entweder in dem CBP 50 oder
in dem GBP 60 wieder zusammengesetzt ist. Wenn das Lösch-Flag
der entsprechenden P-Kanalnachricht gesetzt ist, löscht der
CBM 71 das ankommende Datenpaket 112, wodurch die
mit dem ankommenden Paket verbundene GPID/CPID des Adresszeigers
verfügbar
wird. Wenn das Lösch-Flag
gesetzt ist, löscht
daher der CBM 71 im Wesentlichen das Paket bzw. nimmt es
aus der Verarbeitung in dem SOC heraus, wodurch die nachfolgende
Kommunikation mit dem zugehörigen
Austritts-Manager 76 verhindert wird, der mit dem gelöschten Paket
verbunden ist. Der CBM 71 ist außerdem so konfiguriert, dass
er mit den Austritts-Managern 76 kommuniziert, um gealterte
und von Überlastung
betroffene Pakete zu löschen.
Gealterte und von der Überlastung
betroffene Pakete werden auf der Grundlage des zugehörigen Anfangs-Adresszeigers
zu dem CBM 71 geleitet, und die Wiedergewinnungseinheit
innerhalb des CBM 71 gibt die mit den zu löschenden
Paketen verbundenen Zeiger frei; dies wird im Wesentlichen durch Ändern des
Pools freier Adressen bewirkt, um diese Änderung widerzuspiegeln. Der Speicherbudget-Wert
wird aktualisiert, indem der aktuelle Wert des zugehörigen Speichers
um die Anzahl von gelöschten
Datenzellen dekrementiert wird.
-
Zusammenfassend
lässt sich
sagen, dass aufgelöste
Pakete von dem Eintritts-Submodul 14,
wie unter Bezugnahme auf 8 erörtert, auf
dem C-Kanal 81 platziert werden. Der CBM 71 bildet
eine Schnittstelle mit dem CPS-Kanal, und jedes Mal, wenn eine an
einen Austritts-Port adressierte Zelle bzw. ein an einen Austritts-Port adressiertes
Paket vorhanden ist, weist der CBM 71 Zellenzeiger zu und
verwaltet die Verknüpfungsliste.
Eine Vielzahl von Maschinen zum gleichzeitigen Wiederzusammensetzen
wird bereitgestellt, wobei für jeden
Austritts-Manager 76 eine Maschine zum Wiederzusammensetzen
vorhanden ist und den Status des Rahmens verfolgt. Sobald eine Vielzahl
von Zellen, die ein Paket darstellen, vollständig in den CBP 50 geschrieben
wurde, sendet der CBM 71, wie weiter oben erörtert, CPIDs
an die jeweiligen Austritts-Manager heraus. Die CPIDs zeigen auf
die erste Zelle des Pakets in dem CBP; der Paketfluss zu Transaktions-MACs 140 wird
dann von den Austritts-Managern 76 gesteuert, sobald die
Zuweisung der CPID/GPID durch den CBM 71 abgeschlossen
ist. Das Budgetregister (nicht gezeigt) des jeweiligen Austritts-Managers 76 wird
auf geeignete Weise um die Anzahl der Zellen dekrementiert, die
mit dem Austritt verbunden sind, nachdem das vollständige Paket
in den CBP 50 geschrieben wurde. Der EGM 76 schreibt
die geeigneten PIDs in seinen Transaktions-FIFO. Da es mehrere Service-Klassen
(COSs) gibt, schreibt der Austritts-Manager 76 die PIDs
in den gewählten
Transaktions-FIFO, welcher der gewählten Service-Klasse entspricht.
Wie unten unter Bezugnahme auf 13 noch
erörtert
wird, weist jeder Austritts-Manager 76 seinen eigenen Planer
(Scheduler) auf, der eine Schnittstelle zu dem Transaktions-Pool
bzw. dem Transaktions-FIFO auf der einen Seite und dem Paket-Pool
bzw. dem Paket-FIFO auf der anderen Seite bildet. Der Transaktions-FIFO
umfasst alle PIDs, und der Paket-Pool bzw. der Paket-FIFO umfasst nur
CPIDs. Der Paket-FIFO bildet eine Schnittstelle zu dem Transaktions-FIFO
und leitet die Übertragung
auf der Grundlage von Anfragen von dem Übertragungs-MAC ein. Sobald
die Übertragung
gestartet wurde, werden Daten auf der Grundlage von Anforderungen
des Transaktions-FIFO zellenweise aus dem CBP 50 ausgelesen.
-
Wie
zuvor bereits angemerkt, gibt es einen Austritts-Manager für jeden
Port jedes EPIC 20 und GPIC 30, und dieser ist
mit dem Austritts-Submodul 18 verbunden. 13 veranschaulicht ein Blockdiagramm eines Austritts-Managers 76,
der mit dem R-Kanal 77 in Verbindung steht. Jedem Datenpaket 112,
das von einem Eintritts-Submodul 14 eines EPIC 20 des
SOC 10 empfangen wird, weist der CBM 71 eine Zeigeridentifikation (PID)
zu; wenn das Paket 112 zu dem CBP 50 zugelassen
wird, weist der CBM 71 eine CPID zu, und wenn das Paket 112 zu
dem GBP 60 zugelassen wird, weist der CBM 71 eine
GPID-Nummer zu. Zu diesem Zeitpunkt benachrichtigt der CBM 71 den
entsprechenden Austritts-Manager 76, der das Paket 112 handhaben wird,
und übergibt
die PID über
den R-Kanal 77 an den entsprechenden Austritts-Manager 76.
In dem Fall eines Pakets von Typ "Unicast" würde
nur ein Austritts-Manager 76 die PID empfangen. Wenn es
sich jedoch bei dem ankommenden Paket um ein Mehrfachsende- oder
Rundsende-Paket handelt, empfängt
jeder Austritts-Manager 76, an den das Paket geleitet wird,
die PID. Aus diesem Grund braucht ein Mehrfachsende- oder Rundsendepaket
nur einmal in dem geeigneten Speicher gespeichert zu werden, unabhängig davon,
ob es sich um den CBP 50 oder den GBP 60 handelt.
-
Jeder
Austritts-Manager 76 umfasst eine R-Kanal-Schnittstelleneinheit
(RCIF) 131, einen Transaktions-FIFO 132, einen
COS-Manager 133, einen Planer 134, eine Einheit
zum beschleunigten Löschen
von Paketen (APF) 135, eine Speicherleseeinheit (MRU) 136,
eine Einheit zum Prüfen
von Zeitstempeln (TCU) 137 und eine Einheit zum Entfernen
von Tags 138. Die MRU 136 kommuniziert mit dem
CMC 79, der mit dem CBP 50 verbunden ist. Der
Planer 134 ist mit einem Paket-FIFO 139 verbunden. Die RCIF 131 behandelt
alle Nachrichten zwischen dem CBM 71 und dem Austritts-Manager 76.
Wenn ein Paket 112 empfangen und in dem SOC 10 gespeichert
wird, übergibt
der CBM 71 die Paketinformationen an die RCIF 131 des
zugehörigen
Austritts-Managers 76. Die Paketinformationen umfassen
eine Angabe, ob das Paket in dem CBP 50 oder dem GBP 70 gespeichert
ist oder nicht, die Größe des Pakets
und die PID. Die RCIF 131 übergibt dann die empfangenen
Paketinformationen an den Transaktions-FIFO 132. Bei dem
Transaktions-FIFO 132 handelt es sich um einen FIFO mit
fester Tiefe mit acht Service-Klassen-Prioritätswarteschlangen (COS-Prioritätswarteschlangen),
und er ist als Matrix mit einer Anzahl von Zeilen und Spalten angeordnet.
Jede Spalte des Transaktions-FIFO 132 stellt eine Service-Klasse
(COS) dar, und die Gesamtanzahl der Zeilen ist gleich der Anzahl
der für
jede beliebige Service-Klasse erlaubten Transaktionen. Der COS-Manager 133 arbeitet
mit dem Planer 134 zusammen, um auf der Grundlage von Ethernet-Standards
eine Policy-basierte Servicequalität (QOS) bereitzustellen. Sowie
Datenpakete in einer oder mehreren der COS-Prioritätswarteschlangen
des Transaktions-FIFO 132 ankommen, leitet der Planer 134 einen
ausgewählten
Paketzeiger von einer der Prioritätswarteschlangen zu dem Paket-FIFO 139.
Die Auswahl des Paketzeigers basiert auf einem Warteschlangen-Zeitplanungsalgorithmus,
der von einem Benutzer innerhalb des COS-Managers 133 über die
CPU 52 programmiert wird. Ein Beispiel für eine COS-Problematik
ist Video, das eine größere Bandbreite
erfordert als Textdokumente. Ein Datenpaket 112 mit Videoinformationen
kann daher vor einem mit einem Textdokument verbundenen Paket dem
Paket-FIFO 139 übergeben
werden. Der COS-Manager 133 würde daher den Planer 134 anweisen,
den mit dem Paket mit Videodaten verbundenen Paketzeiger auszuwählen.
-
Der
COS-Manager 133 kann auch unter Verwendung eines streng
auf Prioritäten
basierenden Zeitplanungsverfahrens oder eines auf gewichteten Prioritäten basierenden
Zeitplanungsverfahrens programmiert werden, um den nächsten Paketzeiger
in dem Transaktions-FIFO 132 auszuwählen. Bei Verwendung eines streng
auf Prioritäten
basierenden Zeitplanungsverfahrens wird jede der acht COS-Prioritätswarteschlangen mit
einer Priorität
bezüglich
jeder anderen COS-Warteschlange versehen. Alle Pakete, die sich
in der COS-Warteschlange mit der höchsten Priorität befinden,
werden für
die Übertragung
aus dem Transaktions-FIFO 132 extrahiert. Wenn andererseits
ein auf gewichteten Prioritäten
basierendes Zeitplanungsschema verwendet wird, wird jeder COS-Prioritätswarteschlange
eine programmierbare Bandbreite bereitgestellt. Nach dem Zuweisen
der Warteschlangenpriorität
zu jeder COS-Warteschlange wird jeder COS-Prioritätswarteschlange
eine minimale und eine maximale Bandbreite zugewiesen. Die Werte
für die
minimale und maximale Bandbreite können von dem Benutzer programmiert
werden. Sobald die Warteschlangen mit höherer Priorität ihren
maximalen Bandbreitenwert erreichen, weist der COS-Manager 133 jegliche
verbleibende Bandbreite auf der Grundlage eines beliebigen Auftretens
einer Überschreitung
der maximalen Bandbreite bei jeder beliebigen Prioritätswarteschlange
zu. Diese Konfiguration garantiert, dass eine maximale Bandbreite
von den Prioritätswarteschlangen
mit hoher Priorität
erreicht wird, während
den Prioritätswarteschlangen
mit niedrigerer Priorität
eine geringere Bandbreite bereitgestellt wird.
-
Aufgrund
der Programmierbarkeit des COS-Managers kann der Zeitplanungsalgorithmus
auf der Grundlage der speziellen Bedürfnisse eines Benutzers geändert werden.
Beispielsweise kann der COS-Manager 133 einen maximalen
Paketverzögerungswert
berücksichtigen,
der bei einer Transaktions-FIFO-Warteschlange erreicht werden muss.
Anders ausgedrückt
kann es der COS-Manager 133 erfordern, dass ein Paket 112 bei
der Übertragung
nicht mit dem maximalen Paketverzögerungswert verzögert wird;
dies stellt sicher, dass der Datenfluss von Hochgeschwindigkeitsdaten
wie Audio, Video und anderen Echtzeitdaten kontinuierlich ist und
gleichmäßig übertragen
wird.
-
Wenn
sich das angeforderte Paket in dem CBP 50 befindet, wird
die CPID von dem Transaktions-FIFO 132 an den Paket-FIFO 139 übergeben.
Wenn sich das angeforderte Paket in dem GBP 60 befindet,
leitet der Planer das Holen (Fetch) des Pakets von dem GBP 60 zu
dem CBP 50 ein; der Paket-FIFO 139 verwendet nur
gültige
CPID-Informationen und keine GPID-Informationen. Der Paket-FIFO 139 kommuniziert
nur mit dem CBP und nicht mit dem GBP. Wenn der Austritt versucht,
ein Paket abzurufen, kann das Paket nur von dem CBP abgerufen werden;
falls sich das Paket in dem GBP 60 befindet, holt daher
der Planer das Paket, so dass der Austritt das Paket ordnungsgemäß von dem
CBP abrufen kann.
-
Die
APF 135 überwacht
den Status des Paket-FIFO 139. Wenn der Paket-FIFO 139 eine
angegebene Zeit lang voll ist, wird der Inhalt des Paket-FIFO von
der APF 135 gelöscht.
Die Wiedergewinnungseinheit des CBM wird von der APF 135 mit
den in dem Paket-FIFO 139 gespeicherten Paketzeigern versehen,
und die Wiedergewinnungseinheit wird von der APF 135 angewiesen,
die Paketzeiger als Teil des Pools freier Adressen freizugeben.
Die APF 135 deaktiviert außerdem den mit dem Austritts-Manager 76 verbundenen
Eintritts-Port 21.
-
Während der
Paket-FIFO 139 die Paketzeiger von dem Planer 134 empfängt, extrahiert
die MRU 136 die Paketzeiger für den Versand an den geeigneten
Austritts-Port.
Nachdem die MRU 136 den Paketzeiger erhalten hat, übergibt
sie die Paketzeigerinformationen an den CMC 79, der jede
Datenzelle aus dem CBP 50 abruft. Die MRU 136 übergibt
die erste Datenzelle 112a, die Header-Informationen der
Zellen enthält,
an die TCU 137 und an die Einheit zum Entfernen von Tags 138.
Die TCU 137 bestimmt, ob das Paket gealtert ist, indem
es die innerhalb der Datenzelle 112a gespeicherten Zeitstempel
und die aktuelle Zeit miteinander vergleicht. Wenn die Speicherzeit
größer ist
als eine programmierbare Verwerfzeit, wird das Paket 112 als
gealtertes Paket verworfen. Wenn außerdem eine anstehende Anforderung
zum Entfernen der Tags aus der Datenzelle 112a vorhanden
ist, entfernt die Einheit zum Entfernen von Tags 138 den
Tag-Header, bevor das Paket versandt wird. Tag-Header sind in dem
IEEE-Standard 802.1q definiert.
-
Der
Austritts-Manager 76 bildet über die MRU 136 eine
Schnittstelle mit dem Übertragungs-FIFO 140, bei
dem es sich um einen Übertragungs-FIFO
für einen
geeigneten Medienzugriffs-Controller (MAC) handelt; Medienzugriffs-Controller
sind nach dem Stand der Ethernet-Technik bekannt. Die MRU 136 holt
das Datenpaket 112 vorab aus dem geeigneten Speicher und
sendet das Paket an den Übertragungs-FIFO 140,
wobei sie den Anfang und das Ende des Pakets mit entsprechenden
Flags versieht. Bei Bedarf füllt
der Übertragungs-FIFO 140 das
Paket mit Füllzeichen
auf, so dass das Paket eine Länge
von 64 Byte aufweist.
-
Wie
in 9 gezeigt, wird das Paket 112 zur Handhabung
innerhalb des SOC 10 in eine Vielzahl von 64 Byte langen
Datenzellen geteilt oder segmentiert. Die Segmentierung der Pakete
in Zellen vereinfacht deren Handhabung und verbessert die Granularität sowie
erleichtert es, den SOC 10 an zellenbasierte Protokolle wie
beispielsweise ATM anzupassen. Bevor jedoch die Zellen aus dem SOC 10 heraus übertragen
werden, müssen
sie wieder im Paketformat zusammengesetzt werden, damit eine ordnungsgemäße Kommunikation gemäß dem geeigneten
Kommunikationsprotokoll möglich
ist. Eine Maschine zum Wiederzusammensetzen der Zellen (nicht gezeigt)
ist innerhalb jedes Eintritts des SOC 10 integriert, um
die geteilten Zellen 112a und 112b für die weitere
Kommunikation zu einem ordnungsgemäß verarbeiteten und von Nachrichten
begleiteten Paket zusammenzusetzen.
-
16 ein Blockdiagramm, das einige der Elemente
der CPU-Schnittstelle bzw. des CMIC 40 zeigt. In einem
bevorzugten Ausführungsbeispiel
stellt der CMIC 40 eine PCI-Schnittstelle mit 32 Bit und
66 MHz bereit, sowie eine I2C-Schnittstelle zwischen dem SOC 10 und
der externen CPU 52. Die PCI-Kommunikation wird durch den
PCI-Core 41 gesteuert, und die I2C-Kommunikation wird durch
einen I2C-Core 42 über
den CMIC-Bus 167 durchgeführt. Wie in der Figur gezeigt,
kommunizieren viele Elemente des CMIC 40 über den CMIC-Bus 167 miteinander.
Die PCI-Schnittstelle wird typischerweise zur Konfiguration und
Programmierung von Elementen des SOC 10, wie beispielsweise
Regeltabellen, Filtermasken, Pakethandhabung, usw. verwendet, sowie
zum Bewegen von Daten zu der und von der CPU oder einem anderen
PCI-Uplink. Die PCI-Schnittstelle ist für High-End-Systeme geeignet,
in denen es sich bei der CPU 52 um eine leistungsfähige CPU
handelt, bei der nach Bedarf ein ausreichender Protokoll-Stack ausgeführt wird,
um Vermittlungsfunktionen auf Schicht 2 und Schicht 3 zu unterstützen. Die
I2C-Schnittstelle ist für
Low-End-Systeme geeignet, bei denen die CPU 52 hauptsächlich zur
Initialisierung verwendet wird. In Low-End-Systemen würde die
Konfiguration des SOC 10 kaum geändert, nachdem der Switch betriebsbereit
ist und läuft.
-
Die
CPU 52 wird von dem SOC 10 wie jeder andere Port
behandelt. Daher muss der CMIC 40 erforderliche Port-Funktionen
genauso wie die übrigen
oben definierten Port-Funktionen bereitstellen. Der CMIC 40 unterstützt alle
S-Kanalbefehle und -nachrichten, wodurch es der CPU 52 ermöglicht wird,
auf den gesamten Paketspeicher- und Registersatz zuzugreifen; hierdurch
wird die CPU 52 auch in die Lage versetzt, Einfüge- und
Löscheinträge in ARL-/S3-Tabellen
abzusetzen, CFAP/SFAP-Initialisierungsbefehle,
Befehle zum Lesen/Schreiben aus dem bzw. in den Speicher sowie Bestätigungen,
Befehle zum Lesen/Schreiben aus dem bzw. in das Register sowie Bestätigungen
abzusetzen, usw. Intern in dem SOC 10 bildet der CMIC 40 eine Schnittstelle
zu dem C-Kanal 81, zu dem P-Kanal 82 und zu dem
S-Kanal 83 und ist in der Lage, sowohl als S-Kanal-Master
wie auch als S-Kanal-Slave zu fungieren. Hierzu muss die CPU 52 32
Bit lange D-Wörter
lesen oder schreiben. Für
Einfüge-
und Löschvorgänge in ARL-Tabellen
unterstützt
der CMIC 40 vier Einfüge-/Löschnachrichten,
die abgefragt werden oder über
Interrupts gesteuert werden können.
ARL-Nachrichten können
ebenfalls über
einen DMA-Zugriff, wobei ein ARL-DMA-Controller 161 verwendet
wird, direkt in dem CPU-Speicher platziert werden. Der DMA-Controller 161 kann
die CPU 52 nach der Übertragung
jeder be liebigen ARL-Nachricht unterbrechen, oder wenn alle angeforderten
ARL-Pakete in dem CPU-Speicher platziert worden sind.
-
Die
Kommunikation zwischen dem CMIC 40 und dem C-Kanal 81/P-Kanal 82 wird
durch die Verwendung von CP-Kanal-Puffern 162 zum Puffern
von C- und P-Kanalnachrichten und der CP-Bus-Schnittstelle 163 durchgeführt. Die
S-Kanal-ARL-Nachrichtenpuffer 164 und
die S-Kanal-Bus-Schnittstelle 165 ermöglichen die Kommunikation mit
dem S-Kanal 83. Wie zuvor bereits angemerkt, werden PIO-Register (programmierter Ein-/Ausgang),
wie durch die S-Kanal-PIO-Register 166 und die PIO-Register 168 veranschaulicht,
verwendet, um auf den S-Kanal zuzugreifen sowie um weitere Steuer-,
Status-, Adress- und Datenregister zu programmieren. Die PIO-Register 168 kommunizieren über die
I2C-Slave-Schnittstelle 42a und die I2C-Master-Schnittstelle 42b mit
dem CMIC-Bus 167. Der DMA-Controller 161 ermöglicht das
Verketten in dem Speicher, wodurch es der CPU 52 erlaubt
wird, mehrere Datenpakete ohne ständiges Eingreifen der CPU zu übertragen. Jeder
DMA-Kanal kann daher
so programmiert werden, dass er einen Lese- oder Schreib-DMA-Vorgang durchführt. Spezielle
Deskriptorformate können
nach Bedarf ausgewählt
werden, um eine gewünschte DMA-Funktion
gemäß den Anwendungsregeln
auszuführen.
Zum Empfangen von Zellen von der PMMU 70 für die Übertragung
in den Speicher fungiert der CMIC 40 bei Bedarf als Austritts-Port
und folgt dem Austritts-Protokoll,
wie zuvor bereits erörtert.
Zum Übertragen
von Zellen zu der PMMU 70 fungiert der CMIC 40 als
Eintritts-Port und folgt dem Eintritts-Protokoll, wie zuvor bereits
erörtert.
Der CMIC 40 führt
eine Prüfung auf
aktive Ports, COS-Warteschlangenverfügbarkeit und weitere Eintrittsfunktionen
durch und unterstützt
den weiter oben bereits erörterten
Mechanismus für
das HOL-Blocking. Der CMIC 40 unterstützt einzelne und Burst-PIO-Vorgänge; Burst
sollte allerdings auf die S-Kanalpuffer und die Puffer für ARL-Einfüge-/-Löschnachrichten
beschränkt
sein. Unter nochmaliger Bezugnahme auf die I2C-Slave-Schnittstelle 42a ist
der CMIC 40 so konfiguriert, dass er eine I2C-Slave-Adresse
aufweist, so dass ein externer I2C-Master auf die Register des CMIC 40 zugreifen
kann. Umgekehrt kann der CMIC 40 als I2C-Master fungieren
und daher auf andere I2C-Slaves zugreifen. Es sei angemerkt, dass
der CMIC 40 über
die MIIM-Schnittstelle 169 auch MIIM unterstützen kann.
Die MIIM-Unterstützung
ist durch den IEEE-Standard 802.3u definiert und wird in diesem
Dokument nicht weiter erörtert.
Analog liegen weitere funktionelle Aspekte des CMIC 40 außerhalb
des Schutzumfangs dieser Erfindung.
-
Ein
einzigartiger und vorteilhafter Aspekt des SOC 10 ist die
Fähigkeit,
gleichzeitige Suchvorgänge
im Hinblick auf Schicht 2 (ARL), Schicht 3 und Filterung durchzuführen. Wenn
ein ankommendes Paket an einem Eintritts-Submodul 14 entweder
eines EPIC 20 oder eines GPIC 30 ankommt, wie
zuvor bereits erörtert,
ist das Modul in der Lage, gleichzeitig eine Adresssuche durchzuführen, um
zu bestimmen, ob die Zieladresse sich einem selben VLAN befindet
wie eine Quelladresse; wenn die VLAN-IDs identisch sind, sollte
eine Schicht-2- bzw. ARL-Suche ausreichend sein, um das Paket ordnungsgemäß in einer
Store-and-Forward-Konfiguration zu vermitteln. Wenn die VLAN-IDs
voneinander abweichen, muss auf der Grundlage einer geeigneten Identifizierung
der Zieladresse eine Schicht-3-Vermittlung erfolgen, sowie das Vermitteln
zu einem geeigneten Port, um das VLAN der Zieladresse abzurufen.
Das Vermitteln auf Schicht 3 muss daher durchgeführt werden, um die VLAN-Grenzen überschreiten
zu können.
Sobald der SOC 10 bestimmt, dass eine Schicht-3-Vermittlung erforderlich
ist, identifiziert der SOC 10 auf der Grundlage der S3-Suche
die MAC-Adresse eines Ziel-Routers. Die S3-Suche wird auf der Grundlage
einer Angabe in dem Anfangsbereich des Pakets bestimmt, nämlich ob das "L3 Bit" (Schicht-3-Bit)
gesetzt ist oder nicht. Wenn das "L3 Bit" gesetzt ist, wird eine S3-Suche notwendig sein,
um die geeigneten Weiterleitungsanweisungen anzugeben. Wenn die
Suche scheitert, wird eine Anforderung an die CPU 52 gesendet,
und die CPU 52 unternimmt geeignete Schritte, um die geeignete
Weiterleitung für
das Paket anzugeben. Sobald die CPU die geeigneten Weiterleitungsinformationen
erhalten hat, werden diese Informationen in der S3-Suchtabelle gespeichert,
und bei dem nächsten
Paket wird die Suche erfolgreich sein, und das Paket wird in der
Store-and-Forward-Konfiguration vermittelt.
-
Somit
umfasst der SOC 10 ein Verfahren zum Zuweisen von Speicherpositionen
eines Netzwerk-Switches. Der Netzwerk-Switch weist internen Speicher
(auf dem Chip) und externen (Chip-externen) Speicher auf. Die Speicherpositionen
werden zwischen dem internen Speicher und dem externen Speicher
anhand eines vordefinierten Algorithmus zugewiesen.
-
Der
vordefinierte Algorithmus weist Speicherpositionen zwischen dem
internen Speicher und dem externen Speicher auf der Grundlage der
Menge des internen Speichers zu, der für den Austritts-Port des Netzwerk-Switches
verfügbar
ist, von dem aus das Datenpaket mittels des Netzwerk-Switches übertragen
werden soll. Wenn der interne Speicher, der für den Austritts-Port verfügbar ist,
von dem aus das Datenpaket übertragen
werden soll, über
einem vorbestimmten Schwellenwert liegt, wird das Datenpaket in
dem internen Speicher gespeichert. Wenn der interne Speicher, der
für den
Austritts-Port verfügbar
ist, von dem aus das Datenpaket übertragen
werden soll, unter dem vorbestimmten Schwellenwert liegt, wird das
Datenpaket in dem externen Speicher gespeichert.
-
Auf
diese Weise definiert diese Architektur des verteilten, hierarchischen,
gemeinsam genutzten Speichers einen sich selbst ausgleichenden Mechanismus.
Das bedeutet, dass bei Austritts-Ports, die wenige Datenpakete in
ihren Austritts-Warteschlangen haben, die ankommenden Datenpakete,
die an diese Austritts-Ports vermittelt werden sollen, in den internen
Speicher geschickt werden, während
bei Austritts-Ports, die viele Datenpakete in ihren Austritts-Warteschlangen
haben, die ankommenden Datenpakete, die an diese Austritts-Ports
vermittelt werden sollen, in dem externen Speicher gespeichert werden.
-
Bevorzugt
werden jegliche Datenpakete, die in dem externen Speicher gespeichert
sind, anschließend zu
dem internen Speicher zurückgeleitet,
bevor sie einem Austritts-Port zur Übertragung von dem Netzwerk-Switch
aus bereitgestellt werden.
-
Somit
wird die Übertragungsgeschwindigkeit
der Leitung an jedem Austritts-Port
beibehalten, auch wenn die Architektur langsamere DRAMs für wenigstens
einen Teil des Paketspeichers verwendet. Bevorzugt verwendet die
Architektur des verteilten, hierarchischen, gemeinsam genutzten
Speichers SRAMs als Paketspeicher-Cache bzw. internen Speicher und
Standard-DRAMs oder SDRAMs als externen Speicher, um ein gewünschtes
Kosten/Nutzen-Verhältnis
zu liefern.
-
Die
vorgenannte Konfiguration ist auf einem Halbleiter-Substrat, wie
beispielsweise Silizium, mit geeigneten Halbleiter-Fertigungstechniken
verwirklicht und basiert auf einem Schaltungs-Layout, das den Fachleuten
auf diesem Gebiet auf der Grundlage der oben erörterten Ausführungsbeispiele
offensichtlich wäre.
Ein Fachmann auf dem Gebiet der Halbleiterkonstruktion und der Halbleiterfertigung
wäre in
der Lage, die verschiedenen oben beschriebenen Module, Schnittstellen
und Tabellen, Puffer, usw. auf der Grundlage der oben erörterten
Beschreibung der Architektur auf einem einzelnen Halbleiter-Substrat
zu implementieren. Die offenbarten Elemente könnten auch in eigenständigen elektronischen
Komponenten implementiert sein, wodurch Nutzen aus den funktionellen
Aspekten der Erfindung gezogen werden könnte, ohne die Vorteile durch
die Verwendung eines einzelnen Halbleitersubstrats maximal zu nutzen.
-
Die
vorgenannte Erörterung
eines spezifischen Netzwerk-Switches wird zum besseren Verständnis der
Erörterung
der nun folgenden Stack-Konfigurationen bereitgestellt. Fachleute
mit normalen Kenntnissen auf diesem Gebiet werden jedoch wissen,
dass die in diesem Dokument erörterten
Ausführungsbeispiele
im Hinblick auf Stack-Konfigurationen nicht auf die besonderen Switch-Konfigurationen
beschränkt
sind, die weiter oben erörtert
wurden.
-
20 veranschaulicht eine Konfiguration, in der
eine Vielzahl von SOCs 10(1) ... 10(n) durch eine Interstack-Verbindung
I miteinander verbunden sind. Die SOCs 10(1)–10(n) umfassen
die in 2 veranschaulichten Elemente. 20 veranschaulicht schematisch den CBP 50,
die MMU 70, die EPICs 20 und die GPICs 30 jedes
SOC 10. Die Interstack-Verbindung I wird verwendet, um
eine Stack-Konfiguration zwischen den Switches bereitzustellen,
und sie kann beispielsweise wenigstens einen Gigabit-Uplink oder
andere Ports jedes Switches verwenden, um eine nachfolgend erörterte Simplex-
oder Duplex-Stack-Konfiguration bereitzustellen. 21 veranschaulicht eine Konfiguration, bei der
eine Vielzahl von SOCs 10(1)–10(4) in einer Kaskaden-Konfiguration
unter Verwendung von GPIC-Modulen 30 miteinander verbunden
sind, um einen Stack zu erzeugen. In einem Beispiel enthält jeder
SOC 10 24 Ethernet-Ports mit geringer Geschwindigkeit,
die eine maximale Übertragungsgeschwindigkeit
von 100 Megabit pro Sekunde aufweisen, und zwei Gigabit-Ports. Die Konfiguration
in 21 ergibt daher 96 Ethernet-Ports und 4 verwendbare
Gigabit-Ports, wobei vier weitere Gigabit-Ports verwendet werden,
um den Stack mittels eines so genannten Stack-Links zu verbinden.
Die in 21 gezeigte Interconnect-Verbindung
führt zu
einem so genannten Simplex-Ring, der eine unidirektionale Kommunikation
mit einer Übertragungsgeschwindigkeit
von ein-zwei Gigabit pro Sekunde ermöglicht. Alle Ports des Stacks
können
sich in demselben VLAN befinden, oder in dem Stack kann eine Vielzahl
von VLANs vorhanden sein. Auf demselben Switch können mehrere VLANs vorhanden
sein. Die VLAN-Konfigurationen werden von dem Benutzer je nach den
Anforderungen an das Netzwerk bestimmt. Dies gilt für alle Switch-Konfigurationen
mit dem SOC 10. Es sei jedoch angemerkt, dass diese besonderen
Konfigurationen nur beispielhalber verwendet werden und den Schutzumfang
der beanspruchten Erfindung nicht beschränken sollen.
-
22 veranschaulicht eine zweite Konfiguration von
vier gestapelten Switches SOC 10, nämlich SOC 10(1) ... 10(4).
Es könnte
jedoch jede beliebige Anzahl von Switches auf diese Weise gestapelt
werden. In der Konfiguration von 22 werden
bidirektionale Gigabit-Links verwendet, um eine Vollduplex-Konfiguration
zu erstellen. Durch die Verwendung von bidirektionalen Gigabit-Links
entfällt
daher die Notwendigkeit der Verfügbarkeit
eines Gigabit-Uplinks für
jeden SOC 10, es sei denn, in dem Switch werden zusätzliche GPIC-Module
bereitgestellt. Die einzigen verfügbaren Gigabit-Uplinks für den Stack
sind daher je ein Gigabit-Port an jedem der Endmodule. In diesem
Beispiel sind daher 96 Ethernet-Ports mit geringer Geschwindigkeit
und 2 Gigabit-Ethernet-Ports vorgesehen.
-
23 veranschaulicht eine dritte Konfiguration für das Stacking
von vier Switches SOC 10. In dieser Konfiguration sind
die Interconnect-Verbindungen ähnlich
der Konfiguration von 22, mit der Ausnahme, dass
die beiden Gigabit-Ports an den Endmodulen als passiver Link angeschlossen
sind, wodurch Redundanz bereitgestellt wird. Ein passiver Link in
dieser Konfiguration wird so bezeichnet, weil das zuvor bereits
erörterte Spanning-Tree-Protokoll
in der Lage ist, diesen Link in einen Blockiermodus zu versetzen,
um dadurch die Übertragung
von Paketen in einer Schleife zu verhindern. Ein Nachteil dieses
Blockierungsmodus ist es jedoch, dass keine Gigabit-Uplinks verfügbar sind,
es sei denn, in jedem SOC 10 ist ein zusätzliches
GPIC-Modul 30 installiert. Im Folgenden werden der Paketfluss,
das Erlernen von Adressen, die Bündelung
(Trunking) und weitere Aspekte dieser gestapelten Konfigurationen
erörtert.
-
In
dem Ausführungsbeispiel
von 21 als erstem Beispiel wird
eine Reihe von einmaligen Schritten durchgeführt, um den Paketfluss und
das Erlernen von Adressen überall
in dem Stack zu steuern. Ein Paket, das von einem Quell-Port auf
einem SOC 10 zu einem Ziel-Port auf einem anderen SOC 10 gesendet
wird, wird kaskadierend in einer Reihe von vollständigen Schritten
im Store-and-Forward-Verfahren verarbeitet, um das Ziel zu erreichen.
Das Kaskadieren wird durch eine Reihe von Interstack-Links bzw.
Hops 2001, 2002, 2003 und 2004 erreicht,
was ein Beispiel für
eine Implementierung einer Interstack-Verbindung I darstellt. Unter
Bezugnahme auf 25 kann der Paketfluss im Hinblick
darauf analysiert werden, dass ein Paket an einem Port in dem Stack 2000 ankommt
und für
einen anderen Port in dem Stack bestimmt ist. In diesem Beispiel soll
angenommen werden, dass die mit dem Port 1 des SOC 10(1) verbundene
Station A versucht, ein Paket an die Station B zu senden, die sich
auf dem Port 1 des Switches SOC 10(3) befindet. Das Paket
würde an dem
Eintritts-Submodul 14 des SOC 10(1) ankommen.
Der SOC 10(1) würde
als gestapeltes Modul konfiguriert, um ein Stack-spezifisches Interstack-Tag
bzw. IS-Tag in das
Paket einzufügen.
Bei dem IS-Tag handelt es sich in diesem Beispiel um ein vier Byte
langes Tag, das in das Paket eingefügt wird, um die Handhabung von
Paketen in dem Stack zu ermöglichen.
Es sei angemerkt, dass der SOC 10 in dieser Konfiguration
als Beispiel für
einen Switch oder einen Router verwendet wird, der dergestalt gestapelt
werden kann, dass die Erfindung genutzt wird. Die folgende Erörterung
wird auf das Handhaben von Paketen beschränkt.
-
24A veranschaulicht ein Beispiel eines Datenpakets 112-5,
in das nach dem VLAN-Tag ein vier Byte langes Interstack-Tag IS
eingefügt
wurde. Obwohl das Interstack-Tag IS in der vorliegenden Erfindung nach
dem VLAN-Tag eingefügt
wurde, sei angemerkt, dass das Interstack-Tag tatsächlich an
einer beliebigen Stelle in das Paket aufgenommen werden könnte. 24B veranschaulicht die speziellen Felder eines
Interstack-Tags, die nachfolgend erörtert werden:
Stack_Cnt
(Stack-Zähler) – Länge 5 Bit – Der Stack-Zähler gibt
die Anzahl der Hops an, die das Paket durchlaufen kann, bevor es
gelöscht
wird. Die Anzahl der Hops ist um eins geringer als die Anzahl der
Module in dem Stack. Wenn der Stack-Zähler
null ist, wird das Paket gelöscht.
Dadurch wird das Übertragen
des Pakets in einer Schleife verhindert, wenn es zu einem Scheitern
der Zielsuche (DLF) kommt. Dieses Feld wird nicht verwendet, wenn
es sich um einen Vollduplex-Stacking-Modus handelt.
SRC_T (Quell-Trunk) – Länge 1 Bit – Wenn dieses
Bit gesetzt ist, ist der Quell-Port Bestandteil einer Trunk-Gruppe.
SRC_TGID
(Quell-TGID) – Länge 3 Bit – Die Quell-TGID
gibt die Trunk-Gruppe
an, wenn das SRC_T-Bit gesetzt ist.
SRC_RTAG (Quell-RTAG) – Länge 3 Bit – Das Quell-RTAG
gibt die Trunk-Auswahl für
den Quell-Trunk-Port an. Hiermit wird die ARL-Tabelle in den übrigen Modulen
befüllt,
wenn das SRC_T-Bit gesetzt ist.
DST_T (Ziel-Trunk) – Länge 1 Bit – Wenn dieses
Bit gesetzt ist, ist der Ziel-Port Bestandteil einer Trunk-Gruppe.
DST_TGID
(Ziel-TGID) – Länge 3 Bit – Die Ziel-TGID
gibt die Trunk-Gruppe
an, wenn das DST T-Bit gesetzt ist.
DST_RTAG (Ziel-RTAG) – Länge 3 Bit – Dieses
Feld gibt das Kriterium zur Trunk-Auswahl an, wenn das DST_T-Bit
gesetzt ist.
PFM – Länge 2 Bit – PFM gibt
den Port-Filtermodus für
Port N (Eintritts-Port)
an. Wert 0 – es
wird der Port-Filtermodus A verwendet; Wert 1 – es wird der Port-Filtermodus
B verwendet (Standardeinstellung); und Wert 2 – es wird der Port-Filtermodus C verwendet.
M – Länge 1 Bit – Wenn dieses
Bit gesetzt ist, handelt es sich um ein gespiegeltes Paket.
MD – Länge 1 Bit – Wenn dieses
Bit gesetzt ist und das M-Bit gesetzt ist, wird das Paket nur an
den Spiegelziel-Port gesendet. Wenn dieses Bit nicht gesetzt ist
und das M-Bit gesetzt ist, wird das Paket sowohl an den Spiegelziel-Port
als auch an den Ziel-Port gesendet (zum Spiegeln des Eintritts).
Reserved
(Reserviert) – Länge 9 Bit – Für die zukünftige Verwendung
reserviert.
-
Wenn
in dem Fall des SOC 10 das ankommende Paket keine Tags
aufweist, versieht der Eintritt das Paket auch mit einem geeigneten
VLAN-Tag. Das IS-Tag wird direkt hinter dem VLAN-Tag in das Paket
eingefügt.
In jedem SOC 10 ist eine geeignete Schaltung vorgesehen,
um die notwendigen Tagging-Informationen zu erkennen und bereitzustellen.
-
Im
Hinblick auf die spezifischen Tag-Felder entspricht das Feld für den Stack-Zähler der
Anzahl von Modulen in dem Stack, und daher beschreibt es die Anzahl
von Hops, die das Paket durchlaufen kann, bevor es gelöscht wird.
Das SRC_T-Bit ist mit dem T-Bit identisch, das im Hinblick auf die
ARL-Tabellen 21 in dem SOC 10 zuvor bereits erörtert wurde.
Wenn das SRC_T-Bit gesetzt ist, ist der Quell-Port Bestandteil einer Trunk-Gruppe.
Wenn daher das SRC_T-Bit in dem IS-Tag gesetzt ist, wurde der Quell-Port
als Trunk-Port identifiziert. Zusammenfassend lässt sich sagen, dass daher,
sowie das Paket an dem SOC 10(1) ankommt, eine ARL-Tabellensuche
zu der Quellensuche durchgeführt
wird. Der Status des T-Bits wird geprüft. Wenn bestimmt wird, dass
es sich bei dem Quell-Port um einen Trunk-Port handelt, werden, wie zuvor bereits
erörtert,
bestimmte Trunk-Regeln angewendet, auf die im Folgenden noch näher eingegangen
wird.
-
Das
Feld SRC_TGID hat eine Länge
von drei Bit und gibt die Trunk-Gruppe an, wenn das SRC_T-Bit gesetzt
wurde. Wenn das SRC_T-Bit nicht gesetzt wurde, wird dieses Feld
natürlich
nicht verwendet. Analog gibt das Feld SRC_RTAG, wie ebenfalls zuvor
bereits erörtert,
die Trunk-Auswahl für
den Quell-Trunk-Port an. Die übrigen
Felder in dem IS-Tag wurden weiter oben bereits erörtert.
-
Der
Paketfluss innerhalb des Stacks 2000 ist durch eine Reihe
von Regeln definiert. Adressen werden, wie zuvor bereits erörtert, durch
das Scheitern einer Quellensuche (SLF) erlernt. Es soll angenommen
werden, dass der Stack gerade initialisiert wird und dass alle Tabellen
in jedem der Switches SOC 10(1) ... SOC 10(4) leer
sind. Ein von der Station A auf dem Port Nummer 1 des SOC 10(1) gesendetes
Paket, das für
die Station B auf dem Port Nummer 1 des SOC 10(3) bestimmt
ist, kommt an dem Port Nummer 1 des SOC 10(1) an. Bei der
Ankunft an dem Eintritts-Submodul 14 des
SOC 10(1) wird ein Interstack-Tag, das die vorgenannten
Felder aufweist, in das Paket eingefügt. Wenn es sich bei dem Paket
um ein Paket ohne Tags handelt, wird außerdem direkt vor dem IS-Tag
ein VLAN-Tag eingefügt.
Die ARL-Maschine 143 des SOC 10(1) liest das Paket
und identifiziert das geeignete VLAN entweder auf der Grundlage
der Tag-VLAN-Tabelle 231 oder der Port-basierten VLAN-Tabelle 232.
Dann wird eine ARL-Tabellensuche durchgeführt. Da die ARL-Tabellen leer
sind, kommt es zu einem Scheitern der Quellensuche (SLF). Als Ergebnis
wird die Quell-MAC-Adresse von Station A des ankommenden Pakets
erlernt und zu der ARL-Tabelle innerhalb der ARL-/S3-Tabelle 21a des
SOC 10(1) hinzugefügt.
Gleichzeitig erfolgt eine Zielsuche, um festzustellen, ob die MAC-Adresse
für das
Ziel B in der ARL-Tabelle enthalten ist. Es kommt zu einem Scheitern
der Zielsuche (DLF). Beim Auftreten eines DLF wird das Paket mittels
Fluten an alle Ports des zugehörigen
VLAN gesendet, zu dem der Quell-Port gehört. Als Ergebnis wird das Paket
auf dem Port 26 des SOC 10(1) an den SOC 10(2) gesendet
und dadurch an dem Port 26 des SOC 10(2) empfangen. Der
Interstack-Link, der sich in diesem Fall auf dem Port 26 befindet,
muss so konfiguriert sein, dass er ein Mitglied dieses VLAN ist,
wenn sich das VLAN über
zwei oder mehr Switches erstreckt. Bevor das Paket von dem SOC 10(1) herausgesendet
wird, wird das Feld für
den Stack-Zähler in
dem IS-Tag auf drei gesetzt, was der maximale Wert für einen
in 21 veranschaulichten, aus vier Modulen bestehenden Stack
ist. Für
jede Anzahl von Switches n wird der Stack-Zähler zunächst auf den Wert n – 1 gesetzt.
Beim Empfang an dem Port 26 des SOC 10(2) über die
Interconnect-Verbindung 2001 wird durch das Eintritts-Submodul 14 des
SOC 10(2) eine Quellensuche durchgeführt. Es kommt zu einem Scheitern
der Quellensuche, und die MAC-Adresse der Station A wird auf dem
SOC 10(2) erlernt. Der Stack-Zähler des IS-Tag wird um eins dekrementiert
und beträgt
nun 2. Bei der Zielsuche kommt es zu einem Scheitern der Zielsuche,
da das Ziel B auf dem SOC 10(2) nicht erlernt wurde. Das
Paket wird daher mittels Fluten an alle Ports des zugehörigen VLAN
gesendet. Das Paket wird dann an dem Port 26 des SOC 10(3) empfangen.
Bei der Quellensuche kommt es zu einem Scheitern der Quellensuche,
und die Adresse wird in der ARL-Tabelle des SOC 10(3) erlernt.
Das Feld für
den Stack-Zähler
wird um eins dekrementiert, es kommt zu einem Scheitern der Zielsuche, und
das Paket wird mittels Fluten an alle Ports des zugehörigen VLAN
gesendet. Wenn das Paket mittels Fluten an alle Ports gesendet wird,
wird das Paket an dem Ziel an dem Port Nummer 1 des SOC 10(3) empfangen. Das
Paket wird auf dem Interstack-Link auch an den Port 26 des SOC 10(4) gesendet.
Es kommt zu einem Scheitern der Quellensuche für die Quelladresse, wobei es
sich um die MAC-Adresse der Station A handelt, diese wird in der
ARL-Tabelle für
den SOC 10(4) erlernt. Der Stack-Zähler wird um eins dekrementiert,
wodurch er null wird, und eine Zielsuche erfolgt, die zu einem Scheitern
führt.
Das Paket wird dann an alle Ports des zugehörigen VLAN gesendet. Da jedoch
der Stack-Zähler
null ist, wird das Paket nicht auf dem Interstack-Link gesendet.
Die Tatsache, dass der Stack-Zähler
null erreicht hat, gibt an, dass das Paket einmal in einer Schleife
durch den Stack gesendet wurde, wobei es an jedem SOC 10 des
Stacks angehalten hat. Ein weiteres Senden in einer Schleife durch
den Stack wird dadurch verhindert.
-
Die
folgende Vorgehensweise wird im Hinblick auf das Erlernen von Adressen
und den Paketfluss eingehalten, wenn es sich bei der Station B um
die Quelle handelt, die ein Paket an die Station A sendet. Ein Paket von
der Station B kommt an dem Port 1 des SOC 10(3) an. Der
Eintritt 14 des SOC 10(3) fügt ein geeignetes IS-Tag in das Paket
ein. Da die Station B, das vorherige Ziel, noch nicht in der ARL-Tabelle des SOC 10(3) erlernt
wurde, kommt es zu einem Scheitern der Quellensuche, und die MAC-Adresse
der Station B wird auf dem SOC 10(3) erlernt. Der Stack-Zähler in
dem Interstack-Tag wird, wie zuvor bereits erwähnt, auf drei (n – 1) gesetzt.
Eine Zielsuche führt
zu einem Treffer, und das Paket wird an den Port 26 vermittelt.
In dem gestapelten Modul 10(3) wurde die MAC-Adresse der
Station A bereits erlernt, und somit ist ein Vermitteln lediglich zu
dem Port 26 des SOC 10(3) erforderlich. Das Paket wird
an dem Port 26 des SOC 10(4) empfangen. Es kommt zu einem
Scheitern der Quellensuche, und die MAC-Adresse der Station B wird
in der ARL-Tabelle des SOC 10(4) erlernt. Der Stack-Zähler wird
auf zwei dekrementiert, und die Zielsuche führt dazu, dass das Paket auf
dem Port 26 des SOC 10(4) herausgesendet wird. Das Paket
wird an dem Port 26 des SOC 10(1) empfangen, wo es zu einem
Scheitern der Quellensuche kommt, und die MAC-Adresse der Station
B wird in der ARL-Tabelle für
den SOC 10(1) erlernt. Der Stack-Zähler wird dekrementiert, und
die Zielsuche führt
dazu, dass das Paket an den Port 1 vermittelt wird. Die Station
A empfängt
das Paket. Da der Stack-Zähler
immer noch eins ist, wird das Paket auf dem Stack-Link an den Port
26 des SOC 10(2) gesendet. Es kommt zu einem Scheitern
der Quellensuche, und die MAC-Adresse der Station B wird auf dem
SOC 10(2) erlernt. Der Stack-Zähler wird auf null dekrementiert.
Eine Zielsuche führt
zu einem Treffer, aber das Paket wird nicht an den Port 26 vermittelt,
weil der Stack-Zähler
null ist. Die MAC-Adressen für
die Station A und die Station B wurden daher auf jedem Modul des
Stacks erlernt. Der Inhalt der ARL-Tabellen für die einzelnen SOC 10-Module ist
jedoch nicht identisch, da die Stacking-Konfiguration dazu führt, dass
der SOC 10(2), der SOC 10(3) und der SOC 10(4) die
Station A als auf dem Port 26 befindlich erkennen, weil dies der
Port auf dem betreffenden Modul ist, zu dem das Paket vermittelt
werden muss, um die Station A zu erreichen. In der ARL-Tabelle für den SOC 10(1) ist
die Station A jedoch richtigerweise als auf dem Port 1 befindlich
angegeben. Analog ist die Station B für jeden SOC mit der Ausnahme
des SOC 10(3) als auf dem Port 26 befindlich angegeben.
Da die Station A mit dem Port 1 des SOC 10(3) verbunden
ist, gibt die ARL-Tabelle für
den SOC 10(3) richtigerweise den bestimmten Port an, auf
dem sich die Station tatsächlich
befindet.
-
Nachdem
die Adressen in den ARL-Tabellen erlernt wurden, erfordert der Paketfluss
von der Station A zu der Station B weniger Schritte und verursacht
weniger Datenverkehr zwischen den Switches. Ein für die Station
B bestimmtes Paket kommt von der Station A an dem Port Nummer 1
des SOC 10(1) an. Durch den Eintritt wird ein IS-Tag eingefügt. Bei
einer Quellensuche wird ein Treffer erzielt, weil die Station A
bereits erlernt wurde, der Stack-Zähler wird auf drei gesetzt,
und die Zielsuche führt
dazu, dass das Paket zu dem Port 26 des SOC 10(1) vermittelt
wird. Der SOC 10(2) empfängt das Paket an dem Port 26,
eine Quellensuche ergibt einen Treffer, der Stack-Zähler wird
dekrementiert, und eine Zielsuche führt dazu, dass das Paket zu
dem Port 26 des SOC 10(3) vermittelt wird. Der SOC 10(3) empfängt das
Paket an dem Port 26, eine Quellensuche ergibt einen Treffer, der
Stack-Zähler
wird dekrementiert, eine Zielsuche ergibt einen Treffer, und das
Paket wird zu dem Port 1 des SOC 10(3) vermittelt, wo es
von der Station B empfangen wird. Da der Stack-Zähler für jeden
Hop nach dem ersten Hop dekrementiert wird, ist er noch nicht null.
Das Paket wird dann gemäß der Stack-Konfiguration
auf dem Port 26 des SOC 10(3) an den SOC 10(4) gesendet.
Die Quellensuche ergibt einen Treffer, der Stack-Zähler wird
dekrementiert, die Zielsuche ergibt einen Treffer, aber das Paket
wird dann von dem SOC 10(4) gelöscht, da der Stack-Zähler jetzt
null ist.
-
Es
sei angemerkt, dass sowohl in der obigen Erörterung als auch in den folgenden
Erörterungen
das Eintritts-Submodul 14, die ARL-/S3-Tabelle 21 und
andere Aspekte eines EPIC 20, wie zuvor erörtert, im
Allgemeinen im Hinblick auf einen bestimmten SOC 10 erörtert werden.
Es sei angemerkt, dass in Konfigurationen, bei denen SOCs 10 wie
in 20 bis 23 veranschaulicht
gestapelt sind, Ports mit einem bestimmten EPIC 20 verbunden
sind und dass ein bestimmtes Eintritts-Submodul, Austritts-Submodul,
usw. verwendet wird, das jeweils mit diesem EPIC verbunden ist.
In Konfigurationen, bei denen die gestapelten Switches eine andere
Switch-Architektur verwenden, werden das Einfügen des Interstack-Tags, das
Erlernen von Adressen, das Dekrementieren des Stack-Zählers, usw.
von auf geeignete Weise konfigurierten Schaltungen und Submodulen
gehandhabt, wie dies für
einen Fachmann auf diesem Gebiet auf der Grundlage der in diesem
Dokument enthaltenen Informationen offensichtlich wäre.
-
Es
sei angemerkt, dass Switches, die in dieser Konfiguration oder in
später
noch erörterten
Stacking-Konfigurationen gestapelt sind, außerdem eine Schaltung oder
andere Mittel enthalten, die das IS-Tag und die Port-VLAN-ID (falls
hinzugefügt)
aus dem Paket entfernen, bevor das Paket aus dem Stack heraus vermittelt
wird. Das IS-Tag und die Port-VLAN-ID sind nur für die Handhabung innerhalb
eines Stacks und/oder innerhalb des Switches von Bedeutung.
-
Das
Altern von ARL-Einträgen
in einer Konfiguration, die SOC 10-Switches verwendet,
funktioniert wie zuvor bereits erörtert. In jeder ARL-Tabelle
altern Einträge
unabhängig
von den übrigen
Tabellen. Wenn ein Eintrag aus einem SOC 10 gelöscht wird
(die Tabellen innerhalb jedes Switches werden wie oben erörtert synchronisiert,
allerdings nicht die Tabellen innerhalb eines Stacks), kommt es
nur dann zu einem Scheitern der Quellensuche in diesem Switch, wenn
ein Paket von diesem Switch empfangen wird und die Adresse bereits durch
Alterung verworfen wurde. Ein Scheitern der Zielsuche jedoch muss
nicht zwangsläufig
bei Paketen vorkom men, die auf dem Stack-Link-Port ankommen; wenn
das DST_T-Bit gesetzt wurde, kann kein Scheitern der Zielsuche erfolgen.
Notwendige Zielinformationen können
den Feldern DST_TGID und DST_RTAG entnommen werden. Wenn jedoch
das DST_T-Bit nicht gesetzt ist und die Adresse gelöscht oder
durch Alterung verworfen wurde, wird in dem lokalen Modul ein Scheitern
der Zielsuche erfolgen.
-
Obwohl
das Altern im Hinblick auf die vorgenannte Erörterung einfach sein sollte,
wird in dem folgenden Beispiel angenommen, dass die Einträge für die Station
A und die Station B aufgrund des Alterungsprozesses aus dem SOC 10(2) gelöscht wurden.
Wenn die Station A versucht, ein Paket an die Station B zu senden,
kommt es zu dem nachfolgend beschriebenen Ablauf. Der Port 1 des
SOC 10(1) empfängt
das Paket; nach der Zielsuche wird das Paket aufgrund eines Zieltreffers
an den Port 26 vermittelt; der Stack-Zähler wird auf drei gesetzt.
Das Paket wird an dem Port 26 des Switches SOC 10(2) empfangen,
und eine Quellensuche führt
zu einem Scheitern der Quellensuche, da die Adresse von Station
A bereits aus der ARL-Tabelle gelöscht worden ist. Die Quelladresse
wird daher erlernt und zu der ARL-Tabelle des SOC 10(2) hinzugefügt. Der Stack-Zähler wird
auf zwei dekrementiert. Die Zielsuche führt zu einem Scheitern der
Zielsuche, und das Paket wird mittels Fluten an alle Ports des zugehörigen VLAN
auf dem SOC 10(2) gesendet. Das Paket wird an dem Port
26 des SOC 10(3) empfangen, wo der Stack-Zähler auf
eins dekrementiert wird, die Zielsuche ergibt einen Treffer, und
das Paket wird zu dem Port 1 vermittelt, wo es von der Station B
empfangen wird. Das Paket wird dann auf dem Stack-Link oder dem
Interstack-Link an den Port 26 des SOC 10(4) weitergeleitet,
wo der Stack-Zähler auf
null dekrementiert wird. Obwohl bei der Zielsuche ein Treffer ermittelt
wurde, der angibt, dass das Paket auf dem Port 26 herausgesendet
werden sollte, wird das Paket gelöscht, weil der Stack-Zähler null ist.
-
26 veranschaulicht einen Paketfluss in einer Simplex-Verbindung,
wie in 21 gezeigt, wobei jedoch Trunk-Gruppen
beteiligt sind. In dem Beispiel von 26 ist
auf dem SOC 10(3) eine Trunk-Gruppe vorgesehen, hierbei
handelt es sich um ein Beispiel, bei dem alle Mitglieder der Trunk-Gruppe
auf demselben Modul angeordnet sind. In diesem Beispiel umfasst
die Station B auf dem SOC 10(3) eine Trunk-Gruppe mit vier
Ports. Bei diesem Beispiel wird davon ausgegangen, dass die TGID
zwei ist und dass das RTAG für
den Trunk-Port, der die Verbindung zur Station B herstellt, zwei
ist. Wenn die Station A versucht, ein Paket an die Station B zu
senden, empfängt
der Port 1 des SOC 10(1) das Paket von der Station A. Wenn
da von ausgegangen wird, dass alle Tabellen leer sind, kommt es zu
einem Scheitern der Quellensuche, und die Quelladresse oder MAC-Adresse
von Station A wird auf dem Switch 1 erlernt. Es kommt zu einem Scheitern
der Zielsuche, und das Paket wird mittels Fluten an alle Ports des
VLAN gesendet. Wie zuvor bereits erwähnt, wird selbstverständlich der
geeignete Interstack- bzw. IS-Tag an dem Eintritt hinzugefügt, und
der Stack-Zähler
wird auf drei gesetzt. Das Paket wird an dem Port 26 des SOC 10(2) empfangen,
und es kommt zu einem Scheitern der Quellensuche, was dazu führt, dass
die Quelladresse des Pakets von dem Port 26 erlernt wird. Der Stack-Zähler wird auf zwei dekrementiert.
Es kommt zu einem Scheitern der Zielsuche, und das Paket wird an alle
Ports des VLAN auf dem SOC 10(2) gesendet. Das Paket wird
dann an dem Port 26 des Switches SOC 10(3) empfangen. Es
kommt zu einem Scheitern der Quellensuche, und die Adresse wird
in der ARL-Tabelle für
den Switch SOC 10(3) erlernt. Der Stack-Zähler wird
auf eins dekrementiert. Bei der Zielsuche kommt es zu einem Scheitern
der Zielsuche. Bei einem Scheitern der Zielsuche auf einem Switch
mit Trunk-Ports wird das Paket jedoch nicht mittels Fluten an alle
Trunk-Ports gesendet, sondern, wie in der Tabelle gemäß 802.1q und
in der PVLAN-Tabelle angegeben, nur an einen bezeichneten Trunk-Port
gesendet, zusätzlich
zu anderen Ports, die Mitglieder des zugehörigen VLAN sind. Die Station
B empfängt
dann das Paket. Da der Stack-Zähler noch
nicht null ist, wird das Paket an den SOC 10(4) gesendet.
Es kommt zu einem Scheitern der Quellensuche, die Adresse wird erlernt,
der Stack-Zähler
wird auf null dekrementiert, und es erfolgt eine Zielsuche, die zu
einem Scheitern führt.
Das Paket wird dann mittels Fluten an alle Ports des zugehörigen VLAN
gesendet, mit der Ausnahme des Stack-Link-Ports, wodurch wiederum
das Übertragen
in einer Schleife durch den Stack verhindert wird. Es sei angemerkt,
dass das Paket zu der Zieladresse weitergeleitet wird, wenn die
Zielsuche einen Treffer ergibt, sobald der Stack-Zähler in
einer beliebigen Situation des Weiterleitens eines Pakets auf null
dekrementiert wurde. Wenn es zu einem Scheitern der Zielsuche kommt,
wird das Paket an alle Ports auf dem zugehörigen VLAN mit der Ausnahme
des Stack-Link-Ports und mit der Ausnahme von beliebigen Trunk-Ports
gemäß der Tabelle
nach 802.1q weitergeleitet. Wenn die Zielsuche ergibt, dass der
Ziel-Port als der Stack-Link-Port identifiziert wird, wird das Paket
gelöscht,
da eine vollständige
Schleife durch den Stack bereits durchlaufen worden wäre und das
Paket bereits an den Ziel-Port gesendet worden wäre.
-
In
der Situation, in der die Station B auf dem Trunk-Port ein Paket
an die Station A sendet, wird in diesem Beispiel davon ausgegangen,
dass das Paket von der Station B an dem Port 1 des SOC 10(3) ankommt. Das
Eintritts-Submodul 14 des SOC 10(3) hängt das
geeignete IS-Tag an. Bei der Adressensuche kommt es zu einem Scheitern
der Quellensuche, und die Quelladresse wird erlernt. Relevante Informationen
bezüglich der
Quelladresse für
die Trunk-Konfiguration sind die Port-Nummer, die MAC-Adresse, die VLAN-ID,
der Status des T-Bits, die TGID und das RTAG. Da das von der Station
B ankommende Paket an einem Trunk-Port ankommt, wird das T-Bit auf
1 gesetzt, und die Informationen bezüglich TGID und RTAG werden
auf geeignete Weise der PVLAN-Tabelle entnommen. Der Stack-Zähler wird
auf drei gesetzt, und die Eintrittslogik des SOC 10(3) führt eine
Zieladressensuche durch. Dies führt
zu einem Treffer in der ARL-Tabelle, da die Adresse von A bereits
erlernt wurde. Das Paket wird an den Port 26 des SOC 10(3) vermittelt.
Die Regeln für
die Bündelung (Trunking)
sind dergestalt, dass das Paket nicht an dieselben Mitglieder der
Trunk-Gruppe gesendet wird, von der das Paket stammte. Das IS-Tag
ist daher so ausgebildet, dass das SRC_T-Bit gesetzt ist, der Wert
für die SRC_TGID
gleich 2 ist und der Wert für
SRC_RTAG gleich 2 ist. Das Paket wird an dem Port 26 des SOC 10(4) empfangen;
es wird eine Quellensuche durchgeführt, die zu einem Scheitern
der Quellensuche führt.
Die Quelladresse des Pakets wird erlernt, und da das SRC_T-Bit gesetzt
ist, werden die Informationen bezüglich TGID und RTAG dem Interstack-Tag
entnommen. Der Stack-Zähler
wird um eins dekrementiert, und es wird eine Zielsuche durchgeführt. Dies
führt zu
einem Treffer in der ARL-Tabelle, da die Adresse von A bereits erlernt
wurde. Das Paket wird an den Port 26 des SOC 10(4) vermittelt.
Das Paket wird dann an dem Port 26 des Switches SOC 10(1) empfangen.
Eine Quellensuche führt
zu einem Scheitern der Quellensuche, und die Quelladresse des Pakets
wird erlernt. Die Informationen bezüglich TGID und RTAG werden
ebenfalls dem Interstack-Tag entnommen. Die Zielsuche führt zu einem
Treffer, und das Paket wird an den Port 1 vermittelt. Die Station
A empfängt
das Paket. Das Paket wird ebenfalls auf dem Interstack-Link zu dem
SOC 10(2) gesendet, da der Stack-Zähler noch nicht null ist. Die
Quelladresse wird auf dem SOC 10(2) wegen des Scheiterns
der Quellensuche erlernt, und obwohl die Zielsuche einen Treffer
ergibt, wird das Paket nicht weitergeleitet, weil der Stack-Zähler in
dem SOC 10(2) auf null dekrementiert wird. 27A bis 27D veranschaulichen
Beispiele für
den Inhalt der ARL-Tabelle nach diesem Lernvorgang. 27A veranschaulicht die Informationen der ARL-Tabelle
für den
SOC 10(1), 27B veranschaulicht die Informationen
der ARL-Tabelle für
den SOC 10(2), 27C veranschaulicht
die Informationen der ARL-Tabelle für den SOC 10(3), und 27D veranschaulicht die Informationen der ARL-Tabelle
für den
SOC 10(4). Wie zuvor be reits erörtert, stellt die ARL-Tabellensynchronisation
innerhalb jedes SOC 10 sicher, dass alle ARL-Tabellen innerhalb
eines bestimmten SOC 10 dieselben Informationen enthalten.
-
Nachdem
die Adressen erlernt wurden, werden Pakete gehandhabt, ohne dass
ein Scheitern der Quellensuche (SLF) und Scheitern der Zielsuche
(DLF) auftritt, es sei denn, dass Alterung oder andere Phänomene zu
einem Löschen
von Adressen führen.
Die Konfiguration der Trunk-Gruppe führt dazu, dass das DST_T-Bit
in dem IS-Tag für
Pakete gesetzt wird, die für
einen Trunk-Port bestimmt sind. Die Daten für die Ziel-TGID und das Ziel-RTAG
werden der ARL-Tabelle entnommen. Die Einstellung des Ziel-T-Bits
(DST_T) führt
dazu, dass die Informationen bezüglich
TGID und RTAG entnommen werden; wenn das DST_T-Bit nicht gesetzt
ist, sind die Felder TGID und RTAG nicht wichtig und werden als
zu ignorierende Felder behandelt.
-
28 veranschaulicht eine Konfiguration, bei der
Trunk-Mitglieder über
mehrere Module verteilt sind. 28 veranschaulicht
eine Konfiguration, bei der die Station A sich in einer Trunk-Gruppe
mit der TGID 1 und dem RTAG 1 befindet. Die Station A auf einem
Trunk-Port auf dem Switch SOC 10(1) sendet ein Paket an
die Station B auf einem Trunk-Port in dem Switch SOC 10(3).
Ein Paket von der Station A wird beispielsweise an dem Trunk-Port
1 des SOC 10 empfangen. Das IS-Tag wird in das Paket eingefügt, es kommt
zu einem Scheitern der Quellensuche, und die Adresse der Station
A wird auf dem SOC 10(1) erlernt. In der ARL-Tabelle für den SOC 10(1) werden
die MAC-Adresse und die VLAN-ID für die Station A erlernt, und
das T-Bit wird auf eins gesetzt, da sich der Quell-Port in einer
Trunk-Gruppe befindet.
Der Stack-Zähler
wird auf drei gesetzt, es wird eine Zielsuche durchgeführt, und
es kommt zu einem Scheitern der Zielsuche. Das Paket wird dann mittels Fluten
an alle Ports des zugehörigen
VLAN gesendet. Um jedoch das Senden in einer Schleife zu verhindern, kann
das Paket nicht auf den Trunk-Ports herausgesendet werden. Zu diesem
Zweck ist die TGID sehr wichtig. Die Quell-TGID gibt die Ports an,
die im Hinblick auf das Senden des Pakets an alle Ports im Falle
eines Scheiterns der Zielsuche, des Mehrfachsendens, des Sendens
vom Typ "Unicast", usw. deaktiviert
werden, so dass das Port-Bitmuster ordnungsgemäß konfiguriert wird. Die Ziel-TGID
liefert die Trunk-Gruppen-Kennung, und das Ziel-RTAG liefert den
Index in der Tabelle, der auf den geeigneten Port zeigt, auf dem
das Paket herausgesendet wird. Somit steuern das T-Bit und die Felder
TGID und RTAG die ge eignete Kommunikation auf dem Trunk-Port, um
das Senden in Schleifen zu verhindern. Der verbleibende Adresslernvorgang
in dieser Konfiguration ist ähnlich
dem zuvor beschriebenen; allerdings wird die MAC-Adresse A auf dem
Trunk-Port erlernt. Der oben beschriebene Vorgang einer Schleife
durch den Stack erfolgt, wobei die Quelladressen erlernt werden,
der Stack-Zähler
dekrementiert wird und das Paket beim Scheitern der Zielsuche mittels
Fluten an geeignete Ports gesendet wird, bis der Stack-Zähler null
wird.
-
In
einem Fall, bei dem die Station A ein Paket an die Station B sendet,
nachdem die Adressen erlernt wurden, wird das Paket von der Station
A an dem Trunk-Port
empfangen, die Quellensuche ergibt einen Treffer, und das T-Bit
wird gesetzt. Das SRC_T-Bit wird gesetzt, und die TGID und das RTAG
für den Quell-Trunk-Port
werden aus der ARL-Tabelle in die Felder SRC_TGID und SRC_RTAG kopiert.
In dem eingefügten
IS-Tag wird der Stack-Zähler
auf drei gesetzt. Die Zielsuche ergibt einen Treffer, und das T-Bit
wird für
die Zieladresse gesetzt. Das DST T-Bit wird gesetzt, und die TGID
und das RTAG für
den Ziel-Trunk-Port werden aus der ARL-Tabelle in die Felder DST_TGID und DST_RTAG
kopiert. Die Port-Auswahl wird auf der Grundlage der Felder DST_TGID
und DST_RTAG durchgeführt.
In diesem Beispiel gibt die Port-Auswahl in dem SOC 10(1) an,
dass der Stack-Link-Port des SOC 10(2) der Port 26 ist.
Das Paket wird auf dem Port 26 an den SOC 10(2) gesendet.
Da das DST_T-Bit gesetzt ist, werden die Informationen der Felder
TGID und RTAG verwendet, um den Trunk-Port auszuwählen. In
diesem Beispiel wird das Paket an den Port 26 gesendet. Das Paket
wird dann an dem Port 26 des SOC 10(3) empfangen. In diesem
Fall werden das DST_T-Bit und die Informationen der Felder TGID
und RTAG verwendet, um den Trunk-Port auszuwählen, der in 26 der Port 1 ist. Bei jedem Hop wird selbstverständlich der
Stack-Zähler
dekrementiert. Zu diesem Zeitpunkt ist der Stack-Zähler aktuell
eins, so dass das Paket an den SOC 10(4) gesendet wird.
Das Paket wird von dem SOC 10(4) jedoch nicht weitergeleitet,
da das Dekrementieren des Stack-Zählers dazu führt, das
der Stack-Zähler
null ist.
-
Stack-Verwaltung
-
29 veranschaulicht eine Konfiguration des Stacks 2000,
wobei eine Vielzahl von CPUs 52(1) ... 52(4) zusammen
mit den Switches SOC 10(1), 10(2), 10(3) bzw. 10(4) funktionieren.
Die Konfiguration in diesem Beispiel ist so gestaltet, dass es sich
bei der CPU 52(1) um eine zentrale CPU zum Steuern eines
Protokoll-Stacks für
das gesamte System handelt. Diese Konfiguration ist so gestaltet,
dass für
das gesamte System nur eine IP-Adresse vorhanden ist. Die Konfiguration,
welcher SOC 10 direkt mit der zentralen CPU verbunden ist,
wird bestimmt, wenn der Stack konfiguriert wird. Die Konfiguration
von 29 wird wichtig, wenn eindeutige
Protokolle, wie SNMP (Simple Network Management Protocol) gehandhabt
werden sollen. Ein Beispiel für eine
SNMP-Anforderung kann sein, dass die Station D, die sich auf einem
Port des SOC 10(3) befindet, Informationen bezüglich eines
Zählerwerts
auf dem SOC 10(4) erhalten möchte. Um solche Anfragen zu
ermöglichen,
ist die MAC-Adresse für
den SOC 10(1), der die zentrale CPU 52(1) enthält, in allen
ARL-Tabellen so programmiert,
dass ein beliebiges Paket mit dieser Ziel-MAC-Adresse an den SOC 10(1) gesendet
wird. Die Anforderung wird auf dem SOC 10(3) empfangen.
Die Eintrittslogik für
den SOC 10(3) sendet das Paket an den SOC 10(1),
indem sie das Paket zunächst über den
Stack-Link oder den Interstack-Link 2003 an den SOC 10(4) sendet,
der das Paket dann über
den Interstack-Link 2004 sendet, damit es den SOC 10(1) erreicht. Beim
Empfang wird das Paket gelesen und an die zentrale CPU 52(1) übergeben,
welche die SNMP-Anforderung verarbeitet. Beim Verarbeiten der Anforderung
bestimmt die zentrale CPU 52(1), dass für die Anforderung Daten von
dem Switch SOC 10(4) erforderlich sind. Der SOC 10(1) sendet
dann eine Steuernachricht an den SOC 10(4), wobei die MAC-Adresse
des SOC 10(4) verwendet wird, um den Zählerwert zu lesen. Der Zählerwert
wird gelesen, und eine Steuernachrichtenantwort wird an den SOC 10(1) zurückgesendet,
wobei die MAC-Adresse des SOC 10(1) verwendet wird. Nachdem
der SOC 10(1) die Antwort erhalten hat, wird eine SNMP-Antwort
generiert und an die Station D gesendet.
-
Port-Spiegelung
-
In
bestimmten Situationen kann ein Netzwerkadministrator oder ein Verantwortlicher
bestimmen, dass bestimmte Typen von Paketen oder bestimmte Ports
so bezeichnet werden, dass Kopien von Paketen zu einem bezeichneten
Spiegelziel-Port gesendet werden. Der Bezeichnung des Spiegelziels
wird im Adressauflösungsprozess
dadurch identifiziert, dass in dem Interstack-Tag das M-Bit gesetzt
ist. Wenn das M-Bit gesetzt ist, wird die Modul-ID dem Port-Spiegelungsregister
in der ARL-Tabelle
entnommen, und die Modul-ID wird Bestandteil des Interstack-Tags.
Das Port-Spiegelungsregister enthält ein sechs Bit langes Feld
für den
Spiegelziel-Port. Das Feld stellt die Nummer des Ports dar, an den
das Paket zum Spiegeln gesendet werden soll. Wenn es sich bei der
Port-Nummer um einen Stack-Link- oder einen Interstack-Link-Port
handelt, befindet sich der Spiegelziel-Port auf einem anderen Modul.
Wenn die Port-Nummer von der des Stack-Link-Ports abweicht, befindet
sich der Spiegelziel-Port auf dem lokalen Modul. Wenn ein Paket
auf dem Stack-Link
gesendet wird und sowohl das M-Bit als auch das MD-Bit gesetzt sind,
empfängt
das geeignete Modul das Paket und sendet das Paket an den Spiegelziel-Port
innerhalb des Moduls, der dem Port-Spiegelungsregister für dieses
Modul entnommen wurde. Das Paket wird nicht an den Ziel-Port gesendet.
Wenn das M-Bit gesetzt ist und das MD-Bit nicht gesetzt ist, wird
das Paket sowohl an den Spiegelziel-Port als auch an den Ziel-Port
gesendet.
-
Vollduplex
-
Nun
wird auf 30 Bezug genommen. Diese Figur
wird verwendet, um den Paketfluss zwischen Switches der für eine Duplex-Kommunikation
konfigurierten, in 22 und 23 veranschaulichten Stack-Anordnungen
zu veranschaulichen. Wie zuvor bereits erwähnt, stellen die Konfigurationen
von 22 und 23 beide
eine Vollduplex-Kommunikation bereit. Die Konfiguration von 23 verwendet jedoch die verbliebenen Gigabit-Uplinks,
um eine Redundanzebene sowie Fehlertoleranz vorzusehen. In der Praxis
kann jedoch die Konfiguration von 22 möglicherweise
praktischer sein als die von 23.
In ordnungsgemäß funktionierenden,
für Duplex-Kommunikation konfigurierten
Stacks sind jedoch der Paketfluss und das Erlernen von Adressen
im Wesentlichen für
beide Konfigurationen identisch.
-
Der
Duplex-Stack 2100 umfasst in diesem Beispiel vier Switches
wie beispielsweise SOC 10(1) ... SOC 10(4). Anstelle
von 4 unidirektionalen Interstack-Links ermöglichen jedoch die bidirektionalen
Links 2101, 2102 und 2103 die bidirektionale
Kommunikation zwischen allen diesen Switches. Diese Konfiguration
erfordert, dass sich jeder der mit den Interstack-Links verbundenen
Ports in demselben VLAN befindet. Wen von dem Stack eine Vielzahl
von VLANs unterstützt
werden, müssen
alle Ports Mitglieder aller dieser VLANs sein. Die Duplex-Konfiguration
ermöglicht
es dem SOC 10(2) beispielsweise, in der Lage zu sein, mit
einem Hop nach oben mit dem SOC 10(1) zu kommunizieren,
anstatt mit drei Hops nach unten, was in der uni direktionalen Simplex-Konfiguration
erforderlich wäre.
Der SOC 10(4) jedoch benötigt 3 Hops nach oben, um mit
dem SOC 10(1) zu kommunizieren, da es in beide Richtungen
keine direkte Verbindung gibt. Es sei angemerkt, dass die Begriffe "nach oben" und "nach unten" in diesem Dokument
als relative Begriffe unter Bezugnahme auf die Figuren verwendet
werden, aber dass es sich in der tatsächlichen Praxis nur um logische
Hops und nicht um physische Hops handelt. Aufgrund der multidirektionalen
Funktionalität
und da Port-Bitmuster verhindern, dass abgehende Pakete auf denselben
Ports gesendet werden, auf denen sie angekommen sind, wird der Teil
des Interstack-Tags, in dem der Stack-Zähler enthalten ist, nicht verwendet.
-
Die
folgende Erörterung
ist auf einen Paketfluss in einer Situation gerichtet, in der die
in 30 auf dem Port 1 des SOC 10(1) befindliche
Station A versucht, ein Paket an die auf Port 1 des SOC 10(3) befindliche
Station B zu senden. Das Paket kommt an dem Eintritt 14 des
SOC 10(1) an; es wird ein Interstack-Tag in das Paket eingefügt. Da alle
Tabellen anfänglich
leer sind, kommt es zu einem Scheitern der Quellensuche, und die
Adresse der Station A wird in der geeigneten ARL-Tabelle des SOC 10(1) erlernt.
Es kommt zu einem Scheitern der Zielsuche, und das Paket wird an
alle Ports des zugehörigen
VLAN gesendet. In der Konfiguration von 30 wird
das Paket daher auf dem Interstack-Link 2101 von dem Port
25 des SOC 10(1) an den Port 26 des SOC 10(2) gesendet.
Es kommt zu einem Scheitern der Quellensuche, und die Quelladresse
wird auf dem SOC 10(2) erlernt. Es kommt zu einem Scheitern
der Zielsuche, und das Paket wird an alle Ports des zugehörigen VLAN
gesendet. Die Switches sind so konfiguriert, dass die Port-Bitmuster
für das
Scheitern der Zielsuche (DLF) es nicht erlauben, dass das Paket
auf demselben Port herausgesendet wird, auf dem es angekommen ist.
Dies würde
den Port 25 des Switches SOC 10(2) einschließen, aber
nicht den Port 26 des SOC 10(2). Das Paket wird von dem
Port 25 des SOC 10(2) an den Port 26 des Switches SOC 10(3) gesendet.
Es kommt zu einem Scheitern der Quellensuche, und die Adresse der
Station A wird in der ARL-Tabelle des SOC 10(3) erlernt.
Es kommt außerdem
zu einem Scheitern der Zielsuche, und das Paket wird an alle Ports
außer Port
26 gesendet. Die Station B empfängt
daher das Paket, ebenso wie der SOC 10(4). In dem SOC 10(4) wird die
Adresse der Station A erlernt, es kommt zu einem Scheitern der Zielsuche,
und das Paket wird an alle Ports außer Port 26 gesendet. Da der
SOC 10(4) über
keine direkte Verbindung zu dem SOC 10(1) verfügt, gibt
es kein Problem des Sendens in einer Schleife durch den Stack, und
es besteht keine Notwendigkeit, das Feld für den Stack-Zähler in
dem IS-Tag zu verwenden.
-
In
der umgekehrten Situation, in der die Station B versucht, in der
Konfiguration von 30 ein Paket an die Station
A zu senden, erfolgt das Erlernen der Adressen auf ähnliche
Weise wie zuvor bereits erörtert. Da
die Adresse der Station B noch nicht erlernt wurde, kommt es zu
einem Scheitern der Quellensuche (SLF), und die Adresse der Station
B wird auf dem SOC 10(3) erlernt. Eine Zielsuche hingegen
ergibt einen Treffer, und das Paket wird an den Port 26 vermittelt.
Das Paket kommt an dem Port 25 des SOC 10(2) an, es kommt zu
einem Scheitern der Quellensuche, die Adresse der Station B wird
erlernt, und eine Zielsuche wird durchgeführt. Die Zielsuche ergibt einen
Treffer, und das Paket wird an den Port 26 des SOC 10(2) vermittelt
und dann an den Port 25 des SOC 10(1). Es kommt zu einem
Scheitern der Quellensuche, die Adresse der Station B wird auf dem
SOC 10(1) erlernt, eine Zielsuche ergibt einen Treffer,
und das Paket wird an den Port 1 des SOC 10(1) vermittelt.
Da es nicht zu einem Scheitern der Zielsuche kam, als das Paket
an dem Switch SOC 10(3) ankam, wurde das Paket nie an den
SOC 10(4) gesendet. In einer Kommunikation zwischen den
Stationen A und B ist es daher möglich,
dass die Adresse der Station B nie auf dem Switch SOC 10(4) erlernt
würde.
In einer Situation, in der die Station B ein Paket an eine Station
auf dem SOC 10(4) senden soll, würde es kein Scheitern der Quellensuche
geben (unter der Voraussetzung, dass die Adresse für Station
B bereits auf dem SOC 10(3) erlernt wurde), sondern es
würde ein
Scheitern der Zielsuche erfolgen. Das Paket würde dann über den Port 25 des SOC 10(3) an
den Port 26 des SOC 10(4) und auch über den Port 26 des SOC 10(3) an den
Port 25 des SOC 10(2) gesendet. Es würde kein Scheitern der Quellensuche
erfolgen, aber es würde
zu einem Scheitern der Zielsuche in dem SOC 10(4) kommen,
was zum Senden des Pakets mittels Fluten an alle Ports des VLAN
außer
Port 26 führen
würde.
Adressen können
daher möglicherweise
an Modulen erlernt werden, die das Paket gar nicht empfangen sollen.
Der Adressalterungsprozess funktioniert jedoch so, dass Adressen
gelöscht
werden, die in bestimmten Tabellen nicht verwendet werden. Der Tabellensynchronisationsprozess
stellt sicher, dass ARL-Tabellen innerhalb jedes beliebigen SOC 10 synchronisiert
werden.
-
Vollduplex-Bündelung (Trunking)
-
In
der Vollduplex-Konfiguration wird die Bündelung (Trunking) auf eine
Weise gehandhabt, die ähnlich der
in einer Simplex-Konfiguration ist. Die Informa tionen der Felder
T Bit, TGID und RTAG werden erlernt und in den Tabellen gespeichert,
um den Zugriff auf den Trunk-Port zu steuern.
-
31 veranschaulicht eine Konfiguration, in der
die Station A auf dem Port 1 des SOC 10(1) angeordnet ist
und die Station B auf einem Trunk-Port des SOC 10(3) angeordnet
ist. In dieser Stacking-Konfiguration, die als Stack 2200 bezeichnet
wird, sind alle Mitglieder der Trunk-Gruppe auf dem SOC 10(3) angeordnet.
-
In
diesem Beispiel ist die TGID des Trunk-Ports zur Verbindung der
Station B mit dem SOC 10(3) zwei, und das RTAG ist ebenfalls
zwei. In einem Beispiel, in dem die Station A versucht, ein Paket
an die Station B zu senden, wird das Paket an dem Port 1 des SOC 10(1) empfangen.
Es kommt zu einem Scheitern der Quellensuche, und die Quelladresse
des Pakets von dem Port 1 wird in der ARL-Tabelle für den SOC 10(1) erlernt. Daher
enthält
die ARL-Tabelle die Port-Nummer, die MAC-Adresse, die VLAN-ID, die Informationen
zum T-Bit, die Informationen zur TGID und die Informationen zum
RTAG. Die Port-Nummer ist 1, die MAC-Adresse ist A, die VLAN-ID
ist 1, das T-Bit ist nicht gesetzt, und die Felder TGID und RTAG
werden ignoriert. Bei einer Zielsuche kommt es zu einem Scheitern
der Zielsuche, und das Paket wird mittels Fluten an alle Ports in
dem zugehörigen
VLAN gesendet, natürlich
außer
Port 1, da dies der Port ist, an dem das Paket angekommen war. Das
Paket wird deshalb wenigstens auf dem Port 25 des SOC 10(1) herausgesendet.
Das Paket wird an dem Port 26 des SOC 10(2) empfangen.
Ein Scheitern der Quellensuche führt
dazu, dass die ARL-Tabelle die Adressinformationen erlernt. Wie
bei anderen Suchvorgängen
würde die
Quelladresse des Pakets, das von dem SOC 10(1) zu dem SOC 10(2) kommt,
angeben, dass es sich bei dem Quell-Port um den Port 26 handelt. Es
kommt zu einem Scheitern der Zielsuche, und das Paket wird an alle
Ports in dem zugehörigen
VLAN außer Port
26 des SOC 10(2) gesendet. Das Paket wird an dem Port 26
des SOC 10(3) empfangen, es erfolgt eine Quellensuche,
es kommt zu einem Scheitern der Quellensuche, und die Quelladresse
des an dem Port 26 ankommenden Pakets wird erlernt. Bei einer Zielsuche
kommt es zu einem Scheitern der Zielsuche auf dem SOC 10(3).
Das Paket wird mittels Fluten an alle Ports des zugehörigen VLAN
außer
Port 26 des SOC 10(3) gesendet. Wenn es jedoch auf dem
Trunk-Port zu einem Scheitern der Zielsuche kommt, wird dies nur
auf einem bezeichneten Port gesendet, wie in der Tabelle gemäß 802.1q
und in der PVLAN-Tabelle
für den
SOC 10(3) angegeben. Bei der Tabelle gemäß 802.1q
handelt es sich um die Tag-VLAN-Tabelle, und sie enthält die Felder für die VLAN-ID,
das VLAN- Port-Bitmuster
und das Bitmuster ohne Tags. Das Ziel B empfängt das Paket dann durch den
Trunk-Port, und der SOC 10(4) empfängt das Paket außerdem auf
dem Port 26. In dem SOC 10(4) kommt es zu einem Scheitern
der Quellensuche, und die Quelladresse des Pakets wird erlernt.
Bei der Zielsuche kommt es zu einem Scheitern der Zielsuche, und
das Paket wird mittels Fluten an alle Ports des VLAN auf dem SOC 10(4) gesendet,
außer
Port 26 natürlich.
-
In
der umgekehrten Situation sind jedoch das T-Bit und die Werte der
Felder TGID und RTAG von entscheidender Bedeutung. Wenn die Station
B versucht, ein Paket an die Station A zu senden, kommt ein Paket an
dem Trunk-Port des SOC 10(3) an. Eine Quellensuche führt zu einem
Scheitern der Quellensuche, da die Adresse der Station B noch nicht
erlernt wurde. Das T-Bit wird gesetzt, da sich der Quell-Port in
einer Trunk-Gruppe befindet, und die Informationen bezüglich TGID
und RTAG werden der PVLAN-Tabelle entnommen. Die ARL-Tabelle für den SOC 10(3) enthält daher
die Informationen für
die Station A und jetzt außerdem die
Adressinformationen für
die Station B. In dem Eintrag für
die Station B ist die Port-Nummer
mit 1 angegeben, die VLAN-ID ist 1, das T-Bit ist gesetzt, und die
Informationen bezüglich
TGID und RTAG sind jeweils auf zwei gesetzt. Der SOC 10(3) führt dann
eine Zielsuche durch, die zu einem ARL-Treffer führt, da die Adresse der Station
A bereits erlernt wurde. Das Paket wird an den Port 26 des SOC 10(3) vermittelt.
Das Paket wird jeweils nicht an dieselben Mitglieder der Trunk-Gruppe
gesendet, von der das Paket stammte. In dem Interstack-Tag ist das
SRC_T-Bit gesetzt, die TGID ist gleich 2, und das RTAG ist auf 2
gesetzt. Das Paket wird an dem Port 25 des SOC 10(2) empfangen,
wo der Eintritt eine Quellensuche durchführt. Es kommt es zu einem Scheitern
der Quellensuche, und die Quelladresse des Pakets von dem Port 25
wird erlernt. Das SRC_T-Bit und die Informationen bezüglich TGID
und RTAG werden in diesem Fall dem Interstack-Tag entnommen. Die Zielsuche
ergibt einen ARL-Treffer, und das Paket wird an den Port 26 des
SOC 10(2) vermittelt, und es wird dann an dem Port 25 des
SOC 10(1) empfangen. Eine Quellensuche führt zu einem
Scheitern der Quellensuche, und die Adresse des ankommenden Pakets
wird erlernt. Die Zielsuche führt
zu einem Treffer, und das Paket wird an den Port 1 vermittelt, wo
es dann von der Station A empfangen wird.
-
Nach
diesem Lern- und Austauschprozess zwischen der Station A und der
Station B für
die Konfiguration von 30 werden die ARL-Tabellen
für den
SOC 10(1), den SOC 10(2), den SOC 10(3) und
den SOC 10(4) wie in 32A, 32B, 32C bzw. 32D gezeigt aussehen. Es ist ersichtlich, dass
die Adresse der Station B in dem SOC 10(4) nicht erlernt
wurde und daher nicht in der Tabelle in 32D enthalten
ist, da das Paket von der Station B nicht zu einem der Ports auf
dem SOC 10(4) gesendet wurde.
-
33 veranschaulicht eine Konfiguration, bei der
Mitglieder von Trunk-Gruppen
sich in unterschiedlichen Modulen befinden. In dieser Konfiguration ähneln das
Erlernen von Adressen und der Paketfluss den Vorgängen, die
unter Bezugnahme auf 31 erörtert wurden. In dieser Konfiguration
muss jedoch die MAC-Adresse
der Station A ebenfalls als Trunk-Port erlernt werden. In einer
Situation, in der für
die Trunk-Gruppe, welche die Verbindung zu der Station A in dem
SOC 10(1) herstellt, die TGID gleich 1 ist und das RTAG
gleich 1 ist, und in der für
die Trunk-Gruppe, welche die Verbindung zu der Station B in dem
SOC 10(3) herstellt, die TGID und das RTAG gleich 2 sind,
würde das
Erlernen der Adresse der Station A, die ein Paket an die Station
B sendet, und der Station B, die ein Paket an die Station A sendet,
dazu führen,
dass die ARL-Tabellen für
den SOC 10(1), den SOC 10(2), den SOC 10(3) bzw.
den SOC 10(4) die Informationen enthalten, die in 34A, 34B, 34C bzw. 34D dargelegt
sind. In der Situation, in der die Station A auf dem SOC 10(1) ein
Paket an die Station B auf dem SOC 10(2) sendet, nachdem
die Adressen, wie in 34A bis 34D veranschaulicht, erlernt wurden, kommt es
zu dem nachfolgend beschriebenen Ablauf. Das ankommende Paket wird
von der Station A an dem Trunk-Port empfangen, der in diesem Beispiel
als Port Nummer 1 betrachtet werden soll. Die Quellensuche ergibt
einen Treffer, und das T-Bit
wird gesetzt. In dem Interstack-Tag wird das SRC_T-Bit gesetzt,
und die Informationen bezüglich
TGID und RTAG für
den Quell-Trunk-Port werden aus der ARL-Tabelle in die Felder SRC_TGID
und SRC_RTAG in dem IS-Tag kopiert. Die Zielsuche ergibt einen Treffer,
und das T-Bit wird für
die Zieladresse gesetzt. Das DST T-Bit wird gesetzt, und die Informationen
bezüglich
TGID und RTAG für
den Ziel-Trunk-Port werden aus der ARL-Tabelle in die Felder DST
TGID und DST RTAG kopiert. Die Port-Auswahl wird anhand des Feldes
DST RTAG durchgeführt. In
diesem Beispiel wird das Paket an den SOC 10(2) gesendet.
Wenn kein Port ausgewählt
ist, wird das Paket auf dem Port 25 des SOC 10(2) an den
SOC 10(3) gesendet. Das Paket wird dann an dem Port 26
des SOC 10(3) empfangen. Die Zielsuche in der ARL-Tabelle
ergibt einen Treffer, und die Port-Auswahl wird anhand des Feldes
DST RTAG durchgeführt.
Auch hier ist der SOC 10(4) nicht beteiligt, da es nicht
zu einem Scheitern der Zielsuche gekommen ist.
-
Es
versteht sich, dass, wie weiter oben im Hinblick auf den einzelnen
SOC 10 erörtert
wurde, die Trunk-Gruppentabellen in allen Modulen ordnungsgemäß initialisiert
sein müssen,
damit eine geeignete Bündelung
durch den Stack hindurch ermöglicht
wird. Die Initialisierung wird zu dem Zeitpunkt durchgeführt, zu dem
der Stack konfiguriert wird, so dass das Paket auf dem richtigen
Trunk-Port abgeht. Wenn ein Trunk-Mitglied in einem Switch-Modul
nicht vorhanden ist, geht das Paket auf dem geeigneten Interstack-Link
ab.
-
Damit
eine geeignete Handhabung der Trunk-Gruppen erfolgen kann, muss
die Trunk-Gruppentabelle in jedem SOC 10 auf geeignete
Weise initialisiert sein, um eine ordnungsgemäße Bündelung durch den Stack hindurch
zu ermöglichen. 36 veranschaulicht ein Beispiel für die Initialisierungen
der Trunk-Gruppentabelle für
die in 31 veranschaulichte Trunk-Konfiguration,
wobei sich die Mitglieder der Trunk-Gruppe in demselben Modul befinden. 37 veranschaulicht ein Beispiel für die Initialisierungen
der Trunk-Gruppentabelle für
die Konfiguration von 33, wobei sich die Mitglieder
der Trunk-Gruppe auf unterschiedlichen Switches befinden. 36 veranschaulicht lediglich die Initialisierung
für eine
Situation, in der die TGID gleich 2 ist. In Situationen, in denen
die TGID gleich 1 ist, würde
die Trunk-Port-Auswahl
den Stack-Link-Port in der richtigen Richtung angeben. 37 hingegen veranschaulicht die Initialisierungen
der Trunk-Gruppentabelle für
die TGIDs 1 und 2. Wenn ein Trunk-Mitglied in einem bestimmten Switch-Modul
nicht vorhanden ist, wird das Paket auf dem Stack-Link-Port herausgesendet.
-
Schicht-3-Vermittlung
-
Die
obige Erörterung
bezüglich
des Paketflusses ist nur auf Situationen gerichtet, in denen die
Quelle und das Ziel innerhalb desselben VLAN angeordnet sind. Für Situationen,
in denen die VLAN-Grenzen überschritten
werden müssen,
ist eine Schicht-3-Vermittlung implementiert. Unter Bezugnahme auf 35 wird nun die Schicht-3-Vermittlung erörtert. In
diesem Beispiel soll davon ausgegangen werden, dass die auf dem Port
1 des SOC 10(1) befindliche Station A sich in einem VLAN
V1 befindet, das die VLAN-ID 1 aufweist, und dass die auf dem Port
1 des SOC 10(3) befindliche Station B sich in einem anderen
VLAN V3 befindet, das die VLAN-ID 3 aufweist. Da mehrere VLANs beteiligt
sind, müssen
die Ports, welche die Interstack-Links verbinden, Mitglieder beider
VLANs sein. Daher weisen die Ports 25 und 26 des SOC 10(1),
des SOC 10(2), des SOC 10(3) und des SOC 10(4) die
VLAN-IDs 1 und 3 auf, wodurch sie Mitglieder des VLAN V1 und des
VLAN V3 sind. Die Schicht-3-Vermittlung betrifft das Überqueren
von VLAN-Grenzen innerhalb des Moduls und das anschließende Überbrücken innerhalb
des Moduls. Wie zuvor bereits erläutert, sind die Schnittstellen
auf Schicht 3 nicht inhärent
mit einem physischen Port verbunden, aber stattdessen mit den VLANs.
Wenn die Station A versucht, in der in 35 veranschaulichten
Konfiguration ein Paket an die Station B zu senden, würde das
Paket an dem Port 1 des SOC 10(1) empfangen und dann an
die Router-Schnittstelle R1 mit der IP-Zieladresse von B adressiert.
Der Router R1 ist in diesem Beispiel als die Router-Schnittstelle
zwischen den VLAN-Grenzen
für das
VLAN V1 und das VLAN V3 bezeichnet. Da der SOC 10(1) so
konfiguriert ist, dass das VLAN V3 sich auf dem Port 25 befindet,
wird das Paket über
den Port 25 zu dem VLAN V3 geleitet. Die nächste Hop-MAC-Adresse wird
in das Feld für
die Zieladresse der MAC-Adresse eingefügt. Das Paket wird dann in einem
Schicht-2-Vermittlungsvorgang an den Port 26 des SOC 10(2) vermittelt.
Das Paket wird dann an den Port 25 des SOC 10(2) vermittelt,
wo es zu dem Port 26 des SOC 10(3) übertragen wird. Der SOC 10(3) vermittelt
das Paket an den Port 1, wobei es sich um die mit der Station B
verbundenen Port-Nummer handelt. Noch detaillierter wird bei der
Schicht-3-Vermittlung, wenn ein Paket von der Station A an dem Eintritts-Submodul 14 des
SOC 10(1) empfangen wird, die ARL-Tabelle nach der Ziel-MAC-Adresse
durchsucht. Wenn die Ziel-MAC-Adresse mit einer Schicht-3-Schnittstelle verbunden
ist, wobei es sich in diesem Fall um eine VLAN-Grenze handeln würde, prüft der Eintritt,
ob es sich bei dem Paket um ein IP-Paket handelt. Wenn es sich nicht
um ein IP-Paket handelt, wird das Paket zur Weiterleitung an die
geeignete CPU 52 gesendet. Wenn das Paket Optionsfelder
aufweist, wird es auf ähnliche
Weise ebenfalls zur Weiterleitung an die CPU 52 gesendet.
Der Eintritt prüft
außerdem,
ob es sich bei dem Paket um ein Mehrfachsende-IP-Paket handelt,
das auch als Paket der Klasse D bezeichnet wird. Wenn dies der Fall
ist, wird das Paket zur weiteren Verarbeitung an die CPU gesendet.
Nachdem die IP-Prüfsumme
validiert wurde, wird die Schicht-3-Tabelle durchsucht, wobei die
Ziel-IP-Adresse den Schlüssel
bildet. Wenn der Eintrag in der ARL-Tabelle gefunden wird, enthält der Eintrag
die nächste
Hop-MAC-Adresse sowie den Austritts-Port, auf dem das Paket weitergeleitet
werden muss. In dem Fall von 35 müsste das
Paket an den Port 25 weitergeleitet werden. Wenn der Eintrag in der
Schicht-3-Tabelle nicht gefunden wird, wird eine Suche nach einem
Standard-Router, beispielsweise in einer Standard-IP-Router-Tabelle,
durchgeführt.
Wenn der Eintrag nicht gefunden wird, wird das Paket an die CPU
gesendet. Durch Verknüpfen
der Ziel-IP-Adresse mit einer Netzmaske in dem Eintrag mittels einer AND-Verknüpfung und Überprüfen, ob
es eine Übereinstimmung
mit der IP-Adresse in dem Eintrag gibt, wird die Standard-Router-Tabelle
durchsucht. Das Paket wird dann mit dem auf geeignete Weise konfigurierten IS-Tag
durch den Stack bewegt, bis es an den Port 1 des SOC 10(3) vermittelt
wird. Es wird dann geprüft,
ob das Paket mit oder ohne Tag abgehen soll. In Abhängigkeit
von dieser Information können
die Tag-Felder entfernt werden oder auch nicht. Das Interstack-Tag
jedoch wird von dem geeigneten Austritt 16 entfernt, bevor das
Paket den Stack verlässt.
-
In
den oben beschriebenen Konfigurationen führen die Adresssuchvorgänge, das
Indexieren der Trunk-Gruppe, usw. dazu, dass ein Port-Bitmuster
erstellt wird, das mit dem bestimmten Paket verbunden ist und das
daher angibt, auf welchen Ports eines bestimmten SOC 10 das
Paket herausgesendet wird. Das Generieren des Port-Bitmusters stellt
beispielsweise sicher, dass das Scheitern der Zielsuche nicht dazu
führt, dass
das Paket auf demselben Port herausgesendet wird, auf dem es hereingekommen
ist, was notwendig ist, um das Senden in einer Schleife durch ein
Netzwerk und das Senden in einer Schleife durch einen Stack zu verhindern.
Es sei ferner angemerkt, dass jeder SOC 10, wie zuvor bereits
erwähnt,
auf einem einzelnen Halbleitersubstrat konfiguriert werden kann,
wobei alle verschiedenen Tabellen als zweidimensionale Arrays konfiguriert
sind und es sich bei den Modulen und Steuerschaltungen um eine ausgewählte Konfiguration
von Transistoren zum Implementieren der erforderlichen Logik handelt.
-
Damit
die verschiedenen Parameter jedes SOC 10 ordnungsgemäß konfiguriert
werden können,
kann jeder SOC 10 mit einem Konfigurationsregister versehen
sein, um die geeignete Port-Konfiguration zu ermöglichen. Das Konfigurationsregister
umfasst ein Feld für
verschiedene mit dem Stacking verbundene Parameter. Beispielsweise
kann das Konfigurationsregister ein Feld für die Modul-ID umfassen, so
dass die Modul-ID des betreffenden Switches SOC 10 konfiguriert
werden kann. Außerdem
kann das Konfigurationsregister ein Feld umfassen, das so programmiert
werden kann, dass es die Anzahl der Module in dem Stack angibt.
Es ist erforderlich, dass die Anzahl der Module bekannt ist, damit
das Feld für
den Stack-Zähler
in dem Interstack-Tag auf geeignete Weise auf n – 1 gesetzt werden kann. Das
Konfigurationsregister sollte außerdem ein Feld umfassen, das
angibt, ob der Gigabit-Port eines bestimmten GPIC 30 als
Stack-Link oder Uplink verwendet wird oder nicht. Ein Simplex-/Duplex-Feld
ist erforderlich, damit angegeben werden kann, ob es sich bei der
Stacking-Lösung
um eine Simplex-Konfiguration gemäß 21 oder
um eine Duplex-Konfiguration gemäß 22 und 23 handelt
oder nicht. Ein weiteres Feld in dem Konfigurationsregister könnte ein
Feld für
das Stacking-Modul sein, so dass auf geeignete Weise angegeben werden
kann, ob der betreffende SOC 10 in einem Stack oder in
einer Einzelkonfiguration verwendet wird. Die Switches SOC 10,
die in einer Einzelkonfiguration verwendet werden, fügen selbstverständlich kein
IS-Tag in ankommende Pakete ein. Das Konfigurationsregister ist
auf geeignete Weise angeordnet, um durch die CPU 52 konfiguriert
zu werden.
-
Obwohl
dies im Hinblick auf die Stacking-Konfigurationen nicht veranschaulicht
wurde, kann außerdem
jeder SOC 10 so konfiguriert werden, dass er, wie zuvor
bereits erwähnt,
einen auf dem Chip befindlichen CBP 50 und auch einen Chip-externen
GBP 60 aufweist. Die Zulassung zu dem entweder auf dem
Chip oder Chip-extern vorliegenden Speicher wird in jedem Chip auf
dieselbe Weise vorgenommen, ebenso wie die Kommunikation über den
CPS-Kanal 80.
-
Es
sei angemerkt, dass sowohl in der obigen Erörterung als auch in den folgenden
Erörterungen
das Eintritts-Submodul 14, die ARI-/S3-Tabelle 21 und
andere Aspekte eines EPIC 20, wie zuvor erörtert, im
Allgemeinen im Hinblick auf einen bestimmten SOC 10 erörtert werden.
Es sei angemerkt, dass in Konfigurationen, bei denen SOCs 10 wie
in 20 bis 23 veranschaulicht
gestapelt sind, Ports mit einem bestimmten EPIC 20 verbunden
sind und dass ein bestimmtes Eintritts-Submodul, Austritts-Submodul,
usw. verwendet wird, das jeweils mit diesem EPIC verbunden ist.
In Konfigurationen, bei denen die gestapelten Switches eine andere Switch-Architektur
verwenden, werden das Einfügen
des Interstack-Tags, das Erlernen von Adressen, das Dekrementieren
des Stack-Zählers,
usw. von auf geeignete Weise konfigurierten Schaltungen und Submodulen gehandhabt,
wie dies für
einen Fachmann auf diesem Gebiet auf der Grundlage der in diesem
Dokument enthaltenen Informationen offensichtlich wäre.
-
Es
sei angemerkt, dass Switches, die in dieser Konfiguration oder den
im Folgenden beschriebenen Konfigurationen gestapelt sind, auch
eine Schaltung oder andere Mittel enthalten, die das IS-Tag und
die Port-VLAN-ID (falls hinzugefügt)
aus dem Paket entfernen, bevor das Paket aus dem Stack heraus vermittelt wird.
Das IS-Tag einer verbundenen Vorrichtung mit mehreren Switches sowie
die Port-VLAN-ID
sind nur für die
Handhabung innerhalb eines Stacks und/oder innerhalb des Switches
von Bedeutung.
-
Die
vorgenannten Erörterungen
eines speziellen Netzwerk-Switches und seiner Konfigurationen sind zum
besseren Verständnis
der folgenden Erörterung
der zusätzlichen
Mehrfach-Switch-Konfigurationen und der Anwendung der Flusssteuerung
und der Steuerung der Datenübertragungsgeschwindigkeit
darin vorgesehen. Fachleute mit normalen Kenntnissen auf diesem
Gebiet werden ohne Weiteres verstehen, dass die in diesem Dokument
erörterten
Erfindungen im Hinblick auf Mehrfach-Switch-Konfigurationen und
auf Flusssteuerung und Steuerung der Datenübertragungsgeschwindigkeit
nicht auf die weiter oben beschriebenen besonderen Switch-Konfigurationen
beschränkt
sind.
-
Um
einen Switch mit höherer
Leistung zu geringeren Kosten bereitzustellen, kann es wünschenswert sein,
zusätzliche
Konfigurationen zum Kombinieren von Switches vorzusehen, um die
Anzahl der Ports pro Vorrichtung zu erhöhen, anstatt größere Konfigurationen
mit Switches auf dem Chip vorzusehen, die sich als teurer erweisen
können.
Demgemäß ist 38 ein Blockdiagramm einer Mehrfach-Switch-Konfiguration gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung. Ähnlich
der bereits weiter oben unter Bezugnahme auf 20 bis 37 erörterten
Konfiguration von kaskadierend angeordneten SOCs werden in dieser Konfiguration
anstelle eines einzelnen Switches oder eines Switches auf dem Chip
(SOC) mehrere Switches, wie beispielsweise SOCs 10 miteinander
verknüpft,
um eine einzelne Vorrichtung auszubilden. So werden beispielsweise
die Switches SOC 10A und SOC 10B miteinander verknüpft, (zum
Beispiel auf demselben "Blade", derselben gedruckten
Schaltung, usw.), um die Vorrichtung 3800 auszubilden.
In dieser Konfiguration wird jeder SOC 10 als ein "12 + 2"-Switch gezeigt,
was bedeutet das es sich um einen Switch mit zwölf Ports mit zwei zusätzlichen
Gigabit-Ports handelt, die für
das Stacking oder für
Links verwendet werden können.
Zum Zweck dieser Erörterung
wird davon ausgegangen, dass die interne Funktionsweise und Funktionen
jedes SOC 10 die Elemente umfasst, die in 2 veranschaulicht
sind, und im Wesentlichen identisch mit denen sind, die weiter oben
unter Bezugnahme auf 1 bis 19 beschrieben
wurden. Fachleute mit normalen Kenntnissen auf diesem Gebiet werden
die unten beschriebenen Prozesse und Systeme auch ohne detaillierte
Bezugnahme auf die bereits beschriebenen Funktionsblöcke jedes
Switches ohne Weiteres verste hen. Obwohl das vorliegende Ausführungsbeispiel
anhand von Switch-Konfigurationen des SOC 10 gezeigt ist,
soll die vorliegende Erfindung nicht beschränkt sein, und Fachleute mit
normalen Kenntnissen auf diesem Gebiet werden verstehen, dass die
vorliegende Erfindung auch auf andere Switches angewendet werden
kann.
-
38 zeigt zwei SOCs 10 (10A und 10B),
die miteinander über
einen Port verbunden sind, der im Folgenden als ICL (Inter-Chip-Link
bezeichnet wird). Der SOC 10A verwendet einen Link-Port
ICL A, um über einen
weiteren Link-Port ICL B eine Verbindung zu dem SOC 10B herzustellen.
Bei dem ICL A handelt es sich um den Port 13 des SOC 10A,
und bei dem ICL B handelt es sich um den Port 0 des SOC 10B.
Eine Schaltung (nicht gezeigt) kann verwendet werden, um den SOC 10A,
ICL A mit dem SOC 10B, ICL B zu verbinden. Obwohl der Port
13 des SOC 10A und der Port 0 des SOC 10B als
ICLs ausgewählt
wurden, ist die Erfindung nicht darauf beschränkt, und es könnte jeder
beliebige Port als ICL verwendet werden. Fachleute mit normalen Kenntnissen
auf diesem Gebiet werden verstehen, dass aus Leistungsgründen bevorzugt
ein Hochgeschwindigkeits-Port, wie beispielsweise ein Gigabit-Port
oder der GPIC, als ICL verwendet wird. Es sei angemerkt, dass mit "ICL" allgemein der Link
bezeichnet wird, was beide Link-Ports, ICL A und ICL B, umfasst.
In diesem Dokument werden ferner die Begriffe "Link-Port" bzw. "ICL-Port" nebeneinander verwendet
und sind austauschbar.
-
In
der Dual-Switch-Konfiguration von 38 kann
eine einzelne CPU 52 zur Unterstützung sowohl des SOC 10A als
auch des SOC 10B verwendet werden. Die CPU 52 funktioniert
dabei im Wesentlichen auf dieselbe Weise wie weiter oben unter Bezugnahme
auf vorherige Konfigurationen beschrieben. Die CPU 52 ist
zusätzlich
so konfiguriert, dass sie sowohl den SOC 10A als auch den
SOC 10B steuert und programmiert (das heißt, um die
Ports und ARL-Funktionen zu konfigurieren, usw.). Die CPU 52 wird
als Port jedes Switches betrachtet.
-
Jeder
SOC 10 ist mit den übrigen
praktisch identisch und weist die Fast-Ethernet-Ports 0–13 für Anschlussvorrichtungen auf.
Die CPU 52 unterscheidet auf der Grundlage eines Konfigurationsmittels,
wie beispielsweise eines Pins, der an eine Spannung oder an Masse
gelegt ist, zwischen dem SOC 10A und dem SOC 10B.
Wie in 38 gezeigt, ist der Pin p für den SOC 10A an
Masse gelegt und für
den SOC 10B an 3,3 Volt gelegt. Den Ports jedes SOC 10 können eindeutige
Nummerierungsschemata zugewiesen werden, die, auf der Grundlage
der Bezeichnung, zur Flusssteuerung und zur Übertragungsgeschwindigkeitssteuerung
verwendet werden können.
In dem gezeigten Ausführungsbeispiel
bleiben die Ports des SOC 10A mit 0–13 nummeriert, die Ports des
SOC 10B hingegen sind als Ports 14–27 bezeichnet, wie in Klammern
gezeigt, und im Folgenden wird auf die bezeichneten Port-Nummern
Bezug genommen. Fachleute mit normalen Kenntnissen auf diesem Gebiet
werden verstehen, dass andere Konfigurationsmittel verwendet werden
können,
um zwischen dem SOC 10A und dem SOC 10B und ihren
Ports zu unterscheiden.
-
Demgemäß weisen
nach der Bezeichnung der SOC 10A und der SOC 10B die
physischen Ports 1–12 bzw.
15–26
auf, und sie weisen ferner die Stack- oder Link-Ports 0 und 13 bzw.
14 und 27 auf, die Stack-Links oder andere Uplinks erlauben. Wie
weiter oben unter Bezugnahme auf 1 bis 19 beschreiben, weist jeder Port 0–27 einen
Eintritts-Manager und einen Austritts-Manager auf, die so konfiguriert
sind, dass sie Funktionen zur Vermittlung und zur Übertragungsgeschwindigkeitssteuerung
ausführen.
Wie bereits beschrieben, sind der GPIC 30 und der EPIC 20 vorgesehen,
um Gigabit-Ports (0, 13, 14 und 27) bzw. Fast-Ethernet-Ports (1–12 und
15–26)
handzuhaben. Obwohl weiter oben beschrieben wurde, dass der EPIC 20 8
Ports aufweist, ist es zum Zweck dieser Erörterung nicht wichtig, wie
viele Ports jeder EPIC bzw. GPIC enthält. Aus Gründen der Einfachheit wird deshalb
davon ausgegangen, dass eine Eins-zu-Eins-Beziehung zwischen den Ports
und dem GPIC/EPIC besteht. Des Weiteren weist jeder Fast-Ethernet-Port
1–12 und
15–26
2 logische Schnittstellen auf, so dass die physischen Schnittstellen???
((Plural wäre
aber korrekt)) mit 2 verschiedenen Übertragungsgeschwindigkeiten
betrieben werden kann, beispielsweise eine mit einer Übertragungsgeschwindigkeit
von 10 Megabit pro Sekunde und eine mit einer Übertragungsgeschwindigkeit
von 100 Megabit pro Sekunde. Als Ergebnis der Dual-Switch-Konfiguration
wird eine "24 +
2"-Port-Vorrichtung 3800 bereitgestellt
(das heißt,
dass 2 Gigabit-Ports für
den ICL beansprucht werden, wodurch 24 Fast-Ethernet-Ports und zwei
Gigabit-Link-Ports übrig
bleiben). Es sei jedoch angemerkt, dass diese besonderen Konfigurationen
nur beispielhalber verwendet werden und den Schutzumfang der beanspruchten
Erfindung nicht beschränken
sollen.
-
Weiter
oben wurden unter Bezugnahme auf 20 bis 37 Verfahren und Regeln zum Definieren eines Paketflusses
innerhalb einer gestapelten Konfiguration von SOCs erörtert. Der
Paketfluss in dem vorliegenden Ausführungsbeispiel wird im Wesentlichen
als identisch mit dem betrachtet, der bereits weiter oben beschrieben wurde,
mit Ausnahme der angemerkten Unterschiede, die nachfolgend beschrieben
werden. Fachleute mit normalen Kenntnisse auf diesem Gebiet werden
den Paketfluss in dem vorliegenden Ausführungsbeispiel ohne Weiteres
verstehen, nachdem sie die folgende Erörterung unter Bezugnahme auf
die Figuren der Zeichnungen im Hinblick auf die obigen Erörterungen
gelesen haben.
-
Wie
in 38 gezeigt, weisen der SOC 10A und der
SOC 10B jeder zwei Typen von Stack-Ports auf. Bei dem Link-Port
ICL A und bei dem Link-Port ICL B handelt es sich um Stack-Ports,
die zwei SOCs 10 zur Implementierung einer einzelnen Vorrichtung 3800 gemäß der vorliegenden
Erfindung miteinander verbinden. Die Stack-Ports A_2 und B_2 (IML)
können
verwendet werden, um zusätzliche
Vorrichtungen 3800 miteinander zu verbinden, oder als Uplinks.
Pakete, die mit den Stack-Ports A_2 (0) und B_2 (27) verwendet werden, können dasselbe
Format aufweisen wie das Paket, das weiter oben unter Bezugnahme
auf 20 bis 37 beschrieben
wurde, was auch das Einfügen
des IS-Tags 120 nach dem Feld für das VLAN-Tag umfasst. Dieses Tag
stellt der Vorrichtung 3800 genügend Informationen bereit,
um die Bündelung
(Trunking) zwischen anderen Vorrichtungen 3800, wie oben
beschrieben, zu unterstützen,
und Fachleute mit normalen Kenntnissen auf diesem Gebiet werden
verstehen, dass mehrere Vorrichtungen 3800 gemäß den weiter
oben unter Bezugnahme auf 20 bis 37 beschriebenen Konfigurationen miteinander kombiniert
werden können.
-
Die
ICL-Ports in dem vorliegenden Ausführungsbeispiel sind jedoch
auf andere Weise konfiguriert als die in den vorherigen Ausführungsbeispielen
beschriebenen Link-Ports. Die ICL-Ports werden als lokale Ports für jeden
Switch betrachtet. Anders ausgedrückt werden Pakete innerhalb
jedes SOC 10 durch die ARL nicht an den ICL geleitet. Stattdessen
erfolgt die Vermittlung zwischen dem SOC 10A und dem SOC 10B von Fast-Ethernet-Port
zu Fast-Ethernet-Port.
-
Damit
Pakete direkt von einem Port auf einem SOC 10 zu einem
Port auf einem anderen SOC 10 geleitet werden können, müssen der
SOC 10A und der SOC 10B bei Paketen vom Typ "Unicast" dieselbe Adresstabelle
für die
Adressauflösung
verwenden oder alternativ ihre ARL-Tabellen synchronisieren. Es
wird ein Schema bereitgestellt, das es einem SOC 10 erlaubt,
die MAC-Adressen und die Port-Zuordnung auf dem fernen SOC 10 zu
erlernen (das heißt
die bezeichneten Port-Nummern der Ports auf dem anderen SOC 10,
zu dem über
den ICL eine Verbindung besteht). Hierzu wird das reservierte Bit
in dem 4 Byte langen IS-Tag (24A und 24B) verwendet. Auf dem als ICL konfigurierten
Port ist der Austritts-Manager dieses Ports so konfiguriert, dass
er den Quell-Port in ein neues Feld für den Quell-Port in dem IS-Tag
einfügt.
Bei der Nummer des Quell-Ports handelt es sich um die oben beschriebene
bezeichnete Port-ID. Obwohl es sich bei dem Port ICL A um den Port
13 handelt und bei dem Port ICL B um den Port 14, sei angemerkt,
dass von beiden ICL-Ports keine Adresse erlernt wird, weil die Weiterleitung
direkt von Fast-Ethernet-Port zu Fast-Ethernet-Port erfolgt, im
Gegensatz zu der unter Bezugnahme auf 20 bis 37 beschriebenen Konfiguration, bei der jedes
Paket unter Verwendung des Stack-Zählers und durch Erlernen des
Link-Ports in einer Schleife an jeden SOC 10 geleitet wird.
-
Nachfolgend
ist das Format des Interstack-Tags aufgeführt, das von den ICL-Ports in dem vorliegenden
Ausführungsbeispiel
verwendet wird.
Stack_Cnt (Stack-Zähler) – Länge 5 Bit – Der Stack-Zähler gibt
die Anzahl der Hops an, die das Paket durchlaufen kann, bevor es
gelöscht
wird. Die Anzahl der Hops ist um eins geringer als die Anzahl der
Module in dem Stack. Wenn der Stack-Zähler
null ist, wird das Paket gelöscht.
Dadurch wird das Übertragen
des Pakets in einer Schleife verhindert, wenn es zu einem Scheitern
der Zielsuche (DLF) kommt. Dieses Feld wird nicht verwendet, wenn
es sich um einen Vollduplex-Stacking-Modus handelt.
SRC_T (Quell-Trunk) – Länge 1 Bit – Wenn dieses
Bit gesetzt ist, ist der Quell-Port Bestandteil einer Trunk-Gruppe.
SRC_TGID
(Quell-TGID) – Länge 3 Bit – Die Quell-TGID
gibt die Trunk-Gruppe
an, wenn das SRC_T-Bit gesetzt ist.
SRC_RTAG (Quell-RTAG) – Länge 3 Bit – Das Quell-RTAG
gibt die Trunk-Auswahl für
den Quell-Trunk-Port an. Hiermit wird die ARL-Tabelle in den übrigen Modulen
befüllt,
wenn das SRC_T-Bit gesetzt ist.
DST_T (Ziel-Trunk) – Länge 1 Bit – Wenn dieses
Bit gesetzt ist, ist der Ziel-Port Bestandteil einer Trunk-Gruppe.
DST_TGID
(Ziel-TGID) – Länge 3 Bit – Die Ziel-TGID
gibt die Trunk-Gruppe
an, wenn das DST T-Bit gesetzt ist.
DST_RTAG (Ziel-RTAG) – Länge 3 Bit – Dieses
Feld gibt das Kriterium zur Trunk-Auswahl an, wenn das DST T-Bit
gesetzt ist.
PFM – Länge 2 Bit – PFM gibt
den Port-Filtermodus für
Port N (Eintritts-Port)
an. Wert 0 – es
wird der Port-Filtermodus A verwendet; Wert 1 – es wird der Port-Filtermodus
B verwendet (Standardeinstellung); und Wert 2 – es wird der Port-Filtermodus C verwendet.
M – Länge 1 Bit – Wenn dieses
Bit gesetzt ist, handelt es sich um ein gespiegeltes Paket.
MD – Länge 1 Bit – Wenn dieses
Bit gesetzt ist und das M-Bit gesetzt ist, wird das Paket nur an
den Spiegelziel-Port gesendet. Wenn dieses Bit nicht gesetzt ist
und das M-Bit gesetzt ist, wird das Paket sowohl an den Spiegelziel-Port
als auch an den Ziel-Port gesendet (zum Spiegeln des Eintritts).
Source_port
(Quell Port) – Länge 5 Bit – Dieses
Feld gibt den Quell-Port gemäß der MAC-Adresse
an.
Reserved (Reserviert) – Länge 4 Bit – Für die zukünftige Verwendung
reserviert.
-
Die
ARL-Suchtabellen 21 werden so modifiziert, dass sie die
neue Quell-Port-Bezeichnung
umfassen und die Quell-Port-Daten mit den übrigen Daten der Adressauflösung in
Beziehung setzen. Der Austritts-Manager eines ICL-Ports, der das
Paket über
den ICL an einen anderen SOC 10 überträgt, fügt den Quell-Port in das IS-Tag
ein. Wenn der Eintritts-Manager eines ICL-Ports ein Paket über den
ICL empfängt,
verwendet er die Quell-Port-Informationen bei dem Lernvorgang als
Nummer des empfangenden Ports und entfernt das IS-Tag, bevor das
Paket an den Ziel-Port gesendet wird. Wenn beispielsweise der SOC 10A von
einem Netzwerk über
einen Port, wie beispielsweise Port 1, ein Paket empfängt, dessen
Ziel ein Port auf dem SOC 10B ist, wie beispielsweise Port
15, wird das Paket über
den ICL gesendet. Der als ICL A konfigurierte Port 13 fügt die Quell-Port-Informationen
zu dem IS-Tag des Pakets hinzu. Der als ICL B konfigurierte Port
14 empfängt das
Paket über
den ICL, und der Eintritts-Manager von Port 14 verwendet die Quell-Port-Informationen so
für den
Lernvorgang, dass das ARL-Modul in dem SOC 10B die Adressen
von Ports auf dem SOC 10A erlernt. Der Lernvorgang wird
im Wesentlichen so durchgeführt,
wie bereits beschrieben. Als Ergebnis der obigen Konfiguration werden
die Adressauflösungslogik
und die zugehörigen
Funktionen (Bündelung,
usw.) in der Dual-Chip-Konfiguration des vorliegenden Ausführungsbeispiels
bereitgestellt.
-
Wie
weiter oben beschrieben, sind die ICL-Ports zum Zweck der Adressauflösung unsichtbar.
So erlernt beispielsweise der SOC 10A über den ICL A alle Ports auf
dem SOC 10B außer
dem ICL B, und ihm ist nicht bekannt, dass auf dem SOC 10A oder
auf dem SOC 10B ein ICL-Port vorhanden ist. Dies liegt
an der Tatsache, dass der Austritt der ICL-Ports den Quell-Port
in das IS-Tag aller Pakete einfügt,
die über
den ICL hinaus übertragen
werden. Wenn der Eintritt des ICL-Ports auf dem anderen SOC 10 dieses
Paket empfängt, verwendet
er die Quell-Port-Informationen in dem IS-Tag und nicht die ICL-Port-Nummer
als Empfangs-Port, wenn er die MAC-Adresse an die Adressauflösungslogik
sendet. Daher speichern die ARL-Module des SOC 10A oder
des SOC 10B die auf die ICL-Ports bezogene MAC-Adresse
nicht oder finden keine Pakete, die in dem Tag den ICL-Port als
Quell-Port angeben. Diese Konfiguration verbessert die Flusssteuerung
und daher die Leistungsfähigkeit
im Hinblick auf die Vermittlung.
-
Der
Austritt eines ICL-Ports ist so konfiguriert, dass er sich anders
verhält
als der aller übrigen
Ports. Port-Austritte stellen typischerweise ein Paket in ihre Transaktionswarteschlange,
wenn sein entsprechendes Bit in der Filtertabelle gesetzt ist. Der
Austritt des ICL-Ports jedoch ist so konfiguriert, dass er ein Paket
in seine Transaktionswarteschlange stellt, wenn ein beliebiges entsprechendes
Bit in der Filtertabelle auf einen Port auf dem anderen SOC 10 gesetzt
ist (über
den ICL). Dies erlaubt es dem ICL, als Kanal zwischen dem SOC 10A und
dem SOC 10B zu dienen, so dass Datenpakete logisch von
einem Port auf einem Switch zu einem Port auf einem zweiten Switch
weitergeleitet werden können.
Anders ausgedrückt
sind keine Schritte erforderlich, um ein Paket direkt an den ICL
zu leiten, damit es gehandhabt und weitergeleitet wird. Das Paket
wird automatisch über
den ICL geleitet, wenn es ein entsprechendes Ziel hat.
-
In
den unter Bezugnahme auf 20 bis 37 beschriebenen Ausführungsbeispielen wird die Übertragungsgeschwindigkeitssteuerung über Links
zwischen den SOCs 10 typischerweise deaktiviert. In der
vorliegenden Erfindung ist es jedoch wünschenswert, die Funktionen
zur Übertragungsgeschwindigkeitssteuerung
zwischen allen Switches in der Vorrichtung 3800 zu aktivieren,
selbst über
den Link. Demgemäß wird eine Seitenband-Nachrichtenübermittlung
(S-Kanal), die typischerweise lokal auf einem einzigen SOC 10 erfolgt, zwischen
dem SOC 10A, dem SOC 10B und der CPU 52 bereitgestellt.
Um die Seitenband-Nachrichtenübermittlung
zwischen dem SOC 10A und dem SOC 10B über den
ICL zu erlauben, wird eine Modifizierung des Formats für die Seitenbandnachrichten
vorgenommen. Unter Bezugnahme auf 39 wird
eine modifizierte Seitenbandnachricht gezeigt, die in einem bevorzugten
Ausführungsbeispiel
der vorliegenden Erfindung verwendet wird. Die Seitenband-Nachricht
ist, mit Ausnahme der Hinzufügung
eines S-Bits für
die Quelle, identisch mit dem Format der Seitenband-Nachricht, das
unter Bezugnahme auf 6 weiter oben gezeigt und beschrieben
wurde. Das S-Bit für
die Quelle erlaubt es einem SOC 10, den Urheber einer Seitenband-Nachricht
zu bestimmen, um zu entscheiden, ob die Seitenband-Nachricht über den
ICL an einen anderen SOC 10 verbreitet werden soll oder
nicht. Wenn unter Bezugnahme auf 40 der
ICL B beispielsweise eine Seitenband-Nachricht von dem ICL A empfängt, bestimmt
er auf der Grundlage des Quell-Bits, die Seitenband-Nachricht nicht
an den SOC 10A zurück
zu verbreiten. Andernfalls käme
es jedes Mal, wenn eine Seitenband-Nachricht durch einen Switch über den
ICL empfangen wird, zu einer Endlosschleife. Fachleute mit normalen
Kenntnissen auf diesem Gebiet werden verstehen, dass der Austritt
der ICL-Ports so konfiguriert sein kann, dass er die S-Kanäle mittels "Snooping" überprüft, um sie auf Seitenband-Nachrichten
zu überwachen
und diese Bestimmung vorzunehmen.
-
Obwohl
jeder SOC 10 nur 14 Ports aufweist (12 Ethernet-Ports,
2 Gigabit-Ports),
wird ein Bitmuster von 28 Ports für die Nachricht verwendet.
Jedem Eintritts-Port
ist seine entsprechende Port-Nummer auf der Grundlage der Modul-ID
(oben bezeichnet, beispielsweise SOC 10A oder SOC 10B),
die generische Port-Nummer (0–13)
und der Stack-Status bekannt. Das Port-Bitmuster aus 39 ist daher 0–13 und 14–27. Dieses Port-Bitmuster
wird nur für
Seitenband-Benachrichtigungen verwendet, es wird nicht zum Erlernen
von Adressen zwischen den Chips verwendet.
-
Wie
oben erläutert,
handelt es sich bei dem S-Kanal um einen für jeden SOC 10 lokalen
Kanal. Daher gibt es in dem vorliegenden Ausführungsbeispiel zwei Möglichkeiten,
um Seitenband-Nachrichten zwischen dem SOC 10A und dem
SOC 10B zu senden. Die erste Möglichkeit besteht darin, einen
MAC-Steuerrahmen zu verwenden (Media Access Control), und die zweite
besteht darin, jeweils eine Schaltung zwischen den einzelnen Switches
vorzusehen. In dem aktuellen IEEE-Standard für die MAC-Steuerung ist nur
der MAC-Steuercode 00-01 (hexadezimaler Befehlscode) für einen
PAUSE-Rahmen definiert. Demgemäß können andere Codes
hinzugezogen werden, um Seitenband-Nachrichten zwischen dem SOC 10A und
dem SOC 10B weiterzugeben.
-
Die
folgende Tabelle zeigt das Format eines MAC-Steuerrahmens, das in
dem vorliegenden Ausführungsbeispiel
verwendet wird. Das Feld "pause_time" wird nicht verwendet,
um mögliche
Fehlinterpretationen dieser Nachricht zu verhindern. Es wird empfohlen,
das Feld PARAMETERS auf null zu setzen. Der MAC-Steuerrahmen ist
nach dem Stand der Technik wohl bekannt, und Fachleute mit normalen
Kenntnissen auf diesem Gebiet werden die Tabelle 1 hinsichtlich
der Oktette ohne Weiteres verstehen.
-
Tabelle
1: Proprietärer
MAC-Steuerrahmen
-
Unter
Bezugnahme auf 40 umfasst jeder SOC 10 eine
MAC-Steuerungs-Unterschicht,
die sich zwischen der MAC-Unterschicht und der MAC-Client-Unterschicht
befindet. Die MAC-Steuerungs-Unterschicht erkennt MAC-Steuerrahmen
und reagiert auf diese. Die Zieladresse für einen MAC-Steuerrahmen ist bevorzugt
die global zugewiesene Mehrfachsende-Adresse '01-80-C2-00-00-01', bei der es sich um dieselbe handelt
wie für
einen PAUSE-Rahmen. Daher aktivieren Vorrichtungen, die den PAUSE-Rahmen
implementieren, den Empfang von Rahmen mit dieser global zugewiesenen
Mehrfachsende-Adresse. Die Verwendung der wohl bekannten Mehrfachsende-Adresse
enthebt die MAC-Steuerungs-Unterschicht und ihre Clients der Notwendigkeit,
die MAC-Adresse des anderen Switches zu kennen. Es sei angemerkt,
dass PAUSE-Rahmen nur von Switches übertragen werden können, die
für den
Vollduplex-Betrieb konfiguriert sind, und per definitionem können sich
in einem Vollduplex-Netzwerk nur zwei Vorrichtungen befinden. Wenn
ein Switch einen PAUSE-Rahmen überträgt, leiten "IEEE 802.1D-konforme" Bridges den Rahmen
nicht an das übrige
Netzwerk weiter.
-
Es
folgt eine Beschreibung der Felder des MAC-Steuerrahmens.
-
Das
Feld SOURCE ADDRESS (Quelladresse) enthält die 48 Bit lange Adresse
der Vorrichtung, die den PAUSE-Rahmen sendet.
-
Das
Feld LENGTH/TYPE (Länge/Typ)
kennzeichnet den Rahmen als MAC-Steuerrahmen.
Das 2 Oktett lange Feld enthält
den Hexadezimalwert 88-08. Dabei handelt es sich um eine Interpretation
des Typs, der Wert wurde für
die MAC-Steuerung von LANs des Typs CSMA/CD zugewiesen.
-
Das
Feld OPCODE (Befehlscode) kennzeichnet den MAC-Steuerrahmen als
PAUSE-Rahmen. Das 2 Oktett lange Feld enthält den Hexadezimalwert 00-01.
Da alle übrigen
Werte reserviert (nicht definiert) sind, ist dies der einzige gültige vordefinierte
Befehlscode.
-
Das
Feld PARAMETERS (Parameter) enthält
die für
den Befehlscode spezifischen Parameter für den MAC-Steuerrahmen. Das
Feld PARAMETERS enthält
eine Anzahl von ganzen Oktetten. Für PAUSE-Rahmen ist nur ein
Parameter erforderlich, zukünftige
MAC-Steuerrahmen können
jedoch null, einen oder viele Parameter enthalten. Der Parameter
für PAUSE-Rahmen
heißt "request_operand". Für jeden
PAUSE-Code enthält der "request_operand" den Wert "pause_time".
-
Bei
der variablen "pause_time" handelt es sich
um eine 2 Oktett lange Ganzzahl ohne Vorzeichen, welche die Länge der
Zeit enthält,
während
der angefordert wird, dass die Empfangsstation die Übertragung
von Daten unterdrückt. "pause_time" wird in Einheiten
namens "pause_quanta" gemessen, was gleich
512 Bit-Zeiten ist.
Wenn eine Station einen PAUSE-Rahmen überträgt, wobei bei "re quest_operand" der Wert für "pause_time" auf 1000 gesetzt
ist und die Empfangsstation PAUSE-Rahmen akzeptiert, sollte die
Empfangsstation die Übertragung
von Rahmen für
("pause_time" mal "pause_quanta") bzw. (1000 × 512) =
512.000 Bit-Zeiten
(512 ms bei Gigabit-Ethernet) unterdrücken. Der Wertebereich für "pause_time" beträgt 0 bis
65.535 "pause_quanta". Somit beträgt der maximale
Zeitraum, für
den eine Station mit einem PAUSE-Rahmen anfordern kann, dass die Übertragung
unterdrückt
wird, (65.535 × 512)
= 33.553.920 Bit-Zeiten (33.554 ms bei Gigabit-Ethernet).
-
Das
reservierte Feld wird verwendet, wenn das Feld PARAMETERS die festgelegte
Länge des MAC-Steuerrahmens
nicht ausfüllt.
Die Länge
des reservierten Feldes wird durch die Länge des Feldes für die MAC-Steuerparameter
und die minimale Rahmengröße bestimmt.
Bei Gigabit-Ethernet beträgt "minFrameSize" 64 Byte. Dies bedeutet,
dass die Länge
des reservierten Feldes bei einem MAC-Steuer-PAUSE-Rahmen 42 Byte beträgt. Das
reservierte Feld wird in Form von Nullen übertragen.
-
Der
MAC hängt
einen 32 Bit umfassenden CRC (Cyclic Redundancy Check) an den MAC-Steuerrahmen
an. Der CRC deckt die Felder ausgehend von der Zieladresse bis zu
dem reservierten Feld ab.
-
Fachleute
mit normalen Kenntnissen auf diesem Gebiet werden den Aufbau dieses
MAC-Steuerrahmens sowie die Konfiguration der MAC-Schichten, des
Eintritts und des Austritts zur Ausführung der in diesem Dokument
beschriebenen Funktionen ohne Weiteres verstehen. Befehlscodes werden
verwendet, um die verschiedenen Statusbenachrichtigungen für die Übertragungsgeschwindigkeitssteuerung
(COS, HOL, usw.) zu kennzeichnen. Wenn beispielsweise eine COS-Warteschlangenstatus-Benachrichtigung
auf einem SOC 10A vorhanden ist, ist die Austrittsseite
des ICL A auf dem S-Kanal empfangsbereit und empfängt die
Seitenband-Nachricht
von dem S-Kanal. Dann prüft
der Austritt des ICL A, der Bestandteil der MAC-Steuerungs-Unterschicht
ist, das S-Bit der von dem S-Kanal empfangenen Seitenband-Nachricht.
Wenn die Nachricht von dem SOC 10A stammte, wird dadurch
ein MAC-Steuerrahmen gemäß den vorgenannten
Codes aufgebaut, und diese Seitenband-Nachricht wird an den SOC 10B weitergegeben.
Wenn die Seitenband-Nachricht
von dem SOC 10B stammt, bestimmt der Austritt des ICL A
anhand des Quell-Bits, dass sie von dem SOC 10B kommt und
gibt diese Seitenband-Nachricht weiter. Die Austrittsseite eines
ICL-Ports ist so konfiguriert, dass sie einen MAC-Steuerrahmen über den
ICL zu dem anderen ICL-Port überträgt. Wenn
die Eintrittsseite eines ICL, die Bestandteil der MAC-Steuerungs-Unterschicht
ist, einen MAC-Steuerrahmen
empfängt,
prüft sie
zunächst,
ob der Befehlscode = '0001' ist. Wenn dies der
Fall ist, wird die Prozedur des PAUSE-Rahmens ausgeführt. Andernfalls
werden die unnötigen
Felder entfernt, und die Seitenband-Nachricht wird an ihren lokalen Seitenband-Nachrichtenbus
(S-Kanal) weitergegeben, und die Seitenband-Nachricht wird in ähnlicher Weise wie bei der
unter Bezugnahme auf 1 bis 19 beschriebenen
internen S-Kanal-Kommunikation verarbeitet. Demgemäß können unter
Verwendung von MAC-Steuerrahmen Nachrichten zur Übertragungsgeschwindigkeitssteuerung
(zum Beispiel COS-Statusbenachrichtigung, HOL-Blocking-Benachrichtigung,
usw.) zwischen dem SOC 10A und dem SOC 10B gesendet
werden.
-
Die
zweite Möglichkeit,
um Seitenband-Kommunikation zwischen dem SOC 10A und dem
SOC 10B bereitzustellen, um Informationen zur Übertragungsgeschwindigkeitssteuerung
weiterzugeben, besteht darin, einen separaten Seitenband-Bus (nicht gezeigt)
zwischen dem SOC 10A und dem SOC 10B hinzuzufügen, indem
beispielsweise zusätzliche
externe Pins jedes SOC 10 verwendet werden. Bei einigen
Switch-Konfigurationen, wie beispielsweise mehreren Switches auf
einer einzelnen gedruckten Schaltung (PCB) kann das Hinzufügen eines
separaten externen Busses zu einer PCB eine zusätzliche Erschwernis für die PCB-Konstruktion
bedeuten, da die Signalisierung bei extrem hohen Geschwindigkeiten
erfolgt. Die Verzögerung,
die durch solche zusätzlichen
Schaltungselemente verursacht wird, könnte es sehr erschweren, die
Anforderungen hinsichtlich der Einrichtungszeit des ICL zu erfüllen. Die
Verwendung des MAC-Steuerrahmenschemas erfordert keine zusätzlichen
externen Schaltungselemente. Daher ist der MAC-Steuerrahmen das
bevorzugte Verfahren, um Seitenband-Nachrichten weiterzugeben. Detailliertere
Erörterungen
bezüglich
der Übertragungsgeschwindigkeitssteuerung über den
ICL folgen unten.
-
In
der vorliegenden Erfindung werden Berechnungen der Zellenanzahl
auf dieselbe Weise durchgeführt,
wie weiter oben bereits für
die ICL-Ports erläutert.
Bei den ICL-Ports wird die Zellenanzahl aller von einem Switch zu
einem anderen Switch übertragenen
Pakete, beispielsweise von dem SOC 10A zu dem SOC 10B,
insgesamt berechnet, um zu bestimmen, ob eine Übertragungsgeschwindigkeitssteuerung
an dem ICL-Port ausgelöst
werden soll oder nicht.
-
Demgemäß kann durch
Anwendung der oben beschriebenen Systeme und Verfahren zur Übertragungsgeschwindigkeitssteuerung
auf das vorliegende Ausführungsbeispiel
die Nachrichtenübertragung
für die Übertragungsgeschwindigkeitssteuerung
zwischen zwei verbundenen Switches über einen ICL bereitgestellt werden,
um eine einzelne Vorrichtung 3800 vorzusehen, die in der
Lage ist, ARL, Trunk-Gruppierung und Übertragungsgeschwindigkeitssteuerung
(HOL-Blocking, COS-Statusbenachrichtigung, usw.) vorzusehen. Aufgrund
der Konfiguration des vorliegenden Ausführungsbeispiels und der beschriebenen
Verwendung des ICL werden jedoch nachfolgend zusätzliche Merkmale der Übertragungsgeschwindigkeitssteuerung
beschrieben, die zur Verbesserung der Leistung der Vorrichtung implementiert
werden können.
-
Wie
weiter oben bereits beschrieben, wird bei allen Ports, bei denen
es sich nicht um ICL-Ports handelt, die Anzahl der empfangenen Zellen
jedes Eintritts-Ports berechnet, um zu bestimmen, ob eine Staudruck-Warnnachricht
ausgelöst
werden soll oder nicht. Auf ähnliche
Weise wird die Zellenanzahl jeder Service-Klasse jedes Austritts-Ports
berechnet, um zu bestimmen, ob die COS-Warteschlangenstatus-Benachrichtigung
ausgelöst
werden soll oder nicht. Außerdem
wird der Paketzeiger jedes Austritts-Ports berechnet, um zu bestimmen,
ob die HOL-Warteschlangenstatus-Benachrichtigung ausgelöst werden
soll oder nicht. Bei ICL-Ports hingegen wird eine etwas andere Möglichkeit
verwendet, um diese Referenzzahlen zu berechnen. Für einen
ICL-Port eines Switches (beispielsweise SOC 10A) wird die
Zellenanzahl aller Pakete, die für
einen verbundenen Switch (beispielsweise SOC 10B) bestimmt
sind, als Ganzes berechnet, um zu bestimmen, ob die HOL-Warteschlangenstatus-Benachrichtigung
auf dem ICL ausgelöst
werden soll oder nicht. Außerdem wird
die Anzahl der Paketzeiger aller Pakete, die über den ICL gesendet werden
sollen, als Ganzes berechnet, um zu bestimmen, ob die COS-Warteschlangenstatus-Benachrichtigung
auf dem ICL ausgelöst
werden soll oder nicht.
-
Unter
Bezugnahme auf 42 sollen das folgende Beispiel
betrachtet werden. 42 zeigt die Vorrichtung 3800 mit
Netzwerkvorrichtungen (beispielsweise PCs, Server, usw.), die an
die Ports 1, 2 und 3 mit einer Übertragungsgeschwindigkeit
von 10 Mbps und an die Ports 12, 15–17 und 26 mit einer Übertragungsgeschwindigkeit
von 100 Mbps angeschlossen sind. Es soll davon ausgegangen werden,
dass die Anzahl der Zellen, die sich an dem Port 1, dem Port 2 und
dem Port 3 angesammelt haben, den Höchststand überschritten hat. Die PMMU
auf dem SOC 10A sendet unter Verwendung des Seitenbandkanals
eine COS/HOL-Nachricht an den S-Kanal. Alle Eintritts-Manager auf
dem SOC 10A kopieren diese Nachricht in ihr aktives Port-Register, und
es werden von dem SOC 10A keine weiteren Pakete gesendet,
die für
den Port 1, den Port 2 und den Port 3 bestimmt sind. Diese
COS/HOL-Nachricht wird außerdem
unter Verwendung eines MAC-Steuerrahmens wie oben beschrieben an
den SOC 10B weitergegeben. Daher senden alle Eintritts-Ports auf dem SOC 10B keine Pakete
an diesen Port 1, Port 2 und Port 3. Es soll außerdem davon ausgegangen werden,
dass die Anzahl der Zellen, die sich an dem Eintritt des ICL A angesammelt
haben, ebenfalls den Höchststand überschritten hat.
Deshalb setzt die PMMU des SOC 10A eine Staudruck-Warnnachricht
für den
ICL A ab. Diese Warnnachricht bewirkt, dass der ICL A auf dem SOC 10A einen
PAUSE-Rahmen an den ICL B sendet. Wenn der ICL B den PAUSE-Rahmen
empfängt,
beendet er das Senden von Paketen an den SOC 10A vollständig. In 43a bis 43d sind
die entsprechenden Zähler
in jedem Port auf dem SOC 10A und 10B gezeigt.
-
Datenverkehr
von dem Port 26 an den Port 12 ist weiterhin erlaubt, weil der ICL
A für den
Eintritt des Ports 26 sichtbar ist (das heißt, die ICL-Ports übernehmen
alle Pakete, die für
einen beliebigen Port auf einem mit einem Link verbundenen Switch
bestimmt sind). Da der ICL von dem SOC 10B zu dem SOC 10A jetzt
vollständig
geschlossen ist, erhöhen
sich allerdings der Zellenzähler
und der Paketzähler
des ICL B (Port 14) mit einer Geschwindigkeit von 100 Mbps und erreichen
schnell den COS/HOL-Schwellenwert. Die PMMU auf dem SOC 10B setzt
dann die COS/HOL-Warnnachricht ab. Diese Nachricht ist zunächst für alle Ports
auf dem SOC 10B sichtbar, und alle Eintritts-Ports auf
dem SOC 10B aktualisieren ihr aktives Port-Register. Diese COS/HOL-Warnnachricht
wird allerdings nicht tatsächlich
Einfluss auf den Ziel-Port haben. Mit anderen Worten nutzen Eintritte
diese COS/HOL-Warnnachricht
im Wesentlichen nicht, weil die ARL in dem vorliegenden Ausführungsbeispiel
Pakete direkt an Fast-Ethernet-Ports sendet und niemals ein Ziel-Bitmuster
sendet, bei dem der ICL B (Port 14) als Zieladresse angegeben ist.
-
Da
das Paket auf dem Port 14 nicht heraus übertragen werden kann, erhöht sich
der Zellenzähler
des Eintritts von Port 26 mit derselben Geschwindigkeit (100 Mbps).
Dieser Zähler
wird sehr schnell den Höchststand überschreiten.
Die PMMU setzt eine Rückstau-Warnnachricht
an den Port 26 ab, welche den Rückstauprozess an
dem Port 26 einleitet, und das DTE (Datenendgerät) beendet den Datenverkehr
von dem Port 26 zu dem Port 12. Die zugehörigen Zellenzähler jedes
SOC 10 sind in 44a bis 44d gezeigt.
-
Wie
in dem vorgenannten Beispiel gezeigt, werden vier Ports innerhalb
der Vorrichtung 3800 in einen Zustand der Übertragungsgeschwindigkeitssteuerung
versetzt. Demgemäß werden
Merkmale bereitgestellt, die implementiert werden können, um
die Standard-Übertragungsgeschwindigkeitssteuerung
in dem vorliegenden Ausführungsbeispiel
zu verbessern, indem Probleme bezüglich COS/HOL des ICL vermieden
werden.
-
Um
die Übertragungsgeschwindigkeitssteuerung
in dem vorliegenden Ausführungsbeispiel
zu verbessern, wird vorzugsweise Logik zu dem Eintritts-Manager
hinzugefügt,
weil dies die Stelle ist, an der die Entscheidung bezüglich des
Ziel-Bitmusters getroffen wird. Jedes Mal, wenn die COS/HOL-Nachricht
für den S-Kanal
generiert wird, kopiert der Eintritt die COS/HOL-Bitmusterinformationen
in sein aktives Port-Register. Wenn das aktive Port-Register eines
ICL-Ports in dem Status ACTIVE (aktiv) ist, ändert sich nichts. Wenn das aktive
Port-Register eines ICL-Ports
jedoch in dem Status INACTIVE (inaktiv) ist, kann der Inhalt des
Feldes "Bc/Mc Bitmap" des anderen SOC 10 auf
lauter Nullen gesetzt werden. Wenn das verbleibende Bitmuster vollständig null
ist, wird dieses Paket gelöscht.
Dies führt
dazu, dass keiner der Ports auf dem SOC 10B Pakete an den
Austritt von Port 14 sendet, wenn eine COS/HOL-Nachricht auf dem
Port 14 gesendet wird.
-
Zusätzliche
Maßnahmen
können
ergriffen werden, um zu verhindern, dass es auf dem Port 14 zu einem
Problem bezüglich
COS/HOL kommt. So kann beispielsweise der Staudruck der ICL-Ports überwacht werden.
Wenn die PMMU auf dem SOC 10A eine Staudruck-Warnnachricht
bezüglich
des Ports 13 sendet, sendet der Port 13 einen PAUSE-Rahmen an den
ICL B. Außerdem
nimmt der Austritt von Port 13 nicht nur wie zuvor eine Überwachung
auf eine COS/HOL-Nachricht vor, sondern auch eine Überwachung
auf eine Rückstau-Nachricht.
Der Austritt von Port 13 kann so konfiguriert sein, dass er jedes
Mal, wenn er eine Rückstau-Warnnachricht
empfängt,
die sich auf den Port 13 bezieht (ICL A, beispielsweise über den
S-Kanal), eine COS/HOL-Nachricht für das andere Ende des ICL,
ICL B (Port 14) generiert. Dann gibt der Austritt des Ports 13 diese
COS/HOL-Nachricht an den Port 14 weiter, der die COS/HOL-Nachricht
herauszieht und über
den S-Kanal sendet. Dies bedeu tet, dass ein MAC-Steuerrahmen verwendet
werden kann, um eine COS/HOL-Nachricht für den SOC 10B zu imitieren,
die sich auf den Port 14 bezieht, um alle Ports auf dem SOC 10B daran
zu hindern, Pakete an den Port 14 zu senden.
-
Bei
diesem Ansatz sind mehrere unterstützende Signale erforderlich.
Zunächst
müssen
die Ports, die als ICL-Ports konfiguriert sind, bekannt sein. Zweitens
müssen
jedem ICL (Austritts-Manager) die zum Aufbau einer korrekten COS/HOL-Warnnachricht erforderlichen
Informationen bekannt sein, die von der CPU 52 bereitgestellt
oder in dem Speicher gespeichert sein könnten. Drittens werden zwei
MAC-Steuerrahmen (ein PAUSE-Rahmen und ein proprietärer MAC-Steuerrahmen)
benötigt,
um diese Aufgabe abzuschließen,
was die Bandbreite des ICL verringert. Viertens muss der Austritt
jedes ICL-Ports eine Überwachung
auf eine weitere Seitenband-Nachricht zusätzlich zu der COS/HOL-Warnnachricht
vornehmen.
-
Eine
zweite Maßnahme,
um zu verhindern, dass es auf dem ICL zu Problemen bezüglich COS/HOL kommt,
besteht darin, den ICL so zu konfigurieren, dass er Hilfe von der
PMMU anfordert, wenn ein PAUSE-Rahmen empfangen wird. Wenn die PMMU
auf dem SOC 10A eine Staudruck-Warnnachricht bezüglich des
Ports 13 sendet, kann der Port 13 wie üblich einen PAUSE-Rahmen an
den Port 14 senden. Wenn der Port 14 den PAUSE-Rahmen empfängt, beendet
er das Senden aller Pakete an den Port 13. Der Port 14 kann außerdem so
konfiguriert sein, dass er die PMMU auf dem SOC 10B benachrichtigt,
damit sie für
den S-Kanal eine COS/HOL-Nachricht generiert, die sich auf den Port
14 bezieht. Anders ausgedrückt
kann der Port 14, um einen Rückstau
von Port 14 zu verhindern, wenn der Port 13 einen PAUSE-Rahmen an den Port
14 sendet, so konfiguriert sein, dass er eine Überwachung auf PAUSE-Rahmen
vornimmt und die PMMU benachrichtigt, so dass sie eine COS/HOL-Nachricht
an alle Ports auf dem SOC 10B sendet, damit alle Ports
auf dem SOC 10B daran gehindert werden, Pakete an den Port
14 zu senden.
-
Wenn
der Eintritt des ICL-Ports einen PAUSE-Rahmen empfängt, prüft er zunächst den
Wert für "pause time". Wenn "pause time" nicht gleich null
ist, wird ein Signal an die PMMU gesendet, um die PMMU so zu steuern,
dass sie eine COS/HOL-Nachricht sendet, die sich auf den ICL-Port
bezieht, unabhängig
davon, wie hoch der Zählerwert
an dem Eintritt des ICL ist. Bei dieser COS/HOL-Nachricht handelt
es sich um ein Bitmuster, das alle COS/HOL-Informationen des SOC 10A und
des SOC 10B enthält.
Der Grund, warum dies über die
PMMU erfolgt, liegt dar in, dass die PMMU als Controller für alle Warnnachrichten
bezüglich
der Übertragungsgeschwindigkeitssteuerung
innerhalb eines SOC 10 fungiert. Um den Eintritt des ICL
dazu zu verwenden, eine COS/HOL-Nachricht direkt in den Seitenband-Kanal
einzubringen, muss der Eintritt so konfiguriert sein, dass er die
COS/HOL-Informationen (also die Zähler in jedem Port, usw.) aller übrigen Ports
kennt.
-
Wenn
der Wert für "pause_time" gleich null ist,
sendet der Eintritt ein Signal an die PMMU, um die PMMU so zu steuern,
dass sie keine COS/HOL-Nachricht erzwingt, die sich auf den ICL
bezieht, und die PMMU setzt COS/HOL-Nachrichten allein auf der Grundlage
der Zähler
ab. Nachdem die PMMU dieses Signal empfangen hat, sendet sie üblicherweise
eine COS/HOL-Nachricht, wobei das ICL-Bit auf null gesetzt ist. Wenn
jedoch der Austrittszähler
des ICL gleichzeitig ebenfalls den Höchststand überschritten hat, braucht die PMMU
unter Umständen,
je nach Implementierung, keine COS/HOL-Nachricht zu senden.
-
Wenn
man die vorgenannten beiden Verfahren vergleicht, stellt man fest,
dass bei der zweiten Lösung keine
Informationen darüber
erforderlich sind, welcher Port auf dem anderen SOC 10 als
ICL konfiguriert ist. Auch ist weniger Kommunikation über den
ICL zum Austausch von Informationen bezüglich der Übertragungsgeschwindigkeitssteuerung
erforderlich. Dies führt
dazu, dass durch die zweite Lösung
die Anzahl von MAC-Steuerrahmen, die über den ICL gesendet werden,
nicht erhöht
wird, und dass daher die Bandbreite für den Datenaustausch über den
ICL nicht verringert wird. Ferner braucht der Austritt nur eine Überwachung
auf die COS/HOL-Nachricht vorzunehmen. Ein Nachteil besteht jedoch
darin, dass es bei dem zweiten Verfahren erforderlich ist, die PMMU
so zu konfigurieren, dass sie die COS/HOL-Nachricht sendet, wenn
ein PAUSE-Rahmen an dem ICL-Port empfangen wird.
-
Da
ein Schema zur Übertragungsgeschwindigkeitssteuerung über Dual-Switches
vorgeschlagen wird, nimmt der Austritt jedes ICL die Überwachung
auf die COS/HOL-Nachricht vor. Wenn die COS/HOL-Nachricht von seiner
lokalen PMMU stammt (was durch Verwendung des Felds "S Bit" (Quell-Bit) in der
Seitenband-Nachricht
bestimmt wird), baut der Austritts-Port des ICL anhand der COS/HOL-Nachricht einen MAC-Steuerrahmen
auf und gibt diesen MAC-Steuerrahmen an den anderen Switch weiter.
Die Verwendung des MAC-Steuerrahmens bietet den Vorteil, dass die
Anzahl der Pins verringert wird und weniger Datenbandbreite auf
dem ICL verbraucht wird. Demgemäß ist ein
Verfahren zum Verbessern der Übertragungsgeschwindigkeitssteuerung
innerhalb der Vorrichtung 3800 definiert.
-
Eine
weitere Maßnahme,
die zum Verbessern der Übertragungsgeschwindigkeitssteuerung
getroffen werden kann, besteht darin, den Austritt des ICL leicht
zu verändern,
um nur dann COS/HOL-Nachrichten über den
MAC-Steuerrahmen weiterzugeben, wenn der ICL nicht den einzigen
Unterschied zwischen der jüngsten COS/HOL-Nachricht
und der vorherigen COS/HOL-Nachricht bildet.
-
45 veranschaulicht ein Ablaufdiagramm eines Verfahrens
zum Implementieren des oben beschriebenen Switches mit Übertragungsgeschwindigkeitssteuerung über den
ICL. Die Verarbeitung beginnt bei Schritt S45-1 und wird sofort
bei Schritt S45-2 fortgesetzt. In Schritt S45-2 wird in einer Dual-Switch-Konfiguration,
wie sie unter Bezugnahme auf 38 oben
gezeigt und beschrieben wurde, ein Switch (SOC 10) als
Switch 1 bezeichnet, und der andere Switch wird als Switch 2 bezeichnet.
Diese Bezeichnung wird verwendet, um die Ports jedes Switches, die
normalerweise generische Port-Namen aufweisen (beispielsweise 0–13), durch
ein eindeutiges Nummerierungsschema zu identifizieren. Die Bezeichnung
kann erfolgen, indem ein externer Pin des Chips bzw. der Schaltung,
in welcher der Switch implementiert ist, an Masse oder an eine Versorgungsspannung
gelegt wird. Die Bezeichnung kann durch die CPU, beispielsweise
durch die CPU 52, bei der Konfiguration erfolgen, und ARL-Tabellen
und dergleichen können
modifiziert werden, um mit der Bezeichnung in Beziehung stehende
Informationen zu speichern.
-
Als
Nächstes
werden in Schritt S45-3 die Ports jedes bezeichneten Switches auf
geeignete Weise zum Zweck der ARL, der COS/HOL-Benachrichtigung,
usw. neu nummeriert. Wie weiter oben bereits beschrieben, können die
Ports des Switches 1 und des Switches 2 (A und B) beispielsweise
mit 0–13
bzw. 14–27
nummeriert werden. Die CPU 52 kann die verschiedenen Komponenten
jedes geeigneten Switches so programmieren, dass die Port-Nummernschemata
verwendet werden, und die ARL-Tabellen können so aktualisiert werden, dass
sie die neue Port-Bezeichnung handhaben können, so dass im Wesentlichen
eine gemeinsame Suchtabelle für
Pakete vom Typ "Unicast" verwendet wird.
-
Als
Nächstes
wird in Schritt S45-4 an einem Port eines Switches ein Paket empfangen,
das für
einen Port auf dem anderen Switch bestimmt ist. In Schritt S45-5 fügt der Austritts-Manager
des ICL-Ports ein IS-Tag in das Paket ein, das Quell-Port-Daten enthält, die
sich auf die oben vorgenommenen Bezeichnungen beziehen, beispielsweise
die Bezeichnung des Chips, die Bezeichnung des Ports und die zugehörige MAC-Adresse. Wenn
der Eintritts-Manager des ICL-Ports das Paket über den ICL empfängt, liest
er in Schritt S45-6 das IS-Tag, aktualisiert die ARL-Daten und entfernt
das Tag.
-
In
Schritt S45-7 wird das Paket auf der Grundlage der Daten aus dem
IS-Tag (durch die ARL) zugestellt, und die Verarbeitung endet bei
Schritt S45-8.
-
46 veranschaulicht ein Ablaufdiagramm eines Verfahrens,
um eine Übermittlung
von Nachrichten zur Übertragungsgeschwindigkeitssteuerung
zwischen Chips in einer Dual-Switch-Konfiguration, wie der oben beschriebenen
Vorrichtung 3800, bereitzustellen. Die Verarbeitung beginnt
bei Schritt S46-1 und wird sofort bei Schritt S46-2 fortgesetzt.
In Schritt S46-2 ist der ICL (Austritts-Manager des ICL-Ports) mit dem Switch
(auf beiden Seiten) auf dem S-Kanal empfangsbereit für Seitenband-Nachrichten.
Wenn er eine Seitenband-Nachricht empfängt, bestimmt er in Schritt
S46-3, ob es sich um eine Nachricht zur Übertragungsgeschwindigkeitssteuerung,
wie beispielsweise eine COS/HOL-Statusnachricht, usw., handelt.
Wenn dies der Fall ist, wird der Prozess bei Schritt S46-4 fortgesetzt;
andernfalls kehrt der Prozess zu Schritt S46-2 zurück.
-
In
Schritt S46-4 wird anhand des Quell-Bits der Seitenband-Nachricht
bestimmt, ob es sich um eine lokale Seitenband-Nachricht handelt,
oder ob sie von dem anderen Switch stammt (das heißt eine
Nachricht von dem SOC 10A zu dem SOC 10B wäre gerade
an den ICL B übertragen,
in eine Seitenband-Nachricht konvertiert und dann an den S-Kanal
gesendet worden). Wie weiter oben beschrieben, wird das Quell-Bit
zu der Nachrichtenübermittlung
auf dem Seitenband hinzugefügt,
um die Überwachung
mittels Snooping auf dem ICL zu erlauben. Wenn es sich um eine lokale
Nachricht handelt, wird die Verarbeitung bei Schritt S46-5 fortgesetzt,
andernfalls kehrt die Verarbeitung zu Schritt S46-2 zurück.
-
In
Schritt S46-5 wird ein MAC-Steuerrahmen erzeugt, der die Nachricht
enthalten soll. Wie weiter oben bereits beschrieben, kann die MAC-Steuerungs-Unterschicht
jedes SOC 10 so konfiguriert werden, dass sie Nachrichten
erzeugt, die sich auf Nachrichten zur Übertragungsgeschwindigkeitssteuerung
beziehen, beispiels weise durch Hinzufügen von Befehlscodes, die dem
Typ der Nachricht entsprechen, und durch Hinzufügen von Parametern, welche
die Einzelheiten der Nachricht beinhalten (Port, MAC-Adresse, usw.).
-
In
Schritt S46-6 wird der MAC-Steuerrahmen über den ICL an den anderen
Chip weitergegeben, der in Schritt S46-7 bestimmt, dass in dem MAC-Steuerrahmen
eine Nachricht zur Übertragungsgeschwindigkeitssteuerung
enthalten ist. In Schritt S46-8 wird die Nachricht aus dem MAC-Steuerrahmen
herausgezogen, und es wird eine dem MAC-Steuerrahmen entsprechende
Seitenband-Nachricht erzeugt und an den S-Kanal des Switches gesendet.
Die Verarbeitung wird dann bei Schritt S46-9 beendet.
-
47 veranschaulicht ein Ablaufdiagramm eines Verfahrens
zum Durchführen
einer Übertragungsgeschwindigkeitssteuerung über den
ICL in einer weiter oben unter Bezugnahme auf 38 bis 46 bereits
erörterten
Vorrichtungskonfiguration. Die Verarbeitung beginnt bei Schritt
S47-1 und wird sofort bei Schritt S47-2 fortgesetzt. In Schritt
S47-2 überwacht
der ICL-Port mittels Snooping den ICL auf eine Nachricht zur Übertragungsgeschwindigkeitssteuerung,
wie beispielsweise eine in einen MAC-Steuerrahmen eingebettete COS/HOL-Nachricht.
Wie weiter oben bereits beschrieben, kann eine Vielzahl von Konfigurationen
es dem Eintritts-Manager des ICL-Ports erlauben zu bestimmen, ob
eine Staudruck- oder COS/HOL-Nachricht über den ICL übertragen
wird.
-
Wenn
in Schritt S47-3 bestimmt wird, dass es sich bei einer Nachricht
um eine Nachricht zur Übertragungsgeschwindigkeitssteuerung
handelt, wird die Verarbeitung bei Schritt S47-4 fortgesetzt. Andernfalls kehrt
die Verarbeitung zu Schritt S47-2 zurück.
-
In
Schritt S47-4 wird bestimmt, ob sich die Nachricht zur Übertragungsgeschwindigkeitssteuerung
auf einen ICL-Port bezieht. Wenn dies der Fall ist, wird die Verarbeitung
bei Schritt S47-5 fortgesetzt, andernfalls wird die Nachricht zur Übertragungsgeschwindigkeitssteuerung
in Schritt S47-7 auf normale Weise gehandhabt, wie unter Bezugnahme
auf 46 beschrieben.
-
Da
die Nachricht sich auf den ICL bezieht, wird in Schritt S47-5 eine
Nachricht generiert, um jegliche potenziellen Probleme hinsichtlich
des Staudrucks in dem ICL zu beseitigen. Wie weiter oben unter Bezugnahme
auf 38 bis 44 beschrieben
wurde, wird demgemäß eine geeignete
COS/HOL-Nachricht aufgebaut, die sich auf alle Ports auf dem anderen
Switch bezieht (beispielsweise 0–13 des SOC 10A, wenn
die Verarbeitung auf dem ICL des SOC 10B erfolgt), und
in Schritt S47-6
auf dem S-Kanal gesendet, so dass Images jedes Ports die COS/HOL-Nachricht
wie oben beschrieben handhaben können.
-
Die
Verarbeitung endet bei Schritt S47-8.
-
Demgemäß werden
Systeme und Verfahren zum Verbinden von zwei Switches bereitgestellt,
um eine einzelne Vorrichtung vorzusehen, die Funktionen zum Erlernen
von Adressen und damit verwandte Funktionen zur Flusssteuerung umfasst,
sowie Funktionen zur Übertragungsgeschwindigkeitssteuerung
zwischen den beiden Switches über
den Link. Es wird ein Mittel zum Bezeichnen jedes Switches und der
zugehörigen
Ports bereitgestellt, um die ARL-Funktionalität zu verbessern. Die Übermittlung
von Seitenband-Nachrichten zwischen den Switches wird über die
MAC-Steuerung bereitgestellt. Des Weiteren wird eine Funktionalität zur Übertragungsgeschwindigkeitssteuerung
bereitgestellt, die Probleme hinsichtlich des Head-of-Line-Blocking und
Rückstauprobleme
auf dem Link verhindert.
-
Obwohl
die Erfindung auf der Grundlage dieser bevorzugten Ausführungsbeispiele
beschrieben wurde, wäre
es für
den Fachmann auf diesem Gebiet offensichtlich, dass gewisse Modifikationen,
Variationen und alternative Konstruktionen unter Beibehaltung des
Schutzumfangs der Erfindung offensichtlich wären. Beispielsweise werden
die spezifischen Konfigurationen des Paketflusses im Hinblick auf
eine Switch-Konfiguration wie die des SOC 10 erörtert. Es
sei allerdings angemerkt, dass andere Switch-Konfigurationen verwendet werden
könnten,
um die Erfindung in vorteilhafter Weise zu nutzen. Um die Grenzen
der Erfindung zu bestimmen, ist daher Bezug auf die angehängten Ansprüche zu nehmen.