[PATCH] openbsc[master]: bsc: paging: Fix losing paging messages for BTS

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
Tue Mar 27 12:31:34 UTC 2018


Review at  https://gerrit.osmocom.org/7529

bsc: paging: Fix losing paging messages for BTS

Since eb241aa1d5720a36cf97f29390c2890cf3aecba7 (year 2010) we are
delaying transmission of paging packets 500ms in order to avoid crashing
the nanobts because of sending too many packets.

In consequence, if 2 BSSMAP PAGING messages arrived in less than 500ms,
since the 1st one was already in the queue, when 2nd one was handled then
paging_request_bts would return -EEXIST (negative value) and
paging_request_stop was called which would remove the paging in the
queue. As a result, the paging would be lost unless a new 3rd BSSMAP PAGING
message would arrive after this second one (which of course could be
again removed by a 4th sent less than 500ms afterwards), and so on.

Furthermore, it doesn't make sense to call stop_paging in here, so the
easy fix is to remove it to avoid the issue mentioned above.

Change-Id: I2605367b2735b48bce2b31504c444360b5ca6953
---
M openbsc/src/libbsc/paging.c
1 file changed, 5 insertions(+), 5 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/openbsc refs/changes/29/7529/1

diff --git a/openbsc/src/libbsc/paging.c b/openbsc/src/libbsc/paging.c
index 22c676f..9bf1a57 100644
--- a/openbsc/src/libbsc/paging.c
+++ b/openbsc/src/libbsc/paging.c
@@ -346,12 +346,12 @@
 			break;
 
 		rc = paging_request_bts(bts, bsub, type, cbfn, data);
-		if (rc < 0) {
-			paging_request_stop(&network->bts_list, NULL, bsub,
-					    NULL, NULL);
+		if (rc >= 0)
+			num_pages += rc;
+		else if (rc == -EEXIST)
+			num_pages += 1;
+		else
 			return rc;
-		}
-		num_pages += rc;
 	} while (1);
 
 	if (num_pages == 0)

-- 
To view, visit https://gerrit.osmocom.org/7529
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I2605367b2735b48bce2b31504c444360b5ca6953
Gerrit-PatchSet: 1
Gerrit-Project: openbsc
Gerrit-Branch: master
Gerrit-Owner: Pau Espin Pedrol <pespin at sysmocom.de>



More information about the gerrit-log mailing list