9.1.1. Options de Fonctionnalité Limitée et Complète (The Limited-functionality and Full-functionality Options)
L'option de fonctionnalité limitée (limited-functionality option) pour l'encapsulation ECN dans les tunnels IP consiste à définir le codepoint not-ECT dans l'en-tête externe (encapsulant), quelle que soit la valeur du champ ECN dans l'en-tête intérieur (encapsulé). Avec cette option, le champ ECN dans l'en-tête intérieur n'est pas modifié lors de la décapsulation. L'inconvénient de cette approche est que le flux ne dispose pas de support ECN sur la partie du chemin qui utilise le tunnel IP, même si le paquet encapsulé (de l'expéditeur TCP original) prend en charge ECN. C'est-à-dire que si le paquet encapsulé arrive à un routeur congestionné compatible ECN, et que le routeur peut décider d'abandonner ou de marquer le paquet comme indication de congestion aux nœuds terminaux, le routeur ne sera pas autorisé à définir le codepoint CE dans l'en-tête de paquet mais devra abandonner le paquet.
L'option de fonctionnalité complète (full-functionality option) pour l'encapsulation ECN consiste, lors de l'encapsulation, à copier le codepoint ECN de l'en-tête intérieur vers l'en-tête extérieur si l'en-tête intérieur est not-ECT ou ECT, et à définir le codepoint ECN de l'en-tête extérieur sur ECT(0) si le codepoint ECN de l'en-tête intérieur est CE. Lors de la décapsulation, si le codepoint CE est défini sur l'en-tête externe, alors le codepoint CE est également défini sur l'en-tête intérieur. Sinon, le codepoint ECN sur l'en-tête intérieur reste inchangé. C'est-à-dire que pour un support ECN complet, le traitement d'encapsulation et de décapsulation implique ce qui suit : À l'entrée du tunnel, l'option de fonctionnalité complète définit le codepoint ECN dans l'en-tête extérieur. Si le codepoint ECN dans l'en-tête intérieur est not-ECT ou ECT, il est copié dans le codepoint ECN dans l'en-tête extérieur. Si le codepoint ECN dans l'en-tête intérieur est CE, alors le codepoint ECN dans l'en-tête extérieur est défini sur ECT(0). À la sortie du tunnel lors de la décapsulation, si le codepoint CE est défini dans l'en-tête externe, alors l'option de fonctionnalité complète définit le codepoint CE dans l'en-tête intérieur. Sinon, aucun changement n'est apporté à ce champ de l'en-tête intérieur.
Avec l'option de fonctionnalité complète, le flux peut utiliser ECN sur la partie du chemin qui peut utiliser des tunnels IP. Du point de vue de la sécurité, l'inconvénient de l'option de fonctionnalité complète est que le tunnel IP ne peut pas protéger le flux contre certaines modifications des bits ECN dans l'en-tête IP dans le tunnel. Les sections 18 et 19 décrivent en détail les dangers potentiels de la modification des bits ECN dans l'en-tête IP.
(1) Les tunnels IP DOIVENT modifier le traitement de l'octet de champ DS aux points de terminaison du tunnel IP en implémentant l'option de fonctionnalité limitée ou complète.
(2) Optionnellement, les tunnels IP PEUVENT permettre aux points de terminaison du tunnel IP de négocier le choix entre les options de fonctionnalité limitée et complète pour ECN dans le tunnel.
L'exigence minimale pour rendre ECN disponible pour les tunnels IP est l'option de fonctionnalité limitée, qui empêche l'activation d'ECN dans l'en-tête externe du tunnel. Le support complet d'ECN nécessite l'utilisation de l'option de fonctionnalité complète. En l'absence du mécanisme optionnel de négociation entre les points de terminaison du tunnel pour choisir entre les options de fonctionnalité limitée ou complète, il peut y avoir un accord préexistant entre les points de terminaison du tunnel pour supporter l'option ECN de fonctionnalité limitée ou complète.
Tous les tunnels IP DOIVENT implémenter l'option de fonctionnalité limitée et DEVRAIENT supporter l'option de fonctionnalité complète.
De plus, il est recommandé que si le point de sortie du tunnel d'un tunnel utilisant l'option de fonctionnalité limitée reçoit un paquet avec le codepoint CE défini dans l'en-tête externe, ou si le point de sortie du tunnel d'un tunnel utilisant l'option de fonctionnalité complète mais avec le codepoint not-ECT défini dans l'en-tête intérieur reçoit un tel paquet, alors ces paquets DEVRAIENT être abandonnés. Ceci est motivé par la compatibilité ascendante et pour s'assurer qu'aucune modification non autorisée du champ ECN ne se produit, ce qui sera discuté plus en détail dans la section suivante (9.1.2).