Feature #4748
closedIndicate TRX number in RSL messages of multi-TRX BTS
100%
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- using a new IPA_OSMO_EXT sub-multiplex which then adds a 1-byte header that we can use to indicate the TRX number
- use 0..7 in the 'protocol' field of the IPA header as RSL, not just '0x00'
- 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?
Updated by fixeria over 3 years 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').
Updated by Hoernchen over 3 years 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.
Updated by laforge over 3 years 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.
Updated by laforge over 3 years 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.
Updated by fixeria about 2 years ago
- Status changed from New to Feedback
- Assignee changed from pespin to fixeria
- % Done changed from 0 to 100
laforge wrote in #note-4:
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.
https://gerrit.osmocom.org/c/osmo-bsc/+/27629 doc/examples: add a multi-trx config config example [NEW]
Updated by fixeria about 2 years ago
- Status changed from Feedback to Resolved
Applied in changeset osmobsc:osmo-bsc|caf091f4655a41e7fdb705247301e90732097067.