-
VERWEIS AUF VERWANDTE
ANMELDUNGEN
-
Diese
Anmeldung beansprucht die Priorität der US-Provisional-Patentanmeldung
Nr. 60/226,013, eingereicht am 18. August 2000.
-
HINTERGRUND
DER ERFINDUNG
-
GEBIET DER
ERFINDUNG
-
Die
Erfindung betrifft eine Vorrichtung zum Hochleistungs-Switching
in lokalen Kommunikationsnetzwerken, wie etwa Token-Ring-, ATM-,
Ethernet-, Fast-Ethernet- sowie
1-Gigabit- und 10.000-MBit/s-Ethernet-Umgebungen, die allgemein
als LANs bekannt sind. Insbesondere betrifft die Erfindung ein Verfahren
und einen Switch, die zum Filtern von Paketen basierend auf den
Paketströmen
verwendet werden.
-
BESCHREIBUNG
DES RELEVANTEN STANDES DER TECHNIK
-
Da
sich die Computerleistung in den letzten Jahren ehöht hat,
sind die Anforderungen an Computernetzwerke deutlich gestiegen;
schnellere Computerprozessoren und höhere Speicherkapazitäten benötigen Netzwerke
mit hohen Bandbreitenfähigkeiten,
um einen Hochgeschwindigkeitstransfer erheblicher Datenmengen zu
ermöglichen.
Die wohlbekannte Ethernet-Technologie, die auf zahlreichen IEEE-Ethernet-Standards basiert,
ist ein Beispiel für
eine Computervernetzungstechnologie, die so modifiziert und verbessert
werden konnte, dass sie eine brauchbare Computertechnologie geblieben
ist. Eine ausführlichere
Besprechung bekannter Vernetzungssysteme findet sich beispielsweise
in SWITCHED AND FAST ETHERNET von Breyer und Riley (Ziff-Davis,
1996) und in zahlreichen IEEE-Publikationen, die IEEE802-Standards
betreffen. Basierend auf dem Open-Systems-Interconnect-(OSI)-Schicht-7-Bezugsmodell
haben sich die Netzwerkfähigkeiten
verbessert, und zwar durch die Entwicklung von Repeatern, Bridges,
Routern und in jüngerer
Zeit von "Switches", die mit verschiedenen
Arten von Kommunikationsmedien arbeiten. Thickwire, Thinwire, TP-Kabel
(verdrillte Kabel) und Glasfasern sind Beispiele für Medien,
die für
Computernetzwerke verwendet worden sind. Switches sind, sofern sie
sich auf Computer-Networking und auf Ethernet beziehen, hardwarebasierte
Vorrichtungen, die den Strom von Datenpaketen oder -zellen basierend
auf Bestimmungsadresseninformationen steuern, welche in jedem Paket
verfügbar sind.
Ein ordnungsgemäß konzipierter
und implementierter Switch sollte dazu in der Lage sein, ein Paket
zu empfangen und das Paket mit so genannter Wirespeed oder Linespeed,
was die maximal erreichbare Geschwindigkeit des spezifischen Netzwerks
ist, an einen geeigneten Ausgangsport zu vermitteln.
-
Die
Wirespeed von Basic-Ethernet beträgt bis zu 10 Megabit pro Sekunde
und von Fast-Ethernet bis zu 100 Megabit pro Sekunde. Das neueste
Ethernet wird als 10.000-MBit/s-Ethernet bezeichnet und kann Daten
mit einer Rate von bis zu 10.000 Megabit pro Sekunde über ein
Netzwerk übertragen.
Da sich die Geschwindigkeit erhöht
hat, sind die Konstruktionsbeschränkungen und Konstruktionsanforderungen
im Hinblick auf die Beachtung ordnungsgemäßer Konstruktions- und Protokollregeln
und das Vorsehen einer kostengünstigen,
kommerziell brauchbaren Lösung
immer komplexer geworden. Beispielsweise beim Filtern von Paketen in
einem Switch basierend auf zugewiesenen Kriterien, wenn das Filterverfahren
die Verarbeitung eines Pakets durch den Switch verzögert, wird
es nahezu unmöglich,
den Switch oder das Netzwerk mit Linespeed zu betreiben.
-
Ein
System zum Filtern von Paketen in einem Netzwerk-Switch ist in der
US-Patentanmeldung 09/343,411 ausgeführt. Ein derartiger Switch
verwendet einen Fast-Filtering-Prozessor (FFP) zum Durchführen der
gewünschten
Filterung. Filtermasken werden auf Abschnitte des ankommenden Pakets
aufgebracht und eine Regeln-Tabelle wird auf Tätigkeiten durchsucht, die durchgeführt werden
sollen, wenn es eine Übereinstimmung
mit einem in der Regeln-Tabelle gefundenen Schlüssel gibt. Das allgemeine Verfahren
der Filterung mit dem FFP ist nachfolgend in Bezug auf die vorliegende
Erfindung beschrieben.
-
US-A-6,104,696
beschreibt ein System und ein Verfahren zum Senden von Paketen zwischen
Ports von Bündel-Netzwerk-Switches.
Das Verfahren umfasst das Vorsehen eines ersten Switch mit mehreren
Kommunikationsports und das Vorsehen eines zweiten Switch mit mehreren
Kommunikationsports. Eine Bündelverbindung
ist zwischen dem ersten Switch und dem zweiten Switch vorgesehen,
wobei die Bündelverbindung wenigstens
zwei der mehreren Ports des ersten Switch umfasst, die mit wenigstens
zwei der mehreren Ports des zweiten Switch verbunden sind. Eine
Regeln-Tabelle ist bereitgestellt, die einen Regelnsatz definiert,
der festlegt welcher Port der Bündelverbindung
zur Datenübertragung
verwendet wird.
-
Obgleich
das vorstehend beschriebene Filterverfahren äußerst flexibel ist, hat es
jedoch gewisse inhärente
Einschränkungen.
Eine dieser Einschränkungen umfasst
die begrenzte Skalierbarkeit des Filterverfahrens. Um eine größere Anzahl
von Strömen
durch den Switch verfolgen zu können,
ist eine umfangreichere Regeln-Tabelle
erforderlich. Die größere Länge der
Regeln-Tabelle erhöht
die Kosten der Vorrichtung und verhindert potenziell eine aufrechtzuerhaltende
Leitungsratenvermittlung (Line Rate Switching). Daher besteht Bedarf
daran, eine auf Strömen
basierende ordnungsgemäße Filterung
von vermittelten Daten vorzusehen, die die Verarbeitung von Daten
durch diesen Switch nicht behindert.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Die
Aufgabe der Erfindung wird durch einen Switch mit den Merkmalen
gemäß Anspruch
1 und ein Verfahren mit den Merkmalen gemäß Anspruch 8 gelöst. Bevorzugte
Ausführungsformen
der Erfindung sind in den abhängigen
Ansprüchen
definiert.
-
Die
vorliegende Erfindung ist auf eine Switch-on-Chip-Lösung für einen
Switch gerichtet, der Ethernet-, Fast-Ethernet- sowie 1-Gigabit-
und 10.000-MBit/s-Ethernet-Systeme
verwenden kann, wobei die gesamte Hardware auf einem einzelnen Mikrochip
angeordnet ist. Die vorliegende Erfindung ist außerdem auf Verfahren gerichtet,
die eingesetzt werden, um die gewünschte Verarbeitung und Übermittlung
(Forwarding) von Daten zu erzielen, wobei die Daten basierend auf
den Strömen
gefiltert werden.
-
Gemäß einer
Ausführungsform
der Erfindung ist ein Netzwerk-Switch zur Netzwerkkommunikation vorgesehen,
wobei der Daten-Switch eine erste Datenport-Schnittstelle umfasst. Die erste Datenport-Schnittstelle
unterstützt
wenigstens einen Datenport, der Daten sendet und empfängt. Es
ist eine zweite Datenport-Schnittstelle vorgesehen, wobei die zweite
Datenport-Schnittstelle wenigstens einen Datenport unterstützt, der
Daten mit einer zweiten Datenrate sendet und empfängt. Es
ist eine CPU-Schnittstelle vorgesehen, wobei die CPU-Schnittstelle
dafür konfiguriert
ist, mit einer CPU zu kommunizieren. Es ist ein interner Speicher vorgesehen,
wobei der interne Speicher mit der ersten und der zweiten Datenport-Schnittstelle
kommuniziert. Es ist außerdem
eine Speicher-Managementeinheit vorgesehen, wobei die Speicher-Managementeinheit
eine externe Speicherschnittstelle zum Übertragen von Daten von der
ersten und/oder der zweiten Datenport-Schnittstelle und/oder einem
externen Speicher umfasst. Es ist ein Kommunikationskanal vorgesehen, der
Daten übermittelt
und Informationen überträgt, und
zwar zwischen der ersten Datenport-Schnittstelle, der zweiten Datenport-Schnittstelle,
der CPU-Schnittstelle, dem internen Speicher und der Speicher-Managementeinheit.
Eine Datenport-Schnittstelle der ersten und der zweiten Datenport-Schnittstelle
umfasst einen Fast-Filtering-Prozessor, wobei der Fast-Filtering-Prozessor
die in die eine Datenport-Schnittstelle eingehenden Daten filtert
und basierend auf einem Filterergebnis eine selektive Filtertätigkeit
durchführt.
Darüber
hinaus umfasst die eine Datenport-Schnittstelle außerdem eine
Stromüberwachungseinrichtung
zum Überwachen
von Datenströmen
durch den Netzwerk-Switch, wobei ein Strom der Datenströme durch
eine Kombination aus einer Quellenadresse und einer Bestimmungsadresse
für einen
Teil der Daten, die durch den Netzwerk-Switch geleitet werden, definiert
wird. Der Fast-Filtering-Prozessor
ist durch Eingaben von der CPU über die
CPU-Schnittstelle programmierbar.
-
Die
Erfindung ist außerdem
auf einen Switch gerichtet, der eine Regeln-Tabelle-Schnittstelle (Rules-Table-Schnittstelle)
umfasst, wobei der Fast-Filtering-Prozessor auf ein eingehendes Paket
eine Filtermaske anlegt, wodurch ein Filterergebnis bereitgestellt
wird. Das Filterergebnis wird auf vordefinierte Regeln in der Regeln-Tabelle
angelegt und es werden an dem Paket Tätigkeiten durchgeführt, die
auf dem Filterergebnis basieren.
-
Gemäß einem
anderen Aspekt der Erfindung ist ein Verfahren zur Handhabung von
Datenpaketen in einem Netzwerk-Switch vorgesehen, wobei das Verfahren
den Schritt des Platzierens eingehender Datenpakete in einer Eingangswarteschlange
und des Anlegens der Eingangsdatenpakete an eine Address-Resolution-Logic-Engine (Adressenauflösungslogikmaschine)
umfasst. Es wird ein Lookup durchgeführt, um zu bestimmen, ob bestimmte
Paketfelder in einer Lookup-Tabelle (Nachschlagetabelle) gespeichert
sind, wobei Indexwerte für
die Eingangsdatenpakete anhand der Tabelle ermittelt werden. Das
eingehende Paket wird durch einen Fast-Filtering-Prozessor gefiltert, um zu
bestimmen welche spezifischen Tätigkeiten
durchgeführt
werden sollten, um das Paket zur weiteren Handhabung zu modifizieren.
Das Paket wird basierend auf dem Filterungsschritt verworfen, übermittelt
oder modifiziert. Die Indexwerte werden vom Fast-Filtering-Prozessor
verwendet, um rasch eine indizierte spezifische Tätigkeit
der spezifischen Tätigkeiten
zu finden.
-
Der
Netzwerk-Switch kann bei einer bevorzugten Ausführungsform auf einem einzelnen
ASIC-Chip integriert sein. Der Netzwerk-Switch kann bei einer bevorzugten
Ausführungsform
außerdem
mehrere halbleiterimplementierte Nachschlagetabellen (Lookup-Tabellen)
enthalten, wobei die mehreren Nachschlagetabellen Adressenauflösungs-/Layer-3-Nachschlagetabellen,
Regeln-Tabellen und VLAN-Tabellen umfassen.
-
KURZBESCHREIBUNG
DER ZEICHNUNGEN
-
Die
Ziele und Merkmale der Erfindung gehen unter Bezugnahme auf die
folgende Beschreibung und die beigefügten Zeichnungen genauer hervor.
Es zeigt:
-
1 ein
allgemeines Blockdiagramm erfindungsgemäßer Elemente,
-
2 ein
Blockdiagramm von Elementen des erfindungsgemäßen Switch-on-Chip,
-
3 den
Datenstrom im Ingress im erfindungsgemäßen Switch,
-
4 ein
Blockdiagramm eines Fast-Filtering-Prozessors (FFP),
-
5 eine
Reihe von Schritten, die zum Programmieren eines FFP verwendet werden.
-
GENAUE BESCHREIBUNG
DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
Im
Allgemeinen wird ein Strom durch eine Fünfwerterkennung beschrieben,
die eine Quellen-IP-Adresse, eine Bestimmungs-IP-Adresse, eine Protokollart,
einen Quellenport und einen Bestimmungsport (Quell-IP, Best-IP,
Protokollart, Quell-Port, Best-Port) umfasst. Zum Kennzeichnen eines
Stromes unter Verwendung des FFP ist eine Filtermaske erforderlich,
die den Strom kennzeichnet. Der Filterwert zusammen mit den zusätzlichen
wahffreien Kennzeichnern, wie etwa Ingress-Port und Egress-Port,
bilden den Suchschlüssel,
der dann zum Durchsuchen der Regeln-Tabelle verwendet wird. Wenn es eine Übereinstimmung
gibt, werden die entsprechenden Tätigkeiten durchgeführt, die
beispielsweise das Festlegen der Priorität des Pakets, das Verwerfen
des Pakets, etc. umfassen können.
Das allgemeine Verfahren des Filterns eingehender Daten ist nachfolgend
genauer beschrieben.
-
Typischerweise
muss eine große
Anzahl an Strömen
in einem Switch überwacht
werden, insbesondere in Switches, die Server-Lastausgleichsanwendungen
unterstützen.
Dies würde
bedeuten, dass die Regeln-Tabelle groß sein müsste, wobei die Suche in einer
derart großen
Regeln-Tabelle die Leitungsratenleistung (line rate performance)
verhindern würde.
Die vorliegende Erfindung behebt diesen Mangel durch Vorsehen eines
Index in den L2- und L3-Tabellen und die Verwen dung von Indizes,
die aus den Lookups erhalten werden, um eine Mess-ID (meter ID)
zu erlangen und die entsprechenden Tätigkeiten durchzuführen.
-
1 zeigt
eine Ausgestaltung, bei der ein Switch-on-Chip (SOC – auf dem
Chip befindlicher Switch) 10 erfindungsgemäß funktionell
mit externen Einrichtungen 11, einer Zentraleinheit (CPU) 52,
Gigabit-Ethernet-Ports 15 und Ethernet-Ports 17 verbunden
ist. Bei dieser Ausführungsform
sind die Gigabit-Ethernet-Ports 15, welche Hochgeschwindigkeits-Ethernet-Ports
sind, dazu in der Lage, mit 1.000 MBps zu arbeiten, können jedoch
auch mit Geschwindigkeiten zwischen 10 MBps und 100 MBps arbeiten.
Obgleich der Switch-on-Chip ebenfalls mit den Ethernet-Ports verbunden
dargestellt ist, sind Ausführungsformen
der Erfindung auch auf Switches anwendbar, die nur mit Gigabit-Ethernet-Ports
verbunden sind. Externe Einrichtungen 11 könnten andere
Switching-Einrichtungen zum Erweitern Switching-Fähigkeiten
oder andere Einrichtungen umfassen, die bei einer speziellen Anwendung
erforderlich sein können.
Die CPU 52 kann nach Bedarf zum Programmieren des SOC 10 mit
zur Steuerung der Paketverarbeitung geeigneten Regeln verwendet
werden. Sobald der SOC 10 jedoch ordnungsgemäß programmiert
oder konfiguriert worden ist, arbeitet der SOC 10 so weit
als möglich in
freilaufender Weise, ohne mit der CPU 52 zu kommunizieren.
Da die CPU 52 nicht jeden Aspekt des Betriebs des SOC 10 steuert,
sind die Leistungsanforderungen der CPU 52, zumindest im
Hinblick auf den SOC 10, relativ gering. Es kann daher
im Vergleich zu bekannten Netzwerk-Switches eine weniger leistungsstarke
und somit kostengünstigere
CPU 52 verwendet werden.
-
Es
wird darauf hingewiesen, dass eine beliebige Anzahl an Gigabit-Ethernet-Ports 15 oder
Ethernet-Ports 17 vorgesehen werden kann. Bei einer Ausführungsform
können
8 Gigabit-Ports 15 vorgesehen werden. In ähnlicher
Weise können
weitere Verbindungsleitungen zu weiteren externen Einrichtungen 11 und CPUs 52 bei
Bedarf bereitgestellt werden.
-
Der
SOC 10 umfasst mehrere Ethernet-Port-Schnittstellensteuereinrichtungen
(EPIC – Ethernet
Port Interface Controller) 20a, 20b, 20c,
etc., mehrere Gigabit-Port-Schnittstellensteuereinrichtungen (GPIC – Gigabit
Port Interface Controller) 30a, 30b, etc., eine
CPU-Verwaltungsschnittstellensteuereinheit (CMIC – CPU Management
Interface Controller) 40, einen gemeinsamen Pufferspeicherpool
(CBP -Common Buffer Memory Pool) 50, eine angeschlossene
Speicherverwaltungseinheit (PMMU – Pipelined Memory Management
Unit) 70, die einen gemeinsamen Pufferverwalter (CBM – Common
Buffer Manager) 71 umfasst, und eine systemweite Bus-Struktur,
die als CPS-Kanal 80 bezeichnet wird. Die PMMU 70 kommuniziert
mit einem externen Speicher 12, der einen globalen Pufferspeicherpool
(GBP – Global
Buffer Memory Pool) 60 umfasst. Der CPS-Kanal 80 umfasst
einen C-Kanal 81, einen P-Kanal 82 und einen S-Kanal 83.
-
Der
CPS-Kanal wird auch als Zellenprotokollseitenbandkanal (Cell Protocoll
Sideband Channel) bezeichnet und ist ein 17GBps-Kanal, der die verschiedenen
Module "zusammenschweißt" oder miteinander
verbindet. Wie ebenfalls in 2 gezeigt,
können
andere Hochgeschwindigkeitsverbindungen vorgesehen werden, wie etwa
die dargestellte erweiterbare Hochgeschwindigkeitsverbindung. Bei
einer Ausführungsform
der Erfindung kann diese Verbindung in Form einer Verbindungsportschnittstellensteuereinheit
(IPIC – Interconnect
Port Interface Controller) 90 vorgesehen sein, die den
CPS-Kanal 80 über
eine erweiterbare Hochgeschwindigkeitsverbindungsleitung an externe
Einrichtungen 11 anschließen kann.
-
Wie
nachfolgend besprochen, stehen jede EPIC 20a, 20b und 20c,
die allgemein als EPIC 20 bezeichnet werden, und jede GPIC 30a und 30b,
die allgemein als GPIC 30 bezeichnet werden, mit geeigneten
Adressenauflösungslogik-
und Layer-3-Switching-Tabellen 21a, 21b, 21c, 31a, 31b,
Regeln-Tabellen 22a, 22b, 22c, 31a, 31b und
VLAN-Tabellen 23a, 23b, 23c, 31a, 31b in
enger Wechselbeziehung. Diese Tabellen sind jeweils allgemein mit 21, 31, 22, 32, 23, 33 bezeichnet.
Diese Tabellen sind wie andere Tabellen des SOC 10 als
zweidimensionale Anordnungen in Silizium implementiert.
-
Bei
einer bevorzugten Ausführungsform
der Erfindung unterstützt
jede EPIC 20 8 Fast-Ethernet-Ports 13 und vermittelt,
je nach Bedarf, Pakete zu und/oder von diesen Ports. Die Ports sind
daher unter Verwendung bekannter Medienverbindungstechnologie mit
dem Netzwerkmedium (Koaxial-, TP-, Glasfaserkabel etc.) verbunden
und kommunizieren mit dem CPS-Kanal 80 auf dessen anderer
Seite. Die Schnittstelle jeder EPIC 20 zum Netzwerkmedium
kann durch eine interne reduzierte Medienschnittstelle (RMII – Reduced
Media Internal Interface) bereitgestellt werden, die eine direkte
Mediumverbindung mit dem SOC 10 ermöglicht. Wie im Stand der Technik
bekannt, ist die Autonegotiation ein Aspekt von Fast-Ethernet, wobei
das Netzwerk basierend auf den Fähigkeiten
der jeweiligen Einrichtungen eine höchste Übertragungsgeschwindigkeit
zwischen einer Quelle und einer Bestimmungsadresse vermitteln kann.
Die Übertragungsgeschwindigkeit
kann, wie vorstehend erwähnt,
zwischen 10 MBps und 100 MBps variieren, die Autonegotiationsfähigkeit
ist daher direkt in jedes EPIC-Modul eingebaut.
-
Die
Adressenauflösungslogik-
(ARL – address
resolution logic) und Layer-3-Tabellen
(ARL/L3) 21a, 21b, 21c, die Regeln-Tabelle 22a, 22b, 22c und
die VLAN-Tabellen 23a, 23b und 23c sind
so konfiguriert, dass sie in effizienter und zweckmäßiger Weise
einen Teil der zugeordneten EPIC bilden oder an diese angeschlossen
sind, um auch den Wirespeed-Paketstrom zu unterstützen.
-
Jede
EPIC 20 weist separate Ingress- und Egress-Funktionen auf.
Auf der Ingress-Seite können
Level-2-Adresseninformationen in selbstinitiierter oder durch die
CPU initiierte Weise in Erfahrung gebracht werden. Die Adressenauflösungslogik
wird dazu verwendet, bei dieser Aufgabe zu helfen. Address-Aging
wird als Merkmal eingebaut, um die Speicherung von Adresseninformationen
zu beenden, die nicht länger
gültig
oder brauchbar sind. Die EPIC führt
ebenfalls eine Layer-2-Spiegelung durch. Ein Fast-Filtering-Prozessor
(FFP) 141 (siehe 3) ist in
die EPIC eingebaut, um die Paketübermittlung
zu beschleunigen und den Paketstrom zu verstärken. Die Ingress-Seite jeder
EPIC und GPIC verfügt über ein
erhebliches Maß an
Komplexität,
um eine beträchtliche
Anzahl an unterschiedlichen Paketarten, die am Port ankommen können, zur
Linespeed-Zwischenspeicherung ordnungsgemäß verarbeiten und dann zum
Egress übertragen
zu können.
Funktionell weist jeder Port an jedem Modul des SOC 10 ein
ihm zugeordnetes, separates Ingress-Untermodul 14 auf.
Aus der Perspektive der Implementierung werden jedoch, um die auf
dem Ein-Chip-SOC 10 implementierte Hardwaremenge zu minimieren,
im Silizium gemeinsame Hardwareelemente verwendet, um mehrere Ingress-Untermodule
auf jedem spezifischen Modul auszuführen. Die hierin besprochene
Ausgestaltung des SOC 10 ermöglicht eine gleichzeitige Durchführung von
Lookups und Filterung und daher eine Verarbeitung von bis zu 6,6
Millionen Paketen pro Sekunde. Layer-2-Lookups, Layer-3-Lookups und die Filterung
können gleichzeitig
stattfinden, um dieses Leistungsniveau zu erreichen.
-
Auf
der Egress-Seite ist die EPIC, basierend entweder auf einer Egress-Verwaltungs- oder
Diensklasse- (COS-/Class-of-Service-) Funktion dazu in der Lage,
die Paketabfrage zu unterstützen.
Ein Rerouting/Scheduling von zu sendenden Paketen kann stattfinden,
ebenso wie eine Head-of-Line-(HOL)-Blocking-Benachrichtigung, Paket-Aging,
Zellenzusammensetzung (cell reassembly) sowie andere Funktionen, die
mit der Ethernet-Port-Schnittstelle in Verbindung gebracht werden.
-
Jede
GPIC 30 ist jeder EPIC 20 ähnlich, unterstützt jedoch
nur einen Gigabit-Ethernet-Port
und nutzt eine portspezifische ARL-Tabelle, anstatt eine ARL-Tabelle zu
verwenden, die auch andere Ports nutzen. Darüber hinaus ist jeder GPIC-Port
unter Verwendung einer medienunabhängigen Gigabit-Schnittstelle
(GMII – Gigabit
Media Independent Interface), anstelle einer RMII, an das Netzwerkmedium
angeschlossen.
-
Die
CMIC 40 dient als Netzübergang
(Gateway) zwischen dem SOC 10 und der Haupt-CPU. Die Kommunikation
kann beispielsweise längs
eines PCI-Bus oder eines anderen akzeptablen Kommunikationsbus stattfinden.
Die CMIC 40 kann sequentielle direkte Mapped-Accesses zwischen
der Haupt-CPU 52 und dem SOC 10 vorsehen. Die
CPU 52 kann, über
die CMIC 40, auf zahlreiche Ressourcen auf dem SOC 10 zugreifen, welche
MIB-Zähler,
programmierbare Register, Status- und Steuerregister, Konfigurationsregister,
ARL-Tabellen, portbasierte VLAN-Tabellen, IEEE802.1q-VLAN-Tabellen,
Layer-3-Tabellen, Regeln-Tabellen, CBP-Adressen- und Datenspeicher sowie GBP-Adressen-
und Datenspeicher umfassen. Wahlweise kann die CMIC 40 eine
DMA-Unterstützung,
DMA-Verkettung (DMA-Chaining) und -Scatter-Gather sowie einen Master- und
Target-PCI 164 umfassen.
-
Ein
gemeinsamer Pufferspeicherpool oder CBP 50 kann als auf
dem Chip befindlicher Datenspeicher in Betracht gezogen werden.
Bei einer Ausführungsform
der Erfindung ist der CBP 50 ein Hochgeschwindigkeits-Level-1-SRAM-Speicher,
um die Leistung zu maximieren und den Hardware-Overhead-Bedarf zu
minimieren. Der CBP kann eine Größe von z.B.
720 Kilobyte haben und mit 132 MHz laufen. Im CBP 50 gespeicherte
Pakete werden typischerweise als Zellen anstatt als Pakete gespeichert.
Wie in der Figur gezeigt, umfasst die PMMU 70 auch den
gemeinsamen Pufferverwalter (CBM) 71. Der CBM 71 handhabt
die Warteschlangenverwaltung und ist dafür verantwortlich, eingehenden
Zellen Zellenzeiger zuzuordnen sowie gemeinsame Paket-IDs (CPID – Common
Paket ID) zuzuweisen, sobald das Paket vollständig in den CBP geschrieben
worden ist. Der CBM 71 kann auch die Verwaltung des auf
dem Chip befindlichen freien Adressenzeigerpools (on-chip free address
pointer pool) handhaben, aktuelle Datentransfers zu und von dem
Datenpool steuern und eine Speicher-Budget-Verwaltung vorsehen.
-
Ein
globaler Speicherpufferpool oder GBP 60 dient als Level-2-Speicher
und kann sich auf dem Chip oder nicht auf dem Chip befinden. Bei
der bevorzugten Ausführungsform
befindet sich der GBP 60 in Bezug auf den SOC 10 nicht
auf dem Chip. Wenn er sich nicht auf dem Chip befindet, wird der
GBP 60 als Teil eines oder insgesamt als externer Speicher 12 betrachtet.
Als Level-2-Speicher muss der GBP kein teurer Hochgeschwindigkeits-SRAM
sein und kann ein langsamerer und kos tengünstigerer Speicher, wie etwa
ein DRAM, sein. Der GBP ist eng mit der PMMU 70 verbunden
und arbeitet insofern wie der CBP als dass Pakete als Zellen gespeichert
werden. Bei Broadcast- und Multicast-Nachrichten wird nur eine Kopie
des Pakets im GBP 60 gespeichert.
-
Wie
in der Figur gezeigt, befindet sich die PMMU 70 zwischen
dem GBP 60 und dem CPS-Kanal 80 und dient als
externe Speicherschnittstelle. Zur Optimierung der Speichernutzung
umfasst die PMMU 70 mehrere Lese-/Schreibpuffer und unterstützt zahlreiche
Funktionen, einschließlich
einer globalen Warteschlangenverwaltung, die im Allgemeinen die
Zuweisung von Zellenzeigern für
umgeleitete (rerouted) eingehende Pakete, die Aufrechterhaltung
des globalen FAP, eine zeitoptimierte Zellenverwaltung, eine globale
Speicherbudgetverwaltung, eine GPID-Zuweisung und eine Egress-Verwalterbenachrichtigung,
eine Schreibpufferverwaltung, Lese-Prefetches, die auf Egress-Verwalter-/Dienstklasseanfragen
basieren, und eine Smart-Memory-Control (intelligente Speichersteuerung)
umfasst.
-
3 zeigt
einige Details der gleichzeitig stattfindenden Filterung und Lookups
eines an der Ingress-Seite eines Ports des Switch eingehenden Pakets. 3 widmet
sich der Anwendung von Filter-, Adressenauflösungs- und Regeln-Anwendungssegmenten
des SOC 10. Diese Funktionen werden bezogen auf den vorstehend
besprochenen CBP-Einlass gleichzeitig ausgeführt. Wie in der Figur gezeigt,
wird ein Paket an einem Eingangsport einer der EPICs 20 und/oder
GPICs 30 empfangen. Dann wird es zum Eingangs-FIFO 33 geleitet.
Sobald die ersten sechzehn Bytes des Pakets am Eingangs-FIFO 33 ankommen,
wird eine Adressenauflösungsanfrage
an die ARL-Maschine (ARL-Engine) gesendet (Schritt 2a),
wodurch der Lookup in den ARL/L3-Tabellen 21 initiiert
wird.
-
Wenn
das Paket einen 802.1q-Tag aufweist, führt die ARL-Maschine den Lookup
basierend auf dem 802.1q-Tag in der TAGBASIERTEN VLAN-TABELLE durch.
Wenn das Paket keinen 802.1q-Tag enthält, findet die ARL-Maschine
das VLAN basierend auf dem Ingress-Port in der PORTBASIERTEN VLAN-TABELLE.
Sobald das VLAN des ankommenden Pakets identifiziert worden ist,
durchsucht die ARL-Maschine die ARL-Tabelle basierend auf der Quellen-MAC-Adresse
und der Bestimmungs-MAC-Adresse. Der bei dieser Suche verwendete
Schlüssel
ist die MAC-Adresse + VLAN-ID. Wenn das Ergebnis der ARL-Suche eine
der L3-Schnittstellen-MAC-Adressen ist, dann wird die L3-Suche durchgeführt, um
den Route-Eintrag
zu finden. Wenn eine L3-Suche erfolgreich ist, wird das Paket gemäß Paket-Routing-Regeln modifiziert.
-
In
Schritt 2b wird, sobald die ersten 64 Bytes am Eingangs-FIFO
ankommen, eine Filteranfrage an den Fast-Filtering-Prozessor (FFP) 27 gesendet.
Das Ergebnis der ARL-Suche, Schritt 3a, umfasst den oder
die Egress-Ports, die Dienstklasse (COS), die Bit-Karte (Bitmap)
eines ungetaggten Ports sowie außerdem, in Schritt 3b,
das im Hinblick auf den Tag-Header oder L3-Header und L2-Header
gemäß den Routing-Regeln modifizierte
Paket. Der FFP legt alle konfigurierten Filter an, wobei Ergebnisse
aus der REGELN-TABELLE erhalten werden.
-
Das
Ergebnis der Filterlogik, 3c, entscheidet, ob das Paket
verworfen werden, an die CPU gesendet oder, in Schritt 3d,
das Paket im Hinblick auf den 802.1q-Header oder das TOS-Precedence-Feld
im IP-Header modifiziert werden muss. Wenn das TOS-Precedence-Feld
im IP-Header modifiziert wird, muss die IP-Prüfsumme
neu berechnet und im IP-Header modifiziert werden.
-
Das
Ergebnis des FFP und der ARL-Maschine, 31, wird in Schritt 4a angewandt,
um das Paket im Puffer-Slicer 32 zu modifizieren. Basierend
auf dem Ergebnis der ARL-Maschine und dem FFP, 4b, wird
der Nachrichten-Header 28 so gebildet, dass er bereit ist,
an den Protokollkanal 30 zu gehen. Die Verteilereinheit
(Dispatch-Unit) 29 sendet das modifizierte Paket in Schritt 5a an
den Zellenkanal (C-Kanal) 80 und gleichzeitig in Schritt 5b die
Steuernachricht an den Protokollkanal (P-Kanal) 80. Die
Steuernachricht enthält
Informationen, wie etwa die Quellenportnummer, die COS, Marken,
Zeitstempel und die Bit-Karte all der Ports, an die das Paket ausgesendet
werden sollte, sowie die ungetaggte Bit-Karte.
-
Der
FFP 27 ist im Wesentlichen eine durch eine Zustandsmaschine
betriebene, programmierbare Regeln-Maschine. Die vom FFP verwendeten
Filter sind 64 (vierundsechzig) Bytes breit und werden an ein eingehendes
Paket angelegt, wobei ein beliebiger Versatz verwendet werden kann,
eine bevorzugte Ausführungsform
verwendet jedoch einen Versatz von null und arbeitet daher mit den
ersten 64 Bytes oder 512 Bits eines Pakets. Die vom Filter durchgeführten Tätigkeiten
umfassen Tag-Einfügung,
Prioritäts-Mapping, TOS-Tag-Einfügung, Senden
des Pakets an die CPU, Verwerten des Pakets, Übermitteln des Pakets an einen Egress-Port
und Senden des Pakets an einen gespiegelten Port.
-
Die
vom FFP 141 genutzten Filter werden durch die Regeln-Tabelle 22 gebildet.
Die Regeln-Tabelle 22 kann vollständig durch die CPU, über die
CMIC 40, programmiert werden. Die Regeln-Tabelle kann beispielsweise
256 Einträge
umfas sen und in einschließende
und ausschließende
Filter unterteilt sein, mit, wiederum als Beispiel, 128 Einträgen für einschließende Filter
und 128 Einträgen
für ausschließende Filter.
Eine Filterdatenbank im Filter 141 umfasst mehrere einschließende Maskenregister
und ausschließende
Maskenregister, so dass die Filter basierend auf den Regeln in der
Regeln-Tabelle 22 gebildet werden und die Filter daher
im Wesentlichen eine 64 Byte breite Maske oder Bit-Karte (Bitmap)
bilden, die an das eingehende Paket angelegt wird.
-
Wenn
der Filter als ausschließender
Filter festgelegt ist, schließt
er alle Pakete aus, sofern keine Übereinstimmung vorhanden ist.
Mit anderen Worten, der ausschließende Filter erlaubt es einem
Paket nur dann das Forwarding-Verfahren (Vermittlungsverfahren)
zu durchlaufen, wenn eine Filterübereinstimmung
vorhanden ist. Wenn es keine Filterübereinstimmung gibt, wird das
Paket verworfen. Bei einem einschließenden Filter wird, wenn es
keine Übereinstimmung
gibt, keine Tätigkeit
durchgeführt,
das Paket jedoch nicht verworfen. Die Tätigkeit eines ausschließenden Filters
erfordert eine genaue Übereinstimmung
aller Filterfelder. Wenn eine genaue Übereinstimmung mit einem ausschließenden Filter
vorhanden ist, wird daher die gemäß dem Tätigkeitsfeld spezifizierte
Tätigkeit
durchgeführt,
wobei die durchführbaren
Tätigkeiten
vorstehend ausgeführt
sind. Wenn es keine vollständige
oder genaue Übereinstimmung
mit sämtlichen
Filterfeldern gibt, jedoch eine teilweise Übereinstimmung vorhanden ist,
wird das Paket verworfen. Eine teilweise Übereinstimmung wird entweder
als Übereinstimmung
am Ingress-Feld, Egress-Feld oder an den Filterauswahlfeldern definiert.
Wenn weder eine vollständige
noch eine teilweise Übereinstimmung
zwischen dem Paket und dem ausschließenden Filter vorhanden ist,
wird keine Tätigkeit
durchgeführt
und das Paket durchläuft
das Forwarding-Verfahren.
Die FFP-Konfiguration, die basierend auf den ersten 64 Bytes eines
Pakets tätig
wird, verbessert die Handhabung des Echtzeitverkehrs, da Pakete "on the fly" gefiltert und Tätigkeiten "on the fly" durchgeführt werden
können. Ohne
einen erfindungsgemäßen FFP
müsste
das Paket an die CPU übermittelt
werden, um geeignete Tätigkeiten
zu ermitteln und durchzuführen.
Bei einschließenden
Filtern wird, wenn eine Filterübereinstimmung
vorhanden ist, eine Tätigkeit
durchgeführt
und, wenn keine Filterübereinstimmung
vorhanden ist, keine Tätigkeit durchgeführt, die
Pakete werden jedoch bei einschließenden Filtern nicht auf der
Basis einer Übereinstimmungs-
oder Nicht-Übereinstimmungssituation
verworfen.
-
Zusammenfassend
umfasst der FFP eine Filterdatenbank mit acht Sätzen einschließender Filter
und acht Sätzen
ausschließender
Filter als separate Filtermasken. Wenn ein Paket in den FFP eingeht,
werden die Filtermasken an das Paket angelegt, mit anderen Worten,
es wird mit der Maske und dem Paket ein logischer UND-Betrieb durchgeführt. Wenn
es eine Übereinstimmung
gibt, werden die übereinstimmenden
Einträge
an die Regeln-Tabelle 22 angelegt, um zu bestimmen, welche
spezifischen Tätigkeiten
durchgeführt
werden sollen. Wie vorstehend erwähnt, umfassen die Tätigkeiten
die 802.1p-Tag-Einfügung,
802.1p-Prioritäts-Mapping, IP-TOS-(Type-of-Service-/Dienstleistungsfeld-)
Tag-Einfügung,
das Senden des Pakets an die CPU, das Verwerfen oder Entfernen des
Pakets, das Übermitteln
(Forwarding) des Pakets an einen Egress-Port und das Senden des
Pakets an den gespiegelten Port.
-
Da
es in der Regeln-Tabelle eine begrenzte Anzahl an Feldern gibt und
da bei verschiedenen Paketarten bestimmte Regeln angewandt werden
müssen,
werden die Anforderungen an die Regeln-Tabelle bei der vorliegenden
Erfindung minimiert, indem die vorliegende Erfindung alle eingehenden
Pakete als "mit
Tags versehene" Pakete
festlegt, so dass alle Pakete, die nicht mit Tags versehen sind,
einer 802.1p-Tag-Einfügung unterzogen
werden, um die Anzahl der Einträge
zu reduzieren, die in der Regeln-Tabelle erforderlich sind. Diese
Tätigkeit
macht Einträge
betreffend die Handhabung nicht mit Tags versehener Pakete überflüssig. Es
wird darauf hingewiesen, dass spezifische Paketarten durch verschiedene
IEEE- und andere Netzwerkstandards definiert und daher hierin nicht
näher ausgeführt sind.
-
Wie
vorstehend ausgeführt,
werden ausschließende
Filter in der Regeln-Tabelle
als Filter gebildet, die Pakete ausschließen, bei denen es keine Übereinstimmung
gibt, wobei ausgeschlossene Pakete verworfen werden. Bei einschließenden Filtern
werden die Pakete jedoch unter keinen Umständen verworfen. Wenn es eine Übereinstimmung
gibt, werden wie vorstehend ausgeführt Tätigkeiten durchgeführt, wenn
es keine Übereinstimmung
gibt, wird keine Tätigkeit
durchgeführt
und das Paket durchläuft
das Forwarding-Verfahren. Bezug nehmend auf 4 ist der
FFP 27 mit einer Filtermasken enthaltenden Filterdatenbank 272 dargestellt, die
mit einer Logikschaltung 271 zum Bestimmen der Paketarten
und Anlegen der geeigneten Filtermasken in Verbindung steht. Wenn
die Pakete basierend auf den Strömen
gefiltert werden, wie nachfolgend ausgeführt, wird eine Stromüberwachungseinrichtung 273 dazu
verwendet, die Ströme
durch den Switch zu verfolgen. Nachdem die Filtermaske wie vorstehend
erwähnt
angelegt worden ist, wird das Ergebnis des Anlegens auf die Regeln-Tabelle 22 zur
Durchführung
eines geeigneten Lookups und einer geeigneten Tätigkeit angewandt. Es wird
darauf hingewiesen, dass die Filtermasken, Regeln-Tabellen und Logik,
obgleich sie durch die CPU 52 programmierbar sind, sich
zu deren Verarbeitung und Berechnung nicht auf die CPU 52 stützen. Nach
der Programmierung ist eine Hardware-Konfiguration vorgesehen, die
eine Linespeed-Filteranwendung und einen Linespeed-Lookup ermöglicht.
-
Bezug
nehmend nochmals auf 3, bestimmt die Logik 271 im
FFP 27 die geeigneten Tätigkeiten und
führt sie
durch, und zwar nachdem der FFP 27 die geeigneten konfigurierten
Filter angelegt hat und von den geeigneten Regeln-Tabellen 22 Ergebnisse
erhalten worden sind. Die Filterlogik kann das Paket verwerfen,
das Paket an die CPU 52 senden, den Paket-Header oder IP-Header
modifizieren und beliebige IP-Prüfsummenfelder
neu berechnen oder bezogen auf die Header andere geeignete Tätigkeiten
durchführen.
Die Modifikation findet im Puffer-Slicer 32 statt und das
Paket wird auf dem C-Kanal 80 platziert. Die Steuernachrichten-
und Nachrichten-Header-Informationen werden vom FFP 27 und
der ARL-Maschine 24 zugeführt und der Nachrichten-Header
auf dem P-Kanal 80 platziert. Die Verteilereinheit (Dispatch-Unit) 29 koordiniert
sämtliche
Verteilungen an den C-Kanal, P-Kanal
und S-Kanal.
-
Wie
vorstehend erwähnt,
ist jedes EPIC-Modul 20, GPIC-Modul 30, die PMMU 70,
etc. jeweils individuell dafür
konfiguriert, über
den CPS-Kanal zu kommunizieren. Jedes Modul kann unabhängig modifiziert werden,
wobei, solange die CPS-Kanalschnittstellen
beibehalten werden, interne Modifikationen an beliebigen Modulen,
wie etwa der EPIC 20a, kein anderes der Module, wie etwa
die EPIC 20b oder eines der GPICs 30, beeinträchtigen
sollten.
-
Wie
vorstehend erwähnt,
kann der FFP 27 durch den Benutzer über die CPU 52 basierend
auf den spezifischen Funktionen programmiert werden, die von jedem
FFP 27 gehandhabt werden sollen. Bezug nehmend auf 5 ist
ersichtlich, dass in Schritt 17-1 ein FFP-Programmierschritt
vom Benutzer initiiert wird. Sobald die Programmierung initiiert
worden ist, legt der Benutzer in Schritt 17-2 alle Protokollfelder
des Pakets fest, die für
den Filter von Interesse sein sollen. In Schritt 17-3 werden
die Paketart und Filterbedingungen bestimmt und in Schritt 17-4 wird
eine Filtermaske basierend auf der festgelegten Paketart und den
gewünschten Filterbedingungen
konstruiert. Die Filtermaske ist im Wesentlichen eine Bit-Karte,
die angelegt oder mit ausgewählten
Feldern des Pakets einem UND-Verfahren unterzogen wird. Nach dem
Konstruieren der Filtermaske wird bestimmt, ob der Filter ein einschließender oder
ausschließender
Filter sein soll, und zwar in Abhängigkeit von den Problemen,
die gelöst,
den Paketen, die übermittelt,
und den Tätigkeiten,
die durchgeführt
werden sollen, etc. In Schritt 17-6 wird bestimmt, ob sich
der Filter am Ingress-Port befindet oder nicht, und in Schritt 17-7,
ob sich der Filter am Egress- Port
befindet oder nicht. Wenn sich der Filter am Ingress-Port befindet,
wird in Schritt 17-8 eine Ingress-Portmaske verwendet.
Wenn bestimmt wird, dass sich der Filter am Egress-Port befindet,
wird in Schritt 17-9 eine Egress-Maske verwendet. Basierend
auf diesen Schritten, wird dann ein Regeln-Tabelleneintrag für die Regeln-Tabelle 22 konstruiert
und der Eintrag oder die Einträge
in die geeignete Regeln-Tabelle
eingefügt
(Schritte 17-10 und 17-11). Diese Schritte werden
durch den Benutzer vorgenommen, der spezifische Sätze an Regeln
und Informationen über
eine geeignete Eingabeeinrichtung in die CPU 52 eingibt,
wobei die CPU 52 die geeignete Tätigkeit hinsichtlich der Erzeugung
der Filter über
die CMIC 40 und die geeigneten Ingress- oder Egress-Untermodule
an einem geeigneten EPIC-Modul 20 oder GPIC-Modul 30 durchführt.
-
Die
vorliegende Erfindung widmet sich dem Problem, das beim Verfolgen
einer großen
Anzahl an Strömen
auftritt. Durch die effizientere Verwendung von ARL-Tabellen (L2-
und L3-Tabellen) muss nicht auf die Leitungsratenleistung (live
rate performance) des Switch verzichtet werden. Ein Index wird in
den L2- und L3-Adressentabellen
wie nachfolgend gezeigt gespeichert. Der Index wird von einem Satz
freier Indexpools hergeleitet.
-
-
-
Wenn
ein Paket ankommt werden die L2- und L3-Tabellen sowohl auf die
Quellen- als auch auf die Bestimmungsadresse hin durchsucht. Ein
Index ist, wie vorstehend gezeigt, mit jeder Adresse in der L2-Tabelle und
L3-Tabelle gespeichert. Dieser Index wird dann bei der Suche nach
einer indizierten Regeln-Tabelle verwendet, um das Verfahren zu
beschleunigen.
-
Nehmen
wird beispielsweise an, dass ein Strom als Kombination aus Quellen-IP-
und Bestimmungs-IP-Adresse definiert wird. Ein Quellen-Lookup der
IP-Adresse wird
durchgeführt,
währenddessen
der Index erhalten wird. Ein Bestimmungs-Lookup der IP-Adresse wird
durchgeführt,
währenddessen
der Index j erhalten wird. Dann wird unter Verwendung von ij als
Index auf die indizierte Regeln-Tabelle
zugegriffen, um eine Mess-ID zu erhalten. Dann wird eine Logik durchgeführt, um
zu bestimmen, ob der Strom in-profile oder out-profile ist, wobei
die zugeordneten Tätigkeiten
wie vorstehend beschrieben durchgeführt werden.
-
-
Die
vorstehende Konfiguration ermöglicht
es, eine größere Anzahl
an Strömen
zu verfolgen, ohne die Größe der Regeln-Tabelle
zu erhöhen.
Dies ermöglicht
es außerdem
dem FFP, Adressen zu filtern, die sich nicht in den Adressen-Tabellen
finden. Die vorliegende Erfindung sieht einen einfachen Mechanismus
zum Verfolgen von Strömen
unter Verwendung der Adressentabellen und den Vorteil des Verfolgens
einer größeren Anzahl
von Strömen,
ohne auf die Leitungsratenleistung verzichten zu müssen.
-
Die
vorstehend besprochene Ausgestaltung der Erfindung ist bei einer
bevorzugten Ausführungsform auf
einem Halbleitersubstrat, wie etwa Silizium, mittels geeigneter
Halbleiterherstellungstechniken ausgeführt und basiert auf einem Schaltungslayout,
das auf der Basis der vorstehend ausgeführten Ausführungsformen für Fachleute
auf dem Gebiet offensichtlich sein dürfte. Ein Fachmann auf dem
Gebiet der Halbleiterkonzipierung und -herstellung sollte dazu in
der Lage sein, basierend auf der vorstehend ausgeführten architektonischen
Beschreibung, die verschiedenen Module, Schnittstellen, Tabellen
und Puffer, etc. der vorliegenden Erfindung auf einem einzelnen
Halbleitersubstrat zu implementieren. Es liegt ebenfalls im Rahmen
der Erfindung, die erfindungsgemäß offenbarten
Elemente als diskrete elektronische Komponenten auszuführen, wodurch die
funktionellen Aspekte der Erfindung vorteilhaft genutzt werden,
ohne durch die Verwendung eines einzelnen Halbleitersubstrats die
Vorteile zu maximieren.