| 43 | |
| 44 | === Tutorial Execution === |
| 45 | [[CollapsibleStart(Check the USRPs)]] |
| 46 | * Upon logging into the nodes, run eth_config.sh script on both the nodes. This sets up the 10G data interfaces DATA1, DATA2. After running the script, you should see that the data interfaces have the appropriate IP addresses assigned, as per this [https://wiki.cosmos-lab.org/wiki/Architecture/Domains/cosmos_sb1#IPAddressAssignment table]. The nodes should then be able to access the USRP N310s sdr1-s1-lg1 and sdr1-md1 which can be checked by running uhd_find_devices. |
| 47 | |
| 48 | {{{#!td |
| 49 | {{{#!shell |
| 50 | root@srv1-lg1:~# ./eth_config.sh |
| 51 | }}} |
| 52 | |
| 53 | {{{#!shell |
| 54 | root@srv1-lg1:~# ifconfig DATA1 |
| 55 | DATA1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 9000 |
| 56 | inet 10.38.1.1 netmask 255.255.0.0 broadcast 10.38.255.255 |
| 57 | inet6 fe80::1e34:daff:fe42:c3c prefixlen 64 scopeid 0x20<link> |
| 58 | ether 1c:34:da:42:0c:3c txqueuelen 1000 (Ethernet) |
| 59 | RX packets 61195963 bytes 199994153268 (199.9 GB) |
| 60 | RX errors 0 dropped 6680 overruns 0 frame 0 |
| 61 | TX packets 58734853 bytes 190912589303 (190.9 GB) |
| 62 | TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 |
| 63 | |
| 64 | |
| 65 | root@srv1-lg1:~# ifconfig DATA2 |
| 66 | DATA2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 9000 |
| 67 | inet 10.39.1.1 netmask 255.255.0.0 broadcast 10.39.255.255 |
| 68 | inet6 fe80::1e34:daff:fe42:c3d prefixlen 64 scopeid 0x20<link> |
| 69 | ether 1c:34:da:42:0c:3d txqueuelen 1000 (Ethernet) |
| 70 | RX packets 7378 bytes 651944 (651.9 KB) |
| 71 | RX errors 0 dropped 6682 overruns 0 frame 0 |
| 72 | TX packets 282 bytes 82239 (82.2 KB) |
| 73 | TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 |
| 74 | |
| 75 | }}} |
| 76 | }}} |
| 77 | {{{#!td |
| 78 | {{{#!shell |
| 79 | root@srv1-lg1:~# uhd_find_devices |
| 80 | [INFO] [UHD] linux; GNU C++ version 7.5.0; Boost_106501; UHD_3.15.0.0-release |
| 81 | -------------------------------------------------- |
| 82 | -- UHD Device 0 |
| 83 | -------------------------------------------------- |
| 84 | Device Address: |
| 85 | serial: 3176DF5 |
| 86 | addr: 10.38.2.1 |
| 87 | claimed: False |
| 88 | mgmt_addr: 10.37.2.1 |
| 89 | mgmt_addr: 10.38.2.1 |
| 90 | mgmt_addr: 10.39.2.1 |
| 91 | product: n310 |
| 92 | type: n3xx |
| 93 | -------------------------------------------------- |
| 94 | -- UHD Device 1 |
| 95 | -------------------------------------------------- |
| 96 | Device Address: |
| 97 | serial: 3196937 |
| 98 | addr: 10.38.3.1 |
| 99 | claimed: False |
| 100 | mgmt_addr: 10.37.3.1 |
| 101 | mgmt_addr: 10.38.3.1 |
| 102 | mgmt_addr: 10.39.3.1 |
| 103 | product: n310 |
| 104 | type: n3xx |
| 105 | |
| 106 | }}} |
| 107 | }}} |
| 108 | [[CollapsibleEnd]] |
| 109 | |
| 110 | [[CollapsibleStart(Run MME)]] |
| 111 | * We are going to run the MME, gNodeB on srv1-lg1 and the UE simulator on srv2-lg1. |
| 112 | * Run the Amarisoft MME on srv1-lg1. Run lte_init.sh to setup IP forwarding so that the UEs can connect to the Internet, once they establish a connection with the base station. |
| 113 | This network uses PLMN 310014 (USA Test network) as configured in mme.cfg. |
| 114 | {{{#!shell |
| 115 | root@srv1-lg1:~# cd /opt/amarisoft/ltemme-linux-2021-09-18 |
| 116 | root@srv1-lg1:/opt/amarisoft/ltemme-linux-2021-09-18# ./lte_init.sh |
| 117 | Select CTRL default interface |
| 118 | root@srv1-lg1:/opt/amarisoft/ltemme-linux-2021-09-18# ./ltemme config/mme.cfg |
| 119 | Core version 2021-09-18, Copyright (C) 2012-2021 Amarisoft |
| 120 | This software is licensed to Rutgers University (The State University of New Jersey). |
| 121 | License server: license.orbit-lab.org (0b-b4-46-dc-2f-83-58-cb) |
| 122 | Support and software update available until 2022-08-18. |
| 123 | |
| 124 | (mme) |
| 125 | |
| 126 | }}} |
| 127 | * Type 'help' at the prompt to explore the available mme commands. |
| 128 | [[CollapsibleEnd]] |
| 129 | |
| 130 | [[CollapsibleStart(Run eNodeB/gNodeB)]] |
| 131 | * Run Amarisoft 5G NR Stand alone gNodeB as shown below by passing the gNodeB configuration file as an argument. The configuration file defines SDR(USRP N310) address, operating band, bandwidth and other parameters. To run 4G LTE eNodeB, please use enb-n310.cfg |
| 132 | {{{#!shell |
| 133 | root@srv1-lg1:~# cd /opt/amarisoft/lteenb-linux-2021-09-18 |
| 134 | root@srv1-lg1:/opt/amarisoft/lteenb-linux-2021-09-18# ./lteenb config/gnb-sa-n310.cfg |
| 135 | Base Station version 2021-09-18, Copyright (C) 2012-2021 Amarisoft |
| 136 | This software is licensed to Rutgers University (The State University of New Jersey). |
| 137 | License server: license.orbit-lab.org (0b-b4-46-dc-2f-83-58-cb) |
| 138 | Support and software update available until 2022-08-18. |
| 139 | |
| 140 | [INFO] [UHD] linux; GNU C++ version 7.5.0; Boost_106501; UHD_3.15.0.0-release |
| 141 | [INFO] [MPMD] Initializing 1 device(s) in parallel with args: mgmt_addr=10.38.2.1,type=n3xx,product=n310,serial=3176DF5,claimed=False,addr=10.38.2.1,master_clock_rate=122.88e6 |
| 142 | [INFO] [MPM.PeriphManager] init() called with device args `product=n310,mgmt_addr=10.38.2.1,time_source=internal,clock_source=internal,master_clock_rate=122.88e6'. |
| 143 | [INFO] [0/Replay_0] Initializing block control (NOC ID: 0x4E91A00000000004) |
| 144 | [INFO] [0/Radio_0] Initializing block control (NOC ID: 0x12AD100000011312) |
| 145 | [INFO] [0/Radio_1] Initializing block control (NOC ID: 0x12AD100000011312) |
| 146 | [INFO] [0/DDC_0] Initializing block control (NOC ID: 0xDDC0000000000000) |
| 147 | [INFO] [0/DDC_1] Initializing block control (NOC ID: 0xDDC0000000000000) |
| 148 | [INFO] [0/DUC_0] Initializing block control (NOC ID: 0xD0C0000000000002) |
| 149 | [INFO] [0/DUC_1] Initializing block control (NOC ID: 0xD0C0000000000002) |
| 150 | [INFO] [0/FIFO_0] Initializing block control (NOC ID: 0xF1F0000000000000) |
| 151 | [INFO] [0/FIFO_1] Initializing block control (NOC ID: 0xF1F0000000000000) |
| 152 | [INFO] [0/FIFO_2] Initializing block control (NOC ID: 0xF1F0000000000000) |
| 153 | [INFO] [0/FIFO_3] Initializing block control (NOC ID: 0xF1F0000000000000) |
| 154 | RF0: sample_rate=30.720 MHz dl_freq=3489.420 MHz ul_freq=3489.420 MHz (band n78) dl_ant=2 ul_ant=1 |
| 155 | (enb) WARNING: The GPS is not locked. If you need time synchronization, you should restart the program when the GPS is locked. |
| 156 | Chan Gain(dB) Freq(MHz) |
| 157 | TX1 35.0 3489.420000 |
| 158 | TX2 35.0 3489.420000 |
| 159 | RX1 40.0 3489.420000 |
| 160 | |
| 161 | (enb) ng |
| 162 | gNB NG connection state: |
| 163 | - server=127.0.1.100:38412 state=setup_done PLMN=310014 |
| 164 | (enb) cell phy |
| 165 | [gnb0012345] PLMN=310014 gNB_ID=0x12345 |
| 166 | --------Global-------- ----------DL---------- ----------UL---------- ----SSB--- |
| 167 | Cell RAT BAND BW P ARFCN ANT NL SCS QAM ARCFN ANT NL SCS QAM ARFCN SCS |
| 168 | 0x001 NR n78 20 0 632628 2 2 30 256 632628 1 1 30 256 632544 30 |
| 169 | (enb) |
| 170 | |
| 171 | }}} |
| 172 | * Type 'help' at the prompt and use commands like 'cell phy' to look at the various parameters of the base station. |
| 173 | |
| 174 | [[CollapsibleEnd]] |
| 175 | |
| 176 | [[CollapsibleStart(Run UE)]] |
| 177 | * Run the Amarisoft MME simulator on srv2-lg1 by passing the configuration file ue-nr-sa-n310.cfg as an argument. To run UE simulator in 4G LTE mode, please use ue-n310.cfg. |
| 178 | |
| 179 | {{{#!shell |
| 180 | root@srv2-lg1:~# cd /opt/amarisoft/lteue-linux-2021-09-18 |
| 181 | root@srv2-lg1:/opt/amarisoft/lteue-linux-2021-09-18# ./lteue config/ue-nr-sa-n310.cfg |
| 182 | LTE UE version 2021-09-18, Copyright (C) 2012-2021 Amarisoft |
| 183 | This software is licensed to Rutgers University (The State University of New Jersey). |
| 184 | License server: license.orbit-lab.org (0b-b4-46-dc-2f-83-58-cb) |
| 185 | Support and software update available until 2022-08-18. |
| 186 | |
| 187 | [INFO] [UHD] linux; GNU C++ version 7.5.0; Boost_106501; UHD_3.15.0.0-release |
| 188 | [INFO] [MPMD] Initializing 1 device(s) in parallel with args: mgmt_addr=10.38.3.1,type=n3xx,product=n310,serial=3196937,claimed=False,addr=10.38.3.1,master_clock_rate=122.88e6 |
| 189 | [INFO] [MPM.PeriphManager] init() called with device args `clock_source=internal,mgmt_addr=10.38.3.1,time_source=internal,master_clock_rate=122.88e6,product=n310'. |
| 190 | [INFO] [0/Replay_0] Initializing block control (NOC ID: 0x4E91A00000000004) |
| 191 | [INFO] [0/Radio_0] Initializing block control (NOC ID: 0x12AD100000011312) |
| 192 | [INFO] [0/Radio_1] Initializing block control (NOC ID: 0x12AD100000011312) |
| 193 | [INFO] [0/DDC_0] Initializing block control (NOC ID: 0xDDC0000000000000) |
| 194 | [INFO] [0/DDC_1] Initializing block control (NOC ID: 0xDDC0000000000000) |
| 195 | [INFO] [0/DUC_0] Initializing block control (NOC ID: 0xD0C0000000000002) |
| 196 | [INFO] [0/DUC_1] Initializing block control (NOC ID: 0xD0C0000000000002) |
| 197 | [INFO] [0/FIFO_0] Initializing block control (NOC ID: 0xF1F0000000000000) |
| 198 | [INFO] [0/FIFO_1] Initializing block control (NOC ID: 0xF1F0000000000000) |
| 199 | [INFO] [0/FIFO_2] Initializing block control (NOC ID: 0xF1F0000000000000) |
| 200 | [INFO] [0/FIFO_3] Initializing block control (NOC ID: 0xF1F0000000000000) |
| 201 | RF0: sample_rate=30.720 MHz dl_freq=3489.420 MHz ul_freq=3489.420 MHz (band n78) dl_ant=2 ul_ant=1 |
| 202 | (ue) WARNING: The GPS is not locked. If you need time synchronization, you should restart the program when the GPS is locked. |
| 203 | Chan Gain(dB) Freq(MHz) |
| 204 | TX1 35.0 3489.420000 |
| 205 | RX1 45.0 3489.420000 |
| 206 | RX2 45.0 3489.420000 |
| 207 | |
| 208 | (ue) ue |
| 209 | # UE_ID CL RNTI RRC_STATE EMM_STATE #ERAB IP_ADDR |
| 210 | 5G 0 1 0 0 offline power off 0 |
| 211 | 5G 1 2 0 0 offline power off 0 |
| 212 | (ue) power_on 1 2 |
| 213 | (ue) ue |
| 214 | # UE_ID CL RNTI RRC_STATE EMM_STATE #ERAB IP_ADDR |
| 215 | 5G 0 1 0 0 idle registered 1 192.168.2.2 |
| 216 | 5G 1 2 0 4602 running registered 1 192.168.2.6 |
| 217 | (ue) |
| 218 | |
| 219 | }}} |
| 220 | * Type 'ue' at the prompt to see the status of the UEs and type 'power_on' to start a UE. The above simulation shows 2 UEs, and the number of UEs is specified UE_COUNT in the configuration file. |
| 221 | * Go back to 'mme' prompt in srv1-lg1 and check the gnb, ue list. |
| 222 | |
| 223 | {{{#!shell |
| 224 | (mme) gnb |
| 225 | PLMN RAN_ID IP:Port #UEctx TACs |
| 226 | 310014 0x12345 127.0.1.1:49526 0 0x64 |
| 227 | (mme) ue |
| 228 | SUPI IMEISV CN M-TMSI/5G-TMSI REG TAC #BEARER IP_ADDR |
| 229 | 001010123456789 0123456700000101 5GC 0x526d3bcc Y 310014. 0x64 1 192.168.2.2 |
| 230 | 001010123456790 0123456700000201 5GC 0xf33020aa Y 310014. 0x64 1 192.168.2.6 |
| 231 | (mme) |
| 232 | |
| 233 | }}} |
| 234 | * The base station (srv1-lg1) can now talk to the UEs via the IP addresses assigned above. |
| 235 | [[CollapsibleEnd]] |