Project

General

Profile

Actions

Bug #5253

closed

osmo-bts: RadioCarrier/BBTransceiver NM objects should be kept in DisabledDependency until RSL link is established

Added by pespin over 2 years ago. Updated 7 months ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
Abis
Target version:
-
Start date:
10/11/2021
Due date:
% Done:

100%

Spec Reference:

Description

This would make them follow nanoBTS more closely. It would also avoid different sort of strange scenarios where the TRX are OPSTARTed (and hence start running) while the RSL link is not yet in place.


Related issues

Related to OsmoBTS - Bug #5964: BTS_Tests_OML.TC_ipa_rsl_connect_nack failsResolved03/26/2023

Actions
Actions #1

Updated by pespin about 1 year ago

Further investigation seems to indicate that nanoBTS only attempts connection *after receiving an OPSTART.

Which means we should NOT stay in Disabled Dependency, because then OPSTART is not going to be sent.

Actions #2

Updated by pespin about 1 year ago

The objects which need to be kept as DisabledDependency while no RSL link exists are the NM CHannels (timeslots) above that BBTRANSC.
This way they cannot be opstarted until the RSL link is established.

Actions #3

Updated by pespin about 1 year ago

I tested again and I confirm that nanoBTS doesn't attempt TCP connecting until it is sent the OPSTART command for the BBTRANSC object from the BSC.
Hence, IP address in RSL CONNECT message is not really tested because no TCP socket is created, and 0.0.0.0 is considered to be "use same remote address as per OML link) which is inherently valid since the OML link is up.

I also just checked: nanoBTS sends OPSTART ACK even before sending the TCP SYN to port 3003 (RSL), so yeah, it ACKs and then attempts creating the RSL socket, as I expected.

The real knowledge that the nanoBTS is prepared comes from the fact that it sends a StateChng Report to EnabledOk once it has a successful connect on the TCP/IPA/RSL link. That happens after the IPA handshake is successful apparently.

Hence, an important different we may want to take into account and change in osmo-bts: nanoBTS is creating the TCP/IPA/RSL socket upon receiving OPSTART, while we are creating it during RSL_CONNECT:

static int rx_oml_ipa_rsl_connect(struct gsm_bts *bts, struct msgb *msg,
                  const struct tlv_parsed *tp)
{
...
        trx->rsl_tei = stream_id;
        rc = e1inp_ipa_bts_rsl_connect_n(oml_link->ts->line, inet_ntoa(in), port, trx->nr);
...
}

Actions #4

Updated by pespin about 1 year ago

  • Related to Bug #5964: BTS_Tests_OML.TC_ipa_rsl_connect_nack fails added
Actions #5

Updated by pespin 7 months ago

  • Status changed from New to Feedback
  • % Done changed from 0 to 90

Submitted some patches to have same behavior in osmo-bts as we see in nanoBTS:

remote: https://gerrit.osmocom.org/c/osmo-bts/+/34440 oml: Store RSL connect related fields in bb_transc [NEW]
remote: https://gerrit.osmocom.org/c/osmo-bts/+/34441 Move trx->rsl_link to trx->bb_transc.rsl.link [NEW]
remote: https://gerrit.osmocom.org/c/osmo-bts/+/34442 nm: delay RSL connect until BBTRANSC object is OPSTARTed [NEW]

Actions #6

Updated by pespin 7 months ago

Tested the patches above successfully with sysmobts and osmo-bts-trx.

Once merged we can close this ticket.

Actions #7

Updated by pespin 7 months ago

  • Status changed from Feedback to Resolved
  • % Done changed from 90 to 100

Merged, closing.

Actions

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 48.8 MB)