aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src
AgeCommit message (Collapse)AuthorFilesLines
2010-04-13[nat] Add show statistics to the natHolger Hans Peter Freyther1-0/+30
2010-04-13[statistics] Provide basic statistics for the NATHolger Hans Peter Freyther3-0/+18
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 Freyther3-0/+10
2010-04-13[statistics] Keep track of rf failures and rll release failuresHolger Hans Peter Freyther3-1/+9
Add two new counters to count the RF Failures and the RLL Release failure and make them available via the vty interface.
2010-04-13bsc_msc_ip: Install BSC specific show statistics command.Holger Hans Peter Freyther1-1/+14
2010-04-13[mgcp] Only write audio_name/payload when it is actually set.Holger Hans Peter Freyther1-2/+4
2010-04-13[vty] Separate BSC and MSC statistics. Make it easy to print them.Holger Hans Peter Freyther3-41/+48
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-8/+49
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-12abis_nm: Fix ACTIVATE SW parametersSylvain Munaut1-12/+49
The previous code only sent the FILE_ID tag data part, but according to the GSM 12.21 spec, section 8.3.6, the full SW Description 'object' must be sent so that includes the NM_ATT_SW_DESCR tag, the whole FILE_ID and the whole FILE_VERSION (including tags & length fields). Note that functionnaly on a nanoBTS 139 I couldn't see any difference ... whatever I send in there it works ... Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-04-12[nat] Change the command stringsHolger Hans Peter Freyther1-3/+3
Put the Target/Object first... Apparently this is more what people that know IOS expect to do.
2010-04-11[bsc_init] When the RSL/OML connection drops, free all lchanHolger Hans Peter Freyther2-2/+42
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] Fix the reporting of link down...Holger Hans Peter Freyther1-2/+2
Now bsc_init.c is able to handle the link down messages.
2010-04-11[ipa] Handle losing the RSL/OML connection..Holger Hans Peter Freyther2-32/+126
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-11e1_input: Stop the timer when deleting the signalling link on the TSHolger Hans Peter Freyther1-0/+3
Stop the tx_timer when deleting the link on top of that ts. Otherwise bad things might happen. E.g. when scheduling a write on OML and then the OML link vanishes... This is a slight layering violation as there could be more than one signalling link on the timeslow (at least in theory) so the queue and the timer should move to the e1inp_sign_link.
2010-04-11[e1_input] When destroying a link clear all pending messagesHolger Hans Peter Freyther1-0/+7
2010-04-11[vty] First set of fixes for the oml/rsl con droppingHolger Hans Peter Freyther1-4/+6
The code had wrong documentation in the VTY, it crashed when OML or RSL was not up yet. These issues are fixed right now.
2010-04-11Revert "ipa: Reduce the throttling of the IPA msges"Holger Hans Peter Freyther1-1/+3
Reducing the throttling to this value created a regression with bringing up RSL on the nanoBTS 900. We do seem to have a bug/issue in the bsc_init code and might send a command too early without this longer wait period and then the state transition does not happen. For now it is agreed that reverting is the best thing to do. Debugged-by: Sylvain Munaut <246tnt@gmail.com> This reverts commit f5284ae1cf8babc1567b33f469e20a66a73fcd9e.
2010-04-11Revert "ipa: Reduce the throttling of the IPA msges"Holger Hans Peter Freyther1-1/+3
Reducing the throttling to this value created a regression with bringing up RSL on the nanoBTS 900. We do seem to have a bug/issue in the bsc_init code and might send a command too early without this longer wait period and then the state transition does not happen. For now it is agreed that reverting is the best thing to do. Debugged-by: Sylvain Munaut <246tnt@gmail.com> This reverts commit f5284ae1cf8babc1567b33f469e20a66a73fcd9e.
2010-04-11bsc_msc_ip.c: Do not directly write but use the write queue..Holger Hans Peter Freyther1-7/+1
Use the write queue to write data to the MSC instead of using a direct write.
2010-04-11nat: Update the nat configurationHolger Hans Peter Freyther1-1/+1
2010-04-10[rsl] Set the right state when asking for the activation.Holger Hans Peter Freyther1-0/+1
Set the state to activation to avoid a warning about the getting a CHAN ACK without waiting for it. We set it in the code to make sure it is set after all error checking to avoid inconsistent state as the state is only set back to NONE/ACT due replies from the BTS.
2010-04-10[rsl] Set the release state from within the lchan classHolger Hans Peter Freyther2-1/+1
Currently our GSM04.11 code is closing the link for SAPI=3 and this would mean that the whole channel would be scheduled for close... where we only want to close everything when freeing the lchan or handling an error.
2010-04-10[rsl] Introduce a method to set the state of the lchanHolger Hans Peter Freyther2-7/+13
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[vty] Remove unused variables due them only being used in the layer3Holger Hans Peter Freyther1-4/+0
I moved the extra code to the layer3 VTY implementation but didn't remove the variables while doign so, silent compiler warnings.
2010-04-10[vty] Forward declare the extra init function the base is callingHolger Hans Peter Freyther1-0/+2
2010-04-10[paging] Include chan_alloc.h to silence a compiler warningHolger Hans Peter Freyther1-0/+1
paging.c:259: warning: implicit declaration of function ‘trx_is_usable’
2010-04-10Return anything from append_lsa_params.Holger Hans Peter Freyther1-0/+1
2010-04-10[paging] Start with a smaller paging limit...Holger Hans Peter Freyther1-1/+1
The value 20 is just a random number and it really depends on the number of TRX on a bts to be a sane or insane limit.
2010-04-10[paging] Move code to use LOGP and print some more informationHolger Hans Peter Freyther1-6/+6
2010-04-10[paging] Simplify the last request and treat llist as a queueHolger Hans Peter Freyther1-34/+9
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-09paging: Avoid integer underflow on ipaccessHolger Hans Peter Freyther1-0/+14
On the nanoBTS we do not receive any load indication for the paging channel and we just decrement our available slots and the unsigned int wraps to the maximum value. Together with a not yet understood bug this makes us go amock. For the nanoBTS and even the Siemens BS11 resetting the load to 20 after two seconds should be just fine. For the nanoBTS we would need to reset the 20 a lot more earlier but we need to take a look at how often we run low.
2010-04-09[mgcp] Improve the endpoint display on the vty..Holger Hans Peter Freyther1-1/+1
Make sure one understands the two values for number of incoming packets..
2010-04-09[mgcp] Print the IP addr of the BTS we have detected.Holger Hans Peter Freyther1-2/+3
2010-04-09[paging] Start with a smaller paging limit...Holger Hans Peter Freyther1-1/+1
The value 20 is just a random number and it really depends on the number of TRX on a bts to be a sane or insane limit.
2010-04-09[paging] Move code to use LOGP and print some more informationHolger Hans Peter Freyther1-6/+6
2010-04-09[paging] Simplify the last request and treat llist as a queueHolger Hans Peter Freyther1-34/+9
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-09paging: Fix format compiler warning...Holger Hans Peter Freyther1-1/+2
2010-04-09[mgcp] Improve the endpoint display on the vty..Holger Hans Peter Freyther1-1/+1
Make sure one understands the two values for number of incoming packets..
2010-04-09[mgcp] Print the IP addr of the BTS we have detected.Holger Hans Peter Freyther1-2/+3
2010-04-09nat: Set a dummy bts_ip to avoid misdetection of the bts...Holger Hans Peter Freyther1-0/+1
It was possible that the nat detected the core network gateway as the bts just due being the first to send data to the port. Fix it by setting a dummy bts_ip to force the mgcp_network code to compare the in_addr.
2010-04-09paging: Avoid integer underflow on ipaccessHolger Hans Peter Freyther1-0/+13
On the nanoBTS we do not receive any load indication for the paging channel and we just decrement our available slots and the unsigned int wraps to the maximum value. Together with a not yet understood bug this makes us go amock. For the nanoBTS and even the Siemens BS11 resetting the load to 20 after two seconds should be just fine. For the nanoBTS we would need to reset the 20 a lot more earlier but we need to take a look at how often we run low.
2010-04-09[rsl] Set the right state when asking for the activation.Holger Hans Peter Freyther2-0/+2
Set the state to activation to avoid a warning about the getting a CHAN ACK without waiting for it. We set it in the code to make sure it is set after all error checking to avoid inconsistent state as the state is only set back to NONE/ACT due replies from the BTS.
2010-04-09[rsl] Rework the lchan channel release procedureHolger Hans Peter Freyther2-8/+70
1.) free every SAPI from 1-7 and wait for the confirmation and then continue until all of them are freed. If the SAPI is not torn down we will receive a timeout and then we force the RF Channel Release... 2.) once SAPI is down we send the RR Release, SACCH Deact 3.) the abis_rsl will see that all SAPIs are down and then will release channel...
2010-04-09[rsl] Set the release state from within the lchan classHolger Hans Peter Freyther2-1/+1
Currently our GSM04.11 code is closing the link for SAPI=3 and this would mean that the whole channel would be scheduled for close... where we only want to close everything when freeing the lchan or handling an error.
2010-04-09[rsl] Introduce a method to set the state of the lchanHolger Hans Peter Freyther1-8/+14
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-09[rsl] Introduce an error state for the lchan and set it on releaseHolger Hans Peter Freyther2-9/+46
When we issue a RF Channel Release in case of a failure we receive RLL release indications after the channel was tearn down and we issue another RF Channel Release as a result. The channel allocator might have already allocated this channel and we release the channel again with another MS on it. Make rsl_rf_chan_release take an error argument and make it set a new state in case of an error and change the RF Channel Release ack to not set the state back to none in case of an error but wait for a timeout that is a bit higher than T3111. I tested this with removing the battery during a phonecall and waiting for the channel failure. With this test we only send the release once.
2010-04-09[rsl] Implement the T3111 timer to delay the RF Channel releaseHolger Hans Peter Freyther2-5/+16
2010-04-09[rsl] Check the assumption that RF Channel Release is sent during releaseHolger Hans Peter Freyther1-0/+6
We assume that the lchan_free will initiate the release and that when we handle the RLL release indication or the release request as part of the shutdown sequence.
2010-04-09bsc_msc_ip.c: Fix crash when gsmnet is not yet initialized.Holger Hans Peter Freyther1-2/+4
2010-04-08[rsl] Move rf channel release scheduling to a new methodHolger Hans Peter Freyther1-8/+10
The current channel release has a couple of issues we will need to fix in a set of upcoming commits. The issues include: 1.) sending release twice 2.) reassigning the channel inbetween the relase..