Aller au contenu principal

A.2. Procédures courantes de distribution d'étiquettes

Cette section spécifie les procédures utilitaires utilisées par les algorithmes qui traitent les événements de distribution d'étiquettes.

A.2.1. Send_Label​

Résumé :

La procédure Send_Label alloue une étiquette pour une FEC à l'intention d'un pair LDP, si possible, et envoie un mappage d'étiquettes pour la FEC au pair. Si le LSR est incapable d'allouer l'étiquette et s'il a une demande d'étiquette en attente de la part du pair, il envoie au pair LDP une notification No Label Resources.

Paramètres :

  • Peer. Le pair LDP auquel le mappage d'étiquettes doit être envoyé.

  • FEC. La FEC pour laquelle un mappage d'étiquettes doit être envoyé.

  • Attributes. Attributs à inclure avec le mappage d'étiquettes.

Contexte supplémentaire :

  • LSR. Le LSR qui exécute la procédure.

  • Label. L'étiquette allouée et envoyée à Peer.

Algorithme :

   SL.1   Le LSR a-t-il une étiquette à allouer ?
Si non, aller à SL.9.

SL.2 Allouer Label et la lier à la FEC.

SL.3 Installer Label pour un usage de transfert/commutation.

SL.4 Exécuter la procédure Send_Message (Peer, Label Mapping, FEC,
Label, Attributes).

SL.5 Enregistrer que le mappage d'étiquettes pour la FEC avec Label
et Attributes a été envoyé à Peer.

SL.6 Le LSR a-t-il un enregistrement d'une demande d'étiquette de
FEC de la part de Peer marquée comme en attente ?
Si non, aller à SL.8.

SL.7 Supprimer l'enregistrement de la demande d'étiquette en
attente pour la FEC de la part de Peer.

SL.8 Renvoyer un succès.

SL.9 Le LSR a-t-il une demande d'étiquette pour la FEC de la part de
Peer marquée comme en attente ?
Si non, aller à SL.13.

SL.10 Exécuter la procédure Send_Notification (Peer, No Label
Resources).

SL.11 Supprimer l'enregistrement de la demande d'étiquette en
attente pour la FEC de la part de Peer.

SL.12 Enregistrer qu'une notification No Label Resources a été
envoyée à Peer.
Aller à SL.14.

SL.13 Enregistrer qu'un mappage d'étiquettes est nécessaire pour la
FEC et les Attributes pour Peer, mais sans ressource
d'étiquettes. (Voir Note 1.)

SL.14 Renvoyer un échec.

Note :

  1. SL.13 traite le cas de la distribution d'étiquettes Downstream Unsolicited lorsque le LSR est incapable d'allouer une étiquette pour une FEC à envoyer à un Peer.

A.2.2. Send_Label_Request​

Résumé :

Un LSR utilise la procédure Send_Label_Request pour envoyer à un pair LDP une demande d'étiquette pour une FEC s'il y est actuellement autorisé.

Paramètres :

  • Peer. Le pair LDP auquel la demande d'étiquette doit être envoyée.

  • FEC. La FEC pour laquelle une demande d'étiquette doit être envoyée.

  • Attributes. Attributs à inclure dans la demande d'étiquette, par exemple Hop Count, Path Vector.

Contexte supplémentaire :

  • LSR. Le LSR qui exécute la procédure.

Algorithme :

   SLRq.1  Une demande d'étiquette pour la FEC a-t-elle déjà été envoyée à
Peer et est-elle marquée comme en cours ?
Si oui, renvoyer un succès. (Voir Note 1.)

SLRq.2 L'enregistrement de statut indiquant qu'il est permis
d'envoyer des demandes d'étiquette à Peer est-il positionné ?
Si non, aller à SLRq.6

SLRq.3 Exécuter la procédure Send_Message (Peer, Label Request, FEC,
Attributes).

SLRq.4 Enregistrer que la demande d'étiquette pour la FEC a été
envoyée à Peer et la marquer comme en cours.

SLRq.5 Renvoyer un succès.

SLRq.6 Reporter la demande d'étiquette en enregistrant qu'un mappage
d'étiquettes pour la FEC et les Attributes de la part de Peer
est nécessaire, mais qu'aucune ressource d'étiquettes n'est
disponible.

SLRq.7 Renvoyer un échec.

Note :

  1. Si le LSR est un LSR qui ne fusionne pas, il doit distinguer les tentatives d'envoi de demandes d'étiquette pour une FEC déclenchées par différents pairs LDP en amont, des demandes en double. Cette procédure n'enverra pas de demande d'étiquette en double.

A.2.3. Send_Label_Withdraw​

Résumé :

Un LSR utilise la procédure Send_Label_Withdraw pour retirer une étiquette pour une FEC auprès d'un pair LDP. Pour ce faire, le LSR envoie un message Label Withdraw au pair.

Paramètres :

  • Peer. Le pair LDP auquel le retrait d'étiquette doit être envoyé.

  • FEC. La FEC pour laquelle une étiquette est retirée.

  • Label. L'étiquette qui est retirée.

Contexte supplémentaire :

  • LSR. Le LSR qui exécute la procédure.

Algorithme :

   SWd.1  Exécuter la procédure Send_Message (Peer, Label Withdraw, FEC,
Label).

SWd.2 Enregistrer que le retrait d'étiquette pour la FEC a été envoyé
à Peer et le marquer comme en cours.

A.2.4. Send_Notification​

Résumé :

Un LSR utilise la procédure Send_Notification pour envoyer à un pair LDP un message Notification.

Paramètres :

  • Peer. Le pair LDP auquel le message Notification doit être envoyé.

  • Status. Le code de statut à inclure dans le message Notification.

Contexte supplémentaire :

Aucun.

Algorithme :

   SNt.1  Exécuter la procédure Send_Message (Peer, Notification, Status)

A.2.5. Send_Message​

Résumé :

Un LSR utilise la procédure Send_Message pour envoyer à un pair LDP un message LDP.

Paramètres :

  • Peer. Le pair LDP auquel le message doit être envoyé.

  • Message Type. Le type du message à envoyer.

  • Additional message contents . . . .

Contexte supplémentaire :

Aucun.

Algorithme :

   Cette procédure est le moyen par lequel un LSR envoie un message LDP
du type spécifié au pair LDP spécifié.

A.2.6. Check_Received_Attributes​

Résumé :

Vérifier les attributs reçus dans un message Label Mapping ou Label Request. Si les attributs incluent un Hop Count ou un Path Vector, effectuer une vérification de détection de boucles. Si une boucle est détectée, faire en sorte qu'un message Notification Loop Detected soit envoyé à MsgSource.

Paramètres :

  • MsgSource. Le pair LDP qui a envoyé le message.

  • MsgType. Le type du message reçu.

  • RAttributes. Les attributs du message.

Contexte supplémentaire :

  • LSR Id. Le LSR Id unique de ce LSR.

  • Hop Count. Le Hop Count, s'il existe, dans les attributs reçus.

  • Path Vector. Le Path Vector, s'il existe, dans les attributs reçus.

Algorithme :

   CRa.1   Les RAttributes incluent-ils un Hop Count ?
Si non, aller à CRa.5.

CRa.2 Le Hop Count dépasse-t-il le nombre de sauts maximal
autorisé ?
Si oui, aller à CRa.6.

CRa.3 Les RAttributes incluent-ils un Path Vector ?
Si non, aller à CRa.5.

CRa.4 Le Path Vector inclut-il le LSR Id ? OU La longueur du Path
Vector dépasse-t-elle la longueur maximale autorisée ?
Si oui, aller à CRa.6

CRa.5 Renvoyer No Loop Detected.

CRa.6 MsgType est-il LabelMapping ?
Si oui, aller à CRa.8. (Voir Note 1.)

CRa.7 Exécuter la procédure Send_Notification (MsgSource, Loop
Detected).

CRa.8 Renvoyer Loop Detected.

CRa.9 FIN.

Note :

  1. Lorsque les attributs vérifiés ont été reçus dans un message Label Mapping, le LSR envoie la notification Loop Detected dans un Status Code TLV d'un message Label Release. (Voir la section "Receive Label Mapping".)

A.2.7. Prepare_Label_Request_Attributes​

Résumé :

Cette procédure est utilisée chaque fois qu'un Label Request doit être envoyé à un Peer, afin de calculer le Hop Count et le Path Vector, le cas échéant, à inclure dans le message.

Paramètres :

  • Peer. Le pair LDP auquel le message doit être envoyé.

  • FEC. La FEC pour laquelle une demande d'étiquette doit être envoyée.

  • RAttributes. Les attributs que ce LSR associe au LSP pour la FEC.

  • SAttributes. Les attributs à inclure dans le message Label Request.

Contexte supplémentaire :

  • LSR Id. Le LSR Id unique de ce LSR.

Algorithme :

   PRqA.1  Le Hop Count est-il requis pour ce Peer ? (Voir Note 1.) OU Les
RAttributes incluent-ils un Hop Count ? OU La détection de
boucles est-elle configurée sur le LSR ?
Si non, aller à PRqA.14.

PRqA.2 Le LSR est-il l'ingress pour la FEC ?
Si non, aller à PRqA.6.

PRqA.3 Inclure un Hop Count de 1 dans les SAttributes.

PRqA.4 La détection de boucles est-elle configurée sur le LSR ? Si
non, aller à PRqA.14.

PRqA.5 Le LSR est-il capable de fusion ?
Si oui, aller à PRqA.14.
Si non, aller à PRqA.13.

PRqA.6 Les RAttributes incluent-ils un Hop Count ?
Si non, aller à PRqA.8.

PRqA.7 Incrémenter le Hop Count des RAttributes et copier le Hop
Count résultant dans les SAttributes. (Voir Note 2.)
Aller à PRqA.9.

PRqA.8 Inclure un Hop Count inconnu (0) dans les SAttributes.

PRqA.9 La détection de boucles est-elle configurée sur le LSR ?
Si non, aller à PRqA.14.

PRqA.10 Les RAttributes ont-ils un Path Vector ?
Si oui, aller à PRqA.12.

PRqA.11 Le LSR est-il capable de fusion ?
Si oui, aller à PRqA.14.
Si non, aller à PRqA.13.

PRqA.12 Ajouter le LSR Id au début du Path Vector provenant des
RAttributes et copier le Path Vector résultant dans les
SAttributes. Aller à PRqA.14.

PRqA.13 Inclure un Path Vector de longueur 1 contenant le LSR Id dans
les SAttributes.

PRqA.14 FIN.

Notes :

  1. La liaison avec Peer peut exiger que le Hop Count soit inclus dans les messages Label Request ; par exemple, voir [RFC3035] et [RFC3034].

  2. Pour l'arithmétique du nombre de sauts, inconnu + 1 = inconnu.

A.2.8. Prepare_Label_Mapping_Attributes​

Résumé :

Cette procédure est utilisée chaque fois qu'un Label Mapping doit être envoyé à un Peer, afin de calculer le Hop Count et le Path Vector, le cas échéant, à inclure dans le message.

Paramètres :

  • Peer. Le pair LDP auquel le message doit être envoyé.

  • FEC. La FEC pour laquelle une demande d'étiquette doit être envoyée.

  • RAttributes. Les attributs que ce LSR associe au LSP pour la FEC.

  • SAttributes. Les attributs à inclure dans le message Label Mapping.

  • IsPropagating. Le LSR envoie le message Label Mapping pour propager un message reçu du next hop de la FEC.

  • PrevHopCount. Le Hop Count, le cas échéant, que ce LSR associe au LSP pour la FEC.

Contexte supplémentaire :

  • LSR Id. Le LSR Id unique de ce LSR.

Algorithme :

   PMpA.1  Les RAttributes incluent-ils des TLV inconnus ?
           Si non, aller à PMpA.4.

   PMpA.2  Les réglages des U- et F-bits exigent-ils la transmission de
           ces TLV ?
           Si non, aller à PMpA.4.

   PMpA.3  Copier les TLV inconnus dans les SAttributes.

   PMpA.4  Le Hop Count est-il requis pour ce Peer ? (voir Note 1.) OU Les
           RAttributes incluent-ils un Hop Count ? OU La détection de
           boucles est-elle configurée sur le LSR ?
           Si non, aller à PMpA.24.

   PMpA.5  Le LSR est-il l'egress pour la FEC ?
           Si non, aller à PMpA.7.

   PMpA.6  Inclure un Hop Count de 1 dans les SAttributes. Aller à
           PMpA.24.

   PMpA.7  Les RAttributes ont-ils un Hop Count ?
           Si non, aller à PMpA.11.

   PMpA.8  Le LSR est-il membre de l'ensemble de bordure d'un domaine de
           LSR dont les LSR n'effectuent pas de décrément TTL ET le Peer
           est-il dans ce domaine ? (Voir Note 2.) Si non, aller à
           PMpA.10.

   PMpA.9  Inclure un Hop Count de 1 dans les SAttributes. Aller à
           PMpA.12.

   PMpA.10 Incrémenter le Hop Count des RAttributes et copier le Hop
           Count résultant dans les SAttributes. (Voir Note 2.) Aller à
           PMpA.12.

   PMpA.11 Inclure un Hop Count inconnu (0) dans les SAttributes.

   PMpA.12 La détection de boucles est-elle configurée sur le LSR ?
           Si non, aller à PMpA.24.

   PMpA.13 Les RAttributes ont-ils un Path Vector ?
           Si oui, aller à PMpA.22.

   PMpA.14 Le LSR propage-t-il un Label Mapping reçu ?
           Si non, aller à PMpA.23.

   PMpA.15 Le LSR prend-il en charge la fusion ?
           Si non, aller à PMpA.17.

   PMpA.16 Le LSR a-t-il précédemment envoyé un Label Mapping pour la FEC
           à Peer ?
           Si non, aller à PMpA.23.

   PMpA.17 Les RAttributes incluent-ils un Hop Count ?
           Si non, aller à PMpA.24.

   PMpA.18 Le Hop Count dans les RAttributes est-il inconnu (0) ?
           Si oui, aller à PMpA.23.

   PMpA.19 Le LSR a-t-il précédemment envoyé un Label Mapping pour la FEC
           à Peer ?
           Si non, aller à PMpA.24.

   PMpA.20 Le Hop Count dans les RAttributes est-il différent de
           PrevHopCount ?
           Si non, aller à PMpA.24.

   PMpA.21 Le Hop Count dans les RAttributes est-il > PrevHopCount ? OU
           PrevHopCount est-il inconnu (0) ?
           Si non, aller à PMpA.24.

   PMpA.22 Ajouter le LSR Id au début du Path Vector provenant des
           RAttributes et copier le Path Vector résultant dans les
           SAttributes. Aller à PMpA.24.

   PMpA.23 Inclure un Path Vector de longueur 1 contenant le LSR Id dans
           les SAttributes.

   PMpA.24 FIN.

Notes :

  1. La liaison avec Peer peut exiger que le Hop Count soit inclus dans les messages Label Mapping ; par exemple, voir [RFC3035] et [RFC3034].

  2. Si le LSR se trouve à la bordure d'un nuage de LSR qui n'effectuent pas de décrément TTL et qu'il propage le message Label Mapping en amont dans le nuage, il met le Hop Count à 1 afin que le Hop Count à travers le nuage soit calculé correctement. Cela garantit une gestion appropriée du TTL pour les paquets transférés sur la partie du LSP qui traverse le nuage.

  3. Pour l'arithmétique du nombre de sauts, inconnu + 1 = inconnu.