الخلاصة
- أعلن IESG في 18 أغسطس 2026 الموافقة على
draft-ietf-netmod-yang-module-versioning-17لنشره بصفة Proposed Standard. يسمح النص بتوثيق تطور الوحدات غير المتوافق مع الإصدارات السابقة، ويضيفrecommended-min-dateإلى import، ويكشف كيفية تعامل الخوادم مع العقد deprecated وobsolete. - يبين مثال التفرع في الوثيقة أن مراجعة 2019-05-01 تستوفي حداً أدنى هو 2019-04-01، مع أنها قد لا تتضمن ما أضافه فرع 2019-04-01. يرتب التاريخ القطع البرمجية، لكنه لا يثبت النسب أو المخطط الفعلي على الهدف أو صلاحية اتخاذ قرار التغيير.
عبر الفرع الشقيق بوابة التاريخ
المشهد الافتتاحي بناء تحليلي مستمد من مثال الوثيقة، وليس حادثة مبلغاً عنها في جهاز أو منتج أو شبكة. ينفذ المحلل معنى recommended-min-date بدقة: يختار مراجعة يساوي تاريخها التاريخ الموصى به أو يأتي بعده.
يتفرع السجل بعد مراجعة مشتركة مؤرخة في 2019-02-01. يصل أحد الفرعين عبر 2019-03-01 إلى 2019-05-01، ويصل الآخر عبر 2019-04-01 إلى 2019-06-01. إذا احتاج المستهلك إلى قدرة أدخلت في 2019-04-01، جاز أن يجعل ذلك التاريخ حداً أدنى. حسابياً ينجح 2019-05-01؛ ونسباً يقع على الفرع الآخر.
تحذر المسودة صراحة من أن مراجعة 2019-05-01 قد لا تحمل المحتوى المطلوب من مراجعة 2019-04-01، وتقول إن الحقل لا يلائم السجل المتفرع وأن فائدته أوضح في التطور الخطي. لا يوجد خطأ في حساب الزمن. الخطأ هو معاملة «لاحق زمنياً» كأنه يعني «مشتق منه» في رسم بياني.
تجعل الموافقة الحواف غير المتوافقة قابلة للرؤية
النص المعنون “Updated YANG Module Revision Handling” ناتج عن مجموعة NETMOD. وهو ما زال Internet-Draft في طابور RFC Editor، وقد تطرأ عليه تعديلات تحريرية قبل النشر. ويذكر إعلان الموافقة أن حالة التنفيذ غير معروفة، فلا يصح استنتاج دعم واسع لدى الموردين أو الخوادم.
كان RFC 7950 يفرض تحديثات متوافقة بدقة مع الإصدارات السابقة. تقر الوثيقة الجديدة بأن إصلاح خطأ ليتطابق النموذج مع سلوك الخادم، أو إزالة عقدة obsolete بعد الانتقال، أو تعديل مادة غير مستقرة، قد يستلزم تغييراً غير متوافق. وتبقى هذه التغييرات غير محبذة وينبغي تقليلها.
إذا احتوت مراجعة على تغيير غير متوافق قياساً إلى الأب، وجب وضع rev:non-backwards-compatible تحت عبارة revision. يحول ذلك حافة صامتة إلى دليل يمكن فحصه. لكنه يصف العلاقة بين أب وابن واحد، ولا يثبت أن المرشح ينحدر من الفرع الذي يحتاج إليه المستهلك.
الهوية الثابتة ليست شجرة نسب
داخل سجل المراجعات، يحدد اسم الوحدة مع تاريخ المراجعة تعريفاً ثابتاً بعينه. يمنح ذلك التاريخ وظيفة قوية في الهوية، لا وظيفة في إثبات السلالة. وتقول الوثيقة إن تاريخين أو معرفي إصدار لا يكفيان لمعرفة علاقة الأسلاف بين مراجعتين؛ لا بد من قراءة السجل.
تظهر فجوة مماثلة في الوحدات الفرعية. إذا لم يحدد include تاريخ مراجعة الوحدة الفرعية بدقة، فلا يكشف اسم الوحدة الحاوية وحده أي محتوى فرعي استعمل فعلاً. يلزم revision-date دقيق، أو YANG Library، أو جرد للحزمة.
لذلك ينبغي أن يحتفظ سجل القبول ببصمة القطعة، وعلاقة الأب أو مسار الفرع، ومراجعات الوحدات الفرعية، ومجموعة الوحدات المحلولة على الهدف. قد يشير المعرف إلى ملف ثابت، ثم يوضع ذلك الملف في شجرة عائلة خاطئة.
الحد الأدنى الموصى به يتجنب التثبيت الصارم عمداً
recommended-min-date عبارة فرعية اختيارية ضمن import، لا تتكرر أكثر من مرة. تلتزم المراجعة بالتوصية إذا ساوى تاريخها التاريخ المذكور أو جاء بعده. وتعد إضافة القيمة أو تغييرها أو حذفها متوافقة مع الإصدارات السابقة. أما المحلل الذي لا يفهم الامتداد فيواصل العمل بقواعد RFC 7950 المعتادة.
عندما تفيد الإشارة إلى حد اعتماد أدنى، تفضل المسودة هذه التوصية على revision-date دقيق في import، لأن التاريخ الدقيق يصنع اقتراناً أشد من اللازم. يتيح ذلك الاستفادة من تحسينات لاحقة متوافقة من دون تجميد الاعتماد على قطعة واحدة.
لكن المرونة تحتاج إلى فحص مستقل للملاءمة. لا يسأل الحقل هل ينحدر المرشح من المراجعة المطلوبة، أو يحتفظ بعقدة بعينها، أو يضم تغيير الفرع، أو يناسب العميل. يمكن للتاريخ أن يفتح مجموعة المرشحين؛ وعلى السجل والمخطط الفعلي والاختبارات أن تغلقها.
علامة عدم التوافق تخص حافة واحدة
قد تشير rev:non-backwards-compatible إلى جعل عقدة obsolete، أو تغيير قيد، أو وقوع تغيير آخر مسموح به. لكنها لا تصادق على صلة المراجعة بكل نقطة أخرى في سجل متفرع.
حين تختصر لوحة المتابعة الدليل إلى أحدث تاريخ وإشارة تحذير، تضيع هذه الحدود. ربما نشأت القدرة التي يعتمد عليها العميل في فرع مجاور. غياب التحذير عن السطر المختار لا ينشئ حافة نسب غير موجودة.
ويمكن للصائن أن يضع العلامة على تغيير متوافق رسمياً إذا رأى أثراً كبيراً على العميل، مثل توسيع مجال قيم leaf تشغيلية. فهي إشارة تحفظية تدعو إلى فحص الفرق، وليست أمراً آلياً بالقبول أو الرفض. تصف مقارنة المخطط ما تغير، وتكشف اختبارات الهدف ما يفعله التنفيذ.
تقليم السجل يقلص ما يمكن إثباته
يجوز حذف بعض عبارات revision المنشورة لتقصير سجل طويل أو للحد من اعتماد قديم. لكن يجب إبقاء أحدث قيد، كما يجب أن تظل علامات عدم التوافق المتبقية صادقة في وصف العلاقات بين القيود المحفوظة.
لا تشجع الوثيقة على التقليم لأنه قد يخفي لحظة إدخال تغيير غير متوافق. ولا يجوز حذف قيد وسيط إذا كان ذلك سيجعل مراجعة لاحقة تبدو متوافقة مع مراجعة أقدم عبر خطوة غير متوافقة جرى إخفاؤها.
السجل جزء من الدليل التشغيلي. إذا لم يعد السجل المعياري يحتفظ بالحافة المطلوبة، تصبح مستودعات القطع والبصمات الموقعة وبيانات الحزم وسجلات التغيير ضرورية لإعادة بناء السلسلة. قد يمحو قرار تجميلي دليلاً سيحتاجه قبول لاحق.
حالة العقد حقيقة تخص الهدف
تضيف وحدة ietf-yang-library-status قيمتين منطقيتين إلى YANG Library. تعني قيمة true في deprecated-nodes-implemented أن العقد deprecated تنفذ كأنها current، ما لم تزلها deviation صراحة. وتعني true في obsolete-nodes-absent أن الخادم لا ينفذ عقداً obsolete.
القيمة الافتراضية لكليهما false، لكن false تعني أن السلوك غير محدد، ولا تثبت العكس. توصي المسودة بضبط القيمتين على true حتى يتمكن العميل من معرفة المخطط بدقة. وإذا لم تكن القيمة الأولى true، فلا يجوز للعميل الاعتماد على علامات عدم التوافق وحدها.
وهكذا قد يكون الفرع صحيحاً بينما يختلف الهدف: ربما أزيلت عقدة deprecated، أو بقيت عقدة obsolete، أو عدلت deviation النتيجة. يفضل مسار العمر الانتقال من current إلى deprecated ثم obsolete. على العملاء التخطيط لترك deprecated والتوقف عن استعمال obsolete. إنها عملية انتقال، لا خاصية يستنتجها التاريخ.
يحتاج القبول إلى الرسم والهدف العامل
يسجل نظام قرار قابل للدفاع القدرة المطلوبة والمراجعة التي أدخلتها، ويحل القطعة الدقيقة، ويثبت مسار الآباء، ويحفظ الحواف غير المتوافقة والفجوات، ويثبت الوحدات الفرعية، ويلتقط YANG Library وحالتي العقد، ويطبق deviations، ويبني المخطط الفعلي، ثم يختبر بيانات ممثلة.
بعد ذلك يختبر العميل أمام برنامج الخادم الحقيقي وفئة إعداده. قد تعرض مراجعة غير متوافقة قيماً خارج النطاق الذي يفترضه عميل أقدم، أو تغير القيم الافتراضية، أو تستدعي تعديل قواعد NACM. لا يرى فحص التاريخ هذه الآثار.
يجب إبقاء أنواع الفشل منفصلة: الفرع الشقيق فشل نسب، وغياب حالة العقد فجوة اكتشاف، واختلاف الشجرة فشل مخطط، والقيمة أو الافتراض المختلف أثر تنفيذ، وغياب الموافقة فشل حوكمة. يختار الزمن المرشحين؛ أما النسب المثبت والهدف الدقيق والاختبار العامل والمسؤول المسمى فتقرر الدخول إلى الإنتاج.
المصادر
- IETF Datatracker — معالجة مراجعات وحدات YANG
- IETF Datatracker — سجل الوثيقة
- IETF Datatracker — تقرير المشرف
- Lu Heng — الحد الأدنى للمواصفة الأولية
- Lu Heng — أولوية الشيفرة العاملة
- إعلان IETF — إجراء بروتوكولي
- Internet-Draft الموافق عليه — الإصدار 17
- مقارنة مخططات YANG — الإصدار 9
- متطلبات إصدارات وحدات YANG — الإصدار 10
- RFC 7950 — YANG 1.1
- RFC 8341 — التحكم في وصول NETCONF
- RFC 8525 — YANG Library
- RFC 9907 — تسميات مراجعات YANG
- RFC 9911 — أنواع بيانات YANG المشتركة
إحاطة الأعضاء
سياق أعمق للملف الشخصي
سجّل الدخول بمستوى العضوية المناسب لفتح الإحاطة الكاملة وملاحظات المصادر.
للدائرة الاستراتيجية فقط
الدائرة الاستراتيجية
مفتوح لجميع القراء. افتح إحاطات الملف الشخصي بعد الانضمام وتسجيل الدخول.
انضم إلى الدائرة الاستراتيجيةلأعضاء تحالف القيادات فقط
تحالف القيادات
لأصحاب الأصول الفكرية المؤهلين وللإدارة؛ سجّل الدخول للوصول إلى إحاطات التحالف.
انضم إلى تحالف القيادات
