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/.
Max gerrit-no-reply at lists.osmocom.orgMax has uploaded this change for review. ( https://gerrit.osmocom.org/11746
Change subject: Store subscriber's cell identity
......................................................................
Store subscriber's cell identity
It's defined similar to LAC and could be potentially useful for
constructing GCR for LCLS.
Change-Id: I8544c30ea800ce8356a227b03a8b21bf3252be7e
Related: OS#2487
---
M include/osmocom/msc/gsm_data.h
M include/osmocom/msc/osmo_msc.h
M src/libmsc/a_iface_bssap.c
M src/libmsc/iucs.c
M src/libmsc/subscr_conn.c
M tests/msc_vlr/msc_vlr_test_rest.c
M tests/msc_vlr/msc_vlr_tests.c
7 files changed, 18 insertions(+), 12 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/46/11746/1
diff --git a/include/osmocom/msc/gsm_data.h b/include/osmocom/msc/gsm_data.h
index 085248c..213ee02 100644
--- a/include/osmocom/msc/gsm_data.h
+++ b/include/osmocom/msc/gsm_data.h
@@ -127,7 +127,8 @@
/* connected via 2G or 3G? */
enum ran_type via_ran;
- uint16_t lac;
+ uint16_t lac; /* 3GPP TS 24.008 §10.5.1.3 */
+ uint16_t ci; /* 3GPP TS 24.008 §10.5.1.1 */
struct gsm_encr encr;
/* "Temporary" storage for the case the VLR asked for Cipher Mode Command, but the MSC still
diff --git a/include/osmocom/msc/osmo_msc.h b/include/osmocom/msc/osmo_msc.h
index 3ffb65c..e0b4f46 100644
--- a/include/osmocom/msc/osmo_msc.h
+++ b/include/osmocom/msc/osmo_msc.h
@@ -48,7 +48,7 @@
};
struct gsm_subscriber_connection *msc_subscr_conn_alloc(struct gsm_network *network,
- enum ran_type via_ran, uint16_t lac);
+ enum ran_type via_ran, uint16_t lac, uint16_t ci);
void msc_subscr_conn_update_id(struct gsm_subscriber_connection *conn,
enum complete_layer3_type from, const char *id);
diff --git a/src/libmsc/a_iface_bssap.c b/src/libmsc/a_iface_bssap.c
index 282fd73..5e7db63 100644
--- a/src/libmsc/a_iface_bssap.c
+++ b/src/libmsc/a_iface_bssap.c
@@ -48,13 +48,14 @@
/* Allocate a new subscriber connection */
static struct gsm_subscriber_connection *subscr_conn_allocate_a(const struct a_conn_info *a_conn_info,
struct gsm_network *network,
- uint16_t lac, struct osmo_sccp_user *scu, int conn_id)
+ uint16_t lac, uint16_t ci,
+ struct osmo_sccp_user *scu, int conn_id)
{
struct gsm_subscriber_connection *conn;
- LOGP(DMSC, LOGL_DEBUG, "Allocating A-Interface subscriber conn: lac %i, conn_id %i\n", lac, conn_id);
+ LOGP(DMSC, LOGL_DEBUG, "Allocating A-Interface subscriber conn: lac %i, ci %i, conn_id %i\n", lac, ci, conn_id);
- conn = msc_subscr_conn_alloc(network, RAN_GERAN_A, lac);
+ conn = msc_subscr_conn_alloc(network, RAN_GERAN_A, lac, ci);
if (!conn)
return NULL;
@@ -257,7 +258,7 @@
struct msgb *msg, struct tlv_parsed *tp)
{
struct gsm0808_cell_id_list2 cil;
- uint16_t lac = 0;
+ uint16_t lac = 0, ci = 0;
uint8_t data_length;
const uint8_t *data;
int rc;
@@ -296,11 +297,13 @@
return -EINVAL;
}
lac = id->lai.lac;
+ ci = id->cell_identity;
break;
}
case CELL_IDENT_LAC_AND_CI: {
const struct osmo_lac_and_ci_id *id = &cil.id_list[0].lac_and_ci;
lac = id->lac;
+ ci = id->ci;
break;
}
case CELL_IDENT_LAI_AND_LAC: {
@@ -317,7 +320,8 @@
lac = cil.id_list[0].lac;
break;
- case CELL_IDENT_CI:
+ case CELL_IDENT_CI: /* FIXME: why LAC is mandatory is we have CI? */
+ ci = cil.id_list[0].ci;
case CELL_IDENT_NO_CELL:
case CELL_IDENT_BSS:
LOGP(DBSSAP, LOGL_ERROR,
@@ -342,7 +346,7 @@
}
/* Create new subscriber context */
- conn = subscr_conn_allocate_a(a_conn_info, network, lac, scu, a_conn_info->conn_id);
+ conn = subscr_conn_allocate_a(a_conn_info, network, lac, ci, scu, a_conn_info->conn_id);
/* Handover location update to the MSC code */
rc = msc_compl_l3(conn, msg, 0);
diff --git a/src/libmsc/iucs.c b/src/libmsc/iucs.c
index a3092f8..0fe7e78 100644
--- a/src/libmsc/iucs.c
+++ b/src/libmsc/iucs.c
@@ -57,7 +57,7 @@
DEBUGP(DIUCS, "Allocating IuCS subscriber conn: lac %d, conn_id %" PRIx32 "\n",
lac, ue->conn_id);
- conn = msc_subscr_conn_alloc(network, RAN_UTRAN_IU, lac);
+ conn = msc_subscr_conn_alloc(network, RAN_UTRAN_IU, lac, 0); /* FIXME: is there equivalent for CI? */
if (!conn)
return NULL;
diff --git a/src/libmsc/subscr_conn.c b/src/libmsc/subscr_conn.c
index e6fa7e1..6bbbeed 100644
--- a/src/libmsc/subscr_conn.c
+++ b/src/libmsc/subscr_conn.c
@@ -628,7 +628,7 @@
* conn. As long as the FSM is waiting for responses from the subscriber, it will itself hold a use count
* on the conn. */
struct gsm_subscriber_connection *msc_subscr_conn_alloc(struct gsm_network *network,
- enum ran_type via_ran, uint16_t lac)
+ enum ran_type via_ran, uint16_t lac, uint16_t ci)
{
struct gsm_subscriber_connection *conn;
struct osmo_fsm_inst *fi;
@@ -649,6 +649,7 @@
.network = network,
.via_ran = via_ran,
.lac = lac,
+ .ci = ci,
.fi = fi,
};
diff --git a/tests/msc_vlr/msc_vlr_test_rest.c b/tests/msc_vlr/msc_vlr_test_rest.c
index 247e7ae..5a50420 100644
--- a/tests/msc_vlr/msc_vlr_test_rest.c
+++ b/tests/msc_vlr/msc_vlr_test_rest.c
@@ -31,7 +31,7 @@
EXPECT_ACCEPTED(false);
btw("freshly allocated conn");
- g_conn = msc_subscr_conn_alloc(net, RAN_GERAN_A, 123);
+ g_conn = msc_subscr_conn_alloc(net, RAN_GERAN_A, 123, 0);
EXPECT_ACCEPTED(false);
btw("conn_fsm present, in state NEW");
diff --git a/tests/msc_vlr/msc_vlr_tests.c b/tests/msc_vlr/msc_vlr_tests.c
index 1192cf2..f887837 100644
--- a/tests/msc_vlr/msc_vlr_tests.c
+++ b/tests/msc_vlr/msc_vlr_tests.c
@@ -191,7 +191,7 @@
struct gsm_subscriber_connection *conn_new(void)
{
struct gsm_subscriber_connection *conn;
- conn = msc_subscr_conn_alloc(net, rx_from_ran, 23);
+ conn = msc_subscr_conn_alloc(net, rx_from_ran, 23, 0);
if (conn->via_ran == RAN_UTRAN_IU) {
struct ranap_ue_conn_ctx *ue_ctx = talloc_zero(conn, struct ranap_ue_conn_ctx);
*ue_ctx = (struct ranap_ue_conn_ctx){
--
To view, visit https://gerrit.osmocom.org/11746
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I8544c30ea800ce8356a227b03a8b21bf3252be7e
Gerrit-Change-Number: 11746
Gerrit-PatchSet: 1
Gerrit-Owner: Max <msuraev at sysmocom.de>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20181112/de70fb61/attachment.htm>