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 e2e2ef39a05b6840b6670ca8e1f1d889bafffdb6 (commit) discards b706933bd9cdf89bbe5b12d1b2541c1893a6537e (commit) discards b9f5f4df87870041fc9e986ab841b6221e0a77f2 (commit) discards 7ba4fa5066c39d03c6f760d0f1f618d92ef90b07 (commit) discards 38fa6bf2cec58ec5ef3be16ec14424ed5a96674c (commit) discards 3bf946c49d9a21dafca29b990a856e61cadaff91 (commit) discards 3d7b2e6a26c54ebf38f9b30e00a73ec1f040e245 (commit) discards 4872cdfa622889444854f76cc9bc4ddb97a6d0dc (commit) discards 18391a453805bc14748bbd313273bf2b585145c7 (commit) discards 515fdd662b120f5afc46345cd1be6592c852671b (commit) discards c87fa1b94435a51ade34ea99b5ef39135e309275 (commit) discards d39fe2f96d7cea3250be82abcdef6333e9422f67 (commit) discards 33de2ebc61bad4973f64e1dc07478393cf66f783 (commit) discards c52716e55d3ba88173c3feb47a3233c4aa69e92b (commit) discards 52a5229ca8b55ee804a7a911512af8617e21c5da (commit) discards 93d39583080a58fb16597ecc341a1ce32ad38d7a (commit) discards f8f8fba629ed6b861dacb1f997c9f28d83a162e0 (commit) discards 67014fd5657394534326c99554f89ec85970e509 (commit) discards e8978ac39c5e96877960f0df07644efc8a0bc321 (commit) discards 5428ff90b1260769cc918a585abdb1c292d67f7f (commit) discards 4cd6d2a4763b2b6a2d8aa0ea73ee9e692e2ce4b0 (commit) discards 6231ed289064f453b5d2bb56d70afe7a992dfe77 (commit) discards 26f2c6a6846ab959d9e6f8fdf6f229ddd9ec71f7 (commit) discards 65f35a28038ec7ed310a2fca5015b3018c5455e8 (commit) discards 8f4fa5fc5f8225a5fb55fa2c4b12eace56b14df7 (commit) discards 45292a23631fdb943c7aaec0dc1d1af2ce013792 (commit) discards 424d584f82f8240c1325ca25ed186f446997de58 (commit) discards 5c455ae7a7326c19545258a6e247fe2f6b4c3e01 (commit) discards 3d0895483f0d543af485413dedb40294b0efd9b4 (commit) discards 79571191f2c526e18dc1257a3273a7235582d2a6 (commit) discards ed3d6a6020fee411cca3cb7564a4b0cbf6d8b587 (commit) discards 9f2e178f07b7d15733e862fca7c140b1475899ee (commit) discards 847bf670e354fbd11bedbadf63deb0577a0a380b (commit) discards 62068f8848f5c851a06053265b311dca9042b103 (commit) discards 2ad5544bee5062301797a86a6adb44513abe27d2 (commit) discards 5636470b9fa12827e190f3f38386f2824edfcf61 (commit) discards 4e8a698c1173d71f9e0ee6eef182f5884c181493 (commit) via 2eb4ee28fce464f60231209d4cacfa18400ac9a6 (commit) via 11c8dcd10f3fd98f054ef2918d49798274ffbfd8 (commit) via f09050db39ea04dfa67e3595a3b41f7a59661c03 (commit) via 872b45b49b8620d114d38cfb7d170f78b316e24b (commit) via f17c812f882a37bda959118cace5c9c2a1cc3d62 (commit) via f75a490a5bc0d36803593add58a7fc8f1368c7d0 (commit) via 829f83d5e77d59706e39268f73109db1321ee6e8 (commit) via 6fc9f67182d4c77e77d51dc89f5b1a8e19df7431 (commit) via 84063c3aaf55626231ba2a392d52709919a33ee1 (commit) via 339e30b1401efe55b7412876bfb1ced493a5f0fa (commit) via fee76dc614eb42e341bf2f7604c0735b59830f37 (commit) via b331205e1d4ad569563900520632b4d3493be721 (commit) via d1e0a4229184ee84114060c0ab0f948689a32917 (commit) via 78318bc48628e616e06f3ae4a852816576fa32e0 (commit) via 861ae1d2e82e19432bdec6659df1b0f092ba6b92 (commit) via 0e73459fb2d544f09f6819560477ba63a8216912 (commit) via 27f69157b043394425e4a885be646d8e6439d62b (commit) via 285ee97c76471cef0f4af747b3357f794785ca6d (commit) via af3014f08ec7412ad54b90252579adc86b9ae99c (commit) via 343b6c9bc5eb60ec838351c3a72ce13cc5e0eb51 (commit) via 35961439f25e09653ebd0192634235d397914b95 (commit) via d52aa3ae5ceef7ef3a943c0d9835d08c7bea06cb (commit) via 1ce3ecbb31b5883bd72c56ac4b280e094bfe5ccf (commit) via bbb44231295c3d0dc03c2461e4660028956be03e (commit) via 12173e836bef5821e8ac95cbb2a84b76ca295c45 (commit) via c82af7ed9b976783fdc6245e1e6bd86527529d79 (commit) via 0bededf3fe61fe25af2c130e47ebb0f2cd2a36c4 (commit) via ed2e4de87f8e6468592146df63e92fe63cae5d6d (commit) via f0c08a363f6c8e84dcc4117c7108ff27159fa50a (commit) via 9c344c709536551f2a632d4872c26a7a1c32b685 (commit) via af2030b4ff24914fe62a8149447f7c914f62185d (commit) via 997ec59c14f6d5a68cf344d4a4e96d304d8578dc (commit) via a278ef42ac38d3f2945c27763063d6ace84d29f1 (commit) via 09ebc580c02c361076d1df9678913b800eb441da (commit) via 75973f7cf58d9011666a264f1a60f0c31f4a76fc (commit) via fd0134c8622110678b524ebeb6d889b68d0639c7 (commit) via 3a6aa7f3b7e74bd7ed9089bddb81bd91cd948d81 (commit) via d3e7137cc2168ec99e4de7a31f481cce6a76da09 (commit) via 74cd902cb970e64f25456f81b1c7899b15b53c4e (commit) via 6a7288c1d6779bf83f005f19f12e446ca17e24b6 (commit) via a6ddc2d99f8463edb0b5eacf080db0b5ca571efc (commit) via f3a271fa73ea58a628a51aa310e1da20a5526f31 (commit) via 46684dcfd2d0aadcf63f9493d0d84afe467c7193 (commit) via 0024cee9f84c0f24b70e4bc98756702d5182a20b (commit) via 17fb3d46ffcf48685943cc9dd4a2e80700f4fa64 (commit) via bb06eb9d7c9c048b5297511b329f0029ecbfd9fc (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 (e2e2ef39a05b6840b6670ca8e1f1d889bafffdb6) \ N -- N -- N (2eb4ee28fce464f60231209d4cacfa18400ac9a6) 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=2eb4ee28fce464f60231209d4cacfa18400ac9a6 commit 2eb4ee28fce464f60231209d4cacfa18400ac9a6 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 - remove this commit Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=11c8dcd10f3fd98f054ef2918d49798274ffbfd8 commit 11c8dcd10f3fd98f054ef2918d49798274ffbfd8 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=f09050db39ea04dfa67e3595a3b41f7a59661c03 commit f09050db39ea04dfa67e3595a3b41f7a59661c03 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=872b45b49b8620d114d38cfb7d170f78b316e24b commit 872b45b49b8620d114d38cfb7d170f78b316e24b 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=f17c812f882a37bda959118cace5c9c2a1cc3d62 commit f17c812f882a37bda959118cace5c9c2a1cc3d62 Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Tue Jan 13 11:56:28 2015 +0100 gprs: Fix GSUP msgb freeing Currently the code relies on the lower layers (socket read) to free the msgb after the callbacks have been processed linke it is being done in the NS layer. Unfortunately the IPA client connection implementation does this differently so the current msgb handling in the GSUP related code in broken at the moment and leaks msgbs. This patch adds missing calls to msgb_free. The talloc report in sgsn_test no longer contains msgbs. Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=f75a490a5bc0d36803593add58a7fc8f1368c7d0 commit f75a490a5bc0d36803593add58a7fc8f1368c7d0 Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Tue Jan 13 11:46:32 2015 +0100 sgsn/test: Add checks and reports to detect leakage This commit adds talloc reports to log remaining chunks after the testing has been finished. It also adds explicit checks for an empty subscriber list. Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=829f83d5e77d59706e39268f73109db1321ee6e8 commit 829f83d5e77d59706e39268f73109db1321ee6e8 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=6fc9f67182d4c77e77d51dc89f5b1a8e19df7431 commit 6fc9f67182d4c77e77d51dc89f5b1a8e19df7431 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) Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=84063c3aaf55626231ba2a392d52709919a33ee1 commit 84063c3aaf55626231ba2a392d52709919a33ee1 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=339e30b1401efe55b7412876bfb1ced493a5f0fa commit 339e30b1401efe55b7412876bfb1ced493a5f0fa 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=fee76dc614eb42e341bf2f7604c0735b59830f37 commit fee76dc614eb42e341bf2f7604c0735b59830f37 Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Tue Jan 6 16:32:41 2015 +0100 gprs: Support PURGE MS messages (TODO) 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. TODO: - commit message - expire ununsed MM contexts (other commit) Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=b331205e1d4ad569563900520632b4d3493be721 commit b331205e1d4ad569563900520632b4d3493be721 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=d1e0a4229184ee84114060c0ab0f948689a32917 commit d1e0a4229184ee84114060c0ab0f948689a32917 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. Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=78318bc48628e616e06f3ae4a852816576fa32e0 commit 78318bc48628e616e06f3ae4a852816576fa32e0 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=861ae1d2e82e19432bdec6659df1b0f092ba6b92 commit 861ae1d2e82e19432bdec6659df1b0f092ba6b92 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=0e73459fb2d544f09f6819560477ba63a8216912 commit 0e73459fb2d544f09f6819560477ba63a8216912 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=27f69157b043394425e4a885be646d8e6439d62b commit 27f69157b043394425e4a885be646d8e6439d62b 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=285ee97c76471cef0f4af747b3357f794785ca6d commit 285ee97c76471cef0f4af747b3357f794785ca6d 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=af3014f08ec7412ad54b90252579adc86b9ae99c commit af3014f08ec7412ad54b90252579adc86b9ae99c 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=343b6c9bc5eb60ec838351c3a72ce13cc5e0eb51 commit 343b6c9bc5eb60ec838351c3a72ce13cc5e0eb51 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=35961439f25e09653ebd0192634235d397914b95 commit 35961439f25e09653ebd0192634235d397914b95 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=d52aa3ae5ceef7ef3a943c0d9835d08c7bea06cb commit d52aa3ae5ceef7ef3a943c0d9835d08c7bea06cb Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Mon Jan 5 17:51:17 2015 +0100 gprs: 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=1ce3ecbb31b5883bd72c56ac4b280e094bfe5ccf commit 1ce3ecbb31b5883bd72c56ac4b280e094bfe5ccf 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=bbb44231295c3d0dc03c2461e4660028956be03e commit bbb44231295c3d0dc03c2461e4660028956be03e 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=12173e836bef5821e8ac95cbb2a84b76ca295c45 commit 12173e836bef5821e8ac95cbb2a84b76ca295c45 Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Fri Dec 19 19:18:54 2014 +0100 sgsn: 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=c82af7ed9b976783fdc6245e1e6bd86527529d79 commit c82af7ed9b976783fdc6245e1e6bd86527529d79 Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Fri Dec 19 19:15:55 2014 +0100 sgsn: 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=0bededf3fe61fe25af2c130e47ebb0f2cd2a36c4 commit 0bededf3fe61fe25af2c130e47ebb0f2cd2a36c4 Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Fri Dec 19 19:00:56 2014 +0100 sgsn: 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=ed2e4de87f8e6468592146df63e92fe63cae5d6d commit ed2e4de87f8e6468592146df63e92fe63cae5d6d Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Fri Dec 19 18:50:05 2014 +0100 sgsn: 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=f0c08a363f6c8e84dcc4117c7108ff27159fa50a commit f0c08a363f6c8e84dcc4117c7108ff27159fa50a Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Thu Dec 18 15:00:29 2014 +0100 sgsn: 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=9c344c709536551f2a632d4872c26a7a1c32b685 commit 9c344c709536551f2a632d4872c26a7a1c32b685 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=af2030b4ff24914fe62a8149447f7c914f62185d commit af2030b4ff24914fe62a8149447f7c914f62185d 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=997ec59c14f6d5a68cf344d4a4e96d304d8578dc commit 997ec59c14f6d5a68cf344d4a4e96d304d8578dc 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=a278ef42ac38d3f2945c27763063d6ace84d29f1 commit a278ef42ac38d3f2945c27763063d6ace84d29f1 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=09ebc580c02c361076d1df9678913b800eb441da commit 09ebc580c02c361076d1df9678913b800eb441da 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=75973f7cf58d9011666a264f1a60f0c31f4a76fc commit 75973f7cf58d9011666a264f1a60f0c31f4a76fc 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 Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=fd0134c8622110678b524ebeb6d889b68d0639c7 commit fd0134c8622110678b524ebeb6d889b68d0639c7 Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Thu Dec 18 12:28:21 2014 +0100 sgsn: 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=3a6aa7f3b7e74bd7ed9089bddb81bd91cd948d81 commit 3a6aa7f3b7e74bd7ed9089bddb81bd91cd948d81 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=d3e7137cc2168ec99e4de7a31f481cce6a76da09 commit d3e7137cc2168ec99e4de7a31f481cce6a76da09 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=74cd902cb970e64f25456f81b1c7899b15b53c4e commit 74cd902cb970e64f25456f81b1c7899b15b53c4e 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=6a7288c1d6779bf83f005f19f12e446ca17e24b6 commit 6a7288c1d6779bf83f005f19f12e446ca17e24b6 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 ----------------------------------------------------------------------- Summary of changes: openbsc/configure.ac | 5 + openbsc/src/gprs/gprs_gsup_client.c | 17 ++- openbsc/src/gprs/gprs_gsup_messages.c | 18 ++- openbsc/src/gprs/gprs_subscriber.c | 15 ++- openbsc/src/utils/Makefile.am | 14 ++- openbsc/tests/gprs/gprs_test.c | 92 +++++++++++++++ openbsc/tests/sgsn/Makefile.am | 3 +- openbsc/tests/sgsn/sgsn_test.c | 209 ++++++++++++++++++++++++++++++---- openbsc/tests/sgsn/sgsn_test.ok | 1 + 9 files changed, 330 insertions(+), 44 deletions(-) hooks/post-receive -- The OpenBSC GSM Base Station Controller (+MSC/HLR/SGSN)