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/osmocom-commitlog@lists.osmocom.org/.
gitosis at osmocom.org gitosis at osmocom.orgThis 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, jerlbeck/wip/gprs-patching has been updated discards 89b5af1f8d450e039602030d06ea6b0bd62925a2 (commit) discards 488cc66679e20973fc85c4bc9a39eacf46548f80 (commit) discards 51d8be51f7a4c099a72a5ebc025f3daf8710918d (commit) discards cfe222efff4a215043b6828d246b433e2faa0710 (commit) discards 71e61686c3a469f057636eec6ff2003affdbe1c1 (commit) discards c20303e00196a96b08d5be4e716774983ea92fce (commit) discards 328c5c1d40aecfe2c72e352d0d6beda4b7c86f86 (commit) discards 5355202011c9ac4a751608ecdb7d825c7f335d1e (commit) discards 7ed031b2c876d8c2ab1471d27569131c683011ee (commit) discards 77057d0820690d6f67716670ff94b240b370c118 (commit) discards 157392a168916b6828676d53d943b099e0d0708d (commit) discards 0df73b1093c7d720cc64fa967a2268a13a929c72 (commit) discards aee0cdc4db6d34855597ebe7e09abc647d8e692e (commit) discards 43e71d624c7be3cce2cec7cb419f8b4129977a9e (commit) discards f1393090b4a164bb480f45cce9f8ab54b1bc6089 (commit) discards 1636e5f607325fb2cf0fa39c7c51eea0df49a9a3 (commit) discards 9c420d46836a7bee7dbb74b75763c92a7ee1d6ad (commit) discards a5a1af953fefa425b7a1611dab0ab67f8fe9285d (commit) discards 9d3c9d60d842bf053a1481703c9615bac0312295 (commit) discards 4fc87b30c4dda8c6897b148bb0d9e400c8e22c4f (commit) discards 1fcb2dca60a43cffedb9e40fca13e86a1832b7b4 (commit) discards 866eb9fbc5711a66538fb5da2ac2238c9b035116 (commit) discards 287cf4ee746ff1eb49eea52858de7304b1735b87 (commit) discards df61af7043081b1a20646dec088677b09d67fa78 (commit) discards a77c6904227149fdea29b8ed27ac3dddf2e9cf47 (commit) discards b13a67d78b35170fed891413569b203c8b63c8a5 (commit) discards 48abb3007302f2dab329e301bbabcb75782b3a4a (commit) discards af5d51b0f6494f4b222880abef35cc696e52a013 (commit) discards 1fdcbf613508ededda08689db16c2785de614d96 (commit) discards 7c83c0e1c4670ba2c70b3093b4135f4a8ba31ed1 (commit) discards c3c9c3277519a1ed70f3bf4d3d5ae5872cd24c7a (commit) discards 771f20df7863d8d805000c19db24ed1e6754e16d (commit) discards e2e60dac618a28a80786d9d29597852e5fab52b5 (commit) discards 2159e39353aa5b30b8844921e5987df83b696630 (commit) discards c33fcd7a33d13c5cf15d0b378dc46884e7c01e59 (commit) discards fd0134c8622110678b524ebeb6d889b68d0639c7 (commit) discards 3a6aa7f3b7e74bd7ed9089bddb81bd91cd948d81 (commit) discards d3e7137cc2168ec99e4de7a31f481cce6a76da09 (commit) discards 74cd902cb970e64f25456f81b1c7899b15b53c4e (commit) discards 6a7288c1d6779bf83f005f19f12e446ca17e24b6 (commit) via 64d0007aca0bc5f3c53aa3e710d9db6b745af36e (commit) via f0974ae238ee109b046051441a9599076ddcc0f0 (commit) via abf773d673a29b3e927e8151f9d47458bfeb9153 (commit) via 3586c3491555ef7e686bcbc145a64ac2d9405710 (commit) via 6551d3169355de7e05d94c905014ff1ec9fbf264 (commit) via 145d7ddb84ef36122a0bf6a539923b558d0b3928 (commit) via 5d2546d1597645a88ef70bcbdc706c9e8a16fb9a (commit) via 3ea2200407b17dac2b704979bd92cb7563d51d15 (commit) via 1da5e744766689acca7cf5b477a0c9bb4b900c95 (commit) via ea5906244efac709eb1fbcbd021a285fc4cbe7b8 (commit) via 82b3b65f217a0432ab88909f9fb29d7aa1856541 (commit) via 5b88584b0604269b1a830f8dfe1fec7319f3cdc7 (commit) via 4c3cf3701c217c99cdaee39d28ee0acea2e1c374 (commit) via 6cc8140d2b32abf620d6b47cd691162728029122 (commit) via 018d3829388438da9a7734bcd6972077c8c35090 (commit) via d8abd5df576d0180b2f78009fbe5707094e8aef1 (commit) via b92861ddbc4a559a6e4c82b875a2b1406f6d6279 (commit) via 4ffbfd3e4ebf5bfb5fa4ee298d88a6b721525420 (commit) via 1d89966270e03838fa61a15a874ceb8be34c3de3 (commit) via 98ed3fd8089b26895ef0177f1c1f3567cc3d0871 (commit) via 7c998bd273986d5cbd38b93523e8bfd59ec6fbae (commit) via bf6f8f6186f4cbd757e8c72083214493a95bc60d (commit) via e08b0de9fe2d7c0ad60a7eb6b4bdc0af2d62177c (commit) via 0b9733bfb3d15544b867210f138367bcf7d25cf5 (commit) via a4c1213fd7b7da144b011a7d74d28f5ba670df1a (commit) via 46d6fcc2cc2cbf6ad034a20fc6461f5016aa0bca (commit) via 666d4c7f68e56bc380f1028509c60cbec5eebe87 (commit) via 7275bd4d224ec91b50c0938d31b602a3c19a9a18 (commit) via 13266266b9a8c6518b7153b8fdea4aa2c0328ffe (commit) via 83c3f0be610073a5fe001ba39e45d4ac1f925e4c (commit) via 3ee9213a6d3131da085f97929051a0b0d3e65d0c (commit) via 49bf767559c5beb4d7de145fdbabe02a9cae577f (commit) via dfb5722cf088eca6bc3bcbb74cdf5704b5638568 (commit) via 418f6de75d1e54405e4e5501f50b1c4b2146551c (commit) via 18e441b66e0a974028f4042141b1a801fb5f21e0 (commit) via 71cd89a3e591951e7efd4b7065acfa9b15177ac5 (commit) via 91740a67cb090f0507b8c364f8f3950b73a52beb (commit) via d390bc452c0dca5c2e455ccdcda5515204a11413 (commit) via a6cb44ea20e173b50c8197f44f588411c25c1c31 (commit) via 33245e2c62baf0569edc53b4d39c3344a0372eba (commit) via 2892ebf3ea5ae575c3760fd2fca95b331f9ba9d2 (commit) This update added new revisions after undoing existing revisions. That is to say, the old revision is not a strict subset of the new revision. This situation occurs when you --force push a change and generate a repository containing something like this: * -- * -- B -- O -- O -- O (89b5af1f8d450e039602030d06ea6b0bd62925a2) \ N -- N -- N (64d0007aca0bc5f3c53aa3e710d9db6b745af36e) When this happens we assume that you've already had alert emails for all of the O revisions, and so we here report only the revisions in the N branch from the common base, B. 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=64d0007aca0bc5f3c53aa3e710d9db6b745af36e commit 64d0007aca0bc5f3c53aa3e710d9db6b745af36e Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Tue Sep 30 13:53:26 2014 +0200 sgsn: Added TODOs (TODO) TODO: - fix and remove TODOs - add test cases for Detach(reattach) - add test cases for PDP context deletion (OW#1311) - add test cases for Cancel pending timer in sgsn_mm_ctx_free - implement age based MM context expiry - remove this commit Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=f0974ae238ee109b046051441a9599076ddcc0f0 commit f0974ae238ee109b046051441a9599076ddcc0f0 Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Fri Oct 17 10:08:02 2014 +0200 sgsn: Do not die in _bssgp_tx_dl_ud on TLLI mismatch (TODO) Currently an OSMO_ASSERT fails, if the message's and the mmctx's TLLIs do not match. This commit turns the assertion into an ERROR log message and uses the default values for IMSI, DRX, and RA CAP instead of the MM context values in this case. TODO: - find the real source for the problem - add test cases derived from what is being described in the ticket Ticket: OW#1322 Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=abf773d673a29b3e927e8151f9d47458bfeb9153 commit abf773d673a29b3e927e8151f9d47458bfeb9153 Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Wed Dec 17 14:03:35 2014 +0100 sgsn: Add PDP info to subscriber data (TODO) TODO: - commit message - raw binary representation ??? - tests Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=3586c3491555ef7e686bcbc145a64ac2d9405710 commit 3586c3491555ef7e686bcbc145a64ac2d9405710 Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Fri Dec 19 19:11:20 2014 +0100 sgsn: Add logging to connect_timer_cb (TODO) TODO: - LOGLevel ? Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=6551d3169355de7e05d94c905014ff1ec9fbf264 commit 6551d3169355de7e05d94c905014ff1ec9fbf264 Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Thu Jan 8 15:29:01 2015 +0100 gprs: Support the full cancellation procedure (TODO) TODO: - Commit message - Reply to cancellation request (either with RES or ERR) Ticket: OW#1338 Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=145d7ddb84ef36122a0bf6a539923b558d0b3928 commit 145d7ddb84ef36122a0bf6a539923b558d0b3928 Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Thu Jan 8 16:23:25 2015 +0100 gprs: Block other GSUP procedures during PURGE_MS (TODO) TODO: - commit message - move LOGGSUBSCRP fix in gprs_subscr_purge to HEAD^^ - testing Ticket: OW#???? Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=5d2546d1597645a88ef70bcbdc706c9e8a16fb9a commit 5d2546d1597645a88ef70bcbdc706c9e8a16fb9a Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Thu Jan 8 15:18:39 2015 +0100 gprs: Retry PURGE_MS procedure after timeout Currently, when the PURGE_MS_REQ to the HLR gets lost (e.g. by a connection or peer failure), the expired subscriber entry will not get deleted. This commit adds a retry mechanism then restarts the procedure after a timeout (currently 10s). The maximum number of retries is limited (currently to 3 PURGE_MS messages). If none of these procedures is completed (either with success or error), the subscriber data is deleted. Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=3ea2200407b17dac2b704979bd92cb7563d51d15 commit 3ea2200407b17dac2b704979bd92cb7563d51d15 Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Tue Jan 6 16:32:41 2015 +0100 gprs: Support PURGE MS messages When a subscriber entry is going to be deleted by SGSN and when the subscriber info has been optained from a remote peer via GSUP, the peer should be informed before the entry is really deleted. For this purpose, MAP defines the PURGE MS procedure (see GSM 09.02, 19.1.4). This patch adds support for the PURGE_MS_REQ/_ERR/_RES messages and invokes the procedure when the subscriber entry is going to be removed. This only applies if GSUP is being used, the Update Location procedure has been completed successfully, and the subscriber has not been cancelled. The removal of the entry is delayed until a PURGE_MS_RES or PURGE_MS_ERR message is received. Ticket: OW#1338 Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=1da5e744766689acca7cf5b477a0c9bb4b900c95 commit 1da5e744766689acca7cf5b477a0c9bb4b900c95 Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Fri Jan 9 09:46:43 2015 +0100 sgsn/doc: Add message definitions for PURGE_MS responses Currently the definitions of the message PURGE_MS_RES and PURGE_MS_ERR are missing in the specification. This patch adds those definitions. Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=ea5906244efac709eb1fbcbd021a285fc4cbe7b8 commit ea5906244efac709eb1fbcbd021a285fc4cbe7b8 Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Tue Jan 13 11:46:32 2015 +0100 sgsn/test: Add checks and reports to detect subscr leakage This commit adds talloc reports to log remaining NULL chunks after the terminates. It also adds explicit checks for empty subscriber lists. Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=82b3b65f217a0432ab88909f9fb29d7aa1856541 commit 82b3b65f217a0432ab88909f9fb29d7aa1856541 Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Fri Jan 9 15:07:16 2015 +0100 sgsn/test: Add test that intercepts gprs_gsup_client_send This test replaces gprs_gsup_client_send by a custom function, that emulates a GSUP remote peer by calling gprs_subscr_rx_gsup_message with responses for all requests. It then executes a full Attach/Detach cycle. Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=5b88584b0604269b1a830f8dfe1fec7319f3cdc7 commit 5b88584b0604269b1a830f8dfe1fec7319f3cdc7 Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Tue Jan 6 16:32:41 2015 +0100 gprs: Add expiry timeout for subscriber entries Set the expiry delay after the subscriber has been deleted (e.g. by freeing the MM context). If cancelled, the subscriber will be deleted immediately and no timeout will be set. If the expiry time is set to SGSN_TIMEOUT_NEVER, no timer will be started and the subscriber entry will be kept until it is cancelled. The following VTY command is added to the sgsn node: - subscriber-expiry-time <0-999999> set expiry time in seconds - no subscriber-expiry-time set to SGSN_TIMEOUT_NEVER The default is an expiry time of 0 seconds, which means that the subscriber entries are wiped out immediately after an MM context is destroyed. Note that unused MM contexts are not expired yet. Therefore the subscriber will only be expired after a successful MM detach. Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=4c3cf3701c217c99cdaee39d28ee0acea2e1c374 commit 4c3cf3701c217c99cdaee39d28ee0acea2e1c374 Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Fri Jan 9 11:59:50 2015 +0100 sgsn/test: Refactor subscriber test The code sequence that checks, whether a subscriber is still reachable for a given IMSI, is repeated several times. This patch puts this code sequence into a single function and adds a check for the IMSI after the entry has been found. In addition, some comments are extended. Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=6cc8140d2b32abf620d6b47cd691162728029122 commit 6cc8140d2b32abf620d6b47cd691162728029122 Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Thu Jan 8 14:13:46 2015 +0100 sgsn/test: Fix subscriber cleanup Currently the subscribers are not really deleted by cleanup_subscr_by_imsi, but kept in RAM instead. This patch fixes this and adds a test to verify, that the subscriber is really deleted afterwards. Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=018d3829388438da9a7734bcd6972077c8c35090 commit 018d3829388438da9a7734bcd6972077c8c35090 Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Thu Jan 8 14:08:16 2015 +0100 gprs/test: Move subscr cleanup code into a separate function Refactor several occurences of the same subscriber cleanup code into a seperate cleanup_subscr_by_imsi function. Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=d8abd5df576d0180b2f78009fbe5707094e8aef1 commit d8abd5df576d0180b2f78009fbe5707094e8aef1 Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Mon Jan 5 16:20:47 2015 +0100 gprs: Pass GMM causes related to the MSC connection Currently the error causes MSC_TEMP_NOTREACH, NET_FAIL, and CONGESTION are silently dropped to force the MS to continue. On the other hand, GSM 04.08/24.008, 4.7.3.1.4 in combination with 4.7.3.1.5, require the MS to retry the attachment procedure for cause codes above 15 instead of disabling GPRS. All of the mentioned GMM causes have codes above 15, so using a REJECT message including the cause code is a better choice. This way, the retry algorithm based on T3311 (15s, 5 times) and T3302 (default 12min) could be used. This patch modifies gprs_subscr_handle_gsup_auth_err and gprs_subscr_handle_gsup_upd_loc_err to proceed like when the access has beed denied, except that the corresponding subscriber's information fields are not cleared. This has been successfully tested which an iphone which enters a retry loop as it is being described in the specification. Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=b92861ddbc4a559a6e4c82b875a2b1406f6d6279 commit b92861ddbc4a559a6e4c82b875a2b1406f6d6279 Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Tue Dec 23 14:24:16 2014 +0100 gprs: Use LOGGSUBSCRP and LOGMMCTX for logging in gprs_susbcriber.c To unify the layout of the logging messages in gprs_subscriber.c, this patch replaces each LOGP by LOGGSUBSCRP, unless a non-NULL pointer to a subscr is not available. In those cases, it uses LOGMMCTXP if a pointer to an MM context is available or LOGP otherwise. Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=4ffbfd3e4ebf5bfb5fa4ee298d88a6b721525420 commit 4ffbfd3e4ebf5bfb5fa4ee298d88a6b721525420 Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Thu Jan 8 12:02:12 2015 +0100 gprs: Add LOGGSUBSCRP macro to log subscriber info This patch adds a new logging macro, that logs to DGPRS and provides a uniform prefix containing the IMSI without using the mm reference. This is an improvement over using LOGMMCTXP, since the new macro also provides an IMSI if no MM context is attached. Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=1d89966270e03838fa61a15a874ceb8be34c3de3 commit 1d89966270e03838fa61a15a874ceb8be34c3de3 Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Mon Jan 5 18:57:32 2015 +0100 gprs: Let GSUP parser functions return GMM causes on errors Currently the GSUP message handling function in gprs_subscriber.c and the functions in gprs_gsup_messages.c are not consistent with respect to the return codes if an error happens. Albeit all error return codes are negative, the semantics of the absolute value are not clearly defined. In addition, some return codes are not passed to the calling function. This path changes these functions to always return a negated GMM cause value in case of errors. Return values of called parser functions are not longer ignored. Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=98ed3fd8089b26895ef0177f1c1f3567cc3d0871 commit 98ed3fd8089b26895ef0177f1c1f3567cc3d0871 Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Mon Jan 5 18:38:41 2015 +0100 gprs: Use the cause value in GSUP error messages Currently always a cause with the meaning of 'access denied' is assumed. gprs_subscr_handle_gsup_auth_err just clears the auth triplets and the authorized flag before calling the update function. gprs_subscr_handle_gsup_upd_loc_err only clears the authorized flag and calls the update function. This means, that an MS will not retry to attach even on temporary network errors. This patch changes these functions to use the GSUP error cause value to decide, whether to clear the corresponding subscriber fields, to just continue with the corresponding update function, or to log, ignore and not pass the cause to the MS in case the error is directly related to the GSUP protocol. The subscriber's error_cause field is updated, if the update function is going to be called. The error_cause fielt is reset on non-error GSUP messages. Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=7c998bd273986d5cbd38b93523e8bfd59ec6fbae commit 7c998bd273986d5cbd38b93523e8bfd59ec6fbae Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Mon Jan 5 17:51:17 2015 +0100 sgsn: Pass subscriber error causes to the GMM layer This patch extends gsm0408_gprs_access_denied and gsm0408_gprs_access_cancelled to accept GMM cause codes. These are then passed to the MS, unless gsm0408_gprs_access_cancelled is called with cause 0 (no error -> updateProcedure). Since gsm0408_gprs_access_denied uses GMM_CAUSE_GPRS_NOTALLOWED if the cause is not set, and the subscriber's error_cause is never set (and thus always 0), the SGSN's behaviour does not change with this patch. Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=bf6f8f6186f4cbd757e8c72083214493a95bc60d commit bf6f8f6186f4cbd757e8c72083214493a95bc60d Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Mon Jan 5 17:30:02 2015 +0100 gprs: Move protocol value_strings to gsm_04_08_gprs.c Currently the mapping between GSM 04.08 (GPRS) protocol specific numbers and their textual description was put into gprs_gmm.c and not exported. This commit moves the mappings to a new file gsm_04_08_gprs.c, renames some of them, and exports them via gsm_04_08_gprs.h. The following identifiers are renamed to match the corresponding type names: - gmm_cause_names -> gsm48_gmm_cause_names - gsm_cause_names -> gsm48_gsm_cause_names Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=e08b0de9fe2d7c0ad60a7eb6b4bdc0af2d62177c commit e08b0de9fe2d7c0ad60a7eb6b4bdc0af2d62177c Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Fri Dec 19 19:19:46 2014 +0100 sgsn: Show GSUP client info on 'show sgsn' This commit adds a line to the output of 'show sgsn' if the GSUP client has been initialized: - Remote authorization: [not] connected to HOST:PORT via GSUP Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=0b9733bfb3d15544b867210f138367bcf7d25cf5 commit 0b9733bfb3d15544b867210f138367bcf7d25cf5 Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Fri Dec 19 19:18:54 2014 +0100 gprs: Send PING and eventually reconnect Currently, the reconnect mechanism relies on gsup_client_updown_cb which in turn gets called based on the OS' view of connection state. This patch adds a timer based PING mechanism that regularly sends PING messages and forces a reconnect if a PONG message won't be received until the next PING message is scheduled. The current ping interval is 20s. Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=a4c1213fd7b7da144b011a7d74d28f5ba670df1a commit a4c1213fd7b7da144b011a7d74d28f5ba670df1a Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Fri Dec 19 19:15:55 2014 +0100 gprs: Handle incoming IPA CCM message in gsup_client_read_cb Currently the IPA CCM messages are not handled by the GSUP client. This means, that the client doesn't answer to PING and ID_GET and logs notices when receiving PONG or ID_ACK. At least the PING functionality (remotely originated PING) shall be supported. This patch extends gsup_client_read_cb by a call to ipaccess_bts_handle_ccm. Only when the return code is 0, the message is processed further and checked for an OSMO/GSUP message. ID_GET messages are answered by a dummy description, where only the unit_name is set to 'SGSN'. Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=46d6fcc2cc2cbf6ad034a20fc6461f5016aa0bca commit 46d6fcc2cc2cbf6ad034a20fc6461f5016aa0bca Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Fri Dec 19 19:00:56 2014 +0100 gprs: Handle return code of ipa_client_conn_open correctly The ipa_client_conn_open function does not distinguish between a connection being already established or waiting for establishment. In either case, the application gets informed about the connection state via the updown_cb. The 'up' parameter is only set, if poll/select consider the socket as writable. This patch handles both cases equally and fully relies on the updown_cb to adjust the gsupc obejct state. Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=666d4c7f68e56bc380f1028509c60cbec5eebe87 commit 666d4c7f68e56bc380f1028509c60cbec5eebe87 Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Fri Dec 19 18:50:05 2014 +0100 gprs: Avoid sending stale GSUP requests after reconnect Currently, messages are added to the tx queue even if the connection is down for some reason and all of these messages are eventually sent after a re-connect. The MS has probably sent several Attach Requests while the connection was down and will continue doing so. Therefore these stored messages could be dropped. This patch clears the queue before re-connecting and also extends gprs_gsup_client_send to return immediately, when the connection is not established instead of calling ipa_client_conn_send. Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=7275bd4d224ec91b50c0938d31b602a3c19a9a18 commit 7275bd4d224ec91b50c0938d31b602a3c19a9a18 Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Thu Dec 18 15:00:29 2014 +0100 gprs: Add automatic re-connect if the GSUP connection is down Currently the GSUP connection to a server is not restarted if the connection cannot be established or is terminated during operation. This commit adds a timer based connection mechanism, basically consisting of a timer callback that calls gsup_client_connect. The timer is eventually triggered (up == 0) or cleared (up != 0) by gsup_client_updown_cb. It adds calls to osmo_timer_del() to gsup_client_connect and gprs_gsup_client_destroy. The latter is now called instead of talloc_free in gprs_gsup_client_create on error to be on the safe side. Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=13266266b9a8c6518b7153b8fdea4aa2c0328ffe commit 13266266b9a8c6518b7153b8fdea4aa2c0328ffe Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Fri Dec 19 18:30:41 2014 +0100 sgsn/test: Extend tests to simulate lost GSUP requests This patch extends test_gmm_attach to optionally resend Attach Requests until the SGSN responds to it instead of calling OSMO_ASSERT at a few places. The test_gmm_attach_subscr_gsup_auth test optionally uses this feature. It is called once in either mode. Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=83c3f0be610073a5fe001ba39e45d4ac1f925e4c commit 83c3f0be610073a5fe001ba39e45d4ac1f925e4c Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Fri Dec 19 18:26:09 2014 +0100 sgsn/test: Add GMM test for a GSUP based attach procedure This test calls test_gmm_attach() where the mocked subscriber functions insert GSUP messages instead of manipulating the subscriber structure directly. Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=3ee9213a6d3131da085f97929051a0b0d3e65d0c commit 3ee9213a6d3131da085f97929051a0b0d3e65d0c Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Fri Dec 19 18:19:50 2014 +0100 sgsn/test: Add wrapper for gprs_subscr_rx_gsup_message Currently, several lines of boiler plate are needed around a call to gprs_subscr_rx_gsup_message. This patch puts all of this (including the call to gprs_subscr_rx_gsup_message) into a separate function. Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=49bf767559c5beb4d7de145fdbabe02a9cae577f commit 49bf767559c5beb4d7de145fdbabe02a9cae577f Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Fri Dec 19 18:08:48 2014 +0100 sgsn: Add global require_update_location flag This flag is used to determine, whether the Update Location procedure shall be invoked. This is currently only set, when the 'remote' authorization policy is set. When the flag is set, sgsn_auth_update will not never be called directly by sgsn_auth_request, if an Attach Request procedure is pending, even if the remote connection fails for some reason. Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=dfb5722cf088eca6bc3bcbb74cdf5704b5638568 commit dfb5722cf088eca6bc3bcbb74cdf5704b5638568 Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Wed Dec 17 13:20:08 2014 +0100 sgsn: Replace subscr.authenticate by global require_authentication flag Currently the flag 'authenticate' is managed per subscriber. This patch replaces that flag by a global cfg.require_authentication flag that enables/disables the use of the Auth & Ciph procedure for every subscriber. The flag is set by the VTY, if and only if the authorization policy is 'remote'. The VTY command - update-subscriber imsi IMSI insert authenticate <0-1> is removed. Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=418f6de75d1e54405e4e5501f50b1c4b2146551c commit 418f6de75d1e54405e4e5501f50b1c4b2146551c Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Thu Dec 18 12:46:47 2014 +0100 sgsn: Integrate the GSUP client into the SGSN This commit adds GSUP client configuration (via VTY), connection set up, and real message sending. The following configuration commands are added: - gsup remote-ip A.B.C.D set server IP address - gsup remote-port PORT set server TCP port Ticket: OW#1338 Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=18e441b66e0a974028f4042141b1a801fb5f21e0 commit 18e441b66e0a974028f4042141b1a801fb5f21e0 Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Thu Dec 18 12:28:21 2014 +0100 gprs: Add GSUP client This commit adds the client code to get subscriber information from a remote server. It provides an IPA over TCP connection to transmit and receive GSUP messages. Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=71cd89a3e591951e7efd4b7065acfa9b15177ac5 commit 71cd89a3e591951e7efd4b7065acfa9b15177ac5 Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Mon Jan 12 13:54:39 2015 +0100 gprs: Clear GSUP message structures before decoding Currently the message structure is not cleared before the message is parsed which can cause information leaking between messages if the same gprs_gsup_message object is used. Especially list elements (auth tuples and pdp info) are not replaced by an IE, but the IE is appended. This patch uses the assignment operator to clear gprs_gsup_message, gsm_auth_tuple, and gprs_gsup_pdp_info before using them. This also replaces the use of memcpy of the latter. Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=91740a67cb090f0507b8c364f8f3950b73a52beb commit 91740a67cb090f0507b8c364f8f3950b73a52beb Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Mon Jan 12 13:39:15 2015 +0100 gprs: Always reset auth tuples/pdp infos in gprs_gsup_decode Currently auth tuples are always appended to the lists when gprs_gsup_decode is called with a gsup_msg structure. This makes a test case fail, where the same gsup_msg is used again and again without clearing it after each use. Ticket: OW#???? Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=d390bc452c0dca5c2e455ccdcda5515204a11413 commit d390bc452c0dca5c2e455ccdcda5515204a11413 Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Mon Jan 12 13:23:05 2015 +0100 gprs: Handle empty GSUP messages correctly Currently, the gprs_gsup_decode function doesn't check the return value of gprs_shift_v_fixed before using the value pointer. The function fails, if the GSUP message length (not including IPA headers) is 0. In this case, a segfault can happen, depending on the value of the uninitialized 'value' pointer. The test case doesn't trigger a segfault, but valgrind complains about reading uninitialized data. This patch adds a check for the return value that would return with an error code if the shift function failed. Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=a6cb44ea20e173b50c8197f44f588411c25c1c31 commit a6cb44ea20e173b50c8197f44f588411c25c1c31 Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Mon Jan 12 11:14:18 2015 +0100 gprs/test: Add tests for invalid GSUP messages Currently, the tests only use valid GSUP messages. This does not check the robustness of the parser. This commit adds a test for truncated messages and another for modified messages. Thanks to Holger for the basic truncation test. Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=33245e2c62baf0569edc53b4d39c3344a0372eba commit 33245e2c62baf0569edc53b4d39c3344a0372eba Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Tue Jan 13 11:56:28 2015 +0100 sgsn/test: Fix msgb freeing in mocked bssgp_tx_dl_ud Currently the mocked bssgp_tx_dl_ud function used for testing in sgsn_test.c does not free the msg as it is done by the original function. This leads to a msgb leak in the test. This patch fixes the test code accordingly and uncomments the assertion that checks for left-over msgbs. Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=2892ebf3ea5ae575c3760fd2fca95b331f9ba9d2 commit 2892ebf3ea5ae575c3760fd2fca95b331f9ba9d2 Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Tue Jan 13 11:46:32 2015 +0100 sgsn/test: Add checks and reports to detect msgb leakage This commit adds talloc reports to log remaining chunks after the testing has been finished. It also adds a (currently disabled) check, that no msgbs are allocated after running the tests. Sponsored-by: On-Waves ehf ----------------------------------------------------------------------- Summary of changes: openbsc/src/gprs/gprs_gsup_client.c | 2 +- openbsc/tests/sgsn/sgsn_test.c | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) hooks/post-receive -- The OpenBSC GSM Base Station Controller (+MSC/HLR/SGSN)