alsoran هو تطبيق Rust لوحدة gNodeB المركزية (gNB-CU) لشبكة الوصول الراديوي 5G (RAN).
gNodeB هو المكون الذي يدير الوصول اللاسلكي لمعدات مستخدم 5G (UEs) ويربطها بـ 5G Core.
يعد هذا المشروع حاليًا دليلاً على المفهوم ولم يعد gNB-CU يعمل بكامل طاقته.
cargo build
./target/debug/gnb-cu --mcc 111 --mnc 11 --amf-ip 5.5.5.5
بشكل عام، تتم تغطية حالات النجاح فقط، وهناك الكثير من "المهام الواجبة".
إنه مكتوب بلغة Rust وله تصميم "قفزة واحدة واسعة النطاق".
يعني "التوسيع" أنه يحتوي على عمليات عاملة متعددة عديمة الحالة قابلة للتبديل. يمكن لأي عامل معالجة الطلب ولا يشكل أي عامل نقطة فشل واحدة. تقوم عملية المنسق بتنسيق تبادلات إدارة الواجهة للعاملين عندما تتغير الهيكلية. الدافع هو قابلية التوسع والتسامح مع الخطأ.
"القفزة الواحدة" تعني أنه، في الحالة الرئيسية، تتم معالجة الرسالة بواسطة عامل واحد (بدلاً من ربطها عبر خدمات صغيرة متعددة أو موازنات التحميل). يتمتع كل عامل فيalsoran CU-CP باتصال SCTP الخاص به إلى AMF وDU وCU-UP. الدافع هو السرعة وبساطة النظام.
يعد Rust خيارًا جذابًا للغة لتطوير شبكة O-RAN الجديدة. العائق الرئيسي أمام الدخول هو البروتوكولات المستندة إلى ASN.1 وSCTP. يحاول هذا المشروع إثبات أن هذا الحاجز يمكن التغلب عليه.
يعتمد البناء على lld
لتقليل احتياجات ذاكرة الرابط. ستحتاج إما إلى تثبيت LLD ( sudo apt install lld
أو ما شابه ذلك)، أو تحرير .cargo/config لإزالة تكوين target.x86_64-unknown-linux-gnu
، الذي يعود إلى ارتباط cc
العادي.
يُجري cargo test
مجموعة اختبار التكامل، باستثناء اختبار Redis المباشر.
لتشغيل اختبار Redis المباشر، cargo test live_redis -- --ignored
. لكي يمر هذا، يجب أن يكون لديك redis-server
في طريقك. احصل على Redis هنا: https://redis.io/docs/getting-started/.
يُظهر الاختبار التالي قيام برنامجalsoran CU-CP وCU-UP بتنفيذ تسجيل UE وإنشاء الجلسة وإعادة توجيه طائرة المستخدم.
RUST_LOG=info cargo test successful_pdu_session_setup --test pdu_session -- --nocapture
يُظهر هذا الاختبار بدء تشغيل عاملين، ويقوم المنسق بإرشاد العاملين حول كيفية تهيئة واجهات NGAP وE1AP وF1AP الخاصة بهم.
RUST_LOG=info cargo test two_workers_base --test two_workers -- --nocapture
يمكنك التقاط الحزم أثناء هذه الاختبارات عن طريق تشغيل ما يلي بالتوازي.
sudo tcpdump -w alsoran.pcap -i lo port 38472 or port 38412 or port 38462 or port 38462 or port 2152
...ثم اضغط على Ctrl-C في نهاية الاختبار وافتح ملفalsoran.pcap في Wireshark.
يتطلب تشغيل التسجيل المباشر ضد free5GC المزيد من الإعداد - راجع تعليمات العرض التوضيحي.
أخيرًا، قد ترغب في تصفح ملاحظات التصميم في التوثيق/التصميم، والتي تعطي فكرة عن التفكير التصميمي الذي اتبعه موقع الصوران حتى الآن.
إذا كنت ترغب في المساهمة، فابدأ بإنشاء مشكلة أو مناقشة على Github لاقتراح التغيير الذي تريد إجراءه.
يُظهر العمل المتراكم العناصر الرئيسية التي يتم العمل عليها ويتتبع أيضًا مجالات ديون التكنولوجيا.
توجد تعليمات إعادة إنشاء واجهتي OpenAPI في إنشاء OpenAPI.
تعتمد معالجة بروتوكول السوران ومنطق سير العمل على المواصفات التالية.