Bug #1548
11bit RACH support
100%
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
Associated revisions
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
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 about 3 years ago
- Related to Bug #1854: 11-bit RACH support breaks default 8-bit RACH: collisions are possible added
#9 Updated by msuraev about 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 almost 3 years ago
- Assignee changed from msuraev to sysmocom
#12 Updated by laforge almost 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.
#25 Updated by fixeria 11 months 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 11 months 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 10 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.
#31 Updated by fixeria 9 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 9 months ago
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18425 PCU: introduce TC_egprs_pkt_chan_req_reject_exhaustion
#33 Updated by fixeria 9 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 9 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.
Add functions for extended RACH coding
Add support for extended RACH (11 bit) according 3GPP TS 45.003 ยง5.3.2:
Change-Id: I85a34a82d5cd39a594ee89d91a2338226066ab5d
Related: OS#1548