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
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.
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.
Emulation d'une transmission série avec commandes AT(Hayes).
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.
|
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.
|
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.
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.
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).
Les modules matériels intègrent plusieurs fonctions de base vis à vis du système et de 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.
On peut choisir la nature et la quantité des messages d'information envoyés sur les interfaces en mode caractère comme /dev/isdnctrl*.
Vous êtes ici :