pespin has uploaded this change for review. (
https://gerrit.osmocom.org/c/libosmo-gprs/+/33811 )
Change subject: WIP: sm: Handle GMMSM-MODIFY.ind primitive
......................................................................
WIP: sm: Handle GMMSM-MODIFY.ind primitive
Change-Id: Ic765b7a565cac4abcf34d8c6868e103971d17822
---
M src/sm/sm_prim.c
1 file changed, 43 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmo-gprs refs/changes/11/33811/1
diff --git a/src/sm/sm_prim.c b/src/sm/sm_prim.c
index b513aa7..41fd0ec 100644
--- a/src/sm/sm_prim.c
+++ b/src/sm/sm_prim.c
@@ -530,6 +530,37 @@
return rc;
}
+/* Osmocom specific, GMMSM-MODIFY-IND */
+static int gprs_sm_prim_handle_gmmsm_modify_ind(struct osmo_gprs_gmm_prim *gmm_prim)
+{
+ struct osmo_gprs_gmm_gmmsm_prim *gmmsm = &gmm_prim->gmmsm;
+ struct gprs_sm_entity *sme;
+ struct gprs_sm_ms *ms;
+ int rc;
+
+ sme = gprs_sm_find_sme_by_sess_id(gmmsm->sess_id);
+ if (!sme) {
+ LOGSM(LOGL_ERROR, "Rx GMMSM-MODIFY.ind for non existing SM Entity\n");
+ return -EINVAL;
+ }
+
+ ms = sme->ms;
+
+ /* Update allocated PTMSI: */
+ if (gmm_prim->gmmsm.modify_ind.allocated_ptmsi != GSM_RESERVED_TMSI)
+ ms->gmm.ptmsi = gmm_prim->gmmsm.modify_ind.allocated_ptmsi;
+ ms->gmm.ptmsi_sig = gmm_prim->gmmsm.modify_ind.allocated_ptmsi_sig;
+ /* Update allocated TLLI: */
+ ms->gmm.tlli = gmm_prim->gmmsm.modify_ind.allocated_tlli;
+ /* Update the current RAI: */
+ memcpy(&ms->gmm.ra, &gmm_prim->gmmsm.modify_ind.rai,
sizeof(ms->gmm.ra));
+
+ /* TODO: Handle gmm_prim->gmmsm.modify_ind.pdp_ctx_status */
+ /* TODO: Handle gmm_prim->gmmsm.modify_ind.rx_npdu_numbers_list */
+
+ return rc;
+}
+
static int gprs_sm_prim_handle_gmmsm(struct osmo_gprs_gmm_prim *gmm_prim)
{
int rc = 0;
@@ -543,6 +574,9 @@
case OSMO_PRIM(OSMO_GPRS_GMM_GMMSM_UNITDATA, PRIM_OP_INDICATION):
rc = gprs_sm_prim_handle_gmmsm_unitdata_ind(gmm_prim);
break;
+ case OSMO_PRIM(OSMO_GPRS_GMM_GMMSM_MODIFY, PRIM_OP_INDICATION):
+ rc = gprs_sm_prim_handle_gmmsm_modify_ind(gmm_prim);
+ break;
default:
rc = gprs_sm_prim_handle_gmm_unsupported(gmm_prim);
rc = 1;
--
To view, visit
https://gerrit.osmocom.org/c/libosmo-gprs/+/33811
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: libosmo-gprs
Gerrit-Branch: master
Gerrit-Change-Id: Ic765b7a565cac4abcf34d8c6868e103971d17822
Gerrit-Change-Number: 33811
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: newchange