المجاميع الاختبارية: CC_BASE وCC_EXT وCC_DMI وصفحات CMIS
تحمي كل مواصفة إدارة بيانات التعريف بواحد أو أكثر من المجاميع الاختبارية — بايت واحد يتيح للمضيف اكتشاف EEPROM تالفة أو مكتوبة جزئيًا قبل أن يثق بمحتواها. حسابها بسيط جدًا ونسيانها سهل جدًا: فمجموع اختباري قديم بعد التعديل هو السبب الأكثر شيوعًا لظهور وحدة رُمِّزت للتو بأنها غير صالحة.
الخوارزمية
تستخدم كلها القاعدة نفسها: اجمع بايتات النطاق المغطى كقيم غير موقَّعة بطول 8 بتات، واحتفظ بأدنى 8 بتات من المجموع (المجموع باقي قسمته على 256). لا CRC، ولا كثيرة حدود.
sum = 0
for each byte b in range:
sum = (sum + b) & 0xFF
checksum = sum
مثال — أول خمسة بايتات لوحدة SFP من نوع 10GBASE-SR: 03 04 07 10 00 → 3 + 4 + 7 + 16 + 0 = 30 = 1Eh. تابع حتى البايت 62 والنتيجة هي CC_BASE.
أين يقيم كل مجموع اختباري
| المواصفة | المجموع الاختباري | الموقع | يغطي |
|---|---|---|---|
| SFF-8472 (SFP) | CC_BASE | البايت 63 من A0h | بايتات A0h 0–62 |
| SFF-8472 | CC_EXT | البايت 95 من A0h | بايتات A0h 64–94 |
| SFF-8472 | CC_DMI | البايت 95 من A2h | بايتات A2h 0–94 (العتبات وثوابت المعايرة) |
| SFF-8636 (QSFP) | CC_BASE | البايت 191 | بايتات الصفحة العلوية 00h 128–190 |
| SFF-8636 | CC_EXT | البايت 223 | البايتات 192–222 |
| INF-8077i (XFP) | CC_BASE | البايت 191 | البايتات 128–190 |
| INF-8077i | CC_EXT | البايت 223 | البايتات 192–222 |
| CMIS | مجموع اختباري للصفحة | البايت 222 من الصفحة 00h | بايتات الصفحة 00h 128–221 |
| CMIS | مجموع اختباري للصفحة | البايت 255 من الصفحة 01h | بايتات الصفحة 01h 130–254 (البايتان 128–129 يحملان إصدار البرنامج الثابت غير النشط ومُستبعدان) |
| CMIS | مجموع اختباري للصفحة | البايت 255 من الصفحة 02h | بايتات الصفحة 02h 128–254 |
| CMIS | مجموع اختباري للصفحة | البايت 255 من الصفحة 04h | بايتات الصفحة 04h 128–254 |
غير مشمول بأي مجموع اختباري: المناطق الخاصة بالمورّد (SFP A0h 96–127، وQSFP 224–255، وCMIS 223–255)، وذاكرة EEPROM للمستخدم، والمراقبات والأعلام الحية، وعتبات الصفحة 03h في QSFP، وصفحات مسارات CMIS. وقد يضيف الموردون حقول تكامل خاصة بهم في منطقة المورّد — وهذه ليست جزءًا من المواصفة.
ما الذي تفعله المضيفات بها
| السلوك | نتيجة مجموع اختباري خاطئ |
|---|---|
| التحقق من CC_BASE (معظم المبدّلات والموجّهات) | تظهر الوحدة بأنها غير صالحة، أو غير مدعومة، أو EEPROM checksum error؛ وقد يدخل المنفذ في errdisable؛ ويُبقى الليزر مطفأً غالبًا |
| التحقق من CC_EXT أيضًا | النتيجة نفسها، أو مجرد قيد في السجل، حسب المنصة |
| التحقق من CC_DMI | يظهر DDM بأنه غير مدعوم أو تُتجاهل القيم؛ والوصلة نفسها لا تتأثر |
| تجاهل المجاميع الاختبارية (كثير من NIC، وبعض المبدّلات المفتوحة) | تعمل الوحدة؛ ويظهر الخطأ فقط في الأدوات |
يُبلَّغ عن فشل المجموع الاختباري مع بيانات التعريف معًا، فالوحدة التي لديها أيضًا مشكلة سياسة تُظهر رسالة واحدة تخفي الأخرى — تحقّق من المجاميع الاختبارية أولًا، فهي الإصلاح الرخيص. خريطة الأعراض: فهرس الأعراض.
متى يجب أن تُعيد الحساب
- بعد تعديل أي شيء ضمن النطاقات المغطاة — اسم المورّد، ورقم القطعة، والرقم التسلسلي، ورمز التاريخ، ورموز التوافق، والطول الموجي، والأطوال، والخيارات، وفئة القدرة.
- بعد تطبيق العتبات أو ثوابت المعايرة على SFP (CC_DMI).
- بعد استعادة صورة جزئية من وحدة أخرى.
- غير ضروري لتغييرات في منطقة المورّد، أو EEPROM للمستخدم، أو بايتات تحكم A2h.
ترتيب العمليات: التعديل → إعادة حساب كل مجموع اختباري متأثر → الكتابة → إعادة القراءة → التحقق. وكتابة بايت المجموع الاختباري قبل البيانات التي يغطيها تترك نافذة يمكن أن ينتج فيها انقطاع التيار وحدة غير صالحة.
المجاميع الاختبارية وأقفال المورّد
المجاميع الاختبارية الصحيحة ضرورية لكنها غير كافية. فالمنصة الصارمة تتحقق أيضًا من كتلة المورّد، وفي التصاميم المقفلة، من توقيع خاص في منطقة المورّد لا تعرف عنه مجاميع المواصفة الاختبارية شيئًا. واجتياز CC_BASE مع رفض بيانات التعريف يبدو حالة قفل مورّد، لا حالة مجموع اختباري — قفل المورّد، حقول المورّد.
في CodingBox
يعيد CodingBox حساب CC_BASE وCC_EXT وCC_DMI ومجاميع صفحات CMIS الاختبارية تلقائيًا مع كل عملية كتابة، ويبرز أي عدم تطابق عند قراءة وحدة — حقل مجموع اختباري أحمر في Check transceiver أو في EEPROM editor يعني أن الوحدة عُدِّلت في مكان آخر دون إصلاحه، أو أن EEPROM تالفة.
أين يقع كل مجموع اختباري بين جيرانه: SFF-8472 A0h (63، 95)، A2h (95)، SFF-8636 العلوية (191، 223)، صفحات CMIS العلوية (222، 255)، XFP (191، 223).