Open Source Virtualized Cellular Networks
- https://open5g.info/
- https://openairinterface.org/
- https://www.srsran.com/
- https://gerrit.o-ran-sc.org/r/admin/repos/o-du/l2,general
OAI
Pick a version that has everything you want. Updating is a pain and sometimes not possible at all.
- Core
- gNB
- 4GB of RAM was not enough to compile. 8GB was.
- While debian 12 is not supported it worked.
- In a VM with the SDR passed through, it did not work because the SDR rebooted and changed the port.
- ARFCN freq for 3.850GHz is 656640 and Point A is 654640 (10 MHz less than ARFCN center freq.)
- 3000 + 590 × 1.44 = 3849.6
- NR Reference Point A calculator
- https://gitlab.eurecom.fr/oai/openairinterface5g/-/blob/5792b0c96b4b27fe2467571dd7a22e1d4cb46f9e/doc/gNB_frequency_setup.md
- According to Perplexity.ai: Valid SSB frequencies are: 3,000,000,000 Hz + N × 1,440,000 Hz, where N is an integer from 0 to 14,756.
- Capture traffic from the core:
ssh -i ".ssh/your_key.pem" user@1.2.3.4 "sudo tcpdump -U -n -w - -i ens5 udp and '(port 1812 or port 1813)'" | wireshark -k -i -
Add a SIM:
docker exec -it mysql bash
mysql -uroot -plinux
use oai_db;
INSERT INTO `AuthenticationSubscription` (`ueid`, `authenticationMethod`, `encPermanentKey`, `protectionParameterId`, `sequenceNumber`, `authenticationManagementField`, `algorithmId`, `encOpcKey`, `encTopcKey`, `vectorGenerationInHss`, `n5gcAuthMethod`, `rgAuthenticationInd`, `supi`) VALUES
('208950000000031', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000031'),
('230360000070590', '5G_AKA', 'c053808154144dda5c24171d45e3bc0c', 'c053808154144dda5c24171d45e3bc0c', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', 'b2e7298d0a42311ccc3e25989fe80950', NULL, NULL, NULL, NULL, '230360000070590');
Sources
Performance testing
- https://github.com/nokia/twampy
Theory
RF
Signaling
- PSS: Primary Synchronization Signal
- SSS: Secondary Synchronization Signal
- SCS: Sub Carrier Spacing
- PBCH: Physical Broadcast Channel
- SSB: The Synchronization Signal/PBCH block. Consists of PSS, SSS an PBCH.
Frequency
ARFCN
The frequency must be the modulo (divisible with no rest) of the center frequency and the SCS. It is the same as a multiple of the SSB SCS.
For example, for band N77 at freq 3.850GHz the ARFCN is 656667 and the modulo 30000 is 15000 so this will not work as the SSB is not aligned with the SCS. For freq 3850.020MHz the ARFCN is 656668 and the modulo 30000 is 0 so it will work because the signals are sincronized.
NR Reference Point A calculator
Sources
- https://howltestuffworks.blogspot.com/2019/10/5g-nr-synchronization-signalpbch-block.html
Modem
All tests have been done with a Quectel RM520N
- usbnet:
- Query:
AT+QCFG="usbnet" - Change:
AT+QCFG="usbnet",1 - RMNET
0- Windows can use it. - ECM
1- Linux can see it as interface usb0 but you have to connect it manually because ModemManager / NetworkManager is not able to configure it. - MBIM
- RNDIS
- Query:
AT commands
- Save and reboot
AT+CFUN=1,1 - Turn off
AT+CFUN=0disables minimum functionality. - Turn on
AT+CFUN=1 - Connect to network
AT+CGDCONT=1,"IP","internet" - Search for networks
AT+COPS=?. It takes a while. - ``