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

دليل عمليات OmniSMF

نظرة عامة

تقوم OmniSMF بتنفيذ وظيفة إدارة الجلسات (SMF) من النواة 5G، المسؤولة عن دورة حياة جلسات PDU بالكامل. إنها تربط واجهة N4 (PFCP) نحو UPF، وواجهة N7 نحو PCF، وواجهات N10/N11 نحو UDM و AMF على التوالي.

يتم إدارة كل جلسة PDU بواسطة SessionWorker GenServer مخصص تحت SessionSupervisor DynamicSupervisor (معمارية عملية لكل جلسة). جميع حالة الجلسة (تدفقات QoS، سياق PFCP، IP UE، حالة اتصال UP) مملوكة لعملية العامل. لا تؤثر انهيارات الجلسات الأخرى على جلسة واحدة. يتم إجراء ��ميع مكالمات SBI الصادرة عبر HTTP عادي باستخدام URIs ثابتة تم تكوينها عند بدء التشغيل؛ اكتشاف ديناميكي قائم على NRF غير نشط في الإصدار الحالي.

المعمارية


دور 3GPP ومراجع المواصفات

المواصفةالصلة
TS 23.501بنية النظام — دور SMF، مفهوم جلسة PDU
TS 23.502الإجراءات — إنشاء جلسة PDU (4.3.2)، التعديل (4.3.3)، الإنهاء (4.3.4)
TS 29.502واجهة Nsmf_PDUSession API (HTTP/2 SBI)
TS 29.244واجهة N4 — بروتوكول PFCP بين SMF و UPF
TS 29.503Nudm_SubscriberDataManagement و Nudm_UEContextManagement
TS 29.512Npcf_SMPolicyControl — ارتباط سياسة SM نحو PCF
TS 29.518Namf_Communication — N1N2MessageTransfer نحو AMF

نقاط نهاية SBI

تُخدم جميع نقاط النهاية تحت عنوان URL الأساسي {sbi_scheme}://{sbi_addr}:{sbi_port}.

الطريقةالمسارالخدمةالوصفالمواصفة
POST/nsmf-pdusession/v1/sm-contextsNsmf_PDUSessionإنشاء سياق SM (إنشاء جلسة PDU)TS 29.502 6.1.6.2.2
POST/nsmf-pdusession/v1/sm-contexts/{smContextRef}/modifyNsmf_PDUSessionتحديث سياق SM (معلومات N2، تغيير حالة UP، تسليم، علامة الإنهاء)TS 29.502 6.1.6.4.2
POST/nsmf-pdusession/v1/sm-contexts/{smContextRef}/releaseNsmf_PDUSessionإنهاء سياق SM (إنهاء الجلسة)TS 29.502 6.1.6.5.2

ملخص الطلب / الاستجابة

إنشاء سياق SM — الحقول المطلوبة في الطلب: supi, sNssai, servingNetwork, dnn, smContextStatusUri, pduSessionId. يرجع 201 Created مع Location: /nsmf-pdusession/v1/sm-contexts/{ref}.

تحديث سياق SM — يتم الإرسال بناءً على أول مفتاح معترف به في الجسم:

مفتاح الجسمالسيناريو
n2SmInfo + n2SmInfoTypeمعلومات N2 SM من gNB (PDU_RES_SETUP_RSP / PDU_RES_REL_RSP)
upCnxState: DEACTIVATEDإنهاء AN / دخول UE في وضع الخمول
upCnxState: ACTIVATINGطلب خدمة — يرجع N2 PDU_RES_SETUP_REQ
release: trueإنهاء بدأه AMF
servingNfIdتغيير مثيل AMF أثناء التنقل

إنهاء سياق SM — قد يتضمن الجسم ueLocation لتسجيل الموقع النهائي. يرجع 204 No Content.


مرجع التكوين

يتم قراءة التكوين من مفتاح بيئة التطبيق :omnismf. آلية النشر القياسية هي config/runtime.exs أو متغيرات البيئة الخاصة بنظام التشغيل المربوطة عند بدء التشغيل.

config :omnismf,
sbi_scheme: "http",
sbi_addr: "127.0.0.4",
sbi_port: 7777,
nrf_uri: "http://127.0.0.10:7777",
udm_uri: "http://127.0.0.12:7777",
pcf_uri: "http://127.0.0.13:7777",
amf_uri: "http://127.0.0.5:7777",
upf_addr: "127.0.0.7",
upf_pfcp_port: 8805,
mcc: "999",
mnc: "70",
heartbeat_interval: 10_000,
pfcp_addr: "127.0.0.4",
ue_ip_pool: "10.45.0.0/16",
dns: ["8.8.8.8", "8.8.4.4"],
dns6: ["2001:4860:4860::8888"],
mtu: 1400

جدول المعلمات

المعلمةالنوعالافتراضيالوصف
sbi_schemeسلسلة"http"مخطط HTTP لفتحة الاستماع SBI (http أو https)
sbi_addrسلسلة"127.0.0.4"عنوان IP الذي يرتبط به خادم HTTP SBI
sbi_portعدد صحيح7777منفذ TCP الذي يستمع عليه خادم HTTP SBI
nrf_uriسلسلة"http://127.0.0.10:7777"URI الأساسي لـ NRF. يستخدم فقط لتسجيل NF وطلبات نبضات القلب (اكتشاف قائم على NRF غير نشط)
udm_uriسلسلة"http://127.0.0.12:7777"URI الأساسي لـ UDM. يستخدم لمكالمات Nudm-SDM (sm-data) و Nudm-UECM (smf-registrations)
pcf_uriسلسلة"http://127.0.0.13:7777"URI الأساسي لـ PCF. يستخدم لمكالمات Npcf-SMPolicyControl (sm-policies)
amf_uriسلسلة"http://127.0.0.5:7777"URI الأساسي لـ AMF. يستخدم لمكالمات N1N2MessageTransfer (namf-comm). يتم تجاوزها لكل جلسة بواسطة مضيف smContextStatusUri إذا كان موجودًا
upf_addrسلسلة"127.0.0.7"عنوان IP لنقطة نهاية PFCP لـ UPF (واجهة N4)
upf_pfcp_portعدد صحيح8805منفذ UDP لنقطة نهاية PFCP لـ UPF. منفذ PFCP القياسي وفقًا لـ TS 29.244
mccسلسلة"999"رمز الدولة المتنقلة لشبكة PLMN المقدمة
mncسلسلة"70"رمز الشبكة المتنقلة لشبكة PLMN المقدمة
heartbeat_intervalعدد صحيح (مللي ثانية)10000الفاصل الزمني بالمللي ثانية بين طلبات نبضات القلب NRF. يستخدم أيضًا لاشتقاق عتبة وقت URR (heartbeat_interval / 1000 * 6 ثواني)
dnsقائمة من السلاسل["8.8.8.8", "8.8.4.4"]عناوين خادم DNS IPv4 التي يتم تسليمها إلى UE في قبول إنشاء جلسة PDU
dns6قائمة من السلاسل["2001:4860:4860::8888"]عناوين خادم DNS IPv6 التي يتم تسليمها إلى UE في قبول إنشاء جلسة PDU
pfcp_addrسلسلة"127.0.0.4"عنوان IP المصدر لرسائل PFCP (N4) المرسلة إلى UPF. يجب أن يكون قابلاً للتوجيه من UPF
ue_ip_poolسلسلة"10.45.0.0/16"شبكة CIDR التي يتم تخصيص عناوين IPv4 الخاصة بـ UE منها. يتم إدارتها بواسطة UeIpPool GenServer مع إزالة التكرار والإفراج عند الإنهاء
mtuعدد صحيح1400قيمة MTU المعلنة لـ UE لجلسة PDU

الإجراءات الرئيسية

إنشاء جلسة PDU (TS 23.502 القسم 4.3.2)

إنهاء جلسة PDU (TS 23.502 القسم 4.3.4)

UE في وضع الخمول / طلب الخدمة (حالة اتصال UP)

هيكل جلسة PFCP N4

تؤدي كل جلسة PDU إلى تثبيت عناصر PFCP التالية على UPF:

IEIDالاتجاهالغرض
PDR (الرفع)1الوصول -> النواةمطابقة حركة مرور GTP-U من gNB على UPF N3 F-TEID
PDR (الخفض)2النواة -> الوصولمطابقة حركة المرور من N6 بواسطة عنوان IP لـ UE
FAR (الرفع)1النواةإعادة توجيه إلى N6 (بدون رأس خارجي)
FAR (الخفض)2الوصولفي البداية BUFFER؛ يتم تحديثها إلى GTP-U FORWARD بعد PDU_RES_SETUP_RSP
QER1كلاهمافرض AMBR للجلسة (MBR للرفع والخفض)
URR1كلاهماتقرير الاستخدام القائم على الوقت (العتبة = heartbeat_interval * 6 ثواني)

مقاييس Prometheus

مقاييس SBI / جلسة PDU

المقياسالنوعالعلاماتالوصف
omni_smf.pdu_session.create.countعدادresultعمليات إنشاء جلسة PDU
omni_smf.pdu_session.modify.countعدادresultعمليات تعديل جلسة PDU
omni_smf.pdu_session.release.countعدادresultعمليات إنهاء جلسة PDU
omni_smf.pdu_session_creates.totalعدادresult, dnnإجمالي إنشاءات جلسة PDU حسب DNN
omni_smf.pdu_session_releases.totalعدادresultإجمالي إنهاءات جلسة PDU
omni_smf.active_pdu_sessions.countمقياسdnnعدد جلسات PDU النشطة حسب DNN
omni_smf.session.duration_secondsتوزيع--مدة جلسة PDU بالثواني (دلاء: 1، 5، 15، 30، 60، 300، 900، 3600، 86400)

مقاييس PFCP / UPF

المقياسالنوعالعلاماتالوصف
omni_smf.pfcp_sessions.totalعدادoperationإجمالي عمليات جلسة PFCP
omni_smf.upf.healthمقياس--صحة ارتباط PFCP لـ UPF (1=موجود، 0=غير موجود)

مقاييس NRF

المقياسالنوعالعلاماتالوصف
omni_smf.nrf.registration.statusمقياسnf_typeحالة تسجيل NRF (1=مسجل، 0=غير مسجل)

مقاييس BEAM VM

المقياسالنوعالوصف
beam.memory.totalمقياسإجمالي ذاكرة BEAM بالبايت
beam.memory.processesمقياسالذاكرة المستخدمة بواسطة عمليات Erlang
beam.memory.processes_usedمقياسالذاكرة المستخدمة فعليًا بواسطة العمليات
beam.memory.systemمقياسذاكرة النظام
beam.memory.atomمقياسإجمالي ذاكرة الذرات
beam.memory.atom_usedمقياسالذاكرة المستخدمة من الذرات
beam.memory.binaryمقياسذاكرة ثنائية
beam.memory.codeمقياسذاكرة الشيف��ة
beam.memory.etsمقياسذاكرة جدول ETS
beam.processes.countمقياسعدد عمليات Erlang
beam.ports.countمقياسعدد منافذ Erlang
beam.atom.countمقياسعدد الذرات
beam.vm.uptimeمقياسوقت تشغيل VM بالثواني

القيود المعروفة

تم تحديد الفجوات التالية خلال تدقيق تشغيلي. تتوافق معرفات المرجع مع تتبع داخلي.

المعرفالمنطقةالوصف
SMF-H5تقارير N4لا تتم معالجة رسائل طلب تقرير الجلسة المستلمة من UPF. يتم تجاهل تقارير الاستخدام من مشغلات URR بصمت.
SMF-H7NASلم يتم فك تشفير حاوية N1 SM في SmContextCreateData. لم يتم فحص محتوى طلب إنشاء جلسة PDU (قدرة 5GSM، خيارات تكوين البروتوكول الموسعة) أو إعادة توجيهه.
SMF-M1تسليممعالجة حالة التسليم جزئية. لا يتم دعم التسليم القائم على Xn وتبديلات مسارات N2 بين AMF بالكامل؛ يتعامل مسار تحديث servingNfId مع تغيير AMF ولكن لم يتم تنفيذ الإجراء الكامل للتسليم (TS 23.502 4.9).
SMF-M3IP UEيتم تخصيص عناوين IPv4 لـ UE بشكل عشوائي من 10.45.0.0/16 عند كل إنشاء جلسة. لا توجد إدارة لمجموعة العناوين، ولا كشف عن التداخل، ولا تفويض مسبق IPv6.
SMF-M4الإشعاراتلا يتم إرسال إشعارات حالة سياق SM إلى URI رد الاتصال AMF (smContextStatusUri). لا يتم إبلاغ AMF بالتغييرات في الحالة التي بدأها SMF (مثل الإنهاء الذي يحفزه الشبكة).
SMF-M5اكتشاف NRFيوجد وحدة تسجيل NRF ويسجل SMF مع NRF. ومع ذلك، تستخدم جميع مكالمات SBI الصادرة (إلى UDM، PCF، AMF) URIs ثابتة من التكوين. لا يتم إجراء اكتشاف قائم على NRF.
SMF-M7تقارير PFCPلا يتم إرسال SessionReportResponse إلى UPF استجابةً لطلبات تقرير الجلسة.
SMF-L1استرجاع سياق SMلا توجد نقطة نهاية GET /nsmf-pdusession/v1/sm-contexts/{ref}. لا يتم دعم استرجاع سياق SM من قبل المستهلكين الخارجيين.
SMF-L3تعديل QoSلا يتم دعم تعديل تدفق QoS بعد إنشاء الجلسة. لا يمكن تحفيز إضافة أو تعديل أو حذف تدفقات QoS (TS 23.502 4.3.3) بعد الإنشاء.

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

فشل إنشاء جلسة PDU مع 404 DNN_DENIED

أعاد UDM بيانات اشتراك إدارة الجلسة التي لا تتضمن DNN المطلوبة. تحقق من أن بيانات المشترك الخاصة بـ SUPI تحتوي على إدخال dnnConfigurations يتطابق مع DNN المطلوبة (غير حساسة لحالة الأحرف). تحقق من سجل SMF للخط فشل إنشاء سياق SM: dnn_not_found.

فشل إنشاء جلسة PDU مع 503 NF_DISCOVERY_FAILURE

لم يتمكن SMF من الوصول إلى UDM عند udm_uri. تحقق من الاتصال من مضيف SMF إلى udm_uri المكون. تحقق من قواعد جدار الحماية وأن منفذ SBI لـ UDM قابل للوصول. سيظهر سجل SMF [SBI->UDM] GET sm-data failed مع السبب الأساسي.

تم رفض إنشاء جلسة PFCP

أعاد UPF سببًا غير "تم قبول الطلب" في استجابة إنشاء جلسة PFCP. الأسباب الشائعة:

  • upf_addr أو upf_pfcp_port غير صحيحة — تحقق باستخدام ss -ulnp | grep 8805 على مضيف UPF.
  • لا يدعم UPF عناصر PDR/FAR المرسلة بواسطة SMF — تحقق من سجلات قدرة UPF.
  • لم يتم إنشاء نبض PFCP (الارتباط) — يجب على SMF إكمال إعداد ارتباط PFCP قبل إرسال طلبات الجلسة. تحقق من السجلات للحصول على رسائل [PFCP] Association عند بدء التشغيل.

سيحتوي سجل SMF على [PFCP] تم رفض إنشاء الجلسة: <cause> أو [PFCP] فشل إنشاء الجلسة: <reason>.

فشل N1N2MessageTransfer إلى AMF

بعد أن يرجع SMF 201 إلى AMF لإنشاء السياق، فإنه يرسل N1N2MessageTransfer بشكل غير متزامن. إذا فشل هذا الاتصال، يتم إنشاء جلسة PDU في SMF و UPF ولكن لن يتلقى UE قبول الإنشاء. يسجل SMF [SBI->AMF] فشل نقل N1N2. تعتبر هذه الفشل حاليًا غير قاتل من منظور SMF — لا يتم محاولة إعادة المحاولة. للتعافي، قم بإنهاء سياق SM وحاول إنشاء جلسة PDU مرة أخرى.

لم يتلق UE عنوان IP

يتم تخصيص IP في وقت إنشاء جلسة PFCP باستخدام اختيار عشوائي من 10.45.0.0/16. إذا أعاد UPF عنوان IP مختلف في PDR الذي تم إنشاؤه (تخصيص عنوان UPF)، سيستخدم SMF F-TEID الذي أعاده UPF ولكنه سيظل يسجل IP الذي تم إنشاؤه عشوائيًا. تأكد من أن UPF مكون لقبول عناوين IP الخاصة بـ UE المحددة بواسطة SMF أو تخصيصها وإعادتها عبر PDR الذي تم إنشاؤه. انظر القيد SMF-M3.

ارتفاع عدد الجلسات / نمو الذاكرة

يتم تخزين سياقات الجلسة في وكيل داخل العملية. تتم إزالتها فقط عند release_sm_context صريح. إذا تم تفويت إنهاءات AMF أو التي بدأها UE (على سبيل المثال، بسبب إعادة تشغيل AMF)، ستتراكم السياقات اليتيمة. راقب باستخدام نقطة نهاية API الداخلية /statistics. لا يوجد حاليًا مهلة للجلسة أو جمع قمامة.

تزامن السجلات

يتم تمييز كل سطر سجل من مسار الجلسة بـ [{supi}:{pdu_session_id}]. قم بتصفية حسب SUPI لتتبع دورة حياة جلسة المشترك من البداية إلى النهاية. يتم تمييز خطوط سجل مسار PFCP بـ [PFCP] وتكون مكالمات عميل SBI مميزة بـ [SBI->UDM]، [SBI->PCF]، أو [SBI->AMF].