Alsoran adalah implementasi Rust dari Unit Terpusat gNodeB (gNB-CU) dari Jaringan Akses Radio (RAN) 5G.
gNodeB adalah komponen yang mengelola akses radio Peralatan Pengguna (UE) 5G dan menghubungkannya ke 5G Core.
Proyek ini saat ini merupakan bukti konsep dan belum menjadi gNB-CU yang berfungsi penuh.
cargo build
./target/debug/gnb-cu --mcc 111 --mnc 11 --amf-ip 5.5.5.5
Umumnya hanya kasus keberhasilan yang dibahas, dan ada banyak 'Yang Harus Dilakukan'.
Itu ditulis dalam Rust dan memiliki desain "single hop berskala besar".
"Scale-out" berarti bahwa ia memiliki beberapa proses pekerja tanpa kewarganegaraan yang dapat dipertukarkan. Permintaan dapat diproses oleh pekerja mana pun dan tidak ada pekerja yang mengalami kegagalan. Proses Koordinator mengoordinasikan pertukaran manajemen antarmuka pekerja ketika topologi berubah. Motivasinya adalah skalabilitas dan toleransi kesalahan.
"Single hop" berarti, dalam kasus jalur utama, sebuah pesan diproses oleh satu pekerja (bukan dirantai melalui beberapa layanan mikro atau penyeimbang beban). Setiap pekerja CU-CP Alsoran memiliki koneksi SCTP sendiri ke AMF, DU dan CU-UP. Motivasinya adalah kecepatan dan kesederhanaan sistem.
Rust adalah pilihan bahasa yang menarik untuk pengembangan O-RAN baru. Hambatan utama untuk masuk adalah protokol berbasis ASN.1 dan SCTP. Proyek ini berupaya membuktikan bahwa hambatan ini dapat diatasi.
Build ini mengandalkan lld
untuk mengurangi kebutuhan memori linker. Anda harus menginstal LLD ( sudo apt install lld
atau serupa), atau mengedit .cargo/config untuk menghapus konfigurasi target.x86_64-unknown-linux-gnu
, yang kembali ke tautan cc
biasa.
cargo test
menjalankan rangkaian pengujian integrasi, tanpa pengujian Redis langsung.
Untuk menjalankan pengujian Redis langsung, cargo test live_redis -- --ignored
. Agar ini dapat berlalu, Anda harus memiliki redis-server
di jalur Anda. Dapatkan Redis di sini: https://redis.io/docs/getting-started/.
Pengujian berikut menunjukkan CU-CP dan CU-UP Alsoran melakukan registrasi UE, pembuatan sesi, dan penerusan pesawat pengguna.
RUST_LOG=info cargo test successful_pdu_session_setup --test pdu_session -- --nocapture
Tes ini menunjukkan dua pekerja memulai, dan Koordinator memberikan instruksi kepada pekerja bagaimana menginisialisasi antarmuka NGAP, E1AP dan F1AP mereka.
RUST_LOG=info cargo test two_workers_base --test two_workers -- --nocapture
Anda dapat menangkap paket selama pengujian ini dengan menjalankan yang berikut ini secara paralel.
sudo tcpdump -w alsoran.pcap -i lo port 38472 or port 38412 or port 38462 or port 38462 or port 2152
...lalu Ctrl-C di akhir pengujian dan buka jugaran.pcap di Wireshark.
Untuk menjalankan pendaftaran langsung terhadap free5GC memerlukan pengaturan lebih lanjut - lihat instruksi demo.
Terakhir, Anda mungkin ingin menelusuri catatan desain di dokumentasi/desain, yang memberikan gambaran tentang pemikiran desain yang telah diterapkan pada Alsoran sejauh ini.
Jika Anda ingin berkontribusi, mulailah dengan membuat isu atau diskusi Github untuk mengusulkan perubahan yang ingin Anda lakukan.
Backlog menunjukkan item utama yang sedang dikerjakan dan juga melacak area utang teknologi.
Petunjuk untuk membuat ulang kedua antarmuka OpenAPI ada dalam generasi OpenAPI.
Penanganan protokol Alsoran dan logika alur kerja didasarkan pada spesifikasi berikut.