الخلاصة
- اقترحت
draft-ietf-netmod-yang-anydata-validation-00ربط هوية عقدة البيانات في الترميز بمخطط داخل YANG Library وفق RFC 8525، كي يمكن فحص أبناءanydata. - كان
anydata-completeسيطبق كل قواعد المخطط المقابل، بينما لا يطبقanydata-candidateفحوص القيود. ولا يثبت أي منهما وحده المصدر أو التفويض أو الحالة التشغيلية أو التوجيه أو النتيجة التجارية.
وصل عداد إلى منصة التحليل وحصل على إشارة خضراء. بعد أشهر أُعيد فحص الرسالة نفسها ففشلت، لكن الفريق لم يحتفظ بإصدار الوحدة ولا بالـ features والـ deviations ولا بإصدار أداة التحقق. لم تكن النتيجتان بالضرورة متناقضتين؛ ربما كان كل منهما يجيب عن سؤال مختلف تحت سياق لم يُحفظ.
هذه هي المسألة المفيدة في المراجعة 00 من Validating anydata in YANG Library context. تستخدم YANG 1.1 عبارة anydata لمحتوى يمكن نمذجته بـ YANG، لكن نموذجه الدقيق لم يكن معروفاً عند تصميم الوحدة الحاوية. تظهر هذه المرونة في المرشحات، ونتائج datastore، وعمليات التحرير، وملفات instance data، والإشعارات. ويبقى على المستهلك تحديد المخطط الذي يحق له تقييم المحتوى.
بدأت المسودة من الهوية التي يحتفظ بها الترميز. في XML تجتمع local name مع namespace الخاص بالوحدة. وفي JSON يظهر المعرّف وقد يكون مؤهلاً باسم الوحدة. وفي CBOR يمكن استخدام SID أو SID delta أو اسم مؤهل أو instance-identifier. ومن هذه الهوية يبحث المدقق عن data node المقابلة داخل YANG Library.
لكن Library ليست قاموساً واحداً ثابتاً. تربط RFC 8525 كل datastore بمخطط، وتبني المخطط من اتحاد module-sets، وتصف الوحدات عبر revision وsubmodules وfeatures وdeviations. ويتغير content-id عندما تتغير معلومات Library، لكنه معرف خاص بالتنفيذ وليس hash عالمياً. وإذا كانت العقدة تحت schema mount، يصبح مسار التركيب وسياقه جزءاً من السؤال.
نجاح candidate لا يساوي نجاح complete
كان anydata-complete سيطلب من subtree الامتثال لكل قواعد التحقق في المخطط المقابل. أما anydata-candidate فلا يطبق constraint checks. يستند الاسمان إلى التوقيت في RFC 7950: تفرض running وstartup القيود في نهاية العملية، بينما يمكن أن تؤجل candidate ذلك إلى commit أو validate.
لذلك يقول candidate pass إن المسار المرشح قبل البنية من دون إتمام القيود. ويقول complete pass إن تنفيذاً محدداً، تحت مدخلات وسياق محددين، لم يجد مخالفة في القواعد التي نفذها. جمع النتيجتين تحت عبارة «YANG صالح» يلغي أهم فرق في قوة الدليل.
حتى الفشل محدود. يمكنه تحديد نوع أو مدى أو must أو when أو cardinality أو عقدة مجهولة أو اختلاف سياق. لكنه لا يحدد المسؤول. قد يكون الخلل في المصدر أو في تحويل وسيط أو في اختيار Library أو في المدقق نفسه. النتيجة مبرر للعزل والتحقيق، لا حكماً آلياً على النية أو الهوية.
تقدم المسودة مثال عداد octets سالب أرسله node معيب عبر YANG-Push، ثم أفسد جمع الحركة وربما الفوترة أو تخطيط السعة. قد يلتقط الفحص الكامل هذا النوع من الخطأ. لكنه لا يثبت أن الرقم غير السالب حديث أو كامل أو أصيل أو تابع للواجهة التي افترضها النظام التجاري.
قيمة الفحص في إيصال قابل للإعادة
يحفظ الإيصال hash للـ payload ووقت الالتقاط والترميز وهوية العقدة بعد الفك. ويربط content-id بنسخة مجمدة من YANG Library، ثم يسجل datastore وschema وmodule-sets وrevisions وsubmodules وfeatures وdeviations وmount path. كما يسمي validator وbuild وflags والوضع والتشخيص والتصرف اللاحق.
هذه ليست زينة تدقيق. قد تجعل feature عقدة تظهر أو تختفي، وقد تغير deviation قيداً، وقد يغير mount مجال البحث، وقد يتعامل upgrade مع حالة حدية بطريقة أخرى. فإذا تغيّر الحكم للـ bytes نفسها، يصبح اختلاف السياق أول ما يُفحص.
تركت المسودة الاستجابة للمستهلك: يمكن تجاهل الرسالة غير المطابقة أو تسجيلها أو إطلاق alert. وهذه حدود سليمة. المدقق يصدر استنتاجاً محدوداً، بينما يقرر مالك البيانات مسبقاً أي فشل يوقف الأتمتة وأيه يسمح بالمحاولة وأيه يحتاج مراجعة بشرية.
حالة الوثيقة لا تسمح بوعد معياري
يسجل Datatracker يوم 2 ديسمبر 2025 كتاريخ آخر revision، وتبين السجلات أن نسخة WG 00 أصبحت متاحة في ذلك اليوم. انتهت صلاحية النص في 3 يونيو 2026. وحالياً تظهر التسميات Expired Internet-Draft وExpired & archived وDead WG Document وIESG Expired، بينما حقل Intended RFC status هو None.
كتب masthead التاريخي بصورة منفصلة Intended status: Standards Track. كان ذلك وصفاً لنية المسودة، وليس موافقة من IETF. وبقي تحليل الأمن غير مكتمل، ولم يوجد طلب إلى IANA، ولا يعرض Datatracker shepherd.
أشار Implementation Status إلى branch في libyang لـ anydata-candidate وطلب حذف القسم قبل أي نشر RFC. وجود branch يثبت على الأكثر تجربة مسار برمجي. ولا يثبت الدمج أو التنفيذ المستقل أو interoperability أو النشر الإنتاجي.
صلاحية المخطط ليست حقيقة تشغيلية
تفصل RFC 8342 بين running وintended وoperational؛ فمطابقة قيمة للمخطط لا تثبت أن الجهاز طبقها. وتعالج RFC 8341 التحكم في الوصول؛ البنية الصحيحة لا تمنح NACM authorization. أما مواصفات subscription وYANG-Push فتعالج الاختيار والتسليم؛ ولا تنفي subtree صالحة الفقد أو replay أو اضطراب الترتيب أو إعادة الكتابة.
هوية المرسل وسلامة النقل وسلسلة الحيازة تحتاج سجلات منفصلة. وكذلك counters الجهاز وFIB وpacket capture والمراقبة البعيدة والمطابقة المالية. لا يحق للمدقق أن يتحدث باسم هذه الطبقات لمجرد أن مخرجه قابل للأتمتة.
القيمة الباقية للمراجعة 00 ليست شارة صلاحية عامة. إنها جعل subtree كانت معتمة قابلة للاختبار في سياق مسمى، مع إبقاء مستويين مختلفين من الاستنتاج. حين يُحفظ السياق يضيق نطاق التحقيق؛ وحين يُفقد تصبح الإشارة الخضراء وعداً لا يمكن مراجعته.
المصادر
سجل المسودة: المراجعة 00، والحالة الحالية في Datatracker، والسجل التاريخي.
السياق التقني: RFC 7950، وRFC 8525، وRFC 8342، وRFC 8341، وRFC 8528، وRFC 8639، وRFC 8641.
إطار التحليل: Minimum Initial Specification، وOn Reality Layers، وRunning Code Primary.
إحاطة الأعضاء
سياق أعمق للملف الشخصي
سجّل الدخول بمستوى العضوية المناسب لفتح الإحاطة الكاملة وملاحظات المصادر.
للدائرة الاستراتيجية فقط
الدائرة الاستراتيجية
مفتوح لجميع القراء. افتح إحاطات الملف الشخصي بعد الانضمام وتسجيل الدخول.
انضم إلى الدائرة الاستراتيجيةلأعضاء تحالف القيادات فقط
تحالف القيادات
لأصحاب الأصول الفكرية المؤهلين وللإدارة؛ سجّل الدخول للوصول إلى إحاطات التحالف.
انضم إلى تحالف القيادات
