Harald Welte [Fri, 25 Jun 2010 16:00:16 +0000 (18:00 +0200)]
[l1ctl] add dedicated mode release request
Harald Welte [Fri, 25 Jun 2010 15:40:10 +0000 (17:40 +0200)]
[layer1] fix AGC computation (dbm vs. dbm8 mistakes)
Also, separate the rx window function from the AGC LNA value computation
Harald Welte [Fri, 25 Jun 2010 15:38:46 +0000 (17:38 +0200)]
[layer1] correctly compute dBm input level for RX normal burst
Harald Welte [Fri, 25 Jun 2010 14:54:02 +0000 (16:54 +0200)]
[layer1] remove superfluous rx_window call
The prim_fbsb code internally will set up the right arfcn/window,
so there is no need to repeat it.
Harald Welte [Fri, 25 Jun 2010 14:39:01 +0000 (16:39 +0200)]
[layer1] Activate AGC implementation
The target input level at the ABB ADC / DSP baseband downlink path
is just an estimate and might have to change
Harald Welte [Fri, 25 Jun 2010 14:36:23 +0000 (16:36 +0200)]
[layer23] remove raw printf about RACH CONF
Harald Welte [Fri, 25 Jun 2010 14:35:50 +0000 (16:35 +0200)]
move to TCP port 4247 to not conflict with openbsc on same host
Harald Welte [Fri, 25 Jun 2010 14:34:17 +0000 (16:34 +0200)]
[layer23] make sure we recognize our own IMM ASS
When trying to re-create the header file I made the 'valid' member
of the channel request history a single-bit field, but we actually
assign values different than 0 and 1 to it. This has caused layer23
to consider the IMM ASS to our own channel requests as non-matching.
Harald Welte [Fri, 25 Jun 2010 11:38:22 +0000 (13:38 +0200)]
[layer1] An actual AGC implementation
We introduce trf6151_compute_gain() to compute the gain setting that
leads to the ideal analog baseband power input level.
This function is called from rffe_set_gain() for both the compal and
the gta0x rf frontend, as there are no other amplifiers inside those
phone designs.
The new AGC function is not used yet from the regular layer1 code.
Harald Welte [Fri, 25 Jun 2010 08:38:33 +0000 (10:38 +0200)]
[layer1] Power Measurement updates
Instead of using the 'normal burst' receive window, use the proper
RXWIN_PW for power measurements. However, in this case, one PW window
corresponds to one PM measurement and in order to do two measurements,
multiple PW windows need to be set-up in the TPU. Since we don't support
that yet, we simply switch to doing only one power measurement for now.
Harald Welte [Fri, 25 Jun 2010 01:13:52 +0000 (03:13 +0200)]
[layer23] reverse-engineer missing header file changes
It seems one of the recent commits introduced build errors due
to missing commits for header file changes. Based on the code,
I reconstructed what I believe might have been the header files...
Harald Welte [Fri, 25 Jun 2010 01:01:57 +0000 (03:01 +0200)]
[build scripts] Make sure libosmocore for the target uses --disable-vty
The vty code cannot be cross-compiled to the target yet, we need to
disable building it.
Harald Welte [Fri, 25 Jun 2010 01:01:49 +0000 (03:01 +0200)]
Harald Welte [Fri, 25 Jun 2010 01:00:58 +0000 (03:00 +0200)]
Fix typo in configure script regarding --disable-vty
Harald Welte [Fri, 25 Jun 2010 00:55:59 +0000 (02:55 +0200)]
Merge commit '
816e24cb4296d6b7110da4a89661bbac8dc7af21' into libosmocore
Conflicts:
src/shared/libosmocore/include/osmocore/protocol/gsm_04_08.h
Andreas Eversberg [Fri, 25 Jun 2010 00:50:56 +0000 (02:50 +0200)]
[RSL] Added special RSL message types for mobile side
- suspension DL
- resume DL
- re-establish DL
Andreas Eversberg [Fri, 25 Jun 2010 00:50:06 +0000 (02:50 +0200)]
[gsm48] fix typo in struct gsm48_req_ref
Harald Welte [Thu, 24 Jun 2010 16:56:36 +0000 (18:56 +0200)]
[layer23] use the TSC that is passed from L1 when going in dedicated mode
Sylvain Munaut [Mon, 21 Jun 2010 20:54:13 +0000 (22:54 +0200)]
fw/layer1: Add some RFCH utilities to get channel parameters
This allows to easily get the tsc/timeslot/arfcn we need to
use to the rx/tx of a burst.
Using this also sets properly the TSC and ARFCN now !
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Sylvain Munaut [Mon, 21 Jun 2010 20:10:07 +0000 (22:10 +0200)]
layer1: Introduce a decicated channel state in l1s
We also make sure to set it properly during a DED EST REQ.
The state is currently unused tough.
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Sylvain Munaut [Mon, 21 Jun 2010 19:59:43 +0000 (21:59 +0200)]
l1a_l23_interface: Update DM EST REQ format
We include all the parameters we're gonna need to support
TS!=0, hopping, TSC, ...
We also assume the upper layer have decoded the low level
bit fields and gives us neat accessible variables and a
sorted ARFCN array for the Mobile Allocation
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Andreas.Eversberg [Thu, 24 Jun 2010 18:42:33 +0000 (18:42 +0000)]
layer23: Now receiver of IMM.ASS checks for timeslot when matching request.
This implies that random access confirm now works and is used.
Andreas.Eversberg [Thu, 24 Jun 2010 18:41:39 +0000 (18:41 +0000)]
layer23: Corrected PLMN format when selecting RPLMN via VTY.
Harald Welte [Thu, 24 Jun 2010 16:00:45 +0000 (18:00 +0200)]
[firmware] move board_init() to a gcc-type constructor
Instead of calling board_init() from every main() function explicitly,
we simply mark it as a constructor and have it called automagically
Harald Welte [Thu, 24 Jun 2010 15:52:05 +0000 (17:52 +0200)]
[firmware] make sure the .ctor sections are preserved during --gc-sections
--gc-sections throws away any symbol that is not referenced from
either the entry symbol or explicit KEEP statements in the linker script.
We add KEEP() to make sure the constructors are kept.
Harald Welte [Thu, 24 Jun 2010 15:10:46 +0000 (17:10 +0200)]
[firmware] fix code that iterates over constructors
the first element after __CTORS_LIST__ contains the number of constructor
callbacks in the following array, so we have to skip it.
Harald Welte [Thu, 24 Jun 2010 11:30:56 +0000 (13:30 +0200)]
[layer1] use __attribute__ ((constructor)) for completion initializers
Harald Welte [Thu, 24 Jun 2010 09:46:47 +0000 (11:46 +0200)]
[firmware] Add support for __attribute__ ((constructor))
We modify the linker scripts to include the .ctors and .dtors sections
and add some code to actually call them before we jump to the main()
function.
Sylvain Munaut [Sun, 20 Jun 2010 23:33:43 +0000 (01:33 +0200)]
fw/layer1/l23_api: Process each message in a function
Instead of processing directly in the switch, we put
real ..._rx_... functions to make things clearer.
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Sylvain Munaut [Sun, 20 Jun 2010 23:32:30 +0000 (01:32 +0200)]
fw/layer1: Fix compiler warning about mismatched ptr types
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Sylvain Munaut [Sun, 20 Jun 2010 21:02:40 +0000 (23:02 +0200)]
host/layer23: Update test application to support combined/non-combined CCCH
We start by listening to BCCH only then once we have a SI3, we inspect
it and enable to good CCCH mode.
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Sylvain Munaut [Sun, 20 Jun 2010 20:40:03 +0000 (22:40 +0200)]
fw/layer1: Add support CCCH combined/non-combined
We introduce the concept of CCCH mode. It can be either
- NONE: receive BCCCH only
- COMBINED: CCCH on a BCCH/CCCH+SDDCH/4
- NON_COMBINED: CCCH on a BCCH/CCCH
There is also a new command to change the mode without having
to do the resync.
Currently, we keep the previous default behavior of requesting
a combined CCCH by default
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Sylvain Munaut [Sun, 20 Jun 2010 20:19:25 +0000 (22:19 +0200)]
layer23/gsm322: Make a wrapper for fbsb_req to avoid repeating params
The params are virtually always the same, so use a wrapper to
change them easily
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Sylvain Munaut [Wed, 28 Apr 2010 21:57:36 +0000 (23:57 +0200)]
fw/layer1: When resetting hw, reset both SYNCHRO & OFFSET to l1s.tpu_offset
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Sylvain Munaut [Sun, 20 Jun 2010 19:15:21 +0000 (21:15 +0200)]
layer23: Add info about SNCB GSM-R network
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Harald Welte [Sun, 20 Jun 2010 17:43:57 +0000 (19:43 +0200)]
[layer1] add missing break statment at end of switch()
Harald Welte [Sun, 20 Jun 2010 17:42:49 +0000 (19:42 +0200)]
[layer23] Add debug print of _CONF messages
Harald Welte [Sun, 20 Jun 2010 17:21:32 +0000 (19:21 +0200)]
[L1CTL] Introduce completion for transmit of L2 frame
Every time we have completed the transmit of a L2 frame (mac block),
we send L1CTL_DATA_CONF up to L2.
Harald Welte [Sun, 20 Jun 2010 17:20:42 +0000 (19:20 +0200)]
[layer1] Fix RACH completion (don't use FB completion callback)
Harald Welte [Sun, 20 Jun 2010 17:10:21 +0000 (19:10 +0200)]
[L1CTL] rename primitives to comply with official naming s/_REQ/_CONF/
When L23 issues a REQ, we should respond with CONF, rather than _RESP
Harald Welte [Sun, 20 Jun 2010 16:42:42 +0000 (18:42 +0200)]
[L1CTL] Introduce L1CTL_RESET_RESP
1) On boot, L23 is notified by L1CTL_RESET_IND:
2) At any time, L23 can call L1CTL_RESET_REQ and get a
L1CTL_RESET_RESP once the reset has been performed.
Also, there is no 'l1ctl_info_dl' in the RESET_IND anymore, as it
is useless.
Harald Welte [Sun, 20 Jun 2010 16:31:22 +0000 (18:31 +0200)]
[layer1] Introduce function to reset the gsmtime scheduler
Harald Welte [Sun, 20 Jun 2010 16:21:01 +0000 (18:21 +0200)]
[L1CTL] rename L1CTL_RESET to L1CTL_RESET_IND
and define a new structure that indicates the type of reset
Andreas.Eversberg [Sun, 20 Jun 2010 18:19:20 +0000 (18:19 +0000)]
Merge branch 'master' of git.osmocom.org:osmocom-bb
Andreas.Eversberg [Sun, 20 Jun 2010 18:18:45 +0000 (18:18 +0000)]
layer23: Added CLIP and CLIR feature.
Andreas.Eversberg [Sun, 20 Jun 2010 17:43:55 +0000 (17:43 +0000)]
layer23: Added support for waiting calls, hold/retrieve calls.
Andreas.Eversberg [Sun, 20 Jun 2010 17:43:15 +0000 (17:43 +0000)]
Merge branch 'master' of git.osmocom.org:osmocom-bb
Andreas.Eversberg [Sun, 20 Jun 2010 16:23:30 +0000 (16:23 +0000)]
layer23 radio ressource: Added signal loss condition in release state.
Harald Welte [Sun, 20 Jun 2010 16:12:40 +0000 (18:12 +0200)]
[layer1] Add L1CTL_RACH_RESP to confirm that a RACH request was sent
Harald Welte [Sun, 20 Jun 2010 15:26:27 +0000 (17:26 +0200)]
[layer1] FBSB: abort FB0 acquisition after 30 failing attempts
This should remove the 'endless FB0 loop' when the DSP detects a FB
where there really is none, and we drive the AFC DAC to its maximum
without ever getting the frequency offset below our threshold.
Harald Welte [Sun, 20 Jun 2010 15:05:01 +0000 (17:05 +0200)]
[layer1] FBSB: re-try FB0/FB1 request up to 3 times
So far, we have aborted our FB acquisition if we didn't detect a
Frequency Burst in the first period of 12 TDMA timeslots. However,
this turns out to be giving up a bit too quickly. We now re-try
this three times before giving up, which hopefully gives better
results.
Andreas.Eversberg [Sun, 20 Jun 2010 12:25:53 +0000 (12:25 +0000)]
layer23: Fixed name of "DB Systel GSM-R" for MNC 10 in Germany.
Andreas.Eversberg [Sun, 20 Jun 2010 11:19:06 +0000 (11:19 +0000)]
layer23: Complete rework of MCC and MNC structure.
Instead of handling numerical MCC and MNC, they are now stored and handled
hexadecimal, like they are received by the network. This makes it possible
to correctly handle 2 and 3 digits MNC. Internally 2 digit MNCs are stored
as 0xXXf, and 3 digits MNC are stored as 0xXXX, where X is the digit 0..9.
The length of MNC in the IMSI (2 or 3 digits) depend on the MNC length
trying to match. Anyway that MNC name can be printed even without knowing the
actual length. This is done by matching the IMSI against list of networks.
PLEASE REMOVE "/etc/osmocom/*.ba", because the MCC and MNC stored there is
not valid anymore.
Jan Luebbe [Thu, 17 Jun 2010 08:02:16 +0000 (10:02 +0200)]
l1ctl.c: add missing ntohs for band_arfcn
This fixes mangled ARFCN numbers in gsmtap.
Andreas.Eversberg [Wed, 16 Jun 2010 22:06:46 +0000 (22:06 +0000)]
layer23: Corrected MCC in network table. -1 is used to indicate the counter rather than network name.
Andreas.Eversberg [Wed, 16 Jun 2010 21:43:00 +0000 (21:43 +0000)]
layer23: Complete list of GSM operators and countries.
Just check out "On-waves", "GSM-R", or "OpenBSC".
Andreas.Eversberg [Wed, 16 Jun 2010 18:21:59 +0000 (18:21 +0000)]
layer23 manual network search: Fixed searching behavior.
First of all I cleaned up the VTY commands. Instead of something like
"barred-access (yes|no)", I use now "barred-access" and "no barred-access".
Your stored configuration file will not load, because config format has
changed. Just remove the lines that cannot be parsed by VTY from your
config. Then the default values are used on next startup. Modify these as
desired via VTY using the new commands.
Use "rplmn <mcc> <mnc>" or "no rplmn" to set the initial behaviour of
network search. If RPLMN is set, this network is selected. If it is not
found, it will be displayed, then it is time to do a search
"network search 1".
If you have set "no rplmn" the search is started automatically on power on.
After the search you can see available networks and show the cells using
"show cell 1" or the detailed information "show cell 1 <arfcn>".
For testing all that be sure to set the "sim" to "test" and the
"network-search" to "manual". Do "show run" to see all commands to be set.
Andreas.Eversberg [Wed, 16 Jun 2010 17:19:40 +0000 (17:19 +0000)]
This commit belongs to the last one.
Andreas.Eversberg [Wed, 16 Jun 2010 17:17:29 +0000 (17:17 +0000)]
layer23: Added VTY command to display current states.
Also rejecting ASSIGNMENT COMMAND.
Andreas.Eversberg [Wed, 16 Jun 2010 17:13:52 +0000 (17:13 +0000)]
layer23 VTY: "end" now ends configuration in all config subnodes.
Andreas.Eversberg [Tue, 15 Jun 2010 20:16:52 +0000 (20:16 +0000)]
layer23: Added some more detailed debugging parameters.
Andreas.Eversberg [Tue, 15 Jun 2010 20:15:03 +0000 (20:15 +0000)]
layer23: Fixed release problems of call control.
Now hangup command from mobile station results in a clean release of
CC and MM.
Harald Welte [Tue, 15 Jun 2010 07:32:14 +0000 (09:32 +0200)]
[GSM 04.08] add more RR IEIs
Andreas.Eversberg [Mon, 14 Jun 2010 19:45:30 +0000 (19:45 +0000)]
layer23 call control: Fixed sending of RELEASE COMPLETE.
This had caused a crash due to double free of transaction instance.
Andreas.Eversberg [Mon, 14 Jun 2010 19:38:06 +0000 (19:38 +0000)]
layer23 cell selection: Fix in cell selection after leaving dedicated mode.
Only the known BA (band allocation) is used to check for the cell to camp
on. If there is no BA or if nothing is found, the process triggers normal
cell selection.
After location update (for example), the mobile switches to the strongest
cell in the current band allocation.
Andreas.Eversberg [Sun, 13 Jun 2010 22:35:45 +0000 (22:35 +0000)]
layer23: Added more logging to transaction.c
Andreas.Eversberg [Sun, 13 Jun 2010 22:34:36 +0000 (22:34 +0000)]
layer23: Added more logging to call control.
Andreas.Eversberg [Sun, 13 Jun 2010 18:44:50 +0000 (18:44 +0000)]
lapdm: Minor fix.
Andreas.Eversberg [Sun, 13 Jun 2010 18:41:07 +0000 (18:41 +0000)]
layer23: IMSI detach works now.
Pressing CTRL+c causes the detach process to run, then the mobile exits.
This procedure only runs after attachment (location update) and if detach
is required.
The SABM with the detach message is confirmed by a DISC message. the BS11
says that this is caused by sequence error or N200+1 error. Maybe someone
can trace that.
Andreas.Eversberg [Sun, 13 Jun 2010 17:18:15 +0000 (17:18 +0000)]
layer23: Added VTY messages to call application.
VTY now shows the process of call establishment, incomming call, and release.
Andreas.Eversberg [Sun, 13 Jun 2010 14:41:55 +0000 (14:41 +0000)]
layer23: Added feature to do emergency calls without a SIM card.
While testing, you may find out that making an emergency call is rejected
with cause 5 (illegal ME), because emergency facilities in some countries
like to reject calls without knowing the subscriber.
An emergency IMSI can be defined via VTY, so it is possible to make calls
with that IMSI, even without the SIM, because authentication is not
applicable during emergency call establishment.
All the information above, I received from the freely available 3GPP TS 04.08.
See NOTE at sub clause 4.5.1.5.
Andreas.Eversberg [Sun, 13 Jun 2010 13:51:30 +0000 (13:51 +0000)]
layer23: Fixed issues about location update and it's result.
Now location update reject works. The rejected network/cell is stored in
an appropriate list. The lists can be dumped from the VTY.
A fake authentication response is generated until the SIM interface is
available. If the network rejects the test SIM, due to authentication
failure, it is removed and limited service state is entered. This currenlty
works on networks with SDCCH on the TS0 only.
Andreas.Eversberg [Sun, 13 Jun 2010 13:50:27 +0000 (13:50 +0000)]
lapdm: Fixed length check for SABM frame.
Andreas.Eversberg [Sun, 13 Jun 2010 12:09:30 +0000 (12:09 +0000)]
cell selection: Added temporary hack to sync multiple times until the sync
failure is accepted.
Andreas.Eversberg [Sun, 13 Jun 2010 12:08:35 +0000 (12:08 +0000)]
MNCCms: Added missing return value.
Andreas.Eversberg [Sun, 13 Jun 2010 12:07:31 +0000 (12:07 +0000)]
radio ressource: After loosing signal, the process must return to IDLE state and trigger cell re-selection.
Andreas.Eversberg [Sun, 13 Jun 2010 12:03:17 +0000 (12:03 +0000)]
mobility management: Fixes.
In case of registration not possible / requried, the appropriate result
message (REG_FAILED / REG_SUCCESS) must be returned to PLMN process.
Location updating message fix.
Andreas.Eversberg [Sun, 13 Jun 2010 12:01:37 +0000 (12:01 +0000)]
lapdm: Fixed double free issues. (segfaults)
Andreas.Eversberg [Sat, 12 Jun 2010 18:44:21 +0000 (18:44 +0000)]
Added more release cases between RR and MM layer.
Andreas.Eversberg [Sat, 12 Jun 2010 17:45:47 +0000 (17:45 +0000)]
Fixed ARFCN output on sysinfo dumping.
Andreas.Eversberg [Sat, 12 Jun 2010 16:16:54 +0000 (16:16 +0000)]
Radio ressources now has functions for release of radio link.
The "BA range" is used for cell re-selection.
Due to layer 1 issues, the process gets stuck very often or looses
synchronization.
After location update, I can now make a call via VTY on SDCCH:
Call control sends SETUP request after requesting an MM connection.
My phone on the network side rang!! Call control fails and requires
further debugging...
Andreas.Eversberg [Sat, 12 Jun 2010 16:14:28 +0000 (16:14 +0000)]
Fixed CM SERVICE REQUEST message.
Andreas.Eversberg [Sat, 12 Jun 2010 16:13:01 +0000 (16:13 +0000)]
Added missing proto_descr content filling in call control.
Andreas.Eversberg [Sat, 12 Jun 2010 16:11:35 +0000 (16:11 +0000)]
Added ARFCN to system information dump.
Andreas.Eversberg [Sat, 12 Jun 2010 16:07:49 +0000 (16:07 +0000)]
Updated description of buffers and queues in lapdm.c, changed queue name.
Sylvain Munaut [Thu, 10 Jun 2010 11:30:50 +0000 (13:30 +0200)]
gsm48: Add authentication response message
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Sylvain Munaut [Wed, 9 Jun 2010 11:38:56 +0000 (13:38 +0200)]
gsm_utils: Add a fn to test A5(x) support given a classmark2
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Holger Hans Peter Freyther [Tue, 8 Jun 2010 08:12:58 +0000 (16:12 +0800)]
vty: Mark app info strings as const char*.
Andreas.Eversberg [Sun, 6 Jun 2010 18:19:46 +0000 (18:19 +0000)]
Fixes and improvements of RR, MM, CC processes.
Andreas.Eversberg [Sun, 6 Jun 2010 18:17:15 +0000 (18:17 +0000)]
Added call application to mnccms.c and added commands to dial/answer/hangup to VTY.
Andreas.Eversberg [Sun, 6 Jun 2010 18:16:01 +0000 (18:16 +0000)]
Added new logging category for summary of process.
Andreas.Eversberg [Sun, 6 Jun 2010 10:37:55 +0000 (10:37 +0000)]
Fixed descriptions of VTY interface commands.
Andreas.Eversberg [Sat, 5 Jun 2010 19:47:25 +0000 (19:47 +0000)]
Completed layer 2 process. (LAPDm)
Not actually complete but most of it. Location update works now!
Andreas.Eversberg [Sat, 5 Jun 2010 19:46:10 +0000 (19:46 +0000)]
Fixed of bugs while testing layer 2.
Andreas.Eversberg [Sat, 5 Jun 2010 19:43:55 +0000 (19:43 +0000)]
Added special RSL message types for mobile side:
- suspension DL
- resume DL
- re-establish DL
Harald Welte [Tue, 1 Jun 2010 19:21:20 +0000 (21:21 +0200)]
Merge remote branch 'origin/master'
Harald Welte [Tue, 1 Jun 2010 08:47:07 +0000 (10:47 +0200)]
add new new gprs_tmsi2tlli() function
Harald Welte [Mon, 31 May 2010 14:01:59 +0000 (16:01 +0200)]
[VTY] Remove all application specific VTY node definitions from enum
Harald Welte [Sat, 29 May 2010 11:06:32 +0000 (13:06 +0200)]
[mobile] Enable GSM-R / E-GSM900 and DCS1800 bands
Harald Welte [Sat, 29 May 2010 11:06:10 +0000 (13:06 +0200)]
l1ctl: Drop frames where L1 indicates they have bit errors