Gravando o filtro PATTERNMATCH
O filtro de correspondência de padrão notifica o driver a aceitar quadros que têm um padrão específico em um deslocamento específico. Você pode especificar no máximo quatro correspondências de padrão detalhadas, que podem ser combinadas em instruções AND lógicas ou OR para avaliação do driver do Monitor de Rede.
Para implementar correspondências de padrão, use as seguintes estruturas do Monitor de Rede:
Para avaliar uma instrução OR , combine dois a quatro padrões que correspondem a uma estrutura ANDEXP (PatternMatch1 || PatternMatch2 || PatternMatch3). Para avaliar uma instrução AND, combine uma a quatro estruturas ANDEXP e uma estrutura EXPRESSION (AndExp1 && AndExp2).
Definições de correspondência de padrão
Uma única correspondência de padrão é definida pela estrutura PATTERNMATCH . Uma correspondência individual pode operar de duas maneiras.
Normalmente, o driver usará a base de deslocamento (que pode ser OFFSET_BASIS_RELATIVE_TO_FRAME, OFFSET_BASIS_RELATIVE_TO_EFFECTIVE_PROTOCOL, OFFSET_BASIS_RELATIVE_TO_IPX ou OFFSET_BASIS_RELATIVE_TO_IP) e começará a contar lá. O driver contará bytes de deslocamento de lá e, em seguida, corresponderá aos dados encontrados com os primeiros bytes de comprimento em PatternToMatch. Se forem iguais e o sinalizador PATTERN_MATCH_FLAGS_NOT não estiver definido, esse padrão passará. Se forem diferentes e o PATTERN_MATCH_FLAGS_NOT tiver sido definido, o padrão passará. Caso contrário, esse padrão falhará.
Ou:
Se o sinalizador PATTERN_MATCH_FLAGS_PORT_SPECIFIED estiver definido e a base for definida como OFFSET_BASIS_RELATIVE_TO_IPX ou OFFSET_BASIS_RELATIVE_TO_IP, a comparação será mais complexa. Primeiro, o driver garante que o protocolo de base de deslocamento esteja lá e, em seguida, o driver verifica se a porta especificada corresponde à porta no quadro. Por fim, o driver garante que o membro PatternToMatch corresponda como antes, com a exceção de que o deslocamento é do final de IP ou IPX. Observe que, se a base não for uma dessas duas, o sinalizador PATTERN_MATCH_FLAGS_PORT_SPECIFIED será ignorado e o padrão será avaliado como acima.
Para avaliar uma única correspondência de padrão, uma estrutura EXPRESSION deve ter um membro AndExp contendo uma única correspondência de padrão.
Criar o filtro de correspondência de padrão envolve criar estruturas PATTERNMATCH e combiná-las logicamente com estruturas EXPRESSION e ANDEXP .
Para gravar um filtro PATTERNMATCH
- Na estrutura ANDEXP , preencha a matriz com correspondências de padrão.
- Preencha a estrutura EXPRESSION com uma matriz de membros AndExp .
- Não exceda um total de quatro correspondências de padrão para o filtro de captura.
- Na estrutura PATTERNMATCH , selecione um tipo de sinalizador.
- Selecione uma base de deslocamento.
- Enumerar um valor de porta.
- Defina o valor de deslocamento.
- Defina o comprimento do padrão.
- Enumerar o valor do padrão.
Exemplos PATTERNMATCH
Esse quadro representa um deslocamento padrão.
O fragmento de código é implementado como:
Basis -> IP
Offset -> 4 (bytes)
Length -> 2 (bytes)
PatternToMatch[ ] = {x00, x00}
Esse quadro ilustra um deslocamento especificado pela porta (em relação ao IPX).
O código de exemplo é implementado como:
Port -> 544
Basis -> IPX
Offset -> 2 (bytes)
Length -> 2 (bytes)
PatternToMatch[ ] = {x00, x00}