Debian logo [inetdoc.LINUX]

4.6. L'architecture du sous-système RNIS Linux

D'une manière générale, le codage des fonctions du système GNU/Linux est réparti entre le noyau (kernelspace) et les outils de configuration (userspace). Le sous-système RNIS Linux n'échappe pas à cette règle.

Cette section traite de la partie noyau du sous-système RNIS Linux.

Modes de transmission ou encapsulation de niveau réseau

[1]: accès direct, rawip

L'accès direct (raw) est destiné au développement de protocoles « maison » de niveau réseau. Avec ce type de protocoles, on utilise directement les ressources matérielles de la carte de connexion. L'accès direct est une fonction générique du noyau Linux utilisable avec le sous-système RNIS. Dans ce cas particulier, on peut lire et écrire directement sur un canal B.

[2]: protocole PPP synchrone, syncppp

C'est le mode de transmission le plus efficace. Avec ce protocole, on utilise vraiment les caractéristiques synchrones des connexions RNIS. De plus, les champs des trames HDLC sont traitées bit à bit, ce qui optimise les temps d'accès au réseau. Voir le composant isdn_net.

[3]: protocole PPP asynchrone

Emulation d'une transmission série avec commandes AT(Hayes).

[4]: messages d'information

Recopie des trames du bus SO vers les interfaces d'information. Voir le composant isdn_net. Les niveaux d'informations sont paramétrables avec les outils de configuration.

L'architecture a été décomposée en 2 modules distincts.

4.6.1. Module de liaison

[Important] Important

Ce module n'est utile que pour les cartes passives. Les cartes actives possèdent leur propre firmware qui intègre les fonctions du module de liaison. Voir Chapitre 5, Le matériel RNIS.

  • Nom du fichier module : isdn.o.

  • Côté matériel : interface interne (i) définie par le fichier isdnif.h.

  • Côté noyau : interfaces réseau /dev/ippp*, mode série /dev/ttyI* et mode caractère /dev/isdnctrl*, /dev/isdninfo.

Ce module assure la liaison entre les interfaces usuelles du noyau /dev/... et le(s) module(s) matériel(s). Par défaut, il peut dialoguer avec 16 modules matériels soit 64 canaux.

Ce module comprend plusieurs composants que l'on peut associer de différentes façons. Le contrôle de connexion et les relations entre les différents composants sont régis par des machines d'état. Pour plus d'information, consulter les travaux du projet isdn4linux : WorkShop, Section 3.1, « RNIS ».

isdn_net [2]

Dialogue entre les interfaces réseau /dev/ippp* et le composant isdn_ppp. Le format des données traitées est le bit. Ce composant sert à l'utilisation du protocole syncppp avec le gestionnaire de connexion RNIS ipppd spécifique ISDN4Linux.

isdn_tty

Emulation des commandes AT (Hayes) vers les interfaces mode série /dev/ttyI*. Le format des données correspond à une transmission série. Ce composant sert à l'utilisation du protocole ppp avec le gestionnaire de connexion modem pppd.

isdn_common [4]

Fonctions communes aux autres composants et fonctions de mise au point. Les données au format caractère collectées par les fonctions de mise au point sont reproduites sur les interfaces /dev/isdnctrl* et /dev/isdninfo.

isdn_ppp

Dialogue ppp synchrone entre le(s) module(s) matériel(s) et les composants isdn_net et isdn_tty.

isdn_audio

Fonctions de conversion et de compression audio. Ces fonctions assurent le dialogue entre le module matériel et le composant isdn_tty à partir de commandes AT (Hayes).

isdn_v110

Fonctions d'adaptation de débit permettant d'assurer une communication asynchrone à débit «faible» sur un canal B.

isdn_bsdcomp

Fonctions de compression BSD des paquets ppp. Les mécanismes de compression sont décrits dans le document RFC1977 PPP BSD Compression Protocol.

isdn_concap

Fonctions génériques de protocoles d'encapsulation avec contrôle de connexion CONnection CONtrolling eNCAPsulation Protocol. Ce composant est une extension des fonctions déjà intégrées isdn_net. Il est utilisé en particulier par isdn_x25iface pour mettre en oeuvre les connexions aux réseaux à commutation de paquets X.25 : X.25 PLP on top of ISDN. Consulter le fichier /usr/src/linux/Documentation/isdn/README.concap.

isdn_x25iface

Fonctions d'encapsulation X.25. La principale différence entre les protocoles RNIS et X.25 se situe au niveau du contrôle de l'établissement et de la libération des connexions. Ce composant utilise isdn_concap pour les transactions avec le niveau réseau. Consulter le fichier /usr/src/linux/Documentation/isdn/README.x25.

4.6.2. Module(s) matériel(s)

[Important] Important

Pour les cartes actives, ce module contient toutes les fonctions de gestion des connexions. Voir Chapitre 5, Le matériel RNIS.

  • Le nom du fichier module dépend du type de carte. Il est baptisé hisax.o pour les cartes utilisant les composants SIEMENS/INFINEON®.

  • Côté matériel : raccordement au bus S0.

  • Côté noyau :

    • Cartes actives : interfaces réseau /dev/ippp*, mode série /dev/ttyI* et mode caractère /dev/isdnctrl*, /dev/isdninfo.

    • Cartes passives : interface interne (i) définie par le fichier isdnif.h.

4.6.2.1. Cartes Actives

Un module matériel intègre les protocoles des couches : physique, liaison et réseau du modèle OSI pour les canaux B et D. Le processeur et le logiciel (firmware) intégrés sur la carte permettent d'établir, maintenir et libérer les connexions en toute autonomie. Le rôle du module matériel est d'assurer le dialogue entre l'outil de configuration et le logiciel embarqué. L'outil de configuration sert à sélectionner un jeu d'options (de protocoles) fournies par ce logiciel. La «délégation» du contrôle de connexion au gestionnaire ipppd n'est aussi qu'une option logicielle de la carte.

4.6.2.2. Cartes Passives

Le module matériel d'une carte passive intègre :

  • les protocoles des couches OSI physique, liaison et réseau pour le canal D.

  • le protocole de la couche physique pour le canal B.

Le choix des protocoles est effectué au niveau du module de liaison. Les paramètres sont ensuite transmis au(x) module(s) matériel(s).

4.6.2.3. Fonctions communes

Les modules matériels intègrent plusieurs fonctions de base vis à vis du système et de la machine :

Reconnaissance de la carte par la machine

La reconnaissance des paramètres d'entrées sorties par la machine est différente suivant le type de carte.

  • Cartes Bus ISA : le noyau Linux possède un jeu de fonctions Plug'n Play permettant d'attribuer les adresses d'entrées-sorties et un vecteur d'interruption à la carte RNIS.

  • Cartes Bus PCI : le noyau Linux interroge les différentes cartes présentes sur le bus et collecte l'ensemble des informations sur les adresses d'entrées-sorties et les vecteurs d'interruption. Les paramètres de la carte RNIS sont compris dans la liste.

Informations de mise au point

On peut choisir la nature et la quantité des messages d'information envoyés sur les interfaces en mode caractère comme /dev/isdnctrl*.