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 <ssperl...@sysmocom.de>
Gerrit-Reviewer: Harald Welte <lafo...@gnumonks.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Stefan Sperling <ssperl...@sysmocom.de>

Reply via email to