Age | Commit message (Collapse) | Author | Files | Lines |
|
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.
|
|
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.
|
|
|
|
|
|
So far the code did only auth+ciph or none. Add case handling for only
authentication without ciphering (basically just fill in the blanks).
|
|
|
|
|
|
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.
|
|
|
|
|
|
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).
|
|
|
|
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.
|
|
|
|
Also change the signature to avoid using gsm_subscriber_connection, which
has different members in libbsc and libmsc.
|
|
|
|
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.
|
|
|
|
|
|
Move some Iu/A members into the MSC #ifdef.
Have separate allocate and free functions for the two scopes.
|
|
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)
|
|
|
|
|
|
|
|
Include control_vty.h so that ctrl_vty_get_bind_addr() is properly declared.
Add ctrl iface vty commands.
|
|
|
|
|
|
After rebasing onto 1b0e5540dba697, some changes need to be applied to
cscn_main.c, originally a copy of bsc_hack.c before the rebase. On master,
configurable MNCC socket path and Control interface bind address were added.
|
|
As described in a comment, for MSCSPLIT the tz data has been moved to network
level. To allow compiling osmo-bsc on the sysmocom-iu branch, move tz up to
network level in osmo-bsc as well.
This could be done better for osmo-bsc, rather easily too, still allowing
per-BTS timezone settings. But I'm trying to focus on IuCS and would like to
come back to this later.
|
|
Iu mode doesn't have tlli, so look up according to p-tmsi
|
|
|
|
|
|
|
|
In case a Iu connection is reconnected we need to update the ue ctx
|
|
|
|
|
|
Iu mode has a GMM service request message which a UE in PMM-IDLE mode
can use to switch back to PMM-CONNECTED mode.
|
|
|
|
To make the IuCS build work, disable the BSC-land access from MSC's SMPP code.
Some way shall be found to make the Osmocom vendor-specific SMPP TLVs work over
the A-interface (after the MSCSPLIT), but we're concentrating on IuCS for now.
|
|
Use gsm_subscriber_connection does not have a bts field if building as
libmsc. Use network directly.
|
|
|
|
|
|
struct RANAP_RAB_SetupOrModifiedItemIEs_s; may be declared, but not the
corresponding typedef. It leads to a redefinition error in our coverity
build.
|
|
ranap_free_rab_setupormodifieditemies()"
There should be no need to silence this warning, the ranap_free_*
functions are declared in libranap headers. In any case this will only
obscure any real issue. Maybe osmo-iuh was not rebuilt completely
(including generation of the c files from the python script).
This reverts commit 05ae5b1245f95bf765b42e49af7b2596e013f0a0.
|
|
The one generated by the python script doesn't really do what we want.
Instead of futzing around with the script again just write our own
version.
|
|
|
|
The sgsn uses other data structs so don't require them inside libiu.
Instead keep a private list of ue contexts and iterate through that.
This commit reverts the libui changes of commit
d03faa4bacd4d2a8b9155faf5219a948b73f481c
|
|
|
|
|
|
|