3.5.2. Messaggio Hello
I messaggi LDP Hello vengono scambiati come parte del meccanismo di LDP Discovery; vedere la sezione "LDP Discovery".
La codifica del messaggio Hello è:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0| Hello (0x0100) | Message Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Common Hello Parameters TLV |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Optional Parameters |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Message ID Valore a 32 bit usato per identificare questo messaggio.
Common Hello Parameters TLV Specifica i parametri comuni a tutti i messaggi Hello. La codifica del TLV Common Hello Parameters è:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0|0| Common Hello Parms(0x0400)| Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Hold Time |T|R| Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Hold Time Tempo di hold dell'Hello in secondi. Un LSR mantiene una registrazione degli Hello ricevuti da potenziali peer (vedere la sezione "Hello Message Procedures"). Hello Hold Time specifica il tempo durante il quale l'LSR mittente manterrà la propria registrazione degli Hello dal LSR ricevente senza ricevere un altro Hello.
Una coppia di LSR negozia i tempi di hold che usano per gli Hello ricevuti l'uno dall'altro. Ciascuno propone un tempo di hold. Il tempo di hold usato è il minimo dei tempi di hold proposti nei rispettivi Hello.
Un valore di 0 significa usare il valore predefinito, che è 15 secondi per i Link Hello e 45 secondi per i Targeted Hello. Un valore di 0xffff significa infinito.
T, Targeted Hello Un valore di 1 specifica che questo Hello è un Targeted Hello. Un valore di 0 specifica che questo Hello è un Link Hello.
R, Request Send Targeted Hellos Un valore di 1 richiede al ricevitore di inviare periodicamente Targeted Hello alla sorgente di questo Hello. Un valore di 0 non formula alcuna richiesta.
Un LSR che avvia la Extended Discovery imposta R a 1. Se R è 1, l'LSR ricevente verifica se è stato configurato per inviare Targeted Hello alla sorgente dell'Hello in risposta a Hello con questa richiesta. In caso negativo, ignora la richiesta. In caso affermativo, avvia la trasmissione periodica di Targeted Hello verso la sorgente dell'Hello.
Reserved Questo campo è riservato. DEVE (MUST) essere posto a zero alla trasmissione e ignorato alla ricezione.
Optional Parameters Questo campo di lunghezza variabile del messaggio Hello contiene 0 o più parametri, ciascuno codificato come TLV. I parametri opzionali definiti da questa versione del protocollo sono
Optional Parameter Type Length Value
IPv4 Transport Address 0x0401 4 See below
Configuration 0x0402 4 See below
Sequence Number
IPv6 Transport Address 0x0403 16 See below
IPv4 Transport Address Specifica l'indirizzo IPv4 da usare per l'LSR mittente all'apertura della connessione TCP della sessione LDP. Se questo TLV opzionale non è presente, DOVREBBE (SHOULD) essere usato l'indirizzo sorgente IPv4 del pacchetto UDP che trasporta l'Hello.
Configuration Sequence Number Specifica un numero di sequenza di configurazione senza segno di 4 ottetti che identifica lo stato di configurazione dell'LSR mittente. Usato dall'LSR ricevente per rilevare modifiche di configurazione sull'LSR mittente.
IPv6 Transport Address Specifica l'indirizzo IPv6 da usare per l'LSR mittente all'apertura della connessione TCP della sessione LDP. Se questo TLV opzionale non è presente, DOVREBBE (SHOULD) essere usato l'indirizzo sorgente IPv6 del pacchetto UDP che trasporta l'Hello.
3.5.2.1. Procedure del messaggio Hello
Un LSR che riceve Hello da un altro LSR mantiene una Hello adjacency corrispondente agli Hello. L'LSR mantiene un hold timer con la Hello adjacency, che riavvia ogni volta che riceve un Hello che corrisponde alla Hello adjacency. Se l'hold timer di una Hello adjacency scade, l'LSR scarta la Hello adjacency: vedere le sezioni "Maintaining Hello Adjacencies" e "Maintaining LDP Sessions".
Raccomandiamo che l'intervallo tra le trasmissioni di Hello sia al massimo un terzo dell'Hello hold time.
Un LSR elabora un LDP Hello ricevuto come segue:
-
L'LSR verifica se l'Hello è accettabile. I criteri per determinare se un Hello è accettabile dipendono dall'implementazione (vedere di seguito criteri di esempio).
-
Se l'Hello non è accettabile, l'LSR lo ignora.
-
Se l'Hello è accettabile, l'LSR verifica se ha una Hello adjacency per la sorgente dell'Hello. In caso affermativo, riavvia l'hold timer della Hello adjacency. In caso negativo, crea una Hello adjacency per la sorgente dell'Hello e avvia il suo hold timer.
-
Se l'Hello trasporta TLV opzionali, l'LSR li elabora (vedere di seguito).
-
Infine, se l'LSR non ha alcuna sessione LDP per lo spazio di etichette specificato dall'LDP Identifier nell'intestazione della PDU dell'Hello, segue le procedure della sezione "LDP Session Establishment".
I seguenti sono esempi di criteri di accettabilità per i Link Hello e i Targeted Hello:
Un Link Hello è accettabile se l'interfaccia su cui è stato ricevuto è stata configurata per la commutazione di etichette.
Un Targeted Hello dalla sorgente di indirizzo A è accettabile se:
-
l'LSR è stato configurato per accettare Targeted Hello, oppure
-
l'LSR è stato configurato per inviare Targeted Hello ad A.
Quanto segue descrive come un LSR elabora i TLV opzionali dell'Hello:
Transport Address L'LSR associa l'indirizzo di trasporto specificato con la Hello adjacency.
Configuration Sequence Number Il parametro opzionale Configuration Sequence Number è usato dall'LSR mittente per segnalare modifiche di configurazione all'LSR ricevente. Quando un LSR ricevente che svolge il ruolo attivo nell'instaurazione della sessione LDP rileva una modifica nella configurazione dell'LSR mittente, può azzerare il backoff delay di avvio della sessione, se presente, associato all'LSR mittente (vedere la sezione "Session Initialization").
Un LSR mittente che usa questo parametro opzionale è responsabile del mantenimento del numero di sequenza di configurazione che trasmette nei messaggi Hello. Ogni volta che c'è una modifica di configurazione sull'LSR mittente, incrementa il numero di sequenza di configurazione.