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=02ab91e6a73e16da51918b52548a0f4b…
commit 02ab91e6a73e16da51918b52548a0f4be4c6a0f6
Author: Jacob Erlbeck <jerlbeck(a)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=a0b6efb3685ea90190cfbd9423a74c18…
commit a0b6efb3685ea90190cfbd9423a74c181ea4f12f
Author: Jacob Erlbeck <jerlbeck(a)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=f951a01bb227e524eb369051c95fbeba…
commit f951a01bb227e524eb369051c95fbebace7570d0
Author: Jacob Erlbeck <jerlbeck(a)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=f6e7d99d54cc75fdc19433011afb5eaa…
commit f6e7d99d54cc75fdc19433011afb5eaaa8a2a002
Author: Jacob Erlbeck <jerlbeck(a)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=c4f9bf3142f54b63174f653b07103dd6…
commit c4f9bf3142f54b63174f653b07103dd6ab36b1ae
Author: Jacob Erlbeck <jerlbeck(a)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=80d07e30c76f2bd72ee382b4b7941262…
commit 80d07e30c76f2bd72ee382b4b7941262c1d5865d
Author: Jacob Erlbeck <jerlbeck(a)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=106f547733450afda1ddbd7e886dc8c9…
commit 106f547733450afda1ddbd7e886dc8c902fed4d4
Author: Jacob Erlbeck <jerlbeck(a)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=144b8b1ca77f628ea4cf87ff903b7e79…
commit 144b8b1ca77f628ea4cf87ff903b7e79f0abf9dd
Author: Jacob Erlbeck <jerlbeck(a)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=423f8bfa027d544867dcf7afc188a8ea…
commit 423f8bfa027d544867dcf7afc188a8ea5221e2bc
Author: Jacob Erlbeck <jerlbeck(a)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=0c06f98ced2b70801147eb52d6596079…
commit 0c06f98ced2b70801147eb52d6596079e473dfc9
Author: Jacob Erlbeck <jerlbeck(a)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=b1c074f62c1d04138b751f71e3b07fbb…
commit b1c074f62c1d04138b751f71e3b07fbb0a521898
Author: Jacob Erlbeck <jerlbeck(a)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=abdf02b9b988a816201b4530f36f709c…
commit abdf02b9b988a816201b4530f36f709ca4c146ac
Author: Jacob Erlbeck <jerlbeck(a)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=a790456f1b826ea204f47c4aa4973dc7…
commit a790456f1b826ea204f47c4aa4973dc777d00d2a
Author: Jacob Erlbeck <jerlbeck(a)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=0074a77424c95d2d7d0608dc0dfabc19…
commit 0074a77424c95d2d7d0608dc0dfabc1948e62fe0
Author: Jacob Erlbeck <jerlbeck(a)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=93eae8ec78d145cf87b7858ebee60c72…
commit 93eae8ec78d145cf87b7858ebee60c72da7a2d20
Author: Jacob Erlbeck <jerlbeck(a)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
--
The OpenBSC GSM Base Station Controller (+MSC/HLR/SGSN)