DE60215416T2 - Zeigerbasierte binäre Suchmaschine und dafür geeignetes Verfahren - Google Patents

Zeigerbasierte binäre Suchmaschine und dafür geeignetes Verfahren Download PDF

Info

Publication number
DE60215416T2
DE60215416T2 DE60215416T DE60215416T DE60215416T2 DE 60215416 T2 DE60215416 T2 DE 60215416T2 DE 60215416 T DE60215416 T DE 60215416T DE 60215416 T DE60215416 T DE 60215416T DE 60215416 T2 DE60215416 T2 DE 60215416T2
Authority
DE
Germany
Prior art keywords
data
mask
packet
rules
rule
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
DE60215416T
Other languages
English (en)
Other versions
DE60215416D1 (de
Inventor
Jonathan Fremont Lin
Somayajulu San Jose Pullela
David Campbell Billings
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
Application filed by Broadcom Corp filed Critical Broadcom Corp
Application granted granted Critical
Publication of DE60215416D1 publication Critical patent/DE60215416D1/de
Publication of DE60215416T2 publication Critical patent/DE60215416T2/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
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0894Policy-based network configuration management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0895Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements

Description

  • Diese Anmeldung beansprucht Priorität aus der am 7. März 2001 mit der laufenden Eingangsnummer 60/273,516 eingereichten, vorläufigen US-amerikanischen Anmeldung mit dem Titel "Pointer based binary table search" (Zeigerbasierte binäre Tabellensuche).
  • HINTERGRUND DER ERFINDUNG
  • Gebiet der Erfindung
  • Die Erfindung betrifft eine Netzwerkvorrichtung und ein Verfahren zum Filtern eines Datenpakets in einer Netzwerkvorrichtung. Insbesondere betrifft die Erfindung zeigerbasierte binäre Tabellensuchsysteme und Verfahren zum Durchsuchen von Speicher innerhalb einer Netzwerkvorrichtung, wie beispielsweise einem Hochleistungs-Netzwerk-Switch.
  • Beschreibung des Stands der Technik
  • Da sich die Leistungsfähigkeit von Computern in den letzten Jahren erhöht hat, sind die Anforderungen an Computer-Netzwerke beträchtlich gestiegen; schnellere Computer-Prozessoren und höhere Speicherleistungen erfordern Netzwerke mit hoher Leistungsfähigkeit hinsichtlich der Bandbreite, um die Hochgeschwindigkeitsübertragung von bedeutenden Datenmengen zu ermöglichen. Die gut bekannte Ethernet-Technologie, die auf zahlreichen IEEE-Ethernet-Standards basiert, ist ein Beispiel für Computer-Netzwerktechnologie, die so verändert und verbessert werden konnte, dass sie weiterhin eine brauchbare Computer-Technologie ist. Eine umfassendere Abhandlung von Netzwerksystemen nach dem Stand der Technik findet sich beispielsweise in SWITCHED AND FAST ETHERNET von Breyer und Riley (Ziff-Davis, 1996) und in zahlreichen, sich auf die IEEE 802-Standards beziehenden IEEE-Veröffentlichungen. Die auf dem OSI-7-Schichten-Referenzmodell basierenden Netzwerkfunktionen wurden durch die Entwicklung von Repeatern, Bridges, Routern und in jüngster Zeit "Switches" ausgebaut, die mit verschiedenen Arten von Kommunikationsmedien funktionieren. Thick-Wire-, Thin-Wire-, Twisted-Pair- und Glasfaserkabel sind Beispiele für Medien, die für Computer-Netzwerke eingesetzt wurden und werden. Unter Switches versteht man mit Bezug auf Computer-Netz werke und Ethernet Hardware-gestützte Vorrichtungen, die den Fluss von Datenpaketen oder Zellen auf der Grundlage von Zieladresseninformationen steuern, die in jedem Paket zur Verfügung stehen. Ein in geeigneter Weise konstruierter und implementierter Switch sollte in der Lage sein, ein Paket zu empfangen und das Paket mit so genannter Leitungsgeschwindigkeit an einen geeigneten Ausgangs-Port weiterzuvermitteln, wobei es sich um die maximale Geschwindigkeit handelt, die in dem betreffenden Netzwerk leistungsmäßig möglich ist. Aktuelle grundlegende Ethernet-Leitungsgeschwindigkeiten reichen von 10 Megabit pro Sekunde (Mps) bis zu 10.000 Mps bzw. 10 Gigabit pro Sekunde. Mit zunehmender Geschwindigkeit sind die Konstruktions-Randbedingungen und -anforderungen im Hinblick auf das Befolgen geeigneter Konstruktions- und Protokollregeln und das Bereitstellen einer preisgünstigen, wirtschaftlich machbaren Lösung immer komplexer geworden
  • Der Wettbewerb und andere marktbedingte Zwänge erfordern die Herstellung von leistungsfähigeren Netzwerkvorrichtungen, die weniger kosten. Von den Kunden wird eine höhere Geschwindigkeit des Netzwerks und der Vorrichtungen gefordert.
  • Die Netzwerkleistung, das heißt erhöhte Geschwindigkeit der Vorrichtungen und verringerte Latenz der Datenpakete, steht in direktem Bezug zu der Zeit, die die Vorrichtungen benötigen, um den Speicher im Zusammenhang mit dem Weiterleiten eines Pakets zu durchsuchen, beispielsweise wenn ein Switch Speichertabellen nach Zieladressen, Regeln usw. durchsucht. Somit werden neue und verbesserte Systeme und Verfahren zum Durchsuchen von Speicherbänken innerhalb von Netzwerkvorrichtungen, wie beispielsweise innerhalb eines Hochleistungs-Switches, benötigt, um Hochleistungs-Netzwerklösungen zu unterstützen.
  • Das Dokument WO 0056024 A bezieht sich auf einen Netzwerk-Switch zum Vermitteln von Paketen von einer Quelle zu einem Ziel, mit einem Quell-Port zum Empfangen eines ankommenden Paketes von einer Quelle, einem Ziel-Port, der einen Pfad zu einem Ziel für das Paket enthält, einer Filtereinheit zum Aufbauen und Anwenden eines Filters auf ausgewählte Felder des ankommenden Pakets, einer Regeltabelle, die eine Vielzahl von Regeln enthält. Eine Filterlogik, die Teil der Filtereinheit ist, ist so konfiguriert, dass sie einen Feldwert auf der Grundlage der ausgewählten Felder aufbaut und Suchvorgänge in der Regeltabelle durchführt, um Aktionen zu bestimmen, die auf der Grundlage des Ergebnisses eines Vergleichs zwischen einem Feldwert und den gespeicherten Filtermasken sowie der Suche in der Regeltabelle durchgeführt werden müssen.
  • Das Dokument US 06061712 A beschreibt einen Hochgeschwindigkeits-Router zum Bestimmen des besten Leitwegs für ein IP-Datenpaket mit wenigstens einer IP-Adresse mit X Bits, wobei der Router ein Radix-Baumverfahren mit Hashing verwendet, um die Suchoperationen für den IP-Leitweg durchzuführen.
  • Erfindungsgemäß wird eine Netzwerkvorrichtung bereitgestellt, wie im unabhängigen Anspruch 1 definiert, sowie ein Verfahren zum Filtern eines Datenpakets in einer Netzwerkvorrichtung, wie im unabhängigen Anspruch 8 definiert.
  • Weitere vorteilhafte Merkmale der Erfindung sind in den Unteransprüchen definiert.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die Aufgaben und Merkmale der Erfindung sind unter Bezugnahme auf die folgende Beschreibung und die beigefügten Zeichnungen besser verständlich. Es zeigen:
  • 1 ein allgemeines Blockdiagramm einer beispielhaften erfindungsgemäßen Netzwerkvorrichtung;
  • 2 ein detailliertes Blockdiagramm eines erfindungsgemäßen Netzwerk-Switches;
  • 3 den Datenfluss auf dem CPS-Kanal eines Netzwerk-Switches gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;
  • 4 P-Kanal-Nachrichtentypen gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;
  • 5 ein Nachrichtenformat für S-Kanal-Nachrichtentypen gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;
  • 6 eine Detailansicht von Elementen der PMMU eines Switches gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;
  • 7 das CBM-Zellenformat gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;
  • 8 ein Funktionsdiagramm eines EPIC-Moduls;
  • 9 ein Blockdiagramm eines schnellen Filterprozessors gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;
  • 10 ein Ablaufdiagramm für die Programmierung eines schnellen Filterprozessors gemäß der vorliegenden Erfindung;
  • 11 eine zu durchsuchende Beispieltabelle, bei der es sich um jede beliebige der auf dem Chip befindlichen Tabellen gemäß der vorliegenden Erfindung handeln könnte;
  • 12 ein Blockdiagramm von auf dem Chip befindlicher Logik zum Durchführen von Suchvorgängen gemäß der vorliegenden Erfindung;
  • 13 ein Ablaufdiagramm eines Verfahrens zum Aktualisieren von Zeigern für einen Suchvorgang gemäß der vorliegenden Erfindung; und
  • 14 ein Ablaufdiagramm eines Verfahrens zum Durchführen einer zeigerbasierten Suche gemäß der vorliegenden Erfindung.
  • DETAILLIERTE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSBEISPIELE
  • 1 zeigt ein grundlegendes Blockdiagramm einer beispielhaften Hochgeschwindigkeits-Netzwerkvorrichtung, auf die die vorliegende Erfindung anwendbar ist. Es wird eine beispielhafte Konfiguration eines Netzwerk-Switches gezeigt. Ein Switch auf dem Chip (SOC) 10 ist funktionell mit externen Vorrichtungen 11, externem Speicher 12, Fast-Ethernet-Ports 13 und Gigabit-Ethernet-Ports 15 verbunden. Zum Zweck dieser Erörterung werden Fast-Ethernet-Ports 13 als Ethernet-Ports mit niedriger Geschwindigkeit betrachtet, da sie in der Lage sind, in diesem Beispiel bei Geschwindigkeiten zwischen 10 Mbps und 100 Mbps betrieben werden zu können, während die Gigabit-Ethernet-Ports 15, bei denen es sich um Hochgeschwindigkeits-Ethernet-Ports handelt, die in diesem Beispiel bei 1.000 Mbps oder mehr betrieben werden können, und bevorzugt bei 2.500 Mbps. Externe Vorrichtungen 11 könnten weitere Vermittlungsvorrichtungen zum Erweitern der Vermittlungsfunktionen sein, oder andere Vorrichtungen, wie sie für eine bestimmte Anwendung erforderlich sein können. Bei dem externen Speicher 12 kann es sich um zusätzlichen, nicht auf dem Chip befindlichen Speicher handeln, der zusätzlich zum internen Speicher (auf dem Chip) vorhanden ist, der sich auf dem weiter unten behandelten SOC 10 befindet. Die Zentralrechnereinheit (CPU) 52 kann nach Wunsch zum Programmieren des SOC 10 mit Regeln verwendet werden, die zum Steuern der Paketverarbeitung geeignet sind. Sobald jedoch der SOC 10 in geeigneter Weise programmiert oder konfiguriert wurde, funktioniert der SOC 10 jedoch, so weit wie möglich, in einer ungebundenen Weise, ohne mit der CPU 52 zu kommunizieren. Die CPU 52 steuert nicht jeden Aspekt des Betriebs des SOC 10, weil die Leistungsanforderungen an die CPU 52 in diesem Beispiel, wenigstens im Hinblick auf den SOC 10, recht niedrig sind. Daher kann eine im Vergleich zu anderen Netzwerk-Switches weniger leistungsfähige und somit weniger teure CPU 52 verwendet werden. Wie außerdem nachfolgend erläutert wird, nutzt der SOC 10 den externen Speicher 12 auf effiziente Weise, so dass die Kosten- und Leistungsanforderungen an den Speicher 12 verringert werden können. Der interne Speicher auf dem SOC 10 könnte, wie weiter unten noch ausgeführt wird, auch so konfiguriert werden, dass der Durchsatz bei der Vermittlung maximiert und die Kosten minimiert werden.
  • Es sei angemerkt, dass die beschriebenen Port-Geschwindigkeiten nur beispielhalber aufgeführt sind und dass die Ports so konfiguriert werden können, dass sie mit einer Vielzahl von höheren und niedrigeren Geschwindigkeiten arbeiten können.
  • 2 veranschaulicht ein detaillierteres Blockdiagramm der Funktionselemente des SOC 10. Wie aus 2 hervorgeht und oben bereits angemerkt wurde, umfasst der SOC 10 eine Vielzahl von modularen Systemen auf dem Chip, wobei jedes modulare System, obwohl es sich auf demselben Chip befindet, funktional von den übrigen modularen Systemen getrennt ist. Daher kann jedes Modul auf effiziente Weise parallel mit anderen Modulen betrieben werden, und diese Konfiguration er möglicht ein beträchtliches Maß an Freiheit beim Aktualisieren und Re-Engineering des SOC 10. Es können jedoch auch andere Switch-Konfigurationen oder Netzwerkvorrichtungs-Konfigurationen zur Ausführung der vorliegenden Erfindung verwendet werden.
  • Der SOC 10 kann eine Vielzahl von Ethernet-Port-Schnittstellen-Controllern (EPIC) 20a, 20b, 20c, usw., eine Vielzahl von Gigabit-Port-Schnittstellen-Controllern (GPIC) 30a, 30b, usw., einen CPU-Verwaltungs-Schnittstellen-Controller (CMIC) 40, einen gemeinsamen Pufferspeicher-Pool (CBP) 50, eine PMMU (Speicherverwaltungseinheit mit Pipeline-Technologie) 70, einschließlich eines gemeinsamen Puffer-Managers (CBM) 71, und eine systemweite Busstruktur umfassen, die als CPS-Kanal 80 bezeichnet wird. Die PMMU 70 weist Speicherverwaltungsmittel auf und kommuniziert mit dem externen Speicher 12, der einen globalen Pufferspeicher-Pool (GBP) 60 umfasst. Der CPS-Kanal 80 umfasst den C-Kanal 81, den P-Kanal 82 und den S-Kanal 83. Der CPS-Kanal wird auch als "Zellen-Protokoll-Seitenband-Kanal" bezeichnet, und es handelt sich dabei um einen 17 Gbps-Kanal, der die verschiedenen Module miteinander verbindet. Wie auch in 2 veranschaulicht, können weitere Hochgeschwindigkeits-Interconnect-Verbindungen bereitgestellt werden, wie hier als erweiterbare Hochgeschwindigkeits-Interconnect-Verbindung gezeigt ist. In einer Konfiguration kann diese Interconnect-Verbindung in Form eines Interconnect-Port-Schnittstellen-Controllers (IPIC) 90 vorliegen, der in der Lage ist, die Schnittstelle zwischen dem CPS-Kanal 80 und den externen Vorrichtungen 11 über eine erweiterbare Hochgeschwindigkeits-Interconnect-Verbindung zu bilden. Wie weiter unten noch behandelt wird, stehen der EPIC 20a, 20b und 20c, die allgemein als EPIC 20 bezeichnet werden, und der GPIC 30a und 30b, die allgemein als GPIC 30 bezeichnet werden, alle eng mit den geeigneten Tabellen für die Adressauflösungslogik und den Schicht-3-Vermittlungs-tabellen 21a, 21b, 21c, 31a, 31b, den Regeltabellen 22a, 22b, 22c, 31a, 31b und den VLAN-Tabellen 23a, 23b, 23c, 31a, 31b in Beziehung. Diese Tabellen werden allgemein mit 21, 31, 22, 32, 23 bzw. 33 bezeichnet. Diese Tabellen können, wie andere Tabellen auf dem SOC 10, als zweidimensionale Arrays in Silizium implementiert werden.
  • Der EPIC 20 kann eine Anzahl von Fast-Ethernet-Ports 13 (beispielhalber sind 8 gezeigt) unterstützen und vermittelt Pakete nach Bedarf von und/oder zu diesen Ports. Die Ports sind daher unter Verwendung einer bekannten Medienanschlusstechnologie an das Netzwerkmedium (Koaxial-, Twisted-Pair-, Glasfaserka bel, usw.) angeschlossen und kommunizieren mit dem CPS-Kanal 80 auf deren anderer Seite. Die Schnittstelle jedes EPIC 20 zu dem Netzwerkmedium kann durch eine reduzierte interne Medienschnittstelle (RMII) bereitgestellt werden, die den direkten Anschluss des Mediums an den SOC 10 ermöglicht. Wie nach dem Stand der Technik bekannt ist, ist das automatische Aushandeln ein Aspekt von Fast Ethernet, wobei das Netzwerk in der Lage ist, eine höchste Kommunikationsgeschwindigkeit zwischen einer Quelle und einem Ziel auf der Grundlage der Leistungsfähigkeit der jeweiligen Vorrichtungen auszuhandeln. Die Kommunikationsgeschwindigkeit kann, wie zuvor bereits angemerkt, beispielsweise zwischen 10 Mbps und 100 Mbps variieren. Die Funktion zum automatischen Aushandeln ist daher direkt in jedes Modul vom Typ EPIC 20 oder GPIC 30 integriert. Die Tabellen für die Adressauflösungslogik (ARL) und die Schicht-3-Tabellen 21a, 21b, 21c, die Regeltabellen 22a, 22b, 22c und die VLAN-Tabellen 23a, 23b und 23c, sind so konfiguriert, dass sie auf effiziente und zweckmäßige Weise Bestandteil des zugehörigen EPIC sind bzw. eine Schnittstelle zu diesem bilden, um den Paketfluss mit Leitungsgeschwindigkeit zu unterstützen. Der auf dem Chip befindliche Speicher, der gemäß der vorliegenden Erfindung durchsucht wird, kann diese Tabellen umfassen, wie weiter unten detaillierter beschrieben wird.
  • Jeder EPIC 20 und jeder GPIC 30 weist getrennte Eintritts- und Austrittsfunktionen auf. Auf der Eintrittsseite können das selbst eingeleitete und das von der CPU eingeleitete Erlernen der Schicht-2-Adressinformationen erfolgen. Die Adressauflösungslogik (ARL) wird verwendet, um diese Aufgabe zu unterstützen. Die Adressalterung ist als Merkmal integriert, um das Speichern von Adressinformationen zu verhindern, die nicht mehr gültig oder nützlich sind. Der EPIC und der GPIC können außerdem das Spiegeln auf Schicht 2 durchführen. Ein schneller Filterprozessor (FFP) 141 (siehe 3) kann in den EPIC integriert sein, um die Paketweiterleitung zu beschleunigen und den Paketfluss zu verbessern.
  • Die Eintrittsseite jedes EPIC und GPIC, die in 8 als Eintritts-Submodul 14 veranschaulicht ist, weist eine beträchtliche Komplexität auf, damit sie in der Lage ist, eine beträchtliche Anzahl von verschiedenen Pakettypen zu verarbeiten, die am Port ankommen können, um eine Pufferung bei Leitungsgeschwindigkeit und dann einen geeigneten Transfer zum Austritt zu erreichen. Funktionell kann jeder Port an jedem Modul des SOC 10 ein ihm zugeordnetes, gesondertes Eintritts-Submodul 14 aufweisen. Aus der Sichtweise der Implementierung können jedoch zum Implementieren einer Vielzahl von Eintritts-Submodulen in jedem einzelnen Modul übliche Hardware-Elemente in Silizium verwendet werden, um die Menge der auf dem Einzel-Chip-SOC 10 implementierten Hardware möglichst gering zu halten. Die in diesem Dokument behandelte Konfiguration des SOC 10 erlaubt das gleichzeitige Suchen und Filtern. Das Suchen auf Schicht 2, das Suchen auf Schicht 3 und das Filtern erfolgen gleichzeitig, um ein hohes Leistungsniveau zu erreichen, was nachfolgend noch detaillierter beschrieben wird. Auf der Austrittsseite sind der EPIC und der GPIC in der Lage, das Abfragen von Paketen entweder als Funktion des Austritts-Managements oder der Service-Klasse (COS) zu unterstützen. Eine Umleitung/Planung von zu übertragenden Paketen kann auftreten, sowie eine Benachrichtigung bei Head-of-Line-Blocking (HOL), Paketalterung, Neuzusammensetzen der Zellen (Cell Reassembly) und weitere mit der Ethernet-Port-Schnittstelle verbundene Funktionen.
  • Jeder GPIC 30 ähnelt jedem EPIC 20, allerdings unterstützt er in diesem Ausführungsbeispiel nur einen 2,5-Gigabit-Ethernet-Port und verwendet eine Port-spezifische ARL-Tabelle, anstatt eine ARL-Tabelle zu verwenden, die mit anderen Ports gemeinsam verwendet wird. Außerdem bildet jeder GPIC-Port unter Verwendung einer medienunabhängigen Gigabit-Schnittstelle (GMII) anstelle einer RMII eine Schnittstelle zu dem Netzwerkmedium.
  • Ein CMIC 40 kann als Gateway zwischen dem SOC 10 und der Host-CPU fungieren. Die Kommunikation kann beispielsweise auf einem PCI-Bus oder einem anderen akzeptablen Kommunikationsbus erfolgen. Der CMIC 40 kann sequenzielle, direkte, abgebildete Zugriffe zwischen der Host-CPU 52 und dem SOC 10 bereitstellen. Die CPU 52 ist durch den CMIC 40 in der Lage, auf zahlreiche Ressourcen auf dem SOC 10 zuzugreifen, einschließlich MIB-Zähler, programmierbarer Register, Status- und Steuerregister, Konfigurationsregister, ARL-Tabellen, Port-basierte VLAN-Tabellen, VLAN-Tabellen nach IEEE 802.1q, Schicht-3-Tabellen, Regeltabellen, CBP-Adressen- und -Datenspeicher sowie GBP-Adressen- und -Datenspeicher. Optional kann der CMIC 40 DMA-Unterstützung, DMA-Verkettung und Scatter/Gather-Operationen sowie Master- und Ziel-PCI64 umfassen.
  • Der gemeinsame Pufferspeicher-Pool bzw. CBP 50 kann als Datenspeicher auf dem Chip betrachtet werden. In einer Konfiguration kann es sich bei dem CBP 50 um First-Level-Hochgeschwindigkeits-SRAM-Speicher handeln, um die Leistung zu optimieren und die Anforderungen für den Hardware-Systemaufwand möglichst gering zu halten. Der CBP kann eine Größe von beispielsweise 720 KByte bei 132 MHz aufweisen. Pakete werden in dem CBP 50 typischerweise als Zellen anstatt als Pakete gespeichert. Wie in der Figur veranschaulicht, beinhaltet die PMMU 70 außerdem den gemeinsamen Puffer-Manager (CBM) 71. Der CBM 71 kann Empfangs-Suchanforderungen und die Warteschlangenverwaltung handhaben und kann für das Zuweisen von Zellenzeigern zu ankommenden Zellen zuständig sein, sowie für das Zuweisen von allgemeinen Paket-IDs (CPID), sobald das Paket vollständig in den CBP geschrieben wurde. Der CBM 71 kann außerdem für die Verwaltung des Pools der freien Adresszeiger auf dem Chip zuständig sein, den tatsächlichen Datentransfer zum und vom Datenpool steuern und eine Speicher-Budget-Verwaltung bereitstellen. Die vorgenannte Erörterung zeigt eine beispielhafte Konfiguration einer beispielhaften Vorrichtung und soll den Schutzumfang der vorliegenden Erfindung nicht beschränken. Dementsprechend können andere Funktionen oder Einrichtungen als Einheiten zur Speicherverwaltung oder Warteschlangenverwaltung gemäß der vorliegenden Erfindung implementiert werden.
  • Der globale Speicherpuffer-Pool bzw. GBP 60 kann als Second-Level-Speicher verwendet werden, und er kann sich auf dem Chip befinden oder Chip-extern vorliegen. In einer Konfiguration liegt der GBP 60 in Bezug auf den SOC 10 Chipextern vor. Wenn er Chip-extern vorliegt, wird der GBP 60 als Teil des externen Speichers 12 oder als dessen Gesamtheit betrachtet. Als Second-Level-Speicher kann es sich bei dem GBP um Hochgeschwindigkeits-SDRAMs handeln, oder um langsameren, preiswerteren Speicher wie DRAM oder jeden anderen geeigneten Speichertyp. Der GBP kann eng an die PMMU 70 gekoppelt sein und funktioniert insofern wie der CBP, als Pakete als Zellen gespeichert werden. Bei Rundsende- und Mehrfachsende-Nachrichten wird nur ein Exemplar des Pakets im GBP 60 gespeichert.
  • Die PMMU 70 kann zwischen dem GBP 60 und dem CPS-Kanal 80 angeordnet sein und fungiert als Schnittstelle zum externen Speicher. Um die Speicherauslastung zu optimieren, weist die PMMU 70 mehrere Lese- und Schreibpuffer auf und unterstützt zahlreiche Funktionen einschließlich globaler Warteschlangenverwaltung, was ganz allgemein die Zuweisung von Zellenzeigern für umgeleitete ankommende Pakete, die Pflege des globalen FAP, die zeitoptimierte Zellenverwaltung, die Verwaltung des globalen Speicherbudgets, die GPID-Zuweisung und die Benachrichtigung des Austrittsmanagers, die Verwaltung des Schreibpuffers, Lese-Pre-Fetches auf der Grundlage von Anforderungen des Austrittsmanagers/der Service-Klasse und eine intelligente Speichersteuerung umfasst.
  • Wie in 2 gezeigt, kann es sich bei dem CPS-Kanal 80 tatsächlich um drei getrennte Kanäle handelt, die als C-Kanal, P-Kanal und S-Kanal bezeichnet werden. Der C-Kanal kann 128 Bit breit sein und bei 132 MHz laufen. Paketübertragungen zwischen den Ports erfolgen auf dem C-Kanal. Da dieser Kanal allein für die Datenübertragung genutzt wird, gibt es im Zusammenhang mit seiner Verwendung keinen Systemaufwand. Der P-Kanal bzw. Protokollkanal ist mit dem C-Kanal synchron bzw. mit diesem fixiert. Während der Übertragung von Zellen wird der Nachrichten-Header mittels der PMMU über den P-Kanal gesendet. Der P-Kanal kann 32 Bit breit sein und kann bei 132 MHz laufen.
  • Der S-Kanal bzw. Seitenbandkanal kann beispielsweise bei 132 MHz laufen und 32 Bit breit sein. Jede geeignete Breite und Geschwindigkeit kommen in Frage. Der S-Kanal kann für Funktionen wie das Übermitteln des Port-Verbindungsstatus, von Empfangs-Port-Überlastungsnachrichten, Port-Statistiken, ARL-Tabellensynchronisation, Speicher- und Registerzugriff an die CPU und an andere CPU-Verwaltungsfunktionen dienen, wobei Nachrichten zur Steuerung der Übertragungsgeschwindigkeit und Benachrichtigungen bei Überlastung des globalen Speichers und des gemeinsamen Speichers weitergeleitet werden.
  • Um die Funktionsweise des SOC 10 einwandfrei verstehen zu können, ist ein einwandfreies Verständnis der Funktionsweise des CPS-Kanals 80 erforderlich. Unter Bezugnahme auf 3 ist ersichtlich, dass Pakete im SOC 10 beim Eintritt durch einen EPIC 20 bzw. einen GPIC 30 in 64 Byte große Zellen geteilt werden. Die Verwendung von Zellen auf dem Chip anstelle von Paketen erleichtert es dem SOC, mit zellengestützten Protokollen, wie beispielsweise ATM (Asynchronous Transfer Mode) zu arbeiten. Gegenwärtig verwendet ATM jedoch Zellen mit einer Länge von 53 Byte, davon 48 Byte für Nutzdaten und 5 Byte für den Header. In diesem Beispiel des SOC 10 werden ankommende Pakete, wie oben dargelegt, in Zellen mit einer Länge von 64 Byte geteilt, und die Zellen werden weiter in vier getrennte, 16 Byte große Zellenblöcke Cn0...Cn3 aufgeteilt. Mit dem C-Kanal ist der P-Kanal fixiert, wodurch der Befehlscode bzw. Opcode in Synchronisation mit Cn0 fixiert wird. Ein Port-Bitmuster wird während der Phase Cn1 in den P-Kanal eingefügt. Das nicht mit Tags versehene Bitmuster wird während der Phase Cn2 in den P-Kanal eingefügt, und in Cn3 wird ein Zeitstempel auf dem P-Kanal platziert. Unabhängig von den Vorkommnissen auf dem C- und P-Kanal wird der S-Kanal als Seitenband verwendet und ist somit von den Aktivitäten auf dem C- und P-Kanal entkoppelt.
  • Zellen- oder C-Kanal
  • Die Arbitration für den CPS-Kanal erfolgt außerhalb des Bands. Jedes Modul (EPIC, GPIC, usw.) überwacht den Kanal, und übereinstimmende Ziel-Ports antworten auf geeignete Transaktionen. Bei der C-Kanal-Arbitration handelt es sich um ein Demand-Priority-Verfahren, welches den Round-Robin-Arbitrationsmechanismus verwendet. Wenn keine Anforderungen aktiv sind, kann jedoch das Standard-Modul, das während der Konfiguration des SOC 10 ausgewählt werden kann, auf dem Kanal parken und damit den vollständigen Zugriff darauf erhalten. Wenn alle Anforderungen aktiv sind, ist das SOC 10 so konfiguriert, dass der PMMU in jedem zweiten Zyklus Zugriff gewährt wird und dass die EPICs 20 und die GPICs 30 gemeinsam gleichen Zugriff auf den C-Kanal haben, wobei das Round-Robin-Verfahren angewendet wird. 4A und 4B veranschaulichen einen C-Kanal-Arbitrationsmechanismus, wobei Abschnitt A die PMMU darstellt und Abschnitt B aus zwei GPICs und drei EPICs besteht. Die Abschnitte wechseln sich beim Zugriff ab, und da die PMMU das einzige Modul in Abschnitt A ist, erhält sie in jedem zweiten Zyklus Zugriff. Die Module in Abschnitt B erhalten, wie bereits angemerkt, Zugriff auf der Grundlage des Round-Robin-Verfahrens.
  • Protokoll- oder P-Kanal
  • Unter nochmaliger Bezugnahme auf den Protokoll- bzw. P-Kanal kann eine Vielzahl von Nachrichten auf dem P-Kanal platziert werden, um den auf dem C-Kanal fließenden Datenfluss ordnungsgemäß zu leiten. Angenommen, der P-Kanal 82 ist 32 Bit breit, und für eine Nachricht sind typischerweise 128 Bit erforderlich, so können vier kleinere 32-Bit-Nachrichten zusammengestellt werden, um eine vollständige P-Kanal-Nachricht zu bilden. Die folgende Liste nennt einige Beispiele der Felder mit Funktion sowie Beispiele der verschiedenen Bit-Anzahlen der 128 Bit langen Nachricht auf dem P-Kanal.
    Opcode (Befehlscode) – Länge 2 Bit – Gibt den Typ der Nachricht an, die auf dem C-Kanal 81 anliegt;
    IP Bit – Länge 1 Bit – Dieses Bit wird gesetzt, um anzugeben, dass es sich um ein IP-vermitteltes Paket handelt;
    IPX Bit – Länge 1 Bit – Dieses Bit wird gesetzt, um anzugeben, dass es sich um ein IPX-vermitteltes Paket handelt;
    Next Cell (Nächste Zelle) – Länge 2 Bit – Dies ist eine Folge von Werten, um die gültigen Bytes in der entsprechenden Zelle auf dem C-Kanal 81 zu identifizieren;
    SRC DEST Port (QUELL-ZIEL-Port) – Länge 6 Bit – Definiert die Nummer des Ports, der die Nachricht sendet bzw. die Nachricht empfängt, wobei die Interpretation der Quelle bzw. des Ziels vom Befehlscode abhängt;
    Cos (Service-Klasse) – Länge 3 Bit – Definiert die Service-Klasse für das aktuelle Paket, das gerade verarbeitet wird;
    J – Länge 1 Bit – Beschreibt, ob es sich bei dem aktuellen Paket um ein Jumbo-Paket handelt;
    S – Länge 1 Bit – Gibt an, ob es sich bei der aktuellen Zelle um die erste Zelle des Pakets handelt;
    E – Länge 1 Bit – Gibt an, ob es sich bei der aktuellen Zelle um die letzte Zelle des Pakets handelt;
    CRC – Länge 2 Bit – Gibt an, ob ein Wert für eine zyklischen Redundanzprüfung (CRC) an das Paket angehängt werden soll und ob ein CRC-Wert neu generiert werden soll;
    P Bit – Länge 1 Bit – Gibt an, ob die MMU das gesamte Paket löschen soll;
    Len (Länge) – Länge 7 Bit – Gibt die gültige Anzahl von Byte bei der aktuellen Übertragung an;
    O – Länge 2 Bit – Definiert eine Optimierung für die Verarbeitung durch die CPU 52; und
    Bc/Mc Bitmap (Bitmuster für Rundsenden/Mehrfachsenden) – Länge 28 Bit – Definiert das Rundsende- oder Mehrfachsende-Bitmuster. Gibt Austritts-Ports an, auf die das Paket bezüglich der Rundsende- oder Mehrfachsende-Nachrichten gesetzt werden soll.
    Untag Bits/Source Port (Bits ohne Tags/Quell-Port) – Länge 28/5 Bit – Je nach Befehlscode wird das Paket vom Port zur MMU übertragen, und dieses Feld wird als Bitmuster ohne Tags interpretiert. Ein anderer ausgewählter Befehlscode gibt an, dass das Paket von der MMU zum Austritts-Port übertragen wird, und die letzten sechs Bit dieses Felds werden als Quell-Port-Feld interpretiert. Die Bits ohne Tags geben die Austritts-Ports an, welche den Tag-Header entfernen, und die Quell-Port-Bits geben die Nummer des Ports an, auf dem das Paket in den Switch gelangt ist;
    U Bit – Länge 1 Bit – Bei Auswahl eines bestimmten Befehlscodes (0 × 01) bedeutet das Setzen dieses Bits, dass das Paket den Port ohne Tags verlassen soll; in diesem Fall wird das Entfernen der Tags vom geeigneten MAC vorgenommen;
    CPU Opcode (CPU-Befehlscode) – Länge 18 Bit – Diese Bits werden gesetzt, wenn das Paket aus irgendeinem Grund an die CPU gesendet wird. Befehlscodes werden auf der Grundlage einer Übereinstimmung mit einem Filter, gesetzten Lern-Bits, Weiterleitungs-Bits, dem Scheitern der Zielsuche (DLF), der Verlagerung einer Station usw. definiert;
    Time Stamp (Zeitstempel) – 14 Bit – Das System setzt einen Zeitstempel in diesem Feld, wenn das Paket ankommt, wobei eine Detailgenauigkeit von 1 μs gilt.
  • Das Feld "Opcode" der P-Kanal-Nachricht definiert den Typ der aktuell gesendeten Nachricht. Während der Befehlscode aktuell mit einer Länge von 2 Bit gezeigt wird, kann das Feld "Opcode" nach Bedarf erweitert werden, um neue Nach richtentypen zu berücksichtigen, die gegebenenfalls in der Zukunft definiert werden. In 4 ist jedoch der oben definierte P-Kanal-Nachrichtentyp grafisch gezeigt.
  • Eine Nachricht für eine vorzeitige Beendigung wird verwendet, um dem CBM 71 anzugeben, dass das aktuelle Paket beendet werden soll. Während des Betriebs wird, wie weiter unten noch detaillierter behandelt wird, das Statusbitfeld (P) in der Nachricht gesetzt, um anzugeben, dass das gesamte Paket aus dem Speicher gelöscht werden soll. Außerdem würden alle betroffenen Austritts-Ports als Reaktion auf das Statusbit das aktuelle Paket vor der Übertragung löschen.
  • Das Feld "Src Dest Port" der P-Kanal-Nachricht gibt, wie oben angegeben, die Adresse des Ziel- bzw. des Quell-Ports an. Jedes dieser Felder ist 6 Bit lang und ermöglicht daher die Adressierung von vierundsechzig Ports.
  • Das Feld "CRC" der Nachricht ist zwei Bit lang und definiert CRC-Aktionen. Bit 0 des Felds stellt eine Angabe bereit, ob der zugehörige Austritts-Port einen CRC an das aktuelle Paket anhängen soll. Ein Austritts-Port würde einen CRC an das aktuelle Paket anhängen, wenn Bit 0 des Felds "CRC" auf eine logische Eins gesetzt wird. Bit 1 des Felds "CRC" stellt eine Angabe bereit, ob der zugehörige Austritts-Port einen CRC für das aktuelle Paket neu generieren soll. Ein Austritts-Port würde einen CRC neu generieren, wenn Bit 1 des Felds "CRC" auf eine logische Eins gesetzt wird. Das Feld "CRC" ist nur für die letzte übertragene Zelle gültig, wie sie durch das auf eine logische Eins gesetzte E-Bit-Feld der P-Kanal-Nachricht definiert ist.
  • Wie beim Feld "CRC" sind das Statusbitfeld (st), das Feld "Len" und das Feld "Cell Count" der Nachricht in diesem Beispiel nur für die letzte Zelle eines übertragenen Pakets gültig, wie es durch das E-Bit-Feld der Nachricht definiert ist.
  • Schließlich weist das Feld "Time Stamp" der Nachricht in diesem Beispiel eine Auflösung von 1 μs auf und ist nur für die erste Zelle des Pakets gültig, die durch das S-Bit-Feld der Nachricht definiert ist. Eine Zelle wird als erste Zelle eines empfangenen Pakets definiert, wenn das S-Bit-Feld der Nachricht auf eine logische Eins gesetzt ist.
  • Der C-Kanal 81 und der P-Kanal 82 sind synchron so miteinander verknüpft, dass Daten auf dem C-Kanal 81 über den CPS-Kanal 80 übertragen werden, während gleichzeitig eine entsprechende P-Kanal-Nachricht übertragen wird.
  • S-Kanal oder Seitenbandkanal
  • Bei dem S-Kanal 83 kann es sich um einen 32 Bit breiten Kanal handeln, der einen getrennten Kommunikationspfad innerhalb des SOC 10 bereitstellt. Der S-Kanal 83 wird von der CPU 52 zur Verwaltung, zur internen Flusssteuerung des SOC 10 und zum Versenden von Nachrichten zwischen den Modulen des SOC 10 verwendet. Der S-Kanal 83 ist ein Seitenbandkanal des CPS-Kanals 80 und elektrisch und physisch von dem C-Kanal 81 und dem P-Kanal 82 isoliert. Da der S-Kanal von dem C-Kanal 81 und von dem P-Kanal 82 getrennt und unterschiedlich ist, ist es wichtig, darauf hinzuweisen, dass der Betrieb des S-Kanals 83 ohne Leistungseinbußen im Bezug auf den Betrieb des C-Kanals 81 und des P-Kanals 82 fortgesetzt werden kann. Da umgekehrt der C-Kanal nicht für die Übertragung von Systemnachrichten verwendet wird, sondern nur für Daten, gibt es im Zusammenhang mit dem C-Kanal 81 keinen Systemaufwand, und somit ist der C-Kanal 81 in der Lage, wie erforderlich ungebunden zu laufen, um die ankommenden und abgehenden Paketinformationen zu handhaben.
  • Der S-Kanal 83 des CPS-Kanals 80 stellt einen systemweiten Kommunikationspfad zum Übertragen von Systemnachrichten bereit, beispielsweise, indem er für die CPU 52 den Zugriff auf die Steuerstruktur des SOC 10 bereitstellt. Die Systemnachrichten umfassen Port-Statusinformationen, einschließlich Port-Verbindungsstatus, Empfangs-Port-Überlastungsnachrichten und Port-Statistiken, Synchronisation der ARL-Tabelle 22, Zugriff der CPU 52 auf die Speicherpuffer des GBP 60 und des CBP 50 und die Steuerregister des SOC 10, und Benachrichtigungen bei Überlastung des Speichers, der dem GBP 60 und/oder dem CBP 50 entspricht.
  • 5 veranschaulicht ein beispielhaftes Nachrichtenformat für eine S-Kanalnachricht auf dem S-Kanal 83. Die Nachricht wird aus vier 32-Bit-Datenwörtern gebildet; die Bits der Felder der einzelnen Wörter sind wie folgt definiert:
    Opcode (Befehlscode) – Länge 6 Bit – Gibt den Typ der Nachricht an, die auf dem S-Kanal 83 anliegt;
    Dest Port (Ziel-Port) – Länge 6 Bit – Gibt die Nummer des Ports an, an den die aktuelle S-Kanalnachricht adressiert ist;
    Src Port (Quell-Port) – Länge 6 Bit – Definiert die Nummer des Ports, von dem die aktuelle S-Kanalnachricht stammt;
    COS (Service-Klasse) – Länge 3 Bit – Definiert die Service-Klasse, die mit der aktuellen S-Kanalnachricht verbunden ist; und
    C Bit – Länge 1 Bit – Definiert logisch, ob die aktuelle S-Kanalnachricht für die CPU 52 gedacht ist.
    Error Code (Fehlercode) – Länge 2 Bit – Definiert einen gültigen Fehler, wenn das E-Bit gesetzt ist.
    DataLen (Datenlänge) – Länge 7 Bit – Definiert die Gesamtanzahl der Datenbytes im Feld Data;
    E Bit – Länge 1 Bit – Gibt logisch an, ob bei der Ausführung des durch den Befehlscode definierten, aktuellen Befehls ein Fehler aufgetreten ist;
    Address (Adresse) – Länge 32 Bit – Definiert die Speicheradresse, die mit dem durch den Befehlscode definierten, aktuellen Befehl verbunden ist;
    Data (Daten) – Länge 0 bis 127 Bit – Enthält die mit dem aktuellen Befehlscode verbundenen Daten.
  • Durch die oben erläuterte Konfiguration des CPS-Kanals 80 ist der S-Kanal so von dem C-Kanal und dem P-Kanal entkoppelt, dass die Bandbreite auf dem C-Kanal für die Übertragung von Zellen reserviert werden kann und die Überladung des C-Kanals keine Auswirkungen auf die Kommunikation auf dem Seitenbandkanal hat.
  • Betrieb des SOC
  • Die Konfiguration des SOC 10 kann, wie oben erörtert, Fast-Ethernet-Ports, Gigabit-Ports und erweiterbare Interconnect-Verbindungen unterstützen. Die Konfiguration des SOC kann auch "gestapelt" oder "verbunden" sein, wodurch eine erhebliche Leistungsfähigkeit hinsichtlich der Port-Erweiterung ermöglicht wird. Sobald Datenpakete vom SOC 10 empfangen, in Zellen geteilt und auf dem CPS-Kanal 80 platziert wurden, können gestapelte SOC-Module eine Schnittstelle mit dem CPS-Kanal bilden und den Kanal überwachen und nach Bedarf die geeigneten Informationen extrahieren. Selbstverständlich ist das Teilen nicht notwendigerweise wesentlich für die vorliegende Erfindung, wird aber im Hinblick auf das vorliegende Ausführungsbeispiel behandelt. Wie weiter unten noch erörtert wird, erfolgt, im Hinblick auf die Suche auf Schicht 2 und Schicht 3, gemäß der vorliegenden Erfindung eine erhebliche Anzahl von gleichzeitigen Such- und Filtervorgängen, wenn das Paket an dem Eintritts-Submodul 14 eines EPIC 20 oder GPIC 30 ankommt.
  • Die Tabellenverwaltung kann auch durch die Verwendung der CPU 52 erreicht werden. Die CPU 52 kann, über den CMIC 40, dem SOC 10 Softwarefunktionen bereitstellen, was in der Bezeichnung der Identifikation eines Benutzers an einem bestimmten Port 24 resultiert. Wie oben bereits erörtert, ist es nicht wünschenswert, dass die CPU 52 auf die Paketinformationen in ihrer Gesamtheit zugreift, da dies zu Leistungseinbußen führen würde. Vielmehr wird der SOC 10 durch die CPU 52 mit Identifikationsinformationen bezüglich des Benutzers programmiert. Der SOC 10 kann einen Echtzeit-Datenfluss aufrechterhalten, da die Kommunikation bezüglich der Tabellendaten zwischen der CPU 52 und dem SOC 10 ausschließlich auf dem S-Kanal 83 erfolgt. Während der SOC 10 der CPU 52 direkte Paketinformationen über den C-Kanal 81 bereitstellen kann, ist eine solche Systemeinrichtung aus den vorgenannten Gründen nicht wünschenswert. Wie oben erwähnt, wird als Eintrittsfunktion eine Adressauflösungs-Suche durchgeführt, indem die ARL-Tabelle 21a untersucht wird. Wenn das Paket an einen der Schicht-3-Switches (S3) des SOC 10 adressiert ist, führt das Eintritts-Submodul 14a die S3- und die Standardtabellensuche durch. Sobald der Ziel-Port bestimmt wurde, setzt der EPIC 20a ein Fertig-Flag in der Versandeinheit 18a, die dann für den C-Kanal 81 eine Vereinbarung trifft.
  • Bei dem Arbitrations-Schema des C-Kanals 81 kann es sich, wie zuvor bereits erörtert, um ein Demand-Priority-Verfahren nach dem Round-Robin-Mechanismus handeln. Jedes E/A-Modul, jeder EPIC 20, GPIC 30 und CMIC 40 kann zusammen mit der PMMU 70 eine Anforderung für den Zugriff auf den C-Kanal 81 einleiten.
  • Wenn zu einem bestimmten Zeitpunkt keine Anforderung vorhanden ist, wird einem Standard-Modul, das mit einer hohen Priorität definiert wurde, vollständiger Zugriff auf den C-Kanal 81 erteilt. Wenn irgendein einzelnes E/A-Modul oder die PMMU 70 Zugriff auf den C-Kanal anfordert, erhält dieses einzelne Modul den Zugriff auf den C-Kanal 81 nach Anforderung (on Demand).
  • Wenn die EPIC-Module 20a, 20b, 20c und die GPIC-Module 30a und 30b sowie der CMIC 40 gleichzeitig Zugriff auf den C-Kanal anfordern, wird dieser Zugriff mittels des Round-Robin-Verfahrens gewährt. Während eines bestimmten Arbitrations-Zeitraums würde jedem I/O-Modul Zugriff auf den C-Kanal 81 gewährt. So würde beispielsweise jedem der GPIC-Module 30a und 30b Zugriff gewährt, anschließend den EPIC-Modulen und schließlich dem CMIC 40. Nach jedem Arbitrations-Zeitraum würde dem nächsten E/A-Modul mit einer gültigen Anforderung Zugriff auf den C-Kanal 81 gewährt. Dieses Muster würde so lange fortgesetzt, wie jedes der I/O-Module eine aktive Anforderung zum Zugriff auf den C-Kanal 81 bereitstellt.
  • Wenn alle E/A-Module einschließlich der PMMU 70 Zugriff auf den C-Kanal 81 anfordern, wird der PMMU 70 der Zugriff wie in 4B gezeigt gewährt, da die PMMU einen wesentlichen Datenpfad für alle Module auf dem Switch bereitstellt. Wenn die Versandeinheit 18a Zugriff auf den Kanal 81 erhält, fährt sie fort, das empfangene Paket 112 jeweils zellenweise an den C-Kanal 81 zu übergeben.
  • Unter nochmaliger Bezugnahme auf 3 sind die einzelnen Kanäle C, P und S des CPS-Kanals 80 gezeigt. Sobald die Versandeinheit 18a die Erlaubnis erhalten hat, auf den CPS-Kanal 80 zuzugreifen, platziert die Versandeinheit 18a während des ersten Zeitraums Cn0 die ersten 16 Byte der ersten Zelle 112a des empfangenen Pakets 112 auf dem C-Kanal 81. Gleichzeitlich platziert die Versandeinheit 18a die erste P-Kanalnachricht, die der aktuell übertragenen Zelle entspricht. Wie oben bereits erwähnt, definiert die erste P-Kanalnachricht unter anderem den Nachrichtentyp. Daher würde in diesem Beispiel die erste P-Kanalnachricht definieren, dass es sich bei der aktuellen Zelle um eine Nachricht vom Typ "Unicast" handelt, die zum Ziel-Austritts-Port 21c geleitet werden soll.
  • Während des zweiten Takts Cn1 werden die zweiten 16 Byte (16:31) der aktuell übertragenen Datenzelle 112a auf dem C-Kanal 81 platziert. Analog wird während des zweiten Takts Cn1 das Bc/Mc-Port-Bitmuster auf dem P-Kanal 82 platziert.
  • Wie durch die Schraffur des S-Kanals 83 während der Zeiträume Cn0 bis Cn3 in 3 angegeben, ist der Betrieb des S-Kanals 83 von dem Betrieb des C-Kanals 81 und des P-Kanals 82 entkoppelt. So kann beispielsweise die CPU 52 über den CMIC 40 Nachrichten auf Systemebene an nicht aktive Module weiterleiten, während ein aktives Modul Zellen auf dem C-Kanal 81 weiterleitet. Wie zuvor bereits erwähnt, ist dies ein wichtiger Aspekt des SOC 10, weil der Betrieb des S-Kanals eine parallele Aufgabenverarbeitung erlaubt, wodurch die Übertragung von Zellendaten auf dem C-Kanal 81 in Echtzeit ermöglicht wird. Sobald die erste Zelle 112a des ankommenden Pakets 112 auf dem CPS-Kanal 80 platziert wird, bestimmt die PMMU 70, ob die Zelle an einen Austritts-Port 21 übertragen werden soll, der sich lokal auf dem SOC 10 befindet.
  • Wenn die PMMU 70 bestimmt, dass die aktuelle Zelle 112a auf dem C-Kanal 81 für einen Austritts-Port des SOC 10 bestimmt ist, übernimmt die PMMU 70 die Steuerung des Zelldatenflusses.
  • 7 veranschaulicht auf detailliertere Weise die funktionalen Austrittsmerkmale der PMMU 70. Die PMMU 70 umfasst den CBM 71 und bildet eine Schnittstelle zwischen dem GBP, dem CBP und einer Vielzahl von Austritts-Managern (EgM) 76 des Austritts-Submoduls 18, wobei für jeden Austritts-Port ein Austritts-Manager 76 bereitgestellt wird. Der CBM 71 ist in einer Parallelkonfiguration über den R-Kanal-Datenbus 77 mit jedem Austritts-Manager 76 verbunden. Der R-Kanal-Datenbus 77 ist ein 32 Bit breiter Bus, der vom CBM 71 und den Austritts-Managern 76 bei der Übertragung von Speicherzeigern und Systemnachrichten verwendet wird. Jeder Austritts-Manager 76 ist außerdem zur Übertragung der Datenzellen 112a und 112b mit dem CPS-Kanal 80 verbunden.
  • Zusammenfassend lässt sich sagen, dass der CBM 71 die Funktionen der auf dem Chip befindlichen Verwaltung des Pools der freien Adressen(FAP), die Übertragung von Zellen an den CBP 50, die Zusammenstellung von Paketen und die Benachrichtigung an die jeweiligen Austritts-Manager, die Weiterleitung von Paketen an den GBP 60 über einen globalen Puffer-Manager sowie die Handhabung des Paketflusses von dem GBP 60 zu dem CBP 50 vornimmt. Speicherbereinigung, Speicherbudgetverwaltung, Kanalschnittstelle und Zellenzeiger-Zuweisung sind ebenfalls Funktionen des CBM 71. Im Hinblick auf den Pool der freien Adressen verwaltet der CBM 71 den Pool der freien Adressen und weist ankommenden Zellen freie Zellenzeiger zu. Der Pool der freien Adressen wird auch von dem CBM 71 zurückgeschrieben, so dass die von verschiedenen Austritts-Managern 76 freigegebenen Zellenzeiger auf geeignete Weise gelöscht werden. Ausgehend davon, dass in dem CBP 50 genügend Speicherplatz verfügbar ist und dass genügend freie Adresszeiger verfügbar sind, verwaltet der CBM 71 wenigstens zwei Zellenzeiger pro Austritts-Manager 76, der gerade verwaltet wird. Die erste Zelle eines Pakets kommt an einem Austritts-Manager 76 an, und der CBM 71 schreibt diese Zelle in die CBM-Speicherzuwei-sung an der Adresse, auf die der erste Zeiger gezeigt hat. Der zweite Zeiger wird in das Header-Feld "Next Cell" geschrieben. Das Format der Zelle, wie sie in dem CBP 50 gespeichert wird, ist in 7 gezeigt; jede Zeile ist 18 Byte lang. Zeile 0 enthält geeignete Informationen im Hinblick auf Informationen zur ersten und zur letzten Zelle, Rundsenden/Mehrfachsenden, die Anzahl der Austritts-Ports für das Rundsenden oder Mehrfachsenden, die Zellenlänge bezüglich der Anzahl von gültigen Bytes in der Zelle, den Zeiger auf die nächste Zelle, die Gesamtanzahl der Zellen im Paket und den Zeitstempel. Die übrigen Zeilen enthalten Zellendaten als 64-Byte-Zellen. Der Pool der freien Adressen innerhalb der PMMU 70 speichert alle freien Zeiger für den CBP 50. Jeder Zeiger in dem Pool der freien Adressen zeigt auf eine 64-Byte-Zelle in dem CBP 50; die tatsächlich in dem CBP gespeicherte Zelle weist insgesamt 72 Byte auf, wobei 64 Byte Bytedaten sind und 8 Byte Steuerinformationen. Funktionen wie HOL-Blocking, Hinweis auf Hoch- und Niedrigstände, Budget-Register für Ausgangswarteschlangen, CPID-Zuweisung und weitere Funktionen werden in dem CBM 71 innerhalb der PMMU 70 behandelt.
  • Wenn die PMMU 70 beispielsweise durch eine Tabellensuche (das heißt eine weiter unten näher beschriebene Suche) bestimmt, dass Zelle 112a für einen geeigneten Austritts-Port im SOC 10 bestimmt ist, steuert die PMMU 70 den Fluss der Zellen von dem CPS-Kanal 80 zu dem CBP 50. Wenn das Datenpaket 112 vom CPS-Kanal 80 an der PMMU 70 ankommt, bestimmt der CBM 71, ob in dem CBP 50 genügend Speicher für das Datenpaket 112 verfügbar ist. Ein (nicht gezeigter) Pool der freien Adressen kann pro Service-Klasse Speicherplatz für wenigstens zwei Zellenzeiger pro Austritts-Manager 76 bereitstellen. Wenn in dem CBP 50 genügend Speicher für das Speichern und Identifizieren des ankommenden Datenpakets ver fügbar ist, platziert der CBM 71 die Datenzelleninformationen auf dem CPS-Kanal 80. Die Datenzelleninformationen werden dem CBP 50 von dem CBM 71 an der zugewiesenen Adresse bereitgestellt. Wenn neue Zellen von der PMMU 70 empfangen werden, weist der CBM 71 Zellenzeiger zu. Der anfängliche Zeiger für die erste Zelle 112a zeigt auf den Austritts-Manager 76, der dem Austritts-Port entspricht, an den das Datenpaket 112 gesendet wird, nachdem es im Speicher platziert worden ist. Im Beispiel von 6 kommen Pakete am Port 24a des EPIC 20c an und sind für Port 24c des EPIC 20c bestimmt. Für jede zusätzliche Zelle 112b weist der CBM 71 einen entsprechenden Zeiger zu. Dieser entsprechende Zellenzeiger wird als NC_Header mit einem Wert von zwei Byte bzw. 16 Bit an einer geeigneten Stelle in einer Steuernachricht gespeichert, wobei der anfängliche Zeiger auf den entsprechenden Austritts-Manager 76 und die folgenden Zellenzeiger Teil jedes Zellen-Headers sind, und es wird eine verknüpfte Liste von Speicherzeigern ausgebildet, die das Paket 112 definiert, wenn das Paket über den geeigneten Austritts-Port übertragen wird, in diesem Fall 24c. Sobald das Paket vollständig in den CBP 50 geschrieben worden ist, wird dem geeigneten Austritts-Manager 76 eine entsprechende CBP-Paket-ID (CPID) bereitgestellt; diese CPID zeigt auf die Speicherposition der anfänglichen Zelle 112a. Die CPID für das Datenpaket wird dann verwendet, wenn das Datenpaket 112 an den Ziel-Austritts-Port 24c gesendet wird. Tatsächlich verwaltet der CBM 71 zwei Puffer, die einen CBP-Zellenzeiger enthalten, wobei die Zulassung zu dem CBP auf der Grundlage einer Reihe von Faktoren erfolgt.
  • Da der CBM 71 den Datenfluss innerhalb des SOC 10 steuert, kann der Datenfluss, der mit jedem beliebigen Eintritts-Port verbunden ist, gleichermaßen gesteuert werden. Wenn das Paket 112 empfangen und in dem CBP 50 gespeichert wurde, wird dem verbundenen Austritts-Manager 76 eine CPID bereitgestellt. Die Gesamtzahl von Datenzellen, die mit dem Datenpaket verbunden sind, wird in einem Budget-Register (nicht gezeigt) gespeichert. Wenn weitere Datenpakete 112 empfangen werden und so bezeichnet werden, dass sie zu demselben Austritts-Manager 76 gesendet zu werden, wird der Wert des Budget-Registers, das dem verbundenen Austritts-Manager 76 entspricht, um die Anzahl der Datenzellen 112a, 112b der empfangenen neuen Datenzellen erhöht. Das Budget-Register stellt somit dynamisch die Gesamtanzahl der Zellen dar, die so bezeichnet sind, dass sie von einem beliebigen speziellen Austritts-Port auf einem EPIC 20 gesendet werden sollen. Der CBM 71 steuert den eingehenden Strom von zusätzlichen Datenpaketen, indem er das Budget- Register mit einem Höchststand-Registerwert bzw. einem Niedrigststand-Registerwert für denselben Austritt vergleicht.
  • 8 veranschaulicht einige der Details für gleichzeitiges Filtern und Suchen eines auf der Eintrittsseite eines EPIC 20 ankommenden Pakets gemäß der vorliegenden Erfindung. 14 behandelt die Anwendung von Filterungs-, Adressauflösungs- und Regelanwendungs-Segmenten des SOC 10. Diese Funktionen werden hinsichtlich der Zulassung zum CBP gleichzeitig durchgeführt. Das Paket 112 wird am Eingangs-Port 24 des EPIC 20 empfangen. Es wird dann an den Eingangs-FIFO 142 geleitet. Sobald die ersten sechzehn Byte des Pakets im Eingangs-FIFO 142 ankommen, wird eine Anforderung zur Adressauflösung an die ARL-Maschine 143 gesendet; dies leitet die Suche in den ARL-/S3-Tabellen 21 ein.
  • Es folgt eine Beschreibung der Felder einer ARL-Tabelle der ARL-/S3-Tabellen 21:
    Mac Address (MAC-Adresse) – Länge 48 Bit – MAC-Adresse;
    VLAN Tag – Länge 12 Bit – VLAN-Tag-ID, wie in dem Standard IEEE 802.1q für Pakete mit Tags beschrieben. Bei einem Paket ohne Tags wird dieser Wert der Port-basierten VLAN-Tabelle entnommen.
    CosDst (Ziel-Service-Klasse) – Länge 3 Bit – Service-Klasse auf der Grundlage der Zieladresse. Die Service-Klasse gibt die Priorität dieses Pakets an. In dem Standard IEEE 802.1q sind 8 Prioritätsebenen beschrieben.
    Port Number (Port-Nummer) – Länge 6 Bit – Die Port-Nummer bezeichnet den Port, auf dem diese MAC-Adresse erlernt wird.
    SD_Disc Bits (Bits zum Verwerfen Quelle/Ziel) – Länge 2 Bit – Diese Bits geben an, ob das Paket auf der Grundlage der Quelladresse oder der Zieladresse verworfen werden soll. Der Wert 1 bedeutet, dass das Paket anhand der Quelle verworfen werden soll. Der Wert 2 bedeutet, dass das Paket anhand des Ziels verworfen werden soll.
    C Bit – Länge 1 Bit – Das C-Bit gibt an, dass das Paket an den CPU-Port geleitet werden soll.
    St Bit (Statik-Bit) – Länge 1 Bit – Das St-Bit gibt an, dass es sich um einen statischen Eintrag handelt (er wird nicht dynamisch erlernt) und bedeutet, dass er nicht durch Alterung verworfen werden sollte. Nur die CPU 52 kann diesen Eintrag löschen.
    Ht Bit (Treffer-Bit) – Länge 1 Bit – Treffer-Bit. Dieses Bit wird gesetzt, wenn es eine Übereinstimmung mit der Quelladresse gibt. Es wird im Alterungsmechanismus verwendet.
    CosSrc (Quell-Service-Klasse) – Länge 3 Bit – Service-Klasse auf der Grundlage der Quelladresse. Die Service-Klasse gibt die Priorität dieses Pakets an.
    L3 Bit (Schicht-3-Bit) – Länge 1 Bit – Das Schicht-3-Bit gibt an, dass dieser Eintrag als Ergebnis der Konfiguration der Schicht-3-Schnittstelle erstellt wurde. Die MAC-Adresse in diesem Eintrag ist die MAC-Adresse der Schicht-3-Schnittstelle, und alle Pakete, die an diese MAC-Adresse adressiert sind, müssen weitergeleitet werden.
    T Bit – Länge 1 Bit – Das T-Bit gibt an, dass diese MAC-Adresse von einem der Trunk-Ports erlernt wurde. Wenn es eine Übereinstimmung bezüglich der Zieladresse gibt, erfolgt die Entscheidung über den Ausgabe-Port nicht anhand der Port-Nummer in diesem Eintrag, sondern über den Trunk-Identifikationsprozess auf der Grundlage der von den RTAG-Bits angegebenen Regeln und der durch die TGID angegebenen Trunk-Gruppe.
    TGID – Länge 3 Bit – Die TGID gibt die Trunk-Gruppe an, wenn das T-Bit gesetzt ist. Der SOC 10 unterstützt 6 Trunk-Gruppen pro Switch.
    RTAG – Länge 3 Bit – Mit RTAG wird das Kriterium zur Trunk-Auswahl angegeben, wenn die Zieladresse mit diesem Eintrag übereinstimmt und das T-Bit in diesem Eintrag gesetzt ist. Wert 1 – auf der Grundlage der Quell-MAC-Adresse. Wert 2 – auf der Grundlage der Ziel-MAC-Adresse. Wert 3 – auf der Grundlage der Quell- und der Zieladresse. Wert 4 – auf der Grundlage der Quell-IP-Adresse. Wert 5 – auf der Grundlage der Ziel-IP-Adresse. Wert 6 – auf der Grundlage der Quell- und der Ziel-IP-Adresse.
    S C P (Quell-Service-Klassen-Priorität) – Länge 1 Bit – Quell-Service-Klassen-Prioritäts-Bit – Wenn dieses Bit gesetzt ist (in dem übereinstimmenden Quell-MAC-Eintrag), hat die Service-Klasse der Quelle Priorität gegenüber der Service-Klasse des Ziels.
  • Es sei außerdem angemerkt, dass die VLAN-Tabellen 23 eine Vielzahl von Tabellenformaten aufweisen; in diesem Dokument werden nicht alle Tabellen und Tabellenformate behandelt. Als Beispiel werden jedoch die Felder der Port-basierten VLAN-Tabelle wie folgt beschrieben:
    Port VLAN Id – Länge 12 Bit – Hierbei handelt es sich um die Port-VLAN-ID, die vom Port-basierten VLAN verwendet wird.
    Sp State (SP-Status) – Länge 2 Bit – Dieses Feld gibt den aktuellen Spanning-Tree-Status an. Wert 0 × 00 – Der Port ist im Status "deaktiviert". In diesem Status werden keine Pakete angenommen, nicht einmal BPDUs. Wert 0 × 01 – Der Port ist im Status "blockiert" oder "empfangsbereit". In diesem Status werden außer BPDUs keine Pakete vom Port angenommen. Wert 0 × 02 – Der Port ist im Status "Lernen". In diesem Status werden die Pakete nicht an einen anderen Port weitergeleitet, werden aber zum Lernen angenommen. Wert 0 × 03 – Der Port ist im Status "Weiterleiten". In diesem Status werden die Pakete sowohl zum Lernen als auch zum Weiterleiten angenommen.
    Port Discard Bits (Bits für das Verwerfen am Port) – Länge 6 Bit – Dieses Feld umfasst 6 Bit, von denen jedes ein Kriterium zum Verwerfen der Pakete angibt, die an diesem Port ankommen. Hinweis: Die Bits 0 bis 3 werden nicht verwendet. Bit 4 – Wenn dieses Bit gesetzt ist, werden alle an diesem Port ankommenden Rahmen verworfen. Bit 5 – Wenn dieses Bit gesetzt ist, werden alle Rahmen mit Prioritäts-Tag gemäß 802.1q (vid = 0) und Rahmen ohne Tags, die an diesem Port ankommen, verworfen.
    J Bit – Länge 1 Bit – Das J-Bit steht für Jumbo-Bit. Wenn dieses Bit gesetzt ist, sollte dieser Port Jumbo-Rahmen annehmen.
    RTAG – Länge 3 Bit – Mit RTAG wird das Kriterium zur Trunk-Auswahl angegeben, wenn die Zieladresse mit diesem Eintrag übereinstimmt und das T-Bit in diesem Eintrag gesetzt ist. Wert 1 – auf der Grundlage der Quell-MAC-Adresse. Wert 2 – auf der Grundlage der Ziel-MAC-Adresse. Wert 3 – auf der Grundlage der Quell- und der Zieladresse. Wert 4 – auf der Grundlage der Quell-IP-Adresse. Wert 5 – auf der Grundlage der Ziel-IP-Adresse. Wert 6 – auf der Grundlage der Quell- und der Ziel-IP-Adresse.
    T Bit – Länge 1 Bit – Dieses Bit gibt an, dass der Port ein Mitglied der Trunk-Gruppe ist.
    C Learn Bit (C-Lern-Bit) – Länge 1 Bit – CPU-Lern-Bit – Wenn dieses Bit gesetzt ist, wird das Paket jedes Mal, wenn die Quelladresse erlernt wird, an die CPU gesendet.
    PT – Länge 2 Bit – Dieses Bit gibt den Port-Typ an. Wert 0 – 10 MBit-Port. Wert 1 – 100 MBit-Port. Wert 2 – 1 GBit-Port. Wert 3 – CPU-Port.
    VLAN Port Bitmap (VLAN-Port-Bitmuster) – Länge 28 Bit – Das VLAN-Port-Bitmuster gibt alle Austritts-Ports an, an denen das Paket abgehen soll.
    B Bit – Länge 1 Bit – Das B-Bit ist ein BPDU-Bit. Wenn dieses Bit gesetzt ist, weist der Port BPDUs zurück. Dieses Bit wird für Trunk-Ports gesetzt, die keine BPDUs annehmen sollen.
    TGID – Länge 3 Bit – Dieses Feld gibt die Trunk-Gruppe an, zu der dieser Port gehört.
    Untagged Bitmap (Bitmuster ohne Tags) – Länge 28 Bit – Dieses Bitmuster gibt die Mitglieder des VLAN ohne Tag an, das heißt ob der Rahmen, der aus diesen Mitglieds-Ports heraus gesendet werden soll, ohne Tag-Header übertragen werden soll.
    M Bit – Länge 1 Bit – Das M-Bit wird für die Spiegelungs-Funktionalität verwendet. Wenn dieses Bit gesetzt ist, wird das Spiegeln am Eintritt aktiviert.
  • Die ARL-Maschine 143 liest das Paket; wenn das Paket einen VLAN-Tag gemäß dem Standard IEEE 802.1q aufweist, führt die ARL-Maschine 143 eine Suche auf der Grundlage der Tag-VLAN-Tabelle 231 durch, die Bestandteil der VLAN-Tabelle 23 ist. Wenn das Paket dieses Tag nicht enthält, führt die ARL-Maschine eine VLAN-Suche auf der Grundlage der Port-basierten VLAN-Tabelle 232 durch. Sobald das VLAN für das ankommende Paket identifiziert wurde, führt die ARL-Maschine 143 eine ARL-Tabellensuche auf der Grundlage der Quell-MAC-Adresse und der Ziel-MAC-Adresse durch. Wenn das Ergebnis der Zielsuche eine S3-Schnittstellen-MAC-Adresse ist, wird eine S3-Suche in einer S3-Tabelle innerhalb der ARL-/S3-Tabellen 21 durchgeführt. Wenn die S3-Suche erfolgreich ist, wird das Paket entsprechend den Paket-Weiterleitungsregeln geändert.
  • Um die Vorgänge des Suchens, Lernens und Vermittelns besser zu verstehen, erscheint es ratsam, nochmals die Handhabung des Pakets 112 unter Bezugnahme auf 6 zu erörtern. Wenn das Datenpaket 112 von einer Quellstation A an den Port 24a von EPIC 20a gesendet wird und für eine Zielstation B an Port 24c des EPIC 20c bestimmt ist, teilt das Eintritts-Submodul 14a das Datenpaket 112 in die Zellen 112a und 112b. Das Eintritts-Submodul liest dann das Paket, um die Quell-MAC-Adresse und die Ziel-MAC-Adresse zu bestimmen. Wie zuvor bereits erwähnt, führt das Eintritts-Submodul 14a, insbesondere die ARL-Maschine 143, die Suche in den geeigneten Tabellen innerhalb der ARL-/S3-Tabellen 21a und der VLAN-Tabelle 23a durch, um festzustellen, ob die Ziel-MAC-Adresse in den ARL-/S3-Tabellen 21a vorhanden ist; wenn die Adresse nicht gefunden wird, aber die VLAN-IDs für die Quelle und das Ziel identisch sind, legt das Eintritts-Submodul 14a fest, dass das Paket an alle Ports gesendet wird. Das Paket wird dann an die geeignete Zieladresse weitergegeben. Eine Suche nach der Quelle und eine Suche nach dem Ziel können parallel durchgeführt werden. Gleichzeitig kann die Quell-MAC-Adresse des ankommenden Pakets erlernt und daher zu einer ARL-Tabelle innerhalb der ARL-/S3-Tabellen 21a hinzugefügt werden. Nachdem das Paket vom Ziel empfangen wurde, wird eine Bestätigung von der Zielstation B an die Quellstation A gesendet. Da die Quell-MAC-Adresse des ankommenden Pakets von der geeigneten Tabelle von B erlernt wird, wird die Bestätigung auf geeignete Weise an den Port gesendet, auf dem sich A befindet. Wenn die Bestätigung am Port 24a empfangen wird, erlernt daher die ARL-Tabelle die Quell-MAC-Adresse von B aus dem Bestätigungspaket. Es sei angemerkt, dass die vorgenannte Schicht-2-Vermittlung durchgeführt wird, solange die VLAN-IDs (für Pakete mit Tags) der Quell-MAC-Adressen und der Ziel-MAC-Adressen identisch sind. Die S2-Vermittlung und -Suche werden daher auf der Grundlage der ersten 16 Byte eines ankommenden Pakets durchgeführt. Bei Paketen ohne Tags wird das Feld für die Port-Nummer in dem Paket anhand der Port-basierten VLAN-Tabelle innerhalb der VLAN-Tabelle 23a indiziert, und die VLAN-ID kann dann bestimmt werden. Wenn die VLAN-IDs voneinander abweichen, ist jedoch eine S3-Vermittlung erforderlich, wobei die Pakete zu einem anderen VLAN gesendet werden. Die S3-Vermittlung basiert jedoch auf dem Feld für den IP-Header des Pakets. Der IP-Header umfasst die Quell-IP-Adresse, die Ziel-IP-Adresse und die TTL (Lebenszeit).
  • Um die Schicht-3-Vermittlung besser zu verstehen, wird im Folgenden beschrieben, wie das Paket 112 von der Quellstation A an den Port 24a des EPIC 20a gesendet und dann an die Zielstation B geleitet wird; es ist jedoch davon auszugehen, dass die Station B auf einem anderen VLAN angeordnet ist, was dadurch deutlich wird, dass die Quell-MAC-Adresse und die Ziel-MAC-Adresse unterschiedliche VLAN-IDs aufweisen. Die Suche nach B würde scheitern, weil sich B auf einem anderen VLAN befindet, und das alleinige Senden des Pakets an alle Ports im VLAN würde dazu führen, dass B das Paket niemals empfangen würde. Durch die Schicht-3-Vermittlung wird daher das Überbrücken der VLAN-Grenzen ermöglicht, es erfordert allerdings das Lesen von mehr Paketinformationen als nur der MAC-Adressen für die S2-Vermittlung. Zusätzlich zum Lesen der Quell- und der Ziel-MAC-Adresse liest daher der Eintritt 14a außerdem die IP-Adresse der Quelle und des Ziels. Wie zuvor bereits angemerkt, sind Pakettypen durch IEEE-Standards und andere Standards definiert und nach dem Stand der Technik bekannt. Durch das Lesen der IP-Adresse des Ziels ist der SOC 10 in der Lage, das Paket zu einer geeigneten Router-Schnittstelle zu leiten, die mit der Ziel-IP-Adresse konsistent ist. Das Paket 112 wird somit mittels der Versandeinheit 18a an den CPS-Kanal 80 gesendet und ist für eine geeignete Router-Schnittstelle bestimmt (nicht gezeigt, kein Teil des SOC 10), auf der sich das Ziel B befindet. Steuerrahmen, die durch ihre Zieladresse als solche identifiziert sind, werden über den CMIC 40 an die CPU 52 gesendet. Die Ziel-MAC-Adresse ist daher die Router-MAC-Adresse für B. Die Router-MAC-Adresse wird mittels der Unterstützung durch die CPU 52 erlernt, welche eine Adressauflö sungsprotokoll-Anforderung (ARP) verwendet, um die Ziel-MAC-Adresse für den Router für B auf der Grundlage der IP-Adresse von B anzufordern. Durch die Verwendung der IP-Adresse kann der SOC 10 daher die MAC-Adresse erlernen. Durch den Bestätigungs- und Lernvorgang wird allerdings nur das erste Paket dieser "langsamen" Behandlung aufgrund der Einbindung der CPU 52 unterzogen. Nachdem die geeigneten MAC-Adressen erlernt wurden, kann das Vermitteln bei Leitungsgeschwindigkeit durch die Verwendung von gleichzeitigen Tabellen-Suchvorgängen erfolgen, da die erforderlichen Informationen von den Tabellen erlernt werden können. Das Implementieren der Tabellen in Silizium als zweidimensionale Arrays ermöglicht solche schnellen, gleichzeitigen Suchvorgänge. Sobald die MAC-Adresse für B erlernt wurde, ändert daher der Eintritt 14a, wenn Pakete mit der IP-Adresse für B ankommen, die IP-Adresse in die Ziel-MAC-Adresse, um die Vermittlung bei Leitungsgeschwindigkeit zu ermöglichen. Außerdem wird die Quelladresse des ankommenden Pakets in die Router-MAC-Adresse für A und nicht in die IP-Adresse für A geändert, so dass die Bestätigung von B an A schnell erfolgen kann, ohne dass hierzu eine CPU auf der Ziel-Seite verwendet zu werden braucht, um die Quell-MAC-Adresse als Ziel für die Bestätigung zu identifizieren. Außerdem wird ein TTL-Feld (Lebenszeit) in dem Paket auf geeignete Weise entsprechend dem Standard der IETF (Internet Engineering Task Force) geändert. Ein einzigartiges Merkmal des SOC 10 besteht darin, dass alle Vermittlungs-, Paketverarbeitungs- und Tabellensuchvorgänge in der Hardware durchgeführt werden, anstatt zu erfordern, dass die CPU 52 oder eine andere CPU Zeit mit der Verarbeitung von Anweisungen verbringt. Es sei angemerkt, dass die Schicht-3-Tabellen für den EPIC 20 sich ändernde Größen aufweisen können.
  • Unter nochmaliger Bezugnahme auf die Erörterung von 8 wird, sobald die ersten 64 (vierundsechzig) Byte des Pakets in der Eingangs-FIFO 142 ankommen, eine Filteranforderung an den FFP 141 gesendet. Bei dem FFP 141 handelt es sich um einen umfassenden Filtermechanismus, mit dem der SOC 10 einschließende und ausschließende Filter auf jedes beliebige Feld eines Pakets von Schicht 2 bis Schicht 7 des OSI-7-Schichtenmodells setzen kann. Filter werden zur Klassifikation von Paketen auf der Grundlage eines Protokollfelds in den Paketen verwendet. Verschiedene Aktionen können auf der Grundlage der Paketklassifikation durchgeführt werden, hierzu gehören das Verwerfen von Paketen, das Senden des Pakets an die CPU, das Senden des Pakets an andere Ports, das Senden des Pakets an bestimmte Warte schlangen entsprechend der Priorität der Service-Klasse, das Ändern des Vorrangs des Service-Typs (TOS).
  • Ein ausschließender Filter wird hauptsächlich zum Implementieren von Sicherheitsmerkmalen verwendet und erlaubt es einem Paket nur dann weiterzukommen, wenn eine Übereinstimmung mit dem Filter vorhanden ist. Wenn keine Übereinstimmung besteht, wird das Paket verworfen.
  • Es sei angemerkt, dass der SOC 10 eine einzigartige Funktion zum Behandeln von ankommenden Paketen sowohl mit als auch ohne Tags aufweist. Pakete mit Tags weisen Tags gemäß den IEEE-Standards auf und enthalten ein spezielles Prioritätsfeld für das Paket gemäß IEEE 802.1p. Pakete ohne Tags hingegen weisen kein Prioritätsfeld gemäß IEEE 802.1p auf. Der SOC 10 kann einen geeigneten Wert für die Service-Klasse für das Paket zuweisen, der als Entsprechung zu einer gewichteten Priorität angesehen werden kann, auf der Grundlage entweder der Zieladresse oder der Quelladresse des Pakets, je nachdem, was für eine Übereinstimmung in einem der Tabellensuchvorgänge gefunden wurde. Wie in der Erörterung des ARL-Tabellenformats in diesem Dokument bereits angemerkt, ist das SCP-Bit (Quell-Service-Klassen-Prioritäts-Bit) als eines der Felder in der Tabelle enthalten. Wenn dieses SCP-Bit gesetzt ist, kann der SOC 10 auf der Grundlage eines Quellen-Service-Klassen-Werts in der ARL-Tabelle eine gewichtete Priorität zuweisen. Wenn das SCP-Bit nicht gesetzt ist, weist der SOC 10 eine Service-Klasse für das Paket auf der Grundlage des Felds für die Ziel-Service-Klassen in der ARL-Tabelle zu. Bei diesen Service-Klassen-Werten handelt es sich um drei Bit lange Felder in der ARL-Tabelle, wie bereits weiter oben in der Beschreibung der ARL-Tabellenfelder angemerkt.
  • Bei dem FFP 141 handelt es sich im Wesentlichen um eine programmierbare Regel-Maschine, die durch einen Zustandsautomaten angesteuert wird. Die von dem FFP verwendeten Filter können beispielsweise vierundsechzig Byte lang sein, und sie werden auf ein ankommendes Paket angewendet; es kann ein beliebiger Offset verwendet werden, bei einem bevorzugten Ausführungsbeispiel wird jedoch ein Offset von Null verwendet, und daher wirkt er auf die ersten 64 Byte bzw. 512 Bit eines Pakets. Die durch den Filter durchgeführten Aktionen können das Einfügen von Tags, das Zuordnen von Prioritäten, das Einfügen von TOS-Tags, das Senden des Pakets an die CPU, das Löschen des Pakets, das Weiterleiten des Pakets an einen Austritts-Port und das Senden des Pakets an einen gespiegelten Port umfassen. Die von dem FFP 141 verwendeten Filter sind durch die Regeltabelle 22 definiert. Die Regeltabelle 22 ist über den CMIC 40 vollständig von der CPU 52 programmierbar. Die Regeltabelle kann beispielsweise 256 Einträge lang sein und kann in einschließende und ausschließende Filter unterteilt sein, mit, wiederum beispielsweise, 128 Einträgen für einschließende Filter und 128 Einträgen für ausschließende Filter.
  • Eine Filterdatenbank innerhalb des FFP 141 umfasst eine Anzahl von einschließenden Maskenregistern und ausschließenden Maskenregistern, derart, dass die Filter auf der Grundlage der Regeln in der Regeltabelle 22 gebildet werden, und die Filter daher im Wesentlichen eine 64 Byte lange Maske bzw. ein Bitmuster bilden, das auf das ankommende Paket angewendet wird. Masken und Regeln stehen so miteinander in Beziehung, dass jede Maske null, eine oder mehrere Regeln aufweisen kann. Eine Regel kann sich auf eine oder mehrere Masken beziehen. Die Masken und die Regeln können durch einen Schlüssel miteinander in Beziehung stehen, so können beispielsweise die ersten vier Bit der Maske in den ersten vier Bit der entsprechenden Regeln enthalten sein. Nachfolgend kann dieser Schlüssel als Maskenschlüssel bezeichnet werden.
  • Wenn der Filter als ausschließender Filter bezeichnet wird, schließt er alle Pakete aus, es sei denn, es liegt eine Übereinstimmung vor. Anders ausgedrückt erlaubt es der ausschließende Filter einem Paket nur dann, das Weiterleitungsverfahren zu durchlaufen, wenn eine Übereinstimmung mit dem Filter vorliegt. Wenn keine Übereinstimmung mit dem Filter vorliegt, wird das Paket gelöscht. Wenn es bei einem einschließenden Filter keine Übereinstimmung gibt, wird keine Aktion durchgeführt, aber das Paket wird auch nicht gelöscht. Damit eine Aktion bei einem ausschließenden Filter durchgeführt werden kann, muss bei allen Feldern des Filters eine exakte Übereinstimmung vorliegen. Wenn bei einem ausschließenden Filter eine exakte Übereinstimmung vorliegt, wird daher die Aktion durchgeführt, die in dem Aktionsfeld angegeben ist; welche Aktionen durchgeführt werden können, wurde bereits weiter oben erörtert. Wenn keine vollständige oder exakte Übereinstimmung aller Felder des Filters vorliegt, sondern eine Teilübereinstimmung, wird das Paket gelöscht. Eine Teilübereinstimmung ist definiert als eine Übereinstimmung im Eintrittsfeld, im Austrittsfeld oder in den Filterauswahlfeldern. Wenn zwischen dem Paket und dem ausschließenden Filter weder eine vollständige Übereinstimmung noch eine Teilübereinstimmung vorliegt, erfolgt keine Aktion, und das Paket durchläuft das Weiterleitungsverfahren. Die FFP-Konfiguration, die Aktionen auf der Grundlage der ersten 64 Byte eines Pakets vornimmt, verbessert die Handhabung des Echtzeit-Daten-verkehrs, da im laufenden Betrieb Pakete gefiltert und Aktionen durchgeführt werden können. Ohne einen erfindungsgemäßen FFP müssten die Pakete zu der CPU übertragen werden, damit eine geeignete Aktion interpretiert und vorgenommen wird. Bei einschließenden Filtern wird, wenn eine Übereinstimmung mit dem Filter vorliegt, eine Aktion durchgeführt, und wenn keine Übereinstimmung mit dem Filter vorliegt, wird keine Aktion durchgeführt; die Pakete werden jedoch bei einschließenden Filtern nicht auf der Grundlage einer Übereinstimmungs- bzw. Nicht-Übereinstimmungssituation gelöscht.
  • Zusammenfassend weist der FFP eine Filterdatenbank mit Sätzen von einschließenden und ausschließenden Filtern als getrennten Filtermasken auf. Wenn ein Paket in den FFP gelangt, werden die Filtermasken auf das Paket angewendet; anders ausgedrückt wird eine logische UND-Operation mit der Maske und dem Paket durchgeführt. Wenn das entstehende Produkt einer Regel entspricht, werden die passenden Einträge auf die Regeltabellen 22 angewendet, um zu bestimmen, welche spezifischen Aktionen durchgeführt werden sollen. Wie zuvor bereits erwähnt, umfassen die Aktion das Einfügen von Tags gemäß 802.1p, das Zuordnen von Prioritäten gemäß 802.1p, das Einfügen von IP-TOS-Tags (für den Service-Typ), das Senden des Pakets an die CPU, das Verwerfen bzw. Löschen des Pakets, das Weiterleiten des Pakets an einen Austritts-Port und das Senden des Pakets an den gespiegelten Port. Da die Regeltabelle nur eine begrenzte Anzahl von Feldern enthält und da bestimmte Regeln auf verschiedene Pakettypen angewendet werden müssen, können die Anforderungen bezüglich der Regeltabellen in der vorliegenden Erfindung dadurch verringert werden, dass die vorliegende Erfindung alle ankommenden Pakete als Pakete mit Tags festlegt; alle Pakete ohne Tags werden daher einer Einfügung von Tags gemäß 802.1p unterzogen, um die Anzahl der erforderlichen Einträge in der Regeltabelle zu verringern. Durch diese Aktion entfällt die Notwendigkeit von Einträgen bezüglich der Behandlung von Paketen ohne Tags. Es sei angemerkt, dass spezifische Pakettypen in verschiedenen IEEE-Standards und anderen Netzwerk-Standards definiert sind und deshalb in diesem Dokument nicht definiert werden.
  • Unter Bezugnahme auf 9 ist gezeigt, dass der FFP 141 die Filterdatenbank 1410 umfasst, die Filtermasken enthält, und mit der Logikschaltung 1411 kommuniziert, um die Pakettypen zu bestimmen und geeignete Filtermasken anzuwenden. Nachdem die Filtermaske wie oben angemerkt angewendet wurde, wird das Ergebnis der Anwendung auf die Regeltabelle 22 angewendet, damit die geeignete Suche und Aktion durchgeführt werden können. Es sei angemerkt, dass die Filtermasken, Regeltabellen und Logik zwar durch die CPU 52 programmierbar sind, aber bei ihrer Verarbeitung und Berechnung nicht auf die CPU 52 zurückgreifen. Nach der Programmierung wird eine Hardware-Konfiguration bereitgestellt, die eine Filteranwendung und Suche mit Leitungsgeschwindigkeit ermöglichen.
  • Unter nochmaliger Bezugnahme auf 8 bestimmt die Logik 1411 im FFP 141, nachdem der FFP 141 geeignete, konfigurierte Filter angewendet hat und von den geeigneten Regeltabellen 22 Ergebnisse erhalten werden, die geeignete Aktion und führt diese durch. Die Filterlogik kann das Paket verwerfen, das Paket an die CPU 52 senden, den Paket-Header oder den IP-Header verändern und IP-Prüfsummenfelder neu berechnen, oder sie führt andere geeignete Aktionen bezüglich der Header durch. Die Änderung erfolgt beim Puffer-Teiler 144, und das Paket wird auf dem C-Kanal 81 platziert. Die Steuernachricht und die Nachrichten-Header-Informationen werden von dem FFP 141 und der ARL-Maschine 143 angewendet, und der Nachrichten-Header wird auf dem P-Kanal 82 platziert. Die Versandeinheit 18, die auch unter Bezugnahme auf 8 allgemein erörtert wurde, koordiniert alle Versandvorgänge an den C-Kanal, P-Kanal und S-Kanal. Wie zuvor bereits angemerkt, sind alle EPIC-Module 20, GPIC-Module 30, die PMMU 70 usw. einzeln so konfiguriert, dass sie über den CPS-Kanal kommunizieren. Jedes Modul kann unabhängig von den übrigen geändert werden, solange die CPS-Kanal-Schnittstellen beibehalten werden, interne Änderungen an jeglichen Modulen wie beispielsweise EPIC 20a sollten andere Module, wie beispielsweise den EPIC 20b oder die GPICs 30, nicht beeinträchtigen.
  • Wie zuvor bereits erwähnt, kann der FFP 141 über die CPU 52 vom Benutzer auf der Grundlage der spezifischen Funktionen programmiert werden, die von jedem FFP 141 gehandhabt werden sollen. Unter Bezugnahme auf 10 ist ersichtlich, dass in Schritt 10-1 ein Schritt zur Programmierung des FFP vom Benutzer eingeleitet wird. Sobald die Programmierung eingeleitet worden ist, identifiziert der Benutzer in Schritt 10-2 die Protokollfelder des Pakets, die für den Filter von Interesse sind. In Schritt 10-3 werden der Pakettyp und die Filterbedingungen bestimmt, und in Schritt 10-4 wird auf der Grundlage des identifizierten Pakettyps und der gewünschten Filterbedingungen eine Filtermaske aufgebaut. Bei der Filtermaske handelt es sich im Wesentlichen um ein Bitmuster, das auf die ausgewählten Felder des Pakets angewendet bzw. durch eine UND-Operation mit diesem verknüpft wird. Nach dem Aufbau der Filtermaske wird dann abhängig von den zu lösenden Problemen, den weiterzuleitenden Paketen, den durchzuführenden Aktionen, usw. bestimmt, ob es sich bei dem Filter um einen einschließenden oder ausschließenden Filter handeln soll. In Schritt 10-6 wird bestimmt, ob der Filter sich an dem Eintritts-Port befindet oder nicht, und in Schritt 10-7 wird bestimmt, ob der Filter sich an dem Austritts-Port befindet oder nicht. Wenn sich der Filter an dem Eintritts-Port befindet, wird in Schritt 10-8 eine Eintritts-Port-Maske verwendet. Wenn bestimmt wird, dass sich der Filter an dem Austritts-Port befindet, wird in Schritt 10-9 eine Austrittsmaske verwendet. Auf der Grundlage dieser Schritte wird dann ein Regeltabelleneintrag für die Regeltabellen 22 aufgebaut, und der Eintrag bzw. die Einträge wird bzw. werden in die geeignete Regeltabelle aufgenommen (Schritte 10-10 und 10-11). Diese Schritte werden durchgeführt, indem der Benutzer bestimmte Sätze von Regeln oder Informationen über eine geeignete Eingabevorrichtung in die CPU 52 eingibt, und die CPU 52 führt die geeignete Aktion im Hinblick auf das Erstellen der Filter über den CMIC 40 und die geeigneten Eintritts- oder Austritts-Submodule auf einem geeigneten EPIC-Modul 20 oder GPIC-Modul 30 durch.
  • Es sei außerdem angemerkt, dass das Blockdiagramm des SOC 10 in 2 veranschaulicht, dass jeder GPIC 30 seine eigenen ARL-/S3-Tabellen 31, Regeltabelle 32 und VLAN-Tabellen 33 aufweist und dass außerdem jeder EPIC 20 ebenfalls seine eigenen ARL-/S3-Tabellen 21, Regeltabelle 22 und VLAN-Tabellen 23 aufweist. In einem bevorzugten Ausführungsbeispiel der Erfindung können jedoch zwei getrennte Module eine ARL-/S3-Tabelle und eine VLAN-Tabelle gemeinsam verwenden. Jedes Modul weist allerdings seine eigene Regeltabelle 22 auf. Daher kann beispielsweise der GPIC 30a die ARL-/S3-Tabelle 21a und die VLAN-Tabelle 23a mit dem EPIC 20a gemeinsam verwenden. Analog dazu kann der GPIC 30b die ARL-/S3-Tabelle 21b und die VLAN-Tabelle 23b mit dem EPIC 20b gemeinsam verwenden. Die gemeinsame Verwendung von Tabellen verringert die Anzahl der Gatter, die zum Implementieren der Erfindung erforderlich sind, und ermöglicht vereinfachte Such- und Synchronisationsvorgänge, wie weiter unten noch erörtert wird.
  • Zur Unterstützung der Hochgeschwindigkeitsvermittlung weist die vorliegende Erfindung verbesserte Systeme und Verfahren zum Durchführen der oben beschriebenen schnellen Filterverarbeitung auf. Insbesondere ist der FFP 141 so konfi guriert, dass er die ARL-Tabellen 21, die Regeltabelle 22 und die VLAN-Tabelle 23 unter Verwendung einer zeigerbasierten binären Suche durchsucht. Binäre Suchvorgänge stellen ein effektives und schnelles Verfahren zum Durchsuchen innerhalb eines Hochleistungs-Switches dar. Eine kurze Erörterung von binären Suchvorgängen gemäß der vorliegenden Erfindung wird zum besseren Verständnis der weiter unten noch eingehend erörterten parallelen Suchvorgänge zur Verfügung gestellt.
  • Unter Bezugnahme auf 11 wird eine beispielhafte zu durchsuchende Tabelle 1100 gezeigt, wobei es sich um eine beliebige der bereits weiter oben beschriebenen, auf dem Chip befindlichen Tabellen handeln könnte. Wenn davon ausgegangen wird, dass die Tabelle 1100 in einer Reihenfolge sortiert ist, ist eine binäre Suche äußerst effizient. Die Schritte bei der binären Suche sind durch gekrümmte Pfeile veranschaulicht. Zunächst beginnt eine Suche in der Mitte einer Speicherbank (es sei denn, sie ist indiziert). Die Tabelle 128 weist zum Beispiel Zeilen bzw. Speichereinheiten auf (Wortzeilen, usw.). Daher beginnt die Suche bei Zeile 64. Die Suchmaschine oder Einrichtung, die die Suche steuert, wie beispielsweise der FFP 141, die PMMU 70 oder der CBM 71, vergleicht den in Zeile 64 gespeicherten Wert mit dem Suchkriterium. Wenn der Wert größer oder kleiner als das Suchkriterium ist, springt die Suche um eine Anzahl von Zeilen gleich 2(m–n) nach oben bzw. unten, wobei m der Logarithmus der Anzahl von Zeilen in der Tabelle ist und n die Nummer des aktuellen Suchschritts. So beginnt beispielsweise in einer Tabelle mit 128 Zeilen Schritt 1 bei Zeile 64 = 2(m–n) = 27–1 = 26. Bei Schritt zwei ist der nächste Sprung plus oder minus 25 = 32, daher springt die Suche, je nach Ergebnis des Vergleichs nach unten zu 32 oder nach oben zu 96. Dies führt dazu, dass die übersprungene Strecke bei jedem Schritt halbiert wird.
  • Die Suche springt weiter, bis eine Übereinstimmung gefunden wird, das heißt, bis der Wert nicht größer oder kleiner als das Suchkriterium ist. Wenn sich beispielsweise die Übereinstimmung in einer Zeile 21 befindet, springt der Prozess in Schritt 1 von 64 zu 32, weil 21 kleiner ist als 64. Als Nächstes springt die Suche in Schritt 2 von 32 zu 16. Da 21 größer ist als 16, springt die Suche dann von 16 zu 20, dann von 20 zu 22 und schließlich in Schritt 6 von 22 zurück zu 21. Es ist zu beachten, dass die Suche insgesamt sechs Schritte benötigt. Wenn man in Betracht zieht, dass die Speicherbank 128 Zeilen enthält, wobei ein voller Durchlauf von 128 Schritten erforderlich sein könnte, um eine Übereinstimmung zu finden, zeigt sich, dass eine binäre Suche viel effizienter ist.
  • Unter nochmaliger Bezugnahme auf 8 kann der EPIC auch eine Zeigertabelle 221 aufweisen, um die Maximum- (MAX) und die Minimum-Adresse (MIN) von Regeln für entsprechende Masken zu halten. Wie bereits oben beschrieben, können Masken (Filter) über einen Schlüssel mit den Regeln in Beziehung stehen. Demgemäß kann beispielshalber die Zeigertabelle 221 erstellt werden, um die MAX- und die MIN-Adresse (Grenze) für die Regeln für jede Maske zu halten. Die Zeigertabelle 221 kann weitere nützliche Daten enthalten, wie beispielsweise die Anzahl der Schritte, die Anfangsadresse, die Inkrementgröße, usw. Um dann die Leistung des Switches zu erhöhen, kann der FFP 141 so konfiguriert sein, dass er die Regeltabelle innerhalb der durch die Zeigertabelle 221 für jede Maske definierten Grenzen durchsucht. Demgemäß würde eine binäre Suche nur in dem Bereich der Tabelle eingeleitet, der der angegebenen Maske entspricht, und würde weniger Schritte erfordern. Die Anzahl der Schritte, der Anfangspunkt und das Delta für jeden Sprung können unter Verwendung derselben Formeln berechnet werden, die unter Bezugnahme auf 11 beschrieben wurden, indem der MAX- und der MIN-Zeiger verwendet werden. So ist beispielsweise die Anzahl der Schritte gleich log2(MAX – MIN) + 1, und die zu springende Strecke = 2(5–aktueller Schritt). Die Regel- und Zeigertabellen können während der Programmierung oder Einleitung, wie oben beschrieben, eingerichtet werden. Ein Verfahren zum Erstellen und Verwalten der Zeigertabelle 221 ist unten unter Bezugnahme auf 13 beschrieben.
  • 12 ist ein Blockdiagramm von auf dem Chip befindlicher Logik (das heißt Siliziumkomponenten oder -schaltungen), die in dem FFP 141 enthalten sein kann, zum Durchführen von Suchvorgängen gemäß der vorliegenden Erfindung. Insbesondere wird, um eine Suche in einer Schaltung 300 zu beginnen, ein new_mask-Signal (neue Maske) oder ein next_mask-Signal (nächste Maske) in dem Addierer 314 über eine UND-Operation mit einem Zeitsteuerungssignal verknüpft. Das new_mask-Signal bzw. das next_mask-Signal wird in die Maskentabelle 302 und die Zeigertabelle 306 eingegeben. Als Reaktion auf das Signal gibt die Maskentabelle 302 die erste Maske in das UND-Gatter 308 aus, wo ein Datenpaket und die Maske über eine UND-Operation miteinander verknüpft werden, dann wird das Produkt im Komparator 310 mit Regeln für eine Übereinstimmung verglichen. Die Ausgabe der Zeigertabelle 306 wird in den MUX 312 eingegeben, der ein von dem Komparator 310 über ein Flip-Flop 320 ausgegebenes Steuersignal empfängt. Der MUX 312 empfängt außerdem als Eingaben eine Rückkopplungsschleife über ein Flip-Flop 322, das die vorherige Adresse bereitstellt, sowie die Adressen für die nächste binäre Suche für einen Vergleich vom Typ "," oder "+" als durch den Addierer 316 oder den Subtraktor 318, der das nächste Inkrement für den Schritt der binären Suche addiert bzw. subtrahiert. Beim Einleiten, beispielsweise wenn der FFP 141 ein zu filterndes Datenpaket empfängt, ist die Ausgabe des MUX 312 die mittlere Adresse der Grenze, die durch den Zeiger wie oben beschrieben erstellt wurde. Diese Adresse wird in die Regeltabelle 304 eingegeben, und die Regel mit dieser Adresse wird an den Komparator 310 ausgegeben und mit dem Produkt der Maske und des Datenpakets aus dem UND-Gatter 308 verglichen. Die Ausgabe des Komparators 310 ist ein Signal, das als Ergebnis des Vergleichs entweder ",", "+" oder "=" darstellt. Der MUX 312 ist so konfiguriert, dass er das Steuersignal ",", "+" oder "=" empfängt und die geeignete nächste Adresse auf der Grundlage des Vergleichs und der Eingaben des Addierers 316, des Subtraktors 318 und des Flip-Flop 322 ausgibt. So werden, wie oben beschrieben, bei einer binären Suche beispielsweise auf der Grundlage der Ermittlung, ob der Datensatz größer oder kleiner als die jeweilige gelesene Zeile ist, eine Reihe von Sprüngen nach oben und unten in einer Tabelle durchgeführt. Die Schaltung 300 ist so konfiguriert, dass sie die Anzahl der Schritte für eine bestimmte Suche auf der Grundlage des Zeigers durchläuft und dann ein nächstes Maskensignal generiert, um die nächste Maske einzuleiten. Wenn in dem Komparator 310 eine Übereinstimmung ermittelt wird, bevor alle Schritte einer bestimmten Suche durchlaufen wurden, gibt der Komparator 310 ein "="-Signal an den MUX 312 aus. Der MUX 312 ist so konfiguriert, dass er die vorherige Adresseneingabe von dem Flip-Flop 322 ausgibt, so dass es sich bei der Ausgabe an eine andere FFP-Logik um die Regeladresse der Übereinstimmung handelt. Diese Ausgabe bleibt konstant, bis alle Schritte für eine bestimmte Suche abgeschlossen sind, da beim Komparator 310 anschließend in jedem Zyklus eine Übereinstimmung auftritt, bis eine neue Maske in die Schaltung 300 eingegeben wird. Demgemäß ist die Schaltung in der Lage, alle Masken aus der Maskentabelle 302 zu durchlaufen und innerhalb der Regeltabelle 304 eine binäre Suche durchzuführen, die durch die in der Zeigertabelle 306 gespeicherten Grenzdaten definiert ist, und die Adressen aller Übereinstimmungen an die übrige Logik des Switches auszugeben. Wie oben bereits beschrieben, ist der SOC 10 so konfiguriert, dass er Vermittlungsfunktionen auf der Grundlage der Regeln ausführt, für die eine Übereinstimmung vorhanden ist, und die Regeln auf das Datenpaket anwendet.
  • 13 ist ein Ablaufdiagramm, das ein Verfahren zum Aktualisieren einer Zeigertabelle gemäß der vorliegenden Erfindung zeigt. Der Prozess beginnt bei Schritt S13-1 und wird sofort bei Schritt S13-2 fortgesetzt. Bei Schritt S13-2 wird der Minimum-Zeiger (MIN) für jede Maske (bzw. für eine neue Maske) auf die Anzahl der Zeilen in der Tabelle gesetzt. Wenn die Tabelle beispielsweise, wie bereits weiter oben beschrieben, 256 Zeilen aufweist, wird MIN auf 255 gesetzt.
  • Als Nächstes wird in Schritt S13-3 der Maximum-Zeiger (MAX) für alle Masken auf null gesetzt. In Schritt S13-4 wird bei einem Einfüge- oder Aktualisierungsvorgang der Tabelle die aktualisierte bzw. eingefügte Zeile mit den Zeigern verglichen, um die Zeigertabelle zu aktualisieren. Wie oben beschrieben, ist beispielsweise die CPU 52 so konfiguriert, dass sie die Tabellenverwaltung und das Einfügen in die Masken und Regeltabelle durchführt. Bei einem Einfüge- oder Aktualisierungsvorgang an der Regeltabelle wird die Zeilennummer in Schritt S13-5 mit dem MIN-Zeiger verglichen, und wenn der MIN-Wert größer ist als die gerade eingefügte Zeile, wird in Schritt S13-6 die Zeigertabelle mit einem neuen MIN-Zeiger für die Maske bzw. Regel aktualisiert. Analog dazu wird in Schritt S13-7 der MAX-Wert mit der Zeile verglichen, und wenn der MAX-Wert geringer ist als die Zeile, wird der MAX-Zeiger für die betreffende Maske bzw. Regel in Schritt S13-8 mit der Zeilennummer aktualisiert.
  • Bei der Einleitung wird beispielsweise der MAX-Wert auf 0 gesetzt und der MIN-Wert auf 255. Bei einem Einfügevorgang in Zeile 0 wird daher der MIN-Zeiger auf 0 gesetzt, und der MAX-Zeiger bleibt bei 0. Wenn dann eine weitere Zeile in Zeile 1 eingefügt wird, bleibt der MIN-Zeiger bei 0, aber der MAX-Zeiger wird auf 1 aktualisiert.
  • In Schritt S13-9 schleift der Prozess durch alle Aktualisierungsvorgänge, und die Schritte S13-4 bis S13-9 werden für jede Aktualisierung gemeldet. Der Prozess endet bei Schritt S13-10. Es sei angemerkt, dass der in 13 gezeigte Prozess eine Schleife aufweist. Die vorliegende Erfindung ist allerdings nicht solchermaßen beschränkt, und die Aktualisierungen an den Zeigertabellen können jederzeit erfolgen, wenn eine Maske oder Regel in die Tabelle eingefügt bzw. dort aktualisiert wird.
  • 14 ist ein Ablaufdiagramm eines Verfahrens zum Durchsuchen der Regeltabelle als Teil einer schnellen Filter-Verarbeitung gemäß der vorliegenden Erfin dung. Die Verarbeitung beginnt bei Schritt S14-1 und wird bei Schritt S14-2 fortgesetzt, bei dem ein Paket vom Switch empfangen wird. Wie bereits weiter oben beschrieben, kann der Switch ein Paket an einem Port empfangen, und der Eintritt an diesem Port kann das Paket zu dem FFP 141 übertragen. In Schritt S14-3 wird die erste Maske empfangen, beispielsweise von der Maskentabelle. Wie bereits weiter oben unter Bezugnahme auf 12 beschrieben wurde, kann ein next_mask-Signal (nächste Maske) oder ein new_mask-Signal (neue Maske) verwendet werden, um eine Maske aus der Maskentabelle anzustoßen. Dann wird die Maske in Schritt S14-4 mit dem Datenpaket multipliziert (mit einer UND-Operation verknüpft), um die Daten herauszufiltern, die mit den Regeln verglichen werden sollen.
  • Als Nächstes werden in Schritt 14-5 der MAX- und der MIN-Zeiger für die Regeltabelle für die betreffende Maske empfangen. Wie bereits weiter oben unter Bezugnahme auf 10 beschrieben wurde, kann beispielsweise das next_mask-Signal in die Zeigertabelle eingegeben werden, um den MIN- und den MAX-Zeiger für die Regeltabelle für die betreffende Maske zu empfangen. Als Nächstes wird in Schritt S14-6 eine binäre Suche auf der Grundlage der Zeiger eingeleitet. Wie bereits weiter oben beschrieben, ist die Grenze für die binäre Suche durch die Zeiger definiert, und die Anzahl der Schritte und die Delta-Werte werden ebenfalls von den Zeigern abgeleitet. Durch dieses Verfahren werden für jede Maske nur entsprechende Regeln durchsucht.
  • Als Nächstes erhält die binäre Suche in Schritt S14-7 eine Regel und vergleicht sie mit dem gefilterten Paket, um eine Übereinstimmung zu ermitteln. Wenn eine Übereinstimmung vorliegt, wird die Regel in Schritt S14-8 gespeichert, um durch die interne Logik des Switches verarbeitet zu werden, und die Verarbeitung wird von Schritt S14-8 aus direkt bei Schritt S14-10 fortgesetzt. Andernfalls, wenn keine Übereinstimmung vorliegt, wird in Schritt S14-9 geprüft, ob in der binären Suche noch Schritte übrig sind. Wenn die binäre Suche noch nicht abgeschlossen wurde, kehrt die Verarbeitung zu Schritt S14-7 zurück, und die binäre Suche führt den nächsten Schritt durch und nimmt eine Prüfung auf Übereinstimmung mit einer weiteren Regel vor. Wenn die binäre Suche abgeschlossen ist oder für eine Regel eine Übereinstimmung gefunden wurde, wird die Suche bei Schritt S14-10 beendet. Bei Schritt S14-11 wird eine nächste Maske erhalten, und die Schritte S14-3 bis S14-11 werden wiederholt, bis keine weiteren Masken mehr vorhanden sind, nach denen gesucht werden soll. Bei Schritt S14-12 wendet die interne Logik des Switches die gespeicherten Regeln auf geeignete Weise an. Die Verarbeitung endet bei Schritt S14-13.
  • Demgemäß werden Systeme und Verfahren bereitgestellt, um zeigerbasierte binäre Tabellensuchvorgänge innerhalb einer Netzwerkvorrichtung, wie beispielsweise einem Hochleistungs-Switch, durchzuführen. Gemäß der vorliegenden Erfindung wird die Leistung der Netzwerkvorrichtung durch die koordinierte Verwendung von Zeigern und Schlüsseln verbessert, um den Umfang der Suchvorgänge zu verringern, damit die Suchvorgänge schneller durchgeführt werden können. Die Fachleute mit normalen Kenntnissen auf diesem Gebiet werden leicht verstehen, dass die vorgenannten Systeme und Verfahren auf viele auf dem Chip ablaufende Suchprozesse anwendbar sind und dass nicht beabsichtigt ist, sie auf die oben beschriebenen Ausführungsbeispiele oder Netzwerk-Switches zu beschränken.
  • Jede beliebige Hochleistungsvorrichtung kann beispielsweise Nutzen aus dem beschriebenen Verfahren zum Durchsuchen paralleler Speicherbänke ziehen. Außerdem könnten andere Switch-Konfigurationen verwendet werden, um die Erfindung in vorteilhafter Weise zu nutzen. Die Warteschlangenverwaltungs-Einheit, die Speicherverwaltungseinheit und die Such-Vermittlungseinheit können alle getrennte Funktionsblöcke sein, Bestandteile desselben Funktionsblocks oder eine Kombination davon. Um die Grenzen der Erfindung zu bestimmen, ist daher Bezug auf die angehängten Ansprüche zu nehmen.

Claims (12)

  1. Netzwerk-Vorrichtung mit: a) wenigstens einem Netzwerk-Port (142) zum Empfang eines Datenpakets (112), b) einer Maskentabelle (1410), die Maskendaten und einen Maskenschlüssel aufweist, wobei der Maskenschlüssel Regeldaten zu Maskendaten so in Bezug setzt, dass eine der Maskendaten einer oder mehreren Regeldaten entspricht, c) einer Regeltabelle (22), die Regeln entsprechend den Maskendaten aufweist und durch den Maskenschlüssel mit der Maskentabelle (1410) in Bezug steht, und d) einem schnellen Filterprozessor (141), der mit der Maskentabelle (1410) und der Regeltabelle (22) gekoppelt ist, wobei der schnelle Filterprozessor (141) das Datenpaket (112) mit einer der Maskendaten multiplizieren kann, um ein Produkt zu bilden, gekennzeichnet durch e) eine Zeigertabelle (221), die Grenzdaten enthält, die mit den Regeln für entsprechende Maskendaten in Bezug stehen, wobei die Grenzdaten eine Maximum- und eine Minimum-Adresse von entsprechenden Regeln für jede der Maskendaten definieren, f) wobei der schnelle Filterprozessor (141) mit der Zeigertabelle (221) gekoppelt und so konfiguriert ist, dass er wenigstens eine binäre Suche durchführt nach einer Übereinstimmung zwischen dem Produkt und Regeldaten, die einer der Maskendaten entsprechen, auf der Grundlage des Produkts und der Maximum- und Minimum-Adressdaten.
  2. Netzwerk-Vorrichtung nach Anspruch 1, wobei die Regeln in der Regeltabelle der Reihenfolge nach sortiert werden, wobei die Zeigertabelle Adressen von Maximum- und Minimum-Regeln in der Regeltabelle für jeden spezifischen Maskenschlüsselwert enthält, und wobei der schnelle Filterprozessor so konfiguriert ist, dass er Parameter der wenigstens einen binären Suche auf der Grundlage der Adressen von Maximum- und Minimum-Regeln in der Regeltabelle für jeden spezifischen Maskenschlüsselwert berechnet.
  3. Netzwerk-Vorrichtung nach Anspruch 2, wobei der schnelle Filterprozessor so konfiguriert ist, dass er das Datenpaket empfängt und das Datenpaket mit wenigstens einer der Maskendaten, die sich auf einen einzigen Maskenschlüssel beziehen, multipliziert, um ein Produkt zu bilden, dass er die Parameter der wenigstens einen binären Suche auf der Grundlage der Adressen von Maximum- und Minimum-Regeln in der Regeltabelle für den einzigen Maskenschlüsselwert berechnet, und dass er wenigstens eine Regel aus der Regeltabelle auf der Grundlage der Ergebnisse der wenigstens einen binären Suche auf der Grundlage des Produkts abruft.
  4. Netzwerk-Vorrichtung nach Anspruch 1, wobei der schnelle Filterprozessor (141) Prozessorkomponenten auf Halbleiterbasis aufweist.
  5. Netzwerk-Vorrichtung nach Anspruch 3, wobei der schnelle Filterprozessor (141) so konfiguriert ist, dass er jeden Maskenschlüssel für die Maskendaten durchschleift, jede der Maskendaten mit dem Paket multipliziert, eine binäre Suche nach jedem Produkt einleitet, und alle Ergebnisse jeder binären Suche speichert.
  6. Netzwerk-Vorrichtung nach Anspruch 1, die des Weiteren aufweist: eine Zentralrechnereinheit (CPU), die mit dem schnellen Filterprozessor (141), der Regeltabelle (22), der Masken- und der Zeigertabelle gekoppelt und so konfiguriert ist, dass sie Daten in der Regeltabelle (22), der Maskentabelle (1410) und der Zeigertabelle (221) speichert und hält, und die Minimum- und Maximum-Adressinformationen in den Zeigertabellen (221) auf der Grundlage von Eingaben und Aktualisierungen in den Maskentabellen (1410) oder den Regeltabellen (22) erzeugt.
  7. Netzwerk-Vorrichtung nach Anspruch 2, wobei die Parameter Anzahl von Suchschritten, Such-Startadresse und Delta pro Schritt umfassen.
  8. Verfahren zum Filtern eines Datenpakets in einer Netzwerk-Vorrichtung, wobei die Netzwerk-Vorrichtung einen Netzwerk-Port (142) aufweist und so konfiguriert ist, dass sie wenigstens eine Netzwerk-Funktion durchführt, wobei das Verfahren die folgenden Schritte umfasst: a) Bereitstellen einer Maskentabelle (1410) und einer Regeltabelle (22) und einer Zeigertabelle (221); b) In-Bezug-Setzen von Maskendaten in der Maskentabelle (1410) zu Regeldaten in der Regeltabelle (22) mit einem Maskenschlüssel, wobei eine der Maskendaten einer oder mehreren der Regeldaten entspricht; c) Empfangen eines Datenpakets (112) an dem Netzwerk-Port (142); d) Multiplizieren des Datenpakets (112) mit einer der Maskendaten, um ein Produkt zu bilden; e) Durchsuchen der Regeltabelle (22) nach einer der Maskendaten nach Übereinstimmung zwischen dem Produkt und Regeldaten, die der einen der Maskendaten entsprechen; und f) Ausgeben der Übereinstimmung an eine Funktion in der Netzwerk-Vorrichtung, um die wenigstens eine Netzwerk-Funktion durchzuführen, gekennzeichnet durch die folgenden Schritte: g) Bereitstellen einer Zeigertabelle (221); und h) Definieren von Zeigerdaten in den Zeigertabellen (221), die eine Maximum- und eine Minimum-Adresse entsprechender Regeldaten für jede der Maskendaten definieren, i) wobei der Schritt des Durchsuchens der Regeltabelle (22) auf dem Produkt und den Maximum- und Minimum-Adressdaten basiert.
  9. Verfahren nach Anspruch 8, wobei der Schritt des Bereitstellens einen Schritt des numerischen Sortierens von Daten in der Maskentabelle (1410), der Regeltabelle (22) und der Zeigertabelle (221) umfasst, und wobei der Schritt des Durchsuchens das Durchsuchen der Regeltabelle (22) mit einer binären Suche umfasst.
  10. Verfahren nach Anspruch 8, das des Weiteren einen Schritt des Durchschleifens jeder der Maskendaten und des Durchführens jedes Schritts für jede der Maskendaten umfasst, um Übereinstimmungen zwischen dem Produkt für jede der Maskendaten und dem Datenpaket (112) mit den entsprechenden Regeldaten zu ermitteln.
  11. Verfahren nach Anspruch 8, wobei der Schritt des Durchsuchens einen Schritt des Berechnens der Parameter der binären Suche auf der Grundlage der Maximum- und Minimum-Adressdaten umfasst.
  12. Verfahren nach Anspruch 11, wobei der Schritt des Berechnens das Berechnen einer Anzahl von Schritten für die binäre Suche, einer Anfangsadresse für die binäre Suche, und eines Delta für jede der Anzahl von Schritten umfasst.
DE60215416T 2001-03-07 2002-03-07 Zeigerbasierte binäre Suchmaschine und dafür geeignetes Verfahren Expired - Lifetime DE60215416T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US27351601P 2001-03-07 2001-03-07
US273516 2001-03-07

Publications (2)

Publication Number Publication Date
DE60215416D1 DE60215416D1 (de) 2006-11-30
DE60215416T2 true DE60215416T2 (de) 2007-08-30

Family

ID=23044255

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60215416T Expired - Lifetime DE60215416T2 (de) 2001-03-07 2002-03-07 Zeigerbasierte binäre Suchmaschine und dafür geeignetes Verfahren

Country Status (3)

Country Link
US (1) US7068652B2 (de)
EP (1) EP1259035B1 (de)
DE (1) DE60215416T2 (de)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7688727B1 (en) 2000-04-17 2010-03-30 Juniper Networks, Inc. Filtering and route lookup in a switching device
US7215637B1 (en) 2000-04-17 2007-05-08 Juniper Networks, Inc. Systems and methods for processing packets
US6798777B1 (en) 2000-04-17 2004-09-28 Juniper Networks, Inc. Filtering and route lookup in a switching device
US7660292B2 (en) * 2002-06-27 2010-02-09 Broadcom Corporation System and method for isolating network clients
GB2395395B (en) * 2002-11-15 2004-11-10 3Com Corp Classification search scheme and rules engine for network unit
WO2004097565A2 (en) * 2003-04-24 2004-11-11 Secureinfo Corporation Data preservation across an enterprise
US7382777B2 (en) * 2003-06-17 2008-06-03 International Business Machines Corporation Method for implementing actions based on packet classification and lookup results
US20050154762A1 (en) * 2004-01-14 2005-07-14 Bing Wang Fast rule lookup with arbitrary IP range configurations
US7646773B2 (en) * 2004-08-02 2010-01-12 Extreme Networks Forwarding database in a network switch device
US7869453B2 (en) * 2004-12-17 2011-01-11 Lantiq Deutschland Gmbh Apparatus and method for data transfer
US7984180B2 (en) * 2005-10-20 2011-07-19 Solarflare Communications, Inc. Hashing algorithm for network receive filtering
US8077610B1 (en) * 2006-02-22 2011-12-13 Marvell Israel (M.I.S.L) Ltd. Memory architecture for high speed network devices
CN101321170B (zh) * 2008-07-01 2011-07-27 北京锐安科技有限公司 一种新型的过滤查找表自动更新方法
CN102982041B (zh) * 2011-09-06 2018-05-08 百度在线网络技术(北京)有限公司 一种用于检测互动平台中爆发信息的方法与设备
US11088951B2 (en) 2017-01-16 2021-08-10 Intel Corporation Flow classification apparatus, methods, and systems

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6061712A (en) * 1998-01-07 2000-05-09 Lucent Technologies, Inc. Method for IP routing table look-up
US7184441B1 (en) 1999-03-17 2007-02-27 Broadcom Corporation Network switch stacking configuration
US7355970B2 (en) * 2001-10-05 2008-04-08 Broadcom Corporation Method and apparatus for enabling access on a network switch

Also Published As

Publication number Publication date
US20020133619A1 (en) 2002-09-19
DE60215416D1 (de) 2006-11-30
US7068652B2 (en) 2006-06-27
EP1259035A3 (de) 2004-08-25
EP1259035B1 (de) 2006-10-18
EP1259035A2 (de) 2002-11-20

Similar Documents

Publication Publication Date Title
DE60133352T2 (de) Gebundene Netzvermittlungskonfiguration
DE60127794T2 (de) Gebundene Netzschalterkonfiguration
DE60126222T2 (de) Verbundene Netzvermittlungskonfiguration
DE60010328T2 (de) Spiegelung in einer netzwerkvermittlungsstapelanordnung
DE60126223T2 (de) Anordnung zur Verbindung von Netzvermittlungsstellen
DE69834122T2 (de) Verbindingsunterstützung in einer hochleistungsnetzwerkvorrichtung
DE60005993T2 (de) Verfahren und netzwerkvermittlungsstelle mit datenserialisierung durch gefahrlose mehrstufige störungsfreie multiplexierung
DE60309947T2 (de) Hochgeschwindigkeitsprotokoll für die Verbindung von modularen Netzwerkelementen
DE60212916T2 (de) Verfahren und Vorrichtung zum Ermöglichen von Zugriffen in einer Vermittlungsstelle
DE69825596T2 (de) System und verfahren für ein vielschicht-netzelement
DE60031515T2 (de) Netzwerkvermittlung
DE60120790T2 (de) Methode und gerät zum durchsuchen von tabellen in hoher geschwindigkeit
DE69934644T2 (de) Netzwerkvermittlungseinrichtung mit auf der Basis von Benutzung verteilten Umleitungsdatenbanken
DE60103789T2 (de) Wiederabbildung von Prioritäten basierend auf einen virtuellen Bündelwert für eine Datenkommunikationsvermittlungsstelle
DE69836684T2 (de) Unterstützung von vollständigen bäumen in hochleistungsnetzwerkgeräten
DE69826680T2 (de) Hochintegrierte mehrschichtige Vermittlungsstellenelementarchitektur
DE69937598T2 (de) Auf Identifikationsmarken basierendes Paketvermittlungssystem
DE60115154T2 (de) Verfahren und Vorrichtung zum Datenrahmenweiterleiten in einer Vermittlungsstelle
DE69434330T2 (de) Übertragungsvorrichtgung und verfahren
DE69912294T2 (de) Telekommunikationsnetzwerk mit veränderlichen adressenlernen, vermittlung und wegleitung
DE60215416T2 (de) Zeigerbasierte binäre Suchmaschine und dafür geeignetes Verfahren
DE60030737T2 (de) Hochleistungs-Vermittlungselement und -Vermittlungssystem
DE69917555T2 (de) Vermittlungseinrichtung mit mehrstufiger Warteschlangeschema
DE69433126T2 (de) Verfahren zum Einrichten von virtuellen Mehrfachsendeverbindungen
DE102005032479B4 (de) Fernsteuerung eines Vermittlungsknotens in einem Stapel von Vermittlungsknoten

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