DE60305774T2 - Schnelle und flexible Bereichsüberprüfung - Google Patents

Schnelle und flexible Bereichsüberprüfung Download PDF

Info

Publication number
DE60305774T2
DE60305774T2 DE60305774T DE60305774T DE60305774T2 DE 60305774 T2 DE60305774 T2 DE 60305774T2 DE 60305774 T DE60305774 T DE 60305774T DE 60305774 T DE60305774 T DE 60305774T DE 60305774 T2 DE60305774 T2 DE 60305774T2
Authority
DE
Germany
Prior art keywords
value
range
packet
packet field
extracted
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
DE60305774T
Other languages
English (en)
Other versions
DE60305774D1 (de
Inventor
Shekhar 95117 San Jose Ambe
Sandeep Relan
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 DE60305774D1 publication Critical patent/DE60305774D1/de
Application granted granted Critical
Publication of DE60305774T2 publication Critical patent/DE60305774T2/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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

  • Diese Anmeldung beansprucht die Priorität der US-Provisional-Patentanmeldung Nr. 60/364,599, eingereicht 18. März 2002.
  • HINTERGRUND DER ERFINDUNG
  • Gebiet der Erfindung:
  • Die vorliegende Erfindung betrifft ein Verfahren und eine Vorrichtung zur Hochleistungspaketfilterung in einer Kommunikationsnetzwerkumgebung, wie etwa Token-Ring, ATM, Ethernet, Fast Ethernet, Gigabit-Ethernet und 10Gigabit-Ethernet oder einer anderen Netzwerk-Management-Umgebung. Die vorliegende Erfindung betrifft insbesondere ein Paketfilter und ein Verfahren zum Filtern eines Pakets, welche in einer Netzwerkkomponente implementiert werden können, die diskrete Einrichtungen umfassen oder auf einem Halbleitersubstrat, wie etwa einem Siliziumchip, implementiert werden kann.
  • Beschreibung des relevanten Standes der Technik:
  • Bei Netzwerk-Management-Anwendungen tritt ein eingehendes Paket an einem Ingress-Port einer Netzwerkkomponente ein, wie etwa einem Switch. Die Netzwerkkomponente verarbeitet das eingehende Paket und leitet es an einen Egress-Port weiter. Bei der Verarbeitung des eingehenden Pakets kann die Netzwerkkomponente das eingehende Paket auf der Ingress-Seite untersuchen und die Adressierungs- und Routing-Informationen ermitteln, um die Netzwerkleistung zu erhöhen.
  • Die Netzwerkkomponente kann verschieden Adressierungs- und Verarbeitungslogiken auf das eingehende Paket anwenden, wenn das eingehende Paket auf der Ingress-Seite derselben untersucht wird. Da der Bedarf an schnelleren und kostengünstigen Netzwerkkomponenten steigt, steigt auch der Bedarf an innovativen Systemen zur Befriedigung eines solchen Bedarfs. Demgemäß ist eine schnelle und flexible Verarbeitungslogik für eine Netzwerkkomponente wichtig, da die Kommunikationsnetzwerkumgebung davon profitieren kann.
  • Es ist beispielsweise ein Verfahren zur inhaltsbasierten Übermittlung/Filterung in einer Netzwerkvermittlungsvorrichtung aus EP 0 993 162 A2 bekannt, wobei in der Vermittlungsvorrichtung ein Offset-Wert, ein Vergleichswert und ein erwarteter Wert gespeichert werden. Danach werden diese Informationen, die sich an einer Stelle in einem empfangenen Frame befinden, durch den Offset-Wert ermittelt und die ermittelten Informationen mit dem gespeicherten Vergleichswert verglichen, um ein Ergebnis zu erhalten. Schließlich wird der Frame mit dem Ergebnis verarbeitet.
  • Auch in dem Artikel: "Nettilter Extensions HOWTO" von Fabrice Marie, 20.12.2001, der dem Internet zu entnehmen ist unter: http://cvs.netfilter.org/~checkout~/netfilter/documentation/HOWTO/netfilter-exte, ist beschrieben, wie Netzfiltererweiterungen in einem Linux-Betriebssystem zu installieren sind, um eine inhaltsbasierte Filterung in einer Netzwerkvermittlungsvorrichtung zu ermöglichen.
  • ZUSAMMENFASSUNG DER ERFINDUNG:
  • Ein Beispiel der vorliegenden Erfindung kann ein Verfahren zum Verarbeiten eines Pakets basierend auf einer schnellen, flexiblen Bereichsprüfung in einem Kommunikationsnetzwerk umfassen. Das Verfahren kann die Schritte des Identifizierens wenigstens eines in einer Speichereinheit gespeicherten Bitpositionswertes und des Identifizierens wenigstens eines in einer Speichereinheit gespeicherten Bitlängenwertes (BL) umfassen. Das Verfahren umfasst ferner den Schritt des Extrahierens wenigstens eines Paketfeldes aus dem Paketstrom basierend auf den Informationen, die dem wenigstens einen identifizierten Bitpositionswert und dem wenigstens einen identifizierten Bitlängenwert entsprechen. Danach wird wenigstens ein extrahierter Paketfeldwert basierend auf dem wenigstens einen extrahierten Paketfeld bestimmt und der wenigstens eine Anfangsbereichswert temporär in einer Speichereinheit gespeichert. Danach wird wenigstens ein in einer Speichereinheit gespeicherter Anfangsbereichswert aus einem Satz Bereichswerte identifiziert, um eine Untergrenze für einen Wertebereich festzulegen, und wenigstens ein in einer Speichereinheit gespeicherter Endbereichswert aus einem Satz Bereichswerte identifiziert, um eine Obergrenze für einen Wertebereich festzulegen. Dann wird der wenigstens eine extrahierte Paketfeldwert mit wenigstens einem oder gegen wenigstens einen Satz Bereichswerte, die durch den Anfangsbereichswert und den Endbereichswert festgelegt sind, ver- oder abgeglichen, wobei wenigstens eine Tätigkeit in Bezug auf den Paketstrom ausgeführt wird, wenn der wenigstens eine extrahierte Paketfeldwert innerhalb des wenigstens einen Satzes Bereichswerte liegt, die durch den Anfangsbereichswert und den Endbereichswert festgelegt sind. Darüber hinaus wird eine Bereichsprüfungstabelle dafür konfiguriert, eine Mehrzahl an Speichereinheiten tabellarisch zusammenzufassen, wobei jede Speichereinheit ein separates und einzelnes Speicherfeld der Bereichsprüfungstabelle zum Speichern der aus dem Paket extrahierten Paketfeldwerte ist, und wobei auf die Paketfeldwerte in den Speichereinheiten der Bereichsprüfungstabelle innerhalb der Bereichsprüfungstabelle über einen Bereichsindexwert zugegriffen wird und diese Paketfeldwerte identifiziert werden.
  • Gemäß einem anderen Beispiel kann die vorliegende Erfindung ein System zum Verarbeiten eines Pakets basierend auf einer schnellen, flexiblen Bereichsprüfung in einem Kommunikationsnetzwerk betreffen. Das System umfasst Mittel zum Identifizieren wenigstens eines in einer Speichereinheit gespeicherten Bitpositionswertes, Mittel zum Identifizieren wenigstens eines in einer Speichereinheit gespeicherten Bitlängenwertes und Mittel zum Extrahieren wenigstens eines Paketfeldes aus dem Paketstrom basierend auf den Informationen, die dem wenigstens einen identifizierten Bitpositionswert und dem wenigstens einen identifizierten Bitlängenwert entsprechen. Das System umfasst ferner Mittel zum Bestimmen wenigstens eines extrahierten Paketfeldwertes basierend auf dem wenigstens einen extrahierten Paketfeld und zum temporären Speichern des wenigstens einen extrahierten Paketfeldwerts in einer Speichereinheit, Mittel zum Identifizieren wenigstens eines in einer Speichereinheit gespeicherten Anfangsbereichswerts aus einem Satz Bereichswerte, um eine Untergrenze für einen Wertebereich festzulegen, und Mittel zum Identifizieren wenigstens eines in einer Speichereinheit gespeicherten Endbereichswerts aus einem Satz Bereichswerte, um eine Obergrenze für einen Wertebereich festzulegen. Dann sind Mittel zum Ver- oder Abgleichen des wenigstens einen extrahierten Paketfeldwertes mit wenigstens einem oder gegen wenigstens einen Satz Bereichswerte, die durch den Anfangsbereichswert und den Endbereichswert festgelegt sind, und eine Tätigkeitsausführungseinheit zum Ausführen wenigstens einer Tätigkeit in Bezug auf den Paketstrom vorgesehen, wenn der wenigstens eine extrahierte Paketfeldwert innerhalb des wenigstens einen Satzes Bereichswerte liegt, die durch den Anfangsbereichswert und den Endbereichswert festgelegt sind. Zusätzlich dazu sind Mittel zum Konfigurieren einer Bereichsprüfungstabelle, um eine Mehrzahl an Speichereinheiten tabellarisch zusammenzufassen, wobei jede Speichereinheit ein separates und einzelnes Speicherfeld der Bereichsprüfungstabelle zum Speichern der aus dem Paket extrahierten Paketfeldwerte ist, und Mittel zum Zugreifen auf die und Identifizieren der Paketfeldwerte in den Speichereinheiten der Bereichsprüfungstabelle innerhalb der Bereichsprüfungstabelle über einen Bereichsindexwert vorgesehen.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN:
  • Für ein richtiges Verständnis der Erfindung sollte auf die begleitenden Zeichnungen Bezug genommen werden. Es zeigt:
  • 1 ein Beispiel für eine erfindungsgemäße Konfiguration zum Filtern eines Pakets,
  • 2 ein anderes Beispiel für eine erfindungsgemäße Konfiguration zum Filtern eines Pakets,
  • 3 ein Beispiel für eine erfindungsgemäße Bereichsprüfungstabelle zum Filtern eines Pakets,
  • 4 ein weiteres Beispiel für eine erfindungsgemäße Konfiguration zum Filtern eines Pakets,
  • 5 ein Flussdiagramm, das ein Beispiel eines erfindungsgemäßen Verfahrens zum Filtern eines Pakets darstellt,
  • 6 ein weiteres Flussdiagramm, das ein anderes Beispiel eines erfindungsgemäßen Verfahrens zum Filtern eines Pakets darstellt, und
  • 7 ein weiteres Flussdiagramm, das ein weiteres Beispiel eines erfindungsgemäßen Verfahrens zum Filtern eines Pakets darstellt.
  • GENAUE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM(EN):
  • 1 zeigt ein Beispiel für eine erfindungsgemäße Hardwarekonfiguration, die basierend auf einer schnellen, flexiblen Bereichsprüfung eine Paketfilterung durchführen kann. Die Durchführung der Paketfilterung kann auch als Paketklassifizierung bezeichnet werden. Daher können die hierin vorgesehenen Hardwarekonfigurationen und Beispiele auch eine Paketklassifizierung durchführen.
  • Darüber hinaus kann die Hardwarekonfiguration gemäß 1 eine integrierte, modulare Ein-Chip-Lösung sein und daher auf einem Halbleitersubstrat, wie etwa Silizium, ausgeführt werden. Alternativ kann die Hardwarekonfiguration gemäß 1 aus einer Mehrzahl diskreter Komponenten auf einer Leiterplatte bestehen.
  • 1 zeigt ein Filter 5, das wenigstens einen Paketstrom 10 und eine Mehrzahl an Speichereinheiten 20, 30, 40, 50 und 60 umfassen kann. Der Paketstrom 10 kann beispielsweise 256 Bits umfassen, wobei jedes Bit einen Bitwert darstellt. Es wird darauf hingewiesen, dass, obgleich in 1 der Paketstrom 10 dargestellt ist, das Filter 5 Daten in jedem beliebigen Datenformat verarbeiten kann, einschließlich eines Datenpakets, eines Daten-Frames oder einer Datenzelle, ohne jedoch darauf beschränkt zu sein.
  • Das in 1 gezeigte Filter 5 kann wenigstens fünf Speichereinheiten 20, 30, 40, 50 und 60 umfassen, wobei jede Speichereinheit 20, 30, 40, 50 und 60 eine beliebige Speichereinheit sein kann, etwa ein Register. Jede Speichereinheit 20, 30, 40, 50 und 60 kann darin programmierbare Werte oder Information speichern und eine beliebige Breite oder Bitlänge besitzen.
  • Die Speichereinheit 20 gemäß 1 kann ein Register zum Speichern eines Positionswerts in einem Bitstrom sein. Der Positionswert im Bitstrom wird als Bitpositionswert BP bezeichnet und kann ein programmierbarer Wert sein, der eine vordefinierte Bitposition in einem Paketstrom 10 bezeichnen oder darstellen kann. Daher kann der Bitpositionswert BP ein Wert sein, der die Startbitposition eines spezifischen Paketfelds oder eines spezifischen Paketabschnitts in einem Paketstrom 10 darstellt, das/der aus diesem extrahiert werden soll. Der Bitpositionswert BP kann beispielsweise ein vordefinierter programmierbarer Binärwert sein, der dem Dezimalwert 118 entspricht, welcher die Startbitposition 118 in den 256 Bits des Paketstroms 10 bezeichnet oder darstellt.
  • Darüber hinaus kann die Speichereinheit 30 gemäß 1 ebenfalls ein Register zum Speichern eines Bitlängenwerts BL sein. Der Bitlängenwert BL kann ein programmierbarer Wert sein, der eine vordefinierte Bitlänge eines Paketfelds in einem Paketstrom 10 bezeichnet oder darstellt. Mit anderen Worten, der Bitlängenwert BL stellt eine Anzahl an Bits dar, die aus einem Paketstrom 10 extrahiert werden soll. Der Bitlängenwert BL kann ein beliebiger Wert sein, etwa von null bis zu dem Wert, der zum Angeben der maximalen Anzahl an Bits im Paketstrom 10 erforderlich ist. Mit anderen Worten, der Bitlängenwert BL kann ein Wert sein, der eine Anzahl an Bits, ausgehend von der Startbitposition eines aus einem Paketstrom 10 zu extrahierenden Paketfeldes, darstellt. Der Bitlängenwert BL kann beispielsweise ein vordefinierter programmierbarer Binärwert sein, der einem Dezimalwert von 4 entspricht. Ein Bitlängenwert BL von 4 kann eine zu extrahierende Anzahl an Bits, ausgehend von der Startbitposition 118 in einem Paketstrom 10, bezeichnen oder darstellen. Als solche können ein Bitpositionswert BP von 118 und ein Bitlängenwert BL von 4 ein Paketfeld, bestehend aus den Bits 118, 119, 120 und 121 in einem Paketstrom 10, extrahieren.
  • Die Speichereinheit 40 gemäß 1 kann ein Register zum Speichern eines temporären Wertes oder temporärer Informationen sein, wie etwa ein extrahierter Paketteldwert PF. Der extrahierte Paketfeldwert PF kann ein Binärwert sein oder ein beliebiges Werteformat besitzen. Darüber hinaus kann der extrahierte Paketfeldwert PF ein Wert sein, der den Wert bezeichnet oder darstellt, der einem aus einem Paketstrom 10 extrahierten Paketfeld zugeordnet ist. Die Speichereinheit 20 kann beispielsweise einen Bitpositionswert BP speichern, der eine Startbitposition in einem Paketstrom 10 darstellt. Außerdem kann die Speichereinheit 30 einen Bitlängenwert BL speichern, der bezogen auf ein aus dem Paketstrom 10 zu extrahierendes Paketfeld eine Anzahl an Bits darstellt. Demgemäß können die in den Speichereinheiten 20 bzw. 30 gespeicherten BP- und BL-Werte oder -Informationen eine Startbitposition und eine Endposition eines aus dem Paketstrom 10 zu extrahierenden Paketfeldes identifizieren. Mit anderen Worten, die Bitposition BP bezeichnet die Startbitposition eines Paketfelds in einem Paketstrom 10. Daher kann die Endposition des Paketfelds die Summe des Bitpositionswertes BP und des Bitlängenwertes BL sein. Sobald die Startbitposition und die Endposition ermittelt worden sind, kann das Paketfeld aus dem Paketstrom 10 extrahiert werden. Sobald das Paketfeld extrahiert worden ist, kann ein extrahierter Paketfeldwert PF bestimmt werden und der extrahierte Paketfeldwert PF danach in der Speichereinheit 40 gespeichert werden.
  • Ferner in 1 gezeigt ist eine Speichereinheit 50, die dafür konfiguriert ist, einen Bereichswert aus einer Mehrzahl Bereichswerte zu speichern. Die Speichereinheit 50 kann beispielsweise einen Startbereichswert SR aus einer Mehrzahl Bereichswerte speichern. Die Speichereinheit 50 kann ein Register zum Speichern eines Startbereichswerts SR sein. Der Startbereichswert SR kann ein Binärwert oder ein Wert mit einem beliebigen Format sein. Des Weiteren kann der Startbereichswert SR ein programmierbarer Wert sein, der einen vordefinierten unteren Grenzwert eines Wertebereiches bezeichnet oder darstellt. Daher kann der Startbereichswert SR einen unteren Grenzwert eines Wertebereichs bezeichnen oder darstellen, mit dem der extrahierte Paketfeldwert PF verglichen oder überprüft werden kann.
  • In ähnlicher Weise ist in 1 eine Speichereinheit 60 dargestellt, die dafür konfiguriert ist, einen anderen Bereichswert aus einer Mehrzahl Bereichswerte zu speichern. Die Speichereinheit 60 kann beispielsweise einen Endbereichswert ER aus einer Mehrzahl Bereichswerte speichern. Die Speichereinheit 60 kann ebenfalls ein Register zum Speichern eines Endbereichswertes ER sein. Wie der Startbereichswert SR kann auch der Endbereichswert ER ein Binärwert oder ein Wert mit einem beliebigen Format sein. Des Weiteren kann der Endbereichswert ER ein programmierbarer Wert sein, der einen vordefinierten oberen Grenzwert eines Wertebereichs bezeichnen oder darstellen kann. Daher kann der Endbereichswert ER einen oberen Grenzwert eines Wertebereichs bezeichnen oder darstellen, mit dem der Paketteldwert PF verglichen oder überprüft werden kann.
  • Demgemäß kann die Speichereinheit 50 einen Startbereichswert SR speichern, der den unteren Grenzwert mehrerer Bereichswerte angeben oder darstellen kann, und die Speichereinheit 60 kann einen Endbereichswert ER speichern, der den oberen Grenzwert mehrerer Bereichswerte angegeben oder darstellen kann. Mit anderen Worten, der Startbereichswert SR und der Endbereichswert ER können eine Untergrenze und eine Obergrenze für einen spezifischen Wertebereich identifizieren oder festlegen. Sobald die Grenzwerte des Wertebereichs ermittelt worden sind, kann ein in der Speichereinheit 40 gespeicherter extrahierter Paketteldwert PF mit dem Wertebereich verglichen oder überprüft werden, der durch den Startbereichswert SR und den Endbereichswert ER festgelegt wird.
  • Das in 1 gezeigte Filter 5 kann außerdem eine Speichereinheit 65 umfassen, wobei die Speichereinheit 65 eine beliebige Speichereinheit sein kann, etwa ein Register. Die Speichereinheit 65 kann wenigstens einen programmierbaren Wert oder Informationen darin speichern und eine beliebige Breite oder Bitlänge besitzen. Bei einem anderen Beispiel der vorliegenden Erfindung kann die Speichereinheit 65 einen vorgegebenen programmierbaren Festwert FV speichern, wobei der Festwert FV ein beliebiger Wert sein kann. Demgemäß kann bei dem vorliegenden Beispiel auch ein in der Speichereinheit 40 gespeicherter Paketteldwert PF extrahiert und dieser mit dem Festwert FV verglichen oder überprüft werden, um festzustellen, ob eine Übereinstimmung vorliegt. Mit anderen Worten, sobald ein Paketfeldwert PF bestimmt worden ist, kann bei dem vorliegenden Beispiel, anstatt den Paketfeldwert PF mit einem durch den Startbereichswert SR und den Endbereichswert ER festgelegten Wertebereich zu vergleichen oder zusätzlich dazu, ein Festwert FV in der Speichereinheit 65 ermittelt und der Paketfeldwert PF mit dem ermittelten Festwert FV verglichen werden. Nach dem Vergleichen des Paketfeldwer tes PF mit dem Festwert FV kann bei dem vorliegenden Beispiel festgestellt werden, ob der Paketfeldwert PF dem Festwert FV entspricht oder ob zwischen dem Paketfeldwert PF und dem Festwert FV eine Übereinstimmung vorhanden ist. Es wird darauf hingewiesen, dass bei der vorliegenden Erfindung separat ein Paketfeldwert PF mit einem Wertebereich oder separat ein Paketfeldwert PF mit einem Festwert FV oder einer Kombination daraus verglichen werden kann.
  • 2 zeigt ein anderes Beispiel für eine erfindungsgemäße Hardwarekonfiguration, die basierend auf einer schnellen, flexiblen Bereichsprüfung eine Paketfilterung durchführen kann. Die Hardwarekonfiguration gemäß 2 kann eine integrierte, modulate Ein-Chip-Lösung sein und daher auf einem Halbleitersubstrat, wie etwa Silizium, ausgeführt werden. Alternativ kann die Hardwarekonfiguration gemäß 2 aus einer Mehrzahl diskreter Komponenten auf einer Leiterplatte bestehen.
  • 2 zeigt ein Filter 5, das wenigstens einen Paketstrom 10 und eine Mehrzahl an Speichereinheiten 20, 30, 40, 50 und 60 umfassen kann. Der Paketstrom 10 kann beispielsweise 256 Bits umfassen, wobei jedes Bit einen Bitwert darstellt. Wie vorstehend erwähnt, kann das Filter 5 gemäß 2 Daten in jedem beliebigen Datenformat verarbeiten, einschließlich eines Datenpakets, eines Daten-Frames oder einer Datenzelle, ohne jedoch darauf beschränkt zu sein.
  • Das in 2 gezeigte Filter 5 kann eine Mehrzahl von sechs Speichereinheiten 20, 30, 40, 50, 60 und 65 umfassen, wobei jede Speichereinheit 20, 30, 40, 50, 60 und 65 eine beliebige Speichereinheit sein kann, etwa ein Register. Die mehreren Speichereinheiten 20, 30, 40, 50, 60 und 65 können darin programmierbare Werte oder Information speichern und eine beliebige Breite oder Bitlänge besitzen. Darüber hinaus kann jede Speichereinheit der mehreren Speichereinheiten 20, 30, 40, 50, 60 und 65 so konfiguriert sein, dass sie wie vorstehend in Bezug auf die Speichereinheiten 20, 30, 40, 50, 60 und 65 von 1 beschrieben arbeitet. Mit anderen Worten, 2 kann mehrere Speichereinheiten 20, mehrere Speichereinheiten 30, mehrere Speichereinheiten 40, mehrere Speichereinheiten 50, mehrere Speichereinheiten 60 und mehrere Speichereinheiten 65 umfassen. Dementsprechend zeigt 1 einen Satz Bereichsprüfungsregister mit einem Satz Bereichsprüfwerte BP, BL, PF, SR, ER und FV zur Implementierung einer Bereichsprüfungsoperation an einem Paketfeld. Alternativ dazu, zeigt 2 mehrere Sätze Bereichsprüfungsregister mit mehreren Sätzen Bereichsprüfwerte BP, BL, PF, SR, ER und FV zur Implementierung mehrerer Bereichsprüfungsoperationen an mehreren Paketfeldern. Die mehre ren Bereichsprüfungsoperationen an mehreren Paketfeldern können parallel erfolgen, da die mehreren Speichereinheiten 20, 30, 40, 50, 60 und 65 mehrere Werte für eine Bereichsprüfung an einem eingehenden Paketstrom 10 speichern können.
  • 3 zeigt ein weiteres Beispiel für eine erfindungsgemäße Hardwarekonfiguration, die basierend auf einer schnellen, flexiblen Bereichsprüfung eine Paketfilterung durchführen kann. Die Hardwarekonfiguration gemäß 3 kann eine integrierte, modulare Ein-Chip-Lösung sein und daher auf einem Halbleitersubstrat, wie etwa Silizium, ausgeführt werden. Alternativ kann die Hardwarekonfiguration gemäß 3 aus einer Mehrzahl diskreter Komponenten auf einer Leiterplatte bestehen.
  • 3 zeigt eine Bereichsprüfungstabelle 70, die dafür konfiguriert sein kann, eine Mehrzahl Speichereinheiten tabellarisch zusammenzufassen. Bei dieser Ausführungsform kann jede Speichereinheit in der Bereichsprüfungstabelle 70 eine separate, einzelne Speicherstelle oder ein separates, einzelnes Feld der Bereichsprüfungstabelle 70 zum Speichern der Bereichsprüffelder darstellen, wie etwa eines Bitpositionswerts BP, eines Bitlängenwerts BL, eines Startbereichswerts SR und eines Endbereichswerts ER sowie eines Festwerts FV. 3 zeigt ferner einen Bereichsindexwert 80 der erzeugt werden kann, nachdem ein Paketstrom geparst (analysiert) oder maskiert worden ist. Nach dem Erzeugen des Bereichsindexwertes 80 kann der Bereichsindexwert 80 auf die Bereichsprüfungstabelle 70 angewandt oder indiziert werden, um auf die darin befindlichen Bereichsprüffelder zuzugreifen und diese zu identifizieren.
  • 4 zeigt noch ein weiteres Beispiel für eine erfindungsgemäße Hardwarekonfiguration, die basierend auf einer schnellen, flexiblen Bereichsprüfung eine Paketfilterung durchführen kann. Die Hardwarekonfiguration gemäß 4 kann eine integrierte, modulare Ein-Chip-Lösung sein und daher auf einem Halbleitersubstrat, wie etwa Silizium, ausgeführt werden. Alternativ kann die Hardwarekonfiguration gemäß 4 aus einer Mehrzahl diskreter Komponenten auf einer Leiterplatte bestehen.
  • 4 zeigt eine Folge von Registern, die als Felder 1-n bezeichnet sind. Die Registerfolge umfasst mehrere Exakte-Übereinstimmungs-Register zur Überprüfung mehrerer Felder auf exakte Übereinstimmung und mehrere Register zur Bereichsprüfung. Die mehreren Exakte-Übereinstimmungs-Register können Exakte-Übereinstimmungs-Felder zur Implementierung einer Überprüfung mehrerer Felder auf exakte Übereinstimmung speichern. Darüber hinaus können die mehreren Bereichsprüfungsregister Bereichsprüffelder zur Implementierung einer Bereichsprüfung speichern, wie hierin besprochen. Mit anderen Worten, 4 zeigt ein Beispiel der vorliegenden Erfindung, wobei ein Satz Bereichsprüffelder als Satz Erweiterungsregister konfiguriert werden kann, die den Exakte-Übereinstimmungs-Registern hinzugefügt werden.
  • 5 zeigt ein Beispiel für ein erfindungsgemäßes Verfahren zum Filtern eingehender Pakete. Das Verfahren gemäß dem vorliegenden Beispiel kann in Hardware, Software oder einer Kombination aus Hardware und Software implementiert werden.
  • Ein Ingress-Port in einer Netzwerkvorrichtung kann wenigstens einen Paketstrom 10 empfangen. Der Paketstrom 10 kann eine beliebige Länge haben. Bei diesem Beispiel kann der Paketstrom 10 eine Bitlänge von 256 Bits haben und bei Bit 0 beginnen und mit Bit 255 enden, wie in 1 gezeigt. Demgemäß wird in Schritt 100 von 5 einn Paketstrom in einem Ingress-Port einer Netzwerkvorrichtung empfangen.
  • Wie vorstehend erwähnt, kann ein Filter 5 eine Mehrzahl Speichereinheiten, wie etwa die Speichereinheiten 20, 30, 40, 50 und 60, oder mehrere Sätze einer Mehrzahl Speichereinheiten 20, 30, 40, 50 und 60 umfassen. Bei diesem Beispiel können die Speichereinheiten aus mehreren Registern bestehen und darin Werte oder Informationen oder mehrere Sätze Werte oder Informationen speichern. Im Hinblick auf die Speichereinheiten 20, 30, 50 und 60 kann jede dieser Speichereinheiten darin vorprogrammierte Werte speichern. Demgemäß können in Schritt 110 von 5 wenigstens vier separate Werte identifiziert werden, die jeweils in wenigstens vier separaten Speichereinheiten gespeichert sind. In Schritt 110 werden wenigstens ein in der Speichereinheit 20 gespeicherter Bitpositionswert BP, wenigstens ein in der Speichereinheit 30 gespeicherter Bitlängenwert BL, wenigstens ein in der Speichereinheit 50 gespeicherter Startbereichswert SR und wenigstens ein in der Speichereinheit 60 gespeicherter Endbereichswert ER identifiziert.
  • Nachdem in Schritt 110 der wenigstens eine Bitpositionswert BP und der wenigstens eine Bitlängenwert BL ermittelt worden sind, kann bei dem vorliegenden Beispiel in Schritt 120 basierend auf den dem Bitpositionswert BP und dem Bitlängenwert BL entsprechenden Informationen wenigstens ein Paketfeld aus dem Paketstrom 10 extrahiert werden. Nehmen wir beispielsweise an, dass die wenigs tens eine Speichereinheit 20 einen vorprogrammierten dezimalen Bitpositionswert von 118 speichern kann und dass die wenigstens eine Speichereinheit 30 einen vorprogrammierten dezimalen Bitlängenwert von 16 speichern kann. In Schritt 110 von 5 können daher diese zwei Werte BP und BL identifiziert werden, wobei in Schritt 120 mit diesen zwei Werten ein Paketfeld mit einer Länge von 16 Bits beginnend bei der Bitposition 118 im Paketstrom 10 extrahiert werden kann.
  • Nach dem Extrahieren wenigstens eines Paketfeldes in Schritt 120 von 5 kann wenigstens ein extrahierter Paketfeldwert PF basierend auf dem wenigstens einen extrahierten Paketfeld bestimmt werden, wobei der wenigstens eine extrahierte Paketteldwert PF in Schritt 130 temporär in der Speichereinheit 40 gespeichert werden kann. Nehmen wir beispielsweise an, dass bestimmt wird, dass das wenigstens eine extrahierte Paketfeld einen extrahierten Paketfelddezimalwert von 68 hat. Dieser Dezimalwert von 68 kann in Schritt 130 temporär in der Speichereinheit 40 gespeichert werden.
  • Wie vorstehend erwähnt, kann bei dem vorliegenden Beispiel in Schritt 110 wenigstens ein Startbereichswert SR und wenigstens ein Endbereichswert ER identifiziert werden. Der wenigstens eine Startbereichswert SR und der wenigstens eine Endbereichswert ER können daher einen unteren Grenzwert und einen oberen Grenzwert eines Satzes Bereichswerte festlegen. In Schritt 140 kann bei dem vorliegenden Beispiel wenigstens ein extrahierter Paketfeldwert PF mit wenigstens einem oder gegen wenigstens einen Satz Bereichswerte ver- oder abgeglichen werden, die durch den Startbereichswert SR und den Endbereichswert ER festgelegt sind. Nehmen wir beispielsweise an, dass wenigstens eine Speichereinheit 50 einen vorprogrammierten dezimalen Startbereichswert SR von 60 und wenigstens eine Speichereinheit 60 einen vorprogrammierten dezimalen Endbereichswert ER von 80 speichern kann. Demgemäß wird wenigstens ein Satz Bereichswerte durch eine Untergrenze 60 und eine Obergrenze 80 festgelegt. In Schritt 140 von 5 kann daher ein extrahierter Paketfelddezimalwert von 68, der temporär in der Speichereinheit 40 gespeichert wird, mit dem oder gegen den Wertebereich zwischen 60 und 80 ver- oder abgeglichen werden.
  • Nach dem Ver- oder Abgleichen des wenigstens einen extrahierten Paketfeldwertes PF mit wenigstens einem oder gegen wenigstens einen Satz Bereichswerte, der durch einen Startbereichswert SR und einen Endbereichswert ER festgelegt ist, kann in Schritt 140 ferner entschieden werden, ob der wenigstens eine extrahierte Paketfeldwert PF entweder innerhalb des wenigstens einen Satzes Bereichswerte liegt, der die Start- und Endbereichswerte SR und ER umfasst, oder ob der wenigstens eine extrahierte Paketwert PF außerhalb des wenigstens einen Satzes Bereichswerte liegt. Wenn der wenigstens eine extrahierte Paketfeldwert PF innerhalb des wenigstens einen Satzes Bereichswerte liegt, dann bestimmt die vorliegende Erfindung, dass eine Übereinstimmung vorhanden ist. Wenn jedoch der wenigstens eine extrahierte Paketfeldwert PF außerhalb des wenigstens einen Satzes Bereichswerte liegt, dann bestimmt die Erfindung, dass keine Übereinstimmung vorhanden ist.
  • Wenn der wenigstens eine extrahierte Paketfeldwert PF innerhalb des wenigstens einen Satzes Bereichswerte liegt, der durch den Startbereichswert SR und den Endbereichswert ER festgelegt ist, dann kann die vorliegende Erfindung mit Schritt 150 fortfahren, in dem eine Tätigkeitsausführungs- oder Aktionsimplementierungseinheit 90 wenigstens eine Tätigkeit oder Aktion von mehreren möglichen Exakte-Übereinstimmungs-Aktionen in Bezug auf den Paketstrom 10 ausführen kann. Wenn jedoch der wenigstens eine extrahierte Paketteldwert 45 außerhalb des wenigstens einen Satzes Bereichswerte liegt, dann kann das vorliegende Beispiel mit Schritt 160 fortfahren, in dem mehrere Aufgaben oder Operationen oder wenigstens eine Aktion von mehreren möglichen Keine-Übereinstimmungs-Aktionen am Paketstrom 10 aus- oder durchgeführt werden können.
  • Daher kann in Schritt 140, nach dem Ver- oder Abgleichen des extrahierten Paketfeldwerts PF von 68 mit dem oder gegen den Wertebereich von 60 bis 80, der den unteren Grenzwert von 60 und den oberen Grenzwert von 80 umfasst, bestimmt werden, dass der extrahierte Paketfeldwert von 68 innerhalb des Wertebereichs zwischen 60 und 80 liegt, weshalb bestimmt wird, dass eine Übereinstimmung vorliegt. Da eine Übereinstimmung vorhanden ist, kann in Schritt 150 der vorliegenden Erfindung wenigstens eine Aktion von mehreren möglichen Exakte-Übereinstimmungs-Aktionen in Bezug auf den Paketstrom 10 ausgeführt werden. Nehmen wir alternativ dazu an, dass der extrahierte Paketteldwert PF 49 statt 68 beträgt. Dann kann in Schritt 140 bestimmt werden, dass der extrahierte Paketfeldwert PF von 49 außerhalb des Wertebereiches von 60 bis 80 liegt, weshalb bestimmt wird, dass keine Übereinstimmung vorliegt ist. Nach dieser Bestimmung geht die vorliegende Erfindung zu Schritt 160 über und kann mehrere Aufgaben oder wenigstens eine Aktion von mehreren möglichen Keine-Übereinstimmungs-Aktionen in Bezug auf den Paketstrom 10 durchführen.
  • Es wird darauf hingewiesen, dass die hierin angegebenen spezifischen Beispiele, Beispiele der vorliegenden Erfindung sind und den Schutzumfang derselben in keiner Weise einschränken sollen.
  • 6 zeigt ein weiteres Beispiel für ein erfindungsgemäßes Verfahren zum Filtern eingehender Pakete. Das Verfahren gemäß diesem Beispiel kann in Hardware, Software oder einer Kombination aus Hardware und Software implementiert werden.
  • In Schritt 105 von 6 kann in einem Ingress-Port in einer Netzwerkvorrichtung ein Paketstrom 10 empfangen werden. Der Paketstrom 10 kann eine beliebige Länge haben. Bei diesem Beispiel kann der Paketstrom 10 eine Bitlänge von 256 Bits haben und bei Bit 0 beginnen und mit Bit 255 enden, wie in 1 gezeigt.
  • Wie vorstehend erwähnt, kann ein Filter 5 eine Mehrzahl Speichereinheiten, wie etwa die Speichereinheiten 20, 30, 40 und 65, oder mehrere Sätze einer Mehrzahl Speichereinheiten 65 umfassen. Bei diesem Beispiel können die Speichereinheiten aus mehreren Registern bestehen und darin Werte oder Informationen oder mehrere Sätze Werte oder Informationen speichern. Im Hinblick auf die Speichereinheiten 20, 30 und 65 kann jede dieser Speichereinheiten darin vorprogrammierte Werte speichern. Demgemäß können in Schritt 115 von 6 wenigstens drei separate Werte identifiziert werden, die jeweils in wenigstens drei separaten Speichereinheiten gespeichert sind. In Schritt 115 werden wenigstens ein in der Speichereinheit 20 gespeicherter Bitpositionswert BP, wenigstens ein in der Speichereinheit 30 gespeicherter Bitlängenwert BL und wenigstens ein in der Speichereinheit 60 gespeicherter Festwert FV identifiziert.
  • Nachdem in Schritt 115 der wenigstens eine Bitpositionswert BP und der wenigstens eine Bitlängenwert BL identifiziert worden sind, kann bei dem vorliegenden Beispiel in Schritt 125 basierend auf den dem Bitpositionswert BP und dem Bitlängenwert BL entsprechenden Informationen wenigstens ein Paketfeld aus dem Paketstrom 10 extrahiert werden. Nehmen wir beispielsweise an, dass die wenigstens eine Speichereinheit 20 einen vorprogrammierten dezimalen Bitpositionswert von 118 speichern kann und dass die wenigstens eine Speichereinheit 30 einen vorprogrammierten dezimalen Bitlängenwert von 16 speichern kann. In Schritt 115 von 6 können daher diese zwei Werte BP und BL identifiziert werden, wobei in Schritt 125 mit diesen zwei Werten ein Paketfeld mit einer Länge von 16 Bits beginnend bei der Bitposition 118 im Paketstrom 10 extrahiert werden kann.
  • Nach dem Extrahieren wenigstens eines Paketfeldes in Schritt 125 von 6 kann wenigstens ein extrahierter Paketfeldwert PF basierend auf dem wenigstens einen extrahierten Paketfeld bestimmt werden, wobei der wenigstens eine extrahierte Paketteldwert PF in Schritt 135 temporär in der Speichereinheit 40 gespeichert werden kann. Nehmen wir beispielsweise an, dass bestimmt wird, dass das wenigstens eine extrahierte Paketfeld einen extrahierten Paketfelddezimalwert von 68 hat. Dieser Dezimalwert von 68 kann in Schritt 135 temporär in der Speichereinheit 40 gespeichert werden.
  • Wie vorstehend erwähnt, kann bei dem vorliegenden Beispiel in Schritt 115 wenigstens ein in der Speichereinheit 65 gespeicherter Festwert FV identifiziert werden. In Schritt 145 kann bei dem vorliegenden Beispiel wenigstens ein extrahierter Paketfeldwert PF mit wenigstens einem oder gegen wenigstens einen Festwert FV ver- oder abgeglichen werden. Nehmen wir beispielsweise an, dass wenigstens ein Festwert FV einen festen Wert von 68 hat, dann kann in Schritt 145 von 6 daher ein extrahierter Paketfelddezimalwert PF von 68, der temporär in der Speichereinheit 40 gespeichert wird, mit dem oder gegen den Festwert von 68 ver- oder abgeglichen werden.
  • Nach dem Ver- oder Abgleichen wenigstens eines extrahierten Paketfeldwertes PF mit wenigstens einem oder gegen wenigstens einen Festwert FV, kann in Schritt 145 ferner entschieden werden, ob der wenigstens eine extrahierte Paketfeldwert PF entweder dem wenigstens einen Festwert FV entspricht, wobei eine Übereinstimmung vorliegt, oder ob der wenigstens eine extrahierte Paketwert PF nicht dem wenigstens einen Festwert FV entspricht, wobei keine Übereinstimmung vorliegt. Wenn der wenigstens eine extrahierte Paketteldwert PF dem wenigstens einen Festwert FV entspricht, dann bestimmt die vorliegende Erfindung, dass eine Übereinstimmung vorhanden ist. Wenn jedoch der wenigstens eine extrahierte Paketfeldwert PF nicht dem wenigstens einen Festwert FV entspricht, dann bestimmt die Erfindung, dass keine Übereinstimmung vorhanden ist.
  • Wenn der wenigstens eine extrahierte Paketfeldwert PF dem wenigstens einen Festwert FV entspricht, dann kann die vorliegende Erfindung mit Schritt 155 fortfahren, in dem eine Aktionsimplementierungseinheit 90 wenigstens eine Aktion von mehreren möglichen Exakte-Übereinstimmungs-Aktionen in Bezug auf den Paketstrom 10 ausführen kann. Wenn jedoch der wenigstens eine extrahierte Paketfeldwert 45 nicht dem wenigstens einen Festwert FV entspricht, dann kann das vorliegende Beispiel mit Schritt 165 fortfahren, in dem mehrere Aufgaben oder Operationen oder wenigstens eine Aktion von mehreren möglichen Keine-Übereinstimmungs-Aktionen am Paketstrom 10 aus- oder durchgeführt werden können.
  • Es wird darauf hingewiesen, dass die in den 5 und 6 dargestellten Beispiele erfindungsgemäß separat voneinander oder zusammen oder in einer beliebigen Kombination daraus implementiert werden können.
  • 7 zeigt ein weiteres Beispiel für ein erfindungsgemäßes Verfahren zum Filtern eingehender Pakete. Das Verfahren gemäß diesem Beispiel kann in Hardware, Software oder einer Kombination aus Hardware und Software implementiert werden.
  • In Schritt 200 von 7 kann in einem Filter 5 ein Paketstrom 10 empfangen werden, wobei der Paketstrom 10 eine beliebige Länge haben kann. Bei diesem Beispiel kann der Paketstrom 10 eine Bitlänge von 256 Bits haben und bei Bit 0 beginnen und mit Bit 255 enden.
  • Nach dem Empfang des Paketstroms 10 kann bei dem vorliegenden Beispiel in Schritt 210 der Paketstrom basierend auf vorprogrammierten Instruktionen geparst werden. Danach kann in Schritt 220 ein Bereichsindexwert 80 erzeugt werden. Der Bereichsindexwert 80 kann ein Binärwert sein oder ein beliebiges Werteformat haben. Sobald der Bereichsindexwert 80 erzeugt worden ist, kann bei dem vorliegenden Beispiel in Schritt 230 der Bereichsindexwert 80 auf eine Bereichsprüfungstabelle 70 angewandt oder indiziert werden, wobei die Bereichsprüfungstabelle 70 mehrere Bereichsprüffelder umfassen kann, wie etwa einen Bitpositionswert BP, einen Bitlängenwert BL, einen Startbereichswert SR und einen Endbereichswert ER sowie einen Festwert FV. Nach dem Anwenden oder Indizieren des Bereichsindexwertes 80 auf die Bereichsprüfungstabelle 70 kann in dem Verfahrensschritt 110 von 5 wenigstens ein Bitpositionswert BP, wenigstens ein Bitlängenwert BL, wenigstens ein Startbereichswert SR und wenigstens ein Endbereichswert ER in der Bereichsprüfungstabelle 70 identifiziert werden. Zusätzlich oder alternativ dazu kann, nach dem Anlegen oder Indizieren des Bereichsindexwertes 80 auf die Bereichsprüfungstabelle 70, im Verfahrensschritt 115 von 6 wenigstens ein Bitpositionswert BP, wenigstens ein Bitlängenwert BL und ein Festwert FV in der Bereichsprüfungstabelle 70 identifiziert werden. Danach folgt 7 den Verfahrensschritten, die vorstehend in Bezug auf die Bereichsprüfungsschritte 120, 130, 140, 150 und 160 von 5 und/oder die Schritte 125, 135, 145, 155 und 165 von 6 beschrieben sind.
  • Obgleich die Erfindung basierend auf diesen bevorzugten Ausführungsformen und Beispielen beschrieben worden ist, wird darauf hingewiesen, dass das Verfahren und ein Filter zum Verarbeiten eines Pakets basierend auf einer schnellen, flexiblen Bereichsprüfung gemäß der vorliegenden Erfindung im Hinblick auf die Art und Weise der Implementierung flexibel sein können. Das Verfahren und ein Filter zum Verarbeiten eines Pakets basierend auf einer schnellen, flexiblen Bereichsprüfung können beispielsweise implementiert werden, sobald ein Paketstrom 10 in einer Netzwerkvorrichtung oder einem Filter ankommt, wenn ein Paketstrom 10 geparst wird, nachdem der Paketstrom 10 geparst worden ist, oder wenn der Paketstrom 10 nach einer gewissen Verarbeitung und daran durchgeführten Modifikationen zur Verfügung gestellt wird, oder mit einer Überprüfung mehrerer Felder auf exakte Übereinstimmung kombiniert werden, wobei ein Satz Bereichsprüffelder als Satz Erweiterungsregister mit einem Satz Exakte-Übereinstimmungs-Register kombiniert werden kann.
  • Die vorstehend offenbarten Konfigurationen der vorliegenden Erfindung können eine integrierte, modulare Ein-Chip-Lösung sein und auf einem Halbleitersubstrat, wie etwa Silizium, implementiert werden. Des Weiteren können die hierin offenbarten Verfahren zum Filtern eines Pakets in Hardware, Software oder einer Kombination aus Hardware und Software implementiert werden. Darüber hinaus sollte ein Fachmann auf dem Gebiet der Halbleiterkonzipierung und -konstruktion dazu in der Lage sein, die verschiedenen Elemente und Verfahren der vorliegenden Erfindung basierend auf der vorstehenden architektonischen Beschreibung auf einem einzelnen Halbleitersubstrat zu implementieren.
  • Ein Durchschnittsfachmann auf dem Gebiet wird leicht erkennen, dass die vorstehend beschriebene Erfindung auch mit einer anderen Reihenfolge der Schritte und/oder mit Hardwareelementen in Konfigurationen umgesetzt werden kann, die sich von den offenbarten unterscheiden. Zur Bestimmung des Maßes und Ziels der vorliegenden Erfindung sollte daher auf die anhängigen Ansprüche Bezug genommen werden.

Claims (4)

  1. Verfahren zum Verarbeiten eines Pakets basierend auf einer schnellen flexiblen Bereichsprüfung in einem Kommunikationsnetzwerk, wobei eine Bereichsprüfungsoperation an wenigstens einem Paketfeld des Verfahrens die Schritte umfasst: Identifizieren wenigstens eines in einer Speichereinheit (20) gespeicherten Bitpositionswertes (BP), Identifizieren wenigstens eines in einer Speichereinheit (30) gespeicherten Bitlängenwertes (BL), Extrahieren wenigstens eines Paketfeldes aus dem Paketstrom (10) basierend auf den Informationen, die dem wenigstens einen identifizierten Bitpositionswert (BP) und dem wenigstens einen identifizierten Bitlängenwert (BL) entsprechen, Bestimmen wenigstens eines extrahierten Paketfeldwertes (PF) basierend auf dem wenigstens einen extrahierten Paketfeld und temporäres Speichern des wenigstens einen extrahierten Paketfeldwerts (PF) in einer Speichereinheit (40), Identifizieren wenigstens eines in einer Speichereinheit (50) gespeicherten Anfangsbereichswerts (SR) aus einem Satz Bereichswerte, um eine Untergrenze für einen Wertebereich festzulegen, Identifizieren wenigstens eines in einer Speichereinheit (60) gespeicherten Endbereichswerts (ER) aus einem Satz Bereichswerte, um eine Obergrenze für einen Wertebereich festzulegen, Vergleichen des wenigstens einen extrahierten Paketfeldwertes (PF) mit wenigstens einem oder gegen wenigstens einen Satz Bereichswerte, die durch den Anfangsbereichswert (SR) und den Endbereichswert (ER) festgelegt sind, und Ausführen wenigstens einer Tätigkeit in Bezug auf den Paketstrom (10), wenn der wenigstens eine extrahierte Paketfeldwert (PF) innerhalb des wenigstens einen Satzes Bereichswerte liegt, die durch den Anfangsbereichswert (SR) und den Endbereichswert (ER) festgelegt sind, gekennzeichnet durch: das Konfigurieren einer Bereichsprüfungstabelle (70), um eine Mehrzahl an Speichereinheiten (20, 30, 40, 50, 60, 65) tabellarisch zusammenzufassen, wobei jede Speichereinheit ein separates und einzelnes Speicherfeld der Bereichsprüfungstabelle (70) zum Speichern der aus dem Paket extrahierten Paketfeldwerte (PF) ist, und das Zugreifen auf die und Identifizieren der Paketfeldwerte (PF) in den Speichereinheiten der Bereichsprüfungstabelle (70) innerhalb der Bereichsprüfungstabelle (70) über einen Bereichsindexwert (80).
  2. Verfahren nach Anspruch 1, das ferner die Schritte umfasst: Identifizieren wenigstens eines festen Wertes (FV), Vergleichen des wenigstens einen extrahierten Paketfeldwertes (PF) mit dem wenigstens einen festen Wert (FV), und Ausführen wenigstens einer Tätigkeit, wenn der wenigstens eine extrahierte Paketfeldwert (PF) gleich dem wenigstens einen festen Werten (FV) ist.
  3. System zum Verarbeiten eines Pakets basierend auf einer schnellen flexiblen Bereichsprüfung in einem Kommunikationsnetzwerk, wobei eine Bereichsprüfungsoperation an wenigstens einem Paketfeld des Systems umfasst: Mittel zum Identifizieren wenigstens eines in einer Speichereinheit (20) gespeicherten Bitpositionswertes (BP), Mittel zum Identifizieren wenigstens eines in einer Speichereinheit (30) gespeicherten Bitlängenwertes (BL), Mittel zum Extrahieren wenigstens eines Paketfeldes aus dem Paketstrom (10) basierend auf den Informationen, die dem wenigstens einen identifizierten Bitpositionswert (BP) und dem wenigstens einen identifizierten Bitlängenwert (BL) entsprechen, Mittel zum Bestimmen wenigstens eines extrahierten Paketfeldwertes (PF) basierend auf dem wenigstens einen extrahierten Paketfeld und Mittel zum temporären Speichern des wenigstens einen extrahierten Paketfeldwerts (PF) in einer Speichereinheit (40), Mittel zum Identifizieren wenigstens eines in einer Speichereinheit (50) gespeicherten Anfangsbereichswerts (SR) aus einem Satz Bereichswerte, um eine Untergrenze für einen Wertebereich festzulegen, Mittel zum Identifizieren wenigstens eines in einer Speichereinheit (60) gespeicherten Endbereichswerts (ER) aus einem Satz Bereichswerte, um eine Obergrenze für einen Wertebereich festzulegen, Mittel zum Vergleichen des wenigstens einen extrahierten Paketfeldwertes (PF) mit wenigstens einem oder gegen wenigstens einen Satz Bereichswerte, die durch den Anfangsbereichswert (SR) und den Endbereichswert (ER) festgelegt sind, und eine Tätigkeitsausführungseinheit (90) zum Ausführen wenigstens einer Tätigkeit in Bezug auf den Paketstrom (10), wenn der wenigstens eine extrahierte Paketfeldwert (PF) innerhalb des wenigstens einen Satzes Bereichswerte liegt, die durch den Anfangsbereichswert (SR) und den Endbereichswert (ER) festgelegt sind, gekennzeichnet durch: Mittel zum Konfigurieren einer Bereichsprüfungstabelle (70), um eine Mehrzahl an Speichereinheiten (20, 30, 40, 50, 60, 65) tabellarisch zusammenzufassen, wobei jede Speichereinheit ein separates und einzelnes Speicherfeld der Bereichsprüfungstabelle (70) zum Speichern der aus dem Paket extrahierten Paketfeldwerte (PF) ist, und Mittel zum Zugreifen auf die und Identifizieren der Paketfeldwerte (PF) in den Speichereinheiten der Bereichsprüfungstabelle (70) innerhalb der Bereichsprüfungstabelle (70) über einen Bereichsindexwert (80).
  4. System nach Anspruch 3, das ferner die Schritte umfasst: Mittel zum Identifizieren wenigstens eines festen Wertes (FV), Mittel zum Vergleichen des wenigstens einen extrahierten Paketfeldwertes (PF) mit dem wenigstens einen festen Wert (FV), und Mittel zum Ausführen wenigstens einer Tätigkeit, wenn der wenigstens eine extrahierte Paketfeldwert (PF) gleich dem wenigstens einen festen Werten (FV) ist.
DE60305774T 2002-03-18 2003-03-14 Schnelle und flexible Bereichsüberprüfung Expired - Lifetime DE60305774T2 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US36459902P 2002-03-18 2002-03-18
US364599P 2002-03-18
US10/191,529 US7277438B2 (en) 2002-03-18 2002-07-10 Fast flexible range checking
US191529 2002-07-10

Publications (2)

Publication Number Publication Date
DE60305774D1 DE60305774D1 (de) 2006-07-20
DE60305774T2 true DE60305774T2 (de) 2007-06-14

Family

ID=28044442

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60305774T Expired - Lifetime DE60305774T2 (de) 2002-03-18 2003-03-14 Schnelle und flexible Bereichsüberprüfung

Country Status (3)

Country Link
US (1) US7277438B2 (de)
EP (1) EP1351110B1 (de)
DE (1) DE60305774T2 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7304992B2 (en) 2002-11-22 2007-12-04 Broadcom Corporation Fast flexible filter processor based on range checking and a method of processing based thereon
DE60314153T2 (de) * 2003-11-22 2008-01-31 Broadcom Corp., Irvine Schneller, flexibler Filterprozessor basierend auf Bereichsprüfung sowie darauf basierendes Verarbeitungsverfahren
US7634655B2 (en) * 2004-02-13 2009-12-15 Microsoft Corporation Efficient hash table protection for data transport protocols
US7773968B2 (en) * 2006-11-30 2010-08-10 Silicon Laboratories, Inc. Interface/synchronization circuits for radio frequency receivers with mixing DAC architectures
US7962729B2 (en) * 2009-01-05 2011-06-14 International Business Machines Corporation Dynamic runtime range checking of different types on a register using upper and lower bound value registers for the register
US8832144B2 (en) 2011-07-11 2014-09-09 International Business Machines Corporation Search optimization in a computing environment
US10929386B2 (en) * 2018-01-02 2021-02-23 Salesforce.Com, Inc. Multi-record transactions in data-centric systems

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5606668A (en) 1993-12-15 1997-02-25 Checkpoint Software Technologies Ltd. System for securing inbound and outbound data packet flow in a computer network
US5898687A (en) 1996-07-24 1999-04-27 Cisco Systems, Inc. Arbitration mechanism for a multicast logic engine of a switching fabric circuit
US5951651A (en) 1997-07-23 1999-09-14 Lucent Technologies Inc. Packet filter system using BITMAP vector of filter rules for routing packet through network
US6289013B1 (en) 1998-02-09 2001-09-11 Lucent Technologies, Inc. Packet filter method and apparatus employing reduced memory
US6173384B1 (en) 1998-02-11 2001-01-09 Nortel Networks Limited Method of searching for a data element in a data structure
US6046979A (en) * 1998-05-04 2000-04-04 Cabletron Systems, Inc. Method and apparatus for controlling the flow of variable-length packets through a multiport switch
US6347087B1 (en) 1998-10-05 2002-02-12 Packet Engines Incorporated Content-based forwarding/filtering in a network switching device
US6701432B1 (en) 1999-04-01 2004-03-02 Netscreen Technologies, Inc. Firewall including local bus
US7039641B2 (en) * 2000-02-24 2006-05-02 Lucent Technologies Inc. Modular packet classification
US6781961B1 (en) * 2000-11-17 2004-08-24 Emware, Inc. Systems and methods for routing messages sent between computer systems
US6940862B2 (en) * 2001-06-25 2005-09-06 Mark Goudreau Apparatus and method for classifying packets
US7170891B2 (en) * 2001-08-30 2007-01-30 Messenger Terabit Networks, Inc. High speed data classification system

Also Published As

Publication number Publication date
EP1351110B1 (de) 2006-06-07
DE60305774D1 (de) 2006-07-20
US7277438B2 (en) 2007-10-02
EP1351110A1 (de) 2003-10-08
US20030174704A1 (en) 2003-09-18

Similar Documents

Publication Publication Date Title
DE60222622T2 (de) Verfahren und Vorrichtung zur Paketkopfteilverarbeitung
DE60222575T2 (de) Verfahren zur Generierung eines DFA-Automaten, wobei Übergänge zwecks Speichereinsparung in Klassen gruppiert werden
DE112015004008B4 (de) Selektives abtasten von netzwerkpaketverkehr unter verwendung von virtuelle-maschinen-werkzeugplattformen auf cloud-basis
DE60220214T2 (de) Methode und System zum Entdecken von Eindringlingen
DE60318722T2 (de) Eine programmierbare regelverarbeitungsvorrichtung für hochgeschwindigkeits-kontextsuchen und -erkennung von mustern in daten
DE60115615T2 (de) System, einrichtung und verfahren zur schnellen paketfilterung und -verarbeitung
DE112010004940B4 (de) Automatisches Erkennen von Adressbereichen für IP-Netzwerke
DE69832354T2 (de) Netzwerkverwaltungsrahmenwerk
DE60018780T2 (de) Verfahren und vorrichtung zur erkennung von datenpaketen in echtzeit in dem anschluss einer netzwerkvermittlungsstelle
DE69825801T2 (de) Vorrichtung und Verfahren zur Ermöglichung gleichranginger Zugangskontrolle in einem Netz
DE69833814T2 (de) Verfahren und Vorrichtung zur Sammlung von Informationen über die Benutzung eines Paketnetzwerks
DE69734019T2 (de) Verfahren und vorrichtung für dynamische paketfilterzuweisung
DE102008042344A1 (de) Programmierbare passive Datenerfassungseinheit
DE69830046T2 (de) Vorrichtung und verfahren zur überwachung und auswertung von anwendungsprotokollen für datenübertragungssysteme in netzen
DE60303622T2 (de) Verfahren zur Netzpaket-Filterung basierend auf einer konditionellen Ausdruckstabelle
DE102005021515A1 (de) System und Verfahren für ein informationsverarbeitendes System mit PCI-Express Advanced Switching
DE60305774T2 (de) Schnelle und flexible Bereichsüberprüfung
DE69937185T2 (de) Verfahren und vorrichtung zum paketbeförderungsnachschlagen mit einer reduzierten anzahl von speicherzugriffen
EP2882144A2 (de) Verfahren und Filteranordnung zum Filtern von über einen seriellen Datenbus eines Kommunikationsnetzwerks in einem Teilnehmer des Netzwerks eingehenden Nachrichten
DE10058443A1 (de) Verfahren zum Klassifizieren von Datenpaketen
DE112007001529T5 (de) Flexibles und erweiterbares Receive Side Scaling
DE602005006035T2 (de) Vorrichtung und Verfahren zur Bearbeitung von Rahmen mit multiprotokollverwendungsfeldern für ein Kommunikationsnetzwerk
EP1587244A1 (de) Verfahren zur Konfiguration einer Filtervorrichtung für einen in Frames organisierten Datenstrom, und Protokolltester
DE102018212297A1 (de) Verwendung von programmierbaren Switching-Chips als künstliche neuronale Netzwerk Module
DE102021116198A1 (de) Treiberschaltung für ein lokales verbindungsnetzwerk (lin)

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