Commit Graph

99 Commits

Author SHA1 Message Date
Andreas.Eversberg f195635d31 layer23: Added VTY command to display current states.
Also rejecting ASSIGNMENT COMMAND.
2010-06-16 17:17:29 +00:00
Andreas.Eversberg 4fff9fbd8e layer23 VTY: "end" now ends configuration in all config subnodes. 2010-06-16 17:13:52 +00:00
Andreas.Eversberg 7f79cb8e03 layer23: Added some more detailed debugging parameters. 2010-06-15 20:16:52 +00:00
Andreas.Eversberg 73cef8017e layer23: Fixed release problems of call control.
Now hangup command from mobile station results in a clean release of
CC and MM.
2010-06-15 20:15:03 +00:00
Andreas.Eversberg 55e3d970d9 layer23 call control: Fixed sending of RELEASE COMPLETE.
This had caused a crash due to double free of transaction instance.
2010-06-14 19:45:30 +00:00
Andreas.Eversberg f6299e657c 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.
2010-06-14 19:38:06 +00:00
Andreas.Eversberg 9a2484b782 layer23: Added more logging to transaction.c 2010-06-13 22:35:45 +00:00
Andreas.Eversberg a9eb601cc8 layer23: Added more logging to call control. 2010-06-13 22:34:36 +00:00
Andreas.Eversberg 1e0eba000f lapdm: Minor fix. 2010-06-13 18:44:50 +00:00
Andreas.Eversberg a6ee911418 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.
2010-06-13 18:41:07 +00:00
Andreas.Eversberg f479eff3d5 layer23: Added VTY messages to call application.
VTY now shows the process of call establishment, incomming call, and release.
2010-06-13 17:18:15 +00:00
Andreas.Eversberg 22f4e35243 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.
2010-06-13 14:41:55 +00:00
Andreas.Eversberg c6e756aab6 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.
2010-06-13 13:51:30 +00:00
Andreas.Eversberg ec0baea9cf lapdm: Fixed length check for SABM frame. 2010-06-13 13:50:27 +00:00
Andreas.Eversberg 786054d117 cell selection: Added temporary hack to sync multiple times until the sync
failure is accepted.
2010-06-13 12:09:30 +00:00
Andreas.Eversberg fb48144c2b MNCCms: Added missing return value. 2010-06-13 12:08:35 +00:00
Andreas.Eversberg eb16b40ad0 radio ressource: After loosing signal, the process must return to IDLE state and trigger cell re-selection. 2010-06-13 12:07:31 +00:00
Andreas.Eversberg f2dc51dd44 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.
2010-06-13 12:03:17 +00:00
Andreas.Eversberg e0bf06d1fd lapdm: Fixed double free issues. (segfaults) 2010-06-13 12:01:37 +00:00
Andreas.Eversberg bba7716fee Added more release cases between RR and MM layer. 2010-06-12 18:44:21 +00:00
Andreas.Eversberg 426c76cee7 Fixed ARFCN output on sysinfo dumping. 2010-06-12 17:45:47 +00:00
Andreas.Eversberg 247ec7acf3 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...
2010-06-12 16:16:54 +00:00
Andreas.Eversberg 78f6fb7713 Fixed CM SERVICE REQUEST message. 2010-06-12 16:14:28 +00:00
Andreas.Eversberg cbce277e90 Added missing proto_descr content filling in call control. 2010-06-12 16:13:01 +00:00
Andreas.Eversberg 3c0a6b5b63 Added ARFCN to system information dump. 2010-06-12 16:11:35 +00:00
Andreas.Eversberg 6eaa91786e Updated description of buffers and queues in lapdm.c, changed queue name. 2010-06-12 16:07:49 +00:00
Andreas.Eversberg d8cc251cf1 Fixes and improvements of RR, MM, CC processes. 2010-06-06 18:19:46 +00:00
Andreas.Eversberg ff555175d1 Added call application to mnccms.c and added commands to dial/answer/hangup to VTY. 2010-06-06 18:17:15 +00:00
Andreas.Eversberg 95f7d2c99c Added new logging category for summary of process. 2010-06-06 18:16:01 +00:00
Andreas.Eversberg 341b3cee2c Fixed descriptions of VTY interface commands. 2010-06-06 10:37:55 +00:00
Andreas.Eversberg 72a63e90ff Completed layer 2 process. (LAPDm)
Not actually complete but most of it. Location update works now!
2010-06-05 19:47:25 +00:00
Andreas.Eversberg 4f03a851f0 Fixed of bugs while testing layer 2. 2010-06-05 19:46:10 +00:00
Harald Welte f916fe0031 [mobile] Enable GSM-R / E-GSM900 and DCS1800 bands 2010-05-29 13:06:32 +02:00
Harald Welte fd2a426395 l1ctl: Drop frames where L1 indicates they have bit errors 2010-05-29 13:06:10 +02:00
Andreas.Eversberg 5d10a35819 Fixes on cell selection process. 2010-05-24 23:15:15 +00:00
Andreas.Eversberg 1294f37687 Fixes during testing of location update with.
The location update is now performed after the channel is assigned.
In dedicated mode the network receives the LOCATION UPDATING REQUEST.
The reply (IDENTITY REQUEST and LOCATION UPDATING REJECT) is received.
But subsequent message like the IDENTITY RESPONSE is not transmitted
by lapdm.c.
2010-05-24 14:46:11 +00:00
Andreas.Eversberg ab438fee54 Fixed header offset in lapdm.c. 2010-05-24 14:45:00 +00:00
Andreas.Eversberg 27bcbec8c9 Fixed output format of osmocom.cfg. 2010-05-24 14:43:49 +00:00
root 6404e12a90 Moved some spreaded settings of layer23 into settings.h.
The IMEI can now be set or generated randomly.
2010-05-24 18:15:21 +02:00
root 0f1ef214b6 Fixes on cell selection.
I hope that it fixes the crash issues. If a sysinfo was received when no cell is
selected, it was written to a NULL-pointer.

Also after selecting a cell (dedicated mode), it was not good to "continue"
an already stopped search process, if the sync fails.
2010-05-24 05:38:24 +02:00
Andreas.Eversberg ba59a8cb51 Added more commands to VTY, especially selecting test SIM and configure it.
The test card can now be configured, as if it is already registered to a
network. So it will directly select the strongest cell of last scan.
2010-05-23 20:53:32 +00:00
root bfc0285c7c Fixes of layer23 processes during tests of MNCC interface.
-> Emergency calls will now trigger channel request.
-> Normal calls will be rejected due to limited/no service.
2010-05-24 02:21:24 +02:00
Andreas.Eversberg 9359a91504 Moved layer 1 <-> layer 2 interface from main.c to a seperate file of
liblayer23. Other applications using liblayer23 don't need to re-implement it.

Messages from layer 1 are not freed in layer2_read() anymore. They will be
freed by the upper layers. The layers may also decide to queue or to forward
the messages. In general: A message is always discarded by the message handler
and not after calling the message handler.
2010-05-22 10:46:20 +00:00
Andreas.Eversberg 6ca03ff7e6 Fixing cell selection, so it works with the current layer 1 API. 2010-05-22 09:27:33 +00:00
Andreas.Eversberg 0d53134db5 Fixed list of maximum frequencies to scan for a range. 2010-05-22 08:37:42 +00:00
Andreas.Eversberg c970d4f791 Network selection results can now be shown explicitly by "network show" VTY command. When selecting the network, the selection is checked, if in list. 2010-05-21 15:54:42 +00:00
Andreas.Eversberg 0d1f453943 Summary list of scanned cells now contains LAC and cell ID, rather than (uninteresting) access classes. 2010-05-21 15:52:11 +00:00
Harald Welte 89c6b9510e correct endian conversion of arfcn in tx_ph_dm_ext_req() 2010-05-20 23:48:19 +02:00
Harald Welte cb71b972bd Make new L1CTL_FBSB_REQ work reliably
* port 'mobile' application to new l1ctl_tx_fbsb_req()
* make sure we have a proper downlinke header in front of l1ctl_fbsb_resp
* remove duplicate band_arfcn member of struct l1ctl_fbsb_resp
* reset the AFC to its default value when starting new FBSB task
* remove bogus l1s.sb.{synced.count} variables
* allocate msg and send l1ctl_fbsb_resp() only from process context, not FIQ
* properly report SNR and BSIC in fbsb_resp
* introduce arbitrary SNR thresholds for FB0->FB1 and FB1->SB switching
2010-05-20 23:26:42 +02:00
Harald Welte 8978ec571e layer1/l1ctl: Split L1CTL_NEW_CCCH_REQ in FBSB_REQ nad SYNC_REQ
We really want to have those two as distinct operations - and we
want proper state machines in L1 to quickly return if they've
managed to acquire a FB or SB or not.  Otherwise scanning will
take ages...

This code now introduces a new l1ctl_fbsb_req that is sent via
L1CTL to ask for a bitmask of FB0/FB1/SB operations.  The actual
FB0/FB1 detection now no longer runs for 500 TDMA interrupts
but completes as soon as we either know there is no FCCH,
or that our frequency error is smaller than a caller-specified
threshold.

FB0/FB1 are already working, SB is not yet, sorry.
2010-05-19 21:41:24 +02:00