انتقل إلى المحتوى الرئيسي

دليل عمليات OmniUPF

جدول المحتويات​

  1. نظرة عامة
  2. فهم بنية مستوى المستخدم 5G
  3. مكونات UPF
  4. بروتوكول PFCP وتكامل SMF
  5. عمليات شائعة
  6. استكشاف الأخطاء وإصلاحها
  7. وثائق إضافية
  8. معجم

نظرة عامة​

OmniUPF (وظيفة مستوى المستخدم المعتمدة على eBPF) هي وظيفة مستوى مستخدم عالية الأداء 5G/LTE توفر توجيه حزم بمستوى ناقل، وتطبيق جودة الخدمة (QoS)، وإدارة حركة المرور ��شبكات الهاتف المحمول. مبنية على تقنية Linux eBPF (مرشح الحزم الممتد من بيركلي) ومعززة بقدرات إدارة شاملة، تقدم OmniUPF بنية تحتية أساسية لمعالجة الحزم المطلوبة لشبكات 5G SA و5G NSA وLTE.

ما هي وظيفة مستوى المستخدم؟​

وظيفة مستوى المستخدم (UPF) هي عنصر الشبكة المعتمد من 3GPP المسؤول عن معالجة الحزم وتوجيهها في شبكات 5G وLTE. توفر:

  • توجيه حزم عالي السرعة بين الأجهزة المحمولة وشبكات البيانات
  • تطبيق جودة الخدمة (QoS) لأنواع حركة المرور المختلفة
  • اكتشاف حركة المرور وتوجيهها بناءً على مرشحات الحزم والقواعد
  • تقرير الاستخدام للشحن والتحليلات
  • تخزين الحزم لسيناريوهات إدارة التنقل والجلسات
  • دعم الاعتراض القانوني للامتثال التنظيمي

تقوم OmniUPF بتنفيذ كامل وظائف UPF المحددة في 3GPP TS 23.501 (5G) وTS 23.401 (LTE)، مما يوفر حلاً كاملاً جاهزًا للإنتاج لوظيفة مستوى المستخدم باستخدام تقنية Linux kernel eBPF لتحقيق أقصى أداء.

القدرات الرئيسية لـ OmniUPF​

معالجة الحزم:

  • معالجة حزم مستوى المستخدم متوافقة تمامًا مع 3GPP
  • مسار بيانات معتمد على eBPF لأداء على مستوى النواة
  • تغليف وفك تغليف GTP-U (بروتوكول نفق GPRS)
  • دعم IPv4 وIPv6 لكل من الشبكات الوصول وبيانات
  • XDP (مسار البيانات السريع) لمعالجة ذات زمن تأخير منخفض للغاية
  • معالجة حزم متعددة الخيوط

جودة الخدمة وإدارة حركة المرور:

  • قواعد تطبيق جودة الخدمة (QER) لإدارة النطاق الترددي
  • قواعد اكتشاف الحزم (PDR) لتصنيف حركة المرور
  • قواعد إجراء التوجيه (FAR) لقرارات التوجيه
  • تصفية تدفق بيانات الخدمة (SDF) للتوجيه المحدد للتطبيق
  • قواعد تقرير الاستخدام (URR) لتتبع الحجم والشحن

التحكم والإدارة:

  • واجهة PFCP (بروتوكول التحكم في توجيه الحزم) إلى SMF/PGW-C
  • واجهة API RESTful للمراقبة والتشخيص
  • إحصائيات ومقاييس في الوقت الحقيقي
  • مراقبة سعة خريطة eBPF
  • لوحة تحكم قائمة على الويب

ميزات الأداء:

  • معالجة حزم بدون نسخ عبر eBPF
  • توجيه حزم على مستوى النواة (بدون تحميل على مساحة المستخدم)
  • قابلية التوسع متعددة النواة
  • دعم التحميل لتسريع الأجهزة
  • مُحسّن للنشر السحابي

للاستخدام التفصيلي للوحة التحكم، انظر عمليات واجهة الويب.

فهم بنية مستوى المستخدم​

تعد OmniUPF حلاً موحدًا لمستوى المستخدم يوفر توجيه حزم بمستوى ناقل لشبكات 5G المستقلة (SA) و5G NSA و4G LTE/EPC. OmniUPF هو منتج واحد يمكن أن يعمل في نفس الوقت كـ:

  • UPF (وظيفة مستوى المستخدم) - مستوى مستخدم 5G/NSA (تحت السيطرة من قبل OmniSMF عبر N4/PFCP)
  • PGW-U (بوابة بيانات المستخدم) - بوابة EPC 4G إلى الشبكات الخارجية (تحت السيطرة من قبل OmniPGW-C عبر Sxc/PFCP)
  • SGW-U (بوابة الخدمة لمستوى المستخدم) - بوابة الخدمة EPC 4G (تحت السيطرة من قبل OmniSGW-C عبر Sxb/PFCP)

يمكن أن تعمل OmniUPF في أي مجموعة من هذه الأوضاع:

  • UPF فقط: نشر 5G خالص
  • PGW-U + SGW-U: بوابة 4G مجمعة (نشر EPC النموذجي)
  • UPF + PGW-U + SGW-U: دعم متزامن لـ 4G و5G (سيناريو الهجرة)

تستخدم جميع الأوضاع نفس محرك معالجة الحزم المعتمد على eBPF وبروتوكول PFCP، مما يوفر أداءً عاليًا متسقًا سواء كانت تعمل كـ UPF أو PGW-U أو SGW-U أو الثلاثة معًا.

بنية شبكة 5G (وضع SA)​

يجلس حل OmniUPF في مستوى البيانات لشبكات 5G، موفرًا طبقة توجيه حزم عالية السرعة تربط الأجهزة المحمولة بشبكات البيانات والخدمات.


بنية شبكة 4G LTE/EPC​

تدعم OmniUPF أيضًا نشرات 4G LTE وEPC (النواة المطورة للحزم)، تعمل كـ OmniPGW-U أو OmniSGW-U اعتمادًا على بنية الشبكة.

وضع PGW-U/SGW-U المدمج (نشر 4G النموذجي)​

في هذا الوضع، تعمل OmniUPF كلاً من SGW-U وPGW-U، تحت السيطرة من قبل وظائف مستوى التحكم المنفصلة.

وضع SGW-U وPGW-U المنفصل (التجوال/مواقع متعددة)​

في نشرات التجوال أو المواقع المتعددة، يمكن نشر حالتين منفصلتين من OmniUPF - واحدة كـ SGW-U والأخرى كـ PGW-U.

كيف تعمل وظائف مستوى المستخدم في الشبكة​

تعمل وظيفة مستوى المستخدم (OmniUPF أو OmniPGW-U أو OmniSGW-U) كطائرة توجيه تحت السيطرة من قبل الطائرة التحكم المعنية:

  1. إنشاء الجلسة

    • 5G: يقوم OmniSMF بإنشاء ارتباط PFCP عبر واجهة N4 مع OmniUPF
    • 4G: يقوم OmniPGW-C أو OmniSGW-C بإنشاء ارتباط PFCP عبر Sxb/Sxc مع OmniPGW-U/OmniSGW-U
    • تنشئ الطائرة التحكم جلسات PFCP لكل جلسة PDU لـ UE (5G) أو سياق PDP (4G)
    • تتلقى الطائرة المستخدم قواعد PDR وFAR وQER وURR عبر PFCP
    • يتم ملء خرائط eBPF بقواعد التوجيه
  2. معالجة حزم الرفع (UE → شبكة البيانات)

    • 5G: تصل الحزم على واجهة N3 من gNB مع تغليف GTP-U
    • 4G: تصل الحزم على واجهة S1-U (SGW-U) أو واجهة S5/S8 (PGW-U) من eNodeB مع تغليف GTP-U
    • تطابق الطائرة المستخدم الحزم مع PDRs الرافعة بناءً على TEID
    • يقوم برنامج eBPF بتطبيق QER (تحديد المعدل، التمييز)
    • تحدد FAR إجراء التوجيه (توجيه، إسقاط، تخزين مؤقت، تكرار)
    • تتم إزالة نفق GTP-U، ويتم توجيه الحزم إلى واجهة N6 (5G) أو SGi (4G)
    • تتتبع URR عدد الحزم والبكسلات للشحن
  3. معالجة حزم النزول (شبكة ال��يانات → UE)

    • 5G: تصل الحزم على واجهة N6 كـ IP أصلي
    • 4G: تصل الحزم على واجهة SGi كـ IP أصلي
    • تطابق الطائرة المستخدم الحزم مع PDRs النزول بناءً على عنوان IP لـ UE
    • قد تصنف مرشحات SDF حركة المرور بشكل إضافي حسب المنفذ أو البروتوكول أو التطبيق
    • تحدد FAR نفق GTP-U ومعلمات التوجيه
    • تتم إضافة تغليف GTP-U مع TEID المناسب
    • 5G: يتم توجيه الحزم إلى واجهة N3 نحو gNB
    • 4G: يتم توجيه الحزم إلى S1-U (SGW-U) أو S5/S8 (PGW-U) نحو eNodeB
  4. التنقل والتسليم

    • 5G: يقوم OmniSMF بتحديث قواعد PDR/FAR خلال سيناريوهات التسليم
    • 4G: يقوم OmniSGW-C/OmniPGW-C بتحديث القواعد خلال التسليم بين eNodeB أو تحديث منطقة التتبع (TAU)
    • قد تخزن الطائرة المستخدم الحزم خلال تبديل المسار
    • انتقال سلس بين محطات القاعدة دون فقدان الحزم

التكامل مع الطائرة التحكم (4G و5G)​

يتكامل OmniUPF مع كل من وظائف الطائرة التحكم 5G و4G ع��ر واجهات 3GPP القياسية:

واجهات 5G​

الواجهةمن → إلىالغرضمواصفة 3GPP
N4OmniSMF ↔ OmniUPFإنشاء جلسة PFCP، تعديل، حذفTS 29.244
N3gNB → OmniUPFحركة مرور مستوى المستخدم من RAN (GTP-U)TS 29.281
N6OmniUPF → شبكة البياناتحركة مرور مستوى المستخدم إلى DN (IP أصلي)TS 23.501
N9OmniUPF ↔ OmniUPFالاتصال بين UPF للتجوال/الحافةTS 23.501

واجهات 4G/EPC​

الواجهةمن → إلىالغرضمواصفة 3GPP
SxbOmniSGW-C ↔ OmniUPF (وضع SGW-U)التحكم في جلسة PFCP للبوابة الخدميةTS 29.244
SxcOmniPGW-C ↔ OmniUPF (وضع PGW-U)التحكم في جلسة PFCP للبوابة PDNTS 29.244
S1-UeNodeB → OmniUPF (وضع SGW-U)حركة مرور مستوى المستخدم من RAN (GTP-U)TS 29.281
S5/S8OmniUPF (SGW-U) ↔ OmniUPF (PGW-U)مستوى المستخدم بين البوابات (GTP-U)TS 29.281
SGiOmniUPF (وضع PGW-U) → PDNحركة مرور مستوى المستخدم إلى شبكة البيانات (IP أصلي)TS 23.401

ملاحظة: تستخدم جميع واجهات PFCP (N4 وSxb وSxc) نفس بروتوكول PFCP المحدد في TS 29.244. تختلف أسماء الواجهات ولكن البروتوكول وصيغ الرسائل متطابقة.

مكونات UPF​

مسار بيانات eBPF​

يعد مسار بيانات eBPF هو محرك معالجة الحزم الأساسي الذي يعمل في نواة Linux لتحقيق أقصى أداء.

الوظائف الأساسية:

  • معالجة GTP-U: تغليف وفك تغليف أنفاق GTP-U
  • تصنيف الحزم: مطابقة الحزم مع قواعد PDR باستخدام TEID، عنوان IP لـ UE، أو مرشحات SDF
  • تطبيق جودة الخدمة: تطبيق تحديد المعدل وتمييز الحزم وفقًا لقواعد QER
  • قرارات التوجيه: تنفيذ إجراءات FAR (توجيه، إسقاط، تخزين مؤقت، تكرار، إعلام)
  • تتبع الاستخدام: زيادة عدادات URR للشحن القائم على الحجم

خرائط eBPF: يستخدم مسار البيانات خرائط eBPF (جداول التجزئة في ذاكرة النواة) لتخزين القواعد:

اسم الخريطةالغرضال��فتاحالقيمة
uplink_pdr_mapPDRs الرافعةTEID (32-bit)معلومات PDR (معرف FAR، معرف QER، معرفات URR)
downlink_pdr_mapPDRs النزول (IPv4)عنوان IP لـ UEمعلومات PDR
downlink_pdr_map_ip6PDRs النزول (IPv6)عنوان IPv6 لـ UEمعلومات PDR
far_mapقواعد التوجيهمعرف FARمعلمات التوجيه (الإجراء، معلومات النفق)
qer_mapقواعد QoSمعرف QERمعلمات QoS (MBR، GBR، التمييز)
urr_mapتتبع الاستخداممعرف URRعدادات الحجم (الرفع، النزول، الإجمالي)
sdf_filter_mapمرشحات SDFمعرف PDRمرشحات التطبيقات (المنافذ، البروتوكولات)

خصائص الأداء:

  • بدون نسخ: تتم معالجة الحزم بالكامل في مساحة النواة
  • دعم XDP: التعلق على مستوى برنامج تشغيل الشبكة لزمن تأخير أقل من ميكروثانية
  • متعددة النواة: تتوسع عبر نوى CPU مع دعم خريطة لكل CPU
  • السعة: ملايين من PDRs/FARs في خرائط eBPF (محدودة بذاكرة النواة)

��رصد السعة، انظر إدارة السعة.


معالج واجهة PFCP​

ت implement واجهة PFCP 3GPP TS 29.244 للتواصل مع SMF أو PGW-C.

الوظائف الأساسية:

  • إدارة الارتباط: نبض PFCP وإعداد/إفراج الارتباط
  • دورة حياة الجلسة: إنشاء، تعديل، وحذف جلسات PFCP
  • تثبيت القواعد: ترجمة عناصر PFCP IE إلى إدخالات خريطة eBPF
  • تقرير الأحداث: إعلام SMF بعوامل الاستخدام، الأخطاء، أو أحداث الجلسة

دعم رسائل PFCP:

نوع الرسالةالاتجاهالغرض
إعداد الارتباطSMF → UPFإنشاء ارتباط التحكم PFCP
إفراج الارتباطSMF → UPFإنهاء ارتباط PFCP
نبضثنائي الاتجاهالحفاظ على الارتباط نشطًا
إنشاء الجلسةSMF → UPFإنشاء جلسة PDU جديدة مع PDR/FAR/QER/URR
تعديل الجلسةSMF → UPFتحديث القواعد للتنقل، تغييرات QoS
حذف الجلسةSMF → UPFإزالة الجلسة وجميع ��لقواعد المرتبطة بها
تقرير الجلسةUPF → SMFتقرير الاستخدام، الأخطاء، أو الأحداث

عناصر المعلومات (IE) المدعومة:

  • إنشاء PDR، FAR، QER، URR
  • تحديث PDR، FAR، QER، URR
  • إزالة PDR، FAR، QER، URR
  • معلومات اكتشاف الحزم (عنوان IP لـ UE، F-TEID، مرشح SDF)
  • معلمات التوجيه (مثيل الشبكة، إنشاء رأس خارجي)
  • معلمات QoS (MBR، GBR، QFI)
  • محركات تقرير الاستخدام (عتبة الحجم، عتبة الوقت)

خادم REST API​

يوفر REST API وصولًا برمجيًا إلى حالة UPF وعملياته.

الوظائف الأساسية:

  • مراقبة الجلسات: استعلام عن جلسات PFCP النشطة والارتباطات
  • فحص القواعد: عرض تكوينات PDR وFAR وQER وURR
  • الإحصائيات: استرجاع عدادات الحزم، إحصائيات المسار، إحصائيات XDP
  • إدارة التخزين المؤقت: عرض والتحكم في تخزين الحزم
  • معلومات الخريطة: مراقبة استخدام خريطة eBPF والسعة

نقاط النهاية API: (34 نقطة نهاية إجمالية)

الفئةنقاط النهايةالوصف
الصحة/healthفحص الصحة والحالة
التكوين/configتكوين UPF
الجلسات/pfcp_sessions, /pfcp_associationsبيانات جلسة/ارتباط PFCP
PDRs/uplink_pdr_map, /downlink_pdr_map, /downlink_pdr_map_ip6, /uplink_pdr_map_ip6قواعد اكتشاف الحزم
FARs/far_mapقواعد إجراء التوجيه
QERs/qer_mapقواعد تطبيق جودة الخدمة
URRs/urr_mapقواعد تقرير الاستخدام
التخزين المؤقت/bufferحالة التحكم في التخزين المؤقت للحزم
الإحصائيات/packet_stats, /route_stats, /xdp_stats, /n3n6_statsمقاييس الأداء
السعة/map_infoسعة واستخدام خريطة eBPF
مسار البيانات/dataplane_configعناوين واجهة N3/N9

للحصول على تفاصيل API والاستخدام، انظر دليل المراقبة.


لوحة التحكم على الويب​

توفر لوحة التحكم على الويب لوحة معلومات في الوقت الحقيقي لم��اقبة وإدارة UPF.

الميزات:

  • عرض الجلسات: تصفح جلسات PFCP النشطة مع عنوان IP لـ UE وTEID وعدد القواعد
  • إدارة القواعد: عرض وإدارة PDRs وFARs وQERs وURRs عبر جميع الجلسات
  • مراقبة التخزين المؤقت: تتبع الحزم المخزنة والتحكم في التخزين المؤقت لكل FAR
  • لوحة إحصائيات: إحصائيات حزم وطرق وXDP وإحصائيات واجهة N3/N6 في الوقت الحقيقي
  • مراقبة السعة: استخدام خريطة eBPF مع مؤشرات سعة ملونة
  • عرض التكوين: عرض تكوين UPF وعناوين مسار البيانات
  • عارض السجلات: بث سجلات مباشرة لاستكشاف الأخطاء وإصلاحها

للحصول على عمليات واجهة المستخدم التفصيلية، انظر دليل عمليات واجهة الويب.

بروتوكول PFCP وتكامل SMF​

ارتباط PFCP​

قبل إنشاء الجلسات، يجب على SMF إنشاء ارتباط PFCP مع UPF.

دورة حياة الارتباط:

النقاط الرئيسية:

  • يقوم كل SMF بإنشاء ارتباط واحد مع UPF
  • يتتبع UPF الارتباط بواسطة معرف العقدة (FQDN أو عنوان IP)
  • تحافظ رسائل النبض على نشاط الارتباط
  • يتم حذف جميع الجلسات تحت ارتباط إذا تم الإفراج عن الارتباط

لرؤية الارتباطات، انظر عرض الجلسات.


اكتشاف إعادة تشغيل SMF وتنظيف الجلسات اليتيمة​

تكتشف OmniUPF تلقائيًا عندما يتم إعادة تشغيل SMF وتقوم بتنظيف الجلسات اليتيمة وفقًا لمواصفات 3GPP TS 29.244.

كيف يعمل ذلك:

عندما يقو�� SMF بإنشاء ارتباط PFCP، فإنه يوفر ختم الاسترداد يشير إلى متى بدأ. تقوم OmniUPF بتخزين هذا الختم لكل ارتباط. إذا أعيد تشغيل SMF:

  1. يفقد SMF جميع حالة الجلسة في الذاكرة
  2. يعيد SMF إنشاء ارتباط PFCP مع UPF
  3. يرسل SMF ختم استرداد جديد (مختلف عن السابق)
  4. تكتشف UPF تغيير الختم = تم إعادة تشغيل SMF
  5. تحذف UPF تلقائيًا جميع الجلسات اليتيمة من مثيل SMF القديم
  6. ينشئ SMF جلسات جديدة للمشتركين النشطين

تدفق اكتشاف إعادة التشغيل:

مثال على السجل:

عندما يتم إعادة تشغيل SMF، سترى:

WARN: الارتباط مع NodeID: smf-1 والعنوان: 192.168.1.10 موجود بالفعل
WARN: تم تغيير ختم استرداد SMF (القديم: 2025-01-15T10:00:00Z، الجديد: 2025-01-15T10:30:15Z) - تم إعادة تشغيل SMF، حذف 245 جلسة يتيمة
INFO: حذف الجلسة اليتيمة 2 (LocalSEID) بسبب إعادة تشغيل SMF
INFO: حذف الجلسة اليتيمة 3 (LocalSEID) بسبب إعادة تشغيل SMF
...
INFO: حذف الجلسة اليتي��ة 246 (LocalSEID) بسبب إعادة تشغيل SMF

ملاحظات هامة:

  1. العزل: يتم حذف جلسات SMF المعاد تشغيلها فقط. لا تتأثر ارتباطات SMF الأخرى وجلساتها بأي شكل.
2. **مقارنة الطوابع الزمنية**: إذا كانت الطوابع الزمنية للاسترداد **متطابقة**، يتم **الاحتفاظ** بالجلسات (تم إعادة الاتصال بـ SMF دون إعادة التشغيل).

3. **امتثال 3GPP**: هذا السلوك مفروض بموجب 3GPP TS 29.244 القسم 5.22.2:
> "إذا كانت طابع الاسترداد الزمني لوظيفة CP قد تغيرت منذ آخر إعداد ارتباط، يجب على وظيفة UP أن تعتبر أن وظيفة CP قد أعيد تشغيلها ويجب عليها حذف جميع جلسات PFCP المرتبطة بتلك الوظيفة CP."

لإصلاح جلسات اليتيمة، راجع [دليل استكشاف الأخطاء](./docs/TROUBLESHOOTING.md).

---

### معالجة إشارة خطأ GTP-U

يتعامل OmniUPF مع رسائل إشارة خطأ GTP-U من الأقران السفليين (PGW-U، SGW-U، eNodeB، gNodeB) وفقًا لمواصفات 3GPP TS 29.281.

**ما هي إشارات الخطأ**:

عندما يقوم OmniUPF بإعادة توجيه حزمة GTP-U إلى نظير بعيد (على سبيل المثال، PGW-U في نشر SGW-U)، قد يرسل النظير إشارة **خطأ** إذا لم يتعرف على TEID (معرف نقطة نهاية النفق). وهذا يدل على:
- أن النظير البعيد قد أعيد تشغيله وفقد حالة النفق
- أن النفق لم يتم إنشاؤه أبدًا على الجانب البعيد (عدم تطابق التكوين)
- أن النفق قد تم حذفه بالفعل على الجانب البعيد

**كيف يعمل**:

1. **UPF يعيد توجيه الحزمة** → يرسل حزمة GTP-U مع TEID X إلى النظير البعيد (المنفذ 2152)
2. **النظير البعيد لا يتعرف على TEID X** → يبحث عن TEID في جدول الأنفاق الخاص به، غير موجود
3. **النظير البعيد يرسل إشارة خطأ** → نوع رسالة GTP-U 26 مع IE تحتوي على TEID خاطئ
4. **UPF يستقبل إشارة خطأ** → يحلل الرسالة لاستخراج TEID X
5. **UPF يجد الجلسات المتأثرة** → يبحث في جميع الجلسات عن FARs التي تعيد توجيهها إلى TEID X
6. **UPF يحذف الجلسات** → يزيل الجلسات من خرائط eBPF وحالة PFCP
7. **UPF يحدث المقاييس** → يزيد عدادات Prometheus للمراقبة

**تدفق إشارة الخطأ**:

```mermaid
sequenceDiagram
participant UE as UE
participant SGW_U as OmniUPF<br/>(دور SGW-U)
participant PGW_U as PGW-U

Note over PGW_U: PGW-U لديه نفق نشط<br/>TEID: 0x12345678

UE->>SGW_U: حزمة بيانات صاعدة
SGW_U->>PGW_U: GTP-U G-PDU<br/>(TEID: 0x12345678)
Note over PGW_U: يعيد التوجيه بشكل طبيعي

Note over PGW_U: ⚠️ PGW-U يعيد التشغيل<br/>يفقد جميع حالة النفق!

UE->>SGW_U: حزمة بيانات صاعدة
SGW_U->>PGW_U: GTP-U G-PDU<br/>(TEID: 0x12345678)
PGW_U->>PGW_U: بحث عن TEID 0x12345678<br/>❌ غير موجود

PGW_U->>SGW_U: ⚠️ إشارة خطأ GTP-U<br/>(TEID خاطئ: 0x12345678)

SGW_U->>SGW_U: تحليل إشارة الخطأ<br/>استخراج TEID: 0x12345678
SGW_U->>SGW_U: العثور على الجلسات مع FAR<br/>تعيد توجيهها إلى TEID 0x12345678
SGW_U->>SGW_U: حذف الجلسات المتأثرة<br/>- الإزالة من خرائط eBPF<br/>- مسح حالة PFCP
SGW_U->>SGW_U: تحديث المقاييس:<br/>error_indications_received++<br/>sessions_deleted++

Note over SGW_U: توقف عن إعاد�� التوجيه إلى<br/>النفق الميت TEID 0x12345678

تنسيق الحزمة (3GPP TS 29.281 القسم 7.3.1):

GTP-U Error Indication:
┌─────────────────────────────────────────┐
│ GTP-U Header (12 bytes) │
├─────────────────────────────────────────┤
│ Version, PT, Flags │ 0x32 │
│ Message Type │ 26 (0x1A) │
│ Length │ 9 bytes │
│ TEID │ 0 (دائمًا) │
│ Sequence Number │ يتغير │
│ N-PDU Number │ 0 │
│ Next Extension Header │ 0 │
├─────────────────────────────────────────┤
│ IE: TEID Data I (5 bytes) │
├─────────────────────────────────────────┤
│ Type │ 16 (0x10) │
│ Erroneous TEID │ 4 bytes │
└─────────────────────────────────────────┘

متى يكون هذا مهمًا:

السيناريو 1: إعادة تشغيل PGW-U في بنية GTP S5/S8

  • SGW-U (OmniUPF) يعيد توجيه حركة المرور S5/S8 إلى PGW-U
  • PGW-U يعيد التشغيل ويفقد جميع حالة النفق S5/S8
  • SGW-U يستمر في إعادة التوجيه إلى TEIDs القديمة
  • PGW-U يرسل إشارات خطأ
  • SGW-U يتوقف تلقائيًا عن استخدام الأنفاق الميتة

السيناريو 2: إعادة تشغيل UPF النظير في بنية N9

  • UPF-1 (OmniUPF) يعيد توجيه حركة مرور N9 إلى UPF-2
  • UPF-2 يعيد التشغيل
  • UPF-1 يستقبل إشارات خطأ
  • UPF-1 ينظف الجلسات

مثال على السجل:

عند استلام إشارة خطأ:

WARN: Received GTP-U Error Indication from 192.168.50.10:2152 for TEID 0x12345678 - remote peer doesn't recognize this TEID
WARN: Found session LocalSEID=42 with FAR GlobalId=1 forwarding to erroneous TEID 0x12345678 from peer 192.168.50.10
INFO: Deleting session LocalSEID=42 due to GTP-U Error Indication for TEID 0x12345678 from 192.168.50.10
WARN: Deleted 1 session(s) due to GTP-U Error Indication for TEID 0x12345678 from peer 192.168.50.10

مقاييس Prometheus:

راقب نشاط إشارة الخطأ بدقة لكل نظير ولكل عقدة:

# إجمالي إشارات الخطأ المستلمة من الأقران
upf_buffer_listener_error_indications_received_total&#123;node_id="pgw-u-1",peer_address="192.168.50.10"&#125;

# الجلسات المحذوفة بسبب إشارات الخطأ
upf_buffer_listener_error_indication_sessions_deleted_total&#123;node_id="pgw-u-1",peer_address="192.168.50.10"&#125;

# إشارات الخطأ المرسلة (لـ TEIDs الواردة غير المعروفة)
upf_buffer_listener_error_indications_sent_total&#123;node_id="enodeb-1",peer_address="10.60.0.1"&#125;

تسميات المقاييس:

  • node_id: معرف عقدة PFCP من الارتباط (أو "غير معروف" إذا لم يكن هناك ارتباط)
  • peer_address: عنوان IP للنظير البعيد

تساعد هذه المقاييس في تحديد الأقران المشكوك فيها وتتبع أنماط إشارة الخطأ لكل عقدة في مستوى التحكم.

ملاحظات مهمة:

  1. التنظيف التلقائي: لا حاجة لتدخل المشغل - يتم حذف الجلسات تلقائيًا

  2. مطابقة TEID: يتم حذف الجلسات فقط مع FARs التي تعيد توجيهها إلى TEID الخاطئ بالض��ط

  3. عزل لكل نظير: تؤثر إشارات الخطأ من نظير واحد فقط على الجلسات التي تعيد توجيهها إلى ذلك النظير

  4. جلسات متعددة: إذا كانت هناك جلسات متعددة تعيد توجيهها إلى نفس TEID الميت، يتم حذف جميعها

  5. تكامل مع طابع الاسترداد الزمني:

    • اكتشاف طابع الاسترداد الزمني = استباقي (يكتشف إعادة التشغيل أثناء إعداد الارتباط)
    • معالجة إشارة الخطأ = تفاعلي (يكتشف الأنفاق الميتة عندما تتدفق الحركة)
  6. معالجة الحزم غير الصحيحة: يتم تسجيل إشارات الخطأ غير الصحيحة وتجاهلها (لا يتم حذف أي جلسات)

لإصلاح إشارات الخطأ، راجع دليل استكشاف الأخطاء.


إنشاء جلسة PFCP​

عندما يقوم UE بإنشاء جلسة PDU (5G) أو سياق PDP (LTE)، يقوم SMF بإنشاء جلسة PFCP في UPF.

تدفق إنشاء الجلسة:

محتويات الجلسة النموذجية:

  • PDR صاعدة: مطابقة على TEID N3، إعادة التوجيه عبر FAR إلى N6
  • PDR هابطة: مطابقة على عنوان IP لـ UE، إعادة التوجيه عبر FAR إلى N3 مع تغليف GTP-U
  • FAR: معلمات إعادة التوجيه (إنشاء رأس خارجي، مثيل الشبكة)
  • QER: حدود QoS (MBR، GBR) وعلامة الحزمة (QFI)
  • URR: تقارير الحجم للشحن (اختياري)

تعديل جلسة PFCP​

يمكن لـ SMF تعديل الجلسات لأحداث التنقل (تبديل)، تغييرات QoS، أو تحديثات الخدمة.

سيناريوهات التعديل الشائعة:

  1. تبديل (مبني على N2)

    • تحديث FAR صاعدة مع نقطة نهاية نفق gNB الجديدة (F-TEID)
    • يمكن تخزين الحزم مؤقتًا أثناء تبديل المسار
    • تفريغ المخزن إلى المسار الجديد عند الاستعداد
  2. تغيير QoS

    • تحديث QER مع قيم MBR/GBR الجديدة
    • قد يتم إضافة/إزالة مرشحات SDF في PDR من أجل QoS محدد للتطبيق
  3. تحديث الخدمة

    • إضافة PDRs جديدة لتدفقات حركة المرور الإضافية
    • تعديل FARs لتغييرات التوجيه

تدفق تعديل الجلسة:

لإدارة القواعد، راجع دليل إدارة القواعد.


حذف جلسة PFCP​

عندما يتم تحرير جلسة PDU، يقوم SMF بحذف جلسة PFCP في UPF.

تدفق حذف الجلسة:

التنظيف المنفذ:

  • إزالة جميع PDRs (صاعدة وهابطة)
  • إزالة جميع FARs، QERs، URRs
  • مسح المخازن الحزم
  • إرسال تقرير الاستخدام النهائي إلى SMF للشحن

ا��عمليات الشائعة​

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

مراقبة الجلسة​

فهم جلسات PFCP:

تمثل جلسات PFCP جلسات PDU النشطة لـ UE (5G) أو سياقات PDP (LTE). تحتوي كل جلسة على:

  • SEIDs المحلية والبعيدة (معرفات نقطة نهاية الجلسة)
  • PDRs لتصنيف الحزم
  • FARs لقرارات إعادة التوجيه
  • QERs لتطبيق QoS (اختياري)
  • URRs لتتبع الاستخدام (اختياري)

العمليات الرئيسية للجلسة:

  • عرض جميع الجلسات مع عناوين IP لـ UE، TEIDs، وعدد القواعد
  • تصفية الجلسات حسب عنوان IP أو TEID
  • فحص تفاصيل الجلسة بما في ذلك تكوينات PDR/FAR/QER/URR الكاملة
  • مراقبة عدد الجلسات لكل ارتباط PFCP

لإجراءات الجلسة التفصيلية، راجع عرض الجلسات.


إدارة القواعد​

قواعد كشف الحزم (PDR):

تحدد PDRs ��لحزم التي تتطابق مع تدفقات حركة المرور المحددة. يمكن للمشغلين:

  • عرض PDRs الصاعدة المفاتيح بواسطة TEID من واجهة N3
  • عرض PDRs الهابطة المفاتيح بواسطة عنوان IP لـ UE (IPv4 وIPv6)
  • فحص مرشحات SDF للتصنيف المحدد للتطبيق
  • مراقبة عدد PDRs واستخدام السعة

قواعد إجراءات إعادة التوجيه (FAR):

تحدد FARs ما يجب القيام به مع الحزم المطابقة. يمكن للمشغلين:

  • عرض إجراءات FAR (FORWARD، DROP، BUFFER، DUPLICATE، NOTIFY)
  • فحص معلمات إعادة التوجيه (إنشاء رأس خارجي، وجهة)
  • مراقبة حالة التخزين المؤقت لكل FAR
  • تبديل التخزين المؤقت لقواعد FAR محددة أثناء استكشاف الأخطاء

قواعد تطبيق QoS (QER):

تطبق QERs حدود النطاق الترددي وعلامات الحزم. يمكن للمشغلين:

  • عرض معلمات QoS (MBR، GBR، ميزانية تأخير الحزمة)
  • مراقبة QERs النشطة لكل جلسة
  • فحص علامات QFI لتدفقات QoS 5G

قواعد تقارير الاستخدام (URR):

��تبع URRs أحجام البيانات للشحن. يمكن للمشغلين:

  • عرض عدادات الحجم (الرفع، التنزيل، إجمالي البايتات)
  • مراقبة حدود الاستخدام ومحفزات التقارير
  • فحص URRs النشطة عبر جميع الجلسات

لعمليات القواعد، راجع دليل إدارة القواعد.


التخزين المؤقت للحزم​

لماذا يعتبر التخزين المؤقت أمرًا حيويًا لـ UPF​

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

المشكلة: فقدان الحزم أثناء التنقل​

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

بدون التخزين المؤقت: الحزم التي تصل خلال هذه النافذة الحرجة ستُعتبر مفقودة، مما يتسبب في:

  • توقف اتصالات TCP أو إعادة تعيينها (تصفح الويب، انقطاع التنزيلات)
  • تجمد مكالمات الفيديو أو انقطاعها (فشل مكالمات Zoom، Teams، WhatsApp)
  • انقطاع جلسات الألعاب (فشل الألعاب عبر الإنترنت، التطبيقات في الوقت الحقيقي)
  • فجوات في مكالمات VoIP أو انقطاعها تمامًا (انقطاعات المكالمات الهاتفية)
  • فشل التنزيلات وضرورة إعادة التشغيل

مع التخزين المؤقت: يحتفظ OmniUPF مؤقتًا بالحزم حتى يتم إنشاء المسار الجديد، ثم يعيد توجيهها بسلاسة. يختبر المستخدم عدم وجود انقطاع.


متى يحدث التخزين المؤقت​

يقوم OmniUPF بتخزين الحزم في هذه السيناريوهات الحرجة:

1. تبديل مبني على N2 (5G) / تبديل مبني على X2 (4G)

عندما يتحرك UE بين أبراج الخلايا:

الجدول الزمني:

  • T+0ms: المسار القديم لا يزال نشطًا
  • T+10ms: SMF يخبر UPF بالتخزين المؤقت (المسار القديم يغلق، المسار الجديد ليس جاهزًا)
  • T+10-50ms: نافذة التخزين المؤقت الحرجة - تصل الحزم ولكن لا يمكن إعادة توجيهها
  • T+50ms: المسار الجديد جاهز، SMF يخبر UPF بإعادة التوجيه
  • T+50ms+: UPF يفرغ الحزم المخزنة إلى المسار الجديد، ثم يعيد توجيه الحزم الجديدة بشكل طبيعي

بدون التخزين المؤقت: ~40ms من الحزم (قد تكون آلاف) ستعتبر مفقودة. مع التخزين المؤقت: عدم فقدان الحزم، تبديل سلس.


2. تعديل الجلسة (تغيير QoS، تحديث الم��ار)

عندما تحتاج الشبكة إلى تغيير معلمات الجلسة:

  • ترقية/خفض QoS: ينتقل المستخدم من تغطية 4G إلى 5G (وضع NSA)
  • تغيير السياسة: يدخل المستخدم المؤسسي إلى الحرم الجامعي (تغييرات توجيه الحركة)
  • تحسين الشبكة: تعيد الشبكة الأساسية توجيه الحركة إلى UPF أقرب (تحديث ULCL)

أثناء التعديل، قد تحتاج وحدة التحكم إلى تحديث قواعد متعددة بشكل ذري. يضمن التخزين المؤقت عدم إعادة توجيه الحزم مع مجموعات قواعد جزئية/غير متسقة.


3. إشعار بيانات هابطة (استعادة الوضع الخامل)

عندما يكون UE في وضع الخمول (الشاشة مطفأة، توفير الطاقة) وتصل بيانات هابطة:

بدون التخزين المؤقت: ستعتبر الحزمة الأولية التي أثارت الإشعار مفقودة، مما يتطلب من المرسل إعادة الإرسال (يضيف تأخيرًا). مع التخزين المؤقت: يتم تسليم الحزمة التي أيقظت UE على الفور عندما يعيد UE الاتصال.


4. تبديل بين RAT (4G ↔ 5G)

عندما يتحرك UE بين تغطية 4G و5G:

  • تتغير البنية (eNodeB ↔ gNB)
  • تتغير نقاط نهاية النفق (تخصيص TEID مختلفة)
  • يضمن التخزين المؤقت انتقالًا سلسًا بين أنواع RAT

كيف يعمل التخزين المؤقت في OmniUPF​

الآلية الفنية:

يستخدم OmniUPF بنية تخزين مؤقت من مرحلتين:

  1. مرحلة eBPF (النواة): تكشف عن الحزم التي تتطلب التخزين المؤقت بناءً على علامات إجراءات FAR
  2. مرحلة المستخدم: تخزن وتدير الحزم المخزنة في الذاكرة

عملية التخزين المؤقت:

تفاصيل رئيسية:

  • منفذ التخزين المؤقت: منفذ UDP 22152 (الحزم المرسلة من eBPF إلى المستخدم)
  • التغليف: الحزم مغلفة في GTP-U مع معرف FAR كـ TEID
  • التخزين: حزم في الذاكرة لكل FAR مع بيانات التعريف (الطابع الزمني، الاتجاه، ��جم الحزمة)
  • الحدود:
    • حد لكل FAR: 10,000 حزمة (افتراضي)
    • حد عالمي: 100,000 حزمة عبر جميع FARs
    • TTL: 30 ثانية (افتراضي) - الحزم التي تزيد عن TTL يتم التخلص منها
  • التنظيف: عملية خلفية تزيل الحزم المنتهية كل 60 ثانية

دورة حياة التخزين المؤقت:

  1. التخزين المؤقت مفعل: SMF يحدد إجراء FAR BUFF=1 (البند 2) عبر تعديل جلسة PFCP
  2. تخزين الحزم: eBPF يكشف عن علامة BUFF، يغلف الحزم، يرسل إلى المنفذ 22152
  3. تخزين المستخدم: مدير التخزين يخزن الحزم مع معرف FAR، الطابع الزمني، الاتجاه
  4. التخزين المؤقت معطل: SMF يحدد إجراء FAR FORW=1، BUFF=0 مع معلمات إعادة التوجيه الجديدة
  5. تفريغ المخزن: يعيد المستخدم تشغيل الحزم المخزنة باستخدام قواعد FAR الجديدة (نقطة نهاية النفق الجديدة)
  6. استئناف الوضع الطبيعي: يتم إعادة توجيه الحزم الجديدة على الفور عبر المسار الجديد

لماذا يهم هذا لتجربة المستخدم​

التأثير في العالم الحقيقي:

السيناريوبدون التخزين المؤقتمع التخزين المؤقت
مكالمة فيديو أثناء التبديلتتجمد المكالمة لمدة 1-2 ثانية، قد تنقطعسلس، لا انقطاع
تنزيل ملف عند حافة الخليةيفشل التنزيل، يجب إعادة البدءيستمر التنزيل دون انقطاع
ألعاب عبر الإنترنت أثناء الحركةتنقطع الاتصال، يتم طردك من اللعبةلعب سلس، لا انقطاعات
مكالمة VoIP في السيارةتنقطع المكالمة في كل تبديلواضحة تمامًا، لا انقطاعات
بث الفيديو على القطاريتوقف الفيديو، تنخفض الجودةتشغيل سلس
نقطة اتصال متنقلة للكمبيوتر المحمولتنقطع جلسة SSH، تفشل مكالمة الفيديويتم الحفاظ على جميع الاتصالات

**فوائد مشغل الشبكة**:

- **معدل انخفاض المكالمات (CDR) المنخفض**: KPI حاسم لجودة الشبكة
- **زيادة رضا العملاء**: لا يلاحظ المستخدمون الانتقالات
- **خفض تكاليف الدعم**: شكاوى أقل حول الاتصالات المقطوعة
- **ميزة تنافسية**: تسويق "أفضل شبكة للتغطية"

---

#### عمليات إدارة الذاكرة المؤقتة

يمكن للمشغلين مراقبة والتحكم في التخزين المؤقت عبر واجهة الويب وAPI:

**المراقبة**:
- **عرض الحزم المخزنة مؤقتًا** لكل معرف FAR (العدد، البايتات، العمر)
- **تتبع استخدام الذاكرة المؤقتة** مقابل الحدود (لكل FAR، عالمي)
- **تنبيه عند تجاوز الذاكرة المؤقتة** أو مدة التخزين المؤقت المفرطة
- **تحديد الذاكرات العالقة** (الحزم المخزنة مؤقتًا > عتبة TTL)

**عمليات التحكم**:
- **تفريغ الذاكرة المؤقتة**: تفعيل إعادة تشغيل الذاكرة المؤقتة يدويًا (استكشاف الأخطاء وإصلاحها)
- **مسح الذاكرة المؤقتة**: التخلص من الحزم المخزنة مؤقتًا (تنظيف الذاكرات العالقة)
- **تعديل TTL**: تغيير وقت انتهاء صلاحية الحزمة
- **تعديل الحدود**: زيادة سعة الذاكرة المؤقتة لكل FAR أو عالمي

**استكشاف الأخطاء وإصلاحها**:
- **الذاكرة المؤقتة لا تتفريغ**: تحقق مما إذا كان SMF قد أرسل تحديث FAR لتعطيل التخزين المؤقت
- **تجاوز الذاكرة المؤقتة**: زيادة الحدود أو التحقيق في سبب طول مدة التخزين المؤقت
- **حزم قديمة في الذاكرة المؤقتة**: قد يكون TTL مرتفعًا جدًا، أو تأخر تحديث FAR
- **تخزين مؤقت مفرط**: قد يشير إلى مشاكل في التنقل أو مشاكل في SMF

للحصول على تفاصيل عمليات الذاكرة المؤقتة، راجع [دليل إدارة الذاكرة المؤقتة](./docs/WEB_UI.md#buffer-management).

---

#### تكوين الذاكرة المؤقتة

قم بتكوين سلوك التخزين المؤقت في `/etc/omniupf/runtime.exs`:

```elixir
# إعدادات الذاكرة المؤقتة
buffer_port = 22152 # منفذ UDP للحزم المخزنة مؤقتًا (افتراضي)

التوصيات:

  • الشبكات ذات الحركة العالية (الطرق السريعة، القطارات): زيادة buffer_max_packets إلى 20,000+
  • المناطق الحضرية الكثيفة (الانتقالات المتكررة): تقليل buffer_packet_ttl إلى 15 ثانية
  • التطبيقات ذات الكمون المنخفض: تعيين buffer_packet_ttl إلى 10 ثوانٍ لمنع البيانات القديمة
  • شبكات IoT: تقليل الحدود (أجهزة IoT تنتج حركة مرور أقل أثناء الانتقال)

للحصول على خيارات التكوين الكاملة، راجع دليل التكوين.


الإحصائيات والمراقبة​

إحصائيات الحزم:

مقاييس معالجة الحزم في الوقت الحقيقي بما في ذلك:

  • حزم RX: إجمالي الحزم المستلمة من جميع الواجهات
  • حزم TX: إجمالي الحزم المرسلة إلى جميع الواجهات
  • الحزم المفقودة: الحزم التي تم التخلص منها بسبب الأخطاء أو السياس��ت
  • حزم GTP-U: عدد الحزم المعبأة

إحصائيات المسار:

مقاييس التوجيه لكل مسار:

  • ضربات المسار: الحزم المطابقة لكل مسار
  • أعداد التوجيه: النجاح/الفشل لكل وجهة
  • عدادات الأخطاء: TEIDs غير صالحة، عناوين IP غير معروفة لـ UE

إحصائيات XDP:

مقاييس أداء eXpress Data Path:

  • XDP المعالجة: الحزم التي تم التعامل معها في طبقة XDP
  • XDP المرسلة: الحزم المرسلة إلى كومة الشبكة
  • XDP المفقودة: الحزم المفقودة في طبقة XDP
  • XDP الملغاة: أخطاء المعالجة

إحصائيات واجهة N3/N6:

عدادات حركة المرور لكل واجهة:

  • N3 RX/TX: حركة المرور إلى/من RAN (gNB/eNodeB)
  • N6 RX/TX: حركة المرور إلى/من شبكة البيانات
  • إجمالي عدد الحزم: إحصائيات الواجهة المجمعة

للحصول على تفاصيل المراقبة، راجع دليل المراقبة.


إدارة السعة​

مراقبة سعة خريطة eBPF:

يعتمد أداء UPF على سعة خريطة eBPF. يمكن للمشغلين:

  • مراقبة استخدام الخريطة مع مؤشرات النسبة المئوية في الوقت الحقيقي
  • عرض حدود السعة لكل خريطة eBPF
  • تنبيهات ملونة:
    • أخضر (<50%): عادي
    • أصفر (50-70%): حذر
    • كهرماني (70-90%): تحذير
    • أحمر (>90%): حرج

الخرائط الحرجة للمراقبة:

  • uplink_pdr_map: تصنيف حركة المرور الصاعدة
  • downlink_pdr_map: تصنيف حركة مرور IPv4 الهابطة
  • far_map: قواعد التوجيه
  • qer_map: قواعد QoS
  • urr_map: تتبع الاستخدام

تخطيط السعة:

  • كل PDR يستهلك إدخال خريطة واحد (حجم المفتاح + حجم القيمة)
  • يتم تكوين سعة الخريطة عند بدء تشغيل UPF (حد ذاكرة النواة)
  • تجاوز السعة يتسبب في فشل إنشاء الجلسات

للحصول على مراقبة السعة، راجع إدارة السعة.


إدارة التكوين​

تكوين UPF:

عرض والتحقق من معلمات تشغيل UPF:

  • واجهة N3: عنوان IP للاتصال بـ RAN (GTP-U)
  • واجهة N6: عنوان IP للاتصال بشبكة البيانات
  • واجهة N9: عنوان IP للتواصل بين UPFs (اختياري)
  • واجهة PFCP: عنوان IP للاتصال بـ SMF
  • منفذ API: منفذ الاستماع لـ REST API
  • نقطة نهاية المقاييس: منفذ مقاييس Prometheus

تكوين بيانات الطائرة:

معلمات eBPF النشطة:

  • عنوان N3 النشط: ربط واجهة N3 في وقت التشغيل
  • عنوان N9 النشط: ربط واجهة N9 في وقت التشغيل (إذا كان مفعلًا)

للحصول على عرض التكوين، راجع عرض التكوين.

استكشاف الأخطاء وإصلاحها​

تتناول هذه القسم المشكلات التشغيلية الشائعة واستراتيجيات حلها.

فشل إنشاء الجلسات​

الأعراض: فشل جلسات PFCP في الإنشاء، UE لا يمكنه إنشاء اتصال بيانات

الأسباب الجذرية الشائعة:

  1. لم يتم إنشاء ارتباط PFCP

    • تحقق مما إذا كان SMF يمكنه الوصول إلى واجهة PFCP لـ UPF (المنفذ 8805)
    • تحقق من حالة ارتباط PFCP في عرض الجلسات
    • تحقق من تطابق تكوين معرف العقدة بين SMF وUPF
  2. استنفاد سعة خريطة eBPF

    • تحقق من عرض السعة لاستخدام الخريطة الأحمر (>90%)
    • زيادة أحجام خريطة eBPF في تكوين UPF
    • حذف الجلسات القديمة إذا كانت الخريطة ممتلئة
  3. تكوين PDR/FAR غير صالح

    • تحقق من أن عنوان IP لـ UE فريد وصالح
    • تحقق من أن تخصيص TEID لا يتعارض
    • تأكد من أن FAR تشير إلى مثيلات الشبكة الصالحة
  4. مشكلات تكوين الواجهة

    • تحقق من أن عنوان واجهة N3 يمكن الوصول إليه من gNB
    • تحقق من جداول التوجيه من أجل الاتصال بشبكة البيانات N6
    • تأكد من أن حركة مرور GTP-U غير محجوبة بواسطة جدار الحماية

للحصول على استكشاف الأخطاء وإصلاحها بالتفصيل، راجع دليل استكشاف الأخطاء وإصلاحها.


مشاكل فقدان الحزم أو التوجيه​

الأعراض: UE لديه اتصال ولكنه يعاني من فقدان الحزم أو عدم وجود تدفق حركة المرور

الأسباب الجذرية الشائعة:

  1. تكوين PDR غير صحيح

    • تحقق من أن TEID PDR الصاعدة يتطابق مع TEID المعين من gNB
    • تحقق من أن IP PDR الهابطة لـ UE يتطابق مع IP المعين
    • فحص مرشحات SDF لقواعد صارمة للغاية
  2. مشكلات إجراء FAR

    • تحقق من أن إجراء FAR هو FORWARD (ليس DROP أو BUFFER)
    • تحقق من معلمات إنشاء الرأس الخارجي لـ GTP-U
    • تأكد من أن نقطة النهاية الوجهة صحيحة
  3. تجاوز حدود QoS

    • تحقق من إعدادات MBR (معدل البت الأقصى) لـ QER
    • تحقق من تخصيص GBR (معدل البت المضمون)
    • مراقبة فقدان الحزم بسبب تحديد المعدل
  4. مشكلات MTU للواجهة

    • تحقق من أن الحمل الزائد لـ GTP-U (40-50 بايت) لا يتسبب في التجزئة
    • تحقق من تكوين MTU لواجهات N3/N6
    • راقب رسائل ICMP التي تحتاج إلى التجزئة

مشاكل متعلقة بالذاكرة المؤقتة​

الأعراض: حزم مخزنة مؤقتًا إلى أجل غير مسمى، تجاوز الذاكرة المؤقتة

الأسباب الجذرية الشائعة:

  1. عدم تعطيل التخزين المؤقت بعد الانتقال

    • تحقق من علامة تخزين FAR (البند 2)
    • تحقق مما إذا كان SMF قد أرسل تعديل الجلسة لتعطيل التخزين المؤقت
    • تعطيل التخزين المؤقت يدويًا عبر لوحة التحكم إذا كانت عالقة
  2. انتهاء صلاحية TTL للذاكرة المؤقتة

    • تحقق من عمر الحزمة في عرض الذاكرة المؤقتة
    • تحقق من تكوين TTL للذاكرة المؤقتة (قد يكون الافتراضي طويلاً جدًا)
    • مسح الذاكرات المؤقتة المنتهية يدويًا
  3. استنفاد سعة الذاكرة المؤقتة

    • مراقبة إجمالي استخدام الذاكرة المؤقتة وحدود كل FAR
    • تحقق من القواعد غير المكونة بشكل صحيح التي تسبب تخزين مؤقت مفرط
    • تعديل الحدود القصوى للذاكرة المؤقتة لكل FAR والحد الأقصى الكلي

للحصول على استكشاف الأخطاء وإصلاحها المتعلقة بالذاكرة المؤقتة، راجع عمليات الذاكرة المؤقتة.


شذوذ الإحصائي��ت​

الأعراض: عدادات الحزم غير المتوقعة، إحصائيات مفقودة

الأسباب الجذرية الشائعة:

  1. تجاوز العداد

    • تستخدم خرائط eBPF عدادات 64 بت (يجب ألا تتجاوز)
    • تحقق من أحداث إعادة تعيين العداد في السجلات
    • تحقق من أن تقرير URR يعمل
  2. إحصائيات المسار لا تتحدث

    • تحقق من أن برنامج eBPF متصل بالواجهات
    • تحقق من أن إصدار النواة يدعم ميزات eBPF المطلوبة
    • مراجعة إحصائيات XDP لأخطاء المعالجة
  3. عدم تطابق إحصائيات الواجهة

    • قارن إحصائيات N3/N6 مع عدادات واجهة النواة
    • تحقق من حركة المرور التي تتجاوز eBPF (مثل التوجيه المحلي)
    • تحقق من أن كل حركة المرور تمر عبر خطافات XDP

تدهور الأداء​

الأعراض: زمن انتقال مرتفع، إنتاجية منخفضة، تشبع وحدة المعالجة المركزية

التشخيص:

  1. مراقبة إحصائيات XDP: تحقق من فقدان XDP أو الإلغاءات
  2. تحقق من زمن وصول خريطة eBPF: يجب أن تكون عمليات البحث عن التجزئة أقل من ميكروثانية
  3. مراجعة استخدام وحدة المعالجة المركزية: يجب أن يتم توزيع eBPF عبر النوى
  4. تحليل واجهة الشبكة: تحقق من أن NIC يدعم تحميل XDP

اعتبارات القابلية للتوسع:

  • أداء XDP: 10M+ حزمة في الثانية لكل نواة
  • سعة PDR: ملايين PDRs مقيدة فقط بذاكرة النواة
  • عدد الجلسات: آلاف الجلسات المتزامنة لكل مثيل UPF
  • الإنتاجية: إنتاجية متعددة الجيجابت مع تحميل NIC المناسب

لتحسين الأداء، راجع دليل الهندسة المعمارية.

الوثائق الإضافية​

أدلة عمليات محددة للمكونات​

للحصول على عمليات مفصلة واستكشاف الأخطاء وإصلاحها لكل مكون من مكونات UPF:

دليل التكوين​

مرجع تكوين كامل بما في ذلك:

  • معلمات التكوين (YAML، متغيرات البيئة، CLI)
  • أوضاع التشغيل (UPF/PGW-U/SGW-U)
  • نظرة عامة على أوضاع إرفاق XDP
  • توافق المحاكيات (Proxmox، VMware، KVM، Hyper-V، VirtualBox)
  • توافق NIC ودعم برنامج تشغيل XDP
  • أمثلة على التكوين لسيناريوهات مختلفة
  • حجم الخريطة وتخطيط السعة

دليل أوضاع XDP​

تكوين XDP التفصيلي والتحسين بما في ذلك:

  • شرح أوضاع إرفاق XDP (عام/محلي/تحميل)
  • مقارنة الأداء والمعايير
  • إعداد XDP المحلي على Proxmox VE خطوة بخطوة
  • تكوين متعدد الطوابير لأفضل أداء
  • إعداد XDP على VMware ESXi وKVM وHyper-V
  • التحقق من XDP واستكشاف الأخطاء وإصلاحها
  • اختيار الأجهزة لأداء XDP

دليل الهندسة المعمارية​

غوص تقني عميق بما في ذلك:

  • أساس تقنية eBPF ودورة حياة البرنامج
  • خط أنابيب معالجة حزم XDP مع استدعاءات ذيل
  • تنفيذ بروتوكول PFCP
  • بنية التخزين المؤقت (تغليف GTP-U إلى المنفذ 22152)
  • تحديد معدل نافذة QoS (نافذة 5 مللي ثانية)
  • خصائص الأداء (زمن انتقال 3.5μs، 10 Mpps/core)

دليل إدارة القواعد​

مرجع قواعد PFCP بما في ذلك:

  • قواعد اكتشاف الحزم (PDR) - تصنيف الحركة
  • قواعد إجراء التوجيه (FAR) - قرارات التوجيه مع علامات الإجراء
  • قواعد تنفيذ QoS (QER) - إدارة النطاق الترددي (MBR/GBR)
  • قواعد تقرير الاستخدام (URR) - تتبع الحجم والتقارير
  • مخططات تدفق الحزم الصاعدة والهابطة
  • منطق معالجة القواعد والأسبقية

دليل المراقبة​

الإحصائيات وإدارة السعة بما في ذلك:

  • إحصائيات واجهة N3/N6 وتوزيع الحركة
  • إحصائيات معالجة XDP (تمرير/فقدان/إعادة توجيه/إلغاء)
  • مراقبة سعة خريطة eBPF مع مناطق ملونة
  • مقاييس الأداء (معدل الحزم، الإنتاجية، معدل الفقد)
  • صيغ تخطيط السعة وتقدير الجلسات
  • عتبات التنبيه وأفضل الممارسات

دليل عمليات واجهة الويب​

استخدام لوحة التحكم بما في ذلك:

  • نظرة عامة على لوحة المعلومات والتنقل
  • مراقبة الجلسات (حالات صحية/غير صحية)
  • فحص القواعد (تفاصيل PDR، FAR، QER، URR)
  • مراقبة الذاكرة المؤقتة وحالة تخزين الحزم
  • لوحة معلومات إحصائيات في الوقت الحقيقي
  • تصور سعة خريطة eBPF
  • عرض التكوين

توثيق API​

مرجع كامل لـ REST API بما في ذلك:

  • توثيق OpenAPI/Swagger التفاعلي
  • ترقيم API (استنادًا إلى الصفحة واستنادًا إلى الإزاحة)
  • نقاط نهاية جلسات PFCP والارتباطات
  • قواعد اكتشاف الحزم (PDR) - IPv4 وIPv6
  • قواعد إجراء التوجيه (FAR)
  • قواعد تنفيذ QoS (QER)
  • قواعد تقرير الاستخدام (URR)
  • إدارة الذاكرة المؤقتة للحزم
  • نقاط نهاية الإحصائيات والمراقبة
  • إدارة المسار ودمج FRR
  • معلومات خريطة eBPF
  • إدارة التكوين
  • إرشادات المصادقة والأمان
  • سير العمل الشائعة لـ API وأمثلة

مرجع المقاييس​

توثيق مقاييس Prometheus بما في ذلك:

  • مقاييس رسائل PFCP (عدادات، زمن الانتقال، الأخطاء لكل نظير)
  • مقاييس إجراءات XDP (أحكام بيانات الطائرة)
  • مقاييس الحزم (عدادات على مستوى البروتوكول مع تسميات packet_type)
  • مقاييس جلسات PFCP والارتباطات (لكل عقدة في مستوى التحكم)
  • مقاييس URR (حجم الحركة لكل نظير PFCP)
  • مقاييس تخزين الحزم (حالة التخزين، السعة، الإنتاجية)
  • مقاييس إشعار تقرير البيانات الهابطة (DLDR)
  • مقاييس سعة خريطة eBPF (استخدام الموارد)
  • أمثلة على تكوين Prometheus
  • توصيات لوحة معلومات Grafana

مرجع رموز سبب PFCP​

توثيق رموز خطأ PFCP بما في ذلك:

  • تعريفات رموز السبب والتوافق مع 3GPP (TS 129.244)
  • متى تحدث كل رمز سبب (نجاح، أخطاء العميل، أخطاء الخادم)
  • سيناريوهات الفشل الشائعة مع الحلول
  • استكشاف الأخطاء باستخدام مقاييس Prometheus
  • إعداد الارتباط وفشل دورة حياة الجلسة
  • خطوات تصحيح الأخطاء لمعدلات الرفض العالية
  • توصيات التنبيه لرموز السبب

دليل إدار�� مسارات UE​

دمج توجيه FRR بما في ذلك:

  • نظرة عامة على FRR (التوجيه الحر) والعمارة
  • دورة حياة مزامنة مسار UE
  • مزامنة المسار التلقائية مع خادم التوجيه
  • إعلان المسار عبر OSPF وBGP
  • مراقبة جيران OSPF
  • التحقق من قاعدة بيانات OSPF External LSA
  • إدارة جلسات نظير BGP
  • واجهة مراقبة المسار في واجهة الويب
  • عمليات مزامنة المسار اليدوية
  • مخططات Mermaid لتدفق المسار والعمارة

دليل IPv6 / Dual-Stack​

تشغيل IPv6 في مستوى المستخدم لجلسات PDN IPv6 وIPv4v6:

  • المتطلبات الأساسية للنواة (تفعيل IPv6 والتوجيه)
  • تكوين مجموعة عناوين IPv6 لـ UE
  • إعلان OSPFv3 لمسارات مضيف UE /128
  • سلوك بيانات الطائرة الهابطة/الصاعدة لـ IPv6
  • استكشاف أخطاء توجيه IPv6 وإعلان المسار

دليل استكشاف الأخطاء وإصلاحها​

تشخيص شامل للمشاكل بما في ذلك:

  • قائمة فحص تشخيصية سريعة والأدوات
  • مشكلات التثبيت والتكوين
  • فشل ارتباط PFCP
  • مشاكل معالجة الحزم
  • أخطاء XDP وeBPF
  • تدهور الأداء
  • مشكلات محددة بالمحاكي (Proxmox، VMware، VirtualBox)
  • مشكلات NIC وبرامج التشغيل
  • إجراءات حل خطوة بخطوة

الوثائق حسب حالة الاستخدام​

تثبيت وتكوين OmniUPF​

  1. ابدأ مع هذا الدليل للحصول على نظرة عامة
  2. دليل التكوين لمعلمات الإعداد
  3. دليل واجهة الويب للوصول إلى لوحة التحكم

النشر على Proxmox​

  1. دليل أوضاع XDP - إعداد XDP المحلي على Proxmox - ابدأ هنا للأداء
  2. دليل التكوين - توافق المحاكي
  3. دليل التكوين - إعداد Proxmox SR-IOV
  4. استكشاف الأخطاء وإصلاحها - مشكلات Proxmox

تحسين الأداء​

  1. دليل أوضاع XDP - قم بتمكين XDP المحلي للحصول على زيادة في الأداء من 5-10 مرات
  2. دليل الهندسة المعمارية - تحسين الأداء
  3. دليل التكوين - أوضاع XDP
  4. دليل المراقبة - مقاييس الأداء
  5. استكشاف الأخطاء وإصلاحها - مشكلات الأداء

فهم معالجة الحزم​

  1. دليل الهندسة المعمارية - خط أنابيب معالجة الحزم
  2. دليل إدارة القواعد
  3. دليل المراقبة - الإحصائيات

تخطيط السعة​

  1. دليل التكوين - حجم الخريطة
  2. دليل المراقبة - تخطيط السعة
  3. دليل المراقبة - تقدير سعة الجلسات

إدارة مسارات UE ودمج FRR​

  1. دليل إدارة مسارات UE - دليل تكامل التوجيه الكامل
  2. توثيق API - إدارة المسار - نقاط نهاية API للمسار
  3. دليل واجهة الويب - عمليات صفحة المسارات
  4. إدارة مسار UE - التحقق من FRR - التحقق من OSPF LSA

استخدام REST API​

  1. توثيق API - مرجع API كامل
  2. توثيق API - واجهة Swagger - مستكشف API التفاعلي
  3. توثيق API - ميزات API - أمثلة على استخدام API
  4. دليل واجهة الويب - واجهة الويب كعميل API مثال

استكشاف المشكلات​

  1. دليل استكشاف الأخطاء وإصلاحها - ابدأ هنا
  2. دليل المراقبة - تحقق من الإحصائيات والسعة
  3. دليل واجهة الويب - استخدم تشخيصات لوحة التحكم

مرجع سريع​

نقاط نهاية API الشائعة​

يوفر OmniUPF واجهة برمجة تطبيقات REST للمراقبة والإدارة:

# الحالة والصحة
GET http://localhost:8080/api/v1/upf_status

# ارتباطات PFCP
GET http://localhost:8080/api/v1/upf_pipeline

# الجلسات
GET http://localhost:8080/api/v1/sessions

# الإحصائيات
GET http://localhost:8080/api/v1/packet_stats
GET http://localhost:8080/api/v1/xdp_stats

# مراقبة السعة
GET http://localhost:8080/api/v1/map_info

# إحصائيات الذاكرة المؤقتة
GET http://localhost:8080/api/v1/upf_buffer_info

للحصول على توثيق API الكامل، الوصول إلى واجهة Swagger على http://<upf-ip>:8080/swagger/index.html

معلمات التكوين الأساسية​

# /etc/omniupf/runtime.exs
xdp_interfaces = "eth0" # الواجهات لحركة مرور N3/N6/N9
xdp_attach_mode = "native" # "عام" | "محلي" | "تحميل"
n3_address = "10.100.50.233" # عنوان IP لواجهة N3
pfcp_address = "10.100.50.241" # عنوان الاستماع لـ PFCP
pfcp_port = 8805 # منفذ PFCP
node_id = "10.100.50.241" # معرف العقدة لـ PFCP

# السعة
max_sessions = 100_000 # الحد الأقصى للجلسات المتزامنة

# API
api_port = 8080 # منفذ REST API

عتبات المراقبة الهامة​

  • سعة خريطة eBPF < 70%: تشغيل عادي
  • سعة خريطة eBPF 70-90%: خطط لزيادة السعة خلال أسبوع واحد
  • سعة خريطة eBPF > 90%: حرج - يتطلب إجراء فوري
  • معدل فقدان الحزم < 0.1%: ممتاز
  • معدل فقدان الحزم 0.1-1%: جيد - مشاكل طفيفة
  • معدل فقدان الحزم > 5%: حرج - تحقق على الفور
  • XDP الملغاة > 0: مشكلة حرجة مع برنامج eBPF

مرجع معايير 3GPP​

يطبق OmniUPF المواصفات التالية من 3GPP:

المواصفةالعنوانالصلة
TS 23.501بنية النظام لنظام 5G (5GS)بنية UPF في 5G والواجهات
TS 23.401تحسينات خدمة الحزمة العامة (GPRS) للوصول إلى E-UTRANبنية UPF في LTE (PGW-U)
TS 29.244الواجهة بين عقد التحكم وعقد بيانات المستخدم (PFCP)بروتوكول PFCP N4
TS 29.281بروتوكول نفق خدمة الحزمة العامة (GTPv1-U)تغليف GTP-U
TS 23.503إطار التحكم في السياسة والفوترة لنظام 5G (5GS)QoS والفوترة
TS 29.212التحكم في السياسة والفوترة (PCC)تنفيذ QoS

المعجم​

مصطلحات بنية 5G​

  • 3GPP: مشروع الشراكة للجيل الثالث - هيئة المعايير للاتصالات المتنقلة
  • AMF: وظيفة إدارة الوصول والتنقل - عنصر شبكة الجيل الخامس للتحكم في الوصول
  • CHF: وظيفة الفوترة - نظام الفوترة في الجيل الخامس
  • DN: شبكة البيانات - شبكة خارجية (الإنترنت، IMS، المؤسسات)
  • eNodeB: العقدة المتطورة B - محطة قاعدة LTE
  • F-TEID: معرف نقطة النهاية للنفق المؤهل بالكامل - معرف نفق GTP-U مع عنوان IP
  • gNB: العقدة التالية B - محطة قاعدة 5G
  • GTP-U: بروتوكول نفق خدمة الحزمة العامة - بروتوكول النفق لبيانات المستخدم
  • MBR: الحد الأقصى لمعدل البت - معلمة QoS للنطاق الترددي الأقصى المسموح به
  • GBR: معدل البت المضمون - معلمة QoS للنطاق الترددي الأدنى المضمون
  • N3: الواجهة بين RAN وUPF (حركة مرور بيانات المستخدم)
  • N4: الواجهة بين SMF وUPF (تحكم PFCP)
  • N6: الواجهة بين UPF وشبكة البيانات (حركة مرور بيانات المستخدم)
  • N9: الواجهة بين UPFs (حركة مرور بيانات المستخدم بين UPFs)
  • PCF: وظيفة التحكم في السياسة - خادم السياسة في الجيل الخامس
  • PDU: وحدة بيانات البروتوكول - جلسة بيانات في الجيل الخامس
  • PGW-C: بوابة PDN لطبقة التحكم - نظير LTE لـ SMF
  • PGW-U: بوابة PDN لطبقة المستخدم - بيانات LTE (مكافئ UPF)
  • QFI: معرف تدفق QoS - تمييز تدفق QoS في الجيل الخامس
  • QoS: جودة الخدمة - أولوية الحركة وإدارة النطاق الترددي
  • RAN: شبكة الوصول الراديوي - شبكة محطة القاعدة (gNB/eNodeB)
  • SEID: معرف نقطة نهاية الجلسة - معرف جلسة PFCP
  • SMF: وظيفة إدارة الجلسة - عنصر شبكة الجيل الخامس للتحكم في الجلسة
  • TEID: معرف نقطة نهاية النفق - معرف نفق GTP-U
  • UE: معدات المستخدم - جهاز محمول
  • UPF: وظيفة بيانات المستخدم - عنصر شبكة توجيه الحزم في الجيل الخامس

مصطلحات بروتوكول PFCP​

  • Association: العلاقة التحكمية بين SMF و UPF
  • FAR: قاعدة إجراء التوجيه - تحدد سلوك توجيه الحزم
  • IE: عنصر المعلومات - مكون رسالة PFCP
  • Node ID: معرف UPF أو SMF (FQDN أو عنوان IP)
  • PDR: قاعدة اكتشاف الحزم - تصنف الحزم إلى تدفقات
  • PFCP: بروتوكول التحكم في توجيه الحزم - بروتوكول التحكم N4
  • QER: قاعدة فرض جودة الخدمة - تطبق حدود النطاق الترددي والتوسيم
  • SDF: تدفق بيانات الخدمة - فلتر حركة المرور الخاص بالتطبيق
  • Session: جلسة PFCP تمثل جلسة PDU لـ UE أو سياق PDP
  • URR: قاعدة تقرير الاستخدام - تتبع أحجام البيانات للفوترة

مصطلحات eBPF ونواة لينكس​

  • BPF: فلتر الحزم من بيركلي - تقنية تصفية الحزم في النواة
  • eBPF: BPF الموسع - مسار بيانات النواة القابل للبرمجة
  • Hash Map: مخزن القيم المفتاحية eBPF للبحث السريع
  • XDP: مسار البيانات السريع - معالجة الحزم في النواة على مستوى السائق
  • Verifier: مكون النواة الذي يتحقق من سلامة برامج eBPF
  • Map: هيكل بيانات eBPF مشترك بين النواة وفضاء المستخدم
  • Zero-copy: معالجة الحزم دون النسخ إلى فضاء المستخدم

مصطلحات منتج OmniUPF​

  • OmniUPF: وظيفة مستوى المستخدم المعتمدة على eBPF (هذا المنتج)
  • Datapath: محرك معالجة الحزم (برامج eBPF)
  • Control Plane: معالج PFCP وإدارة الجلسات
  • REST API: واجهة برمجة التطبيقات HTTP للمراقبة والإدارة
  • Web UI: لوحة تحكم قائمة على المتصفح