Provided by: manpages-fr_3.32d0.2p4-1_all bug

NOM

       rtnetlink, NETLINK_ROUTE - Socket de routage Linux IPv4

SYNOPSIS

       #include <asm/types.h>
       #include <linux/netlink.h>
       #include <linux/rtnetlink.h>
       #include <sys/socket.h>

       rtnetlink_socket = socket(AF_NETLINK, int type_socket, NETLINK_ROUTE);

DESCRIPTION

       Rtnetlink  permet  de  lire et modifier les tables de routage du noyau.
       Cela permet des communications entre  divers  sous-systemes  du  noyau,
       bien  que  cette  utilisation  ne  soit pas documentee ici, et pour les
       communications avec les programmes de l'espace utilisateur. Les  routes
       reseau, les adresses IP, les parametres de liaison, la configuration du
       voisinage, les files, les classes de trafic et les classes  de  paquets
       peuvent  etre  configures par le biais des sockets NETLINK_ROUTE. Elles
       sont basees sur des messages netlink, consultez  netlink(7)  pour  plus
       d'informations.

   Attributs de routage
       Certains  messages  netlink  ont  des  attributs  supplementaires apres
       l'en-tete initial :

           struct rtattr {
               unsigned short rta_len;    /* Longueur option */
               unsigned short rta_type;   /* Type d'option */
               /* Les donnees suivent... */
           };

       Ces attributs ne doivent etre  manipules  qu'en  utilisant  les  macros
       RTA_* ou libnetlink, consultez rtnetlink(3).

   Messages
       Rtnetlink  est  constitue  de  trois  types  de  messages  (en plus des
       messages netlink standards) :

       RTM_NEWLINK, RTM_DELLINK, RTM_GETLINK
              Creer, supprimer, ou obtenir des  informations  a  propos  d'une
              interface   reseau  specifique.  Ces  messages  contiennent  une
              structure ifinfomsg suivie d'une serie de structures rtattr.

              struct ifinfomsg {
                  unsigned char  ifi_family; /* AF_UNSPEC */
                  unsigned short ifi_type;   /* Type peripherique */
                  int            ifi_index;  /* Index interface */
                  unsigned int   ifi_flags;  /* Attributs periph. */
                  unsigned int   ifi_change; /* Masque modificat. */
              };

              ifi_flags contient  les  attributs  du  peripherique,  consultez
              netdevice(7)  ;  ifi_index  est  l'index unique de l'interface ;
              ifi_change est reserve pour un usage ulterieur et doit  toujours
              valoir 0xFFFFFFFF.

              Attributs de routage
              rta_type               type de valeur       description
              --------------------------------------------------------------------
              IFLA_UNSPEC            -                    non-specifie.

              IFLA_ADDRESS           adresse materielle   Adresse L2 interface.
              IFLA_BROADCAST         adresse materielle   Adresse L2 Broadcast.
              IFLA_IFNAME            chaine ACSIIZ        Nom peripherique.
              IFLA_MTU               unsigned int         MTU du peripherique.
              IFLA_LINK              int                  Type liaison.
              IFLA_QDISC             chaine ACSIIZ        Mecanismes files.
              IFLA_STATS             voir ci-dessous      Statistiques interface.

              Le type de donnees pour IFLA_STATS est struct net_device_stats.

       RTM_NEWADDR, RTM_DELADDR, RTM_GETADDR
              Ajouter,  supprimer  ou obtenir des informations sur une adresse
              IP associee a une interface. Sous Linux 2.2, une interface  peut
              gerer  plusieurs adresses IP, ce qui remplace le concept d'alias
              de Linux 2.0. Dans Linux 2.2, ces messages  prennent  en  charge
              les  adresses  IPv4  et  IPv6.  Ils  contiennent  une  structure
              ifaddrmsg, suivie eventuellement par des  attributs  de  routage
              rtattr.

              struct ifaddrmsg {
                  unsigned char ifa_family;    /* Type adresse */
                  unsigned char ifa_prefixlen; /* Lg prefixe adresse */
                  unsigned char ifa_flags;     /* Attributs adresse */
                  unsigned char ifa_scope;     /* Portee adresse */
                  int           ifa_index;     /* Index interface */
              };

              ifa_family  est  le  type  de  famille  d'adresse  (actuellement
              AF_INET ou AF_INET6), ifa_prefixlen est la  longueur  du  masque
              d'adresse,  s'il  est  defini pour la famille (comme avec IPv4),
              ifa_scope est la portee de l'adresse, ifa_index est  l'index  de
              l'interface  associee  a  l'adresse.  ifa_flags  est un attribut
              compose de IFA_F_SECONDARY  pour  une  adresse  secondaire  (les
              anciens  alias  d'interface),  IFA_F_PERMANENT  pour une adresse
              fixee par l'utilisateur, et d'autres attribut non documentes.

               Attributes
              rta_type        type de valeur          description
              --------------------------------------------------------------
              IFA_UNSPEC      -                       non-specifie.
              IFA_ADDRESS     Adresse protocole raw   Adresse interface.
              IFA_LOCAL       Adresse protocole raw   Adresse locale.
              IFA_LABEL       Chaine ACSIIZ           Nom de l'interface.
              IFA_BROADCAST   Adresse protocole raw   Adresse broadcast.
              IFA_ANYCAST     Adresse protocole raw   Adresse anycast.
              IFA_CACHEINFO   struct ifa_cacheinfo    Informations adresse.

       RTM_NEWROUTE, RTM_DELROUTE, RTM_GETROUTE
              Creer, supprimer ou obtenir  des  informations  a  propos  d'une
              route  reseau.  Ces  messages  contiennent  une  structure rtmsg
              suivie d'une sequence  eventuelle  de  structures  rtattr.  Pour
              RTM_GETROUTE,  mettre  rtm_dst_len  et  rtm_src_len a 0 signifie
              obtenir toutes les entrees pour la table  de  routage  indiquee.
              Pour les autres champs, sauf rtm_table et rtm_protocol, 0 est le
              symbole generique signifiant << toutes valeurs >>.

              struct rtmsg {
                  unsigned char rtm_family;   /* Famille d'adresse de la route */
                  unsigned char rtm_dst_len;  /* Longueur destination */
                  unsigned char rtm_src_len;  /* Longueur source */
                  unsigned char rtm_tos;      /* Filtre TOS */

                  unsigned char rtm_table;    /* ID table routage */
                  unsigned char rtm_protocol; /* Protocole route, cf plus bas */
                  unsigned char rtm_scope;    /* Cf plus bas */
                  unsigned char rtm_type;     /* Cf plus bas */

                  unsigned int  rtm_flags;
              };

              rtm_type          Type route
              --------------------------------------------------------
              RTN_UNSPEC        Route inconnue
              RTN_UNICAST       Passerelle ou route directe
              RTN_LOCAL         Route interface locale
              RTN_BROADCAST     Route  broadcast  locale  (envoi   en
                                broadcast)
              RTN_ANYCAST       Route   broadcast  locale  (envoi  en
                                unicast)
              RTN_MULTICAST     Route multicast
              RTN_BLACKHOLE     Route d'abandon de paquets
              RTN_UNREACHABLE   Destination inaccessible
              RTN_PROHIBIT      Route de rejet de paquets
              RTN_THROW         Routage prolonge dans une autre table
              RTN_NAT           Route de traduction d'adresse
              RTN_XRESOLVE      Reference a  une  resolution  externe
                                (non implemente)

              rtm_protocol      Origine de la route.
              -----------------------------------------------
              RTPROT_UNSPEC     inconnue
              RTPROT_REDIRECT   redirection  ICMP (inutilise
                                actuellement)
              RTPROT_KERNEL     fixee par le noyau
              RTPROT_BOOT       obtenue pendant le demarrage
              RTPROT_STATIC     fixee par l'administrateur

              Les  valeurs  plus  grandes  que  RTPROT_STATIC  ne   sont   pas
              interpretees par le noyau, et servent d'information utilisateur.
              Elles permettent de marquer la source de la route  ou  de  faire
              une  distinction  entre  plusieurs  demons de routage. Consultez
              <linux/rtnetlink.h>  pour  les  identificateurs  de  demons   de
              routage deja affectes.

              rtm_scope est la distance a la destination :

              RT_SCOPE_UNIVERSE   route globale
              RT_SCOPE_SITE       route  locale  interne  au
                                  systeme autonome
              RT_SCOPE_LINK       route sur ce lien
              RT_SCOPE_HOST       route sur l'hote local
              RT_SCOPE_NOWHERE    destination inexistante

              Les  valeurs  entre  RT_SCOPE_UNIVERSE  et  RT_SCOPE_SITE   sont
              disponibles pour l'utilisateur.

              Le champ rtm_flags prend les significations suivantes :

              RTM_F_NOTIFY     si la route change, notifier l'utilisateur
                               via rtnetlink
              RTM_F_CLONED     la route est clonee depuis une autre route
              RTM_F_EQUALIZE   repartiteur  multi-chemins   (pas   encore
                               implemente)

              rtm_table indique la table de routage

              RT_TABLE_UNSPEC    table de routage non specifiee
              RT_TABLE_DEFAULT   la table par defaut
              RT_TABLE_MAIN      la table principale
              RT_TABLE_LOCAL     la table locale

              L'utilisateur   peut  affecter  a  son  gre  les  valeurs  entre
              RT_TABLE_UNSPEC et RT_TABLE_DEFAULT.

               Attributes
              rta_type        type de valeur      description
              ----------------------------------------------------------------
              RTA_UNSPEC      -                   ignore.
              RTA_DST         Adresse protocole   Adresse   de    la    route
                                                  destination.
              RTA_SRC         Adresse protocole   Adresse de la route source.
              RTA_IIF         int                 Index interface d'entree.
              RTA_OIF         int                 Index interface de sortie.
              RTA_GATEWAY     Adresse protocole   Passerelle de la route.
              RTA_PRIORITY    int                 Priorite de la route.
              RTA_PREFSRC
              RTA_METRICS     int                 Metrique de la route.
              RTA_MULTIPATH
              RTA_PROTOINFO
              RTA_FLOW
              RTA_CACHEINFO

              Remplir ces valeurs !

       RTM_NEWNEIGH, RTM_DELNEIGH, RTM_GETNEIGH
              Ajouter, supprimer ou obtenir des informations sur les voisinage
              d'un element de table (p.ex. : entree ARP). Le message  contient
              une structure ndmsg.

              struct ndmsg {
                  unsigned char ndm_family;
                  int           ndm_ifindex;  /* Index interface */
                  __u16         ndm_state;    /* Etats */
                  __u8          ndm_flags;    /* Attributs */
                  __u8          ndm_type;
              };

              struct nda_cacheinfo {
                  __u32         ndm_confirmed;
                  __u32         ndm_used;
                  __u32         ndm_updated;
                  __u32         ndm_refcnt;
              };

              ndm_state est un masque contenant les bits suivants :

              NUD_INCOMPLETE   une entree de cache non resolue.
              NUD_REACHABLE    une entree de cache confirmee correcte.
              NUD_STALE        une entree de cache expiree.
              NUD_DELAY        une entree de cache en attente de timer.
              NUD_PROBE        une entree de cache en verification.
              NUD_FAILED       une entree de cache invalide.
              NUD_NOARP        un peripherique sans cache de destination.
              NUD_PERMANENT    une entree statique.

              Les valeurs valides pour ndm_flags sont :

              NTF_PROXY    nne entree proxy Arp.
              NTF_ROUTER   un routeur IPv6.

              La  structure  rtattr prend les significations suivantes pour le
              champ rta_type :

              NDA_UNSPEC      type inconnu
              NDA_DST         une adresse niveau  reseau
                              dans le cache de voisinage

              NDA_LLADDR      une adresse niveau liaison
                              dans le cache voisinage.
              NDA_CACHEINFO   statistiques sur le cache.

              Si le champ rta_type vaut NDA_CACHEINFO alors un en-tete  struct
              nda_cacheinfo suit.

       RTM_NEWRULE, RTM_DELRULE, RTM_GETRULE
              Ajouter,  supprimer  ou rechercher une regle de routage. Utilise
              une struct rtmsg

       RTM_NEWQDISC, RTM_DELQDISC, RTM_GETQDISC
              Ajouter, supprimer ou rechercher une displine de file d'attente.
              Le  message  contient  une  structure  struct tcmsg et peut etre
              suivi par une serie d'attributs.

              struct tcmsg {
                  unsigned char    tcm_family;
                  int              tcm_ifindex;   /* Index interface */
                  __u32            tcm_handle;    /* Handle Qdisc */
                  __u32            tcm_parent;    /* Parent Qdisc */
                  __u32            tcm_info;
              };

              Attributes
              rta_type      Type valeur           Description
              -----------------------------------------------------------------
              TCA_UNSPEC    -                     unspecified
              TCA_KIND      Chaine ACSIIZ         Nom de la discipline de file
              TCA_OPTIONS   Sequence octets       Options  specifiques   Qdisc
                                                  suivent
              TCA_STATS     struct tc_stats       Statistiques Qdisc
              TCA_XSTATS    Specifique Qdisc      Statistiques     specifiques
                                                  module
              TCA_RATE      struct tc_estimator   Limitation taux

              De plus, d'autres attributs specifiques  au  module  Qdisc  sont
              possibles. Pour plus d'informations, voir les fichiers d'en-tete
              appropries.

       RTM_NEWTCLASS, RTM_DELTCLASS, RTM_GETTCLASS
              Ajouter, supprimer ou  rechercher  une  classe  de  trafic.  Ces
              messages contiennent une struct tcmsg decrite plus haut.

       RTM_NEWTFILTER, RTM_DELTFILTER, RTM_GETTFILTER
              Ajouter,  supprimer ou obtenir des informations sur un filtre de
              trafic. Ces messages contiennent une struct tcmsg  decrite  plus
              haut.

VERSIONS

       rtnetlink est une nouveaute Linux 2.2.

BOGUES

       Cette page de manuel est incomplete.

VOIR AUSSI

       cmsg(3), rtnetlink(3), ip(7), netlink(7)

COLOPHON

       Cette  page  fait  partie  de  la  publication 3.32 du projet man-pages
       Linux. Une description du projet et des instructions pour signaler  des
       anomalies       peuvent       etre       trouvees      a      l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis 2010, cette traduction est maintenue a l'aide  de  l'outil  po4a
       <URL:http://po4a.alioth.debian.org/>   par   l'equipe   de   traduction
       francophone       au       sein        du        projet        perkamon
       <URL:http://perkamon.alioth.debian.org/>.

       Christophe  Blaess  <URL:http://www.blaess.fr/christophe/> (1996-2003),
       Alain  Portal  <URL:http://manpagesfr.free.fr/>  (2003-2006).    Julien
       Cristau et l'equipe francophone de traduction de Debian (2006-2009).

       Veuillez   signaler   toute   erreur   de   traduction  en  ecrivant  a
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous  pouvez  toujours avoir acces a la version anglaise de ce document
       en utilisant la commande << man -L C <section> <page_de_man> >>.

Linux                             8 aout 2008                     RTNETLINK(7)