This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "The OpenBSC GSM Base Station Controller (+MSC/HLR/SGSN)".
The branch, master has been updated via 02ab91e6a73e16da51918b52548a0f4be4c6a0f6 (commit) via a0b6efb3685ea90190cfbd9423a74c181ea4f12f (commit) via f951a01bb227e524eb369051c95fbebace7570d0 (commit) via f6e7d99d54cc75fdc19433011afb5eaaa8a2a002 (commit) via c4f9bf3142f54b63174f653b07103dd6ab36b1ae (commit) via 80d07e30c76f2bd72ee382b4b7941262c1d5865d (commit) via 106f547733450afda1ddbd7e886dc8c902fed4d4 (commit) via 144b8b1ca77f628ea4cf87ff903b7e79f0abf9dd (commit) via 423f8bfa027d544867dcf7afc188a8ea5221e2bc (commit) via 0c06f98ced2b70801147eb52d6596079e473dfc9 (commit) via b1c074f62c1d04138b751f71e3b07fbb0a521898 (commit) via abdf02b9b988a816201b4530f36f709ca4c146ac (commit) via a790456f1b826ea204f47c4aa4973dc777d00d2a (commit) via 0074a77424c95d2d7d0608dc0dfabc1948e62fe0 (commit) via 93eae8ec78d145cf87b7858ebee60c72da7a2d20 (commit) from 3911880b68ddd92c9dd89d6ac20c26807e33f905 (commit)
Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below.
- Log ----------------------------------------------------------------- http://cgit.osmocom.org/openbsc/commit/?id=02ab91e6a73e16da51918b52548a0f4be...
commit 02ab91e6a73e16da51918b52548a0f4be4c6a0f6 Author: Jacob Erlbeck jerlbeck@sysmocom.de Date: Wed Nov 12 09:53:45 2014 +0100
sgsn: Cross-link gsm_subscriber and sgsn_mm_ctx
To implement subscriber based authorization a data structure is needed that keeps the subscriber data. The MSC already uses a similar struct named gsm_subscriber whose implementation is split into a generic part (allocation, retrieval, reference counting, list maintenance) and MSC related parts. For GPRS, only the generic part will be used and specific fields may be added when needed.
This patch adds a field mm to struct gsm_subscriber that will be used by the SGSN to store a reference to the current MM context (or NULL if there is none). This also adds a field subscr to struct sgsn_mm_ctx that reversely points to a gsm_subscriber (or NULL if there is none). Either both fields are NULL or both fields are non-NULL. Note that subscr is being reference counted.
Sponsored-by: On-Waves ehf
http://cgit.osmocom.org/openbsc/commit/?id=a0b6efb3685ea90190cfbd9423a74c181...
commit a0b6efb3685ea90190cfbd9423a74c181ea4f12f Author: Jacob Erlbeck jerlbeck@sysmocom.de Date: Thu Nov 13 10:48:39 2014 +0100
sgsn: Remove explicit sgsn_instance parameters
Currently the function in sgsn_auth.c either have an sgsn_config or an sgsn_instance parameter. Since then global sgsn variable is already being used in that file and since other parts of the SGSN related code also rely on a global sgsn singleton, these parameters pretend to provide a flexibility that is not really supported.
Therefore this patch removes these parameters except for the ACL related functions, which do not call code that uses the sgsn variable.
Sponsored-by: On-Waves ehf
http://cgit.osmocom.org/openbsc/commit/?id=f951a01bb227e524eb369051c95fbebac...
commit f951a01bb227e524eb369051c95fbebace7570d0 Author: Jacob Erlbeck jerlbeck@sysmocom.de Date: Fri Nov 7 14:17:44 2014 +0100
sgsn: Refactor sgsn_auth to separate request and authorization
Currently the authorization is done in sgsn_auth_request for ACL based authorization. This doesn't match the way remote authorization would work, so that there is a second call to sgsn_auth_state already present in sgsn_auth_update.
This patch removes the autorization check completely from sgsn_auth_request which in turn calls sgsn_auth_update directly now.
Sponsored-by: On-Waves ehf
http://cgit.osmocom.org/openbsc/commit/?id=f6e7d99d54cc75fdc19433011afb5eaaa...
commit f6e7d99d54cc75fdc19433011afb5eaaa8a2a002 Author: Jacob Erlbeck jerlbeck@sysmocom.de Date: Thu Nov 6 15:43:10 2014 +0100
sgsn: Don't assign a new P-TMSI if one is pending
Currently every time an RA Update Req or an Attach Req is processed, a new P-TMSI is allocated. When an MS issues another of these messages before it has completed the first procedure, old_ptmsi is replaced by ptmsi (and thus lost) and ptmsi is replaced by the newly allocated P-TMSI. This can confuse the gbproxy, which can loose track of the logical link then. At least a Blackberry emits a double set of RA Upd Req messages from time to time which may be just 20ms apart.
This patch adds a check whether mm->ptmsi or mm->old_ptmsi are set. If both are set, the P-TMSI is not re-allocated. This is only the case, when the Complete message has not been received yet, since that message will reset old_ptmsi.
Sponsored-by: On-Waves ehf
http://cgit.osmocom.org/openbsc/commit/?id=c4f9bf3142f54b63174f653b07103dd6a...
commit c4f9bf3142f54b63174f653b07103dd6ab36b1ae Author: Jacob Erlbeck jerlbeck@sysmocom.de Date: Tue Nov 11 08:55:13 2014 +0100
sgsn: Don't send XID reset after Detach Accept
Currently when a Detach Accept is received for an unknown TLLI (which is in general the case afer the SGSN has requested the detachment), an XID reset is sent to the BSS, causing a BSSGP Status message. This happens in gsm0408_rcv_gmm.
This patch moves the corresponding call to gprs_llgmm_reset downwards so that it is not being called in that case.
Addresses: SGSN->BSS TLLI: 0xd75b91d9 SAPI: LLGMM, UI (DTAP) (GMM) Detach Request BSS->SGSN TLLI: 0xd75b91d9 SAPI: LLGMM, UI (DTAP) (GMM) Detach Accept SGSN->BSS TLLI: 0xd75b91d9 SAPI: LLGMM, U, XID (Reset, IOV-UI) BSS->SGSN TLLI: --- BSSGP STATUS (Unknown MS)
Sponsored-by: On-Waves ehf
http://cgit.osmocom.org/openbsc/commit/?id=80d07e30c76f2bd72ee382b4b7941262c...
commit 80d07e30c76f2bd72ee382b4b7941262c1d5865d Author: Jacob Erlbeck jerlbeck@sysmocom.de Date: Thu Nov 6 13:43:41 2014 +0100
sgsn: Cleanup after RA Update Reject / Attach Reject
Currently, the LLME is not cleaned up after sending an RA Update Reject. This happens after entering a routing area from outside, since in that case the SGSN sends an RA Update Reject (implicitly detached) which causes the MS to restart the attach procedure. The LLME is also not updated if an Attach Request with message errors (encoding, invalid MI type) is received or if an MM context cannot be allocated.
This patch changes gsm48_rx_gmm_ra_upd_req and gsm48_rx_gmm_att_req to unassign the LLME or free the MM context (if available) after a Reject message has been sent.
Ticket: OW#1324 Sponsored-by: On-Waves ehf
http://cgit.osmocom.org/openbsc/commit/?id=106f547733450afda1ddbd7e886dc8c90...
commit 106f547733450afda1ddbd7e886dc8c902fed4d4 Author: Jacob Erlbeck jerlbeck@sysmocom.de Date: Tue Nov 4 10:08:37 2014 +0100
sgsn: Add 'acl-only' authentication policy
Currently the VTY 'auth-policy' command results in setting or clearing the acl_enabled flag. This also enables the matching of the MCC/MNC prefix of the IMSI.
This patch adds an additional policy 'acl-only' which disables the MCC/MNC matching and relies on the ACL only.
Sponsored-by: On-Waves ehf
http://cgit.osmocom.org/openbsc/commit/?id=144b8b1ca77f628ea4cf87ff903b7e79f...
commit 144b8b1ca77f628ea4cf87ff903b7e79f0abf9dd Author: Jacob Erlbeck jerlbeck@sysmocom.de Date: Tue Nov 4 11:15:01 2014 +0100
sgsn/test: Add VTY tests for the SGSN
This patch adds some basic SGSN tests to vty_test_runner.py: - check for config tree nodes - check specific show commands
Sponsored-by: On-Waves ehf
http://cgit.osmocom.org/openbsc/commit/?id=423f8bfa027d544867dcf7afc188a8ea5...
commit 423f8bfa027d544867dcf7afc188a8ea5221e2bc Author: Jacob Erlbeck jerlbeck@sysmocom.de Date: Fri Oct 24 18:09:54 2014 +0200
sgsn: Make authorization asynchronous
Currently the authorization of an IMSI is done by checking ACLs synchronously which is not feasible when the subscriber data has to be retrieved from an external source.
This patch changes this by using a callback when the information is available. This is also done when only ACL are checked, in this case the callback is invoked from within sgsn_auth_request(). The callback function sgsn_update_subscriber_data calls sgsn_auth_update which in turn calls either gsm0408_gprs_access_granted or gsm0408_gprs_access_denied. gsm48_gmm_authorize is extended by a call to sgsn_auth_request when IMSI and IMEI are available but the auth_state is unknown.
The change has been successfully tested with single phones (E71 and IPhone 5c).
Sponsored-by: On-Waves ehf
http://cgit.osmocom.org/openbsc/commit/?id=0c06f98ced2b70801147eb52d6596079e...
commit 0c06f98ced2b70801147eb52d6596079e473dfc9 Author: Jacob Erlbeck jerlbeck@sysmocom.de Date: Wed Oct 29 22:12:20 2014 +0100
sgsn: Move IMSI authorization to gsm48_gmm_authorize
Currently the IMSI is only checked immediately when an Attach Request is received that contains an IMSI IE. If it contains a P-TMSI instead, access is always granted.
This commit moves the IMSI check to gsm48_gmm_authorize where it is applied when IMSI and IMEI have been acquired. This fixes the authorization when the Attach Accept doesn't contain an IMSI.
Sponsored-by: On-Waves ehf
http://cgit.osmocom.org/openbsc/commit/?id=b1c074f62c1d04138b751f71e3b07fbb0...
commit b1c074f62c1d04138b751f71e3b07fbb0a521898 Author: Jacob Erlbeck jerlbeck@sysmocom.de Date: Fri Oct 31 12:27:11 2014 +0100
sgsn: Fix LLME leak when forcing a reattach
Currently when forceing a reattach by sending a Detach Request (reattach), the SGSN waits for the Detach Accept until it frees the MM context (if present) and the LLME. If that message gets lost or isn't sent by the MS, the LLME is never freed if it isn't bound to an MM context.
This patch adds code to free the MM context/LLME when forcing a reattachment.
Sponsored-by: On-Waves ehf
http://cgit.osmocom.org/openbsc/commit/?id=abdf02b9b988a816201b4530f36f709ca...
commit abdf02b9b988a816201b4530f36f709ca4c146ac Author: Jacob Erlbeck jerlbeck@sysmocom.de Date: Fri Oct 31 12:20:49 2014 +0100
sgsn: Split gsm0408_gprs_force_reattach into 2 functions
This patch replaces gsm0408_gprs_force_reattach(msg, mmctx) by two functions - gsm0408_gprs_force_reattach(mmctx) - gsm0408_gprs_force_reattach_oldmsg(msg)
The old function basically consists of the code of the two new functions, where the code path selected depends on mmctx == NULL, which is harder to maintain, less obvious to use, and not consistent with many other SGSN functions.
Sponsored-by: On-Waves ehf
http://cgit.osmocom.org/openbsc/commit/?id=a790456f1b826ea204f47c4aa4973dc77...
commit a790456f1b826ea204f47c4aa4973dc777d00d2a Author: Jacob Erlbeck jerlbeck@sysmocom.de Date: Mon Nov 3 10:12:52 2014 +0100
sgsn: Call mm_ctx_cleanup_free to deregister MM context
Currently the MM context isn't always removed when it is de-registered (mmctx_timer_cb), mm_state is set to GMM_DEREGISTERED instead. This can lead to left-over MM contexts which are only cleaned up if the MS reattaches.
This patch replaces all of these assignments by a call to mm_ctx_cleanup_free.
Ticket: OW#1324 Sponsored-by: On-Waves ehf
http://cgit.osmocom.org/openbsc/commit/?id=0074a77424c95d2d7d0608dc0dfabc194...
commit 0074a77424c95d2d7d0608dc0dfabc1948e62fe0 Author: Jacob Erlbeck jerlbeck@sysmocom.de Date: Tue Oct 28 16:23:46 2014 +0100
sgsn: Cleanup GMM state transitions
Currently the GMM state is set to GMM-REGISTERED when an Attach Accept or a RA Update Accept message is sent, even if a new P-TMSI is included. In this case 04.08 requires (see 4.7.3.1.3 and 4.7.5.1.3), that the state is set to GMM-COMMON-PROCEDURE-INITIATED when the Accept is sent. When the Complete is received, the SGSN shall set the state to GMM-REGISTERED.
This patch modifies the state updates accordingly.
Sponsored-by: On-Waves ehf
http://cgit.osmocom.org/openbsc/commit/?id=93eae8ec78d145cf87b7858ebee60c72d...
commit 93eae8ec78d145cf87b7858ebee60c72da7a2d20 Author: Jacob Erlbeck jerlbeck@sysmocom.de Date: Tue Oct 28 12:23:29 2014 +0100
sgsn: Reorganize and fix gsm48_gmm_authorize
Currently the order of the 'if' clauses in gsm48_gmm_authorize doesn't match the order in which the conditional parts are entered. This makes it difficult to maintain. In addition the t3350_mode is not stored in every path, so that this information is lost when the identification procedure is started. Since the default value coincidentally is GMM_T3350_MODE_ATT, this doesn't hurt for Attach Requests which are the only messages that initially trigger the authentication yet.
This patch changes the order of the 'if' clause to match the processing order, it removes the t3350_mode parameter entirely and introduces a mm->pending_req field. The latter must be set when the request that causes the authorization before calling gsm48_gmm_authorize. The gprs_t3350_mode enum is extended by GMM_T3350_MODE_NONE (value 0, which is the default) to make it possible to detect related initialisation errors or race conditions.
Sponsored-by: On-Waves ehf
-----------------------------------------------------------------------
Summary of changes: openbsc/include/openbsc/gprs_gmm.h | 5 +- openbsc/include/openbsc/gprs_sgsn.h | 35 ++- openbsc/include/openbsc/gsm_subscriber.h | 4 + openbsc/include/openbsc/sgsn.h | 8 +- openbsc/src/gprs/gprs_gmm.c | 264 +++++++++++++++++------ openbsc/src/gprs/gprs_sgsn.c | 8 +- openbsc/src/gprs/sgsn_auth.c | 102 ++++++++- openbsc/src/gprs/sgsn_main.c | 4 +- openbsc/src/gprs/sgsn_vty.c | 25 ++- openbsc/tests/sgsn/sgsn_test.c | 352 ++++++++++++++++++++++++++++++- openbsc/tests/sgsn/sgsn_test.ok | 10 + openbsc/tests/vty_test_runner.py | 69 ++++++ 12 files changed, 792 insertions(+), 94 deletions(-)
hooks/post-receive