free5G / free5GRAN

free5GRAN is an open-source 5G RAN stack. The current version includes a receiver which decodes MIB & SIB1 data. It also acts as a cell scanner. free5GRAN works in SA mode.
Apache License 2.0
96 stars 40 forks source link

[Help wanted] BCCH DL-SCH decoding failure using asn1c #7

Closed adejavel closed 3 years ago

adejavel commented 3 years ago

Describe the bug The current version of the code extracts the bits value of the SIB1 object but the library used to parse the bit sequence, which is https://github.com/vlm/asn1c is failing to parse the sequence. We are investigating to understand where is it coming from (misuse of the lib or library bug), and any contribution for solving this issue is welcomed. However, https://asn1.io/asn1playground/ can decode the bits sequence using the asn file NR-RRC-Definitions.txt so the ASN model and extracted bits sequence seems to be correct. The code part related to SIB1 parsing is from this line to this line

To Reproduce SIB1 decoding. The output SIB1 object is not correct.

gmg2719 commented 3 years ago

I am not very good at asn1c . But may be the following information may help. At OAI5G building system, it fetches the specific branch of asn1c, not the latest branch. the following is the function of install asn1c. It seems just use a very specific branch(git checkout f12568d617dbf48497588f8e227d70388fa217c9). you may try it , see if it works.

install_asn1c_from_source(){ asn1_install_log=$OPENAIR_DIR/cmake_targets/log/asn1c_install_log.txt echo_info "\nInstalling ASN1. The log file for ASN1 installation is here: $asn1_install_log " ( $SUDO rm -rf /tmp/asn1c

GIT_SSL_NO_VERIFY=true git clone https://gitlab.eurecom.fr/oai/asn1c.git /tmp/asn1c

git clone https://gitlab.eurecom.fr/oai/asn1c.git /tmp/asn1c
cd /tmp/asn1c
# better to use a given commit than a branch in case the branch
# is updated and requires modifications in the source of OAI
#git checkout velichkov_s1ap_plus_option_group
git checkout f12568d617dbf48497588f8e227d70388fa217c9
autoreconf -iv
./configure
make -j`nproc`
$SUDO make install
cd -
$SUDO ldconfig
) > $asn1_install_log 2>&1
adejavel commented 3 years ago

Hello, Thanks for this very good suggestion. We gave it a try and it is indeed working ! Best regards.

Commit 1f781ddc88647375ace065f33edb1842736082bf closes #7