Service de noyau rtrequest

Objectif

Effectue une demande de modification de la table de routage.

Syntaxe

#include <sys/types.h>
#include <sys/errno.h>
#include <sys/mbuf.h>
#include <net/if.h>
#include <net/af.h>
#include <net/route.h>
int rtrequest ( req,  
dst
,  
gateway
,  
netmask
,  
flags
,  ret_nrt)
int req;
struct sockaddr *dst, *gateway, *netmask;
int flags;
struct rtentry **ret_nrt;

Paramètres

Article Descriptif
Req Indique une demande d'ajout ou de suppression d'une route.
Dst Indique la partie de destination de la route.
gateway Indique la partie passerelle de la route.
netmask Indique le masque de réseau à appliquer à la route.
Flags Identifie les indicateurs de routage, comme défini dans le fichier /usr/include/net/route.h .
Ret_nrt Indique de renvoyer la route résultante.

Descriptif

Le service de noyau Rtrequête effectue une demande de modification de la table de routage. Les interfaces appellent le service Rtrequête lors de l'amorçage afin de faire connaître leurs routes locales pour les opérations ioctl de la table de routage. Les interfaces appellent également le service Rtrequête à la suite des redirections de routage. La demande doit être ajoutée (si le paramètre Req a la valeur RMT_ADD) ou supprimer (le paramètre Req est une valeur de RMT_DELETE).

Environnement d'exécution

Le service de noyau Rtrequête peut être appelé à partir de l'environnement Processus ou Interruption .

Valeurs renvoyées

Article Descriptif
0 % Indique une opération réussie.
ESRCH Indique que la route n'était pas à supprimer.
EEXISTE Indique que l'entrée que le service Rtrequête a tenté d'ajouter existe déjà.
ENETUNREACH Indique que le service Rtrequête ne trouve pas l'interface de la route.
ENOBUFS Indique que le service Rtrequête ne peut pas obtenir une structure Mbuf pour ajouter une entrée.

Exemple

Pour effectuer une demande de modification de la table de routage, appelez le service de noyau Rtrequête comme suit:

rtrequest(RTM_ADD, dst, gateway, netmask, flags, &rtp);