libnl-3.9.0

Introduction à libnl

La suite libnl est une collection de bibliothèques fournissant des API pour le protocole netlink basé sur le noyau Linux

This package is known to build and work properly using an LFS 12.1 platform.

Informations sur le paquet

Téléchargement facultatif

Installation de libnl

Installez libnl en exécutant les commandes suivantes :

./configure --prefix=/usr     \
            --sysconfdir=/etc \
            --disable-static  &&
make
[Note]

Note

Si la commande make a été exécutée avec plusieurs tâches en parallèles, elle peut perturber le mode de terminal et causer des effets visuels « intéressants ». Dans le pire des cas, ce problème empêchera d'afficher les saisis au clavier (mais vous pouvez toujours exécuter les commandes si vous les tapez correctement). Exécutez la commande reset pour corriger ce problème.

Si vous souhaitez exécuter les tests, vérifiez que les options suivantes sont activées dans la configuration du noyau et recompilez le noyau si nécessaire. Certaines options peuvent ne pas être strictement nécessaires, mais elles apportent une couverture de test complète.

General setup --->
  -*- Namespaces support --->                                       [NAMESPACES]
    [*] User namespace                                                 [USER_NS]
    [*] Network namespace                                               [NET_NS]

[*] Networking support --->                                                [NET]
  Networking options --->
    [*]   TCP/IP networking                                               [INET]
    [*]     IP: advanced router                             [IP_ADVANCED_ROUTER]
    [*]       IP: policy routing                            [IP_MULTIPLE_TABLES]
    <*/M>   IP: tunneling                                             [NET_IPIP]
    <*/M>   IP: GRE demultiplexer                              [NET_IPGRE_DEMUX]
    <*/M>   IP: GRE tunnels over IP                                  [NET_IPGRE]
    <*/M>   Virtual (secure) IP: tunneling                           [NET_IPVTI]
    <*>     The IPv6 protocol --->                                        [IPV6]
      <*/M>   IPv6: IPv6-in-IPv4 tunnel (SIT driver)                  [IPV6_SIT]
      <*/M>   IPv6: IP-in-IPv6 tunnel (RFC2473)                    [IPV6_TUNNEL]
      [*]     IPv6: Multiple Routing Tables               [IPV6_MULTIPLE_TABLES]
    [*]   Network packet filtering framework (Netfilter) --->        [NETFILTER]
      Core Netfilter Configuration --->
        <*/M> Netfilter nf_tables support                            [NF_TABLES]
        [*]     Netfilter nf_tables netdev tables support     [NF_TABLES_NETDEV]
        {*/M}   Netfilter packet duplication support             [NF_DUP_NETDEV]
        <*/M>   Netfilter nf_tables netdev packet forwarding support
                                                           ...  [NFT_FWD_NETDEV]
    <*/M> 802.1d Ethernet Bridging                                      [BRIDGE]
    <*/M> 802.1Q/802.1ad VLAN Support                               [VLAN_8021Q]
    -*-   L3 Master device support                           [NET_L3_MASTER_DEV]

Device Drivers --->
  [*] Network device support --->                                   [NETDEVICES]
    [*]   Network core driver support                                 [NET_CORE]
    <*/M>   Bonding driver support                                     [BONDING]
    <*/M>   Dummy net driver support                                     [DUMMY]
    <*/M>   Intermediate Functional Block support                          [IFB]
    <*/M>   MAC-VLAN support                                           [MACVLAN]
    <*/M>     MAC-VLAN based tap driver                                [MACVTAP]
    <*/M>   IP-VLAN support                                             [IPVLAN]
    <*/M>   Virtual eXtensible Local Area Network (VXLAN)                [VXLAN]
    <*/M>   IEEE 802.1AE MAC-level encryption (MACsec)                  [MACSEC]
    <*/M>   Virtual ethernet pair device                                  [VETH]
    <*/M>   Virtual Routing and Forwarding (Lite)                      [NET_VRF]

Pour tester les résultats lancez : make check.

Maintenant, en tant qu'utilisateur root :

make install

Si vous souhaitez installer la documentation de l'API, en tant qu'utilisateur root :

mkdir -vp /usr/share/doc/libnl-3.9.0 &&
tar -xf ../libnl-doc-3.9.0.tar.gz --strip-components=1 --no-same-owner \
    -C  /usr/share/doc/libnl-3.9.0

Explication des commandes

--disable-static : Ce paramètre empêche l'installation des versions statiques des bibliothèques.

--disable-cli : Utilisez ce paramètre si vous ne souhaitez pas installer les outils en ligne de commande du paquet.

Contenu

Programmes installés: genl-ctrl-list, idiag-socket-details, nl-class-add, nl-class-delete, nl-classid-lookup, nl-class-list, nl-cls-add, nl-cls-delete, nl-cls-list, nl-link-list, nl-pktloc-lookup, nl-qdisc-add, nl-qdisc-delete, nl-qdisc-list, et 48 autres utilitaires avec les préfixes nl- et nf-
Bibliothèques installées: libnl-3.so, libnl-cli-3.so, libnl-genl-3.so, libnl-idiag-3.so, libnl-nf-3.so, libnl-route-3.so, libnl-xfrm-3.so, et des modules en ligne de commande dans la hiérarchie /usr/lib/libnl/cli
Répertoires installés: /etc/libnl, /usr/include/libnl3, /usr/lib/libnl et /usr/share/doc/libnl-3.9.0

Descriptions courtes

genl-ctrl-list

interroge le contrôleur générique Netlink dans le noyau et affiche la liste de toutes les familles Generic Netlink enregistrées incluses dans la version de l'interface qui a été enregistrée

nl-class-add

ajoute, met à jour ou remplace les Traffic Classes

nl-class-delete

supprime les Traffic Classes.

nl-classid-lookup

est utilisé pour résoudre les noms qdisc/class en valeurs classid et vice versa

nl-class-list

affiche les Traffic Classes

nl-cls-add

ajoute un classificateur

nl-cls-delete

supprime un classificateur

nl-cls-list

affiche les classificateurs

nl-link-list

décharge les attributs de lien

nl-pktloc-lookup

permet la recherche des définitions d'emplacement de paquets

nl-qdisc-add

ajoute des disciplines de files d'attentes (qdiscs) dans le noyau

nl-qdisc-delete

supprime des disciplines de files d'attentes (qdiscs) dans le noyau

nl-qdisc-list

affiche les disciplines de files d'attentes (qdiscs) dans le noyau

libnl*-3.so

Ces bibliothèques contiennent les fonctions API utilisées pour accéder aux interfaces Netlink dans le noyau Linux