fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/32793 )
Change subject: BTS_Tests: f_rtpem_activate(): pad TCH/FS frames with 'FF'O ......................................................................
BTS_Tests: f_rtpem_activate(): pad TCH/FS frames with 'FF'O
Since recently [1], osmo-bts started to preen incoming FR and EFR RTP frames for SID errors. In other words, if an incoming frame is a SID frame, osmo-bts may modify some bits causing a mismatch on our side.
Use 'FF'O as padding pattern for TCH/FS to prevent pseudo-random frames being treated as SID and modified by osmo-bts. Keep using '00'O for other modes, because only TCH/FS specific SID frames must have specific bit positions set to '0'B; for TCH/EFS and TCH/HS it's '1'B.
Change-Id: Ib42b783574caf5cbaf64b2eb5dd1d2b2a6637c2f Related: [1] osmo-bts.git I89df2f12c49dd5378667cf149d19bde654f80134 Related: OS#6039 --- M bts/BTS_Tests.ttcn 1 file changed, 23 insertions(+), 2 deletions(-)
Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve falconia: Looks good to me, approved
diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index 909a331..8fc0fa9 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -2609,10 +2609,11 @@ /* Step 1: configure the RTP parameters */ var integer payload_len := 0; var octetstring hdr := ''O; + var OCT1 pad := '00'O;
select (g_pars.chan_mode) { case (tr_RSL_ChanMode(RSL_CHRT_TCH_F, RSL_CMOD_SP_GSM1)) /* TCH/FS */ - { payload_len := 33; hdr := 'D0'O; } + { payload_len := 33; hdr := 'D0'O; pad := 'FF'O; } case (tr_RSL_ChanMode(RSL_CHRT_TCH_H, RSL_CMOD_SP_GSM1)) /* TCH/HS */ { payload_len := 15; hdr := '00'O; } case (tr_RSL_ChanMode(RSL_CHRT_TCH_F, RSL_CMOD_SP_GSM2)) /* TCH/EFS */ @@ -2636,7 +2637,7 @@ }
/* Pad the payload to conform the expected length */ - payload := f_pad_oct(hdr & payload, payload_len, '00'O); + payload := f_pad_oct(hdr & payload, payload_len, pad); cfg.tx_payloads[0].fixed_payload := payload; f_rtpem_configure(RTPEM_CTRL, cfg);