97 lines
4.1 KiB
Markdown
97 lines
4.1 KiB
Markdown
## Running using USRP
|
|
### PNF
|
|
```
|
|
sudo <oai_codebase>/cmake_targets/ran_build/build/nr-softmodem -O <oai_codebase>/targets/PROJECTS/GENERIC-LTE-EPC/CONF/oaiL1.nfapi.usrpx300.conf --pnf
|
|
```
|
|
|
|
### VNF
|
|
```
|
|
sudo <oai_codebase>/cmake_targets/ran_build/build/nr-softmodem -O <oai_codebase>/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band78.tm1.106PRB.nfapi.conf --vnf
|
|
```
|
|
|
|
|
|
## Running using RF-Simulator
|
|
### PNF
|
|
```
|
|
sudo RFSIMULATOR=server <oai_codebase>/cmake_targets/ran_build/build/nr-softmodem -O <oai_codebase>/targets/PROJECTS/GENERIC-LTE-EPC/CONF/oaiL1.nfapi.usrpx300.conf --pnf --parallel-config PARALLEL_SINGLE_THREAD --rfsim
|
|
```
|
|
### VNF
|
|
```
|
|
sudo <oai_codebase>/cmake_targets/ran_build/build/nr-softmodem -O <oai_codebase>/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band78.tm1.106PRB.nfapi.conf --vnf
|
|
```
|
|
|
|
# 20 July 2020
|
|
## Plan
|
|
|
|
### Task-A [packing]
|
|
* Modify `nfapi_p7_message_pack()` in `nfapi_p7.c`
|
|
* In the switch case, change the labels as well as the pack functions:
|
|
* `pack_dl_config_request` becomes `pack_dl_tti_request` [x]
|
|
* `pack_ul_config_request` becomes `pack_ul_tti_request` [x]
|
|
* `pack_hi_dci0_request` becomes `pack_ul_dci_request` [x]
|
|
* `pack_tx_request` becomes `pack_tx_data_request` [x]
|
|
|
|
### Task-B [unpacking]
|
|
* Modify `nfapi_p7_message_unpack()` in `nfapi_p7.c`
|
|
* `unpack_dl_tti_request` [x]
|
|
* `unpack_ul_tti_request` [x]
|
|
* `unpack_ul_dci_request` [x]
|
|
* `unpack_tx_data_request` [x]
|
|
|
|
* Similarly change all the `unpack` functions within the switch-case block.
|
|
|
|
* Modify the behaviour of `check_unpack_length()` for the new `TAGS`
|
|
* this is where the unpack functions are called
|
|
* `dl_tti_request` [x]
|
|
* `ul_tti_request` [x]
|
|
* `ul_dci_request` [x]
|
|
* `tx_data_request` [x]
|
|
* `nfapi_p7_message_unpack()` is called in `pnf_handle_dl_config_request()` in pnf_p7.c, so we need to add
|
|
* `pnf_handle_dl_tti_request` [x]
|
|
* `pnf_handle_ul_tti_request` [x]
|
|
* `pnf_handle_ul_dci_request` [x]
|
|
* `pnf_handle_tx_data_request`[x]
|
|
to handle DL P7 messages at pnf
|
|
* Added allocate and deallocate functions for all P7 DL messages in `pnf_p7.c`
|
|
* Added `is_nr_p7_request_in_window()` fn in `pnf_p7.c` that is called in P7 message handle fns
|
|
|
|
### Task-C
|
|
* Write the `ul_tti` alternative for `nfapi_vnf_p7_ul_config_req()` in `vnf_p7_interface.c` and other such functions.
|
|
* `dl_tti` is present as `nr_dl_config` [x]
|
|
* `ul_tti` [x]
|
|
* `ul_dci` [x]
|
|
* `tx_data` [x]
|
|
|
|
* Resolve the hard-coded areas in source code. [`HIGH-PRIORITY`] [x]
|
|
|
|
* Write the `ul_tti` equivalent for `oai_nfapi_dl_config_req` in `nfapi_vnf.c` and other such functions.
|
|
* `dl_tti` is present as `nr_dl_config` [x]
|
|
* `ul_tti` is present as `oai_nfapi_ul_tti_req()` [x]
|
|
* `ul_dci` is present as `oai_nfapi_ul_dci_req()` [x]
|
|
* `tx_data` is present as `oai_nfapi_tx_data_req()` [x]
|
|
|
|
* Check if `nr_schedule_response()` needs to be upgraded [x]
|
|
* only a couple of `NFAPI_MODE!=VNF_MODE` checks *can be added* before calling the functions to handle PDUs
|
|
* we need to add `NFAPI_MODE!=MONOLITHIC` checks before `oai_nfapi_dl_config_req` and other such fns [x]
|
|
* Sync with the latest stable commit in `develop` branch [`LOW-PRIORITY`]
|
|
* check deviations
|
|
|
|
### Task-D
|
|
* Write `send_mac_slot_indications()` which calls the `slot_indication` in `vnf_p7.c` file [x]
|
|
* Change the `vnf_handle_timing_info()` function that calls p7 message unpack fn and initializes the sfn and slot in `vnf_p7.c` file [x]
|
|
* Change pack and unpack functions `pack_timing_info()` and `unpack_timing_info()` [x]
|
|
* Change `nfapi_timing_info_t` structure to support P7 in NR [x]
|
|
* Change packing functions to support NR P7 procedures. [x]
|
|
|
|
|
|
### Testing
|
|
* Test by running VNF on a terminal and PNF in rfsim parallely
|
|
* If all works fine, move to UE testing.
|
|
* Check if the `FAPI` core functionality is not broken by running gNB in monolithic mode
|
|
* Check whether the code can support latency of 0.5 ms for oai_slot_indication
|
|
|
|
* Testing with a UE
|
|
* Run VNF
|
|
* Run PNF in rfsim
|
|
* Run UE in rfsim
|
|
* This can be done on parallel terminals on the same machine or different machine with the appropriate configuration |