4. Capabilities Optional Parameter (paramètre optionnel Capabilities, Parameter Type 2)
4. Capabilities Optional Parameter (Parameter Type 2) (paramètre optionnel Capabilities, type de paramètre 2)
Il s'agit d'un Optional Parameter utilisé par un BGP speaker pour communiquer à son BGP peer la liste des capacités qu'il prend en charge. L'encodage des BGP Optional Parameters est spécifié à la section 4.2 de [RFC4271]. Le type de paramètre du Capabilities Optional Parameter est 2.
Le paramètre contient un ou plusieurs triplets <Capability Code, Capability Length, Capability Value>, chaque triplet étant encodé comme ci-dessous :
+------------------------------+
| Capability Code (1 octet) |
+------------------------------+
| Capability Length (1 octet) |
+------------------------------+
| Capability Value (variable) |
~ ~
+------------------------------+
L'utilisation et la signification de ces champs sont les suivantes :
Capability Code :
Capability Code est un entier binaire non signé d'un octet qui identifie sans ambiguïté chaque capacité.
Capability Length :
Capability Length est un entier binaire non signé d'un octet qui contient la longueur du champ Capability Value en octets.
Capability Value :
Capability Value est un champ de longueur variable interprété selon la valeur du champ Capability Code.
Les BGP speakers NE DEVRAIENT PAS inclure plus d'une instance d'une capacité avec le même Capability Code, Capability Length et Capability Value. Noter toutefois que le traitement de plusieurs instances d'une telle capacité ne nécessite pas de traitement particulier, car des instances supplémentaires ne modifient pas la signification de la capacité annoncée ; ainsi, un BGP speaker DOIT être prêt à accepter de telles instances multiples.
Les BGP speakers PEUVENT inclure plus d'une instance d'une capacité (identifiée par le Capability Code) avec un champ Capability Length non nul, mais avec des Capability Value différentes et un Capability Length identique ou différent. Le traitement de ces instances est propre au Capability Code et DOIT être décrit dans le document introduisant la nouvelle capacité.
Le Capabilities Optional Parameter (OPEN Optional Parameter Type 2) NE DEVRAIT être inclus dans le message OPEN qu'une seule fois. Si le BGP speaker souhaite inclure plusieurs capacités dans le message OPEN, il DEVRAIT le faire comme indiqué ci-dessus, en listant toutes ces capacités comme TLV dans un seul Capabilities Optional Parameter. Toutefois, pour la compatibilité ascendante, un BGP speaker DOIT être prêt à recevoir un message OPEN contenant plusieurs Capabilities Optional Parameters, chacun contenant un ou plusieurs TLV de capacités. L'ensemble des capacités devrait être traité de la même manière dans les deux cas, qu'il soit énuméré dans un seul Capabilities Optional Parameter du message OPEN ou réparti sur plusieurs Capabilities Optional Parameters.