Sous-routine arpupdate
Objectif
Met à jour les entrées arp pour une adresse IP donnée.
Syntaxe
int arpupdate (ac, m, hp, action, prm)
register struct arpcom *ac;
struct mbuf *m;
caddr_t hp;
int action;
struct arpupdate_parm *prm;Descriptif
La sous-routine arpupdate met à jour les entrées arp pour une adresse IP donnée. Il est appelé par arpinput à partir de la couche IF de l'interface. Cette sous-routine recherche dans la table arp une entrée correspondant à l'adresse IP. Il met ensuite à jour l'entrée arp pour l'adresse IP indiquée. La sous-routine arpupdate effectue également des recherches arp inversées.
La sous-routine arpupdate entre une nouvelle adresse dans arptab, en poussant l'entrée la plus ancienne du compartiment s'il n'y a pas d'espace. Cette sous-routine réussit toujours car aucun compartiment ne peut être complètement rempli avec des entrées permanentes (sauf lorsque arpioctl teste si une autre entrée permanente peut tenir).
Selon l'action spécifiée, les adresses IP prm isaddr, itaddret myaddr sont utilisées par la sous-routine arpupdate .
Paramètres
| Article | Descriptif |
|---|---|
| ac | Pointe vers la structure arpcom . |
| m | Pointe vers la mémoire tampon (mbuf), qui contient le paquet de réponse arp reçu par l'interface. |
| hp | Pointe vers la mémoire tampon transmise par le gestionnaire d'interruptions. |
| action | Renvoie une valeur qui indique l'action effectuée:
|
| PRM | Pointe vers la structure arpudpate_parm . Valeurs possibles :
|
Valeurs renvoyées
| Article | Descriptif |
|---|---|
| ARP_OK | La recherche ou la mise à jour a abouti. |
| ARP_FAIL | Echec de la recherche ou de la mise à jour. |
| ARP_NEWF | Impossible de créer une nouvelle entrée arp. |