aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/abis_rsl.c
AgeCommit message (Collapse)AuthorFilesLines
2010-01-28[rsl] Send the MultiRateConfig in the RSL Channel Activate msgHolger Hans Peter Freyther1-0/+4
If the lchan has AMR as speech codec we also need to send the multirate config IE in the channel activation. This is already done for the RSL Channel Modify message.
2010-01-06[rsl] Partial revert of the GSM speech mode for the nanoBTSHolger Hans Peter Freyther1-23/+3
This is partially reverting 0603c9d9e58b5d29105361a89ab8cb295da29366, it is true that the ip.access Wireshark dissectors differentiate TCH/H from TCH/F but in my test I'm unable to send RTP on to the BTS. It might be that the RTP payload provided in the MDCX is not the one it will accept with the 0x05 mode. More work needs to be done to understand this, that is the reason it is comitted to the on-waves's branch instead of master.
2009-12-22Merge commit 'origin/master' into on-waves/bsc-masterHolger Hans Peter Freyther1-123/+350
Conflicts: openbsc/include/openbsc/Makefile.am openbsc/include/openbsc/gsm_data.h openbsc/src/Makefile.am openbsc/src/abis_rsl.c openbsc/src/chan_alloc.c openbsc/src/gsm_04_08.c openbsc/src/gsm_data.c openbsc/src/vty_interface.c The biggest problem is the moving of the RTP code into the RSL layer. This may break quite some things...
2009-12-22keep some internal statistics inside OpenBSCHarald Welte1-0/+3
the statistics will give us some idea about the network load and performance.
2009-12-21RSL: keep track if a channel is active or notHarald Welte1-0/+10
This allows us to block packets that we have received after the channel is no longer being used. This is visible during handover, where we still receive a measurement report after the MS has switched to the new channel. This leftover measurement report then attempts to trigger another handover, which si bogus and will fail - and thus only consumes resources. With the new LCHAN_S_ACTIVE state, we can check for this when processing the measurement report.
2009-12-20rename ipacc_connect_proxy_bind() to rsl_ipacc_mdcx_to_rtpsock()Harald Welte1-0/+14
Our RTP sockets are no longer just for the proxy mode, so having "proxy" in the function name is really misleading.
2009-12-20Move RTP socket handling out of signal handlers into abis_rslHarald Welte1-0/+33
This is not really nice, but we will soon have multiple users of the CRCX / MDCX / DLCX signals, and we cannot guarantee the ordering of them. So as a workaround, we move the RTP socket creation and deletion into the core abis_rsl codebase.
2009-12-19don't print measurement reports that have no cellsHarald Welte1-0/+2
2009-12-19ip.access: Keep a full copy of local and remote IP/PORT in lchanHarald Welte1-48/+89
Keeping all parameters for each RTP connection in the abis_ip member of lchan will help us with actual TCH handover later on.
2009-12-17logging: introduce log levels at caller siteHarald Welte1-29/+29
This introduces a new LOGP() macro together with LOGL_* definition to support multiple log levels (severities) throughout the codebase. Please note that the actual logging system does not use them yet, in this patch we simply introduce the new macros at the caller site.
2009-12-17[handover] first functional handover implementationHarald Welte1-3/+12
With this commit, we can successfully hand over a channel from one cell to another cell. We implement asynchronous intra-BSC (but inter-BTS) handover. Changes: * introduce new DHO log category * extend rsl_chan_activate_lchan() with argument for HO reference * introduce actual minimal handover decision making in handover_decision.c * various fixes to bsc_handover_start() in handover_logic.c
2009-12-16assign measurement report lchan member after memset'ing itHarald Welte1-0/+1
2009-12-16print measurement reports more verboselyHarald Welte1-3/+11
2009-12-15introduce cache of 6 last recently received measurement reports for each lchanHarald Welte1-19/+17
2009-12-12[RSL] print human-readable channel type during channel allocation failureHarald Welte1-2/+2
2009-12-09mark lchan2chan_nr() using a 'const' parameterHarald Welte1-1/+1
which fixes some compile warnings at some callers.
2009-12-06move RTP socket information from timeslot to lchanHarald Welte1-6/+6
With ip.access, in case of TCH/H, we have one RTP stream for each half-slot (lchan), not just one per on-air timeslot. This is quite different from a classic BTS where the TRAU frames of the two TCH/H channels would be part of the same 16k sub-slot in a E1 timeslot.
2009-12-06RSL: catch inconsistent parameters ofr channel_mode_from_lchan()Harald Welte1-0/+5
2009-12-02ip.access speech mode for TCH/H channelsHarald Welte1-9/+30
2009-12-02move RTP socket information from timeslot to lchanHarald Welte1-6/+6
With ip.access, in case of TCH/H, we have one RTP stream for each half-slot (lchan), not just one per on-air timeslot. This is quite different from a classic BTS where the TRAU frames of the two TCH/H channels would be part of the same 16k sub-slot in a E1 timeslot.
2009-12-01Replace template-based SYSTEM INFORMATION with real implementationHarald Welte1-5/+5
Before this commit, OpenBSC used templates for the SYSTEM INFO 1, 2, 3, 4, 5 and 6 messages. Those templates were patched in various places to reflect the network config like ARFCN. Now, we actually generate those SI messages ourselves, using values from the configuration file, and even calculating neighbor cell lists. All bts'es that you have configured in OpenBSC will end up in the neighbor cell list - which should be more than sufficient for the current small-single-site networks.
2009-11-30[handover] export measurement reports via signalHarald Welte1-1/+4
This patch introduces the S_LCHAN_MEAS_REP signal which is used to export measurement reports as input to the yet-to-be-written handover algorithm.
2009-11-29[handover] Introduce new handover related LCHAN signalsHarald Welte1-1/+29
This introduces the signals S_LCHAN_ACTIVATE_{ACK,NACK} and S_LCAN_HANDOVER_{FAIL,COMPL,DETECT} as well as code that actually issues those signals. The signals are relevant for a yet-to-be-written handover control logic.
2009-11-29New complete measurement result/report handlingHarald Welte1-28/+84
This patch extends struct gsm_meas_rep into a complete structure containing all information from both uplink and downlink measurement results/reports. This is a first step to provide this complete measurement data as a C structure into a to-be-implemented handover decision algorithm.
2009-11-27RSL: catch inconsistent parameters ofr channel_mode_from_lchan()Harald Welte1-0/+5
2009-11-24Merge branch 'master' into on-waves/bsc-masterHolger Hans Peter Freyther1-1/+1
Conflicts: openbsc/src/abis_nm.c openbsc/src/bsc_init.c openbsc/src/vty_interface.c
2009-11-22[network] Make T3101 configurable and use it in abis_rslHolger Hans Peter Freyther1-1/+1
2009-11-20[lchan] Release the channel ones its' usecount drops to zeroHolger Hans Peter Freyther1-0/+4
Remove the timer handling from the LCHAN and release the channel ones the use count is dropping to zero. Change code that was sending/using the lchan after the release and change the send data method to warn in case the lchan is used after it has been freed.
2009-11-20[rsl] Speculative crash fix in the RSL rcv messageHolger Hans Peter Freyther1-1/+13
The theory is that the BTS is almost dead and sends out a incomplete message and we crash with that. I have not been able to completely verify that.
2009-11-19[lchan] RSL and RR need the multirate config, place it in the lchanHolger Hans Peter Freyther1-0/+5
Both GSM 04.08 RR and GSM 08.58 RSL need the multirate config in the channel modify. Place the config in the lchan, change the gsm48 methods to not take the argument, change the RSL implementation to make use of it with the right IE. The other code should use the t(l)v_put routines as well but were left untouched for now.
2009-11-19[ipa] Change names of RTP methods to follow MGCP namingHolger Hans Peter Freyther1-21/+21
IPA is naming these functions CRCX, MDCX, DLCX to follow the naming of the MediaGatewayControlProtocol. Change the code to go from BIND to CRCX (create connection) and from CONNECT to MDCX (modify connection). Connect indicates that it is only possible to call it once while it is possible to call it more than once to modify the audio parmaters and such. So the IPA terminology is making a bit more sense here (now that we know it).
2009-11-17[si] Make it possible to set the NECI value...Holger Hans Peter Freyther1-2/+2
Allow to configure the NECI value... and change code that is relying on the NECI value.
2009-11-17[rsl] Improve error message when the lchan allocation is failingHolger Hans Peter Freyther1-1/+2
2009-10-29[lchan] Keep track which SAPIs has been established with the BTSHolger Hans Peter Freyther1-0/+4
Keep track of which SAPIs have been established either by the BTS (from the MS) or by us. This can be used by the on-waves BSC code to figure out if a new request should be made.
2009-10-27[gsm48] Add generation of ASSIGNMENT COMMAND to the 0408 utilsHolger Hans Peter Freyther1-0/+1
Add code to generate an assignment command for a given lchan. It is expected that the lchan is modified already and the mode will be picked up from their. Currently only the mandantory items are supported.
2009-10-24[GPRS] Add RSL function for ip.access PDCH activationHarald Welte1-0/+30
If we have a dynamic TCH/F / PDCH channel configuration, then we can either ACTIVATE CHANNEL it for a TCH/F, or we need to send this vendor-specific PDCH ACTIVATE command to use it as a PDCH. As opposed to a fixed configuration, this allows an intelligent BSC channel allocator to use otherwise idle channels as PDCH as long as no more TCH's are needed.
2009-10-24[GPRS] introudce PDCH and PDCH/TCH physical channelsHarald Welte1-1/+5
GPRS needs PDCH (Packet Data Channels), and we need support in our data model as well as OML and RSL for it
2009-10-22Fix compiler warning and cast const away.Holger Hans Peter Freyther1-1/+1
TLVP_VAL returns a const u_int8_t* and we assign it to a non const, cast const away.
2009-09-27[abis_rsl] Fix rsl_encryption_cmd L3 length computationSylvain Munaut1-1/+1
msg->l3h doesn't have any coherent value at that point, can't use that. Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2009-08-30A5 support for RSL and 04.08 (not used yet)Harald Welte1-8/+58
This just adds the 04.08 and RSL bits for A5, but not the logic for performing authentication. The caller would first set lchan->encr and then call gsm48_send_rr_ciph_mode(lchan), which encapsulates the 04.08 CIPHERING MODE COMMAND into a RSL ENCRYPTION COMMAND and sends it to the BTS for execution + forwarding.
2009-08-28[abis_rsl] Set lchan->tch_mode properly when responding to CHAN_RQDHarald Welte1-0/+1
This fixes the 'only first call works' problem that some of us were having with the nanoBTS. (the field just happenned to be 0 == GSM48_CMODE_SIGN after startup) Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2009-08-14respect the link_id, not only the SAPI from SMS codeHarald Welte (local)1-4/+6
SMS related messages are all sent over SAPI=3. But in addition to that, we also need to send it over the correct link identifier, i.e. SACCH or main signalling channel
2009-08-13add 'ms max power' vty command to set the maximum MS power in dBmHarald Welte (local)1-1/+1
2009-08-10now that we send MRPCI, we can treat T_MSRFPCI error message as fatalHarald Welte1-10/+0
2009-08-10Merge commit 'origin/master'Harald Welte1-0/+6
2009-08-10rename rsl_channel_release to rsl_rf_channel_releaseHarald Welte1-9/+14
and add some more comments to help understand the complex release procedures.
2009-08-10use proper message discriminator for MRPCIHarald Welte1-0/+6
Siemens overloaded the definition for location based services, so our automatic determination of the message discriminator no longer works fine.
2009-08-10make rsl_siemens_mrpci() use struct rsl_mrpciHarald Welte1-2/+2
2009-08-10Add function to generate siemens-specific MRPCI RSL messageHarald Welte1-0/+16
MRPCI (MS RF Power Indicator) informs the BTS about the power capabilities of the MS.
2009-08-10set BS power to Pn == nominal output powerHarald Welte1-1/+1
This is only relevant for TRX1, since TRX0 will always opwerate at constant power. However, when channels on TRX0 are activated, we should provide a reasonable BS poewr level.