openaicellular / oaic

Core software for Open AI Cellular
https://openaicellular.github.io/oaic/
GNU General Public License v3.0
65 stars 23 forks source link

Issues with the srsRAN nexRAN Running Procedure: unrecognised option '--slicer.enable=1' #86

Closed mdalgitsis closed 1 year ago

mdalgitsis commented 1 year ago

Hello all,

I am trying to deploy the NexRAN xAPP and I am following the guidelines of https://github.com/openaicellular/oaic/blob/master/docs/source/nextranslicing.rst

In the srsRAN nexRAN Running Procedure part when I run the command:

sudo srsenb \ --enb.n_prb=15 --enb.name=enb1 --enb.enb_id=0x19B --rf.device_name=zmq \ --rf.device_args="fail_on_disconnect=true,id=enb,base_srate=23.04e6,tx_port=tcp://*:2000,rx_port=tcp://localhost:2001" \ --ric.agent.remote_ipv4_addr=${E2TERM_SCTP} --log.all_level=warn --ric.agent.log_level=debug --log.filename=stdout \ --slicer.enable=1 --slicer.workshare=0

I receive an unrecognised option '--slicer.enable=1' message.

Steps to reproduce the error:

  1. I deployed the k8s cluster with RT-RIC and KPIMON xAPP
  2. Install srsRAN with E2 Agent Installation Guide (https://openaicellular.github.io/oaic/srsRAN_installation.html)
  3. RUN the SRSRAN EPC (sudo srsepc)
  4. RUN the SRSRAN gNB with E2 agent ( sudo srsenb --enb.n_prb=15 --enb.name=enb1 --enb.enb_id=0x19B --rf.device_name=zmq --rf.device_args="fail_on_disconnect=true,id=enb,base_srate=23.04e6,tx_port=tcp://*:2000,rx_port=tcp://localhost:2001" --ric.agent.remote_ipv4_addr=${E2TERM_SCTP} --log.all_level=warn --ric.agent.log_level=debug --log.filename=stdout --slicer.enable=1 --slicer.workshare=0 )

Then in the https://github.com/openaicellular/srsRAN-e2/blob/eee2bbf6078b0e4987ea086be1a45e4646f1e3e1/CMakeLists.txt#L111 file the Options related to NexRAN are OFF. After enabling them and compiling again the SNSRAN, I received the following error:

Scanning dependencies of target erab_setup_test
[100%] Building CXX object srsenb/test/rrc/CMakeFiles/erab_setup_test.dir/erab_setup_test.cc.o
[100%] Building CXX object srsenb/src/CMakeFiles/srsenb.dir/enb.cc.o
[100%] Linking CXX executable erab_setup_test
[100%] Linking CXX executable rrc_meascfg_test
/usr/bin/ld: ../../src/stack/rrc/libsrsenb_rrc.a(rrc_ue.cc.o): in function `srsenb::rrc::ue::handle_rrc_con_setup_complete(asn1::rrc::rrc_conn_setup_complete_s*, std::unique_ptr<srsran::byte_buffer_t, std::default_delete<srsran::byte_buffer_t> >)':
/home/fog_user/oaic/srsRAN-e2/srsenb/src/stack/rrc/rrc_ue.cc:686: undefined reference to `liblte_mme_unpack_eps_mobile_id_ie(unsigned char**, LIBLTE_MME_EPS_MOBILE_ID_STRUCT*)'
/usr/bin/ld: ../../src/stack/rrc/libsrsenb_rrc.a(rrc_ue.cc.o): in function `srsenb::rrc::ue::send_connection_reconf(std::unique_ptr<srsran::byte_buffer_t, std::default_delete<srsran::byte_buffer_t> >, bool, srsran::span<unsigned char const>)':
/home/fog_user/oaic/srsRAN-e2/srsenb/src/stack/rrc/rrc_ue.cc:1058: undefined reference to `liblte_mme_unpack_eps_attach_result_ie(unsigned char**, unsigned char, unsigned char*)'
/usr/bin/ld: /home/fog_user/oaic/srsRAN-e2/srsenb/src/stack/rrc/rrc_ue.cc:1063: undefined reference to `liblte_mme_unpack_gprs_timer_ie(unsigned char**, LIBLTE_MME_GPRS_TIMER_STRUCT*)'
/usr/bin/ld: /home/fog_user/oaic/srsRAN-e2/srsenb/src/stack/rrc/rrc_ue.cc:1064: undefined reference to `liblte_mme_unpack_tracking_area_identity_list_ie(unsigned char**, LIBLTE_MME_TRACKING_AREA_IDENTITY_LIST_STRUCT*)'
/usr/bin/ld: /home/fog_user/oaic/srsRAN-e2/srsenb/src/stack/rrc/rrc_ue.cc:1065: undefined reference to `liblte_mme_unpack_esm_message_container_ie(unsigned char**, LIBLTE_BYTE_MSG_STRUCT*)'
/usr/bin/ld: /home/fog_user/oaic/srsRAN-e2/srsenb/src/stack/rrc/rrc_ue.cc:1070: undefined reference to `liblte_mme_unpack_eps_mobile_id_ie(unsigned char**, LIBLTE_MME_EPS_MOBILE_ID_STRUCT*)'
/usr/bin/ld: ../../src/stack/rrc/libsrsenb_rrc.a(rrc_ue.cc.o): in function `srsenb::rrc::ue::parse_ul_dcch(unsigned int, std::unique_ptr<srsran::byte_buffer_t, std::default_delete<srsran::byte_buffer_t> >)':
/home/fog_user/oaic/srsRAN-e2/srsenb/src/stack/rrc/rrc_ue.cc:443: undefined reference to `liblte_mme_unpack_eps_mobile_id_ie(unsigned char**, LIBLTE_MME_EPS_MOBILE_ID_STRUCT*)'
/usr/bin/ld: /home/fog_user/oaic/srsRAN-e2/srsenb/src/stack/rrc/rrc_ue.cc:417: undefined reference to `liblte_mme_unpack_mobile_id_ie(unsigned char**, LIBLTE_MME_MOBILE_ID_STRUCT*)'
collect2: error: ld returned 1 exit status
make[2]: *** [srsenb/test/rrc/CMakeFiles/erab_setup_test.dir/build.make:101: srsenb/test/rrc/erab_setup_test] Error 1
make[1]: *** [CMakeFiles/Makefile2:13203: srsenb/test/rrc/CMakeFiles/erab_setup_test.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
/usr/bin/ld: ../../src/stack/rrc/libsrsenb_rrc.a(rrc_ue.cc.o): in function `srsenb::rrc::ue::handle_rrc_con_setup_complete(asn1::rrc::rrc_conn_setup_complete_s*, std::unique_ptr<srsran::byte_buffer_t, std::default_delete<srsran::byte_buffer_t> >)':
/home/fog_user/oaic/srsRAN-e2/srsenb/src/stack/rrc/rrc_ue.cc:686: undefined reference to `liblte_mme_unpack_eps_mobile_id_ie(unsigned char**, LIBLTE_MME_EPS_MOBILE_ID_STRUCT*)'
/usr/bin/ld: ../../src/stack/rrc/libsrsenb_rrc.a(rrc_ue.cc.o): in function `srsenb::rrc::ue::send_connection_reconf(std::unique_ptr<srsran::byte_buffer_t, std::default_delete<srsran::byte_buffer_t> >, bool, srsran::span<unsigned char const>)':
/home/fog_user/oaic/srsRAN-e2/srsenb/src/stack/rrc/rrc_ue.cc:1058: undefined reference to `liblte_mme_unpack_eps_attach_result_ie(unsigned char**, unsigned char, unsigned char*)'
/usr/bin/ld: /home/fog_user/oaic/srsRAN-e2/srsenb/src/stack/rrc/rrc_ue.cc:1063: undefined reference to `liblte_mme_unpack_gprs_timer_ie(unsigned char**, LIBLTE_MME_GPRS_TIMER_STRUCT*)'
/usr/bin/ld: /home/fog_user/oaic/srsRAN-e2/srsenb/src/stack/rrc/rrc_ue.cc:1064: undefined reference to `liblte_mme_unpack_tracking_area_identity_list_ie(unsigned char**, LIBLTE_MME_TRACKING_AREA_IDENTITY_LIST_STRUCT*)'
/usr/bin/ld: /home/fog_user/oaic/srsRAN-e2/srsenb/src/stack/rrc/rrc_ue.cc:1065: undefined reference to `liblte_mme_unpack_esm_message_container_ie(unsigned char**, LIBLTE_BYTE_MSG_STRUCT*)'
/usr/bin/ld: /home/fog_user/oaic/srsRAN-e2/srsenb/src/stack/rrc/rrc_ue.cc:1070: undefined reference to `liblte_mme_unpack_eps_mobile_id_ie(unsigned char**, LIBLTE_MME_EPS_MOBILE_ID_STRUCT*)'
/usr/bin/ld: ../../src/stack/rrc/libsrsenb_rrc.a(rrc_ue.cc.o): in function `srsenb::rrc::ue::parse_ul_dcch(unsigned int, std::unique_ptr<srsran::byte_buffer_t, std::default_delete<srsran::byte_buffer_t> >)':
/home/fog_user/oaic/srsRAN-e2/srsenb/src/stack/rrc/rrc_ue.cc:443: undefined reference to `liblte_mme_unpack_eps_mobile_id_ie(unsigned char**, LIBLTE_MME_EPS_MOBILE_ID_STRUCT*)'
/usr/bin/ld: /home/fog_user/oaic/srsRAN-e2/srsenb/src/stack/rrc/rrc_ue.cc:417: undefined reference to `liblte_mme_unpack_mobile_id_ie(unsigned char**, LIBLTE_MME_MOBILE_ID_STRUCT*)'
collect2: error: ld returned 1 exit status
make[2]: *** [srsenb/test/rrc/CMakeFiles/rrc_meascfg_test.dir/build.make:100: srsenb/test/rrc/rrc_meascfg_test] Error 1
make[1]: *** [CMakeFiles/Makefile2:13128: srsenb/test/rrc/CMakeFiles/rrc_meascfg_test.dir/all] Error 2
[100%] Building CXX object srsenb/src/CMakeFiles/srsenb.dir/metrics_stdout.cc.o
[100%] Building CXX object srsenb/src/CMakeFiles/srsenb.dir/metrics_csv.cc.o
[100%] Building CXX object srsenb/src/CMakeFiles/srsenb.dir/metrics_json.cc.o
[100%] Linking CXX executable rrc_mobility_test

Despite the errors, I continued with the guidelines and run snsrsepc and snsenb. After modifying the snsenb command with 50 physical resource blocks and adding Tx/Rx port1 the command works and now the flag "slicer" was recognized.

I also onboarded and deployed the NexRAN xAPP. The curl requests work, however the NexRAN xAPP doesn't seem to interact with the RAN scheduler:

curl -i -X POST -H "Content-type: application/json" -d '{"type":"eNB","id":411,"mcc":"001","mnc":"01"}' http://${NEXRAN_XAPP}:8000/v1/nodebs ; echo ; echo
HTTP/1.1 201 Created
Connection: Close
Content-Length: 137

{"name":"enB_macro_001_001_0019b0","type":"eNB","id":411,"id_len":20,"status":{"connected":false},"config":{"total_prbs":-1},"slices":[]}

Any ideas on how to solve the compilation error above?

joshuamoorexyz commented 1 year ago

Currently the nexran app does not work. This seems to be an issue with the northbound interface's service port not opening when deploying the xapp. Once i fix this issue, i plan to release updated instructions on running this xapp.