Commit Graph

1994 Commits

Author SHA1 Message Date
Holger Hans Peter Freyther 469692ca47 bsc: Initialize the MSC data parameters to a sane default 2010-09-16 02:16:02 +08:00
Holger Hans Peter Freyther 79f763fe91 bsc: Keep all active subscriber connections in a list. 2010-09-16 02:16:02 +08:00
Holger Hans Peter Freyther a2aedad005 bsc: Move the subscriber_con code into the bsc_api 2010-09-16 02:16:01 +08:00
Holger Hans Peter Freyther 1502ddefac chan_alloc: Allocate a subscriber connection as child of the network
Due handover we might leave the BTS and if we ever allocate/release
a BTS dynamically we have a problem here.
2010-09-16 02:16:01 +08:00
Holger Hans Peter Freyther bd76fab9cb bsc: Add the osmo_bsc_grace from the on-waves/bsc-master branch
The grace code will decide if a given connection is allowed to
be made or if it is going to be rejected. For active connections
it is going to send a USSD message.
2010-09-16 00:20:56 +08:00
Holger Hans Peter Freyther 0ab63d73c1 bsc: Move the gsm_04_80.c code into the libbsc.a 2010-09-16 00:20:19 +08:00
Holger Hans Peter Freyther 7a1591b3cf osmo_rf: Keep the current policy inside the RF struct..
Keep a back pointer to the rf struct inside the connection,
resolve the network through the back pointer. Also assume
that the RF is on. In case we start with RF locked, the policy
is on but we will not see any MS talking to us.
2010-09-16 00:10:18 +08:00
Holger Hans Peter Freyther 9a8b5ae977 bsc: Move the rf_ctl into the msc data struct 2010-09-15 23:53:54 +08:00
Holger Hans Peter Freyther 47b2601e01 bsc: Register a new MSC group with data for the MSC connection
This group contains everything that is related to the MSC connections.
2010-09-15 23:46:03 +08:00
Holger Hans Peter Freyther 13046202eb bsc: Remove the old msc parameter, everything is in the VTY config now 2010-09-15 22:30:37 +08:00
Holger Hans Peter Freyther 3e8e046ee5 bsc: Create struct osmo_msc_data to hold MSC information, handle signals 2010-09-15 22:29:25 +08:00
Holger Hans Peter Freyther 85804a80d4 nat: Fix the grammar of the sentence for listing open sccp connections 2010-09-15 19:01:31 +08:00
Holger Hans Peter Freyther 09ecda49d7 nat: Check if the connection was filtered before the msc connection
This way we avoid seeing many warnings that we will not forward
data to the MSC. For the con_local connections that is actually
the idea, we will not forward them to the MSC.
2010-09-15 18:58:37 +08:00
Holger Hans Peter Freyther e8223cae3d nat: Remove debug left overs 2010-09-15 18:58:36 +08:00
Holger Hans Peter Freyther ac2763b47e nat: Attempt to disconnect a connection when IMSI filtering happens
Attempt to disconnect the connection and make both sides happy
about this. Right now it only handles the LU and should be extended
to the CM Service Request.
2010-09-15 18:58:36 +08:00
Holger Hans Peter Freyther 11ebe1bf05 nat: And the sequence number away, making it work more reliable 2010-09-15 18:58:36 +08:00
Holger Hans Peter Freyther 3268540fc3 nat: Parse the id response, extract the IMSI, compare it
Add a test case and also add a basic check that we got some
size checks correct. The next step is to act on the result.
2010-09-15 18:58:36 +08:00
Holger Hans Peter Freyther d880f54f4b nat: Update the test for the new <0,0,1 semantic of the filter function
A test case with a TMSI is missing, this would be needed for
better coverage of the filter test case.
2010-09-15 18:58:36 +08:00
Holger Hans Peter Freyther 74e0a1b91c nat: Start inspecting every message coming from the BSC for the IMSI
Return early in case the IMSI was already checked, if not we need
to look at the connection and check if the message could contain a
imsi we want/need to filter.
2010-09-15 18:58:36 +08:00
Holger Hans Peter Freyther 909e61fddc nat: Remember if we have check the imsi.
Return -1 if the IMSI should be filtered, 0 if the IMSI could not
be checked and 1 if the IMSI was checked and allowed to pass. In
the future this will be used to inspect every message coming by.
2010-09-15 18:58:35 +08:00
Holger Hans Peter Freyther 3837f99e89 nat: Keep the fiter status in the return message. 2010-09-15 18:58:35 +08:00
Holger Hans Peter Freyther 27640fc255 nat: Improve the log message in case we have SCCP data without a connection
Describe which kind of data we have and where it was coming from
as this makes debugging a bit easier.
2010-09-15 18:58:35 +08:00
Holger Hans Peter Freyther 5f54075a8b vty: Use \r\n in the copyright messages
We should use VTY_NEWLINE but our strings are static, always
use \r\n as unix terminals can handle that as well.
2010-09-11 13:32:30 +08:00
Holger Hans Peter Freyther 38158fb941 bsc: Set the copyright for the real BSC. 2010-09-11 13:28:42 +08:00
Holger Hans Peter Freyther 2e4447baa5 [paging] Implement the counting for TCH/H and TCH/F
Add some code to count TCH/H and TCH/F and also handle
the neci bit of the network. Our channel allocator will
allocate a TCH/F if we request a TCH/H but can not allocate it.
2010-09-06 10:13:23 +08:00
Holger Hans Peter Freyther e66bf1fd46 [paging] Only page if we have some free channels right now
Only page if we have a load that is acceptable for paging. This
option is off by default, and can be enabled per bts. The idea
is that when we have no resources right now we will not page as
it will only create more RACHs and increase the load.

By default we are keeping the old behavior to always page and
only by changing a setting one is using the new behavior.
2010-09-06 10:13:23 +08:00
Holger Hans Peter Freyther eb241aa1d5 [paging] Continuisly send paging commands.
Instead of throwing a huge pile of paging commands to the BTS
we will submit one paging command every half second. This way
we can have different messages between the paging commands.

This is done to avoid crashes of the nanoBTS when too much
paging messages are send.
2010-09-06 10:13:23 +08:00
Holger Hans Peter Freyther 78fab29fa1 [paging] When giving credit try to send out paging requests too.
Make sure the paging timer is restarted after giving some credit
and send out paging requests.
2010-09-06 10:13:23 +08:00
Holger Hans Peter Freyther 6410d93cf8 [paging] When we ran down to 0 available paging slots start a credit timer
It might be that we run down to zero available slots but the BTS
might not send us a load indication. This can happen if we think
we send paging requests and the BTS disagrees and considers them
as errors and does not count the paging message.
When we drop to zero we will start a credit timer to give us extra
credit after six seconds, if we get a CCCH load indication before
we will stop the timer.
2010-09-06 10:13:22 +08:00
Holger Hans Peter Freyther b0e88b8644 vty: Fix build due to merge issue. 2010-09-06 10:13:22 +08:00
Holger Hans Peter Freyther 76fc4a34b8 chan: Add configuration to handle paging any with TCH
It is possible that the MSC is not sending the channel type it
needs for the operations it wants to do. Add a configuration option
to assign a TCH in case of paging any requests. It can be a good
idea to leave SDCCHs free for location updating requests and use
the TCH for SMS-MT and CC-MT.
2010-09-06 09:41:50 +08:00
Holger Hans Peter Freyther 78891078fe chan: Store the to be assigned channel type in the GSM Network.
Store the mapping from request to channel type in the GSM Network
struct as there is some policy involved with handling the request.

E.g. in a half rate network we don't want emergy calls to be getting
a TCH/F, or we want to have a different policy for early/late assignment
of phone calls. Update the table when creating the network and when
the neci is changed.
2010-09-06 09:36:02 +08:00
Holger Hans Peter Freyther 5a3a61d88f bsc_init: Allow DTXu and enable DTXd on RSL (experimental)
Allow the MS to use uplink discontinous transmission by
setting the right bit in the SystemInformation and set
DTXd/DTXu on the RSL channel commands.

This is configurable via dtx-used (0|1) on the network
level and still considered as experimental.
2010-09-06 09:26:27 +08:00
Holger Hans Peter Freyther 457c2a879c [alloc] Assign a TCH for LU when all SDCCHs are occupied.
When the cell becomes visible we will be bombed with location
updating requests and to reduce the load on the network we should
assign as many channels for it as possible. During load peek it
is even more important than to have a spare voice channel and in
general the LU procedure is pretty fast.
2010-09-06 08:58:42 +08:00
Holger Hans Peter Freyther d368a71398 nat: Use ':' to separate the message and strerror 2010-09-05 08:51:12 +08:00
Holger Hans Peter Freyther 6ffca132c1 vty: CONFIG_NODE is the anchor and should not be treated as config.
This is fixing an assert in vty_go_parent due trying to go from
CONFIG_NODE to the parent.
2010-09-04 11:15:27 +08:00
Holger Hans Peter Freyther 81506b4095 vty: Add the config node code to everyone. 2010-09-04 11:00:01 +08:00
Holger Hans Peter Freyther 6262643b45 channel_release: First attempt to update the doc to new code. 2010-09-03 15:34:12 +08:00
Holger Hans Peter Freyther 85902a4d4a nat: We have 1 to 31 available to the BSC. 2010-09-01 09:31:46 +08:00
Holger Hans Peter Freyther f7c86c5b4d nat: Replace the MGCP Endpoint if that is required
Add code to replace the Endpoint number for the mgcp.
2010-08-30 13:44:32 +08:00
Holger Hans Peter Freyther bf812fa83c nat: Use different static transaction numbers for the DLCX/MDCX message 2010-08-30 12:01:36 +08:00
Holger Hans Peter Freyther d38aa450d7 nat: Document that the MDCX message is not implemented 2010-08-30 11:58:49 +08:00
Holger Hans Peter Freyther 601180f2d9 nat: Send the right MDCX down the stream 2010-08-29 23:40:33 +08:00
Holger Hans Peter Freyther 7d5bb26fdc nat: Remove the code that is wrongly placed..
i refers to the MSC side of endpoints and not the BSC..
2010-08-29 22:44:10 +08:00
Holger Hans Peter Freyther 8574dcf9da nat: Close the right endpoint down the stream. 2010-08-29 22:39:07 +08:00
Holger Hans Peter Freyther 0d8330c8cc nat: Add vty command to show the endpoint allocation status 2010-08-29 16:36:01 +08:00
Holger Hans Peter Freyther 45fd07dc33 nat: Attempt to assign the BSC Timeslot based on a free list
Do attempt to not reassign an endpoint immediately but go
to the next free one.
2010-08-29 16:35:26 +08:00
Holger Hans Peter Freyther 39cd32e650 nat: Remove the CRCX value from the nat
Assume that if the MSC has assigned a timeslot/multiplex it will
also be used for the MGCP. So we just assume that it was allocated
on the BSC as well... in the worse case we will send a DLCX downstream
but it should be fine.
2010-08-29 16:35:25 +08:00
Holger Hans Peter Freyther c021fbe603 nat: Reindent the code, no functional change 2010-08-29 16:35:25 +08:00
Holger Hans Peter Freyther f4b3439206 nat: Make the code work in terms of endpoints instead of timeslot/multiplex
We are going to have more than one trunk, so all code hardcoding the
multiplex to zero must go. Avoid this kind of problem by saving the
MGCP endpoint number and comparing that.
2010-08-29 16:35:24 +08:00