aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/abis_rsl.c
AgeCommit message (Collapse)AuthorFilesLines
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-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-22[network] Make T3101 configurable and use it in abis_rslHolger Hans Peter Freyther1-1/+1
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.
2009-08-10add T3101 to release lchan in case MS never responds to IMMEDIATE ASSIGNHarald Welte1-1/+14
2009-08-10the RELEAESE MODE IE is mandatoryHarald Welte1-0/+1
2009-08-09if we receive CHANNEL ACTIVATE NACK, we should release the lchanHarald Welte1-0/+1
2009-08-09move ms_pwr utility function to gsm_utils.cHarald Welte1-74/+3
also, they should both take the gsm_band parameter, not a BTS
2009-08-09fix timer and linked list handling of new RLL codeHarald Welte1-2/+2
2009-08-09Add new BSC RLL layer of codeHarald Welte1-0/+28
A caller can call rll_establish(lchan, link_id) and a callback to the GSM RLL code. He will get called back if the RLL link is established or receives some error message, or the establishment times out. We need this for proper SMS implementation, where we need to restablish a SAPI3 RLL link before transmitting the actual CP-DATA messages.
2009-08-08start using the RLL RELEASE proceduresHarald Welte1-0/+28
So far, we immediately disable the RF channel without following a proper RLL RELEASE procedure. This patch changes this. If we locally terminate the connection, the channel allocator now triggers a RLL RELEASE REQuest, which is responsed by the MS with a RLL RELEASE CONFirm, based on which we send the RF CHANnel RELease to the BTS. If the MS terminates the connection, we receive a RLL RELEASE INDication, based on which we trigger RF CHANnel RELease to the BTS.
2009-08-04fix \n at end of line of certain RSL debug messagesHarald Welte1-7/+5
2009-08-04alter initial MS RF power to 100mWHarald Welte1-1/+2