-
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 Netzwerkumgebung. Die vorliegende Erfindung betrifft
im Besonderen ein schnelles und flexibles Paketfilter sowie ein
Verfahren zum Filtern eines Pakets, die in einer Netzwerkkomponente
implementiert werden können,
die diskrete Einrichtungen umfassen oder auf einem Halbleitersubstrat,
wie etwa einem Siliziumchip, ausgeführt werden kann.
-
Beschreibung des relevanten Standes der
Technik:
-
Bei
Netzwerkmanagementanwendungen tritt ein eingehendes Paket an einem
Ingress-Port einer Netzwerkkomponente, wie etwa einem Switch, ein. Die
Netzwerkkomponente verarbeitet das eingehende Paket und leitet es
zu einem Egress-Port. Bei der Verarbeitung des eingehenden Pakets
kann die Netzwerkkomponente das eingehende Paket auf der Ingress-Seite
untersuchen und die Adressierungs- und Routing-Informationen bestimmen,
um die Netzwerkleistung zu verbessern.
-
Die
Netzwerkkomponente kann verschiedene Adressierungs- und Verarbeitungslogiken
auf das eingehende Paket anwenden, wenn sie das eingehende Paket
auf der Ingress-Seite untersucht. In dem Maße, in dem der Bedarf an Netzwerkkomponenten mit
höherer
Geschwindigkeit und niedrigeren Kosten zunimmt, steigt auch der
Bedarf an innovativen Systemen, die einen solchen Bedarf befriedigen.
Demgemäß ist eine
schnelle und flexible Verarbeitungslogik für eine Netzwerkkomponente wichtig,
da sie der Kommunikationsnetzwerkumgebung zugute kommt.
-
EP-A-1 351 110 offenbart
ein Verfahren und eine entsprechende Vorrichtung zur Paketfilterung
in einer Kommunikationsnetzwerkumgebung, wobei wenigstens ein Paketfeldwert
im Paket bestimmt und wenigstens ein Satz Bereichswerte ermittelt
wird, und wobei der Paketfeldwert mit einem Satz Bereichswerte verglichen
wird.
-
Des
Weiteren wird wenigstens eine Aktion ausgeführt, wenn wenigstens ein Paketfeldwert
in den wenigstens einen Satz Bereichswerte fällt.
-
ZUSAMMENFASSUNG DER ERFINDUNG:
-
Ein
Beispiel der vorliegenden Erfindung kann ein Verfahren zum Verarbeiten
eines Pakets in einem Datenübertragungsnetzwerk
umfassen. Das Verfahren kann die Schritte des Empfangens eines Pakets in
einer Netzwerkeinrichtung, des Bestimmens einer Mehrzahl von Paketfeldwerten
bezogen auf das Paket basierend auf Sätzen von Bereichsprüfparametern
in einer Regeln-Tabelle, und des Ermittelns einer Mehrzahl von in
den Sätzen
Bereichsprüfparameter in
einer Mehrzahl an Einträgen
der Regeln-Tabelle angegebenen Bereichswerten umfassen. Darüber hinaus
kann das Verfahren die Schritte des Ausführens wenigstens einer ersten
Aktion bezogen auf das Paket, wenn wenigstens einer der Mehrzahl
an Paketfeldwerten in ein entsprechendes Paar Bereichswerte für einen
der Mehrzahl an Einträgen
fällt,
des Ausführens
wenigstens einer zweiten Aktion bezogen auf das Paket, wenn jeder
der Mehrzahl an Paketfeldwerten in jedes entsprechende Paar Bereichswerte für einen
der Mehrzahl an Einträgen
fällt,
und des Ausführens
wenigstens einer dritten Aktion bezogen auf das Paket, wenn keiner
der Mehrzahl an Paketfeldwerten in ein entsprechendes Paar Bereichswerte
fällt,
umfassen.
-
Bei
einem weiteren Beispiel kann die vorliegende Erfindung eine Netzwerkkomponente
zum Verarbeiten eines Pakets umfassen. Die Netzwerkkomponente kann
eine Regeln-Tabelle, die dafür konfiguriert
ist, eine Mehrzahl an Einträgen
aufzuweisen, und Sätze
erster Speichereinheiten in jedem der Mehrzahl an Einträgen umfassen,
wobei die Sätze erster
Speichereinheiten dafür
konfiguriert sind, Sätze
von Bereichsprüfparametern
bezogen auf das Paket zu speichern, wobei die Sätze Bereichsprüfparameter
mehrere Paketfeldwerte und mehrere Bereichswerte kennzeichnen. Die
Netzwerkkomponente kann außerdem
eine Aktionsimplementierungseinheit umfassen, die dafür konfiguriert
ist, bezogen auf das Paket wenigstens eine erste Aktion auszuführen, wenn
wenigstens einer der Mehrzahl an Paketfeldwerten in ein entsprechendes
Paar Bereichswerte für einen
der Mehrzahl an Einträgen
fällt,
wobei die Aktionsimplementierungseinheit, dafür konfiguriert ist, bezogen
auf das Paket wenigstens eine zweite Aktion auszuführen, wenn
jeder der Mehrzahl an Paketfeldwerten in jedes entsprechende Paar
Bereichswerte für
einen der Mehrzahl an Einträgen
fällt,
und wobei die Aktionsimplementierungseinheit bezogen auf das Paket
wenigstens eine dritte Aktion ausführt, wenn keiner der Mehrzahl
an Paketfeldwerten in ein entsprechendes Paar Bereichswerte fällt.
-
Des
Weiteren kann ein weiteres Beispiel der vorliegenden Erfindung ein
System zum Verarbeiten eines Pakets in einem Datenübertragungsnetzwerk bereitstellen.
Das System kann eine Einrichtung zum Empfangen eines Pakets in einer
Netzwerkeinrichtung, eine Einrichtung zum Bestimmen einer Mehrzahl
von Paketfeldwerten bezogen auf das Paket basierend auf Sätzen von
Bereichsprüfparametern
in einer Regeln-Tabelle, und eine Einrichtung zum Ermitteln einer
Mehrzahl von in den Sätzen
Bereichsprüfparameter
in einer Mehrzahl an Einträgen
der Regeln-Tabelle angegebenen Bereichswerten umfassen. Darüber hinaus
kann das System eine Einrichtung zum Implementieren wenigstens einer
ersten Aktion bezogen auf das Paket, wenn wenigstens einer der Mehrzahl
an Paketfeldwerten in ein entsprechendes Paar Bereichswerte für einen
der Mehrzahl an Einträgen
fällt,
eine Einrichtung zum Implementieren wenigstens einer zweiten Aktion
bezogen auf das Paket, wenn jeder der Mehrzahl an Paketfeldwerten
in jedes entsprechende Paar Bereichswerte für einen der Mehrzahl an Einträgen fällt, und eine
Einrichtung zum Implementieren wenigstens einer dritten Aktion bezogen
auf das Paket, wenn keiner der Mehrzahl an Paketfeldwerten in ein
entsprechendes Paar Bereichswerte fällt, umfassen.
-
Gemäß einem
Aspekt der Erfindung wird ein Verfahren zum Verarbeiten eines Pakets
in einem Datenübertragungsnetzwerk
bereitgestellt, wobei das Verfahren die Schritte umfasst:
- – Empfangen
eines Pakets in einer Netzwerkeinrichtung,
- – Bestimmen
einer Mehrzahl von Paketfeldwerten bezogen auf das Paket basierend
auf Sätzen
von Bereichsprüfparametern
in einer Regeln-Tabelle,
- – Ermitteln
einer Mehrzahl von in den Sätzen
Bereichsprüfparameter
in einer Mehrzahl an Einträgen
der Regeln-Tabelle angegebenen Bereichswerten,
- – Ausführen wenigstens
einer ersten Aktion bezogen auf das Paket, wenn wenigstens einer
der Mehrzahl an Paketfeldwerten in ein entsprechendes Paar Bereichswerte
für einen
der Mehrzahl an Einträgen
fällt,
- – Ausführen wenigstens
einer zweiten Aktion bezogen auf das Paket, wenn jeder der Mehrzahl
an Paketfeldwerten in jedes entsprechende Paar Bereichswerte für einen
der Mehrzahl an Einträgen fällt, und
- – Ausführen wenigstens
einer dritten Aktion bezogen auf das Paket, wenn keiner der Mehrzahl
an Paketfeldwerten in ein entsprechendes Paar Bereichswerte fällt,
dadurch
gekennzeichnet, dass bestimmt wird, dass der Eintrag (200)
mit dem höchsten
Vorrangfeldwert (135) Vorrang erhält, wenn wenigstens ein Paketfeldwert in
mehr als eines der entsprechenden Paare Bereichswerte der Mehrzahl
an Einträgen
(200) fällt.
-
Vorteilhafterweise
kann der Schritt des Bestimmens der Mehrzahl von Paketfeldwerten
die Schritte umfassen:
- – Ermitteln einer Mehrzahl
von in den Sätzen
Bereichsprüfparameter
angegebenen Bitpositionen im Paket, wobei wenigstens eine der Mehrzahl
an Bitpositionen einem Bitpositionswert entspricht, und
- – Ermitteln
einer Mehrzahl von in den Sätzen
Bereichsprüfparameter
angegebenen Bitlängen,
wobei wenigstens eine der Mehrzahl an Bitlängen einem Bitlängenwert
entspricht.
-
Vorteilhafterweise
umfasst der Schritt des Bestimmens der Mehrzahl von Paketfeldwerten
ferner den Schritt:
- – Bestimmen einer Mehrzahl
von Paketfeldern, wobei wenigstens eines der Mehrzahl an Paketfeldern
an einer jeweiligen Bitposition beginnt und an einer Endposition
endet, wobei die Endposition die Summe eines entsprechenden Bitpositionswerts
und eines entsprechenden Bitlängenwertes ist.
-
Vorteilhafterweise
umfasst der Schritt des Ermittelns der Mehrzahl von Bereichswerten
den Schritt:
- – Ermitteln einer Mehrzahl
von Startbereichswerten und einer Mehrzahl von jeweiligen Endbereichswerten,
die in den Sätzen
Bereichsprüfparameter
in der Regeln-Tabelle angegeben sind.
-
Vorteilhafterweise
umfasst das Verfahren ferner den Schritt:
- – Ermitteln
einer Mehrzahl von Vorrangfeldwerten, die der Mehrzahl an Einträgen entspricht,
wenn der wenigstens eine der Mehrzahl an Paketfeldwerten in das
entsprechende Paar Bereichswerte für mehr als einen der Mehrzahl
an Einträgen
fällt.
-
Vorteilhafterweise
umfasst das Verfahren ferner den Schritt:
- – Bestimmen
des größten Vorrangfeldwertes
aus der Mehrzahl an Vorrangfeldwerten, die dem mehr als einen der
Mehrzahl an Einträgen
entspricht, welche wenigstens einen der mehreren Paketfeldwerte
umfasst, die in das entsprechende Paar Bereichswerte fallen, und
- – Ausführen der
wenigstens einen ersten Aktion entsprechend dem größten Vorrangfeldwert.
-
Vorteilhafterweise
umfasst das Verfahren ferner den Schritt:
- – Ermitteln
einer Mehrzahl an Vorrangfeldwerten, die der Mehrzahl an Einträgen entspricht,
wenn jeder der Mehrzahl an Paketfeldwerten in jedes entsprechende
Paar Bereichswerte für
mehr als einen der Mehrzahl an Einträgen fällt.
-
Vorteilhafterweise
umfasst das Verfahren ferner die Schritte:
- – Bestimmen
des größten Vorrangfeldwertes
aus der Mehrzahl an Vorrangfeldwerten, die dem mehr als einen der
Mehrzahl an Einträgen
entspricht, welche jeden der mehreren Paketfeldwerte umfasst, die
in jedes entsprechende Paar Bereichswerte fallen, und
- – Ausführen der
wenigstens einen zweiten Aktion entsprechend dem größten Vorrangfeldwert.
-
Gemäß einem
anderen Aspekt der Erfindung wird eine Netzwerkkomponente zum Verarbeiten
eines Pakets bereitgestellt, wobei die Netzwerkkomponente umfasst:
- – eine
Regeln-Tabelle, die dafür
konfiguriert ist, eine Mehrzahl an Einträgen aufzuweisen,
- – Sätze erster
Speichereinheiten in jedem der Mehrzahl an Einträgen, wobei die Sätze erster Speichereinheiten
dafür konfiguriert
sind, Sätze von
Bereichsprüfparametern
bezogen auf das Paket zu speichern, wobei die Sätze Bereichsprüfparameter
mehrere Paketfeldwerte und mehrere Bereichswerte kennzeichnen, und
- – eine
Aktionsimplementierungseinheit, die dafür konfiguriert ist, bezogen
auf das Paket wenigstens eine erste Aktion auszuführen, wenn
wenigstens einer der Mehrzahl an Paketfeldwerten in ein entsprechendes
Paar Bereichswerte für
einen der Mehrzahl an Einträgen
fällt,
wobei die Aktionsimplementierungseinheit, dafür konfiguriert ist, bezogen
auf das Paket wenigstens eine zweite Aktion auszuführen, wenn
jeder der Mehrzahl an Paketfeldwerten in jedes entsprechende Paar
Bereichswerte für
einen der Mehrzahl an Einträgen fällt, und
wobei die Aktionsimplementierungseinheit bezogen auf das Paket wenigstens
eine dritte Aktion ausführt,
wenn keiner der Mehrzahl an Paketfeldwerten in ein entsprechendes
Paar Bereichswerte fällt,
dadurch
gekennzeichnet, dass ein Vorrangfeldwert (135) für jeden
Eintrag (200) in der Regeln-Tabelle (105) definiert
wird, wobei der Vorrangfeldwert (135) den Eintrag (200)
bestimmt, der Vorrang über
die anderen Einträge
(200) in der Regeln-Tabelle (105) erhält, wenn
wenigstens ein Paketfeldwert in mehr als eines der entsprechenden
Paare Bereichswerte der Mehrzahl an Einträgen fällt.
-
Vorteilhafterweise
sind die Sätze
erster Speichereinheiten dafür
konfiguriert, Sätze
Bereichsprüfparameter
zu speichern, wobei jeder Satz Bereichsprüfparameter bezogen das Paket
eine Bitposition, eine Bitlänge,
einen Start- und einen Endbereich umfasst.
-
Vorteilhafterweise
sind die Sätze
erster Speichereinheiten dafür
konfiguriert, Sätze
Bereichsprüfparameter
zu speichern, wobei jede Bitposition einem Bitpositionswert und
jede Bitlänge
einem Bitlängenwert
entspricht.
-
Vorteilhafterweise
sind die Sätze
erster Speichereinheiten dafür
konfiguriert, Sätze
Bereichsprüfparameter
zu speichern, wobei jede Bitposition und jede Bitlänge ein
Paketfeld kennzeichnet, wobei das Paketfeld an der Bitposition beginnt
und an einer Endposition endet, und wobei die Endposition die Summe
des entsprechenden Bitpositionswerts und des entsprechenden Bitlängenwertes
ist.
-
Vorteilhafterweise
sind die Sätze
erster Speichereinheiten dafür
konfiguriert, Sätze
Bereichsprüfparameter
zu speichern, wobei jedes Paketfeld einen jeden der Mehrzahl an
Paketfeldwerten kennzeichnet.
-
Vorteilhafterweise
umfasst die Netzwerkkomponente ferner:
- – eine Mehrzahl
zweiter Speichereinheiten, die dafür konfiguriert ist, eine Mehrzahl
an Vorrangfeldwerten zu speichern, wobei die Mehrzahl zweiter Speichereinheiten
der Mehrzahl an Einträgen
entspricht.
-
Vorteilhafterweise
ist die Aktionsimplementierungseinheit dafür konfiguriert, die wenigstens eine
erste Aktion entsprechend einer der Mehrzahl zweiter Speichereinheiten
auszuführen,
die den größten Vorrangfeldwert
aufweist, wobei der größte Vorrangfeldwert
aus der Mehrzahl an Vorrangfeldwerten ermittelt wird, die der Mehrzahl
an Einträgen entspricht,
welche wenigstens einen der mehreren Paketfeldwerte umfasst, die
in das entsprechende Paar Bereichswerte fallen.
-
Vorteilhafterweise
ist die Aktionsimplementierungseinheit dafür konfiguriert, die wenigstens eine
zweite Aktion entsprechend einer der Mehrzahl zweiter Speichereinheiten
auszuführen,
die den größten Vorrangfeldwert
aufweist, wobei der größte Vorrangfeldwert
aus der Mehrzahl an Vorrangfeldwerten ermittelt wird, die der Mehrzahl
an Einträgen entspricht,
welche jeden der mehreren Paketfeldwerte umfasst, die in jedes entsprechende
Paar Bereichswerte fallen.
-
Gemäß einem
weiteren Aspekt der Erfindung wird ein System zum Verarbeiten eines
Pakets in einem Datenübertragungsnetzwerk
bereitgestellt, wobei das System umfasst:
- – eine Empfangseinrichtung
zum Empfangen eines Pakets in einer Netzwerkeinrichtung,
- – eine
erste Bestimmungseinrichtung zum Bestimmen einer Mehrzahl von Paketfeldwerten
bezogen auf das Paket basierend auf Sätzen von Bereichsprüfparametern
in einer Regeln-Tabelle,
- – eine
erste Ermittlungseinrichtung zum Ermitteln einer Mehrzahl von in
den Sätzen
Bereichsprüfparameter
in einer Mehrzahl an Einträgen
der Regeln-Tabelle angegebenen Bereichswerten,
- – eine
erste Implementierungseinrichtung zum Ausführen wenigstens einer ersten
Aktion bezogen auf das Paket, wenn wenigstens einer der Mehrzahl
an Paketfeldwerten in ein entsprechendes Paar Bereichswerte für einen
der Mehrzahl an Einträgen
fällt,
- – eine
zweite Implementierungseinrichtung zum Ausführen wenigstens einer zweiten
Aktion bezogen auf das Paket, wenn jeder der Mehrzahl an Paketfeldwerten
in jedes entsprechende Paar Bereichswerte für einen der Mehrzahl an Einträgen fällt, und
- – eine
dritte Implementierungseinrichtung zum Ausführen wenigstens einer dritten
Aktion bezogen auf das Paket, wenn keiner der Mehrzahl an Paketfeldwerten
in ein entsprechendes Paar Bereichswerte fällt,
dadurch gekennzeichnet,
dass ein Vorrangfeldwert (135) für jeden Eintrag (200)
in der Regeln-Tabelle (105) definiert wird, wobei der Vorrangfeldwert
(135) Vorrang erhält,
wenn mehr als einer der Mehrzahl an Paketfeldwerten in ein entsprechendes
Paar Bereichswerte für
einen der Mehrzahl an Einträgen (200)
fällt.
-
Vorteilhafterweise
umfasst die erste Bestimmungseinrichtung:
- – eine zweite
Ermittlungseinrichtung zum Ermitteln einer Mehrzahl von in den Sätzen Bereichsprüfparameter
angegebenen Bitpositionen im Paket, wobei wenigstens eine der Mehrzahl
an Bitposition einem Bitpositionswert entspricht, und
- – eine
dritte Ermittlungseinrichtung zum Ermitteln einer Mehrzahl von in
den Sätzen
Bereichsprüfparameter
angegebenen Bitlängen,
wobei wenigstens eine der Mehrzahl an Bitlängen einem Bitlängenwert
entspricht.
-
Vorteilhafterweise
umfasst die erste Bestimmungseinrichtung ferner:
- – eine zweite
Bestimmungseinrichtung zum Bestimmen einer Mehrzahl von Paketfeldern,
wobei wenigstens eines der Mehrzahl an Paketfeldern an einer jeweili gen
Bitposition beginnt und an einer Endposition endet, wobei die Endposition
die Summe eines entsprechenden Bitpositionswerts und eines entsprechenden
Bitlängenwertes
ist.
-
Vorteilhafterweise
umfasst die erste Ermittlungseinrichtung:
- – eine zweite
Ermittlungseinrichtung zum Ermitteln einer Mehrzahl von Startbereichswerten
und einer Mehrzahl von jeweiligen Endbereichswerten, die in den
Sätzen
Bereichsprüfparameter
in der Regeln-Tabelle angegeben sind.
-
Vorteilhafterweise
umfasst das System ferner:
- – eine zweite Ermittlungseinrichtung
zum Ermitteln einer Mehrzahl an Vorrangfeldwerten, die der Mehrzahl
an Einträgen
entspricht, wenn wenigstens einer der Mehrzahl an Paketfeldwerten
in das entsprechende Paar Bereichswerte für mehr als einen der Mehrzahl
an Einträgen
fällt.
-
Vorteilhafterweise
umfasst das System ferner:
- – eine zweite Bestimmungseinrichtung
zum Bestimmen des größten Vorrangfeldwertes
aus der Mehrzahl an Vorrangfeldwerten, die dem mehr als einen der
Mehrzahl an Einträgen
entspricht, welche wenigstens einen der mehreren Paketfeldwerte
umfasst, die in das entsprechende Paar Bereichswerte fallen, und
- – eine
vierte Implementierungseinrichtung zum Ausführen der wenigstens einen ersten
Aktion, die dem größten Vorrangfeldwert
entspricht.
-
Vorteilhafterweise
umfasst das System ferner:
- – eine zweite Ermittlungseinrichtung
zum Ermitteln einer Mehrzahl an Vorrangfeldwerten, die der Mehrzahl
an Einträgen
entspricht, wenn jeder der Mehrzahl an Paketfeldwerten in jedes
entsprechende Paar Bereichswerte für mehr als einen der Mehrzahl
an Einträgen
fällt.
-
Vorteilhafterweise
umfasst das System ferner:
- – eine zweite Bestimmungseinrichtung
zum Bestimmen des größten Vorrangfeldwertes
aus der Mehrzahl an Vorrangfeldwerten, die dem mehr als einen der
Mehrzahl an Einträgen
entspricht, welche jeden der mehreren Paketfeldwerte umfasst, die
in jedes der entsprechenden Paare Bereichswerte fallen, und
- – eine
vierte Implementierungseinrichtung zum Ausführen der wenigstens einen zweiten
Aktion, die dem größten Vorrangfeldwert
entspricht.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN:
-
Für ein genaues
Verständnis
der Erfindung sollte auf die begleitenden Zeichnungen Bezug genommen
werden. Es zeigt:
-
1 ein
Beispiel einer erfindungsgemäßen Konfiguration
zum Filtern eines Pakets,
-
2 ein
Beispiel eines erfindungsgemäßen Regeln-Eintrags
in einer Regeln-Tabelle,
-
3 ein
Beispiel eines Satzes erfindungsgemäßer Bereichsprüfparameter
in einem Regeln-Tabelleneintrag bezogen auf einen Paketstrom,
-
4 ein
Flussdiagramm, das ein Beispiel eines erfindungsgemäßen Verfahrens
zum Filtern eines Pakets darstellt,
-
5 ein
Flussdiagramm, das ein Beispiel eines erfindungsgemäßen Verfahrens
zum Filtern eines Pakets darstellt, und
-
6 ein
weiteres Beispiel einer erfindungsgemäßen Konfiguration zum Filtern
eines Pakets.
-
GENAUE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM(EN):
-
1 zeigt
ein Beispiel einer erfindungsgemäßen Hardware-Konfiguration,
die basierend auf einem schnellen, flexiblen Bereichsprüfungsprozessor eine
Paketfilterung durchführen
kann. Die Durchführung
der Paketfilterung kann auch als Paketklassifizierung bezeichnet
werden. Daher können
die hierin angegebenen Hardware-Konfigurationen
und Beispiele auch eine Paketklassifizierung durchführen.
-
Außerdem kann
sich die Hardware-Konfiguration gemäß 1 in einer
integrierten, modularen Ein-Chip-Lösung befinden und daher auf
einem Halbleitersubstrat, wie etwa Silizium, ausgeführt werden.
Alternativ kann die Hardware-Konfiguration gemäß 1 aus einer
Mehrzahl diskreter Komponenten auf einer Leiterplatte bestehen.
Die Konfiguration kann auch als Universaleinrichtung ausgeführt werden,
die dafür
konfiguriert ist, die Erfindung mit Computer-Software zu implementieren.
-
1 zeigt
eine Netzwerkeinrichtung 100, die basierend auf einem Bereichsprüfungsprozessor ein
Paket filtern kann. Es sei darauf hingewiesen, dass, obgleich die
Netzwerkeinrichtung ein Paket filtern kann, die Netzwerkeinrichtung 100 Daten
jeglichen Formats verarbeiten kann, einschließlich eines Datenpakets, eines
Daten-Frames oder
einer Datenzelle, ohne jedoch darauf beschränkt zu sein.
-
Die
Netzwerkeinrichtung 100 gemäß 1 kann eine
Regeln-Tabelle 105, eine Aktionsimplementierungseinheit 125 und
eine Mehrzahl an Speichereinheiten 130 umfassen. Die Regeln-Tabelle 105 kann
beispielsweise eine Mehrzahl an Regeln-Einträgen umfassen. 1 zeigt
eine Regeln-Tabelle 105 mit "m" Einträgen. Jeder
Eintrag in der Regeln-Tabelle kann mehrere Sätze Bereichsprüfparameter
und eine Mehrzahl an Aktionsfeldern 115 und 120 umfassen. 1 zeigt,
dass beispielsweise jeder Eintrag in der Regeln-Tabelle 105 "n" Sätze
Bereichsprüfparameter
und die Aktionsfelder 115, 120 aufweisen kann.
-
2 zeigt
ein Beispiel eines Eintrags 200 in der Regeln-Tabelle 105.
Der Eintrag 200 kann eine Mehrzahl an Bereichsprüfparametern
aufweisen. Bei diesem Beispiel hat der Eintrag 200 "n" Sätze
Bereichsprüfparameter.
Jeder Satz Bereichsprüfparameter
im Eintrag 200 kann wenigstens vier Speichereinheiten 210a-n, 220a-n, 230a-n bzw. 240a-n
umfassen. Der erste Satz Bereichsprüfparameter im Eintrag 200 kann
beispielsweise die Speichereinheiten 210a, 220a, 230a und 240a und
der zweite Satz Bereichsprüfparameter 210b, 220b, 230b und 240b usw.
umfassen. Jede Speichereinheit 210a-n, 220a-n, 230a-n
und 240a-n kann eine beliebige Speichereinheit sein, etwa
ein Register, und darin programmierbare Werte oder Informationen
speichern und eine beliebige Breite oder Bitlänge aufweisen.
-
3 zeigt
ein Beispiel eines Satzes Bereichsprüfparameter 300 im
Eintrag 200 bezogen auf ein Beispiel eines Paketstroms 310.
Der Satz Bereichsprüfparameter 300 kann
die Speichereinheiten 210a, 220a, 230a und 240a umfassen
und der Paketstrom 310 eine Mehrzahl von "n" Bits aufweisen, wie etwa 256 Bits.
Jedes Bit im Paketstrom 310 kann einen Bitwert darstellen.
-
Die
Speichereinheit 210a gemäß 3 kann ein
Register zum Speichern eines Bitpositionswerts BP bezogen auf einen
Paketstrom sein, wie etwa den Paketstrom 310. Der Bitpositionswert
BP kann ein programmierbarer Wert sein, der eine vordefinierte Bitposition
in einem Paketstrom kennzeichnet oder darstellt. Daher kann der
Bitpositionswert BP ein Wert sein, der die Startbitposition eines
bestimmten Paketsfelds oder eines bestimmten Paketabschnitts in
einem Paketstrom 310 darstellt. Der Bitpositionswert BP
kann beispielsweise ein vordefinierter programmierbarer Binärwert sein,
der dem Dezimalwert 3 entspricht, welcher die Startbitposition 3
im Paketstrom 310 kennzeichnen oder darstellen kann.
-
Es
sei darauf hingewiesen, dass der Paketstrom 310 jedes beliebige
bekannte Format haben kann, etwa ein Ethernet-II-Format, ein 802.3-SNAP-Ethernet-Format
oder ein beliebiges Ethernet-Standardformat. Es sei ferner darauf
hingewiesen, dass die vorliegende Erfindung daher durch Aufnehmen
einer Maskentabelle oder eines schnellen Filterprozessors (FFP – Fast Filter
Processor) in die Netzwerkeinrichtung 100 gemäß 1 (nicht
gezeigt) einen Paketstrom 310 eines beliebigen Formats
filtern und verarbeiten kann. Der FFP kann den eingehenden Paketstrom 310 in
einem beliebigen Paketformat empfangen und die Bitposition BP des Paketstroms 310 basierend
auf der spezifischen Art des empfangenen Paketformats dynamisch
repositionieren.
-
Darüber hinaus
kann die Speichereinheit 220a gemäß 3 ebenfalls
ein Register zum Speichern eines Bitlängenwertes BL sein. Der Bitlängenwert
BL kann ein programmierbarer Wert sein, der eine vordefinierte Bitlänge eines
Paketfelds in einem Paketstrom 310, ausgehend von der Bitposition
BP, kennzeichnet oder darstellt. Mit anderen Worten der Bitlängenwert
BL stellt bezogen auf das aus einem Paketstrom 310 zu ermittelnde
Paketfeld eine Anzahl an Bits dar. Der Bitlängenwert BL kann ein beliebiger Wert
sein, etwa von null bis zu dem Wert, der zur Angabe der maximalen
Anzahl an Bits im Paketstrom 310 erforderlich ist. Mit
anderen Worten, der Bitlängenwert
BL kann ein Wert sein, der ausgehend von der Startbitposition BP
eines aus einem Paketstrom 310 zu ermittelnden Paketfelds
eine Anzahl an Bits darstellt. Der Bitlängenwert BL kann beispielsweise ein
vordefinierter programmierbarer Binärwert sein, der dem Dezimalwert
8 entspricht. Ein Bitlängenwert BL
von 8 kann, ausgehend von der Startposition 3 in einem Paketstrom 301,
eine Anzahl an Bits kennzeichnen oder darstellen, um ein Paketfeld
im Paketstrom 310 zu ermitteln. Als solche können ein
im Register 210a gespeicherter Bitpositionswert BP von
3 und ein in 220a gespeicherter Bitlängenwert BL von 8 bestimmt
und dazu genutzt werden, ein Paketfeld, das eine Länge von
8 Bits aufweist und die Bits 3, 4, 5, 6, 7, 8, 9 und 10 in einem
Paketstrom 310 umfasst, zu ermitteln. Das ermittelte Paketfeld
kann danach dazu verwendet werden, bezogen auf den entsprechenden
Satz Bereichsprüfparameter
einen Paketfeldwert zu bestimmen. Es sei darauf hingewiesen, dass
die vorliegende Erfindung beispielsweise einen Satz Bereichsprüfparameter
durch Einstellen des Bitlängenwerts
BL auf null deaktivieren und durch Programmieren des Bitlängenwerts
81 auf einen größeren Wert
als null aktivieren kann.
-
Des
Weiteren kann der eine Satz Bereichsprüfparameter gemäß 3 die
Speichereinheiten 230a und 240a umfassen. Die
Speichereinheit 230a kann ein Register sein, das dafür konfiguriert
ist, einen Bereichswert aus einer Mehrzahl von Bereichswerten zu
speichern. Die Speichereinheit 230a kann beispielsweise
einen Startbereichswert SR aus einer Mehrzahl an Bereichswerten
speichern. Der Startbereichswert SR kann ein Binärwert oder ein Wert verschiedenartiger
Formate sein. Des Weiteren kann der Startbereichswert SR ein programmierbarer
Wert sein, der einen vordefinierten unteren Grenzwert eines Bereichs
von Werten kennzeichnen oder darstellen kann. Daher kann der Startbereichswert
SR einen unteren Grenzwert eines Bereichs von Werten kennzeichnen
oder darstellen, in dem ein ermittelter Paketfeldwert verglichen
oder überprüft werden
kann.
-
Ebenso
in 3 gezeigt, ist eine Speichereinheit 240a,
die dafür
konfiguriert ist, einen anderen Bereichswert aus einer Mehrzahl
an Bereichswerten zu speichern. Die Speichereinheit 240a kann
beispielsweise einen Endbereichswert ER aus einer Mehrzahl an Bereichswerten
speichern. Die Speichereinheit 240a kann ebenfalls ein
Register zum Speichern eines Endbereichswerts ER sein. Wie der Startbereichswert
SR kann der Endbereichswert ER ein Binärwert oder ein Wert verschiedenartiger
Formate sein. Des Weiteren kann der Endbereichswert ER ein programmierbarer
Wert sein, der einen vordefinierten oberen Grenzwert eines Bereichs
von Werten kennzeichnen oder darstellen kann. Daher kann der Endbereichswert
ER einen oberen Grenzwert eines Bereichs von Werten kennzeichnen
oder darstellen, in dem ein ermittelter Paketfeldwert verglichen oder überprüft werden
kann.
-
Demgemäß kann die
Speichereinheit 230a einen Startbereichswert SR speichern,
der den unteren Grenzwert einer Mehrzahl an Bereichswerten angeben
oder darstellen kann, und die Speichereinheit 240a einen
Endbereichswert ER speichern, der den oberen Grenzwert der Mehrzahl
an Bereichswerten angeben oder darstellen kann. Mit anderen Worten, der
Startbereichswert SR und der Endbereichswert ER sind ein Paar Bereichswerte,
die eine Unter- und eine Obergrenze für einen bestimmten Bereich
von Werten kennzeichnen oder festlegen können. Sobald die Grenzen des
Bereichs von Werten ermittelt worden sind, kann ein entsprechender
Paketfeldwert, der anhand des Bitpositionswerts BP und des Bitlängenwerts
BL bestimmt wird, mit dem durch den Startbereichswert SR und den
Endbereichswert ER festgelegten Bereich von Werten verglichen oder
mittels diesem überprüft werden.
-
Es
sei darauf hingewiesen, dass der auf der erfindungsgemäßen Bereichsprüfung basierende Prozessor
die Bereichsprüfung
basierend auf der Aufnahme des Startbereichswerts SR und des Endbereichswerts
ER oder basierend auf dem Ausschluss dieser Werte durchführen kann.
-
Bezug
nehmend auf das Beispiel gemäß 1 kann
die Regeln-Tabelle 105 eine Mehrzahl an Einträgen umfassen,
wobei jeder Eintrag mehrere Sätze
Bereichsprüfparameter
enthalten kann. Daher kann jeder Eintrag in der Regeln-Tabelle 105 eine Mehrzahl
an Bitpositionswerten BP, eine Mehrzahl an Bitlängenwerten BL, eine Mehrzahl
an Startbereichswerten SR und eine Mehrzahl an Endbereichswerten ER
aufweisen, die einander entsprechen. Die Mehrzahl an Bitpositionswerten
BP zusammen mit der entsprechenden Mehrzahl an Bitlängenwerten
BL kann eine Mehrzahl an Paketfeldern ermitteln, aus denen eine
Mehrzahl entsprechender Paketfeldwerte bestimmt werden kann. Demgemäß wird die
Mehrzahl an Paketfeldwerten mit einer Mehrzahl an entsprechenden
Paaren aus Startbereichswerten SR und Endbereichswerten ER verglichen
oder mittels dieser überprüft, die
bestimmt werden sollen, wenn einer der Paketfeldwerte innerhalb
des Bereichs der entsprechenden Startbereichswerte SR und Endbereichswerte
ER liegt. Wenn bestimmt wird, dass der Paketfeldwert innerhalb des
Paares entsprechender Start- und Endbereichswerte liegt, dann werden
dadurch in dem entsprechenden Satz Bereichsprüfparameter angegebene Bedingungen
eingehalten und/oder erfüllt.
Somit wird eine Übereinstimmung erzielt.
-
Ferner
in der Regeln-Tabelle 105 gemäß 1 gezeigt,
ist eine Mehrzahl an Aktionsfeldern 115 und 120.
Jedes Paar Aktionsfelder 115, 120 kann jedem Eintrag
in der Regeln-Tabelle 105 entsprechen. Die Aktionsfelder 115 und 120 können beispielsweise
ein feststehender Satz Bitfolgen sein, wobei jedes Bit in der Bitfolge
festgelegt sein kann, etwa mit einem Binärwert "1" oder "0". Demgemäß kann das Aktionsfeld 115 eine
feststehende Bitfolge sein, wobei jedes Bit in der Bitfolge auf
eine Voll-Übereinstimmungsaktion
festgelegt sein kann, die an einem Paket durchgeführt werden
soll. Mit anderen Worten, es kann wenigstens eine in dem Aktionsfeld
angegebene Voll-Übereinstimmungsaktion an
einem Paket ausgeführt
werden, wenn die in sämtlichen
Sätzen
Bereichsprüfparameter
in dem entsprechenden Eintrag der Regeln-Tabelle angegebenen Bedingungen
eingehalten und/oder erfüllt
werden, wodurch eine vollständige
oder genaue Übereinstimmung
erzielt wird. Wenn beispielsweise jeder der Paketfeldwerte innerhalb
des in jedem der Sätze Bereichsprüfparameter
in einem Eintrag der Regeln-Tabelle angegebenen entsprechenden Bereichs von
Werten liegt, wird eine vollständige Übereinstimmung
erzielt und die in dem Voll-Übereinstimmungsaktionsfeld 115 angegebene(n)
Voll-Übereinstimmungsaktion(en)
kann/können
durchgeführt
werden.
-
Darüber hinaus
kann das Aktionsfeld 120 ebenfalls eine feststehende Bitfolge
sein, wobei jedes Bit in der Bitfolge auf eine Teil-Übereinstimmungsaktion
festgelegt sein kann, die an einem Paket durchgeführt werden
soll. Mit anderen Worten, es kann wenigstens eine in dem Aktionsfeld 120 angegebene
Teil-Übereinstimmungsaktion
an einem Paket ausgeführt
werden, wenn keine vollständige
oder genaue Übereinstimmung
vorhanden ist und die in wenigstens einem Satz Bereichsprüfparameter
in dem entsprechenden Eintrag der Regeln-Tabelle angegebenen Bedingungen
eingehalten und/oder erfüllt
werden, wodurch wenigstens eine Übereinstimmung
erzielt wird. Wenn beispielsweise wenigstens einer der Paketfeldwerte
innerhalb des in wenigstens einem entsprechenden Satz Bereichsprüfparameter in
einem Eintrag der Regeln-Tabelle angegebenen entsprechenden Bereichs
von Werten liegt, wird eine teilweise Übereinstimmung erzielt und
die in dem Teil-Übereinstimmungsaktionsfeld 115 angegebene(n)
Teil-Übereinstimmungsaktion(en)
kann/können ausgeführt werden.
-
1 zeigt
außerdem
eine Aktionsimplementierungseinheit 125, die dafür konfiguriert
sein kann, verschiedene Aktionen an dem Paket auszuführen. Die
Aktionsimplementierungseinheit 125 kann beispielsweise
wenigstens eine Voll-Übereinstimmungsaktion
ausführen,
wenn bezogen auf die Sätze
von Bereichsprüfparametern
in einem Eintrag der Regeln-Tabelle 105 eine Voll-Übereinstimmungsbedingung
vorhanden ist. Ebenso kann die Aktionsimplementierungseinheit 125 auch
wenigstens eine Teil-Übereinstimmungsaktion
ausführen,
wenn bezogen auf die Sätze
von Bereichsprüfparametern
in einem Eintrag der Regeln-Tabelle 105 eine Teil-Übereinstimmungsbedingung
vorhanden ist. Darüber
hinaus kann die Aktionsimplementierungseinheit 125 wenigstens
eine voreingestellte Nicht-Übereinstimmungsaktion
und/oder wenigstens eine vorprogrammierte Nicht-Übereinstimmungsaktion ausführen, wenn
bezogen auf sämtliche
Sätze von
Bereichsprüfparametern
in der Regeln-Tabelle 105 eine Nicht-Übereinstimmungsbedingung
vorhanden ist. Mit anderen Worten, wenn keiner der Paketfeldwerte in
jedem der Sätze
Bereichsprüfparameter
in das entsprechende Paar Bereichswerte fällt, ist eine Nicht-Übereinstimmungsbedingung
vorhanden, die die Aktionsimplementierungseinheit 125 aktivieren kann,
um wenigstens eine voreingestellte Nicht-Übereinstimmungsaktion und/oder
wenigstens eine vorprogrammierte Nicht-Übereinstimmungsaktion an dem
Paket auszuführen.
-
Des
Weiteren zeigt 1 auch eine Mehrzahl an Speichereinheiten 130.
Jede der Speichereinheiten 130 kann ein Register sein,
das dafür
konfiguriert ist, einen Vorrangfeldwert 135 zu speichern, wobei
der Vorrangfeldwert 135 einem Eintrag in der Regeln-Tabelle 105 entsprechen
kann. Der Vorrangfeldwert 135 kann ein Binärwert oder
ein Wert verschiedenartiger Formate sein. Des Weiteren kann der
Vorrangfeldwert 135 ein programmierbarer Wert sein, der
den Vorrang der Einträge
in der Regeln-Tabelle 105 kennzeichnen oder darstellen
kann. Demgemäß wird bestimmt,
dass, wenn mehr als ein Eintrag die Bedingung entweder einer vollständigen Übereinstimmung
oder einer teilweisen Übereinstimmung
erfüllt,
der Eintrag mit dem entsprechenden höchsten Vorrangfeldwert 135 Vorrang über die
anderen Einträge
erhält,
wodurch die entsprechende(n) Aktion(en) im Aktionsfeld ausgeführt werden kann/können. Es
sei darauf hingewiesen, dass der Vorrangfeldwert 135 in
beliebiger Reihenfolge vorprogrammiert werden kann. Es sei ferner
darauf hingewiesen, dass die Speichereinheiten 130 zum
Speichern des Vorrangfeldwerts 135 ein Beispiel der vorliegenden
Erfindung zum Auflösen
der Bedingung mehrerer vollständiger
oder teilweiser Übereinstimmungen
darstellen können.
-
4 zeigt
ein Beispiel eines erfindungsgemäßen Verfahrens
zum Filtern eingehender Pakete. Das Verfahren gemäß dem vorliegenden
Beispiel kann in Hardware, Software oder einer Kombination aus sowohl
Hardware als auch Software implementiert werden.
-
Ein
Ingress-Port in einer Netzwerkeinrichtung kann darin wenigstens
einen Paketstrom 310 empfangen. Ein Paketstrom 310 kann
eine beliebige Länge
haben. Der Ingress entnimmt eine vordefinierte Packungslänge, wie
etwa eine Bitlänge
von 256 Bits, die mit Bit 0 beginnt und mit Bit 255 endet. Demgemäß kann in
Schritt 400 von 4 in einem Ingress-Port einer
Netzwerkeinrichtung ein Paketstrom empfangen werden.
-
Wie
vorstehend erwähnt,
kann eine Netzwerkeinrichtung 100 eine Regeln-Tabelle 105,
eine Aktionsimplementierungseinheit 125 und eine Mehrzahl an
Speichereinheiten 130 umfassen. Darüber hinaus kann die Netzwerkeinrichtung 100 außerdem eine Maskentabelle
(nicht gezeigt) umfassen. Nachdem ein Paket in der Netzwerkeinrichtung 100 empfangen worden
ist, kann die vorliegende Erfindung das empfangene Paket unter Verwendung
einer Maskentabelle mit einer Maske versehen, um das Paket zu einem
bekannten Bitstrom zu formatieren. Mit anderen Worten, ein eingehender
Paketstrom kann jedes beliebige bekannte Format aufweisen, wie etwa
ein Ethernet-Il-Format, ein 802.3-SNAP-Ethernetformat oder ein beliebiges
Ethernet- Standardformat.
Daher kann die Maskentabelle den Paketstrom in einem beliebigen
Paketformat empfangen und den Paketstrom basierend auf der spezifischen
Art des empfangenen Paketsformats zu einem bekannten Bitstrom formatieren.
Danach kann die vorliegende Erfindung in Schritt 410 von 4 eine
Regeln-Tabelle 105 in der Netzwerkeinrichtung 100 ermitteln.
-
Die
Regeln-Tabelle 105 kann "m" Einträge aufweisen,
wobei jeder Eintrag in der Regeln-Tabelle 105 mehrere Sätze Bereichsprüfparameter
umfassen kann. Wie in 3 gezeigt, kann ein Beispiel
eines Satzes Bereichsprüfparameter 300 die
Speichereinheiten 210a, 220a, 230a und 240a umfassen,
wobei die Speichereinheit 210a bezogen auf einen Paketstrom
einen Bitpositionswert BP speichern kann und die Speichereinheit 220a ebenfalls
bezogen auf den Paketstrom einen Bitlängenwert BL speichern kann.
Nachdem die Regeln-Tabelle 105, die mehrere Sätze Bereichsprüfparameter
enthält,
ermittelt worden ist, kann die vorliegende Erfindung basierend auf den
Bitpositionswerten BP und den Bitlängenwerten BL in den mehreren
Sätzen
Bereichsprüfparametern eine
Mehrzahl an Paketfeldern bestimmen. Das ermittelte Paketfeld kann
danach dazu verwendet werden, in Schritt 415 entsprechende
Paketfeldwerte zu bestimmen.
-
Ferner
in 3 gezeigt sind die Speichereinheiten 230a und 240a.
Die Speichereinheit 230a kann einen Startbereichswert SR
speichern, wobei der Startbereichswert SR einen vordefinierten unteren
Grenzwert eines Bereichs von Werten kennzeichnen oder darstellen
kann. Darüber
hinaus kann die Speichereinheit 240a einen Endbereichswert
ER speichern, wobei der Endbereichswert ER einen oberen Grenzwert
eines Bereichs von Werten kennzeichnen oder darstellen kann. Sobald
eine Mehrzahl an Paketfeldwerten ermittelt worden ist, zeigt 4 unter 420 den
Schritt des Ermittelns einer Mehrzahl entsprechender Bereichswerte,
wobei jedes Paar Bereichswerte einen Startbereichswert SR und einen Endbereichswert
ER umfasst.
-
Nachdem
die Grenzen einer Mehrzahl an Bereichswerten ermittelt worden sind,
kann eine Mehrzahl entsprechender Paketfeldwerte, die anhand des
Bitpositionswerts BP und des Bitlängenwerts BL bestimmt werden,
mit dem Bereich von Werten, der durch den Startbereichswert SR und
den Endbereichswert ER festgelegt wird, in Schritt 425 von 4 verglichen
oder mittels diesem überprüft werden.
-
Nach
dem Vergleichen der Mehrzahl an Paketfeldwerten mit der Mehrzahl
entsprechender Bereichswerte, kann die vorliegende Erfindung in
Schritt 430 bestimmen, ob wenigstens ein Paketfeldwert
in einen durch den Startbereichswert SR und den Endbereichswert
ER angegebenen entsprechenden Bereich von Werten fällt. Wenn
in Schritt 430 bestimmt wird, dass keiner der Mehrzahl
an in den mehreren Sätzen
Bereichsprüfparameter
in der Regeln-Tabelle angegebenen Paketfeldwerten in den entsprechenden
Bereich von Werten fällt,
kann die Aktionsimplementierungseinheit 125 in Schritt 435 von 4 bezogen
auf das empfangene Paket wenigstens eine Nicht-Übereinstimmungsaktion ausführen. Nehmen wir
beispielsweise an, dass eine Regeln-Tabelle zehn Einträge enthält, wobei
jeder Eintrag fünf
Sätze Bereichsprüfparameter
und entsprechende Aktionsfelder umfassen kann. Demgemäß enthält die Regeln-Tabelle
insgesamt fünfzehn
Sätze Bereichsprüfparameter.
Daher wird in Schritt 430 bestimmt, wenn keiner der in
den fünfzehn
Sätzen
Bereichsprüfparameter
angegebenen fünfzehn
Paketfeldwerte mit den entsprechenden Paaren Bereichswerte übereinstimmt
oder in diese fällt,
dass keine Übereinstimmung
vorliegt und wenigstens eine Nicht-Übereinstimmungsaktion an dem
empfangenen Paket ausgeführt
werden kann.
-
Wenn
andererseits wenigstens ein in den mehreren Sätzen Bereichsprüfparameter
angegebener Paketfeldwert tatsächlich
in ein entsprechendes Paar Bereichswerte fällt, kann die vorliegende Erfindung
in Schritt 510 bestimmen, ob mehr als ein Paketfeldwert
in der Regeln-Tabelle vorhanden ist, der in die entsprechenden Paare
Bereichswerte in mehr als einem Eintrag in der Regeln-Tabelle fällt. Mit
anderen Worten die Erfindung kann, wenn wenigstens ein in den mehreren
Sätzen
Bereichsprüfparameter angegebener
Paketfeldwert in den entsprechenden Startbereichswert SR und den
entsprechenden Endbereichswert ER fällt, in Schritt 510 bestimmen,
ob mehr als ein Eintrag in der Regeln-Tabelle vorhanden ist, bei
dem der Paketfeldwert mit einem in einem entsprechenden Bereich
von Werten angegebenen Wert übereinstimmt.
Bezug nehmend auf das vorstehend ausgeführte Beispiel wird, wenn wenigstens
einer der fünfzehn
Paketfeldwerte mit dem entsprechenden Paar Bereichswerte übereinstimmt
oder in dieses fällt,
in Schritt 510 bestimmt, ob mehr als einer der zehn Einträge eine Übereinstimmung
mit den Paketfeldwerten enthält.
-
Wenn
bestimmt wird, dass nur ein Eintrag in der Regeln-Tabelle übereinstimmende
Paketfeldwerte enthält,
kann die vorliegende Erfindung in Schritt 540 bestimmen,
ob bezogen auf sämtliche
Paketfeldwerte in dem einen Eintrag eine vollständige Übereinstimmung oder eine teilweise Übereinstimmung
vorhanden ist. Wenn beispielsweise jeder der in den Sätzen Bereichsprüfparameter
in dem einen Eintrag angegebenen Paketfeldwerte in sein entsprechendes
Paar Bereichswerte fällt,
wird bestimmt, dass eine vollständige Übereinstimmung
der Paketfeldwerte vorliegt. Im Gegensatz dazu, wird, wenn nicht jeder
der Paketfeldwerte in sein entsprechendes Paar Bereichswerte fällt, bestimmt,
dass eine teilweise Übereinstimmung
der Paketfeldwerte vorliegt.
-
Demgemäß kann eine
Aktionsimplementierungseinheit in Schritt 570 von 5 wenigstens eine
in dem entsprechenden Voll-Übereinstimmungsaktionsfeld
angegebene Voll-Übereinstimmungsaktion
ausführen,
wenn bestimmt wird, dass eine vollständige Übereinstimmung der Paketfeldwerte
vorliegt. Die Aktionsimplementierungseinheit kann jedoch in Schritt 550 von 5 wenigstens
eine in dem entsprechenden Teil-Übereinstimmungsaktionsfeld angegebene
Teil-Übereinstimmungsaktion
ausführen,
wenn bestimmt wird, dass eine teilweise Übereinstimmung der Paketfeldwerte
vorliegt. Bei Verwendung des vorstehend ausgeführten Beispiels wird, wenn
bestimmt wird, dass nur einer von den zehn Einträgen wenigstens einen übereinstimmenden
Paketfeldwert enthalt, bei diesem Beispiel ferner in Schritt 540 bestimmt,
ob der Eintrag ein Voll-Übereinstimmungseintrag
oder ein Teil-Übereinstimmungseintrag
ist. Daher kommt bei diesem Beispiel ein Voll-Übereinstimmungseintrag vor,
wenn jeder der durch die fünf
Sätze Bereichsprüfparameter
angegebenen fünf
Paketfeldwerte in die fünf
entsprechenden Bereichswerte fällt.
Ein Teil-Übereinstimmungseintrag
kommt bei diesem Beispiel vor, wenn einer oder mehrere, jedoch nicht
alle fünf,
der Paketfeldwerte in den einen oder die mehreren entsprechenden
Bereichswerte fällt.
-
Bezug
nehmend auf Schritt 510 von 5 kann die
vorliegende Erfindung bestimmen, ob mehr als ein Eintrag in der
Regeln-Tabelle vorhanden ist, der wenigstens einen übereinstimmenden
Paketfeldwert aufweist. Mit anderen Worten, sobald bestimmt worden
ist, dass die Regeln-Tabelle wenigstens einen übereinstimmenden Paketfeldwert
enthält,
bestimmt die Erfindung in Schritt 510 ferner, ob mehr als ein
Eintrag eine Übereinstimmung
der Paketfeldwerte enthält.
Wenn in Schritt 510 bestimmt wird, dass tatsächlich in
mehr als einem Eintrag einer Regeln-Tabelle eine Übereinstimmung
von Paketfeldwerten vorliegt, kann die Erfindung die Einträge, die wenigstens
einen übereinstimmenden
Paketfeldwert aufweisen, und ihre entsprechenden Speichereinheiten 130 ermitteln.
Die Erfindung kann in Schritt 520 ferner die in den entsprechenden
Speichereinheiten gespeicherten Vorrangfeldwerte ermitteln.
-
Nach
dem Ermitteln der entsprechenden Speichereinheiten und der darin
gespeicherten Vorrangfeldwerte in Schritt 520, kann die
Erfindung in Schritt 530 den höchsten Vorrangfeldwert aus
sämtlichen
ermittelten Vorrangfeldwerten bestimmen.
-
Nehmen
wir beispielsweise an, dass sieben der zehn Einträge in einer
Regeln-Tabelle jeweils
wenigstens einen übereinstimmenden
Paketfeldwert enthalten. Die den sieben Einträgen entsprechenden Speichereinheiten
können
festgestellt und die in den sieben Speichereinheiten gespeicherten
Vorrangfeldwerte ebenfalls in Schritt 520 ermittelt werden. Sobald
die sieben entsprechenden Vorrangfeldwerte ermittelt worden sind,
kann die vorliegende Erfindung bestimmen, welcher der sieben Vorrangfeldwerte
der höchste
Vorrangfeldwert ist.
-
Danach
wird der dem bestimmten höchsten Vorrangfeldwert
entsprechende Eintrag ausgewählt, um
in Schritt 540 zu bestimmen, ob der Eintrag ein Voll-Übereinstimmungseintrag
oder ein Teil-Übereinstimmungseintrag
ist. Wenn beispielsweise jeder der in den Sätzen Bereichsprüfparameter
in dem gewählten
Eintrag angegebenen Paketfeldwerte in sein entsprechendes Paar Bereichswerte
fällt,
wird bestimmt, dass eine genaue oder vollständige Übereinstimmung der Paketfeldwerte
vorliegt. Im Gegensatz dazu, wird jedoch, wenn nicht jeder der Paketfeldwerte in
sein entsprechendes Paar Bereichswerte fällt, bestimmt, dass eine teilweise Übereinstimmung
der Paketfeldwerte vorliegt.
-
Demgemäß kann eine
Aktionsimplementierungseinheit in Schritt 570 von 5 wenigstens eine
in dem entsprechenden Voll-Übereinstimmungsaktionsfeld
angegebene Voll-Übereinstimmungsaktion
ausführen,
wenn bestimmt wird, dass eine vollständige Übereinstimmung der Paketfeldwerte
vorliegt. Die Aktionsimplementierungseinheit kann jedoch in Schritt 550 von 5 wenigstens
eine in dem entsprechenden Teil-Übereinstimmungsaktionsfeld angegebene
Teil-Übereinstimmungsaktion
ausführen,
wenn bestimmt wird, dass eine teilweise Übereinstimmung der Paketfeldwerte
vorliegt. Bei Verwendung des vorstehend angegebenen Beispiels wird,
wenn der Eintrag mit dem höchsten
Vorrangfeldwert bestimmt oder ausgewählt wird, bei diesem Beispiel
in Schritt 540 ferner bestimmt, ob der Eintrag ein Voll-Übereinstimmungseintrag oder
ein Teil-Übereinstimmungseintrag
ist. Daher kommt bei diesem Beispiel ein Voll-Übereinstimmungseintrag vor,
wenn jeder der durch die fünf
Sätze Bereichsprüfparameter angegebenen
fünf Paketfeldwerte
in die fünf
entsprechenden Bereichswerte fällt.
Ein Teil-Übereinstimmungseintrag
kommt bei diesem Beispiel vor, wenn einer oder mehrere, jedoch nicht
alle fünf,
der Paketfeldwerte in den einen oder die mehreren entsprechenden
Bereichswerte fallen.
-
Wenn
bestimmt wird, dass der Eintrag ein Voll-Übereinstimmungseintrag ist,
kann in Schritt 570 wenigstens eine in dem Voll-Übereinstimmungsaktionsfeld
angegebene entsprechende Voll-Übereinstimmungsaktion
ausgeführt
werden. Wenn jedoch bestimmt wird, dass der Eintrag ein Teil-Übereinstimmungseintrag
ist, kann in Schritt 550 von 5 wenigstens
eine in dem Teil-Übereinstimmungsaktionsfeld
angegebene Teil-Übereinstimmungsaktion
ausgeführt
werden.
-
6 zeigt
ein Beispiel einer erfindungsgemäßen Konfiguration. 6 zeigt
ein System 600 zum Filtern eines Pakets basierend auf einer
Bereichsprüfung.
Das System 600 kann eine Empfangseinheit 605 umfassen.
Die Empfangseinheit 605 kann ein Paket in einer Netzwerkeinrichtung empfangen.
Das System 600 kann außerdem
eine Bestimmungseinheit 610 umfassen. Die Bestimmungseinheit 610 kann
bezogen auf das empfangene Paket eine Mehrzahl an Paketfeldwerten
bestimmen. Darüber
hinaus kann die Bestimmungseinheit 610 die Mehrzahl an
Paketfeldwerten basierend auf den Sätzen Bereichsprüfparameter
in einer Regeln-Tabelle bestimmen. Des Weiteren kann die Bestimmungseinheit 610 eine
Mehrzahl an Paketfeldern und den größten Vorrangfeldwert aus der
Mehrzahl an Feldwerten bestimmen. Das System 600 gemäß 6 kann
außerdem
eine Ermittlungseinheit 615 umfassen, wobei die Ermittlungseinheit 615 eine Mehrzahl
an in den Sätzen
Bereichsprüfparameter angegebenen
Bereichswerten ermitteln kann. Die Ermittlungseinheit 615 kann
außerdem
eine Mehrzahl an Bitpositionen, eine Mehrzahl an Bitlängen und eine
Mehrzahl an Startbereichswerten und Endbereichswerten ermitteln.
Darüber
hinaus kann die Ermittlungseinheit 615 eine Mehrzahl an
Vorrangfeldwerten ermitteln, die der Mehrzahl an Einträgen entspricht.
-
6 zeigt
außerdem
eine Implementierungseinheit 620. Die Implementierungseinheit 620 kann
eine Mehrzahl an Aktionen ausführen.
Mit anderen Worten, die Implementierungseinheit kann wenigstens
eine Teil-Übereinstimmungsaktion
ausführen,
wenn bezogen auf die vorprogrammierten Bedingungen eine teilweise Übereinstimmung
vorliegt, wenigstens eine Voll-Übereinstimmungsaktion
ausführen,
wenn bezogen auf die vorprogrammierten Bedingungen eine genaue oder
vollständige Übereinstimmung
vorliegt, und wenigstens eine Nicht-Übereinstimmungsaktion ausführen, wenn
bezogen auf die vorprogrammierten Bedingungen keine Übereinstimmung
vorliegt. Darüber
hinaus kann die Implementierungseinheit 620 wenigstens
eine dem größten Vorrangwert
zugeordnete Aktion ausführen.
-
Obgleich
die Erfindung basierend auf diesen bevorzugten Ausführungsformen
und Beispielen beschrieben worden ist, sei darauf hingewiesen, dass das
erfindungsgemäße Verfahren
und Filter zum Verarbeiten eines Pakets, die auf einer schnellen,
flexiblen Bereichsprüfung
basieren, in der Art ihrer Ausführung
flexibel sein können.
Das Verfahren und Filter zum Verarbeiten eines Pakets, die auf einer
schnellen, flexiblen Bereichsprüfung
basieren, können
beispielsweise implementiert, sobald ein Paketstrom 310 in
einer Netzwerkeinrichtung oder einem Filter ankommt, wenn ein Paketstrom 310 geparst
(analysiert) wird, nachdem der Paketstrom 310 geparst worden
ist, oder wenn der Paketstrom 310 nach einer gewissen Verarbeitung
und daran durchgeführten Modifikationen
bereitgestellt wird, oder mit einer Mehrfeld-Voll-Übereinstimmungsprüfung kombiniert werden,
wobei ein Satz Bereichsprüffelder
als Satz Erweiterungsregister mit einem Satz Voll-Übereinstimmungsregister
kombiniert werden kann. Des Weiteren kann die vorliegende Erfindung
eine genaue oder vollständige
Paketfeldwertübereinstimmung
erzielen. Mit anderen Worten, der Startbereichswert SR und der Endbereichswert
ER können so
programmiert oder festgelegt werden, dass sie einen äquivalenten
Wert haben, wobei SR = ER. Daher kann die vorliegende Erfindung,
statt einen Bereich von Werten aufzuweisen, mit denen eine Übereinstimmung
erzielt werden muss, nur einen Wert haben, mit dem eine Übereinstimmung
erzielt werden muss.
-
Die
vorstehend offenbarten Konfigurationen der vorliegenden Erfindung
können
sich in einer integrierten, modularen Ein-Chip-Lösung befinden und auf einem
Halbleitersubstrat, wie etwa Silizium, ausgeführt werden. Des Weiteren können die
hierin offenbarten Verfahren zum Filtern eines Pakets in Hardware,
Software oder einer Kombination aus sowohl Hardware als auch Software
implementiert werden. Darüber
hinaus wäre
ein Fachmann auf dem Gebiet der Halbleiterkonstruktion und -herstellung dazu
in der Lage, die verschiedenen Elemente und Verfahren der vorliegenden
Erfindung basierend auf der vorstehenden architektonischen Beschreibung auf
einem einzelnen Halbleitersubstrat auszuführen.
-
Ein
Durchschnittsfachmann auf dem Gebiet wird leicht erkennen können, dass
die vorstehend beschriebene Erfindung auch mit einer anderen Reihenfolge
der Schritte und/oder mit Hardware-Elementen in Konfigurationen,
die sich von den offenbarten unterscheiden, in die Praxis umgesetzt
werden kann. Daher ist es, obgleich die Erfindung basierend auf
diesen bevorzugten Ausführungsformen
beschrieben worden ist, für
Fachleute auf dem Gebiet offensichtlich, dass gewisse Modifikationen,
Variationen und alternative Konstruktionen möglich sind. Zur Bestimmung
des Maßes
und Ziels der Erfindung sollte daher auf die anhängigen Ansprüche Bezug
genommen werden.