lynxis lazus has uploaded this change for review.

View Change

libvlr: vsub: move attached_via_ran out of cs struct

The attached_via_ran is also used by the PS.

Change-Id: I34e0d5e04adb54802ba59081508db992c964d6a2
---
M include/osmocom/vlr/vlr.h
M src/libmsc/gsm_04_08.c
M src/libmsc/msc_a.c
M src/libmsc/msc_vty.c
M src/libmsc/msub.c
M src/libmsc/paging.c
M src/libvlr/vlr.c
M src/libvlr/vlr_sgs_fsm.c
8 files changed, 12 insertions(+), 14 deletions(-)

git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/76/43476/1
diff --git a/include/osmocom/vlr/vlr.h b/include/osmocom/vlr/vlr.h
index 28c23a3..cf6b73b 100644
--- a/include/osmocom/vlr/vlr.h
+++ b/include/osmocom/vlr/vlr.h
@@ -166,6 +166,7 @@

void *msc_conn_ref;

+ enum osmo_rat_type attached_via_ran;
/* PS (SGSN) specific parts */
struct {
struct llist_head pdp_list;
@@ -178,7 +179,6 @@
/* list of struct subscr_request */
struct llist_head requests;
uint8_t lac;
- enum osmo_rat_type attached_via_ran;
} cs;
/* SGs (MME) specific parts */
struct {
diff --git a/src/libmsc/gsm_04_08.c b/src/libmsc/gsm_04_08.c
index de0a693..7a63220 100644
--- a/src/libmsc/gsm_04_08.c
+++ b/src/libmsc/gsm_04_08.c
@@ -1559,7 +1559,7 @@
/* FIXME: would be better to modify vsub->* only after the subscriber is authenticated, in
* evaluate_acceptance_outcome(conn_accepted == true). */

- vsub->cs.attached_via_ran = msc_a->c.ran->type;
+ vsub->attached_via_ran = msc_a->c.ran->type;

/* In case we have already received Classmark Information before the VLR Subscriber was
* associated with the conn: merge the new Classmark into vsub->classmark. Don't overwrite valid
diff --git a/src/libmsc/msc_a.c b/src/libmsc/msc_a.c
index 631e711..fca749c 100644
--- a/src/libmsc/msc_a.c
+++ b/src/libmsc/msc_a.c
@@ -999,7 +999,7 @@
/* The connection is cleared. The MS will now go back to 4G,
Switch the RAN type back to SGS. */
if (vsub && vsub->sgs_fsm->state == SGS_UE_ST_ASSOCIATED)
- vsub->cs.attached_via_ran = OSMO_RAT_EUTRAN_SGS;
+ vsub->attached_via_ran = OSMO_RAT_EUTRAN_SGS;
}

if (vsub)
@@ -1441,11 +1441,11 @@
return -EACCES;
}

- if (vsub && vsub->cs.attached_via_ran != msc_a->c.ran->type) {
+ if (vsub && vsub->attached_via_ran != msc_a->c.ran->type) {
LOG_MSC_A(msc_a, LOGL_ERROR,
"Illegal situation: RAN type mismatch:"
" attached via %s, received message via %s\n",
- osmo_rat_type_name(vsub->cs.attached_via_ran),
+ osmo_rat_type_name(vsub->attached_via_ran),
osmo_rat_type_name(msc_a->c.ran->type));
return -EACCES;
}
diff --git a/src/libmsc/msc_vty.c b/src/libmsc/msc_vty.c
index cacf501..6fe9bba 100644
--- a/src/libmsc/msc_vty.c
+++ b/src/libmsc/msc_vty.c
@@ -1035,7 +1035,7 @@
vsub->cgi.lai.lac, vsub->cgi.cell_identity,
VTY_NEWLINE);
MSC_VTY_DUMP(vty, offset, "RAN type: %s%s",
- osmo_rat_type_name(vsub->cs.attached_via_ran),
+ osmo_rat_type_name(vsub->attached_via_ran),
VTY_NEWLINE);

MSC_VTY_DUMP(vty, offset, "IMSI: %s%s",
diff --git a/src/libmsc/msub.c b/src/libmsc/msub.c
index c821c1c..0221bae 100644
--- a/src/libmsc/msub.c
+++ b/src/libmsc/msub.c
@@ -378,7 +378,7 @@
if (vsub) {
vlr_subscr_get(vsub, VSUB_USE_MSUB);
msub->vsub = vsub;
- vsub->cs.attached_via_ran = msub_ran(msub)->type;
+ vsub->attached_via_ran = msub_ran(msub)->type;
msub_update_id(msub);
}
return 0;
diff --git a/src/libmsc/paging.c b/src/libmsc/paging.c
index 8c166c9..1139dcc 100644
--- a/src/libmsc/paging.c
+++ b/src/libmsc/paging.c
@@ -50,7 +50,7 @@
{
struct vlr_subscr *vsub = data;

- if (vsub->cs.attached_via_ran == OSMO_RAT_EUTRAN_SGS)
+ if (vsub->attached_via_ran == OSMO_RAT_EUTRAN_SGS)
sgs_iface_tx_serv_abrt(vsub);

paging_expired(vsub);
@@ -65,7 +65,7 @@
/* The subscriber was last seen in subscr->lac. Find out which
* BSCs/RNCs are responsible and send them a paging request via open
* SCCP connections (if any). */
- switch (vsub->cs.attached_via_ran) {
+ switch (vsub->attached_via_ran) {
case OSMO_RAT_GERAN_A:
return ran_peers_down_paging(net->a.sri, CELL_IDENT_LAC, vsub, pr->cause);
case OSMO_RAT_UTRAN_IU:
@@ -110,7 +110,7 @@
/* reduced on the first paging callback */
vlr_subscr_get(vsub, VSUB_USE_PAGING);
vsub->cs.is_paging = true;
- paging_response_timer = osmo_tdef_get(msc_ran_infra[vsub->cs.attached_via_ran].tdefs, -4, OSMO_TDEF_S, 10);
+ paging_response_timer = osmo_tdef_get(msc_ran_infra[vsub->attached_via_ran].tdefs, -4, OSMO_TDEF_S, 10);
osmo_timer_setup(&vsub->cs.paging_response_timer, paging_response_timer_cb, vsub);
osmo_timer_schedule(&vsub->cs.paging_response_timer, paging_response_timer, 0);
}
diff --git a/src/libvlr/vlr.c b/src/libvlr/vlr.c
index eb1f209..df8eb9e 100644
--- a/src/libvlr/vlr.c
+++ b/src/libvlr/vlr.c
@@ -909,9 +909,7 @@

gsup_msg.message_type = OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST;
gsup_msg.cn_domain = vlr_is_cs(vsub->vlr) ? OSMO_GSUP_CN_DOMAIN_CS : OSMO_GSUP_CN_DOMAIN_PS;
-
- if (vlr_is_cs(vsub->vlr))
- gsup_msg.current_rat_type = vsub->cs.attached_via_ran;
+ gsup_msg.current_rat_type = vsub->attached_via_ran;

rc = vlr_subscr_tx_gsup_message(vsub, &gsup_msg);

diff --git a/src/libvlr/vlr_sgs_fsm.c b/src/libvlr/vlr_sgs_fsm.c
index f576b86..1ba4b35 100644
--- a/src/libvlr/vlr_sgs_fsm.c
+++ b/src/libvlr/vlr_sgs_fsm.c
@@ -153,7 +153,7 @@
}

vlr_sgs_fsm_update_id(vsub);
- vsub->cs.attached_via_ran = OSMO_RAT_EUTRAN_SGS;
+ vsub->attached_via_ran = OSMO_RAT_EUTRAN_SGS;

/* Check if we expect a TMSI REALLOCATION COMPLETE message from the MME
* by checking the tmsi_new flag. If this flag is not GSM_RESERVED_TMSI

To view, visit change 43476. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: newchange
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Change-Id: I34e0d5e04adb54802ba59081508db992c964d6a2
Gerrit-Change-Number: 43476
Gerrit-PatchSet: 1
Gerrit-Owner: lynxis lazus <lynxis@fe80.eu>