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/.
lynxis lazus gerrit-no-reply at lists.osmocom.orglynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/15483 Change subject: Iu: implement a user inactivity timer ...................................................................... Iu: implement a user inactivity timer The user inactivity timer is similiar to the Gb READY timer and redruce the resources taken by an idle UE. Change-Id: I66c2ac0350cb074aefd9a22c5121acf723f239d3 --- M include/osmocom/sgsn/gprs_mm_state_iu_fsm.h M src/sgsn/gprs_mm_state_iu_fsm.c M src/sgsn/sgsn_vty.c 3 files changed, 26 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/83/15483/1 diff --git a/include/osmocom/sgsn/gprs_mm_state_iu_fsm.h b/include/osmocom/sgsn/gprs_mm_state_iu_fsm.h index 7f02bcc..05342f9 100644 --- a/include/osmocom/sgsn/gprs_mm_state_iu_fsm.h +++ b/include/osmocom/sgsn/gprs_mm_state_iu_fsm.h @@ -19,6 +19,7 @@ E_PMM_PS_CONN_ESTABLISH, E_PMM_IMPLICIT_DETACH, /* = E_PS_ATTACH_REJECT, E_RAU_REJECT */ E_PMM_RA_UPDATE, /* = Serving RNC relocation */ + E_PMM_USER_INACTIVITY, /* when the inactivity timer runs out */ }; extern struct osmo_fsm mm_state_iu_fsm; diff --git a/src/sgsn/gprs_mm_state_iu_fsm.c b/src/sgsn/gprs_mm_state_iu_fsm.c index b098f20..2996c4e 100644 --- a/src/sgsn/gprs_mm_state_iu_fsm.c +++ b/src/sgsn/gprs_mm_state_iu_fsm.c @@ -12,7 +12,7 @@ static const struct osmo_tdef_state_timeout mm_state_iu_fsm_timeouts[32] = { [ST_PMM_DETACHED] = { }, - [ST_PMM_CONNECTED] = { }, + [ST_PMM_CONNECTED] = { .T=-3314 }, [ST_PMM_IDLE] = { }, }; @@ -47,6 +47,10 @@ static void st_pmm_connected(struct osmo_fsm_inst *fi, uint32_t event, void *data) { struct sgsn_mm_ctx *ctx = fi->priv; + static const struct RANAP_Cause user_inactive_cause = { + .present = RANAP_Cause_PR_radioNetwork, + .choice.radioNetwork = RANAP_CauseRadioNetwork_user_inactivity, + }; switch(event) { case E_PMM_PS_CONN_RELEASE: @@ -57,6 +61,10 @@ sgsn_ranap_iu_release_free(ctx, NULL); mm_state_iu_fsm_state_chg(fi, ST_PMM_DETACHED); break; + case E_PMM_USER_INACTIVITY: + sgsn_ranap_iu_release_free(ctx, &user_inactive_cause); + mm_state_iu_fsm_state_chg(fi, ST_PMM_DETACHED); + break; case E_PMM_RA_UPDATE: break; } @@ -81,6 +89,18 @@ } } +static int pmm_state_fsm_timer_cb(struct osmo_fsm_inst *fi) +{ + switch(fi->state) { + case ST_PMM_CONNECTED: + /* timer for pmm state. state=CONNECTED: -T3314 (User inactivity timer) */ + osmo_fsm_inst_dispatch(fi, E_PMM_USER_INACTIVITY, NULL); + break; + } + + return 0; +} + static struct osmo_fsm_state mm_state_iu_fsm_states[] = { [ST_PMM_DETACHED] = { .in_event_mask = X(E_PMM_PS_ATTACH) | X(E_PMM_IMPLICIT_DETACH), @@ -89,7 +109,7 @@ .action = st_pmm_detached, }, [ST_PMM_CONNECTED] = { - .in_event_mask = X(E_PMM_PS_CONN_RELEASE) | X(E_PMM_RA_UPDATE) | X(E_PMM_IMPLICIT_DETACH), + .in_event_mask = X(E_PMM_PS_CONN_RELEASE) | X(E_PMM_RA_UPDATE) | X(E_PMM_IMPLICIT_DETACH) | X(E_PMM_USER_INACTIVITY), .out_state_mask = X(ST_PMM_DETACHED) | X(ST_PMM_IDLE), .name = "Connected", .action = st_pmm_connected, @@ -109,6 +129,7 @@ OSMO_VALUE_STRING(E_PMM_PS_CONN_ESTABLISH), OSMO_VALUE_STRING(E_PMM_IMPLICIT_DETACH), OSMO_VALUE_STRING(E_PMM_RA_UPDATE), + OSMO_VALUE_STRING(E_PMM_USER_INACTIVITY), { 0, NULL } }; diff --git a/src/sgsn/sgsn_vty.c b/src/sgsn/sgsn_vty.c index 9200822..17b64c8 100644 --- a/src/sgsn/sgsn_vty.c +++ b/src/sgsn/sgsn_vty.c @@ -104,6 +104,8 @@ { .T=3386, .default_val=GSM0408_T3386_SECS, .desc="Wait for MODIFY PDP CTX ACK timer (s)" }, { .T=3395, .default_val=GSM0408_T3395_SECS, .desc="Wait for DEACT PDP CTX ACK timer (s)" }, { .T=3397, .default_val=GSM0408_T3397_SECS, .desc="Wait for DEACT AA PDP CTX ACK timer (s)" }, + /* non spec timers */ + { .T=-3314, .default_val=GSM0408_T3314_SECS, .desc="Iu User inactivity timer. On expiry release Iu connection (s)" }, {} }; -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/15483 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I66c2ac0350cb074aefd9a22c5121acf723f239d3 Gerrit-Change-Number: 15483 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus <lynxis at fe80.eu> Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20190911/2cc26a14/attachment.htm>