Project

General

Profile

Actions

Bug #4592

open

osmo-bts-trx: make sure that handover detection works

Added by fixeria over 1 year ago. Updated over 1 year ago.

Status:
Stalled
Priority:
Low
Assignee:
Category:
osmo-bts-trx
Target version:
-
Start date:
06/07/2020
Due date:
% Done:

80%

Spec Reference:

Description

While investigating #4586, I noticed that osmo-bts-trx never sends TRXC HANDOVER command. It looks like TRXC NOHANDOVER is being sent twice.

 1401 3.835299624    127.0.0.1 → 127.0.0.1    OsmoTRXC 61 CMD NOHANDOVER 1 0
 1404 3.835525858    127.0.0.1 → 127.0.0.1    OsmoTRXC 63 RSP NOHANDOVER 0 1 0
 1673 3.947655470    127.0.0.1 → 127.0.0.1    OsmoTRXC 61 CMD NOHANDOVER 1 0
 1674 3.947925293    127.0.0.1 → 127.0.0.1    OsmoTRXC 63 RSP NOHANDOVER 0 1 0
 2028 4.071425165    127.0.0.1 → 127.0.0.1    OsmoTRXC 61 CMD NOHANDOVER 1 0
 2031 4.071810374    127.0.0.1 → 127.0.0.1    OsmoTRXC 63 RSP NOHANDOVER 0 1 0
 2334 4.186607520    127.0.0.1 → 127.0.0.1    OsmoTRXC 61 CMD NOHANDOVER 1 0
 2337 4.187177856    127.0.0.1 → 127.0.0.1    OsmoTRXC 63 RSP NOHANDOVER 0 1 0
 2648 4.295164236    127.0.0.1 → 127.0.0.1    OsmoTRXC 61 CMD NOHANDOVER 1 0
 2649 4.295823750    127.0.0.1 → 127.0.0.1    OsmoTRXC 63 RSP NOHANDOVER 0 1 0
10759 7.367793910    127.0.0.1 → 127.0.0.1    OsmoTRXC 61 CMD NOHANDOVER 1 0
10762 7.368688082    127.0.0.1 → 127.0.0.1    OsmoTRXC 63 RSP NOHANDOVER 0 1 0
11205 7.532400900    127.0.0.1 → 127.0.0.1    OsmoTRXC 61 CMD NOHANDOVER 1 0
11206 7.532637365    127.0.0.1 → 127.0.0.1    OsmoTRXC 63 RSP NOHANDOVER 0 1 0

The purpose of these TRXC commands is to control handover detection in transceiver. By default, handover detection is enabled on all inactive channels. As soon as the BSC activates a logical channel, osmo-bts-trx needs to send TRXC NOHANDOVER to the transceiver, so handover detection is disabled for that channel. As soon as a logical channel is deactivated, osmo-bts-trx needs to send TRXC HANDOVER to the transceiver, so handover detection is on again.

I quickly checked the source code, and indeed there is a bug:

/* setting all logical channels given attributes to active/inactive */
int trx_sched_set_lchan(struct l1sched_trx *l1t, uint8_t chan_nr, uint8_t link_id, bool active)
{
        /* Skipped code here... */

        /* disable handover detection (on deactivation) */
        if (!active)
                _sched_act_rach_det(l1t, tn, ss, 0);

        return rc;
}

Even the comment near the 'if' statement is wrong.


Related issues

Related to OsmoBTS - Bug #4586: osmo-bts-trx leaks memoryResolvedfixeria06/06/2020

Actions
Actions

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 48.8 MB)