Aller au contenu principal

14. Lignes Directrices pour les Fonctions Objectif

Une Fonction Objectif (OF), conjointement avec des métriques de routage et des contraintes, permet la sélection d'un DODAG à rejoindre, et un certain nombre de pairs dans ce DODAG comme parents. L'OF est utilisée pour calculer une liste ordonnée de parents. L'OF est également responsable de calculer le Rang de l'appareil au sein de la version DODAG.

La Fonction Objectif est indiquée dans le message DIO en utilisant un Point de Code Objectif (OCP), et elle indique la méthode qui doit être utilisée pour construire le DODAG. Les Points de Code Objectif sont spécifiés dans [RFC6552] et les spécifications d'accompagnement associées.

14.1. Comportement de la Fonction Objectif

La plupart des Fonctions Objectif sont censées suivre le même comportement abstrait au niveau d'un nœud :

  • La sélection des parents est déclenchée chaque fois qu'un événement indique qu'une information de saut suivant potentiel est mise à jour. Cela peut se produire à la réception d'un message DIO, à l'expiration d'un temporisateur, lorsque tous les parents DODAG sont indisponibles, ou lorsqu'un déclencheur indiquant que l'état d'un voisin candidat a changé.

  • Une OF scanne toutes les interfaces sur le nœud. Bien qu'il n'y ait généralement qu'une seule interface dans la plupart des scénarios d'application, il pourrait y en avoir plusieurs et une interface pourrait être configurée pour être utilisable ou non pour le fonctionnement RPL. Une interface peut également être configurée avec une préférence ou apprise dynamiquement comme étant meilleure qu'une autre par certaines heuristiques qui pourraient dépendre de la couche liaison et sont hors de portée de cette spécification. Enfin, une interface pourrait ou non correspondre à un critère requis pour une Fonction Objectif, par exemple, un degré de sécurité. En conséquence, certaines interfaces pourraient être complètement exclues du calcul, par exemple, si ces interfaces ne peuvent pas satisfaire certaines contraintes annoncées, tandis que d'autres pourraient être plus ou moins préférées.

  • Une OF scanne tous les voisins candidats sur les interfaces possibles pour vérifier s'ils peuvent agir comme un routeur pour un DODAG. Il pourrait y en avoir beaucoup et un voisin candidat pourrait devoir passer certains tests de validation avant de pouvoir être utilisé. En particulier, certaines couches de liaison nécessitent une expérience sur l'activité avec un routeur pour activer le routeur comme saut suivant.

  • Une OF calcule le Rang d'un nœud pour comparaison en ajoutant au Rang du candidat une valeur représentant les emplacements relatifs du nœud et du candidat dans la version DODAG.

    • L'augmentation du Rang doit être d'au moins MinHopRankIncrease.

    • Pour garder l'évitement de boucle et l'optimisation des métriques alignés, l'augmentation du Rang devrait refléter toute augmentation de la valeur de la métrique. Par exemple, avec une métrique purement additive, telle que ETX, l'augmentation du Rang peut être rendue proportionnelle à l'augmentation de la métrique.

    • Les voisins candidats qui causeraient une augmentation du Rang du nœud ne sont pas pris en compte pour la sélection des parents.

  • Les voisins candidats qui annoncent une OF incompatible avec l'ensemble des OF spécifiées par les fonctions de politique sont ignorés.

  • Lorsqu'elle scanne tous les voisins candidats, l'OF garde le meilleur parent actuel et compare ses capacités avec le voisin candidat actuel. L'OF définit un certain nombre de tests qui sont critiques pour atteindre l'objectif. Un test entre les routeurs détermine une relation d'ordre.

    • Si les routeurs sont égaux pour cette relation, alors le test suivant est tenté entre les routeurs,

    • Sinon, le meilleur des deux routeurs devient le meilleur parent actuel, et le scan continue avec le voisin candidat suivant.

    • Certaines OF peuvent inclure un test pour comparer les Rangs qui résulteraient si le nœud rejoignait l'un ou l'autre routeur.

  • Lorsque le scan est terminé, le parent préféré est élu et le Rang du nœud est calculé comme le Rang du parent préféré plus le pas de Rang avec ce parent.

  • D'autres tours de scans pourraient être nécessaires pour élire des parents alternatifs. Dans les tours suivants :

    • Les voisins candidats qui ne sont pas dans le même DODAG sont ignorés.

    • Les voisins candidats qui sont d'un Rang supérieur au nœud sont ignorés.

    • Les voisins candidats d'un Rang égal au nœud sont ignorés pour la sélection des parents.

    • Les voisins candidats d'un Rang inférieur au nœud sont préférés.