Question

Je suis perplexe en essayant de faire fonctionner eTheroutPuthookAdd (). Son homologue, EtheRenputhookAdd (), semble fonctionner bien. La version OS en question est VXWORKS 5.4.

Le code de crochet le ressemble (le code que j'ai l'intention d'exécuter est plus compliqué, mais cela sert à un exemple.)

int anCounter;
STATUS etherHook(struct ifnet *pif, char *buf, int size)
{
    anCounter += 1;
    return FALSE;
}

Je peux connecter EtherinputhookAdd à partir de la coquille vxworks comme ainsi

etherInputHookAdd etherHook,"fei",0

Cela renvoie 0 (statut OK), après quoi l'examen de la variable «Anccouper» indiquera l'activité comme prévu. Cependant, pas de chance avec la direction de sortie. J'ai essayé ces deux lignes de commande

etherOutputHookAdd etherHook,"fei",0
etherOutputHookAdd etherHook

Les deux reviennent ok, mais la routine de crochet ne semble pas être appelée du tout. Mes meilleures hypothèses sont (1) il me manque une étape d'initialisation, ou l'appelle mal, (2) l'implémentation d'EtheroutPuthookadd n'est qu'un talon, (3) vous ne pouvez tout simplement pas l'appeler à partir du shell, ou (4) peut-être L'implémentation de mon pilote NIC est buggy.

Toutes les idées qui résolvent le problème central - Comment voir ce qui est envoyé de ma planche - sont les bienvenus.

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top