TESTING_GNB_W_COTS_UE.md 7.23 KB
Newer Older
Remi Hardy's avatar
Remi Hardy committed
1 2
DISCLAIMER : This page is under complete review and update, thanks for your patience

Remi Hardy's avatar
Remi Hardy committed
3 4 5 6 7 8 9
## Configuration Overview:

* Non Standalone (NSA) configuration  : initial Control Plane established between UE and RAN eNB, then User Plane established between UE and gNB, Core network is 4G based supporting rel 15

* Commercial UE: Oppo Reno 5G
* OAI Software Defined gNB and eNB
* eNB RF front end: USRP (ETTUS) B200 Mini or B210
Remi Hardy's avatar
Remi Hardy committed
10
* gNB RF front end: USRP (ETTUS) B200 Mini or B210 (N310 will be needed for MIMO and wider BW's)
Remi Hardy's avatar
Remi Hardy committed
11 12 13 14 15 16 17 18 19 20 21
* 5G TDD duplexing mode
* 5G FR1 Band n78 (3.5 GHz)
* BW: 40MHz
* Antenna scheme: SISO

## SW Repository / Branch

https://gitlab.eurecom.fr/oai/openairinterface5g/tree/develop

## Architecture Setup

Remi Hardy's avatar
Remi Hardy committed
22
The scheme below depicts our typical setup:
Remi Hardy's avatar
Remi Hardy committed
23

Remi Hardy's avatar
Remi Hardy committed
24
![image info](./testing_gnb_w_cots_ue_resources/oai_fr1_setup.jpg)
Remi Hardy's avatar
Remi Hardy committed
25

Remi Hardy's avatar
Remi Hardy committed
26
![image info](./testing_gnb_w_cots_ue_resources/oai_fr1_lab.jpg)
Remi Hardy's avatar
Remi Hardy committed
27

Remi Hardy's avatar
Remi Hardy committed
28
## Build / Install
Remi Hardy's avatar
Remi Hardy committed
29 30 31 32

General guidelines for building :
See https://gitlab.eurecom.fr/oai/openairinterface5g/blob/develop/doc/BUILD.md#building-ues-enodeb-and-gnodeb-executables

Remi Hardy's avatar
Remi Hardy committed
33
- **EPC**
Remi Hardy's avatar
Remi Hardy committed
34 35 36 37

for reference:
https://github.com/OPENAIRINTERFACE/openair-epc-fed/blob/master-documentation/docs/DEPLOY_HOME.md

Remi Hardy's avatar
Remi Hardy committed
38

Remi Hardy's avatar
Remi Hardy committed
39

Remi Hardy's avatar
Remi Hardy committed
40
- **eNB**
Remi Hardy's avatar
Remi Hardy committed
41 42

```
Remi Hardy's avatar
Remi Hardy committed
43
sudo 
Remi Hardy's avatar
Remi Hardy committed
44 45
```

Remi Hardy's avatar
Remi Hardy committed
46
- **gNB**
Remi Hardy's avatar
Remi Hardy committed
47 48

```
Remi Hardy's avatar
Remi Hardy committed
49
sudo 
Remi Hardy's avatar
Remi Hardy committed
50 51
```

Remi Hardy's avatar
Remi Hardy committed
52
## Configuration Files
Remi Hardy's avatar
Remi Hardy committed
53

Remi Hardy's avatar
Remi Hardy committed
54 55
Each component (EPC, eNB, gNB) has its own configuration file.  
These config files are passed as arguments of the run command line, using the option -O \<conf file\>
Remi Hardy's avatar
Remi Hardy committed
56

Remi Hardy's avatar
Remi Hardy committed
57 58
Some config examples can be found in the following folder:  
https://gitlab.eurecom.fr/oai/openairinterface5g/-/tree/develop/targets/PROJECTS/GENERIC-LTE-EPC/CONF
Remi Hardy's avatar
Remi Hardy committed
59

Remi Hardy's avatar
Remi Hardy committed
60
These files have to be updated manually to set the IP addresses and frequency.  
Remi Hardy's avatar
Remi Hardy committed
61

Remi Hardy's avatar
Remi Hardy committed
62 63 64 65 66 67 68 69 70 71
1- In the **eNB configuration file** :
- look for MME IP address, and update the **ipv4 field** with the IP address of the **EPC** server
```
    ////////// MME parameters:
    mme_ip_address      = ( { ipv4       = "**YOUR_EPC_IP_ADDR**";
                              ipv6       = "192:168:30::17";
                              active     = "yes";
                              preference = "ipv4";
                            }
                          );
Remi Hardy's avatar
Remi Hardy committed
72 73

```
Remi Hardy's avatar
Remi Hardy committed
74 75

- look for S1 IP address, and update the **3 fields below** with the IP address of the **eNB** server  
Remi Hardy's avatar
Remi Hardy committed
76
```
Remi Hardy's avatar
Remi Hardy committed
77 78 79 80 81 82 83 84 85 86
    NETWORK_INTERFACES :
    {
        ENB_INTERFACE_NAME_FOR_S1_MME            = "eth0";
        ENB_IPV4_ADDRESS_FOR_S1_MME              = "**YOUR_ENB_IP_ADDR**";
        ENB_INTERFACE_NAME_FOR_S1U               = "eth0";
        ENB_IPV4_ADDRESS_FOR_S1U                 = "**YOUR_ENB_IP_ADDR**";
        ENB_PORT_FOR_S1U                         = 2152; # Spec 2152
        ENB_IPV4_ADDRESS_FOR_X2C                 = "**YOUR_ENB_IP_ADDR**";
        ENB_PORT_FOR_X2C                         = 36422; # Spec 36422
    };
Remi Hardy's avatar
Remi Hardy committed
87

Remi Hardy's avatar
Remi Hardy committed
88
```
Remi Hardy's avatar
Remi Hardy committed
89

Remi Hardy's avatar
Remi Hardy committed
90 91 92 93 94 95 96 97 98 99 100 101
2- In the **gNB configuration file** :
- look for MME IP address, and update the **ipv4 field** with the IP address of the **EPC** server
```
    ////////// MME parameters:
    mme_ip_address      = ( { ipv4       = "**YOUR_EPC_IP_ADDR**";
                              ipv6       = "192:168:30::17";
                              active     = "yes";
                              preference = "ipv4";
                            }
                          );
```
- look for X2 IP address, and update the **4 fields** with the IP address of the **eNB** server (notice : even if -in principle- S1 MME is not required for gNB setting)
Remi Hardy's avatar
Remi Hardy committed
102
```
Remi Hardy's avatar
Remi Hardy committed
103

Remi Hardy's avatar
Remi Hardy committed
104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
    ///X2
    enable_x2 = "yes";
    t_reloc_prep      = 1000;      /* unit: millisecond */
    tx2_reloc_overall = 2000;      /* unit: millisecond */
    target_enb_x2_ip_address      = (
                                     { ipv4       = "**YOUR_ENB_IP_ADDR**";
                                       ipv6       = "192:168:30::17";
                                       preference = "ipv4";
                                     }
                                    );

    NETWORK_INTERFACES :
    {

        GNB_INTERFACE_NAME_FOR_S1_MME            = "eth0";
        GNB_IPV4_ADDRESS_FOR_S1_MME              = "**YOUR_ENB_IP_ADDR**";
        GNB_INTERFACE_NAME_FOR_S1U               = "eth0";
        GNB_IPV4_ADDRESS_FOR_S1U                 = "**YOUR_ENB_IP_ADDR**";
        GNB_PORT_FOR_S1U                         = 2152; # Spec 2152
        GNB_IPV4_ADDRESS_FOR_X2C                 = "**YOUR_ENB_IP_ADDR**";
        GNB_PORT_FOR_X2C                         = 36422; # Spec 36422
    };

    
Remi Hardy's avatar
Remi Hardy committed
128 129 130 131
```



Remi Hardy's avatar
Remi Hardy committed
132
3- The frequency setting requires a manual update in the .C and in the gNB conf file:
Remi Hardy's avatar
Remi Hardy committed
133 134


Remi Hardy's avatar
Remi Hardy committed
135 136 137 138 139 140 141
In the C file **openair2/RRC/LTE/rrc_eNB.c:3217**  
set the nrarfcn to the same value as absoluteFrequencySSB in the **gNB config file**, that is **641272** in the example below 

C file :
```
MeasObj2->measObject.choice.measObjectNR_r15.carrierFreq_r15 =641272;
```
Remi Hardy's avatar
Remi Hardy committed
142

Remi Hardy's avatar
Remi Hardy committed
143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174
gNB config file :

```
    # absoluteFrequencySSB is the central frequency of SSB 
    absoluteFrequencySSB                                          = 641272; 
    dl_frequencyBand                                                 = 78;
    # the carrier frequency is assumed to be in the middle of the carrier, i.e. dl_absoluteFrequencyPointA_kHz + dl_carrierBandwidth*12*SCS_kHz/2
    dl_absoluteFrequencyPointA                                       = 640000;
    #scs-SpecificCarrierList
    dl_offstToCarrier                                              = 0;
    # subcarrierSpacing
    # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120  
    dl_subcarrierSpacing                                           = 1;
    dl_carrierBandwidth                                            = 106;
```


## Run / Test


- **EPC** (on EPC host):

for reference:
https://github.com/OPENAIRINTERFACE/openair-epc-fed/blob/master-documentation/docs/DEPLOY_HOME.md



- **eNB** (on the eNB host):

```
~/openairinterface5g/cmake_targets/ran_build/build$ sudo ./lte-softmodem -O ../../../targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210.conf (-E)
```
Remi Hardy's avatar
Remi Hardy committed
175 176


Remi Hardy's avatar
Remi Hardy committed
177
- **gNB** (on the gNB host)
Remi Hardy's avatar
Remi Hardy committed
178

Remi Hardy's avatar
Remi Hardy committed
179
```
Remi Hardy's avatar
Remi Hardy committed
180
~/openairinterface5g/cmake_targets/ran_build/build$ sudo ./nr-softmodem -O ../../../targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpn300.conf (-E)
Remi Hardy's avatar
Remi Hardy committed
181
```
Remi Hardy's avatar
Remi Hardy committed
182 183


Remi Hardy's avatar
Remi Hardy committed
184 185
## Test Case

Remi Hardy's avatar
Remi Hardy committed
186
Test case description  : UE attachement
Remi Hardy's avatar
Remi Hardy committed
187 188 189

## Expected Logs to check

Remi Hardy's avatar
Remi Hardy committed
190
what logs and where to check, to ensure that your setup works fine (or not ...)
Remi Hardy's avatar
Remi Hardy committed
191 192 193

## Required traces for debug

Remi Hardy's avatar
Remi Hardy committed
194
What info/traces/logs are needed for us to support the debug
Remi Hardy's avatar
Remi Hardy committed
195 196

## Status of the interoperability
Remi Hardy's avatar
Remi Hardy committed
197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222

The following parts have been validated with FR1 COTS UE:

- Phone accepts the configurtion provided by OAI eNB:  
    this validates RRC and X2AP  

- Successful Random Access Procedure:  
    PRACH is correctly decoded at gNB  
    Phone correctly receives and decodes msg2 (NR PDCCH Format 1_0 and NR PDSCH)  
    msg3  is transmitted to gNB according to the configuration sent in msg2, and received correctly at gNB    

- Successful path switch of user plane traffic from 4G to 5G cell (E-RAB modification message):  
   this validates S1AP  

- Downlink traffic:  
    PDCCH DCI format 1_1 and correponding PDSCH are decoded correctlyby the phone  
    ACK/NACK (PUCCH format 0) are successfully received at gNB  

- On going:  
    validation of HARQ procedures  
    Integration with higher layers to replace dummy data with real traffic  
    
- Known limitations as of May 2020:  
    only dummy DL traffic  
    no UL traffic  
    no end-to-end traffic possible  
Remi Hardy's avatar
Remi Hardy committed
223 224