Commit Graph

46 Commits

Author SHA1 Message Date
Holger Hans Peter Freyther e81a6109f9 [gsm48] Add generation of ASSIGNMENT COMMAND to the 0408 utils
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-27 04:52:29 +01:00
Harald Welte 9c880c9a9b [GPRS] Add RSL function for ip.access PDCH activation
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 10:29:22 +02:00
Harald Welte a1499d00a5 [GPRS] introudce PDCH and PDCH/TCH physical channels
GPRS needs PDCH (Packet Data Channels), and we need support in
our data model as well as OML and RSL for it
2009-10-24 10:25:50 +02:00
Holger Hans Peter Freyther ddd918f7ec Fix compiler warning and cast const away.
TLVP_VAL returns a const u_int8_t* and we assign it
to a non const, cast const away.
2009-10-22 15:43:55 +02:00
Sylvain Munaut 82aa6843ba [abis_rsl] Fix rsl_encryption_cmd L3 length computation
msg->l3h doesn't have any coherent value at that point,
can't use that.

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2009-09-27 11:13:18 +02:00
Harald Welte 08d91a5b26 A5 support for RSL and 04.08 (not used yet)
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-30 15:37:11 +09:00
Harald Welte 196d0528ff [abis_rsl] Set lchan->tch_mode properly when responding to CHAN_RQD
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-28 23:28:28 +09:00
Harald Welte (local) daef606502 respect the link_id, not only the SAPI from SMS code
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-14 11:41:12 +02:00
Harald Welte (local) 0e451d0f2e add 'ms max power' vty command to set the maximum MS power in dBm 2009-08-13 10:14:26 +02:00
Harald Welte 9c31b5eeca now that we send MRPCI, we can treat T_MSRFPCI error message as fatal 2009-08-10 14:43:59 +02:00
Harald Welte 99b4ecd78a Merge commit 'origin/master' 2009-08-10 11:43:52 +02:00
Harald Welte 115d1036d6 rename rsl_channel_release to rsl_rf_channel_release
and add some more comments to help understand the complex release
procedures.
2009-08-10 11:43:22 +02:00
Harald Welte 3c456d06e0 use proper message discriminator for MRPCI
Siemens overloaded the definition for location based services, so
our automatic determination of the message discriminator no longer
works fine.
2009-08-10 11:26:14 +02:00
Harald Welte 31c489390c make rsl_siemens_mrpci() use struct rsl_mrpci 2009-08-10 10:07:33 +02:00
Harald Welte 67fa91bf42 Add function to generate siemens-specific MRPCI RSL message
MRPCI (MS RF Power Indicator) informs the BTS about the power
capabilities of the MS.
2009-08-10 09:51:40 +02:00
Harald Welte 0b2124be48 set BS power to Pn == nominal output power
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-10 00:45:40 +02:00
Harald Welte b7e8116bfa add T3101 to release lchan in case MS never responds to IMMEDIATE ASSIGN 2009-08-10 00:26:10 +02:00
Harald Welte 6c3d2edebf the RELEAESE MODE IE is mandatory 2009-08-10 00:19:36 +02:00
Harald Welte 3073a9f241 if we receive CHANNEL ACTIVATE NACK, we should release the lchan 2009-08-09 19:50:08 +02:00
Harald Welte 66b6a8dde0 move ms_pwr utility function to gsm_utils.c
also, they should both take the gsm_band parameter, not a BTS
2009-08-09 14:45:18 +02:00
Harald Welte 1c40927355 fix timer and linked list handling of new RLL code 2009-08-09 14:13:58 +02:00
Harald Welte edcc527371 Add new BSC RLL layer of code
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-09 13:47:35 +02:00
Harald Welte d2dc1de9d9 start using the RLL RELEASE procedures
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-08 13:15:07 +02:00
Harald Welte 602f2b88d6 fix \n at end of line of certain RSL debug messages 2009-08-04 02:50:21 +02:00
Harald Welte f89abbd16a alter initial MS RF power to 100mW 2009-08-04 02:31:55 +02:00
Harald Welte 2da8629b7c parse and decode Siemens specific T_MSRFPCI message 2009-08-04 02:31:05 +02:00
Harald Welte 9943c5bbac generalize channel activation / channel mode modify
* we only need one piece of code to calculate rsl_ie_chan_mode from
  our run-time data structures (gsm_lchan)
* add some more channel modes for TCH/H and data
* use enum's to make the compiler warn us about unhandled enum values
* make sure the caller determines the (signalling,speech,data) mode
2009-07-29 15:41:29 +02:00
Harald Welte 58ca5b7ae7 actually derive the ip.access speech mode from tch_mode
also make sure we always print the speech_mode on IPAC_BIND
and IPAC_CONNECT.
2009-07-29 12:12:18 +02:00
Harald Welte 470abb773b add support for more RSL channel modes 2009-07-29 11:38:15 +02:00
Harald Welte f4e79f24fc improve ip-access BIND/CONNECT RTP support
* explicitly set the "ip speech mode" IE during BIND and CONNECT messages,
  depending on the speech codec used by the voice call
* more verbose debug messages regarding IPAC_BIND and IPAC_CONNECT
* do not always blindly specify RTP payload type, but use the value
  returned by BIND_ACK, _if_ it is present.
2009-07-28 18:28:14 +02:00
Harald Welte 888b11462a send a [new] signal in case of IPAC_DISCONNECT_INDication 2009-07-28 18:28:07 +02:00
Harald Welte 8830e07efb implement human-readable RSL cause printing 2009-07-28 18:27:59 +02:00
Harald Welte 814c4b7984 use actual bts->tsc rather than hard-coded value 2009-07-21 22:13:28 +02:00
Harald Welte ae0f2362bb send DEACTIVATE SACCH when sending RR CHANEL RELEASE
As per specification, we first send the RR CHANNEL RELEASE to the MS,
and then tell the BTS to disable the SACCH on that channel.
2009-07-19 18:36:49 +02:00
Harald Welte ab46d7455b more ip.access RSL TLV parser definitions 2009-07-12 09:56:39 +02:00
Harald Welte 20855547bf rename ip.access structure field members and variables
to reflect that we now know their true names/meanings
2009-07-12 09:50:35 +02:00
Harald Welte 86c162dce8 give ip.access RSL IE's their proper names 2009-07-12 09:45:05 +02:00
Holger Hans Peter Freyther 3d57183910 abis_rsl.c: Clarify from which specification this table comes from
It appears to be the table of TS 05.02.
2009-07-09 20:43:16 +02:00
Harald Welte 73be3aafec remove superfluous check for lchan->use > 0
If we receive one of those strange BS-11 "Cause 22" errors,  we don't need
to check if the lchan use counter is > 0.  If it was 0, the lchan gets
released anyway.
2009-07-04 10:05:51 +02:00
Harald Welte 81543bcdd2 release channel on ERROR INDICATION
This was proposed by Andreas Eversberg.  I made it conditional on the T200
timer expired cause, as I'm not sure if we really should give up that quickly
on other errors such as just simply receiving an unsolicited response.
2009-07-04 09:40:05 +02:00
Harald Welte eab33356d0 fix various RSL msgb memory leaks in error paths 2009-06-27 03:09:53 +02:00
Harald Welte 10d0e67e2c add new DMEAS debug category for measurement reporting
disable it by default
2009-06-27 03:09:38 +02:00
Harald Welte 966636f39f use named variant when allocating msgb's
when we generate a talloc report (SIGUSR1), we can now see which system
allocated a given msgb, this helps memory leak debugging
2009-06-26 19:39:35 +02:00
Harald Welte fe9af26c3e Add parsing of 'L1 information' IE of MEASUREMENT RESULT 2009-06-22 01:37:50 +02:00
Harald Welte fcd2445d05 Introduce BS and MS power control related functions
* add bts->band field plus corresponding VTY and commandline argument
* add trx->nominal_power and trx->max_power_red fields
* add rsl_chan_bs_power_ctrl() to control TRX RF power for a given TS
* add rsl_chan_ms_power_ctrl() to control MS RF power for a given lchan.
2009-06-20 19:22:18 +02:00
Harald Welte 13e10daa33 move openbsc into its own subdirectory 2009-06-10 05:40:52 +08:00