aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src
AgeCommit message (Collapse)AuthorFilesLines
2015-09-24gbproxy: Add quirk commands to allow upgrade from pre-releaseHolger Hans Peter Freyther1-0/+53
The pre-release didn't add a newline after the apn and the patching pattern command. Create a quirk command that combines both. The pre-release didn't include a differentation between routing and patching. The TLLI handling has a different and more generic name now. Make it handle the old one that is actively used. Add a file with the broken format and the standard config file test should pick it up.
2015-09-23bsc_nat: Fix 1 log error output of wrong variable.Neels Hofmeyr1-1/+1
2015-09-22Add full AMR multirate IE support with VTY config for MS and BTS sideAndreas Eversberg6-38/+459
2015-09-15osmo-nitb: obsess about --help formatting.Neels Hofmeyr1-13/+13
Make every line use same punctuation style ('.' at the end and start in caps). Insert spaces to have all help texts in a column.
2015-09-14mncc: Use the default codec from the built-in mncc modezecke/features/rtp-bridgeHolger Hans Peter Freyther2-6/+12
In case of the RTP bridge mode we need to select the codec ourselves. Rely on the same (incomplete) codec selection that can be done using the mncc-int configuration node. This might gain bearer capabilities support. In case of a SDCCH a TCH/F will be attempted to be assigned. This is an open issue for both modes and there should be a preference for full or half-rate channels somewhere.
2015-09-14mncc: Implement CRCX->MDCX for handover for direct rtp modeHolger Hans Peter Freyther1-6/+28
Implement sending MDCX on the newly allocated channel and send the data to the same destination as the currently connected one. This way the receiver can implement RTP RFC Appendix A.1 and deal with the new source.
2015-09-14mncc: Implement the direct RTP mode for ip based systemsHolger Hans Peter Freyther1-0/+213
For the LCR rtp-bridge audio should directly flow to the remote system. In contrast to the original patch audio will now flow directly from the BTS to the remote system. This assumes that BTS and the remote system are in the same network segment and can directly communicate. There are various limitations in the first iteration of the implementation: We could (and in the future) should delay the assignment but currently we are forced to pick the channel and move it to the audio state. In case we are located on a SDCCH we always need to change but if we are on a TCH we could send the ipa.CRCX and change the audio state a lot later. The net effect is that the audio codec selection needs to be done in the NITB code and not in the system connected to it. This only works with ip based systems. For E1 systems one could still use the RTP socket or even try to move this out of the process. There is no code for handover handling and it relies on the remote system dealing with the SSRC change of the system.
2015-09-14mncc: Update the protocol to match LCRHolger Hans Peter Freyther1-0/+3
This adds the protocol definition for the RTP bridge extension of Andreas Eversberg and bumps the protocol version. I added the missing mncc mappings from value to string. [ 5cf8fb10ea3addcae74d37f4dbf1c1be664df53e protocol extension 5dac90de38990b188f499c602bf18a4f232070e8 payload extension]
2015-09-14msc: Add channel information to the meas_feed, bump version to v1.Alexander Chemeris1-0/+9
2015-09-07osmux: fix show online-helpPablo Neira Ayuso1-1/+1
Before: <command id='osmux dummy (on|off)'> <params> <param name='osmux' doc='RTP multiplexing' /> <param name='dummy' doc='Enable dummy padding' /> <param name='on' doc='Disable dummy padding' /> <param name='off' doc='(null)' /> </params> After: <command id='osmux dummy (on|off)'> <params> <param name='osmux' doc='RTP multiplexing' /> <param name='dummy' doc='Dummy padding' /> <param name='on' doc='Enable dummy padding' /> <param name='off' doc='Disable dummy padding' /> </params> </command> Note the 'null' string in 'off'. Reported by Holger.
2015-09-04mgcp: Fix grammar, clean-up return codesHolger Hans Peter Freyther1-7/+6
Mike's patch included clean-ups I want to apply separately and change them a bit. If we return from an else we don't need to put the else. * Try the E1 trunk first * Then try a local virtual trunk * Fail if none of the above returned
2015-09-04mgcp: Remove use of hardwired @mgw from endpoint IDs.Michael McTernan1-1/+1
Remove the host portion of the endpoint Id. This requires less configuration and we are probably fine to trust that MGCP only received messages designated for it.
2015-09-04system_information.c: Distinguish two previously identical log msgsHarald Welte1-2/+2
2015-09-04Fix neighbor channel list generation for 1900 MHz PCS bandHarald Welte1-3/+3
In the 1900 MHz PCS band, we always generated neighbor cell lists consisting of only a single neighbor cell, rather than al the configured BTSs.
2015-08-20mgcp: Allow to bind to different ports for net/bts portsHolger Hans Peter Freyther1-0/+46
When using multiple interfaces on a system one can now configure which will be served for the BTS ports and which will be served for the network. The direct usage of source_addr is now only to initialize the MGCP receiving port itself.
2015-08-20mgcp: Begin to separate network and bts endpointsHolger Hans Peter Freyther3-18/+22
Make it possible to bind the call-agent to a specific IP address and the network and bts end to different ip addresses. Begin by clarifying which source ip address we want to have.
2015-08-19mgcp: Add transcoding from PCMU as wellHolger Hans Peter Freyther2-0/+34
Use the existing ulaw encode/decode to support PCMU as well. The MERA VoIP switch has some severe issues with the GSM codec and it appears easier to enable transcoding for it. The mera switch doesn't appear to cope with codec change between a SIP 180 trying and the 200 ok connection result. Inserting the codec is touching too many places. Ideally we should have the transcoding function as pointer in the struct as well but the arguments differ.. so it is not a direct way forward.
2015-08-19osmux: add option to pad the circuit with dummy messagesPablo Neira Ayuso2-0/+23
Iridium is a satellite network which operates a GPRS-like that allows you to get speeds up to 128kbit/s. However, it takes from 5 to 6 secs to get the bandwidth allocated, so the conversation is garbled during the time. This patch uses the new dummy padding support in libosmo-netif that is controlled through the osmux osmux_xfrm_input_open_circuit(). This includes a new VTY option for osmux.
2015-08-18Use 'ROUTING AREA' consistently, not 'ROUTEING AREA'Harald Welte1-1/+1
The spec unfortuantely uses both terms and has no consistent spelling, but in our logging output we can at least try to be consistent.
2015-08-18GSM/GPRS 04.08: Don't print numeric mobile identity typesHarald Welte3-33/+29
I guess none of our users knows what a mi_type=0x02 is, but most would know what an IMSI or a TMSI is. So let's use the newly introduced gsm48_mi_type_name() function to fix this.
2015-08-18GMM: fix format string compiler warningHarald Welte1-1/+1
2015-08-18GMM: Don't use DGPRS logging category from GMMHarald Welte1-2/+2
2015-08-18GMM: use MMCTXP whenever possible to include MS identity in log outputHarald Welte1-14/+17
2015-08-18LLC: Don't dispatch XID frames into GMMHarald Welte1-1/+1
For some odd reasons the XID is not a separate SAPI but has been kludged into the GMM SAPI. This means we ahve to be careful not to dispatch XID frames into GMM. We do this by introducing an explicit check for UI frames before the dispatch to GMM. The previous code already was doing "the right thing" but printed occasional messages like "gprs_gmm.c:2082 Unknown GSM 04.08 discriminator 0x01: 01 00 0e 00 32 11 03 16 01 90 63 28 0b". Those should be gone after this patch.
2015-08-18LLC: Don't feed length=0 frames to SNDCP / GMMHarald Welte1-1/+1
2015-08-18GMM: add hexdump in case of unknown pdisc/msgtypeHarald Welte1-6/+6
2015-08-18sgsn: make all SGSN timers configurable via the VTYHarald Welte2-36/+108
2015-08-17Send RADIO LINK TIMEOUT value via OML attribute to BTSAndreas Eversberg1-0/+4
The same radio link timeout value is used for BTS and MS side.
2015-08-17Add option to set RADIO LINK TIMEOUT value via VTYAndreas Eversberg3-3/+19
2015-08-17Add check for non existing lchan at tch_frame_down()Andreas Eversberg1-0/+4
Traffic cannot sent to BTS, if there is (currently) no logical channel associated with the transaction. This happens, if TCH traffic is received from upper layer, but there is no lchan available before completing immediate assignment, handover or assignment process. [hfreyther: The code has not been moved to tch_frame_down but the issue looks similiar]
2015-08-17mgcp: Avoid crashing when rtpmap is not completeHolger Hans Peter Freyther1-0/+3
The NAT sends an incomplete SDP file for the purpose of informing the BSC about the remote IP/PORT early. The case of an incomplete SDP file was not considered. Check if there is a codec and if not skip it. TODO: We need to have a better end-point life cycle test.
2015-08-14mgcp: Allow to enforce that the codecs need to matchHolger Hans Peter Freyther2-3/+26
We have a lot of legacy that I am afraid to break. We have everything in place to make a good codec selection (e.g. if we can avoid transcoding, pick the one with best quality or the lowest speed). Right now I have a specific case where from all options I want to pick GSM. Guard the codec compat check behind the disallow transcoding option to make sure to not break legacy application.
2015-08-14mgcp: Turn SDP file parsing in a two stage processHolger Hans Peter Freyther1-28/+108
First collect everything we know and the mapping. E.g. a genuis could remap "3" to "AMR" so we only know the codecs once we are at the end of the SDP file. Once we have collected everything we can select the audio codecs. The current code is compatible in that two codecs will be selected regardless of if they make any sense or not. mgcp_set_audio_info could re-use some of our codec information but then the caller in the MGCP protocol needs to be updated as well as we use the "I: GSM" information to derive the codec from there.
2015-08-14mgcp: Move the SDP handling into a separate file/moduleHolger Hans Peter Freyther3-218/+198
The SDP file handling will get more complicated in terms of codec selection so let's remove it from the protocol handling before we start blowing it up in size.
2015-08-13nat: Forward SDP files with multiple payload types in itHolger Hans Peter Freyther1-6/+7
The parsing code assumed that there will be a single payload type and this assumption is clearly wrong. Forward all of the payload types. The code is still only extracting the first type from the list. The variable name has been renamed to reflect this.
2015-08-12sms: Attempt to plug memory leaks seen at RhizomaticaHolger Hans Peter Freyther1-0/+2
Using the talloc leak report we see that there are some msgb's that are allocated for SMS but we don't have transactions or SMS around. We need to improve the name of the messages to uniquely dscribe where they are from but the obvious leak does occur in this routine. The no available transaction id is most likely the case where we leak memory. This should not occur and shows another issue with the smsqueue/smpp handling. It doesn't explain the subscr reference count issue either. Extract of the leak report: GSM 04.11 contains 1160 bytes in 1 blocks (ref 0) 0x2517dc0 GSM 04.11 contains 1160 bytes in 1 blocks (ref 0) 0x24b56e0 GSM 04.11 contains 1160 bytes in 1 blocks (ref 0) 0x23e7930
2015-08-08paging: Provide information about pending requestsHolger Hans Peter Freyther1-2/+8
For debugging it is nice to know how many requests are pending. Simply count it and print it besides the paging part.
2015-08-08subscr: Fix subscr refcount issue in case of message errorHolger Hans Peter Freyther1-0/+2
In case the SMPP payload didn't include the right fields we would leak the subscr reference count.
2015-08-08subscr: Fix potential subscr ref count issueHolger Hans Peter Freyther1-0/+1
In case the subscriber is currently busy we would omit the subscr_put. This seems to be very hard to hit as the subscr need to be active and at the same time be selected for the purge operation.
2015-08-03paging: Forget we were paging after the dispatchHolger Hans Peter Freyther1-1/+1
So in case somebody is starting paging from within a paging expired callback we would dispatch the paging request right away with the same failure.
2015-08-03paging: Stop paging everywhere before dispatching any signalHolger Hans Peter Freyther1-9/+9
2015-08-03paging: Go through all BTS to stop pagingHolger Hans Peter Freyther1-16/+9
As the comment says we should not rely that the paging occurs on the current LAC. We might page at more BTS. Walk all the BTS to stop paging. No callbacks will be issued by this stop operation.
2015-08-03paging: In case paging failed stop it everywhereHolger Hans Peter Freyther1-1/+3
In case we can't page on a BTS then stop it everywhere. The callers of paging_request assume that this is kind of an atomic operation and we should help with that.
2015-08-03paging: Move the silent_call code to use the subscriber requestHolger Hans Peter Freyther1-4/+3
Coordinate with the normal subscriber channel requests instead of going to page ourselves. This might lead to getting a channel that is of a different type though.
2015-08-0364bit: Fix compiler warnings in regard to 64bitHolger Hans Peter Freyther3-5/+5
vty_interface_layer3.c:584:4: warning: format '%d' expects argument of type 'int', but argument 3 has type 'long unsigned int' [-Wformat=] sizeof(subscr->extension)-1, VTY_NEWLINE);
2015-08-01use non-vararg functions if possibleMax1-3/+3
Signed-off-by: Max <max.suraev@fairwaves.co>
2015-08-01nitb: Add a mode to not use TMSI for normal operationHolger Hans Peter Freyther2-31/+85
In case foreign simcards are used we can not do authentication and ciphering. In case a TMSI is re-used too early and we do page using TMSI we can't know which of the two MS is responding to us. We could change the "secure channel" routine to ask for the IMSI and only then stop the paging. As we don't have ciphering there is not much use in using the TMSI. Add a mode "no assign-tmsi" that will not assign the TMSI during LU. Now CM Service Request and Paging Response will work using the IMSI. There can't be a clash with that. [ciaby fixed the vty write to use the right name]
2015-08-01nitb: Be less strict about the reject causeHolger Hans Peter Freyther1-1/+1
When we can't find the TMSI then the subscriber is not in our VLR. We have not consulted with the HLR and it is better to not use such a severe error code.
2015-08-01build: Include sys/socket.h for AF_UNSPECHolger Hans Peter Freyther1-0/+2
2015-07-13bsc: Rename core_ncc to core_mncHolger Hans Peter Freyther4-8/+8
Struct osmo_msc_data contains int core_ncc, which is actually the MNC part of the PLMN, not to be confused with the Network Colour Code. The following patch renames this field for clarity and consistency with the standards.