A.1. Gestione degli eventi di distribuzione delle etichette
Questa sezione definisce le procedure di distribuzione delle etichette LDP specificando un algoritmo per ciascun evento di distribuzione delle etichette. Il requisito per un'implementazione LDP è che la sua gestione degli eventi debba avere l'effetto specificato dagli algoritmi. Vale a dire, un'implementazione non deve seguire esattamente i passi specificati dagli algoritmi, purché l'effetto sia identico.
Gli algoritmi per la gestione degli eventi di distribuzione delle etichette condividono azioni comuni. Le specifiche che seguono raggruppano queste azioni comuni in unità procedurali. Le specifiche di queste procedure comuni si trovano in una sezione dedicata, "Common Label Distribution Procedures", che segue questa.
Un'implementazione userebbe strutture dati per memorizzare informazioni sull'attività del protocollo. Questa appendice specifica le informazioni da memorizzare con un livello di dettaglio sufficiente a descrivere gli algoritmi e presuppone la capacità di recuperare le informazioni secondo necessità. Non specifica i dettagli delle strutture dati.
A.1.1. Receive Label Request
Riepilogo:
La risposta di un LSR alla ricezione di una richiesta di etichetta per una FEC da un peer LDP può comportare una o più delle seguenti azioni:
-
Trasmissione di un messaggio di notifica all'LSR richiedente che indica perché non può essere fornita una mappatura di etichette per la FEC;
-
Trasmissione di una mappatura di etichette per la FEC all'LSR richiedente;
-
Trasmissione di una richiesta di etichetta per la FEC al next hop della FEC;
-
Installazione di etichette per l'uso in inoltro/commutazione da parte dell'LSR.
Contesto:
-
LSR. L'LSR che gestisce l'evento.
-
MsgSource. Il peer LDP che ha inviato il messaggio.
-
FEC. La FEC specificata nel messaggio.
-
RAttributes. Gli attributi ricevuti con il messaggio, ad esempio Hop Count, Path Vector.
-
SAttributes. Gli attributi da includere nel messaggio Label Request, se presente, propagato al FEC Next Hop.
-
StoredHopCount. L'hop count, se presente, precedentemente registrato per la FEC.
Algoritmo:
LRq.1 Esegui la procedura Check_Received_Attributes (MsgSource, LabelRequest, RAttributes). Se Loop Detected, vai a LRq.4.
LRq.2 Esiste un Next Hop per la FEC? In caso negativo, vai a LRq.5.
LRq.3 MsgSource è il Next Hop? In caso negativo, vai a LRq.6.
LRq.4 Esegui la procedura Send_Notification (MsgSource, Loop Detected). Vai a LRq.13
LRq.5 Esegui la procedura Send_Notification (MsgSource, No Route). Vai a LRq.13.
LRq.6 L'LSR ha precedentemente ricevuto una label request per la FEC da MsgSource? In caso negativo, vai a LRq.8. (Vedere la Nota 1.)
LRq.7 La label request è una richiesta duplicata? In caso affermativo, vai a LRq.13. (Vedere la Nota 2.)
LRq.8 Registra la label request per la FEC ricevuta da MsgSource e contrassegnala come in sospeso.
LRq.9 Esegui la procedura LSR Label Distribution:
Per Downstream Unsolicited Independent Control OPPURE Per
Downstream On Demand Independent Control
1. L'LSR ha precedentemente ricevuto e conservato una
mappatura di etichette per la FEC dal Next Hop?
In caso affermativo, imposta Propagating a
IsPropagating.
In caso negativo, imposta Propagating a
NotPropagating.
2. Esegui la procedura
Prepare_Label_Mapping_Attributes(MsgSource, FEC,
RAttributes, SAttributes, Propagating,
StoredHopCount).
3. Esegui la procedura Send_Label (MsgSource, FEC,
SAttributes).
4. L'LSR è l'egress per la FEC? OPPURE L'LSR ha
precedentemente ricevuto e conservato una mappatura di
etichette per la FEC dal Next Hop?
In caso affermativo, vai a LRq.11.
In caso negativo, vai a LRq.10.
Per Downstream Unsolicited Ordered Control OPPURE Per
Downstream On Demand Ordered Control
1. L'LSR è l'egress per la FEC? OPPURE L'LSR ha
precedentemente ricevuto e conservato una mappatura di
etichette per la FEC dal Next Hop?
(Vedere la Nota 3.)
In caso negativo, vai a LRq.10.
2. Esegui la procedura
Prepare_Label_Mapping_Attributes(MsgSource, FEC,
RAttributes, SAttributes, IsPropagating,
StoredHopCount)
3. Esegui la procedura Send_Label (MsgSource, FEC,
SAttributes).
Vai a LRq.11.
LRq.10 Esegui la procedura LSR Label Request:
Per Request Never
1. Vai a LRq.13.
Per Request When Needed OPPURE
Per Request On Request
1. Esegui la procedura Prepare_Label_Request_Attributes
(Next Hop, FEC, RAttributes, SAttributes);
2. Esegui la procedura Send_Label_Request (Next Hop, FEC,
SAttributes).
Vai a LRq.13.
LRq.11 L'LSR ha inviato con successo un'etichetta per la FEC a MsgSource? In caso negativo, vai a LRq.13. (Vedere la Nota 4.)
LRq.12 Esegui la procedura LSR Label Use.
Per Use Immediate OPPURE Per Use If Loop Not Detected
1. Installa per l'uso in inoltro/commutazione l'etichetta
inviata a MsgSource e l'etichetta dal Next Hop (se
l'LSR non è l'egress).
LRq.13 FINE.
Note:
1. Nel caso in cui MsgSource sia un LSR non soggetto a merge di
etichette, esso invierà una label request per ciascun peer
LDP a monte che gli ha richiesto un'etichetta per la FEC.
L'LSR deve essere in grado di distinguere tali richieste da
un MsgSource non soggetto a merge di etichette rispetto a
label request duplicate.
L'LSR usa il message ID dei messaggi Label Request ricevuti
per rilevare le richieste duplicate. Ciò significa che un
LSR (il peer a monte) non può riutilizzare il message ID
usato per un Label Request finché la transazione Label
Request non è completata.
2. Quando un LSR invia una label request a un peer, registra che
la richiesta è stata inviata e la contrassegna come in
sospeso. Finché la richiesta è contrassegnata come in
sospeso, l'LSR NON DOVREBBE (SHOULD NOT) inviare un'altra
richiesta per la stessa etichetta al peer. Una tale seconda
richiesta sarebbe un duplicato. La procedura
Send_Label_Request descritta di seguito obbedisce a questa
regola.
Una label request duplicata è considerata un errore di
protocollo e DOVREBBE (SHOULD) essere scartata dall'LSR
ricevente (possibilmente restituendo a MsgSource una
notifica appropriata).
3. Se l'LSR non è capace di merge, questo controllo fallirà.
4. La procedura Send_Label può fallire a causa della mancanza di
risorse di etichette, nel qual caso l'LSR NON DOVREBBE
(SHOULD NOT) eseguire la procedura Label Use.
A.1.2. Receive Label Mapping
Riepilogo:
La risposta di un LSR alla ricezione di una mappatura di etichette per una FEC da un peer LDP può comportare una o più delle seguenti azioni:
-
Trasmissione di un messaggio Label Release per l'etichetta della FEC al peer LDP;
-
Trasmissione di messaggi Label Mapping per la FEC a uno o più peer LDP;
-
Installazione dell'etichetta appena appresa per l'uso in inoltro/commutazione da parte dell'LSR.
Contesto:
-
LSR. L'LSR che gestisce l'evento.
-
MsgSource. Il peer LDP che ha inviato il messaggio.
-
FEC. La FEC specificata nel messaggio.
-
Label. L'etichetta specificata nel messaggio.
-
PrevAdvLabel. L'etichetta per la FEC, se presente, precedentemente pubblicizzata a un peer a monte. Presupponendo che nessuna etichetta sia stata precedentemente pubblicizzata, questa è la stessa etichetta di quella nel messaggio Label Mapping in corso di elaborazione.
-
StoredHopCount. L'hop count precedentemente registrato per la FEC.
-
RAttributes. Gli attributi ricevuti con il messaggio, ad esempio Hop Count, Path Vector.
-
SAttributes da includere nel messaggio Label Mapping, se presente, propagato ai peer a monte.
Algoritmo:
LMp.1 La mappatura di etichette ricevuta corrisponde a una label request in sospeso per la FEC precedentemente inviata a MsgSource? In caso negativo, vai a LMp.3.
LMp.2 Elimina la registrazione della label request in sospeso per la FEC.
LMp.3 Esegui la procedura Check_Received_Attributes (MsgSource, LabelMapping, RAttributes). Se No Loop Detected, vai a LMp.9.
LMp.4 L'LSR ha una mappatura di etichette per la FEC precedentemente ricevuta da MsgSource? (Vedere la Nota 1.) In caso negativo, vai a LMp.8. (Vedere la Nota 2.)
LMp.5 L'etichetta precedentemente ricevuta da MsgSource corrisponde a Label (cioè l'etichetta ricevuta nel messaggio)? (Vedere la Nota 3.) In caso negativo, vai a LMp.8. (Vedere la Nota 4.)
LMp.6 Elimina la mappatura di etichette corrispondente per
la FEC precedentemente ricevuta da MsgSource.
LMp.7 Rimuovi Label dall'uso in inoltro/commutazione. (Vedere la Nota 5.)
LMp.8 Esegui la procedura Send_Message (MsgSource, Label Release, FEC, Label, Loop Detected Status code). Vai a LMp.33.
LMp.9 L'LSR ha una mappatura di etichette per la FEC precedentemente ricevuta da MsgSource per l'LSP in questione? (Vedere la Nota 6.) In caso negativo, vai a LMp.11.
LMp.10 L'etichetta precedentemente ricevuta da MsgSource corrisponde a Label (cioè l'etichetta ricevuta nel messaggio)? (Vedere la Nota 3.) OPPURE La mappatura di etichette ricevuta è in risposta a una label request in sospeso precedentemente inviata a MsgSource? (Vedere la Nota 12.) In caso affermativo, vai a LMp.11.
LMp.10a L'LSR opera in modalità Downstream Unsolicited? In caso affermativo, elimina la mappatura di etichette per l'etichetta precedentemente ricevuta da MsgSource e rimuovila dall'uso in inoltro/commutazione. Esegui la procedura Send_Message (MsgSource, Label Release, FEC, etichetta precedentemente ricevuta da MsgSource).
LMp.11 Determina il Next Hop per la FEC.
LMp.12 MsgSource è il Next Hop per la FEC? In caso affermativo, vai a LMp.14.
LMp.13 Esegui la procedura LSR Label Release:
Per Conservative Label retention:
1. Vai a LMp.32.
Per Liberal Label retention:
1. Registra che la mappatura di etichette per la
FEC con Label e RAttributes è stata ricevuta da
MsgSource.
Vai a LMp.33.
LMp.14 L'LSR è un ingress per la FEC? In caso negativo, vai a LMp.16.
LMp.15 Installa Label per l'uso in inoltro/commutazione.
LMp.16 Registra che la mappatura di etichette per la FEC con Label e RAttributes è stata ricevuta da MsgSource.
LMp.17 Itera da LMp.18 a LMp.31 per ciascun Peer. (Vedere la Nota 7).
LMp.18 L'LSR ha precedentemente inviato una mappatura di etichette per la FEC a Peer per l'LSP in questione? (Vedere la Nota 8.) In caso affermativo, vai a LMp.22.
LMp.19 La procedura Downstream Unsolicited Ordered Control Label Distribution è quella usata dall'LSR? In caso negativo, vai a LMp.28.
LMp.20 Esegui la procedura Prepare_Label_Mapping_Attributes (Peer, FEC, RAttributes, SAttributes, IsPropagating, StoredHopCount).
LMp.21 Esegui la procedura Send_Message (Peer, Label Mapping, FEC, PrevAdvLabel, SAttributes). (Vedere la Nota 13.) Vai a LMp.28.
LMp.22 Itera da LMp.23 a LMp.27 per ciascuna mappatura di etichette per la FEC precedentemente inviata a Peer.
LMp.23 I RAttributes nella mappatura di etichette ricevuta sono coerenti con quelli precedentemente inviati a Peer? In caso affermativo, continua l'iterazione da LMp.22 per la mappatura di etichette successiva. (Vedere la Nota 9.)
LMp.24 Esegui la procedura Prepare_Label_Mapping_Attributes (Peer, FEC, RAttributes, SAttributes, IsPropagating, StoredHopCount).
LMp.25 Esegui la procedura Send_Message (Peer, Label Mapping, FEC, PrevAdvLabel, SAttributes). (Vedere la Nota 10.)
LMp.26 Aggiorna la registrazione della mappatura di etichette per la FEC precedentemente inviata a Peer per includere i nuovi attributi inviati.
LMp.27 Termina l'iterazione da LMp.22.
LMp.28 L'LSR ha label request per la FEC da Peer contrassegnate come in sospeso? In caso negativo, vai a LMp.30.
LMp.29 Esegui la procedura LSR Label Distribution:
Per Downstream Unsolicited Independent Control OPPURE Per
Downstream Unsolicited Ordered Control
1. Esegui la procedura
Prepare_Label_Mapping_Attributes (Peer, FEC,
RAttributes, SAttributes, IsPropagating,
UnknownHopCount).
2. Esegui la procedura Send_Label (Peer, FEC, SAttributes).
Se la procedura fallisce, continua l'iterazione per il
Peer successivo a LMp.17.
3. Se non esistono richieste in sospeso per Peer, vai a
LMp.30. (Vedere la Nota 11.)
Per Downstream On Demand Independent Control OPPURE Per
Downstream On Demand Ordered Control
1. Itera dal passo 2 al passo 5 per ciascuna label request
per la FEC da Peer contrassegnata come in sospeso.
2. Esegui la procedura
Prepare_Label_Mapping_Attributes (Peer, FEC,
RAttributes, SAttributes, IsPropagating,
UnknownHopCount)
3. Esegui la procedura Send_Label (Peer, FEC, SAttributes).
Se la procedura fallisce, continua l'iterazione per il
Peer successivo a LMp.17.
4. Elimina la registrazione della richiesta in sospeso.
5. Termina l'iterazione dal passo 1.
6. Vai a LMp.30.
LMp.30 Esegui la procedura LSR Label Use:
Per Use Immediate OPPURE Per Use If Loop Not Detected
1. Itera dal passo 2 al passo 3 per ciascuna mappatura di
etichette per la FEC precedentemente inviata a Peer.
2. Installa per l'uso in inoltro/commutazione l'etichetta
ricevuta e l'etichetta inviata a Peer.
3. Termina l'iterazione dal passo 1.
4. Vai a LMp.31.
LMp.31 Termina l'iterazione da LMp.17. Vai a LMp.33.
LMp.32 Esegui la procedura Send_Message (MsgSource, Label Release, FEC, Label).
LMp.33 FINE.
Note:
-
Se l'LSR è soggetto a merge, dovrebbe esserci al massimo 1 mappatura ricevuta per la FEC per l'LSP in questione. Nel caso non soggetto a merge, potrebbero esserci più mappature ricevute per la FEC per l'LSP in questione.
-
Se l'LSR ha rilevato un loop e non ha precedentemente ricevuto una mappatura di etichette da MsgSource per la FEC, rilascia semplicemente l'etichetta.
-
La Label ricevuta nel messaggio corrisponde a una qualsiasi delle 1 o più mappature di etichette identificate nel passo precedente (LMp.4 o LMp.9)?
-
Una mappatura non sollecitata con un'etichetta diversa dallo stesso peer sarebbe un tentativo di stabilire una commutazione di etichette multipath, che non è supportata in questa versione di LDP.
-
Se la Label non è in uso per inoltro/commutazione, LMp.7 non ha effetto.
-
Se il messaggio di mappatura di etichette ricevuto corrispondeva a una label request in sospeso in LMp.1, allora (per definizione) l'LSR non ha precedentemente ricevuto una mappatura di etichette per la FEC per l'LSP in questione. Se l'LSR sta effettuando il merge delle etichette a monte per l'LSP in questione, dovrebbe esserci al massimo 1 mappatura ricevuta. Nel caso non soggetto a merge, potrebbero esserci più mappature di etichette ricevute per la stessa FEC, una per ciascun LSP risultante.
-
L'iterazione LMp.17 include MsgSource per gestire il caso in cui l'LSR operi in modalità Downstream Unsolicited Ordered Control. Il controllo ordinato impedisce all'LSR di pubblicizzare un'etichetta per la FEC finché non ha ricevuto una mappatura di etichette dal proprio next hop (MsgSource) per la FEC.
-
Se l'LSR sta effettuando il merge dell'LSP, potrebbe aver precedentemente inviato mappature di etichette per l'LSP della FEC a uno o più peer. Se l'LSR non sta effettuando il merge, potrebbe aver inviato una mappatura di etichette per l'LSP in questione ad al massimo un LSR.
-
In questo controllo si tiene conto dell'attributo Loop Detection Path Vector. Se i RAttributes ricevuti includono un Path Vector e nessun Path Vector era stato precedentemente inviato al Peer, oppure se il Path Vector ricevuto è incoerente con il Path Vector precedentemente inviato al Peer, allora gli attributi sono considerati incoerenti. Si noti che un LSR non è tenuto a memorizzare un Path Vector ricevuto dopo averlo propagato in un messaggio di mappatura. Se un LSR non memorizza il Path Vector, non ha modo di verificare la coerenza di un Path Vector appena ricevuto. Ciò significa che ogni volta che un tale LSR riceve un messaggio di mappatura che trasporta un Path Vector, deve sempre propagare il Path Vector.
-
LMp.22 attraverso LMp.27 affrontano una situazione che può verificarsi quando l'LSR usa il controllo indipendente e riceve una mappatura dal peer a valle dopo aver inviato una mappatura a un peer a monte. In questa situazione, l'LSR deve propagare a monte gli attributi eventualmente modificati, come l'Hop Count. Se il rilevamento dei loop è abilitato, gli attributi propagati devono includere il Path Vector.
-
Un LSR che opera in modalità Downstream Unsolicited DEVE (MUST) elaborare qualsiasi messaggio Label Request che riceve. Se vi sono label request in sospeso, prosegui nelle procedure Downstream on Demand per soddisfare le richieste in sospeso.
-
Come determinato dal passo LMp.1.
-
Un LSR che opera in modalità Ordered Control può scegliere di saltare in questa fase il peer dal quale ha ricevuto l'advertisement che lo ha indotto a generare il messaggio label-map. Ciò fornirà di fatto una forma di split-horizon.
A.1.3. Receive Label Abort Request
Riepilogo:
Quando un LSR riceve un messaggio Label Abort Request da un peer, verifica se ha già risposto alla label request in questione. Se lo ha fatto, ignora silenziosamente il messaggio. In caso contrario, invia al peer una notifica Label Request Aborted. Inoltre, se ha una label request in sospeso per l'LSP in questione verso un peer a valle, invia un Label Abort Request al peer a valle per annullare l'LSP.
Contesto:
-
LSR. L'LSR che gestisce l'evento.
-
MsgSource. Il peer LDP che ha inviato il messaggio.
-
FEC. La FEC specificata nel messaggio.
-
RequestMessageID. Il message ID del messaggio di label request da annullare.
-
Next Hop. Il next hop per la FEC.
Algoritmo:
LAbR.1 Il messaggio corrisponde a un messaggio Label Request precedentemente ricevuto da MsgSource? (Vedere la Nota 1.) In caso negativo, vai a LAbR.12.
LAbR.2 L'LSR ha risposto alla label request precedentemente ricevuta? In caso affermativo, vai a LAbR.12.
LAbR.3 Esegui la procedura Send_Message (MsgSource, Notification, Label Request Aborted, TLV), dove TLV è il Label Request Message ID TLV ricevuto nel messaggio Label Abort Request.
LAbR.4 L'LSR ha un messaggio Label Request in sospeso per la FEC? In caso affermativo, vai a LAbR.7.
LAbR.5 L'LSR ha una mappatura di etichette per la FEC? In caso negativo, vai a LAbR.11.
LAbR.6 Genera l'Evento: Received Label Release message for FEC from MsgSource. (Vedere la Nota 2.) Vai a LAbR.11.
LAbR.7 L'LSR sta effettuando il merge dell'LSP per la FEC? In caso negativo, vai a LAbR.9.
LAbR.8 Esistono label request in sospeso per questa FEC? In caso affermativo, vai a LAbR.11.
LAbR.9 Esegui la procedura Send_Message (Next Hop, Label Abort Request, FEC, TLV), dove TLV è un Label Request Message ID TLV contenente il Message ID usato dall'LSR nel messaggio Label Request in sospeso.
LAbR.10 Registra che un label abort request per la FEC è in sospeso.
LAbR.11 Elimina la registrazione della label request per la FEC da MsgSource.
LAbR.12 FINE.
Note:
-
L'LSR usa la FEC e il Label Request Message ID TLV trasportato dal label abort request per individuare la propria registrazione (se presente) della label request precedentemente ricevuta da MsgSource.
-
Se l'LSR ha ricevuto una mappatura di etichette dal NextHop, dovrebbe comportarsi come se avesse pubblicizzato una mappatura di etichette a MsgSource e MsgSource l'avesse rilasciata.
A.1.4. Receive Label Release
Riepilogo:
Quando un LSR riceve un messaggio Label Release per una FEC da un peer, verifica se altri peer detengono l'etichetta rilasciata. Se nessuno la detiene, l'LSR rimuove l'etichetta dall'uso in inoltro/commutazione, se non lo ha già fatto, e se l'LSR detiene una mappatura di etichette dal next hop della FEC, rilascia la mappatura di etichette.
Contesto:
-
LSR. L'LSR che gestisce l'evento.
-
MsgSource. Il peer LDP che ha inviato il messaggio.
-
Label. L'etichetta specificata nel messaggio.
-
FEC. La FEC specificata nel messaggio.
Algoritmo:
LRl.1 La FEC corrisponde a una FEC nota? In caso negativo, vai a LRl.14.
LRl.2 Rimuovi MsgSource dalla registrazione dei peer che detengono Label per la FEC. (Vedere la Nota 1.)
LRl.3 Il messaggio corrisponde a un label withdraw in sospeso per la FEC precedentemente inviato a MsgSource? In caso negativo, vai a LRl.5
LRl.4 Elimina la registrazione del label withdraw in sospeso per la FEC precedentemente inviato a MsgSource.
LRl.5 L'LSR sta effettuando il merge delle etichette per questa FEC? In caso negativo, vai a LRl.7. (Vedere la Nota 2.)
LRl.6 L'LSR ha advertisement di etichette in sospeso per questa FEC? In caso affermativo, vai a LRl.11.
LRl.7 L'LSR è l'egress per la FEC? In caso affermativo, vai a LRl.11.
LRl.8 Esiste un Next Hop per la FEC? E L'LSR ha una mappatura di etichette per la FEC precedentemente ricevuta dal Next Hop? In caso negativo, vai a LRl.11.
LRl.9 L'LSR è configurato per propagare i rilasci? In caso negativo, vai a LRl.11. (Vedere la Nota 3.)
LRl.10 Esegui la procedura Send_Message (Next Hop, Label Release, FEC, Label dal Next Hop).
LRl.11 Rimuovi Label dall'uso in inoltro/commutazione per il traffico da MsgSource.
LRl.12 Qualche peer detiene ancora Label per la FEC? In caso affermativo, vai a LRl.14.
LRl.13 Libera la Label.
LRl.14 FINE.
Note:
-
Se l'LSR usa la distribuzione di etichette Downstream Unsolicited, NON DOVREBBE (SHOULD NOT) ripubblicizzare una mappatura di etichette per la FEC a MsgSource finché MsgSource non la richiede.
-
LRl.5 attraverso LRl.9 riguardano la determinazione di dove l'LSR debba propagare il Label Release a un peer a valle (LRl.9).
-
Se si raggiunge LRl.9, nessun LSR a monte detiene un'etichetta per la FEC, e l'LSR detiene un'etichetta per la FEC dal FEC Next Hop. L'LSR potrebbe propagare il Label Release al Next Hop. Propagando il Label Release, l'LSR libera una risorsa di etichette potenzialmente scarsa. Nel fare ciò, aumenta anche la latenza per il ristabilimento dell'LSP qualora MsgSource o qualche altro LSR a monte gli invii una nuova Label Request per la FEC.
Se propagare o meno il rilascio non è una questione di protocollo. La distribuzione delle etichette funzionerà correttamente sia che il rilascio venga propagato sia che non lo sia. La decisione di propagare o meno dovrebbe tenere in considerazione fattori quali se le etichette siano una risorsa scarsa nell'ambiente operativo, l'importanza di mantenere bassa la latenza di configurazione dell'LSP riducendo la quantità di segnalazione richiesta, e se la configurazione dell'LSP sia controllata dall'ingress o dall'egress nell'ambiente operativo.
A.1.5. Receive Label Withdraw
Riepilogo:
Quando un LSR riceve un messaggio Label Withdraw per una FEC da un peer LDP, risponde con un messaggio Label Release e rimuove l'etichetta da qualsiasi uso in inoltro/commutazione. Se è in uso il controllo ordinato, l'LSR invia un messaggio Label Withdraw a ciascun peer LDP a cui aveva precedentemente inviato una mappatura di etichette per la FEC. Se l'LSR usa l'advertisement di etichette Downstream on Demand con controllo indipendente, agisce poi come se avesse appena riconosciuto la FEC.
Contesto:
-
LSR. L'LSR che gestisce l'evento.
-
MsgSource. Il peer LDP che ha inviato il messaggio.
-
Label. L'etichetta specificata nel messaggio.
-
FEC. La FEC specificata nel messaggio.
Algoritmo:
LWd.1 Rimuovi Label dall'uso in inoltro/commutazione. (Vedere la Nota 1.)
LWd.2 Esegui la procedura Send_Message (MsgSource, Label Release, FEC, Label).
LWd.3 L'LSR ha precedentemente ricevuto e conservato una mappatura di etichette corrispondente per la FEC da MsgSource? In caso negativo, vai a LWd.13.
LWd.4 Elimina la mappatura di etichette corrispondente per la FEC precedentemente ricevuta da MsgSource.
LWd.5 L'LSR usa il controllo ordinato? In caso affermativo, vai a LWd.8.
LWd.6 MsgSource usa l'advertisement di etichette Downstream On Demand? In caso negativo, vai a LWd.13.
LWd.7 Genera l'Evento: Recognize New FEC for FEC. Vai a LWd.13. (Vedere la Nota 2.)
LWd.8 Itera da LWd.9 a LWd.12 per ciascun Peer, diverso da MsgSource.
LWd.9 L'LSR ha precedentemente inviato una mappatura di etichette per la FEC a Peer? In caso negativo, continua l'iterazione per il Peer successivo a LWd.8.
LWd.10 L'etichetta precedentemente inviata a Peer "mappa" alla Label ritirata? In caso negativo, continua l'iterazione per il Peer successivo a LWd.8. (Vedere la Nota 3.)
LWd.11 Esegui la procedura Send_Label_Withdraw (Peer, FEC, Label precedentemente inviata a Peer).
LWd.12 Termina l'iterazione da LWd.8.
LWd.13 FINE.
Note:
-
Se la Label non è in uso per inoltro/commutazione, LWd.1 non ha effetto.
-
LWd.7 gestisce il caso in cui l'LSR usi la distribuzione di etichette Downstream On Demand con controllo indipendente. In questa situazione, l'LSR deve inviare una label request al next hop della FEC come se avesse appena riconosciuto la FEC.
-
LWd.10 gestisce sia il caso con merge di etichette (una o più etichette in ingresso mappano sulla stessa etichetta in uscita) sia il caso senza merge di etichette (una etichetta mappa sull'etichetta in uscita).
A.1.6. Recognize New FEC
Riepilogo:
La risposta di un LSR all'apprendimento di una nuova FEC tramite la tabella di instradamento può comportare una o più delle seguenti azioni:
-
Trasmissione di mappature di etichette per la FEC a uno o più peer LDP;
-
Trasmissione di una richiesta di etichetta per la FEC al next hop della FEC;
-
Una qualsiasi delle azioni che possono verificarsi quando l'LSR riceve una mappatura di etichette per la FEC dal next hop della FEC.
Contesto:
-
LSR. L'LSR che gestisce l'evento.
-
FEC. La FEC appena riconosciuta.
-
Next Hop. Il next hop per la FEC.
-
InitAttributes. Gli attributi da associare alla nuova FEC. (Vedere la Nota 1.)
-
SAttributes. Gli attributi da includere nei messaggi Label Mapping o Label Request, se presenti, inviati ai peer.
-
StoredHopCount. L'hop count associato alla mappatura di etichette della FEC, se presente, precedentemente ricevuta dal Next Hop.
Algoritmo:
FEC.1 Esegui la procedura LSR Label Distribution:
Per Downstream Unsolicited Independent Control
1. Itera dal passo 2 al passo 5 per ciascun Peer.
2. L'LSR ha precedentemente ricevuto e conservato una
mappatura di etichette per la FEC dal Next Hop?
In caso affermativo, imposta Propagating a
IsPropagating.
In caso negativo, imposta Propagating a
NotPropagating.
3. Esegui la procedura
Prepare_Label_Mapping_Attributes (Peer, FEC,
InitAttributes, SAttributes, Propagating,
Unknown hop count(0)).
4. Esegui la procedura Send_Label (Peer, FEC, SAttributes).
5. Termina l'iterazione dal passo 1.
Vai a FEC.2.
Per Downstream Unsolicited Ordered Control
1. Itera dal passo 2 al passo 5 per ciascun Peer.
2. L'LSR è l'egress per la FEC? OPPURE L'LSR ha
precedentemente ricevuto e conservato una mappatura di
etichette per la FEC dal Next Hop?
In caso negativo, continua l'iterazione per il Peer
successivo.
3. Esegui la procedura
Prepare_Label_Mapping_Attributes (Peer, FEC,
InitAttributes, SAttributes, Propagating,
StoredHopCount).
4. Esegui la procedura Send_Label (Peer, FEC, SAttributes).
5. Termina l'iterazione dal passo 1.
Vai a FEC.2.
Per Downstream On Demand Independent Control OPPURE
Per Downstream On Demand Ordered Control
1. Vai a FEC.2. (Vedere la Nota 2.)
FEC.2 L'LSR ha precedentemente ricevuto e conservato una mappatura di etichette per la FEC dal Next Hop? In caso affermativo, vai a FEC.5
FEC.3 Il Next Hop è un peer LDP? In caso negativo, vai a FEC.6
FEC.4 Esegui la procedura LSR Label Request:
Per Request Never
1. Vai a FEC.6
Per Request When Needed OPPURE
Per Request On Request
1. Esegui la procedura
Prepare_Label_Request_Attributes (Next Hop, FEC,
InitAttributes, SAttributes);
2. Esegui la procedura Send_Label_Request (Next Hop, FEC,
SAttributes).
Vai a FEC.6.
FEC.5 Genera l'Evento: Received Label Mapping from Next Hop. (Vedere la Nota 3.)
FEC.6 FINE.
Note:
-
Un esempio di attributo che potrebbe far parte di InitAttributes è quello che specifica le caratteristiche desiderate dell'LSP, come la Class of Service (CoS). (Si noti che, sebbene la versione attuale di LDP non specifichi un attributo CoS, le estensioni di LDP potrebbero farlo.)
Il mezzo con cui vengono specificati i FEC InitAttributes, se presenti, esula dallo scopo di LDP. Si noti che gli InitAttributes non includeranno un Hop Count noto né un Path Vector.
-
Un LSR che usa la distribuzione di etichette Downstream On Demand invierebbe un'etichetta solo se avesse una label request precedentemente ricevuta contrassegnata come in sospeso. L'LSR non avrebbe tali richieste in sospeso, perché risponde a qualsiasi label request per una FEC sconosciuta inviando all'LSR richiedente una notifica No Route e scartando la label request; vedere LRq.3
-
Se l'LSR ha un'etichetta per la FEC dal Next Hop, dovrebbe comportarsi come se avesse appena ricevuto l'etichetta dal Next Hop. Ciò si verifica nel caso della modalità Liberal Label retention.
A.1.7. Detect Change in FEC Next Hop
Riepilogo:
La risposta di un LSR a un cambiamento del next hop per una FEC può comportare una o più delle seguenti azioni:
-
Rimozione dall'uso in inoltro/commutazione dell'etichetta dal vecchio next hop della FEC;
-
Trasmissione di messaggi di mappatura di etichette per la FEC a uno o più peer LDP;
-
Trasmissione di una label request al nuovo next hop della FEC;
-
Una qualsiasi delle azioni che possono verificarsi quando l'LSR riceve una mappatura di etichette dal nuovo next hop della FEC.
Contesto:
-
LSR. L'LSR che gestisce l'evento.
-
FEC. La FEC il cui next hop è cambiato.
-
New Next Hop. Il next hop corrente per la FEC.
-
Old Next Hop. Il next hop precedente per la FEC.
-
OldLabel. L'etichetta, se presente, precedentemente ricevuta da Old Next Hop.
-
CurAttributes. Gli attributi, se presenti, attualmente associati alla FEC.
-
SAttributes. Gli attributi da includere nel messaggio Label Request, se presente, inviato a New Next Hop.
Algoritmo:
NH.1 L'LSR ha precedentemente ricevuto e conservato una mappatura di etichette per la FEC da Old Next Hop? In caso negativo, vai a NH.6.
NH.2 Rimuovi l'etichetta dall'uso in inoltro/commutazione. (Vedere la Nota 1.)
NH.3 L'LSR usa la Liberal Label retention? In caso affermativo, vai a NH.6.
NH.4 Esegui la procedura Send_Message (Old Next Hop, Label Release, OldLabel).
NH.5 Elimina la mappatura di etichette per la FEC precedentemente ricevuta da Old Next Hop.
NH.6 L'LSR ha una label request in sospeso con Old Next Hop? In caso negativo, vai a NH.10.
NH.7 L'LSR usa la Conservative Label retention? In caso negativo, vai a NH.10.
NH.8 Esegui la procedura Send_Message (Old Next Hop, Label Abort Request, FEC, TLV), dove TLV è un Label Request Message ID TLV che trasporta il message ID della label request in sospeso.
NH.9 Registra che un label abort request è in sospeso per la FEC con Old Next Hop.
NH.10 Esiste un New Next Hop per la FEC? In caso negativo, vai a NH.16.
NH.11 L'LSR ha precedentemente ricevuto e conservato una mappatura di etichette per la FEC da New Next Hop? In caso negativo, vai a NH.13.
NH.12 Genera l'Evento: Received Label Mapping from New Next Hop. Vai a NH.20. (Vedere la Nota 2.)
NH.13 L'LSR usa l'advertisement Downstream on Demand? OPPURE Il Next Hop usa l'advertisement Downstream on Demand? OPPURE L'LSR usa la Conservative Label retention? (Vedere la Nota 3.) In caso affermativo, vai a NH.14. In caso negativo, vai a NH.20.
NH.14 Esegui la procedura Prepare_Label_Request_Attributes (Next Hop, FEC, CurAttributes, SAttributes).
NH.15 Esegui la procedura Send_Label_Request (New Next Hop, FEC, SAttributes). (Vedere la Nota 4.) Vai a NH.20.
NH.16 Itera da NH.17 a NH.19 per ciascun Peer.
NH.17 L'LSR ha precedentemente inviato una mappatura di etichette per la FEC a Peer? In caso negativo, continua l'iterazione per il Peer successivo a NH.16.
NH.18 Esegui la procedura Send_Label_Withdraw (Peer, FEC, Label precedentemente inviata a Peer).
NH.19 Termina l'iterazione da NH.16.
NH.20 FINE.
Note:
-
Se la Label non è in uso per inoltro/commutazione, NH.2 non ha effetto.
-
Se l'LSR ha un'etichetta per la FEC dal New Next Hop, dovrebbe comportarsi come se avesse appena ricevuto l'etichetta dal New Next Hop.
-
Lo scopo del controllo sulla modalità di conservazione delle etichette è evitare una competizione (race) con i passi LMp.12-LMp.13 della procedura per la gestione di un messaggio Label Mapping, in cui l'LSR che opera in modalità Conservative Label retention può aver rilasciato una mappatura di etichette ricevuta dal New Next Hop prima di aver rilevato che il next hop della FEC era cambiato.
-
Indipendentemente dalla procedura Label Request in uso da parte dell'LSR, esso DEVE (MUST) inviare una label request se sussistono le condizioni di NH.13. Pertanto, esegue direttamente la procedura Send_Label_Request anziché eseguire la procedura LSR Label Request.
A.1.8. Receive Notification / Label Request Aborted
Riepilogo:
Quando un LSR riceve una notifica Label Request Aborted da un peer LDP, registra che la corrispondente transazione di label request, se presente, è completata.
Contesto:
-
LSR. L'LSR che gestisce l'evento.
-
FEC. La FEC per cui è stata richiesta un'etichetta.
-
RequestMessageID. Il message ID del messaggio di label request da annullare.
-
MsgSource. Il peer LDP che ha inviato il messaggio Notification.
Algoritmo:
LRqA.1 La notifica corrisponde a un label request abort in sospeso per la FEC? (Vedere la Nota 1.) In caso negativo, vai a LRqA.3.
LRqA.2 Registra che la label request per la FEC è stata annullata.
LRqA.3 FINE.
Nota:
- L'LSR usa la FEC e RequestMessageID per individuare la propria registrazione, se presente, del label request abort in sospeso.
A.1.9. Receive Notification / No Label Resources
Riepilogo:
Quando un LSR riceve una notifica No Label Resources da un peer LDP, smette di inviare messaggi di label request al peer finché non riceve dal peer una notifica Label Resources Available.
Contesto:
-
LSR. L'LSR che gestisce l'evento.
-
FEC. La FEC per cui è stata richiesta un'etichetta.
-
MsgSource. Il peer LDP che ha inviato il messaggio Notification.
Algoritmo:
NoRes.1 Elimina la registrazione della label request in sospeso per la FEC inviata a MsgSource.
NoRes.2 Registra che la mappatura di etichette per la FEC da MsgSource è necessaria ma che non sono disponibili risorse di etichette.
NoRes.3 Imposta la registrazione di stato che indica che non è possibile inviare label request a MsgSource.
NoRes.4 FINE.
A.1.10. Receive Notification / No Route
Riepilogo:
Quando un LSR riceve una notifica No Route da un peer LDP in risposta a un messaggio Label Request, la procedura Label No Route in uso ne determina la risposta. L'LSR o non intraprenderà ulteriori azioni, oppure rinvierà la label request avviando un timer e invierà un altro messaggio Label Request al peer quando il timer scadrà in seguito.
Contesto:
-
LSR. L'LSR che gestisce l'evento.
-
FEC. La FEC per cui è stata richiesta un'etichetta.
-
Attributes. Gli attributi associati alla label request.
-
MsgSource. Il peer LDP che ha inviato il messaggio Notification.
Algoritmo:
NoNH.1 Elimina la registrazione della label request in sospeso per la FEC inviata a MsgSource.
NoNH.2 Esegui la procedura LSR Label No Route.
Per Request No Retry
1. Vai a NoNH.3.
Per Request Retry
1. Registra la label request differita per la FEC e gli
Attributes da inviare a MsgSource.
2. Avvia il timeout. Vai a NoNH.3.
NoNH.3 FINE.
A.1.11. Receive Notification / Loop Detected
Riepilogo:
Quando un LSR riceve uno Status Code Loop Detected da un peer LDP in risposta a un messaggio Label Request o a un messaggio Label Mapping, si comporta come se avesse ricevuto una notifica No Route.
Contesto:
Vedere "Receive Notification / No Route".
Algoritmo:
Vedere "Receive Notification / No Route".
Nota:
- Quando la notifica Loop Detected è in risposta a un messaggio Label Request, arriva in un TLV Status Code all'interno di un messaggio Notification. Quando è in risposta a un messaggio Label Mapping, arriva in un TLV Status Code all'interno di un messaggio Label Release.
A.1.12. Receive Notification / Label Resources Available
Riepilogo:
Quando un LSR riceve una notifica Label Resources Available da un peer LDP, riprende a inviare label request al peer.
Contesto:
-
LSR. L'LSR che gestisce l'evento.
-
MsgSource. Il peer LDP che ha inviato il messaggio Notification.
-
SAttributes. Gli attributi memorizzati con il messaggio Label Request rinviato.
Algoritmo:
Res.1 Imposta la registrazione di stato che indica che è possibile inviare label request a MsgSource.
Res.2 Itera da Res.3 a Res.6 per ciascuna registrazione di una mappatura di etichette per una FEC necessaria da MsgSource per cui non sono disponibili risorse di etichette.
Res.3 MsgSource è il next hop per la FEC? In caso negativo, vai a Res.5.
Res.4 Esegui la procedura Send_Label_Request (MsgSource, FEC, SAttributes). Se la procedura fallisce, termina l'iterazione.
Res.5 Elimina la registrazione che non sono disponibili risorse per una mappatura di etichette per la FEC necessaria da MsgSource.
Res.6 Termina l'iterazione da Res.2.
Res.7 FINE.
A.1.13. Detect Local Label Resources Have Become Available
Riepilogo:
Dopo che un LSR ha inviato una notifica No Label Resources a un peer LDP, quando le risorse di etichette diventano disponibili in seguito invia una notifica Label Resources Available a ciascuno di tali peer.
Contesto:
-
LSR. L'LSR che gestisce l'evento.
-
Attributes. Gli attributi memorizzati con il messaggio Label Mapping rinviato.
Algoritmo:
ResA.1 Itera da ResA.2 a ResA.4 per ciascun Peer a cui l'LSR ha precedentemente inviato una notifica No Label Resources.
ResA.2 Esegui la procedura Send_Notification (Peer, Label Resources Available).
ResA.3 Elimina la registrazione che la notifica No Label Resources è stata precedentemente inviata a Peer.
ResA.4 Termina l'iterazione da ResA.1.
ResA.5 Itera da ResA.6 a ResA.8 per ciascuna registrazione di una mappatura di etichette necessaria per la FEC per Peer ma senza risorse di etichette. (Vedere la Nota 1.)
ResA.6 Esegui la procedura Send_Label (Peer, FEC, Attributes). Se la procedura fallisce, termina l'iterazione.
ResA.7 Cancella la registrazione della mappatura di etichette per la FEC necessaria per il peer ma senza risorse di etichette.
ResA.8 Termina l'iterazione da ResA.5
ResA.9 FINE.
Nota:
- L'iterazione da ResA.5 a ResA.8 gestisce la situazione in cui l'LSR usa la distribuzione di etichette Downstream Unsolicited e in precedenza non era in grado di allocare un'etichetta per una FEC.
A.1.14. LSR Decides to No Longer Label Switch a FEC
Riepilogo:
Un LSR può decidere unilateralmente di non commutare più etichette per una FEC per un peer LDP. Un LSR che lo fa DEVE (MUST) inviare al peer un messaggio Label Withdraw per la FEC.
Contesto:
-
Peer. Il peer.
-
FEC. La FEC.
-
PrevAdvLabel. L'etichetta per la FEC precedentemente pubblicizzata al Peer.
Algoritmo:
NoLS.1 Esegui la procedura Send_Label_Withdraw (Peer, FEC, PrevAdvLabel). (Vedere la Nota 1.)
NoLS.2 FINE.
Nota:
- L'LSR può rimuovere l'etichetta dall'uso in inoltro/commutazione nell'ambito di questo evento o nell'ambito dell'elaborazione del Label Release dal peer in risposta al label withdraw. Se l'LSR non attende il messaggio Label Release dal peer, NON DOVREBBE (SHOULD NOT) riutilizzare l'etichetta finché non riceve il Label Release.
A.1.15. Timeout of Deferred Label Request
Riepilogo:
Le label request sono rinviate in risposta alle notifiche No Route e Loop Detected. Quando una label request per una FEC rinviata per un peer scade, l'LSR invia la label request.
Contesto:
-
LSR. L'LSR che gestisce l'evento.
-
FEC. La FEC associata all'evento di timeout.
-
Peer. Il peer LDP associato all'evento di timeout.
-
Attributes. Gli attributi memorizzati con il messaggio Label Request rinviato.
Algoritmo:
TO.1 Recupera la registrazione della label request rinviata.
TO.2 Peer è il next hop per la FEC? In caso negativo, vai a TO.4.
TO.3 Esegui la procedura Send_Label_Request (Peer, FEC).
TO.4 FINE.