patch: paging timer configuration

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/OpenBSC@lists.osmocom.org/.

Andreas.Eversberg Andreas.Eversberg at versatel.de
Mon Nov 16 17:52:31 UTC 2009


this patch will add paging timer configuration to network.

diff --git a/openbsc/include/openbsc/gsm_data.h
b/openbsc/include/openbsc/gsm_data.h
index 3040525..954fd60 100644
--- a/openbsc/include/openbsc/gsm_data.h
+++ b/openbsc/include/openbsc/gsm_data.h
@@ -283,7 +283,7 @@ struct gsm_paging_request {
 	gsm_cbfn *cbfn;
 	void *cbfn_param;
 };
-#define T3113_VALUE	60, 0
+#define T3113_VALUE	60
 
 /*
  * This keeps track of the paging status of one BTS. It
@@ -410,6 +410,7 @@ struct gsm_network {
 	char *name_short;
 	enum gsm_auth_policy auth_policy;
 	int a5_encryption;
+	int tout_3113;
 
 	/* layer 4 */
 	int (*mncc_recv) (struct gsm_network *net, int msg_type, void
*arg);
diff --git a/openbsc/src/paging.c b/openbsc/src/paging.c
index 184ea0f..b542273 100644
--- a/openbsc/src/paging.c
+++ b/openbsc/src/paging.c
@@ -235,7 +235,7 @@ static int _paging_request(struct gsm_bts *bts,
struct gsm_subscriber *subscr,
 	req->cbfn_param = data;
 	req->T3113.cb = paging_T3113_expired;
 	req->T3113.data = req;
-	bsc_schedule_timer(&req->T3113, T3113_VALUE);
+	bsc_schedule_timer(&req->T3113, bts->network->tout_3113 ? :
T3113_VALUE, 0);
 	llist_add_tail(&req->entry, &bts_entry->pending_requests);
 
 	if (!bsc_timer_pending(&bts_entry->work_timer))
diff --git a/openbsc/src/vty_interface.c b/openbsc/src/vty_interface.c
index 8dec579..95767bc 100644
--- a/openbsc/src/vty_interface.c
+++ b/openbsc/src/vty_interface.c
@@ -274,6 +274,10 @@ static int config_write_net(struct vty *vty)
 	vty_out(vty, " long name %s%s", gsmnet->name_long, VTY_NEWLINE);
 	vty_out(vty, " auth policy %s%s",
gsm_auth_policy_name(gsmnet->auth_policy), VTY_NEWLINE);
 	vty_out(vty, " encryption a5 %u%s", gsmnet->a5_encryption,
VTY_NEWLINE);
+	if (gsmnet->tout_3113)
+		vty_out(vty, "  paging timeout %u%s", gsmnet->tout_3113,
VTY_NEWLINE);
+	else
+		vty_out(vty, "  paging timeout default%s", VTY_NEWLINE);
 
 	return CMD_SUCCESS;
 }
@@ -793,6 +797,24 @@ DEFUN(cfg_net_encryption,
 	return CMD_SUCCESS;
 }
 
+DEFUN(cfg_net_paging_timeout,
+      cfg_net_paging_timeout_cmd,
+      "paging timeout (<1-65535>|default)",
+      "Set the paging timeout value (T3113) for this network\n")
+{
+	int tout = atoi(argv[0]);
+
+	if (tout < 0 || tout > 0xffff) {
+		vty_out(vty, "%% Value %d is not in the valid range
(1-65535 or 'default')%s",
+			tout, VTY_NEWLINE);
+		return CMD_WARNING;
+	}
+
+	gsmnet->tout_3113 = tout;
+
+	return CMD_SUCCESS;
+}
+
 /* per-BTS configuration */
 DEFUN(cfg_bts,
       cfg_bts_cmd,
@@ -1232,6 +1254,7 @@ int bsc_vty_init(struct gsm_network *net)
 	install_element(GSMNET_NODE, &cfg_net_name_long_cmd);
 	install_element(GSMNET_NODE, &cfg_net_auth_policy_cmd);
 	install_element(GSMNET_NODE, &cfg_net_encryption_cmd);
+	install_element(GSMNET_NODE, &cfg_net_paging_timeout_cmd);
 
 	install_element(GSMNET_NODE, &cfg_bts_cmd);
 	install_node(&bts_node, config_write_bts);




More information about the OpenBSC mailing list