الخلاصة

  • ترتب المراجعة 13 المعالجة من where إلى sort-by وlocale ثم الاتجاه والموضع والحد، وتفصل sublist-limit للمجموعات المتفرعة.
  • يثبت المؤشر الصالح أين يستأنف الخادم ضمن سياق سؤال محفوظ، لكنه لا يثبت ترتيباً كلياً أو رؤية NACM ثابتة أو زمناً مشتركاً للمصادر أو اكتمال القوائم الداخلية.

قد تكون الصفحة الأولى صحيحة والصفحة الثانية صحيحة، بينما لا يكون اتحادهما قد وُجد قط في النظام. بين الطلبين يمكن لمسار أن يغيّر مقياسه، أو تختفي واجهة، أو تتبدل قاعدة وصول، أو يتقدم مخزن ضمن نظام موزع قبل غيره. هنا لا يكون الخطأ في استجابة منفردة، بل في الادعاء بأن الاستجابتين تصفان لحظة واحدة.

يمنح draft-ietf-netconf-list-pagination-13 الاستعلام بنية واضحة. يبدأ الخادم بـ where، ثم يطبق sort-by وتضبط locale سياق الترتيب. بعد ذلك يأتي direction مع واحد من offset أو cursor، وهما متنافيان، ثم يطبق limit. أما sublist-limit فيقيد القوائم التابعة داخل كل عنصر لا القائمة المستهدفة نفسها.

نُشرت المراجعة 13 في 6 يوليو 2026. يعرضها IETF Datatracker كمسودة إنترنت نشطة ضمن مجموعة NETCONF وموجهة إلى Standards Track، وحالتها In WG Last Call مع الوسم Revised I-D Needed - Issue raised by WGLC، بينما حالة IESG هي I-D Exists. تجمع لوحة تحقق YANG الحالية ثلاثة أخطاء؛ وتظهر مخرجات pyang وyanglint المرئية حول الموضع نفسه الخاص بالهروب عند التفاف السطر. هذه حالة مستند وأدوات، وليست دليلاً على خلل في تنفيذ أو نشر أو بيانات تشغيلية.

ما يحفظه المؤشر هو السؤال

تبدأ رحلة المؤشر بالقيمة first. عندها تُثبت قيم where وsort-by وlocale. تحمل روابط التالي والسابق السياق الأول، ولا يمكن للطلبات اللاحقة تغيير سوى limit وsublist-limit. لا يستطيع العميل بذلك أن يبدل المرشح في منتصف الرحلة ويقدم الجزأين كاستعلام واحد.

لكن المسودة لا تعرّف معرف لقطة أو توقيت قراءة مشتركاً أو رقم معاملة أو متجه مراجعات بين المخازن. يمكن إعادة السؤال نفسه بأمانة بعد ثوانٍ إلى مجموعة تغيرت بالفعل.

يتأثر offset مباشرة بأي إدراج أو حذف قبله، لأن عدد العناصر المتجاوزة سيشير إلى حد منطقي جديد. المؤشر معتم للعميل ويمثل مفتاحاً أو فهرساً في النظام الأساسي، فيعطي الخادم مسؤولية تفسير الموضع. لكنه لا يمنع العناصر الأخرى من الدخول أو تغيير مفاتيح فرزها.

تنص مسودة RESTCONF المصاحبة على أن الخادم لا يحتفظ بحالة للصفحة أو المؤشر التالي أو السابق. الرابط تعليمات استمرار يعاد تقييمها لاحقاً، وليس مدخلاً إلى نتيجة محفوظة. تفيد هذه اللامركزية التشغيل، لكنها تمنع استخدام الرابط وحده كدليل لقطة.

اللغة لا تحل كل حالات التعادل

من دون sort-by يسري ترتيب قائمة YANG. وعند اختياره توضع العناصر التي لا تحمل قيمة الحقل بعد العناصر التي تحملها. لا تصح locale من دون الفرز؛ وإذا لم يحددها العميل اختارها الخادم وأعادها كبيانات وصفية YANG.

تسجيل اللغة أفضل من الاعتماد على إعداد خفي. مع ذلك لا يحدد وسم BCP 47 إصدار Unicode أو مكتبة المقارنة أو التطبيع أو طريقة كسر التعادل. قد تقبل جهتان اللغة نفسها وترتبا الأحرف المشددة أو المتكافئة بطريقة مختلفة.

ولا تعرّف المسودة فرزاً ثانوياً. عندما تتساوى قيم الحقل الرئيسي، يتوقف الترتيب الفعلي على خاصية داخلية غير ظاهرة في الاستعلام. إذا قطعت الصفحة مجموعة متعادلة، فقد يغير إعادة التشغيل أو تبديل العقدة أو تحديث الفهرس حدودها مع بقاء الفرز الرئيسي صحيحاً. يجب أن يسجل الدليل مفتاح كسر التعادل الفعلي أو يصرح بأن الترتيب لم يكن كلياً.

إعلان القدرة ليس إثبات استخدامها

قد تكون قوائم config false كبيرة وسريعة التغير. تتيح المراجعة 13 للخادم، عبر نموذج RFC 9196، أن يعلن العقدة constrained وأن يسمي الأبناء indexed وأن يحدد دعم المؤشر. في القائمة المقيدة يقتصر المرشح والفرز على العقد المفهرسة، ولا يهبط التعبير عبر قائمة فرعية.

تساعد هذه التصريحات العميل على اختيار سؤال قابل للتنفيذ، لكنها لا تثبت أن الفهرس استُخدم في ذلك الطلب أو كان حديثاً أو شمل كل مصدر. يمكن أن تتغير قدرات RFC 9196 بسبب العتاد أو الترخيص أو ظرف التشغيل. لذلك ينبغي ربط كل صفحة بهوية مجموعة القدرات التي شوهدت عندها.

أما content-id في YANG Library وفق RFC 8525 فيحدد محتوى الوحدات والمخططات. يثبت بأي عقد بنيوي فُسرت الاستجابة، لكنه ليس إصداراً للواجهات أو المسارات أو العدادات الموصوفة. هو هوية للمخطط، لا للحظة البيانات.

التخويل يغيّر المجموعة المرئية

تسمح RFC 8341 لـ NACM بتقييد العمليات والمحتوى بحسب الهوية. لذلك ينفذ where فوق الرؤية المسموح بها للمستخدم، لا فوق مجموعة داخلية مطلقة. إذا تغيرت العضوية أو القاعدة أو صلاحية عنصر بين الصفحات، تتغير المجموعة رغم ثبات نص الاستعلام.

يعالج مقال BTW المنشور عن RFC 9865 وSCIM سؤالاً أمنياً محدداً: لا ينبغي لامتلاك المؤشر أن يمدد وصولاً أُلغي. أما هنا فالمركز مختلف. حتى إذا أعيد التخويل بصورة صحيحة في كل مرة، لا تشكل صفحتان تحت رؤيتين مختلفتين قائمة واحدة متماسكة. يجب حفظ الهوية ونسخة السياسة والرؤية الفعلية لكل صفحة.

البيانات التشغيلية تتحرك أثناء القراءة

تميز RFC 8342 بين البيانات المقصودة والتشغيلية. يجمع المخزن التشغيلي إعداداً مطبقاً وحالة نظام، وقد يأتي من أصول متعددة. تتقارب المسارات وتزداد العدادات وتتغير الواجهات بينما يطلب العميل الصفحات.

إذا انتهت الصفحة الأولى عند المفتاح m ثم تغير عنصر سابق إلى z فقد يظهر مرتين. وإذا تغير عنصر لاحق إلى a فقد لا يظهر أبداً. يقلل المؤشر بعض مشكلات offset، لكنه لا يجمد العناصر الأخرى ولا يوحد زمن أنظمة خلفية متعددة.

حين يوفر النظام لقطة مشتركة أو متجه مراجعة، يجب ربطه بكل صفحة. وعندما لا يفعل، ينبغي حفظ زمن كل صفحة ومصدر وفحص التكرار والفجوات وتراجع الحدود، ثم وصف الناتج كعبور ضمن نافذة زمنية. يمكن لهذا الناتج أن يكون مفيداً؛ الخطر في تسميته حالة كاملة في لحظة واحدة.

اكتمال المستوى الأعلى لا يكمل الفروع

يقيد limit القائمة المستهدفة، بينما يقيد sublist-limit القوائم التابعة. قد تعيد remaining عدداً موجباً أو unknown. لذلك قد يحصل العميل على كل الأجهزة ولا يحصل إلا على بعض الواجهات أو المسارات داخل كل جهاز.

تحتاج كل قائمة فرعية مقتطعة إلى فرع دليل مستقل: هوية الأصل، سياق الاستعلام، سلسلة المؤشرات، تجزئة الاستجابة، والعدد المتبقي أو عدم معرفته. انتهاء الصفحة العليا لا يثبت اكتمال محتويات عناصرها.

غلاف للصفحة وسجل للمجموعة

ينبغي أن يحفظ غلاف الصفحة الهوية وسياسة NACM، والمخزن، وهويتي YANG Library والقدرات، وكل المعلمات، وتجزئتي الطلب والاستجابة، وتسلسل المؤشرات، والمفاتيح وقيم الفرز، وremaining، ووقت الخادم، وهويات المصادر ومراجعاتها.

أما سجل التجميع فيكشف التكرار والفجوات وانعكاس الحدود، ويقارن آخر ترتيب في صفحة بأول ترتيب في التالية، ويسجل تغير السياسة أو القدرة أو اللغة أو المصدر، ثم يصنف النتيجة: لقطة مشتركة، قراءة ذات عدم اتساق محدود، أو سلسلة ملاحظات متحركة. هذا تصميم تشغيلي مقترح، وليس التزاماً تنسبه المقالة إلى المسودة.

قيمة المؤشر تزداد حين يبقى ادعاؤه دقيقاً. يعرف الموضع الذي عرضه الخادم ضمن سؤال محفوظ. لا يعرف أن بقية النظام بقي في اللحظة نفسها.

المصادر الأولية

تضم الحزمة المغلقة النص الحالي وأرشفته وحالة Datatracker وتاريخه والفارق بين النسخ والمسودتين المصاحبتين وثلاث مراجعات تاريخية فقط وRFCs الأساسية: https://datatracker.ietf.org/doc/html/draft-ietf-netconf-list-pagination-13; https://www.ietf.org/archive/id/draft-ietf-netconf-list-pagination-13.txt; https://datatracker.ietf.org/doc/draft-ietf-netconf-list-pagination/; https://datatracker.ietf.org/doc/draft-ietf-netconf-list-pagination/history/; https://author-tools.ietf.org/iddiff?url1=draft-ietf-netconf-list-pagination-12&url2=draft-ietf-netconf-list-pagination-13; https://datatracker.ietf.org/doc/html/draft-ietf-netconf-list-pagination-nc-12; https://datatracker.ietf.org/doc/draft-ietf-netconf-list-pagination-nc/; https://datatracker.ietf.org/doc/html/draft-ietf-netconf-list-pagination-rc-11; https://datatracker.ietf.org/doc/draft-ietf-netconf-list-pagination-rc/; https://datatracker.ietf.org/doc/review-ietf-netconf-list-pagination-07-opsdir-early-linkova-2025-05-10/; https://datatracker.ietf.org/doc/review-ietf-netconf-list-pagination-07-yangdoctors-early-lhotka-2025-04-28/; https://datatracker.ietf.org/doc/review-ietf-netconf-list-pagination-03-yangdoctors-lc-lhotka-2024-05-01/; https://www.rfc-editor.org/rfc/rfc6241.html; https://www.rfc-editor.org/rfc/rfc6242.html; https://www.rfc-editor.org/rfc/rfc5646.html; https://www.rfc-editor.org/rfc/rfc7950.html; https://www.rfc-editor.org/rfc/rfc7951.html; https://www.rfc-editor.org/rfc/rfc7952.html; https://www.rfc-editor.org/rfc/rfc8040.html; https://www.rfc-editor.org/rfc/rfc8341.html; https://www.rfc-editor.org/rfc/rfc8342.html; https://www.rfc-editor.org/rfc/rfc8407.html; https://www.rfc-editor.org/rfc/rfc8525.html; https://www.rfc-editor.org/rfc/rfc9196.html; https://www.rfc-editor.org/rfc/rfc9911.html.