aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2016-09-29mgcp dbg log3G_2016_09Neels Hofmeyr2-7/+99
Change-Id: I56fda48edaa92abfc6e3886cdfce733bb0686f73
2016-09-29sgsn_ranap_iu_event: handle some events without valid MM contextNeels Hofmeyr1-5/+13
Change-Id: Ia7e74087d56996104b6d3935b1cf12166ff67f3a
2016-09-29IuCS: store assigned rab_id in gsm_subscriber_connectionNeels Hofmeyr2-2/+4
Change-Id: I7fda4304631fc24bbd1bebe911b8403a942fcf53
2016-09-29bridge calls via mgcpgwNeels Hofmeyr4-2/+35
Change-Id: Ie259e30bc532fe9817c96562022ac33443d5747a
2016-09-29also do call assignment for MT calls, upon Call ConfirmedNeels Hofmeyr1-0/+2
Change-Id: I863fa73948f61aaffd7f4472f3abc3e44228e31f
2016-09-29IuCS: implement msc_call_assignment() for IuCSNeels Hofmeyr4-1/+110
Send IuCS RAB Activation upon MNCC_CALL_PROC_REQ. Implement function msc_call_assignment(): decide between sending A-iface BSSMAP Assignment Request or IuCS RAB Assignment Request. Implement iu_rab_act_cs() to send the IuCS RAB Assignment Request. The IP address and port of the MGCPGW sent in the RAB Assignment are still hardcoded. The A-interface extension is not implemented yet. Declare ranap_new_msg_rab_assign_voice() to avoid including ranap_msg_factory.h, which would require adding ASN1 CFLAGS to Makefile.am. The mgcpgw_client as well as some more osmo-iuh functions are now linked from libmsc, hence add some dummy stubs to libiudummy and db_test.c. Change-Id: Iaae51d1fbbfc28fad1c0b85e161d53d80a420a19
2016-09-29cscn: add mgcpgw client (with dummy read cb so far)Neels Hofmeyr4-0/+28
Store the mgcpgw client data in struct gsm_network. Initialize VTY and bind the client. Change-Id: Ifc4efb1ca44fa34c29bf23b35addb54155296d68
2016-09-29libmgcp: add mgcpgw client APINeels Hofmeyr5-0/+475
Add an API to send MGCP messages to an MGCP GW, from the perspective of an MSC instructing the GW to setup RTP streams. Rationale: the mgcp_protocol.h is mostly for the MGCP GW itself, other implementations forward incoming MGCP messages. So a simpler approach for an MGCP GW client is useful. Add general VTY commands that can be used to configure mgcpgw_client. osmo-cscn is going to use this to route RTP streams (for 3G at first). Change-Id: I6fe365c4c89207f2172943cc456b508a207b1135
2016-09-29libmgcp: add value strings for mgcp_connection_modeNeels Hofmeyr3-0/+40
Add file mgcp_common.c to implement the value strings for the mgcp_connection_mode. Add in a separate file because of the upcoming mgcpgw_client.c implementation, introducing a file that contains implementations commonly used in MGCP GW as well as its clients. Change-Id: I6fe365c4c89207f2172943cc456b508a207b1135
2016-09-29libmgcp: move mgcp_connection_mode to public headerNeels Hofmeyr2-8/+8
mgcp_connection_mode will be used by the upcoming mgcpgw_client.h API. Change-Id: I7a3f8905723320d968f1a53c1036904107b4fb2d
2016-09-29IuCS: cosmetic prep for msc_call_assignment()Neels Hofmeyr3-3/+15
Rename gsm48_cc_tx_call_proc() to gsm48_cc_tx_call_proc_and_assign() to mark the place where the A-interface will send a BSSAP Assignment Request / where the IuCS-interface will send a RAB Assignment Request. Add function msc_call_assignment() to decide between A-iface and IuCS assignment, to be implemented in subsequent commit. Change-Id: I0695e233d57d13658793b0e63bb7c3ff224909a0
2016-09-29IuCS: send RANAP CommonIDNeels Hofmeyr6-0/+48
Add libiu function to send a CommonID message down a UE connection, iu_tx_common_id(); add also a corresponding stub to libiudummy for linking with tests. Add libmsc function msc_tx_common_id() to call the above. Add this mostly to clearly indicate in msc_ifaces.h that libmsc is calling out of the MSC; also to do conn->via_iface checking. Call msc_tx_common_id() after ciphering is established, in _gsm48_rx_mm_serv_req_sec_cb()'s GSM_SECURITY_SUCCEEDED case. Change-Id: I576ddd5bbabfc989149debd2f8a9743db6d26043
2016-09-29cosmetic: msc_handler, bsc_handler: drop extra whitespaceNeels Hofmeyr2-2/+2
The extra ws made me not find these lines when grepping for 'dtap ='. Change-Id: I45e5c9e7df4704546872aab15adf407298943435
2016-09-29SGSN: Don't indicate GERAN in Iu mode PDP CTX ACT REQ to GGSNHarald Welte1-10/+20
2016-09-29cscn: add cmdline error messageNeels Hofmeyr1-1/+3
Change-Id: I30c13a604160268756b7413f1733f92300eb241b
2016-09-29cosmetic: remove legacy comment from gsm0408_loc_upd_rej()Neels Hofmeyr1-1/+1
2016-09-29cosmetic: make gsm0408_loc_upd_rej() staticNeels Hofmeyr1-1/+1
2016-09-29LU counters: count completion and failure, not messages sentNeels Hofmeyr3-19/+37
From a human admin viewpoint it doesn't make sense to count the messages sent: When we use TMSIs, we first send a LU Accept with a new TMSI, and then expect the MS to respond with a TMSI Realloc Complete message. When that fails to come through, the LU actually ends in failure, even though a LU Accept was sent. In 3G, if a UE sends an Iu Release during LU (e.g. user enables flight mode), we cancel the LU without sending any reply at all, so nothing would be counted. Instead, count Location Updating results, i.e. completion and failures.
2016-09-29remove handle_abisip_signal()Neels Hofmeyr1-71/+0
Change-Id: I9cf80f9c2c8a53a29e42f000029e680a9922cb41
2016-09-29gsm0408_clear_request(): actually free the released connNeels Hofmeyr1-0/+2
By having conn->in_release == 1, calling msc_release_connection() has no effect and thus never frees the conn. So, after all pending requests have been discarded, also discard and free the unused connection.
2016-09-29add iu.h to gsm_subscriber.cNeels Hofmeyr1-0/+1
Change-Id: I398aaa4a7328a58fb0d563725f3bea26482929ef
2016-09-29gsm_04_08.c: iu.hNeels Hofmeyr1-0/+1
Change-Id: I624612b5d5cd70770326347634aee2a42ba88945
2016-09-29temporary dev: set debug log level almost everywhereNeels Hofmeyr1-17/+17
Change-Id: I0d5a36560e7edde27497de57e579f5b1d00eb525
2016-09-29comment on mscsplit, indent commentNeels Hofmeyr3-1/+9
2016-09-29move to libbsc: lchan_next_meas_rep() -- TODO really?Neels Hofmeyr3-14/+13
Change-Id: I4ea799c5fa61f81c404e6ef1b9ac86a8faa1fb49
2016-09-29move to libbsc: gsm_bts_neighbor() -- TODO really?Neels Hofmeyr3-23/+21
Change-Id: I63d4835dc7aabdf176e0ca634a6a4ca527612693
2016-09-29gsm0408_test: use NULL for root ctx -- TODO really?Neels Hofmeyr1-2/+2
2016-09-29gsm_04_08: remove apply_codec_restrictions() -- TODO really?Neels Hofmeyr1-28/+0
This function is wrongly placed on the MSC level. Unfortunately I cannot remember the very plausible details that hwelte had back in the days to argue for this change. (Refactoring an old commit that fails to explain in more detail.) Change-Id: I82623847e652a59a921d2fb142b77cf22420a746
2016-09-29move to libmsc: osmo_stats_vty_add_cmds() -- todo MSCSPLITNeels Hofmeyr2-1/+2
2016-09-29include msc_ifaces.h in gsm_04_08.cNeels Hofmeyr1-0/+2
Change-Id: I11be1bdfe6993f89b34319e7d1526c729d6e0cde
2016-09-29complete IuCS paging implementationNeels Hofmeyr3-35/+115
Add paging timeout to struct gsm_subscriber. Previously, paging timeout was implemented only on BSC level, where each request has its own timeout value. The MSC will still send individual requests to BSC or RNC level, where they timeout individually. However, the MSC must also have an own timeout to be sure to discard stale pagings that the BSC or RNC never replied for. Add handle_paging_resp(), copying the few libmsc relevant parts of gsm48_handle_paging_resp().
2016-09-29paging: add todo comments for paging and mscsplitNeels Hofmeyr2-0/+7
Change-Id: I7e72c9db2837ea5edf45f6037cb0288a264d492c
2016-09-29paging: actually verify subscriber authorizationNeels Hofmeyr1-1/+8
Before this, any paging response would be accepted by the CN, without checking the database whether the subscriber is in fact authorized. The probability that a subscriber would be able to take unauthorized action is slim, nevertheless checking authorization status with the database should happen before we accept a connection.
2016-09-29paging: change subscr_paging_cb() into subscr_rx_paging_response()Neels Hofmeyr2-23/+7
Remove one layer of callback indirection in paging. When a paging response arrives, we always want to first secure the connection, thus a fixed subscr_rx_paging_response() function is more appropriate and avoids having to store a cbfn. The actual actions to be taken upon successful paging are of course still in callback functions stored with each subscriber. Remove paging_request_stop() call from subscr_paging_dispatch(), which stops paging on all BTSs, which is not the responsibility of libmsc. Change-Id: Ic2c785c9cc48b2c2c6557cbe1060d25afa89e38d
2016-09-29move subscr auth check to gsm_subscriber.cNeels Hofmeyr3-34/+56
add subscr_authorized(), subscr_authorized_imsi() Change-Id: If2ef06b1229351127c61477ca14653d6ae4cb6bb
2016-09-29auth logNeels Hofmeyr1-1/+3
Change-Id: Icd9f8505388a06ee768d2176cb2b9187953098ef
2016-09-29iu auth wipNeels Hofmeyr1-18/+64
Change-Id: Icc2522252cf15c54f1a1ea5255314a0de8bfba03
2016-09-29Iu auth wipNeels Hofmeyr2-10/+73
Change-Id: I44effcca80dc6850178174dc957bcd5608b0ae14
2016-09-29cosmetic prep: change int -> bool authorize_subscriber()Neels Hofmeyr1-6/+6
Upcoming function subscr_authorized() will flip this to bool, so separate this change cosmetically. Change-Id: Iba0184a71afa01141ef06c474cb554e79ad8f5d5
2016-09-29subscr_request_channel() -> subscr_request_conn()Neels Hofmeyr3-5/+7
Change-Id: Ife8e10b240693a8d369139881774f1892044aa65
2016-09-29move subscr_request to gsm_subscriber.hNeels Hofmeyr2-14/+14
Change-Id: Idbbd39b0e068da17aafa97e315143509c69c50ea
2016-09-29add gsm_encr to subscr_connNeels Hofmeyr1-0/+1
Change-Id: Id5797cd1f1bfa2cca2d3fbabc1981aa75546421b
2016-09-29osmo-nitb becomes osmo-cscnNeels Hofmeyr8-109/+398
Change-Id: I3787050b524954d8a4dd13495c458f3ee293807b
2016-09-29remove unneccessary linking from some testsNeels Hofmeyr3-4/+0
The recent shifts and cuts have made some library linking for bsc, channel and db tests unnecessary.
2016-09-29msc_release_connection(): don't call gsm0808_clear()Neels Hofmeyr1-1/+0
gsm0808_clear() is all about clearing lchans. To be able to link libmsc without libbsc, don't call it directly. Change-Id: I149146fc3cb99ef4a21ee2a798231bb070f398cd
2016-09-29cut off libbsc paging, pending paging in libmscNeels Hofmeyr5-2/+24
Temporarily disable all paging to be able to link libmsc without libbsc. Skip the paging part of channel_test because the paging is now disabled. In osmo-nitb, paging is done on BSC level and MSC level "at the same time". When the new CSCN is fully operational, paging will be controlled separately on the MSC level, and the BSC (RNC) level will be instructed over an IuCS or A-interface to negotiate paging with the MS (UE). This MSC level paging does not yet exist and will be added in subsequent commits. Change-Id: I8b6920ddc54fc3f2876a59664e6722666d8a8a4a
2016-09-29libmsc: duplicate gsm0808 / gsm48 functions (towards BSC)Neels Hofmeyr4-13/+69
In osmo-nitb, libmsc would directly call the functions on the BSC level, not always via the bsc_api. When separating libmsc from libbsc, some functions are missing from the linkage. Hence duplicate these functions to libmsc, add an msc_ prefix for clarity, also add a _tx to gsm0808_cipher_mode(): * add msc_gsm0808_tx_cipher_mode() (dummy/stub) * add msc_gsm48_tx_mm_serv_ack() * add msc_gsm48_tx_mm_serv_rej() Call these from libmsc instead of * gsm0808_cipher_mode() * gsm48_tx_mm_serv_ack() * gsm48_tx_mm_serv_rej() Also add a comment relatd to msc_gsm0808_tx_cipher_mode() in two places. Change-Id: I5b276853d3af71f5e3f0a031fd17b4fff0580020
2016-09-29Use new msc_tx_dtap() instead of gsm0808_submit_dtap()Neels Hofmeyr4-8/+10
Aim: msc_tx_dtap() shall redirect to IuCS or A interfaces depending on subscr conn. Change-Id: I30d961f16eb7b9c0ab9cc3f43198098d3f1a909f
2016-09-29add libiudummy, to avoid linking Iu deps in testsNeels Hofmeyr6-0/+56
Change-Id: I4a66c4122011dbc87c6fcb336ab0461b86522c98
2016-09-29move to libxsc: gsm48_extract_mi(), gsm48_paging_extract_mi() -- TODO move ↵Neels Hofmeyr2-24/+24
to libfilter instead? Change-Id: I00ca0caf8224de029f53f4dedb1146e3cf7650ec