4. Capabilities Optional Parameter (parametro opzionale Capabilities, Parameter Type 2)
4. Capabilities Optional Parameter (Parameter Type 2) (parametro opzionale Capabilities, tipo di parametro 2)
Questo è un Optional Parameter usato da un BGP speaker per comunicare al BGP peer l'elenco delle capabilities supportate dallo speaker. La codifica dei BGP Optional Parameters è specificata nella sezione 4.2 di [RFC4271]. Il tipo di parametro del Capabilities Optional Parameter è 2.
Il parametro contiene una o più terne <Capability Code, Capability Length, Capability Value>, ciascuna terna è codificata come segue:
+------------------------------+
| Capability Code (1 octet) |
+------------------------------+
| Capability Length (1 octet) |
+------------------------------+
| Capability Value (variable) |
~ ~
+------------------------------+
L'uso e il significato di questi campi sono i seguenti:
Capability Code:
Capability Code è un intero binario senza segno di un ottetto che identifica senza ambiguità le singole capabilities.
Capability Length:
Capability Length è un intero binario senza segno di un ottetto che contiene la lunghezza del campo Capability Value in ottetti.
Capability Value:
Capability Value è un campo di lunghezza variabile interpretato in base al valore del campo Capability Code.
I BGP speaker NON DOVREBBERO includere più di un'istanza di una capability con lo stesso Capability Code, Capability Length e Capability Value. Si noti tuttavia che l'elaborazione di più istanze di tale capability non richiede un trattamento speciale, poiché le istanze aggiuntive non cambiano il significato della capability annunciata; pertanto un BGP speaker DEVE essere preparato ad accettare tali istanze multiple.
I BGP speaker POSSONO includere più di un'istanza di una capability (identificata dal Capability Code) con Capability Length diverso da zero, ma con Capability Value diversi e Capability Length uguale o diverso. L'elaborazione di queste istanze è specifica del Capability Code e DEVE essere descritta nel documento che introduce la nuova capability.
Il Capabilities Optional Parameter (OPEN Optional Parameter Type 2) DOVREBBE essere incluso nel messaggio OPEN una sola volta. Se il BGP speaker desidera includere più capabilities nel messaggio OPEN, DOVREBBE farlo come discusso sopra, elencando tutte tali capabilities come TLV all'interno di un singolo Capabilities Optional Parameter. Tuttavia, per compatibilità con le implementazioni precedenti, un BGP speaker DEVE essere preparato a ricevere un messaggio OPEN che contiene più Capabilities Optional Parameters, ciascuno dei quali contiene una o più capabilities TLV. L'insieme delle capabilities dovrebbe essere elaborato allo stesso modo in entrambi i casi, sia che sia elencato all'interno di un singolo Capabilities Optional Parameter del messaggio OPEN sia che sia ripartito su più Capabilities Optional Parameters.