Project

General

Profile

Bug #2978

OsmoBTS rxlev/rxqual SUB computation completely broken [AMR DTX]

Added by laforge 10 months ago. Updated 3 months ago.

Status:
Stalled
Priority:
High
Assignee:
Category:
-
Target version:
-
Start date:
02/21/2018
Due date:
% Done:

70%

Spec Reference:

Description

In the osmo-bts codebase, I can only see readers of bts_ul_meas.is_sub, but not see any code that sets this:

src/common/measurement.c:               if (m->is_sub) {


Related issues

Related to OsmoBTS - Bug #2987: OsmoBTS RxQual/RxLev averaging broken if bursts are missignStalled2018-02-23

History

#1 Updated by laforge 10 months ago

  • Status changed from New to In Progress
  • % Done changed from 0 to 70

#2 Updated by laforge 10 months ago

  • Subject changed from OsmoBTS rxlev/rxqual SUB computation likely broken to OsmoBTS rxlev/rxqual SUB computation completely broken

#3 Updated by laforge 10 months ago

  • Related to Bug #2987: OsmoBTS RxQual/RxLev averaging broken if bursts are missign added

#4 Updated by laforge 10 months ago

  • Checklist item {RxQual,RxLev}-SUB for AMR DTX added
  • Status changed from In Progress to Stalled

#5 Updated by laforge 9 months ago

  • Subject changed from OsmoBTS rxlev/rxqual SUB computation completely broken to OsmoBTS rxlev/rxqual SUB computation completely broken [AMR DTX]

#6 Updated by laforge 4 months ago

  • Assignee changed from laforge to dexter

#7 Updated by dexter 4 months ago

  • Status changed from Stalled to In Progress

measurement.c expects the lower layers to set the is_sub flag correctly. We need a small FSM that looks into the packets and switches between silent periods and non silent periods so that we know when to set the is_sub flag and when not. The SID_UPDATE frames should come in a fixed interval, so for those we know when to expect them.

While we tag the measurements in the lower layers we also must record some information about the silent periods. We need to keep a record of the exact number of SUB measurements we expected and this number must then be reported to measurement.c. If we don't do this we would have correctly tagged SUB measurements but we still wouldn't be able say anything about lost is-sub frames.

I need to try a few more things out. I now have a setup where AMR with DTX is turned on. I can see and hear that it is enabled. Next we need some code to look into each voice frame (RTP) in order to detect the SID_FIRST and ONSET frames.

#8 Updated by dexter 4 months ago

I have tried to detect when SID frames. The plan is (as described above) to make an FSM similar to dtx_dl_amr_fsm.c that observes the incoming RTP stream. For my experiment I have tapped the incoming frames directly in l1sap.c:l1sap_tch_ind(). Than I used osmo_amr_rtp_dec() to decode the frames. This gives me the frame type (ft) and in theory I should be able to check with osmo_amr_is_speech(ft) if I see a voice frame or a SID frame.

In my experiment this unfortunately did not work. I don't think that there is something wrong with the utilities. When I look at the trace I can see that there are no SID frames in it, only voice frames are visible. Also all the marks are missing. I think osmo-trx has some problems here, which we need to fix first.

When comparing to a trace from a sysmo-bts things look different. Here the marks are visible and there are also some comfort noise AMR-SID frames. However, I would expect to see some more SID frames. I miss ONSET and SID_FIRST frames. Presumably there are also some lower level problems here as well.

Attached one findes thw two traces I made

#9 Updated by dexter 3 months ago

  • Status changed from In Progress to Stalled

#10 Updated by dexter 3 months ago

I have set this to stalled. We will pick this up again when all remaining measurement and frame number calculation/scheduling problems are resolved.

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 48.8 MB)