-
HINTERGRUND DER ERFINDUNG:
-
Gebiet der Erfindung
-
Die
Erfindung betrifft ein Verfahren und eine Vorrichtung für das Hochleistungs-Schalten in Lokalbereichs-Kommunikationsnetzwerken
wie Token Ring-, ATM-, Ethernet-, Fast Ethernet-, und Gigabit Ethernet-Umgebungen.
-
Beschreibung des einschlägigen Standes
der Technik:
-
Mit
der steigenden Computerleistung sind in den vergangenen Jahren auch
die Anforderungen an Computernetze wesentlich gestiegen; schnellere Computerprozessoren
und höhere
Speicherkapazitäten
erfordern Netzwerke mit hohen Bandbreitenfähigkeiten, um den Hochgeschwindigkeits-Transfer von
bedeutenden Datenmengen zu ermöglichen.
Die bekannte Ethernet-Technologie, die auf einer Vielzahl von IEEE
Ethernetstandards basiert, ist ein Beispiel einer Computernetzwerk-Technologie,
die so modifiziert und verbessert werden konnte, dass sie eine brauchbare
Computertechnologie geblieben ist. Eine vollständigere Diskussion von Netzwerksystemen
des Standes der Technik findet sich beispielsweise in SWITCHED AND
FAST ETHERNET, von Breyer und Riley (Ziff-Davis, 1996) und in zahlreichen IEEE-Veröffentlichungen,
die sich mit IEEE 802-Standards befassen. Auf der Grundlage des Open
Systems Interconnect (OSI) 7-Schicht-Referenzmodells sind die Netzwerkfähigkeiten
durch die Entwicklung von Repeatern, Brücken, Routern, und neuerdings
Schaltern ("Switches"), die mit verschiedenen
Typen von Kommunikationsmedien arbeiten, gestiegen. Thinwire, Thickwire,
Twisted Pair und Optical Fiber sind Beispiele von Medien, die für Computernetzwerke
verwendet wurden. Switches, die sich auf Computervernetzung und
auf Ethernet beziehen, sind auf Hardware basierende Vorrichtungen,
die den Fluss von Datenpaketen oder Zellen auf der Grundlage von
Zieladressinformationen steuern, die in jedem Paket vorliegen. Ein
ordnungsgemäß gestalteter
und implementierter Schalter sollte ein Paket empfangen und das
Paket mit sogenannter Wirespeed oder Linespeed, die die maximale
Geschwindigkeit des jeweiligen Netzwerks darstellt, an einen entsprechenden Ausgangsport
schalten können.
Die grundlegende Wirespeed bei Ethernet beträgt bis zu 10 Megabit pro Sekunde,
bei Fast Ethernet bis zu 100 Megabit pro Sekunde, und Gigabit Ethernet
kann Daten mit einer Geschwindigkeit von bis zu 1000 Megabit pro
Sekunde über
ein Netzwerk übertragen.
Das neueste Ethernet wird als 10 Gigabit Ethernet bezeichnet und
kann Daten mit einer Geschwindigkeit von bis zu 10.000 Megabit pro
Sekunde über
ein Netzwerk übertragen. Mit
der Zunahme der Geschwindigkeit sind auch die Einschränkungen
und Anforderungen für
das Design hinsichtlich des geeigneten Designs und der Protokollregeln
sowie hinsichtlich der Bereitstellung einer kostengünstigen,
kommerziell brauchbaren Lösung immer
komplexer geworden.
-
Bezug
nehmend auf das vorstehend erläuterte
OSI 7-Schicht-Referenzmodell enthalten die höheren Schichten typischerweise
mehr Informationen. Es gibt unterschiedliche Arten von Produkten
zur Durchführung
von Switching Funktionen auf unterschiedlichen Ebenen des OSI-Modells.
Hubs oder Repeater arbeiten in Schicht 1 und kopieren und
senden ("broadcast") ankommende Daten
im Wesentlichen zu einer Mehrzahl von "Speichen" des Hubs. Auf Switching bezogene Vorrichtungen
von Schicht 2 werden typischerweise als Multiport-Brücken bezeichnet
und sind in der Lage, zwei separate Netzwerke zu überbrücken. Brücken können eine
Tabelle von Weiterleitungsregeln darauf basierend aufbauen, auf
welchen MAC(Media Access Controller)-Adressen Ports der Brücke vorhanden
sind, und geben Pakete weiter, die für eine auf einer gegenüberliegenden
Seite der Brücke
gelegene Adresse bestimmt sind. Brücken verwenden typischerweise
einen als "Spanning
Tree" bekannten
Algorithmus, um potenzielle Datenschleifen zu eliminieren; eine
Datenschleife ist eine Situation, in der ein Paket auf der Suche nach
einer bestimmten Adresse endlos eine Schleife in einem Netzwerk
durchläuft.
Der Spanning Tree-Algorithmus definiert ein Protokoll zum Vermeiden
von Datenschleifen. Schalter der Schicht 3, die zuweilen als
Router bezeichnet werden, können
Pakete basierend auf der Ziel-Netzadresse weiterleiten. Schalter der
Schicht 3 sind in der Lage, Adressen zu lernen und Tabellen
davon zu führen,
die Port-Abbildungen entsprechen. Die Verarbeitungsgeschwindigkeit
für Schalter
der Schicht 3 kann durch die Verwendung von spezialisierter,
hochleistungsfähiger
Hardware und Offloaden der Host-CPU verbessert werden, so dass Befehlsentscheidungen
die Weiterleitung von Paketen nicht verzögern.
-
Die
EP-A-0 961 443 betrifft einen Schalter gemäß dem Oberbegriff von Anspruch
1.
-
Es
ist Aufgabe der vorliegenden Erfindung, eine hohe Fluidität für paketvermittelte
Kommunikationsnetzwerke zur Verfügung
zu stellen.
-
Erfindungsgemäß wird diese
Aufgabe durch den Schalter nach Anspruch 1 und das Verfahren nach
Anspruch 5 gelöst.
Vorteilhafte Ausführungsformen
der Erfindung sind in den Unteransprüchen definiert.
-
Die
vorliegende Erfindung ist in einer Ausführungsform auf einen Schalter
gerichtet, der so konfiguriert ist, dass er Pakete von der Übertragung
durch designierte Ports abblockt. Der Schalter kann einen Port Bitmap
Generator aufweisen, der so konfiguriert ist, dass eine Port Bitmap
erhalten wird, und eine Tabelle, die so konfiguriert ist, dass eine
Blockmaske gespeichert wird, die angibt, an welchen Port das Paket
nicht übertragen
werden soll. Eine Blockmasken-Nachschlageeinrichtung kann so konfiguriert sein,
dass sie die Blockmaske für
das Paket aus der Tabelle bestimmt, und ein Sendeport Bitmap Generator
kann so konfiguriert sein, dass er unter Verwendung der Port Bitmap
und der Blockmaske bestimmt, an welche Ports das Paket übertragen
werden soll.
-
Bei
einer anderen Ausführungsform
der Erfindung kann der Schalter eine Port Bitmap Erzeugungseinrichtung
zum Erhalten einer Port Bitmap aufweisen, sowie eine Tabellenspeichereinrichtung zum
Speichern einer Blockmaske, die angibt, an welchen Port das Paket
nicht übertragen
werden soll. Der Schalter kann auch eine Blockmasken-Nachschlageeinrichtung
zum Ermitteln der Blockmaske für das
Paket aus der Tabelle aufweisen, sowie eine Sendeport Bitmap Erzeugungseinrichtung
zum Ermitteln, unter Verwendung der Port Bitmap und der Blockmaske,
an welche Ports das Paket übertragen werden
soll.
-
Bei
einer weiteren Ausführungsform
ist die Erfindung ein Verfahren zum Verhindern, dass ein Paket an
einen Port gesendet wird. Das Verfahren kann die folgenden Schritte
aufweisen: Empfangen eines Paketes in einem Port, und Bestimmen
einer Port Bitmap, die angibt, auf welchen Ports das Paket gesendet
werden soll. Daraufhin wird eine Blockmaske ermittelt, die angibt,
auf welchen Ports das Paket nicht gesendet werden soll, und die
Ports, auf denen das Paket nicht gesendet werden soll, werden unter Verwendung
der Port Bitmap und der Blockmaske bestimmt.
-
KURZBESCHREIBUNG DER ZEICHNUNG:
-
Ein
besseres Verständnis
der Aufgaben und Merkmale der Erfindung ergibt sich unter Bezugnahme
auf die folgende Beschreibung und die beigefügte Zeichnung.
-
Es
zeigt:
-
1A ein
Blockdiagramm von mehreren Schaltern, die miteinander verbunden
sind, gemäß einer
Ausführungsform
der Erfindung;
-
1B ein
Blockdiagramm eines Schalters mit einer Port-Blockierfähigkeit
gemäß einer
Ausführungsform
der Erfindung.
-
2 eine
Darstellung eines Pakets auf einem Stack Link gemäß der Erfindung;
-
3 eine
Darstellung eines Stack Tags gemäß der Erfindung;
-
4 eine
Darstellung einer PTABLE gemäß der Erfindung;
-
5A und 5B Indices
für die
PTABLE gemäß der Erfindung;
und
-
6 ein
Flussdiagramm der Schritte, die gemäß einer Ausführungsform
der Erfindung beim Blockieren von Ports verwendet werden können.
-
DETAILLIERTE BESCHREIBUNG
DER BEVORZUGTEN AUSFÜHRUNGSFORMEN:
-
1A ist
eine Darstellung einer Ausführungsform
der Erfindung, bei der ein 5-Blade-Schaltergehäuse vier
Port Blades und ein Fabric Blade aufweist. Es sind verschiedene
Konfigurationen möglich.
Jede der vier Port Blades weist Anschlüsse für einen Schalter auf, der für Ein- und
Ausgänge
verwendet wird. Wie in 1A dargestellt ist, sitzt Schalter 1 auf
einer ersten Port Blade, Schalter 2 sitzt auf einer zweiten
Port Blade, Schalter 3 sitzt auf einer dritten Port Blade,
und Schalter 4 sitzt auf einer vierten Port Blade.
-
Jede
der Port Blades kann gemäß der Darstellung
in 1A einen Mikro-Controller aufweisen. Jeder der
Mikro-Controller kann mit einem Hochgeschwindigkeitsbus verbunden
sein und kann dazu verwendet werden, die Ein- und Ausgänge zu verwalten,
die jedem der Schalter, d.h. Schalter 1, Schalter 2,
Schalter 3 und Schalter 4, zugeordnet sind.
-
Ein
fünfter
Schalter, Schalter 5, kann mit der Fabric Blade verbunden
sein. Die Fabric Blade gemäß der Darstellung
in 1A kann mit einer CPU verbunden sein. Bei diesem
Beispiel kann es nötig oder
wünschenswert
werden, Informationen wie etwa Steuerrahmen oder Steuerpakete, auch
bekannt als BPDUs, und jeden Verwaltungsverkehr an die mit der Fabric
Blade verbundene CPU zu senden. Dies kann be werkstelligt werden,
indem jeder der Schalter auf den Port Blades durch einen Stacking
Link mit der Fabric Blade verbunden wird und eine Port-Steuerfunktion
eines Fast Filtering Processors (FFP) anwendet. Bei der in 1A veranschaulichten
Ausführungsform
ist jeder der Schalter auf den Port Blades, Schalter 1, 2, 3 und 4,
mit Schalter 5 auf dem Fabric Blade durch ein Gigabit Port
verbunden.
-
1B ist
ein Blockdiagramm eines Schalters mit Port-Blockierfähigkeit
gemäß einer
Ausführungsform
der Erfindung. Der Schalter weist eine Blockmaskentabelle auf. Die
Blockmaskentabelle kann Bitmaps der Ports in dem Schalter aufweisen, wobei
jedes Bit für
einen Port in dem Schalter steht. Wenn ein Bit, das einem Port entspricht,
gesetzt ist, so kann dies anzeigen, dass ein Paket an diesen Port übertragen
werden kann. Wenn das Bit nicht gesetzt ist, ist der Port also blockiert,
und es sollen keine Pakete an diesen Port übertragen werden. Somit kann die
Blockmaskentabelle dazu verwendet werden, anzugeben, an welche Ports
ein Paket gesendet bzw. nicht gesendet werden soll. Eine Blockmasken-Nachschlageeinrichtung
ist vorgesehen, so dass eine Bitmap in der Blockmaskentabelle aufgefunden werden
kann. Bei einer Ausführungsform
der Erfindung wird die Bitmap durch die Blockmasken-Nachschlageeinrichtung
in der Blockmaskentabelle auf der Grundlage davon, auf welchem Port
das Paket verschickt wurde, nachgeschlagen.
-
Jeder
Schalter kann auch einen Port Bitmap Generator aufweisen, der eine
Port Bitmap des Schalters erzeugt, um zu bestimmen, an welchen Port
bzw. welche Ports ein Paket gesendet werden soll. Eine Port Bitmap
kann beispielsweise den Bitmaps von Ports ähnlich sein, die in der Blockmaskentabelle
gespeichert sind. Jedes Bit in der Bitmap kann einem Port in dem
Schalter entsprechen. Wenn ein Bit gesetzt ist, so kann dies anzeigen,
dass das Paket an den entsprechenden Port gesendet werden soll.
Wenn das Bit nicht gesetzt ist, soll das Paket nicht an den Port
gesendet werden.
-
Um
zu bestimmen, ob ein Paket an einen bestimmten Port gesendet werden
soll, kann ein Transmit Port Generator vorgesehen werden, der Bitmaps vom
Port Bitmap Generator und von der Blockmaskentabelle durch die Blockmasken-Nachschlageeinrichtung
empfangen kann. Der Transmit Port Generator kann beispielsweise
ein logisches UND zwischen der Bitmap vom Port Bitmap Generator
und der Bitmap von der Blockmaskentabelle durchführen. Wenn das Ergebnis eine
logische Eins ist, soll das Paket an den designierten Port gesendet
werden. Andernfalls wird das Paket nicht an den Port gesendet.
-
Wenn
ein Paket beispielsweise nicht an Port 3 eines Schalters gesendet
werden soll, kann die Bitmap von der Blockmaskentabelle 11011111
sein. Die Null in dem dritten Bit zeigt an, dass das Paket nicht
an den dritten Port gesendet werden soll. Bei diesem Beispiel sei
nun angenommen, dass das Paket an die Ports 3, 4, 5 und 8 gesendet
werden soll. Die Bitmap vom Port Bitmap Generator könnte 00111001
sein. Der Transmit Port Generator kann bei einer Ausführungsform
der Erfindung dann ein logisches UND zwischen der Bitmap von der
Blockmaskentabelle (11011111) und der Bitmap vom Port Bitmap Generator
(00111001) durchführen.
Das Resultat dieses logischen UND wäre eine Bitmap 00011001, und
das Paket wird an die Ports 4, 5 und 8 gesendet. Es wird angemerkt,
dass, obgleich das Paket an Port 3 des Schalters gesendet werden
sollte, das Senden des Paketes an Port 3 abgeblockt wurde, da in
der Bitmap von der Blockmaskentabelle das dritte Bit, das Port 3
entspricht, auf Null gesetzt war.
-
2 ist
eine Darstellung einiger der Felder eines Paketes auf einem Stack
Link. Das Feld DA kann verwendet werden, um die Zieladresse anzugeben,
das Feld SA kann verwendet werden, um die Quelladresse anzugeben,
der VLAN Tag kann verwendet werden, um anzugeben, ob das Paket Teil
eines Virtual Local Area Network (VLAN) ist, und kann angeben, zu
welchem VLAN das Paket gehört,
der Stack Tag kann verwendet werden, um nützliche Informationen in Bezug
auf ein Paket zu übertragen, und
das Feld Type/Len kann verwendet werden, um die Länge und/oder
den Typ des Datenfeldes anzugeben.
-
3 ist
eine Darstellung eines Stack Tags, der bei der vorliegenden Erfindung
verwendet werden kann und nützliche
Informationen für
ein Paket enthält.
Bei einer Ausführungsform
der Erfindung kann der Stack Tag Informationen enthalten, die für Link Aggregation
oder Trunking, Mirroring und/oder Port Blocking relevant sind.
-
Trunking
bezieht sich darauf, dass mehrere Ports eines Schalters gebündelt werden,
um als ein einziger Schalter mit einer großen Bandbreite zu fungieren.
Wenn beispielsweise zwei 8-Port-Schalter gebündelt werden, wobei zwei der
Ports für
Bündelungszwecke
verwendet werden, werden sechs Ports an jedem Schalter als Ein/Ausgangports
verwendet, und zwei Ports an jedem Schalter werden als ein einziger
Port identifiziert, um Informationen zwischen den Schaltern zu übertragen.
Daher würden
die beiden zusammen gebündelten
Ports als ein einziger Port mit der doppelten Bandbreite arbeiten.
-
Mirroring
wird dazu verwendet, Informationen in Bezug auf die Aktivität, die an
einem Port auf einem Schalter stattfindet, an einen Mirror-to-Port (MTP)
auf einem Schalter zu übertragen.
Diese Funktion kann beim Überwachen
der Aktivität
an einem Port nützlich
sein. Beispielsweise wenn es erwünscht
ist, einen Port an einem Schalter zu überwachen, könnte eine
Spiegelung für
den Port aktiviert werden. Wenn eine Spiegelung für diesen
Port aktiviert ist, wird jede Aktivität, die an dem Port stattfindet,
an den MTP weitergeleitet und kann weiter analysiert werden.
-
Port
Blocking kann verwendet werden, um das Übertragen bestimmter Informationen
an einen Port zu blockieren. Beispielsweise wenn Studenten, die
einen Port in einer Schulnetzumgebung verwenden, keinen Zugriff
auf bestimmte Arten von schutzwürdigen
Informationen haben sollen, kann eine Portblockierung verwendet
werden, um den Transfer dieser schutzwürdigen Informationen an bestimmte Ports
zu blockieren.
-
Der
Stack Tag kann verwendet werden, um wertvolle Informationen zu übertragen,
um die oben genannte und weitere Funktionen durchzuführen. Einige
Beispiele für
die Felder des Stack Tags sind nachstehend beschrieben.
-
Das
Feld Stack_Cnt kann beispielsweise fünf Bit lang sein und gibt die
Anzahl von Stationen an, die das Paket durchlaufen kann, bevor es
gelöscht
wird. Die Anzahl von Stationen bezieht sich darauf, wie oft das
Paket von einem Schalter zu einem anderen Schalter übertragen
wird.
-
Das
Feld SRC_T ist in der Darstellung dieses Beispiels ein Bit lang.
Wenn dieses Bit gesetzt ist, dann ist der Quellport Teil der Bündelgruppe
(Trunk Group).
-
Das
Feld SRC_TGID kann drei Bit lang sein. Dieses Feld identifiziert
die Bündelgruppe,
wenn das SRC_T-Bit gesetzt ist.
-
Das
Feld SRC_RTAG kann drei Bit lang sein und identifiziert die Bündelwahl
für den
Quellbündel-Port.
-
Das
Feld DST_T kann ein Bit lang sein, und wenn dieses Bit gesetzt ist,
gibt es an, dass der Zielport Teil einer Bündelgruppe ist.
-
Das
Feld DST_TGID kann drei Bit lang sein und identifiziert die Bündelgruppe,
wenn das DST_T-Bit gesetzt ist.
-
Das
Feld DST_RTAG kann drei Bit lang sein. Dieses Feld identifiziert
das Bündelwahlkriterium, wenn
das DST_T-Bit gesetzt ist.
-
Das
Feld PFM ist zwei Bit lang und gibt den Port-Filtermodus für einen
Eintrittport an.
-
Das
Feld M kann ein Bit lang sein. Wenn dieses Bit gesetzt ist, so ist
dies ein gespiegeltes Paket.
-
Das
Feld MD kann 1 Bit lang sein. Wenn dieses Bit gesetzt ist und das
M-Bit gesetzt ist, wird das Paket nur an den Mirrored-to-Port gesendet.
Wenn dieses Bit nicht gesetzt ist und das M-Bit gesetzt ist, wird
das Paket an den Mirrored-to-Port (MTP) sowie den Zielport gesendet
(für Eintritt-Mirroring).
Wenn dieses Bit gesetzt ist und das M-Bit nicht gesetzt ist, wird
das Paket fallen gelassen, ohne gespiegelt zu werden.
-
Das
Feld EM ist ein Bit lang. Dieses Bit wird gesetzt, wenn – und nur
wenn – das
Paket von einem Modul weiter geleitet wurde, dessen MTP nicht der Stack
Link ist, ohne an den MTP weiter geleitet zu werden.
-
Das
Feld ED ist ein Bit lang. Dieses Bit wird gesetzt, wenn – und nur
wenn – das
Paket an einen MTP weiter geleitet wurde, der nicht Teil eines Bündels ist.
-
Das
Feld Stack_Modid ist fünf
Bit lang. Jedes Modul in dem Stack besitzt eine ID. Das Quellmodul setzt
seine ID in dieses Feld ein, wenn ein Paket gesendet wird. Dies
wird in der Hauptsache für
Software verwendet, um zu bestimmen, ob ein Schalter in dem Stack
außer
Betrieb ist.
-
Für einen
Fachmann auf diesem Gebiet ist es offensichtlich, dass diese Feldlängen und
die auf der Basis des Feldstatus ergriffenen Aktionen obenstehend
nur als Bei spiele beschrieben sind. Andere Längen und Aktionen sind innerhalb
des Schutzbereiches der Erfindung möglich.
-
Der
Stack Tag kann verwendet werden, um Quellport-Informationen über die
Stacking Ports zu übertragen.
Bei einer Ausführungsform
der Erfindung, wenn das Paket an einem Trunk Port eintrifft, hängt die
Eintrittlogik den Stack Tag mit dem Feld SRC_T gesetzt und das SRC_TGID
und das SRC_RTAG an. Wenn ein Paket jedoch an einem Port eintrifft,
der kein Trunk Port ist, ist SRC_T Null, und das SRC_TGID und das
SRC_RTAG werden ignoriert oder sind unbeachtliche Felder.
-
Wenn
während
des Eintritts ein Paket an einem Port eintrifft, der kein Trunk
Port ist, schreibt die Eintrittlogik den Quellport in die Felder
SRC_TGID und SRC_RTAG. Obgleich SRC_TGID und SRC_RTAG Felder mit
jeweils drei Bit sind, mit insgesamt 6 Bit-Feldern in der Kombination,
werden nur die ersten fünf
Bit benötigt.
Wenn die Fabric-CPU ein Paket mit einem Stack Tag empfängt, wobei
das SRC_T-Bit Null ist, werden die Felder SRC_TGID und SRC_RTAG
als der Quellport interpretiert, um zu bestimmen, wohin das Paket
gesendet werden soll.
-
4 ist
eine Darstellung eines Beispiels für eine PTABLE der vorliegenden
Erfindung, bei der es sich um eine Software- oder Hardwaretabelle
handeln könnte.
Die PTABLE könnte
in der Fabrik vordefiniert werden oder so eingerichtet sein, dass
sie von einem Endverbraucher konfiguriert wird. Bei einer Ausführungsform
der Erfindung stellt die PTABLE eine Per-Port-Bitmaske zur Verfügung, die
verwendet wird, um die Gruppe von Austrittports zu definieren, die
für einen
spezifischen Eintrittport blockiert sein soll. Wenn ein Paket an
einem Eintrittport empfangen wird, wird die von dem Schalter berechnete Austritt-Bitmap
mit der Bitmaske UND-verarbeitet, um zu bestimmen, auf welchen Ports
das Paket weiter geleitet werden soll. Bei einer Ausführungsform der
Erfindung wird der Quellport im Stack Tag weiter gegeben.
-
Die
Quellport-Informationen können
in dem gleichen Feld wie SRC_TGID und SRC_RTAG weiter gegeben werden.
Wenn das SRC_T-Bit im Stack Tag gesetzt ist, gibt das Feld SRC_TGID
die Quellbündelgruppen-Identifikation
an. Andernfalls geben die Felder SRC_TGID und SRC_RTAG den Quellport
an.
-
Die
PTABLE kann als eine STACKMASK-Tabelle für den Stacking Port verwendet
werden. Eine STACKMASK-Tabelle kann bei einer Ausführungsform
der Erfindung eine Per-Port-Bitmaske zur Verfügung stellen, die verwendet
wird, um die Gruppe von Austrittports zu definieren, die für einen
spezifischen Eintrittport blockiert sein soll, wenn ein Paket über den
Stacking Port gesendet wird. Diese Tabelle kann 256 Bit tief und
32 Bit breit sein. Der Index für
diese Tabelle ist Stack_modid + SRC_T + SRC_TGID/Src_Port. Die Felder
Stack_modid, SRC_T, SRC_TGID, und Src_Port können aus dem Stack Tag erhalten
werden. Der Antwortwert, PORT_BLOCK_MASK, ist eine Bitmaske, welche
die Gruppe von Austrittports angibt, an die das Paket nicht weiter
geleitet werden soll. Wenn das SRC_T-Bit gesetzt ist, ist der Index
Stack_modid + SRC_T + SRC_TGID. Wenn das SRC_T-Bit nicht gesetzt
ist, ist der Index Stac_modid + SRC_T + Src_Port. Das Blockieren
von Ports über
einen Stapel von zumindest vier Vorrichtungen kann durch eine Tabelle
zur Verfügung
gestellt werden, die 256 Bit tief ist, und kann durch Stack_Modid
+ SRC_T + SRC_TGID/Src_Port indiziert sein.
-
Der
Index der Tabelle wird gemäß der Darstellung
in 5A berechnet, wenn das SRC_T-Bit im Stack Tag
gesetzt ist. Bei diesem Beispiel werden die niedrigen 2 Bit von
Stack_Modid für
zwei Bit des Index verwendet, und SRC_T wird als ein Bit des Index
verwendet. Schließlich
werden zwei Nullen an die drei Bit SRC_TGID angehängt, um
die fünf
Bit des Index zu erhalten.
-
Der
Index der Tabelle wird gemäß der Darstellung
in 5B berechnet, wenn das SRC_T-Bit im Stack Tag
nicht gesetzt ist. Die niedrigen 2 Bit von Stack_Modid werden als
zwei Bit des Index verwendet, und SRC_T wird als ein Bit des Index
verwendet. Fünf
Bit von Src_Port werden schließlich
als fünf
Bit des Index verwendet.
-
6 ist
ein Flussdiagramm von Schritten, die bei einer Ausführungsform
der Erfindung ausgeführt
werden, um zu verhindern, dass ein Paket an einen Port gesendet
wird. Der erste Schritt 610 ist es, ein Paket im Eintritt
eines Port zu empfangen. Anfänglich,
wenn ein Paket im Eintritt eines Port empfangen wird, wird eine
Adressresolution (ARL) an dem Paket vorgenommen.
-
In
Schritt 620 kann eine ARL an dem Paket vorgenommen werden,
um eine Port Bitmap zu ermitteln, die alle Ports angibt, an die
das Paket weiter geleitet werden muss. In Schritt 630 wird
eine Blockmaske ermittelt, um anzugeben, an welche Ports das Paket
nicht weiter geleitet werden soll. Es kann beispielsweise eine Tabelle
ge mäß der Darstellung
in 4 verwendet werden, um eine PORT_BLOCK_MASK für ein Paket
zu ermitteln.
-
In
Schritt 640 kann die Port Bitmap logisch mit der PORT_BLOCK_MASK
UNDverarbeitet werden, um eine Port Bitmap zu ermitteln, die angibt,
an welche Ports das Paket nicht weiter geleitet werden soll. Diese
Port Bitmap kann ermittelt werden, bevor die Verarbeitung in die
FFP- und Minoring-Logik eintritt. Wenn das Paket etikettiert ist,
entnimmt die Logik die PORT_BLOCK_MASK für den Eintrittport und eine
VLAN-Bitmap aus einer VTABLE. Dies ermöglicht es, dass das Paket an
den Ports in der lokalen Vorrichtung abgeblockt wird. Wenn das Paket
an einem Stack Port eintrifft, durchläuft es die ARL-Logik, um die
Port Bitmap für
die gegenwärtige
Vorrichtung zu erhalten. Die PORT_BLOCK_MASK für den Stapelport wird durch
Indizieren der STACKMASK-Tabelle mit dem vom Stack Tag erhaltenen
Src_Modid + SRC_T + Src_Port erhalten. Die Port Bitmap wird mit
der Bitmaske UND-verarbeitet. Dies ermöglicht es, dass das Paket basierend
auf dem Eintritt einer anderen Vorrichtung auf der gegenwärtigen Vorrichtung
abgeblockt wird.
-
Bei
diesem Beispiel können
die folgenden Pakete unabhängig
von der PORT_BLOCK_MASK für
die CPU zur CPU gehen:
- 1) BPDUs
- 2) VLAN miss, VID = 0xfff (wenn C_DROP nicht gesetzt ist)
- 3) Eintrag in der ARL-Tabelle mit C-Bit gesetzt
- 4) L2 Stationsbewegung auf einem statischen Eintrag in der ARL-Tabelle
- 5) CML = 1 in der PTABLE
- 6) CPU-Bit in der PTABLE
-
Eine
Portblockierung hat die folgenden Auswirkungen beim Spiegelverhalten.
Wenn ein Paket beim Eintritt gespiegelt wurde und das Paket wegen einer
Portblockierung nicht an den Zielport weiter geleitet wird, wird
das Paket dennoch an den MTP gesendet. Wenn ein bekanntes, unicast-gesendetes Paket
wegen einer Portblockierung nicht an einen Austrittport weiter geleitet
wird und dieser Port beim Austritt gespiegelt wird, wird das Paket
nicht an den MTP gesendet. Wenn mehrere Austrittports gespiegelt
werden und mindestens ein Austrittport vorhanden ist, der nicht
blockiert ist, wird das Paket an den MTP gesendet.
-
Um
Stapeln zu ermöglichen,
sollte das Bit in der PORT_BLOCK_MASK, das dem Stack Port entspricht,
auf Eins gesetzt sein. Es sollten alle Ports einer Bündelgruppe
entweder blockiert oder nicht blockiert sein.
-
Der
FFP kann effektiv ein Paket steuern, dessen Übergang von einem Port zu einem
anderen Port blockiert wurde. Der Port, zu dem das Paket gesteuert
wird, sollte jedoch nicht blockiert sein. Daher sollte der FFP so
programmiert sein, dass er keinen Konflikt mit der Portblockierung
verursacht.
-
Die
obenstehend an einer Ausführungsform erörterte Konfiguration
der Erfindung ist auf einem Halbleitersubstrat wie etwa Silizium
mit geeigneten Halbleiterherstellungsverfahren ausgeführt und
basiert auf einem Schaltungs-Layout, das basierend auf den obenstehend
erörterten
Ausführungsformen
für den
Fachmann ersichtlich wäre.
Ein Fachmann auf dem Gebiet des Entwurfs und der Herstellung von Halbleitern
wäre in
der Lage, die verschiedenen Module, Schnittstellen und Tabellen,
Puffer usw. der vorliegenden Erfindung basierend auf der obenstehend erörterten
architektonischen Beschreibung auf einem einzigen Halbleitersubstrat
auszuführen.
Es läge auch
innerhalb des Schutzbereiches der Erfindung, die offen gelegten
Elemente der Erfindung als diskrete elektronische Komponenten und/oder
eine Verifizierung von Hardware- und Softwarekomponenten auszuführen, und
dadurch die Vorteile der funktionalen Aspekte der Erfindung zu nutzen,
ohne die Vorteile durch die Verwendung eines einzigen Halbleitersubstrates
zu maximieren.