Escritura del filtro PATTERNMATCH
El filtro de coincidencia de patrones notifica al controlador que acepte fotogramas que tengan un patrón específico en un desplazamiento específico. Puede especificar un máximo de cuatro coincidencias de patrones detalladas, que se pueden combinar en instrucciones AND o OR lógicas para la evaluación del controlador de Network Monitor.
Para implementar coincidencias de patrones, use las siguientes estructuras de Network Monitor:
Para evaluar una instrucción OR , combine dos a cuatro patrones coincide con una estructura ANDEXP (PatternMatch1 || PatternMatch2 || PatternMatch3). Para evaluar una instrucción AND, combine una a cuatro estructuras ANDEXP y una estructura EXPRESSION (AndExp1 && AndExp2).
Definiciones de coincidencia de patrones
Una coincidencia de patrón única se define mediante la estructura PATTERNMATCH . Una coincidencia individual puede funcionar de dos maneras.
Normalmente, el controlador tomará la base de desplazamiento (que puede ser OFFSET_BASIS_RELATIVE_TO_FRAME, OFFSET_BASIS_RELATIVE_TO_EFFECTIVE_PROTOCOL, OFFSET_BASIS_RELATIVE_TO_IPX o OFFSET_BASIS_RELATIVE_TO_IP) y empezar a contar allí. El controlador contará bytes de desplazamiento desde allí y, a continuación, coincidirá con los datos que encuentra con los primeros bytes de longitud en PatternToMatch. Si son iguales y no se establece la marca PATTERN_MATCH_FLAGS_NOT, este patrón pasa. Si son diferentes y se ha establecido el PATTERN_MATCH_FLAGS_NOT, el patrón pasa. De lo contrario, se produce un error en este patrón.
O:
Si se establece la marca PATTERN_MATCH_FLAGS_PORT_SPECIFIED y la base se establece en OFFSET_BASIS_RELATIVE_TO_IPX o OFFSET_BASIS_RELATIVE_TO_IP, la comparación es más compleja. En primer lugar, el controlador garantiza que el protocolo de base de desplazamiento esté ahí y, a continuación, el controlador comprueba que el puerto especificado coincide con el puerto del marco. Por último, el controlador garantiza que el miembro PatternToMatch coincida como antes, con la excepción de que el desplazamiento está desde el final de IP o IPX. Tenga en cuenta que si la base no es una de estas dos, se omitirá la marca PATTERN_MATCH_FLAGS_PORT_SPECIFIED y el patrón se evaluará como antes.
Para evaluar una coincidencia de patrón único, una estructura EXPRESSION debe tener un miembro AndExp que contenga una coincidencia de patrón única.
La creación del filtro de coincidencia de patrones implica crear estructuras PATTERNMATCH y combinarlas lógicamente con estructuras EXPRESSION y ANDEXP .
Para escribir un filtro PATTERNMATCH
- En la estructura ANDEXP , rellene la matriz con coincidencias de patrón.
- Rellene la estructura EXPRESSION con una matriz de miembros AndExp .
- No supere un total de cuatro coincidencias de patrón para el filtro de captura.
- En la estructura PATTERNMATCH , seleccione un tipo de marca.
- Seleccione una base de desplazamiento.
- Enumerar un valor de puerto.
- Defina el valor de desplazamiento.
- Defina la longitud del patrón.
- Enumerar el valor del patrón.
Ejemplos de PATTERNMATCH
Este marco representa un desplazamiento estándar.
El fragmento de código se implementa como:
Basis -> IP
Offset -> 4 (bytes)
Length -> 2 (bytes)
PatternToMatch[ ] = {x00, x00}
Este marco representa un desplazamiento especificado por el puerto (con IPX).
El código de ejemplo se implementa como:
Port -> 544
Basis -> IPX
Offset -> 2 (bytes)
Length -> 2 (bytes)
PatternToMatch[ ] = {x00, x00}