A packet filter for a router performs generalized packet filtering allowing
range matches in two dimensions, where ranges in one dimension at least
one dimension is defined as a power of two. To associate a filter rule
with a received packet EP, the packet filter employs a 2-dimensional
interval search and memory look-up with the filter-rule table. Values of
s.sub.m of filter-rule r.sub.m =(s.sub.m,d.sub.m) in one dimension are
desirably ranges that are a power of two, such as prefix ranges, which are
represented by a binary value having a "length" defined as the number of
bits to of the prefix. The d.sub.m may be single points, ranges defined as
prefix ranges, and/or ranges defined as continuous ranges. The packet
filter employs preprocessing of the filter-rules based on prefix length as
a power of 2 in one dimension and decomposition of overlapping segments
into non-overlapping intervals in the other dimension to form the
filter-rule table. A preprocessing algorithm searches in one dimension
through filter rules and arranges the corresponding filter-rule rectangle
segments according to prefix length. Then, in the other dimension, the
overlapping filter rectangle segments are decomposed into non-overlapping
intervals, and the highest priority filter-rule overlapping each
non-overlapping interval is associated with that interval. A filter-rule
table is then constructed with entries ordered according to prefix length
and non-overlapping interval, each entry associated with a particular
filter-rule. A packet classification algorithm then matches the field or
other parameter information in the packet to the filter-rule table entries
to identify the filter-rule rectangle associated with the filter-rule to
be applied to the packet.
Un filtro del paquete para una rebajadora realiza el paquete generalizado que se filtra permitiendo fósforos de la gama en dos dimensiones, donde las gamas en una dimensión por lo menos una dimensión se definen como energía de dos. Para asociar una regla del filtro a un EP recibido del paquete, el filtro del paquete emplea un look-up de 2 dimensiones de la búsqueda y de la memoria del intervalo con la tabla de la filtro-regla. Los valores de s.sub.m de la filtro-regla r.sub.m = (s.sub.m, d.sub.m) en una dimensión son las gamas que son una energía de dos, tales como prefijo se extienden deseable, que son representadas por un valor binario que tiene una "longitud" definida como el número de pedacitos del prefijo. El d.sub.m puede ser solos puntos, gamas definidas como gamas del prefijo, y/o gamas definidas como gamas continuas. El filtro del paquete emplea el proceso previo de las filtro-reglas basadas en longitud del prefijo como una energía de 2 en una dimensión y descomposición de segmentos traslapados en intervalos sin traslapo en la otra dimensión de formar la tabla de la filtro-regla. Un algoritmo del proceso previo busca en una dimensión con reglas del filtro y arregla los segmentos correspondientes del rectángulo de la filtro-regla según longitud del prefijo. Entonces, en la otra dimensión, los segmentos traslapados del rectángulo del filtro se descomponen en intervalos sin traslapo, y la filtro-regla de la prioridad más alta que traslapa cada intervalo sin traslapo se asocia a ese intervalo. Una tabla de la filtro-regla entonces se construye con las entradas pedidas según la longitud y el intervalo sin traslapo, cada entrada del prefijo asociada a una filtro-regla particular. Un algoritmo de la clasificación del paquete entonces empareja el campo o la otra información del parámetro en el paquete a las entradas de la tabla de la filtro-regla para identificar el rectángulo de la filtro-regla asociado a la filtro-regla que se aplicará al paquete.