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, master has been updated via 743dec4c0c80383556efac60f03d307287ecf024 (commit) via 65fa3f73a1151e896e4c74196680b7886a3b6be6 (commit) via 69d271376cce7d26a0469bbb948f272c399ac6c7 (commit) via cde0bb27a14553bba2f680cd1307a5f9b3581f0e (commit) via 058bc26e1bb1350c9077f99edd24887bb84bc8c5 (commit) via c157ee7d2ccdb7524e76d25b22cb7eec8de9a656 (commit) via 0f47b8fae743769a6627f8654444b4f0d665e050 (commit) via b8fb1409d1ed18dc198b430895a74e680640c2b1 (commit) via e1beb6f51d3822593d56e071d47e12a74f077826 (commit) via d3cde1ecf49940fae90ec5e1d36824ee0ba17501 (commit) via f06fe29f61c0089ca2f0c10faea18c65d5014f95 (commit) via bf34c67f3f5f747d71f844aec9ae61d26b273d6d (commit) via 42755785707a11c8349b86c2afb98b7bc15c85dc (commit) via bce2061b43c1e38b766cc3738b4ad669211dc6a4 (commit) via 9aa9991efe207f5c12bbcf655b0660e3466c02e0 (commit) via af3d5c508c9ca3ebae9388d3e09c5d7726db4f5c (commit) via afcf23001e600bedc51db08a22846dada9bc06b3 (commit) via 8054799963f4b3b936d601eb4b1f5774f2c41fec (commit) via 03b463034885e7ebb09160f6d63c05ac120a8098 (commit) via e154d8bdd45974fa6e9408b9d543eb9e9ea94b79 (commit) via 69e16b9ea5dc991f8373c11b9fcf45b7b1a8e940 (commit) via 4188c30c4a6574201d62df1be818eed038608d16 (commit) via 849d0a83e8598e0f21a3e9c5438c222d8ab417eb (commit) via 7660ffa29fb463fc24b2ac8d735b9b345017bba6 (commit) via 3d722450de1cf34931d95f7a748a9b6c48e933f0 (commit) via e21e184d84d6a932b58079084d254f498599e29e (commit) via 771573c535ae97ce7c7ed7694670e3b98eeae48a (commit) via a071c1ccc07074272f6cb7626b781f45f85564c6 (commit) via 9d4f46c975c3a4c92071c70ebadd6edc345581da (commit) via 39f040d62b16b2d99352f5facd83ce098fa2f462 (commit) via bb23dc17f8f56be836dc50c925c04a5aeaec979c (commit) via 1610626fe9e65693c6d8743129b10ed4958ec6ea (commit) via a2315eebf972412e122033ac036dd21bcdad5335 (commit) via 424ffa480630a4242d2a6f6b27b9e6b1ec08d206 (commit) via 0572ee045d1b7c29a0c34b27867b3f8669eb5038 (commit) via f0b06d82cd6f2a340db052a2fa2e559aa75f1fa8 (commit) via 07de92e2c0ccfa89b9498c8c49a74d0848b7b85a (commit) from a6ddc2d99f8463edb0b5eacf080db0b5ca571efc (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=743dec4c0c80383556efac60f03d307287ecf024 commit 743dec4c0c80383556efac60f03d307287ecf024 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=65fa3f73a1151e896e4c74196680b7886a3b6be6 commit 65fa3f73a1151e896e4c74196680b7886a3b6be6 Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Tue Jan 6 16:32:41 2015 +0100 gprs: Use PURGE MS messages When a subscriber entry is going to be deleted by SGSN and when the subscriber info has been obtained 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. Note that GSM 09.02, 19.1.4.4 implies that the subscriber data is not to be removed when the procedure fails which is not the way the feature has been implemented. Note that handling 'P-TMSI freezing' is not implemented. Ticket: OW#1338 Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=69d271376cce7d26a0469bbb948f272c399ac6c7 commit 69d271376cce7d26a0469bbb948f272c399ac6c7 Author: Jacob Erlbeck <jerlbeck at sysmocom.de> Date: Thu Jan 15 11:50:08 2015 +0100 gprs: Implement PURGE_MS GSUP messages This commit implements the encoding and decoding of the messages - Purge MS Request - Purge MS Error - Purge MS Result and adds corresponding tests. Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=cde0bb27a14553bba2f680cd1307a5f9b3581f0e commit cde0bb27a14553bba2f680cd1307a5f9b3581f0e 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=058bc26e1bb1350c9077f99edd24887bb84bc8c5 commit 058bc26e1bb1350c9077f99edd24887bb84bc8c5 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=c157ee7d2ccdb7524e76d25b22cb7eec8de9a656 commit c157ee7d2ccdb7524e76d25b22cb7eec8de9a656 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=0f47b8fae743769a6627f8654444b4f0d665e050 commit 0f47b8fae743769a6627f8654444b4f0d665e050 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=b8fb1409d1ed18dc198b430895a74e680640c2b1 commit b8fb1409d1ed18dc198b430895a74e680640c2b1 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=e1beb6f51d3822593d56e071d47e12a74f077826 commit e1beb6f51d3822593d56e071d47e12a74f077826 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=d3cde1ecf49940fae90ec5e1d36824ee0ba17501 commit d3cde1ecf49940fae90ec5e1d36824ee0ba17501 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=f06fe29f61c0089ca2f0c10faea18c65d5014f95 commit f06fe29f61c0089ca2f0c10faea18c65d5014f95 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=bf34c67f3f5f747d71f844aec9ae61d26b273d6d commit bf34c67f3f5f747d71f844aec9ae61d26b273d6d 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=42755785707a11c8349b86c2afb98b7bc15c85dc commit 42755785707a11c8349b86c2afb98b7bc15c85dc 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=bce2061b43c1e38b766cc3738b4ad669211dc6a4 commit bce2061b43c1e38b766cc3738b4ad669211dc6a4 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=9aa9991efe207f5c12bbcf655b0660e3466c02e0 commit 9aa9991efe207f5c12bbcf655b0660e3466c02e0 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=af3d5c508c9ca3ebae9388d3e09c5d7726db4f5c commit af3d5c508c9ca3ebae9388d3e09c5d7726db4f5c 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 Conflicts: openbsc/include/openbsc/gprs_sgsn.h [hfreyther: Conflict due the removal of the unused authenticate flag] http://cgit.osmocom.org/openbsc/commit/?id=afcf23001e600bedc51db08a22846dada9bc06b3 commit afcf23001e600bedc51db08a22846dada9bc06b3 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=8054799963f4b3b936d601eb4b1f5774f2c41fec commit 8054799963f4b3b936d601eb4b1f5774f2c41fec 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=03b463034885e7ebb09160f6d63c05ac120a8098 commit 03b463034885e7ebb09160f6d63c05ac120a8098 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 Conflicts: openbsc/src/gprs/gprs_gsup_client.c [hfreyther: Conflicts due the potential memleak fix by me. Removed another TODO from the code as we stop the ping/pong timer] http://cgit.osmocom.org/openbsc/commit/?id=e154d8bdd45974fa6e9408b9d543eb9e9ea94b79 commit e154d8bdd45974fa6e9408b9d543eb9e9ea94b79 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=69e16b9ea5dc991f8373c11b9fcf45b7b1a8e940 commit 69e16b9ea5dc991f8373c11b9fcf45b7b1a8e940 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=4188c30c4a6574201d62df1be818eed038608d16 commit 4188c30c4a6574201d62df1be818eed038608d16 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 [hfreyther: Replaced while (!llist_empty(&gsupc->link->tx_queue)) llist_del(gsupc->link->tx_queue.next); with new libosmo-abis API] http://cgit.osmocom.org/openbsc/commit/?id=849d0a83e8598e0f21a3e9c5438c222d8ab417eb commit 849d0a83e8598e0f21a3e9c5438c222d8ab417eb 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=7660ffa29fb463fc24b2ac8d735b9b345017bba6 commit 7660ffa29fb463fc24b2ac8d735b9b345017bba6 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=3d722450de1cf34931d95f7a748a9b6c48e933f0 commit 3d722450de1cf34931d95f7a748a9b6c48e933f0 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=e21e184d84d6a932b58079084d254f498599e29e commit e21e184d84d6a932b58079084d254f498599e29e 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=771573c535ae97ce7c7ed7694670e3b98eeae48a commit 771573c535ae97ce7c7ed7694670e3b98eeae48a 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=a071c1ccc07074272f6cb7626b781f45f85564c6 commit a071c1ccc07074272f6cb7626b781f45f85564c6 Author: Holger Hans Peter Freyther <holger at moiji-mobile.com> Date: Sun Jan 18 13:22:37 2015 +0100 gprs: Remove now unused authenticate flag This has been obsoleted by the previous commit. Remove it. http://cgit.osmocom.org/openbsc/commit/?id=9d4f46c975c3a4c92071c70ebadd6edc345581da commit 9d4f46c975c3a4c92071c70ebadd6edc345581da 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=39f040d62b16b2d99352f5facd83ce098fa2f462 commit 39f040d62b16b2d99352f5facd83ce098fa2f462 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=bb23dc17f8f56be836dc50c925c04a5aeaec979c commit bb23dc17f8f56be836dc50c925c04a5aeaec979c 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=1610626fe9e65693c6d8743129b10ed4958ec6ea commit 1610626fe9e65693c6d8743129b10ed4958ec6ea 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=a2315eebf972412e122033ac036dd21bcdad5335 commit a2315eebf972412e122033ac036dd21bcdad5335 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. Sponsored-by: On-Waves ehf http://cgit.osmocom.org/openbsc/commit/?id=424ffa480630a4242d2a6f6b27b9e6b1ec08d206 commit 424ffa480630a4242d2a6f6b27b9e6b1ec08d206 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=0572ee045d1b7c29a0c34b27867b3f8669eb5038 commit 0572ee045d1b7c29a0c34b27867b3f8669eb5038 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=f0b06d82cd6f2a340db052a2fa2e559aa75f1fa8 commit f0b06d82cd6f2a340db052a2fa2e559aa75f1fa8 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=07de92e2c0ccfa89b9498c8c49a74d0848b7b85a commit 07de92e2c0ccfa89b9498c8c49a74d0848b7b85a 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/doc/sgsn-remote-protocol.txt | 12 +- openbsc/include/openbsc/Makefile.am | 3 +- openbsc/include/openbsc/gprs_gmm.h | 4 +- openbsc/include/openbsc/gprs_gsup_client.h | 54 ++++ openbsc/include/openbsc/gprs_gsup_messages.h | 2 + openbsc/include/openbsc/gprs_sgsn.h | 11 +- openbsc/include/openbsc/gsm_04_08_gprs.h | 11 + openbsc/include/openbsc/sgsn.h | 14 + openbsc/src/gprs/Makefile.am | 3 +- openbsc/src/gprs/gprs_gmm.c | 184 +++--------- openbsc/src/gprs/gprs_gsup_client.c | 285 +++++++++++++++++++ openbsc/src/gprs/gprs_gsup_messages.c | 23 +- openbsc/src/gprs/gprs_subscriber.c | 367 ++++++++++++++++++++---- openbsc/src/gprs/gsm_04_08_gprs.c | 141 +++++++++ openbsc/src/gprs/sgsn_auth.c | 22 +- openbsc/src/gprs/sgsn_main.c | 6 + openbsc/src/gprs/sgsn_vty.c | 93 +++++- openbsc/tests/gprs/gprs_test.c | 115 ++++++++ openbsc/tests/gprs/gprs_test.ok | 3 + openbsc/tests/sgsn/Makefile.am | 6 +- openbsc/tests/sgsn/sgsn_test.c | 408 ++++++++++++++++++++++----- openbsc/tests/sgsn/sgsn_test.ok | 3 + 22 files changed, 1474 insertions(+), 296 deletions(-) create mode 100644 openbsc/include/openbsc/gprs_gsup_client.h create mode 100644 openbsc/src/gprs/gprs_gsup_client.c create mode 100644 openbsc/src/gprs/gsm_04_08_gprs.c hooks/post-receive -- The OpenBSC GSM Base Station Controller (+MSC/HLR/SGSN)