aboutsummaryrefslogtreecommitdiffstats
path: root/include/osmocom/sgsn/gprs_sgsn.h
AgeCommit message (Collapse)AuthorFilesLines
2019-11-23Use libosmocore constant for IMSI length in ACL entryMax1-1/+1
Presumably the length is chosen to match that of imsi in osmo_gsup_message. Change-Id: I138aea409aab0c748c75546e628797fc7498bf40
2019-11-21Improve logging in gprs_llc.c codePau Espin Pedrol1-3/+3
Change-Id: Id89cc6760179fb9b1709a30b5d1af41d466b280b
2019-09-03Implement GMM State using osmocom FSMPau Espin Pedrol1-10/+1
State machine inspired in the one from TS 24.008 4.1.3.3.1. Some state transitions are inroduced in the code but are still commented out since we lack some functionalitites or improvements in the code to handle different scenarios. Most of the logic is still outside of the FSM, but at least now the states are handled in a sane way triggered by events. Change-Id: Idecb43c10d66224d4f9ba9320825040ce6cf9a07
2019-09-02enum gprs_gmm_state: Fix spec referencePau Espin Pedrol1-1/+1
Change-Id: I62121e46e5091e5b559397aa01f107ddc23e2c18
2019-09-02vty: Print MM state and RAN type in show mm-contextPau Espin Pedrol1-0/+1
Value presviosuly printed as MM state is actually usually refereed as GMM state, so rename it. Change-Id: Ia06c53f0cd2a6348237ed3abeb9367d965745aba
2019-09-02Introduce FSM mm_state_iu_fsmPau Espin Pedrol1-8/+1
Implement TS 23.060 6.1.2 Mobility Management States (Iu mode) using osmocom FSM and drop old implementation. Most of the logic on each state is still kept in gprs_gmm.c, will be inserted into the FSM later. Change-Id: I4c9cf8c27194817c56e8949af0205e1cc14af317
2019-09-02Introduce FSM mm_state_gb_fsmPau Espin Pedrol1-10/+1
Implement TS 23.060 6.1.1 Mobility Management States (A/Gb mode) using osmocom FSM and drop old implementation. Most of the logic on each state is still kept in gprs_gmm.c, will be inserted into the FSM later. Change-Id: I04004423e993107374d5a3549b8a93ac169251dd
2019-09-02Split enum gprs_pmm_state into Iu and Gb counterpartsPau Espin Pedrol1-8/+14
Those two state sets are not part of the same state machine, and are used in different scenarios, so let's split them and handle them in Gb and Iu specific parts of struct sgsn_mm_ctx. This is required in order to improve related code (for instance, use osmocom fsm). Change-Id: I6100d607da316da0595886c6968704dd9ccfbde9
2019-09-02sgsn: gtp: Drop related pdp contexts on echo timeout against GGSNPau Espin Pedrol1-0/+1
Change-Id: I7e97bac1c13a2c26203eb64e590fd75d77eb44bd
2019-09-02Introduce log helper LOGGGSN and log category DGTPPau Espin Pedrol1-0/+6
It will be used in forthcoming commits. Change-Id: I30f46f44af1d0eee324b1a995c1dad2e1315af7c
2019-08-28gtp: make echo_interval unsignedPau Espin Pedrol1-1/+1
There's no real need to use -1 to indicate echo timer as disabled, since 0 can also be used (it doesn't make sense to have a timer timeout of 0). This way code is simplified. Change-Id: I689034887188a53590eddeffda781629694eb5ed
2019-08-20gprs/gprs_gmm: implement T3314. Timeout to reset MM state READY->STANDBYAlexander Couzens1-0/+4
When a MS MM state is READY its exact location is known (PCU). On Gb, T3314 (aka TS 23.060 "READY timer") sets the MM state from READY to STANDBY, where only the RA is known. Introduce a second set of timer variables, because state timer can run while another packet state timer is timing out. Related: OS#1941 Change-Id: I4ce23ebe50d141076c20c9c56990b7103cd25e55
2019-08-20Introduce and use log macros when no mm ctx availablePau Espin Pedrol1-0/+22
Change-Id: Iba22060d8646bc8ec6227684ccb91d98cb4c7be2
2019-08-15gprs_sgsn.h: Flag MM_CTX_T_GERAN_Iu as not supportedPau Espin Pedrol1-1/+3
Change-Id: I3b53a530ab25434e2b2f4d80ad70a8a5f22bfcac
2018-12-12remove pointless declaration of struct gsm_networkStefan Sperling1-3/+0
We were passing a NULL pointer of type struct gsm_network * to ctrl_interface_setup_dynip(). Remove the pointless declaration of this struct. Also, replace the sgsn_controlif_setup() helper function with a direct call to ctrl_interface_setup_dynip(). The helper fnuction was just a thin wrapper around the latter. Change-Id: Ib4151afa5bff01e63b462cca517fb60ac0503759 Related: OS#3356
2018-12-11Use explicit parameter for sgsn_auth_init()Max1-1/+1
This is necessary to properly test ACLs in follow-up patches. Change-Id: Ibeba371234680f33ad35afbfffce9dca185228c1
2018-12-10Constify sgsn_acl_lookup() parameterMax1-1/+1
This requires I414e67a3de733fab407161b3264d3b89070ba537 in libosmocore to avoid warning about discarded const. Change-Id: Ie92637dd900b0f9eba891d5aad0b4ba0ee69c08c
2018-10-30Allocate sgsn_instance with tallocPau Espin Pedrol1-1/+2
Change-Id: I4a83c5799f0dbd5eb762039c6cfba671f6e465be
2018-09-19GTP: refactor the echo timerAlexander Couzens1-0/+1
Move the check of the echo timer into an own function. The gtp echo timer must be re-check everytime the echo-timer has been modified or deactivated via vty. Fixes the TTCN3 SGSN_Tests.TC_attach_restart_ctr_echo Change-Id: Ia33471a9a9cfc3887facb665c82094b99932052a
2018-09-19gprs_sgsn.h: fix wrong type of re-attemptsAlexander Couzens1-1/+1
The GMM ctx->gmm_att_req.auth_reattempt is used to track multiple UTMS re-sync attempt of a MS. Change-Id: I708226cec9e131dcda4234f42ed3689f4f6750e8 Fixes: f7198d7dbb84 ("gprs_gmm: introduce a GMM Attach Request FSM") Fixes: OS#3556
2018-09-13gprs_gmm: introduce a GMM Attach Request FSMAlexander Couzens1-0/+10
The old GMM Attach Request handling used a recursive function which can not handle certain states and is quite complex and hard to extend. The new FSM handles such request in a FSM and can be called multiple times. Change-Id: I58b9c17be9776a03bb2a5b21e99135cfefc8c912
2018-07-24sgsn: Fix crash using new libgtp cb_recovery2 APIPau Espin Pedrol1-1/+1
When PDP CTX CREATE ACK is received with an increased RestartCtr, cb_recovery2 is called first, which will dettach ggsn from al pdp ctx (free the pdp_t). But when giving control back from the ctrl, libgtp still uses that freed ctx and sends it back to osmo-sgsn through cb_conf(). As specs state in any case that we need to handle the message containing the increased RestartCtr as valid, we then need to avoid freeing the pdp ctx and leave handling for later in cb_conf. Depends: osmo-ggsn (libgtp) Change-Id I53e92298f2f6b84d662a3300d922e8c2ccb178bc. Change-Id: I0989c00e18ca95a099e1a312940eaac71957b444
2018-07-16Forward GGSN originated DEACT PDP CTX REQPau Espin Pedrol1-0/+1
This commit fixes TTCN3 sgsn test TC_attach_pdp_act_user_deact_mt. Change-Id: I204209c017aac8a8402cbb8d0a0200540abcc954
2018-07-13osmo-sgsn: ping GGSN periodically and check for restart counterPau Espin Pedrol1-0/+4
Before this commit, echo req/rsp logic was implemented in libgtp but never used in osmo-sgsn. This commit adds a timer which periodically sends a GTP ECHO Request to every GGSN if there's at least one pdpd context associated with it. This way by checking the restart counter in the ECHO Reply it can be known if the GGSN was restarted. In this case, logic already present in osmo-sgsn will terminate all pdp contexts associated with that GGSN. Change-Id: I9d714726785407859f26bbef052cd0efc28e8dae
2018-07-13Maintain per ggsn pdp ctx listPau Espin Pedrol1-4/+4
This way we can easily track all pdp context associated to a specific ggsn, which is useful to handle some scenarios, such as the one implemented in next commit, in which specs references that GSNs should ping only other GSNs with at least one pdp ctx in common. So the list of pdp ctx per GGSN is really useful too (and cheap computationally) to check if we should arm or disarm the echo procedure timer. So this commit can be seen as a preparation for next commit. Change-Id: I3bbcc0883df2bf1290ba8d4bd70db8baa494087a
2018-05-01GERAN: allow GSM SRES on UMTS AKA challengeNeels Hofmeyr1-1/+12
Store the established security context type (GSM or UMTS) instead of the boolean flag is_authenticated. Provide the previous boolean query with thin sgsn_mm_ctx_is_authenticated() function. Knowing which security context was established will be necessary for OS#3224, i.e. using the proper ciphering key, which is not yet tested properly, and probably not correct at this stage. This change will make new SGSN_Tests.TC_attach_umts_aka_gsm_sres pass. Related: OS#3193 OS#3224 Change-Id: I36807bad3bc55c0030d4f09cb2c369714f24bec7
2017-09-06move include/openbsc to include/osmocom/sgsnNeels Hofmeyr1-0/+484
Change-Id: I281ef585fffc2644682c8282224fb1c2da5ca795