Résumé
- La révision 00 de
draft-ietf-netmod-yang-xmlrassemble les règles XML des données YANG : noms qualifiés, ordre des listes, valeurs typées, métadonnées et références. - Un XML bien formé, validé ou canonique ne prouve ni l’arbre effectif avec ses valeurs par défaut, ni l’acceptation d’une opération, ni la convergence entre configuration et état opérationnel.
Deux sauvegardes arrivent au contrôle du changement. L’une écrit un espace de noms par défaut, l’autre choisit un préfixe. Après canonicalisation, leur empreinte est identique. Pourtant, la première vient d’un serveur qui masque les valeurs par défaut et la seconde d’un outil qui les a matérialisées sous un autre jeu de modules. Le contrôle a établi une identité XML ; il n’a jamais comparé la même question YANG.
Publié le 8 juin 2026, XML Encoding of Data Modeled with YANG veut déplacer hors de RFC 7950 la définition normative de l’encodage XML. Le texte couvre configuration, état, paramètres d’RPC ou d’action et notifications. Il reste un Internet-Draft, expire le 10 décembre 2026 et conserve des sections IANA et sécurité marquées FIXME. Sa portée doit donc être lue comme celle d’un contrat en cours d’élaboration.
Le préfixe est local, l’espace de noms est l’identité
Chaque instance de nœud YANG devient un élément XML dont le nom local est l’identifiant du nœud et dont l’espace de noms vient du module. Le document doit déclarer l’espace au sommet puis le changer lorsqu’un enfant appartient à un module différent. Deux préfixes peuvent désigner le même URI ; une comparaison textuelle les sépare à tort.
Le piège se déplace dans les valeurs. Un identityref contient un nom qualifié et peut employer plusieurs préfixes locaux pour la même identité. Un instance-identifier exige un préfixe explicite pour chaque nom de nœud, mais ces préfixes ne valent que dans l’instance. Réécrire les chaînes sans garder les liaisons namespace peut fusionner des identités différentes. Même une chaîne correctement résolue ne prouve pas que le nœud ciblé existe dans l’arbre concerné.
RFC 8525 fournit YANG Library pour annoncer les modules, révisions, features et deviations. Cette annonce fixe un contexte de validation ; elle ne démontre pas à elle seule quels octets un processus a réellement chargés.
L’ordre appartient tantôt au modèle, tantôt à l’utilisateur
Les enfants ordinaires d’un container peuvent être encodés dans n’importe quel ordre. Les paramètres d’entrée ou de sortie d’une RPC/action suivent l’ordre du schéma. Les clés d’une list précèdent les autres enfants. Pour une list ou leaf-list ordered-by user, la séquence utilisateur doit être conservée ; pour ordered-by system, elle dépend de l’implémentation.
Trier tous les éléments avant le diff élimine donc du bruit et, dans le même geste, peut effacer une décision. Une politique first-match ou une chaîne de préférences peut rester XML-valide après le tri tout en devenant une autre politique. Le reçu utile associe la séquence d’origine au nœud YANG et à sa règle d’ordre.
Le silence d’un document n’est pas le silence du comportement
Le projet 00 ne définit pas les modes NETCONF de gestion des défauts. RFC 7950 explique quand une valeur par défaut est « in use » : le serveur doit alors se comporter comme si le nœud existait, sauf notamment lorsque when ou if-feature l’écarte. RFC 6243 distingue report-all, trim, explicit et la restitution report-all-tagged.
Un nœud absent d’une réponse peut donc rester présent dans l’arbre accessible. Un nœud explicitement égal au défaut ne dit pas s’il a été écrit, stocké ou synthétisé. Comparer deux configurations exige de nommer la vue : octets transmis, données stockées, arbre effectif avec défauts, ou restitution obtenue sous un mode with-defaults précis.
Canonical XML s’arrête à l’application
Canonical XML 1.1 stabilise des libertés de représentation : encodage des caractères, ordre des attributs et déclarations d’espaces de noms. Le W3C précise toutefois qu’aucun algorithme XML général ne capture toutes les équivalences propres aux applications. Deux formes canoniques différentes peuvent garder le même sens pour une application ; une forme identique n’importe pas automatiquement ses règles externes.
YANG apporte ces règles : formes lexicales et canoniques des types, défauts, ordre, contraintes, identité du schéma et résolution des références. C14N ne choisit pas une révision, n’évalue pas les features, n’applique pas les deviations et ne déréférence ni leafref ni instance-identifier.
Les métadonnées renforcent cette limite. Le projet autorise des attributs XML pour les annotations définies par RFC 7952. Supprimer un attribut inconnu peut laisser un arbre ordinaire valide tout en retirant une provenance ou une qualification importante. Avec RFC 8528, deux instances d’un même mount point peuvent même recevoir des schémas montés différents ; un fragment isolé perd alors l’information qui permettait de l’interpréter.
Pour anydata, le modèle de contenu peut être inconnu à l’exécution ; la conversion vers un autre encodage peut devenir impossible. Une promesse de trajet XML–JSON–XML doit donc identifier les sous-arbres réellement modélisés et ceux restés opaques.
L’exécution commence là où la représentation s’arrête
Un fichier XML n’est pas une RPC NETCONF reçue. RFC 6241 distingue <rpc-reply>, <rpc-error> et <ok>. Ce dernier établit qu’aucune erreur ou alerte n’a été renvoyée pour le traitement et qu’aucune donnée n’était à retourner ; il ne certifie pas l’effet physique ultérieur.
Il faut relier requête et message-id, session authentifiée, capacités, YANG Library, réponse et lectures avant/après du datastore. RFC 8342 sépare ensuite running, intended et operational, car configuration valide, intention transformée et état effectivement utilisé peuvent diverger. Enfin seulement vient la mesure externe : routage, filtrage, capacité ou service.
La primauté du code en fonctionnement ne diminue pas la norme. Elle lui évite de porter une conclusion qu’elle n’a jamais observée. Chaque couche — octets, XML, schéma, arbre, protocole, datastore, état et résultat — mérite son propre reçu.
Sources
- https://www.ietf.org/archive/id/draft-ietf-netmod-yang-xml-00.txt
- https://datatracker.ietf.org/doc/draft-ietf-netmod-yang-xml/
- https://datatracker.ietf.org/doc/draft-ietf-netmod-yang-xml/history/
- https://www.rfc-editor.org/rfc/rfc7950.html
- https://www.rfc-editor.org/rfc/rfc6241.html
- https://www.rfc-editor.org/rfc/rfc6243.html
- https://www.rfc-editor.org/rfc/rfc7952.html
- https://www.rfc-editor.org/rfc/rfc8342.html
- https://www.rfc-editor.org/rfc/rfc8525.html
- https://www.rfc-editor.org/rfc/rfc8528.html
- https://www.w3.org/TR/xml-c14n11/
- https://www.rfc-editor.org/rfc/rfc8040.html
- https://heng.lu/running-code-primary-the-patch-needed-to-preserve-the-internet-original-design/
- https://heng.lu/minimum-initial-specification-localized-future-decision-voluntary-adoption-internet-coordination-system/
- https://heng.lu/on-data-sovereignty-technical-vs-practical-realities/
Briefing des membres
Contexte approfondi du profil
Connectez-vous avec le bon niveau d'adhésion pour débloquer le briefing complet et les notes de source.
Réservé à Strategic Circle
Strategic Circle
Ouvert à tous les lecteurs. Débloquez les briefings de profil après adhésion et connexion.
Rejoindre Strategic CircleRéservé aux membres de Leadership Alliance
Leadership Alliance
Réservé aux propriétaires et dirigeants qualifiés d'actifs IP ; connectez-vous pour débloquer les briefings Alliance.
Rejoindre Leadership Alliance
