smscb: Always start ETWS timer even in cells without ETWS support

ETWS is sent over both dedicated channels and broadcast channels.
Some BTS models may not support the latter, but it is still useful
to start the related timer to ensure bts->etws.active gets set to
false after the emergency period has concluded.

Change-Id: I448be9fd75b87c1f7333a5bfa4f6ba238569fdc3
(cherry picked from commit bcd0f63dce)
This commit is contained in:
Harald Welte 2022-04-25 12:03:09 +02:00
parent 24e81f2ed7
commit ac123fd58e
1 changed files with 7 additions and 5 deletions

View File

@ -538,13 +538,15 @@ static void etws_primary_to_bts(struct gsm_bts *bts, const struct osmo_cbsp_writ
if (osmo_bts_has_feature(&bts->features, BTS_FEAT_ETWS_PN)) {
rsl_etws_pn_command(bts, RSL_CHAN_PCH_AGCH, bes->primary, sizeof(bes->primary));
LOG_BTS(bts, DCBS, LOGL_NOTICE, "Sent ETWS Primary Notification via common channel\n");
if (wrepl->u.emergency.warning_period != 0xffffffff) {
osmo_timer_schedule(&bts->etws.timer, wrepl->u.emergency.warning_period, 0);
} else
LOG_BTS(bts, DCBS, LOGL_NOTICE, "Unlimited ETWS PN broadcast, this breaks "
"normal network operation due to PCH blockage\n");
} else
LOG_BTS(bts, DCBS, LOGL_ERROR, "BTS doesn't support RSL command for ETWS PN\n");
/* start the expiration timer, if any */
if (wrepl->u.emergency.warning_period != 0xffffffff) {
osmo_timer_schedule(&bts->etws.timer, wrepl->u.emergency.warning_period, 0);
} else
LOG_BTS(bts, DCBS, LOGL_NOTICE, "Unlimited ETWS PN broadcast, this breaks "
"normal network operation due to PCH blockage\n");
}
/*! Try to execute a write-replace operation; roll-back if it fails.