-
HINTERGRUND DER ERFINDUNG:
-
Gebiet der Erfindung:
-
Die
vorliegende Erfindung betrifft ein Verfahren und eine Vorrichtung
zur Hochleistungs-Paketfilterung in einer Kommunikationsnetzwerkumgebung wie
zum Beispiel einer Token Ring-, ATM-, Ethernet-, Fast-Ethernet-
und Gigabit-Ethernet-Umgebung. Darüber hinaus
kann die vorliegende Erfindung bei jeder auf Paketen basierenden
Medienumgebung verwendet werden. Insbesondere betrifft die vorliegende
Erfindung ein Paketfilter und ein Verfahren zur Filterung eines
Pakets, die auf einem Halbleitersubstrat wie z.B. einem Silizium-Chip
implementiert werden können.
-
Beschreibung des Standes
der Technik:
-
Bei
Netzwerkanwendungen betritt ein ankommendes Paket einen Eingangsport
einer Netzwerkkomponente, wie etwa ein Schaltelement (Switch), wobei
die Netzwerkkomponente das ankommende Paket verarbeitet und dieses
zu einem Ausgangsport leitet. Bei der Verarbeitung des ankommenden
Pakets kann die Netzwerkkomponente das ankommende Paket auf der
Eingangsseite der Netzwerkkomponente untersuchen und kann Adressierungs-
und Routing-Informationen feststellen, um die Netzwerkperformanz
zu verbessern.
-
Die
Netzwerkkomponente kann eine Adressierungs- und Verarbeitungslogik
an das ankommende Paket anlegen. Die WO 00/56024 und die WO 01/37115
offenbaren ein Netzwerk-Schaltelement auf der Basis einer Filtereinheit
zur Konstruktion und zum Anlegen eines Filters an ausgewählte Felder
des ankommenden Pakets, das sich auf vollständige und teilweise Übereinstimmungs-Suchvorgänge stützt.
-
ZUSAMMENFASSUNG DER ERFINDUNG:
-
Die
vorliegende Erfindung wird durch ein Verfahren gemäß Anspruch
1 definiert, während
vorteilhafte Ausführungsbeispiele
der Erfindung durch die Unteransprüche definiert werden.
-
KURZE BESCHREIBUNG DER
ZEICHNUNGEN:
-
Zum
richtigen Verständnis
der Erfindung sollte Bezug auf die beigefügten Zeichnungen genommen werden,
in denen:
-
1 ein
Beispiel einer Konfiguration zur Filterung eines Pakets gemäß der vorliegenden
Erfindung veranschaulicht;
-
2 ein
Ablaufdiagramm veranschaulicht, das ein Beispiel eines Verfahrens
zur Filterung eines Pakets gemäß der vorliegenden
Erfindung veranschaulicht;
-
3 ein
anderes Beispiel der vorliegenden Erfindung veranschaulicht;
-
4 ein
Beispiel einer Regeltabelle veranschaulicht;
-
5 ein
Beispiel einer bedingten Ausdruckstabelle veranschaulicht, die darin
Aktions-Bitmaps enthalten kann;
-
6 ein
Beispiel einer bedingten Ausdruckstabelle veranschaulicht, die darin
Zeiger enthalten kann;
-
7 ein
Beispiel einer Aktions-Tabelle veranschaulicht;
-
8 ein
Beispiel einer Konfiguration zur Filterung eines Pakets veranschaulicht,
das wenigstens eine Untermengen-Maske enthalten kann; und
-
9 ein
Ablaufdiagramm veranschaulicht, das ein Beispiel eines Verfahrens
zur Filterung eines Pakets veranschaulicht, das wenigstens eine
Untermengen-Maske
verwenden kann.
-
GENAUE BESCHREIBUNG DES/DER
BEVORZUGTEN AUSFÜHRUNGSBEISPIEL(E):
-
1 veranschaulicht
ein Beispiel einer Hardware-Konfiguration gemäß der vorliegenden Erfindung,
die eine Paketfilterung durchführen
kann. Die Durchführung
der Paketfilterung kann auch als Paketklassifikation bezeichnet
werden. Deshalb können
die hier bereitgestellten Hardware-Konfigurationen und Beispiele
auch eine Paketklassifikation durchführen.
-
Wie
in 1 gezeigt ist, kann die Konfiguration eine Maskentabelle 10,
eine Speicherungs- oder Speichereinheit (storage or memory unit),
die so konfiguriert ist, dass sie eine Übereinstimmungs-Bitmap (match
bitmap) 20 speichern kann, und eine bedingte Ausdruckstabelle
(conditional expression table) 30 enthalten. Die Maskentabelle 10,
die Speicherungs- oder Speichereinheit und die bedingte Ausdruckstabelle
von 1 können
zum Beispiel auf einem Halbleitersubstrat wie etwa Silizium verwirklicht
werden.
-
Die
Maskentabelle 10 kann eine Vielzahl von Maskeneinträgen aufweisen.
Jeder Maskeneintrag kann eine Filtermaske für das Maskieren eines ankommenden
Pakets auf der Grundlage wenigstens einer programmierbaren Bedingung
repräsentieren. Deshalb
kann jeder Maskeneintrag mit einer Filterungsbedingung oder einer
Vielzahl von Filterungsbedingungen, einschließlich, aber nicht beschränkt auf
eine Bedingung einer exakten Übereinstimmung oder
einer Teilbit-Übereinstimmung,
vorprogrammiert werden. Demgemäß kann die
Maskentabelle 10 ein ankommendes Paket auf der Basis von
vorprogrammierten Bedingungen durch jeden einzelnen Maskeneintrag
darin maskieren.
-
Die Übereinstimmungs-Bitmap 20 kann
eine Bitmap sein, die eine Bitlänge
aufweist, die gleich der Anzahl an Maskeneinträgen in der Maskentabelle 10 ist.
Alternativ dazu kann die Übereinstimmungs-Bitmap 20 eine
Bitmap sein, die eine Bitlänge aufweist,
die kleiner als die Anzahl von Maskeneinträgen in der Maskentabelle 10 ist,
was durch Komprimierungstechniken bewerkstelligt werden kann. Zum
Beispiel kann die Übereinstimmungs-Bitmap 20 auf
eine Bitlänge
komprimiert werden, die kleiner als die Anzahl an Maskeneinträgen ist,
indem eine Operation wie etwa eine UND-, ODER- oder eine exklusive
ODER-Operation der mehrfachen Maskeneinträge implementiert wird, um eine
Bitmap mit einer Einbitlänge
zu erzielen. Zum Beispiel kann eine Maskentabelle mit sechzehn Maskeneinträgen eine
endgültige Übereinstimmungs-Bitmap
von 8 Bits in der Länge aufweisen,
indem eine UND-Operation
der Übereinstimmungs-Bitmaps
von zwei benachbarten Maskeneinträgen implementiert wird.
-
Jede
Bitposition der Übereinstimmungs-Bitmap 20 kann
eine Länge
von einem Bit aufweisen und kann einem bestimmten Maskeneintrag
in der Maskentabelle 10 entsprechen. Außerdem kann jede Bitposition
der Übereinstimmungs-Bitmap 20 als
ein bedingtes Flag gesetzt werden. In einem Beispiel kann jede Bitposition
mit einem bedingten Flag von entweder 1 oder 0 gesetzt werden. Außerdem kann
jede Bitposition mit einem bedingten Flag 1 gesetzt werden, wenn
eine Übereinstimmung
des maskierten Pakets in dem entsprechenden Maskeneintrag vorliegt.
Im Gegensatz dazu kann jede Bitposition mit einem bedingten Flag
0 gesetzt werden, wenn eine Null-Übereinstimmung des maskierten Pakets
in dem entsprechenden Maskeneintrag vorliegt. Deshalb kann die Übereinstimmungs-Bitmap 20 zu
einer Bitmap führen,
die in jeder Bitposition der Übereinstimmungs-Bitmap 20 ein
Bit 1 oder 0 aufweist, wobei das Setzen des bedingten Flag abhängig davon
sein kann, ob in dem entsprechenden Maskeneintrag jeweils eine Übereinstimmung
oder eine Null-Übereinstimmung
vorliegt. Als eine Folge davon kann die Übereinstimmungs-Bitmap 20 eine
Bitlänge von
Einsen und/oder Nullen aufweisen, die gleich der Anzahl der Maskeneinträge in der
Maskentabelle 10 ist. Diese Übereinstimmungs-Bitmap 20 kann
ein Vektor sein, der danach an die bedingte Ausdruckstabelle 30 angelegt
und in diese indexiert werden kann. Außerdem kann die Übereinstimmungs-Bitmap 20 zu jedem
binären
Verschlüsselungssystem,
wie etwa dem BCD- oder dem Grey-Verschlüsselungssystem, gehören.
-
Die
bedingte Ausdruckstabelle 30, wie sie in 1 gezeigt
ist, kann so konfiguriert sein, dass sie eine Vielzahl von bedingten
Ausdruckseinträgen
umfasst, die darin vorprogrammiert sein können. Es kann sein, dass die
Anzahl der bedingten Ausdruckseinträge keine abhängige Beziehung
zu der Anzahl an Maskeneinträgen
in der Maskentabelle 10 aufweist. In einem Beispiel kann
jeder bedingte Ausdruckseintrag einen vorprogrammierten bedingten Ausdruck
enthalten, der darin Bit-Nullen und/oder Bit-Einsen aufweist. In
einem anderen Beispiel kann jeder bedingte Ausdruckseintrag einen
vorprogrammierten Wert enthalten. Die Bitlänge jedes bedingten Ausdruckeintrags
kann gleich der Bitlänge
der Übereinstimmungs-Bitmap 20 sein.
-
Außerdem kann
die bedingte Ausdruckstabelle 30 so konfiguriert sein,
dass sie eine Vielzahl von Aktionen umfasst, die bei dem ankommenden Paket
ergriffen oder implementiert werden sollen. Jede Aktion kann in ähnlicher
Weise in der bedingten Ausdruckstabelle 30 vorprogrammiert
sein und kann in der Form eines Opcodes oder von Operationsanweisungen
vorliegen. In einem Beispiel der vorliegen den Erfindung kann/können eine
oder mehrere Aktionen mit einem jeweiligen bedingten Ausdruckseintrag
assoziiert sein oder diesem entsprechen. Mit anderen Worten, jeder
einzelne der bedingten Ausdruckseinträge kann mit einer oder mehreren
vorprogrammierten Aktionen in der bedingten Ausdruckstabelle 30 assoziiert
sein oder dieser/diesen entsprechen. Somit kann jedes Aktionsfeld
in der bedingten Ausdruckstabelle 30 eine oder mehrere
Aktionen darin enthalten.
-
Des
Weiteren kann die bedingte Ausdruckstabelle 30 so konfiguriert
sein, dass sie wenigstens einen Null-Übereinstimmungs-Standard-Ausdruckseintrag
umfasst, der auch in die bedingte Ausdruckstabelle 30 vorprogrammiert
sein kann. Der Null-Übereinstimmungs-Standard-Ausdruckseintrag kann
zum Beispiel entweder ein Standardausdruck sein, der bei allen Bits
Nullen enthält,
kann ein vorprogrammierter Wert sein oder kann irgendeine Einrichtung
zur Identifizierung eines Null-Übereinstimmungs-Standardausdrucks
sein. Wie oben erwähnt worden
ist, kann die bedingte Ausdruckstabelle 30 eine Vielzahl
von vorprogrammierten Aktionen umfassen, die bei dem ankommenden
Paket ergriffen oder implementiert werden sollen. Demgemäß kann der
Null-Übereinstimmungs-Standard-Ausdruckseintrag
mit einer oder mehreren vorprogrammierten Standardaktion(en) in
der bedingten Ausdruckstabelle 30 assoziiert sein oder
dieser/diesen entsprechen.
-
Es
sei angemerkt, dass die bedingte Ausdruckstabelle 30 auch
so konfiguriert sein kann, dass sie keine Null-Übereinstimmungs-Standard-Ausdruckseinträge aufweist.
In einem Beispiel, bei dem die bedingte Ausdruckstabelle 30 keine
Null-Übereinstimmungs-Standard-Ausdruckseinträge enthält, kann
die vorliegende Erfindung eine oder mehrere feste vorprogrammierbare
Standard-Null-Übereinstimmungs-Aktion(en),
die bei einem Paket implementiert werden soll(en), in der Filterungslogik
der Filtervorrichtung bereitstellen. Alternativ dazu kann die vorliegende
Erfindung dann keine Standard-Null-Übereinstimmungs-Aktion bereitstellen, wenn
in der Filtervorrichtung eine Null-Übereinstimmungs-Bedingung vorliegt.
-
2 veranschaulicht
ein Beispiel eines Verfahrens zur Filterung ankommender Pakete gemäß der vorliegenden
Erfindung. Das Verfahren des vorliegenden Beispiels kann in Hardware
oder Software oder in einer Kombination von sowohl Hardware als
auch Software implementiert werden.
-
Ein
ankommendes Paket kann durch jeden Maskeneintrag in der Maskentabelle 10 maskiert werden.
Jeder Maskeneintrag kann vorprogrammiert werden, um irgendeine Bedingung,
die mit dem maskierten ankommenden Paket abgeglichen werden soll,
festzulegen. Somit kann das ankommende Paket durch jeden einzelnen
vorprogrammierten Maskeneintrag in der Maskentabelle 10 maskiert
werden, um festzustellen, ob eine Übereinstimmung oder eine Null-Übereinstimmung
der in den Maskeneinträgen vorprogrammierten
Bedingungen vorliegt.
-
Ferner
ist in 2 gezeigt, dass eine Übereinstimmungs-Bitmap 20 als
ein Resultat des Maskierens und des Abgleichens der ankommenden
Pakete in jedem der Maskeneinträge
in der Speicherungs- oder Speichereinheit festgelegt und/oder generiert
werden kann. Die Übereinstimmungs-Bitmap 20 kann
eine Bitlänge
aufweisen, die gleich der Anzahl der Maskeneinträge in der Maskentabelle 10 ist. Eine Übereinstimmung
in irgendeinem der vorprogrammierten Maskeneinträge darin kann die entsprechende
Bitposition der Übereinstimmungs-Bitmap 20 mit
einem ersten bedingten Flag wie etwa einem Bit 1 setzen. Andererseits
kann eine Null-Übereinstimmung
in irgendeinem der Maskeneinträge
darin die entsprechende Bitposition der Übereinstimmungs-Bitmap 20 mit
einem zweiten bedingten Flag wie etwa einem Bit 0 setzen. Deshalb
kann sich daraus ergeben, dass jede Bitposition entweder eine 1 oder
eine 0 in Abhängigkeit
davon aufweist, ob in dem entsprechenden Maskeneintrag jeweils eine Übereinstimmung
oder eine Null-Übereinstimmung vorliegt.
Entsprechend kann die Übereinstimmungs-Bitmap 20 in
der Speicherungs- oder Speichereinheit entweder eine Bitmap von
Einsen und/oder Nullen sein, wobei jede Bitposition einem jeweiligen
Maskeneintrag entspricht, der anzeigt, ob in der jeweiligen Maske
eine Übereinstimmung
oder eine Null-Übereinstimmung
vorliegt.
-
Alternativ
dazu kann die Übereinstimmungs-Bitmap 20 eine
Bitlänge
aufweisen, die kleiner als die Anzahl von Maskeneinträgen in der
Maskentabelle 10 ist. Zum Beispiel kann die Übereinstimmungs-Bitmap 20 auf
eine Bitlänge
komprimiert werden, die kleiner als die Anzahl von Maskeneinträgen ist,
indem eine Operation wie zum Beispiel eine UND-, ODER- oder eine
exklusive ODER-Operation der mehrfachen Maskeneinträge implementiert
wird, um eine Bitmap mit einer Einbitlänge zu erzielen. Zum Beispiel
kann eine Maskentabelle mit sechzehn Maskeneinträgen eine endgültige Übereinstimmungs-Bitmap
von 8 Bits in der Länge
aufweisen, indem eine UND-Operation bei den Übereinstimmungs-Bitmaps von
zwei benachbarten Maskeneinträgen
implementiert wird.
-
2 zeigt
auch das Verfahren, bei dem die Übereinstimmungs-Bitmap 20 an
eine bedingte Ausdruckstabelle 30 angelegt und in diese
indexiert werden kann. Wie oben erwähnt worden ist, kann die bedingte
Ausdruckstabelle 30 eine Vielzahl von vorprogrammierten
bedingten Ausdruckseinträgen,
einen Null-Übereinstimmungs-Standard-Ausdruckseintrag oder
sogar eine Vielzahl von Null-Übereinstimmungs-Standard-Ausdruckseinträgen und
eine Vielzahl von Aktionen darin umfassen. Wie oben ebenfalls angemerkt
worden ist, kann die bedingte Ausdruckstabelle 30 auch
so konfiguriert sein, dass sie überhaupt
keine Null-Übereinstimmungs-Standard-Ausdruckseinträge aufweist.
In einem Beispiel, bei dem die bedingte Ausdruckstabelle 30 keine Null-Übereinstimmungs-Standard-Ausdruckseinträge enthält, kann
die vorliegende Erfindung eine oder mehrere feste vorprogrammierbare
Standard-Null-Übereinstimmungs-Aktion(en),
die bei einem Paket implementiert werden soll(en), innerhalb der
Filterungslogik der Filtervorrichtung bereitstellen. Alternativ
dazu kann es sein, dass die vorliegende Erfindung keine Standard-Null-Übereinstimmungs-Aktion,
egal welcher Art, bereitstellt, wenn eine Null-Übereinstimmungs-Bedingung in
der Filtervorrichtung vorliegt.
-
Da
jeder bedingte Ausdruck zum Beispiel eine Zeichenkette von Nullen
und/oder Einsen mit einer Bitlänge
sein kann, die gleich der Bitlänge
der Übereinstimmungs-Bitmap 20 ist,
kann die Übereinstimmungs-Bitmap 20 an
die bedingte Ausdruckstabelle 30 angelegt und in diese
indexiert werden, um festzustellen, ob eine Übereinstimmung oder eine Null-Übereinstimmung
zwischen der Übereinstimmungs-Bitmap 20 und
irgendeinem der vorprogrammierten bedingten Ausdrücke vorliegt.
Deshalb kann bei der Festlegung und/oder Generierung einer Übereinstimmungs-Bitmap 20 auf
der Grundlage des Maskierens des ankommenden Pakets in der Maskentabelle 10 die
generierte Übereinstimmungs-Bitmap 20 an
die bedingte Ausdruckstabelle 30 angelegt und in diese
indexiert werden. Mit anderen Worten, die generierte Übereinstimmungs-Bitmap 20 kann
mit jedem bedingten Ausdruckseintrag verglichen werden, um festzustellen, ob
aus dem Vergleich eine Übereinstimmung
oder eine Null-Übereinstimmung
vorliegt.
-
Wenn
festgestellt wird, dass eine Übereinstimmung
vorliegt, wenn die Übereinstimmungs-Bitmap 20 an
die bedingte Ausdruckstabelle 30 angelegt und in diese
indexiert wird, dann kann wenigstens eine Aktion, die dem übereinstimmenden bedingten
Ausdruckseintrag entspricht, bei dem ankommenden Paket ausgeführt und/ oder
implementiert werden. Aber wenn beim Anlegen und Indexieren der Übereinstimmungs-Bitmap 20 in
die bedingte Ausdruckstabelle 30 festgestellt wird, dass
eine Null-Übereinstimmung
vorliegt, dann kann der Null-Übereinstimmungs-Standardausdruck
zusammen mit wenigstens einer entsprechenden Standardaktion identifiziert
oder/und in der bedingten Ausdruckstabelle 30 festgestellt
werden, falls er darin vorhanden ist, wodurch die jeweilige(n) Standard-Aktion(en)
nachfolgend bei dem ankommenden Paket implementiert werden kann/können. Aber
wenn der Null-Übereinstimmungs-Standardausdruck
zusammen mit wenigstens einer jeweiligen Standard-Aktion nicht in
der bedingten Ausdruckstabelle 30 programmiert ist, dann
kann ein Beispiel der vorliegenden Erfindung eine oder mehrere feste
vorprogrammierbare Standard-Null-Übereinstimmungs-Aktion(en)
in der Filterungslogik der Filtervorrichtung bei einem Paket implementieren.
Alternativ dazu kann die vorliegende Erfindung keine Standard-Null-Übereinstimmungs-Aktion,
egal welcher Art, implementieren, wenn in der Filtervorrichtung
eine Null-Übereinstimmungs-Bedingung
vorliegt.
-
3 veranschaulicht
ein weiteres Beispiel der vorliegenden Erfindung und wird nicht
bereitgestellt, um ihren Schutzbereich und ihr Wesen auf irgendeine
Art oder Weise einzuschränken. 3 ist eine
Hardware-Konfiguration der Erfindung und kann in einer integrierten,
modularen und Einzelchip-Lösung
vorliegen und kann auf einem Halbleitersubstrat wie etwa Silizium
verwirklicht werden.
-
3 zeigt
eine IMASK-Tabelle 40, eine Speicherungs- oder Speichereinheit,
die so konfiguriert ist, dass sie eine Übereinstimmungs-Bitmap 50 speichern
kann, und eine bedingte Ausdruckstabelle 60. Die IMASK-Tabelle 40 weist
16 IMASK-Einträge auf,
die von IMASK 0 bis IMASK 15 reichen. Jeder IMASK-Eintrag ist mit
einer oder mehreren Filterungs- und Maskierbedingung(en) vorprogrammiert. Wenn
man die Parameter voraussetzt, die in der IMASK-Tabelle 40 bereitgestellt
sind, dann ist die Übereinstimmungs-Bitmap 50,
die in der Speicherungs- oder Speichereinheit gespeichert ist, eine Map
mit einer Länge
von 16 Bit.
-
Die
bedingte Ausdruckstabelle 60, wie sie in 3 gezeigt
ist, weist acht (8) vorprogrammierte bedingte Ausdruckseinträge mit entsprechenden
Aktionseinträgen
auf. Da die Anzahl an bedingten Ausdruckseinträgen in der bedingten Ausdruckstabelle 60 keine
abhängige
Beziehung zu der Anzahl an IMASK-Einträgen in der IMASK-Tabelle 40 aufweist, sind
acht (8) bedingte Ausdruckseinträge
in der bedingten Ausdruckstabelle 60 mit wenigstens einer Aktion
vorprogrammiert, die jedem bedingten Ausdruckseintrag entspricht.
-
Des
Weiteren umfasst die bedingte Ausdruckstabelle 60 einen
vorprogrammierten Null-Übereinstimmungs-Standard-Ausdruckseintrag.
Der Null-Übereinstimmungs-Standard-Ausdruckseintrag,
wie er in 3 gezeigt ist, zeigt einen Null-Übereinstimmungs-Standardausdruck
zusammen mit einer Vielzahl von vorprogrammierten Standardaktionen
an, die bei dem ankommenden Paket ergriffen oder implementiert werden
sollen, wenn festgestellt wird, dass eine Null-Übereinstimmung zwischen der Übereinstimmungs-Bitmap 50 und
irgendeinem der bedingten Ausdrücke
in der bedingten Ausdruckstabelle 60 vorliegt.
-
Deshalb
basiert bei diesem Beispiel ein Verfahren zur Filterung eines ankommenden
Pakets auf den folgenden Bedingungen:
Wenn (x && y && Z, dann{Aktion(en)
ausführen};
Sonst,
wenn (x && v), dann {Aktion(en)
ausführen};
Sonst,
wenn (x && w), dann {Aktion(en)
ausführen};
Sonst
{Null-Übereinstimmungs-Standard
Aktion(en)}.
-
x,
y, v, w und z repräsentieren
unterschiedliche Paketbedingungen wie folgt:
Bedingung x =
Paket mit Quell-MAC-Adresse von 20.46.72.00.00.88;
Bedingung
y = Ipv4-Paket mit IGMP-Nutzlast;
Bedingung z = IGMP-Typ ist
DVMRP;
Bedingung v = UDP-Nutzlast und UDP-Port Nr. 0 × 4000;
und
Bedingung w = TCP-Nutzlast und TCP-Port Nr. 0 × 8080.
-
Außerdem ist
IMASK 0 mit der Bedingung x vorprogrammiert, IMASK 1 ist mit der
Bedingung y vorprogrammiert, IMASK 2 ist mit der Bedingung z vorprogrammiert,
IMASK 3 ist mit der Bedingung v vorprogrammiert, und IMASK 4 ist
mit der Bedingung w vorprogrammiert. Es sei angemerkt, dass, obwohl bei
diesem Beispiel jede IMASK mit nur einer Bedingung vorprogrammiert
ist, gemäß der vorliegenden Erfindung
jede IMASK auch mit einer Vielzahl von Bedingungen darin vorprogrammiert
sein kann.
-
Folglich
wird ein ankommendes Paket durch jeden einzelnen IMASK-Eintrag (IMASK
0–IMASK 15)
in der IMASK-Tabelle 40 maskiert. Bei der Maskierung des
ankommenden Pakets stellt das vorliegende Beispiel fest, welcher
IMASK-Eintrag eine exakte Übereinstimmung
der Filterungsbedingung(en) in Bezug auf das ankommende Paket aufweist.
(Die IMASK-Einträge
können
so vorprogrammiert sein, dass sie eine Teilbit-Übereinstimmung durchführen). Es
wird in diesem Beispiel ermittelt, dass das Vorliegen einer vollständigen oder
exakten Übereinstimmung
des ankommenden Pakets in IMASK 0, IMASK 1 und IMASK 2 identifiziert
wird oder/und festgestellt wird. Deshalb wird die Übereinstimmungs-Bitmap 50 wie
folgt festgelegt und generiert:
Übereinstimmungs-Bitmap = 0000000000000111
= 0 × 0007.
-
Diese Übereinstimmungs-Bitmap
von 0 × 0007
wird danach an die bedingte Ausdruckstabelle 60 angelegt
und in diese indexiert. Das vorliegende Beispiel stellt fest, dass
eine Übereinstimmung
in dem ersten bedingten Ausdruckseintrag besteht, der auch den bedingten
Ausdruck von 0 × 0007
aufweist (wenn IMASK 0 && IMASK 1 && IMASK 2). Da
bei der Indexierung der Übereinstimmungs-Bitmap 50 festgestellt
wurde, dass eine Übereinstimmung
in dem ersten bedingten Ausdruckseintrag besteht, wird/werden die
entsprechende(n) Aktion(en) bei dem ankommenden Paket implementiert.
-
Es
sei bei dem Beispiel, das in 3 gezeigt ist,
angenommen, dass der erste bedingte Ausdruck so konfiguriert ist,
dass er eher 0 × 0006
als 0 × 0007 ist.
Wenn man dann den gleichen Parametern folgt, die in dem in 3 gezeigten
Beispiel bereitgestellt werden, dann wird die Übereinstimmungs-Bitmap von
0 × 0007
an die bedingte Ausdruckstabelle 60 angelegt und in diese
indexiert, wodurch festgestellt wird, dass eine Null-Übereinstimmung
für die Übereinstimmungs-Bitmap
von 0 × 0007
in irgendeinem der bedingten Ausdruckseinträge vorliegt. Entsprechend wird
der Null-Übereinstimmungs-Standard-Ausdruck
identifiziert oder festgestellt, und die entsprechende(n) Standard-Aktion(en)
wird/werden bei dem ankommenden Paket implementiert.
-
Gemäß der vorliegenden
Erfindung kann das Verfahren zur und die Vorrichtung zur Filterung
eines Pakets eine Aktion/Aktionen bei dem ankommenden Paket in einer
Anzahl von Arten und Weisen implementieren.
-
4 veranschaulicht
ein Beispiel einer Regeltabelle 70, die so konfiguriert
sein kann, dass sie eine Vielzahl von Regelwerten und eine Vielzahl
von Aktionen (einschließlich
Standard-Aktion(en)) zum Implementieren bei einem ankommenden Paket speichern
kann. Jeder Regelwert kann wenigstens einer Aktion entsprechen.
Die Regeltabelle 70 der 4 ist ein
Beispiel einer Hardware-Konfiguration, die auf einem Halbleitersubstrat
wie etwa Silizium verwirklicht werden kann. Wie in 1 veranschaulicht
ist, kann die bedingte Ausdruckstabelle 30 eine Vielzahl
von bedingten Ausdruckseinträgen,
einen Null-Übereinstimmungs-Standard-Ausdruckseintrag zusammen
mit einer Vielzahl von entsprechenden Aktion(en) (einschließlich Standardaktion(en))
enthalten. Anstatt die Vielzahl der entsprechenden Aktionen in der
bedingten Ausdruckstabelle 30 zu speichern, kann auf die
Regeltabelle 70, wie sie in 4 gezeigt
ist, zugegriffen werden, um wenigstens eine Aktion bei dem ankommenden
Paket durchzuführen oder
zu implementieren, wobei eine oder mehrere dieser Aktion(en) in
der Regeltabelle 70 gespeichert ist/sind.
-
In
einem Beispiel kann die Regeltabelle 70 identifiziert werden
und kann auf diese zugegriffen werden, um eine Vielzahl von vorprogrammierten
Aktionen zu implementieren, die darin gespeichert sind, wenn eine Übereinstimmung
zwischen der Übereinstimmungs-Bitmap
und irgendeinem der bedingten Ausdruckseinträge vorliegt. Mit anderen Worten,
ein ankommendes Paket kann durch jeden Maskeneintrag in der Maskentabelle 10 von 1 maskiert
werden. Jeder Maskeneintrag kann vorprogrammiert werden, um jede
Bedingung festzulegen, die mit dem maskierten ankommenden Paket
abgeglichen werden soll. Somit kann das ankommende Paket durch jeden
einzelnen vorprogrammierten Maskeneintrag in der Maskentabelle 10 maskiert
werden, um festzustellen, ob eine Übereinstimmung oder eine Null-Übereinstimmung der in den Maskeneinträgen vorprogrammierten
Bedingungen vorliegt.
-
Danach
kann eine Übereinstimmungs-Bitmap 20,
wie sie in 1 gezeigt ist, als eine Folge
des Maskierens und Abgleichens der ankommenden Pakete in jedem der
Maskeneinträge
in der Speicherungs- oder Speichereinheit festgelegt und/oder generiert
werden. Die Übereinstimmungs-Bitmap 20 in
der Speicherungs- oder Speichereinheit kann entweder eine Bitmap
von Einsen und/oder Nullen sein, wobei jede Bitposition einem jeweiligen
Maskeneintrag entspricht und diese anzeigt, ob in der jeweiligen
Maske eine Übereinstimmung
oder eine Null-Übereinstimmung
vorliegt.
-
Die Übereinstimmungs-Bitmap 20 kann
an eine bedingte Ausdruckstabelle 30 angelegt und in diese
indexiert werden. Wie oben erwähnt
worden ist, kann die bedingte Ausdruckstabelle 30 eine
Vielzahl von vorprogrammierten bedingten Ausdruckseinträgen umfassen.
Des Weiteren kann die bedingte Ausdruckstabelle 30 eine
Vielzahl von Regelzeigern 95 umfassen, wie sie in 6 gezeigt
sind. Mit anderen Worten, anstatt eine Vielzahl von Aktionsfeldern
in der bedingten Ausdruckstabelle 30 zu haben, werden die
Aktionen in der Regeltabelle 70 spezifiziert, und die Regelzeiger 95 in
der bedingten Ausdruckstabelle 30 zeigen auf den gewünschten
Regeleintrag in der Regeltabelle 70.
-
Deshalb
kann in einem Beispiel der Integration der Regeltabelle 70 die Übereinstimmungs-Bitmap
identifiziert oder festgestellt und in die bedingte Ausdruckstabelle
indexiert werden. Beim Anlegen und Indexieren der Übereinstimmungs-Bitmap
an bzw. in die bedingte Ausdruckstabelle kann dann, wenn festgestellt
wird, dass eine Übereinstimmung
zwischen der Übereinstimmungs-Bitmap
und irgendeinem der bedingten Ausdruckseinträge in der bedingten Ausdruckstabelle vorliegt,
der entsprechende Regelzeiger 95 identifiziert werden.
Der Regelzeiger 95 zeigt dann auf einen entsprechenden
Regeltabelleneintrag, wobei wenigstens eine entsprechende Aktion
in der Regeltabelle 70 identifiziert oder festgestellt
werden kann. Danach kann/können
die identifizierte(n) oder festgestellte(n) Aktion(en) in der Regeltabelle 70 bei
dem ankommenden Paket ausgeführt
und/oder implementiert werden.
-
In
einem anderen Beispiel kann die Regeltabelle 70 identifiziert
werden und es kann auf diese zugegriffen werden, um wenigstens eine
vorprogrammierte Standardaktion zu implementieren, die darin gespeichert
ist, wenn eine Null-Übereinstimmung zwischen
der Übereinstimmungs-Bitmap
und irgendeinem der entsprechenden Ausdruckseinträge vorliegt.
Mit anderen Worten, anstatt die Standardaktionen in der bedingten
Ausdruckstabelle 30 zu speichern, können die Standardaktionen in
der Regeltabelle 70 gespeichert werden. Deshalb kann in
einem anderen Beispiel der Integration der Regeltabelle 70 die Übereinstimmungs-Bitmap
generiert werden und an die bedingte Ausdruckstabelle angelegt und
in diese indexiert werden. Wenn festgestellt wird, dass eine Null-Übereinstimmung
zwischen der Übereinstimmungs-Bitmap und irgendeinem
der bedingten Ausdruckseinträge
in der bedingten Aus druckstabelle vorliegt, dann kann der entsprechende
Regelzeiger 95 in Bezug auf den Null-Übereinstimmungs-Standardausdruck
identifiziert werden. Der Regelzeiger 95 zeigt dann auf
einen entsprechenden Regeltabelleneintrag, wobei wenigstens eine
entsprechende Aktion in der Regeltabelle 70 identifiziert oder
festgestellt werden kann.
-
In
einem anderen Beispiel kann die vorliegende Erfindung die Regeltabelle 70 identifizieren und
kann auf diese zugreifen, indem sie wenigstens ein Standardaktionsbit
in dem Standardaktionsfeld der bedingten Ausdruckstabelle 30 aufweist.
Das Standardaktionsbit kann eine Aktion spezifizieren, um die Regeltabelle 70 abzurufen,
und kann die Standardaktion(en) spezifizieren, die implementiert werden
soll(en). Danach kann/können
die festgelegte(n) Standardaktion(en) in der Regeltabelle 70 bei dem
ankommenden Paket ausgeführt
und/oder implementiert werden.
-
Wie
oben erwähnt
worden ist, kann die Regeltabelle 70 von 4 eine
Vielzahl von Aktionen umfassen, die die entsprechenden bedingten
Ausdrucksaktionen und/oder Standardaktionen umfassen können. Auf
die Regeltabelle 70 der vorliegenden Erfindung kann daher
nur zugegriffen werden, um die bedingten Ausdrucksaktionen zu implementieren,
oder nur um die Standardaktionen zu implementieren, oder es kann
darauf mit einer Kombination aus beiden zugegriffen werden. Außerdem kann das
Verfahren zur Filterung eines Pakets, das die Regeltabelle 70 verwendet,
in Hardware oder Software oder in einer Kombination von sowohl Hardware
als auch Software implementiert werden.
-
5 veranschaulicht
ein weiteres Ausführungsbeispiel
der vorliegenden Erfindung. 5 zeigt
eine Hardware-Konfiguration einer bedingten Ausdruckstabelle 80,
die so konfiguriert sein kann, dass sie eine Vielzahl von bedingten
Ausdruckseinträgen 83 und
eine Vielzahl von Aktions-Bitmaps 85 darin umfassen kann,
wobei die Aktions-Bitmaps 85 eine oder mehrere gewünschte Aktion(en)
identifizieren oder zuordnen können.
Die bedingten Ausdruckseinträge 83 können in
einem Halbleitersubstrat implementiert werden und können einen
vorprogrammierten Standardausdruck sowie auch andere vorprogrammierte
bedingte Ausdrücke
darin umfassen.
-
Jede
Aktions-Bitmap 85 kann von jeder beliebigen Bitlänge sein.
Jedes Bit in der Aktions-Bitmap 85 kann eine vorbestimmte
Aktion repräsentieren,
die bei dem ankommenden Paket implementiert werden soll. Zum Beispiel
kann eine Bitposition Null einer Aktions-Bitmap 85 spezifizieren,
ob ein Paket zu der CPU (Zentraleinheit) gesendet werden kann. Deshalb
kann dann, wenn die Bitposition Null der Aktions-Bitmap 85 auf einen binären Wert
von "1" gesetzt wird, das
Paket zu der CPU gesendet werden. Alternativ dazu kann dann, wenn
die Bitposition Null der Aktions-Bitmap 85 auf einen binären Wert von "0" gesetzt wird, das Paket nicht zu der
CPU gesendet werden. In ähnlicher
Weise kann die Bitposition Eins einer Aktions-Bitmap 85 spezifizieren,
ob ein Paket fallengelassen werden kann. So kann dann, wenn die
Bitposition Eins der Aktions-Bitmap 85 auf einen binären Wert
von "1" gesetzt wird, das
Paket fallengelassen werden; und wenn die Bitposition Eins auf einen
binären
Wert von "0" gesetzt wird, dann kann
das Paket nicht fallengelassen werden. Darüber hinaus kann eine Bitposition
Zwei einer Aktions-Bitmap 85 spezifizieren, ob ein Paket
auf eine höhere
Dienstklassenwarteschlangen-Priorität (COSQ priority) in einer
Netzwerkvorrichtung gesetzt werden kann. Wenn die Bitposition Zwei
der Aktions-Bitmap 85 auf
einen binären
Wert von "1" gesetzt wird, dann
kann das Paket auf eine höhere
Dienstklassenwarteschlangen-Priorität in der Netzwerkvorrichtung
gesetzt werden, anderenfalls kann die Original-Dienstklassenwarteschlangen-Priorität des Pakets
gleich bleiben. Es sei angemerkt, dass die spezifizierten Aktionen,
die den Bitpositionen der Aktions-Bitmap 85 entsprechen,
einander widersprechen können,
wodurch eine "Kollision" von widersprüchlichen
Aktionen vorgesehen wird. Aber die vorliegende Erfindung kann ein
System zum Organisieren der Aktionen in Bezug auf ihre Priorität bereitstellen,
wobei bestimmte Aktion(en) während
eines Konflikts Vorrang vor anderen Aktion(en) haben können. Wenn
zum Beispiel die Bitposition Null und die Bitposition Eins beide
auf "1" gesetzt sind, dann
kann die Aktion, die der Bitposition Eins entspricht, so vorprogrammiert
werden, dass sie sich über
die Aktion, die der Bitposition Null entspricht, hinwegsetzt oder
dieser gegenüber
Vorrang hat, und deshalb wird das Paket gegenüber dem Paket, das wie bei
dem obigen Beispiel zu der CPU gesendet wird, fallengelassen.
-
In
einem anderen Ausführungsbeispiel
zeigt 5 eine Hardware-Konfiguration einer bedingten Ausdruckstabelle 80,
die so konfiguriert sein kann, dass sie eine Vielzahl von bedingten
Ausdruckseinträgen 83 und
eine Vielzahl von Aktions-Bitmaps 85 darin
umfasst, wobei jede Aktions-Bitmap 85 einen Aktionsausführungs-Opcode enthalten
kann. Zum Beispiel kann die Aktions-Bitmap 85 eine Map
mit einer "y"-Bit-Länge sein,
wobei "y" jeden beliebigen Wert
repräsentieren
kann. Demgemäß kann jede
Aktions-Bitmap 85 2y Möglichkeiten
von Opcodes aufweisen, und deshalb kann sie eine maximale Flexibilität im Hinblick
auf die Implementierung der Aktion(en) bei dem ankommenden Paket
bereitstellen.
-
Zum
Beispiel kann eine Übereinstimmungs-Bitmap 20 generiert
und anschließend
an die bedingte Ausdruckstabelle 80 angelegt oder in diese indexiert
werden. Die Übereinstimmungs-Bitmap 20 kann
mit jedem einzelnen bedingten Ausdruckseintrag, der in der bedingten
Ausdruckstabelle 80 gespeichert ist, verglichen werden,
um festzustellen, ob eine Übereinstimmung
oder eine Null-Übereinstimmung
vorliegt. Wenn eine Übereinstimmung
zwischen der Übereinstimmungs-Bitmap 20 und
irgendeinem der bedingten Ausdruckseinträge 83 vorliegt, dann
kann eine entsprechende Aktions-Bitmap 85 festgelegt oder
identifiziert werden. Danach kann die festgelegte oder identifizierte
Aktions-Bitmap 85 eine Aktion oder mehrere gewünschte Aktionen
bei dem Paket spezifizieren oder identifizieren. Es sei angemerkt,
dass das Verfahren zur Filterung eines Pakets, das die Aktions-Bitmap 85 verwendet,
in Hardware oder Software oder in einer Kombination aus sowohl Hardware
als auch Software implementiert werden kann.
-
6 veranschaulicht
ein weiteres Beispiel der vorliegenden Erfindung. 6 zeigt
eine Hardware-Konfiguration einer bedingten Ausdruckstabelle 90,
die so konfiguriert sein kann, dass sie eine Vielzahl von bedingten
Ausdruckseinträgen 93 und
eine Vielzahl von Zeigern 95 umfassen kann. Die bedingte Ausdruckstabelle 90 kann
auf einem Halbleitersubstrat wie etwa Silizium verwirklicht werden.
Die bedingte Ausdruckstabelle 93 kann einen vorprogrammierten
Standardausdruck sowie auch andere vorprogrammierte bedingte Ausdrücke darin
enthalten. Die Zeiger 95 können Adresszeiger sein, die
wenigstens eine Aktion (es können
auch mehr als eine Aktion sein) in einer Aktionstabelle identifizieren
oder auf diese zeigen können.
-
7 veranschaulicht
eine Hardware-Konfiguration einer Aktionstabelle 100 gemäß einem
anderen Ausführungsbeispiel
der vorliegenden Erfindung. Die Aktionstabelle 100 kann
so konfiguriert sein, dass sie eine Vielzahl von Aktionen, einschließlich Standardaktion(en),
zur Implementierung bei einem ankommenden Paket speichert. Die Aktionstabelle 100 kann
in einer integrierten, modularen oder Einzelchip-Lösung implementiert
werden. Mit anderen Worten, anstatt die vorprogrammierten Aktionen in
der bedingten Ausdruckstabelle zu speichern, stellen die 6 und 7 ein
Beispiel einer bedingten Ausdruckstabelle 90 bereit, die
so konfiguriert ist, dass sie eine Vielzahl von Zeigern 95 darin
speichert, wobei die Zeiger 95 auf wenigstens eine gewünschte Aktion,
die in einer Aktionstabelle 100 gespeichert ist, zur Implementierung
bei einem ankommenden Paket zeigen oder diese identifizieren können.
-
So
kann zum Beispiel eine Übereinstimmungs-Bitmap 20 generiert
werden und anschließend
an die bedingte Ausdruckstabelle 80 angelegt oder in diese
indexiert werden. Die Übereinstimmungs-Bitmap 20 kann
mit jedem einzelnen bedingten Ausdruckseintrag verglichen werden,
der in der bedingten Ausdruckstabelle 90 gespeichert ist,
um festzustellen, ob eine Übereinstimmung
oder eine Null-Übereinstimmung
vorliegt. Wenn eine Übereinstimmung
zwischen der Übereinstimmungs-Bitmap 20 und
irgendeinem der bedingten Ausdruckseinträge 93 vorliegt, dann
kann ein entsprechender Zeiger 95 bestimmt oder identifiziert
werden. Danach kann der festgestellte Zeiger 95 auf wenigstens
eine gewünschte
Aktion, die bei dem ankommenden Paket implementiert werden soll,
in der Aktionstabelle 100 zeigen oder diese identifizieren.
Es sei angemerkt, dass das Verfahren zur Filterung eines Pakets,
das Zeiger 95 verwendet, in Hardware oder Software oder
in einer Kombination aus sowohl Hardware als auch Software implementiert
werden kann.
-
Wie
oben erwähnt
worden ist, kann die Aktionstabelle 100 von 7 so
konfiguriert sein, dass sie eine Vielzahl von Aktionen umfasst,
die entsprechende bedingte Ausdrucksaktionen und/oder Standardaktionen
umfassen können.
Auf die Aktionstabelle 100 kann deshalb einzig und allein
zur Implementierung der bedingten Ausdrucksaktionen oder einzig
und allein zur Implementierung der Standardaktionen zugegriffen
werden, oder es kann auf diese mit einer Kombination aus beiden
zugegriffen werden. In ähnlicher
Weise wie bei den anderen hier diskutierten Verfahren kann das Verfahren
zur Filterung eines Pakets unter Verwendung der Aktionstabelle 100 in
Hardware oder Software oder in einer Kombination aus sowohl Hardware
als auch Software implementiert werden.
-
Zusätzlich zu
dem Verfahren zur und der Vorrichtung zur Filterung eines Pakets
auf der Grundlage einer Bedingung einer exakten Übereinstimmung oder einer Teilbit-Übereinstimmung
kann die vorliegende Erfindung auch einen Untermengen-Abgleich durchführen.
-
8 veranschaulicht
ein Beispiel einer anderen Hardware-Konfiguration, die die Paketfilterung mit
Untermengen-Abgleich-Funktionen durchführen kann. Die Konfiguration
in 8 zeigt eine Maskentabelle 110 und eine
Speicherungs- oder Speichereinheit, die so konfiguriert ist, dass
sie eine Übereinstimmungs-Bitmap 120 speichert,
die der Maskentabelle 10 und der Übereinstimmungs-Bitmap 20 ähnlich sein
können,
die oben in Bezug auf 1 beschrieben worden sind. 8 umfasst
auch eine bedingte Ausdruckstabelle 130, die neben anderen
Einträgen,
die in Bezug auf 1 diskutiert worden sind, wenigstens
einen Untermengen-Maskeneintrag 133 mit entsprechenden
Untermengen-Aktionen darin enthalten kann. Die Maskentabelle 110,
die Speicherungseinheit und die bedingte Ausdruckstabelle 130, die
den Untermengen-Maskeneintrag 133 aufweist, können auf
einem Halbleitersubstrat wie etwa Silizium verwirklicht werden.
-
Es
sei angemerkt, dass die bedingte Ausdruckstabelle 130 auch
so konfiguriert sein kann, dass sie keine Null-Übereinstimmungs-Ausdruckseinträge aufweist.
In einem Beispiel, bei dem die bedingte Ausdruckstabelle 130 keine
Null-Übereinstimmungs-Ausdruckseinträge enthält, kann
die vorliegende Erfindung einen oder mehrere feste vorprogrammierte
Standard-Null-Übereinstimmungs-Aktion(en),
die bei einem Paket implementiert werden soll(en), in der Filterungslogik
der Filtervorrichtung bereitstellen. Alternativ dazu kann die vorliegende Erfindung
keine Standard-Null-Übereinstimmungsaktion
bereitstellen, wenn in der Filtervorrichtung eine Null-Übereinstimmungs-Bedingung
vorliegt.
-
Der
Untermengen-Maskeneintrag 133 kann so konfiguriert sein,
dass er eine Filtermaske zur Maskierung der Übereinstimmungs-Bitmap 120 auf der
Grundlage von programmierbaren Bedingungen sein kann. Deshalb kann
der Untermengen-Maskeneintrag 133 mit
Bedingungen zur Filterung oder Maskierung der Übereinstimmungs-Bitmap 120 vorprogrammiert
werden.
-
9 veranschaulicht
ein anderes Beispiel eines Verfahrens zur Filterung ankommender
Pakete gemäß der vorliegenden
Erfindung. Es sei angemerkt, dass das Verfahren dieses Beispiels
in Hardware oder Software oder in einer Kombination aus sowohl Hardware
als auch Software implementiert werden kann. Ein ankommendes Paket
kann durch die Maskentabelle 110 maskiert werden, und eine Übereinstimmungs-Bitmap 120 kann
als eine Folge des Maskierens und des Abgleichens der ankommenden
Pakete in jedem der Maskeneinträge
in ähnlicher
Weise wie bei der Diskussion oben in Bezug auf 2 generiert
werden. Die Übereinstimmungs-Bitmap 120 kann
an die bedingte Ausdruckstabelle 130 angelegt oder in diese
indexiert werden. (Siehe 2). In einem Beispiel kann die Übereinstimmungs-Bitmap 120 indexiert
werden und zuerst mit den bedingten Ausdruckseinträgen 131 verglichen
werden, um festzustellen, ob eine Übereinstimmung oder eine Null-Übereinstimmung
zwischen der Übereinstimmungs-Bitmap 120 und
irgendeinem der bedingten Ausdruckseinträge 131 vorliegt. Wenn festgestellt
wird, dass eine Übereinstimmung
vorliegt, dann kann die vorliegende Erfindung die spezifizierten
entsprechenden Aktion(en) auf die Arten und Weisen implementieren,
die oben besprochen worden sind. Aber wenn festgestellt wird, dass
eine Null-Übereinstimmung
zwischen der Übereinstimmungs-Bitmap 120 und
irgendeinem der bedingten Ausdruckseinträge 131 vorliegt, dann
kann die Übereinstimmungs-Bitmap 120 durch
wenigstens eine der Untermengen-Masken 133 maskiert werden,
um weiter zu bestimmen, ob eine Untermengen-Übereinstimmung oder Untermengen-Null-Übereinstimmung der
maskierten Übereinstimmungs-Bitmap
in der Untermengen-Maske 133 vorliegt. Wenn festgestellt wird,
dass eine Übereinstimmung
vorliegt, dann kann wenigstens eine Aktion, die der übereinstimmenden Untermengen-Maske 133 entspricht,
bei dem ankommenden Paket ausgeführt
und/oder implementiert werden.
-
Andererseits
kann dann, wenn festgestellt wird, dass eine Null-Übereinstimmung
der maskierten Übereinstimmungs-Bitmap
in der Untermengen-Maske 133 vorliegt, der Null-Übereinstimmungs-Standardausdruck
zusammen mit wenigstens einer Aktion, die dem Null-Übereinstimmungs-Standardausdruck
entspricht, in der bedingten Ausdruckstabelle 130, falls
darin vorhanden, festgelegt oder identifiziert werden. Danach kann
wenigstens eine Standardaktion bei dem ankommenden Paket implementiert
werden, wenn eine Null-Übereinstimmung
zwischen der Übereinstimmungs-Bitmap 120 und
irgendeinem der bedingten Ausdruckseinträge in den bedingten Ausdruckstabelleneinträgen 131 vorliegt
und wenn eine Null-Übereinstimmung
der maskierten Übereinstimmungs-Bitmap
in der Untermengen-Maske 133 vorliegt. Aber wenn der Null-Übereinstimmungs-Standardausdruck
zusammen mit wenigstens einer entsprechenden Standardaktion nicht
in der bedingten Ausdruckstabelle 130 programmiert ist,
dann kann ein Beispiel der vorliegenden Erfindung bei einem Paket
eine oder mehrere feste vorprogrammierbare Standard-Null-Übereinstimmungs-Aktion(en)
in der Filterungslogik der Filtervorrichtung implementieren. Alternativ
dazu kann die vorliegende Erfindung keine Standard-Null-Übereinstimmungs-Aktion
implementieren, egal welcher Art, wenn eine Null-Übereinstimmungs-Bedingung
in der Filtervorrichtung vorliegt.
-
Obwohl 8 unter
anderem die bedingte Ausdruckstabelle 130 umfassen kann,
wie sie in der Figur dargelegt ist, kann das vorliegende Ausführungsbeispiel
auch andere Ausführungsbeispiele
zur Implementierung von bedingten Ausdrucksaktion(en) und Null-Übereinstimmungs-Standardaktion(en)
bei den ankommenden Paketen aufnehmen und integrieren, wie dies
hier diskutiert worden ist.
-
Die
oben offenbarten Konfigurationen der vorliegenden Erfindung können in
einer integrierten, modularen und Einzelchip-Lösung vorliegen und können auf
einem Halbleitersubstrat wie etwa Silizium verwirklicht werden.
Außerdem
können
die Verfahren zur Filterung eines Pakets, wie sie hier offenbart
worden sind, in Hardware oder Software oder in einer Kombination
aus sowohl Hardware als auch Software implementiert werden. Des
weiteren wäre ein
Fachmann auf dem Gebiet in Bezug auf Halbleiterdesign und Halbleiterherstellung
in der Lage, die verschiedenen Elemente und Verfahren der vorliegenden
Erfindung auf der Grundlage der oben diskutierten architektonischen
Beschreibung auf einem einzigen Halbleitersubstrat zu implementieren.
-
Einem
Durchschnittsfachmann auf diesem Gebiet wird es klar sein, dass
die Erfindung, wie sie oben diskutiert worden ist, mit Schritten
in einer anderen Reihenfolge und/oder mit Hardware-Elementen in
Konfigurationen praktisch umgesetzt werden kann, die sich von denen,
die offenbart wurden, unterscheiden. Deshalb wäre es den Fachleuten auf diesem
Gebiet, obwohl die Erfindung auf der Grundlage dieser bevorzugten
Ausführungsbeispiele
beschrieben worden ist, ohne weiteres erkennbar, dass verschiedene
Modifikationen, Variationen und alternative Konstruktionen offensichtlich
wären und
trotzdem innerhalb des Schutzbereichs der Erfindung bleiben würden. Um
die Grenzen der Erfindung zu bestimmen, wird hier deshalb Bezug
auf die angehängten
Ansprüche
genommen.