8. Compatibilité des RR ServiceMode et clés obligatoires
Dans un RR ServiceMode, une SvcParamKey est considérée comme "obligatoire" si le RR ne fonctionnera pas correctement pour les clients qui ignorent cette SvcParamKey. Chaque mappage de protocole SVCB devrait spécifier un ensemble de clés qui sont "automatiquement obligatoires", c'est-à-dire obligatoires si elles sont présentes dans un RR. La SvcParamKey "mandatory" est utilisée pour indiquer toute clé obligatoire pour ce RR, en plus de toutes les clés automatiquement obligatoires qui sont présentes.
Un RR ServiceMode est considéré comme "compatible" par un client si le client reconnaît toutes les clés obligatoires et que leurs valeurs indiquent qu'un établissement de connexion réussi est possible. Les RR incompatibles sont ignorés (voir l'étape 5 de la procédure définie dans la section 3).
La valeur de présentation doit être une liste séparée par des virgules d'une ou plusieurs SvcParamKeys valides, soit par leur nom enregistré, soit dans le format de clé inconnue (section 2.1). Les clés peuvent apparaître dans n'importe quel ordre mais ne doivent pas apparaître plus d'une fois. Pour l'auto-cohérence (section 2.4.3), les clés listées doivent également apparaître dans les SvcParams.
Pour permettre une analyse plus simple, cette SvcParamValue ne doit pas contenir de séquences d'échappement.
La valeur du format fil est la concaténation de la valeur numérique de chaque clé dans l'ordre des octets du réseau, sans aucun remplissage interne.
Par exemple, un RR ServiceMode avec les clés alpn, port et une hypothétique nouvelle clé foo (SvcParamKey=54321) aurait une valeur mandatory de "mandatory=alpn,port,foo" en format de présentation. En format fil, cela serait représenté par les octets suivants :
00 01 00 03 d4 31
(Dans ce qui précède, "00 01" représente la valeur numérique de "alpn", "00 03" représente la valeur numérique de "port", et "d4 31" représente la valeur numérique 54321 dans l'ordre des octets du réseau.)