Project

General

Profile

Bug #4800

SI2quater parsing error in BTS_Tests.ttcn

Added by laforge 15 days ago. Updated 2 days ago.

Status:
Resolved
Priority:
High
Assignee:
Category:
-
Target version:
-
Start date:
10/11/2020
Due date:
% Done:

100%

Spec Reference:

Description

21:38:37.344963 bts mtc BTS_Tests.ttcn:3972 Message with id 8 was extracted from the queue of L1CTL.
21:38:37.345042 bts mtc GSM_SystemInformation.ttcn:270 dec_SystemInformationSafeBT(): Stream before decoding: '050607A8A0364AA698D72FF424FEEE0506D5E7FFF02043'O
21:38:37.345840 bts mtc GSM_SystemInformation.ttcn:270 Warning: While RAW-decoding type '@GSM_SystemInformation.SystemInformation': There is not enough bits in
 the buffer to decode type @GSM_RestOctets.UTRAN_GPRSMeasParamsDescOpt.presence.
21:38:37.345977 bts mtc GSM_SystemInformation.ttcn:270 Warning: While RAW-decoding type '@GSM_SystemInformation.SystemInformation': There is not enough bits in
 the buffer to decode type @GSM_RestOctets.SI2quaterAdditions.rel5_presence.
21:38:37.346111 bts mtc GSM_SystemInformation.ttcn:270 dec_SystemInformationSafeBT(): Decoded @GSM_SystemInformation.SystemInformation: { header := { l2_plen :
= { l2_plen := 1, zero_one := '01'B }, skip_indicator := 0, rr_protocol_discriminator := 6, message_type := SYSTEM_INFORMATION_TYPE_2quater (7) }, payload := {
 si2quater := { rest_octets := { ba_ind := '1'B, ba_3g_ind := '0'B, mp_change_mark := '1'B, si2quater_index := 4, si2quater_count := 5, meas_params_desc := { p
resence := '0'B, desc := omit }, gprs := { rt_diff_desc := { presence := '0'B, desc := omit }, bsic_desc := { presence := '0'B, desc := omit }, rep_prio_desc :
= { presence := '0'B, desc := omit }, meas_params_desc := { presence := '0'B, desc := omit } }, nc_meas_params := { presence := '0'B, params := omit }, ext_inf
o := { presence := '0'B, info := omit }, utran_neigh_desc := { presence := '1'B, desc := omit }, utran_meas_params_desc := { presence := '1'B, desc := '0100001
1001000001111000011111111111001111101010100000110000001011110111011111110001001001111010000101111110101111001100010100110010010100110'B }, utran_gprs_meas_para
ms_desc := { presence := ''B, desc := omit }, rel_additions := { rel5_presence := ''B, rel5 := omit } } } } }
21:38:37.346499 bts mtc GSM_SystemInformation.ttcn:271 Failed to decode (RR) System Information: '050607A8A0364AA698D72FF424FEEE0506D5E7FFF02043'O
21:38:37.346791 bts mtc BTS_Tests.ttcn:3975 Ignoring non-RR or invalid SI { header := { msg_type := L1CTL_DATA_IND (3), flags := { padding := '0000000'B, f_don
e := false }, padding := '0000'O }, dl_info := { chan_nr := { u := { ch0 := RSL_CHAN_NR_BCCH (16) }, tn := 0 }, link_id := { c := FACCH_SDCCH (0), na := false,
 prio := SAPI0_PRIO_NORMAL (0), sapi := 0 }, arfcn := { pcs := false, arfcn := 871 }, frame_nr := 206, rx_level := 0, snr := 0, num_biterr := 0, fire_crc := 0 
}, payload := { data_ind := { payload := '050607A8A0364AA698D72FF424FEEE0506D5E7FFF02043'O } } }

I guess either the SI2quater binary the test is feeding to the BTS via RSL is incorrect, or the decoder has a bug. Either way, the SI2quater related tests fail, which is not good.


Related issues

Related to Cellular Network Infrastructure - Bug #4662: ttcn3-bts-test: both TC_si_sched_13_2bis_2ter_2quater and TC_si_sched_2quater are brokenResolved07/11/2020

History

#1 Updated by fixeria 15 days ago

  • Related to Bug #4662: ttcn3-bts-test: both TC_si_sched_13_2bis_2ter_2quater and TC_si_sched_2quater are broken added

#2 Updated by fixeria 15 days ago

There is not enough bits in the buffer to decode type @GSM_RestOctets.UTRAN_GPRSMeasParamsDescOpt.presence.

AFAIR, the UTRAN part of the Rest Octets is incomplete because the specs. define a very tricky encoding, that was impossible to describe using TITAN's RAW codec. I'll have a closer look soon.

#3 Updated by laforge 15 days ago

On Sun, Oct 11, 2020 at 08:21:04PM +0000, fixeria [REDMINE] wrote:

AFAIR, the UTRAN part of the Rest Octets is incomplete because the specs. define a very tricky encoding, that was impossible to describe using TITAN's RAW codec. I'll have a closer look soon.

well, then we simply don't decode that part and leave some bitstring at the end of our definition. This way, the decoder will not fail, and the testcase then have to perform binary matching of that bitstring.

#4 Updated by fixeria 3 days ago

  • Status changed from New to Feedback
  • % Done changed from 0 to 100

well, then we simply don't decode that part and leave some bitstring at the end of our definition.

This is exactly what we do in our Rest Octets definitions: all unimplemented IEs have a flexible bitstring at the end. However, this does not help in situations where an incomplete record definition is a repeated IE (CSN.1 recursion): the TITAN's RAW decoder never finds the terminating bit and throws an exception when the last bit is reached.

This way, the decoder will not fail, and the testcase then have to perform binary matching of that bitstring.

I found a simpler solution: use different SI2quater message samples containing E-UTRAN Parameters Description instead. These test cases are not supposed to verify parsing of the SI messages, they check the scheduling. While the E-UTRAN Parameters is exactly what our SI2quater Rest Octets definitions cover the most.

https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/20883 BTS_Tests: fix both TC_si_sched[_13_2bis_2ter]_2quater

This change makes both test cases pass on my machine.

#5 Updated by fixeria 2 days ago

  • Status changed from Feedback to Resolved

Merged.

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 48.8 MB)