aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/include
AgeCommit message (Collapse)AuthorFilesLines
2010-05-05bsc_msc_ip: Make the ping/pong timeouts configurableHolger Hans Peter Freyther1-0/+2
Take the timeouts from the struct.
2010-05-05nat: Make ping/pong timeout configurable.Holger Hans Peter Freyther1-0/+5
2010-05-03'struct gprs_ra_id' is now defined in libosmocoreHarald Welte1-8/+0
2010-05-02nat: Send a IPA PING down the stream and wait for the pong.Holger Hans Peter Freyther1-0/+4
We will send a ping every 20 seconds and if we have no pong within 5 seconds we will close down the BSC connection and wait for a reconnect. We will start this after having authenticated the BSC and we stop the timer when destructing the BSC connection.
2010-05-01remove any reference to 'struct gsm_bts_link'Holger Hans Peter Freyther1-5/+0
2010-04-30[vty] Allow to create a buffer in a given context.Holger Hans Peter Freyther1-1/+1
Stop using the global vty context for all allocations and allow to embed the buffer into a given context, and allocate sub buffers with the context of its parent.
2010-04-27nat: Add a command to close a given BSC ConnectionHolger Hans Peter Freyther1-0/+1
This can be used to clear stale connections for a given BSC or to force a reconnect of the BSC.
2010-04-26[ts] Make the e1inp_ts delay configurableHolger Hans Peter Freyther1-0/+3
Currently the nanoBTS bootstrap code requires a high delay otherwise we are not bringing the device up properly. Changing the init code turns out harder than it seems like. So this is a workaround for that to allow a high speed RSL/OML connection after the bringup. The line driver can have a default TS delay. It is set to the current default for the nanoBTS and the BS11. For the ipaccess case we will set the delay lower for the RSL connection and inside the ipaccess-config we can set it low right away to have fast firmware flashing and such.
2010-04-23bsc_msc_ip: Add a timeout for waiting for the CC of the networkHolger Hans Peter Freyther1-0/+1
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.
2010-04-23nat: Only close connections that were fully connectedHolger Hans Peter Freyther1-0/+1
Remember that we have seen a CC and have a valid destination local reference now and only send a fake RLC to the MSC when we had connections in this state.
2010-04-22nat: Only send DLCX when we have send a CRCX to the BSC on this endpointHolger Hans Peter Freyther1-0/+1
2010-04-22nat: Change MGCP DLCX handling and send dummy MDCX to the BTS.Holger Hans Peter Freyther1-5/+3
When setting a new MSC timeslot to a SCCP connection check if any of the existing connections have this timeslot, if so we will send a DLCX down the stream to make sure it is closed there, when we will CRCX this new timeslot we will happily reallocate it. When the SCCP connection goes away, or we get a DLCX from the network, or the BSC is gone we will send a DLCX message down the stream as well. When we receive a CRCX from the network we will forward the CRCX as usual and send a dummy MDCX after it. For the DLCX and the dummy MDCX we send a custom MGCP message that will not provoke an answer. Even if the downstream MGCP GW will answer we will ignore it due the dummy transaction id that is not used anywhere else. This change should make sure that we close the dowstream endpoint all the time, even when the DLCX arrives after the SCCP connection is torndown.
2010-04-21[mgcp] Add a dummy send method...Holger Hans Peter Freyther1-0/+1
This can be used by higher level code to send one dummy message from the audio port to the network. This can be used to make the remote discover the nated port of this endpoint.
2010-04-21[nat] Add option to forbid the paging to the BSC.Holger Hans Peter Freyther1-0/+2
This can be done for testing purposes and to allow making a BTS crash that can not handle paging requests properly.
2010-04-21[nat] Lookup by BSC Connection otherwise the point of reassigning the is ↵Holger Hans Peter Freyther1-1/+1
defeated When sending a MSG to the MSC try to find the to be used "src" reference by comparing the reference on the BSC and the BSC connection. Only this tuple needs to be unique. Actually only when looking at the SRC REF we need to compare the BSC as the dest reference should be unique but we are just making the check a bit stronger to make it look symmetric.
2010-04-21[sccp] Parse the error message and add a unit test for it.Holger Hans Peter Freyther1-0/+6
2010-04-20[vty] Allow to set the RACH NM attributes on a per BTS basisHolger Hans Peter Freyther1-0/+4
Be able to tune the RACH settings of the BTS via the vty interface, by default they are initialized to -1 which means we will use the content of the static array (BTS default) and can be changed via the VTY interface. I have verified the setting on the nanoBTS with wireshark and I have tested writing the config file.
2010-04-20[paging] Only page if we have some free channels right nowHolger Hans Peter Freyther1-0/+3
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.
2010-04-20Revert "ipaccess: Send RTP Payload IE for CRCX & MDCX"Holger Hans Peter Freyther2-7/+0
This is causing a regression with AMR audio. The nanoBTS is sending a MDCX NACK with Cause 0x52. Reverting this commit makes it work again. This reverts commit b54dda4cefe89665d98074cf3767858fa6ecdb6e.
2010-04-19[paging] When we ran down to 0 available paging slots start a credit timerHolger Hans Peter Freyther1-0/+1
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-04-19Merge remote branch 'origin/master' into on-waves/bsc-masterHolger Hans Peter Freyther4-1/+30
Conflicts: openbsc/include/openbsc/abis_rsl.h openbsc/include/openbsc/mgcp.h openbsc/src/abis_rsl.c openbsc/src/chan_alloc.c openbsc/src/handover_logic.c openbsc/src/mgcp/mgcp_network.c openbsc/src/vty/command.c openbsc/src/vty_interface.c
2010-04-19[vty] Count pending paging requests for the vtyHolger Hans Peter Freyther1-0/+3
Implement a method to count the number of pending paging requests per bts and print it on the VTY. This helps to see how big the backlog of requests is for a given BTS.
2010-04-19[alloc] Assign a TCH for LU when all SDCCHs are occupied.Holger Hans Peter Freyther1-1/+1
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-04-18GPRS: change 'gprs enabled <0-1>' to 'gprs mode (none|gprs|egprs)'Harald Welte1-1/+10
This causes some config file breakage but sounds like a much cleaner approach than to have two separate config variables for this.
2010-04-18GPRS: Add Support for the GPRS Cell Option Extension Info IEHarald Welte1-0/+11
Extension Information is part of the GPRS Cell Options IE, as specified in Chapter 12.24 of TS 04.60. It is needed for indicating EDGE capabilities of the BTS to the MS. This simply adds the code to encode this IE as part of SI13, but does not actually use the code yet.
2010-04-18nat: Return the SCCP Connection again...Holger Hans Peter Freyther1-1/+1
We will reset the multiplex in a DLCX message and then we can reset the multiplex as well...even if the MGCP connection is staying open. or at least this is a theory. The MSC likes to leave a connection open during CallControl when hanging up early enough in the process.
2010-04-17bsc_msc_ip: Allow to put the MSC address into the network configHolger Hans Peter Freyther1-0/+2
2010-04-17nat: Print the LAC that was searched for and not found.Holger Hans Peter Freyther1-1/+1
2010-04-17nat: Make the MSC configurable.Holger Hans Peter Freyther1-0/+1
2010-04-17nat: Move MSC ip address into the config..Holger Hans Peter Freyther1-0/+2
The address can still be specified on the cli and it will overwrite the config in the config file.
2010-04-17Use osmocore tlv definition for GSM0808.Holger Hans Peter Freyther1-2/+0
2010-04-17[statistics] Keep track of OML/RSL failures of the BTS.Holger Hans Peter Freyther1-0/+4
2010-04-17[statistics] Keep track of rf failures and rll release failuresHolger Hans Peter Freyther1-0/+4
Add two new counters to count the RF Failures and the RLL Release failure and make them available via the vty interface.
2010-04-15[vty] Separate BSC and MSC statistics. Make it easy to print them.Holger Hans Peter Freyther1-0/+4
Move the statistics command into the MSC part and move the BSC statistics printing into a subroutine.
2010-04-15[bsc_init] When the RSL/OML connection drops, free all lchansHolger Hans Peter Freyther1-0/+1
Free all allocated channels on the TRX that failed, go through lchan_free to signal higher layers and then force a reset of the channel. Make the TRX and TS unusable by setting the operational set to 0 (not really defined) which should be reset once the RSL is coming up again.
2010-04-15[ipa] Handle losing the RSL/OML connection..Holger Hans Peter Freyther1-0/+2
This is addressing multiple issues regarding the loss of the OML/RSL link to the BTS. 1.) When we lose the OML link, close down all RSL connections on all TRXs (only tested with one TRX) and free the e1inp_line allocated for the OML connection. 2.) When we lose the RSL link on any TRX and we know to which lines this connection belongs, we will close down the OML connection as we have a problem to just reactivate one RSL link. 3.) When we lose the RSL link on any TRX and we do not know where it belongs to we will free the bfd we have allocated in the rsl listen/accept method and we properly close the socket (i could not test this one properly). This is made under the assumption the BTS has not responded to the ID request. 4.) When we already have a bts->oml_link we will throw it away and use the new link (it should not happen) and the same applies to the rsl link.
2010-04-14[bsc_msc_ip] Implement a simple RF lock command interfaceHolger Hans Peter Freyther2-1/+21
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.
2010-04-14bsc_msc_ip.c: Create the GSM network earlier, send the reset on each connectionHolger Hans Peter Freyther1-0/+1
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
2010-04-13nat: Add config option to filter/handle certain imsi'es.Holger Hans Peter Freyther1-0/+15
2010-04-13[statistics] Provide basic statistics for the NATHolger Hans Peter Freyther1-0/+39
Count number of SCCP connections, number of BSC reconnects, number of calls. For most of them we have a per BSC and a global count. Right now all structs using the counters survive until the end of the application so we do not need to free them.
2010-04-13[statistics] Keep track of OML/RSL failures of the BTS.Holger Hans Peter Freyther1-0/+4
2010-04-13[statistics] Keep track of rf failures and rll release failuresHolger Hans Peter Freyther1-0/+4
Add two new counters to count the RF Failures and the RLL Release failure and make them available via the vty interface.
2010-04-13[vty] Separate BSC and MSC statistics. Make it easy to print them.Holger Hans Peter Freyther1-0/+4
Move the statistics command into the MSC part and move the BSC statistics printing into a subroutine.
2010-04-12ipaccess: Send RTP Payload IE for CRCX & MDCXSylvain Munaut2-0/+7
For GSM V1 FR, the payload type is fixed to 3 in the RFC. But for the other codecs, the payload type is dynamically assigned between 96 and 127. Here, we use a static mapping internal to OpenBSC. This patch is needed to make a rather old 139 unit (with sw version 120a002_v149b42d0) work with something else than FR codec. I also tested this patch on a newer 139 (with sw version 120a352_v267b22d0) to make sure it didn't add a regression. More testing with newer EDGE units should be done by whoever has some of theses. Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-04-11[bsc_init] When the RSL/OML connection drops, free all lchanHolger Hans Peter Freyther1-0/+1
Free all allocated channels on the TRX that failed, go through lchan_free to signal higher layers and then force a reset of the channel. Make the TRX and TS unusable by setting the operational set to 0 (not really defined).
2010-04-11[ipa] Handle losing the RSL/OML connection..Holger Hans Peter Freyther1-0/+2
This is addressing multiple issues regarding the loss of the OML/RSL link to the BTS. 1.) When we lose the OML link, close down all RSL connections on all TRXs (only tested with one TRX) and free the e1inp_line allocated for the OML connection. 2.) When we lose the RSL link on any TRX and we know to which lines this connection belongs, we will close down the OML connection as we have a problem to just reactivate the RSL link. 3.) When we lose the RSL link on any TRX and we do not know where it belongs to we will free the bfd we have allocated in the rsl listen/accept method and we properly close the socket (i could not test this one properly). 4.) When we already have a bts->oml_link we will throw it away and use the new link.
2010-04-10[rsl] Introduce a method to set the state of the lchanHolger Hans Peter Freyther1-0/+2
Setting the state through a dedicated method allows us to track the state transitions and check if they are done in a proper way.
2010-04-10[rsl] Remove method that is not called by anything.Holger Hans Peter Freyther1-1/+0
2010-04-10[paging] Simplify the last request and treat llist as a queueHolger Hans Peter Freyther1-1/+0
The current code was overly complex. It tried to iterate over the list in a round robin and we had to keep track of the last element, see if we remove that one, check if the list becomes empty... This can all replaced by treating the double linked list as a queue. We take the item at the front, do something on it and then and then put it back to the list at the end.
2010-04-09[paging] Simplify the last request and treat llist as a queueHolger Hans Peter Freyther1-1/+0
The current code was overly complex. It tried to iterate over the list in a round robin and we had to keep track of the last element, see if we remove that one, check if the list becomes empty... This can all replaced by treating the double linked list as a queue. We take the item at the front, do something on it and then and then put it back to the list at the end.