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

وثائق واجهة Sxa

الاتصال بـ PFCP مع SGW-U

OmniSGW من Omnitouch Network Services


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

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

نظرة عامة

تربط واجهة Sxa OmniSGW بـ SGW-U (بوابة الخدمة لطبقة المستخدم) باستخدام بروتوكول PFCP (بروتوكول التحكم في توجيه الحزم). تتحكم هذه الواجهة في توجيه حزم طبقة المستخدم، وفرض جودة الخدمة، وتقارير الاستخدام.

الميزات الرئيسية

  • PFCP v1.0 - التحكم في توجيه الحزم وفقًا للمعايير
  • تتبع الجلسات المعتمد على SEID - معرفات نقطة نهاية الجلسة للجمعية
  • قواعد اكتشاف الحزم - مطابقة مرنة للحزم للرفع/الخفض
  • قواعد إجراء التوجيه - التحكم في توجيه الحزم والتغليف
  • فرض جودة الخدمة - تحديد الحد الأقصى لمعدل البيانات لكل حامل وتحديد الأولويات
  • قياس الاستخدام - تتبع الحجم للفوترة والتحليلات
  • تحكم في التخزين المؤقت - تخزين مؤقت تلقائي أثناء أحداث التنقل

تفاصيل البروتوكول

إصدار PFCP 1.0

  • البروتوكول: PFCP v1.0 (3GPP TS 29.244)
  • النقل: UDP
  • المنفذ: 8805 (قياسي)
  • نوع الواجهة: Control Plane
  • نموذج الجمعية: CP و UP تشكل جمعية دائمة

SEID (معرف نقطة نهاية الجلسة)

لكل جلسة معرفات SEID فريدة للتتبع:

  • CP SEID - مخصص بواسطة SGW-C، يستخدم في رسائل الرفع إلى SGW-U
  • UP SEID - مخصص بواسطة SGW-U، يستخدم في رسائل الخفض إلى SGW-C
توجيه الرسائل:
SGW-C → SGW-U: يستخدم UP SEID الخاص بـ SGW-U
SGW-U → SGW-C: يستخدم CP SEID الخاص بـ SGW-C

نظرة عامة على أنواع الرسائل


التكوين

التكوين الأساسي

# config/runtime.exs
config :sgw_c,
sxa: %{
# عنوان IP المحلي لواجهة Sxa
local_ip_address: "10.0.0.20",

# اختياري: تجاوز المنفذ الافتراضي
local_port: 8805,

# أقران SGW-U للاتصال بها
peers: [
%{
ip_address: "10.0.0.30",
node_id: "sgw-u-1.example.com"
},
%{
ip_address: "10.0.0.31",
node_id: "sgw-u-2.example.com"
}
],

# فترة نبض الجمعية (بالثواني)
heartbeat_interval_s: 20,

# مهلة إنشاء الجلسة (بالملي ثانية)
session_timeout_ms: 5000,

# الحد الأقصى لعدد المحاولات لعمليات الجلسة
max_retries: 3
}

متطلبات الشبكة

قواعد جدار الحماية:

# السماح بـ PFCP من شبكة SGW-U
iptables -A INPUT -p udp --dport 8805 -s <sgwu_network>/24 -j ACCEPT

# السماح بـ PFCP الصادر إلى SGW-U
iptables -A OUTPUT -p udp --dport 8805 -d <sgwu_network>/24 -j ACCEPT

التوجيه:

# التأكد من وجود مسار إلى شبكة SGW-U
ip route add <sgwu_network>/24 via <gateway_ip> dev eth0

اختبار الشبكة:

# اختبار الاتصال بـ PFCP
# تحقق من السجلات للرسالة "Association Setup Complete"

# مراقبة جلسات PFCP النشطة
curl http://127.0.0.40:42068/metrics | grep seid_registry_count

جمعية PFCP

دورة حياة الجمعية

قبل أن يتم إنشاء أي جلسات، يجب على SGW-C و SGW-U تشكيل جمعية PFCP.

آلة حالة الجمعية

[Disconnected]
↓ (Setup Request)
[Associating]
↓ (Setup Response OK)
[Associated]
↓ (Session Creates)
[Sessions Active]
↓ (Heartbeat Failure)
[Re-associating]
↓ (Setup OK or Timeout)
[Associated or Disconnected]

معالجة الاسترداد

إذا فقدت جمعية PFCP وتم استردادها:

  1. كشف الاسترداد:

    • يؤدي انتهاء نبض القلب إلى بدء الاسترداد
    • يتم إرسال إعداد جمعية جديدة
    • يتم التحقق من طابع زمني الاسترداد
  2. استرداد الجلسة:

    • قد تكون الجلسات قابلة للاسترداد أو لا
    • استفسر SGW-U عن الجلسات الحالية
    • أعِد إنشاء الجلسات المفقودة إذا لزم الأمر
  3. توجيه البيانات:

    • تخزين مؤقت لطبقة المستخدم في SGW-U أثناء الاسترداد
    • تبقى PDRs نشطة حتى يتم حذفها صراحة
    • تقليل فقد الحزم أثناء التحويل

إدارة الجلسات

إنشاء الجلسة

التحفيز: طلب إنشاء جلسة من MME (تم استلامه على S11)

عناصر المعلومات المرسلة:

العنصرالوصف
CP SEIDمخصص بواسطة SGW-C لهذه الجلسة
PDRsقواعد اكتشاف الحزم (انظر أدناه)
FARsقواعد إجراء التوجيه
QERsقواعد فرض جودة الخدمة
BARقاعدة إجراء التخزين المؤقت للتنقل
إنشاء PDRمعرفات القواعد للاستجابة

حالة الجلسة:

[No Session]
↓ (Establishment Request)
[Establishing]
↓ (Establishment Response)
[Session Active]

تعديل الجلسة

التحفيز: طلب تعديل الحامل من MME (تغيير جودة الخدمة، نقل)

التعديلات الشائعة:

التعديلالعناصر المحدثةالسبب
تغيير جودة الخدمةQERsترقية/خفض الحامل
نقلPDRs، FARsتغيير eNodeB، اختيار SGW-U
إضافة حاملPDR جديد، FAR، QERتفعيل حامل مخصص
حذف حاملإزالة PDR، FAR، QERإلغاء تفعيل الحامل

حذف الجلسة

التحفيز: طلب حذف الجلسة من MME (فصل)

حالة الجلسة:

[Session Active]
↓ (Deletion Request)
[Deleting]
↓ (Deletion Response)
[Session Terminated]

قواعد PFCP

PDR (قاعدة اكتشاف الحزمة)

ت��ابق الحزم الواردة لتحديد تدفقات المرور.

معايير اكتشاف الحزم:

المعيارالوصفالمثال
واجهة المصدرمن أين تصل الحزمةالوصول (S1-U)، النواة (S5/S8)
عنوان IP المصدرعنوان IP لـ UE (للوصول)10.45.0.50
عنوان IP الوجهةعنوان IP الشبكة الخارجية (للنواة)8.8.8.8
نوع البروتوكولرقم بروتوكول IPTCP (6)، UDP (17)
المنفذ المصدرمطابقة المنفذ1024-65535
المنفذ الوجهةمطابقة المنفذ80 (HTTP)، 443 (HTTPS)
TEIDمعرف نفق GTP-Uللحزم الواردة

هيكل PDR:

هيكل PDR:
├── معرف PDR (فريد داخل الجلسة)
├── الأسبقية (الأولوية للقواعد المتداخلة)
├── معايير اكتشاف الحزم
│ ├── واجهة المصدر
│ ├── مثيل الشبكة (APN)
│ └── عنوان IP لـ UE / عنوان IP الوجهة
├── معرف FAR (أي قاعدة توجيه يجب تطبيقها)
├── معرف QER (أي قاعدة جودة خدمة يجب تطبيقها)
└���─ مشغل تقرير الاستخدام

حالة الاستخدام - حامل افتراضي:

  • الاكتشاف: جميع الحزم من/إلى عنوان IP لـ UE
  • الإجراء: توجيه عبر PDN (اتجاه PGW-U)
  • جودة الخدمة: مطبقة لكل حامل

حالة الاستخدام - حامل مخصص:

  • الاكتشاف: الحزم المطابقة لتدفق معين (نطاق المنفذ، البروتوكول)
  • الإجراء: توجيه على مسار مخصص
  • جودة الخدمة: معدلات مميزة (GBR)

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

تحدد كيفية التعامل مع الحزم المطابقة.

إجراءات التوجيه:

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

خيارات التغليف:

  • GTP-U - إضافة رأس نفق GTP-U (S1-U، S5/S8)
  • إيثرنت - إضافة رأس إيثرنت (للاتصال المباشر)
  • IPv4 - توجيه IPv4 عادي (لخروج الإنترنت)
  • IPv6 - توجيه IPv6 عادي

مثال - UE إلى الإنترنت:

مطابقة PDR: واجهة المصدر = الوصول، عنوان IP لـ UE = 10.45.0.50
إجراء FAR:
- التوجيه = نعم
- تغليف الرأس الخارجي = لا شيء (الإنترنت المباشر)
- معلمات التوجيه = بوابة الإنترنت

QER (قاعدة فرض جودة الخدمة)

تفرض حدود معدل البيانات لكل حامل.

معلمات جودة الخدمة:

المعلمةالنوعالوصف
QCIعدد صحيحمعرف فئة جودة الخدمة (1-9)
MBR (الحد الأقصى لمعدل البيانات)معدل البياناتالحد الأقصى المسموح به
GBR (معدل البيانات المضمون)معدل البياناتالحد الأدنى المضمون
ARPعدد صحيحأولوية التخصيص والاحتفاظ (1-15)

فئات جودة الخدمة (QCI):

QCIنوع الخدمةأمثلة على معدل البيانات
1صوت (GBR)MBR: 64 كيلوبت في الثانية
2مكالمة فيديو (GBR)MBR: 256 كيلوبت في الثانية
3ألعاب في الوقت الحقيقي (GBR)MBR: 50 كيلوبت في الثانية
4غير GBRGBR: 128 كيلوبت في الثانية، MBR: 256 كيلوبت في الثانية
5إشارات IMSGBR: 100 كيلوبت في الثانية، MBR: 256 كيلوبت في الثانية
6بث الفيديوMBR: 10 ميغابت في الثانية
7صوت مع فيديو (GBR)GBR: 64 كيلوبت في الثانية، MBR: 384 كيلوبت في الثانية
8تصفح الويبMBR: 5 ميغابت في الثانية
9بريد إلكترونيMBR: 3 ميغابت في الثانية

مثال - حامل افتراضي (QCI 9):

QCI: 9 (أفضل جهد)
MBR: 100 ميغابت في الثانية (حسب الموقع)
GBR: لا شيء (غير GBR)
ARP: 15 (أدنى أولوية)

مثال - حامل صوت مخصص (QCI 1):

QCI: 1 (صوت)
MBR: 128 كيلوبت في الثانية (رفع + خفض)
GBR: 64 كيلوبت في الثانية (مضمون)
ARP: 1 (أعلى أولوية)

BAR (قاعدة إجراء التخزين المؤقت)

تتحكم في تخزين الحزم أثناء أحداث التنقل.

سيناريوهات التخزين المؤقت:

  1. تخزين مؤقت أثناء النقل:

    • يتم نقل UE بين eNodeBs
    • يتم تخزين الحزم أثناء الحركة
    • يتم تحريرها عند اكتمال النقل
  2. تخزين مؤقت أثناء الصفحات:

    • UE في وضع الخمول (حاملات معلقة)
    • تصل بيانات خفض
    • يتم تخزينها حتى يتم إعادة تنشيط UE
  3. إعادة توطين SGW:

    • أثناء النقل بين MME مع تغيير SGW
    • يقوم SGW القديم بالتخزين المؤقت والتوجيه إلى SGW الجديد
    • يتم الحفاظ على التسليم المرتب

تكوين BAR:

إعدادات BAR:
├── مهلة التخزين المؤقت: كم من الوقت يجب الاحتفاظ بالحزم
├── عتبة عدد الحزم: الحد الأقصى للحزم المخزنة مؤقتًا
└── مشغل تقرير بيانات خفض
└── إرسال إشعار إلى CP عند وصول البيانات

تقارير الاستخدام

رسائل تقرير الاستخدام

ترسل SGW-U تقارير الاستخدام إلى SGW-C ��لفوترة والتحليلات.

مشغلات تقرير الاستخدام

ترسل التقارير عندما:

المشغلالشرط
فترة زمنيةتقرير دوري كل N ثانية
عتبة الحجمبعد N بايت تم توجيهها
عتبة المدةبعد N ثانية من التوجيه
نهاية الجلسةعند حذف الجلسة
تعديلعند تحديث القواعد
تقرير فوريمطلوب في رسالة التعديل

حقول تقرير الاستخدام

تقرير الاستخدام:
├── مشغل تقرير الاستخدام: ما الذي تسبب في هذا التقرير
├── UR-SEQN: رقم التسلسل للترتيب
├── معلومات الاستخدام لكل حامل:
│ ├── EBI: معرف الحامل
│ ├── قياس الحجم
│ │ ├── UL: بايتات الرفع
│ │ ├── DL: بايتات الخفض
│ │ ├── الإجمالي: إجمالي البايتات
│ │ └── الحزم: إ��مالي الحزم
│ ├── قياس المدة: ثوانٍ نشطة
│ └── وقت أول/آخر حزمة: الطوابع الزمنية
└── استفسار UR: طلب تقرير فوري

تدفق توليد CDR


عمليات الشبكة

مراقبة جمعية PFCP

راقب جمعيات PFCP النشطة:

# تحقق من حالة الجمعية
curl -s http://127.0.0.40:42068/metrics | grep pfcp_association

# الناتج المتوقع:
# pfcp_association_status{peer_ip="10.0.0.30"} 1 (مرتبط)
# pfcp_association_status{peer_ip="10.0.0.31"} 1 (مرتبط)

# واجهة الويب → صفحة حالة SGW-U
# تعرض جميع الأقران مع حالة "مرتبط" ومعلومات الاسترداد

مقاييس الجلسة

راقب جلسات PFCP النشطة:

# عد الجلسات النشطة
curl -s http://127.0.0.40:42068/metrics | grep seid_registry_count

# راقب توزيع لكل SGW-U
curl -s http://127.0.0.40:42068/metrics | grep seid_by_peer

# معدل الاستخدام (بايتات/ثانية)
curl -s http://127.0.0.40:42068/metrics | grep usage_octets_rate

مراقبة تدفق الرسائل

تتبع نشاط رسائل PFCP:

# راقب جميع رسائل PFCP
watch -n 1 'curl -s http://127.0.0.40:42068/metrics | grep sxa_inbound'

# مثال على الناتج:
# sxa_inbound_messages_total{message_type="session_establishment_response"} 5432
# sxa_inbound_messages_total{message_type="session_modification_response"} 12100
# sxa_inbound_messages_total{message_type="session_report_request"} 67000

التحقق من تثبيت القواعد

تحقق مما إذا كانت القواعد مثبتة بشكل صحيح في SGW-U:

# راقب نجاحات/إخفاقات إنشاء الجلسات
curl -s http://127.0.0.40:42068/metrics | grep sxa_session_establishment

# تحقق من مشكلات تثبيت PDR
curl -s http://127.0.0.40:42068/metrics | grep pdr_installation

# ابحث عن انتهاء المهلة
curl -s http://127.0.0.40:42068/metrics | grep sxa_timeout_total

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

إخفاقات الجمعية

المشكلة: "فشل إعداد الجمعية"

التشخيص:

  1. تحقق من الاتصال بالشبكة: ping <sgwu_ip>
  2. تحقق من المنفذ: netstat -an | grep 8805
  3. تحقق من السجلات للحصول على تفاصيل الخطأ

الأسباب الشائعة والحلول:

السببالعرضالحل
الشبكة غير قابلة للوصولانتهاء المهلة عند الإعدادتحقق من التوجيه إلى SGW-U
المنفذ محجوزتم رفض الاتصالتحقق من قواعد جدار الحماية
SGW-U متوقفلا استجابةأعد تشغيل عملية SGW-U
عدم تطابق معرف العقدةتم رفض الإعدادتحقق من التكوين

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

المشكلة: "فشل إنشاء الجلسة"

التشخيص:

# تحقق من المقاييس
curl -s http://127.0.0.40:42068/metrics | grep seid_registry_count

# تحقق من السجلات للحصول على خطأ محدد
tail -f /var/log/sgw_c/sgw_c.log | grep "Session Establishment"

الأسباب الشائعة:

السببرسالة الخطأالحل
SGW-U لا موارد"موارد غير كافية"تحقق من سعة SGW-U
PDR غير صالح"IE إلزامي مفقود"تحقق من تعريفات القواعد
تعارض SEID"SEID موجود بالفعل"تحقق من تكرار الجلسة
انتهاء المهلة"انتهاء مهلة إنشاء الجلسة"زيادة المهلة أو تحقق من SGW-U

مشكلات تقرير الاستخدام

المشكلة: "تقارير الاستخدام مفقودة"

التشخيص:

# تحقق من عدد التقارير
curl -s http://127.0.0.40:42068/metrics | grep session_report_request_total

# راقب توليد CDR
tail -f /var/log/sgw_c/cdrs/<timestamp>

الحلول:

  • تحقق من أن نبض SGW-U نشط
  • تحقق من تكوين مشغل تقرير الجلسة
  • تأكد من أن أذونات دليل CDR صحيحة
  • راقب تجاوز التخزين المؤقت لـ SGW-U

مشكلات الأداء

المشكلة: ارتفاع زمن ��ستجابة رسائل PFCP

المقاييس التي يجب التحقق منها:

# مدة معالجة الرسالة
curl -s http://127.0.0.40:42068/metrics | grep sxa_inbound_duration_seconds

# الحمل لكل نظير
curl -s http://127.0.0.40:42068/metrics | grep seid_by_peer

# عمق الطابور
curl -s http://127.0.0.40:42068/metrics | grep pfcp_queue_depth

خطوات التحسين:

  1. توزيع الحمل عبر عدة أقران SGW-U
  2. زيادة مهلة نبض القلب إذا كانت الشبكة غير مستقرة
  3. مراقبة وتقليل تعقيد القواعد
  4. التوسع أفقيًا مع إضافات SGW-C

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


أفضل الممارسات

التكوين

  • فترة نبض القلب: تعيينها إلى 20-30 ثانية للكشف الموثوق
  • مهلة الجلسة: 5-10 ثوانٍ بناءً على زمن الانتقال في الشبكة
  • الحد الأقصى لعدد المحاولات: 2-3 لتحقيق التوازن بين الموثوقية والزمن
  • اختيار الأقران: توزيع الحمل ��بر جميع أقران SGW-U

العمليات

  • تكرار الأقران: تكوين عدة مثيلات SGW-U للتبديل
  • إعادة التحميل بسلاسة: دعم التحديثات البرمجية أثناء الخدمة
  • تجفيف الجلسات: نقل الجلسات قبل الصيانة
  • المراقبة: تتبع تكرار استرداد الجمعية

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

  • احتفظ بالسجلات: احتفظ بتتبع رسائل PFCP للتصحيح
  • الارتباط: ربط رسائل S11 بعمليات جلسة PFCP
  • مقاييس الأساس: إنشاء أساس للأداء الطبيعي
  • اختبار سيناريوهات الفشل: ممارسة إجراءات تبديل SGW-U