Condividi tramite


Scrittura del filtro PATTERNMATCH

Il filtro di corrispondenza del criterio notifica al driver di accettare fotogrammi con un criterio specifico in corrispondenza di un offset specifico. È possibile specificare un massimo di quattro corrispondenze dettagliate, che possono essere combinate in istruzioni AND logiche o OR per la valutazione del driver di Monitoraggio di rete.

Per implementare le corrispondenze dei criteri, usare le strutture di Monitoraggio di rete seguenti:

Per valutare un'istruzione OR , combinare due a quattro criteri corrisponde a una struttura ANDEXP (PatternMatch1 || PatternMatch2 || PatternMatch3). Per valutare un'istruzione AND, combinare uno a quattro strutture ANDEXP e una struttura EXPRESSION (AndExp1 && AndExp2).

Definizioni di corrispondenza dei criteri

Una corrispondenza a criterio singolo è definita dalla struttura PATTERNMATCH. Una singola corrispondenza può operare in uno dei due modi seguenti.

Normalmente, il driver prende la base di offset (che può essere OFF edizione StandardT_BASIS_RELATIVE_TO_FRAME, OFF edizione StandardT_BASIS_RELATIVE_TO_EFFECTIVE_PROTOCOL, OFF edizione StandardT_BASIS_RELATIVE_TO_IPX o OFF edizione StandardT_BASIS_RELATIVE_TO_IP) e iniziare a contare lì. Il driver conta i byte di offset da questa posizione e quindi corrisponde ai dati trovati con i primi byte di lunghezza in PatternToMatch. Se sono uguali e il flag PATTERN_MATCH_FLAGS_NOT non è impostato, questo modello passa. Se sono diversi e la PATTERN_MATCH_FLAGS_NOT è stata impostata, il modello passa. In caso contrario, questo modello ha esito negativo.

Oppure:

Se il flag PATTERN_MATCH_FLAGS_PORT_SPECIFIED è impostato e la base è impostata su OFF edizione StandardT_BASIS_RELATIVE_TO_IPX o OFF edizione StandardT_BASIS_RELATIVE_TO_IP, il confronto è più complesso. Prima di tutto, il driver garantisce che il protocollo di base di offset sia presente, quindi il driver verifica che la porta specificata corrisponda alla porta nel frame. Infine, il driver garantisce che il membro PatternToMatch corrisponda come in precedenza, con l'eccezione che l'offset proviene dalla fine di IP o IPX. Si noti che se la base non è una di queste due, il flag PATTERN_MATCH_FLAGS_PORT_SPECIFIED verrà ignorato e il modello verrà valutato come indicato in precedenza.

Per valutare una corrispondenza con un singolo criterio, una struttura EXPRESSION deve avere un membro AndExp contenente una corrispondenza a criterio singolo.

La compilazione del filtro di corrispondenza dei criteri comporta la creazione di strutture PATTERNMATCH e la combinazione logica con le strutture EXPRESSION e ANDEXP.

Per scrivere un filtro PATTERNMATCH

  1. Nella struttura ANDEXP popolare la matrice con corrispondenze del criterio.
  2. Popolare la struttura EXPRESSION con una matrice di membri AndExp .
  3. Non superare un totale di quattro corrispondenze del criterio per il filtro di acquisizione.
  4. Nella struttura PATTERNMATCH selezionare un tipo di flag.
  5. Selezionare una base di offset.
  6. Enumerare un valore di porta.
  7. Definire il valore di offset.
  8. Definire la lunghezza del pattern.
  9. Enumerare il valore del criterio.

Esempi di PATTERNMATCH

Questo frame rappresenta un offset standard.

standard offset frame

Il frammento di codice viene implementato come segue:

Basis  ->   IP
Offset ->   4 (bytes)
Length ->   2 (bytes)
PatternToMatch[ ] = {x00, x00}

Questo frame illustra un offset specificato dalla porta (rispetto a IPX).

port-specified offset frame

Il codice di esempio viene implementato come segue:

Port   ->   544
Basis  ->   IPX
Offset ->   2 (bytes)
Length ->   2 (bytes)
PatternToMatch[ ] = {x00, x00}