-
HINTERGRUND DER ERFINDUNG
-
Gebiet der Erfindung
-
Die
Erfindung betrifft ein Verfahren und ein System zum Spiegeln von
Daten gemäß dem Oberbegriff des
Anspruchs 1 bzw. des Anspruchs 8, zur Hochleistungsvermittlung in
lokalen Kommunikationsnetzwerken, wie beispielsweise Token-Ring,
ATM, Ethernet, Fast-Ethernet und Gigabit-Ethernet-Umgebungen, die
im allgemeinen als LANs bekannt sind. Insbesondere betrifft die
Erfindung eine neue Vermittlungsarchitektur in einer integrierten
und modularen Einzel-Chip-Lösung,
die auf einem Halbleitersubstrat wie beispielsweise einem Siliziumchip
implementiert werden kann.
-
Beschreibung des verwandten
Stands der Technik
-
Nachdem
sich die Computerleistung in den vergangenen Jahren erhöht hat,
haben sich die Anforderungen an Computernetzwerke beträchtlich
erhöht;
schnellere Computerprozessoren und höhere Speicherfähigkeiten
erfordern Netzwerke mit der Fähigkeit
einer hohen Bandbreite, um eine Hochgeschwindigkeitsübertragung
von beträchtlichen
Datenmengen zu ermöglichen.
Die wohlbekannte Ethernet-Technologie, die auf zahlreichen IEEE-Ethernet-Standards basiert,
ist ein Beispiel einer Computernetzwerktechnologie, die verändert und
verbessert werden konnte, um eine gangbare Computertechnologie zu
bleiben. Eine vollständigere Erörterung
von Netzwerksystemen aus dem Stand der Technik kann beispielsweise
in SWITCHED AND FAST ETHERNET von Breyer und Riley (Ziff-Davis 1996)
und zahlreichen IEEE-Veröffentlichungen
in Bezug auf die IEEE-802-Standards gefunden werden. Basierend auf
dem Open-Systems-Interconnect-(OSI)-7-Ebeneen-Referenzmodell sind die Netzwerkfähigkeiten
durch die Entwicklung von Repeatern, Bridges, Routern und erst kürzlich "Switches" angewachsen, die
mit verschiedenen Arten von Kommunikationsmedien arbeiten. Thickwire,
Thinwire, Twisted Pair und optische Fasern sind Beispiele von Medien,
die für
Computernetzwerke verwendet worden sind. Switches, sowie sie sich
auf Computernetzwerke und Ethernet beziehen, sind Hardware-basierte
Vorrichtungen, die den Fluss von Datenpaketen oder Zellen auf der
Grundlage von Zieladressinformationen steuern, die in jedem Paket
verfügbar
sind. Ein auf geeignete Weise konstruierter und implementierter
Switch sollte in der Lage sein, ein Paket zu empfangen und das Paket
an einen geeigneten Ausgangsport bei sogenannter Leitungsgeschwindigkeit
oder Kabelgeschwindigkeit zu vermitteln, welches die maximale Geschwindigkeit
des bestimmten Netzwerks ist. Die Leitungsgeschwindigkeit eines
Basis-Ethernet ist bis zu 10 Megabit pro Sekunde und die von Fast-Ethernet
ist bis zu 100 Megabit pro Sekunde. Auf das neueste Ethernet wird
als Gigabit-Ethernet Bezug genommen und es ist in der Lage, Daten über ein
Netzwerk bei einer Rate von bis zu 1000 Megabit pro Sekunde zu übertragen.
Da die Geschwindigkeit sich erhöht
hat, wurden Design-Einschränkungen
und Design-Anforderungen
mehr und mehr komplex in Bezug auf das Befolgen von geeigneten Konstruktions-
und Protokoll-Regeln und das zur Verfügung stellen von günstigen
und kommerziell anwendbaren Lösungen.
Beispielsweise erfordert die Hochgeschwindigkeitsvermittlung einen
Hochgeschwindigkeitsspeicher, um ein geeignetes Puffern von Paketdaten
bereit zu stellen; herkömmlicher,
dynamischer Speicher mit wahlfreiem Zugriff (DRAM) ist relativ langsam
und erfordert einen hardwaregetriebenen Refresh. Die Geschwindigkeit
von DRAMs als Pufferspeicher bei der Netzwerkvermittlung führt daher
dazu, dass wertvolle Zeit verloren geht und es nahezu unmöglich wird,
den Switch oder das Netzwerk bei Leitungsgeschwindigkeit zu betreiben.
Weiterhin sollte die Beteiligung einer externen CPU vermieden werden,
da die Beteiligung einer CPU es ebenso nahezu unmöglich macht,
den Switch bei Leitungsgeschwindigkeit zu betreiben. Da zusätzlich Netzwerksuwitche
immer komplizierter in Bezug darauf werden, dass Regeltabellen und
eine Speichersteuerung erfordert werden, eine komplexe Multi-Chip-Lösung erforderlich
ist, welches eine Logikschaltung erfordert, auf die manchmal als
Verbindungslogikschaltung Bezug genommen wird, um eine Kommunikation
der verschiedenen Chips untereinander zu ermöglichen. Zusätzlich sind
Kompromisse zwischen Kosten und Nutzen erforderlich im Bezug auf
teuere, aber schnelle SRAMs gegenüber günstigen, aber langsamen DRAMs.
Zusätzlich
erfordern DRAMs aufgrund ihrer dynamischen Natur ein Refresh für Speicherinhalte,
um deren Verlust zu vermeiden. SRAMs leiden nicht an dem Erfordernis
des Refresh und besitzen einen verringerten Betriebs-Overhead im
Vergleich zu den DRAMs, wie beispielsweise das Verhindern von Seitenverlusten,
usw. Auch wenn DRAMs die geeignete Geschwindigkeit beim Zugriff
auf der gleichen Seite besitzen, ist die Geschwindigkeit verringert,
wenn auf andere Seiten zugegriffen werden muß.
-
Unter
Bezug auf das OSI-7-Layer-Referenzmodell, das zuvor erörtert und
in 7 dargestellt ist, besitzen die oberen Layer bzw.
Ebenen mehr Informationen. Verschiedene Typen von Produkten sind
verfügbar, um
vermittlungsbezogene Informationen bei verschiedenen Ebenen des
OSI-Modells durchzuführen.
Hubs oder Repeater arbeiten bei Ebene 1 und kopieren und
senden" im Wesentlichen
eingehende Daten zu einer Mehrzahl von Spokes oder Speichen des
Hubs. Vermittlungsbezogene Vonrrichtungen auf Ebene 2 werden üblicherweise
als Multiport-Bridges bezeichnet und sind in der Lage, zwei getrennte
Netzwerke zu verbinden. Bridges können eine Tabelle von Weiterleitungsregeln
aufbauen, auf deren Grundlage MAC-(Media-Access-Controller)-Adressen
auf den Port der Brücke
existieren, und können
Pakete weiterleiten, die für
eine Adresse bestimmt sind, die auf einer entgegengesetzten Seite
der Bridge angeordnet ist. Bridges verwenden üblicherweise einen sogenannten "Spanning Tree"-Algorithmus, um
mögliche
Datenschleifen zu eliminieren; eine Datenschleife ist eine Situation,
in der ein Paket endlos in einem Netzwerk weitergeschleift wird
und dabei eine bestimmte Adresse sucht. Der Spanning-Tree-Algorithmus
definiert ein Protokoll zum Verhindern von Datenschleifen. Ebene-3-Switche,
auf die manchmal als Router Bezug genommen wird, können Pakete
auf der Basis der Zielnetzwerkadresse weiterleiten. Ebene-3-Switche
sind in der Lage, Adressen zu lernen und Tabellen davon zu unterhalten,
die den Port-Zuordnungen entsprechen. Die Verarbeitungsgeschwindigkeit
von Ebene-3-Switches kann verbessert werden, indem eine spezielle
Hochleuistungshardware verwendet wird, und die Host-CPU zu entlasten,
sodass Anweisungsentscheidungen nicht die Paketweiterleitung verzögern.
-
Die
GB
2 333 429 A betrifft gestapelte Kommunikationseinrichtungen,
wobei eine Portspiegelung zwischen Ports auf getrennten Einrichtungen
in einem Stapel von Kommunikationseinrichtungen erreicht wird, indem
ein Protokoll zur Kommunikation innerhalb einer kaskadierten Verbindung,
die den Stapel bildet, geschaffen wird, indem eine Angabe gemacht
wird, ob die Kommunikation zusätzlich
zu dem beabsichtigten Ziel zu dem Spiegelport gesendet werden soll.
-
Die
Aufgabe der vorliegenden Erfindung ist es, ein Verfahren und ein
System zum Spiegeln von Daten zu einem Spiegelport in einer Mehrzahl
von Switches zu schaffen, welche ebenso ein Spiegeln eines Ausgangsports
erlaubt.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Diese
Aufgabe wird durch ein Verfahren gemäß dem Anspruch 1 bzw. ein System
gemäß dem Anspruch
1 erzielt. Vorteilhafte Ausführungsformen
sind in den entsprechenden abhängigen
Ansprüchen
definiert.
-
KURZE BESCHREIBUNG DER
ZEICHNUNGEN
-
Die
Ziele und Merkmale der Erfindung werden einfacher mit Bezug auf
die folgende Beschreibung und die beigefügten Zeichnungen, 1 bis 29A und 30 bis 37 verstanden
werden, die den technischen Hintergrund darstellen, der nützlich zum
Verstehen der vorliegenden Erfindung ist, wobei:
-
1 ein
allgemeines Blockdiagramm von Elementen ist;
-
2 ein
detaillierteres Blockdiagramm eines Netzwerk-Switches ist;
-
3 den
Datenfluss auf dem CPS-Kanal eines Netzwerkswitches darstellt;
-
4A eine Prioritäts-Umlauf-Entscheidung bzw.
Prioritäts-Round-Robin-Entscheidung zum
Zugriff auf den C-Kanal des Netzwerkswitches darstellt;
-
4B den Zugriff auf den C-Kanal auf der Grundlage
der in 4A dargestellten Umlaufentscheidung
darstellt;
-
5 P-Kanal-Nachrichtentypen
zeigt;
-
6 ein
Nachrichtenformat für
S-Kanal-Nachrichtentypen zeigt;
-
7 eine
Darstellung des OSI-7-Ebenen-Referenzmodells ist;
-
8 ein
Betriebsdiagramm eines EPIC-Moduls zeigt;
-
9 das
Unterteilen von einem Datenpaket am Eingang zu einem EPIC-Modul
zeigt;
-
10 eine detaillierte Ansicht von Elementen der
PMMU ist;
-
11 das CBM-Zellenformat zeigt;
-
12 ein Intern-/Extern-Speicherzugangsflussdiagramm
zeigt;
-
13 ein Blockdiagramm eines Ausgangsmanagers 76 zeigt,
der in 10 dargestellt ist;
-
14 mehr Details eines EPIC-Moduls zeigt;
-
15 ein Blockdiagramm eines Schnellfilterprozessors
(FFP) ist;
-
16 ein Blockdiagramm der Elemente von CMIC 40 ist;
-
17 eine Reihe von Schritten zeigt, die zum Programmieren
einer FFP verwendet werden;
-
18 ein Flussdiagramm ist, das den Alterungsprozess
für ARL-(L2)-
und L3-Tabellen
zeigt;
-
19 die Kommunikation unter Verwendung einer Trunk-Gruppe
zeigt;
-
20 eine generische Stapelkonfiguration für Netzwerk-Switche
zeigt;
-
21 ein erstes Ausführungsbeispiel einer Stapelkonfiguration
für Netzwerkswitche
zeigt;
-
22 ein zweites Ausführungsbeispiel einer Stapelkonfiguration
für Netzwerkswitche
zeigt;
-
23 ein drittes Ausführungsbeispiel einer Stapelkonfiguration
für Netzwerkswitche
zeigt;
-
24A ein Paket mit einem darin eingefügten IS-Tag
zeigt;
-
24B die spezifischen Felder des IS-Tags zeigt;
-
25 das Adresslernen in einer gestapelten Konfiguration
zeigt, wie sie in 20 dargestellt ist;
-
26 das Adresslernen ähnlich zur 25 zeigt, aber mit einer Trunk-Konfiguration;
-
27A– 27D ARL-Tabellen zeigen, nachdem die Adressen
gelernt worden sind;
-
28 eine andere Trunk-Konfiguration zeigt;
-
29A die Behandlung von SNMP-Paketen unter Verwendung
einer zentralen CPU und lokalen CPUs zeigt;
-
29B eine Darstellung von gestapelten Netzwerkswitches
mit einer Spiegelung zu Port (MTP) auf SW2 und einem ausgangsgespiegelten
Ausgangsport auf SW3 zeigt;
-
29D eine Darstellung von gestapelten Netzwerk-Switches
ist, die einen eingangsgespiegelten Eingangsport auf SW1, einen
Spiegel auf Port (MTP) auf SW2 und einen ausgangsgespiegelten Ausgangsport auf
SW3 haben;
-
29E und 29F ein
Flussdiagramm der Logik für
das Ausgangsportspiegeln eines Ausführungsbeispiels der vorliegenden
Erfindung ist;
-
29G ein Flussdiagramm der Basislogik für die Ausgangsportspiegelung
der vorliegenden Erfindung ist;
-
29H eine Darstellung eines Stapel-Tag-Format eines
Ausführungsbeispiel
der Erfindung ist;
-
30 das Adresslernen in einer Duplex-Konfiguration
darstellt, wie es in den 22 und 23 dargestellt
ist;
-
31 das Adresslernen in einer Duplex-Konfiguration
unter Verwendung von Trunking bzw. Bündelung darstellt;
-
32A bis 32D ARL-Tabellen
nach dem Adresslernen in einer Duplex-Konfiguration zeigen;
-
33 eine zweite Trunking-Konfiguration im Bezug
auf das Adresslernen zeigt;
-
34A bis 34D ARL-Tabellen
nach dem Adresslernen zeigen;
-
35 mehrere VLANs in einem Stapel zeigt;
-
36 ein Beispiel einer Trunk-Gruppen-Tabellen-Initialisierung
für die
Trunking-Konfiguration
von 31 zeigt; und
-
37 ein Beispiel einer Trunk-Gruppen-Tabellen-Initialisierung
für die
Trunking-Konfiguration
von 33 zeigt.
-
DETAILLIERTE BESCHREIBUNG
DER BEVORZUGTEN AUSFÜHRUNGSBEISPIELE:
-
1 zeigt
eine Konfiguration, bei der ein Switch-On-Chip (SOC) 10 funktionell
mit externen Vorrichtungen 11, einem externen Speicher 12,
Fast-Ethernet-Ports 13 und Gigabit-Ethernet-Ports 15 wirkverbunden ist.
Für die
Zwecke dieses Ausführungsbeispiels
werden die Ethernet-Ports 13 als Ethernet-Ports mit geringer Geschwindigkeit
betrachtet, da sie in der Lage sind, bei Geschwindigkeiten von 10
Mbps bis 100 Mbps betrieben werden zu können, während die Gigabit-Ethernet-Ports 15,
die Hochgeschwindigkeits-Ethernet-Ports sind, zu einem Betrieb bei
1000 Mbps in der Lage sind. Die externen Einrichtungen 11 können andere
Vermittlungsvorrichtungen zum Ausdehnen der Vermittlungsfähigkeiten
sein, oder andere Einrichtungen, wie sie von einer bestimmten Anwendung
erfordert werden können.
Der externe Speicher 12 ist zusätzlicher Off-Chip-Speicher,
der zusätzlich
zu dem internen Speicher ist, der auf dem SOC 10 angeordnet
ist, wie nachstehend erörtert
werden wird. Die CPU 52 kann nach Notwendigkeit zur Programmierung
des SOC 10 mit Regeln verwendet werden, die zur Steuerung
der Paketverarbeitung geeignet sind. Sobald jedoch der SOC 10 auf
geeignete Weise programmiert oder konfiguriert ist, arbeitet der
SOG 10 soweit es möglich
ist auf freilaufende Weise, ohne mit der CPU 52 zu kommunizieren.
Da die CPU 52 nicht jeden Aspekt des Betriebs des SOC 10 steuert,
sind die Anforderungen an die Leistung der CPU 52 zumindest
in Bezug auf den SOC 10 ziemlich niedrig. Eine leistungsschwächere und
daher kostengünstigere
CPU 52 kann daher im Vergleich zu bekannten Netzwerk-Switches
verwendet werden. Wie ebenso nachstehend erörtert werden wird, verwendet
der SOC 10 einen externen Speicher 12 auf effiziente
Weise, sodass die Anforderungen im Bezug auf Kosten und der Leistung
des Speichers 12 verringert werden können. Der interne Speicher
auf dem SOC 10 ist, wie nachstehend erörtert werden wird, ebenso zum
Maximieren des Vermittlungs-Durchsatzes und zum Minimieren der Kosten
konfiguriert.
-
Es
sollte angemerkt werden, dass jede beliebige Anzahl von Fast-Ethernet-Ports 13 und
Gigabit-Ethernet-Ports 15 bereitgestellt werden können. In
einem Ausführungsbeispiel
wird ein Maximum von 24 Fast-Ethernet-Ports 13 und zwei
Gigabit-Puorts 15 bereitgestellt. Auf ähnliche Weise können nach
Notwendigkeit zusätzliche
Zwischenverbindungen zu zusätzlichen
externen Geräten 11,
externem Speicher 12 und CPUs 52 bereitgestellt
werden.
-
Die 2 zeigt
ein detaillierteres Blockdiagramm der Funktionselemente des SOC 10.
Wie aus 2 deutlich wird und wie oben
bemerkt wurde, beinhaltet der SOC 10 eine Vielzahl von
modularen Systemen on-Chip, wobei jedes modulare System, obwohl
es auf dem gleichen Chip ist, funktionell von den anderen modularen
Systemen getrennt ist. Daher kann jedes Modul parallel zu den anderen
Modulen effizient arbeiten und ermöglicht diese Konfiguration
ein beträchtliches
Maß an
Freiheit beim Aktualisieren und Ändern
des SOC 10.
-
Der
SOC 10 beinhaltet eine Vielzahl von Ethernet-Port-Schnittstellen-Controllern
(EPIC) 20a, 20b, 20c, etc.; eine Vielzahl
von Gigabit-Port-Schnittstellen-Controllern (GPIC) 30a, 30b,
usw.; einen CPU-Management-Schnittstellen-Controller (CMIC) 40,
einen Sammelpufferspeicherpool (CBP) 50, eine Pipelinespeichermanagementeinheit
(PMMU) 70 einschließlich
eines Sammelpuffermanagers (CBM) 71 und eine systemweite Busstruktur,
auf die als CPS-Kanal 80 Bezug genommen wird. Die PMMU 70 steht
in Verbindung mit einem externen Speicher 12, der einen
globalen Pufferspeicherpool (GBP) 60 umfasst. Der CPS-Kanal 80 umfasst einen
C-Kanal 81, einen P-Kanal 82 und einen S-Kanal 83.
Auf den CPS-Kanal wird ebenso als Zellprotokollseitenbandkanal Bezug
genommen und ist ein 17 Gbps Kanal, der die verschiedenen Module
miteinander verbindet bzw. aneinander anbindet. Wie es ebenso in 2 dargestellt
ist, können
andere Hochgeschwindigkeitsverbindungen bereitgestellt werden, wie
als eine erweiterbare Hochgeschwindigkeitsverbindung dargestellt.
In einem Ausführungsbeispiel
der Erfindung kann diese Zwischenverbindung in der Form eines Zwischenverbindungsports-Schnittstellencontrollers
(IPIC) 90 sein, der in der Lage ist, eine Schnittstelle
vom CPS-Kanal 80 zu externen Geräten 11 über eine
erweiterbare Hochgeschwindigkeits-Zwischenverbindung zu bilden.
Wie nachstehend erörtert
werden wird, sind jeder EPIC 20a, 20b und 20c,
auf die im allgemeinen als EPIC 20 Bezug genommen wird,
und der GPIC 30a und 30b, auf die im allgemeinen
als GPIC 30 Bezug genommen wird, in enger Wechselbeziehung
mit geeigneter Adressauflösungslogik
und Ebene-Drei-Vermittlungstabellen 21a, 21b, 21c, 31a, 31b,
Regeltabellen 22a, 22b, 22c, 31a, 31b und
VLAN-Tabellen 23a, 23b, 23c, 31a, 31b.
Auf diese Tabellen wird im allgemeinen als 21, 31, 22, 32, 23 bzw. 33 Bezug
genommen. Diese Tabellen sind wie die anderen Tabellen auf dem SOC 10 im
Silizium als zweidimensionale Arrays implementiert.
-
In
einer Vorrichtung unterstützt
jeder EPIC 20 8 Fast-Ethernet-Ports 13 und vermittelt
die Pakete zu und/oder von diesen Ports wie es angezeigt ist. Die
Ports sind daher mit dem Netzwerkmedium (koaxial, twisted pair,
Faser usw.) unter Verwendung bekannter Mediumverbindungstechnologie
verbunden und kommunizieren mit dem CPS-Kanal 80 auf dessen
anderer Seite. Die Schnittstelle von jedem EPIC 20 zu dem
Netzwerkmedium kann über
eine Reduced Media Internal Interface (RMII) bereitgestellt werden,
die eine direkte Verbindung vom Medium zum SOC 10 ermöglicht.
Wie es im Stand der Technik bekannt ist, ist Selbstarbitrierung
ein Gesichtspunkt von Fast-Ethernet, bei dem das Netzwerk in der
Lage ist, eine höchste
Kommunikationsgeschwindigkeit zwischen einer Quelle und einem Ziel
auf der Grundlage der Fähigkeiten
der entsprechenden Geräte
auszuhandeln bzw. zu arbitrieren. Die Kommunikationsgeschwindigkeit
kann wie zuvor bemerkt zwischen 10 Mbps und 100 Mbps variieren;
die Fähigkeit
zur Selbstarbitrierung ist daher direkt in jedes EPIC-Modul eingebaut.
Die Adressauflösungslogik
(ARL) und die Ebene-Drei-Tabellen (ARL/L3) 21a, 21b, 21c,
die Regeltabelle 22a, 22b, 22c und die
VLAN-Tabellen 23a, 23b und 23c sind so
konfiguriert, dass sie Teil von oder Schnittstelle zu dem zugeordneten
EPIC in einer effizienten und zweckmäßigen Weise sind und dass sie
ebenso den Paketfluss bei Leitungsgeschwindigkeit unterstützen.
-
Jeder
EPIC 20 hat getrennte Eingangs- und Ausgangs-Funktionen.
Auf der Eingangsseite kann selbstausgelöstes und CPU-ausgelöstes Lernen
von Ebene-Zwei-Adressinformation auftreten. Die Adressauflösungslogik
(ARL) wird verwendet, um diese Aufgabe zu unterstützen. Die
Adressalterung ist als ein Merkmal eingebaut, um das Speichern von
Adressinformationen zu verhindern, die nicht länger gültig oder nützlich sind. Der EPIC führt ebenso
das Ebene-Zwei-Spiegeln durch. Ein schneller Filterprozessor (FFP) 141 (vergleiche 14) ist in dem EPIC beinhaltet, um das Paketweiterleiten
zu beschleunigen und den Paketfluss zu verbessern. Die Eingangsseite
von jedem EPIC und GPIC (in 8 als
Eingangssubmodul 14 dargestellt), weist ein beträchtliches
Maß an
Komplexität
auf, um in der Lage zu sein, auf geeignete Weise eine beträchtliche
Anzahl von verschiedenen Arten von Paketen zu verarbeiten, die in
den Port eingehen können,
zum Puffern bei Leitungsgeschwindigkeit und dann zur geeigneten Übertragung
an den Ausgang. Funktionell besitzt jeder Port auf jedem Modul auf
dem SOC 10 ein getrenntes Eingangssubmodul 14,
das diesen zugeordnet ist. Vom Gesichtspunkt der Implementierung
jedoch, werden, um den auf dem Einzel-Chip-SOC 10 implementierten
Hardwareumfang zu minimieren, gemeinsame Hardwareelemente in dem
Silizium verwendet, um eine Mehrzahl von Eingangssubmodulen auf
jedem bestimmten Modul zu implementieren. Die hier erörterte Konfiguration des
SOC 10 ermöglicht
gleichzeitige Look-Ups und gleichzeitiges Filtern und daher die
Verarbeitung von bis zu 6,6 Millionen Paketen pro Sekunde. Ebene-Zwei-Look-Ups,
Ebene-Drei-Look-Ups und das Filtern geschehen gleichzeitig, um diese
Leistungsstufe zu erreichen. Auf der anderen Seite ist der EPIC
in der Lage, Paket-Polling zu unterstützen, entweder auf der Grundlage
eines Ausgangs-Managements oder einer Class Of Service (COS) Funktion.
Das Umleiten bzw. das Rerouting und das zeitliche Einteilen bzw.
Scheduling von zu übertragenden
Paketen kann genauso wie die Head-Of-Line (HOL)-Blocking-Notification,
das Paketaltern, das erneute Zusammensetzen von Zellen und andere
Funktionen durchgeführt
werden, die mit einer Ethernet-Port-Schnittstelle verbunden sind.
-
Jeder
GPIC 30 ist ähnlich
zu jedem EPIC 20, aber unterstützt nur einen Gigabit-Ethernet-Port und verwendet
eine portspezifische ARL-Tabelle, anstelle eine ARL-Tabelle zu verwenden,
die mit beliebigen anderen Ports geteilt wird. Zusätzlich ist
jeder GPIC-Port anstelle über
eine RMII mit dem Netzwerkmedium unter Verwendung einer mediumunabhängigen Gigabit-Schnittstelle
(GMII) verbunden.
-
Der
CMIC 40 arbeitet als Gateway zwischen dem SOC 10 und
der Host-CPU. Die Verbindung kann beispielsweise über einen
PCI-Bus oder einen anderen akzeptablen Kommunikations-Bus sein.
Der CMIC 40 kann sequenzielle, direkt zugeordnete Zugriffe
zwischen der Host-CPU 52 und dem SOC 10 bereitstellen.
Die CPU 52 kann über
den CMIC 40 in der Lage sein, auf zahlreiche Ressourcen
auf dem SOC 10 zuzugreifen, einschließlich MIB-Zählern, programmierbaren Registern,
Status- und Steuerregistern, Konfigurationsregistern, ARL-Tabellen,
portbasierte VLAN-Tabellen, IEEE-802.1q-VLAN-Tabellen, Ebene-Drei-Tabellen, Regeltabellen,
CBP-Adress- und Datenspeicher, sowie GBP-Adress- und -Datenspeicher. Optional
kann der CMIC 40 einen DMA-Support, ein DMA-Training und das
Verteilen-Einsammeln sowohl als Master als auch Ziel-PCI 64 beinhalten.
-
Der
Sammelpufferspeicherpool bzw. gemeinsame Pufferspeicherpool oder
CBP 50 kann als ein On-Chip-Datenspeicher betrachtet werden.
In einer Vorrichtung ist der CBP 50 ein First- Level-Hochgeschwindigkeits-SRAM-Speicher,
um die Leistung zu maximieren und die Anforderungen an den Hardwareoverhead zu
minimieren. Der CBP kann eine Größe von beispielsweise
720 Kilobyte besitzen, die bei 132 MHz arbeiten. Die Pakete werden
in dem CBP 50 üblicherweise
als Zellen gespeichert, anstatt als Pakete. Wie in der Figur dargestellt
ist, beinhaltet die PMMU 70 ebenso den Sammelpuffermanager
bzw. gemeinsamen Puffermanager (CBM) 71 darauf. Der CBM 71 behandelt
das Management der Schlangen und ist verantwortlich für das Zuteilen
von Zellzeigern zu eingehenden Zellen, sowie das Zuteilen von gemeinsamen
Paket-Ids (CPID), sobald das Paket vollständig in den CBP geschrieben
ist. Der CBM 71 kann ebenso das Management des Pools von freien
Adresszeigern On-Chip, das Steuern von aktuellen Datenübertragungen
zu und von dem Datenpool behandeln und ein Speicherbudget-Management
zur Verfügung
stellen.
-
Der
globale Speicherpufferpool oder GBP 60 arbeitet als Second-Level-Speicher
und kann auf dem Chip oder außerhalb
des Chips angeordnet sein. In einer Vorrichtung ist der GBP 60 in
Bezug auf der SOC 10 außerhalb des Chips angeordnet.
Wenn ein außerhalb
des Chips angeordnet ist, wird der GBP 60 als Teil von dem
gesamten externen Speicher 12 betrachtet. Als Second Level
Speicher benötigt
der GBP keine teueren Hochgeschwindigkeits-SRAMs und kann ein langsamerer
und kostengünstigerer
Speicher sein, wie beispielsweise ein DRAM. Der GBP ist fest mit
der PMMU 70 gekoppelt und arbeitet wie der CBP, indem Pakete
als Zellen gespeichert werden. Für
Broadcast- und Multicast-Nachrichten wird nur eine Kopie des Pakets
im GBh 60 gespeichert. Wie in der Figur dargestellt ist,
ist die PMMU 70 zwischen dem GBP 60 und dem CPS-Kanal 80 angeordnet
und arbeitet als eine Schnittstelle zum externen Speicher. Um die
Verwendung des Speichers zu optimieren, beinhaltet die PMMU 70 mehrfache
Lese- und Schreibspeicher und unterstützt zahlreiche Funktionen einschließlich einem
globalen Schlangenmanagement, welches weitgehend die Zuordnung von
Zellenzeigern für
umgeleitete eingehende Pakete, die Aufrechterhaltung einer globalen
FAP, das zeitoptimierte Zellenmanagement, das Management des globalen
Speicherbudgets, die GPID-Zuordnung und die Ausgangsmanagerbenachrichtigung,
das Schreibpuffermanagement, Lese-Prefetches auf der Grundlage des
Ausgangsmanagers/Class Of Service-Anforderungen und Smart Memory
Control beinhaltet.
-
Wie
in 2 gezeigt, besteht der CPS-Kanal 80 derzeit
aus drei getrennten Kanälen,
auf die als C-Kanal, P-Kanal und S-Kanal Bezug genommen wird. Der
C-Kanal ist 128 Bit breit und arbeitet bei 132 MHz. Paketübertragungen
zwischen Ports geschehen auf dem C-Kanal.
-
Da
dieser Kanal nur für
die Datenübertragung
verwendet wird, gibt es keinen Overhead, der mit dessen Verwendung
verbunden ist. Der P-Kanal oder Protokollkanal ist synchron oder
mit dem C-Kanal gerastet. Während
Zellenübertragungen
wird der Nachrichten-Header über
den P-Kanal von der PMMU gesendet. Der P-Kanal ist 32 Bit breit
und läuft
bei 132 MHz.
-
Der
S- oder Seitenbandkanal läuft
bei 132 MHz und ist 32 Bit breit. Der S-Kanal wird für Funktionen verwendet,
wie beispielsweise zum Befördern
vom Portverbindungsstatus, zum Empfangen von "Port voll", Portstatistiken, ARL-Tabellensynchronisierung,
Speicher- und Registerzugriff zur CPU und andere CPU-Managementfunktionen
und zur Benachrichtigung bei "globaler
Speicher voll" und "gemeinsamer Speicher
voll".
-
Ein
geeignetes Verständnis
des Betriebs vom SOC 10 erfordert ein geeignetes Verständnis des
Betriebs des CPS-Kanals 80. Unter Bezugnahme auf 3 kann
ersehen werden, dass im SOC 10 beim Eingang Pakete von einem EPIC 20 oder
GPIC 30 in 64-Byte-Zellen unterteilt werden. Die Verwendung
von Zellen auf dem Chip anstatt von Paketen macht es einfacher,
den SOC so anzupassen, dass er mit zellbasierten Protokollen arbeitet,
wie beispielsweise Asynchronous Transfer Mode (ATM). Derzeit verwendet
jedoch ATM Zellen, die 53 Byte lang sind, mit 48 Byte für die Nutzdaten
und 5 Byte für
den Header. In dem SOC werden eingehende Pakete in Zellen unterteilt,
die 64 Byte lang sind, wie es oben erörtert ist, und diese Zellen
werden weiter in vier getrennte 16-Byte-Zell-Blöcke Cn0 ... Cn3 unterteilt.
Gerastet mit dem C-Kanal ist der P-Kanal, der den Betriebscode in
Synchronisierung mit Cn0 rastet. Ein Port-Bitmap wird in den P-Kanal
während
der Phase Cn1 eingefügt.
Das untagged bzw. unmarkierte Bitmap wird in den P-Kanal während der
Phase Cn2 eingefügt
und ein Zeitstempel wird auf dem P-Kanal in Cn3 angeordnet. Unabhängig von
Ereignissen auf dem C- und dem P-Kanal wird der S-Kanal als ein
Seitenband verwendet und ist daher von den Aktivitäten auf
dem C- und dem P-Kanal entkoppelt.
-
Zellen- oder
C-Kanal
-
Die
Arbitrierung auf dem CPS-Kanal geschieht außerhalb des Bandes. Jedes Modul
(EPIC, GPIC, usw.) überwacht
den Kanal und übereinstimmende
Zielports führen
zu passenden Transaktionen. Die C-Kanal-Arbitrierung ist ein anforderungspriorisierter
Umlaufarbitrierungsmechanismus. Wenn keine Anforderungen aktiv sind,
kann jedoch das Default-Modul, welches während der Konfiguration des
SOC 10 ausgewertet werden kann, auf dem Kanal parken und
vollständigen
Zugriff darauf haben. Wenn alle Anforderungen aktiv sind, ist die Konfiguration
des SOC 10 derart, dass die PMMU Zugriff zu jedem anderen
Zellenzyklus zugeteilt wird und die EPICs 20 und die GPICs 30 sich
einen gleichen Zugriff auf den C-Kanal
auf einer Umlaufbasis teilen. Die 4A und 4B zeigen
einen C-Kanal-Arbitrierungs-Mechanismus,
in dem der Abschnitt A die PMMU ist und der Abschnitt B aus zwei
GPICs und drei EPICs besteht. Die Bereiche wechseln sich im Zugriff ab
und da die PMMU das einzige Modul im Bereich A ist, erhält sie jeden
zweiten Zyklus den Zugriff. Die Module im Bereich B erhalten wie
oben ausgeführt
den Zugriff auf der Basis eines Umlaufs.
-
Protokoll-
oder P-Kanal
-
Unter
Bezugnahme wieder auf den Protokoll- oder P-Kanal können eine
Mehrzahl von Nachrichten auf dem P-Kanal angeordnet werden, um den
Datenfluss, der auf dem C-Kanal fließt, auf geeignete Weise zu
leiten. Da der P-Kanal 82 32 Bit breit ist und eine Nachricht üblicherweise
128 Bit erfordert, werden vier kleinere 32-Bit-Nachrichten zusammengefügt, um eine
vollständige
P-Kanal-Nachricht zu bilden. Die folgende Liste gibt die Felder
und Funktionen und die verschiedenen Bit-Anzahlen der 128-Bit-Nachricht
auf dem P-Kanal an.
-
- Opcode – 2
Bit lang – gibt
die Art von Nachricht an, die auf dem C-Kanal 82 vorhanden
ist;
- IP-Bit – 1
Bit lang – dieses
Bit wird gesetzt, um anzuzeigen, dass das Paket ein IP-vermitteltes Paket
ist;
- IPX-Bit – 1
Bit lang – dieses
Bit wird gesetzt, um anzuzeigen, dass das Paket ein IPX-vermitteltes Paket
ist;
- Next Cell – 2
Bit lang – eine
Reihe von Werten, um die gültigen
Bytes in der entsprechenden Zelle auf dem C-Kanal 81 anzuzeigen;
- SRC DEST Port – 6
Bit lang – definiert
die Portnummer, die die Nachricht sendet oder die Nachricht empfängt, wobei
die Auslegung der Quelle oder des Ziels von dem Opcode abhängt;
- Cos – 3
Bit lang – definiert
die Class of Service für
das Paket, das aktuell verarbeitet wird;
- J – 1
Bit lang – beschreibt,
ob das aktuelle Paket ein Jumbo-Paket ist;
- S – 1
Bit lang – zeigt
an, ob die aktuelle Zelle die erste Zelle des Pakets ist;
- E – 1
Bit lang – zeigt
an, ob die aktuelle Zelle die letzte Zelle des Pakets ist;
- CRC – 2
Bit lang – zeigt
an, ob ein Cyclical Redundancy Check-(CRC)-Wert an das Paket angehängt werden soll
oder ob ein CRC-Wert regeneriert werden soll;
- P-Bit – 1
Bit lang – zeigt
an, ob die MMU das gesamte Paket verwerten soll;
- Len – 7
Byte – zeigt
die gültige
Anzahl von Byte bei der aktuellen Übertragung an; – 2 Bit – zeigt
eine Optimierung zur Verarbeitung durch die CPU 52 an;
und
- Bc/Mc-Bitmap – 28
Bit – definiert
das Broadcast- oder Multicast-Bitmap. Identifiziert Ausgangsports,
an die das Paket gesendet werden soll, in Bezug auf Multicast- und
Broadcast-Nachrichten.
- Untag Bits/Source Port – 28/5
Bit lang – in
Abhängigkeit
vom Opcode, wird das Paket vom Port zur MMU übertragen, und dieses Feld
wird als das unmarkierte bzw. untagged Bitmap interpretiert. Eine
verschiedene Opcode-Auswahl zeigt an, dass das Paket von der MMU
zum Ausgangsport übertragen
wird und die letzten sechs Bits dieses Felds als das Source-Port-Feld bzw. Quell-Port-Feld
interpretiert werden. Die unmarkierten Bits zeigen die Ausgangsports
an, die den Tag-Header wegnehmen, und die Source-Port-Bits zeigen
die Portnummer an, bei dem das Paket in den Switch gelangt ist;
- U-Bit – 1
Bit lang – für eine bestimmte
Opcode-Auswahl (0 × 01),
zeigt dieses Bit, wenn es gesetzt ist, an, dass das Paket den Port
als unmarkiert verlassen soll; in diesem Fall wird das Entfernen
des Tags bzw. der Markierung von dem geeigneten MAC durchgeführt;
- CPU Opcode – 18
Bit lang – diese
Bits werden gesetzt, wenn das Paket aus irgendeinem Grund zu der
CPU gesendet wird. Die Opcodes werden auf der Grundlage einer Filterübereinstimmung,
gesetzten Lernbits, Umleitungsbits bzw. Routingbits, Ziel-Look-Up-Fehler (DLF), Stationsbewegung
usw. definiert;
- Time Stamp – 14
Bit – das
System gibt einen Timestamp bzw. Zeitstempel in dieses Feld, wenn
das Paket ankommt, mit einer Granularität von einer μsec.
-
Das
Opcode-Feld der P-Kanal-Nachricht definiert den Typ der gerade gesendeten
Nachricht. Während der
Opcode derzeit mit einer Breite von 2 Bit dargestellt ist, kann
das Opcode-Feld wie es gewünscht
wird erweitert werden, um neue Typen von Nachrichten zu berücksichtigen,
wie sie in Zukunft definiert sein können. Grafisch jedoch ist der
P-Kanal-Nachrichtentyp,
der oben definiert ist, in 5 dargestellt.
-
Eine
Frühabschlussnachricht
wird verwendet, um dem CBM 71 anzuzeigen, dass das derzeitige
Paket abgeschlossen werden soll. Wie nachstehend mehr im Detail
erörtert
ist, wird während
des Betriebs das Statusbit-(S)-Feld in der Nachricht gesetzt, um
den Wunsch anzuzeigen, das derzeitige Paket aus dem Speicher zu
entfernen. Ebenso in Abhängigkeit
von dem Statusbit würden
alle anwendbaren Ausgangsports das derzeitige Paket vor der Übertragung
entfernen.
-
Das
SRC-DEST-Port-Feld der P-Kanal-Nachricht definiert wie oben ausgeführt die
Ziel- bzw. Quell-Port-Adresse.
Jedes Feld ist 6 Bit breit und erlaubt daher das Adressieren von
64 Ports.
-
Das
CRC-Feld der Nachricht ist zwei Bit breit und definiert CRC-Aktionen.
Bit 0 des Feldes liefert eine Angabe, ob der zugeordnete Ausgangsport
einen CRC an das aktuelle Paket anhängen soll. Ein Ausgangsport würde einen
CRC an das aktuelle Paket anhängen,
wenn Bit 0 des SRC-Felds zu logisch eins gesetzt ist. Bit 1 des
CRC-Felds liefert eine Angabe, ob der zugeordnete Ausgangsport einen
CRC für
das aktuelle Paket regenerieren soll. Ein Ausgangsport würde einen
CRC regenerieren, wenn Bit 1 des CRC-Felds zu logisch 1 gesetzt
ist. Das CRC-Feld ist nur für
die letzte übertragene
Zelle gültig,
sowie es durch das E-Bit-Feld der P-Kanal-Nachricht definiert ist,
das zu logisch 1 gesetzt ist.
-
So
wie bei dem CRC-Feld sind das Status-Bit-Feld (st), das Len-Feld
und das Zellenzählerfeld
der Nachricht nur für
die letzte Zelle eines gerade übertragenen
Pakets gültig,
wie es durch das E-Bit-Feld der Nachricht definiert ist.
-
Als
letztes besitzt das Zeitstempelfeld der Nachricht eine Auflösung von
1 μs und
ist nur für
die erste Zelle des Pakets gültig,
wie es durch das S-Bit-Feld der Nachricht definiert wird. Eine Zelle
ist als erste Zelle eines empfangenen Pakets definiert, wenn das
S-Bit-Feld der Nachricht zu einem Wert von logisch 1 gesetzt ist.
-
Wie
nachfolgend detaillierter beschrieben ist, sind der C-Kanal 81 und
der P-Kanal 82 auf synchrone Weise miteinander derart verbunden,
dass Daten auf dem C-Kanal 81 über den CPS-Kanal 80 übertragen
werden, während
gleichzeitig eine entsprechende P-Kanal-Nachricht übertragen wird.
-
S-Kanal oder
Seitenbandkanal
-
Der
S-Kanal 82 ist ein 32 Bit breiter Kanal, der einen getrennten
Kommunikationspfad innerhalb des SOC 10 schafft. Der S-Kanal 83 wird
für das
Management durch die CPU 52, die interne Flusssteuerung
im SOC 10 und die Zwischenmodulbenachrichtigung im SOC 10 verwendet.
Der S-Kanal 83 ist ein Seitenbandkanal des CPS-Kanals 80 und
ist elektrisch und physikalisch von dem C-Kanal 81 und
dem P-Kanal 82 isoliert. Es ist wichtig, anzumerken, dass
da der S-Kanal getrennt und unterschiedlich vom C-Kanal 81 und
dem P- Kanal 82 ist,
der Betrieb auf dem S-Kanal 83 ohne Leistungsverschlechterung
im Bezug auf den Betrieb des C-Kanals 81 und des P-Kanals 82 fortgesetzt
werden kann. Da umgekehrt der C-Kanal nicht zur Übertragung von Systemnachrichten
verwendet wird, sondern nur für
Daten, gibt es keinen Overhead, der mit dem C-Kanal 81 verbunden
ist und ist daher der C-Kanal 81 in
der Lage, nach Notwendigkeit frei zu arbitrieren, um eingehende
und ausgehende Paketinformation zu bearbeiten.
-
Der
S-Kanal 83 des CPS-Kanals 80 liefert einen systemweiten
Kommunikationspfad zum Übertragen von
Systemnachrichten, beispielsweise das Bereitstellen der CPU 52 eines
Zugangs zu der Steuerstruktur des SOC 10. Die Systemnachrichten
beinhalten eine Portstatusinformation, einschließlich Portverbindungsstatus, "Empfangsport voll" und Portstatistiken,
die Synchronisierung der ARL-Tabelle 22, CPU-52-Zugriff
zu GBP-60- und CBP-50-Speicherpuffern und SOC-10-Steuerregistern
und die Benachrichtigung Speicher voll" entsprechend dem GBP 60 und/oder
dem CBP 50.
-
6 zeigt
ein Nachrichtenformat für
eine S-Kanalnachricht auf dem S-Kanal 83. Die Nachricht
wird aus vier 32-Bit-Wörtern
gebildet; die Bit des Felds des Worts sind wie folgt definiert:
-
- Opcode – 6
Bit lang – gibt
den Typ der Nachricht an, die auf dem S-Kanal vorhanden ist;
- Dest Port – 6
Bit lang – definiert
die Portnummer, an die die aktuelle S-Kanalnachricht adressiert
ist;
- Src Port – 6
Bit lang – definiert
die Portnummer, von der die aktuelle S-Kanalnachricht stammt;
- COS – 3
Bit lang – definiert
die Class of Service bzw. Dienstklasse, die der aktuellen S-Kanalnachricht zugeordnet
ist; und
- C-Bit – 1
Bit lang – definiert
auf logische Weise, ob die aktuelle S-Kanalnachricht für die CPU 52 gedacht
ist.
- Error Code – 2
Bit lang – definiert
einen gültigen
Fehler, wenn das E-Bit gesetzt ist;
- DataLen – 7
Bit lang – definiert
die Gesamtanzahl von Datenbytes in dem Data-Feld;
- E-Bit – 1
Bit lang – zeigt
auf logische Weise an, ob ein Fehler bei der Ausführung der
aktuellen Anweisung aufgetreten ist, wie sie durch Opcode definiert
ist;
- Address – 32
Bit lang – definiert
die Speicheradresse, die der aktuellen Anweisung zugeordnet ist,
wie sie in Opcode definiert ist;
- Data – 0-127
Bit lang – enthält die Daten,
die dem aktuellen Opcode zugeordnet sind.
-
Mit
der oben ausgeführten
Konfiguration des CPS-Kanals 80 ist die Entkopplung vom
S-Kanal von dem
C-Kanal und dem P-Kanal derart, dass die Bandbreite auf dem C-Kanal
für die
Zellenübertragung
bewahrt werden kann und dass eine Überlastung des C-Kanals nicht
die Übertragungen
auf dem Seitenbandkanal beeinträchtigt.
-
SOC-Betrieb
-
Die
Konfiguration des SOC 10 unterstützt Fast-Ethernet-Ports, Gigabit-Ports
und erweiterbare Zwischenverbindungen, wie sie oben erörtert worden
sind. Die SOC-Konfiguration
kann ebenso "gestapelt" sein, wobei auf
diese Weise eine beträchtliche
Fähigkeit
zur Porterweiterung ermöglicht
wird. Sobald einmal Pakete von dem SOC 10 empfangen, in
Zellen unterteilt und auf dem CPS-Kanal 80 angeordnet worden
sind, können gestapelte
SOC-Module eine Schnittstelle mit dem CPS-Kanal bilden und den Kanal
beobachten und nach Notwendigkeit die geeigneten Informationen extrahieren.
Wie nachstehend erörtert
werden wird, geschieht ein beträchtliches
Ausmaß an
gleichzeitigen Look-Up- und Filtervorgängen, sobald das Paket in das
Eingangs-Submodul 14 eines EPIC 20 oder GPIC 30,
in Bezug auf Ebene-Zwei- und Ebene-Drei-Look-Up-Vorgänge und
das schnelle Filtern.
-
Unter
Bezugnahme nun auf die 8 und 9 wird
die Behandlung eines Datenpakets beschrieben. Zu Erklärungszwecken
wird unterstellt, dass zu empfangende Ethernet-Daten an einem der
Ports 24a des EPIC 20a ankommen. Es wird angenommen,
dass beabsichtigt ist, dass das Paket an einen Benutzer an einem
der Ports 24c des EPIC 20c übertragen werden soll. Alle
EPICs 20 (20a, 20b, 20c, usw.)
weisen ähnliche Merkmale
und Funktionen auf und jeder arbeitet individuell auf der Grundlage
des Paketstroms.
-
Es
ist ein Eingangsdatenpaket 112 dargestellt, das den Port 24a beaufschlagt.
Das Datenpaket 112 ist in diesem Beispiel durch die aktuellen
Standards für
10/100-Mbps-Ethernet-Übertragung
definiert und kann jede beliebige Länge oder Struktur besitzen,
die durch diesen Standard definiert ist. Diese Erörterung
wird annehmen, dass die Länge
des Datenpakets 112 1024 Bit oder 128 Byte ist.
-
Wenn
das Datenpaket 112 durch das EPIC-Modul 20a empfangen
ist, bestimmt ein Eingangssubmodul 14a als Eingangsfunktion
das Ziel des Pakets 112. Die ersten 64 Byte des Datenpakets 112 werden
von dem Eingangssubmodul 14a gepuffert und mit Daten verglichen,
die in den Look-Up-Tabellen 21a gespeichert sind, um den
Zielport 24c zu bestimmen. Ebenso als Eingangsfunktion
unterteilt das Eingangssubmodul 14a das Datenpaket 112 in
eine Anzahl von 64-Byte-Zellen; in diesem Fall wird das 128-Byte-Paket
in zwei 64-Byte-Zellen 112a und 112b unterteilt.
Während
in diesem Beispiel dargestellt ist, dass das Datenpaket 112 aus
exakt zwei 64-Byte-Zellen 112a und 112b besteht,
kann ein aktuelles eingehendes Datenpaket jede beliebige Anzahl
von Zellen mit wenigstens einer Zelle der Länge kleiner als 64 Byte aufweisen.
Stopf-Byte werden zum Füllen
der Zelle verwendet. In solchen Fällen lässt das Eingangssubmodul 14a die
Stopfbyte innerhalb der Zelle außer Betracht. Die weitere Erörterung
der Paketbehandlung bezieht sich auf das Paket 112 und/oder die
Zellen 112a und 112b.
-
Es
soll erwähnt
werden, dass jeder EPIC 20 (ebenso wie jeder GPIC 30)
ein Eingangssubmodul 14 und ein Ausgangssubmodul 16 aufweist,
die portspezifische Eingangs- und Ausgangsfunktionen zur Verfügung stellen.
Die gesamte Verarbeitung der eingehenden Pakete geschieht im Eingangssubmodul 14 und Merkmale
wie beispielsweise der Schnellfilterprozessor, die Ebene-Zwei-(L2)-
und Ebene-Drei-(L3)-Look-Ups, das Ebene-Zwei-Lernen, sowohl das selbstangestoßene als
auch das CPU-52-angestoßene,
die Ebene-Zwei-Tabellenverwaltung,
das Ebene-Zwei-Vermitteln, das Paketunterteilen und das Kanalversenden
geschieht im Eingangssubmodul 14. Nach den Look-Ups der
Schnellfilterverarbeitung und dem Unterteilen in Zellen wird das
Paket wie oben erwähnt
und wie es nachstehend erörtert
werden wird von dem Eingangssubmodul 14 in die Versendeeinheit 18 gebracht
und dann auf den CPS-Kanal 80 gesetzt und es wird das Speichermanagement
durch die PMMU 70 behandelt. Eine Anzahl von Eingangspuffern
wird in der Versendeeinheit 18 zur Verfügung gestellt, um eine geeignete
Behandlung der Pakete/Zellen sicherzustellen. Sobald die Zellen
oder in Zellen umgewandelte Pakete auf dem CPS-Kanal 80 angeordnet
worden sind, ist das Eingangssubmodul mit dem Paket fertig. Der
Eingang ist nicht bei der dynamischen Speicherzuteilung oder dem
spezifischen Pfad beteiligt, den die Zellen zu dem Ziel nehmen.
Das Eingangssubmodul 16, das in 8 als
Submodul 16a des EPIC 20a dargestellt ist, überwacht
den CPS-Kanal 80 und sucht kontinuierlich nach Zellen, die
für einen
Port dieses bestimmten EPIC 20 bestimmt sind. Wenn die
PMMU 70 ein Signal empfängt,
dass ein Ausgang, der einem Ziel eines Pakets im Speicher zugeordnet
ist, zum Empfangen von Zellen bereit ist, zieht die PMMU 70 die
Zellen, die dem Paket zugeordnet sind, aus dem Speicher, wie es
nachstehend erörtert werden
wird, und ordnet die Zellen auf dem CPS-Kanal 80 für das geeignete
Ausgangssubmodul bestimmt an. Eine FIFO im Ausgangssubmodul 16 sendet
kontinuierlich ein Signal auf den CPS-Kanal 80, dass es
bereit zum Empfangen von Paketen ist, wenn es Platz in der FIFO
für zu
empfangende Pakete oder Zellen gibt. Wie zuvor erörtert ist
der CPS-Kanal 80 zum Behandeln von Zellen konfiguriert,
jedoch werden Zellen eines bestimmten Pakets immer zusammen behandelt,
um eine Beschädigung
von Paketen zu vermeiden. Um Probleme mit einer Datenstromverschlechterung
zu überwinden,
die mit einer Overheadbenutzung des C-Kanals 81 in Verbindung stehen,
wird das gesamte L2-Lernen und das L2-Tabellen-Management über die Verwendung des S-Kanals 83 erreicht.
Das selbstangestoßene
L2-Lernen wird erreicht,
indem die Quelladresse eines Benutzers bei einem bestimmten Eingangsport 24 unter
Verwendung der dem Paket zugeordneten Adresse entschlüsselt wird.
Sobald die Identität
des Benutzers am Eingangsport 24 bestimmt ist, werden die
ARL/L3-Tabellen 21a aktualisiert, um die Benutzeridentifikation
wiederzugeben. Die ARL/L3-Tabellen 21 von
jedem anderen EPIC 20 und GPIC 30 werden in einem
Synchronisierungsschritt aktualisiert, um die neu gewonnene Benutzeridentifikation
wiederzugeben, wie es nachstehend erörtert werden wird. Als ein
Ergebnis kann, während
der Eingang des EPIC 20a bestimmen kann, dass ein bestimmter
Benutzer an einem bestimmten Port 24a ist, der Ausgang
des EPIC 20b, dessen Tabelle 21b mit der Benutzeridentifikation
an Port 24a aktualisiert worden ist, Dateninformation an
den Benutzer bei Port 24a liefern, ohne erneut zu lernen,
an welchen Port der Benutzer angeschlossen war.
-
Das
Tabellenmanagement kann ebenso durch die Benutzung der CPU 52 erreicht
werden. Die CPU 52 kann mittels des CMIC 40 dem
SOC 10 Softwarefunktionen zur Verfügung stellen, die zu der Bezeichnung der
Identifikation eines Benutzers an einem bestimmtem Port 24 führt. Wie
oben erörtert
ist es unerwünscht für die CPU 52,
auf die Paketinformation in ihrer Gesamtheit zuzugreifen, da dies
zu einer Leistungsverschlechterung führen würde. Statt dessen wird der
SOC 10 von der CPU 52 mit der Identifikationsinformation programmiert,
die den Benutzer betrifft. Der SOC 10 kann einen Echtzeitdatenstrom
aufrecht erhalten, da die Tabellendatenkommunikation zwischen der
CPU 52 und dem SOC 10 ausschließlich auf
dem S-Kanal 83 geschieht. Während der SOC 10 die
CPU 52 mit direkter Paketinformation mittels des C-Kanals 81 versorgen kann,
ist eine solche Systemeinrichtung aus den oben stehenden Gründen unerwünscht. Wie
oben ausgeführt, wird
als Eingangsfunktion ein Adressauflösungs-Look-Up durch Untersuchung
der ARL-Tabelle 21a durchgeführt. Wenn das Paket an einen
der Ebene-Drei-(L3)-Switche des SOC 10 adressiert ist,
dann führt
das Eingangssubmodul 14a den L3- und den Vorgabetabellen-Look-Up
durch. Sobald der Zielport bestimmt worden ist, setzt der EPIC 20a ein
Fertig-Flag in der Versendeeinheit 18a, die dann eine Arbitrierung
für den
C-Kanal 81 durchführt.
-
Das
Arbitrierungsschema des C-Kanals 81 ist wie zuvor erörtert und
in den 4A und 4B dargestellt
ein anforderungspriorisierter Umlauf. Jedes I/O-Modul, EPIC 20,
GPIC 30 und CMIC 40 zusammen mit der PMMU 70 kann
eine Anforderung für
einen C-Kanal-Zugriff anstoßen.
Wenn keine Anforderungen zu jedem gegebenen Zeitpunkt existieren,
erhält
ein Vorgabemodul das mit einer hohen Priorität ausgestattet ist, vollständigen Zugriff
auf den C-Kanal 81.
Wenn irgendein beliebiges einzelnes I/O-Modul oder die PMMU 70 Zugriff
auf den C-Kanal 81 anfordert, erhält dieses einzelne Modul auf
Anforderung Zugriff auf den C-Kanal 81.
-
Wenn
EPIC-Module 20a, 20b, 20c und GPIC-Module 30a und 30b und
der CMIC 40 gleichzeitig einen Zugriff auf den C-Kanal
anfordern, dann wird der Zugriff auf Umlaufweise erteilt. Für einen
bestimmten Arbitrierungszeitraum würde jedem der I/O-Module Zugriff
auf den C-Kanal 81 bereitgestellt. Beispielsweise würde jedem
GPIC-Modul 30a und 30b Zugriff gewährt, gefolgt
von den EPIC-Modulen und schließlich
dem CMIC 40. Nach jedem Arbitrierungszeitraum würde das
nächste
I/O-Modul mit einer gültigen
Anforderung den Zugriff auf den C-Kanal 81 erhalten. Dieses
Muster würde
so lange fortgesetzt werden, so lange jedes der I/O-Module eine
aktive Zugriffsanforderung auf den C-Kanal 81 liefert.
-
Wenn
alle I/O-Module, einschließlich
der PMMU 70, einen Zugriff auf den C-Kanal 81 anfordern,
wird der PMMU 70 Zugriff gewährt, wie es in 4B dargestellt ist, da die PMMU einen kritischen
Datenpfad für alle
Module auf dem Switch bereitstellt. Nach dem Erhalt des Zugriffs
auf den Kanal 81 fährt
die Versendeeinheit 18a fort, das empfangene Paket 112 Zelle
für Zelle
zum C-Kanal 81 zu übertragen.
Unter Bezugnahme wieder auf 3 ist
der jeweilige C-, P- und S-Kanal des CPS-Kanals 80 dargestellt.
Sobald der Versendeeinheit 18a die Erlaubnis zum Zugriff
auf den CPS-Kanal 80 erteilt worden ist, ordnet während dem
ersten Zeitraum CnO die Versendeeinheit 18a die ersten
16 Byte der ersten Zelle 112a des empfangenen Pakets 112 auf den
C-Kanal 81 an. Gleichzeitig platziert die Versendeeinheit 18a die
erste P-Kanalnachricht entsprechend der aktuell übertragenen Zelle. Wie oben
ausgeführt
definiert die erste P-Kanalnachricht unter anderem den Nachrichtentyp.
Daher ist dieses Beispiel so, dass die erste P-Kanalnachricht die
aktuelle Zelle als Unicast-Typ-Nachricht definieren würde, die
zu dem Ausgangsport 21c geleitet werden soll.
-
Während dem
zweiten Taktzyklus Cn1 werden die zweiten 16 Byte (16:31) der aktuell übertragenen Datenzelle 112a auf
dem C-Kanal 81 platziert. Ebenso wird während des zweiten Taktzyklusses
Cn1 das Bc/Mc-Port-Bitmap auf dem P-Kanal 82 platziert.
-
Wie
durch die Schraffierung der Daten des S-Kanals 83 während der
Zeiträume
Cn0 bis Cn3 in 3 dargestellt, ist der Betrieb
des S-Kanals 83 vom Betrieb des C-Kanals 81 und
des P-Kanals 82 entkoppelt. Beispielsweise kann die CPU 52 über den
CMIC 40 Nachrichten auf Systemebene an nicht aktive Module
reichen, während
ein aktives Modul Zellen über
den C-Kanal 81 weiterreicht.
Wie zuvor angegeben, ist dies ein wichtiger Gesichtspunkt des SOC 10,
da der Betrieb des S-Kanals eine parallele Aufgabenverarbeitung
erlaubt, wobei die Übertragung
von Zellendaten auf dem C-Kanal 81 in Echtzeit ermöglicht wird.
Sobald die erste Zelle 112a des eingehenden Pakets 112 auf
dem CPS-Kanal 81 platziert ist, bestimmt die PMMU 70,
ob die Zelle an einen Ausgangsport 81 lokal im Bezug auf
der SOC 10 übertragen
werden soll.
-
Wenn
die PMMU 70 bestimmt, dass die aktuelle Zelle 112a auf
dem C-Kanal 81 für
einen Ausgangsport des SOC 10 bestimmt ist, übernimmt
die PMMU 70 die Steuerung des Zellendatenstroms.
-
10 zeigt mit mehr Detail die funktionellen Ausgangsgesichtspunkte
der PMMU 70. Die PMMU 70 beinhaltet den CBM 71 und
Schnittstellen zwischen dem GBP, dem CBP und einer Mehrzahl von
Ausgangsmanagern (EgM) 76 des Ausgangssubmoduls 18,
wobei ein Ausgangsmanager 76 für jeden Ausgangsport vorgesehen
ist. Der CBM 71 ist mit jedem Ausgangsmanager 76 in
einer parallelen Konfiguration mittels des R-Kanaldatenbusses 77 verbunden.
Der R-Kanaldatenbus 77 ist ein 32 Bit breiter Bus, der
von dem CBM 71 und den Ausgangsmanagern 76 bei
der Übertragung
von Speicherzeigern und Systemnachrichten verwendet wird. Jeder
Ausgangsmanager 76 ist ebenso mit dem CPS-Kanal 80 zur Übertragung
von Datenzellen 112a und 112b verbunden.
-
Der
CBM 71 führt
in Summe die Funktionen des On-Chip-FAP-(Free Address Pool)-Managements, der Übertragung
von Zellen zum GPB 50, die Paketzusammensetzung und Benachrichtigung
der entsprechenden Ausgangsmanager, das Rerouten von Paketen zum GBP 60 über den
globalen Puffermanager, sowie das Behandeln des Paketstroms vom
GBP 60 zum CBP 50 durch. Das Aufräumen des
Speichers, das Speicherbudgetmanagement, die Kanalschnittstelle
und die Zuteilung von Zellenzeigern sind ebenso Funktionen des CBM 71.
Im Bezug auf den freien Adresspool verwaltet der CBM 71 den
freien Adresspool und teilt freie Zellenzeiger den eingehenden Zellen
zu. Der freie Adresspool wird ebenso von dem CBM 71 zurückgeschrieben, sodass
die freigegebenen Zellenzeiger von den verschiedenen Ausgangsmanagern 76 auf
geeignete Weise freigemacht werden. Unter der Annahme, dass es genügend verfügbaren Platz
im CBP 50 gibt und genügend freie
Adresszeiger verfügbar
sind, hält
der CBM 71 wenigstens zwei Zellenzeiger je Ausgangsmanager 76,
der verwaltet wird. Die erste Zelle eines Pakets trifft beim Ausgangsmanager 76 ein
und der CBM 71 schreibt diese Zelle zu der CBM-Speicherzuteilung
bei der Adresse, auf die der erste Zeiger zeigt. In dem nächsten Zellen-Header-Feld
wird der zweite Zeiger geschrieben. Das Format der Zelle, wie sie
im CBP 50 gespeichert ist, ist in 11 dargestellt;
jede Zeile ist 18 Byte breit. Die Zeile 0 enthält geeignete Information im
Bezug auf Informationen zur ersten Zelle und zur letzten Zelle,
Broadcast/Multicast, die Anzahl von Ausgangsports für Broadcast
oder Multicast, die Zellenlänge
im Bezug auf die Anzahl von gültigen
Byte in der Zelle, die nächsten Zellenzeiger,
der Gesamtzellenanzahl in dem Paket und den Zeitstempel. Die verbleibenden
Zeilen enthalten Zellendaten als 64-Byte-Zellen. Der freie Adresspool
innerhalb der PMU 70 speichert alle freien Zeiger für den CBP 50.
Jeder Zeiger in dem freien Adresspool zeigt auf eine 64-Byte-Zelle
im CBP 50; die im CBP gespeicherte aktuelle Zelle hat insgesamt
72 Byte, wobei 64 Byte Datenbytes sind und 8 Byte Steuerinformation
sind. Funktionen wie beispielsweise obere und untere Grenzwerte
für HOL-Blockierung,
Budgetregister für
außerhalb
der Schlange, CPID-Zuordnung und andere Funktionen werden von dem
CBM 71 behandelt, wie es hier erklärt ist.
-
Wenn
die PMMU 70 ermittelt, dass die Zelle 112a für einen
geeigneten Ausgangsport auf dem SOC 10 bestimmt ist, steuert
die PMMU 70 den Zellenfluss von dem CPS-Kanal 80 zum
CBP 50. Sowie das Datenpaket 112 bei der PMMU 70 von
dem CPS 80 empfangen worden ist, ermittelt der CBM 71,
ob genügend
Speicher im CBP 50 für
das Datenpaket 112 verfügbar
ist oder nicht. Ein freier Adresspool (nicht dargestellt) kann die
Speicherung von wenigstens zwei Zellzeigern je Ausgangsmanager 76 pro
Dienstklasse bereitstellen. Wenn genügend Speicher im CBP 50 zur
Speicherung und Identifizierung des eingehenden Datenpakets verfügbar ist,
platziert der CBM 71 die Datenzelleninformation auf dem
CPS-Kanal 80.
Die Datenzelleninformation wird von dem CBM 71 an den CBP 50 bei
der zugeteilten Adresse bereitgestellt. Sowie neue Zellen von der PMMU 70 empfangen
werden, teilt der CBM 71 Zellenzeiger zu. Der ursprüngliche
Zeiger für
die erste Zelle 112a zeigt auf den Ausgangsmanager 76,
der dem Ausgangsport entspricht, an den das Datenpaket 112 gesendet
wird, nachdem es im Speicher platziert worden ist. In dem Beispiel
der 8 kommen Pakete am Port 24a des EPIC 20a an
und sind für
den Port 24c des EPIC 20c bestimmt. Für jede zusätzliche
Zelle 112b, teilt der CBM 71 einen entsprechenden
Zeiger zu. Der entsprechende Zellenzeiger wird als zwei Byte oder 16-Bit-Wert_NC
Header an einer geeigneten Stelle einer Steuernachricht gespeichert,
wobei mit dem ursprünglichen
Zeiger auf den entsprechenden Ausgangsmanager 76 und nachfolgenden
Zellenzeigern als Teil von jedem Zellenheader eine verbundene Liste
von Speicherzeigern gebildet wird, die das Paket 112 definieren,
wenn das Paket über
den geeigneten Ausgangsport, in diesem Fall 24c, übertragen
wird. Sobald das Paket vollständig
in den CBP 50 geschrieben ist, wird ein entsprechender
CBP-Paket-Identifizierer (CPID) an den geeigneten Ausgangsmanager 76 geliefert;
dieser CPID zeigt auf den Speicherort der ursprünglichen Zelle 112a.
Der CPID für
das Datenpaket wird dann verwendet, wenn das Datenpaket 112 an
den Zielausgangsport 24c gesendet wird. Derzeit unterhält der CBM 71 zwei
Puffer, die einen CBP-Zellenzeiger enthalten, wobei der Zugang zum
CBP sich auf eine Mehrzahl von Faktoren gründet. Ein Beispiel für die Zugangslogik
für den
CBP 50 wird nachstehend unter Bezugnahme auf 12 erörtert.
-
Da
der CBM 71 den Datenstrom innerhalb des SOC 10 steuert,
kann ebenso der Datenstrom gesteuert werden, der jedem beliebigen
Eingangsport zugeordnet ist. Wenn das Paket 112 empfangen
und in dem CBP 50 gespeichert worden ist, wird ein CPID
an den zugeordneten Ausgangsmanager 76 geliefert. Die Gesamtanzahl
der dem Datenpaket zugeordneten Datenzellen ist in einem Budgetregister
(nicht dargestellt) gespeichert. Sowie mehr Datenpakete 112 empfangen
werden und zum Senden an den gleichen Ausgangsmanager 76 bestimmt
sind, wird der Wert des Budgetregisters, das dem zugeordneten Ausgangsmanager 76 entspricht,
um die Anzahl der Datenzellen 112a, 112b der neuen
empfangenen Datenzellen inkrementiert. Das Budgetregister stellt
daher dynamisch die Gesamtanzahl von Zellen dar, die zum Senden
durch einen bestimmten Ausgangsport auf einem EPIC 20 bestimmt
sind. Der CBM 71 steuert den Zustrom von zusätzlichen
Datenpaketen, indem das Budgetregister mit einem oberen Grenzwert
für den
Registerwert oder einem unteren Grenzwert für den Registerwert für den gleichen
Ausgang verglichen wird.
-
Wenn
der Wert des Budgetregisters den oberen Grenzwert übersteigt,
wird der zugeordnete Eingangsport deaktiviert. Auf ähnliche
Weise wird, wenn Datenzellen von einem Ausgangsmanager 76 über den Ausgangsport
gesendet werden und das entsprechende Budgetregister auf einen Wert
unter den unteren Grenzwert fällt,
der Eingangsport wieder aktiviert. Wenn der Ausgangsmanager 76 die Übertragung
eines Pakets 112 anstößt, benachrichtigt
der Ausgangsmanager 76 den CBM 71, der dann den
Budgetregisterwert um die Anzahl von Datenzellen erniedrigt, die übertragen
werden. Die spezifischen oberen und unteren Grenzwerte können vom
Benutzer mittels der CPU 52 programmiert werden. Dies gibt
dem Benutzer die Steuerung über den
Datenstrom von jedem beliebigen Port auf jedem beliebigen EPIC 20 oder
GPIC 30.
-
Der
Ausgangsmanager 76 ist ebenso in der Lage, den Datenstrom
zu steuern. Jeder Ausgangsmanager 76 ist mit der Fähigkeit
versehen, die Paketidentifikations-Information in einem Paketzeigerbudgetregister zu
verfolgen; sowie ein neuer Zeiger von dem Ausgangsmanager 76 empfangen
wird, wird das zugeordnete Paketzeigerbudgetregister inkrementiert.
Sowie der Ausgangsmanager 76 ein Datenpaket 112 aussendet, wird
das Paketzeigerbudgetregister dekrementiert. Wenn eine dem Register
zugeordnete Speichergrenze erreicht wird, die einem vollen Paketidentifikationspool
entspricht, wird eine Benachrichtigung an alle Eingangsports des
SOC 10 geschickt, wobei angezeigt wird, dass der Zielausgangsport,
der durch diesen Ausgangsmanager 76 gesteuert wird, nicht
verfügbar
ist. Wenn das Paketzeigerbudgetregister unter den oberen Grenzwert
für den
Paketpool fällt,
wird eine Nachricht gesendet, dass der Zielausgangsport nun verfügbar ist.
Die Nachrichten werden von dem CMB 71 auf dem S-Kanal 83 gesendet.
-
Wie
zuvor erwähnt,
kann die Flusssteuerung durch den CBM 71 zur Verfügung gestellt
werden, und ebenso durch das Eingangssubmodul 14 von entweder
einem EPIC 20 oder einem GPIC 30. Das Eingangssubmodul 14 überwacht
die Zellenübertragung
in den Eingangsport 24. Wenn ein Datenpaket 112 bei
einem Eingangsport 24 empfangen wird, inkrementiert das
Eingangssubmodul 14 ein Empfangsbudget-Register um die
Zellenanzahl der eingehenden Datenpakete. Wenn ein Datenpaket 112 gesendet
wird, dekrementiert der entsprechende Eingang 14 das Empfangsbudgetregister
um die Zellenanzahl der ausgehenden Datenpakete 112. Das
Budgetregister 72 wird durch den Eingang 14 in
Abhängigkeit
einer Dekrementierzellenanzahlnachricht dekrementiert, die durch
den CBM 71 angestoßen
wird, wenn ein Datenpaket 112 vom CBP 50 erfolgreich übertragen
worden ist.
-
Die
effiziente Behandlung des CBP und des GBP ist erforderlich, um den
Durchsatz zu maximieren, um das Ausgehen von Ports zu verhindern
und einen Port-Underrun zu verhindern. Für jeden Eingang gibt es einen
unteren Grenzwert und einen oberen Grenzwert; wenn die Zellenanzahl
unterhalb des unteren Grenzwerts ist, wird das Paket zu dem CBP
zugelassen, wobei auf diese Weise ein Ausgehen der Ports verhindert wird,
indem dem Port ein geeigneter Anteil des CBP-Raums gegeben wird.
-
Die 12 zeigt im allgemeinen die Behandlung eines Datenpakets 112,
wenn es von einem geeigneten Eingangsport empfangen worden ist.
Diese Figur zeigt die dynamische Speicherzuordnung auf einem einzelnen
Port und ist für
jeden Eingangsport anwendbar. In Schritt 12-1 wird die
Paketlänge
ermittelt, indem die Zellenanzahl auf der Grundlage der Ausgangsmanagerzählung zuzüglich der
Eingangszellenzählung
ermittelt. Nachdem diese Zellenzählung
ermittelt ist, wird in Schritt 12-2 der aktuelle Zellenzähler für den GBP überprüft, um zu
bestimmen, ob der GBP 60 leer ist oder nicht. Wenn die
GBP-Zellenzählung 0
ist, welche angibt, dass der GBP 60 leer ist, fährt das
Verfahren zu Schritt 12-3 fort, indem ermittelt wird, ob
die ermittelte Zellenanzahl von Schritt 12-1 niedriger
als der untere Zugangsgrenzwert ist. Der untere Zugangsgrenzwert
aktiviert bzw. enabled den Empfang von neuen Paketen 112 in
den CBP 50, wenn die Gesamtanzahl von Zellen in dem zugeordneten
Ausgang unterhalb des unteren Zugangsgrenzwerts ist. Wenn ja, wird
daher in Schritt 12-5 das Paket angenommen. Wenn die ermittelte
Zellenanzahl nicht unterhalb des unteren Zugangsgrenzwerts ist,
führt der
CBM 71 dann eine Arbitrierung zur CBP-Speicherzuordnung mit anderen Eingangsports oder
anderen EPICs und GPICs in Schritt 12-4 durch. Wenn die
Arbitrierung nicht erfolgreich ist, wird das eingehende Paket zu
einem Reroute-Vorgang gesendet, auf den als A Bezug genommen wird.
Wenn die Arbitrierung erfolgreich ist, dann wird das Paket zu dem
CBP in Schritt 12-5 zugelassen. Die Zulassung zum CBP ist
erforderlich, damit eine Kommunikation bei Leitungsgeschwindigkeit
geschieht.
-
Die
obige Erörterung
zielt auf eine Situation, in der bestimmt wird, dass die GBP-Zellenzählung 0
ist. Wenn in Schritt 12-2 die GBP-Zellenzählung zu
ungleich 0 ermittelt wird, dann fährt das Verfahren zu Schritt 12-6 fort,
indem die ermittelte Zellenzählung,
die in Schritt 12-1 ermittelt worden ist, mit dem oberen
Zugangsgrenzwert verglichen wird. Wenn die Antwort nein ist, wird
das Paket zu dem GBP 60 in Schritt 12-7 umgeleitet. Wenn
die Antwort ja ist, wird die ermittelte Zellenzählung dann mit dem unteren
Zugangsgrenzwert bei Schritt 12-8 verglichen. Wenn die
Antwort nein ist, welches bedeutet, dass die ermittelte Zellenzählung zwischen
dem oberen und dem unteren Grenzwert ist, dann wird das Paket in Schritt 12-7 zum
GBP 60 umgeleitet bzw. geroutet. Wenn die ermittelte Zellenzählung unterhalb
des unteren Zugangsgrenzwerts ist, wird die aktuelle GBP-Zählung mit
einem Umleitungszellengrenzwert bei Schritt 12-9 verglichen.
Dieser Umleitungszellengrenzwert ist mittels der CPU 52 vom Benutzer
programmierbar. Wenn die GBP-Zählung
unter oder gleich dem Umleitungszellengrenzwert bei Schritt 12-9 ist,
werden die ermittelte Zellenzählung
und die GBP-Zählung
mit einem ermittelten unteren Zellenzählergrenzwert verglichen; wenn
die Kombination der ermittelten Zellenzählung und der GBP-Zählung geringer
als der ermittelte untere Zellenzählergrenzwert ist, wird das
Paket zum CBP zugelassen. Wenn die Summe größer als der ermittelte untere
Zellenzählergrenzwert
ist, dann wird das Paket in Schritt 12-7 zum GBP 60 umgeleitet.
Nach dem Umleiten zum GBP 60 wird die GBP-Zellenzählung aktualisiert
und die Paketverarbeitung ist abgeschlossen. Es soll angemerkt werden,
dass wenn sowohl der CBP als auch der GBP voll sind, das Paket fallengelassen
wird. Fallengelassene Pakete werden gemäß dem bekannten Ethernet- oder
Netzwerkkommunikationsverfahren behandelt und besitzen die Wirkung,
die Kommunikation zu verzögern.
Diese Konfiguration erzeugt jedoch den geeigneten rückwärts gerichteten
Druck, indem mittels der CPU 52 die Grenzwerte auf geeignete
Pufferwerte auf einer portindividuellen Grundlage gesetzt werden,
um die Speicherbenutzung zu maximieren. Diese CBP-/GBP-Zugangslogik
führt zu
einer Konfiguration mit einem verteilten, hierarchischen und aufgeteilten
Speicher, mit einer Hierarchie zwischen dem CBP 50 und
dem GBP 60 und Hierarchien innerhalb des CBP.
-
Adressauflösung (L2)
+ (L3)
-
14 zeigt einige der gleichzeitigen Filter- und
Look-Up-Details eines Pakets, das in die Eingangsseite eines EPIC 20 gelangt. 12 zeigt, wie zuvor erörtert, die Behandlung eines
Datenpakets im Bezug auf den Zugang zu dem verteilten, hierarchischen
und aufgeteilten Speicher. 14 richtet
sich auf die Anwendung der Filterung, der Adressauflösung und
die Regelanwendungssegmente des SOC 10. Diese Funktionen werden
gleichzeitig im Bezug auf den oben erörterten CBP-Zugang durchgeführt. Wie
in der Figur dargestellt ist, wird das Paket 112 beim Eingangsport 24 des
EPIC 20 empfangen. Es wird dann zur Eingangs-FIFO 142 geleitet.
Sobald die ersten 16 Byte des Pakets in der Eingangs-FIFO 142 angelangt
sind, wird eine Adressauflösungsanforderung
zu der ARL-Maschine 143 gesendet;
diese stößt ein Look-Up
in den ARL/L3-Tabellen 21 an.
-
Eine
Beschreibung der Felder einer ARL-Tabelle der ARL/L3-Tabellen 21 ist
wie folgt:
-
- Mac Address – 48
Bit lang – Mac
Adresse;
- VLAN tag – 12
Bit lang – VLAN
Tag Identifizierer nach Beschreibung im IEEE 802.1q Standard für getaggte bzw.
markierte Pakete. Für
ein untagged Paket wird dieser Wert von der portbasierten VLAN-Tabelle
aufgenommen.
- CosDst – 3
Bit lang – Dienstklasse
auf der Grundlage der Zieladresse. COS (Class of Service bzw. Dienstklasse)
identifiziert die Priorität
dieses Pakets. Acht Ebenen an Prioritäten, wie im IEEE 802.1 p Standard
beschrieben.
- Port Number – 6
Bit lang – Port
Number ist der Port, an dem diese Mac Adresse gelernt wird.
- SD_Disc Bits – 2
Bit lang – Diese
Bits identifizieren, ob das Paket auf der Grundlage der Quelladresse
oder der Zieladresse außer
Betracht gelassen werden soll. Wert 1 bedeutet ein Außer Acht
Lassen wegen der Quelle, Wert 2 bedeutet ein Außer Acht Lassen wegen dem Ziel.
- C Bit – 1
Bit lang – C-Bit
identifiziert, dass das Paket an den CPU-Port gegeben werden soll.
- St Bit – 1
Bit lang – St
Bit identifiziert, dass dies ein statischer Eintrag ist (er wurde
nicht dynamisch gelernt) und dies bedeutet, dass er nicht ausgealtert
werden soll. Nur die CPU 52 kann diesen Eintrag löschen.
- Hit Bit – 1
Bit lang – Hit
Bit (Trefferbit) – dieses
Bit wird gesetzt, wenn es eine Übereinstimmung
mit der Quelladresse gibt. Es wird beim Alterungsmechanismus verwendet.
- CosSrc – 3
Bit lang – Dienstklasse
auf der Grundlage der Quelladresse. COS identifiziert die Priorität dieses Pakets.
- L3 Bit – 1
Bit lang – L3-Bit – Identifiziert,
dass dieser Eintrag als Ergebnis der L3-Schnittstellenkonfiguration erzeugt
worden ist. Die MAC-Adresse in diesem Eintrag ist die L3-Schnittstellen-MAC-Adresse
und dass jedes Paket, das sich an diese MAC-Adresse richtet, vermittelt
werden muss.
- T Bit – 1
Bit lang – T-Bit
identifiziert, dass diese MAC-Adresse von einem der Trunk-Ports
gelernt worden ist. Wenn es eine Übereinstimmung auf der Zieladresse
gibt, dann wird der Ausgangsport in diesem Eintrag nicht auf der
Grundlage der Portnummer entschieden, sondern wird von dem Trunk-Identifikationsprozess
auf der Grundlage der Regeln entschieden, die von den RTAG-Bits
und der Trunk-Gruppe bestimmt werden, die von der TGID bestimmt
ist.
- TGID – 3
Bit lang – TGID
identifiziert die Trunk-Gruppe, wenn das T-Bit gesetzt ist. Der
SOC 10 unterstützt sechs
Trunk-Gruppen pro Switch.
- RTAG – 3
Bit lang – RTAG
identifiziert das Trunk-Auswahlkriterium, wenn die Zieladresse mit
diesem Eintrag übereinstimmt
und das T-Bit in diesem Eintrag gesetzt ist. Wert 1 – basiert
auf der Quell-MAC-Adresse. Wert 2 – basiert auf der Ziel-MAC-Adresse.
Wert 3 – basiert
auf Quell- und Ziel-Adresse. Wert 4 – basiert auf der Quell-IP-Adresse.
Wert 5 – basiert
auf der Ziel-IP-Adresse. Wert 6 – basiert auf Quell- und Ziel-IP-Adresse.
- SCP – 1
Bit lang – Quell-CoS-Prioritätsbit – Wenn dieses
Bit gesetzt ist (in dem übereinstimmenden Quell-MAC-Eintrag),
dann besitzt die Quell-CoS Priorität über der Ziel-CoS.
-
Es
soll ebenso angemerkt werden, dass die VLAN-Tabellen 23 eine
Anzahl von Tabellenformaten beinhalten; es werden hier nicht alle
diese Tabellen und Tabellenformate erörtert werden. Jedoch sind als
Beispiel die portbasierten VLAN-Tabellenfelder wie folgt beschrieben:
-
- Port VLAN ID – 12
Bit lang – Port-VLAN-Identifizierer
ist die VLAN-Id, die von dem portbasierten VLAN benutzt wird.
- Sp State – 2
Bit lang – Dieses
Feld identifiziert den aktuellen Spanning-Tree-Zustand. Wert 0x00 – Port ist
in deaktiviertem Zustand. In diesem Zustand werden keine Pakete
angenommen, nicht einmal BPDUs. Wert 0x01 – Port ist im blockierenden
oder zuhörenden
Zustand. In diesem Zustand werden von dem Port keine Pakete angenommen,
mit Ausnahme von BPDUs. Wert 0x02 – Port ist im lernenden Zustand.
In diesem Zustand werden die Pakete nicht zu einem anderen Port
weitergeleitet, aber zum Lernen angenommen. Wert 0x03 – Port ist
im weiterleitenden Zustand. In diesem Zustand werden die Pakete
sowohl zum Lernen als auch zum Weiterleiten angenommen.
- Port Discard Bits – 6
Bit lang – Es
gibt 6 Bits in diesem Feld und jedes Bit identifiziert das Kriterium
zum Fallenlassen von Paketen, die in diesen Port gelangen. Bemerkung:
Bits 0 bis 3 werden nicht verwendet. Bit 4 – Wenn dieses Bit gesetzt ist,
dann werden alle Frames, die an diesen Port gelangen, fallengelassen.
Bit 5 – Wenn
dieses Bit gesetzt ist, dann wird jeder 802.1 q Priority Tagged
(vid = 0) Frame und Untagged Frame, der an diesen Port gelangt,
fallengelassen.
- J Bit – 1
Bit lang – J-Bit
bedeutet Jumbo-Bit. Wenn dieses Bit gesetzt ist, dann soll dieser
Port Jumbo-Frames annehmen.
- RTAG – 3
Bit lang – RTAG
identifiziert das Trunk-Auswahlkriterium, wenn die Zieladresse mit
diesem Eintrag übereinstimmt
und das T-Bit in diesem Eintrag gesetzt ist. Wert 1 – basiert
auf der Quell-MAC-Adresse. Wert 2 – basiert auf der Ziel-MAC-Adresse.
Wert 3 – basiert
auf der Quell- und Ziel-Adresse. Wert 4 – basiert auf der Quell-IP-Adresse.
Wert 5 – basiert
auf der Ziel-IP-Adresse. Wert 6 – basiert auf der Quell- und Ziel-IP-Adresse.
- T Bit – 1
Bit lang – Dieses
Bit identifiziert, dass der Port Mitglied der Trunk-Gruppe ist.
- C Learn Bit – 1
Bit lang – CPU-Lernbit – Wenn dieses
Bit gesetzt ist, dann wird das Paket zu der CPU gesendet, wann immer
die Quelladresse gelernt wird.
- PT – 2
Bit lang – Porttyp
identifiziert den Typ des Ports. Wert 0 – 10 Mbit-Port. Wert 1-100
Mbit-Port. Wert 2-1 Gbit-Port. Wert 3 – CPU-Port.
- VLAN Port Bitmap – 28
Bit lang – VLAN-Port-Bitmap
identifiziert all die Ausgangsports, an die das Paket gesendet werden
soll.
- B Bit – 1
Bit lang – B-Bit
ist das BPDU-Bit. Wenn dieses Bit gesetzt ist, dann weist der Port
BPDUs zurück. Dieses
Bit wird für
Trunk-Ports gesetzt, bei denen nicht angenommen wird, dass sie BPDUs
annehmen.
- TGID – 3
Bit lang – TGID – Dieses
Feld identifiziert die Trunk-Gruppe, zu der dieser Port gehört.
- Untagged-Bitmap – 28
Bit lang – Dieses
Bitmap identifiziert die Untagged Mitglieder des VLAN. D. h., ob
das Frame, das aus diesen Teilnehmerports heraus gerichtet ist,
ohne Tag-Header übertragen
werden soll.
- M Bits – 1
Bit lang – M-Bit
wird für
die Spiegelfunktion verwendet. Wenn dieses Bit gesetzt ist, dann
ist eine Spiegelung auf den Eingang aktiviert.
-
Die
ARL-Maschine 143 liest das Paket; wenn das Paket ein VLAN-Tag
gemäß dem IEEE-Standard 802.1q besitzt,
dann führt
die ARL-Maschine 143 ein Look-Up auf der Grundlage der
tagged VLAN-Tabelle 231 durch, welche Teil der VLAN-Tabelle 23 ist.
Wenn das Paket dieses Tag nicht enthält, dann führt die ARL-Maschine den VLAN-Look-Up
auf der Grundlage der portbasierten VLAN-Tabelle 232 durch.
Sobald einmal das VLAN für
das eingehende Paket identifiziert ist, führt die ARL-Maschine 143 eine
ARL-Tabellensuche auf der Grundlage der Quell-MAC-Adresse und der
Ziel-MAC-Adresse durch. Wenn die Ergebnisse der Zielsuche eine L3-Schnittstellen-MAC-Adresse
ist, dann wird eine L3-Suche einer L3-Tabelle innerhalb der ARL/L3-Tabelle 31 durchgeführt. Wenn
die L3-Suche erfolgreich ist, dann wird das Paket gemäß den Paketvermittlungsregeln
modifiziert. Zum besseren Verständnis
von Look-Ups, dem Lernen und dem Vermitteln, ist es ratsam, wieder
die Behandlung des Pakets 112 mit Bezug auf 8 zu
erörtern.
Wenn das Datenpaket 112 von einer Quellstation A in den
Port 24a des EPIC 20a gesendet wird und an eine
Zielstation B an Port 24c des EPIC 20c gerichtet ist,
unterteilt das Eingangssubmodul 14a das Datenpaket 112 in
Zellen 112a und 112b. Das Eingangssubmodul liest
dann das Paket, um die Quell-MAC-Adresse und die Ziel-MAC-Adresse
zu bestimmen. Wie zuvor erörtert
führt das
Eingangssubmodul 14a, insbesondere die ARL-Maschine 143,
den Look-Up der geeigneten Tabellen innerhalb der ARL/L3-Tabellen 21a und
der VLAN-Tabelle 23a durch, um zu sehen, ob die Ziel-MAC-Adresse
in den ARL/L3-Tabellen 21a existiert; wenn die Adresse
nicht gefunden wird, aber die VLAN Ids die gleichen für die Quelle
und das Ziel sind, dann wird das Eingangssubmodul 14a das
Paket an alle Ports senden. Das Paket wird dann zu der geeigneten
Zieladresse weitergegeben. Eine "Quellsuche" und eine "Zielsuche" wird parallel durchgeführt. Gleichzeitig
wird die Quell-MAC-Adresse des eingehenden Pakets "gelernt", und daher zu einer
ARL-Tabelle in der ARL/L3-Tabelle 21a hinzugefügt. Nachdem
das Paket von dem Ziel empfangen worden ist, wird eine Bestätigung von
der Zielstation B zu der Quellstation A gesendet. Da die Quell-MAC-Adresse
des eingehenden Pakets von der geeigneten Tabelle von B gelernt
worden ist, wird die Bestätigung
auf geeignete Weise an den Port gesendet, an dem sich A befindet.
Wenn die Bestätigung
an Port 24a empfangen wird, lernt daher die ARL-Tabelle
die Quell-MAC-Adresse von B aus dem Bestätigungspaket. Es soll angemerkt
werden, dass so lange die VLAN Ids (für getaggte Pakete) der Quell-MAC-Adressen und der
Ziel-MAC-Adressen die gleichen sind, eine Ebene-Zwei-Vermittlung
wie oben erörtert
durchgeführt
wird. Die L2-Vermittlung und das Look-Up wird daher auf der Grundlage
der ersten 16 Byte des eingehenden Pakets durchgeführt. Für nicht
getaggte Pakete wird das Portnummernfeld in dem Paket zu der portbasierten VLAN-Tabelle
innerhalb der VLAN-Tabelle 23a indexiert, und die VLAN
ID kann dann bestimmt werden. Wenn die VLAN Ids jedoch unterschiedlich
sind, ist eine L3-Vermittlung erforderlich, bei der die Pakete an
ein unterschiedliches VLAN gesendet werden. Die L3-Vermittlung basiert
jedoch auf dem IP-Headerfeld des Pakets. Der IP-Header beinhaltet
die Quell-IP-Adresse, die Ziel-IP-Adresse und die TTL (time-to-live).
-
Zum
besseren Verständnis
der Ebene-Drei-Vermittlung wird das Paket 112 von der Quellstation
A an den Port 24a des EPIC 20a gesendet und wird
dann zur Zielstation B geleitet; unter der Annahme jedoch, dass die
Station B sich in einem unterschiedlichen VLAN befindet, wie es
durch die Quell-MAC-Adresse und die Ziel-MAC-Adresse zeigt, die
verschiedene VLAN Ids besitzen. Das Look-Up für B würde nicht erfolgreich sein, da
B sich in einem unterschiedlichen VLAN befindet und das einfache
Senden dieses Pakets an alle Ports auf dem VLAN dazu führen würde, dass
B das Paket nie erhält.
Die Ebene-Drei-Vermittlung
ermöglicht
daher das Überbrücken von
VLAN-Grenzen, aber erfordert das Lesen von mehr Paketinformation,
als nur die MAC-Adressen der L2-Vermittlung. Zusätzlich zum Lesen der Quell-
und der Ziel-MAC-Adresse liest daher der Eingang 14a ebenso
die IP-Adresse der
Quelle und des Ziels. Wie zuvor erörtert sind die Pakettypen durch IEEE
und andere Standards definiert und im Stand der Technik bekannt.
Durch Lesen der IP-Adresse des Ziels ist der SOC 10 in
der Lage, das Paket an die geeignete Router-Schnittstelle zu schicken,
die mit der Ziel-IP-Adresse übereinstimmt.
Das Paket 112 wird daher auf dem CPS-Kanal 80 durch
die Versendeeinheit 18a an die geeignete Router-Schnittstelle
gerichtet (nicht dargestellt und nicht Teil des SOC 10)
abgeschickt, an der das Ziel B sich befindet. Steuerframes, die
als solche durch deren Zieladresse identifiziert werden, werden
an die CPU 52 über
den CMIC 40 gesendet. Die Ziel-MAC-Adresse ist dann die
Router-MAC-Adresse
für B.
Die Router-MAC-Adresse wird mit Hilfe der CPU 52 gelernt,
die eine ARP-(Adressauflösungsprotokoll)-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 daher der SOC 10 die MAC-Adresse lernen.
Durch die Bestätigung
und den Lernprozess jedoch ist es nur das erste Paket, das aufgrund
der Beteiligung der CPU 52 dieser "langsamen" Behandlung unterworfen ist. Nachdem
die geeigneten MAC-Adressen gelernt sind, kann eine Vermittlung
bei Leitungsgeschwindigkeit durch die Verwendung von gleichzeitigen
Tabellen-Look-Ups geschehen, da die erforderliche Information von
den Tabellen gelernt wird. Das Implementieren der Tabellen im Silizium
als zweidimensionale Arrays ermöglicht
solche schnellen gleichzeitigen Look-Ups. Sobald die MAC-Adresse
für B gelernt
worden ist, wechselt der Eingang 14a daher, wenn Pakete
mit einer IP-Adresse für
B eingehen, die IP-Adresse zu der Ziel-MAC-Adresse, um eine Vermittlung
bei Leitungsgeschwindigkeit zu ermöglichen. Ebenso wird die Quelladresse
des eingehenden Pakets zu der Router-MAC-Adresse für A an Stelle
der IP-Adresse für
A geändert,
sodass die Bestätigung
von B an A auf die schnelle Weise behandelt werden kann, ohne dass
erfordert wird, die CPU bei dem Zielende zu benutzen, um die Quell-MAC-Adresse
zu identifizieren, die das Ziel für die Bestätigung sein soll. Zusätzlich wird
ein TTL (time-to-live) Feld in dem Paket auf geeignete Weise verändert gemäß dem IETF
(Internet Ingeneering Task Force) Standard. Ein einziger Gesichtspunkt
des SOC 10 ist, dass das gesamte Vermitteln, die Paketverarbeitung
und die Tabellen-Look-Ups in Hardware durchgeführt werden, statt dass erfordert
wird, dass die CPU 52 oder eine andere CPU Zeit zum Verarbeiten
von Anweisungen aufwenden muss. Es soll bemerkt werden, dass die
Ebene-Drei-Tabellen
für den
EPIC 20 verschiedene Größen haben
können;
in einem bevorzugten Ausführungsbeispiel
sind diese Tabellen der Lage, bis zu 2000 Adressen zu halten und
sind einem Entfernen und Löschen
von gealterten Adressen unterworfen, wie es hier erklärt ist.
-
Unter
Bezugnahme erneut auf die Erörterung
von 14 wird sobald die ersten 64
(vierundsechzig) Byte des Pakets in die Eingangs-FIFO 142 gelangen,
eine Filteranforderung an den FFP 141 gesendet. Der FFP 141 ist
ein umfangreicher Filtermechanismus, der der SOC 10 in
die Lage versetzt, ausschließliche
und nicht ausschließliche
Filter auf jedes beliebige Feld eines Pakets von Ebene 2 bis
Ebene 7 des OSI-Sieben-Ebenen-Modells zu setzen. Die Filter
werden zur Paketklassifizierung verwendet auf der Grundlage eines Protokoullfelds
in den Paketen. Verschiedene Aktionen können auf der Grundlage der
Paketklassifizierung vorgenommen werden, einschließlich des
Außer
Acht lassen des Pakets, des Versenden des Pakets an die CPU, des
Sendens des Pakets an andere Ports, des Sendens des Pakets an bestimmte
COS-Prioritätsschlangen, Verändern des
Diensttyps-(TOS)-Vorrangs. Das ausschließliche Filter wird in erster
Linie zum Implementieren von Sicherheitsfunktionen verwendet und
ermöglicht
das Voranschreiten eines Pakets nur, wenn es eine Filterübereinstimmung
gibt. Wenn es keine Übereinstimmung
gibt, wird das Paket außer
Acht gelassen.
-
Es
soll angemerkt werden, dass der SOC 10 die einzigartige
Fähigkeit
zum Behandeln sowohl von getaggten als auch von nicht getaggten
Paketen besitzt, die eingehen. Getaggte Pakete werden gemäß dem IEEE-Standard
getaggt und beinhalten ein spezielles IEEE 802.1 p Prioritätsfeld für das Paket.
Nicht getaggte Pakete jedoch beinhalten jedoch kein 802.1 p Prioritätsfeld darin.
Der SOC 10 kann einen geeigneten COS-Wert für das Paket
zuteilen, der als Äquivalent
zu einer gewichteten Priorität
betrachtet wird, auf der Grundlage entweder der Zieladresse oder
der Quelladresse des Pakets, sowie es eine Übereinstimmungen in einem der
Tabellen-Look-Ups gibt. Wie bei dem hier erörterten ARL-Tabellenformat bemerkt, ist ein SCP
(Source COS Priority) Bit als eines dieser Felder der Tabelle enthalten.
Wenn dieses SCP-Bit gesetzt ist, dann wird der SOC 10 die
gewichtete Priorität
auf der Grundlage eines Quell-COS-Werts in der ARL-Tabelle zuteilen. Wenn
das SCP nicht gesetzt ist, dann wird der SOC 10 ein COS
für das
Paket auf der Grundlage des Ziel-COS-Felds in der ARL-Tabelle zuteilen.
Diese COS-Werte sind Drei-Bit-Felder in der ARL-Tabelle, wie es zuvor
in den ARL-Tabellenfeldbeschreibungen angemerkt worden ist.
-
Der
FFP 141 ist im Wesentlichen eine von einer Zustandsmaschine
getriebene Maschine programmierbarer Regeln. Die von dem FFP verwendeten
Filter sind 64 (vierundsechzig) Byte breit und werden auf ein eigenes
Paket angewendet; Jeder Offset kann verwendet werden, jedoch wird
in einem bevorzugten Ausführungsbeispiel
ein Offset von Null verwendet und daher arbeitet es bei den ersten
64 Byte, oder 512 Bit, eines Pakets. Die von dem Filter unternommenen
Aktionen sind das Einfügen
eines Tags, das Zuordnen einer Priorität, die Einfügung eines TOS-Tags, das Senden
des Pakets an die CPU, das Fallenlassen des Pakets, das Weiterleiten
des Pakets an einen Ausgangsport 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
vollständig
durch die CPU 52 über
den CMIC 40 programmierbar. Die Regeltabelle kann beispielsweise
256 Einträge tief
sein und kann in ausschließliche
und nicht ausschließliche
Filter unterteilt sein, mit beispielsweise 128 Einträgen für einschließliche bzw.
nicht ausschließliche
Filter und 128 Einträgen
für ausschließliche Filter.
Eine Filterdatenbank innerhalb des FFP 141 beinhaltet eine
Anzahl von einschließlichen
Maskenregistern und ausschließlichen
Maskenregistern, sodass die Filter auf der Grundlage der Regeln
in der Regeltabelle 22 gebildet werden und die Filter daher
im wesentlichen eine 64 Byte breite Maske oder Bitmap bilden, welches
auf das eigene Paket angewendet wird. Wenn das Filter als ausschließliches
Filter bezeichnet ist, wird das Filter alle Pakete ausschließen mit
Ausnahme derer, bei denen es eine Übereinstimmung gibt. In anderen
Worten erlaubt das ausschließliche
Filter einem Paket nur, durch den Weiterleitungsprozess durchzugehen,
wenn es eine Filterübereinstimmung
gibt. Wenn es keine Filterübereinstimmung
gibt, wird das Paket fallengelassen. In einem einschließlichen
Filter wird keine Aktion vorgenommen, wenn es keine Übereinstimmung
gibt, aber das Paket wird nicht fallengelassen. Eine Aktion bei
einem ausschließlichen
Filter erfordert eine exakte Übereinstimmung aller
Filterfelder. Wenn es eine exakte Übereinstimmung mit einem ausschließlichen
Filter gibt, wird daher die Aktion vorgenommen, wie sie in dem Aktionsfeld
spezifiziert ist; die Aktionen, die vorgenommen werden können, sind
oben erörtert.
Wenn es keine volle Übereinstimmung
oder exakte Übereinstimmung
von allen Filterfeldern gibt, aber es eine teilweise Übereinstimmung
gibt, dann wird das Paket fallengelassen. Eine teilweise Übereinstimmung
ist definiert, als entweder eine Übereinstimmung in Bezug auf
das Eingangsfeld, das Ausguangsfeld oder Filterauswahlfeldern. Wenn
es weder eine volle Übereinstimmung
noch eine teilweise Übereinstimmung
mit dem Paket und dem ausschließlichen
Filter gibt, wird keine Aktion vorgenommen und das Paket fährt durch
den Weiterleitungsprozess fort. Die FFP-Konfiguration, indem sie Aktionen auf
der Grundlage der ersten 64 Byte eines Pakets vornimmt, verbessert
die Behandlung des Echtzeit-Verkehrs, da die Pakete in Echtzeit
gefiltert und Aktionen vorgenommen werden können. Ohne ein FFP gemäß der Erfindung
müssten die
Pakete zu der CPU übertragen
werden, damit die geeignete Aktion interpretiert und vorgenommen
werden kann. Für
einschließliche
Filter wird, wenn es eine Filterübereinstimmung
gibt, eine Aktion vorgenommen und wenn es keine Filterübereuinstimmung
gibt, keine Aktion vorgenommen; die Pakete werden jedoch bei den einschließlichen
Filtern nicht auf der Grundlage der Situation an Übereinstimmung
oder keiner Übereinstimmung
fallengelassen.
-
In
Summe beinhaltet der FFP eine Filterdatenbank mit acht Sätzen von
einschließlichen
Filtern und acht Sätzen
von ausschließlichen
Filtern als getrennte Filtermasken. Sobald ein Paket in den FFP
gelangt, werden die Filtermasken auf das Paket angewendet; in anderen
Worten wird eine logische AND-Operation mit der Maske und dem Paket
durchgeführt.
Wenn es eine Übereinstimmung
gibt, werden die übereinstimmenden Einträge auf die
Regeltabellen 22 angewendet, um zu bestimmen, welche spezifischen
Aktionen durchgeführt werden.
Wie zuvor erwähnt,
beinhalten die Aktionen das Einfügen
eines 802.1p-Tags, das Zuordnen einer 802.1p-Prioriät, das Einfügen eines
IP-TOS-(type-of-service)-Tags, das Senden des Pakets an die CPU,
das Fallenlassen oder Außer
Acht lassen des Pakets, das Weiterleiten des Pakets an einen Ausgangsport
und das Senden des Pakets an einen gespiegelten Port. Da es eine
begrenzte Anzahl von Feldern in der Regeltabelle gibt, und da bestimmte
Regeln für
verschiedene Typen von Paketen angewendet werden müssen, sind
die Anforderungen an die Regeltabelle in der vorliegenden Erfindung
minimiert, indem die vorliegende Erfindung alle eingehenden Pakete
zu "getaggte" Pakete setzte; alle
nicht getaggten Pakete werden daher der Einfügung eines 802.1p-Tags unterworfen,
um die Anzahl von Einträgen
zu verringern, die in der Regeltabelle erforderlich sind. Diese
Aktion eliminiert die Notwendigkeit von Einträgen im Bezug auf das Behandeln
von nicht getaggten Paketen. Es soll bemerkt werden, dass spezielle
Pakettypen durch verschiedene IEEE- und andere Netzwerkstandards
definiert sind und hier nicht definiert werden.
-
Wie
zuvor erwähnt
sind ausschließliche
Filter in der Regeltabelle als Filter definiert, die Pakete ausschließen, für die es
keine Übereinstimmung
gibt; ausgeschlossene Pakete werden fallengelassen. Mit einschließlichen
Filtern jedoch werden Pakete unter keinen Umständen fallengelassen. Wenn es
eine Übereinstimmung
gibt, wird eine Aktion wie oben erörtert vorgenommen. Wenn es
keine Übereinstimmung
gibt, wird keine Aktion vorgenommen und das Paket fährt durch
den Weiterleitungsprozess fort. Unter Bezugnahme auf 15 ist dargestellt, dass die FFP 141 eine
einschließliche
Filterdatenbank 1410 enthält, die darin Filtermasken
enthält
und mit einem Logikschaltkreis 1411 zum Bestimmen der Pakettypen
und zum Anwenden der geeigneten Filtermasken in Verbindung steht.
Nachdem die Filtermaske wie oben erörtert angewendet worden ist,
wird das Ergebnis der Anwendung auf die Regeltabelle 22 für den geeigneten
Look-Up und die geeignete Aktion angewendet. Es soll angemerkt werden,
dass die Filtermasken, die Regeltabellen und die Logik, auch wenn
sie durch die CPU 52 programmierbar sind, nicht von der
CPU 52 für
die Verarbeitung und die Berechnung abhängig sind. Nach der Programmierung
wird eine Hardware-Konfiguration geschaffen, die eine Filteranwendung
und ein Look-Up bei Leitungsgeschwindigkeit ermöglicht.
-
Unter
Bezugnahme wieder auf 14 bestimmt, nachdem der FFP 141 die
geeigneten konfigurierten Filter anwendet und die Ergebnisse von
der geeigneten Regeltabelle 22 erhalten worden sind, die
Logik 1411 im FFP 144 die geeignete Aktion und
führt sie
aus. Die Filterlogik kann das Paket außer Acht lassen, das Paket an
die CPU 52 senden, den Paket-Header oder den IP-Header verändern und
jedes beliebige IP-Prüfsummenfeld
erneut berechnen oder eine andere geeignete Aktion in Bezug auf
die Header vornehmen. Die Veränderung
geschieht beim Pufferunterteiler 144 und das Paket wird
auf dem C-Kanal 81 angeordnet. Die Steuernachricht und
die Nachrichten-Header-Information werden von dem FFP 141 und
der ARL-Maschine 143 angewendet und der Nachrichten-Header
wird auf dem P-Kanal 82 plaziert. Die Versendeeinheit 18,
die im allgemeinen ebenso mit Bezug auf 8 erörtert worden
ist, koordiniert alle Versendungen auf den C-Kanal, den P-Kanal
und den S-Kanal. Wie zuvor erörtert
ist jedes EPIC-Modul 20, GPuIC-Modul 30, PMMU 70 usw.
individuell konfiguriert, um mittels des CPS-Kanals zu kommunizieren.
Jedes Modul kann unabhängig
voneinander modifiziert werden und so lange die CPS-Kanalschnittstellen
aufrecht erhalten werden, sollten interne Modifikationen bei jedem
beliebigen Modul, wie beispielsweise ein EPIC 20a, keine Auswirkungen
auf andere Module, wie beispielsweise das EPIC 20b oder
ein beliebiges GPIC 30 haben.
-
Wie
zuvor erörtert
wird der FFP 141 von dem Benutzer über die CPU 52 programmiert
auf der Grundlage der spezifischen Funktionen, bei denen beabsichtigt
ist, dass sie von jeder FFP 141 behandelt werden. Unter
Bezugnahme auf die 17 kann gesehen werden, dass
in Schritt 17-1 ein FFP-Programmierschritt vom Benutzer
angestoßen
ist. Sobald die Programmierung angestoßen worden ist, identifiziert
der Benutzer die Protokollfelder des Pakets in Schritt 17-2,
die für
das Filter interessant sind. In Schritt 17-3 werden der
Pakettyp und die Filterbedingungen bestimmt und in Schritt 17-4 wird
eine Filtermaske auf der Grundlage des identifizierten Pakettyps
und der gewünschten
Filterbedingungen zusammengesetzt. Die Filtermaske ist im Wesentlichen
ein Bitmap, welches auf die ausgewählten Felder des Paktes angewendet
oder für
eine UND-Verknüpfung
verwendet wird. Nachdem die Filtermaske zusammengesetzt worden ist,
wird dann bestimmt, ob das Filter ein nicht ausschließliches
bzw. einschließliches
oder ein ausschließliches
Filter ist auf der Grundlage der Probleme, deren Lösung gewünscht ist,
und der Pakete, bei denen eine Weiterleitung gewünscht ist, bzw. der Aktionen,
die durchgeführt
werden sollen. In Schritt 17-6 wird bestimmt, ob das Filter
auf einem Eingangsport ist oder nicht und in Schritt 17-7 wird
bestimmt, ob das Filter auf einem Ausgangsport ist oder nicht. Wenn
das Filter auf einem Eingangsport ist, wird eine Eingangsportmaske
in Schritt 17-8 verwendet. Wenn bestimmt wird, dass das
Filter auf einem Ausgangsport ist, dann wird in Schritt 17-9 eine
Ausgangsmaske verwendet. Auf der Grundlage dieser Schritte wird
ein Regeltabelleneintrag für
die Regeltabellen 22 zusammengesetzt und der Eintrag oder
die Einträge
werden in der geeigneten Regeltabelle angeordnet (Schritte 17-10 und 17-11).
Diese Schritte werden durch den Benutzer durchgeführt, indem
er bestimmte Sätze
von Regeln und Informationen in die CPU 52 mittels einer
geeigneten Eingabevorrichtung eingibt und in dem die CPU 52 die
geeignete Aktion im Bezug auf das Erzeugen der Filter mittels der
CMIC 40 und dem geeigneten Eingangs- oder Ausgangssubmodul
auf ein geeignetes CPIC-Modul 20 oder GBIC-Modul 30 vornimmt.
-
Es
soll ebenso angemerkt werden, dass das Blockdiagramm des SOC 10 in 2 zeigt,
wie jeder GPIC 30 seine eigenen ARL/L3-Tabellen 31,
Regeltabelle 32 und VLAN-Tabellen 33 besitzt und
wie ebenso jeder EPIC 20 seine eigenen ARL/L3-Tabellen 21,
Regeltabelle 22 und VLAN-Tabellen 23 besitzt.
In einem bevorzugten Ausführungsbeispiel
der Erfindung jedoch können
getrennte Module sich eine gemeinsame ARL/L3-Tabelle und eine gemeinsame
VLAN-Tabelle teilen. Jedes Modul besitzt jedoch seine eigene Regeltabelle 22.
Daher kann beispielsweise der GPIC 30a die ARL/L3-Tabelle 21a und
die VLAN-Tabelle 23a mit dem EPIC 20a teilen.
Auf ähnliche
Weise kann der GPIC 30b die ARL-Tabelle 21b und
die VLAN-Tabelle 23b mit dem EPIC 20b teilen.
Das Teilen der Tabellen verringert die Anzahl von Zugängen, die
zum Implementieren der Erfindung erforderlich sind und schafft ein
vereinfachtes Look-Up und eine einfache Synchronisation wie nachstehend
erörtert
werden wird.
-
Tabellensynchronisierung
und Alterung
-
Der
SOC 10 verwendet ein einzigartiges Verfahren der Tabellensynchronisierung
und des Alterns, um sicherzustellen, dass nur aktuelle und aktive
Adressinformation in den Tabellen gehalten wird. Wenn die ARL/L3-Tabellen
aktualisiert werden, um eine neue Quelladresse aufzunehmen, wird
ein "Trefferbit" innerhalb der Tabelle
des "Besitzers" oder dem erhaltenden
Modul gesetzt, um anzuzeigen, dass auf die Adresse zugegriffen worden
ist. Ebenso wird, wenn eine neue Adresse gelernt und in der ARL-Tabelle
angeordnet worden ist, eine S-Kanal-Nachricht auf dem S-Kanal 83 als
eine ARL-Einfügenachricht
angeordnet, die alle ARL/L3-Tabellen auf dem SOC 10 anweist,
diese neue Adresse zu lernen. Der Eintrag in den ARL/L3-Tabellen
beinhaltet eine Identifikation des Ports, der ursprünglich das
Paket empfangen und die Adresse gelernt hat. Wenn daher der EPIC 20a den
Port enthält,
der ursprünglich
das Paket empfangen und daher ursprünglich die Adresse gelernt
hat, wird der EPIC 20a der "Besitzer" der Adresse. Nur der EPIC 20a kann
daher diese Adresse von der Tabelle löschen. Die ARL-Einfügenachricht
wird von allen anderen Modulen empfangen und die Adresse wird in
allen ARL/L3-Tabellen auf dem SOC 10 hinzugefügt. Der
CMIC 40 wird ebenso die Adressinformation an die CPU 52 senden.
Wenn jedes Modul die Adressinformation empfängt und lernt, wird eine Bestätigung oder
eine ACK-Nachricht zurück
zum EPIC 20a gesendet; als Besitzer kann von dem EPIC 20a keine
weitere ARL-Einfügenachricht
gesendet werden, bis alle ACK-Nachrichten von allen Modulen empfangen
worden sind. In einem Gerät
sendet der CMIC 40 nicht eine ACK-Nachricht, da der CMIC 40 kein
Eingangs/Ausgangs-Modul darauf enthält, sondern kommuniziert nur
mit der CPU 52. Wenn mehrere SOC 10 in einer gestapelten
Konfiguration zur Verfügung
gestellt werden, würden
alle ARUL3-Tabellen synchronisiert werden, aufgrund der Tatsache,
dass der CPS-Kanal 80 von
allen gestapelten Modulen geteilt wird.
-
Unter
Bezugnahme auf 18 wird der ARL-Alterungsvorgang
erörtert.
Ein Alterungstimer ist innerhalb jedes EPIC-Moduls 20 und
GPIC-Moduls 30 in Schritt 18-1 vorgesehen; es
wird bestimmt, ob der Alterungstimer abgelaufen ist. Wenn der Timer
abgelaufen ist, beginnt der Alterungsvorgang, indem der erste Eintrag
in der ARL-Tabelle 21 untersucht wird. Bei Schritt 18-2 wird
bestimmt, ob der Port, auf den im ARL-Eintrag Bezug genommen wird,
zu dem bestimmten Modul gehört
oder nicht. Wenn die Antwort nein ist, fährt das Verfahren zu Schritt 18-3 fort,
wo bestimmt wird, ob dieser Eintrag der letzte Eintrag in der Tabelle
ist oder nicht. Wenn die Antwort bei Schritt 18-3 ja ist,
wird der Alterungstimer erneut gestartet und der Prozess bei Schnitt 18-4 vervollständigt. Wenn
dies nicht der letzte Eintrag in der Tabelle ist, dann wird der
Prozess zum nächsten ARL-Eintrag
bei Schritt 18-5 zurückgeführt. Wenn
jedoch bei Schritt 18-2 bestimmt wird, dass der Port zu
diesem bestimmten Port gehört,
dann wird bei Schritt 18-6 bestimmt, ob das Trefferbit
bzw. Hitbit gesetzt ist oder nicht, oder ob dies ein statischer
Eintrag ist. Wenn das Trefferbit gesetzt ist, wird bei Schritt 18-7 das
Trefferbit zurückgesetzt
und das Verfahren schreitet zu Schritt 18-3 fort. Wenn
das Trefferbit nicht gesetzt ist, wird der ARL-Eintrag bei Schritt 18-8 gelöscht und
eine Lösche-ARL-Eintragnachricht
auf den CPS-Kanal zu den anderen Modulen einschließlich des
CMIC 40 gesendet, sodass die Tabelle wie zuvor erörtert auf
geeignete Weise synchronisiert werden kann. Dieser Alterungsvorgang
kann im Bezug auf die ARL-(Ebene 2)-Einträge durchgeführt werden, ebenso wie auf
die Ebene-Drei-Einträge,
um sicherzustellen, dass gealterte Pakete auf geeignete Weise von
den Tabellen durch die Besitzer der Einträge gelöscht werden. Wie zuvor erörtert, wird der
Alterungsprozess nur auf Einträge
angewendet, bei denen der Port, auf den Bezug genommen wird, zu dem
besonderen Modul gehört,
welches den Alterungsprozess durchführt. Zu diesem Zweck wird daher
das Trefferbit nur in dem Besitzermodul gesetzt. Das Trefferbit
wird nicht für
Einträge
in Tabellen von anderen Modulen gesetzt, die die ARL-Einfügenachricht
erhalten. Das Trefferbit ist daher in den synchronisierten Nicht-Benutzertabellen
immer zu Null gesetzt.
-
Der
Zweck der Quell- und Zielsuche und der Gesamt-Look-Ups ist, die
Portnummer innerhalb des SOC 10 zu identifizieren, an die
das Paket gerichtet werden soll, nachdem es entweder im CBP 50 oder
im CBP 60 angeordnet worden ist. Selbstverständlich führt ein
Fehler beim Quell-Look-Up zu einem Lernen der Quelle von der Quell-MAC-Adressinformation
in dem Paket; ein Ziel-Look-Up-Fehler jedoch führt, da kein Port identifiziert
werden würde
dazu, dass das Paket auf alle Ports auf dem SOC 10 gesendet
wird. So lange die Ziel-VLAN-ID die gleiche ist wie die Quell-VLAN-ID,
wird sich das Paket im VLAN fortpflanzen und das letztendliche Ziel
erreichen, an welchem Punkt ein Bestätigungspaket empfangen wird,
wobei auf diese Weise die ARL-Tabelle in die Lage versetzt wird,
den Zielport zur Verwendung bei folgenden Paketen zu lernen. Wenn die
VLAN-Ids unterschiedlich sind, wird ein L3-Look-Up- und Lernvorgang,
wie zuvor erörtert,
durchgeführt.
Es soll bemerkt werden, dass jeder EPIC und jeder GPIC eine FIFO-Schlange
enthält,
um ARL-Einfügenachrichten
zu speichern, da auch wenn jedes Modul nur eine Nachricht gleichzeitig
senden kann, eine Schlange zum geeigneten Bearbeiten von Nachrichten
bereitgestellt werden muss, wenn jedes Modul eine Einfügenachricht sendet.
-
Portverlagerung
-
Da
die ARL/L3-Tabellen in sich Einträge aufweisen, entsteht manchmal
die Situation, in der ein bestimmter Benutzer oder eine bestimmte
Station den Ort von einem Port zu einem anderen wechselt. Um Übertragungsfehler
zu vehindern, beinhaltet daher der SOC 10 die Fähigkeiten,
eine solche Verlagerung zu identifizieren und die Tabelleneinträge auf geeignete
Weise zu aktualisieren. Wenn beispielsweise Station A, die sich beispielsweise
an Port 1 befindet, eine Verbindung mit B sucht, deren
Einträge
anzeigen, dass der Benutzer B sich an Port 26 befindet.
Wenn die Station B an einen unterschiedlichen Port verlagert worden
ist, beispielsweise Port 15, wird ein Ziel-Look-Up-Fehler
auftreten und das Paket wird an alle Ports gesendet. Wenn das Paket
von der Station B an Port 15 empfangen wird, wird die Station
B eine Bestätigungs-(ACK)-Nachricht
senden, die von dem Eingang des EPIC/GPIC-Moduls empfangen wird,
das bei sich Port 1 enthält. Ein Quell-Look-Up (der
Bestätigungsnachricht)
wird eine Übereinstimmung
der Quelladresse ergeben, aber die Portinformation wird nicht übereinstimmen.
Der EPIC/GPIC, der das Paket von B erhält, muss daher den alten Eintrag
von der ARL/L3-Tabelle löschen,
und ebenso eine ARL/L3-Löschnachricht
auf den S-Kanal senden, sodass alle Tabellen synchronisiert werden.
Dann wird die neue Quellinformation mit dem richtigen Port in die ARL/L3-Tabelle
eingeführt
und eine ARL/L3-Einfügenachricht
wird auf dem S-Kanal plaziert, wobei auf diese Weise die ARL/L3-Tabellen
mit der neuen Information synchronisiert werden. Die aktualisierte
ARL-Einfügenachricht
kann nicht gesendet werden, bis alle Bestätigungsnachrichten in Bezug
auf die ARL-Löschnachricht gesendet
worden sind, um eine richtige Tabellensynchronisierung sicherzustellen.
Wie zuvor ausgeführt,
können übliche ARL-Einfüge- und
Löschanweisungen
nur von dem Besitzermodul angestoßen werden. In dem Fall einer
Portverlagerung jedoch können
die Lösch-
und Einfügenachrichten
in Verbindung mit der Portverlagerung von jedem beliebigen Modul
angestoßen
werden, da die Portverlagerung von jedem beliebigen Modul, das ein
Paket zu einem verlagerten Port sendet, identifiziert werden kann.
-
Trunking bzw. Bündelung
-
Während des
Konfigurationsvorgangs in dem ein Local Area Network von einem Administrator
mit einer Mehrzahl von Switches usw. konfiguriert wird, können zahlreiche
Ports trunkiert oder gebündelt
werden, um die Bandbreite zu erhöhen.
Wenn beispielsweise der Verkehr zwischen einem ersten Switch SW1
und SW2 als besonders hoch vorausgesehen wird, kann das LAN derart
konfiguriert werden, dass eine Mehrzahl von Ports, beispielsweise
die Ports 1 und 2, miteinander verbunden werden.
In einer Umgebung mit 100 Megabit pro Sekunde schafft das Trunkieren
von zwei Ports effektiv eine erhöhte
Bandbreite von 200 Megabit pro Sekunde zwischen den zwei Ports.
Die zwei Ports 1 und 2 werden daher als Trunkgruppe
identifiziert und die CPU 52 wird verwendet, um auf geeignete
Weise die Behandlung der Trunkgruppe zu konfigurieren. Sobald eine Trunkgruppe
identifiziert ist, wird sie als Mehrzahl von Ports behandelt, die
als ein logischer Port arbeiten. 19 zeigt
eine Konfiguration, in der SW1, welcher eine Mehrzahl von Ports
darauf enthält,
eine Trunkgruppe mit den Ports 1 und 2 von SW2
besitzt, wobei die Trunkgruppe aus 2 Kommunikationsleitungen besteht,
die die Ports 1 und 2 von jeweils dem SW1 und
SW2 miteinander verbindet. Dies bildet die Trunkgruppe T. In diesem
Beispiel sucht die Station A, die an den Port 3 von SW1
angeschlossen ist, die Verbindung oder eine Paketsendung an die
Station B, die sich an Port 26 von Switch SW2 befindet.
Das Paket muss daher durch die Trunkgruppe T von Port 3 von
SW1 zu Port 26 von SW2 gelangen. Es soll angemerkt werden,
dass die Trunkgruppe jede beliebige Anzahl von Ports zwischen den
Switches beinhalten kann. Sowie der Verkehrsfluss zwischen SW1 und
SW2 zunimmt, kann die Trunkgruppe T vom Administrator rekonfiguriert
werden, um mehrere Ports zu beinhalten, wobei auf diese Weise die
Bandbreite effektiv erhöht
wird. Zusätzlich
zum Bereitstellen einer erhöhten
Bandbreite liefert das Trunkieren eine Redundanz im Fall eines Fehlers
von einer der Verbindungen zwischen den Switches. Sobald die Trunkgruppe
erzeugt ist, programmiert ein Benutzer der SOC 10 mittels
der CPU 52, um die geeignete Trunkgruppe oder Trunkgruppen
mit der Trunkgruppenidentifizierungs-(TGID)-Information zu erkennen.
Ein Trunkgruppen-Port-Bitmap wird für jede TGID vorbereitet; und
es wird eine Trunkgruppen-Tabelle, die für jedes Modul auf dem SOC 10 bereitgestellt
wird, verwendet, um die Trunkgruppen zu implementieren, welches
ebenso als Portbündelung
bezeichnet werden kann. Eine Trunkgruppen-Bitmap-Tabelle wird ebenso
bereitgestellt. Diese zwei Tabellen werden pro Modul bereitgestellt
und ähnlich
wie die Tabellen 21, 22 und 23 werden
sie im Silizium als zweidimensionale Arrays implementiert. In einem
Ausführungsbeispiel
des SOC 10 können
sechs Trunkgruppen unterstützt
werden, wobei jede Trunkgruppe bis zu acht Trunkports darauf aufweist.
Zur Kommunikation jedoch muss der gleiche Port für den Paketfluss verwendet
werden, um zu verhindern, dass die Reihenfolge der Pakete oder Frames
durcheinander kommt. Die Identifikation von jedem Port, die für die Kommunikation
verwendet wird, gründet
sich auf eine beliebige der folgenden Angaben: Quell-MAC-Adresse, Ziel-MAC-Adresse.
Quell-IP-Adresse, Ziel-IP-Adresse oder Kombinationen von Quell-
und Zieladressen. Wenn die Quell-MAC verwendet wird, wenn beispielsweise Station
A an Port 3 von SW3 versucht, ein Paket an die Station
B an Port 26 von SW2 zu senden, dann werden die letzten
drei Bits der Quell-MAC-Adresse von Station A, welches das Quelladressfeld
des Pakets ist, verwendet, um einen Trunkport-Index zu erzeugen.
Im Bezug auf den Trunkport-Index wird dann ein Look-Up auf die Trunkgruppen-Tabelle
von dem Eingangssubmodul 14 des bestimmten Ports auf dem
Switch durchgeführt, um
zu bestimmen, welcher Port der Trunkgruppe für die Verbindung verwendet
wird. In anderen Worten ausgedrückt,
wenn ein Paket von der Station A zur Station B gesendet werden soll,
wird eine Adressauflösung
wie zuvor erörtert,
durchgeführt.
Wenn das Paket durch eine Trunkgruppe behandelt werden soll, dann
wird ein T-Bit in den ARL-Eintrag gesetzt, welcher in Übereinstimmung
durch die Zieladresse gebracht wird. Wenn das T-Bit oder Trunkbit
gesetzt ist, dann wird die Zieladresse von einem der Trunkports
gelernt. Der Ausgangsport wird daher nicht von der Portnummer gelernt,
die in dem ARL-Eintrag enthalten ist, sondern wird stattdessen von
der Trunkgruppen-ID und dem Regel-Tag (RTAG) gelernt, welches vom
ARL-Eintrag aufgenommen wird und welches verwendet werden kann,
den Trunkport auf der Grundlage des Trunkport-Index zu identifizieren, der
in der Trunkgruppen-Tabelle enthalten ist. Das RTAG und TGID, welches
in dem ARL-Eintrag enthalten sind, definieren daher, welcher Teil
des Pakets zur Erzeugung des Trunkport-Index verwendet wird. Wenn
beispielsweise der RTAG-Wert 1 ist, dann werden die letzten drei
Bits der Quell-MAC-Adresse
verwendet, um den Trunkport-Index zu identifizieren; unter Verwendung
der Trunkgruppen-Tabelle kann der Trunkport-Index dann verwendet
werden, um den geeigneten Trunkport für die Kommunikation zu identifizieren.
Wenn der RTAG-Wert 2 ist, dann sind es die letzten drei Bits der
Ziel-MAC-Adresse, die zum Erzeugen des Trunkport-Index verwendet werden. Wenn das RTAG
3 ist, dann werden die letzten drei Bits der Quell-MAC-Adresse XOR-verknüpft mit
den letzten drei Bits der Ziel-MAC-Adresse. Das Ergebnis dieses
Vorgangs wird zur Erzeugung des Trunkport-Index verwendet. Für IP-Pakete
werden zusätzliche
RTAG-Werte verwendet, sodass die Quell-IP- und Ziel-IP-Adressen
für den
Trunkport-Index verwendet werden, anstelle der MAC-Adressen. Der SOC 10 ist
derart konfiguriert, dass wenn ein Trunkport heruntergefahren wird
oder aus irgendeinem Grund fehlerhaft wird, eine Benachrichtigung
mittels des CMIC 40 and die CPU 52 gesendet wird.
Die CPU 52 wird dann so konfiguriert, dass sie automatisch
die Trunkgruppen-Tabelle und die VLAN-Tabellen überprüft, um sicherzustellen, dass
die geeigneten Portbitmaps verändert
werden, um die Tatsache wiederzugeben, dass ein Port heruntergefahren
worden ist und daher entfernt worden ist. Wenn der Trunkport oder
die Verbindung wiederhergestellt wird, wird auf ähnliche Weise der Vorgang umgedreht
und eine Nachricht muss an die CPU 52 gesendet werden,
sodass die VLAN-Tabellen, die Trunkgruppen-Tabellen usw. aktualisiert
werden können,
um das Vorhandensein des Trunkports wiederzugeben.
-
Weiterhin
soll angemerkt werden, dass da die Trunkgruppe als einzelne logische
Verbindung gehandelt wird, die Trunkgruppe so konfiguriert ist,
dass sie Steuerframes oder Steuerpakete, ebenso als BPDUs bekannt,
nur für
einen der Trunkports annimmt. Die portbasierte VLAN-Tabelle muss
daher so konfiguriert werden, dass sie eingehende BPDUs von nicht
spezifizierten Trunkports zurückweist.
Dieses Zurückweisen
kann auf einfache Weise erreicht werden, indem ein B-Bit in der
VLAN-Tabelle gesetzt wird. Der IEEE-Standard 802.1d definiert einen Algorithmus,
der als Spanning-Tree-Algorithmus bekannt ist, um Datenschleifen
in Switches zu verhindern, in denen es Trunkgruppen gibt. Unter
Bezugnahme auf 19 könnte eine logische Schleife
zwischen den Ports 1 und 2 und den Switches SW1
und SW2 bestehen. Der Spanning-Tree-Algorithmus definiert vier getrennte
Zustände,
wobei diese Zustände
das Deaktivieren, das Blockieren, das Zuhören, das Lernen und das Weiterleiten
beinhalten. Die portbasierte VLAN-Tabelle ist so konfiguriert, dass
die CPU 52 in die Lage versetzt ist, die Ports für einen
spezifischen ARL-Zustand zu programmieren, sodass die ARL-Logik
die geeignete Aktion in Bezug auf die eingehenden Pakete durchführt. Wie
zuvor ausgeführt,
schafft das B-Bit in der VLAN-Tabelle die Fähigkeit BPDUs zurückzuweisen.
Das St-Bit in der ARL-Tabelle ermöglicht es der CPU, die statischen
Einträge
zu erlernen; wie in der 18 bemerkt
ist, werden statische Einträge
nicht vom Alterungsprozess gealtert. Das Trefferbit in der ARL-Tabelle
ermöglicht
es wie zuvor bemerkt der ARL-Maschine 143, zu erfassen,
ob es einen Treffer in Bezug auf diesen Eintrag gibt oder nicht.
In anderen Worten verwendet der SOC 10 eine einzigartige
Konfiguration der ARL-Tabellen, der VLAN-Tabelle, der Module usw., um
eine effiziente Silizium-basierte Implementierung der Spanning-Tree-Zustände zu schaffen.
-
In
bestimmten Situationen, so wie beispielsweise bei einem Ziel-Look-Up-Fehler
(DLF), in dem ein Paket an alle Ports in einem VLAN gesendet werden,
oder bei einem Multicast-Paket,
wird die Trunkgruppen-Bitmap-Tabelle so konfiguriert, dass sie geeignete
Portinformation aufnimmt, sodass das Paket nicht an die Mitglieder
der gleichen Quell-Trunk-Gruppe
zurückgesendet
wird. Dies verhindert unnötigen
Verkehr auf dem LAN und hält
die Effizienz der Trunkgruppe aufrecht.
-
IP/IPX
-
Unter
erneuter Bezugnahme auf 14 kann
jeder GPIC 20 oder GPIC 30 so konfiguriert werden, dass
er eine Unterstützung
sowohl des IP- als auch des IPX-Protokolls bei Leitungsgeschwindigkeit
ermöglicht.
Diese Flexibilität
wird bereitgestellt, ohne dass sie eine negative Auswirkung auf
die Systemleistung hat und verwendet eine Tabelle, die in Silizium
implementiert ist, die für
das IP-Protokoll, das IPX-Protokoll oder eine Kombination von IP-Protokoll und IPX-Protokoll
ausgewählt
werden kann. Diese Fähigkeit
wird innerhalb der Logikschaltung 1411 bereitgestellt und
verwendet einen Look-Up nach dem längsten IP-Prefix-Cage (IP_LPC) und einen Look-Up
nach dem längsten
IPX-Prefix-Cage (IPX_LPC). Während
des Ebene-Drei-Look-Ups werden eine Anzahl von gleichzeitigen Suchvorgängen durchgeführt; ein
schneller L3-Look-Up und der Look-Up nach dem längsten IP-Prefix-Cage werden
gleichzeitig durchgeführt,
wenn das Paket mittels des Paket-Headers als IP-Paket identifiziert
wird. Wenn der Paket-Header das Paket als IPX-Paket identifiziert,
wird der schnelle L3-Look-Up und der Look-Up nach dem längsten IPX-Prefix-Cage
gleichzeitig durchgeführt.
Es soll angemerkt werden, dass die ARL/L3-Tabellen 21/31 eine IP-Vorgabe-Router-Tabelle beinhalten,
die für
einen Look-Up nach dem längsten
IP-Prefix-Cage verwendet wird, wenn das Paket als IP-Paket identifiziert
wird und ebenso eine IPX-Vorgabe-Router-Tabelle
beinhaltet, die verwendet wird, wenn der Paket-Header das Paket
als ein IPX-Paket identifiziert. Geeignete Hexadezimalcodes werden
verwendet, um die Pakettypen zu bestimmen. Wenn das Paket weder
als IP-Paket noch als IPX-Paket identifiziert wird, wird das Paket
zur CPU 52 mittels des CPS-Kanals 80 und dem CMIC 40 geleitet.
Es soll bemerkt werden, dass wenn das Paket als IPX-Paket identifiziert
wird, es ein beliebiger von vier Typen von IPX-Paketen sein kann.
Die vier Typen sind Ethernet 802.3, Ethernet 802.2, Ethernet SNAP
und Ethernet II.
-
Der
gleichzeitige Look-Up von L3 und entweder IP oder IPX ist wichtig
für die
Leistung des SOC 10. In einer Ausführungsform des SOC 10 würde die
L3-Tabelle ebenso einen Teil beinhalten, der eine IP-Adressinformation
beinhaltet, und einen anderen Teil, der eine IPX-Information enthält, als Vorgabe-Router-Tabellen. Diese
Vorgabe-Router-Tabellen werden wie zuvor bemerkt in Abhängigkeit
davon durchsucht, ob das Paket ein IP-Paket oder ein IPX-Paket ist.
Um die Tabellen deutlicher darzustellen, ist das L3-Tabellenformat
für eine L3-Tabelle innerhalb
der ARL/L3-Tabellen 21 wie folgt:
-
- IP- oder IPX-Adresse – 32
Bit lang – IP – oder IPX-Adresse – ist eine
32-Bit-IP- oder
-IPX-Adresse. Die Ziel-IP oder -IPX-Adresse in einem Paket wird
als Schlüssel
beim Durchsuchen dieser Tabelle verwendet.
- Mac Address – 48
Bit lang – MAC-Adresse
ist tatsächlich
die nächste
Sprung-MAC-Adresse.
Diese MAC-Adresse wird als Ziel-MAC-Adresse bei dem weitergeleiteten
IP-Paket verwendet.
- Port Number – 6
Bit lang – Portnummer – ist die
Portnummer des Pakets, an die das Paket auszugehen hat, wenn die
Ziel-IP-Adresse mit der IP-Adresse dieses Eintrags übereinstimmt.
- L3 Interface Num – 5
Bit lang – L3-Schnittstellennummer – diese
L3 Schnittstellennummer wird verwendet, um die Router-MAC-Adresse
von der L3-Schnittstellentabelle zu erhalten.
- L3 Hit Bit – 1
Bit lang – L3-Trefferbit – wird verwendet,
um zu überprüfen, ob
es einen Treffer auf diesen Eintrag gibt. Das Trefferbit wird gesetzt,
wenn die Suche nach der Quell-IP-Adresse
mit diesem Eintrag übereinstimmt. Der
L3-Alterungsvorgang altert diesen Eintrag, wenn dieses Bit nicht
gesetzt ist.
- Frame Type – 2
Bit lang – Frametyp
zeigt den Typ des IPX-Frames an (802.2, Ethernet II, SNAP und 802.3), der
von diesem IPX-Knoten angenommen wird. Wert 00-Ethernet-II-Frame. Wert 01 – SNAP Frame.
Wert 02 – 802.2-Frame.
Wert 03 – 802.3-Frame.
- Reserved – 4
Bit lang – reserviert
für zukünftige Benutzung.
-
Die
Felder der Vorgabe-IP-Router-Tabelle sind wie folgt:
-
- IP Subnet Address – 32
Bit lang – IP-Subnetzadresse – ist eine
32-Bit-IP-Adresse des Subnetzes.
- Mac Address – 48
Bit lang – MAC-Adresse
ist tatsächlich
die nächste
Sprung-MAC-Adresse und ist in diesem Fall die MAC-Adresse des Vorgabe-Routers.
- Port Number – 6
Bit lang – Portnummer
ist die Portnummer, an die ein weitergeleitetes Paket auszugehen
hat.
- L3 Interface Num – 5
Bit lang – L3
Interface Num ist die L3-Schnittstellennummer.
- IP Subnet Bits – 5
Bit lang – IP-Subnetz-Bits
ist die Gesamtanzahl von Subnetz-Bits in der Subnetz-Maske. Diese
Bits werden mit der Ziel-IP-Adresse AND verknüpft, bevor sie mit der Subnetz-Adresse
verglichen werden.
- C Bit – 1
Bit lang – C-Bit – wenn dieses
Bit gesetzt ist, dann wird das Paket ebenso zur CPU gesendet.
-
Die
Felder der Vorgabe-IPX-Router-Tabelle innerhalb der ARL/L3-Tabellen 21 sind
wie folgt:
-
- IPX Subnet Address – 32
Bit lang – IPX
Subnet Address ist eine 32-Bit-IPX-Adresse des Subnetzes.
- Mac Address – 48
Bit lang – Mac
Address ist tatsächlich
die nächste
Sprung-MAC-Adresse und ist in diesem Fall die MAC-Adresse des Vorgaberouters.
- Port Number – 6
Bit lang – Port
Number ist die Portnummer an die das weitergeleitete Paket auszugehen
hat.
- L3 Interface Num – 5
Bit lang – L3
Interface Num ist die L3-Schnittstellennummer.
- IPX Subnet Bits – 5
Bit lang – IPX
Subnet Bits ist die Gesamtanzahl der Subnetz-Bits in der Subnetz-Maske. Diese
Bits werden mit der Ziel-IPX-Adresse AND-verknüpft, bevor sie mit der Subnetz-Adresse
verglichen werden.
- C Bit – 1
Bit lang – C
Bit – Wenn
dieses Bit gesetzt ist, dann wird das Paket ebenso zur CPU gesendet.
-
Wenn
in der L3-Tabelle für
die Ziel-IP-Adresse keine Übereinstimmung
gefunden wird und die Übereinstimmung
nach dem längsten
Prefix in dem Vorgabe-IP-Router fehlschlägt, dann wird das Paket an
die CPU gegeben. Wenn auf ähnliche
Weise in der L3-Tabelle für
eine Ziel-IPX-Adresse keine Übereinstimmung
gefunden wird, und die Übereinstimmung
nach dem längsten
Prefix in dem Vorgabe-IPX-Router fehlschlägt, dann wird das Paket zur
CPU gegeben. Die Look-Ups werden parallel durchgeführt, aber
wenn die Ziel-IP- oder -IPX-Adresse
in der L3-Tabelle gefunden wird, dann werden die Ergebnisse des
Vorgabe-Router-Tabellen-Look-Ups
aufgegeben.
-
Der
Look-Up nach dem längsten
Prefix-Cage, entweder für
IP oder IPX, beinhaltet wiederholte Übereinstimmungsversuche der
Bits der IP-Subnetzadresse. Die Übereinstimmung
nach dem längsten
Prefix besteht aus einer AND-Verknüpfung der Ziel-IP-Adresse mit der Anzahl
der IP- oder IPX-Subnetz-Bits und dem Vergleich des Ergebnisses
mit der IP-Subnetz-Adresse. Sobald eine Übereinstimmung des längsten Prefix
gefunden ist, werden, so lange die TTL nicht gleich eins ist, die
geeigneten IP-Prüfsummen
erneut berechnet, die Ziel-MAC-Adresse wird mit der nächsten Sprung-MAC-Adresse
ersetzt und die Quell-MAC-Adresse wird mit der Router-MAC-Adresse
der Schnittstelle ersetzt. Die VLAN-ID wird von der L3-Schnittstellentabelle
erhalten und das Paket wird dann nach Notwendigkeit entweder getaggt
oder nicht getaggt gesendet. Wenn das C-Bit gesetzt ist, wird eine
Kopie des Pakets an die CPU gesendet, sowie es zum Lernen oder für eine andere
auf die CPU bezogene Funktion erforderlich sein kann.
-
Es
soll daher angemerkt werden, dass wenn ein Paket ankommt, das an
eine MAC-Adresse gerichtet ist, die in Verbindung mit einer Ebene-Drei-Schnittstelle
für ein
ausgewähltes
VLAN steht, der Eingang nach einer Übereinstimmung bei der IP/IPX-Ziel-Subnetz-Ebene
sucht. Wenn es keine Übereinstimmung
bei dem IP/IPX-Ziel-Subnetz gibt, wird das Paket zur CPU 52 zur
geeigneten Vermittlung weitergeleitet. Wenn jedoch eine IP/IPX-Übereinstimmung
durchgeführt
wird, dann ist die MAC-Adresse der nächste Sprung und die Ausgangsportnummer
ist identifiziert und das Paket wird auf geeignete Weise weitergeleitet.
-
In
anderen Worten ist der Eingang des EPIC 20 oder GPIC 30 in
Bezug auf die ARL/L3-Tabellen 21 so
konfiguriert, dass wenn ein Paket in das Eingangssubmodul 14 gelangt,
der Eingang identifizieren kann, ob das Paket ein IP-Paket oder
ein IPX-Paket ist oder nicht. IP-Pakete
werden zu einem IP/ARL-Look-Up geleitet und IPX-konfigurierte Pakete
werden zu einem IPX/ARL-Look-Up geleitet. Wenn eine L3-Übereinstimmung während des
L3-Look-Ups gefunden
wird, dann werden die Look-Ups nach einer Übereinstimmung des längsten Prefix
aufgegeben.
-
HOL-Blockierung
-
Der
SOC 10 beinhaltet einige einzigartige Datenflussmerkmale,
um die Effizienz und die Vermittlungsgeschwindigkeit zu maximieren.
Bei Netzwerkübertragungen
wird ein Konzept durchgeführt,
das als Head-Of-Line- oder HOL-Blockierung bekannt ist, wenn ein
Port versucht, ein Paket an einen verstopften Port zu senden und
unmittelbar hinter diesem Paket ein anderes Paket ist, das an einen
nicht verstopften Port gesendet werden soll. Die Verstopfung des
Zielports des ersten Pakets würde
zu einer Verzögerung
der Übertragung
des zweiten Pakets zu dem nicht verstopften Port führen. Jeder
EPIC 20 und GPIC 30 innerhalb des SOC 10 beinhaltet
einen einzigartigen HOL-Blockierungsmechanismus, um den Durchsatz
zu maximieren und die negativen Auswirkungen zu minimieren, den
ein einzelner verstopfter Port auf den Verkehr haben würde, der zu
nicht verstopften Ports geht. Wenn beispielsweise ein Port auf einem
GPIC 30 mit einer Datenrate von beispielsweise 1000 Megabits
pro Sekunde versucht, Daten zu einem anderen Port 24a auf
dem EPIC 20a zu senden, würde der Port 24a sofort
verstopft werden. Jeder Port auf jedem GPIC 30 und EPIC 20 ist
von der CPU 52 so programmiert, dass er einen oberen Grenzwert
und einen unteren Grenzwert pro Port pro Dienstklasse (COS) im Bezug
auf den Pufferraum innerhalb des CBP 50 hat. Die Tatsache,
dass der Head-Of-Line-Blockierungsmechanismus eine Head-Of-Line-Blockierungs-Verhinderung
pro Port und pro COS ermöglicht,
ermöglicht
einen effizienteren Datenfluss, als der, der im Stand der Technik
bekannt ist. Wenn die Ausgangsschlange für einen bestimmten Port den
vorprogrammierten unteren Grenzwert innerhalb des zugeordneten Puffers
im CBP 50 trifft, sendet die PMMU 70 auf dem S-Kanal 83 eine
COS-Schlangenstatusbenachrichtigung an das passende Eingangsmodul
des passenden GPIC 30 oder EPIC 20. Wenn die Nachricht empfangen
wird, wird das Aktiver-Port-Register,
das dem in der Nachricht angegebenen COS entspricht, aktualisiert.
Wenn das Portbit für
diesen bestimmten Port zu Null gesetzt ist, dann wird der Eingang
so konfiguriert, dass er alle Pakete wegwirft, die zu diesem Port
gehen. Auch wenn die weggeworfenen Pakete eine nachteilige Auswirkung
auf die Kommunikation zu dem verstopften Port haben, ermöglicht es
das Wegwerfen der Pakete, die an verstopfte Ports gerichtet sind,
den Paketen, die zu nicht verstopften Ports gehen, rasch dahin weitergeleitet
zu werden. Wenn die Ausgangsschlange unter den vorprogrammierten
unteren Grenzwert geht, sendet die PMMU 70 eine COS-Schlangenstatusbenachrichtigung
auf dem Seitenbandkanal mit dem für diesen Port gesetzten Bit.
Wenn der Eingang diese Nachricht erhält, kann das Bit, das dem Port
in dem Aktiver-Port-Register für
das Modul entspricht, das Paket zu der passenden Ausgangsschlange
senden. Durch Warten, bis die Ausgangsschlange unter den unteren
Grenzwert fällt,
bevor der Port reaktiviert wird, ist eine Hysterese in das System
eingebaut, um eine ständige
Aktivierung und Deaktivierung des Ports auf der Grundlage der Weiterleitung
nur eines Pakets oder einer kleinen Anzahl von Paketen zu verhindern.
Es soll angemerkt werden, dass jedes Modul ein Aktiver-Port-Register besitzt.
Beispielsweise kann jedes COS-Pro-Port vier Register zum Speichern
des oberen Grenzwerts und des unteren Grenzwerts besitzen; diese
Register können
Daten als Zellenanzahl auf der Ausgangsschlange oder als Paketanzahl
auf der Ausgangsschlange speichern. In dem Fall einer Unicast-Nachricht
wird das Paket nur weggeworfen; in dem Fall von Multicast- oder
Broadcast-Nachrichten wird die Nachricht im Bezug auf die verstopften
Ports weggeworfen, aber zu den nicht verstopften Ports weitergeleitet.
Die PMMU 70 beinhaltet die gesamte Logik, die zum Implementieren
dieses Mechanismus zur Verhinderung von HOL-Blockierung erforderlich
ist, im Bezug auf die Budgetierung von Zellen und Paketen. Die PMMU 70 beinhaltet
ein HOL-Blockierungs-Markierungs-Register, um den Mechanismus auf
der Grundlage der Zellen zu implementieren. Wenn die lokale Zellenzählung zuzüglich der
globalen Zellenzählung
für einen
bestimmten Ausgangsport den HOL-Blockierungs-Markierungs-Registerwert übersteigt,
dann sendet die PMMU 70 die HOL-Statusbenachrichtigung.
Die PMMU 70 kann ebenso eine frühe HOL-Benachrichtigung implementieren,
durch die Benutzung eines Bits im PMMU-Konfigurationsregister, auf das
als Verwende-Frühe-Warnung-Bit
Bezug genommen wird. Wenn dieses Bit gesetzt ist, sendet die PMMU 70 die
HOL-Benachrichtigung, wenn die lokale Zellenzählung zuzüglich der globalen Zellenzählung plus
121 größer als
der Wert in dem HOL-Blockierungs-Markierungs-Register
ist. 121 ist die Anzahl von Zellen in einem Jumbo-Frame.
-
Im
Bezug auf die oben erörterte
Hysterese soll angemerkt werden, dass die PMMU 70 sowohl
eine räumliche
als auch zeitliche Hysterese beinhaltet. Wenn die lokale Zellenzählung zuzüglich der
globalen Zellenzählung
unter den Wert in dem HOL-Blockierungs-Markierungs-Register
geht, dann wird ein Abwerbetimerwert von einem PMMU-Konfigurationsregister
verwendet, um ihn in den Zähler
zu laden. Der Zähler
wird alle 32 Taktzyklen erniedrigt. Wenn der Zähler Null erreicht, sendet
die PMMU 70 die HOL-Statusnachricht
mit dem neuen Portbitmap. Das Bit entsprechend dem Ausgangsport
wird zu Null zurückgesetzt,
um anzuzeigen, dass es keine weitere HOL-Blockierung auf dem Ausgangsport
gibt. Um die HOL-Blockierungsverhinderung auf der Grundlage von
Paketen weiterzuführen,
wird ein Rollengrenzwert in dem PMMU-Konfigurationsregister definiert.
Wenn der Wert der Transaktionsschlangeneinträge zuzüglich dem Rollengrenzwert größer als
die maximale Transaktionsschlangengröße pro COS ist, dann sendet
die PMMU 70 die COS-Schlangenstatusnachricht auf dem S-Kanal.
Sobald der Eingangsport diese Nachricht erhält, stoppt der Eingangsport
das Senden von Paketen für
diese bestimmte Kombination von Port und COS. Abhängig von
der Konfiguration und der Paketlänge,
die für
den Ausgangsport empfangen werden, kann entweder der obere Grenzwert
für die Head-Of-Line-Blockierung
für die
Zelle oder der obere Grenzwert für
die Head-Of-Line-Blockierung für
das Paket als erstes erreicht werden. Diese Konfiguration bewirkt
daher, dass verhindert wird, dass entweder eine große Reihe
von sehr kleinen Paketen oder eine kleine Reihe von sehr großen Paketen
HOL-Blockierungsprobleme erzeugen.
-
Der
zuvor mit Bezug auf die CBP-Zugangslogik erörterte untere Grenzwert ist
zu dem Zweck, um sicherzustellen, dass unabhängig von Erstbedingungen jeder
Port einen passenden Pufferraum besitzt, der in dem CBP zugeordnet
ist, um ein Ausgehen der Ports zu verhindern, und um sicherzustellen,
dass jeder Port in der Lage ist, mit jedem anderen Port in dem Ausmaß zu kommunizieren,
in dem das Netzwerk eine derartige Kommunikation unterstützen kann.
-
Unter
Bezugnahme erneut auf die in 10 dargestellte
PMMU 70, ist der CBM 71 so konfiguriert, dass
die Verfügbarkeit
von Adresszeigern maximiert wird, die eingehenden Paketen aus einem
freien Adresspool zugeordnet werden. Der CBM 71 speichert
wie zuvor bemerkt den ersten Zellzeiger, bis das eingehende Paket 112 empfangen
und entweder im CBP 50 oder im GBP 60 zusammengesetzt
ist. Wenn das Säuberungsflag
der entsprechenden P-Kanal-Nachricht gesetzt ist, säubert der
CBM 71 das eingehende Datenpaket 112 und macht
daher die Adresszeiger GPID/CPID, die dem eingehenden Paket zugeordnet
waren, verfügbar.
Wenn das Säuberungsflag
daher gesetzt ist, entfernt der CBM 71 im wesentlichen
das Paket von der Verarbeitung des SOC 10 bzw. säubert es,
wobei auf diese Weise eine nachfolgende Kommunikation mit dem zugeordneten
Ausgangsmanager 76, der dem gesäuberten Paket zugeordnet ist,
verhindert wird. Der CBM 71 ist ebenso zum Kommunizieren
mit den Ausgangsmanagern 76 zum Löschen von gealterten und verstopften
Paketen konfiguriert. Gealterte und verstopfte Pakete werden zum
CBM 71 auf der Grundlage des zugeordneten Startadresszeigers
geleitet und die Zurückforderungseinheit
innerhalb des CBM 71 setzt die Zeiger frei, die den zu
löschenden
Paketen zugeordnet sind; dies wird im wesentlichen erreicht, indem
der freie Adresspool so verändert
wird, dass er diese Veränderung
wiedergibt. Der Speicherbudgetwert wird aktualisiert, indem der
aktuelle Wert des zugeordneten Speichers um die Anzahl von Datenuzellen
verringert wird, die gesäubert
werden.
-
Zur
Zusammenfassung werden zerlegte Pakete auf dem C-Kanal 81 von
dem Eingangssubmodul 14 angeordnet, wie es mit Bezug auf 8 erörtert ist.
Der CBM 71 bildet eine Schnittstelle zum CPS-Kanal und jedes
Mal, wenn es eine Zelle/ein Paket gibt, das an einen Ausgangsport
adressiert ist, teilt der CBM 71 Zellzeiger zu und verwaltet
die verbundene Liste. Eine Mehrzahl von gleichzeitigen Zusammensetzmaschinen werden
bereitgestellt, mit einer Zusammensetzmaschine für jeden Ausgangsmanager 76,
die auch den Framestatus verfolgt. Sobald eine Mehrzahl von Zellen,
die ein Paket darstellen, vollständig
in den CBP 50 geschrieben sind, sendet der CBM 71 CPIDs
an die entsprechenden Ausgangsmanager aus, wie es oben erörtert ist.
Die CPIDs zeigen auf die erste Zelle des Pakets in dem CPB; der
Paketfluss wird dann von den Ausgangsmanagern 76 zu Transaktions-MACs 140 gesteuert,
sobald die Zuteilung der CPID/GPID von dem CBM 71 abgeschlossen
ist. Das Budgetregister (nicht dargestellt) des entsprechenden Ausgangsmanagers 76 wird
auf geeignete Weise um die Anzahl von Zellen erniedrigt, die dem
Ausgang zugeordnet sind, nachdem das vollständige Paket in den CBP 50 geschrieben
ist. Der EGM 76 schreibt die geeigneten PIDs in seine Transaktions-FIFO.
Da es mehrere Dienstklassen (COSs) gibt, schreibt dann der Ausgangsmanager 76 die
PIDs in die ausgewählte
Transaktions-FIFO, die dem ausgewählten COS entspricht. Wie nachstehend
mit Bezug auf 13 erörtert wird, besitzt jeder Ausgangsmanager 76 seine
eigene Planungsschnittstelle zu dem Transaktionspool oder der Transaktions-FIFO
auf einer Seite und dem Paketpool oder der Paket-FIFO auf der anderen Seite.
Die Transaktions-FIFO beinhaltet alle PIDs und der Paketpool oder
die Paket-FIFO beinhaltet nur CPIDs. Die Paket-FIFO bildet eine Schnittstelle zu der
Transaktions-FIFO und stößt eine Übertragung
auf der Grundlage von Anforderungen von der Übertragungs-MAC an. Sobald
die Übertragung
gestartet ist, werden Daten von dem CBP 50 zellenweise
auf der Grundlage der Transaktions-FIFO-Anforderungen gelesen.
-
Wie
zuvor bemerkt gibt es einen Ausgangsmanager für jeden Port von jedem EPIC 20 und
GPIC 30 und ist dem Ausgangssubmodul 18 zugeordnet. 13 zeigt ein Blockdiagramm von einem Ausgangsmanager 76,
der in Verbindung mit dem R-Kanal 77 steht. Für jedes
Datenpaket 112, das von einem Eingangssubmodul 14 eines
EPIC 20 des SOC 10 empfangen worden ist, ordnet
der CBM 71 eine Zeigeridentifikation (PID) zu; wenn das
Paket 112 zum CBP 50 zugelassen wird, teilt der
CBM 71 eine CPID zu und wenn das Paket 112 zum
GBP 60 zugelassen wird, teilt der CBM 71 eine
GPID-Nummer zu. Zu diesem Zeitpunkt benachrichtigt der CBM 71 den
entsprechenden Ausgangsmanager 76, der das Paket 112 behandeln
will und reicht die PID an den entsprechenden Ausgangsmanager 76 über den
R-Kanal 77 weiter. In dem Fall eines Unicast-Pakets, würde nur
ein Ausgangsmanager 76 die PID erhalten. Wenn jedoch das
eingehende Paket ein Multicast- oder Broadcast-Paket
ist, wird jeder Ausgangsmanager 76, an den das Paket gerichtet
ist, die PID erhalten. Aus diesem Grund muss ein Multicast- oder
Broadcast-Paket nur ein Mal in dem passenden Speicher gespeichert werden,
entweder im CBP 50 oder im GBP 60.
-
Jeder
Ausgangsmanager 76 beinhaltet eine R-Kanal-Schnittstelleneinheit
(RCIF) 131, eine Transaktions-FIFO 132, einen
CPS-Manager 133, eine Planungseinrichtung 134,
eine beschleunigte Paketausräumeinheit
(APF) 135, eine Speicherleseeinheit (MRU) 136,
eine Zeitstempelprüfeinheit
(TCU) 137, und eine Untag-Einheit 138. Die MRU 136 steht
in Verbindung mit dem CMC 79, der mit dem CBP 50 verbunden
ist. Die Planungseinrichtung 134 ist mit einer Paket-FIFO 139 verbunden.
Der RCIF 131 behandelt alle Nachrichten zwischen dem CBM 71 und
dem Ausgangsmanager 76. Wenn ein Paket 112 empfangen
und im SOC 10 gespeichert wird, leitet der CBM 71 die
Paketinformation an den RCIF 131 des zugeordneten Ausgangsmanagers 76 weiter.
Die Paketinformation wird einen Hinweis darauf beinhalten, ob das
Paket im CBP 50 oder GBP 70 gespeichert wird,
der Größe des Pakets
und der PID. Die RCIF 131 reicht dann die erhaltene Paketinformation
an die Transaktions-FIFO 132 weiter. Die Transaktions-FIFO 132 ist
eine FIFO mit einer festen Tiefe mit acht COS-Prioritätsschlangen
und ist als Matrix mit einer Anzahl von Spalten und Reihen eingerichtet.
Jede Spalte der Transaktions-FIFO 132 stellt eine Dienstklasse
(COS) dar und die Gesamtanzahl der Zeilen ist gleich der Anzahl
der Transaktionen, die für
eine beliebige Dienstklasse erlaubt sind. Der COS-Manager 133 arbeitet
zusammen mit der Planungseinrichtung 134, um eine taktikbasierte
Dienstqualität
(QOS) auf der Grundlage der Ethernet-Standards zu schaffen. Sowie
Datenpakete in eine oder mehrere der COS-Prioritätsschlangen der Transaktions-FIFO 132 gelangen,
leitet die Planungseinrichtung 134 einen ausgewählten Paketzeiger
von einer der Prioritätsschlangen
an die Paket-FIFO 139. Die Auswahl des Paketzeigers gründet sich auf
einen Schlangenplanungsalgorithmus, der durch einen Benutzer mittels
der CPU 52 innerhalb des COS-Managers 133 programmiert
ist. Ein Beispiel einer COS-Aufgabe ist Video, welches eine größere Bandbreite
als Textdokumente benötigt.
Ein Datenpaket 112 von Videoinformation kann daher zur
Paket-FIFO 139 vor
einem Paket geleitet werden, das einem Textdokument zugeordnet ist.
Der COS-Manager 133 würde
daher die Planungseinrichtung 132 anweisen, den Paketzeiger
auszuwählen,
der dem Paket von Videodaten zugeordnet ist.
-
Der
COS-Manager 133 kann ebenso unter Verwendung eines streng
taktikbasierten Planungsverfahrens programmiert werden, oder eines
Planungsverfahrens auf der Grundlage einer gewichteten Priorität der Auswahl
des nächsten
Paketzeigers in der Transaktions-FIFO 132. Bei Verwendung
eines streng taktikbasierten Planungsverfahrens wird jede der acht
COS-Prioritätsschlangen
mit einer Priorität
in Bezug auf die andere COS-Schlange
versehen. Jegliche Pakete, die in der COS-Schlange mit der höchsten Priorität ruhen,
werden von der Transaktions-FIFO 132 zum Übertragen
herausgenommen. Andererseits wird bei Verwendung eines Planungsverfahrens
auf der Grundlage einer gewichteten Priorität jede COS-Prioritätsschlange
mit einer programmierbaren Bandbreite versehen. Nach dem Zuordnen
der Schlangenpriorität
von jeder COS-Schlange wird jeder COS-Prioritätsschlange eine minimale und
eine maximale Bandbreite gegeben. Die Werte für die minimale und maximale
Bandbreite sind vom Benutzer programmierbar. Wenn die Schlangen
mit höherer
Priorität
deren minimalen Bandbreitenwert erreichen, teilt der COS-Manager 133 jegliche
verbleibende Bandbreite auf der Grundlage dessen zu, dass die maximale
Bandbreite für
jede beliebige Prioritätsschlange überschritten
wird. Diese Konfiguration garantiert, dass eine maximale Bandbreite
von den Schlangen mit hoher Priorität erreicht wird, wohingegen
die Schlange mit niedriger Priorität mit einer geringeren Bandbreite
versehen werden.
-
Die
programmierbare Natur des COS-Managers ermöglicht es dem Planungs-Algorithmus,
dass er auf der Grundlage der bestimmten Bedürfnisse des Benutzers modifiziert
werden kann. Beispielsweise kann der COS-Manager 133 einen
maximalen Paketverzögerungswert
in Betracht ziehen, der von einer Transaktions-FIFO-Schlange erfüllt werden
muß. In
anderen Worten kann der COS-Manager 133 erfordern, dass
ein Paket 112 bei der Übertragung
nicht um einen maximalen Paketverzögerungswert verzögert wird;
dies stellt sicher, dass der Datenfluss von Hochgeschwindigkeitsdaten
wie beispielsweise Audio, Video oder anderen Echtzeitdaten, kontinuierlich
und gleichmäßig übertragen
wird.
-
Wenn
das angeforderte Paket sich im CBP 50 befindet, wird die
CPID von der Transaktions-FIFO 132 zur
Paket-FIFO 139 übertragen.
Wenn das angeforderte Paket sich im GBP 60 befindet, stößt die Planungseinrichtung
das Holen des Pakets vom GBP 60 zum CBP 50 an;
die Paket-FIFO 139 verwendet nur gültige CPID-Information und
verwendet nicht die GPID- Information.
Die Paket-FIFO 139 kommuniziert nur mit dem CBP und nicht
mit dem GBP. Wenn der Ausgang versucht, ein Paket zu holen, kann
das Paket nur von dem CBP geholt werden. Aus diesem Grund holt,
wenn das angeforderte Paket sich im GBP 60 befindet, die
Planungseinrichtung das Paket so, dass der Ausgang das Paket auf
geeignete Weise aus dem CBP holen kann.
-
Die
APF 135 überwacht
den Status der Paket-FIFO 139. Nachdem die Paket-FIFO 139 für eine bestimmte
Zeitdauer voll ist, räumt
der APF 135 die Paket-FIFO aus. Die CBM-Zurückforderungseinheit
wird mit den Paketzeigern versehen, die in der Paket-FIFO 139 mittels
der APF 135 gespeichert sind, und die Zurückforderungseinheit
wird von dem APF 135 angewiesen, die Paketzeiger als Teil
des freien Adresspools freizugeben. Die APF 135 deaktiviert
ebenso den Eingangsport 21, der dem Ausgangsmanager 76 zugeordnet
ist.
-
Während die
Paket-FIFO 139 die Paketzeiger von der Planungseinrichtung 134 erhält, extrahiert
die MRU 136 die Paketzeiger zum Versenden an den geeigneten
Ausgangsport. Nachdem die MRU 136 die Paketzeiger erhält, reicht
sie die Paketzeigerinformation an den CMC 79 weiter, der
jede Datenzelle vom CBP 50 holt. Die MRU 136 leitet
die erste Datenzelle 112a, die die Zellheaderinformation
beinhaltet, an die TCU 137 und die Untag-Einheit 138 weiter.
Die TCU 137 bestimmt, ob das Paket gealtert ist, indem
die Zeitstempel, die innerhalb der Datenzelle 112a gespeichert
sind, und die aktuelle Zeit verglichen werden. Wenn die Speicherzeit
größer als
eine programmierbare Aufgabezeit ist, dann wird das Paket 112 als
ein gealtertes Paket aufgegeben bzw. abgelegt. Wenn es zusätzlich eine
laufende Anfrage gibt, das Tag der Datenzelle 112a zu entfernen,
wird die Untag-Einheit 138 den Tag-Header vor dem Absenden
des Pakets entfernen. Die Tag-Header sind im IEEE-Standard 802.1q definiert.
-
Der
Ausgangsmanager 76 bildet über die MRU 136 eine
Schnittstelle zur Übertragungs-FIFO 140,
die eine Übertragungs-FIFO
für einen
geeigneten Media-Access-Controller (MAC) bzw. eine Mediumzugangssteuerung;
Media-Access-Controller sind im Stand der Technik für Ethernet
bekannt. Die MRU 136 holt vorab das Datenpaket 112 aus
dem geeigneten Speicher und sendet das Paket an die Übertragungs-FIFO 140,
wobei der Beginn und das Ende des Pakets markiert werden. Wenn erforderlich,
stoppt die Übertragungs-FIFO 140 das
Paket so, dass das Paket 64 Byte lang ist.
-
Wie
in 9 dargestellt, wird das Paket 112 in
eine Mehrzahl von 64-Byte-Datenzellen zur Behandlung innerhalb des
SOC 10 unterteilt oder segmentiert. Die Segmentierung der
Pakete in Zellen vereinfacht deren Bearbeitung und verbessert die
Granularität,
sowie dass sie es einfacher macht, der SOC 10 auf zellenbasierte
Protokolle, wie beispielsweise ATM, anzupassen. Bevor jedoch die
Zellen aus dem SOC 10 übertragen
werden, müssen
sie in das Paketformat zur geeigneten Kommunikation gemäß dem geeigneten
Kommunikationsprotokoll wieder zusammengefügt werden. Eine Zellenzusammenfügmaschine
(nicht dargestellt) ist innerhalb von jedem Ausgang des SOC 10 beinhaltet,
um die unterteilten Zellen 112a und 112b zu einem
auf geeignete Weise verarbeitetes und benachrichtigtes Paket zur
weiteren Kommunikation zusammenzusetzen.
-
Die 16 ist ein Blockdiagramm, das einige Elemente
der CPU-Schnittstelle oder des CMIC 49 zeigt. In einer
bevorzugten Ausführungsform
bildet der CMIC 40 eine 32-Bit-66-MHz-PCI-Schnittstelle, sowie eine 12C-Schnittstelle
zwischen dem SOC 10 und der externen CPU 52. Die
PCI-Kommunikation wird durch einen PCI-Core 41 gesteuert
und die 12C-Kommunikation
wird durch den 12C-Core 42 über den CMIC-Bus 167 durchgeführt. Wie
in der Figur dargestellt ist, kommunizieren viele CMIC-40-Elemente
miteinander über
den CMIC-Bus 167. Die PCI-Schnittstelle wird üblicherweise
zur Konfiguration und zum Programmieren der Elemente des SOC 10 verwendet,
wie beispielsweise Regeltabellen, Filtermasken, Paketbehandlung
usw., sowie zum Bewegen von Daten zu und von der CPU oder für ein anderes
PCI-Uplink. Die PCI-Schnittstelle ist für High-End-Systeme geeignet,
in denen die CPU 52 eine leistungsfähige CPU ist und einen ausreichenden
Protokollstapel abarbeitet, wie er zum Unterstützen von Ebene-Zwei- und Ebene-Drei-Vermittlungsfunktionen
erfordert wird. Die 12C-Schnittstelle ist für Low-End-Systeme geeignet,
in denen die CPU 52 in erster Linie für die Initialisierung verwendet
wird. Low-End-Systeme
würden
selten die Konfiguration des SOC 10 verändern, nachdem der Switch eingeschaltet
ist und läuft.
-
Die
CPU 52 wird von dem SOC 10 als ein anderer Port
behandelt. Daher muss der CMIC 40 die erforderlichen Portfunktionen
genauso wie andere Portfunktionen bereitstellen, die oben definiert
sind. Der CMIC 40 unterstützt alle S-Kanal-Befehle und
-Nachrichten, wobei auf diese Weise die CPU 52 in die Lage
versetzt wird, auf den gesamten Paketspeicher und den Registersatz
zuzugreifen; dies ermöglicht
es ebenso der CPU 52, Einfüge- und Lösch-Einträge in ARL/L3-Tabellen auszugeben,
Befehle zum Initialisieren des CFAP/SFAP auszugeben, Speicherbefehle
und ACKs zu lesen/schreiben, Registerbefehle und ACKs zu lesen/schreiben usw.
Innen im SOC 10 bildet der CMIC 40 eine Schnittstelle
zum C-Kanal 81 zum P-Kanal 82 und zum S-Kanal 83 und
ist in der Lage, als ein S-Kanal-Master sowie als S-Kanal-Slave
zu arbeiten. Zu diesem Zweck muss die CPU 52 32-Bit-D-Worte
lesen oder schreiben. Für
Einfügungen
und Löschungen
in der ARL-Tabelle, unterstützt
der CMIC 40 das Puffern von vier Einfüge/Lösch-Nachrichten, die gepolled
oder interrupt-getrieben sein können.
Die ARL-Nachrichten können
ebenso direkt im CPU-Speicher über
einen DMA-Zugang
unter Verwendung eines ARL-DMA-Controllers 161 angeordnet
werden. Der DMA-Controller 161 kann
einen Interrupt bei der CPU 52 nach der Übertragung
einer beliebigen ARL-Nachricht auslösen, oder wenn alle angeforderten ARL-Pakete
innerhalb des CPU-Speichers
angeordnet worden sind.
-
Die
Kommunikation zwischen dem CMIC 40 und dem C-Kanal 81/P-Kanal 82 wird
durch Verwendung des CP-Kanalpuffers 162 zum Puffern von
C- und P-Kanalnachrichten und der CP-Busschnittstelle 163 durchgeführt. S-Kanal-ARL-Nachrichtenpuffer 164 und
die S-Kanal-Busschnittstelle 165 ermöglichen
die Kommunikation mit dem S-Kanal 83. Wie zuvor erwähnt, werden
PIO-(Programmed Input/Output)-Register verwendet, wie es durch die
SCH-PIO-Register 166 und die PIO-Register 168 dargestellt
ist, um auf den S-Kanal zuzugreifen, ebenso wie zum Programmieren
anderer Steuerungen, Statuszustände,
Adressen und Datenregistern. Die PIO-Register 168 kommunizieren
mit dem CMIC-Bus 167 über
die 12C-Slave-Schnittstelle 42a und die 12C-Master-Schnittstelle 42b.
Der DMA-Controller 161 ermöglicht im
Speicher das Verketten und ermöglicht
es auf diese Weise der CPU 52, mehrfache Pakete von Daten
ohne kontinuierliche Beteiligung der CPU zu übertragen. Jeder DMA-Kanal
kann daher zum Durchführen
einer Lese- oder Schreib-DMA-Operation
programmiert werden. Spezielle Beschreiberformate können als
geeignet ausgewählt
werden, um eine gewünschte
DMA-Funktion gemäß den Anwendungsregeln
auszuführen.
Zum Empfangen von Zellen von der PMMU 70 zur Übertragung
zum Speicher, wenn geeignet, arbeitet der CMIC 40 als ein
Ausgangsport und folgt dem Ausgangsprotokoll, wie es zuvor erörtert worden
ist. Zur Übertragung
von Zellen zur PMMU 70 arbeitet der CMIC 40 als
ein Eingangsport und folgt dem Eingangsprotokoll, wie es zuvor erörtert worden
ist. Der CMIC 40 überprüft aktive
Ports, die Verfügbarkeit
einer COS-Schlange und andere Eingangsfunktionen, sowie dass er
den oben erörterten
HOL-Blockierungsmechanismus unterstützt. Der CMIC 40 unterstützt Einzel-
und Burst-P10-Operationen; wobei jedoch ein Burst auf die S-Kanal-Puffer
und die ARL-Einfüge/Lösch-Nachrichtenpuffer
begrenzt sein sollte. Unter Bezugnahme erneut auf die 12C-Slave-Schnittstelle 42a,
ist der CMIC 40 so konfiguriert, dass er eine 12C-Slave-Adresse
aufweist, sodass ein externer 12C-Master auf Register des CMIC 40 zugreifen
kann. Der CMIC 40 kann umgekehrt als 12C-Master arbeiten
und daher auf andere 12C-Slaves zugreifen. Es soll angemerkt werden,
dass der CMIC 40 ebenso MIIM über die MIIM-Schnittstelle 169 unterstützen kann.
Die MIIM-Unterstützung
wird durch den IEEE-Standard 802.3u definiert und wird hierin nicht
weiter erörtert.
Auf ähnliche
Weise befinden sich auch andere Betriebsgesichtspunkte des CMIC 40 außerhalb
des Bereichs dieser Erfindung.
-
Ein
einziger und vorteilhafter Gesichtspunkt des SOC 10 ist
die Fähigkeit,
gleichzeitige Look-Ups
in Bezug auf Ebene-Zwei-(ARL), Ebene-Drei und das Filtern durchzuführen. Wenn
ein eingehendes Paket an einem Eingangssubmodul 14 von
entweder einem EPIC 20 oder einem GPIC 30 ankommt,
wie zuvor erörtert, ist
das Modul in der Lage, gleichzeitig einen Adress-Look-Up durchzuführen, um
festzustellen, ob die Zieladresse innerhalb des gleichen VLAN als
eine Quelladresse ist; wenn die VLAN-Ids die gleichen sind, sollte ein
Ebene-Zwei oder ARL-Look-Up ausreichend sein, um das Paket in einer
Speicher- und Weiterleitkonfiguration auf geeignete Weise zu vermitteln.
Wenn die VLAN-IDs unterschiedlich sind, dann muss eine Ebene-Drei-Vermittlung
auf der Grundlage einer geeigneten Identifikation der Zieladresse
geschehen und das Vermitteln an einen passenden Port, um das VLAN
der Zieladresse zu bekommen. Die Ebene-Drei-Vermittlung muss daher
durchgeführt
werden, um VLAN-Grenzen zu überqueren.
Sobald der SOC 10 bestimmt, dass eine L3-Vermittlung erforderlich
ist, identifiziert der SOC 10 die MAC-Adresse eines Ziel-Routers auf der Grundlage des
L3-Look-Ups. Der L3-Look-Up wird auf der Grundlage eines Lesevorgangs
im ersten Abschnitt des Pakets durchgeführt, oder ob das L3-Bit gesetzt
ist oder nicht. Wenn das L3-Bit gesetzt ist, dann wird ein L3-Look-Up erforderlich
sein, um die passenden Routing-Anweisungen zu identifizieren. Wenn
der Look-Up nicht erfolgreich ist, wird eine Anforderung an die
CPU 52 gesendet, und die CPU 52 unternimmt die
geeigneten Schritte, um das passende Routing für das Paket zu identifizieren.
Sobald die CPU die geeignete Routing-Information erhalten hat, wird
die Information in der L3-Look-Up-Tabelle gespeichert, und für das nächste Paket
wird der Look-Up erfolgreich sein und das Paket wird in der Speicher-
und Weiterleitkonfiguration vermittelt.
-
Das
Folgende ist ein Verfahren zum Zuordnen von Speicherorten eines
Netzwerkswitches. Der Netzwerkswitch besitzt einen internen (on-chip)
Speicher und einen externen (off-chip) Speicher. Speicherorte werden
zwischen dem internen Speicher und dem externen Speicher gemäß einem
vordefinierten Algorithmus zugeteilt.
-
Der
vordefinierte Algorithmus teilt Speicherorte zwischen dem internen
Speicher und dem externen Speicher auf der Grundlage des Umfangs
an internem Speicher zu, der für
den Ausgangsport des Netzwerkswitches verfügbar ist, von dem das Datenpaket
durch den Netzwerkswitch gesendet werden soll. Wenn der interne
Speicher, der für
den Ausgangsport verfügbar
ist, von dem das Datenpaket übertragen
werden soll, oberhalb eines vorbestimmten Grenzwerts liegt, dann
wird das Datenpaket im internen Speicher gespeichert. Wenn der interne
Speicher, der für
den Ausgangsport verfügbar
ist, von dem das Datenpaket ausgesendet werden soll, unterhalb des
vorbestimmten Grenzwerts ist, dann wird das Paket im externen Speicher
gespeichert.
-
So
definiert diese verteilte und hierarchische Architektur von geteiltem
Speicher einen selbstausgleichenden Mechanismus. D. h., dass für Ausgangsports
mit wenig Datenpaketen in deren Ausgangsschlangen die eingehenden
Datenpakete, die von diesen Ausgangsports vermittelt werden sollen,
zu dem internen Speicher gesendet werden, wohingegen für Ausgangsports
mit vielen Datenpaketen in deren Ausgangsschlangen die eingehenden
Datenpakete, die zu diesen Ausgangsports vermittelt werden sollen,
im externen Speicher gespeichert werden.
-
Vorzugsweise
werden jegliche Datenpakete, die im externen Speicher gespeichert
werden, anschließend
zum internen Speicher zurückgeroutet,
bevor sie an einen Ausgangsport zur Übertragung von dem Netzwerkswitch
geliefert werden.
-
So
wird gemäß der vorliegenden
Erfindung die Übertragungsleitungsrate
auf jedem Ausgangsport aufrecht erhalten, auch wenn die Architektur
DRAMs mit niedrigerer Geschwindigkeit für wenigstens einen Teil der Paketspeicherung
verwendet. Vorzugsweise verwendet die verteilte hierarchische Architektur
mit verteiltem Speicher SRAM als ein Paketspeichercage oder interner
Speicher und verwendet Standard DRAMs oder SDRAMs als externer Speicher,
um so ein erwünschtes
Kosten-Nutzen-Verhältnis
zu schaffen.
-
Die
oben erörterte
Konfiguration kann auf einem Halbleiter-Substrat, wie beispielsweise
Silizium, mit geeigneten Halbleiterbearbeitungstechniken ausgebildet
werden und auf ein Schaltungslayout gegründet werden, das auf der Grundlage
der oben erörterten
Konfigurationen einem Fachmann auf dem Gebiet offensichtlich ist.
Ein Fachmann auf dem Gebiet in Bezug auf das Halbleiterdesign und
die Herstellung wäre
in der Lage, die verschiedenen Module, Schnittstellen, Tabellen
und Puffer usw. auf einem einzigen Halbleitersubstrat zu implementieren,
auf der Grundlage der oben erörterten
Architekturbeschreibung. Es wäre
ebenso möglich,
die offenbarten Elemente in diskreten Elektronikkomponenten zu implementieren,
wobei auf diese Weise ein Vorteil von den Funktionsgesichtspunkten
der Erfindung gewonnen würde,
ohne die Vorteile durch Verwendung eines einzigen Halbleitersubstrats
zu maximieren.
-
Die
vorausgegangene Erörterung
eines spezifischen Netzwerkswitches ist zum besseren Verständnis der
Erörterung
der gestapelten Konfigurationen angegeben, wie sie folgen wird.
Es wird einem Fachmann auf dem Gebiet jedoch bekannt sein, dass
die hier erörterten
Erfindungen im Bezug auf das Stapeln von Figurationen nicht auf
die oben erörterten
bestimmten Switch-Konfigurationen begrenzt sind.
-
20 zeigt eine Konfiguration, in der eine Mehrzahl
von SOCs 10(1) ... 10(n) von einer Zwischenstapelverbindung 1 verbunden
werden. Die SOCs 10(1)–10(n) beinhalten
die Elemente, die in 2 dargestellt sind. Die 20 zeigt schematisch CVP 50, MMU 70,
EPICs 20 und GPICs 30 von jedem SOC 10.
Die Zwischenstapelverbindung 1 wird verwendet, um eine
gestapelte Konfiguration zwischen den Switches zu schaffen und kann
beispielsweise wenigstens einen Gigabit-Up-Link oder andere Ports
von jedem Switch verwenden, um eine Simplex- oder Duplex-Stapelkonfiguration
zu schaffen, wie sie nachstehend erörtert wird. 2 zeigt
eine Konfiguration, in der eine Mehrzahl von SOCs 10(1)–10(4) in
einer kaskadierten Konfiguration unter Verwendung von GPIC-Modulen 30 zur
Erzeugung eines Stapels verbunden sind. Es wird ein Beispiel verwendet,
in dem jedes SOC 10 24 Ethernet-Ports geringer Geschwindigkeit
mit einer Maximalgeschwindigkeit von 100 Megabit pro Sekunde und
zwei Gigabit-Ports aufweist. Die Konfiguration von 21 führt
daher zu 96 Ethernet-Ports und vier verwendbaren Gigabit-Ports.
Mit vier anderen Gigabit-Ports, die zum Verbinden des Stapels verwendet
werden, als eine sogenannte gestapelte Verbindung. Die Zwischenverbindung,
wie sie in 21 dargestellt ist, führt zu einem
sogenannten Simplex-Ring, der eine unidirektionale Kommunikation bei
einer Rate von ein bis zwei Gigabit pro Sekunde ermöglicht.
Alle Ports des Stapels können
auf dem gleichen VLAN sein oder es kann eine Mehrzahl von VLANs
auf dem Stapel vorhanden sein. Mehrfache VLANs können auf dem gleichen Switch
vorhanden sein. Die VLAN-Konfigurationen
werden durch den Benutzer abhängig
von den Netzwerk-Anforderungen bestimmt. Dies trifft für alle Switch-Konfigurationen
der SOC 10 zu. Es soll jedoch angemerkt werden, dass diese
bestimmten Konfigurationen, die nur als Beispiele verwendet werden,
nicht dazu gedacht sind, den Umfang der beanspruchten Erfindung
zu begrenzen.
-
22 zeigt eine zweite Konfiguration von vier gestapelten
SOC 10 Switches, SOC 10(1) ... 10(4).
Es könnte
jedoch jede beliebige Anzahl von Switches auf diese Weise gestapelt
werden. Die Konfiguration von 22 verwendet
bidirektionale Gigabit-Verbindungen, um eine Vollduplex-Konfiguration
zu erzeugen. Die Verwendung von bidirektionalen Gigabit-Verbindungen eliminiert
daher die Verfügbarkeit
eines Gigabit-Up-Links für
jedes SOC 10, wenn nicht zusätzliche GPIC-Module in dem
Switch bereitgestellt werden. Die einzigen für den Stapel verfügbaren Gigabit-Up-Links
sind daher ein Gigabit-Port an jedem der Endmodule. In diesem Beispiel
werden daher 96 Ethernet-Ports geringer Geschwindigkeit und zwei
Gigabit-Ethernet-Ports bereitgestellt.
-
Die 23 zeigt eine dritte Konfiguration zum Stapeln
von vier SOC 10 Switches. In dieser Konfiguration ist die
Zwischenverbindung ähnlich
zu der Konfiguration von 22 mit
der Ausnahme, dass die zwei Gigabit-Ports an den Endmodulen als
eine passive Verbindung verbunden sind, wobei auf diese Weise eine Redundanz
geschaffen wird. Auf eine passive Verbindung wird in dieser Konfiguration
auf diese Weise Bezug genommen, da das zuvor erörterte Spanning-Tree-Protokoll
in der Lage ist, diese Verbindung in einen Blockierungsmodus zu
setzen, wobei auf diese Weise die Schleifenbildung von Paketen verhindert
wird. Ein Nachteil in diesem Blockierungsmodus ist jedoch, dass
keine Gigabit-Up-Links
verfügbar
sind, wenn nicht ein zusätzliches
GPIC-Modul 30 in jedem SOC 10 installiert wird.
Es werden nun der Paketfluss, das Adresslernen, Trunking und andere
Gesichtspunkte dieser gestapelten Konfigurationen erörtert.
-
In
der Ausführungsform
von 21 als erstem Beispiel werden
eine Reihe von einzigartigen Schritten unternommen, um durch den
Stapel hindurch den Paketfluss zu steuern und Adressen zu lernen.
Ein Paket, das von einem Quellport an einem SOC 10 zu einem
Zielport an einem anderen SOC 10 geschickt wird, wird in
einer Reihe von vollständigen
Speicher- und Weiterleit-Schritten kaskadiert, um das Ziel zu erreichen.
Das Kaskadieren wird durch eine Reihe von Zwischenstapelverbindungen
oder Sprüngen 2001, 2002, 2003 und 2004 erreicht,
welches ein Beispiel einer Implementierung der Zwischenstapelverbindung 1 ist.
Unter Bezugnahme auf 24 kann der Paketfluss mit
Bezug auf ein Paket analysiert werden, das in den Stapel 2000 an einem
Port eingeht und an einen anderen Port auf diesem Stapel gerichtet
ist. In diesem Beispiel soll angenommen werden, dass Station A,
die an Port 1 an SOC 10(1) angeschlossen ist,
ein Paket an Station B senden will, das sich an Port 1 von
Switch SOC 10(3) befindet. Das Paket würde in dem Eingangssubmodul 14 von SOC 10(1) eingehen.
Der SOC 10(1) würde
als gestapeltes Modul konfiguriert sein, um ein stapelspezifisches Zwischenstapel-Tag
oder IS-Tag in das Paket hinzuzufügen. Das IS-Tag ist in diesem
Beispiel ein Tag mit vier Byte, das in dem Paket hinzugefügt wird,
um die Paketbehandlung in dem Stapel zu ermöglichen. Es soll bemerkt werden,
dass in dieser Konfiguration der Erfindung, der SOC 10 als
ein Beispiel eines Switches oder eines Routers verwendet wird, das
in einer Weise zur Verwendung der Konfiguration gestapelt ist. Die
Erfindung ist jedoch nicht auf Switches begrenzt, die die Konfiguration
des SOC 10 haben; andere Switch-Konfigurationen können verwendet
werden. Wie zuvor erörtert
unterteilt der SOC 10 eigene Pakete in Zellen mit 64 Byte.
Da die Behandlung von Zellen nicht ein Gesichtspunkt dieser Konfiguration
ist, richtet sich die folgende Erörterung nur auf die Behandlung
von Paketen.
-
24A zeigt ein Beispiel eines Datenpakets 112-S
mit einem Zwischenstapel-Tag IS mit vier Byte, das nach dem VLAN-Tag
eingefügt
ist. Es soll angemerkt werden, dass auch wenn das Zwischenstapel-Tag IS
nach dem VLAN-Tag in der vorliegenden Erfindung hinzugefügt ist,
das Zwischenstapel-Tag irgendwo in dem Paket wirksam hinzugefügt werden
könnte.
Die 24B zeigt die bestimmten Felder
eines Zwischenstapel-Tags, wie es nachstehend erörtert wird:
-
- Stack_Cnt – 5
Bit lang – Stapelzähler; beschreibt
die Anzahl von Sprüngen,
durch die das Paket gehen kann, bevor es gelöscht wird. Die Anzahl von Sprüngen ist
um eins niedriger, als die Anzahl von Modulen in dem Stapel. Wenn
der Stapelzähler
null ist, wird das Paket fallengelassen. Dies ist, um die Schleifenbildung
für das Paket
zu verhindern, wenn es ein DLF gibt. Dieses Feld wird nicht verwendet,
wenn der Stapelmodus vollduplex ist.
- SRC_T – 1
Bit lang – Wenn
dieses Bit gesetzt ist, dann ist der Quellport Teil einer Trunkgruppe.
- SRC_TGID – 3
Bit lang – SRC_TGID
identifiziert die Trunkgruppe, wenn das Bit SRC_T gesetzt ist.
- SCR_RTAG – 3
Bit lang – SRC_RTAG
identifiziert die Trunkauswahl für
den Quelltrunkport.
-
Dies
wird verwendet, um die ARL-Tabelle in den anderen Modulen zu verbreiten,
wenn das Bit SRC_T gesetzt ist.
-
- DST_T – 1
Bit lang – Wenn
dieses Bit gesetzt ist, ist der Zielport Teil einer Trunkgruppe.
- DST_TGID – 3
Bit lang – DST_TGID
identifiziert die Trunkgruppe, wenn das Bit DST_T gesetzt ist.
- DST_RTAG – 3
Bit lang – DST_RTAG
identifiziert das Trunkauswahlkriterium, wenn das Bit DST_T gesetzt
ist.
- PFM – 2
Bit lang – PFM – Portfiltermodus
für Port
N (Eingangsport). Wert 0 – arbeitet
im Portfiltermodus A; Wert 1 – arbeitet
im Portfiltermodus B (Vorgabe); und Wert 2 – arbeitet im Portfiltermodus
C.
- M – 1
Bit lang – Wenn
dieses Bit gesetzt ist, dann ist dies ein gespiegeltes Paket.
- MD – 1
Bit lang – Wenn
dieses Bit gesetzt ist und das M-Bit gesetzt ist, dann wird das
Paket nur an den Spiegelport gesendet. Wenn dieses Bit nicht gesetzt
ist und das M-Bit gesetzt ist, dann wird das Paket an den Spiegelport
(MTP) so wie den Zielport (zur Eingangsspiegelung) gesendet. Wenn
dieses Bit gesetzt ist und das M-Bit nicht gesetzt ist, dann wird
das Paket fallengelassen, ohne gespiegelt zu werden.
- EM – 1
Bit lang – Dieses
Bit wird dann und nur dann gesetzt, wenn das Paket von einem Modul
weitergeleitet worden ist, dessen MTP nicht die Stapelverbindung
ist, ohne dass es zur MTP weitergeleitet worden ist.
- ED – 1
Bit lang – Dieses
Bit ist dann und nur dann gesetzt, wenn das Paket zu einem Nicht-Stapel-MTP weitergeleitet
worden ist.
- Stack_Modid – 5
Bit lang – Jedes
Modul in dem Stapel besitzt eine id. Das Quellmodul wird seine id
in dieses Feld einfügen,
wenn ein Paket gesendet wird. Dies wird hauptsächlich für Software verwendet, um zu
bestimmen, ob ein Switch in dem Stapel nicht arbeitet.
- Reserved – 2
Bit lang – Reserviert
für zukünftige Benutzung.
-
In
dem Fall des SOC 10 wird, wenn das eingehende Paket nicht
getaggt ist, der Eingang ebenso das Paket mit einem geeigneten VLAN-Tag
versehen. Das IS-Tag wird in das Paket unmittelbar hinter dem VLAN-Tag
eingefügt.
Eine geeignete Schaltung ist in jedem SOC 10 bereitgestellt,
um die erforderliche Tag-Information zu erkennen und bereitzustellen.
-
Mit
Bezug auf die speziellen Tag-Felder entspricht das Stapelzählerfeld
der Anzahl von Modulen in dem Stapel und beschreibt daher die Anzahl
von Sprüngen,
die das Paket durchlaufen kann, bevor es gelöscht wird. Das Tag SRC_T ist
das gleiche wie das T-Bit, das zuvor mit Bezug auf die ARL-Tabellen 21 in
SOC 10 erörtert
worden ist. Wenn das Bit SRC_T gesetzt ist, dann ist der Quellport
Teil einer Trunkgruppe. Wenn daher das Bit SRC_T in dem IS-Tag gesetzt
ist, dann wurde der Quellport als ein Trunkport identifiziert. In
Summe wird daher, sowie das Paket in den SOC 10(1) gelangt,
ein ARL-Tabellen-Look-Up auf den Quell-Look-Up durchgeführt. Der
Status des C-Bits wird überprüft. Wenn
bestimmt wird, dass der Quellport ein Trunkport ist, werden bestimmte
Trunkregeln angewendet, wie es zuvor erörtert worden ist, und wie es
nachstehend erörtert wird.
Das Feld SRC_TGID ist drei Bit lang und identifiziert die Trunkgruppe,
wenn das Bit SRC_T gesetzt worden ist. Wenn natürlich das Bit SRC_T nicht gesetzt
worden ist, wird dieses Feld nicht verwendet. Auf ähnliche Weise
identifiziert das SRC_RTAG die Trunkauswahl für den Quelltrunkport, ebenso
wie es zuvor erörtert
worden ist. Die verbleibenden Felder in dem IS-Tag sind oben erörtert.
-
Der
Paketfluss innerhalb des Stapels 2000 wird durch eine Anzahl
von Regeln definiert. Adressen werden wie zuvor erörtert durch
das Auftreten eines Quell-Look-Up-Fehlers (SLF) gelernt. Es wird
angenommen, dass der Stapel initialisiert wird, und alle Tabellen
von jedem der SOC 10(1) ... SOC 10(4) leer sind.
Ein Paket, das von Station A an Port 1 von SOC 10(1) gesendet
wird und an Station B an Port 1 von SOC 10(3) gerichtet ist,
kommt in den Port Nummer 1 von SOC 10(1). Sobald es am
Eingangssubmodul 14 von SOC 10(1) ankommt, wird
ein Zwischenstapelstack mit den Feldern, die oben ausgeführt sind,
in das Paket eingefügt.
Ebenso wenn das Paket ein nicht getaggtes Paket ist, wird ein VLAN-Tag
unmittelbar vor dem IS-Tag eingefügt. Die ARL-Maschine 143 des
SOC 10(1) liest das Paket und identifiziert das passende
VLAN auf der Grundlage entweder der getaggten VLAN-Tabelle 231 oder
der portbasierten VLAN-Tabelle 232. Eine ARL-Tabellensuche wird
dann durchgeführt.
Da die ARL-Tabellen leer sind, tritt ein Qell-Look-Up-Fehler (SLF)
auf. Als ein Ergebnis wird die Quell-MAC-Adresse von Station A des
eingehenden Pakets "gelernt" und zu der ARL-Tabelle
innerhalb der ARL/L3-Tabelle 21a des SOC 10(1) hinzugefügt. Gleichzeitig
geschieht eine Zielsuche, um zu sehen, ob die MAC-Adresse für das Ziel
B sich in der ARL-Tabelle befindet. Ein Ziel-Lool-Up-Fehler DLF
wird auftreten. Auf das Auftreten eines DLF hin wird das Paket an
alle Ports auf dem zugeordneten VLAN weitergeleitet, zu dem der
Quellport gehört.
Als ein Ergebnis wird das Paket zu SOC 10(2) an Port 26 von
SOC 10(1) gesendet und somit an Port 26 von SOC 10(2) empfangen.
Die Zwischenstapelverbindung, die in diesem Fall an Port 26 ist,
muss so konfiguriert sein, dass sie ein Teilnehmer dieses VLAN ist,
wenn sich das VLAN über
zwei oder mehr Switches erstreckt. Bevor das Paket von SOC 10(1) ausgesendet
wird, wird das Stapelzählerfeld
des IS-Tags zu drei gesetzt, welches der Maximalwert für einen
Stapel mit vier Modulen ist, wie es in 21 dargestellt
ist. Für
jede beliebige Anzahl von Switches n wird der Stapelzähler ursprünglich auf
n –1 gesetzt.
Auf den Empfang an Port 26 von SOC 10(2) mittels
der Zwischenverbindung 2001 hin, wird ein Quell-Look-Up
vom Eingangssubmodul 14 des SOC 10(2) durchgeführt. Ein
Quell-Look-Up-Fehler tritt auf, und die MAC-Adresse für Station
A wird auf dem SOC 10(2) gelernt. Der Stapelzähler des
IS-Tags wird um eins erniedrigt und beträgt nun zwei. Ein Ziel-Look-Up-Fehler
tritt beim Ziel-Look-Up auf, da das Ziel B nicht auf den SOC 10(2) gelernt worden
ist. Das Paket wird daher an alle Ports des zugeordneten VLAN geleitet.
Das Paket wird dann an Port 26 von SOC 10(3) empfangen.
Beim Quell-Look-Up
tritt ein Quell-Look-Up-Fehler auf und die Adresse wird in die ARL-Tabelle
des SOC 10(3) gelernt. Das Stapelzählerfeld wird um eins erniedrigt,
ein Ziel-Look-Up-Fehler tritt auf und das Paket wird an alle Ports
des zugeordneten VLAN weitergeleitet. Wenn das Paket an alle Ports weitergeleitet
wird, wird das Paket beim Ziel an Port Nummer 1 des SOC 10(3) empfangen.
Das Paket wird ebenso auf der Zwischenstapelverbindung an Port 26 von
SOC 10(4) gesendet. Ein Quell-Look-Up-Fehler führt dazu,
dass die Quelladresse, die die MAC-Adresse für Station A ist, auf der ARL-Tabelle
für der
SOC 10(4) gelernt wird. Der Stapelzähler wird um 1 erniedrigt,
wobei er auf diese Weise zu Null gemacht wird, und ein Ziel-Look-Up
wird durchgeführt,
welcher zu einem Fehler führt.
Das Paket wird dann zu allen Ports auf dem zugeordneten VLAN gesendet.
Da jedoch der Stapelzähler
Null ist, wird das Paket nicht auf der Zwischenstapelverbindung
gesendet. Dass der Stapelzähler
Null erreicht, zeigt an, dass das Paket einmal eine Schleife durch
den Stapel hindurch gemacht hat, wobei es bei jedem SOC 10 in
dem Stapel gestoppt hat. Eine weitere Fortsetzung der Schleife durch
den Stapel wird auf diese Weise verhindert.
-
Das
folgende Verfahren wird mit Bezug auf das Adresslernen und den Paketfluss
verfolgt, wenn die Station B die Quelle ist und ein Paket an Station
A sendet. Ein Paket von Station B kommt an Port 1 des SOC 10(3) an.
Der Eingang 14 des SOC 10(3) fügt ein passendes IS-Tag in das Paket
ein. Da die Station B, früher das
Ziel, noch nicht in der ARL-Tabelle des SOC 10(3) gelernt
worden ist, tritt ein Quell-Look-Up-Fehler auf und die MAC-Adresse
für Station
B wird im SOC 10(3) gelernt. Der Stapelzähler in
dem Zwischenstapeltag wird wie zuvor erörtert zu drei (n –1) gesetzt.
Ein Ziel-Look-Up führt
zu einem Treffer und das Paket wird zu Port 26 vermittelt.
Für gestapelte
Module 10(3) wurde die MAC-Adresse für Station A bereits erlernt
und erfordert daher nur das Vermitteln zu Port 26 des SOC 10(3).
Das Paket wird an Port 26 des SOC 10(4) empfangen. Ein
Quell-Look-Up-Fehler tritt auf und die MAC-Adresse für Station B wird in die ARL-Tabelle
des SOC 10(4) gelernt. Der Stapelzähler wird auf zwei erniedrigt
und der Ziel-Look-Up führt
dazu, dass das Paket an Port 26 des SOC 10(4) ausgesendet
wird. Das Paket wird an Port 26 von SOC 10(1) empfangen,
wo ein Quell-Look-Up-Fehler auftritt und die MAC-Adresse für Station
B wird auf der ARL-Tabelle für
SOC 10(1) gelernt. Der Stapelzähler wird erniedrigt und der
Ziel-Look-Up führt
dazu, dass das Paket zu Port 1 vermittelt wird. Die Station
A empfängt
das Paket. Da der Stapelzähler
immer noch 1 ist, wird das Paket auf der Stapelverbindung zu Port 26 des
SOC 10(2) gesendet. Ein Quell-Look-Up-Fehler tritt auf
und die MAC-Adresse für
Station B wird auf dem SOC 10(2) gelernt. Der Stapelzähler wird
zu Null erniedrigt. Ein Ziel-Look-Up führt zu einem Treffer, aber
das Paket wird nicht zu Port 26 vermittelt, da der Stapelzähler Null
ist. Die MAC-Adressen für
Station A und Station B wurden daher auf jedem Modul des Stapels
gelernt. Die Inhalte der ARL-Tabellen für jedes der Module SOC 10 sind
jedoch nicht identisch, da die Stapelkonfiguration dazu führt, dass
die SOC 10(2), 10(3) und 10(4) die Station
A als an Port 26 gelegen identifizieren, da dies der Port
auf dem bestimmten Modul ist, an den das Paket vermittelt werden
muß, um
Station A zu erreichen. In der ARL-Tabelle für SOC 10(1) jedoch
ist die Station A richtigerweise als an Port 1 gelegen
identifiziert. Auf ähnliche
Weise ist für
jedes SOC mit Ausnahme des SOC 10(3) die Station B als
an Port 26 gelegen identifiziert. Da Station A mit Port 1 des SOC 10(3) verbunden
ist, identifiziert die ARL-Tabelle für SOC 10(3) auf geeignete
Weise den bestimmten Port, an dem sich die Station derzeit befindet.
-
Nachdem
die Adressen in den ARL-Tabellen gelernt worden sind, erfordert
der Paketfluss von Station A zu Station B weniger Schritte und verursacht
weniger Verkehr im Switch. Ein Paket, das für Station B bestimmt ist, gelangt
in Station A an Port 1 des SOC 10(1). Ein IS-Tag wird vom Eingang
eingefügt.
Ein Quell-Look-Up ist ein Treffer, da die Station A bereits gelernt
worden ist, der Stapelzähler
wird zu drei gesetzt und der Ziel-Look-Up führt dazu, dass das Paket zu
Port 26 des SOC 10(1) vermittelt wird. Der SOC 10(2) empfängt das
Paket an Port 26, ein Quell-Look-Up ist ein Treffer, der
Stapelzähler
wird erniedrigt und der Ziel-Look-Up führt dazu, dass das Paket zu
Port 26 des SOC 10(3) herausvermittelt wird. Der
SOC 10(3) empfängt
das Paket an Port 26, der Quell-Look-Up ist ein Treffer,
der Stapelzähler
wird erniedrigt, der Ziel-Look-Up führt zu einem Treffer und das
Paket wird zu Port 1 des SOC 10(3) vermittelt,
wo es von der Station B empfangen wird. Da der Stapelzähler für jeden
Sprung nach dem ersten Sprung erniedrigt wird, ist er noch nicht
NuII. Das Paket wird dann zu SOC 10(4) an Port 26 des
SOC 10(3) gesendet, gemäß der Stapelkonfiguration.
Der Quell-Look-Up ist ein Treffer, der Stapelzähler wird erniedrigt, der Ziel-Look-Up
ist ein Treffer, aber das Paket wird dann von dem SOC 10(4) fallengelassen,
da der Stapelzähler
nun Null ist.
-
Es
soll in der obigen Erörterung
und der folgenden Erörterung
angemerkt werden, dass das Eingangssubmodul 14, die ARL/L3-Tabelle 21 und
andere Gesichtspunkte eines EPIC 20 wie zuvor erörtert allgemein mit
Bezug auf ein bestimmtes SOC 10 erörtert sind. Es wird angemerkt,
dass in Konfigurationen, in denen SOCs 10 wie in den 20 bis 23 dargestellt
gestapelt sind, die Ports einem bestimmten EPIC 20 zugeordnet
werden und ein bestimmtes Eingangssubmodul, Ausgangssubmodul usw.
verwendet wird, das diesem EPIC zugeordnet ist. In Konfigurationen,
in denen die gestapelten Switche eine unterschiedliche Switch-Architektur
verwenden, wird das Einfügen
des Zwischenstapel-Tags, das Adresslernen, das Erniedrigen des Stapelzählers usw.
von auf geeignete Weise konfigurierten Schaltungen und Submodulen
behandelt, wie es einem Fachmann auf dem Gebiet aufgrund der hierin
enthaltenen Information offensichtlich ist.
-
Es
soll angemerkt werden, dass Switches, die in dieser Konfiguration
gestapelt sind, ebenso eine Schaltung oder ein anderes Mittel enthalten,
das das IS-Tag und die Port-VLAN-ID (wenn hinzugefügt) von dem
Paket herausnehmen oder entfernen, bevor das Paket aus dem Stapel
heraus vermittelt wird. Das IS-Tag und die Port-VLAN-ID sind nur
für die
Behandlung innerhalb eines Stapels und/oder innerhalb des Switches wichtig.
-
Das
Altern der ARL-Einträge
in einer Konfiguration, die Switches SOC 10 verwendet,
ist wie zuvor erörtert.
Jede ARL-Tabelle altert die Einträge unabhängig voneinander. Wenn ein
Eintrag von einem SOC 10 gelöscht wird (die Tabellen innerhalb
jedes Switches werden wie zuvor erörtert synchronisiert, aber
nicht die Tabellen innerhalb eines Stapels), wird ein Quell-Look-Up-Fehler nur
in dem Switch auftreten, wenn ein Paket von diesem Switch empfangen
wird und die Adresse bereits ausgealtert worden ist. Ein Ziel-Look-Up-Fehler jedoch
kann nicht notwendigerweise für
Pakete auftreten, die auf dem Stapelverbindungsport ankommen; wenn
das Bit DST_T gesetzt ist, wird ein Ziel-Look-Up-Fehler nicht auftreten.
Die erforderliche Zielinformation kann von den Feldern DST_TGID
und DST_RTAG aufgenommen werden. Wenn das Bit DST_T jedoch nicht gesetzt
ist und die Adresse gelöscht
oder herausgealtert worden ist, dann wird ein Ziel-Look-Up-Fehler
in dem lokalen Modul auftreten.
-
Auch
wenn das Altern mit Blick auf die obige Erörterung einfach sein sollte,
wird das folgende Beispiel annehmen, dass die Einträge für die Station
A und die Station B von dem SOC 10(2) aufgrund des Alterungsvorgangs
gelöscht
worden sind. Wenn die Station A ein Paket an die Station B senden
will, tritt folgender Ablauf ein. Der Port 1 von SOC 10(1) empfängt das
Paket; auf einen Ziel-Look-Up hin wird das Paket zu Port 26 aufgrund
eines Zieltreffers vermittelt; der Stapelzähler wird zu drei gesetzt.
Das Paket wird an Port 26 von Switch SOC 10(2) empfangen
und ein Qell-Look-Up führt
zu einem Quell-Look-Up-Fehler, da die Adresse von Station A bereits
von der ARL-Tabelle gelöscht
worden ist. Die Quelladresse wird daher gelernt und zu der ARL-Tabelle
des SOC 10(2) hinzugefügt.
Der Stapelzähler
wird auf zwei erniedrigt. Der Ziel-Look-Up führt zu einem Ziel-Look-Up-Fehler
und das Paket wird an alle Ports des zugeordneten VLAN am SOC 10(2) gesendet.
Das Paket wird an Port 26 des SOC 10(3) empfangen,
bei dem der Stapelzähler
zu 1 erniedrigt wird. Der Ziel-Look-Up ist ein Treffer und das Paket
wird zu Port 1 vermittelt, wo es von der Station B empfangen
wird. Das Paket wird dann auf der Stapelverbindung oder der Zwischenstapelverbindung
zu Port 26 des SOC 10(4) weitergeleitet, wo der
Stapelzähler
zu Null verringert wird. Auch wenn der Ziel-Look-Up ein Treffer
ist und anzeigt, dass das Paket auf Port 26 ausgesendet
werden sollte, wird das Paket fallengelassen, da der Stapelzähler Null
beträgt.
-
Die 26 zeigt den Paketfluss in einer Simplex-Verbindung
wie es in 21 dargestellt ist, aber wo Trunkgruppen
beteiligt sind. In dem Beispiel von 26 wird
auf dem SOC 10(3) eine Trunkgruppe bereitgestellt, welches
ein Beispiel ist, bei dem alle Teilnehmer der Trunkgruppe sich auf
dem gleichen Modul befinden. In diesem Beispiel beinhaltet die Station
B auf dem SOC 10(3) eine Trunkgruppe von vier Ports. Das
Beispiel wird annehmen, dass die TGID zwei beträgt und die RTAG für den Trunkport
zwei ist, der mit Station B verbunden ist. Wenn die Station A ein
Paket an Station B senden will, empfängt der Port 1 des
SOC 10(1) das Paket von Station A. Unter der Annahme, dass
alle Tabellen leer sind, tritt ein Quell-Look-Up-Fehler auf und die
Quelladresse oder MAC-Adresse von Station A wird auf Switch 1 gelernt.
Ein Ziel-Look-Up-Fehler ist die Folge und das Paket wird an alle
Ports des VLAN gesendet. Wie zuvor erwähnt, wird selbstverständlich das passende
Zwischenstapel- oder
IS-Tag am Eingang hinzugefügt
und der Stapelzähler
zu drei gesetzt. Das Paket wird an Port 26 des SOC 10(2) empfangen
und ein Quell-Look-Up-Fehler tritt auf und führt dazu, dass die Quelladresse
des Pakets von Port 26 gelernt wird. Der Stapelzähler wird
auf zwei erniedrigt. Ein Ziel-Look-Up-Fehler tritt auf und das Paket
wird. an alle Ports des VLAN auf dem SOC(2) gesendet. Das
Paket wird dann an Port 26 von Switch SOC 10(3) empfangen.
Ein Quell-Look-Up-Fehler tritt auf und die Adresse wird in der ARL-Tabelle
für den
Switch plus SOC 10(3) gelernt. Der Stapelzähler wird
zu 1 erniedrigt. Auf den Ziel-Look-Up hin tritt ein Ziel-Look-Up-Fehler
auf. Ein Ziel-Look-Up-Fehler auf einem Switch mit Trunkports jedoch,
wird nicht an alle Trunkports weitergesendet, sondern nur an einen
bestimmten Trunkport gesendet, wie es in der 802.1Q-Tabelle und
der PVLAN-Tabelle spezifiziert ist, zusätzlich zu anderen Ports, die
Teilnehmer des zugeordneten VLAN sind. Die Station B empfängt dann
das Paket. Da der Stapelzähler
noch nicht Null ist, wird das Paket zu SOC 10(4) gesendet.
Ein Quell-Look-Up-Fehler tritt auf, die Adresse wird gelernt, der
Stapelzähler wird
zu Null erniedrigt, ein Ziel-Look-Up wird durchgeführt, welcher
zu einem Fehler führt.
Das Paket wird dann an alle Ports des zugeordneten VLAN mit Ausnahme
des Stapelverbindungsports gesendet, wobei auf diese Weise wiederum
eine Schleifenbildung durch den Stapel hindurch verhindert wird.
Es soll angemerkt werden, dass sobald der Stapelzähler in
jeder beliebigen Paketweiterleitungssituation zu Null erniedrigt
worden ist, wenn der Ziel-Look-Up zu einem Treffer führt, dann
das Paket zu der Zieladresse weitergeleitet wird. Wenn ein Ziel-Look-Up-Fehler
auftritt, dann wird das Paket an alle Ports an dem zugeordneten
VLAN mit Ausnahme des Stapelverbindungsports und mit Ausnahme jeglicher
Trunkports gemäß der 802.1Q-Tabelle
weitergeleitet. Wenn der Ziel-Look-Up dazu führt, dass der Zielport als
gestapelter Verbindungsport identifiziert wird, dann wird das Paket
fallengelassen, da eine vollständige
Schleife bereits durch den Stapel gemacht worden ist und das Paket
bereits an den Zielport gesendet worden ist.
-
Für die Situation,
in der die Station B an den Trunkports ein Paket an Station A sendet,
wird dieses Beispiel annehmen, dass das Paket von der Station B
an Port 1 des SOC 10(3) ankommt. Das Eingangssubmodul 14 des
SOC 10(3) fügt
das passende IS-Tag an. Auf einen Adress-Look-Up hin tritt ein Quell-Look-Up wieder
auf und die Quelladresse wird gelernt. Relevante Information betreffend
die Quelladresse für
die Trunk-Konfiguration ist die Portnummer, die MAC-Adresse, VLAN-ID,
der T-Bit-Status, TGID und RTAG. Da das Paket, das von der Station
B kommt, an einem Trunkport eingeht, ist das T-Bit zu 1 gesetzt
und wird die Information TGID und RTAG auf geeignete Weise von der
PVLAN-Tabelle aufgenommen. Der Stapelzähler wird zu drei gesetzt und
die Eingangslogik des SOC 10(3) führt einen Ziel-Adress-Look-Up
durch. Dies führt zu
einem Treffer in der ARL-Tabelle, da die Adresse A bereits gelernt
worden ist. Das Paket wird zu Port 26 von SOC 10(3) vermittelt.
Die Trunking-Regeln sind derart, dass das Paket nicht an die gleichen
Teilnehmer der Trunkgruppe gesendet werden, von der das Paket stammt.
Das IS-Tag ist daher so, dass das Bit SRC_T gesetzt ist, die SRC_TGID
gleich zwei ist und das SRC_RTAG gleich zwei ist. Das Paket wird
an Paket 26 von SOC 10(4) empfangen; ein Quell-Look-Up
wird durchgeführt
und führt
zu einem Quell-Look-Up-Fehler. Die Quelladresse des Pakets wird
gelernt und da das Bit SRC_T gesetzt ist, wird die Information TGID
und RTAG aus dem Zwischenstapel-Tag entnommen. Der Stapelzähler wird
um eins erniedrigt und ein Ziel-Look-Up durchgeführt. Dies führt zu einem ARL-Treffer, da
die Adresse A bereits gelernt worden ist. Das Paket wird an Port 26 des
SOC 10(4) vermittelt. Das Paket wird dann an Port 26 des
Switch SOC 10(1) empfangen. Ein Quell-Look-Up führt zu einem
Quell-Look-Up-Fehler und die Quelladresse des Pakets wird gelernt.
Die Information TGID und RTAG wird ebenso dem Zwischenstapel-Tag
entnommen. Der Ziel-Look-Up ist ein Treffer und das Paket wird zu
Port 1 vermittelt. Die Station A empfängt das Paket. Das Paket wird
ebenso auf der Zwischenstapelverbindung zu SOC 10(2) gesendet,
da der Stapelzähler
noch nicht Null ist. Die Quelladresse wird auf SOC 10(2) aufgrund
eines Quell-Look-Up-Fehlers gelernt und auch wenn der Ziel-Look-Up
zu einem Treffer führt,
wird das Paket nicht weitergeleitet, da in SOC 10(2) der
Stapelzähler
zu Null verringert wird. Die 27A bis 27D zeigen Beispiele der Inhalte der ARL-Tabelle
nach diesem Lernvorgang. Die 27A zeigt
die ARL-Tabelleninformation für
der SOC 10(1), 27B zeigt
die ARL-Tabelleninformation für
SOC 10(2), 27C zeigt die ARL-Tabelleninformation
für SOC 10(3) und 27D zeigt die ARL-Tabelleninformation für SOC 10(4).
Wie zuvor erörtert
stellt die ARL-Tabellensynchronisierung
innerhalb jedes SOC 10 sicher, dass alle ARL-Tabellen innerhalb
eines bestimmten SOC 10 die gleiche Information beinhalten.
-
Nachdem
die Adressen gelernt sind, werden die Pakete ohne SLFs und DLFs
behandelt, wenn nicht die Alterung oder andere Phänomene zu
einem Löschen
einer Adresse führen.
Die Konfiguration der Trunkgruppe führt dazu, dass das Bit DST_T
in dem IS-Tag für
Pakete gesetzt ist, die für
eine Trunkgruppe bestimmt sind. Die Daten der Ziel-TGID und Ziel-RTAG
werden der ARL-Tabelle entnommen. Das Setzen des Ziel-T-Bits (DST_T)
führt dazu,
dass die Information TGID und RTAG entnommen wird; wenn das Bit
DST_T nicht gesetzt ist, dann sind die Felder TGID und RTAG nicht
wichtig und werden als Felder betrachtet, die "nicht beachtet" werden.
-
28 zeigt eine Konfiguration, in der die Trunk-Teilnehmer über verschiedene
Module verteilt sind. Die 28 zeigt
eine Konfiguration, in der die Station A an einer Trunkgruppe mit
einer TGID von 1 und einer RTAG von 1 ist. Die Station A an einem
Trunkport auf Switch SOC 10(1) sendet ein Paket an Station
B an einem Trunkport in Switch SOC 10(3). Ein Paket wird
von Station A an beispielsweise Trunkport 1 des SOC 10 erhalten.
Das IS-Tag wird in das Paket eingefügt, ein Quell-Look-Up-Fehler
tritt auf und die Adresse der Station A wird auf dem SOC 10(1) gelernt.
In der ARL-Tabelle für
der SOC 10(1) wird die MAC-Adresse und die VLAN-ID für Station
A gelernt, das T-Bit wird zu eins gesetzt, da der Quellport sich
auf einer Trunkgruppe befindet. Der Stapelzähler wird zu drei gesetzt,
ein Ziel-Look-Up
wird durchgeführt
und ein Ziel-Look-Up-Fehler tritt auf. Das Paket wird dann an alle
Ports des zugeordneten VLAN "gesendet". Um jedoch Schleifen
zu vermeiden, kann das Paket nicht auf die Trunkports ausgesendet
werden. Für
diesen Zweck ist die TGID sehr wichtig. Die Quell-TGID identifiziert
die Ports, die mit Bezug auf das Paket deaktiviert sind, das an
alle Ports im Fall eines DFL, Multicast, Unicast, usw. gesendet
wird, sodass das Port-Bitmap
auf passende Weise konfiguriert wird. Von der Ziel-TGID erhält man den
Trunkgruppen-Identifizierer und die Ziel-RTAG liefert den Index auf
die Tabelle, der auf den geeigneten Port zeigt, auf dem das Paket
ausgeht. Das T-Bit, die TGID und das RTAG steuern daher die geeignete
Kommunikation auf dem Trunkport zum Verhindern einer Schleifenbildung. Der
Rest des Adresslernens in dieser Konfiguration ist ähnlich zu
der zuvor beschriebenen; jedoch wird die MAC-Adresse A auf dem Trunkport
gelernt. Das oben beschriebene Verfahren einer Schleife durch den
Stapel hindurch geschieht, während
die Quelladressen gelernt werden, der Stapelzähler erniedrigt wird und bei
DLFs an geeignete Ports gesendet wird, bis der Stapelzähler Null
wird.
-
In
einem Fall, in dem die Station A ein Paket an die Station B sendet,
nachdem die Adressen gelernt worden sind, wird das Paket von Station
A auf dem Trunkport empfangen, der Quell-Look-Up zeigt einen Treffer an und das
T-Bit wird gesetzt. Das Bit SRC_T ist gesetzt und die TGID und RTAG
von dem Quelltrunkport von der ARL-Tabelle wird in die Felder SRC_TGID
und SRC_RTAG kopiert. In den eingefügten IS-Tag wird der Stapelzähler zu
drei gesetzt. Der Ziel-Look-Up führt
zu einem Treffer und das T-Bit wird für die Zieladresse gesetzt.
Das Bit DST_T wird gesetzt und die TGID und RTAG für den Zieltrunkport
für die
ARL-Tabelle wird in DST_TGID und TST_RTAG kopiert. Die Portauswahl
wird auf der Grundlage der DST_TGID und DST_RTAG durchgeführt. In
diesem Beispiel zeigt die Portauswahl im SOC 10(1) an,
dass der Stapelverbindungsport von SOC 10(2) Port 26 ist.
Das Paket wird auf Port 26 an der SOC 10(2) gesendet.
Da das Bit DST_T gesetzt ist, wird die Information TGID und RTAG
verwendet, um den Trunkport auszuwählen. In diesem Beispiel wird
das Paket an Port 26 gesendet. Das Paket wird dann an Port 26 des
SOC 10(3) empfangen. In diesem Fall werden das Bit DST_T,
die Informationen TGID und RTAG verwendet, um den Trunkport auszuwählen, der
in Figur Port 1 ist. Bei jedem Sprung wird selbstverständlich der
Stapelzähler
verringert. An diesem Punkt ist der Stapelzähler derzeit eins, sodass das
Paket zu SOC 10(4) gesendet wird. Das Paket wird vom SOC 10(4) jedoch nicht
weitergeleitet, da das Verringern des Stapelzählers dazu führt, dass
der Stapelzähler
Null ist.
-
Stapel-Management
-
Die 29A zeigt eine Konfiguration eines Stapels 2000,
in dem eine Mehrzahl von CPUs 52(1)...52(4) vorhanden
sind, die zusammen mit dem SOC 10(1), 10(2), 10(3) bzw. 10(4) arbeiten.
Die Konfiguration in diesem Beispiel ist derart, dass die CPU 52(1) eine
zentrale CPU zum Steuern eines Protokollstapels für das gesamte
System ist. Diese Konfiguration ist derart, dass es nur eine IP-Adresse
für das
gesamte System gibt. Die Konfiguration, gemäß der der SOC 10 direkt
mit der zentralen CPU verbunden ist, wird bestimmt, wenn der Stapel
konfiguriert wird. Die Konfiguration von 29A wird
wichtig für
das Behandeln einzigartiger Protokolle, wie beispielsweise ein einfaches
Netzwerkmanagementprotokoll bzw. Simple Network Management Protocol
(SNMP). Ein Beispiel einer SNMP-Anforderung kann für die Station
D sein, die sich an einem Port des SOC 10(3) befindet,
Informationen zu erhalten im Bezug auf den Zählerwert auf dem SOC 10(4).
Um solche Anfragen zu ermöglichen,
wird die MAC-Adresse für
der SOC 10(1), welches die zentrale CPU 52(1) enthält, in allen
ARL-Tabellen derart programmiert, dass jedes beliebige Paket mit
dieser Ziel-MAC-Adresse zum SOC 10(1) gesendet wird. Die
Anforderung wird an SOC 10(3) empfangen. Die Eingangslogik
für der
SOC 10(3) wird das Paket zu SOC 10(1) senden,
indem das Paket zuerst über
die Stapelverbindung oder die Zwischenstapelverbindung 2003 zum
SOC 10(4) gesendet wird, welches dann das Paket über die
Zwischenstapelverbindung 2004 sendet, sodass es SOC 10(1) erreicht.
Auf den Empfang hin wird das Paket gelesen und an die zentrale CPU 52(1) geleitet,
welches die SNMP-Anforderung verarbeitet. Beim Verarbeiten der Anforderung
bestimmt die zentrale CPU 52(1), dass die Anforderung Daten
vom Switch SOC 10(4) erfordert. Der SOC 10(1) sendet
dann eine Steuernachricht an der 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 Steuernachrichtantwort wird zum SOC 10(1) zurückgesendet,
wobei die MAC-Adresse des SOC 10(1) verwendet wird. Nachdem
der SOC(1) die Antwort erhält, wird eine SNMP-Antwort
erzeugt und zur Station D gesendet.
-
Port-Spiegelung
-
In
bestimmten Situationen kann ein Netzwerkadministrator oder eine
verantwortliche Person bestimmen, dass bestimmte Typen von Paketen
oder bestimmte Ports so festgelegt werden, dass Kopien von Paketen
zu einem bestimmten "Spiegel"-Port gesendet werden.
Die Spiegel-Bestimmung wird im Adressauflösungsvorgang durch das Gesetztsein
des M-Bits in dem Zwischenstapel-Tag identifiziert. Wenn das M-Bit
gesetzt ist, wird der Spiegel-Port vom Spiegel-Port-Register entnommen.
Das Spiegel-Port-Register enthält
ein Feld mit sechs Bit für
den Spiegel-Port. Das Feld stellt die Portnummer dar, an die das
Paket zum Spiegeln gesendet werden soll. Wenn die Portnummer eine
Stapelverbindung oder ein Zwischenstapelverbindungs-port ist, dann
befindet sich der Spiegel-Port auf einem. anderen Modul. Wenn die
Portnummer anders als die Stapelverbindung ist, dann befindet sich
der Spiegel-Port auf dem Lokalmodul. Wenn ein Paket auf der Stapelverbindung
mit dem gesetzten M-Bit und dem gesetzten MD-Bit gesendet wird,
wird das passende Modul das Paket empfangen und das Paket zu dem
Spiegel-Port innerhalb des Moduls senden, das dem Port-Spiegel-Register
dieses Moduls entnommen ist. Das Paket wird nicht an den Zielport
gesendet. Wenn das M-Bit gesetzt und das MD-Bit nicht gesetzt ist,
dann wird das Paket sowohl zu dem Spiegelport als auch zum Zielport
gesendet.
-
Eingangs-
und Ausgangsportspiegelung
-
29B ist eine Darstellung von gestapelten Netzwerkswitches
gemäß einem
Beispiel der vorliegenden Erfindung. In diesem Beispiel wird der
Stapel von vier einzelnen Netzwerkswitches SW1, SW2, SW3 und SW4
gebildet, die vergleichbar zu den Switches SOC 10 oder
anderen Switchkonfigurationen sind. Jeder der Netzwerkswitche besitzt
beispielsweise 26 Ports. In der in 29B abgebildeten
Ausbildungsform wird Port 25 von jedem Switch beispielsweise
als GIG-Uplink und Port 26 von jedem Switch beispielsweise
als Stapelverbindung verwendet. Jeder der Netzwerkswitches ist miteinander über die
Stapelverbindung bei 1 Gbps verbunden, Port 26 von jedem
Netzwerkswitch (es wird angemerkt, dass Datengeschwindigkeiten,
die in dieser Ausführungsform
verwendet werden, nicht begrenzend gemeint sind und andere Datengeschwindigkeiten ebenso
verwendet werden können
und innerhalb des Gedankens und des Bereichs der vorliegenden Erfindung
liegen). SW2 besitzt einen "Spiegel"-Port (MTP). Ein
MTP, wie er im vorangegangenen Abschnitt mit dem Titel Portspiegelung
erörtert
worden ist, erlaubt es einem Netzwerkadministrator oder einer verantwortlichen Person,
Daten zu untersuchen, die auf bestimmten Ports ein- und ausgehen,
durch die Verwendung des MTP.
-
Das
in 29B abgebildete Ausführungsbeispiel
ist ein Beispiel einer unidirektionalen Simplexschleife für eine gestapelte
Konfiguration. Wenn daher ein Paket in einem Port von SW1 empfangen
wird, muss das Paket über
die Stapelverbindung zu SW2, SW3 und SW4 zur Verarbeitung gesendet
werden.
-
Da
die Ausgangsspiegelung eines Ports nicht bestimmt werden kann, bis
das Paket den Ausgabeport erreicht, tritt ein Problem auf, wenn
das Paket zu einem Switch mit einem MTP geht, der sich auf einem
Switch befindet, der sich oberhalb in der Schleife von dem Switch
befindet, welcher den Ziel- oder Ausgabeport beinhaltet. Ein Beispiel
dieser Situation ist in 29B dargestellt,
in der das Paket durch SW2 geht, wo sich der MTP befindet, bevor das
Paket den passenden Ausgabeport für Station B erreicht (Port 1 von
SW3). In diesem Beispiel wird das Paket durch den Stapel von Switches
SW1, SW2, SW3 und SW4 ein zweites Mal zurückgesendet, um sicherzustellen,
dass das Paket zu dem MTP gesendet wird.
-
Die 29C zeigt den MTP, wie er in einem Switch, SW4,
angeordnet ist, der sich stromabwärts des Ausgabeports befindet,
der sich in Switch SW3 befindet. In diesem Beispiel wird das Paket
nur einmal durch den Stapel hindurch gesendet.
-
Die 29D zeigt ein Paket, das an dem Eingangsport,
Port 1 an Switch 1, SW1, eingangsgespiegelt wird
und an Port 1 von SW3 ausgangsgespiegelt wird. Der MTP
befindet sich an Port 1 von SW2 stromaufwärts vom
Ausgangsport, Port 1 von SW3. In diesem Beispiel wird das
Paket einmal durch den Stapel gesendet und nur eine Kopie des Pakets
wird zum MTP gesendet.
-
Die
vorliegende Erfindung implementiert ein Verfahren und eine Vorrichtung,
die beispielsweise ein M-Bit verwendet, um Spiegeln zu aktivieren;
ein MD-Bit zum Anzeigen, wann ein Paket in einem Switch empfangen
wird, in dem sich sowohl der Eingangs- als auch der Ausgangsport
auf dem gleichen Switch befinden und das Paket gespiegelt werden
soll, oder wenn ein Paket, das gespiegelt werden soll, empfangen
und fallengelassen worden ist, oder wenn ein Paket gespiegelt werden
soll und das Ende des Stapels erreicht hat, ohne gespiegelt worden
zu sein; ein EM-Bit, um anzuzeigen, wenn der MTP übergangen
worden ist und das Paket noch nicht zum MTP gesendet worden ist;
und ein ED-Bit, um anzuzeigen, wann ein Paket zu dem MTP gesendet
worden ist. Wenn das M-Bit, das MD-Bit und das EM-Bit gesetzt und das
ED-Bit nicht gesetzt ist, dann wird das Paket auf dem Stapel einmal
zurückgesendet,
um sicherzustellen, dass das Paket zu dem Paket MTP gesendet wird.
Die Vorteile des Verfahrens und der Vorrichtung der vorliegenden
Erfindung, die ein M-Bit, MD-Bit,
EM-Bit und ED-Bit verwenden, sind die, dass Pakete über den
Stapel so selten wie möglich
mit der geringstmöglichen
Verarbeitung übertragen
werden können,
wobei sichergestellt wird, dass das Ausgangsportspiegeln zu dem
MTP aktiviert ist. In dem Fall, in dem es nur Ausgangsspiegelungen
gibt, und der MTP stromaufwärts
des Ausgangsports ist, wird das Paket durch den Stapel zweimal gesendet,
um sicherzustellen, dass das Paket zu dem MTP gesendet wird (29B). In dem Fall, in dem es nur Ausgangsportspiegeln
zu dem MTP gibt und der MTP sich stromabwärts des Ausgangsports befindet,
wird das Paket einmal durch den Spiegel gesendet (29C). In dem Fall, in dem es sowohl Eingangsportspiegeln
als auch Ausgangsportspiegeln gibt, wird das Paket nur einmal durch
den Spiegel gesendet und das Paket wird nur einmal zu dem MTP gesendet
(29D).
-
Die 29B zeigt ein Beispiel, in dem ein Paket an Port 1 von
SW1 von Station A empfangen wird. Das Paket ist für Station
B durch Port 1 von SW1 gerichtet, welcher ausgangsportgespiegelt
ist.
-
Das
Paket wird zu der Stapelverbindung, Port 26 von SW1, gesendet
und zu Port 26 vom SW2 übertragen.
-
Da
sich der MTP an Port 1 auf SW2 befindet und das M-Bit nicht
gesetzt ist, wird das EM-Bit aktiviert, welches anzeigt, dass der
MTP passiert worden ist, ohne dass das Paket zu dem MTP gesendet
worden ist. Da der Zielausgabeport, Port 1 von SW3, sich
nicht auf SW2 befindet und es kein Ausgangsspiegeln gibt, wird das
Paket entlang der Stapelverbindung zu Port 26 von SW3 gesendet.
-
Im
SW3 wird der Zielausgabeport, Port 1, gefunden und das
Paket wird zu Port 1 zur Ausgabe gesendet. Zu dieser Zeit
wird jedoch der Zielausgabeport, Port 1 von SW3, als ausgangsgespiegelt
identifiziert und das M-Bit aktiviert. Das Paket wird entlang der
Stapelverbindung zu Port 26 von SW4 gesendet. Das Stapel-Tag
des Pakets, sowie es zu SW4 geht, besitzt ein gesetztes M-Bit und
ein gesetztes EM-Bit.
-
Da
der SW4 nicht den MTP aufweist und dies der letzte Switch in dem
Stapel ist, wird das MD-Bit aktiviert, welches anzeigt, dass das
Ende des Stapels erreicht worden ist und das Paket zu dem Ausgabeport gesendet
worden ist. Da zusätzlich
das M-Bit aktiviert worden ist, das EM-Bit aktiviert worden ist
und das ED-Bit nicht aktiviert worden ist, wird das Paket entlang
der Stapelverbindung zu Port 26 von SW1 gesendet.
-
Da
das M-Bit und das MD-Bit aktiviert sind, wird auf dem SW1 nur nach
dem MTP gesucht und es wird keine Eingangslogikfunktionalität ausgeführt. Da
der MTP sich nicht auf dem SW1 befindet und das Port-Spiegel-Register
die Stapelverbindung anzeigt, wird das Paket entlang der Stapelverbindung
zu Port 26 vom SW2 gesendet.
-
Da
das M-Bit und das MD-Bit aktiviert sind, wird auf dem SW2 nur der
MTP gesucht und es wird keine Eingangslogikfunktionalität ausgeführt. In
diesem Fall wird der MTP an Port 1 von SW2 gefunden. Das
Paket wird zum MTP (Port 1 von SW2) gesendet und das ED-Bit
aktiviert. Das Paket wird dann entlang der Stapelverbindung zu Port 26 von
SW3 gesendet.
-
Da
das M-Bit und das MD-Bit aktiviert sind, wird auf dem SW3 nur nach
dem MTP gesucht. Da sich der MTP nicht auf SW3 befindet und das
Port-Spiegel-Register die Stapelverbindung anzeigt, wird das Paket entlang
der Stapelverbindung zu Port 26 von SW4 gesendet.
-
Da
das M-Bit und das MD-Bit aktiviert sind, wird auf SW4 nur noch MTP
gesucht. Da sich der MTP nicht auf SW4 befindet und das MD sich
im aktiven Zustand befindet, M im aktiven Zustand ist, EM im aktiven Zustand
ist und ED im aktiven Zustand ist, wird die Verarbeitung beendet,
da das Paket den Stapel wenigstens einmal durchlaufen hat und ebenso
zum MTP gesendet worden ist. So wird in diesem Fall, in dem es nur
Ausgangsspiegelung gibt und sich der MTP stromaufwärts vom
Ausgangsport befindet, das Paket zweimal durch den Stapel gesendet.
-
29C zeigt ein Beispiel, in dem es nur eine Ausgangsspiegelung
gibt und sich der MTP stromabwärts
vom Ausgang oder Ausgabeport befindet.
-
In
diesem Beispiel wird das Paket an Port 1 vom SW1 empfangen.
Der Zielausgabeport für
dieses Paket ist Port 1 vom SW3, welcher ausgangsgespiegelt
ist.
-
Das
Paket wird zu der Stapelverbindung gesendet, Port 26 von
SW1 und zu Port 26 von SW2 übertragen.
-
Da
der Zielausgabeport, Port 1 von SW3, sich nicht auf SW2
befindet, wird das Paket entlang der Stapelverbindung zu Port 26 von
SW3 gesendet.
-
In
SW3 wird der Zielausgabeport, Port 1, gefunden und das
Paket wird zu Port 1 zur Ausgabe gesendet. Zu dieser Zeit
jedoch wird der Zielausgabeport, Port 1 von SW3, als ausgangsgespiegelt
identifiziert und das M-Bit aktiviert. Das Paket wird entlang der
Stapelverbindung zu Port 26 von SW4 gesendet.
-
Da
SW4 den MTP aufweist, wird das Paket zu dem MTP gesendet und das
ED-Bit aktiviert, welches anzeigt, dass das Paket zum MTP gesendet
worden ist. Zu diesem Zeitpunkt wurde das M-Bit aktiviert, das ED-Bit
aktiviert und das EM-Bit nicht aktiviert; daher stoppt die Verarbeitung,
da das Paket durch den Stapel hindurchgelaufen und ebenso zum MTP
gesendet worden ist. Daher wird in diesem Beispiel, in dem es nur Ausgangsspiegelung
gibt und sich der MTP stromabwärts
vom Ausgangsport befindet, das Paket nur einmal durch den Stapel
gesendet.
-
29D zeigt ein Beispiel, in dem ein Paket von Station
A über
Port 1 von SW1 empfangen wird, welcher eingangsgespiegelt
ist. Da Port 1 von SW1 eingangsgespiegelt ist, wird das
M-Bit aktiviert. Das Paket ist an Station B über Port 1 von SW3
gerichtet, welcher ausgangsportgespiegelt ist.
-
Das
Paket wird zu der Stapelverbindung, Port 26 von SW1 gesendet
und zu Port 26 von SW2 übertragen.
-
Da
sich der MTP auf SW2 befindet und das M-Bit sich im aktiven Zustand
befindet, wird das Paket zum MTP gesendet und das ED-Bit gesetzt.
Da der Zielausgabeport Port 1 von SW3, sich nicht auf SW2
befindet, wird das Paket entlang der Stapelverbindung zu Port 26 von
SW3 gesendet.
-
In
SW3 wird der Zielausgabeport, Port 1, gefunden und das
Paket wird zu Port 1 zur Ausgabe gesendet. Zu diesem Zeitpunkt
wird jedoch der Zielausgabeport, Port 1 von SW3, als ausgangsgespiegelt
identifiziert und das M-Bit aktiviert. Da der MTP nicht auf SW3
gefunden wird, wird das Paket entlang der Stapelverbindung zu Port 26 von
SW4 gesendet.
-
Da
SW4 den MTP nicht aufweist und dies der letzte Switch in dem Stapel
ist, wird das MD-Bit
aktiviert, welches anzeigt, dass das Ende des Stapels erreicht worden
ist und das Paket zum Ausgabeport gesendet worden ist. Da sich zusätzlich das
M-Bit im aktiven Zustand befindet, sich das ED-Bit im aktiven Zustand
befindet und das EM-Bit nicht aktiviert worden ist, endet die Verarbeitung,
da das Paket an alle Switches auf dem Stapel und ebenso zum MTP
gesendet worden ist. So wird in diesem Beispiel, in dem es sowohl
Eingangsspiegelung als auch Ausgangsspiegelung gibt, das Paket nur
einmal durch den Stapel und einmal zum MTP gesendet.
-
Die
vorliegende Erfindung wendet ein Verfahren und eine Vorrichtung
so an, dass ein Paket so selten wie möglich über die Stapelverbindung mit
einem minimalen Ausmaß an
Verarbeitung gesendet werden muss. Daher implementiert die vorliegende
Erfindung eine logische Funktionalität in dem Fall, in dem der MTP
vor dem Zielausgabeport kommt und implementiert ebenso eine logische
Funktionalität
in dem Fall, in dem der MTP nach dem Zielausgabeport kommt. Diese
logische Funktionalität
stellt sicher, dass wenn der MTP sich stromaufwärts vom Ausgabeport befindet,
das Paket einmal mehr durch die Stapel gesendet wird, um sicherzustellen,
dass das Paket zum MTP gesendet wird. Die logische Funktionalität stellt
ebenso sicher, dass das Paket nur einmal durch den Stapel gesendet
wird, wenn sich der MTP stromabwärts
vom Ausgabeport befindet oder wenn es Eingangs- und Ausgangsportspiegelung gibt. Auch
in dem Fall, in dem es sowohl Eingangs- als auch Ausgangsportspiegelung
gibt, wird das Paket nur einmal zum MTP gesendet.
-
Die 29E und 29F sind
ein Flussdiagramm, das ein Beispiel der logischen Schritte in einer Ausführungsform
der vorliegenden Erfindung zeigt. Das Flussdiagramm wird zuerst
mit Bezug auf die 29B beschrieben, die zeigt,
wenn ein MTP sich stromaufwärts
von einem Ausgabeport befindet, und dann mit Bezug auf 29C, welche zeigt, wenn ein MTP sich stromabwärts vom
Ausgabeport befindet, und schließlich mit Bezug auf die 29D, welche sowohl Eingangs- als auch Ausgangsportspiegelung
zeigt.
-
29B ist ein Beispiel davon, dass ein Paket an
Port 1 von SW1 empfangen wird. Dieser Schritt ist in Schritt 400 von 29E dargestellt. In diesem Beispiel wird das Paket
im Port 1 vom SW1 empfangen. Das Paket besitzt eine Quell-MAC-Adresse
von A (Src MAC = A) und eine Ziel-MAC-Adresse von B (Dest MAC = B).
Dies bedeutet einfach, dass das Paket von Station A kommt und zur
Ausgabe an Station B gerichtet ist. Im vorliegenden Beispiel ist
Port 1 von SW3 eine Verbindung zu Station B.
-
In
Schritt 400 wird stack_cnt zu einer Maximalzahl gesetzt,
welche gleich der Anzahl der Switches minus 1 ist. Im vorliegenden
Beispiel gibt es 4 Switches. Daher ist die Maximalzahl, max, gleich
4 – 1,
welches gleich 3 ist. In Schritt 403 wird ebenso das Eingangsspiegeln überprüft. Da es
kein Eingangsspiegeln gibt, ist das M-Bit nicht gesetzt.
-
Die
nachstehende Tabelle zeigt den Zustand von stack_cnt, M-Bit, MD-Bit,
EM-Bit und ED-Bit,
wenn das Paket in SW1 empfangen wird:
-
In
Schritt
405 wird die Eingangslogikfunktionalität für SW1 durchgeführt. Ein
Quell-Look-Up der ARL-Tabelle für
SW1 wird durchgeführt,
welches zu einem SLF führt
(Quelladress-Look-Up-Fehler).
Die Quelladresse des Pakets von Port
1 von SW2 wird dann
gelernt, wie es in der folgenden Tabelle gezeigt ist. ARL-Tabelle
für SW1
-
In
Schritt 405 führt
die Eingangslogikfunktionalität
in SW1 einen DA-(Zieladress)-Look-Up durch, der zu einem DLF führt (Zieladress-Look-Up-Fehler).
Das Paket wird dann an alle Ports des VLAN auf SW1 geleitet.
-
In
Schritt 410 wird, da der Zielport Port 1 von SW2
sich nicht auf SW1 befindet, der MTP in Schritt 412 auf
SW1 gesucht.
-
In
Schritt 412 wird der MTP nicht gefunden und in Schritt 415 ist
die Abfrage nicht wahr, da wir uns in SW1 befinden. Daher wird das
Paket in Schritt 420 zum nächsten Switch gesendet.
-
In
diesem Beispiel wird das Paket in Schritt 420 über die
Stapelverbindung, welche Port 26 ist, zu SW2 gesendet.
-
In
Schritt 425 wird stack_cnt dekrementiert.
-
Die
nachstehende Tabelle zeigt den Zustand von stack_cnt, EM-Bit und
ED-Bit, wenn das Paket von SW1 zu SW2 gesendet worden ist und nachdem
stack_cnt dekrementiert worden ist:
-
In
Schritt
405 wird die Eingangslogikfunktionalität für SW2 durchgeführt. Ein
Quell-Look-Up der ARL-Tabelle für
SW2 wird durchgeführt,
welches zu einem SLF führt
(Quelladress-Look-Up-Fehler).
Die Quelladresse des Pakets von Port
1 von SW2 wird dann
gelernt, wie es in der folgenden Tabelle gezeigt ist. ARL-Tabelle
für SW2
-
In
Schritt 405 wird die Eingangslogikfunktionalität in SW2
einen DA-(Zieladress)-Look-Up durch, der zu einem DLF führt (Zieladress-Look-Up-Fehler).
Das Paket wird dann an alle Ports von VLAN an SW2 gesendet.
-
Da
in Schritt 410 der Zielport, Port 1, SW3, sich
nicht auf SW2 befindet, wird in Schritt 412 der MTP auf
SW2 gesucht. Da der MTP in Schritt 412 auf SW2 gefunden
wird, wird das M-Bit
in Schritt 427 überprüft, um zu
sehen, ob das Spiegeln aktiviert ist. In diesem Fall ist das Spiegeln
nicht aktiviert, sodass das EM-Bit in Schritt 428 gesetzt
wird, um anzuzeigen, dass der MTP passiert worden ist, ohne dass
das Paket zum MTP gesendet worden ist.
-
In
Schritt 415 wird stack_cnt überprüft, um zu sehen, ob es gleich
Null ist. Wenn stack_cnt Null ist, dann gibt es kein Spiegeln und
das Paket wurde durch den gesamten Stapel gesendet. Die Verarbeitung
kann daher beendet werden.
-
Wenn
stack_cnt nicht Null ist, wurde das Paket nicht an alle Switches
in dem Stapel gesendet und das Paket wird zum nächsten Switch gesendet.
-
In
diesem Beispiel wird das Paket in Schritt 420 über die
Stapelverbindung, welche Port 26 ist, zu SW3 gesendet.
-
In
Schritt 425 wird stack_cnt dekrementiert.
-
Die
unten dargestellte Tabelle zeigt den Zustand von stack_cnt, M-Bit,
MD-Bit, EM-Bit und ED-Bit, wenn das Paket von SW2 zu SW3 gesendet
worden ist und nachdem stack_cnt dekrementiert worden ist.
-
-
In
Schritt
405 wird die Eingangslogikfunktionalität für SW3 durchgeführt. Ein
Quell-Look-Up der ARL-Tabelle wird durchgeführt, welches zu einem SLF führt (Quelladress-Look-Up-Fehler). Die Quelladresse des
Pakets von Port
1 von SW3 wird dann gelernt, wie es in
der folgenden Tabelle gezeigt ist. ARL
Tabelle für
SW3
-
In
Schritt 405 führt
die Eingangslogikfunktionalität
in SW3 einen DA-(Zieladress)-Look-Up durch, der zu einem DLF führt (Zieladress-Look-Up-Fehler).
Das Paket wird dann an alle Ports von VLAN auf SW3 gesendet.
-
Da
in Schritt 410 angegeben ist, dass sich der Zielport bei
Port 1 von SW3 befindet, wird das Paket zu Port 1 von
SW3 zur Ausgabe gesendet und der Port wird in Schritt 430 auf
Ausgangsspiegelung überprüft. Im vorliegenden
Fall ist Port 1 von SW3 ausgangsgespiegelt. Daher wird
in Schritt 435 das M-Bit aktiviert.
-
In
Schritt 440 wird das Vorhandensein des MTP auf SW3 geprüft. Im vorliegenden
Fall wird kein MTP auf SW3 gefunden.
-
In
Schritt 445 wird stack_cnt überprüft, ob es gleich Null ist.
-
Da
stack_cnt nicht gleich Null ist, wird das Paket in Schritt 455 zum
nächsten
Switch SW4 über
die Stapelverbindung gesendet, welche Port 26 ist.
-
Der
Wert stack_cnt wird in Schritt 455 dekrementiert.
-
Die
nachfolgende Tabelle zeigt den Zustand von stack_cnt, M-Bit, MD-Bit,
EM-Bit und ED-Bit,
wenn das Paket von SW3 an SW4 gesendet wird, nachdem stack_cnt dekrementiert
worden ist:
-
In
Schritt 460 wird M-Bit und MD-Bit überprüft, um zu bestimmen, ob das
Paket bereits durch den Stapel gesendet worden ist und nur noch
der MTP gesucht werden muß.
Im vorliegenden Fall befindet sich das M-Bit im aktiven Zustand
und ist das MD-Bit nicht aktiviert.
-
Daher
wird in Schritt
465 eine Eingangslogikfunktionalität für SW4 durchgeführt. Ein
Quell-Look-Up der
ARL-Tabelle wird für
SW4 durchgeführt,
welches zu einem SLF führt
(Quelladress-Look-Up-Fehler). Die Quelladresse des Pakets von Port
1 von
SW4 wird dann gelernt, wie es in der folgenden Tabelle gezeigt ist. ARL-Tabelle
für SW4
-
In
Schritt 465 führt
die Eingangslogikfunktionalität
in SW4 einen DA-(Zieladress)-Look-Up durch, der zu einem DLF führt (Zieladress-Look-Up-Fehler).
Das Paket wird dann an alle Ports von VLAN auf SW4 gesendet.
-
In
Schritt 440 wird das Vorhandensein von MTP auf SW4 überprüft. In diesem
Fall ist der MTP nicht auf SW4 vorhanden.
-
In
Schritt 445 wird stack_cnt überprüft, um zu sehen, ob das Paket
an alle Switches in dem Stapel gesendet worden ist.
-
In
Schritt 467 werden M-Bit, EM-Bit und ED-Bit überprüft. Da M-Bit
und EM-Bit gesetzt und das ED-Bit nicht gesetzt ist, zeigt dies
an, dass das Paket nicht zu dem MPT gesendet worden ist und dass
das Paket über den
Stapel zurückgesendet
werden sollte.
-
In
Schritt 470 wird das MD-Bit gesetzt, um anzuzeigen, dass
ein zu spiegelndes Paket durch den gesamten Stapel gesendet worden
ist und noch nicht gespiegelt worden ist.
-
In
Schritt 475 wird stack_cnt auf max zurückgesetzt und zum nächsten Switch über die
Stapelverbindung, Port 26, zu SW1, gesendet.
-
Die
nachfolgende Tabelle zeigt den Zustand von stack_cnt, M-Bit, MD-Bit,
EM-Bit und ED-Bit,
wenn das Paket von SW4 an SW1 gesendet wird:
-
In
Schritt 460 werden M-Bit und MD-Bit überprüft, um zu sehen, ob es eine
Aktivierung gibt, die anzeigt, dass nur die MTP-Suchlogik ausgeführt werden
muß. Im
vorliegenden Fall sind M-Bit und MD-Bit zu 1 gesetzt. Daher muss
die MTP-Suchlogik ausgeführt
werden.
-
Im
Schritt 440 wird SW1 überprüft, um zu
sehen, ob der MTP sich auf SW1 befindet. Im vorliegenden Fall befindet
sich der MTP nicht auf SW1.
-
In
Schritt 445 wird stack_cnt überprüft, um zu sehen, ob es Null
ist. Im vorliegenden Fall ist stack_cnt 3.
-
In
Schritt 450 wird das Paket zum nächsten Switch SW2 über die
Stapelverbindung, Port 26, gesendet.
-
In
Schritt 455 wird stack_cnt dekrementiert.
-
Die
nachfolgende Tabelle zeigt den Zustand von stack_cnt, M-Bit, MD-Bit,
EM-Bit und ED-Bit,
wenn das Paket vom SW1 zu SW2 gesendet wird und nachdem stack_cnt
dekrementiert worden ist:
-
In
Schritt 460 werden M-Bit und MD-Bit überprüft, um zu sehen, ob es eine
Aktivierung gibt, die anzeigt, dass nur die MTP-Suchlogik ausgeführt werden
muß. Im
vorliegenden Fall sind M-Bit und MD-Bit gesetzt, welches anzeigt,
dass nur die MTP-Suchlogik ausgeführt werden muß.
-
In
Schritt 440 wird das Vorhandensein von MTP auf SW2 geprüft. Im vorliegenden
Beispiel wird der MTP auf SW2 gefunden.
-
In
Schritt 480 wird das Paket zum MTP gesendet und das ED-Bit
gesetzt, da das Paket zum MTP gesendet oder gespiegelt worden ist.
-
In
Schritt 445 wird stack_cnt überprüft, um zu bestimmen, ob es
gleich Null ist, welches anzeigt, dass das Ende des Stapels erreicht
worden ist. In diesem Beispiel ist stack_cnt gleich zwei.
-
In
Schritt 450 wird das Paket zum nächsten Switch SW3 durch die
Stapelverbindung, Port 26, gesendet.
-
In
Schritt 455 wird stack_cnt dekrementiert.
-
Die
nachfolgende Tabelle zeigt den Zustand von stack_cnt, EM-Bit und
ED-Bit, wenn das Paket von SW2 zu SW3 gesendet wird und nachdem
stack_cnt dekrementiert worden ist:
-
In
Schritt 460 werden das M-Bit und das MD-Bit überprüft, um zu
sehen, ob es eine Aktivierung gibt, die anzeigt, dass nur die MTP-Suchlogik
ausgeführt
werden muß.
Im vorliegenden Fall sind das M-Bit und das MD-Bit gesetzt, welches
anzeigt, dass nur die MTP-Suchlogik ausgeführt werden muß.
-
In
Schritt 440 wird das Vorhandensein vom MTP auf SW3 überprüft. Im vorliegenden
Beispiel wird der MTP nicht auf SW3 gefunden.
-
In
Schritt 445 wird stack_cnt überprüft, um zu sehen, ob es Null
ist. Im vorliegenden Fall ist stack_cnt eins.
-
In
Schritt 450 wird das Paket zum nächsten Switch SW4 über die
Stapelverbindung, Port 26, gesendet.
-
In
Schritt 455 wird stack_cnt dekrementiert.
-
Die
nachfolgende Tabelle zeigt den Zustand von stack_cnt, M-Bit, MD-Bit,
EM-Bit und ED-Bit,
wenn das Paket von SW3 zu SW4 gesendet wird und stack_cnt dekrementiert
worden ist:
-
In
Schritt 460 werden M-Bit und MD-Bit überprüft, um zu sehen, ob es eine
Aktivierung gibt, die anzeigt, dass nur die MTP-Suchlogik ausgeführt werden
muß. Im
vorliegenden Fall sind M-Bit und MD-Bit gesetzt, welches anzeigt,
dass nur die MTP-Suchlogik ausgeführt werden muß.
-
In
Schritt 440 wird das Vorhandensein des MTP auf SW4 überprüft. Im vorliegenden
Fall wird der MTP nicht auf SW4 gefunden.
-
In
Schritt 445 wird stack_cnt überprüft, um zu sehen, ob es Null
ist. Im vorliegenden Fall ist stack_cnt Null.
-
In
Schritt 467 wird das MD-Bit gesetzt.
-
In
Schritt 470 M = 1, EM = 1 und ED = 1, welches anzeigt,
dass das Ende des Stapels erreicht worden ist und das Paket zum
MTP gesendet worden ist. Daher endet die Verarbeitung. So wird in
diesem Beispiel, in dem sich der MTP stromaufwärts vom Ausgangsport befindet,
das Paket zweimal durch den Stapel gesendet, um sicherzustellen,
dass das Paket zum MTP gesendet wird.
-
Die 29E und die 29F sind
ein Flussdiagramm eines Verfahrens der vorliegenden Erfindung und
werden nun mit Bezug auf 29C beschrieben,
welches ein Beispiel zeigt, in dem ein MTP sich im Switch stromabwärts in der
Schleife von dem Switch befindet, der den Ziel- oder Ausgabeport
enthält.
-
In 29C wird ein Paket in Port 1 von SW1
von Station A erhalten. Dieser Schritt ist in Schritt 400 von 29E dargestellt. Das an Port 1 vom SW1 empfangene
Paket besitzt eine Quell-MAC-Adresse von A (Src MAC = A) und eine
Ziel-MAC-Adresse von B (Dest MAC = B). Dies bedeutet einfach, dass
das Paket von der Station A kommt und für die Station B bestimmt ist.
Im vorliegenden Fall ist Port 1 von SW3 ein Ausgang zu
Station B.
-
In
Schritt 400 wird stack_cnt zu einer Maximalanzahl gesetzt,
welche gleich der Anzahl der Switches minus 1 ist. Im vorliegenden
Fall gibt es 4 Switches. Daher ist die Maximalanzahl max = 4 – 1, welches
gleich 3 ist.
-
Die
nachfolgende Tabelle zeigt den Zustand von stack_cnt, M-Bit, MD-Bit,
EM-Bit und ED-Bit,
wenn das Paket in SW1 empfangen wird:
-
In
Schritt 403 wird der Eingangsport, Port 1 von
SW1 überprüft, um zu
sehen, ob er eingangsgespiegelt ist. In diesem Fall ist der Port 1 von
SW1 nicht eingangsgespiegelt.
-
In
Schritt
405 wird die Eingangslogikfunktionalität für SW1 durchgeführt. Ein
Quell-Look-Up der ARL-Tabelle für
SW1 wird durchgeführt,
welches zu einem SLF führt
(Quelladress-Look-Up-Fehler).
Die Quelladresse des Pakets von Port
1 von SW1 wird dann
gelernt, wie es in der folgenden Tabelle gezeigt ist. ARL-Tabelle
für SW1
-
In
Schritt 405 führt
die Eingangslogikfunktionalität
in SW1 einen DA-(Zieladress)-Look-Up durch, der zu einem DLF führt (Zieladresse-Look-Up-Fehler).
Das Paket wird dann an alle Ports des VLAN auf SW1 gesendet.
-
In
Schritt 410 wird der Ziel- oder Ausgabeport, Port 1 von
SW3, in SW1 überprüft. Der
Zielport befindet sich nicht auf SW1.
-
In
Schritt 412 wird das Vorhandensein des MTP auf SW1 gesucht.
Im vorliegenden Beispiel befindet sich kein MTP auf SW1.
-
In
Schritt 415 wird stack_cnt überprüft, um zu sehen, ob es gleich
Null ist. Wenn stack_cnt Null ist, dann gibt es kein Spiegeln und
das Paket wurde durch den gesamten Stapel gesendet. Die Verarbeitung
kann daher enden.
-
Wenn
stack_cnt nicht Null ist, wurde das Paket nicht an alle Switches
in dem Stapel gesendet und das Paket wird zum nächsten Switch gesendet.
-
In
diesem Beispiel wird das Paket in Schritt 420 durch die
Stapelverbindung, welche Port 26 ist, zu SW2 gesendet.
-
In
Schritt 425 wird stack_cnt dekrementiert.
-
Die
nachstehende Tabelle zeigt den Zustand von stack_cnt, M-Bit, MD-Bit,
EM-Bit und ED-Bit,
wenn das Paket von SW1 an SW2 gesendet worden ist und nachdem stack_cnt
dekrementiert worden ist:
-
In
Schritt
405 wird die Eingangslogikfunktionalität für SW2 durchgeführt. Ein
Quell-Look-Up der ARL-Tabelle für
SW2 wird durchgeführt,
welches zu einem SLF führt
(Quelladress-Look-Up-Fehler).
Die Quelladresse des Pakets von Port
1 von SW2 wird dann
gelernt, wie es in der folgenden Tabelle dargestellt ist. ARL
Tabelle für
SW2
-
In
Schritt 405 führt
die Eingangslogikfunktionalität
in SW1 einen DA-(Zieladress)-Look-Up durch, der zu einem DLF führt (Zieladress-Look-Up-Fehler).
Das Paket wird dann an alle Ports von VLAN auf SW2 gesendet.
-
In
Schritt 410 wird der Ziel- oder Ausgabeport, Port 1 von
SW3, in SW2 überprüft. Der
Zielport befindet sich nicht auf SW2.
-
In
Schritt 412 wird nach dem Vorhandensein des MTP auf SW2
gesucht. Im vorliegenden Beispiel befindet sich kein MTP auf SW2.
-
In
Schritt 415 wird stack_cnt überprüft, um zu sehen, ob es gleich
Null ist. Wenn stack_cnt Null ist, dann gibt es kein Spiegeln und
das Paket wurde durch den gesamten Stapel gesendet. Die Verarbeitung
kann daher enden.
-
Wenn
stack_cnt nicht Null ist, wurde das Paket nicht an alle Switches
in dem Stapel gesendet und das Paket wird zum nächsten Switch gesendet.
-
In
diesem Beispiel wird das Paket in Schritt 420 zu SW3 durch
die Stapelverbindung gesendet, welche Port 26 ist.
-
In
Schritt 425 wird stack_cnt dekrementiert.
-
Die
nachfolgende Tabelle zeigt den Zustand von stack_cnt, M-Bit, MD-Bit,
EM-Bit und ED-Bit,
wenn das Paket von SW2 zu SW3 gesendet worden ist und nachdem stack_cnt
dekrementiert worden ist:
-
In
Schritt
405 wird die Eingangslogikfunktionalität für SW3 durchgeführt. Ein
Quell-Look-Up der ARL-Tabelle wird durchgeführt, welches zu einem SLF führt (Quelladress-Look-Up-Fehler). Die Quelladresse des
Pakets von Port
1 von SW3 wird dann gelernt, wie es in
der folgenden Tabelle gezeigt ist. ARL-Tabelle
für SW3
-
In
Schritt 405 führt
die Eingangslogikfunktionalität
in SW3 einen DA-(Zieladress)-Look-Up durch, der zu einem DLF führt (Zieladress-Look-Up-Fehler).
Das Paket wird dann an alle Ports des VLAN von SW3 gesendet.
-
Da
in Schritt 410 angegeben ist, dass der Zielport, Port 1 von
SW3, sich auf SW3 befindet, wird das Paket zu Port 1 von
SW3 zur Ausgabe gesendet und der Port wird in Schritt 430 auf
Ausgangsspiegel überprüft.
-
Im
vorliegenden Fall ist Port 1 von SW3 ausgangsgespiegelt.
Daher wird in Schritt 435 M-Bit aktiviert.
-
In
Schritt 440 wird das Vorhandensein des MTP auf SW3 überprüft. Im vorliegenden
Fall wird kein MTP auf SW3 gefunden.
-
In
Schritt 445 wird stack_cnt überprüft, um zu sehen, ob es gleich
Null ist.
-
Da
stack_cnt nicht Null ist, wird das Paket in Schritt 450 zu
dem Nest-Switch SW durch die Stapelverbindung, Port 26,
gesendet.
-
Der
Wert stack_cnt wird in Schritt 455 dekrementiert.
-
Die
nachstehende Tabelle zeigt den Zustand von stack_cnt, M-Bit, MD-Bit,
EM-Bit und ED-Bit,
wenn das Paket von SW3 zu SW4 gesendet worden ist und nachdem stack_cnt
dekrementiert worden ist.
-
-
In
Schritt 460 werden M-Bit und MD-Bit überprüft, um zu bestimmen, ob das
Paket bereits durch den Stapel gesendet worden ist und nur eine
MTP-Suche erforderlich ist. Im vorliegenden Fall ist das M-Bit und das
MD-Bit nicht aktiviert und es wird daher eine Eingangslogikfunktionalität für SW4 durchgeführt.
-
In
Schritt
465 wird die Eingangslogikfunktionalität für SW4 durchgeführt. Ein
Quell-Look-Up der ARL-Tabelle wird für SW4 durchgeführt, welches
zu einem SLF führt
(Quelladress-Look-Up-Fehler).
Die Quelladresse des Pakets von Port
1 von SW4 wird dann
gelernt, wie es in der folgenden Tabelle gezeigt ist. ARL-Tabelle
für SW4
-
In
Schritt 465 führt
die Eingangslogikfunktionalität
in SW4 einen DA-(Zieladress)-Look-Up durch, der zu einem DLF führt (Zieladress-Look-Up-Fehler).
Das Paket wird dann an alle Ports des VLAN auf SW4 gesendet.
-
In
Schritt 440 wird das Vorhandensein des MTP auf SW4 überprüft. Im vorliegenden
Beispiel wird der MTP auf SW4 gefunden.
-
In
Schritt 480 wird das Paket zum MTP gesendet und in Schritt 485 wird
das ED-Bit aktiviert, welches anzeigt, dass das Paket zu dem MTP
gespiegelt worden ist.
-
In
Schritt 445 wird stack_cnt überprüft, um zu sehen, ob es den
Wert Null besitzt. In diesem Fall besitzt stack_cnt den Wert Null.
-
Daher
wird in Schritt 467 das MD-Bit gesetzt, welches anzeigt,
dass das Ende des Stapels erreicht worden ist.
-
In
Schritt 470 M = 1, EM = 0, ED = 1, welches anzeigt, dass
das Paket zum MTP gesendet worden ist und daher die Verarbeitung
stoppen kann. So wird in diesem Beispiel, in der es nur Ausgangsportspiegelung gibt
und sich der MTP stromabwärts
vom Ausgangsport befindet, das Paket nur einmal durch den Stapel
gesendet.
-
Die 29E und 29F sind
ein Flussdiagramm, das ein Beispiel der logischen Schritte in einem Ausführungsbeispiel
der vorliegenden Erfindung zeigt. Das erste Flussdiagramm wird zuerst
mit Bezug auf 29D beschrieben, welche darstellt,
wenn sowohl Eingangs- als auch Ausgangsports gespiegelt werden.
-
29D ist ein Beispiel dessen, dass ein Paket an
Port 1 von SW1 empfangen wird. Dieser Schritt ist in Schritt 400 von 29E dargestellt. In diesem Beispiel wird das Paket
bei Port 1 von SW1 empfangen. Das Paket besitzt eine Quell-MAC-Adresse
von A (Src MAC = A) und eine Ziel-MAC-Adresse von B (Dest MAC = B).
Dies bedeutet einfach, dass das Paket von Station A kommt und zur
Ausgabe an Station B bestimmt ist. Im vorliegenden Beispiel ist
Port 1 von SW3 eine Verbindung zu Station B.
-
In
Schritt 400 wird stack_cnt zu einer Maximalanzahl gesetzt,
welche gleich der Anzahl von Switches minus 1 ist. Im vorliegenden
Beispiel gibt es 4 Switches. Daher ist die Maximalanzahl, max, gleich
4 – 1,
welches gleich 3 ist. In Schritt 403 wird ebenso Eingangsspiegelung überprüft. Da es
Eingangsspiegelung gibt, wird das M-Bit gesetzt.
-
Die
nachstehende Tabelle zeigt den Zustand von stack_cnt, M-Bit, MD-Bit,
EM-Bit und ED-Bit,
nachdem das Paket in SW1 empfangen worden ist:
-
In
Schritt
405 wird die Eingangslogikfunktionalität für SW1 durchgeführt. Ein
Quell-Look-Up der ARL-Tabelle wird für SW1 durchgeführt, welches
zu einem SLF führt
(Quelladress-Look-Up-Fehler).
Die Quelladresse des Pakets von Port
1 von SW2 wird dann
gelernt, wie es in der folgenden Tabelle gezeigt ist. ARL-Tabelle
für SW1
-
In
Schritt 405 führt
die Eingangslogikfunktionalität
in SW1 einen DA-(Zieladress)-Look-Up durch, der zu einem DLF führt (Zieladress-Look-Up-Fehler).
Das Paket wird dann an alle Ports des VLAN auf SW1 gesendet.
-
Da
in Schritt 410 sich der Zielport, Port 1 von SW3,
nicht auf SW1 befindet, wird in Schritt 412 in SW1 nach
dem MTP gesucht. Der MTP wird in Schritt 412 nicht auf
SW1 gefunden und der Zustand wird in Schritt 415 nicht
wahr sein. Das Paket wird daher zum nächsten Switch gesendet.
-
In
diesem Beispiel wird das Paket in Schritt 420 zu SW1 durch
die Stapelverbindung gesendet, welche Port 26 ist.
-
In
Schritt 425 wird stack_cnt dekrementiert.
-
Die
nachstehende Tabelle zeigt den Zustand von stack_cnt, EM-Bit und
ED-Bit, wenn das Paket von SW1 zu SW2 gesendet worden ist und stack_cnt
dekrementiert worden ist:
-
In
Schritt
405 wird die Eingangslogikfunktionalität für SW2 durchgeführt. Ein
Quell-Look-Up der ARL-Tabelle wird für SW2 durchgeführt, welches
zu einem SLF führt
(Quelladress-Look-Up-Fehler).
Die Quelladresse des Pakets von Port
1 von SW2 wird dann
gelernt, wie es in der folgenden Tabelle gezeigt ist. ARL-Tabelle
für SW2
-
In
Schritt 405 führt
die Eingangslogikfunktionalität
in SW2 einen DA-(Zieladress)-Look-Up durch, der zu einem DLF führt (Zieladress-Look-Up-Fehler).
Das Paket wird dann an alle Ports des VLAN auf SW2 gesendet.
-
Da
in Schritt 410 der Zielport, Port 1 von SW3, sich
nicht auf SW2 befindet, wird in Schritt 412 auf SW2 nach
dem MPT gesucht. Da der MTP in Schritt 412 auf SW2 gefunden
wird, wird in Schritt 427 das M-Bit überprüft, um zu sehen, ob das Spiegeln
aktiviert ist. In diesem Beispiel ist das Spiegeln aktiviert, sodass
das Paket zum MTP gesendet und in Schritt 428 das ED-Bit
gesetzt wird, um anzuzeigen, dass das Paket zu dem MTP gesendet
worden ist.
-
In
Schritt 415 wird stack_cnt überprüft, um zu sehen, ob es gleich
Null ist. Wenn stack_cnt Null ist, dann gibt es kein Spiegeln und
das Paket wurde durch den gesamten Stapel gesendet. Die Verarbeitung
kann daher enden.
-
Wenn
stack_cnt nicht Null ist, dann wurde das Paket nicht an alle Switches
in dem Stapel gesendet und das Paket wird zum nächsten Switch gesendet.
-
In
diesem Beispiel wird das Paket in Schritt 420 durch die
Stapelverbindung, die Port 26 ist, zu SW3 gesendet.
-
In
Schritt 425 wird stack_cnt dekrementiert.
-
Die
nachstehende Tabelle zeigt den Zustand von stack_cnt, M-Bit, MD-Bit,
EM-Bit und ED-Bit,
wenn das Paket von SW2 zu SW3 gesendet worden ist und stack_cnt
dekrementiert worden ist:
-
In
Schritt
405 wird die Eingangslogikfunktionalität für SW3 durchgeführt. Ein
Quell-Look-Up der ARL-Tabelle wird durchgeführt, welches zu einem SLF führt (Quelladress-Look-Up-Fehler). Die Quelladresse des
Pakets von Port
1 von SW3 wird dann gelernt, wie es in
der folgenden Tabelle gezeigt ist. ARL-Tabelle
für SW3
-
In
Schritt 405 führt
die Eingangslogikfunktionalität
in SW1 einen DA-(Zieladress)-Look-Up durch, der zu einem DLF führt (Zieladress-Look-Up-Fehler).
Das Paket wird dann an alle Ports des VLAN auf SW3 gesendet.
-
Da
in Schritt 410 angegeben ist, dass sich der Zielport in
SW3 an Port 1 befindet, wird das Paket zu Port 1 von
SW3 zur Ausgabe gesendet und der Port wird in Schritt 430 auf
Ausgangsspiegeln überprüft.
-
Im
vorliegenden Beispiel ist Port 1 von SW3 ausgangsgespiegelt.
Daher wird in Schritt 435 das M-Bit aktiviert.
-
In
Schritt 440 wird das Vorhandensein des MTP auf SW3 überprüft. Im vorliegenden
Fall wird kein MTP auf SW3 gefunden.
-
In
Schritt 445 wird stack_cnt überprüft, um zu sehen, ob es gleich
Null ist.
-
Da
stack_cnt nicht gleich Null ist, wird das Paket in Schritt 450 zum
nächsten
Switch SW4 über
die Stapelverbindung gesendet, die Port 26 ist.
-
In
Schritt 455 wird stack_cnt dekrementiert.
-
Die
nachstehende Tabelle zeigt den Zustand von stack_cnt, M-Bit, MD-Bit,
EM-Bit und ED-Bit,
wenn das Paket von SW3 zu SW4 gesendet worden ist und stack_cnt
dekrementiert worden ist:
-
In
Schritt 460 werden das M-Bit und das MD-Bit überprüft, um zu
bestimmen, ob das Paket bereits durch den Stapel gesendet worden
ist und nur eine MTP-Suche erforderlich ist. Im vorliegenden Fall
befindet sich das M-Bit im aktiven Zustand und ist das MD-Bit nicht
aktiviert.
-
Daher
wird in Schritt
465 eine Eingangslogikfunktionalität für SW4 durchgeführt. Ein
Quell-Look-Up der
ARL-Tabelle wird für
SW4 durchgeführt,
welches zu einem SLF führt
(Quelladress-Look-Up-Fehler). Die Quelladresse des Pakets von Port
1 von
SW4 wird dann gelernt, wie es in der vorliegenden Tabelle gezeigt
ist. ARL-Tabelle
für SW4
-
In
Schritt 465 führt
die Eingangslogikfunktionalität
in SW4 einen DA-(Zieladress)-Look-Up durch, der zu einem DLF führt (Zieladress-Look-Up-Fehler).
Das Paket wird dann an alle Ports des VLAN auf SW4 gesendet.
-
In
Schritt 440 wird das Vorhandensein des MTP auf SW4 überprüft. In diesem
Fall ist der MTP nicht auf SW4 vorhanden.
-
In
Schritt 445 wird stack_cnt überprüft, um zu sehen, ob das Paket
an alle Switches in dem Stapel gesendet worden ist. Da stack_cnt
gleich Null ist, wird in Schritt 467 das MD-Bit gesetzt,
um anzuzeigen, dass das Paket durch den gesamten Stapel gesendet
worden ist.
-
In
Schritt 470 werden M-Bit, EM-Bit und ED-Bit überprüft. Da das
M-Bit und das ED-Bit gesetzt und das EM-Bit nicht gesetzt ist, zeigt
dies an, dass das Paket durch den Stapel und zum MTP gesendet worden ist.
Daher wird im vorliegenden Beispiel, in dem es sowohl Eingangs-
als auch Ausgangsportspiegelung gibt, das Paket einmal durch den
Stapel und ebenso einmal zum MTP gesendet.
-
Die 29G ist ein Beispiel eines allgemeinen Flussdiagramms,
das zeigt, wie stack_cnt, M-Bit, MD-Bit, EM-Bit und ED-Bit in der
vorliegenden Erfindung gesetzt werden. In Schritt 200 wird
stack_cnt auf eine Maximalanzahl gesetzt, wenn ein Paket in einen
Port in einem Switch gelangt (die Anzahl der Switches in dem Stapel
minus 1). Wenn es daher 4 Switches in dem Stapel gibt, ist stack_cnt
gleich 4 (Anzahl der Switches in dem Stapel) –1. Daher ist stack_cnt gleich
3, wenn es 4 Switches in dem Stapel gibt und das Maximum für stack_cnt
ist 3 (max = 3).
-
In
Schritt 205 werden die Eingangs-(Eingabe)- und Ausgangs-(Ausgabe)-Ports überprüft, um zu
sehen, ob sie gespiegelt sind.
-
Wenn
in Schritt 210 entweder der Eingangsport oder der Ausgangsport
gespiegelt ist, wird das M-Bit gesetzt.
-
In
Schritt 215 wird das Vorhandensein eines MTP auf einem
Switch überprüft. Wenn
kein MTP vorhanden ist und der Zustand in Schritt 220 nicht
wahr ist, dann wird in Schritt 240 stack_cnt dekrementiert.
-
Wenn
in Schritt 215 der MTP vorhanden ist, wird das M-Bit in
Schritt 225 überprüft, ob das
Spiegeln aktiviert worden ist.
-
Wenn
das Spiegeln aktiviert worden ist, wird das Paket in Schritt 230
zum MTP gesendet und das ED-Bit aktiviert, welches anzeigt, dass
das Paket zum MTP gesendet worden ist. Der Wert stack_cnt wird in Schritt 220 dann überprüft.
-
Wenn
in Schritt 225 das M-Bit nicht aktiviert wird, welches
anzeigt, dass das Spiegeln nicht aktiviert ist, wird in Schritt 235 das
EM-Bit gesetzt, welches anzeigt, dass der MTP passiert worden ist,
ohne dass das Paket zum MTP gesendet worden ist. Der Wert stack_cnt
wird dann in Schritt 220 überprüft.
-
Wenn
stack_cnt nicht gleich Null ist in Schritt 220, welches
anzeigt, dass das Paket nicht durch den gesamten Stapel gesendet
worden ist, wird das Paket zum nächsten
Switch gesendet, der Wert stack_cnt wird in Schritt 240 dekrementiert
und eine Eingangslogikfunktionalität wird durchgeführt, einschließlich einer Überprüfung im
Bezug auf das Spiegeln in Schritt 205.
-
Wenn
stack_cnt in Schritt 220 gleich Null ist, wird das MD-Bit
in Schritt 245 gesetzt, welches anzeigt, dass das Ende
des Stapels erreicht worden ist und das Paket zu dem Ausgabeport
gesendet worden ist.
-
In
Schritt 250 wird das M-Bit überprüft, um zu sehen, ob das Spiegeln
aktiviert ist, das EM-Bit
wird überprüft, um zu
sehen, ob der MTP passiert bzw. übergangen
worden ist, ohne dass das Paket zum MTP gesendet worden ist, und
das ED-Bit wird überprüft, um zu
sehen, ob das Paket zum MTP gesendet worden ist.
-
Wenn
in Schritt 250 das ED-Bit gesetzt ist, welches anzeigt,
dass das Paket zum MTP gesendet worden ist, endet die Verarbeitung.
Wenn jedoch ED nicht gesetzt ist, und das M-Bit gesetzt ist und das EM-Bit gesetzt
ist, welches anzeigt, dass das Spiegeln aktiviert ist, aber das
Paket nicht zum MTP gesendet worden ist, wird das Paket in Schritt 260 wieder
zurück
zum Stapel gesendet, wobei die Spiegellogik ausgeführt wird und
die Eingangslogikfunktionalität übersprungen
wird.
-
In
einem Ausführungsbeispiel
der Erfindung wird ein Stapel-Tag-Format verwendet. Die 29H zeigt ein Stapel-Tag, das aus 32 Bit gebildet
ist. Das erste Feld wird von 5 Bit zum Speichern von stack_cnt gebildet und
das 23. Bit wird als M-Bit-Spiegelanzeige bezeichnet, das 24. Bit
wird als MD-Anzeiger bezeichnet, das 25. Bit wird als EM-Anzeiger
bezeichnet und das 26. Bit wird als ED-Anzeiger bezeichnet.
-
Aus
der obigen Logik, die in Bezug auf 29G beschrieben
ist, und dem Stapel-Tag-Format,
wie es in 29H gezeigt ist, wird deutlich,
dass das M-Bit gesetzt ist, wenn ein Port gespiegelt ist. Wenn der
MTP gefunden wird und das M-Bit nicht gesetzt ist, wird das EM-Bit
gesetzt, welches anzeigt, dass der MTP passiert worden ist, ohne
dass das Paket zum MTP gesendet worden ist. Wenn der MTP gefunden
wird und das M-Bit gesetzt ist, wird das Paket zum MTP gesendet
und das ED-Bit wird gesetzt, welches anzeigt, dass das Paket zum
MTP gesendet worden ist. Wenn das MD-Bit gesetzt ist, welches das
Ende des Stapels anzeigt und dass das Paket zum Ausgabeport gesendet
worden ist, wird das M-Bit gesetzt, welches die Aktivierung des
Spiegelns anzeigt, wird das EM-Bit gesetzt, welches anzeigt, dass
der MTP passiert worden ist, ohne dass das Paket zum MTP gesendet
worden ist, und wird EP nicht gesetzt, welches anzeigt, dass das
Paket nicht zum MTP gesendet worden ist, und wird das Paket über den
Stapel zurückgesendet,
um sicherzustellen, dass das Paket zum MTP gesendet wird.
-
Vollduplex
-
Es
wird nun auf die 30 Bezug genommen. Diese Figur
wird verwendet, um den Paketfluss zwischen den Switches bei den
duplex-konfigurierten Stapelanordnungen zu zeigen, die in den 22 und 23 dargestellt
sind. Wie zuvor erörtert,
stellen die Konfigurationen von 22 und 23 beide eine Vollduplexkommunikation bereit.
Die Konfiguration von 23 jedoch verwendet die verbleibenden
Gigabit-Uplinks, um ein Maß an
Redundanz und Fehlertoleranz zu schaffen. In der Praxis jedoch kann
die Konfiguration von 22 praktischer sein. In auf
geeignete Weise funktionierenden duplex-konfigurierten Stapeln jedoch
sind der Paketfluss und das Adresslernen im Wesentlichen für beide
Konfigurationen gleich.
-
Der
Duplexstapel 2100 beinhaltet z. B. 4 Switches, wie beispielsweise
SOC 10(1) ... SOC 10(4). An Stelle von 4 undirektionalen
Zwischenstapelverbindungen jedoch ermöglichen bidirektionale Verbindungen 2101, 2102 und 2103 eine
bidirektionale Kommunikation zwischen allen der Switches. Diese
Konfiguration erfordert, dass jeder der Ports, die den Zwischenstapelverbindungen
zugeordnet sind, sich auf dem gleichen VLAN befinden. Wenn eine
Mehrzahl von VLANs von dem Stapel unterstützt wird, dann müssen alle
Ports Teilnehmer aller VLANs sein. Die Duplexkonfiguration ermöglicht ist
dem SOC 10(2) beispielsweise, mit dem SOC 10(1) mit
einem Sprung nach oben zu kommunizieren, anstelle von 3 Sprüngen nach
unten, welches in einer unidirektionalen Simplexkonfiguration erforderlich
gewesen wäre.
Der SOC 10(4) jedoch benötigt 3 Sprünge nach oben, um mit dem SOC 10(1) zu
kommunizieren, da es nicht direkte Verbindungen in beide Richtungen gibt.
Es soll angemerkt werden, dass aufwärts und abwärts hier als relative Begriff
mit Bezug auf die Zeichnungen verwendet werden, wobei es jedoch
in der Praxis nur logische Sprünge
anstelle von physikalischen Sprüngen
gibt. Aufgrund der multidirektionalen Fähigkeiten und weil die Port-Bitmaps
verhindern, dass ausgehende Pakete an den gleichen Ports ausgesendet
werden, an denen sie eingehen, wird der Stapelzählerteil des Zwischenstapel-Tags nicht verwendet.
-
Die
folgende Erörterung
richtet sich auf den Paketfluss in einer Situation, in der die Station
A, die sich an Port 1 von SOC 10(1) in 30 befindet, ein Paket an Station B senden will,
die sich an Port 1 von SOC 10(3) befindet. Das
Paket gelangt in den Eingang 14 von SOC 10(1);
ein Zwischenstapel-Tag wird in das Paket eingefügt. Da alle Tabellen zu Beginn
leer sind, wird ein Quell-Look-Up-Fehler auftreten und die Adresse
von Station A wird in der geeigneten ARL-Tabelle von SOC 10(1) gelernt.
Ein Ziel-Look-Up-Fehler wird auftreten und das Paket wird an alle
Ports des zugeordneten VLAN gesendet. In der Konfiguration von 30 wird daher das Paket auf der Zwischenstapelverbindung 2101 von
Port 25 von SOC 10(1) an Port 26 von
SOC 10(2) gesendet. Ein Quell-Look-Up-Fehler tritt auf,
und die Quell-Adresse
wird auf SOC 10(2) gelernt. Ein Ziel-Look-Up-Fehler tritt
auf und das Paket wird an alle Ports des zugeordneten VLAN gesendet.
Die Switches sind derart konfiguriert, dass es die Port-Bitmaps
für DLFs
dem Paket nicht erlauben, auf dem gleichen Port ausgesendet zu werden,
auf dem sie eingegangen sind. Dies würde Port 25 von Switch
SOC 10(2) beinhalten, aber nicht Port 26 von SOC 10(2).
Das Paket wird an Port 26 von Switch SOC 10(3) von
Port 25 von SOC 10(2) gesendet. Ein Quell-Look-Up-Fehler
wird auftreten, und die Adresse für Station A wird in der ARL-Tabelle
von SOC 10(3) gelernt. Ein Ziel-Look-Up-Fehler wird ebenso auftreten und das
Paket wird an alle Ports mit Ausnahme von Port 26 gesendet.
Daher wird Station B das Paket empfangen, sowie es SOC 10(4) tun
wird. In SOC 10(4) wird die Adresse für Station A gelernt, ein Ziel-Look-Up-Fehler
wird auftreten und das Paket wird an alle Ports mit Ausnahme von
Port 26 gesendet. Da SOC 10(4) keine direkte Verbindung
zu SOC 10(1) besitzt, gibt es keine Auflage in Bezug auf
die Schleifenbildung durch den Stapel hindurch und es besteht keine Notwendigkeit
für ein
Stapelzählerfeld,
das dem IS-Tag zu verwenden ist.
-
In
der umgekehrten Situation, wenn Station B ein Paket an Station A
in der Konfiguration von 30 senden
will, geschieht das Adresslernen in einer Weise, die ähnlich zu
der zuvor erörterten
ist. Da die Adresse für
Station B noch nicht gelernt worden ist, tritt ein SLF auf und die
Station B wird auf SOC 10(3) gelernt. Ein Ziel-Look-Up
führt jedoch
zu einem Treffer und das Paket wird zu Port 26 vermittelt.
Das Paket gelangt in Port 25 von SOC 10(2), ein
Quell-Look-Up-Fehler
tritt auf, die Adresse von Station B wird gelernt und ein Ziel-Look-Up
wird durchgeführt.
Der Ziel-Look-Up führt
zu einem Treffer, das Paket wird zu Port 26 von SOC 10(2) vermittelt
und an den Port 25 von SOC 10(1). Ein Quell-Look-Up-Fehler
tritt auf, die Adresse für
Station B wird auf SOC 10(1) gelernt, ein Ziel-Look-Up
ist ein Treffer und das Paket wird an Port 1 von SOC 10(1) vermittelt.
Da es keinen Ziel-Look-Up-Fehler gab, wenn das Paket in Switch SOC 10(3) gelangt
ist, wird das Paket nie zu SOC 10(4) gesendet. Bei Kommunikationen
zwischen den Stationen A und B ist es daher möglich, dass die Adresse für Station
B nie auf Switch SOC 10(4) gelernt wird. In einer Situation,
in der die Station B ein Paket an eine Station auf SOC 10(4) sendet,
würde kein
Quell-Look-Up-Fehler auftreten (unter der Annahme, dass die Station
B bereits auf SOC 10(3) gelernt worden ist), aber ein Ziel-Look-Up-Fehler
würde auftreten.
Das Paket würde
dann an Port 26 von SOC 10(4) an Port 25 von
SOC 10(3) gesendet werden, und ebenso an Port 25 von
SOC 10(2) an Port 26 von SOC 10(3). Dort
wird es keinen Quell-Look-Up geben, aber es wird einen Ziel-Look-Up-Fehler in SOC 10(4) geben,
was dazu führt,
dass das Paket an alle Ports des VLAN mit Ausnahme von Port 26 gesendet
wird. Die Adressen können
daher bei Modulen gelernt werden, die nicht zum Empfangen des Pakets
gedacht sind. Der Adressalterungsprozeß jedoch wird funktionieren,
um Adressen zu löschen,
die in bestimmten Tabellen nicht benutzt werden. Der Tabellensynchronisierungsvorgang
wird sicherstellen, dass die ARL-Tabellen innerhalb jedes SOC 10 synchronisiert
werden.
-
Vollduplex-Trunking
-
Trunking
in der Vollduplexkonfiguration wird auf eine Weise behandelt, die ähnlich zu
der Simplexkonfiguration ist. Die Informationen T-Bit, TGID und
RTAG werden gelernt und in den Tabellen gespeichert, um den Zugang
zu dem Trunkport zu steuern.
-
31 zeigt eine Konfiguration, in der Station A
sich an Port 1 von SOC 10(1) befindet und Station
B sich an einem Trunkport von SOC 10(3) befindet. In dieser
gestapelten Konfiguration, auf die als Stapel 2200 Bezug
genommen wird, befinden sich alle Teilnehmer der Trunkgruppe auf
SOC 10(3).
-
In
diesem Beispiel wird die TGID für
den Trunkport 2 sein, der die Station B mit SOC 10(3) verbindet, und
RTAG wird ebenso 2 sein. In einem Beispiel, in dem die Station A
ein Paket an Station B senden will, wird das Paket bei Port 1 von
SOC 10(1) empfangen. Ein Quell-Look-Up-Fehler tritt auf und die Quelladresse
des Pakets von Port 1 wird in der ARL-Tabelle für SOC 10(1) gelernt.
Die ARL-Tabelle wird daher die Portnummer, die MAC-Adresse, die
VLAN-ID, die Information T-Bit, die Information TGID und die Information
RTAG beinhalten. Die Portnummer ist 1, die MAC-Adresse
ist A, die VLAN-ID ist 1, das T-Bit ist nicht gesetzt und die Felder
TGID und RTAG sind mit "unbeachtlich" belegt. Ein Ziel-Look-Up
führt zu
einem Ziel-Look-Up-Fehler und das Paket wird an alle Ports auf dem
zugeordneten VLAN mit Ausnahme natürlich von Port 1,
gesendet, da dieses der Port ist, an dem das Paket eingegangen ist.
Das Paket wird daher wenigstens auf Port 25 vom SOC 10(1) ausgesendet.
Das Paket wird an Port 26 von SOC 10(2) empfangen.
Ein Quell-Look-Up-Fehler führt
zu einem ARL-Tabellen-Lernen der Adressinformation. So wie bei anderen
Look-Ups würde
die Quelladresse des Pakets, das von SOC 10(1) an SOC 10(2) geht,
anzeigen, dass der Quellport Port 26 ist. Ein DLF tritt
auf und das Paket wird an alle Ports auf dem zugeordneten VLAN mit
Ausnahme von Port 26 von SOC 10(2) gesendet. Das
Paket wird am Port 26 vom SOC 10(3) empfangen,
ein Quell-Look-Up wird durchgeführt,
ein Quell-Look-Up-Fehler
tritt auf und die Quelladresse des Pakets wird gelernt, dass bei
Port 26 eingegangen ist. Ein Ziel-Look-Up führt zu einem
Ziel-Look-Up-Fehler im SOC 10(3). Das Paket wird an alle
Ports des zugeordneten VLAN des SOC 10(3) mit Ausnahme
von Port 26 gesendet. Ein DLF auf dem Trunkport wird jedoch
nur auf einem bestimmten Port gesendet, wie er in der 802.1Q-Tabelle
und der PVLAN-Tabelle für
SOC 10(3) festgelegt ist. Die 802.1Q-Tabelle ist die getaggte
VLAN-Tabelle und enthält
die Felder VLAN-ID, VLAN-Port-Bitmap
und das nicht getaggte Bitmap. Das Ziel B erhält dann das Paket über den
Trunkport und SOC 10(4) erhält ebenso das Paket auf Port 26.
Im SOC 10(4) tritt ein Quell-Look-Up-Fehler auf und die Quelladresse des
Pakets wird gelernt. Auf einen Ziel-Look-Up hin tritt ein DLF auf
und das Paket wird an alle Ports des VLAN auf Swich SOC 10(4) gesendet,
mit Ausnahme natürlich
von Port 26.
-
In
der umgekehrten Lage jedoch werden die Werte T-Bit, TGID und RTAG
kritisch. Wenn die Station B ein Paket an Station A senden will,
geht das Paket auf den Trunkport auf SOC 10(3) ein. Ein
Quell-Look-Up führt
zu einem Quell-Look-Up-Fehler, da die Adresse für B noch nicht gelernt worden
ist. Das T-Bit wird gesetzt, da der Quellport sich in einer Trunkgruppe
befindet und die Information TGID und RTAG wird der PVLAN-Tabelle
entnommen. Die ARL-Tabelle für
SOC 10(3) enthält
daher die Information für
Station A und enthält
nun ebenso die Adressinformation für Station B. In dem Eintrag
für Station
B ist die Portnummer als 1 angegeben, die VLAN-ID ist 1,
das T-Bit ist gesetzt und die Informationen TGID und RTAG sind jeweils
zu 2 gesetzt. Der SOC 10(3) führt dann einen Ziel-Look-Up
durch, welches zu einem ARL-Treffer führt, da die Station A bereits gelernt
worden ist. Das Paket wird an Port 26 von SOC 10(3) vermittelt.
Das Paket wird nicht an die gleichen Teilnehmer der Trunkgruppe
gesendet, aus der das Paket stammt. In dem Zwischenstapel-Tag wird das Bit SRC_T
gesetzt, TGID wird zu 2 gesetzt und RTAG wird zu 2 gesetzt. Das Paket
wird an Port 25 von SOC 10(2) empfangen, wo der
Eingang einen Quell-Look-Up durchführt. Ein Quell-Look-Up-Fehler
tritt auf und die Quelladresse des Pakets von Port 25 wird
gelernt. Das Bit SRC_T, die Information TGID und die Information
RTAG werden in diesem Fall dem Zwischenstapel-Tag entnommen. Auf
den Ziel-Look-Up hin tritt ein ARL-Treffer auf und das Paket wird an Port 26 von
SOC 10(2) vermittelt und wird dann an Port 25 vom
SOC 10(1) empfangen. Ein Quell-Look-Up führt zu einem
Quell-Look-Up-Fehler und die Adresse des eingehenden Pakets wird
gelernt. Der Ziel-Look-Up ist ein Treffer und das Paket wird an
Port 1 vermittelt, wo es dann von der Station A empfangen
wird.
-
Nach
diesem Lernen und dem Austauschvorgang zwischen Station A und Station
B für die
Konfiguration von 30 werden die ARL-Tabellen
für SOC 10(1), 10(2), 10(3) und 10(4) so
aussehen, wie sie in den 32A, 32B, 32C bzw. 32D dargestellt sind. Man sieht, dass die Adresse
für die
Station B nicht in SOC 10(4) gelernt wird und daher sich
nicht in der Tabelle von 32D befindet,
da das Paket von Station B an keinen Port von SOC 10(4) gesendet
worden ist.
-
33 zeigt eine Konfiguration, in der die Teilnehmer
von Trunkgruppen sich in verschiedenen Modulen befinden. In dieser
Konfiguration sind das Adresslernen und der Paketfluss ähnlich zu
denen, die mit Bezug auf 31 erörtert worden
sind. In dieser Konfiguration jedoch muss die MAC-Adresse für Station
A ebenso als Trunkport gelernt werden. In einer Situation, in der
TGID gleich 1 und RTAG gleich 1 für die Trunkgruppe ist, die
Station A in SOC 10(1) verbindet, und in der TGID und RTAG
gleich 2 für
die Trunkgruppe ist, die Station B in SOC 10(3) verbindet,
würde das
Adresslernen für
Station A, die ein Paket an Station B sendet, und Station B, die
ein Paket an Station A sendet, zu den ARL-Tabellen für SOC 10(1), 10(2), 10(3) und 10(4) führen, die die
in den 34A, 34B, 34C bzw. 34D dargestellten
Informationen enthalten. In der Situation, in der Station A auf
SOC 10(1) ein Paket an Station B auf SOC 10(2) sendet,
tritt folgender Fluss ein, nachdem die Adressen gelernt worden sind,
wie es in den 34A–34D gezeigt
ist. Das eingehende Paket wird von Station A auf dem Trunkport empfangen,
der in diesem Beispiel zu 1 angenommen wird. Der Quell-Look-Up zeigt
einen Treffer an und das T-Bit wird gesetzt. In dem Zwischenstapel-Tag
wird das Bit SRC_T gesetzt, TGID und RTAG für den Quell-Trunk-Port von der ARL-Tabelle werden
in die Felder SRC_TGID und SRC_RTAG in den IS-Tag kopiert. Der Ziel-Look-Up zeigt
einen Treffer an und das T_Bit wird für die Zieladresse gesetzt.
Das Bit DST_T wird gesetzt und die Information TGID und RTAG für den Zieltrunkport
wird von der ARL-Tabelle zu den Feldern DST_TGID und DST_RTAG kopiert.
-
Die
Portauswahl wird gemäß DST_RTAG
durchgeführt.
In diesem Beispiel wird das Paket zu SOC 10(2) gesendet.
Wenn kein Port ausgewählt
ist, dann wird das Paket an SOC 10(3) an Port 25 von
SOC 10(2) gesendet. Das Paket wird dann an Port 26 von
SOC 10(3) empfangen. Der Ziel-Look-Up in der ARL-Tabelle ist
ein Treffer und die Portauswahl wird gemäß dem Feld DST RTAG durchgeführt. Noch
einmal ist SOC 10(4) nicht beteiligt, da kein DLF aufgetreten
ist.
-
Es
wird verstanden, dass so wie es oben mit Bezug auf den Stand-Alone-SOC 10 erörtert worden
ist, die Trunkgruppentabellen auf geeignete Weise in allen Modulen
initialisiert werden müssen,
um ein geeignetes Trunking durch den Stapel hindurch zu ermöglichen.
Die Initialisierung wird zu der Zeit durchgeführt, zu der der Stapel konfiguriert
wird, sodass das Paket auf dem richtigen Trunkport ausgeht. Wenn
ein Trunk-Mitglied sich nicht in einem Switch-Modul befindet, geht
das Paket auf der passenden Zwischenstapelverbindung aus.
-
Damit
die geeignete Behandlung von Trunkgruppen geschieht, muss die Trunkgruppentabelle
in jedem SOC 10 passend initialisiert werden, um ein passendes
Trunking quer durch den Stapel zu ermöglichen. Die 36 zeigt ein Beispiel der Trunkgruppentabelleninitialisierungen
für die
Trunkkonfiguration, die in 31 dargestellt
ist, in der die Mitglieder der Trunkgruppe sich auf dem gleichen
Modul befinden. 37 zeigt ein Beispiel von Trunkgruppentabelleninitialisierungen
für die
Trunkgruppenkonfiguration von 33,
in der Teilnehmer der Trunkgruppe sich in verschiedenen Switches
befinden. 36 zeigt nur die Initialisierung für eine Situation,
in der TGID gleich 2 ist. Für
Situationen, in denen TGID gleich 1 ist, würde die Trunkportauswahl den
Stapelverbindungsport in die richtige Richtung anzeigen. 37 jedoch zeigt die Trunkgruppentabelleninitialisierungen
für einen
Wert von TGID von 1 und 2. Wenn ein Trunkmitglied sich nicht auf
einem bestimmten Switch-Modul befindet, wird das Paket auf dem Stapelverbindungsport
ausgesendet.
-
EBENE-3-Vermittlung
-
Die
obige Erörterung
im Bezug auf den Paketfluss richtet sich nur auf Situationen, in
denen das Ziel und die Quelle sich innerhalb des gleichen VLAN befinden.
Für Situationen,
in denen VLAN-Grenzen überquert werden
müssen,
ist eine Ebene-3-Vermittlung implementiert. Mit Bezug auf 33 wird nun die Ebene-3-Vermittlung erörtert. In
diesem Beispiel wird angenommen, dass Station A, die sich an Port 1 von
SOC 10(1) befindet, in VLAN-V1 mit einer VLAN-ID von 1
liegt, und Station B, die sich an Port 1 von SOC 10(3) befindet,
in einem anderen VLAN-V3 mit einer VLAN-ID von 3 liegt. Da mehrere
VLANs beteiligt sind, müssen
die Ports, die die Zwischenstapelverbindungen verbinden, Teilnehmer
von beiden VLANs sein. Daher besitzen die Ports 25 und 26 von
SOC 10(1), 10(2), 10(3) und 10(4) VLAN-Ids
von 1 und 3, wodurch sie Teilnehmer von VLAN-V1 und VLAN-V3 sind.
Die Ebene-3-Vermittlung beinhaltet das Überqueren der VLAN-Grenzen
innerhalb des Moduls, gefolgt von einer Überbrückung über das Modul. Die Ebene-3-Schnittstellen
sind nicht vom Prinzip her einem physikalischen Port zugeordnet,
wie es zuvor erörtert
worden ist, sondern sind stattdessen den VLANs zugeordnet. Wenn
Station A ein Paket an Station B in der in 35 dargestellten
Konfiguration senden will, würde
das Paket an Port 1 von SOC 10(1) empfangen werden
und an die Router-Schnittstelle R1 mit der IP-Zieladresse von B
gerichtet werden. In diesem Beispiel wird als Router R1 die Router-Schnittstelle
zwischen den VLAN-Grenzen für
VLAN-V1 und VLAN-V3 bezeichnet. Da der SOC 10(1) so konfiguriert
ist, dass sich VLAN-V3 an Port 25 befindet, wird das Paket über Port 25 an
VLAN-V3 geroutet. Die nächste Sprung-MAC-Adresse
wird in das Zieladressfeld der MAC-Adresse eingefügt. Das Paket wird dann an
Port 26 des SOC 10(2) in einem Ebene-2-Vermittlungsvorgang
vermittelt. Das Paket wird dann an Port 25 von SOC 10(2) vermittelt,
wo es an Port 26 von SOC 10(3) weitergereicht
wird. Der SOC 10(3) vermittelt das Paket an Port 1,
welches die der Station B zugeordnete Portnummer ist. Detaillierter
ausgedrückt
wird bei der Ebene-3-Vermittlung, wenn ein Paket von Station A beim
Eingangssubmodul 14 des SOC 10(1) empfangen wird, die
ARL-Tabelle mit der Ziel-MAC-Adresse durchsucht. Wenn die Ziel-MAC-Adresse
einer Ebene-3-Schnittstelle zugeordnet ist, welches in diesem Fall
eine VLAN-Grenze sein würde,
wird der Eingang überprüft, um zu
sehen, ob das Paket ein IP-Paket ist. Wenn es kein IP-Paket ist,
wird das Paket an die passende CPU 52 zum Routen gesendet.
Auf ähnliche
Weise wird das Paket ebenso an die CPU 52 zum Routen gesendet,
wenn das Paket Optionsfelder besitzt. Der Eingang überprüft ebenso,
ob das Paket ein Multicast-IP-Paket ist, auf das ebenso als Klasse-D-Paket
Bezug genommen wird. Wenn dies der Fall ist, dann wird das Paket
zur CPU zur weiteren Verarbeitung gesendet. Nachdem die IP-Prüfsumme validiert
worden ist, wird die Ebene-3-Tabelle mit der Ziel-IP-Adresse als Schlüssel durchsucht.
Wenn der Eintrag in der ARL-Tabelle gefunden wird, dann wird dieser
Eintrag die nächste
Sprung-MAC-Adresse enthalten und den Ausgangsport, an den das Paket
weitergeleitet werden muß.
In dem Fall von 35 würde das Paket an Port 25 weitergeleitet
werden müssen. Wenn
der Eintrag nicht in der Ebene-3-Tabelle
gefunden wird, dann wird eine Suche des Vorgabe-Routers durchgeführt, so
wie eine Vorgabe-IP-Router-Tabelle. Wenn der Eintrag nicht gefunden
wird, dann wird das Paket zur CPU gesendet. Durch eine AND-Verknüpfung der
Ziel-IP-Adresse mit einer Netzmaske in dem Eintrag und durch Überprüfung, ob
es eine Übereinstimmung
mit der IP-Adresse in dem Eintrag gibt, wird die Vorgabe-Router-Tabelle
durchsucht. Das Paket wird nun durch den Stapel mit dem passend
konfigurierten IS-Tag bewegt, bis es an Port 1 von SOC 10(3) vermittelt
wird. Dann wird überprüft, ob das
Paket als getaggt oder nicht getaggt ausgehen soll. In Abhängigkeit
dieser Information können
die Tag-Felder entfernt oder nicht entfernt werden. Das Zwischenstapel-Tag
jedoch wird von dem passenden Ausgang 16 entfernt, bevor
das Paket den Stapel verläßt.
-
In
den oben beschriebenen Konfigurationen der Erfindung führen die
Adress-Look-Ups, die Trunkgruppenindexierung usw. zur Erzeugung
eines Port-Bitmaps, das dem bestimmten Paket zugeordnet ist und daher
anzeigt, auf welchen Port des bestimmten SOC 10 das Paket
ausgesendet wird. Die Erzeugung des Port-Bitmaps beispielsweise
stellt sicher, dass DLFs nicht dazu führen, dass das Paket auf dem
gleichen Port ausgesendet wird, auf dem es eingegangen ist, welches
erforderlich ist, um eine Schleifenbildung über ein Netzwerk und eine Schleifenbildung über einen
Stapel zu vermeiden. Es soll ebenso angemerkt werden, dass wie zuvor
erörtert
jedes SOC 10 auf einem einzigen Halbleitersubstrat konfiguriert
sein kann, wobei alle der verschiedenen Tabellen als zweidimensionale
Arrays konfiguriert sein können
und die Module und die Steuerschaltung eine ausgewählte Konfiguration
von Transistoren zum Implementieren der erforderlichen Logik sein können.
-
Damit
die verschiedenen Parameter von jedem SOC 10 passend konfigurierbar
sind, muss jedes SOC 10 mit einem Konfigurationsregister
versehen werden, um die geeignete Portkonfiguration zu ermöglichen. Das
Konfigurationsregister beinhaltet ein Feld für verschiedene Parameter, die
der Stapelbildung zugeordnet sind. Beispielsweise muss das Konfigurationsregister
ein Modul-ID-Feld enthalten, sodass die Modul-ID für den bestimmten
Switch SOC 10 konfiguriert werden kann. Zusätzlich muss
das Konfigurationsregister ein Feld enthalten, welches programmiert
werden kann, um die Anzahl der Module in dem Stapel anzuzeigen.
Es ist erforderlich, dass die Anzahl der Module bekannt ist, sodass
das Stapelzählerfeld
in dem Zwischenstapel-Tag auf geeignete Weise zu n –1 gesetzt
werden kann. Das Konfigurationsregister muss ebenso ein Feld beinhalten,
welches anzeigt, ob der Gigabit-Port eines bestimmten GPIC 30 als
Stapelverbindung oder Uplink verwendet wird. Ein Feld simplex/duplex
ist erforderlich, sodass angezeigt werden kann, ob die Stapellösung eine Simplexkonfiguration
gemäß 21 oder eine Duplexkonfiguration gemäß den 22 und 23 ist.
Ein anderes Feld in dem Konfigurationsregister sollte ein Stapelmodulfeld
sein, sodass passend angezeigt werden kann, ob das bestimmte SOC 10 in
einem Stapel oder in einer Stand-Alone-Konfiguration verwendet wird.
Die Switches SOC 10, die in einer Stand-Alone-Konfiguration
verwendet werden, fügen
selbstverständlich
kein IS-Tag in eingehende
Pakete ein. Das Konfigurationsregister ist auf geeignete Weise zur
Konfiguration durch die CPU 52 eingerichtet.
-
Auch
wenn es nicht mit Bezug auf die Stapelkonfigurationen dargestellt
ist, ist zusätzlich
jedes SOC 10 so konfiguriert, dass es on-chip einen CBP 50 und
ebenso off-chip einen GBP 60 wie zuvor erwähnt besitzt. Der
Zugang entweder zum Speicher on-Chip oder zum Speicher off-Chip
wird in jedem Chip auf die gleiche Weise wie die Kommunikation über den
CPS-Kanal 80 durchgeführt.
-
Auch
wenn die Erfindung auf der Grundlage dieser bevorzugten Ausführungsbeispiele
beschrieben worden ist, ist es für
Fachleute auf diesem Gebiet offensichtlich, dass bestimmte Veränderungen,
Abwandlungen und alternative Konstruktionen offensichtlich sind.
Beispielsweise wurden die bestimmten Konfigurationen des Paketflusses
mit Bezug auf eine Switch-Konfiguration, wie beispielsweise die
vom SOC 10, beschrieben. Es soll jedoch angemerkt werden,
dass andere Switch-Konfigurationen verwendet werden können, um
den Vorteil der Erfindung zu erzielen.