Skip to content

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

ARFCN Calculator

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

AT commands

  • Save and reboot AT+CFUN=1,1
  • Turn off AT+CFUN=0 disables minimum functionality.
  • Turn on AT+CFUN=1
  • Connect to network AT+CGDCONT=1,"IP","internet"
  • Search for networks AT+COPS=?. It takes a while.
  • ``