This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
Harald Welte gerrit-no-reply at lists.osmocom.orgHarald Welte has submitted this change and it was merged.
Change subject: Close TRX session before opening new one
......................................................................
Close TRX session before opening new one
This fixes the unstable behavior (BTS loosing subscribers after some
time) in case previous run of osmo-bts was interrupted (with ctrl+c for
example).
Change-Id: Ie2119b0b566d01f0e70b38c8a149fecb47def38d
---
M src/osmo-bts-octphy/l1_oml.c
1 file changed, 43 insertions(+), 1 deletion(-)
Approvals:
Harald Welte: Looks good to me, approved
Jenkins Builder: Verified
diff --git a/src/osmo-bts-octphy/l1_oml.c b/src/osmo-bts-octphy/l1_oml.c
index 18bd8c0..401201a 100644
--- a/src/osmo-bts-octphy/l1_oml.c
+++ b/src/osmo-bts-octphy/l1_oml.c
@@ -1097,6 +1097,23 @@
return 0;
}
+static int disable_events_compl_cb(struct octphy_hdl *fl1, struct msgb *resp, void *data)
+{
+ tOCTVC1_MAIN_MSG_API_SYSTEM_MODIFY_SESSION_EVT_RSP *mser =
+ (tOCTVC1_MAIN_MSG_API_SYSTEM_MODIFY_SESSION_EVT_RSP *) resp->l2h;
+
+ /* in a completion call-back, we take msgb ownership and must
+ * release it before returning */
+
+ mOCTVC1_MAIN_MSG_API_SYSTEM_MODIFY_SESSION_EVT_RSP_SWAP(mser);
+
+ LOGP(DL1C, LOGL_INFO, "Rx DISABLE-EVT-REC.resp\n");
+
+ msgb_free(resp);
+
+ return 0;
+}
+
int l1if_enable_events(struct gsm_bts_trx *trx)
{
struct phy_instance *pinst = trx_phy_instance(trx);
@@ -1116,7 +1133,29 @@
LOGP(DL1C, LOGL_INFO, "Tx ENABLE-EVT-REC.req\n");
- return l1if_req_compl(fl1h, msg, enable_events_compl_cb, 0);
+ return l1if_req_compl(fl1h, msg, disable_events_compl_cb, 0);
+}
+
+int l1if_disable_events(struct gsm_bts_trx *trx)
+{
+ struct phy_instance *pinst = trx_phy_instance(trx);
+ struct octphy_hdl *fl1h = pinst->phy_link->u.octphy.hdl;
+ struct msgb *msg = l1p_msgb_alloc();
+ tOCTVC1_MAIN_MSG_API_SYSTEM_MODIFY_SESSION_EVT_CMD *mse;
+
+ mse = (tOCTVC1_MAIN_MSG_API_SYSTEM_MODIFY_SESSION_EVT_CMD *)
+ msgb_put(msg, sizeof(*mse));
+ mOCTVC1_MAIN_MSG_API_SYSTEM_MODIFY_SESSION_EVT_CMD_DEF(mse);
+
+ l1if_fill_msg_hdr(&mse->Header, msg, fl1h, cOCTVC1_MSG_TYPE_COMMAND,
+ cOCTVC1_MAIN_MSG_API_SYSTEM_MODIFY_SESSION_EVT_CID);
+ mse->ulEvtActiveFlag = cOCT_FALSE;
+
+ mOCTVC1_MAIN_MSG_API_SYSTEM_MODIFY_SESSION_EVT_CMD_SWAP(mse);
+
+ LOGP(DL1C, LOGL_INFO, "Tx DISABLE-EVT-REC.req\n");
+
+ return l1if_req_compl(fl1h, msg, disable_events_compl_cb, 0);
}
#define talloc_replace(dst, ctx, src) \
@@ -1483,6 +1522,9 @@
int bts_model_trx_close(struct gsm_bts_trx *trx)
{
+ /* disable events */
+ l1if_disable_events(trx);
+
/* FIXME: close only one TRX */
return trx_close(trx);
}
--
To view, visit https://gerrit.osmocom.org/232
To unsubscribe, visit https://gerrit.osmocom.org/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Ie2119b0b566d01f0e70b38c8a149fecb47def38d
Gerrit-PatchSet: 2
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Owner: Max <msuraev at sysmocom.de>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Jenkins Builder