Holger Hans Peter Freyther
f1f57a84c1
bsc: Parse the CLEAR COMMAND and close the lchan and ack that
2010-11-15 20:06:49 +01:00
Holger Hans Peter Freyther
863a55d44d
bsc: Make bsc_queue_for_msc work on the osmo_bsc_sccp_con
...
The gsm_subscriber_connection can die before the SCCP connection
so we should work on the osmo_bsc_sccp_con.
2010-11-15 20:06:49 +01:00
Holger Hans Peter Freyther
890dfc58ed
bsc: Work on paging and parsing other messages
...
The paging is not implemented due bad/missing API in the
BSC API, the rest are simple stubs to be merged from the
on-waves/bsc-master.
2010-11-15 20:06:49 +01:00
Holger Hans Peter Freyther
3485feb49b
bsc: Add module for handling BSSAP input
...
The current implementation is a stub. The code from
bssap.c of on-waves/bsc-master will be migrated into
this new structure
2010-11-15 20:06:49 +01:00
Holger Hans Peter Freyther
cf256d678f
bsc: Implement sending a SCCP CR with the complete layer3 data
2010-11-15 20:06:49 +01:00
Holger Hans Peter Freyther
933daaa016
bsc: Implement SCCP connection confirmed handling.
2010-11-15 20:06:49 +01:00
Holger Hans Peter Freyther
af4b5fb13e
bsc: Implement clearing the SCCP connection
2010-11-15 20:06:49 +01:00
Holger Hans Peter Freyther
57d304871e
bsc: Implement writing out UDT messages to a MSC Connection
2010-11-15 20:06:49 +01:00
Holger Hans Peter Freyther
00f4cc22c8
bsc: Implement closing the connections when the MSC goes missing
...
Refactor the closing code of the CC timeout to a new function,
also make sure that the SCCP Connection is forced closed before
we destruct the connection for real.
2010-11-15 20:06:49 +01:00
Holger Hans Peter Freyther
ca5c022a32
bsc: Implement sending a message toward the MSC.
2010-11-15 20:06:49 +01:00
Holger Hans Peter Freyther
c97d9b4df1
bsc: Implement a CC timeout and the IT timeout, prepare the timers
2010-11-15 20:06:49 +01:00
Holger Hans Peter Freyther
7e9010892d
bsc: Make open/close work on the sccp data
2010-11-15 20:06:48 +01:00
Holger Hans Peter Freyther
b8781d2cd5
bsc: Start to open a SCCP connection and prepare timers and such.
2010-11-15 20:06:48 +01:00
Holger Hans Peter Freyther
9b17c769b9
bsc: Work a bit on opening the SCCP connection to the MSC.
...
Most of the code is still stubs but the structure is a lot
cleaner than the one in the on-waves/bsc-master branch.
2010-11-15 20:06:48 +01:00
Holger Hans Peter Freyther
2a8675e49a
bsc: Add a mobile country code setting for the backbone.
2010-11-15 20:06:48 +01:00
Holger Hans Peter Freyther
52d42abdb7
bsc: Implement scanning and changing messages from the MSC
...
This will change the LAI of a LU accept message to the LAI
used for the on-air network. It will also detect when to
send a welcome ussd to the subscriber.
2010-11-15 20:06:48 +01:00
Holger Hans Peter Freyther
a54732d19d
bsc: Add a method to scan messages coming from the MSC.
2010-11-15 20:06:48 +01:00
Holger Hans Peter Freyther
d65305f5b4
bsc: Look for location updating requests in messages
...
Introduce the SCCP connection data and remember that
we were seeing a location updating request from a
different LAC.
2010-11-15 20:06:48 +01:00
Holger Hans Peter Freyther
5bb874d2f5
bsc: Add a hook where we can scan for LU and other messages.
2010-11-15 20:06:48 +01:00
Holger Hans Peter Freyther
cc48fb8083
bsc: Call into the SCCP layer to create a new connection.
2010-11-15 20:06:48 +01:00
Holger Hans Peter Freyther
46c5ab3624
bsc: Reduce duplication with a macro.
2010-11-15 20:06:48 +01:00
Holger Hans Peter Freyther
e46f1d6cc4
bsc: Implement sending an assignment failure
2010-11-15 20:06:48 +01:00
Holger Hans Peter Freyther
c2b3270e93
bsc: Send a Clear Reques on RF Failures to the MSC.
2010-11-15 20:06:48 +01:00
Holger Hans Peter Freyther
c8166f3a91
bsc: Implement sending a SAPI n Reject.
...
It is not clear that the link_id is setup correctly here.
2010-11-15 20:06:48 +01:00
Holger Hans Peter Freyther
58f2cf6494
bsc: Implement the DTAP callback and forward the data to the MSC
2010-11-15 20:06:47 +01:00
Holger Hans Peter Freyther
da488ae343
bsc: Implement sending the assignment complete to the network
2010-11-15 20:06:47 +01:00
Holger Hans Peter Freyther
2d2c910f2c
bsc: Implement sending a Cipher Mode Complete message
2010-11-15 20:06:47 +01:00
Holger Hans Peter Freyther
4582586e24
bsc: Add a method that will queue the message on a MSC connection.
2010-11-15 20:06:47 +01:00
Holger Hans Peter Freyther
7225fd18e0
bsc: Add some basic checks to see if a SCCP connection is established
2010-11-15 20:06:47 +01:00
Holger Hans Peter Freyther
1999cf11b9
bsc: Complain about unimplemented stuff.
2010-11-15 20:06:47 +01:00
Holger Hans Peter Freyther
77cd95d5b5
bsc_api: Implement the assignment command for the BSC.
2010-11-15 20:06:47 +01:00
Holger Hans Peter Freyther
f05750ca24
bsc_api: Rework the signal handler to be extendable
2010-11-15 20:06:47 +01:00
Holger Hans Peter Freyther
abf962b096
bsc_api: Clear lchan->conn on lchan_release
...
Set conn to NULL before starting the release procedure, remove
code to check for a lchan->conn as it can not happen. If there
are any memleaks we will notice them.
Detach the lchan->conn from the channel before detaching.
2010-11-15 20:06:47 +01:00
Holger Hans Peter Freyther
8d216c7756
bsc_api: Clear the conn->lchan before calling subscr_con_free
2010-11-15 20:06:47 +01:00
Holger Hans Peter Freyther
a2e5cb8601
bsc_api: Clear the conn of the failed lchan to avoid a runtime warning
2010-11-15 20:06:47 +01:00
Holger Hans Peter Freyther
a2828fa4bc
bsc_api: Set the lchan->conn to NULL in all of the cases
2010-11-15 20:06:47 +01:00
Holger Hans Peter Freyther
088dde8173
bsc_api: Send a channel modify when we already have a TCH.
2010-11-15 20:06:47 +01:00
Holger Hans Peter Freyther
7e50c8140b
bsc_api: Plug a theoretical window for the RLL callbacks
...
The timedout could come between lchan_release and the
S_CHALLOC_FREED signal. In the future we might want to
use the gsm0808_clear to stop the RLL timeouts and such.
2010-11-15 20:06:47 +01:00
Holger Hans Peter Freyther
8d380dcadd
bsc_api: Change submit dtap to allow to automatically use the SACH
...
For SAPI=3 on a TCH it might be nice to use the SACH to submit
the message. The api allows to automatically use the SACH if
a message like this is submitted.
2010-11-15 20:06:46 +01:00
Holger Hans Peter Freyther
2603c1f545
bsc_api: Clarify the parameters of the assignment command
2010-11-15 20:06:46 +01:00
Holger Hans Peter Freyther
4be7d41a50
bsc_api: Implement sending the cipher mode method
...
This will set the encryption algorithm, key and then
send the RR Cipher Mode message to the MS. The method
is also verifying the input.
2010-11-15 20:06:46 +01:00
Holger Hans Peter Freyther
2f169d64dd
bsc_api: Make the cipher_mode take the 'include imei sv' argument
...
The cipher mode command should enable encryption and send the
right RR message to the other side.
2010-11-15 20:06:46 +01:00
Holger Hans Peter Freyther
45b575fd94
bsc_api: The rr_cause is optional, pass it as a pointer
2010-11-15 20:06:46 +01:00
Holger Hans Peter Freyther
66dcd925c6
bsc_api: Nuke the clear complete from the API.
...
There is no place where it can be called. Whoever is calling
the gsm0808_clear method should generate the clear complete
as the result.
2010-11-15 20:06:46 +01:00
Holger Hans Peter Freyther
46caa3048d
bsc_api: Provide the link_id in the dtap callback.
2010-11-15 20:06:46 +01:00
Holger Hans Peter Freyther
b094171c9f
bsc_api: Add needed parameters to the assignment complete callback
...
Provide the chosen channel and more information in the assignment
complete method.
2010-11-15 20:06:46 +01:00
Holger Hans Peter Freyther
e1996f013c
bsc_api: The cipher mode is not a message on the air interface
...
The cipher mode reject will be send in case the BSC is not
able to support the requested cipher. So this reject can be
handled by however attempts to enable ciphering.
2010-11-15 20:06:46 +01:00
Holger Hans Peter Freyther
6c199e7d99
bsc_api: Look into the msg and call the right API functions
...
For certain messages we will need to call other GSM0808 functions. To
keep the bsc_hack working we will try to send this through the normal
messages first and then fallback to dtap if no handler is registered.
The gsm_04_08.c code is not forced to handle the IPA activation
and channel modify ack anymore. This is done transparently by the
BSC API now.
2010-11-15 20:06:46 +01:00
Holger Hans Peter Freyther
fce9307553
bsc_api: Change the cause to a uint8_t for now
...
The RR Cause can only be one byte. Change from uint16_t to uint8_t for that.
2010-11-15 20:06:46 +01:00
Holger Hans Peter Freyther
05c68841a8
bsc_api: Fix a use after free error in the Clear Request path
...
The implementation of bsc_hack would call subscr_con_free before
the BSC API has had the chance to call gsm0808_clear to try to
release other channels. Fix that by adding a return value.
2010-11-15 20:06:46 +01:00