Andreas.Eversberg [Tue, 20 Jul 2010 10:43:12 +0000 (10:43 +0000)]
[layer23] Several minor changes and minor fixes
Harald Welte [Mon, 19 Jul 2010 12:24:46 +0000 (14:24 +0200)]
[firmware] TRF6151: fix VGA gain calculation bug
We've had two sets of TRF6151 GAIN related #defines which were used
in an incorrect manner, resulting in a vga_gain of 60, which is
outside of the allowed gain range.
Thanks to Dieter Spaar for spotting this bug
Andreas.Eversberg [Mon, 19 Jul 2010 09:37:57 +0000 (09:37 +0000)]
[layer23] Fixed "return to IDLE" after cell re-selection.
Also remove forbidden PLMN from list when choosing cell manually.
Andreas.Eversberg [Sun, 18 Jul 2010 12:56:48 +0000 (12:56 +0000)]
[calypso] Rework of keypad interrupt handler.
The keys are correctly detected and debounced. There is no delay_ms in the
interrupt handler anymore.
When a key is pressed, the columns of the keypad are polled and debounced
via timer interrupt. If no key is pressed, the timer interrupt is ignored
again.
Andreas.Eversberg [Sat, 17 Jul 2010 12:43:53 +0000 (12:43 +0000)]
[layer23] Option "no location-updating" to disabled location updating
The mobile will not transmit for location updating. All networks will be
marked as "roaming not allowed", so search process continues.
Andreas.Eversberg [Sat, 17 Jul 2010 11:44:11 +0000 (11:44 +0000)]
[layer23] Fixed cell search process of automatic network selection
If there is no (more) "PLMN in list", a complete search is triggered, so
all available cells are searched. Then the list of available networks is
tried for location updating (if allowed) in a defined order. If the
list is done, the process searches for all available cells again.
Note: The process will cause location updating on all networks until all
networks have rejected the mobile or if one network allowed the location
updating. To prevent this, use manual network selection, and set 'rplmn' of
test-sim, so only location updating is tried on the RPLMN.
Andreas.Eversberg [Sat, 17 Jul 2010 09:37:58 +0000 (09:37 +0000)]
[layer23] After location updating, the last cell is selected without search
Andreas.Eversberg [Fri, 16 Jul 2010 18:42:13 +0000 (18:42 +0000)]
[layer23] Fixed establishment of multiple MM connections
Andreas.Eversberg [Fri, 16 Jul 2010 10:52:38 +0000 (10:52 +0000)]
[layer23] Added simple network monitor. Use "monitor network 1" to enable.
Ingo Albrecht [Thu, 15 Jul 2010 20:59:55 +0000 (22:59 +0200)]
Ingo Albrecht [Thu, 15 Jul 2010 20:43:52 +0000 (22:43 +0200)]
Added crc16 from linux kernel.
Ingo Albrecht [Thu, 15 Jul 2010 19:41:29 +0000 (21:41 +0200)]
firmware: sim controller driver by dexter
Andreas.Eversberg [Thu, 15 Jul 2010 17:11:36 +0000 (17:11 +0000)]
[layer23] Changed the rxlev values in gsm322.c to GSM format
Sylvain Munaut [Thu, 15 Jul 2010 14:43:54 +0000 (16:43 +0200)]
layer1: Fix DM_REL_REQ to release all dedicated state
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Steve Markgraf [Thu, 15 Jul 2010 01:18:20 +0000 (03:18 +0200)]
cleanup duplicated delay functions
Signed-off-by: Steve Markgraf <steve@steve-m.de>
Steve Markgraf [Thu, 15 Jul 2010 00:18:46 +0000 (02:18 +0200)]
osmocon.c: enable hdlc console for mtk romloader targets
Since the mt622x uart driver is now in a working state,
we can actually use the sercomm console.
Signed-off-by: Steve Markgraf <steve@steve-m.de>
Andreas.Eversberg [Thu, 15 Jul 2010 12:22:24 +0000 (12:22 +0000)]
[layer23] Fixed call reference for incomming calls. (mobile terminated)
Andreas.Eversberg [Thu, 15 Jul 2010 12:21:42 +0000 (12:21 +0000)]
[layer23] Added channel mode modify
Harald Welte [Thu, 15 Jul 2010 08:32:02 +0000 (10:32 +0200)]
[Layer1] Allow for some jitter in TDMA lost interrupt detection
The need for this has been pointed out by Sylvain...
Andreas.Eversberg [Thu, 15 Jul 2010 10:28:28 +0000 (10:28 +0000)]
[layer23] Stop T3240 after location updating reject.
Andreas.Eversberg [Thu, 15 Jul 2010 10:27:51 +0000 (10:27 +0000)]
[layer23] Send reset to layer 1 before starting power measurement.
Andreas.Eversberg [Wed, 14 Jul 2010 16:22:53 +0000 (16:22 +0000)]
[layer23] Fixed DISC message at LAPDm, added debugging for UA match.
Andreas.Eversberg [Wed, 14 Jul 2010 16:19:42 +0000 (16:19 +0000)]
[layer23] Display when incomming call is connected.
Andreas.Eversberg [Wed, 14 Jul 2010 16:01:26 +0000 (16:01 +0000)]
[layer23] Fixes of call control: RELEASE and CONNECT ACK
Andreas.Eversberg [Wed, 14 Jul 2010 14:13:56 +0000 (14:13 +0000)]
[layer23] Fix: IMSI detach in "IMSI detach initiated" state.
Andreas.Eversberg [Wed, 14 Jul 2010 11:17:09 +0000 (11:17 +0000)]
[layer23] Fix: T3240 (wait network command) is stopped after RR release.
Andreas.Eversberg [Wed, 14 Jul 2010 10:21:35 +0000 (10:21 +0000)]
[layer23] WAIT for IDLE and layer 1 reset before power off after IMSI detach
Andreas.Eversberg [Tue, 13 Jul 2010 18:12:54 +0000 (18:12 +0000)]
[layer23] Fixed RSL release request
The forward release (DISC request) still seems to be broken at lapdm.c.
Andreas.Eversberg [Tue, 13 Jul 2010 17:09:30 +0000 (17:09 +0000)]
[layer23] Fixed call answer/reject at mnccms.c
Andreas.Eversberg [Tue, 13 Jul 2010 17:09:00 +0000 (17:09 +0000)]
[layer23] Fixed maleformed PAG.RESP message
Andreas.Eversberg [Tue, 13 Jul 2010 17:08:29 +0000 (17:08 +0000)]
[layer23] Fixed MM crash bug
Andreas.Eversberg [Tue, 13 Jul 2010 17:08:00 +0000 (17:08 +0000)]
[layer23] Fixed BA list dump
Andreas.Eversberg [Tue, 13 Jul 2010 14:54:55 +0000 (14:54 +0000)]
[layer23] Removed the osmocom/file.h
Andreas.Eversberg [Tue, 13 Jul 2010 14:29:19 +0000 (14:29 +0000)]
[layer23] Added control features to VTY
tx-power: fixed or automatic transmit power selection
(not currently supported by layer 1)
simulated-delay: Make BTS believe that we are closer or at greater distance
than we actually are. This is required to use cells that only allows a limited
range to the mobile. Also it prevents from being tracked by location services.
stick: Make mobile stick to a given ARFCN only. For testing purpose the
cell selection process can be limited to only one frequency. This speeds
up cell selection process.
Andreas.Eversberg [Tue, 13 Jul 2010 14:27:15 +0000 (14:27 +0000)]
[layer23] Fixed ID.REQ for IMEI while no SIM is present.
Andreas.Eversberg [Tue, 13 Jul 2010 14:21:52 +0000 (14:21 +0000)]
[layer23] Rework of channel request process and control of TA and TX-power
The radio ressource layer uses RSL messages to perform RACH requests now.
TX power and timing advance is controlled before RACH request, after IMM.ASS,
and during dedicated mode. (Note that TX power control is not yet supported
by layer 1.)
Andreas.Eversberg [Tue, 13 Jul 2010 14:14:54 +0000 (14:14 +0000)]
[layer23] Correcting an attribute name in sysinfo.h.
Andreas.Eversberg [Tue, 13 Jul 2010 14:12:54 +0000 (14:12 +0000)]
[layer23] Updating l1ctl.c to current L1<->L2 API.
Andreas.Eversberg [Tue, 13 Jul 2010 14:07:37 +0000 (14:07 +0000)]
[layer 1] L1CTL_PARAM_REQ is introduced to change TX power and TA.
Currently only TA (timing advance) is supported. It ranges from -128 to 128.
Andreas.Eversberg [Tue, 13 Jul 2010 14:03:13 +0000 (14:03 +0000)]
[layer 1] Reset option for scheduled frames.
This is usefull to drop a scheduled RACH request after an IMM.ASS is
received.
Andreas.Eversberg [Tue, 13 Jul 2010 13:58:41 +0000 (13:58 +0000)]
[layer1] Added mf_off to shedule next RACH request.
The mf_off value defines the offset of multiframes.
Harald Welte [Tue, 13 Jul 2010 11:51:42 +0000 (13:51 +0200)]
Andreas Eversberg [Tue, 13 Jul 2010 11:50:39 +0000 (13:50 +0200)]
[VTY] add support for numeric ranges with negative numbers
This enables us to do something like <-128-127> as a numeric range.
Harald Welte [Tue, 13 Jul 2010 11:48:13 +0000 (13:48 +0200)]
[RSL] split rsl_rll_push_l3() L3 LV pushign and rsl_rll_push_hdr()
This allows us to generate RSLms messages that have some non-standard
IEs between the RSL/RLL common header and the L3 INFO IE.
Harald Welte [Mon, 12 Jul 2010 07:21:13 +0000 (09:21 +0200)]
Add 'src/shared/libosmocore/' from commit '
ed00fe4449ac2309ad80c32f0ba7aa80b2b8895a'
git-subtree-dir: src/shared/libosmocore
git-subtree-mainline:
231444b548df8aff616f314ebc6135588b0ffec3
git-subtree-split:
ed00fe4449ac2309ad80c32f0ba7aa80b2b8895a
Harald Welte [Mon, 12 Jul 2010 07:17:54 +0000 (09:17 +0200)]
remove old / modified copy of libosmocore (will be replaced with new)
Andreas Eversberg [Mon, 12 Jul 2010 07:12:46 +0000 (09:12 +0200)]
Add 3-digit MNC support to gsm48_generate_lai()
Andreas Eversberg [Mon, 12 Jul 2010 07:11:00 +0000 (09:11 +0200)]
Added new IE definitions to gsm_04_08.h of libosmocore.
Also added RR and MM TLV tables to gsm48.c
[import from accidential commit to osmocom-bb.git]
Andreas Eversberg [Mon, 12 Jul 2010 06:55:14 +0000 (08:55 +0200)]
Added single octet TV (type + value) to libosmocore.
In case of a single octet, the upper nibble is the type, the lower nibble
carries the value.
[import from accidentially committed changes to osmocom-bb.git]
diff --git a/src/shared/libosmocore/include/osmocore/tlv.h b/src/shared/libosmocore/include/osmocore/tlv.h
index
c733dbc..
4cfce87 100644
--- a/src/shared/libosmocore/include/osmocore/tlv.h
+++ b/src/shared/libosmocore/include/osmocore/tlv.h
@@ -212,6 +212,7 @@ enum tlv_type {
TLV_TYPE_TLV,
TLV_TYPE_TL16V,
TLV_TYPE_TvLV,
+ TLV_TYPE_SINGLE_TV
};
struct tlv_def {
diff --git a/src/shared/libosmocore/src/tlv_parser.c b/src/shared/libosmocore/src/tlv_parser.c
index
407e57a..
bbef7a9 100644
--- a/src/shared/libosmocore/src/tlv_parser.c
+++ b/src/shared/libosmocore/src/tlv_parser.c
@@ -36,6 +36,14 @@ int tlv_parse_one(uint8_t *o_tag, uint16_t *o_len, const uint8_t **o_val,
tag = *buf;
*o_tag = tag;
+ /* single octet TV IE */
+ if (def->def[tag & 0xf0].type == TLV_TYPE_SINGLE_TV) {
+ *o_tag = tag & 0xf0;
+ *o_val = buf;
+ *o_len = 1;
+ return 1;
+ }
+
/* FIXME: use tables for knwon IEI */
switch (def->def[tag].type) {
case TLV_TYPE_T:
Sylvain Munaut [Sun, 4 Jul 2010 09:41:36 +0000 (11:41 +0200)]
gsm_utils: Fix typo in gsm band name
thanks to horizon for noticing :p
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Harald Welte [Wed, 30 Jun 2010 17:50:14 +0000 (19:50 +0200)]
GPRS: Add 'input' generator functions for GPRS cipher algorithm
Harald Welte [Wed, 30 Jun 2010 17:43:11 +0000 (19:43 +0200)]
Add support for plugins (and specifically GPRS encryption plugins)
Harald Welte [Tue, 29 Jun 2010 20:31:21 +0000 (22:31 +0200)]
[gsmtap] add new gsmtap_makemsg() function
This generates a gsmtap message without actually enqueueing to a
bsc_select style queue.
Harald Welte [Tue, 29 Jun 2010 18:51:13 +0000 (20:51 +0200)]
Add gsmtap utility functions to libosmocore
This is imported from OsmocomBB/Layer23
Sylvain Munaut [Mon, 28 Jun 2010 21:13:12 +0000 (23:13 +0200)]
layer1/l23_api: Use the fn51 given in the l1a_rach_req
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Sylvain Munaut [Mon, 21 Jun 2010 23:51:21 +0000 (01:51 +0200)]
layer1/l2a_api: Update DM EST REQ limitations
Try to be more precise about what's supported and what's not
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Sylvain Munaut [Mon, 21 Jun 2010 23:50:35 +0000 (01:50 +0200)]
layer1/tpu_window: Add experimental support for TS != 0
This is flawed, but allows testing ...
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Sylvain Munaut [Mon, 21 Jun 2010 21:07:15 +0000 (23:07 +0200)]
fw/layer1: Add hopping support in rfch utils.
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Andreas.Eversberg [Mon, 28 Jun 2010 18:32:50 +0000 (18:32 +0000)]
[layer23] Fixed demultiplexing of UI frames. Now SI5* and 6 are parsed.
Andreas.Eversberg [Mon, 28 Jun 2010 15:15:51 +0000 (15:15 +0000)]
[lapdm] Fixed layer 2 header for B4 frames. Now SI5/6 are received correctly
Andreas.Eversberg [Mon, 28 Jun 2010 13:33:14 +0000 (13:33 +0000)]
[layer23] Updated layer23 to current L1 support and forthcomming hopping.
Andreas.Eversberg [Sun, 27 Jun 2010 10:08:44 +0000 (10:08 +0000)]
[layer23] Minor fix for MCC+MNC print format.
Andreas.Eversberg [Sun, 27 Jun 2010 00:04:04 +0000 (00:04 +0000)]
[layer1] TX should be disabled by default.
Andreas.Eversberg [Sat, 26 Jun 2010 22:27:38 +0000 (22:27 +0000)]
[layer23] Added option argument to alter default VTY port number.
Andreas.Eversberg [Sat, 26 Jun 2010 16:38:07 +0000 (16:38 +0000)]
[layer23] Committed missing vty.h of last commit.
Andreas.Eversberg [Sat, 26 Jun 2010 14:00:29 +0000 (14:00 +0000)]
[layer23] Removed cloned VTY and replaced it by libosmovty.
Andreas.Eversberg [Sat, 26 Jun 2010 13:56:01 +0000 (13:56 +0000)]
[layer23] Fixed output format of MCC+MNC in subscriber.c
Andreas.Eversberg [Sat, 26 Jun 2010 11:12:25 +0000 (11:12 +0000)]
[lapdm] Added flow control between L1 and L2, so DM mode does not crash.
In dedicated mode a frame is sent to layer 1. Subsequent frames are queued
inside lapdm.c until a confirm from layer 1 is received. Since not all
pending frames are sent rapidly at once, the layer 1 does not crash anymore.
Also included in this commit: handling of reset confirm (maybe required
in the future after dedicated mode)
Andreas.Eversberg [Sat, 26 Jun 2010 09:35:27 +0000 (09:35 +0000)]
[layer23] Fixed DM est./release for current supported channel types.
Now layer23 supports selecting TS 0-4 with SDCCH/8 channels.
But some tests showed me that it doesn't work. Please help debugging.
Added DM release function to l1ctl.c and gsm48_rr.c.
Harald Welte [Fri, 25 Jun 2010 21:55:09 +0000 (23:55 +0200)]
[layer1] set RF frontend gain during power measurement
also add some debug messages
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>