Age | Commit message (Collapse) | Author | Files | Lines |
|
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.
|
|
Our RTP sockets are no longer just for the proxy mode, so having
"proxy" in the function name is really misleading.
|
|
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.
|
|
|
|
Keeping all parameters for each RTP connection in the abis_ip member of
lchan will help us with actual TCH handover later on.
|
|
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.
|
|
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
|
|
|
|
|
|
|
|
|
|
which fixes some compile warnings at some callers.
|
|
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
|
|
|
|
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.
|
|
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).
|
|
Allow to configure the NECI value... and change code
that is relying on the NECI value.
|
|
|
|
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.
|
|
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.
|
|
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.
|
|
GPRS needs PDCH (Packet Data Channels), and we need support in
our data model as well as OML and RSL for it
|
|
TLVP_VAL returns a const u_int8_t* and we assign it
to a non const, cast const away.
|
|
msg->l3h doesn't have any coherent value at that point,
can't use that.
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
|
|
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.
|
|
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>
|
|
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
|
|
|
|
|
|
|
|
and add some more comments to help understand the complex release
procedures.
|
|
Siemens overloaded the definition for location based services, so
our automatic determination of the message discriminator no longer
works fine.
|
|
|
|
MRPCI (MS RF Power Indicator) informs the BTS about the power
capabilities of the MS.
|
|
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.
|
|
|
|
|
|
|
|
also, they should both take the gsm_band parameter, not a BTS
|
|
|
|
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.
|
|
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.
|
|
|
|
|