dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-abis/+/31454 )
Change subject: trau_pcu_ericsson: add testvectors for MCS1 and MCS2 ......................................................................
trau_pcu_ericsson: add testvectors for MCS1 and MCS2
Change-Id: I7e7e35930a373c9db74faef24f6c404eb5516278 Related: OS#5198 --- M tests/trau_pcu_ericsson/trau_pcu_ericsson_test.c M tests/trau_pcu_ericsson/trau_pcu_ericsson_test.ok 2 files changed, 178 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/54/31454/1
diff --git a/tests/trau_pcu_ericsson/trau_pcu_ericsson_test.c b/tests/trau_pcu_ericsson/trau_pcu_ericsson_test.c index 6c28269..9e013b6 100644 --- a/tests/trau_pcu_ericsson/trau_pcu_ericsson_test.c +++ b/tests/trau_pcu_ericsson/trau_pcu_ericsson_test.c @@ -1249,6 +1249,112 @@ * the TRAU frame. */ };
+ const ubit_t bits_mcs1[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 1, 1, 0, 0, + 0, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 0, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 0, 0, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 1, + 0, 0, 1, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, 1, 0, + 1, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1, + 1, 0, 0, 0, 0, 0, 1, 0, + 1, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1, + 0, 1, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1, + 0, 1, 1, 0, 0, 0, 1, 1, + 1, 0, 1, 0, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + /* [...] shortened since decode won't access filler bits after + * the TRAU frame. */ + }; + + const ubit_t bits_mcs2[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 1, 1, 0, 0, + 0, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 0, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 0, 0, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 0, + 1, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 0, 1, + 0, 0, 1, 0, 0, 1, 0, 1, + 1, 1, 0, 1, 1, 0, 1, 1, + 0, 1, 0, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 1, 1, 0, + 0, 0, 1, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 1, + 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 1, 0, 0, + 1, 1, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 1, + 0, 1, 0, 1, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 1, 0, 0, 1, + 1, 1, 1, 0, 1, 1, 1, 0, + 1, 1, 0, 1, 1, 0, 1, 1, + 1, 0, 0, 1, 1, 1, 1, 0, + 1, 1, 1, 1, 0, 0, 1, 1, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + /* [...] shortened since decode won't access filler bits after + * the TRAU frame. */ + }; + /* TRAU frame with AB data (noise). */ const ubit_t bits_ab[] = { 0, 0, 0, 0, 0, 0, 0, 0, @@ -1336,6 +1442,40 @@ printf(" ccu_data_ind.u.data_len=%u\n", frame.u.ccu_data_ind.data_len); printf(" ccu_data_ind.data=%s\n", osmo_hexdump_nospc(frame.u.ccu_data_ind.data, frame.u.ccu_data_ind.data_len));
+ printf("\n==> %s (MCS1)\n", __func__); + rc = er_gprs_trau_frame_decode_64k(&frame, bits_mcs1); + OSMO_ASSERT(rc == 0); + OSMO_ASSERT(frame.type == ER_GPRS_TRAU_FT_DATA); + printf(" ccu_data_ind.tav=%02x\n", frame.u.ccu_data_ind.tav); + printf(" ccu_data_ind.dbe=%u\n", frame.u.ccu_data_ind.dbe); + printf(" ccu_data_ind.cs_hdr=%u\n", frame.u.ccu_data_ind.cs_hdr); + printf(" ccu_data_ind.gprs.rx_lev=%u\n", frame.u.ccu_data_ind.rx_lev); + printf(" ccu_data_ind.gprs.est_acc_del_dev=%d\n", frame.u.ccu_data_ind.est_acc_del_dev); + printf(" ccu_data_ind.u.egprs.mean_bep=%u\n", frame.u.ccu_data_ind.u.egprs.mean_bep); + printf(" ccu_data_ind.u.egprs.cv_bep=%u\n", frame.u.ccu_data_ind.u.egprs.cv_bep); + printf(" ccu_data_ind.u.egprs.hdr_good=%u\n", frame.u.ccu_data_ind.u.egprs.hdr_good); + printf(" ccu_data_ind.u.egprs.data_good[0]=%u\n", frame.u.ccu_data_ind.u.egprs.data_good[0]); + printf(" ccu_data_ind.u.egprs.data_good[1]=%u\n", frame.u.ccu_data_ind.u.egprs.data_good[1]); + printf(" ccu_data_ind.u.data_len=%u\n", frame.u.ccu_data_ind.data_len); + printf(" ccu_data_ind.data=%s\n", osmo_hexdump_nospc(frame.u.ccu_data_ind.data, frame.u.ccu_data_ind.data_len)); + + printf("\n==> %s (MCS2)\n", __func__); + rc = er_gprs_trau_frame_decode_64k(&frame, bits_mcs2); + OSMO_ASSERT(rc == 0); + OSMO_ASSERT(frame.type == ER_GPRS_TRAU_FT_DATA); + printf(" ccu_data_ind.tav=%02x\n", frame.u.ccu_data_ind.tav); + printf(" ccu_data_ind.dbe=%u\n", frame.u.ccu_data_ind.dbe); + printf(" ccu_data_ind.cs_hdr=%u\n", frame.u.ccu_data_ind.cs_hdr); + printf(" ccu_data_ind.gprs.rx_lev=%u\n", frame.u.ccu_data_ind.rx_lev); + printf(" ccu_data_ind.gprs.est_acc_del_dev=%d\n", frame.u.ccu_data_ind.est_acc_del_dev); + printf(" ccu_data_ind.u.egprs.mean_bep=%u\n", frame.u.ccu_data_ind.u.egprs.mean_bep); + printf(" ccu_data_ind.u.egprs.cv_bep=%u\n", frame.u.ccu_data_ind.u.egprs.cv_bep); + printf(" ccu_data_ind.u.egprs.hdr_good=%u\n", frame.u.ccu_data_ind.u.egprs.hdr_good); + printf(" ccu_data_ind.u.egprs.data_good[0]=%u\n", frame.u.ccu_data_ind.u.egprs.data_good[0]); + printf(" ccu_data_ind.u.egprs.data_good[1]=%u\n", frame.u.ccu_data_ind.u.egprs.data_good[1]); + printf(" ccu_data_ind.u.data_len=%u\n", frame.u.ccu_data_ind.data_len); + printf(" ccu_data_ind.data=%s\n", osmo_hexdump_nospc(frame.u.ccu_data_ind.data, frame.u.ccu_data_ind.data_len)); + printf("\n==> %s (AB)\n", __func__); rc = er_gprs_trau_frame_decode_64k(&frame, bits_ab); OSMO_ASSERT(rc == 0); diff --git a/tests/trau_pcu_ericsson/trau_pcu_ericsson_test.ok b/tests/trau_pcu_ericsson/trau_pcu_ericsson_test.ok index 3d9666c..d15b0b2 100644 --- a/tests/trau_pcu_ericsson/trau_pcu_ericsson_test.ok +++ b/tests/trau_pcu_ericsson/trau_pcu_ericsson_test.ok @@ -2539,6 +2539,34 @@ ccu_data_ind.u.data_len=34 ccu_data_ind.data=00010449d09d5c5e676f6f676c6503636f6d0000010001881c802b2b2b2b2b2b2b00
+==> er_gprs_trau_frame_decode_64k_FT_DATA_test (MCS1) + ccu_data_ind.tav=00 + ccu_data_ind.dbe=0 + ccu_data_ind.cs_hdr=7 + ccu_data_ind.gprs.rx_lev=63 + ccu_data_ind.gprs.est_acc_del_dev=0 + ccu_data_ind.u.egprs.mean_bep=7 + ccu_data_ind.u.egprs.cv_bep=0 + ccu_data_ind.u.egprs.hdr_good=1 + ccu_data_ind.u.egprs.data_good[0]=1 + ccu_data_ind.u.egprs.data_good[1]=0 + ccu_data_ind.u.data_len=27 + ccu_data_ind.data=041000930020020d00000000060d00000000001a000014001ad701 + +==> er_gprs_trau_frame_decode_64k_FT_DATA_test (MCS2) + ccu_data_ind.tav=00 + ccu_data_ind.dbe=0 + ccu_data_ind.cs_hdr=7 + ccu_data_ind.gprs.rx_lev=63 + ccu_data_ind.gprs.est_acc_del_dev=0 + ccu_data_ind.u.egprs.mean_bep=7 + ccu_data_ind.u.egprs.cv_bep=0 + ccu_data_ind.u.egprs.hdr_good=1 + ccu_data_ind.u.egprs.data_good[0]=1 + ccu_data_ind.u.egprs.data_good[1]=0 + ccu_data_ind.u.data_len=33 + ccu_data_ind.data=142080926e8b8051011210101010c44c016a0060de6de73d030000020000000000 + ==> er_gprs_trau_frame_decode_64k_FT_DATA_test (AB) ccu_data_ind.tav=01 ccu_data_ind.dbe=0