aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2010-04-11Increase version..on-waves/0.3.96Holger Hans Peter Freyther1-1/+1
2010-04-11[bsc_init] When the RSL/OML connection drops, free all lchanHolger Hans Peter Freyther3-2/+43
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 Freyther3-32/+128
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-11Bump the version..on-waves/0.3.95Holger Hans Peter Freyther1-1/+1
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-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 Freyther2-35/+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-09Bump the version to 0.3.94...on-waves/0.3.94Holger Hans Peter Freyther1-1/+1
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 Freyther4-8/+74
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] Remove method that is not called by anything.Holger Hans Peter Freyther1-1/+0
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 Freyther2-8/+16
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 Freyther3-9/+48
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 Freyther3-5/+17
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..
2010-04-08[vty] Add ipa specific command to provoke failures to test OML/RSL reconnectHolger Hans Peter Freyther1-0/+46
We need to simulate OML/RSL failure in an easy and fast way and adding a command to do so seems like a good way to achieve this. The command is a bit misplaced, in one way it is no config and does not belong into the config node but then again it does not belong into the VIEW_NODE either as it is manipulating content.
2010-04-08bssap: Reset the msc_data on the lchan earlier/just in caseHolger Hans Peter Freyther1-0/+1
The refcount should drop to zero immediately and then the msc_data would be reset automatically but it is better to remove all traces of it right away.
2010-04-08bssap: Use the new method to give up the secondary lchan and related resourcesHolger Hans Peter Freyther1-2/+2
2010-04-08bssap: Forget the secondary lchan in the MSC data and forget the MSC dataHolger Hans Peter Freyther1-1/+7
We will handle sending the assignment failure inside the T10 timer but it is better to reset the secondary_lchan inside the msc_data right away before we might accidently use it.
2010-04-08bsc_msc_ip: Attempt to handle assignment failures more properlyHolger Hans Peter Freyther2-6/+47
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.
2010-04-08bsc_msc_ip.c: Move from DEBUG to LOG loggingHolger Hans Peter Freyther1-31/+31
Use the oppurtunity to flag errors as errors in the code base.
2010-04-08bsc_msc_ip.c: Mention the timestamp config option.Holger Hans Peter Freyther1-0/+1
2010-04-08bssap: Speculative crash fix when queueing messages for the BTSHolger Hans Peter Freyther3-6/+30
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.
2010-04-08bsc_msc_ip: Specify the size we can read directly...Holger Hans Peter Freyther1-1/+1
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.
2010-04-08[paging] Do not use request after it was was destroyed..Holger Hans Peter Freyther1-1/+1
Increment the counter before we call the remove request which is freeing the request...
2010-04-08nat: Handle unknown RLSD by send a RLC back to the network.Holger Hans Peter Freyther1-1/+31
2010-04-08nat: Attempt to handle exceptions on the fd and trat them as connection lossHolger Hans Peter Freyther1-2/+17
2010-04-08nat: Print the IP address of the connected BSCsHolger Hans Peter Freyther1-2/+7
2010-04-08nat: Rename variable to make it use msc in the nameHolger Hans Peter Freyther1-2/+2
2010-04-08nat: Attempt to have a single BSC write methodHolger Hans Peter Freyther4-24/+26
This method currently prepends the IPA header and sends the data. In the future we might be able to use SCTP for it. We have to remove the IPA header from the static messages for that to work. This code is untested.
2010-04-08Bump the version for the BSC.on-waves/0.3.93Holger Hans Peter Freyther1-1/+1
2010-04-08nat: Rename bsc_write to bsc_send_dataHolger Hans Peter Freyther1-8/+8
2010-04-07bssap: Comment and code cleanupHolger Hans Peter Freyther1-3/+2
2010-04-07bssap: Switch to use LOGP and pick some debug categoriesHolger Hans Peter Freyther1-53/+53
2010-04-07bssap: Another possible null derference on the code.Holger Hans Peter Freyther1-1/+1
We do not want to send a msg over the NULL lchan. Let us return fast from here.