aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src
AgeCommit message (Collapse)AuthorFilesLines
2016-03-22comments about incomplete MM cipheringNeels Hofmeyr1-0/+5
2016-03-22cscn: implement integrity protectionNeels Hofmeyr6-9/+152
Upon authentication response, initiate integrity protection for Iu by sending a Security Mode Command (IK), with hardcoded auth tuple so far. Implement RANAP event handling to receive Security Mode Complete message, adding stubs for the other events; in new files osmo-cscn/iucs_ranap.[hc] to keep RANAP dependencies separate, and particularly out of libmsc. Upon receiving Security Mode Complete, call the security operation callback (conn->sec_operation->cb) to complete the Location Update. Introduce enum integrity_protection_state constants to indicate integrity protection, record in gsm_subscriber_conn.iu.integrity_protection. Make subscr_conn_lookup_iu() non-static and declare in iu_cs.h to be able to call from iucs_ranap.c's Security Mode Complete event. Implement dummy iu_tx_sec_mode_cmd() to allow tests to build without RANAP dependencies. In cscn_main.c, call iucs_rx_ranap_event(), to populate the struct gsm_network struct with cscn_network explicitly (don't share cscn_network across compilation scopes because it's ugly).
2016-03-22in gsm8_rx_mm_auth_resp(): call sec_operation.cb() instead of finish_lu() ↵Neels Hofmeyr1-9/+7
directly
2016-03-22fix various compiler warningsNeels Hofmeyr3-2/+5
sgsn_libgtp.c: missing include, for asn1str_to_u32() iu_cs.c: missing include, for subscr_name() osmo_bsc_vty.c: int/pointer conversions (note: this was discussed on the list to be solved by passing a pointer instead. Until then...) iudummy.c: opaque struct declarations
2016-03-22gsm0408_authorize(): remove unused msgb arg, make non-staticNeels Hofmeyr1-3/+3
Prepares for calling from IuCS RANAP events.
2016-03-22iu_tx_sec_mode_cmd(): add send_ck flag parameterNeels Hofmeyr2-7/+10
In this way the caller can distinguish between sending an IK or an IK+CK Security Mode Command.
2016-03-22cosmetic: whitespace, comment, rename static func rx_iu_event()Neels Hofmeyr4-6/+6
2016-03-22fix build: match Iu event cb enum argument type from declarationNeels Hofmeyr3-3/+3
2016-03-21debug log fixesNeels Hofmeyr2-2/+3
gprs_gmm.c: remove extraneous debug print arg. iu_cs.c: increment should not be in debug statement. Fixes at least one coverity warning.
2016-03-18debug: log list of subscribers upon lookupNeels Hofmeyr1-0/+36
2016-03-18iu.c: log conn_id on outgoing messagesNeels Hofmeyr1-1/+2
2016-03-18logging: add DSUA to default_categories[]Neels Hofmeyr1-0/+5
2016-03-18logging: add DRANAP to default_categoriesNeels Hofmeyr1-0/+5
2016-03-18IuCS: fix logical flip in same_ue_conn()Neels Hofmeyr1-1/+1
2016-03-18gprs_gmm: Call gsm48_gmm_authorize from RA upd requestDaniel Willmann1-1/+8
In Iu mode the RA upd request can be called from a new Iu connection so we might need to reauthenticate the connection as well as turn on integrity protection.
2016-03-18cscn: Follow libiu move to generic event handlerDaniel Willmann1-4/+4
2016-03-18libiu: Change gprs_transp_upd_key to be useful for CS as wellDaniel Willmann2-39/+35
gprs_transp_upd_key only sends a security mode command which is needed for CS as well so change it. Make sure it is called after the UE is authenticated in Iu mode.
2016-03-17Revert "move to hex TMSI representation"Harald Welte1-8/+7
This reverts commit 044fbe6568f82a12bf4e3addc7e3d6db529b6548.
2016-03-17move to hex TMSI representationVadim Yanitskiy1-7/+8
In OpenBSC, we traditionally displayed a TMSI in its integer representation, which is quite unusual in the telecom world. A TMSI is normally printed as a series of 8 hex digits. This patch aligns OpenBSC with the telecom industry standard. Signed-off-by: Vadim Yanitskiy <axilirator@gmail.com>
2016-03-17fix confusing typo in constant (THAN -> THEN)Neels Hofmeyr2-2/+2
2016-03-16gprs_gmm: Fix RA UPD handling for IU modeDaniel Willmann1-2/+7
2016-03-16Move event callback to gprs_gmmDaniel Willmann2-29/+37
2016-03-16mgcp: Fix compiler warnings on size_t on AMD64Holger Hans Peter Freyther1-4/+4
mgcp_transcode.c: In function 'decode_audio': mgcp_transcode.c:332:4: warning: format '%d' expects argument of type 'int', but argument 7 has type 'size_t' [-Wformat=] LOGP(DMGCP, LOGL_ERROR, ^ mgcp_transcode.c:332:4: warning: format '%d' expects argument of type 'int', but argument 8 has type 'long unsigned int' [-Wformat=] mgcp_transcode.c: In function 'encode_audio': mgcp_transcode.c:390:4: warning: format '%d' expects argument of type 'int', but argument 7 has type 'size_t' [-Wformat=] LOGP(DMGCP, LOGL_INFO, ^ mgcp_transcode.c:390:4: warning: format '%d' expects argument of type 'int', but argument 8 has type 'size_t' [-Wformat=] mgcp_transcode.c: In function 'mgcp_transcoding_process_rtp': mgcp_transcode.c:542:5: warning: format '%d' expects argument of type 'int', but argument 9 has type 'size_t' [-Wformat=] LOGP(DMGCP, LOGL_NOTICE, ^ mgcp_transcode.c:571:4: warning: format '%d' expects argument of type 'int', but argument 7 has type 'size_t' [-Wformat=] LOGP(DMGCP, LOGL_NOTICE, ^
2016-03-16libiu: Replace RAB assignment response callback with a general oneDaniel Willmann3-14/+36
The new iu event callback will now be called for RAB assignment response, IU release and security mode complete
2016-03-15bsc_scan_msc_msg: check protocol discriminatorNeels Hofmeyr1-0/+5
The function assumed an MM protocol discriminator without verifying it.
2016-03-15meas: Do not retry to close the databaseHolger Hans Peter Freyther1-11/+2
There is no concurrency involved and if it failed the first time, it will fail the second, third, ... time as well. Simply print that we will leak the database instance.
2016-03-1504.08: apply new transaction id inline functionsNeels Hofmeyr4-7/+7
libosmocore recently added inline functions to relieve callers from applying bitmasks and bit shifts to access the transaction id of a GSM 04.08 header. Apply these functions.
2016-03-1504.08: apply new bitmask functions, fix bitmask useNeels Hofmeyr12-37/+46
Replace hardcoded protocol discriminator and message type bitmasks with function calls recently introduced in libosmocore. Note that the release 98 bitmasks slightly differ from the release 99 bitmasks. This patch uses the "default" gsm48_hdr_msg_type invocation, thus it depends on libosmocore whether 98 or 99 bitmasks are used. In some places, use of the bitmask was erratic. Fix these implicitly by employing the bitmask functions: * silent_call.c: silent_call_reroute(): add missing bitmask for MM. * bsc_msg_filter.c: bsc_msg_filter_initial(): RR vs. MM messages. * osmo_bsc_filter.c: bsc_find_msc() and bsc_scan_bts_msg(): RR vs. MM messages. * bsc_nat_rewrite.c: bsc_nat_rewrite_msg(): SMS vs. CC messages. * bsc_ussd.c: no bitmask is applicable for the message types used here. * gb_proxy.c: gbproxy_imsi_acquisition(): missing bit mask for pdisc. In gprs_gb_parse.c: gprs_gb_parse_dtap(), add a log notice for unexpected message types.
2016-03-15bsc_scan_msc_msg: check protocol discriminatorNeels Hofmeyr1-0/+5
The function assumed an MM protocol discriminator without verifying it.
2016-03-1504.08: apply new transaction id inline functionsNeels Hofmeyr4-7/+7
libosmocore recently added inline functions to relieve callers from applying bitmasks and bit shifts to access the transaction id of a GSM 04.08 header. Apply these functions.
2016-03-1504.08: apply new bitmask functions, fix bitmask useNeels Hofmeyr12-35/+45
Replace hardcoded protocol discriminator and message type bitmasks with function calls recently introduced in libosmocore. Note that the release 98 bitmasks slightly differ from the release 99 bitmasks. This patch uses the "default" gsm48_hdr_msg_type invocation, thus it depends on libosmocore whether 98 or 99 bitmasks are used. In some places, use of the bitmask was erratic. Fix these implicitly by employing the bitmask functions: * silent_call.c: silent_call_reroute(): add missing bitmask for MM. * bsc_msg_filter.c: bsc_msg_filter_initial(): RR vs. MM messages. * osmo_bsc_filter.c: bsc_find_msc() and bsc_scan_bts_msg(): RR vs. MM messages. * bsc_nat_rewrite.c: bsc_nat_rewrite_msg(): SMS vs. CC messages. * bsc_ussd.c: no bitmask is applicable for the message types used here. * gb_proxy.c: gbproxy_imsi_acquisition(): missing bit mask for pdisc. In gprs_gb_parse.c: gprs_gb_parse_dtap(), add a log notice for unexpected message types.
2016-03-15cosmetic: commentsNeels Hofmeyr2-2/+2
2016-03-14cscn: fix VTY port: don't use SGSN's port numberNeels Hofmeyr1-2/+2
2016-03-14msc: allow only authentication without cipheringNeels Hofmeyr1-4/+14
So far the code did only auth+ciph or none. Add case handling for only authentication without ciphering (basically just fill in the blanks).
2016-03-14HACK: hardcode subscriber auth tuple for IuCSNeels Hofmeyr1-0/+12
2016-03-14cosmeticNeels Hofmeyr2-4/+2
2016-03-14Adjust authentication logic for Iu, move a log noticeNeels Hofmeyr2-6/+27
Depending on conn->via_iface, fail upon missing auth for 3G. Move the log notice saying "skipping auth" to gsm48_secure_channel() where conn->via_iface is actually known.
2016-03-14spread a few debug logs around authenticationNeels Hofmeyr1-7/+43
2016-03-14fix confusing typo in constant (THAN -> THEN)Neels Hofmeyr2-2/+2
2016-03-14Remove unused auth code and add commentNeels Hofmeyr1-4/+13
As commented in the code, the GSM_SECURITY_AUTH_FAILED path is never invoked by the gsm48_secure_channel() function as it is today. Note that the upcoming Iu auth will probably add a GSM_SECURITY_AUTH_FAILED status. In that case, sending a LU Reject immediately may be desirable, but arguably a bit of timeout could make life harder for auth attackers. The code removed by this patch doesn't send out a LU Reject ever, since a call to release_loc_updating_req() only releases the connection. To reject, a call to gsm0408_loc_upd_rej() would be necessary, as seen in loc_upd_rej_cb(). And finally, if _gsm0408_authorize_sec_cb() doesn't do anything about anything, the same loc_upd_rej_cb() will be run by a timeout and send a LU Reject properly (as commented in the code).
2016-03-04fix build: add xsc to osmo-bsc and tests/bsc-natNeels Hofmeyr1-0/+1
2016-03-04move two gsm0480_send_*() to xsc as gsm0480_gen_*()Neels Hofmeyr4-22/+81
Have two separate gsm0480_send_ussdNotify() and gsm0480_send_releaseComplete() for each of libbsc and libmsc. Move their core into libxsc as generator functions returning a msgb. Add src/libbsc/gsm_04_80_utils.c (note, not 04_08) to implement the libbsc side of it. The code is identical, but the linked structs and functions differ in each case. There could be a common source file built for both, but I decided against it, for more clarity I hope.
2016-03-04fix two minor Makefile.am errorsNeels Hofmeyr2-2/+2
2016-03-04move sms_next_rp_msg_ref() to libxsc, for gsm0408testNeels Hofmeyr3-38/+20
Also change the signature to avoid using gsm_subscriber_connection, which has different members in libbsc and libmsc.
2016-03-04rename nitb vty config to cscn, move to cscn_vty.cNeels Hofmeyr5-69/+102
2016-03-04disable code trying to reach across BSC/MSC bounds, make build passNeels Hofmeyr3-0/+21
Disable ipacc_rtp_direct, Osmo SMPP TLVs, Ctrl interface and channel_test. These need to be reimplemented with proper separation of libs. Add some tall_* pointers the linker requires for osmo-cscn.
2016-03-04libmsc: stubify paging (A-/Iu-interfaces need to reimplement this)Neels Hofmeyr2-2/+17
2016-03-04add libmsc/a_iface.c for A-interface stubs (so far only mock)Neels Hofmeyr2-1/+81
2016-03-04gsm_subscriber_connection: further split between BSC and MSCNeels Hofmeyr7-18/+39
Move some Iu/A members into the MSC #ifdef. Have separate allocate and free functions for the two scopes.
2016-03-04create libxsc and move some code, never link libbsc and libmscNeels Hofmeyr13-769/+844
libbsc and libmsc have conflicting definitions of gsm_subscriber_connection and do no longer belong together anyway. Create libxsc, meaning 'lib[bm]sc', to hold all code used by both libmsc and libbsc, and make sure gsm_subscriber_connection isn't used there. In various binaries and tests, do not link libbsc and libmsc. (Note: this commit was reshaped out of a large wip chunk, it may not compile properly without the subsequent commits)