aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/abis_rsl.c
AgeCommit message (Collapse)AuthorFilesLines
2009-12-28rsl: add new 'gsm_trx_name()' function and use itHarald Welte (local)1-6/+6
2009-12-27Introduce and use gsm_lchan_name() in addition to gsm_ts_name()Harald Welte (local)1-14/+14
In many cases we actually want a name / unique ID for the lchan, not just for the on-air timeslot... especially in SDCCH/8 case, where 8 SDCCHs share one timeslot...
2009-12-27Introduce new ACT_REQ state to prevent race condition during channel allocationHarald Welte (local)1-5/+10
When we allocate a channel, we send the RSL CHAN ACT REQ and wait until we get a CHAN ACT ACK. Only the ACK will change the state, so there is a race where we allocate that same channel to a different channel request before we get the ACT ACK. Introducing a new ACT_REQ state resolves this issue.
2009-12-27rename gsm_lchan_name() to gsm_lchant_name()Harald Welte (local)1-2/+2
2009-12-27include BTS and TRX number in TRX overload message reportHarald Welte (local)1-1/+2
2009-12-27fix segfault in CHAN RQD log messageHarald Welte (local)1-2/+2
2009-12-27correctly print chan act nack errorHarald Welte (local)1-1/+5
2009-12-27print TS name when out of resources during CHAN RQDHarald Welte (local)1-2/+2
2009-12-26RLL: print human-readable value of RLM CAUSE in ERROR INDHarald Welte (local)1-3/+22
2009-12-26print TS name in RLL ERR INDHarald Welte (local)1-1/+2
2009-12-26[rsl] correctly print handover detect and connection failHarald Welte (local)1-5/+4
2009-12-26fix missing space in log messageHarald Welte (local)1-1/+1
2009-12-25[meas rep] print the neighbor index when debugp'ing a neigh cell measHarald Welte1-2/+2
2009-12-25If phone requests TCH/H, hardcode allocation of TCH/FHarald Welte1-0/+3
This is a quick and dirty fix for 26C3 only.
2009-12-24rsl: fix "CONNECTION FAIL: RELEASING" messageHarald Welte1-1/+2
2009-12-24[logging] differentiate DEBUG, NOTICE and ERROR log levels in NM and RSLHarald Welte1-54/+46
2009-12-22Import the new logging architectureHolger Hans Peter Freyther1-0/+2
This is the new logging architecture, including * support for multiuple logging targets like stderr and vty * log levels in addition to categories/subsystems * filtering based on imsi, i.e. only see events for one subscriber * dynamically change log level for each category for each vty
2009-12-22statistics: Introduce 'struct counter' instead of using unsigned longHarald Welte1-2/+2
This has the advantage that counters can be added all over the code very easily, while having only one routine that stores all of the current counter values to the database. The counters are synced every 60 seconds, providing relatively fine grained statistics about the network usage as time passes by.
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-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.