Project

General

Profile

Bug #1548

11bit RACH support

Added by laforge about 5 years ago. Updated 11 months ago.

Status:
Resolved
Priority:
Normal
Assignee:
Target version:
-
Start date:
02/23/2016
Due date:
% Done:

100%

Spec Reference:
3GPP TS 44.004, section 7.4a; 3GPP TS 44.060, sections 11.2.5 and 11.2.5a

Description

This is currently not supported/implemented. Having 11bit RACH gives us more information on the cause of channel establishemnt, especially when GSM + GPRS are used together.


Related issues

Related to OsmoBTS - Bug #1854: 11-bit RACH support breaks default 8-bit RACH: collisions are possibleResolved11/18/2016

Related to OsmoTRX - Feature #3054: Extended (11-bit) RACH support in OsmoTRXStalled03/10/2018

Related to OsmoPCU - Feature #3014: fix re-apply patches reverted by #3013, related: UL and DL packet assignment, and Timing AdvanceResolved02/27/2018

Related to OsmoPCU - Bug #4338: Add EGPRS tests toTTCN3 PCU_Tests_RAWResolved12/23/2019

Has duplicate OsmoPCU - Bug #1834: Extended (11-bit) RACH is not properly handledClosed10/25/2016

Associated revisions

Revision 32e5641d (diff)
Added by max over 3 years ago

Add functions for extended RACH coding

Add support for extended RACH (11 bit) according 3GPP TS 45.003 ยง5.3.2:

  • convolutional code with puncturing
  • encoding/decoding routines
  • corresponding tests

Change-Id: I85a34a82d5cd39a594ee89d91a2338226066ab5d
Related: OS#1548

Revision 41ce6753 (diff)
Added by Vadim Yanitskiy about 1 year ago

tests/coding: add 11-bit Access Burst samples from a real phone

This change adds several soft-bit (-127 .. 127) sequences containing
EGPRS Packet Channel Request message (11-bit, payload only) sent by
an EGPRS capable phone, and captured on the BTS/PCU side using a
tool from the TRX Toolkit - trx_sniff.py.

As can be seen from the test output, none of decoded RA11 values
looks like a valid EGPRS Packet Channel Request message (see
table 11.2.5a.2 of 3GPP TS 44.060). All test sequences contain
the same message with several random bits:

< EGPRS Packet channel request message content > ::=
< Signalling : 110011 < RandomBits : bit (5) > >;

since the phone was trying to perform Attach Request. It seems
the bit order of decoded messages is somehow wrong.

Change-Id: Id80e471d252b9416217b56f4c8c0a8f5f1289fee
Related: OS#1548

Revision 9e713f38 (diff)
Added by Vadim Yanitskiy about 1 year ago

coding: fix bit ordering in 11-bit RACH coding functions

According to 3GPP TS 44.004, figure 7.4a.b, the format of 11-bit
RACH uplink / Uplink access burst block is as defined follows:

<---------------------------------------------------
8     7     6     5     4     3     2     1
------------------------------------------------ | 11 bit RACH uplink / Uplink access burst block | OCT1
------------------------------------------------ | | OCT2
-----------------

As was (correctly) assumed in [1], the bit ordering in 11-bit RACH
coding functions is wrong. The problem is that neither of generic
functions from bit16gen.h can be used to load / store the RA11
value (regardless of the endianness), because they assume that
the payload is 16 bit long.

With this patch applied, RA11 values from [1] look correct:

< EGPRS Packet channel request message content > ::=
< Signalling : 110011 < RandomBits : 00111 > > |
< Signalling : 110011 < RandomBits : 00110 > > |
< Signalling : 110011 < RandomBits : 01111 > > |
< Signalling : 110011 < RandomBits : 01100 > > |
< Signalling : 110011 < RandomBits : 00111 > > |
< Signalling : 110011 < RandomBits : 10110 > > ;

[1] Id80e471d252b9416217b56f4c8c0a8f5f1289fee

Change-Id: I43d30611dd69f77f2b3b46f4b56056a8891d3c24
Related: OS#1548

History

#1 Updated by laforge over 4 years ago

  • Status changed from New to In Progress
  • Assignee set to arvind.sirsikar

11bit RACH is actually being worked on, assigning this to aravind. It might even be complete for some BTS models by now.

#2 Updated by arvind.sirsikar over 4 years ago

Currently it is supported and integration tested for NuRAN LC1.5 and LC1.0. However there is no support for osmo-trx.

#4 Updated by laforge over 3 years ago

  • Assignee changed from arvind.sirsikar to sysmocom

#5 Updated by laforge over 3 years ago

  • Status changed from In Progress to New
  • Assignee changed from sysmocom to msuraev

#6 Updated by laforge over 3 years ago

  • Priority changed from Normal to High

#7 Updated by msuraev over 3 years ago

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

Encoding/decoding support for 11-bit RACH for libosmocoding is available in gerrit 5062.

#8 Updated by msuraev over 3 years ago

  • Related to Bug #1854: 11-bit RACH support breaks default 8-bit RACH: collisions are possible added

#9 Updated by msuraev over 3 years ago

  • Status changed from In Progress to Stalled
  • % Done changed from 10 to 20

Gerrit 5062 has been merged. Have to verify whether 11-bit RACH is supported on sysmoBTS.

#10 Updated by msuraev about 3 years ago

Test with "gprs 11bit_rach_support_for_egprs" failed - seems like smth wasn't merged/missing. See related BTS bug.

#11 Updated by laforge about 3 years ago

  • Assignee changed from msuraev to sysmocom

#12 Updated by laforge about 3 years ago

  • Assignee changed from sysmocom to lynxis

#13 Updated by fixeria over 2 years ago

The following patch should implement 11-bit RACH support of osmo-bts-trx:

https://gerrit.osmocom.org/#/c/osmo-bts/+/6315/

but should be properly tested.

#14 Updated by laforge over 2 years ago

  • Assignee changed from lynxis to msuraev

#15 Updated by msuraev over 2 years ago

  • Has duplicate Bug #1834: Extended (11-bit) RACH is not properly handled added

#16 Updated by msuraev over 2 years ago

  • Related to Feature #3054: Extended (11-bit) RACH support in OsmoTRX added

#17 Updated by msuraev about 2 years ago

  • Related to Feature #3014: fix re-apply patches reverted by #3013, related: UL and DL packet assignment, and Timing Advance added

#18 Updated by laforge almost 2 years ago

  • Assignee changed from msuraev to fixeria

#19 Updated by fixeria over 1 year ago

  • Assignee deleted (fixeria)

Both osmo-trx and osmo-bts-trx do support 11-bit encoded Access Bursts now. We also have a TTCN-3 test case for that (see BTS_Tests.TC_pcu_ext_rach_content) and it passes. However, all my attempts to test the network with the real phones have been unsuccessful. Unfortunately, I have no time to investigate further now.

#20 Updated by laforge about 1 year ago

  • Assignee set to daniel
  • Priority changed from High to Normal

#21 Updated by pespin about 1 year ago

  • Related to Bug #4338: Add EGPRS tests toTTCN3 PCU_Tests_RAW added

#22 Updated by pespin about 1 year ago

I'm trying to add some TTCN3 tests with 11bit RACH support for osmo-pcu in PCU_Tests_RAW as part of #4338. I'd say that's all what's missing here.

#23 Updated by fixeria about 1 year ago

I'd say that's all what's missing here.

I don't think so. OsmoPCU does not seem to handle 11-bit RACH correctly when running with osmo-trx and osmo-bts-trx.

#24 Updated by fixeria about 1 year ago

  • Spec Reference set to 3GPP TS 44.004, section 7.4a; 3GPP TS 44.060, sections 11.2.5 and 11.2.5a

#25 Updated by fixeria about 1 year ago

OsmoPCU does not seem to handle 11-bit RACH correctly when running with osmo-trx and osmo-bts-trx.

https://gerrit.osmocom.org/c/libosmocore/+/17692/ tests/coding: add 11-bit Access Burst samples from a real phone
https://gerrit.osmocom.org/c/libosmocore/+/17693/ coding: fix bit ordering in 11-bit RACH coding functions

With this fix applied, OsmoPCU works much better when running with osmo-bts-trx.
I also have a (draft) TTCN-3 test case for OsmoPCU.

#26 Updated by fixeria about 1 year ago

I also have a (draft) TTCN-3 test case for OsmoPCU.

https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/17704/ library/RLCMAC_CSN1_Types: add EGPRS Packet Channel Request definition
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/17706/ PCU: add test cases for EGPRS Packet Channel Request

For some reason, TITAN decodes different extended RA value in IA Rest Octets...
Any help would be appreciated. Wireshark shows that everything is ok (as expected).

#27 Updated by fixeria 12 months ago

  • % Done changed from 20 to 60

TTCN-3 test cases have been merged and, as can be seen, they're passing in Jenkins.

Though I am still not satisfied by some code parts handling 11 bit EGPRS Packet Channel Request in osmo-pcu, for example:

static inline uint16_t mslot_class_from_ra(uint16_t ra, bool is_11bit)
{
        if (is_11bit)
                return (ra & 0x3e0) >> 5;

        /* set multislot class to 0 for 8-bit RACH, since we don't know it yet */
        return 0;
}

The way we parse the multislot class does not seem to be correct, because it's optional and its presence depends on type of EGPRS Packet Channel Request. I believe we should implement proper parsing, and here is a draft change for that: https://gerrit.osmocom.org/c/osmo-pcu/+/17718.

#28 Updated by laforge 11 months ago

  • Assignee changed from daniel to fixeria

#29 Updated by fixeria 11 months ago

  • Status changed from Stalled to In Progress

I just realized that RR Immediate Assignment Reject (IAR Rest Octets) should also contain Extended RA, when sent in response to EGPRS Packet Access Request. More details can be found in 3GPP TS 44.018, section 10.5.2.17.

#30 Updated by fixeria 11 months ago

Actually, Encoding::write_immediate_assignment_reject() does support writing IAR Rest Octets with Extended RA. We just need a TTCN-3 test case.

#31 Updated by fixeria 11 months ago

  • % Done changed from 60 to 80

Actually, Encoding::write_immediate_assignment_reject() does support writing IAR Rest Octets with Extended RA. We just need a TTCN-3 test case.

https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18420/ library/GSM_RR_Types: fix definition of FeatureIndicator
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18421/ library/GSM_RR_Types: add IAR Rest Octets definition
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18422/ library/GSM_RR_Types: add receive templates for IMM ASS Reject
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18423/ PCU: introduce TC_egprs_pkt_chan_req_reject_content
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18424/ PCU: introduce TC_egprs_pkt_chan_req_reject_emergency

#32 Updated by fixeria 11 months ago

https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18425 PCU: introduce TC_egprs_pkt_chan_req_reject_exhaustion

#33 Updated by fixeria 11 months ago

While working on EGPRS Packet Channel Request coding support, I discovered and fixed some problems in CSN.1 codec:

https://gerrit.osmocom.org/c/osmo-pcu/+/18430/ csn1: fix M_CHOICE: restirct maximum length of the choice list
https://gerrit.osmocom.org/c/osmo-pcu/+/18431/ csn1: fix csnStreamEncoder(): also check length of the choice list
https://gerrit.osmocom.org/c/osmo-pcu/+/18432/ csn1: fix csnStreamEncoder(): always check the choice index
https://gerrit.osmocom.org/c/osmo-pcu/+/18433/ csn1: fix: never use enumerated types in codec structures

#34 Updated by fixeria 11 months ago

  • Status changed from In Progress to Feedback
  • % Done changed from 80 to 100

All previously submitted changes have been merged. These two new changes are waiting for review:

https://gerrit.osmocom.org/c/osmo-pcu/+/18386/ bts: refactor handling and parsing of RACH.ind
https://gerrit.osmocom.org/c/osmo-pcu/+/18387/ BTS::parse_rach_ind(): properly handle EGPRS Packet Channel Request

as soon as they're merged, we can finally close this ticket.

#35 Updated by fixeria 11 months ago

  • Status changed from Feedback to Resolved

All patches have been merged.

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 48.8 MB)