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

دليل عمليات OmniNSSF

نظرة عامة

تنفذ OmniNSSF وظيفة اختيار شريحة الشبكة (NSSF) من النواة 5G. إنها تقدم خدمتين SBI: Nnssf_NSSelection (TS 29.531) التي تجيب على استفسارات AMF حول الشرائح الشبكية التي يمكن أن يستخدمها UE، و Nnssf_NSSAIAvailability (TS 29.531) التي تقبل تقارير توفر NSSAI من AMFs وتدير الاشتراكات في إشعارات تغيير التوفر.

يتم تحميل تكوين الشريحة — خريطة S-NSSAIs إلى URIs NRF، NSSAI المسموح به لكل PLMN، وتعيينات مجموعة AMF — من تكوين التطبيق عند بدء التشغيل. يتم الاحتفاظ بحالة توفر NSSAI المبلغ عنها من قبل AMFs في العملية في وكيل. يتم تسليم إشعارات تغيير التوفر إلى المشتركين كاستدعاءات HTTP POST بدون انتظار.

الهيكلية


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

المواصفةالصلة
TS 23.501هيكل النظام — دور NSSF، مفهوم شريحة الشبكة، تعريف S-NSSAI (القسم 5.15)
TS 23.502الإجراءات — اختيار الشريحة أثناء التسجيل (4.2.3.2)، إنشاء جلسة PDU (4.3.2)
TS 29.531واجهات برمجة التطبيقات Nnssf_NSSelection و Nnssf_NSSAIAvailability
TS 23.003هيكل S-NSSAI (SST، SD)، تعريف NSI

نقاط نهاية SBI

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

الطريقةالمسارالخدمةالوصفالمواصفة
GET/nnssf-nsselection/v2/network-slice-informationNnssf_NSSelectionاسترجاع معلومات شريحة الشبكة المصرح بها لـ UETS 29.531 5.2.1
PUT/nnssf-nssaiavailability/v1/nssai-availability/{nfId}Nnssf_NSSAIAvailabilityالإبلاغ عن أو استبدال توفر NSSAI لـ AMFTS 29.531 5.2.2.2
DELETE/nnssf-nssaiavailability/v1/nssai-availability/{nfId}Nnssf_NSSAIAvailabilityإزالة سجل توفر NSSAI لـ AMFTS 29.531 5.2.2.4
POST/nnssf-nssaiavailability/v1/nssai-availability/subscriptionsNnssf_NSSAIAvailabilityالاشتراك في إشعارات تغيير توفر NSSAITS 29.531 5.2.2.3
DELETE/nnssf-nssaiavailability/v1/nssai-availability/subscriptions/{subscriptionId}Nnssf_NSSAIAvailabilityإلغاء اشتراك توفر NSSAITS 29.531 5.2.2.5

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

GET network-slice-information — معلمات الاستعلام الإلزامية: nf-id, nf-type. الاختياري: slice-info-request-for-registration, slice-info-request-for-pdu-session, snssai, tai, home-plmn-id, supported-features. يعيد 200 OK مع AuthorizedNetworkSliceInfo.

PUT nssai-availability/{nfId} — الجسم: NssaiAvailabilityInfo (يجب أن يحتوي على supportedSnssaiList أو supportedNssaiAvailabilityData). يعيد 200 OK مع AuthorizedNssaiAvailabilityInfo. يحفز إشعارًا لجميع المشتركين الحاليين.

POST subscriptions — الجسم: NssaiAvailabilitySubscription (يجب أن يحتوي على nfNssaiAvailabilityUri). يعيد 201 Created مع كائن الاشتراك ورأس Location.


مرجع التكوين

يتم قراءة التكوين من مفتاح بيئة التطبيق :omnissf.

config :omnissf,
sbi_scheme: "http",
sbi_addr: "127.0.0.14",
sbi_port: 7777,
nrf_uri: "http://127.0.0.10:7777",
mcc: "999",
mnc: "70",
heartbeat_interval: 10_000,

nsi_list: [
%{
s_nssai: %{sst: 1, sd: "0x000001"},
nrf_uri: "http://127.0.0.10:7777",
nsi_id: "1"
}
],

allowed_nssai: %{
"999-70" => [
%{sst: 1, sd: "0x000001"}
]
},

amf_set_mapping: %{
"1-0x000001" => ["1"]
},

configured_nssai: %{}

جدول المعلمات الأساسية

المعلمةالنوعالافتراضيالوصف
sbi_schemeسلسلة"http"مخطط HTTP لمقبس SBI الذي يستمع (http أو https)
sbi_addrسلسلة"127.0.0.14"عنوان IP الذي يرتبط به خادم HTTP SBI
sbi_portعدد صحيح7777منفذ TCP الذي يستمع عليه خادم HTTP SBI
nrf_uriسلسلة"http://127.0.0.10:7777"URI الأساسي لـ NRF. يستخدم فقط لتسجيل NF ونبض القلب
mccسلسلة"999"رمز الدولة المتنقلة لـ PLMN الرئيسي. يستخدم كمفتاح PLMN احتياطي عند غياب home-plmn-id من استعلام الاختيار
mncسلسلة"70"رمز الشبكة المتنقلة لـ PLMN الرئيسي
heartbeat_intervalعدد صحيح (مللي ثانية)10000الفاصل الزمني بالمللي ثانية بين طلبات نبض القلب NRF

معلمات تكوين الشريحة

nsi_list

قائمة من إدخالات مثيل شريحة الشبكة (NSI). كل إدخال يربط S-NSSAI بـ URI NRF. عندما تتلقى NSSF استعلام اختيار الشريحة، تبحث عن S-NSSAI المطلوب في هذه القائمة وتعيد URI NRF المرتبط في حقل nsiInformation من الاستجابة.

الحقلالنوعالوصف
s_nssai.sstعدد صحيحنوع الشريحة/الخدمة (1–255). القيم القياسية: 1=eMBB، 2=URLLC، 3=MIoT (TS 23.501 الجدول 5.15.2.2-1)
s_nssai.sdسلسلة أو nilمميز الشريحة كسلسلة سداسية (مثل، "0x000001"). nil أو غائب يتطابق مع أي SD لـ SST المعطى (انظر NSSF-L5)
nrf_uriسلسلةURI الأساسي لـ NRF المسؤول عن اكتشاف NF ضمن هذه الشريحة
nsi_idسلسلةمعرف غير شفاف لهذا NSI، مدرج في استجابة nsiInformation

إذا لم يتطابق أي إدخال في nsi_list مع S-NSSAI المطلوب، تعيد NSSF 403 Forbidden مع السبب SNSSAI_NOT_FOUND.

allowed_nssai

خريطة من مفتاح PLMN ("{mcc}-{mnc}") إلى قائمة من هياكل S-NSSAI. تتحكم في الشرائح المضمنة في حقل allowedNssaiList من استجابة الاختيار. إذا لم يكن لدى PLMN المطلوب إدخال، يتم استخدام NSSAI المسموح به لـ PLMN الرئيسي كخيار احتياطي.

كل S-NSSAI في القائمة:

الحقلالنوعالوصف
sstعدد صحيحنوع الشريحة/الخدمة
sdسلسلة أو nilمميز الشريحة

amf_set_mapping

خريطة من مفتاح S-NSSAI ("{sst}-{sd}" أو "{sst}" عند عدم وجود SD) إلى قائمة من سلاسل معرف مجموعة AMF. عند ملؤها، تتضمن NSSF الإدخال الأول كـ targetAmfSet في استجابة الاختيار (انظر القيود NSSF-L3 — candidateAmfList غير مملوء).

configured_nssai

خريطة من مفتاح S-NSSAI إلى هيكل NSSAI مُكون لسيناريوهات التجوال. عند وجودها لـ S-NSSAI معين، تتضمن NSSF configuredNssai في استجابة الاختيار. فارغ بشكل افتراضي.


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

اختيار شريحة الشبكة — التسجيل (TS 23.502 القسم 4.2.3.2)

اختيار شريحة الشبكة — جلسة PDU (TS 23.502 القسم 4.3.2)

الإبلاغ عن توفر NSSAI (TS 29.531 القسم 5.2.2)

الاشتراك في توفر NSSAI / الإشعار

منطق البحث عن S-NSSAI

تطابق NSSF S-NSSAI المطلوب مع nsi_list باستخدام القواعد التالية:

  1. يجب أن يتطابق SST تمامًا.
  2. مطابقة SD: إذا كان إدخال nsi_list يحتوي على sd: nil، فإنه يتطابق مع أي SD مطلوب لذلك SST (بدون قيود). إذا كان الإدخال يحتوي على SD محدد، فإنه يتم مقارنته بدون حساسية للحالة بعد تطبيع السداسي.

هذا يعني أن إدخال nsi_list مع sd: nil يعمل كشبكة شاملة لقيمة SST الخاصة به. انظر القيود NSSF-L5 للتداعيات التشغيلية لهذا السلوك.


مقاييس Prometheus

مقاييس NSSF

المقياسالنوعالعلاماتالوصف
omni_nssf.nsselection.requests.countعدادresult, nf_typeطلبات اختيار NS
omni_nssf.nssai_availability.update.countعدادnf_idتحديثات توفر NSSAI
omni_nssf.nssai_availability.delete.countعدادnf_idعمليات حذف توفر NSSAI
omni_nssf.nssai_availability.subscribe.countعداد--اشتراكات التو��ر
omni_nssf.nssai_availability.unsubscribe.countعداد--إلغاء الاشتراكات
omni_nssf.ns_selection_requests.totalعدادresultإجمالي طلبات اختيار شريحة الشبكة
omni_nssf.nssai_availability_updates.totalعداد--إجمالي إشعارات تحديث توفر NSSAI
omni_nssf.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 بالثواني

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

المعرفالمنطقةالوصف
NSSF-M2PATCH توفر NSSAIلا يوجد نقطة نهاية PATCH /nnssf-nssaiavailability/v1/nssai-availability/{nfId}. لا تدعم التحديثات الجزئية لبيانات توفر AMF؛ يجب استبدال السجل بالكامل باستخدام PUT.
NSSF-M3تفويض التوفرتفويض NSSF لتوفر NSSAI المبلغ عنه هو تمرير. البيانات authorizedNssaiAvailabilityData في استجابة PUT مطابقة تمامًا لـ supportedNssaiAvailabilityData المقدمة. لا تتحقق NSSF من S-NSSAIs المبلغ عنها مقابل nsi_list المكون.
NSSF-L1الميزات المدعومةيتم قبول معلمة الاستعلام supported-features ولكن لا تتم معالجتها. لا يتم إجراء تفاوض على القدرات بين AMF و NSSF.
NSSF-L2NSSAI المرفوضةلا تتضمن استجابة AuthorizedNetworkSliceInfo حقول rejectedNssaiInRa (المرفوضة في منطقة التسجيل) أو rejectedNssaiInTa (المرفوضة في منطقة التتبع). لن تتلقى UEs التي لا تتوفر فيها S-NSSAIs المطلوبة في TA معينة معلومات رفض صريحة.
NSSF-L3قائمة AMF المرشحةلا يتم ملء حقل candidateAmfList في استجابة الاختيار. يتم تضمين فقط targetAmfSet (الإدخال الأول من amf_set_mapping) عند الاقتضاء. لا يتم توفير مساعدة كاملة في اختيار AMF وفقًا لـ TS 29.531.
NSSF-L4PATCH الاشتراكلا يوجد نقطة نهاية PATCH /nnssf-nssaiavailability/v1/nssai-availability/subscriptions/{subscriptionId}. لا يمكن تحديث معلمات الاشتراك بعد الإنشاء؛ يجب حذف الاشتراك وإعادة إنشائه.
NSSF-L5مطابقة SD باستخدام البدليتطابق إدخال nsi_list مع s_nssai.sd: nil مع أي SD لـ SST المعطى، وليس فقط الطلبات التي لا تحتوي على SD. هذا يعني أن إدخال البدل سيتطابق أيضًا مع الطلبات المحددة لـ SD. إذا كانت هناك عدة شرائح تشترك في SST ولكن تختلف حسب SD، يجب أن يكون لكل منها إدخال SD خاص به�� في nsi_list مرتبة قبل أي إدخال بدل (الإدخال الأول هو الفائز).

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

اختيار الشريحة يعيد 403 SNSSAI_NOT_FOUND

لا يوجد إدخال في nsi_list يتطابق مع S-NSSAI المطلوب. تحقق من:

  1. أن SST في الطلب يتطابق تمامًا مع إدخال nsi_list (مقارنة عددية).
  2. أن SD في الطلب يتطابق مع SD الخاص بالإدخال، أو أن الإدخال يحتوي على sd: nil (بدل).
  3. أن تكوين nsi_list قد تم إعادة تحميله بعد التغييرات — تقرأ OmniNSSF nsi_list من بيئة التطبيق عند بدء التشغيل فقط. يتطلب الأمر إعادة تشغيل لالتقاط التغييرات.

سوف تظهر سجلات NSSF NSSelection: لا يمكن العثور على NSI لـ S-NSSAI [SST:{sst} SD:{sd}].

اختيار الشريحة يعيد 400 MANDATORY_QUERY_PARAM_MISSING

معلمة الاستعلام nf-id أو nf-type غائبة عن الطلب. كلاهما إلزامي وفقًا لـ TS 29.531. تحقق من أن AMF تتضمن هذه المعلمات في طلب الاختيار الخاص بها.

NSSAI المسموح به مفقود من استجابة الاختيار

يتم تضمين حقل allowedNssaiList فقط في الاستجابة عندما يمكن تحديد مفتاح PLMN من الطلب. يتم اشتقاق مفتاح PLMN من معلمة الاستعلام home-plmn-id، أو يتراجع إلى MCC/MNC الخاص بـ NSSF (mcc/mnc config). إذا لم يكن أي منهما قابلاً للتحليل، يتم حذف الحقل. تحقق من:

  1. أن mcc و mnc تم تكوينهما بشكل صحيح لـ PLMN الرئيسي.
  2. أن خريطة allowed_nssai تحتوي على إدخال للمفتاح "{mcc}-{mnc}".

تصفية TAI تستبعد جميع NSSAIs المسموح بها

عندما يتم توفير معلمة tai ولا يقوم أي AMF بالإبلاغ عن بيانات التوفر عبر PUT، تتراجع NSSF للسماح بجميع NSSAIs المكونة (خريطة التوفر الفارغة = لا قيود). بمجرد أن يقوم أي AMF بالإبلاغ عن التوفر، يتم إرجاع فقط S-NSSAIs المدرجة في إدخال TAI مطابق في بيانات التوفر تلك. إذا لم يظهر TAI في الاستعلام في أي من تقارير supportedNssaiAvailabilityData الخاصة بـ AMFs، فسيتم تصفية جميع NSSAIs. لتشخيص ذلك، تحقق مما إذا كانت AMFs قد قدمت طلبات PUT وما إذا كانت TAC في تلك التقارير تتطابق مع TAC في الاستعلام.

البدل SD يسبب اختيار NSI خاطئ

إذا كان إدخال nsi_list مع sd: nil مدرجًا قبل إدخالات أكثر تحديدًا، فسوف يتطابق أولاً مع أي طلب SST بغض النظر عن SD. تأكد من أن إدخالات SD المحددة تظهر قبل إدخالات البدل في nsi_list. انظر القيود NSSF-L5.

إشعارات التوفر غير مستلمة من قبل المشترك

تُرسل الإشعارات بشكل غير متزامن (fire-and-forget) في مهمة متفرعة. يتم تسجيل فشل التسليم كتحذيرات ولكن لا يتم إعادة المحاولة. تحقق من:

  1. أن nfNssaiAvailabilityUri في الاشتراك يمكن الوصول إليه من مضيف NSSF.
  2. أن NF المشترك يقبل طلبات POST على ذلك URI ويعيد استجابة 2xx.

تُسجل محاولات الإشعار الفاشلة كـ NSSAIAvailability: الإشعار إلى {uri} فشل: {reason}.

حالة توفر أو اشتراك قديمة بعد إعادة تشغيل AMF

تُخزن سجلات توفر NSSAI والاشتراكات في العملية وليست دائمة. تبقى فقط خلال فترة تشغيل VM Erlang. إذا أعيد تشغيل AMF ولم يعيد تسجيل توفره عبر PUT، ستستمر NSSF في تقديم بيانات التوفر القديمة (أو الغائبة) لمعرف NF الخاص بـ AMF. يجب على AMF إعادة تقديم توفر NSSAI الخاص بها عند إعادة الاتصال. بالمثل، يجب على المشترك إعادة إنشاء الاشتراكات التي تم إنشاؤها قبل إعادة تشغيل NSSF.

ارتباط السجلات

تكون خطوط سجل اختيار NSSAI مسبوقة بـ NSSelection: وتحتوي على nf-id المطلوب. تكون خطوط سجل توفر NSSAI مسبوقة بـ NSSAIAvailability: وتحتوي على nfId. تسجل محاولات إشعار الاشتراك URI الاستدعاء. استخدم قيم nf-id لربط طلبات الاختيار مع تحديثات التوفر من نفس AMF.