Aller au contenu principal

5. Instance RPL

Au sein d'un LLN donné, il peut y avoir plusieurs instances RPL logiquement indépendantes. Un nœud RPL peut appartenir à plusieurs instances RPL, et il peut agir comme un routeur dans certaines et comme une feuille dans d'autres. Ce document décrit comment une instance unique se comporte.

Il existe deux types d'instances RPL : locales et globales. RPL divise l'espace RPLInstanceID entre les instances globales et locales pour permettre à la fois une allocation coordonnée et unilatérale des RPLInstanceID. Les instances RPL globales sont coordonnées, ont un ou plusieurs DODAG et sont généralement de longue durée. Les instances RPL locales sont toujours un DODAG unique dont la racine singulière possède le DODAGID correspondant et alloue le RPLInstanceID local de manière unilatérale. Les instances RPL locales peuvent être utilisées, par exemple, pour construire des DODAG à l'appui d'une future solution de routage à la demande. Le mode de fonctionnement des instances RPL locales est hors de portée de cette spécification et peut être décrit dans d'autres spécifications complémentaires.

La définition et le provisionnement des instances RPL sont hors de portée de cette spécification. Les directives peuvent être spécifiques à l'application et à l'implémentation, et elles devraient être élaborées dans de futures spécifications complémentaires. Ces opérations devraient être telles que les paquets de données provenant de l'extérieur du réseau RPL puissent être associés sans ambiguïté à au moins une instance RPL et être routés en toute sécurité sur toute instance correspondant au paquet.

Les paquets de contrôle et de données au sein du réseau RPL sont étiquetés pour identifier sans ambiguïté de quelle instance RPL ils font partie.

Chaque message de contrôle RPL a un champ RPLInstanceID. Certains messages de contrôle RPL, lorsqu'ils font référence à un RPLInstanceID local tel que défini ci-dessous, peuvent également inclure un DODAGID.

Les paquets de données qui circulent au sein du réseau RPL exposent le RPLInstanceID dans le cadre des informations de paquet RPL requises par RPL, comme décrit plus en détail dans la section 11.2. Pour les paquets de données provenant de l'extérieur du réseau RPL, le routeur d'entrée détermine le RPLInstanceID et le place dans le paquet résultant qu'il injecte dans le réseau RPL.

5.1. ID d'Instance RPL

Un RPLInstanceID global DOIT être unique pour l'ensemble du LLN. Les mécanismes d'allocation et de provisionnement du RPLInstanceID global sont hors de portée de cette spécification. Il peut y avoir jusqu'à 128 instances globales dans l'ensemble du réseau. Les instances locales sont toujours utilisées conjointement avec un DODAGID (qui est donné explicitement ou implicitement dans certains cas), et jusqu'à 64 instances locales par DODAGID peuvent être prises en charge. Les instances locales sont allouées et gérées par le nœud qui possède le DODAGID, sans aucune coordination explicite avec d'autres nœuds, comme détaillé ci-dessous.

Un RPLInstanceID global est codé dans un champ RPLInstanceID comme suit :

     0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+
|0| ID | Global RPLInstanceID in 0..127
+-+-+-+-+-+-+-+-+

Figure 4: RPLInstanceID Field Format for Global Instances

Un RPLInstanceID local est autoconfiguré par le nœud qui possède le DODAGID et il DOIT être unique pour ce DODAGID. Le DODAGID utilisé pour configurer le RPLInstanceID local DOIT être une adresse IPv6 accessible du nœud, et il DOIT être utilisé comme point de terminaison de toutes les communications au sein de cette instance locale.

Un RPLInstanceID local est codé dans un champ RPLInstanceID comme suit :

     0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+
|1|D| ID | Local RPLInstanceID in 0..63
+-+-+-+-+-+-+-+-+

Figure 5: RPLInstanceID Field Format for Local Instances

Le drapeau 'D' dans un RPLInstanceID local est toujours défini sur 0 dans les messages de contrôle RPL. Il est utilisé dans les paquets de données pour indiquer si le DODAGID est la source ou la destination du paquet. Si le drapeau 'D' est défini sur 1, alors l'adresse de destination du paquet IPv6 DOIT être le DODAGID. Si le drapeau 'D' est effacé, alors l'adresse source du paquet IPv6 DOIT être le DODAGID.

Par exemple, considérons un nœud A qui est la racine DODAG d'une instance RPL locale et qui a alloué un RPLInstanceID local. Par définition, tout le trafic traversant cette instance RPL locale proviendra ou se terminera au nœud A. Dans ce cas, le DODAGID sera l'adresse IPv6 accessible du nœud A. Tout le trafic contiendra l'adresse du nœud A, et donc le DODAGID, soit dans l'adresse source, soit dans l'adresse de destination. Ainsi, le RPLInstanceID local peut indiquer que le DODAGID est équivalent soit à l'adresse source, soit à l'adresse de destination en définissant le drapeau 'D' de manière appropriée.