Project

General

Profile

Feature #4748

Indicate TRX number in RSL messages of multi-TRX BTS

Added by laforge about 2 months ago. Updated about 1 month ago.

Status:
New
Priority:
Normal
Assignee:
Category:
Abis
Target version:
-
Start date:
09/04/2020
Due date:
% Done:

0%

Spec Reference:

Description

In BTSs with multiple TRX (and we are working with 8TRX now!) it can be relatively difficult to analyze Abis protocol traces. There are many RSL-over-IPA connections in parallel, and there is nothing in the IPA or RSL message indicating which TRX the message relates to.

In E1 based BTSs this is easier, as there is one LAPD datalink for each TRX, and typically the TEI of that data link (present in every LAPD header) corresponds to the TRX.

How do we solve this in Abis/IP?

We could in theory extend the IPA protocol by either
  1. using a new IPA_OSMO_EXT sub-multiplex which then adds a 1-byte header that we can use to indicate the TRX number
  2. use 0..7 in the 'protocol' field of the IPA header as RSL, not just '0x00'
  3. use a fixed source port number on the BTS side, like, 4000+trx_number
  • The TCP port number based method is a hack but remains 100% compatible to Abis/IP as we know it
  • Using a new Osmocom sub-multiplex completely deviates from Abis/IP as we know it (and enlarges all messages)
  • Using stream identifiers 1..n instead of the fixed 0x00 seems like the best compromise to me:
    • OsmoBSC can support both the old RSL dialect and the new one in parallel. We simply treat 0..7 the same as 0.
    • OsmoBTS could have a vty config option (enabled by default) if somebody needs backwards compatibility with the old version. Most existing OsmoBTS users have single-TRX setups so they wouldn't even see any difference.

What do you guys think?

History

#1 Updated by fixeria about 2 months ago

Hi Harald,

there is nothing in the IPA or RSL message indicating which TRX the message relates to.

actually, the RSL TEI is reflected in the IPA header ("Protocol" field). You just need to make sure that all transceivers in osmo-bsc.cfg have unique 'rsl e1 tei NUM' values assigned. Note that we do not require all transceivers to use unique values, so they all can use 0x00 by default, because all per-TRX RSL connections are separate TCP/IP connections.

See https://git.osmocom.org/docker-playground/tree/ttcn3-bts-test/osmo-bsc.cfg, and e.g. https://jenkins.osmocom.org/jenkins/view/TTCN3/job/ttcn3-bts-test/1014/artifact/logs/bts-tester-generic/BTS_Tests_SMSCB.TC_cbc_sdcch8_load_idle.pcap.gz (filter 'gsm_ipa.protocol > 0').

#2 Updated by Hoernchen about 2 months ago

I'd go for the port number, since it's the easiest choice and the other approaches don't really add anything more to it.

#3 Updated by laforge about 2 months ago

On Fri, Sep 04, 2020 at 09:00:38PM +0000, fixeria [REDMINE] wrote:

actually, the RSL TEI is reflected in the IPA header ("Protocol" field). You just need to make sure that all transceivers in osmo-bsc.cfg have unique 'rsl e1 tei NUM' values assigned. Note that we do not require all transceivers to use unique values, so they all can use 0x00 by default, because all per-TRX RSL connections are separate TCP/IP connections.

Oh, great. I must have forgotten about that. We should change all our multi-trx example configs
accordingly.

#4 Updated by laforge about 1 month ago

The fun part is: We don't have any multi-trx config examples in osmo-bsc.git. That needs to change, and the example should then set the "RSL TEI" for each TRX.

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 48.8 MB)