Change in osmo-bsc[master]: paging: Make default T3113 timeout dynamic

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/.

Pau Espin Pedrol gerrit-no-reply at lists.osmocom.org
Wed Nov 7 14:11:22 UTC 2018


Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/11654


Change subject: paging: Make default T3113 timeout dynamic
......................................................................

paging: Make default T3113 timeout dynamic

Change-Id: I4fb2969b690151415038631fb6ad059aa6835c7f
---
M src/osmo-bsc/net_init.c
M src/osmo-bsc/paging.c
2 files changed, 31 insertions(+), 2 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/54/11654/1

diff --git a/src/osmo-bsc/net_init.c b/src/osmo-bsc/net_init.c
index 1199bdc..5ea564d 100644
--- a/src/osmo-bsc/net_init.c
+++ b/src/osmo-bsc/net_init.c
@@ -37,7 +37,7 @@
 	{ .T=3109, .default_val=5, .desc="RSL SACCH deactivation" },
 	{ .T=3111, .default_val=2, .desc="Wait time before RSL RF Channel Release" },
 	{ .T=993111, .default_val=4, .desc="Wait time after lchan was released in error (should be T3111 + 2s)" },
-	{ .T=3113, .default_val=10, .desc="Paging"},
+	{ .T=3113, .default_val=7, .desc="Paging"},
 	{ .T=3115, .default_val=10, .desc="(unused)" },
 	{ .T=3117, .default_val=10, .desc="(unused)" },
 	{ .T=3119, .default_val=10, .desc="(unused)" },
diff --git a/src/osmo-bsc/paging.c b/src/osmo-bsc/paging.c
index afe3245..a5fed32 100644
--- a/src/osmo-bsc/paging.c
+++ b/src/osmo-bsc/paging.c
@@ -287,6 +287,34 @@
 	paging_remove_request(&req->bts->paging, req);
 }
 
+
+#define GSM_FRAME_DURATION_us	4615
+#define GSM51_MFRAME_DURATION_us (51 * GSM_FRAME_DURATION_us) /* 235365 us */
+static unsigned int calculate_timer_3113(struct gsm_bts *bts)
+{
+	unsigned int to_us, to;
+	struct T_def *d = T_def_get_entry(bts->network->T_defs, 3113);
+
+	/* VTY value overrides default dynamic value */
+	if (d->val != d->default_val)
+		return d->val;
+
+	/* TODO: take into account load of paging group for req->bsub */
+
+	/* MFRMS defines repeat interval of paging messages for MSs that belong
+	 * to same paging group accross multiple 51 frame multiframes.
+	 * MAXTRANS defines maximum number of RACH retransmissions.
+	 */
+	to_us = GSM51_MFRAME_DURATION_us * (bts->si_common.chan_desc.bs_pa_mfrms + 2) *
+		bts->si_common.rach_control.max_trans;
+
+	/* ceiling in seconds + extra time */
+	to = (to_us + 999999) / 1000000 + d->default_val;
+	LOGP(DPAG, LOGL_DEBUG, "(bts=%d) Paging request calculated T3113 expires in %u seconds\n",
+	     bts->nr, to);
+	return to;
+}
+
 /*! Start paging + paging timer for given subscriber on given BTS
  * \param bts BTS on which to page
  * \param[in] bsub subscriber we want to page
@@ -317,7 +345,8 @@
 	req->chan_type = type;
 	req->msc = msc;
 	osmo_timer_setup(&req->T3113, paging_T3113_expired, req);
-	osmo_timer_schedule(&req->T3113, T_def_get(bts->network->T_defs, 3113, T_S, -1), 0);
+	int t3113_timeout_s = calculate_timer_3113(bts);
+	osmo_timer_schedule(&req->T3113, t3113_timeout_s, 0);
 	llist_add_tail(&req->entry, &bts_entry->pending_requests);
 	paging_schedule_if_needed(bts_entry);
 

-- 
To view, visit https://gerrit.osmocom.org/11654
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I4fb2969b690151415038631fb6ad059aa6835c7f
Gerrit-Change-Number: 11654
Gerrit-PatchSet: 1
Gerrit-Owner: Pau Espin Pedrol <pespin at sysmocom.de>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20181107/ae54cf8d/attachment.htm>


More information about the gerrit-log mailing list