DE60010328T2 - Spiegelung in einer netzwerkvermittlungsstapelanordnung - Google Patents

Spiegelung in einer netzwerkvermittlungsstapelanordnung Download PDF

Info

Publication number
DE60010328T2
DE60010328T2 DE60010328T DE60010328T DE60010328T2 DE 60010328 T2 DE60010328 T2 DE 60010328T2 DE 60010328 T DE60010328 T DE 60010328T DE 60010328 T DE60010328 T DE 60010328T DE 60010328 T2 DE60010328 T2 DE 60010328T2
Authority
DE
Germany
Prior art keywords
port
packet
stack
bit
sent
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
DE60010328T
Other languages
English (en)
Other versions
DE60010328D1 (de
Inventor
Mohan Kalkunte
Shiri Kadambi
Shekhar Ambe
Anders Johnson
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 Corp
Original Assignee
Broadcom Corp
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
Priority claimed from US09/461,719 external-priority patent/US6813268B1/en
Application filed by Broadcom Corp filed Critical Broadcom Corp
Publication of DE60010328D1 publication Critical patent/DE60010328D1/de
Application granted granted Critical
Publication of DE60010328T2 publication Critical patent/DE60010328T2/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
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • H04L12/4645Details on frame tagging
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • H04L12/467Arrangements for supporting untagged frames, e.g. port-based VLANs
    • 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/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/52Multiprotocol routers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/742Route cache; Operation thereof
    • 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
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/208Port mirroring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/42Loop networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • H04L49/254Centralised controller, i.e. arbitration or scheduling
    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/354Switches specially adapted for specific applications for supporting virtual local area networks [VLAN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/60Software-defined switches
    • H04L49/602Multilayer or multiprotocol switching, e.g. IP switching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols

Description

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

Claims (13)

  1. Ein Verfahren zum Spiegeln von Daten zu einem Spiegelport, MTP, in einer Mehrzahl von Switches (SW1,... SW4), wobei jeder der Mehrzahl von miteinander verbundenen Switches (SW1,... SW4) mit einem anderen mittels einer Kommunikationsleitung verbunden ist, wobei die Kommunikationsleitung Daten zwischen jedem der Mehrzahl von Netzwerk-Switches überträgt und wobei das Verfahren durch die Schritte gekennzeichnet ist: Setzen eines Stapelzählers (stack_cnt) gleich einer Anzahl, die der Anzahl der Mehrzahl von untereinander verbundenen Switches (SW1,... SW4) entspricht, um Daten durch die Mehrzahl von untereinander verbundenen Switches (SW1,... SW4) zu senden; Aktivieren eines Spiegelanzeigers (M), wenn ein Port von der Mehrzahl von miteinander verbundenen Switches (SW1,...SW4) gespiegelt werden soll; Einstellen des Stapelzählers (stack_cnt), wenn Daten von einem der Mehrzahl von Switches zu einem anderen der Mehrzahl von Switches gesendet werden; Setzen eines Spiegellogikanzeigers (MD), der aktiviert wird, wenn der Stapelzähler (stack_cnt) einen bestimmten Pegel erreicht, der anzeigt, dass Daten an alle der Mehrzahl von untereinander verbundenen Switches (SW1,...SW4) gesendet worden sind und wenn die Daten, die gespiegelt werden sollen, nicht an den Spiegelport gesendet worden sind, oder wenn ein Quelleingangsport und ein Zielausgangsport sich auf dem gleichen Switch der Mehrzahl von miteinander verbundenen Switches (SW1,... SW4) befinden und die Daten gespiegelt werden sollen, oder wenn die Daten, die gespiegelt werden sollen, empfangen und fallengelassen worden sind; Aktivieren eines Spiegelport-Durchreiche-Anzeigers, wenn ein Spiegelport verfügbar ist, aber die Daten nicht zu dem Spiegelport gesendet worden sind; Aktivieren eines Spiegelport-Sende-Anzeigers, wenn die Daten zu dem Spiegelport gesendet worden sind; und erneutes Senden der Daten durch die Mehrzahl von miteinander verbundenen Switches, wenn der Spiegellogikanzeiger (MD) aktiviert ist; der Spiegelanzeiger (M) aktiviert ist; der Spiegelport-Durchreiche-Anzeiger (EM) aktiviert ist und der Spiegelport-Sende-Anzeiger (ED) nicht aktiviert ist.
  2. Das Verfahren nach Anspruch 1, wobei die Anzahl, die der Anzahl der Mehrzahl der miteinander verbundenen Switches (SW1,... SW4) entspricht, die Gesamtanzahl der Mehrzahl von miteinander verbundenen Switches (SW1,...SW4) minus 1 ist; wobei der Schritt des Einstellens des Stapelzählers als Schritt des Dekrementierens des Stapelzählers (stack_cnt) implementiert ist; und der bestimmte Pegel, der anzeigt, dass die Daten zu allen der Mehrzahl von miteinander verbundenen Switches (SW 1,...SW4) gesendet worden ist, 0 ist.
  3. Das Verfahren nach Anspruch 1, wobei der Schritt des Bestimmens, ob die Daten an ein MTP gesendet worden sind, umfasst: das Setzen des Spiegelport-Durchreiche-Anzeigers (EM), der aktiviert wird, wenn der MTP durchgereicht wird, ohne Daten an den NTP zu senden; und Setzen des Spiegelport-Sende-Anzeigers (ED), der aktiviert wird, wenn die Daten zu dem MTP gesendet werden.
  4. Das Verfahren nach Anspruch 1, das weiterhin den Schritt des Einführens eines Zwischenstapel-Tags umfasst, das den Daten zugeordnet ist.
  5. Das Verfahren nach Anspruch 1, das weiterhin den Schritt des Hinzufügens eines Zwischenstapel-Tags zu den Daten umfasst.
  6. Das Verfahren nach Anspruch 5, das weiterhin die Schritte aufweist: Setzen eines ersten Felds in dem Zwischenstapel-Tag zum Verfolgen eines Stapelzählers; Setzen eines zweiten Felds in dem Zwischenstapel-Tag zum Anzeigen, ob das Spiegeln enabled ist; Setzen eines dritten Felds in dem Zwischenstapel-Tag zum Anzeigen, ob ein Spiegellogikanzeiger (MD) enabled ist; Setzen eines vierten Felds in dem Zwischenstapel-Tag zum Anzeigen, ob der MTP durchgereicht wurde, ohne dass Daten zu dem MTP gesendet worden sind; und Setzen eines fünften Felds in dem Zwischenstapel-Tag zum Anzeigen, ob die Daten zu dem MTP gesendet worden sind.
  7. Das Verfahren nach Anspruch 5, das weiterhin den Schritt des Entfernens des Zwischenstapel-Tags aufweist, wenn die Daten als Ausgabe an einen Port gesendet worden sind.
  8. Ein System zum Spiegeln von Daten zu einem Spiegelport in einer Mehrzahl von Switches mit: einer Mehrzahl von miteinander verbundenen Switches (SW1,...SW4); Eingangs- und Ausgangs-Ports, die sich in jedem der Mehrzahl von miteinander verbundenen Switches (SW1,...SW4) befinden, wobei die Eingangs- und Ausgangs-Ports Daten empfangen und senden; einer Kommunikationsleitung, die jeden der Mehrzahl von miteinander verbundenen Switches (SW1,... SW4) mit einem anderen verbindet, wobei die Kommunikationsleitung Daten zwischen jedem der Mehrzahl von miteinander verbundenen Switches (SW1,...SW4) überträgt; dadurch gekennzeichnet, dass es weiterhin aufweist: eine Stapelzählereinheit, die einen Stapelzähler (stack_cnt) zum Senden von Daten durch die Mehrzahl von miteinander verbundenen Switches (SW1,...SW4) setzt; eine Spiegelanzeigeeinheit, die einen Spiegelanzeiger (M) aktiviert, wenn ein Port der Mehrzahl von miteinander verbundenen Switches (SW1,... SW4) gespiegelt werden soll; eine Spiegellogikeinheit, die einen Spiegellogikanzeiger (MD) aktiviert, wenn der Stapelzähler (stack_cnt) anzeigt, dass Daten zu jedem der Mehrzahl von miteinander verbundenen Switches (SW1,... SW4) gesendet worden sind und dass die Daten gespiegelt werden sollen, aber noch nicht gespiegelt worden sind; eine Spiegelport-Durchreiche-Einheit, die einen Spiegelport-Durchreiche-Anzeiger (EM) aktiviert, wenn ein Spiegelport verfügbar ist, aber die Daten nicht zu dem Spiegelport gesendet worden sind; eine Spiegelport-Sende-Einheit, die einen Spiegelport-Sende-Anzeiger (ED) aktiviert, wenn die Daten zu dem Spiegelport gesendet worden sind; und eine Einheit zum erneuten Senden, die die Daten erneut durch die Mehrzahl von miteinander verbundenen Switches sendet, wenn der Spiegellogikanzeiger (MD) aktiviert ist; der Spiegelanzeiger (M) aktiviert ist; der Spiegelport-Durchreiche-Anzeiger (EM) aktiviert ist; und der Spiegelport-Sende-Anzeiger (ED) nicht aktiviert ist.
  9. Das System nach Anspruch 8, wobei die Mehrzahl von miteinander verbundenen Switches (SW1,...SW4) gestapelte Netzwerk-Switches sind.
  10. Das System nach Anspruch 8, wobei die Kommunikationsleitung eine Stapelverbindung ist, die mit einem Stapelverbindungsport von jedem der Mehrzahl von miteinander verbundenen Switches (SW1,... SW4) verbunden ist.
  11. Das System nach Anspruch 8, das weiterhin ein Stapel-Tag aufweist, das den Daten zugeordnet ist, wobei das Stapel-Tag den Stapelzähler (stack_cnt), den Spiegelanzeiger (M), den Spiegellogikanzeiger (MD), den Spiegelport-Durchreiche-Anzeiger (EM) und den Spiegelport-Sende-Anzeige (ED) aufweist.
  12. Das System nach Anspruch 11, wobei das Stapel-Tag ein 32-Bit-Feld umfasst.
  13. Das System nach Anspruch 12, wobei das 32-Bit-Feld aufweist: ein 5 Bit Feld, das als das Stapel-Tag bezeichnet wird; ein erstes 1-Bit-Feld, das als der Spiegelanzeiger bezeichnet wird; ein zweites 1-Bit-Feld, das als der Spiegellogikanzeiger (MD) bezeichnet wird; ein drittes 1-Bit-Feld, das als der Spiegelport-Durchreiche-Anzeiger (EM) bezeichnet wird; und ein viertes 1-Bit-Feld, das als der Spiegelport-Sende-Anzeiger (EP) bezeichnet wird.
DE60010328T 1999-12-07 2000-12-07 Spiegelung in einer netzwerkvermittlungsstapelanordnung Expired - Lifetime DE60010328T2 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US16928199P 1999-12-07 1999-12-07
US169281P 1999-12-07
US09/461,719 US6813268B1 (en) 1999-05-21 1999-12-16 Stacked network switch configuration
US461719 1999-12-16
PCT/US2000/033133 WO2001043354A2 (en) 1999-12-07 2000-12-07 Mirroring in a stacked network switch configuration

Publications (2)

Publication Number Publication Date
DE60010328D1 DE60010328D1 (de) 2004-06-03
DE60010328T2 true DE60010328T2 (de) 2005-05-04

Family

ID=26864920

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60010328T Expired - Lifetime DE60010328T2 (de) 1999-12-07 2000-12-07 Spiegelung in einer netzwerkvermittlungsstapelanordnung

Country Status (6)

Country Link
US (2) US6839349B2 (de)
EP (1) EP1238492B1 (de)
AT (1) ATE265774T1 (de)
AU (1) AU2066201A (de)
DE (1) DE60010328T2 (de)
WO (1) WO2001043354A2 (de)

Families Citing this family (89)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000072533A1 (en) * 1999-05-21 2000-11-30 Broadcom Corporation Stacked network switch configuration
US6839349B2 (en) * 1999-12-07 2005-01-04 Broadcom Corporation Mirroring in a stacked network switch configuration
US7356030B2 (en) * 2000-11-17 2008-04-08 Foundry Networks, Inc. Network switch cross point
US7236490B2 (en) * 2000-11-17 2007-06-26 Foundry Networks, Inc. Backplane interface adapter
US7596139B2 (en) 2000-11-17 2009-09-29 Foundry Networks, Inc. Backplane interface adapter with error control and redundant fabric
US7092393B1 (en) * 2001-02-04 2006-08-15 Cisco Technology, Inc. Method and apparatus for distributed reassembly of subdivided packets using multiple reassembly components
US7027446B2 (en) * 2001-07-18 2006-04-11 P-Cube Ltd. Method and apparatus for set intersection rule matching
TW576061B (en) * 2001-08-13 2004-02-11 Via Tech Inc Device and method for load balancing of packet switching
US7046663B1 (en) * 2001-08-17 2006-05-16 Cisco Technology, Inc. System and method for intercepting packets in a pipeline network processor
US20120155466A1 (en) * 2002-05-06 2012-06-21 Ian Edward Davis Method and apparatus for efficiently processing data packets in a computer network
US7468975B1 (en) 2002-05-06 2008-12-23 Foundry Networks, Inc. Flexible method for processing data packets in a network routing system for enhanced efficiency and monitoring capability
US20090279558A1 (en) * 2002-05-06 2009-11-12 Ian Edward Davis Network routing apparatus for enhanced efficiency and monitoring capability
US7187687B1 (en) 2002-05-06 2007-03-06 Foundry Networks, Inc. Pipeline method and system for switching packets
US7243154B2 (en) * 2002-06-27 2007-07-10 Intel Corporation Dynamically adaptable communications processor architecture and associated methods
US7391739B1 (en) * 2002-06-28 2008-06-24 At&T Delaware Intellectual Property, Inc. System and method for creating a frame relay port mirror
US7636320B1 (en) * 2002-06-28 2009-12-22 At&T Intellectual Property I, L.P. System and method for creating an asynchronous transfer mode port mirror
US7200148B1 (en) * 2002-06-28 2007-04-03 Bellsouth Intellectual Property Corp. System and method for analyzing asynchronous transfer mode communications
US8305926B2 (en) * 2002-09-04 2012-11-06 At&T Intellectual Property Ii, L.P. Method and apparatus for self-learning of call routing information
US20040196841A1 (en) * 2003-04-04 2004-10-07 Tudor Alexander L. Assisted port monitoring with distributed filtering
US6901072B1 (en) 2003-05-15 2005-05-31 Foundry Networks, Inc. System and method for high speed packet transmission implementing dual transmit and receive pipelines
EP1639488B1 (de) * 2003-06-30 2013-11-06 JDS Uniphase Corporation Ausbreitung von signalen zwischen einrichtungen zur auslösung der erfassung von netzwerkdaten
US20050005026A1 (en) * 2003-07-03 2005-01-06 International Business Machines Corporation Method and apparatus for managing a remote data processing system
US20050066036A1 (en) * 2003-09-19 2005-03-24 Neil Gilmartin Methods, systems and computer program products for facilitating the design and analysis of virtual networks based on total hub value
US7640359B1 (en) * 2003-09-19 2009-12-29 At&T Intellectual Property, I, L.P. Method, system and computer program product for facilitating the design and assignment of ethernet VLANs
US7624187B1 (en) * 2003-09-19 2009-11-24 At&T Intellectual Property, I, L.P. Method, system and computer program product for providing Ethernet VLAN capacity requirement estimation
US7349985B2 (en) * 2003-11-24 2008-03-25 At&T Delaware Intellectual Property, Inc. Method, system and computer program product for calculating a VLAN latency measure
US7463654B2 (en) * 2003-12-22 2008-12-09 3Com Corporation Stackable routers employing a routing protocol
US7817659B2 (en) 2004-03-26 2010-10-19 Foundry Networks, Llc Method and apparatus for aggregating input data streams
US8730961B1 (en) 2004-04-26 2014-05-20 Foundry Networks, Llc System and method for optimizing router lookup
US7440467B2 (en) * 2004-05-05 2008-10-21 Gigamon Systems Llc Asymmetric packet switch and a method of use
US20060013231A1 (en) * 2004-06-22 2006-01-19 Sbc Knowledge Ventures, Lp Consolidated ethernet optical network and apparatus
US7958208B2 (en) * 2004-09-22 2011-06-07 At&T Intellectual Property I, L.P. System and method for designing a customized switched metro Ethernet data network
US7657703B1 (en) 2004-10-29 2010-02-02 Foundry Networks, Inc. Double density content addressable memory (CAM) lookup scheme
US7554997B1 (en) * 2004-11-17 2009-06-30 Adtran, Inc. Integrated router switch-based port-mirroring mechanism for monitoring LAN-to-WAN and WAN-to-LAN traffic
DE502005002402D1 (de) * 2005-02-28 2008-02-14 Siemens Ag Verfahren zur Reduktion von Datenpaketverlusten beim Aktualisieren einer Adresstabelle
US7688825B2 (en) 2005-04-12 2010-03-30 Fujitsu Limited Filtering frames at an input port of a switch
US7664116B2 (en) 2005-04-12 2010-02-16 Fujitsu Limited Network based routing scheme
US8448162B2 (en) 2005-12-28 2013-05-21 Foundry Networks, Llc Hitless software upgrades
TW200737843A (en) * 2006-03-31 2007-10-01 Hon Hai Prec Ind Co Ltd Network device and method for mirroring packets
US7953089B1 (en) * 2006-05-16 2011-05-31 Cisco Technology, Inc. Systems and methods for multicast switching in a private VLAN
US7903654B2 (en) 2006-08-22 2011-03-08 Foundry Networks, Llc System and method for ECMP load sharing
CN100461742C (zh) * 2006-08-24 2009-02-11 华为技术有限公司 提高vpls中客户端设备双归属网络可靠性的方法及装置
US8238255B2 (en) 2006-11-22 2012-08-07 Foundry Networks, Llc Recovering from failures without impact on data traffic in a shared bus architecture
US7978614B2 (en) 2007-01-11 2011-07-12 Foundry Network, LLC Techniques for detecting non-receipt of fault detection protocol packets
GB2450148A (en) * 2007-06-14 2008-12-17 Advanced Risc Mach Ltd Controlling write transactions between initiators and recipients via interconnect logic
US8271859B2 (en) 2007-07-18 2012-09-18 Foundry Networks Llc Segmented CRC design in high speed networks
US8037399B2 (en) 2007-07-18 2011-10-11 Foundry Networks, Llc Techniques for segmented CRC design in high speed networks
US20090080419A1 (en) * 2007-09-26 2009-03-26 Kutch Patrick G Providing consistent manageability interface to a management controller for local and remote connections
US8509236B2 (en) 2007-09-26 2013-08-13 Foundry Networks, Llc Techniques for selecting paths and/or trunk ports for forwarding traffic flows
US8407364B2 (en) * 2007-10-25 2013-03-26 Cisco Technology, Inc. Apparatus and method for providing a congestion measurement in a network
US8315256B2 (en) * 2008-04-17 2012-11-20 Gigamon Llc State-based filtering on a packet switch appliance
US9032057B2 (en) 2009-04-06 2015-05-12 Brocade Communications Systems, Inc. Secure stacking setup implementing user interface of stacking device
US8090901B2 (en) 2009-05-14 2012-01-03 Brocade Communications Systems, Inc. TCAM management approach that minimize movements
US8018943B1 (en) 2009-07-31 2011-09-13 Anue Systems, Inc. Automatic filter overlap processing and related systems and methods
US8934495B1 (en) 2009-07-31 2015-01-13 Anue Systems, Inc. Filtering path view graphical user interfaces and related systems and methods
US8098677B1 (en) 2009-07-31 2012-01-17 Anue Systems, Inc. Superset packet forwarding for overlapping filters and related systems and methods
US8599850B2 (en) 2009-09-21 2013-12-03 Brocade Communications Systems, Inc. Provisioning single or multistage networks using ethernet service instances (ESIs)
US8891527B2 (en) * 2012-02-03 2014-11-18 Gigamon Inc. Systems and methods for packet filtering and switching
US9769049B2 (en) * 2012-07-27 2017-09-19 Gigamon Inc. Monitoring virtualized network
US9197586B2 (en) 2012-12-18 2015-11-24 Mellanox Technologies Ltd. Maintaining consistent quality of service between subnets
US8982703B2 (en) 2012-12-18 2015-03-17 Mellanox Technologies Ltd. Routing support for lossless data traffic
US9385949B2 (en) 2012-12-20 2016-07-05 Mellanox Technologies Tlv Ltd. Routing controlled by subnet managers
US9559897B2 (en) 2012-12-21 2017-01-31 Brocade Communications Systems, Inc. Device ID assignment in a system of devices
US9172627B2 (en) * 2013-03-15 2015-10-27 Extreme Networks, Inc. Device and related method for dynamic traffic mirroring
US9584393B2 (en) 2013-03-15 2017-02-28 Extreme Networks, Inc. Device and related method for dynamic traffic mirroring policy
US9813447B2 (en) 2013-03-15 2017-11-07 Extreme Networks, Inc. Device and related method for establishing network policy based on applications
US9148387B2 (en) 2013-05-10 2015-09-29 Brocade Communications Systems, Inc. Hardware hash table virtualization in multi-packet processor networking systems
US9853889B2 (en) 2013-05-20 2017-12-26 Brocade Communications Systems, Inc. Broadcast and multicast traffic reduction in stacking systems
US9313102B2 (en) 2013-05-20 2016-04-12 Brocade Communications Systems, Inc. Configuration validation in a mixed node topology
JP6107413B2 (ja) * 2013-05-22 2017-04-05 富士通株式会社 分析装置、ネットワークシステム、ポートの切り替え方法及びプログラム
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
US9577932B2 (en) 2014-02-12 2017-02-21 Brocade Communications Systems, Inc. Techniques for managing ternary content-addressable memory (TCAM) resources in heterogeneous systems
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
US9467385B2 (en) 2014-05-29 2016-10-11 Anue Systems, Inc. Cloud-based network tool optimizers for server cloud networks
US9781044B2 (en) 2014-07-16 2017-10-03 Anue Systems, Inc. Automated discovery and forwarding of relevant network traffic with respect to newly connected network tools for network tool optimizers
US10050847B2 (en) 2014-09-30 2018-08-14 Keysight Technologies Singapore (Holdings) Pte Ltd Selective scanning of network packet traffic using cloud-based virtual machine tool platforms
US10091059B2 (en) 2014-12-16 2018-10-02 Arris Enterprises Llc Handling connections between network devices that support multiple port communication modes
US9992134B2 (en) 2015-05-27 2018-06-05 Keysight Technologies Singapore (Holdings) Pte Ltd Systems and methods to forward packets not passed by criteria-based filters in packet forwarding systems
US10652112B2 (en) 2015-10-02 2020-05-12 Keysight Technologies Singapore (Sales) Pte. Ltd. Network traffic pre-classification within VM platforms in virtual processing environments
US10116528B2 (en) 2015-10-02 2018-10-30 Keysight Technologies Singapore (Holdings) Ptd Ltd Direct network traffic monitoring within VM platforms in virtual processing environments
US10142212B2 (en) 2015-10-26 2018-11-27 Keysight Technologies Singapore (Holdings) Pte Ltd On demand packet traffic monitoring for network packet communications within virtual processing environments
US10880168B2 (en) * 2016-04-01 2020-12-29 Hewlett Packard Enterprise Development Lp Switch configuration
CN106789425B (zh) * 2016-12-22 2019-08-02 北京东土科技股份有限公司 一种确定重复报文的方法及装置
JP6740911B2 (ja) * 2017-01-16 2020-08-19 富士通株式会社 ポート切替プログラム、ポート切替方法、および情報処理装置
US10296370B2 (en) * 2017-05-30 2019-05-21 Nicira, Inc. Port mirroring in a virtualized computing environment
CN113346983B (zh) * 2021-08-03 2021-11-02 浙江国利信安科技有限公司 具有镜像冗余的epa设备和epa系统
CN114826972B (zh) * 2022-03-24 2023-12-26 新华三技术有限公司合肥分公司 一种堆叠设备及其堆叠解除方法

Family Cites Families (76)

* 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 電子機器
DE69319757T2 (de) 1992-01-10 1999-04-15 Digital Equipment Corp Verfahren zur Verbindung einer Leitungskarte mit einer Adressenerkennungseinheit
SE470039B (sv) 1992-03-17 1993-10-25 Ellemtel Utvecklings Ab Sätt att i en paketväljare åstadkomma länkgruppering
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
US5802287A (en) 1993-10-20 1998-09-01 Lsi Logic Corporation Single chip universal protocol multi-function ATM network interface
US5887187A (en) 1993-10-20 1999-03-23 Lsi Logic Corporation Single chip network adapter apparatus
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
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
GB9510933D0 (en) 1995-05-31 1995-07-26 3Com Ireland Simple work group implementation mechanism
US5664116A (en) 1995-07-07 1997-09-02 Sun Microsystems, Inc. Buffering of data for transmission in a computer communication system interface
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
JPH1023025A (ja) * 1996-07-04 1998-01-23 Nec Corp 無線会議システム
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
US6061351A (en) 1997-02-14 2000-05-09 Advanced Micro Devices, Inc. Multicopy queue structure with searchable cache area
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
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
US6041042A (en) * 1997-05-27 2000-03-21 Cabletron Systems, Inc. Remote port mirroring system and method thereof
US6021132A (en) 1997-06-30 2000-02-01 Sun Microsystems, Inc. Shared memory management in a switched network element
US6246680B1 (en) 1997-06-30 2001-06-12 Sun Microsystems, Inc. Highly integrated multi-layer switch element architecture
US6115378A (en) 1997-06-30 2000-09-05 Sun Microsystems, Inc. Multi-layer distributed network element
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
US6088356A (en) 1997-06-30 2000-07-11 Sun Microsystems, Inc. System and method for a multi-layer network element
US6014380A (en) 1997-06-30 2000-01-11 Sun Microsystems, Inc. Mechanism for packet field replacement 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
US5920566A (en) 1997-06-30 1999-07-06 Sun Microsystems, Inc. Routing in a multi-layer distributed network element
US6016310A (en) * 1997-06-30 2000-01-18 Sun Microsystems, Inc. Trunking support in a high performance network device
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
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
US6154462A (en) 1997-08-21 2000-11-28 Adc Telecommunications, Inc. Circuits and methods for a ring network
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
GB9725374D0 (en) * 1997-11-28 1998-01-28 3Com Ireland Port mirroring and security in stacked communication devices
GB9725372D0 (en) 1997-11-28 1998-01-28 3Com Ireland Trunking in stacked communication devices
US6339595B1 (en) 1997-12-23 2002-01-15 Cisco Technology, Inc. Peer-model support for virtual private networks with potentially overlapping addresses
GB2337905B (en) 1998-05-28 2003-02-12 3Com Technologies Ltd Buffer management in network devices
GB2338155B (en) 1998-06-05 2003-02-12 3Com Technologies Ltd Hub system with ring arbitration
US6490276B1 (en) 1998-06-29 2002-12-03 Nortel Networks Limited Stackable switch port collapse mechanism
US6496502B1 (en) 1998-06-29 2002-12-17 Nortel Networks Limited Distributed multi-link trunking method and apparatus
US6570875B1 (en) 1998-10-13 2003-05-27 Intel Corporation Automatic filtering and creation of virtual LANs among a plurality of switch ports
DE60031515T2 (de) * 1999-03-17 2007-08-23 Broadcom Corp., Irvine Netzwerkvermittlung
WO2000072533A1 (en) * 1999-05-21 2000-11-30 Broadcom Corporation Stacked network switch configuration
JP2001015704A (ja) * 1999-06-29 2001-01-19 Hitachi Ltd 半導体集積回路
US6839349B2 (en) * 1999-12-07 2005-01-04 Broadcom Corporation Mirroring in a stacked network switch configuration
EP2011685B1 (de) 2006-04-25 2020-01-15 Mitsubishi Denki Kabushiki Kaisha Steuervorrichtung für elektrofahrzeug

Also Published As

Publication number Publication date
EP1238492A2 (de) 2002-09-11
US20020054595A1 (en) 2002-05-09
EP1238492B1 (de) 2004-04-28
US20050074006A1 (en) 2005-04-07
WO2001043354A2 (en) 2001-06-14
US6839349B2 (en) 2005-01-04
AU2066201A (en) 2001-06-18
ATE265774T1 (de) 2004-05-15
US7715328B2 (en) 2010-05-11
DE60010328D1 (de) 2004-06-03
WO2001043354A3 (en) 2001-12-20

Similar Documents

Publication Publication Date Title
DE60010328T2 (de) Spiegelung in einer netzwerkvermittlungsstapelanordnung
DE60133352T2 (de) Gebundene Netzvermittlungskonfiguration
DE60126222T2 (de) Verbundene Netzvermittlungskonfiguration
DE60127794T2 (de) Gebundene Netzschalterkonfiguration
DE60126223T2 (de) Anordnung zur Verbindung von Netzvermittlungsstellen
DE60031515T2 (de) Netzwerkvermittlung
US6813268B1 (en) Stacked network switch configuration
US6104696A (en) Method for sending packets between trunk ports of network switches
US7593403B2 (en) Stacked network switch configuration
US20080247394A1 (en) Cluster switching architecture
US7099276B1 (en) Apparatus and method for distributing a load across a trunk group
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
DE60217988T2 (de) System und Verfahren zum zeitschlitzbasierten Erlernen und Durchsuchen von ARL Tabellen mit Blockierung der Einfügung
DE60217572T2 (de) System und Verfahren zum zeitschlitzbasierten Erlernen und Durchsuchen von ARL Tabellen unter Verwendung von Schreib-snoop
DE60121727T2 (de) Vermittlungsstelle mit virtuellem geteiltem Speicher
DE60036292T2 (de) Architektur zur gruppenbasierten vermittlung
DE60037424T2 (de) Vereinigte Tabelle zur L2-, L3-, L4-Vermittlung und Filterung
US7031302B1 (en) High-speed stats gathering in a network switch
DE60022870T2 (de) Verfahren zur überlastungsverwaltung in einer netzwerkvermittlung
DE60037512T2 (de) Speicherverwaltungseinheit in einer netzvermittlungsstelle
DE60120684T2 (de) Architektur für eingebaute Gigabitvermittlung

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