[MERGED] osmo-bsc[master]: Implement support for paging based on LAC and CI.

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

Stefan Sperling gerrit-no-reply at lists.osmocom.org
Tue Jan 16 13:28:50 UTC 2018


Stefan Sperling has submitted this change and it was merged.

Change subject: Implement support for paging based on LAC and CI.
......................................................................


Implement support for paging based on LAC and CI.

This is a simple combination of the LAC and CI cases which have
already been implemented.

The BSC_Tests.TC_paging_imsi_nochan_lac_ci ttcn3 test passes.

The switch statement in bssmap_handle_paging() is getting a bit large,
and scoping of local variables could be improved. I will focus on
cleaning this up later once paging functionality is complete.

Change-Id: If7f596663a97a1db1a00f115a366f4a5a271c127
Depends: Id83f8b3b1ce80a39417176d99fd09f3b394fd19c
Related: OS#2752
---
M src/osmo-bsc/osmo_bsc_bssap.c
1 file changed, 24 insertions(+), 0 deletions(-)

Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/src/osmo-bsc/osmo_bsc_bssap.c b/src/osmo-bsc/osmo_bsc_bssap.c
index 04541c2..1894561 100644
--- a/src/osmo-bsc/osmo_bsc_bssap.c
+++ b/src/osmo-bsc/osmo_bsc_bssap.c
@@ -395,6 +395,30 @@
 		}
 	}
 
+	case CELL_IDENT_LAC_AND_CI: {
+		uint16_t ci, *ci_be;
+		lacp_be = (uint16_t *)(&data[1]);
+		ci_be = (uint16_t *)(&data[3]);
+		while (remain >= sizeof(*lacp_be) + sizeof(*ci_be)) {
+			lac = osmo_load16be(lacp_be);
+			ci = osmo_load16be(ci_be);
+
+			llist_for_each_entry(bts, &msc->network->bts_list, list) {
+				if (bts->location_area_code != lac)
+					continue;
+				if (bts->cell_identity != ci)
+					continue;
+				if (page_subscriber(msc, bts, tmsi, lac, mi_string, chan_needed) < 0)
+					break;
+			}
+
+			remain -= sizeof(*lacp_be) + sizeof(*ci_be);
+			lacp_be++;
+			ci_be++;
+		}
+		break;
+	}
+
 	case CELL_IDENT_CI: {
 		uint16_t *ci_be = (uint16_t *)(&data[1]);
 		while (remain >= sizeof(*ci_be)) {

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

Gerrit-MessageType: merged
Gerrit-Change-Id: If7f596663a97a1db1a00f115a366f4a5a271c127
Gerrit-PatchSet: 3
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Owner: Stefan Sperling <ssperling at sysmocom.de>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Stefan Sperling <ssperling at sysmocom.de>



More information about the gerrit-log mailing list