Age | Commit message (Collapse) | Author | Files | Lines |
|
This makes sure that someone can call bsc_msc_lost multiple times
even if there is no MSC connection. This makes sense as bsc_msc_lost
is public and be called from client code.
|
|
We want to send a welcome USSD to new subscribers, mark subscribers
with a different LAC than this cell as special and hope someone will
follow up with them.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Right now we have a network-wide RF lock, in the future
one BSC might have multiple BTSs at different positions
and a global state will not make sense anymore and need
to be moved over to the BTS struct..
|
|
In case of an ordered RF shutdown we can enter a grace period
where no new RF connections are allowed but active connections
will stay alive until the RF is switched off.
|
|
|
|
|
|
Every time the highlevel code is done with the channel, increase
the value. This way we will be able to see if we are leaking a
channel that was never used or should have returned to the system.
|
|
If we end up with a channel that has refcount of zero,
has no msc_data attached and the handler has not returned
1 we will just close it.
|
|
The crash happened when we had released the primary channel
for one reason or another but still got the assignment complete
on the secondary. This null checking is some extra caution, with
the previous commit we should fail the msc_data test early in
this method.
|
|
When closing a SCCP connection and any of the two lchan's are open,
then close them down properly.
Move the lchan freeing into a new method and call that one from the
SCCP connection close handling. Move the bss scp data varaible to
the top of the context..
|
|
Allow to set the TOS field via the VTY interface. The
SO_PRIORITY was not used as it has no effect on the
packets being sent (in contrast to the documentation).
|
|
Apparently I could not find the vty_interface_bsc.c when I was
searching for it. Move an extra BSC command into that file.
|
|
We go from no size checks to some content checking. We should
refactor the whole classmark2 + mi parsing that is used throughout
the code into one place with proper size checking. This is the
start and requires a new libosmocore as well.
|
|
Create the message in a common place and then it can be used
by tools having an a link or such.
|
|
This is part of fixing USSD delivered to the MS. Currently only MT
services would end up with a GSM Subscriber assigned. The LCHAN code
is using the GSM Subscriber to figure out if a SACH DEACTIVATE should
be send to the MS. Add code to always assign a GSM Subscriber.
|
|
|
|
|
|
|
|
Check if the MSC likes paging responses when it has not
recently send out a paging request.
|
|
Use TCP_NODELAY on the connection to the MSC. We want small
messages to be send immediately.
|
|
|
|
Take the timeouts from the struct.
|
|
Make sure the sccp_cc_timeout is stopped when we delete the
associated data. There is one crash report that indicates that
we have a pending timer that is inside freed memory.
A crash could have occured when the connection to the MSC was
lost while have unconfirmed connections.
|
|
We do want to send PING/PONG in both ways to have a heartbeat
on the TCP connection. When switching over to SCTP we can rely
on the builtin heartbeat functionality.
|
|
Start a timeout to wait for the CC of the network and if it does
not come in time we will abort the connection and take down the
allocated lchans.
|
|
We do not assing a GSM Subscriber to Mobile Originated calls, when
requesting a SDCCH and then starting call control we will crash here
due trying to copy a NULL subscriber from the lchan to the other.
We do not need to know the IMSI at the BSC so it is okay to not
copy the subscriber around, we could even kill all subscriber handling
in the future.
|
|
This needs to be improved to print TS of the lchan, when
the connection was created, when we received the last IT.
|
|
|
|
Right now this is using unix domain sockets and it only
supports query, on and off as commands. In the future we
want to have a vty<->snmp bridge or at least more status
exposed via snmp.
|
|
Create the GSM network at the end of the init, send the
GSM reset on each reconnection and close a small window
when we would send a SCCP msg before being authenticated.
For that we have introduced an authenticated into the bsc_msc
struct and will manage it inside the bsc_msc_ip.c
|
|
We should set this before starting any network operation.
|
|
This file is the bsc_msc_ip process to communicate with a MSC
and to implement the GSM 08.08 spec.
|
|
|
|
We always want to handle the CRCX the way we want to without
allocating a BSC proxy process. The default value of 1 is fine
for the bsc_msc_ip and we should not allow to set it.
|
|
Use the write queue to write data to the MSC instead of
using a direct write.
|
|
|
|
1.) when we do get a assignment failure from the MS. It is coming
on the old channel and not the new one. Fix the comparison. Also
always reset the msc_data to NULL before dropping the reference
2.) the LCHAN signal handler in bssap.c claims that the T10 expire
cb should free the secondary channel. It currently does not do
it and we have to do it now...
the whole thing was not tested and even after this commit this
behavior is not heavily excercised... with OsmocoreBB we would be
able to do this in the future.
|
|
Use the oppurtunity to flag errors as errors in the code
base.
|
|
|
|
It appears to be possible that we attempt to submit a DTAP
on a SCCP connection when we have a channel without the msc_data
assigned. This change should fix the crash (which is not well
understood), fix a memleak in the case of the queue being full.
|
|
data_len is wrong as well as we have reserved... specifying
it directly seems to make valgrind happy. This also means that
we might receive more than one UDP message and do not properly
forward things. I will need to investigate.
|
|
|
|
* Move to the new log code and update binaries
* Catch up with lchan changes from master
Conflicts:
openbsc/include/openbsc/Makefile.am
openbsc/include/openbsc/gsm_data.h
openbsc/src/Makefile.am
openbsc/src/bsc_rll.c
openbsc/src/chan_alloc.c
openbsc/src/debug.c
openbsc/src/gsm_04_08.c
openbsc/src/gsm_04_11.c
openbsc/src/gsm_subscriber_base.c
openbsc/src/handover_logic.c
openbsc/src/silent_call.c
openbsc/src/transaction.c
openbsc/src/vty_interface.c
openbsc/src/vty_interface_cmds.c
|
|
This is fixing a segfault due calling bsc_unregsiter_fd twice
without being in the list.
|