Age | Commit message (Collapse) | Author | Files | Lines |
|
Change-Id: I30c13a604160268756b7413f1733f92300eb241b
|
|
|
|
|
|
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.
|
|
Change-Id: I9cf80f9c2c8a53a29e42f000029e680a9922cb41
|
|
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.
|
|
Change-Id: I398aaa4a7328a58fb0d563725f3bea26482929ef
|
|
Change-Id: I624612b5d5cd70770326347634aee2a42ba88945
|
|
Change-Id: I0d5a36560e7edde27497de57e579f5b1d00eb525
|
|
|
|
Change-Id: I4ea799c5fa61f81c404e6ef1b9ac86a8faa1fb49
|
|
Change-Id: I63d4835dc7aabdf176e0ca634a6a4ca527612693
|
|
|
|
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
|
|
|
|
Change-Id: I11be1bdfe6993f89b34319e7d1526c729d6e0cde
|
|
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().
|
|
Change-Id: I7e72c9db2837ea5edf45f6037cb0288a264d492c
|
|
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.
|
|
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
|
|
add subscr_authorized(), subscr_authorized_imsi()
Change-Id: If2ef06b1229351127c61477ca14653d6ae4cb6bb
|
|
Change-Id: Icd9f8505388a06ee768d2176cb2b9187953098ef
|
|
Change-Id: Icc2522252cf15c54f1a1ea5255314a0de8bfba03
|
|
Change-Id: I44effcca80dc6850178174dc957bcd5608b0ae14
|
|
Upcoming function subscr_authorized() will flip this to bool, so separate
this change cosmetically.
Change-Id: Iba0184a71afa01141ef06c474cb554e79ad8f5d5
|
|
Change-Id: Ife8e10b240693a8d369139881774f1892044aa65
|
|
Change-Id: Idbbd39b0e068da17aafa97e315143509c69c50ea
|
|
Change-Id: Id5797cd1f1bfa2cca2d3fbabc1981aa75546421b
|
|
Change-Id: I3787050b524954d8a4dd13495c458f3ee293807b
|
|
The recent shifts and cuts have made some library linking for bsc, channel and
db tests unnecessary.
|
|
gsm0808_clear() is all about clearing lchans. To be able to link libmsc without
libbsc, don't call it directly.
Change-Id: I149146fc3cb99ef4a21ee2a798231bb070f398cd
|
|
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
|
|
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
|
|
Aim: msc_tx_dtap() shall redirect to IuCS or A interfaces depending on subscr
conn.
Change-Id: I30d961f16eb7b9c0ab9cc3f43198098d3f1a909f
|
|
Change-Id: I4a66c4122011dbc87c6fcb336ab0461b86522c98
|
|
to libfilter instead?
Change-Id: I00ca0caf8224de029f53f4dedb1146e3cf7650ec
|
|
Use new libmsc enum values for return val, to avoid dependency on libbsc
headers.
Make callable from other scopes: publish in osmo_msc.h and remove 'static' in
osmo_msc.c
Change-Id: If24007445899e9c75553a0dbf843ada3566b3380
|
|
Change-Id: I8f8980d6cfbf26f1b0e0197939833e55dbe521fb
|
|
Change-Id: I88e981f4c31393a98ae8d61176c65c9251a6f28b
|
|
Change-Id: Id347a3024fa495a1ab680db7320648d933a4018b
|
|
Change-Id: I3ac38f4b701ad8308470573260fa91a4b04c2f18
|
|
The idea is to not have a direct pointer to a bts struct (into BSC land), but a
LAC to resolve the BSC or RNC depending on the appropriate A or IuCS interface.
subscr_update(): remove bts arg, add lac arg.
Pass conn->lac to gsm48_generate_lai() instead of bts->location_area_code.
Change-Id: I9f2b298a785bf4b2a1b3fcdd91b8256106b2d9de
|
|
Change-Id: I26cafd9389aac65e53dc4280a1687c6b8bce3106
|
|
Set the T3212 default value in struct gsm_network and take that value when
creating a BTS.
Adjust VTY accordingly.
Change-Id: Ifb730f9d0106fe195adc30459a39290a07313b50
|
|
Change-Id: I3ef6ca26150b6102a0fa22a88a60d9a442d640b4
|
|
Add msc_ifaces.[hc], a_iface.c, with a general msc_tx_dtap() to redirect to
different interfaces depending on the actual subscriber connection.
While iu_tx() is going to be functional fairly soon, the a_tx() is going to be
just a dummy for some time (see comment).
Add via_iface marker to gsm_subscriber_connection with enum values IFACE_A and
IFACE_IU so far.
Add Iu specific fields in a sub-struct: the UE connection pointer and an
indicator for the Integrity Protection status on Iu (to be fully implemented in
later commits).
Add lac member to gsm_subscriber_connection, to allow decoupling from
bts->location_area_code. The conn->lac will actually be set in iu.c in an
upcoming commit ("add iucs.[hc]").
Change-Id: Idf8020a30562426e8f939706bf5c2188d5a09798
|
|
Change-Id: Ic7ed7faa2bcc7aae799f41ed4abc2c001bfb61b7
|
|
the BSC-side of the API behind gsm0808_submit_dtap() is doing
this resolving again anyway. So let's avoid doing it twice, and avoid
having more dependency of the MSC down into the lchan details.
Conflicts:
openbsc/src/libmsc/gsm_04_08.c
Change-Id: I14254be68ee1a48e9f1ce968233414d86c6ba9d5
|
|
The struct shall be split in two later.
Change-Id: Ib9666225fb9bfec2cf1e364343560571869fe6a7
|
|
|