DE60133352T2 - Gebundene Netzvermittlungskonfiguration - Google Patents

Gebundene Netzvermittlungskonfiguration Download PDF

Info

Publication number
DE60133352T2
DE60133352T2 DE60133352T DE60133352T DE60133352T2 DE 60133352 T2 DE60133352 T2 DE 60133352T2 DE 60133352 T DE60133352 T DE 60133352T DE 60133352 T DE60133352 T DE 60133352T DE 60133352 T2 DE60133352 T2 DE 60133352T2
Authority
DE
Germany
Prior art keywords
port
packet
soc
bit
ports
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60133352T
Other languages
English (en)
Other versions
DE60133352D1 (de
Inventor
Shrjie Fremont Tzeng
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Broadcom Inc
Original Assignee
Altima Communications Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Altima Communications Inc filed Critical Altima Communications Inc
Publication of DE60133352D1 publication Critical patent/DE60133352D1/de
Application granted granted Critical
Publication of DE60133352T2 publication Critical patent/DE60133352T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • H04L47/263Rate modification at the source after receiving feedback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/58Association of routers
    • H04L45/583Stackable routers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/15Flow control; Congestion control in relation to multipoint traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • H04L47/266Stopping or restarting the source, e.g. X-on or X-off
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/43Assembling or disassembling of packets, e.g. segmentation and reassembly [SAR]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/52Queue scheduling by attributing bandwidth to queues
    • H04L47/522Dynamic queue service slot or variable bandwidth allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/622Queue service order
    • H04L47/623Weighted service order
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/104Asynchronous transfer mode [ATM] switching fabrics
    • H04L49/105ATM switching elements
    • H04L49/108ATM switching elements using shared central buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/109Integrated on microchip, e.g. switch-on-chip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3081ATM peripheral units, e.g. policing, insertion or extraction
    • H04L49/309Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/60Software-defined switches
    • H04L49/606Hybrid ATM switches, e.g. ATM&STM, ATM&Frame Relay or ATM&IP
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5619Network Node Interface, e.g. tandem connections, transit switching
    • H04L2012/5621Virtual private network [VPN]; Private-network - network-interface (P-NNI)
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
    • H04L49/352Gigabit ethernet switching [GBPS]

Description

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

Claims (12)

  1. Netzwerkvorrichtung (10) mit einer Vielzahl von Ports (13, 15), wobei die Netzwerkvorrichtung (10) Folgendes umfasst: Adressauflösungslogikmittel (ARL-Mittel) zum Durchführen einer Adressauflösung von an Ports der Vielzahl von Ports (13, 15) empfangenen Datenpaketen (112) und zum Vermitteln von Datenpaketen (112) von einem ersten Netzwerk-Port der Vielzahl von Ports (13, 15) zu einem zweiten Netzwerk-Port der Vielzahl von Ports (13, 15); ein erstes Switch-Mittel (SOC 10(1)) mit einer ersten Gruppe von Ports, bei denen es sich um eine Untermenge der Vielzahl von Ports (13, 15) handelt und die anhand eines ersten Nummerierungsschemas nummeriert sind; ein zweites Switch-Mittel (SOC 10(2)) mit einer zweiten Gruppe von Ports, bei denen es sich um eine Untermenge der Vielzahl von Ports (13, 15) handelt und die anhand eines zweiten Nummerierungsschemas nummeriert sind, das sich von dem ersten Nummerierungsschema unterscheidet; ein mit dem ersten Switch und dem zweiten Switch gekoppeltes Prozessormittel (52) zum Steuern des ersten Switch-Mittels (SOC 10(1)), des zweiten Switch-Mittels (SOC 10(2)) und des ARL-Mittels; und wobei die Netzwerkvorrichtung (10) dadurch gekennzeichnet ist, dass ein erster Link-Port der ersten Gruppe von Ports mit einem zweiten Link-Port der zweiten Gruppe von Ports gekoppelt ist und das ARL-Mittel dazu dient, eine Adressauflösung auf der Grundlage des ersten und des zweiten Nummerierungsschemas so durchzuführen, dass, wenn der erste Netzwerk-Port sich in der ersten Gruppe von Ports befindet und der zweite Netzwerk-Port sich in der zweiten Gruppe von Ports befindet, ein an dem ersten Netzwerk-Port empfangenes Datenpaket, das für den zweiten Netzwerk-Port bestimmt ist, über den ersten und den zweiten Link-Port direkt von dem ersten Netzwerk-Port an den zweiten Netzwerk-Port weitergeleitet wird, wobei der erste und der zweite Port jeweils ein Mittel zum Einfügen von Tags umfasst, um ein Interstack-Tag in ein Paket einzufügen, wobei das Interstack-Tag Daten umfasst, die sich auf das erste Nummerierungsschema beziehen; ein Verarbeitungsmittel zum Verarbeiten des Pakets; und ein Entfernungsmittel zum Entfernen des Interstack-Tags aus dem Paket, wenn das Paket zu einem Ziel-Port vermittelt wird; wobei die Adressauflösung ferner auf dem Interstack-Tag basiert.
  2. Netzwerkvorrichtung (10) nach Anspruch 1, wobei der erste und der zweite Link-Port jeweils Folgendes umfasst: ein Mittel zum Einfügen von Tags zum Einfügen eines Interstack-Tags in ein Paket, wobei das Interstack-Tag Daten umfasst, die sich auf das erste Nummerierungsschema beziehen; ein Verarbeitungsmittel zum Verarbeiten des Pakets; und ein Entfernungsmittel (138) zum Entfernen des Interstack-Tags aus dem Paket, wenn das Paket an einen Ziel-Port vermittelt wird; wobei die Adressauflösung ferner auf dem Interstack-Tag basiert.
  3. Netzwerkvorrichtung (10) nach Anspruch 1, wobei das ARL-Mittel so konfiguriert ist, dass es eine erste MAC-Adresse erlernt, die dem ersten Netzwerk-Port entspricht und sich auf eine damit verbundene erste Port-Nummer des ersten Nummerierungsschemas bezieht, und dass es eine zweite MAC-Adresse erlernt, die dem zweiten Netzwerk-Port entspricht und sich auf eine damit verbundene Port-Nummer des zweiten Nummerierungsschemas bezieht.
  4. Netzwerkvorrichtung (10) nach Anspruch 3, wobei das ARL-Mittel so konfiguriert ist, dass es ein an dem ersten Netzwerk-Port empfangenes Datenpaket, das für einen zweiten Port bestimmt ist, auf der Grundlage der zweiten MAC-Adresse und der zweiten Port-Nummer weiterleitet.
  5. Netzwerkvorrichtung (10) nach Anspruch 1, wobei das erste Switch-Mittel (SOC 10(1)) ein erstes ARL-Speichermittel umfasst, der zweite Switch ein zweites ARL-Speichermittel umfasst und die ARL so konfiguriert ist, dass sie Port-Adressen des ersten Nummerierungsschemas in dem zweiten ARL-Speichermittel speichert und dass sie Port-Adressen des zweiten Nummerierungsschemas in dem ersten ARL-Speichermittel speichert.
  6. Netzwerkvorrichtung (10) nach Anspruch 1, wobei das erste Switch-Mittel (SOC 10(1)) ein erstes Pin-Mittel zum Bezeichnen der ersten Vielzahl von Ports (13, 15) durch das erste Nummerierungsschema aufweist und der zweite Switch ein zweites Pin-Mittel zum Bezeichnen der zweiten Vielzahl von Ports (13, 15) durch das zweite Nummerierungsschema umfasst.
  7. Netzwerkvorrichtung (10) nach Anspruch 2, wobei der erste und der zweite Link-Port jeweils ein Austritts-Manager-Mittel umfasst, welches das Mittel zum Einfügen umfasst.
  8. Netzwerkvorrichtung (10) nach Anspruch 2, wobei der erste und der zweite Link-Port jeweils ein Eintritts-Manager-Mittel umfasst, welches das Entfernungsmittel (138) umfasst.
  9. Verfahren zum Vermitteln von Datenpaketen (112) innerhalb einer Vielzahl von Switches, das die folgenden Schritte umfasst: Bereitstellen eines ersten Switches mit einer ersten Vielzahl von Ports (13, 15), der durch ein erstes Nummerierungsschema bezeichnet ist (S45-2) und der mit einem zweiten Switch mit einer zweiten Vielzahl von Ports (13, 15) gekoppelt ist, der durch ein zweites, von dem ersten Nummerierungsschema abweichendes Nummerierungsschema bezeichnet ist (S45-2), wobei der erste und der zweite Switch durch einen ersten Link-Port der ersten Vielzahl von Ports (13, 15), der mit einem zweiten Link-Port der zweiten Vielzahl von Ports (13, 15) gekoppelt ist, gekoppelt sind; Empfangen (S45-4) eines Pakets an einem ersten Netzwerk-Port der ersten Vielzahl von Ports (13, 15), dadurch gekennzeichnet, dass das Verfahren ferner die folgenden Schritte umfasst: Einfügen (S45-6) eines Interstack-Tags in das Paket, wobei das Interstack-Tag eine Quelladresse aufweist, die sich gemäß dem ersten Nummerierungsschema auf den ersten Netzwerk-Port bezieht; Weitergeben (S45-6) des Pakets über den ersten und den zweiten Link-Port an den zweiten Switch, ohne aus dem ersten und dem zweiten Link-Port eine Zieladresse eines Leitwegs des Datenpakets zu machen; Erlernen (S45-7) der Quelladresse an dem zweiten Switch; Entfernen des Interstack-Tags aus dem Paket; und Weitergeben des Pakets an einen Ziel-Port der zweiten Vielzahl von Ports auf der Grundlage des Interstack-Tags.
  10. Verfahren nach Anspruch 9, wobei der Schritt des Einfügens das Einfügen (S45-6) des Interstack-Tags umfasst, das Daten umfasst, die sich auf das erste Nummerierungsschema beziehen, wenn das Datenpaket an dem ersten Switch empfangen wird, und Einfügen eines Interstack-Tags, das Daten umfasst, die sich auf das zweite Nummerierungsschema beziehen, wenn das Datenpaket an dem zweiten Switch empfangen wird.
  11. Verfahren nach Anspruch 9, das ferner die folgenden Schritte umfasst: Durchführen einer Adressauflösung auf der Grundlage des ersten Nummerierungsschemas und des zweiten Nummerierungsschemas und des Interstack-Tags.
  12. Verfahren nach Anspruch 9, wobei der Schritt des Bereitstellens das Bezeichnen der ersten Vielzahl von Ports (13, 15) durch das erste Nummerierungsschema auf der Grundlage eines ersten Pins des ersten Switches und das Bezeichnen der zweiten Vielzahl von Ports (13, 15) durch das zweite Nummerierungsschema auf der Grundlage eines zweiten Pins des zweiten Switches umfasst.
DE60133352T 2000-11-14 2001-11-14 Gebundene Netzvermittlungskonfiguration Expired - Lifetime DE60133352T2 (de)

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
US920814 1986-10-17
US24792100P 2000-11-14 2000-11-14
US24792000P 2000-11-14 2000-11-14
US24790600P 2000-11-14 2000-11-14
US24790700P 2000-11-14 2000-11-14
US247920P 2000-11-14
US247906P 2000-11-14
US247921P 2000-11-14
US247907P 2000-11-14
US09/920,814 US6850542B2 (en) 2000-11-14 2001-08-03 Linked network switch configuration

Publications (2)

Publication Number Publication Date
DE60133352D1 DE60133352D1 (de) 2008-05-08
DE60133352T2 true DE60133352T2 (de) 2009-04-02

Family

ID=27540259

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60133352T Expired - Lifetime DE60133352T2 (de) 2000-11-14 2001-11-14 Gebundene Netzvermittlungskonfiguration

Country Status (3)

Country Link
US (3) US6850542B2 (de)
EP (1) EP1206077B1 (de)
DE (1) DE60133352T2 (de)

Families Citing this family (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7035255B2 (en) * 2000-11-14 2006-04-25 Broadcom Corporation Linked network switch configuration
US6850542B2 (en) * 2000-11-14 2005-02-01 Broadcom Corporation Linked network switch configuration
CA2439697C (en) * 2001-03-02 2007-11-13 At&T Corp. Interference suppression methods for 802.11
JP2002325093A (ja) * 2001-04-26 2002-11-08 Fujitsu Ltd 帯域制御方法及び装置、並びに帯域制御システム
CA2461584C (en) * 2001-09-24 2008-01-15 Rumi Sheryar Gonda Method for supporting ethernet mac circuits
US7143158B2 (en) * 2002-02-14 2006-11-28 America Online, Inc. Generating metrics for networked devices
US7404012B2 (en) * 2002-05-06 2008-07-22 Qlogic, Corporation System and method for dynamic link aggregation in a shared I/O subsystem
US7328284B2 (en) * 2002-05-06 2008-02-05 Qlogic, Corporation Dynamic configuration of network data flow using a shared I/O subsystem
US7447778B2 (en) 2002-05-06 2008-11-04 Qlogic, Corporation System and method for a shared I/O subsystem
US7423967B2 (en) * 2002-05-09 2008-09-09 Broadcom Corporation Fairness scheme method and apparatus for pause capable and pause incapable ports
BRPI0406665A (pt) * 2003-01-09 2005-12-06 Thomson Licensing Sa Método e equipamento para mapear uma corrente de transporte mpeg para pacotes ip para irradiação por wlan
ES2228266B1 (es) * 2003-07-28 2006-06-01 Diseño De Sistemas En Silicio, S.A. Procedimiento de conmutacion de paquetes en un medio de transmision con multiples estaciones conectadas mediante distintos enlaces.
FR2858895B1 (fr) 2003-08-13 2006-05-05 Arteris Procede et dispositif de gestion de priorite lors de la transmission d'un message
US7761589B1 (en) * 2003-10-23 2010-07-20 Foundry Networks, Inc. Flow control for multi-hop networks
US7639608B1 (en) * 2003-10-23 2009-12-29 Foundry Networks, Inc. Priority aware MAC flow control
FR2862457B1 (fr) 2003-11-13 2006-02-24 Arteris Systeme et procede de transmission d'une sequence de messages dans un reseau d'interconnexions.
US7463654B2 (en) * 2003-12-22 2008-12-09 3Com Corporation Stackable routers employing a routing protocol
US20050182848A1 (en) * 2003-12-29 2005-08-18 Mcneil Roy Jr. Rate limiting using pause frame capability
US20050141551A1 (en) * 2003-12-29 2005-06-30 Mcneil Roy Jr. Common LAN architecture and flow control relay
FR2867338B1 (fr) 2004-03-02 2007-08-10 Arteris Procede et dispositif de commutation entre des agents
US7379453B1 (en) * 2004-03-29 2008-05-27 Sun Microsystems, Inc. Method and apparatus for transferring multiple packets from hardware
US7715310B1 (en) 2004-05-28 2010-05-11 Cisco Technology, Inc. L2VPN redundancy with ethernet access domain
US7644317B1 (en) 2004-06-02 2010-01-05 Cisco Technology, Inc. Method and apparatus for fault detection/isolation in metro Ethernet service
US7643409B2 (en) * 2004-08-25 2010-01-05 Cisco Technology, Inc. Computer network with point-to-point pseudowire redundancy
US7839865B2 (en) * 2005-01-26 2010-11-23 Emulex Design & Manufacturing Corporation Dynamically controlling fair access to a system packet interface attached switch enclosure
KR100645537B1 (ko) * 2005-02-07 2006-11-14 삼성전자주식회사 안정적인 패킷 포워딩을 위한 동적인 큐 관리방법 및 이를위한 네트워크 프로세서의 구성요소
US7835370B2 (en) * 2005-04-28 2010-11-16 Cisco Technology, Inc. System and method for DSL subscriber identification over ethernet network
US8213435B2 (en) * 2005-04-28 2012-07-03 Cisco Technology, Inc. Comprehensive model for VPLS
US8194656B2 (en) * 2005-04-28 2012-06-05 Cisco Technology, Inc. Metro ethernet network with scaled broadcast and service instance domains
US9088669B2 (en) * 2005-04-28 2015-07-21 Cisco Technology, Inc. Scalable system and method for DSL subscriber traffic over an Ethernet network
US8094663B2 (en) * 2005-05-31 2012-01-10 Cisco Technology, Inc. System and method for authentication of SP ethernet aggregation networks
US8175078B2 (en) * 2005-07-11 2012-05-08 Cisco Technology, Inc. Redundant pseudowires between Ethernet access domains
US7889754B2 (en) * 2005-07-12 2011-02-15 Cisco Technology, Inc. Address resolution mechanism for ethernet maintenance endpoints
US7855950B2 (en) * 2005-08-01 2010-12-21 Cisco Technology, Inc. Congruent forwarding paths for unicast and multicast traffic
US8169924B2 (en) * 2005-08-01 2012-05-01 Cisco Technology, Inc. Optimal bridging over MPLS/IP through alignment of multicast and unicast paths
FR2890766B1 (fr) * 2005-09-12 2007-11-30 Arteris Sa Systeme et procede de communication asynchrone sur circuit, entre des sous-circuits synchrones
US9088619B2 (en) * 2005-09-14 2015-07-21 Cisco Technology, Inc. Quality of service based on logical port identifier for broadband aggregation networks
US7969966B2 (en) * 2005-12-19 2011-06-28 Alcatel Lucent System and method for port mapping in a communications network switch
CN100442772C (zh) 2005-10-19 2008-12-10 华为技术有限公司 一种桥接转发方法
US7729362B2 (en) * 2005-12-07 2010-06-01 Electronics And Telecommunications Research Institute Method and apparatus for processing packet in high speed router
JP4677340B2 (ja) * 2005-12-21 2011-04-27 キヤノン株式会社 情報処理装置、情報処理方法、プログラム、及び記憶媒体
US7606945B2 (en) * 2006-01-04 2009-10-20 Broadcom Corporation Method and apparatus for dynamically configuring hardware resources by a generic CPU management interface
US7796590B1 (en) * 2006-02-01 2010-09-14 Marvell Israel (M.I.S.L.) Ltd. Secure automatic learning in ethernet bridges
FR2899413B1 (fr) * 2006-03-31 2008-08-08 Arteris Sa Systeme de commutation de message
FR2900017B1 (fr) * 2006-04-12 2008-10-31 Arteris Sa Systeme d'interconnexions de blocs fonctionnels externes sur puce muni d'un unique protocole parametrable de communication
FR2901437B1 (fr) * 2006-05-16 2008-08-08 Arteris Sa Procede de realisation d'un circuit de synchronisation de donnees echangees de maniere asynchrone entre deux blocs synchrones, et circuit de synchronisation elabore a partir d'un tel procede
FR2902957B1 (fr) * 2006-06-23 2008-09-12 Arteris Sa Systeme et procede de gestions de messages transmis dans un reseau d'interconnexions
FR2904445B1 (fr) * 2006-07-26 2008-10-10 Arteris Sa Systeme de gestion de messages transmis dans un reseau d'interconnexions sur puce
US8116320B2 (en) * 2006-08-07 2012-02-14 Adc Telecommunications, Inc. Mapping external port using virtual local area network
WO2008070414A2 (en) * 2006-12-01 2008-06-12 Conexant Systems, Inc. Multiplexing/demultiplexing on a shared interface
US8089967B2 (en) * 2007-04-06 2012-01-03 International Business Machines Corporation Modification of a switching table of an internet protocol switch
US8705549B2 (en) * 2007-04-06 2014-04-22 International Business Machines Corporation Structure and implementation of universal virtual private networks
US8144709B2 (en) * 2007-04-06 2012-03-27 International Business Machines Corporation Method, system and computer processing an IP packet, routing a structured data carrier, preventing broadcast storms, load-balancing and converting a full broadcast IP packet
US8135013B2 (en) * 2007-04-06 2012-03-13 International Business Machines Corporation Internet protocol switch and use of the switch for switching a frame
US7646778B2 (en) * 2007-04-27 2010-01-12 Cisco Technology, Inc. Support of C-tagged service interface in an IEEE 802.1ah bridge
US20080285437A1 (en) * 2007-05-18 2008-11-20 Adc Dsl Systems, Inc. Ethernet protection switching system
US8804534B2 (en) * 2007-05-19 2014-08-12 Cisco Technology, Inc. Interworking between MPLS/IP and Ethernet OAM mechanisms
US8531941B2 (en) * 2007-07-13 2013-09-10 Cisco Technology, Inc. Intra-domain and inter-domain bridging over MPLS using MAC distribution via border gateway protocol
US8457122B2 (en) * 2007-08-01 2013-06-04 Broadcom Corporation Multiport switch for cascaded ethernet AV device networking
US8310953B2 (en) * 2007-08-21 2012-11-13 International Business Machines Corporation Method and apparatus for enabling an adapter in a network device to discover the name of another adapter of another network device in a network system
US8203943B2 (en) * 2007-08-27 2012-06-19 Cisco Technology, Inc. Colored access control lists for multicast forwarding using layer 2 control protocol
US8077709B2 (en) 2007-09-19 2011-12-13 Cisco Technology, Inc. Redundancy at a virtual provider edge node that faces a tunneling protocol core network for virtual private local area network (LAN) service (VPLS)
US7843917B2 (en) * 2007-11-08 2010-11-30 Cisco Technology, Inc. Half-duplex multicast distribution tree construction
US7978607B1 (en) * 2008-08-29 2011-07-12 Brocade Communications Systems, Inc. Source-based congestion detection and control
US7916730B1 (en) * 2008-09-30 2011-03-29 F5 Networks, Inc. Methods and system for solving cross-chip-trunk continuous destination lookup failure
KR101670746B1 (ko) * 2009-12-15 2016-11-09 엘지전자 주식회사 무선 통신 시스템에서의 멀티캐스트 및 브로드캐스트 서비스 데이터를 위한 자원 할당 방법 및 이를 위한 장치
KR20110127968A (ko) * 2010-05-20 2011-11-28 엘에스산전 주식회사 R fid를 이용한 원격 제어 송수신 장치 및 그 방법
US8650285B1 (en) 2011-03-22 2014-02-11 Cisco Technology, Inc. Prevention of looping and duplicate frame delivery in a network environment
US9313102B2 (en) 2013-05-20 2016-04-12 Brocade Communications Systems, Inc. Configuration validation in a mixed node topology
US9853889B2 (en) 2013-05-20 2017-12-26 Brocade Communications Systems, Inc. Broadcast and multicast traffic reduction in stacking systems
US10284499B2 (en) 2013-08-22 2019-05-07 Arris Enterprises Llc Dedicated control path architecture for systems of devices
US9185049B2 (en) * 2013-10-31 2015-11-10 Brocade Communications Systems, Inc. Techniques for simplifying stacking trunk creation and management
US9692695B2 (en) 2014-03-27 2017-06-27 Brocade Communications Systems, Inc. Techniques for aggregating hardware routing resources in a multi-packet processor networking system
US9692652B2 (en) 2014-04-03 2017-06-27 Brocade Communications Systems, Inc. Framework for reliably communicating port information in a system of devices
US10091059B2 (en) 2014-12-16 2018-10-02 Arris Enterprises Llc Handling connections between network devices that support multiple port communication modes
US10834065B1 (en) 2015-03-31 2020-11-10 F5 Networks, Inc. Methods for SSL protected NTLM re-authentication and devices thereof
US10404698B1 (en) 2016-01-15 2019-09-03 F5 Networks, Inc. Methods for adaptive organization of web application access points in webtops and devices thereof
CN108432183A (zh) * 2016-04-01 2018-08-21 慧与发展有限责任合伙企业 交换机配置
CN110741610B (zh) 2017-01-09 2021-11-12 马维尔亚洲私人有限公司 具有本地交换的端口扩展器
US11178053B2 (en) * 2017-10-24 2021-11-16 Frontiir Pte Ltd. Network systems and architecture for scaling access networks with network access controller
JP6992611B2 (ja) * 2018-03-09 2022-01-13 株式会社デンソー 中継装置
US11115264B2 (en) * 2019-06-28 2021-09-07 Nxp B.V. Apparatuses and methods involving managing port-address assignments

Family Cites Families (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4899334A (en) 1987-10-19 1990-02-06 Oki Electric Industry Co., Ltd. Self-routing multistage switching network for fast packet switching system
EP0439507B1 (de) 1988-10-20 1996-04-24 CHUNG, David Siu Fu Speicherstruktur und verwendung
US5253248A (en) 1990-07-03 1993-10-12 At&T Bell Laboratories Congestion control for connectionless traffic in data networks via alternate routing
GB9023867D0 (en) 1990-11-02 1990-12-12 Mv Ltd Improvements relating to a fault tolerant storage system
JPH04189023A (ja) 1990-11-22 1992-07-07 Victor Co Of Japan Ltd パルス同期化回路
JPH04214290A (ja) 1990-12-12 1992-08-05 Mitsubishi Electric Corp 半導体記憶装置
JPH05183828A (ja) 1991-12-27 1993-07-23 Sony Corp 電子機器
EP0556148B1 (de) 1992-01-10 1998-07-22 Digital Equipment Corporation Verfahren zur Verbindung einer Leitungskarte mit einer Adressenerkennungseinheit
US5390173A (en) 1992-10-22 1995-02-14 Digital Equipment Corporation Packet format in hub for packet data communications system
DE69324204T2 (de) 1992-10-22 1999-12-23 Cabletron Systems Inc Aufsuchen von Adressen bei Paketübertragung mittels Hashing und eines inhaltsadressierten Speichers
US5696899A (en) 1992-11-18 1997-12-09 Canon Kabushiki Kaisha Method and apparatus for adaptively determining the format of data packets carried on a local area network
US5473607A (en) 1993-08-09 1995-12-05 Grand Junction Networks, Inc. Packet filtering for data networks
US5499295A (en) 1993-08-31 1996-03-12 Ericsson Inc. Method and apparatus for feature authorization and software copy protection in RF communications devices
US5887187A (en) 1993-10-20 1999-03-23 Lsi Logic Corporation Single chip network adapter apparatus
US5802287A (en) 1993-10-20 1998-09-01 Lsi Logic Corporation Single chip universal protocol multi-function ATM network interface
US5579301A (en) 1994-02-28 1996-11-26 Micom Communications Corp. System for, and method of, managing voice congestion in a network environment
US5459717A (en) 1994-03-25 1995-10-17 Sprint International Communications Corporation Method and apparatus for routing messagers in an electronic messaging system
US5555398A (en) 1994-04-15 1996-09-10 Intel Corporation Write back cache coherency module for systems with a write through cache supporting bus
ATE262766T1 (de) * 1994-06-01 2004-04-15 Airnet Communications Corp Breitbandige schnurlose basisstation mit einem zeitmultiplex-vielfachzugriffbas zum ermoglichen von schaltbaren verbindungen zu modulatoren/demodulatoren-mitteln
FR2725573B1 (fr) 1994-10-11 1996-11-15 Thomson Csf Procede et dispositif pour le controle de congestion des echanges sporadiques de paquets de donnees dans un reseau de transmission numerique
EP0719065A1 (de) 1994-12-20 1996-06-26 International Business Machines Corporation Mehrzweck-Paketvermittlungsknoten für ein Datenübertragungsnetz
US5790539A (en) 1995-01-26 1998-08-04 Chao; Hung-Hsiang Jonathan ASIC chip for implementing a scaleable multicast ATM switch
US5644784A (en) 1995-03-03 1997-07-01 Intel Corporation Linear list based DMA control structure
US5673263A (en) * 1995-03-31 1997-09-30 International Business Machines Corporation Method for using an IP address-based routing protocol in an ATM environment
US5664116A (en) 1995-07-07 1997-09-02 Sun Microsystems, Inc. Buffering of data for transmission in a computer communication system interface
US5732080A (en) 1995-07-12 1998-03-24 Bay Networks, Inc. Method and apparatus for controlling data flow within a switching device
US5684800A (en) 1995-11-15 1997-11-04 Cabletron Systems, Inc. Method for establishing restricted broadcast groups in a switched network
US5781549A (en) 1996-02-23 1998-07-14 Allied Telesyn International Corp. Method and apparatus for switching data packets in a data network
US5940596A (en) 1996-03-25 1999-08-17 I-Cube, Inc. Clustered address caching system for a network switch
US5828653A (en) 1996-04-26 1998-10-27 Cascade Communications Corp. Quality of service priority subclasses
US5748631A (en) 1996-05-09 1998-05-05 Maker Communications, Inc. Asynchronous transfer mode cell processing system with multiple cell source multiplexing
US5787084A (en) 1996-06-05 1998-07-28 Compaq Computer Corporation Multicast data communications switching system and associated method
US5802052A (en) 1996-06-26 1998-09-01 Level One Communication, Inc. Scalable high performance switch element for a shared memory packet or ATM cell switch fabric
US5898687A (en) 1996-07-24 1999-04-27 Cisco Systems, Inc. Arbitration mechanism for a multicast logic engine of a switching fabric circuit
GB9618132D0 (en) 1996-08-30 1996-10-09 Sgs Thomson Microelectronics Improvements in or relating to an ATM switch
US5845081A (en) 1996-09-03 1998-12-01 Sun Microsystems, Inc. Using objects to discover network information about a remote network having a different network protocol
US5831980A (en) 1996-09-13 1998-11-03 Lsi Logic Corporation Shared memory fabric architecture for very high speed ATM switches
US5842038A (en) 1996-10-10 1998-11-24 Unisys Corporation Optimized input/output memory access request system and method
JP3123447B2 (ja) 1996-11-13 2001-01-09 日本電気株式会社 Atm交換機のスイッチ制御回路
EP0849917B1 (de) 1996-12-20 2005-07-20 International Business Machines Corporation Vermittlungssystem
US6233246B1 (en) 1996-12-30 2001-05-15 Compaq Computer Corporation Network switch with statistics read accesses
DE19703833A1 (de) 1997-02-01 1998-08-06 Philips Patentverwaltung Koppeleinrichtung
US6452933B1 (en) 1997-02-07 2002-09-17 Lucent Technologies Inc. Fair queuing system with adaptive bandwidth redistribution
US6175902B1 (en) 1997-12-18 2001-01-16 Advanced Micro Devices, Inc. Method and apparatus for maintaining a time order by physical ordering in a memory
US6061351A (en) 1997-02-14 2000-05-09 Advanced Micro Devices, Inc. Multicopy queue structure with searchable cache area
US5892922A (en) 1997-02-28 1999-04-06 3Com Corporation Virtual local area network memory access system
US6011795A (en) 1997-03-20 2000-01-04 Washington University Method and apparatus for fast hierarchical address lookup using controlled expansion of prefixes
US6119196A (en) 1997-06-30 2000-09-12 Sun Microsystems, Inc. System having multiple arbitrating levels for arbitrating access to a shared memory by network ports operating at different data rates
US6014380A (en) 1997-06-30 2000-01-11 Sun Microsystems, Inc. Mechanism for packet field replacement in a multi-layer distributed network element
US6088356A (en) 1997-06-30 2000-07-11 Sun Microsystems, Inc. System and method for a multi-layer network element
US6246680B1 (en) 1997-06-30 2001-06-12 Sun Microsystems, Inc. Highly integrated multi-layer switch element architecture
US6016310A (en) 1997-06-30 2000-01-18 Sun Microsystems, Inc. Trunking support in a high performance network device
US5920566A (en) 1997-06-30 1999-07-06 Sun Microsystems, Inc. Routing in a multi-layer distributed network element
US5909686A (en) 1997-06-30 1999-06-01 Sun Microsystems, Inc. Hardware-assisted central processing unit access to a forwarding database
US6094435A (en) 1997-06-30 2000-07-25 Sun Microsystems, Inc. System and method for a quality of service in a multi-layer network element
US6021132A (en) 1997-06-30 2000-02-01 Sun Microsystems, Inc. Shared memory management in a switched network element
US6115378A (en) 1997-06-30 2000-09-05 Sun Microsystems, Inc. Multi-layer distributed network element
US5918074A (en) 1997-07-25 1999-06-29 Neonet Llc System architecture for and method of dual path data processing and management of packets and/or cells and the like
US6041053A (en) 1997-09-18 2000-03-21 Microsfot Corporation Technique for efficiently classifying packets using a trie-indexed hierarchy forest that accommodates wildcards
JP2959539B2 (ja) 1997-10-01 1999-10-06 日本電気株式会社 バッファ制御方法および装置
US6185185B1 (en) 1997-11-21 2001-02-06 International Business Machines Corporation Methods, systems and computer program products for suppressing multiple destination traffic in a computer network
US6580715B1 (en) * 1998-05-04 2003-06-17 Hewlett-Packard Development Company, L.P. Load balancing switch protocols
GB2337905B (en) 1998-05-28 2003-02-12 3Com Technologies Ltd Buffer management in network devices
JP2000022696A (ja) * 1998-06-30 2000-01-21 Fujitsu Ltd ブロードキャスト用アドレスサーバ
US6535507B1 (en) * 1998-07-06 2003-03-18 Nortel Networks Limited Method of address resolution for the transfer of synchronous transfer mode calls through multiple domains in a broadband data network
US6335935B2 (en) 1998-07-08 2002-01-01 Broadcom Corporation Network switching architecture with fast filtering processor
US6490279B1 (en) * 1998-07-23 2002-12-03 Advanced Communication Device, Inc. Fast data base research and learning apparatus
US6697360B1 (en) * 1998-09-02 2004-02-24 Cisco Technology, Inc. Method and apparatus for auto-configuring layer three intermediate computer network devices
US6738828B1 (en) * 2000-07-06 2004-05-18 Nortel Networks Limited Name resolution protocol, system and method for resolving a flat name space to an address space
US6850542B2 (en) * 2000-11-14 2005-02-01 Broadcom Corporation Linked network switch configuration

Also Published As

Publication number Publication date
EP1206077B1 (de) 2008-03-26
US6850542B2 (en) 2005-02-01
DE60133352D1 (de) 2008-05-08
US7050431B2 (en) 2006-05-23
EP1206077A2 (de) 2002-05-15
EP1206077A3 (de) 2004-03-17
US20050122825A1 (en) 2005-06-09
US20020085585A1 (en) 2002-07-04
US20050105539A1 (en) 2005-05-19
US7339938B2 (en) 2008-03-04

Similar Documents

Publication Publication Date Title
DE60133352T2 (de) Gebundene Netzvermittlungskonfiguration
DE60126222T2 (de) Verbundene Netzvermittlungskonfiguration
DE60127794T2 (de) Gebundene Netzschalterkonfiguration
DE60126223T2 (de) Anordnung zur Verbindung von Netzvermittlungsstellen
DE60010328T2 (de) Spiegelung in einer netzwerkvermittlungsstapelanordnung
DE60031515T2 (de) Netzwerkvermittlung
DE60309947T2 (de) Hochgeschwindigkeitsprotokoll für die Verbindung von modularen Netzwerkelementen
DE60005993T2 (de) Verfahren und netzwerkvermittlungsstelle mit datenserialisierung durch gefahrlose mehrstufige störungsfreie multiplexierung
US6813268B1 (en) Stacked network switch configuration
DE112012001320B4 (de) Prioritätsgestützte Flusssteuerung in einer Switching-Netzwerkarchitektur mit einem Protokoll einer verteilten Struktur (Distributed Fabric Protocol DFP)
US8250251B2 (en) Flexible DMA descriptor support
US6335935B2 (en) Network switching architecture with fast filtering processor
US20050036488A1 (en) Stacked network switch configuration
US7764674B2 (en) Address resolution snoop support for CPU
US7295552B1 (en) Cluster switching architecture
DE60116401T2 (de) Netzwerkvermittlung mit der Möglichkeit Anschlüsse zu blockieren
DE60112011T2 (de) Verfahren und Vorrichtung zum Filtern von Paketen basierend auf Datenströme unter Verwendung von Addressentabellen
DE60034320T2 (de) Verfahren zur vermeidung von nichtsequentiellen rahmen in einer netzwerkvermittlungsstelle
DE60125300T2 (de) Schaltungsanordnung zum Übertragen von Daten mit Datenpacketierung und-Depacketierung
DE60215416T2 (de) Zeigerbasierte binäre Suchmaschine und dafür geeignetes Verfahren
US6907036B1 (en) Network switch enhancements directed to processing of internal operations in the network switch
DE60217988T2 (de) System und Verfahren zum zeitschlitzbasierten Erlernen und Durchsuchen von ARL Tabellen mit Blockierung der Einfügung
DE60036292T2 (de) Architektur zur gruppenbasierten vermittlung
DE60037424T2 (de) Vereinigte Tabelle zur L2-, L3-, L4-Vermittlung und Filterung
DE60217572T2 (de) System und Verfahren zum zeitschlitzbasierten Erlernen und Durchsuchen von ARL Tabellen unter Verwendung von Schreib-snoop

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: BOSCH JEHLE PATENTANWALTSGESELLSCHAFT MBH, 80639 M