lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/43476?usp=email )
Change subject: libvlr: vsub: move attached_via_ran out of cs struct ......................................................................
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