frbimo
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights
    • Engagement control
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Versions and GitHub Sync Note Insights Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Engagement control Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       owned this note    owned this note      
    Published Linked with GitHub
    Subscribed
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    Subscribe
    ![](https://i.imgur.com/JORnn3y.png =150x)@NTUST # Install pppoe for tm500 traffic test guide :::success **🎯 Readme:** 1. Since the TM500 UE sim cannot generate traffic on its own, the traffic currently being tested is presumed to be only C-plane. Viavi suggested that we set up pppoe to facilitate traffic testing of TM500 UE 2. If you encounter an error you can refer to the [Troubleshooting note](##Troubleshooting-note). 3. The maximum number of connectable UEs is currently 32 :bookmark: **Reference:** - [pppoe撥號.pdf](https://drive.google.com/file/d/1Mb4x9-9UAF_kVYSKT0X-IgyBV5IaPkG9/view?usp=drive_link) - [TM500LTE_PPPoE_Multi-UE_Data_47090_113.pdf](https://drive.google.com/file/d/1j8GDFW_kR0IvswlFJziNGeC_qqhaYtoY/view?usp=drive_link) - [pppoe Install guide](https://hackmd.io/@Johnson-72/SJhDdM7GJx) ::: :::info #### :memo: **Outline:** [TOC] ::: ## Topology ![image](https://hackmd.io/_uploads/HJt_dKBX1e.png) ![image](https://hackmd.io/_uploads/Skr9YtBmyl.png) ## Environment ### gNB **Hardware:** | Item | Info | |:------------:|:------------------------------------------------------------------ | | CPU | Intel® Xeon® Gold 6226R CPU @ 2.90GHz (16 cores, disable HT) x 2 | | Memory | 128GB (64GB x 2) | | Disk | 600GB | | NIC | Intel X710-DA2 (i40e,8.30 0x8000a4db) (Bus-Info: 3b:00.0, 3b:00.1) | | Server Model | Dell PowerEdge R740 | **Software:** | **Item** | **Info** | |:----------:|:------------------------------------------------ | | OS | Red Hat Enterprise Linux release 9.2 (Plow) | | Kernel | Linux R740 5.14.0-284.18.1.rt14.303.el9_2.x86_64 | | DPDK | 20.11.8 | | LinuxPTP | 3.1.1 | | gNB Branch | develop | ## Configuration > OSC DU High: l2/src/du_app/du_cfg.h > OSC DU Low: /FlexRAN/l1/bin/nr5g/gnb/l1/xrancfg_sub6.xml > | Parameters | OSC DU LOW (to be confirmed by Ashwini and Madhav) | OSC DU HIGH (Ankit) | TM500 RU | OAI DU | | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------- | ----------------- | | CC config | 2x2<br>follow DU High | 2x2<br>`vendorMsg->config_req_vendor.nr_of_dl_ports`<br>`vendorMsg->config_req_vendor.nr_of_dl_ports` | 2x2 | 2x2 | | DL Point A frequency(ARFCN) | | 3351.06 MHz (623404)<br>`NR_DL_ARFCN ` | 3401.58 MHz | 3401.58 MHz | | DL center frequency(ARFCN) | | 3400.2 MHz (626680) [calculaion ](#DL-center-frequency-calculation) | 3450.72 MHz | 3450.72 MHz | | SSB frequency(ARFCN) | | 3358.98 MHz(should be 3358.56 MHz)<br> [calculaion ](#OSC-DU-High-SSB-center-frequency-calculation) | 3450.72 MHz | 3450.72 MHz | | System Bandwidth | | 100 MHz<br>`NR_BANDWIDTH BANDWIDTH_` | 100 MHz | 100 MHz | | SCS | 30KHZ | 30KHZ<br>`NR_SCS SCS_` | 30KHZ | 30KHZ | | PCI(Physical Cell ID) | 0 | 0<br>`NR_CELL_ID` | 0 | 0 | | Duplex mode | TDD | TDD<br>`MODE=TDD` while compiling | TDD | TDD | | vlan id | 5<br>in `/home/ubuntu/intel_sw/phy/cvl.sh` | N/A | 5 | 5 | | pdsch/pusch eaxcid | 0,1 | N/A | 0,1 | 0,1 | | prach eaxcid | 2,3 | N/A | 2,3 | 2,3 | | dl/ul compression method | **9bitBFP Static**<br>`<xranCompMethod>`,`<xranCompHdrType>`,`<xraniqWidth>`,<br>`<xranPrachCompMethod>`.`<xranPrachiqWidth>`,`<oRu0PrbElemDl0>` | N/A | 9bitBFP Static | 9bitBFP Static | | DU MAC address | 00:11:22:33:44:66 <br> in`/home/ubuntu/intel_sw/phy/setupenv.sh` | N/A | 00:11:22:33:44:66 | 00:11:22:33:44:66 | | RU MAC address | <br>`<oRuRem0Mac0>` | N/A | 10:70:fd:14:1c:10 | 10:70:fd:14:1c:10 | | MTU size | **1500** <br>`<MTU>` | N/A | 1500 | 1500 | | T1a_min_cp_dl | 258 μs<br>`<T1a_min_cp_dl>` | N/A | 258 μs | 258 μs | | T1a_max_cp_dl | 470 μs<br>`<T1a_max_cp_dl>` | N/A | 392 μs | 392 μs | | T1a_min_cp_ul | 285 μs<br>`<T1a_min_cp_ul>` | N/A | 285 μs | 285 μs | | T1a_max_cp_ul | 429 μs<br>`<T1a_max_cp_ul>` | N/A | 300 μs | 300 μs | | T1a_min_up | 50 μs<br>`<T1a_min_up>` | N/A | 155 μs | 155 μs | | T1a_max_up | 196 μs<br>`<T1a_max_up>` | N/A | 300 μs | 300 μs | | Ta4_min | 0 μs<br>`<Ta4_min>` | N/A | 0 μs | 0 μs | | Ta4_max | 75 μs<br>`<Ta4_max>` | N/A | 200 μs | 200 μs | | Tadv_cp_dl | 25 μs<br>`<Tadv_cp_dl>` | N/A | 125 μs | 125 μs | | T2a_min_cp_dl | 285 μs<br>`<T2a_min_cp_dl>` | N/A | 259 μs | 259 μs | | T2a_max_cp_dl | 479 μs<br>`<T2a_max_cp_dl>` | N/A | 470 μs | 470 μs | | T2a_min_cp_ul | 285 μs<br>`<T2a_min_cp_ul>` | N/A | 125 μs | 125 μs | | T2a_max_cp_ul | 429 μs<br>`<T2a_max_cp_ul>` | N/A | 1200 μs | 1200 μs | | T2a_min_up | 71 μs<br>`<T2a_min_up>` | N/A | 70 μs | 70 μs | | T2a_max_up | 428 μs<br>`<T2a_max_up>` | N/A | 345 μs | 345 μs | | Ta3_min | 20 μs<br>`<Ta3_min>` | N/A | 50 μs | 50 μs | | Ta3_max | 32 μs<br>`<Ta3_max>` | N/A | 171 μs | 171 μs | #### DL center frequency calculation - SCS 30KHZ, Bandwidth 100 MHz can have 273 PRBs. ![image](https://hackmd.io/_uploads/BJWoK-NY6.png) - DL center frequency is **DL Point A frequency + (273PRBs/2)** - 1 PRB has 12 subcarrier, 1 subcarrier is 30 KHZ=0.03 MHz. ### OSC DU-High SSB center frequency calculation ![image](https://hackmd.io/_uploads/Syfh5DAIJx.png) ## Current Status > :heavy_check_mark: : Complete, :Hourglass: : On-going, :x: : Incomplete - TM500 & OAI DU | Item | Status | | --------------------------------------------------------------------------- | ------------------ | | [Bring up CN](#2-Core-Network) | :heavy_check_mark: | | [PTP sync of gNB](#Step-33-gNB-PTP-synchronization) | :heavy_check_mark: | | [Bring up gNB](#Step-34-Run-gNB) | :heavy_check_mark: | | [NG Setup](#Step-35-Check-CN-connection-with-DU) | :heavy_check_mark: | | [TM500 get on time packet from DU](#Step-41-Check-DU-connection-at-RU-side) | :heavy_check_mark: | | [DU get FH packet from TM500](#Step-42-Check-RU-connection-at-DU-side) | :heavy_check_mark: | | [TM500 get mib and sib1 for DL sync](#UE-get-mib-and-sib1-for-DL-syn) | :heavy_check_mark: | | [TM500 send preamble](#UE-send-preamble) | :heavy_check_mark: | | [DU get preamble](#DU-get-preamble) | :heavy_check_mark: | | [DU send RACH response(msg2)](#DU-send-RACH-responsemsg2) | :heavy_check_mark: | | [UE get RACH response(msg2)](#UE-get-RACH-responsemsg2) | :heavy_check_mark: | | [UE send RRC setup request(msg3)](#UE-send-RRC-setup-requestmsg3) | :heavy_check_mark: | | [DU get RRC setup request(msg3)](#DU-get-RRC-setup-requestmsg3) | :heavy_check_mark: | | [DU send RRC Set up(msg4)](#DU-send-RRC-Set-upmsg4) | :heavy_check_mark: | | [TM500 get RRC Set up(msg4)](#UE-get-RRC-Set-upmsg4) | :heavy_check_mark: | | [RRC setup complete](#RRC-setup-complete) | :heavy_check_mark: | | [NAS registration](#NAS-registration) | :heavy_check_mark: | | [NAS identity request](#NAS-identity-request) | :heavy_check_mark: | | [NAS identity response](#NAS-identity-response) | :heavy_check_mark: | | [Authenication request](#Authenication-request) | :heavy_check_mark: | | [Authenication response](#Authenication-response) | :heavy_check_mark: | | [NAS Security mode command](#NAS-Security-mode-command) | :heavy_check_mark: | | [NAS Security mode complete](#NAS-Security-mode-complete) | :heavy_check_mark: | | [UECapabilityEnquiry](#UECapabilityEnquiry) | :heavy_check_mark: | | [UECapabilityInformation](#UECapabilityInformation) | :heavy_check_mark: | | [AS SecurityModeCommand](#AS-SecurityModeCommand) | :heavy_check_mark: | | [AS SecurityModeComplete](#AS-SecurityModeComplete) | :heavy_check_mark: | | [RRCReconfiguration](#RRCReconfiguration) | :heavy_check_mark: | | [Registration accept](#Registration-accept) | :heavy_check_mark: | | [RRCReconfigurationComplete](#RRCReconfigurationComplete) | :heavy_check_mark: | | [Registration complete](#Registration-complete) | :heavy_check_mark: | | [PDU session establish request](#PDU-session-establish-request) | :heavy_check_mark: | | [PDU session establish accept](#PDU-session-establish-accept) | :heavy_check_mark: | ![image](https://hackmd.io/_uploads/Hk1kTFr7ye.png) - PPPoe ![image](https://hackmd.io/_uploads/ByYAbNTmyl.png) - Control PC & TM500 UE PPPoE | Item | Status | |:---------------------------------------------- |:------------------ | | Download the chosen Linux distribution ISO | :heavy_check_mark: | | Configuring a Linux PC as the Data Test Device | :heavy_check_mark: | | Create conf | :heavy_check_mark: | | Create configuration file | :heavy_check_mark: | | Test Connection | :heavy_check_mark: | | Running Client Application | :heavy_check_mark: | | Disconnect stopped | :heavy_check_mark: | ## Access Method :::success #### **TM500 Server (Supermicro) :** - IP Address : 192.168.8.67 - Username : viavi - Password : viavi **TM500 Control PC :** - IP Address : 192.168.8.71 - User Password : bmwee809 - Anydesk ID : 980393298 - Anydesk Password : bmwbmwbmwee809 **OAI gNB (Dell R750) :** - IP Address : 192.168.8.43 - Username : oai72 - Password : bmwlab - Root Password : bmwlab <!-- - IDRAC IP : 192.168.10.124 - IDRAC user name : root - IDRAC Password : calvin --> ::: ## Configuration :::info ### TM500 Before using TM500 to connect your gNB (MTS mode), you should prepare the following documents in the specified path PATH : `\Desktop\viavi cloudue\NLA_7_4_0\TM500_NR_5G_EXT-MUE_Release_NLA_7_4_0_CloudUE\ppc_pq\public\ftp_root` 1. [o-ran.cfg](https://drive.google.com/file/d/11iyAWnskRLqBp0Qwsr3UEqtYoMP_D4Jx/view?usp=drive_link) 2. [oran_oai_tm500.csv](https://drive.google.com/file/d/1hckCWINHcz8vn7BlRtF1ZBhjrLbfPKHP/view?usp=drive_link) ### TMA script 1. [Johnson_TM500_OAI_ Max Traffic.txt](https://drive.google.com/file/d/19oOTdb0FHCyO4E-LiqkPbyj9m8m4Ys6E/view?usp=drive_link) ### gNB conf #### split version 1. [OAI_CU_conf](https://drive.google.com/file/d/1uZcEDSFEvbAUPHmk4E4YPeMwC2Vg0aOB/view?usp=drive_link) 2. [OAI_DU_conf](https://drive.google.com/file/d/1K153GHiCObzNbpTBC4CeKzL8M4LOu38Q/view?usp=drive_link) #### BBU version 1. [11_14_gnb.sa.band78.273prb.fhi72.2x2-TM500_johnson.conf](https://drive.google.com/file/d/1DYyo7z6O_r7uVcbEUGvJzsmCjW8JCF2E/view?usp=drive_link) ::: ## Run Application ## 1. Use TMA to control TM500 ### Step1.1 Connect the TMA ![image](https://hackmd.io/_uploads/rJ0gZKaLke.png) ### Step1.2 Check C/U plane packet on time Use the following command to confirm the packet status of the C/U plane ```c= FORW MTE GETRUSTATS ``` ![image](https://hackmd.io/_uploads/rJ6WlYTIyl.png) ## 2. Bring up CN ```c= cd ~/free5gc/ sudo ./run.sh //run 5gc sudo ./force_kill.sh //stop 5gc ``` ## 3. Bring up gNB - Put command here ```c= cd /home/oai72/FH_7.2_dev/openairinterface5g/cmake_targets/ran_build/build sudo ./nr-softmodem -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.273prb.fhi72.2x2-TM500_johnson.conf --sa --reorder-thread-disable 1 --thread-pool 1,3,5,7,9,11,13,15 > /home/oai72/OAI_gNB_LOG/test_johnson.log 2>&1 ``` ![image](https://hackmd.io/_uploads/SkAe69HXJx.png) ## 4. Run TM500 script ### Protocol result ![image](https://hackmd.io/_uploads/By_PpcBQ1l.png) ### Throughout result ![image](https://hackmd.io/_uploads/rkwd65rX1e.png) ### UE information | Parameter | Value | | -------------- |:--------- | | UE Id | 0 | | Pdu Session Id | 1 | | IPv4 Address | 10.60.0.3 | ```c= 25/11/24 23:40:43:763 I: CMPI MTE 0 NAS ACTIVE RAT IND:UE Id:0 N1 MODE ACTIVE 25/11/24 23:40:43:764 I: CMPI RRC Cell Selection: UE Id: 0 Cell Info: Cell Id: 0 SSB Freq: 34507.20 Cell Type: Suitable 25/11/24 23:40:43:764 I: CMPI L2 Random Access Initiated :UE Id:0 (Connection Establish: Cell Id 0, Dl Freq 34507, SSB Id 0) 25/11/24 23:40:43:822 I: CMPI L2 Random Access Complete :UE Id:0 (TC-RNTI: 0xBF8F, TimingAdv: 0, PreambleTxCount: 2) 25/11/24 23:40:43:822 I: CMPI MTE 0 NR CONNECTION IND:UE Id:0 25/11/24 23:41:00:196 I: CMPI MTE 0 NR REGISTRATION IND:UE Id:0 Selected PLMN: 00101F Registration Result: 3GPP Access Only 25/11/24 23:41:16:271 I: CMPI MTE 0 NR PDU SESSION ESTABLISHMENT IND:UE Id:0 Pdu Session Id:1 Data Network Name: internet IPv4 Address: 10.60.0.3 QosRuleId:1 QosFlowId:1 FilterId:1 QosFlowId:1 5QI:9 UE Initiated Procedure 25/11/24 23:41:24:928 I: TMAE 0x0 Information - Time Drift between TM500 clock & Network clock identified, Drift(ms): 11 total drift:11calcualted at time: 1732549284870 25/11/24 23:42:55:303 1 ``` ## 5. Run PPPoe through control pc vm ### 5.1 Install and Environment compilation please check - [Install Oracle VirtualBox.](https://hackmd.io/wJ910QIQRC6G36zjD5A5bg?view#Install-Oracle-VirtualBox) - [Configuring a Linux PC as the Data Test Device](https://hackmd.io/wJ910QIQRC6G36zjD5A5bg?view#Install-Oracle-VirtualBox) ### Option(1) ### 5.2.1 Create configuration file ```c= sudo cp /etc/ppp/pppoe.conf /etc/ppp/pppoe-ue0pdn0.conf ``` ```c= sudo gedit /etc/ppp/pppoe-ue0pdn0.conf ``` 識別 `TM500 IP`、`UE ID` 和 `PDN ID`: 例如,如果您的 TM500 IP 是 ==192.168.10.67==,UE ID 是 ==0==,PDN ID 是 ==0==,則服務名稱為<br>tm500_lte_192.168.10.70_0_0 | 參數 | 數值 | |:-------- |:------------ | | TM500 IP | 192.168.8.67 | | UE ID | 0 | | PDN ID | 0 | - 將 SERVICENAME 更改為您的連接 (SERVICENAME=`tm500_lte_192.168.8.67_0_0`) ![image](https://hackmd.io/_uploads/HkKuFdNzJe.png) - 設置 PIDFILE = `"/var/run/$CF_BASE-pppoe-ue0pdn0.pid"` ![image](https://hackmd.io/_uploads/HkwXjONGJx.png) - 確保 LINUX_PLUGIN =`/etc/ppp/plugins/rp-pppoe.so` ![image](https://hackmd.io/_uploads/ByUQn_4M1l.png) - ==可選地==,調整 MTU 和 MRU 設置: - PPPD_EXTRA="mtu 1452 mru 1452" ### 5.2.2 Start PPPoE connect: ```c= cd /rp-pppoe-3.12/src ``` ```c= sudo pppoe-start /etc/ppp/pppoe-ue0pdn0.conf ``` ### Option(2) ---- Recommend ### 5.3 Using manage_UEs.sh to establish pppoe connection (After PDU session accept) ``` sudo apt update ``` ``` sudo apt install ppp pppoeconf ``` Create a .sh doc and using the code below, and adjust several specific parameters according to your machine, as shown in the table below | Parameter | Value | |:------------------------ |:---------------------- | | pppoe_ethernet_interface | enp0s3 | | rp_pppoe_service | tm500_lte_192.168.10.2 | ```c= #!/bin/bash pppoe_ethernet_interface="enp0s3" test_route_targets=( "10.16.1.222/32" "10.16.1.223/32" "10.16.1.224/32" "10.16.1.225/32" ) # Check our input arguments if [ -z ${1} ]; then echo "Usage ${0} [Number of UEs to start]"; exit 2; fi # Check our routing targets if [ "${#test_route_targets[@]}" -lt "${1}" ]; then echo "Too few test route targets to setup ${1} UEs!"; exit 2; fi first_ue=0; last_ue=$((first_ue + ${1} - 1)); for ue_num in $(seq ${first_ue} ${last_ue}); do # Create the config file for the UE cat > "/etc/ppp/peers/tm500-ue${ue_num}" << __EOF user tm500 #plugin rp-pppoe.so plugin pppoe.so ${pppoe_ethernet_interface} noipdefault lcp-echo-interval 20 lcp-echo-failure 3 noauth persist maxfail 0 mtu 1500 mru 1500 noaccomp default-asyncmap linkname pppoe-ue${ue_num} #rp_pppoe_service tm500_lte_192.168.10.2_0_${ue_num} pppoe-service tm500_lte_192.168.10.2_0_${ue_num} #rp_pppoe_ac "<server_name>" __EOF echo "Starting up UE${ue_num}..."; /usr/sbin/pppd call "tm500-ue${ue_num}"; sleep 5; if ip link show dev ppp${ue_num} >/dev/null 2>&1; then echo "Adding route for test target [${test_route_targets[$ue_num]}]..."; ip route add ${test_route_targets[$ue_num]} dev "ppp${ue_num}"; else echo "PPPoE connection failed!"; echo "Bailing out!"; exit 1; fi done ``` - Start ```c= sudo ./manage_UEs.sh 32 ``` - Stop ```c= sudo killall pppd ``` ### 5.4 Multi-UE setting **Before you start using Multiue, you need to confirm the total number of UEs before connecting** - Connect configuration ![image](https://hackmd.io/_uploads/rkUcfPgI1g.png) - Script ![image](https://hackmd.io/_uploads/BJN_XPlUkx.png) - Scenario ![image](https://hackmd.io/_uploads/r1AVUYp8ye.png) ### 5.5 PPPoE Result ![image](https://hackmd.io/_uploads/S1OqogRVyg.png) ![image](https://hackmd.io/_uploads/ry2pog04ke.png) ### 5.5 Using Iperf3 to testing performance #### Testing OAI BBU with TM500 (Single UE) - CN terminal free5gc@free5gc-virtual-machine:~$ iperf3 -s -p 8889 ```c= iperf3 -s -p 8889 ``` - Control terminal vboxuser@Ubunt:~$ iperf3 -u -c 192.168.8.21 -p 8889 -b 800M -t 30 ```c= iperf3 -u -c 192.168.8.21 -p 8889 -b <target> -t 30 -l 1300 ``` - Test direction: Uplink (sent from ==client== to ==server==) ```c= iperf3 -u -c 192.168.8.21 -p 8889 -b 100M -t 30 -l 1300 ``` - Test direction: Downlink (sent from ==server== to ==client==) ```c= iperf3 -u -c 192.168.8.21 -p 8889 -b 100M -t 30 -l 1300 -R ``` :::info - u: Use UDP protocol for testing. - c 192.168.8.21: specifies the IP address of the server (192.168.8.21). - p 8889: Specifies the server port number as 8889. - b 100M: Set the target rate to 100 Mbps. - t 30: The test duration is 30 seconds. - l 1300: Set the size of each UDP packet to 1300 bytes. ::: ## 6. Quick flow ### Connect TM500 and DU ![image](https://hackmd.io/_uploads/By0pCsHXJg.png) ### Bring up CN - In Free5gc ```c= cd ~/free5gc/ sudo ./run.sh ``` ### Bring up DU - In OAI ```c= cd /home/oai72/FH_7.2_dev/openairinterface5g/cmake_targets/ran_build/build sudo ./nr-softmodem -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.273prb.fhi72.2x2-TM500_johnson.conf --sa --reorder-thread-disable 1 --thread-pool 1,3,5,7,9,11,13,15 > /home/oai72/OAI_gNB_LOG/test_johnson.log 2>&1 ``` ### Run TM500 scrept (After C/U plane on time) - In TMA ![image](https://hackmd.io/_uploads/r1luCjH7Jx.png) ### Running PPPoe (After PDU Session accept) ![image](https://hackmd.io/_uploads/Sy0Qk3HXye.png) - VM terminal ```c= sudo ./manage_UEs.sh <ue-number> ``` ```c= sudo ./manage_UEs.sh 32 ``` - Iperf testing ```c= iperf3 -s -p 8889 #Master ``` ```c= iperf3 -u -c 192.168.8.21 -p 8889 -b <target> -t 30 -l 1300 #Client ```` ## 7. Result ### The maximum number of connectable UEs is currently 32 If the number of connected UEs exceeds ==32==, it will cause ==licensed problems==. ```c= 17/12/24 01:57:29:671 forw mte MtsConfigUeGroup 0 0 1{0-31} 17/12/24 01:57:29:696 C: FORW 0x00 Ok MTE MTSCONFIGUEGROUP: RETURN CODE:0 SUCCEEDED 17/12/24 01:57:34:013 forw mte MtsConfigUeGroup 0 0 1{0-32} 17/12/24 01:57:34:027 C: FORW 0x04 Resource_Unavailable MTE MTSCONFIGUEGROUP RETURN CODE:4 FAILED - Not licensed for User Id in the group 17/12/24 01:57:37:056 forw mte MtsConfigUeGroup 0 0 1{0-64} 17/12/24 01:57:37:066 C: FORW 0x04 Resource_Unavailable MTE MTSCONFIGUEGROUP RETURN CODE:4 FAILED - Not licensed for User Id in the group ``` ### Free5GC + BBU + TM500_RU + Cloud UE(Single) - Uplink testing ==482== Mbits/sec ```c= [ 5] 27.00-28.00 sec 59.1 MBytes 496 Mbits/sec 47686 [ 5] 28.00-29.00 sec 58.6 MBytes 491 Mbits/sec 47239 [ 5] 29.00-30.00 sec 58.9 MBytes 494 Mbits/sec 47520 - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams [ 5] 0.00-30.00 sec 1.69 GBytes 483 Mbits/sec 0.000 ms 0/1393733 (0%) sender [ 5] 0.00-30.04 sec 1.69 GBytes 482 Mbits/sec 0.014 ms 1020/1393731 (0.073%) receiv ``` - Downlink testing ==738== Mbits/sec ```c= [ 5] 26.00-27.00 sec 87.3 MBytes 732 Mbits/sec 0.016 ms 3615/74036 (4.9%) [ 5] 27.00-28.00 sec 91.3 MBytes 766 Mbits/sec 0.028 ms 2368/76032 (3.1%) [ 5] 28.00-29.00 sec 90.8 MBytes 762 Mbits/sec 0.019 ms 3650/76916 (4.7%) [ 5] 29.00-30.00 sec 90.0 MBytes 755 Mbits/sec 0.016 ms 5664/78287 (7.2%) - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams [ 5] 0.00-30.06 sec 2.71 GBytes 775 Mbits/sec 0.000 ms 0/2240891 (0%) sender [ 5] 0.00-30.00 sec 2.58 GBytes 738 Mbits/sec 0.016 ms 113111/2240835 (5%) receiver ``` ### Free5GC + OAI_CU + OAI_DU + TM500_RU + Cloud UE(Single) - Uplink testing ==473== Mbits/sec ```c= [ 5] 27.00-28.00 sec 52.1 MBytes 437 Mbits/sec 41985 [ 5] 28.00-29.00 sec 53.7 MBytes 451 Mbits/sec 43353 [ 5] 29.00-30.00 sec 51.0 MBytes 428 Mbits/sec 41164 - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams [ 5] 0.00-30.00 sec 1.65 GBytes 474 Mbits/sec 0.000 ms 0/1366532 (0%) sender [ 5] 0.00-30.04 sec 1.65 GBytes 473 Mbits/sec 0.021 ms 1007/1366532 (0.074%) receiver ``` - Downlink testing ==727== Mbits/sec ```c= [ 5] 26.00-27.00 sec 83.9 MBytes 704 Mbits/sec 0.028 ms 2926/70602 (4.1%) [ 5] 27.00-28.00 sec 91.8 MBytes 770 Mbits/sec 0.022 ms 1734/75787 (2.3%) [ 5] 28.00-29.00 sec 90.3 MBytes 757 Mbits/sec 0.028 ms 3160/75957 (4.2%) [ 5] 29.00-30.00 sec 95.6 MBytes 802 Mbits/sec 0.037 ms 2298/79380 (2.9%) - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams [ 5] 0.00-30.04 sec 2.64 GBytes 756 Mbits/sec 0.000 ms 0/2182584 (0%) sender [ 5] 0.00-30.00 sec 2.54 GBytes 727 Mbits/sec 0.037 ms 85574/2182523 (3.9%) receive ``` ## 8. Issue ### 1. Network is unreachable ![image](https://hackmd.io/_uploads/HyiG2u6I1e.png) - 如果 `DHCP` 服務未能自動分配 IP 地址,可以==手動請求 IP 地址== ```c= sudo dhclient enp0s3 ``` ![image](https://hackmd.io/_uploads/SkmqidT8ke.png) ### 2. (Fix)One UE two PDU Session :::danger The expected result is ==multiple UE IDs==, but the actual result is ==single UE multiple PDU session== ::: ```bash= 31/12/24 01:55:56:327 I: CMPI MTE 0 NR CONNECTION IND:UE Id:0 31/12/24 01:55:56:767 I: CMPI MTE 0 NR REGISTRATION IND:UE Id:0 Selected PLMN: 00101F Pdu Session Id: 1 Data Network Name: internet IPv4 Address: 10.60.0.7 Registration Result: 3GPP Access Only 31/12/24 01:55:57:055 I: CMPI MTE 0 NR PDU SESSION ESTABLISHMENT IND:UE Id:0 Pdu Session Id:2 Data Network Name: internet IPv4 Address: 10.60.0.8 QosRuleId:1 QosFlowId:1 FilterId:1 QosFlowId:1 5QI:9 UE Initiated Procedure 31/12/24 01:56:00:663 I: CMPI DTE PPPOE CONNECTION IND: UE Id: 0 De Id: 1 PDU Session Id: 1 Default DRB Id: 1 PDN IP Address String: 10.60.0.7 31/12/24 01:56:05:150 I: CMPI DTE PPPOE CONNECTION IND: UE Id: 0 De Id: 2 PDU Session Id: 2 Default DRB Id: 2 PDN IP Address String: 10.60.0.8 ``` ![image](https://hackmd.io/_uploads/BylbzPeIJg.png) ![image](https://hackmd.io/_uploads/S1G9URtI1e.png) ### 3. RRC UE Duplicate PagingUeId (S-TMSI) or (IRNTI) - TMA ```bash= 01/06/24 23:41:16:271 I: CMPI MTE 0 NR PDU SESSION ESTABLISHMENT IND: UE Id: 0 Pdu Session Id: 1 Data Network Name: internet IPv4 Address: 10.60.0.3 QosRuleId: 1 QosFlowId: 1 FilterId: 1 QosFlowId: 1 5QI: 9 UE Initiated Procedure 01/06/24 23:42:05:123 I: CMPI MTE 0 NR PDU SESSION ESTABLISHMENT IND: UE Id: 1 Pdu Session Id: 2 Data Network Name: internet IPv4 Address: 10.60.0.4 QosRuleId: 2 QosFlowId: 2 FilterId: 2 QosFlowId: 2 5QI: 9 UE Initiated Procedure 01/06/24 23:43:10:456 I: CMPI MTE 0 NR PDU SESSION ESTABLISHMENT IND: UE Id: 2 Pdu Session Id: 3 Data Network Name: internet IPv4 Address: 10.60.0.5 QosRuleId: 3 QosFlowId: 3 FilterId: 3 QosFlowId: 3 5QI: 9 UE Initiated Procedure 01/06/24 23:44:20:789 I: CMPI MTE 0 NR PDU SESSION ESTABLISHMENT IND: UE Id: 3 Pdu Session Id: 4 Data Network Name: internet IPv4 Address: 10.60.0.6 QosRuleId: 4 QosFlowId: 4 FilterId: 4 QosFlowId: 4 5QI: 9 UE Initiated Procedure 01/06/24 23:45:15:234 I: CMPI MTE 0 NR PDU SESSION ESTABLISHMENT IND: UE Id: 4 Pdu Session Id: 5 Data Network Name: internet IPv4 Address: 10.60.0.7 QosRuleId: 5 QosFlowId: 5 FilterId: 5 QosFlowId: 5 5QI: 9 UE Initiated Procedure 01/06/24 23:46:30:987 I: CMPI MTE 0 NR PDU SESSION ESTABLISHMENT IND: UE Id: 5 Pdu Session Id: 6 Data Network Name: internet IPv4 Address: 10.60.0.8 QosRuleId: 6 QosFlowId: 6 FilterId: 6 QosFlowId: 6 5QI: 9 UE Initiated Procedure 01/06/24 23:47:45:654 I: CMPI MTE 0 NR PDU SESSION ESTABLISHMENT IND: UE Id: 6 Pdu Session Id: 7 Data Network Name: internet IPv4 Address: 10.60.0.9 QosRuleId: 7 QosFlowId: 7 FilterId: 7 QosFlowId: 7 5QI: 9 UE Initiated Procedure 01/06/24 23:48:50:321 I: CMPI MTE 0 NR PDU SESSION ESTABLISHMENT IND: UE Id: 7 Pdu Session Id: 8 Data Network Name: internet IPv4 Address: 10.60.0.10 QosRuleId: 8 QosFlowId: 8 FilterId: 8 QosFlowId: 8 5QI: 9 UE Initiated Procedure 01/06/24 23:49:55:876 I: CMPI MTE 0 NR PDU SESSION ESTABLISHMENT IND: UE Id: 8 Pdu Session Id: 9 Data Network Name: internet IPv4 Address: 10.60.0.11 QosRuleId: 9 QosFlowId: 9 FilterId: 9 QosFlowId: 9 5QI: 9 UE Initiated Procedure 01/06/24 23:50:10:500 I: CMPI MTE 0 NR RRC UE Duplicate PagingUeId (S-TMSI) or (IRNTI) for UE Id: 1 Disconnecting UE Id: 1 01/06/24 23:50:20:600 I: CMPI MTE 0 NR RRC UE Duplicate PagingUeId (S-TMSI) or (IRNTI) for UE Id: 2 Disconnecting UE Id: 2 01/06/24 23:50:30:700 I: CMPI MTE 0 NR RRC UE Duplicate PagingUeId (S-TMSI) or (IRNTI) for UE Id: 3 Disconnecting UE Id: 3 01/06/24 23:50:40:800 I: CMPI MTE 0 NR RRC UE Duplicate PagingUeId (S-TMSI) or (IRNTI) for UE Id: 4 Disconnecting UE Id: 4 01/06/24 23:50:50:900 I: CMPI MTE 0 NR RRC UE Duplicate PagingUeId (S-TMSI) or (IRNTI) for UE Id: 5 Disconnecting UE Id: 5 01/06/24 23:51:01:000 I: CMPI MTE 0 NR RRC UE Duplicate PagingUeId (S-TMSI) or (IRNTI) for UE Id: 6 Disconnecting UE Id: 6 01/06/24 23:51:11:100 I: CMPI MTE 0 NR RRC UE Duplicate PagingUeId (S-TMSI) or (IRNTI) for UE Id: 7 Disconnecting UE Id: 7 01/06/24 23:51:21:200 I: CMPI MTE 0 NR RRC UE Duplicate PagingUeId (S-TMSI) or (IRNTI) for UE Id: 8 Disconnecting UE Id: 8 01/06/24 23:51:31:300 I: CMPI MTE 0 NR RRC UE Duplicate PagingUeId (S-TMSI) or (IRNTI) for UE Id: 9 Disconnecting UE Id: 9 ``` - CN ```bash= 2024-1-6T13:17:37.401128177+08:00 [INFO][AMF][Ngap][amf_ue_ngap_id:RU:1,AU:12(3GPP)][ran_addr:192.168.8.43:53807] New RanUe [RanUeNgapID:1][AmfUeNgapID:12] 2024-1-6T13:17:37.401189864+08:00 [WARN][AMF][Ngap][amf_ue_ngap_id:RU:1,AU:12(3GPP)][ran_addr:192.168.8.43:53807] Missing 5G-S-TMSI IE in InitialUEMessage; send ErrorIndication 2024-1-6T13:17:37.401229050+08:00 [INFO][AMF][Ngap][ran_addr:192.168.8.43:53807] Send Error Indication 2024-1-6T13:17:37.401755102+08:00 [INFO][AMF][Ngap][amf_ue_ngap_id:RU:1,AU:12(3GPP)][ran_addr:192.168.8.43:53807] Send UE Context Release Command 2024-1-6T13:17:37.402116069+08:00 [WARN][AMF][Ngap][amf_ue_ngap_id:RU:1,AU:12(3GPP)][ran_addr:192.168.8.43:53807] AmfUe is nil 2024-1-6T13:17:37.603334470+08:00 [INFO][AMF][Ngap][ran_addr:192.168.8.43:53807] Handle UEContextReleaseComplete 2024-1-6T13:17:37.603478475+08:00 [INFO][AMF][Ngap][amf_ue_ngap_id:RU:1,AU:12(3GPP)][ran_addr:192.168.8.43:53807] Handle UEContextReleaseComplete (RAN UE NGAP ID: 1) 2024-1-6T13:17:37.603560633+08:00 [INFO][AMF][Ngap][ran_addr:192.168.8.43:53807] Release UE Context : RanUe[AmfUeNgapId: 12] ``` :::info - A new RanUe (Radio Access Network User Equipment) is created and assigned a corresponding ID. - When processing the Initial UE message, the 5G-S-TMSI information element is missing and the AMF shall send an error indication. - The AMF has sent an error indication in response to a missing 5G-S-TMSI. - The AMF sends a context release command to the UE, indicating that the UE context will be released. - AMF issues a warning that AmfUe is nil, which may indicate that something went wrong during processing. ::: During the UE access process, the AMF may not correctly allocate a unique S-TMSI or IRNTI to each UE. To avoid duplicate Paging UE IDs (such as S-TMSI) in the 5G core network, may need to ensure that each UE is assigned a unique S-TMSI in the core network (CN).![](https://i.imgur.com/JORnn3y.png =150x)@NTUST # Install pppoe for tm500 traffic test guide :::success **🎯 Readme:** 1. Since the TM500 UE sim cannot generate traffic on its own, the traffic currently being tested is presumed to be only C-plane. Viavi suggested that we set up pppoe to facilitate traffic testing of TM500 UE 2. If you encounter an error you can refer to the [Troubleshooting note](##Troubleshooting-note). 3. The maximum number of connectable UEs is currently 32 :bookmark: **Reference:** - [pppoe撥號.pdf](https://drive.google.com/file/d/1Mb4x9-9UAF_kVYSKT0X-IgyBV5IaPkG9/view?usp=drive_link) - [TM500LTE_PPPoE_Multi-UE_Data_47090_113.pdf](https://drive.google.com/file/d/1j8GDFW_kR0IvswlFJziNGeC_qqhaYtoY/view?usp=drive_link) - [pppoe Install guide](https://hackmd.io/@Johnson-72/SJhDdM7GJx) ::: :::info #### :memo: **Outline:** [TOC] ::: ## Topology ![image](https://hackmd.io/_uploads/HJt_dKBX1e.png) ![image](https://hackmd.io/_uploads/Skr9YtBmyl.png) ## Environment ### gNB **Hardware:** | Item | Info | |:------------:|:------------------------------------------------------------------ | | CPU | Intel® Xeon® Gold 6226R CPU @ 2.90GHz (16 cores, disable HT) x 2 | | Memory | 128GB (64GB x 2) | | Disk | 600GB | | NIC | Intel X710-DA2 (i40e,8.30 0x8000a4db) (Bus-Info: 3b:00.0, 3b:00.1) | | Server Model | Dell PowerEdge R740 | **Software:** | **Item** | **Info** | |:----------:|:------------------------------------------------ | | OS | Red Hat Enterprise Linux release 9.2 (Plow) | | Kernel | Linux R740 5.14.0-284.18.1.rt14.303.el9_2.x86_64 | | DPDK | 20.11.8 | | LinuxPTP | 3.1.1 | | gNB Branch | develop | ## Configuration | Parameters | TM500 RU | OAI DU | OSC DU HIGH (previous testing) | OSC DU LOW (previous testing) | OSC DU HIGH (Ankit) | OSC DU LOW (Ashwini) | | --------------------------- | ----------------- | ----------------- | ---------------------------------- | ----------------------------- | ------------------- | -------------------- | | CC config | 2x2 | 2x2 | 2x2 | N/A | < Please fill > | 2x2 | | DL Point A frequency(ARFCN) | 3401.58 MHz | 3401.58 MHz | 3351.06 MHz (623404) | N/A | < Please fill > | | | DL center frequency(ARFCN) | 3450.72 MHz | 3450.72 MHz | 3400.2 MHz (626680) | N/A | < Please fill > | | | SSB frequency(ARFCN) | 3450.72 MHz | 3450.72 MHz | 3358.98 MHz(should be 3358.56 MHz) | N/A | < Please fill > | | | System Bandwidth | 100 MHz | 100 MHz | 100 MHz | N/A | < Please fill > | | | SCS | 30KHZ | 30KHZ | 30KHZ | N/A | < Please fill > | 30KHZ | | PCI(Physical Cell ID) | 0 | 0 | 1 | N/A | < Please fill > | 0 | | Duplex mode | TDD | TDD | TDD | N/A | < Please fill > | TDD | | vlan id | 5 | 5 | N/A | 5 | < Please fill > | | | pdsch/pusch eaxcid | 0,1 | 0,1 | N/A | 0, 1 | < Please fill > | | | prach eaxcid | 2,3 | 2,3 | N/A | 2, 3 | < Please fill > | | | dl/ul compression method | 9bitBFP Static | 9bitBFP Static | N/A | 16bitUncompressed static | < Please fill > | | | DU MAC address | 00:11:22:33:44:66 | 00:11:22:33:44:66 | N/A | 00:11:22:33:44:66 | < Please fill > | | | RU MAC address | 10:70:fd:14:1c:10 | 10:70:fd:14:1c:10 | N/A | 10:70:fd:14:1c:10 | < Please fill > | | | MTU size | 1500 | 1500 | N/A | 9000 | < Please fill > | | | T1a_min_cp_dl | 258 μs | 258 μs | N/A | 258 μs | < Please fill > | | | T1a_max_cp_dl | 392 μs | 392 μs | N/A | 470 μs | < Please fill > | | | T1a_min_cp_ul | 285 μs | 285 μs | N/A | 285 μs | < Please fill > | | | T1a_max_cp_ul | 300 μs | 300 μs | N/A | 429 μs | < Please fill > | | | T1a_min_up | 155 μs | 155 μs | N/A | 50 μs | < Please fill > | | | T1a_max_up | 300 μs | 300 μs | N/A | 196 μs | < Please fill > | | | Ta4_min | 0 μs | 0 μs | N/A | 0 μs | < Please fill > | | | Ta4_max | 200 μs | 200 μs | N/A | 75 μs | < Please fill > | | | Tadv_cp_dl | 125 μs | 125 μs | N/A | 25 μs | < Please fill > | | | T2a_min_cp_dl | 259 μs | 259 μs | N/A | 285 μs | < Please fill > | | | T2a_max_cp_dl | 470 μs | 470 μs | N/A | 479 μs | < Please fill > | | | T2a_min_cp_ul | 125 μs | 125 μs | N/A | 285 μs | < Please fill > | | | T2a_max_cp_ul | 1200 μs | 1200 μs | N/A | 429 μs | < Please fill > | | | T2a_min_up | 70 μs | 70 μs | N/A | 71 μs | < Please fill > | | | T2a_max_up | 345 μs | 345 μs | N/A | 428 μs | < Please fill > | | | Ta3_min | 50 μs | 50 μs | N/A | 20 μs | < Please fill > | | | Ta3_max | 171 μs | 171 μs | N/A | 32 μs | < Please fill > | | ### Table for OAI successful integration with RUs. | Parameters | OAI + JURA plugfest | OAI + JURA BMW | OAI + TM500 RUSIM + UESIM | OAI + New LiteOn | OAI + Old LiteOn | | ------------------------------- | --------------------------- | -------------------------------------------- | ---------------------------- | -------------------------------------------- | -------------------------------------------- | | ==CC config== | ==4x4== | ==4x4== | ==2x2== | ==4x4== | ==4x4== | | ==DL Point A frequency(ARFCN)== | ==3700.86 MHz(646724)== | ==3570.06 MHz(638004), 3401.58 MHz(626772)== | ==3401.58 MHz(626772)== | ==3570.06 MHz(638004), 3401.58 MHz(626772)== | ==3570.06 MHz(638004), 3401.58 MHz(626772)== | | ==DL center frequency(ARFCN)== | ==3750 MHz(650000)== | ==3619.2 MHz(641280), 3450.72 MHz(630048)== | ==3450.72 MHz(630048)== | ==3619.2 MHz(641280), 3450.72 MHz(630048)== | ==3619.2 MHz(641280), 3450.72 MHz(630048)== | | ==SSB frequency(ARFCN)== | ==3748.8 MHz(649920)== | ==3619.2 MHz(641280), 3450.72 MHz(630048)== | ==3450.72 MHz(630048)== | ==3619.2 MHz(641280), 3450.72 MHz(630048)== | ==3619.2 MHz(641280), 3450.72 MHz(630048)== | | System Bandwidth | 100 MHz | 100 MHz | 100 MHz | 100 MHz | 100 MHz | | SCS | 30KHZ | 30KHZ | 30KHZ | 30KHZ | 30KHZ | | PCI(Physical Cell ID) | 0 | 0 | 0 | 0 | 0 | | Duplex mode | TDD | TDD | TDD | TDD | TDD | | ==vlan id== | ==3== | ==3== | ==5== | ==6== | ==4== | | ==pdsch/pusch eaxcid== | ==0,1,2,3== | ==0,1,2,3== | ==0,1== | ==0,1,2,3== | ==0,1,2,3== | | ==prach eaxcid== | ==4,5,6,7== | ==4,5,6,7== | ==2,3== | ==4,5,6,7== | ==4,5,6,7== | | dl/ul compression method | 9bitBFP Static | 9bitBFP Static | 9bitBFP Static | 9bitBFP Static | 9bitBFP Static | | phase_compensation | OAI : 0(false), JURA : true | OAI : 0(false), JURA : true | OAI : 0(false), TM500 : true | OAI : 0(false), LiteOn : true | OAI : 0(false), LiteOn : true | | DU MAC address | 00:11:22:33:44:66 | 00:11:22:33:44:66 | 00:11:22:33:44:66 | 00:11:22:33:44:66 | 00:11:22:33:44:66 | | ==RU MAC address== | ==00:E0:0C:00:AE:06== | ==00:E0:0C:00:AE:06== | ==10:70:fd:14:1c:10== | ==00:aa:ff:bb:ff:cc== | ==e8:c7:4f:25:80:ed== | | ==MTU size== | ==9000== | ==8000== | ==1500== | ==8000== | ==8000== | ### **OAI parameters** need to fill in in integrate with different RU | OAI config Parameters | JURA plugfest | JURA BMW | TM500 RUSIM + UESIM | New LiteOn | Old LiteOn | | ------------------------------------------------- | --------------------- | --------------------- | --------------------- | --------------------- | --------------------- | | ==dl_absoluteFrequencyPointA== | ==646724== | ==638004, 626772== | ==626772== | ==638004, 626772== | ==638004, 626772== | | ==absoluteFrequencySSB== | ==649920== | ==641280, 630048== | ==630048== | ==641280, 630048== | ==641280, 630048== | | dl_carrierBandwidth, ul_carrierBandwidth | 273 PRBs | 273 PRBs | 273 PRBs | 273 PRBs | 273 PRBs | | dl_subcarrierSpacing, ul_subcarrierSpacing | 1(30kHz) | 1(30kHz) | 1(30kHz) | 1(30kHz) | 1(30kHz) | | physCellId | 0 | 0 | 0 | 0 | 0 | | ==nb_tx== | ==4== | ==4== | ==2== | ==4== | ==4== | | ==nb_rx== | ==4== | ==4== | ==2== | ==4== | ==4== | | ==eAxC_offset== | ==4== | ==4== | ==2== | ==4== | ==4== | | iq_width, iq_width_prach(only support static BFP) | 9 | 9 | 9 | 9 | 9 | | phase_compensation | 0(false) | 0(false) | 0(false) | 0(false) | 0(false) | | du_addr | 00:11:22:33:44:66 | 00:11:22:33:44:66 | 00:11:22:33:44:66 | 00:11:22:33:44:66 | 00:11:22:33:44:66 | | ==ru_addr== | ==00:E0:0C:00:AE:06== | ==00:E0:0C:00:AE:06== | ==10:70:fd:14:1c:10== | ==00:aa:ff:bb:ff:cc== | ==e8:c7:4f:25:80:ed== | | ==mtu== | ==9000== | ==8000== | ==1500== | ==8000== | ==8000== | ### **RU parameters** need to fill in to integrate with OAI | Parameters | JURA plugfest | JURA BMW | TM500 RUSIM + UESIM | New LiteOn | OAI + Old LiteOn | | ------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------------------------- | ------------------------------------------ | ------------------------------------------ | | ==CC config== | ==N/A== | ==N/A== | ==CC configuration: 2x2(Set in yaml)(Set in TMA radio card)== | ==N/A== | ==N/A== | | ==DL Point A frequency== | ==N/A== | ==N/A== | ==AbsoluteFrequencyPointA : 34015.8 (x100kHz)(Set in TMA script)== | ==N/A== | ==N/A== | | ==DL center frequency(ARFCN)== | ==center-of-channel-bandwidth:3450720000== | ==center-of-channel-bandwidth:3450720000== | ==Downlink carrier frequency : 34507.2 (x100kHz)(Set in TMA script)== | ==center-frequenc 3619200000, 3450720000== | ==center-frequenc 3619200000, 3450720000== | | ==SSB frequency(ARFCN)== | ==N/A== | ==N/A== | ==AbsoluteFrequencySSB : 34507.2 (x100kHz)(Set in TMA script)== | ==N/A== | ==N/A== | | System Bandwidth | num_prb_per_scs_30khz : 273 | num_prb_per_scs_30khz : 273 | Bandwidth: 100(Set in yaml), System bandwidth : 100(Set in TMA script) | bandwidth 100000000 | bandwidth 100000000 | | SCS | Only support 30kHz | Only support 30kHz | Numerology: 1(Set in yaml), SSB Subcarrier Spacing : 1(Set in TMA script) | subcarrier-spacing 1, slot-id 1 | subcarrier-spacing 1, slot-id 1 | | ==physCellId== | ==N/A== | ==N/A== | ==Cell Id : 0== | ==N/A== | ==N/A== | | ==vlan id== | ==vlan_id : 3== | ==vlan_id : 3== | ==VLAN ID: 5(Set in yaml)== | ==c/u-plane-vlan 6== | ==c/u-plane-vlan 4== | | ==pdsch/pusch eaxcid== | ==np_ecpri_forwarding : 0,1,2,3== | ==np_ecpri_forwarding : 0,1,2,3== | ==DL (PDSCH) eaxcid list: 0,1 UL (PUSCH) eaxcid list: 0,1(Set in yaml)== | ==N/A(Auto set with PRACH eAXC_id)== | ==N/A(Auto set with PRACH eAXC_id)== | | ==prach eaxcid== | ==np_ecpri_forwarding : 4,5,6,7== | ==np_ecpri_forwarding : 4,5,6,7== | ==Additional RACH eaxcid list: 2,3(Set in yaml)== | ==eAXC_id 4,5,6,7== | ==eAXC_id 4,5,6,7== | | ==Antenna number== | ==N/A(Will set by eaxcid)== | ==N/A(Will set by eaxcid)== | ==Number of recieve antennas : 2(Set in TMA script)== | ==N/A(Will set by eaxcid)== | ==N/A(Will set by eaxcid)== | | dl/ul compression method | compression_type : STATIC, compression_iq_bitwidth : 0 | compression_type : STATIC, compression_iq_bitwidth : 0 | DL compression: 9bitBFP, UL compression: 9bitBFP(Set in yaml) | compression-bit 9 | compression-bit 9 | | phase_compensation | rf_rx_loss_compensation :true | rf_rx_loss_compensation :true | Default is true(Don't know how to adjust) | phasecomp-mode true | phasecomp-mode true | | DU MAC address | du_mac_address : 00:11:22:33:44:66 | du_mac_address : 00:11:22:33:44:66 | O-DU MAC address: 00:11:22:33:44:66(Set in yaml) | du-mac-address 001122334466 | du-mac-address 001122334466 | | ==MTU size== | ==l2_mtu : 9000== | ==l2_mtu : 8000== | ==MTU size: 1500(Set in yaml)== | ==jumboframe 1== | ==jumboframe 1== | ## Current Status > :heavy_check_mark: : Complete, :Hourglass: : On-going, :x: : Incomplete - TM500 & OAI DU | Item | Status | | --------------------------------------------------------------------------- | ------------------ | | [Bring up CN](#2-Core-Network) | :heavy_check_mark: | | [PTP sync of gNB](#Step-33-gNB-PTP-synchronization) | :heavy_check_mark: | | [Bring up gNB](#Step-34-Run-gNB) | :heavy_check_mark: | | [NG Setup](#Step-35-Check-CN-connection-with-DU) | :heavy_check_mark: | | [TM500 get on time packet from DU](#Step-41-Check-DU-connection-at-RU-side) | :heavy_check_mark: | | [DU get FH packet from TM500](#Step-42-Check-RU-connection-at-DU-side) | :heavy_check_mark: | | [TM500 get mib and sib1 for DL sync](#UE-get-mib-and-sib1-for-DL-syn) | :heavy_check_mark: | | [TM500 send preamble](#UE-send-preamble) | :heavy_check_mark: | | [DU get preamble](#DU-get-preamble) | :heavy_check_mark: | | [DU send RACH response(msg2)](#DU-send-RACH-responsemsg2) | :heavy_check_mark: | | [UE get RACH response(msg2)](#UE-get-RACH-responsemsg2) | :heavy_check_mark: | | [UE send RRC setup request(msg3)](#UE-send-RRC-setup-requestmsg3) | :heavy_check_mark: | | [DU get RRC setup request(msg3)](#DU-get-RRC-setup-requestmsg3) | :heavy_check_mark: | | [DU send RRC Set up(msg4)](#DU-send-RRC-Set-upmsg4) | :heavy_check_mark: | | [TM500 get RRC Set up(msg4)](#UE-get-RRC-Set-upmsg4) | :heavy_check_mark: | | [RRC setup complete](#RRC-setup-complete) | :heavy_check_mark: | | [NAS registration](#NAS-registration) | :heavy_check_mark: | | [NAS identity request](#NAS-identity-request) | :heavy_check_mark: | | [NAS identity response](#NAS-identity-response) | :heavy_check_mark: | | [Authenication request](#Authenication-request) | :heavy_check_mark: | | [Authenication response](#Authenication-response) | :heavy_check_mark: | | [NAS Security mode command](#NAS-Security-mode-command) | :heavy_check_mark: | | [NAS Security mode complete](#NAS-Security-mode-complete) | :heavy_check_mark: | | [UECapabilityEnquiry](#UECapabilityEnquiry) | :heavy_check_mark: | | [UECapabilityInformation](#UECapabilityInformation) | :heavy_check_mark: | | [AS SecurityModeCommand](#AS-SecurityModeCommand) | :heavy_check_mark: | | [AS SecurityModeComplete](#AS-SecurityModeComplete) | :heavy_check_mark: | | [RRCReconfiguration](#RRCReconfiguration) | :heavy_check_mark: | | [Registration accept](#Registration-accept) | :heavy_check_mark: | | [RRCReconfigurationComplete](#RRCReconfigurationComplete) | :heavy_check_mark: | | [Registration complete](#Registration-complete) | :heavy_check_mark: | | [PDU session establish request](#PDU-session-establish-request) | :heavy_check_mark: | | [PDU session establish accept](#PDU-session-establish-accept) | :heavy_check_mark: | ![image](https://hackmd.io/_uploads/Hk1kTFr7ye.png) - PPPoe ![image](https://hackmd.io/_uploads/ByYAbNTmyl.png) - Control PC & TM500 UE PPPoE | Item | Status | |:---------------------------------------------- |:------------------ | | Download the chosen Linux distribution ISO | :heavy_check_mark: | | Configuring a Linux PC as the Data Test Device | :heavy_check_mark: | | Create conf | :heavy_check_mark: | | Create configuration file | :heavy_check_mark: | | Test Connection | :heavy_check_mark: | | Running Client Application | :heavy_check_mark: | | Disconnect stopped | :heavy_check_mark: | ## Access Method :::success #### **TM500 Server (Supermicro) :** - IP Address : 192.168.8.67 - Username : viavi - Password : viavi **TM500 Control PC :** - IP Address : 192.168.8.71 - User Password : bmwee809 - Anydesk ID : 980393298 - Anydesk Password : bmwbmwbmwee809 **OAI gNB (Dell R750) :** - IP Address : 192.168.8.43 - Username : oai72 - Password : bmwlab - Root Password : bmwlab <!-- - IDRAC IP : 192.168.10.124 - IDRAC user name : root - IDRAC Password : calvin --> ::: ## Configuration :::info ### TM500 Before using TM500 to connect your gNB (MTS mode), you should prepare the following documents in the specified path PATH : `\Desktop\viavi cloudue\NLA_7_4_0\TM500_NR_5G_EXT-MUE_Release_NLA_7_4_0_CloudUE\ppc_pq\public\ftp_root` 1. [o-ran.cfg](https://drive.google.com/file/d/11iyAWnskRLqBp0Qwsr3UEqtYoMP_D4Jx/view?usp=drive_link) 2. [oran_oai_tm500.csv](https://drive.google.com/file/d/1hckCWINHcz8vn7BlRtF1ZBhjrLbfPKHP/view?usp=drive_link) ### TMA script 1. [Johnson_TM500_OAI_ Max Traffic.txt](https://drive.google.com/file/d/19oOTdb0FHCyO4E-LiqkPbyj9m8m4Ys6E/view?usp=drive_link) ### gNB conf #### split version 1. [OAI_CU_conf](https://drive.google.com/file/d/1uZcEDSFEvbAUPHmk4E4YPeMwC2Vg0aOB/view?usp=drive_link) 2. [OAI_DU_conf](https://drive.google.com/file/d/1K153GHiCObzNbpTBC4CeKzL8M4LOu38Q/view?usp=drive_link) #### BBU version 1. [11_14_gnb.sa.band78.273prb.fhi72.2x2-TM500_johnson.conf](https://drive.google.com/file/d/1DYyo7z6O_r7uVcbEUGvJzsmCjW8JCF2E/view?usp=drive_link) ::: ## Run Application ## 1. Use TMA to control TM500 ### Step1.1 Connect the TMA ![image](https://hackmd.io/_uploads/rJ0gZKaLke.png) ### Step1.2 Check C/U plane packet on time Use the following command to confirm the packet status of the C/U plane ```c= FORW MTE GETRUSTATS ``` ![image](https://hackmd.io/_uploads/rJ6WlYTIyl.png) ## 2. Bring up CN ```c= cd ~/free5gc/ sudo ./run.sh //run 5gc sudo ./force_kill.sh //stop 5gc ``` ## 3. Bring up gNB - Put command here ```c= cd /home/oai72/FH_7.2_dev/openairinterface5g/cmake_targets/ran_build/build sudo ./nr-softmodem -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.273prb.fhi72.2x2-TM500_johnson.conf --sa --reorder-thread-disable 1 --thread-pool 1,3,5,7,9,11,13,15 > /home/oai72/OAI_gNB_LOG/test_johnson.log 2>&1 ``` ![image](https://hackmd.io/_uploads/SkAe69HXJx.png) ## 4. Run TM500 script ### Protocol result ![image](https://hackmd.io/_uploads/By_PpcBQ1l.png) ### Throughout result ![image](https://hackmd.io/_uploads/rkwd65rX1e.png) ### UE information | Parameter | Value | | -------------- |:--------- | | UE Id | 0 | | Pdu Session Id | 1 | | IPv4 Address | 10.60.0.3 | ```c= 25/11/24 23:40:43:763 I: CMPI MTE 0 NAS ACTIVE RAT IND:UE Id:0 N1 MODE ACTIVE 25/11/24 23:40:43:764 I: CMPI RRC Cell Selection: UE Id: 0 Cell Info: Cell Id: 0 SSB Freq: 34507.20 Cell Type: Suitable 25/11/24 23:40:43:764 I: CMPI L2 Random Access Initiated :UE Id:0 (Connection Establish: Cell Id 0, Dl Freq 34507, SSB Id 0) 25/11/24 23:40:43:822 I: CMPI L2 Random Access Complete :UE Id:0 (TC-RNTI: 0xBF8F, TimingAdv: 0, PreambleTxCount: 2) 25/11/24 23:40:43:822 I: CMPI MTE 0 NR CONNECTION IND:UE Id:0 25/11/24 23:41:00:196 I: CMPI MTE 0 NR REGISTRATION IND:UE Id:0 Selected PLMN: 00101F Registration Result: 3GPP Access Only 25/11/24 23:41:16:271 I: CMPI MTE 0 NR PDU SESSION ESTABLISHMENT IND:UE Id:0 Pdu Session Id:1 Data Network Name: internet IPv4 Address: 10.60.0.3 QosRuleId:1 QosFlowId:1 FilterId:1 QosFlowId:1 5QI:9 UE Initiated Procedure 25/11/24 23:41:24:928 I: TMAE 0x0 Information - Time Drift between TM500 clock & Network clock identified, Drift(ms): 11 total drift:11calcualted at time: 1732549284870 25/11/24 23:42:55:303 1 ``` ## 5. Run PPPoe through control pc vm ### 5.1 Install and Environment compilation please check - [Install Oracle VirtualBox.](https://hackmd.io/wJ910QIQRC6G36zjD5A5bg?view#Install-Oracle-VirtualBox) - [Configuring a Linux PC as the Data Test Device](https://hackmd.io/wJ910QIQRC6G36zjD5A5bg?view#Install-Oracle-VirtualBox) ### Option(1) ### 5.2.1 Create configuration file ```c= sudo cp /etc/ppp/pppoe.conf /etc/ppp/pppoe-ue0pdn0.conf ``` ```c= sudo gedit /etc/ppp/pppoe-ue0pdn0.conf ``` 識別 `TM500 IP`、`UE ID` 和 `PDN ID`: 例如,如果您的 TM500 IP 是 ==192.168.10.67==,UE ID 是 ==0==,PDN ID 是 ==0==,則服務名稱為<br>tm500_lte_192.168.10.70_0_0 | 參數 | 數值 | |:-------- |:------------ | | TM500 IP | 192.168.8.67 | | UE ID | 0 | | PDN ID | 0 | - 將 SERVICENAME 更改為您的連接 (SERVICENAME=`tm500_lte_192.168.8.67_0_0`) ![image](https://hackmd.io/_uploads/HkKuFdNzJe.png) - 設置 PIDFILE = `"/var/run/$CF_BASE-pppoe-ue0pdn0.pid"` ![image](https://hackmd.io/_uploads/HkwXjONGJx.png) - 確保 LINUX_PLUGIN =`/etc/ppp/plugins/rp-pppoe.so` ![image](https://hackmd.io/_uploads/ByUQn_4M1l.png) - ==可選地==,調整 MTU 和 MRU 設置: - PPPD_EXTRA="mtu 1452 mru 1452" ### 5.2.2 Start PPPoE connect: ```c= cd /rp-pppoe-3.12/src ``` ```c= sudo pppoe-start /etc/ppp/pppoe-ue0pdn0.conf ``` ### Option(2) ---- Recommend ### 5.3 Using manage_UEs.sh to establish pppoe connection (After PDU session accept) ``` sudo apt update ``` ``` sudo apt install ppp pppoeconf ``` Create a .sh doc and using the code below, and adjust several specific parameters according to your machine, as shown in the table below | Parameter | Value | |:------------------------ |:---------------------- | | pppoe_ethernet_interface | enp0s3 | | rp_pppoe_service | tm500_lte_192.168.10.2 | ```c= #!/bin/bash pppoe_ethernet_interface="enp0s3" test_route_targets=( "10.16.1.222/32" "10.16.1.223/32" "10.16.1.224/32" "10.16.1.225/32" ) # Check our input arguments if [ -z ${1} ]; then echo "Usage ${0} [Number of UEs to start]"; exit 2; fi # Check our routing targets if [ "${#test_route_targets[@]}" -lt "${1}" ]; then echo "Too few test route targets to setup ${1} UEs!"; exit 2; fi first_ue=0; last_ue=$((first_ue + ${1} - 1)); for ue_num in $(seq ${first_ue} ${last_ue}); do # Create the config file for the UE cat > "/etc/ppp/peers/tm500-ue${ue_num}" << __EOF user tm500 #plugin rp-pppoe.so plugin pppoe.so ${pppoe_ethernet_interface} noipdefault lcp-echo-interval 20 lcp-echo-failure 3 noauth persist maxfail 0 mtu 1500 mru 1500 noaccomp default-asyncmap linkname pppoe-ue${ue_num} #rp_pppoe_service tm500_lte_192.168.10.2_0_${ue_num} pppoe-service tm500_lte_192.168.10.2_0_${ue_num} #rp_pppoe_ac "<server_name>" __EOF echo "Starting up UE${ue_num}..."; /usr/sbin/pppd call "tm500-ue${ue_num}"; sleep 5; if ip link show dev ppp${ue_num} >/dev/null 2>&1; then echo "Adding route for test target [${test_route_targets[$ue_num]}]..."; ip route add ${test_route_targets[$ue_num]} dev "ppp${ue_num}"; else echo "PPPoE connection failed!"; echo "Bailing out!"; exit 1; fi done ``` - Start ```c= sudo ./manage_UEs.sh 32 ``` - Stop ```c= sudo killall pppd ``` ### 5.4 Multi-UE setting **Before you start using Multiue, you need to confirm the total number of UEs before connecting** - Connect configuration ![image](https://hackmd.io/_uploads/rkUcfPgI1g.png) - Script ![image](https://hackmd.io/_uploads/BJN_XPlUkx.png) - Scenario ![image](https://hackmd.io/_uploads/r1AVUYp8ye.png) ### 5.5 PPPoE Result ![image](https://hackmd.io/_uploads/S1OqogRVyg.png) ![image](https://hackmd.io/_uploads/ry2pog04ke.png) ### 5.5 Using Iperf3 to testing performance #### Testing OAI BBU with TM500 (Single UE) - CN terminal free5gc@free5gc-virtual-machine:~$ iperf3 -s -p 8889 ```c= iperf3 -s -p 8889 ``` - Control terminal vboxuser@Ubunt:~$ iperf3 -u -c 192.168.8.21 -p 8889 -b 800M -t 30 ```c= iperf3 -u -c 192.168.8.21 -p 8889 -b <target> -t 30 -l 1300 ``` - Test direction: Uplink (sent from ==client== to ==server==) ```c= iperf3 -u -c 192.168.8.21 -p 8889 -b 100M -t 30 -l 1300 ``` - Test direction: Downlink (sent from ==server== to ==client==) ```c= iperf3 -u -c 192.168.8.21 -p 8889 -b 100M -t 30 -l 1300 -R ``` :::info - u: Use UDP protocol for testing. - c 192.168.8.21: specifies the IP address of the server (192.168.8.21). - p 8889: Specifies the server port number as 8889. - b 100M: Set the target rate to 100 Mbps. - t 30: The test duration is 30 seconds. - l 1300: Set the size of each UDP packet to 1300 bytes. ::: ## 6. Catch UE log (option) ### TM500 UE log :::spoiler ![image](https://hackmd.io/_uploads/rJdYWhp8yx.png) --- ![image](https://hackmd.io/_uploads/SJTt-hpIye.png) --- ![image](https://hackmd.io/_uploads/rkXFZnTL1e.png) --- ![image](https://hackmd.io/_uploads/rkM3fhaLyg.png) --- ![image](https://hackmd.io/_uploads/ryfAZ36Lyg.png) --- ![image](https://hackmd.io/_uploads/ryzpbhaI1x.png) --- ![image](https://hackmd.io/_uploads/HJfkz3pLyl.png) --- ![image](https://hackmd.io/_uploads/Hk9lz3TI1l.png) --- ![image](https://hackmd.io/_uploads/SJxl7h6Lyg.png) ::: ## 7. Quick flow ### Connect TM500 and DU ![image](https://hackmd.io/_uploads/By0pCsHXJg.png) ### Bring up CN - In Free5gc ```c= cd ~/free5gc/ sudo ./run.sh ``` ### Bring up DU - In OAI ```c= cd /home/oai72/FH_7.2_dev/openairinterface5g/cmake_targets/ran_build/build sudo ./nr-softmodem -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.273prb.fhi72.2x2-TM500_johnson.conf --sa --reorder-thread-disable 1 --thread-pool 1,3,5,7,9,11,13,15 > /home/oai72/OAI_gNB_LOG/test_johnson.log 2>&1 ``` ### Run TM500 scrept (After C/U plane on time) - In TMA ![image](https://hackmd.io/_uploads/r1luCjH7Jx.png) ### Running PPPoe (After PDU Session accept) ![image](https://hackmd.io/_uploads/Sy0Qk3HXye.png) - VM terminal ```c= sudo ./manage_UEs.sh <ue-number> ``` ```c= sudo ./manage_UEs.sh 32 ``` - Iperf testing ```c= iperf3 -s -p 8889 #Master ``` ```c= iperf3 -u -c 192.168.8.21 -p 8889 -b <target> -t 30 -l 1300 #Client ```` ## 8. Result ### The maximum number of connectable UEs is currently 32 If the number of connected UEs exceeds ==32==, it will cause ==licensed problems==. ```c= 17/12/24 01:57:29:671 forw mte MtsConfigUeGroup 0 0 1{0-31} 17/12/24 01:57:29:696 C: FORW 0x00 Ok MTE MTSCONFIGUEGROUP: RETURN CODE:0 SUCCEEDED 17/12/24 01:57:34:013 forw mte MtsConfigUeGroup 0 0 1{0-32} 17/12/24 01:57:34:027 C: FORW 0x04 Resource_Unavailable MTE MTSCONFIGUEGROUP RETURN CODE:4 FAILED - Not licensed for User Id in the group 17/12/24 01:57:37:056 forw mte MtsConfigUeGroup 0 0 1{0-64} 17/12/24 01:57:37:066 C: FORW 0x04 Resource_Unavailable MTE MTSCONFIGUEGROUP RETURN CODE:4 FAILED - Not licensed for User Id in the group ``` ### Free5GC + BBU + TM500_RU + Cloud UE(Single) - Uplink testing ==482== Mbits/sec ```c= [ 5] 27.00-28.00 sec 59.1 MBytes 496 Mbits/sec 47686 [ 5] 28.00-29.00 sec 58.6 MBytes 491 Mbits/sec 47239 [ 5] 29.00-30.00 sec 58.9 MBytes 494 Mbits/sec 47520 - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams [ 5] 0.00-30.00 sec 1.69 GBytes 483 Mbits/sec 0.000 ms 0/1393733 (0%) sender [ 5] 0.00-30.04 sec 1.69 GBytes 482 Mbits/sec 0.014 ms 1020/1393731 (0.073%) receiv ``` - Downlink testing ==738== Mbits/sec ```c= [ 5] 26.00-27.00 sec 87.3 MBytes 732 Mbits/sec 0.016 ms 3615/74036 (4.9%) [ 5] 27.00-28.00 sec 91.3 MBytes 766 Mbits/sec 0.028 ms 2368/76032 (3.1%) [ 5] 28.00-29.00 sec 90.8 MBytes 762 Mbits/sec 0.019 ms 3650/76916 (4.7%) [ 5] 29.00-30.00 sec 90.0 MBytes 755 Mbits/sec 0.016 ms 5664/78287 (7.2%) - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams [ 5] 0.00-30.06 sec 2.71 GBytes 775 Mbits/sec 0.000 ms 0/2240891 (0%) sender [ 5] 0.00-30.00 sec 2.58 GBytes 738 Mbits/sec 0.016 ms 113111/2240835 (5%) receiver ``` ### Free5GC + OAI_CU + OAI_DU + TM500_RU + Cloud UE(Single) - Uplink testing ==473== Mbits/sec ```c= [ 5] 27.00-28.00 sec 52.1 MBytes 437 Mbits/sec 41985 [ 5] 28.00-29.00 sec 53.7 MBytes 451 Mbits/sec 43353 [ 5] 29.00-30.00 sec 51.0 MBytes 428 Mbits/sec 41164 - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams [ 5] 0.00-30.00 sec 1.65 GBytes 474 Mbits/sec 0.000 ms 0/1366532 (0%) sender [ 5] 0.00-30.04 sec 1.65 GBytes 473 Mbits/sec 0.021 ms 1007/1366532 (0.074%) receiver ``` - Downlink testing ==727== Mbits/sec ```c= [ 5] 26.00-27.00 sec 83.9 MBytes 704 Mbits/sec 0.028 ms 2926/70602 (4.1%) [ 5] 27.00-28.00 sec 91.8 MBytes 770 Mbits/sec 0.022 ms 1734/75787 (2.3%) [ 5] 28.00-29.00 sec 90.3 MBytes 757 Mbits/sec 0.028 ms 3160/75957 (4.2%) [ 5] 29.00-30.00 sec 95.6 MBytes 802 Mbits/sec 0.037 ms 2298/79380 (2.9%) - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams [ 5] 0.00-30.04 sec 2.64 GBytes 756 Mbits/sec 0.000 ms 0/2182584 (0%) sender [ 5] 0.00-30.00 sec 2.54 GBytes 727 Mbits/sec 0.037 ms 85574/2182523 (3.9%) receive ``` ## 9. Issue - [Recode](https://hackmd.io/@Johnson-72/S1lMYF6LJl)

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully