DE60112011T2 - Verfahren und Vorrichtung zum Filtern von Paketen basierend auf Datenströme unter Verwendung von Addressentabellen - Google Patents

Verfahren und Vorrichtung zum Filtern von Paketen basierend auf Datenströme unter Verwendung von Addressentabellen Download PDF

Info

Publication number
DE60112011T2
DE60112011T2 DE60112011T DE60112011T DE60112011T2 DE 60112011 T2 DE60112011 T2 DE 60112011T2 DE 60112011 T DE60112011 T DE 60112011T DE 60112011 T DE60112011 T DE 60112011T DE 60112011 T2 DE60112011 T2 DE 60112011T2
Authority
DE
Germany
Prior art keywords
data
interface
packet
port interface
data port
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
DE60112011T
Other languages
English (en)
Other versions
DE60112011D1 (de
Inventor
Mohad Kalkunte
Shekhar Ambe
Shiri Kadambi
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
Publication of DE60112011D1 publication Critical patent/DE60112011D1/de
Application granted granted Critical
Publication of DE60112011T2 publication Critical patent/DE60112011T2/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
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
    • H04L49/352Gigabit ethernet switching [GBPS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3018Input queuing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/354Switches specially adapted for specific applications for supporting virtual local area networks [VLAN]

Description

  • 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.
  • Figure 00150001
    TABELLE 1
  • Figure 00150002
    TABELLE 2
  • 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.
  • Figure 00160001
    TABELLE 3
  • 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.

Claims (9)

  1. Netzwerk-Switch (10) zur Netzwerkkommunikation, wobei der Netzwerk-Switch (10) umfasst: eine erste Datenport-Schnittstelle (15), wobei die erste Datenport-Schnittstelle (15) mehrere Datenports unterstützt, die Daten mit einer ersten Datenrate senden und empfangen, eine zweite Datenport-Schnittstelle (17), wobei die zweite Datenport-Schnittstelle (17) mehrere Datenports unterstützt, die Daten mit einer zweiten Datenrate senden und empfangen, eine CPU-Schnittstelle, wobei die CPU-Schnittstelle dafür konfiguriert ist, mit einer CPU (52) zu kommunizieren, einen internen Speicher (50), wobei der interne Speicher (50) mit der ersten Datenport-Schnittstelle (15) und der zweiten Datenport-Schnittstelle (17) kommuniziert, eine Speicher-Managementeinheit (70), wobei die Speicher-Managementeinheit (70) eine externe Speicherschnittstelle zum Übertragen von Daten von der ersten Datenport-Schnittstelle (15) und/oder der zweiten Datenport-Schnittstelle (17) und/oder einem externen Speicher (12) umfasst, einen Kommunikationskanal (80), der Daten übermittelt und Informationen überträgt, und zwar zwischen der ersten Datenport-Schnittstelle (15), der zweiten Datenport-Schnittstelle (17), der Schnittstelle der CPU (52), dem internen Speicher (50) und der Speicher-Managementeinheit (70), wobei eine Datenport-Schnittstelle der ersten Datenport-Schnittstelle (15) und der zweiten Datenport-Schnittstelle (17) einen Fast-Filtering-Prozessor (141) umfasst, wobei der Fast-Filtering-Prozessor (141) die in die eine Datenport-Schnittstelle eingehenden Daten filtert und basierend auf einem Filterergebnis eine selektive Filtertätigkeit durchführt, und wobei die eine Datenport-Schnittstelle ferner eine Stromüberwachungseinrichtung (273) zum Überwachen von Datenströmen durch den Netzwerk-Switch (10) umfasst, 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 (10) geleitet werden, definiert wird, und wobei eine Datenport-Schnittstelle ferner eine Regeln-Tabelle-Schnittstelle (Rules-Table-Schnittstelle) und eine darauf folgende indizierte Regeln-Tabelle (22a, 22b, 22c, 31a, 31b) umfasst, und wobei der Fast-Filtering-Prozessor (141) auf ein eingehendes Paket eine Filtermaske anlegt, wodurch ein Filterergebnis bereitgestellt wird, wobei das Filterergebnis auf vordefinierte Regeln in der indizierten Regeln-Tabelle (22a, 22b, 22c, 31a, 31b) angelegt wird, um zu bestimmen, welche spezifischen Tätigkeiten unternommen werden sollen, um das Paket zur weiteren Handhabung zu modifizieren, wobei die zu bestimmenden spezifischen Tätigkeiten 802.1p-Tag-Einfügung, 802.1p-Prioritäts-Mapping, Dienste-Typ-Tag-Einfügung (Type-of-Service-Tag-Einfügung), Verwerten oder Entfernen des Pakets, wobei das Paket zu einem Egress-Port übermittelt wird, und Senden des Pakets zu dem Mirrored-Port umfasst, und wobei der Fast-Filtering-Prozessor (141) die Pakete unabhängig von der CPU-Schnittstelle und daher ohne Kommunikation mit der CPU filtert.
  2. Netzwerk-Switch (10) nach Anspruch 1, wobei der Fast-Filtering-Prozessor (141) durch Eingaben von der CPU über die CPU-Schnittstelle programmierbar ist.
  3. Netzwerk-Switch (10) nach Anspruch 1, wobei die erste Datenport-Schnittstelle (15), die zweite Datenport-Schnittstelle (17), die CPU-Schnittstelle, der interne Speicher (12), die Speicher-Managementeinheit (70), der Kommunikationskanal, der Fast-Filtering-Prozessor (141) und die Regeln-Tabellen (22a, 22b, 22c, 31a, 31b) auf einem üblichen Halbleitersubstrat implementiert sind.
  4. Netzwerk-Switch (10) nach Anspruch 3, wobei der Fast-Filtering-Prozessor (141) einen Satz ausschließender Filtermasken und einschließender Filtermasken umfasst, wobei die ausschließenden Filtermasken dafür konfiguriert sind, alle Pakete außer den Paketen auszuschließen, die mit dem Filterergebnis übereinstimmen.
  5. Netzwerk-Switch (10) nach Anspruch 3, wobei der Fast-Filtering-Prozessor (141) Filtermasken umfasst, die Ingress-Portfelder, Egress-Portfelder und Filter-Wahlfelder eines eingehenden Pakets filtern.
  6. Netzwerk-Switch (10) nach Anspruch 5, wobei die indizierte Regeln-Tabelle (22a, 22b, 22c, 31a, 31b) Filterwertfelder zum Nachschlagen (Lookup) der Filterergebnisse, Ingress-Portfelder, Egress-Portfelder, Filter-Wahlfelder, Action-Bit-Felder, Prioritätsbitfelder, Dienste-Typ-Felder (Type-of-Service-Felder) und Ausgangsportfelder umfasst.
  7. Netzwerk-Switch (10) nach Anspruch 6, wobei die indizierte Regeln-Tabelle (22a, 22b, 22c, 31a, 31b) durch Werte indiziert wird, die durch Lookups der Quellen- und Bestimmungsadressen für das eingehende Paket erhalten wurden.
  8. Verfahren zur Handhabung von Datenpaketen in einem Netzwerk-Switch (10), wobei das Verfahren umfasst: das Platzieren eingehender Datenpakete in einer Eingangswarteschlange, das Anlegen der Eingangsdatenpakete an eine Address-Resolution-Logic-Engine, das Durchführen eines Lookups basierend auf einer indizierten Regeln-Tabelle, um die Indexwerte für die Eingangsdatenpakete zu bestimmen, das Filtern des eingehenden Pakets durch einen Fast-Filtering-Prozessor (141) unabhängig von der CPU-Schnittstelle, um zu bestimmen, welche spezifischen Tätigkeiten durchgeführt werden sollten, um das Paket zur weiteren Handhabung zu modifizieren, wobei die Indexwerte von dem Fast-Filtering-Prozessor (141) dafür verwendet werden, eine indizierte spezifische Tätigkeit der folgenden spezifischen Tätigkeiten zu finden, das Durchführen einer 802.1p-Tag-Einfügung, eines 802.1p-Prioritäts-Mappings, einer Dienste-Typ-Tag-Einfügung, eines Verwerfens oder Entfernens des Pakets, wobei das Paket an einen Egress-Port übermittelt wird, und Senden des Pakets an den Mirrored-Port basierend auf der Filterung, wobei der Schritt des Bestimmens von Indexwerten für das Eingangsdatenpaket auf Layer-2-(L2-) und Layer-3-(L3-)Lookups sowohl der Quellenadresse als auch der Bestimmungsadresse für das Eingangsdatenpaket basiert, wodurch mit jeder Adresse in den L2- und L3-Tabellen ein Index gespeichert wird und der Index dann bei der Suche nach einer indizierten Regeln-Tabelle (22a, 22b, 22c, 31a, 31b) verwendet wird, um den Prozess zu beschleunigen, und wobei des Weiteren alle eingehenden Pakete als mit Tags versehene Pakete festgelegt werden, 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.
  9. Verfahren nach Anspruch 8, wobei die Quellen- und Bestimmungsadressen für das Eingangsdatenpaket auf einen Strom bezogen sind und der Filterschritt ferner das Überwachen von Datenströmen durch den Netzwerk-Switch (10) umfasst.
DE60112011T 2000-08-18 2001-08-20 Verfahren und Vorrichtung zum Filtern von Paketen basierend auf Datenströme unter Verwendung von Addressentabellen Expired - Lifetime DE60112011T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US22601300P 2000-08-18 2000-08-18
US226013P 2000-08-18

Publications (2)

Publication Number Publication Date
DE60112011D1 DE60112011D1 (de) 2005-08-25
DE60112011T2 true DE60112011T2 (de) 2006-04-20

Family

ID=22847197

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60112011T Expired - Lifetime DE60112011T2 (de) 2000-08-18 2001-08-20 Verfahren und Vorrichtung zum Filtern von Paketen basierend auf Datenströme unter Verwendung von Addressentabellen

Country Status (4)

Country Link
US (1) US7099336B2 (de)
EP (1) EP1180877B1 (de)
AT (1) ATE300144T1 (de)
DE (1) DE60112011T2 (de)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6876653B2 (en) * 1998-07-08 2005-04-05 Broadcom Corporation Fast flexible filter processor based architecture for a network device
US7539628B2 (en) * 2000-03-21 2009-05-26 Bennett James D Online purchasing system supporting buyer affordability screening
US8024481B2 (en) * 2000-04-17 2011-09-20 Circadence Corporation System and method for reducing traffic and congestion on distributed interactive simulation networks
US7369554B1 (en) * 2000-12-22 2008-05-06 Nortel Networks Limited Method and apparatus for performing filter operations on data packets using an instruction
JP3566218B2 (ja) * 2001-02-19 2004-09-15 株式会社東芝 Bluetoothネットワーク通信方法およびシステム
US6944155B2 (en) * 2001-03-05 2005-09-13 International Business Machines Corporation Apparatus for filtering inter-node communication in a data processing system
US7149189B2 (en) * 2001-07-17 2006-12-12 Mcafee, Inc. Network data retrieval and filter systems and methods
US7162698B2 (en) 2001-07-17 2007-01-09 Mcafee, Inc. Sliding window packet management systems
US7245620B2 (en) 2002-03-15 2007-07-17 Broadcom Corporation Method and apparatus for filtering packet data in a network device
US20030174718A1 (en) 2002-03-15 2003-09-18 Broadcom Corporation Scalable packet filter for a network device
US8259593B2 (en) * 2005-06-29 2012-09-04 Honeywell International Inc. Apparatus and method for segmenting a communication network
US7688818B2 (en) * 2005-12-20 2010-03-30 Honeywell International Inc. Apparatus and method for traffic filtering in a communication system
US8665892B2 (en) * 2006-05-30 2014-03-04 Broadcom Corporation Method and system for adaptive queue and buffer control based on monitoring in a packet network switch
US7830918B2 (en) * 2007-08-10 2010-11-09 Eaton Corporation Method of network communication, and node and system employing the same
US9172595B2 (en) * 2008-01-07 2015-10-27 Masergy Communications, Inc. Systems and methods of packet object database management
US8243614B2 (en) 2008-03-07 2012-08-14 Honeywell International Inc. Hardware efficient monitoring of input/output signals
US8352659B1 (en) * 2009-10-30 2013-01-08 Xilinx, Inc. Segmentation and reassembly of a data value communicated via interrupt transactions
US9270704B2 (en) * 2013-03-13 2016-02-23 FireMon, LLC Modeling network devices for behavior analysis
US9578061B2 (en) 2013-03-13 2017-02-21 FireMon, LLC System and method for modeling a networking device policy
US9450916B2 (en) 2014-08-22 2016-09-20 Honeywell International Inc. Hardware assist for redundant ethernet network
US9973447B2 (en) 2015-07-23 2018-05-15 Honeywell International Inc. Built-in ethernet switch design for RTU redundant system
KR102462830B1 (ko) * 2016-03-02 2022-11-04 한국전자통신연구원 플로우 정보를 이용한 분산 반사 서비스 거부 공격 검출 장치 및 방법
KR102088299B1 (ko) * 2016-11-10 2020-04-23 한국전자통신연구원 분산 반사 서비스 거부 공격 탐지 장치 및 방법

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5860136A (en) * 1989-06-16 1999-01-12 Fenner; Peter R. Method and apparatus for use of associated memory with large key spaces
EP0537382A1 (de) * 1991-10-15 1993-04-21 ALCATEL BELL Naamloze Vennootschap Anordnung und Verfahren für Paketübermittlungskontrolle
US5796944A (en) * 1995-07-12 1998-08-18 3Com Corporation Apparatus and method for processing data frames in an internetworking device
US6006318A (en) * 1995-08-16 1999-12-21 Microunity Systems Engineering, Inc. General purpose, dynamic partitioning, programmable media processor
US5761424A (en) * 1995-12-29 1998-06-02 Symbios, Inc. Method and apparatus for programmable filtration and generation of information in packetized communication systems
DE69940451D1 (de) * 1998-06-25 2009-04-09 Texas Instruments Inc Reduzierung eines durch Rundschreiben verursachten Verkehrs in einem Kommunikationsnetz
AU4848499A (en) * 1998-07-08 2000-02-01 Broadcom Corporation Network switch utilizing packet based per head-of-line blocking prevention
US6625146B1 (en) * 1999-05-28 2003-09-23 Advanced Micro Devices, Inc. Method and apparatus for operating a network switch in a CPU-less environment

Also Published As

Publication number Publication date
US7099336B2 (en) 2006-08-29
US20020051448A1 (en) 2002-05-02
EP1180877A3 (de) 2004-01-02
DE60112011D1 (de) 2005-08-25
EP1180877A2 (de) 2002-02-20
EP1180877B1 (de) 2005-07-20
ATE300144T1 (de) 2005-08-15

Similar Documents

Publication Publication Date Title
DE60112011T2 (de) Verfahren und Vorrichtung zum Filtern von Paketen basierend auf Datenströme unter Verwendung von Addressentabellen
DE60212916T2 (de) Verfahren und Vorrichtung zum Ermöglichen von Zugriffen in einer Vermittlungsstelle
DE60309947T2 (de) Hochgeschwindigkeitsprotokoll für die Verbindung von modularen Netzwerkelementen
DE60301029T2 (de) Replikationsprozess für IP-Mehrfachsendung und Vorrichtung hierfür
DE60031515T2 (de) Netzwerkvermittlung
DE60126223T2 (de) Anordnung zur Verbindung von Netzvermittlungsstellen
DE60126222T2 (de) Verbundene Netzvermittlungskonfiguration
DE60005993T2 (de) Verfahren und netzwerkvermittlungsstelle mit datenserialisierung durch gefahrlose mehrstufige störungsfreie multiplexierung
DE60127794T2 (de) Gebundene Netzschalterkonfiguration
DE60133352T2 (de) Gebundene Netzvermittlungskonfiguration
DE69434330T2 (de) Übertragungsvorrichtgung und verfahren
DE69731366T2 (de) Netzwerkkoppelfeld mit Lesezugriffen auf Statistiken
DE69731936T2 (de) Netzwerkkoppelfeld mit Mehrfachbusarchitektur
DE69731519T2 (de) Mehrfachtor-Abfragesystem für ein Netzwerkkoppelfeld
DE112008002550B4 (de) Verfahren und System für virtuelle Schnittstellenkommunikation
DE60010328T2 (de) Spiegelung in einer netzwerkvermittlungsstapelanordnung
DE60120790T2 (de) Methode und gerät zum durchsuchen von tabellen in hoher geschwindigkeit
DE60211837T2 (de) Verfahren und Vorrichtung zur Paketkopfteilverarbeitung
DE60030737T2 (de) Hochleistungs-Vermittlungselement und -Vermittlungssystem
DE60116401T2 (de) Netzwerkvermittlung mit der Möglichkeit Anschlüsse zu blockieren
DE69730452T2 (de) Verfahren und vorrichtung zur cachespeicherung von politik zur verwendung in einem kommunikationsgerät
DE69825596T2 (de) System und verfahren für ein vielschicht-netzelement
DE60033529T2 (de) Netzprozessor, speicherorganisation und verfahren
DE60130082T2 (de) Vermittlungsanordnung mit mehreren Modulen in einem Rahmen
DE60125678T2 (de) Vermittlungstelle mit Flusssteurungverwaltung

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