summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* | fw/apps: Remove manual gain control with keyboardSylvain Munaut2011-07-172-54/+0Star
| | | | | | | | | | | | | | | | | | | | | | | | - It's broken by the use of compute_gain - Since there is now an AGC loop, manually setting the register as no effect. If someone needs manual gain control for testing, he'll have to re-implement a proper AGC override. Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* | [layer23/mobile] Improvement and fixes of idle mode processAndreas Eversberg2011-07-1713-773/+2626
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch introduces cell re-relection. When camping on a cell, it scanns neighbour cells. If a 'better' cell is found, the cell is selected. If the cell is in a different location area, a location upating is performed under certain conditions. The 'better' cell depends on various informations that are broadcasted on the BCCH of a neihbour cell and of course the RX level. Most operators don't set these informations, so the 'better' cell depend on a better RX level for the same location area, or a much better RX level (6 dBm) at a different location area. There were many issues at the idle mode process that has been fixed. Expecially when moving, the state machines got stuck, so no more cell search was possible, or no further calls / location updating was possible. In order to see the process of cell selection, enter the VTY interface and enable the network monitor: enable monitor network 1 (where '1' is the instance of the MS) In order to see the current state of the processes, enter: show ms
* | [mobile] Corrected output value of PCS power classAndreas Eversberg2011-07-171-1/+1
| |
* | [mobile] Adding option to hide most default values in configAndreas Eversberg2011-07-171-46/+105
| | | | | | | | | | | | | | | | | | | | | | | | | | In order to shrink config output, a new config option "[no] hide-default" is added. The config is now easier to read, but does not show all available options, if they are set to default. Newcommers may want to see all available options in config. Therefore all options are show by default. To hide default options, enter: configure terminal hide-default end
* | [mobile] Adding PCS band to list of maximum ARFCNs to scan in one bandAndreas Eversberg2011-07-171-0/+1
| |
* | [mobile] Adding security warning, if default IMEI is not changedAndreas Eversberg2011-07-171-0/+7
| |
* | [layer23] Adding "neighbour cell" logging category: DNBAndreas Eversberg2011-07-173-2/+9
| |
* | [layer23] Detach SIM, if reading failsAndreas Eversberg2011-07-171-0/+8
| | | | | | | | | | This way the mobility management and cell selection process continues as if no SIM has been inserted.
* | [layer1] Adding neighbour cell measurement code to layer1.Andreas Eversberg2011-07-176-9/+186
| | | | | | | | | | | | When listening to BCCH, layer1 may measure the power level of neighbour cells. A list of neighbour cell frequencies need to be sent to layer1. After the measurement is done, the results are indicated to layer23.
* | [layer23] Adding neighbour cell measurement to L1CTL interface.Andreas Eversberg2011-07-173-0/+53
| |
* | [rf] Adding rffe_set_gain() and rffe_get_gain() to get/set computed gainAndreas Eversberg2011-07-1712-56/+104
| | | | | | | | | | | | | | | | | | rffe_compute_gain() is the new name for rffe_set_gain(). I needed to change this, to solve the name collision with the rffe_set_gain() function, which actually sets the absolute gain. rffe_get_gain() will now read the absolute gain which has been computed by rffe_compute_gain() or set by rffe_set_gain().
* | [layer23] Fixed handling of channel 0 in certain loopsAndreas Eversberg2011-07-172-5/+6
| | | | | | | | | | | | | | The ARFC counts from 1 to 1023, and then to 0. The index of these loops count from 1 to 1024. The index 1024 stands for ARFCN 0. This also reverses commit eb77945e162ae1968242009372e448b7af51ea50.
* | tpu_window: Fix int16_t overflow in tpu_window calculationHarald Welte2011-07-161-2/+3
| | | | | | | | | | | | | | | | | | First we add 55500 to an int16_t, then later we subtract it again. The bug only didn't become apparent as we wrap twice, once adding then subtracting. Discovered by Smatch: firmware/layer1/tpu_window.c +127 l1s_rx_win_ctrl(24) warn: value 55000 can't fit into 32767 'stop'
* | calypso/uart.c: Fix array bounds checkingHarald Welte2011-07-161-1/+1
| | | | | | | | | | Found by Smatch: calypso/uart.c +433 uart_baudrate(7) error: buffer overflow 'divider' 7 <= 7
* | calypso/irq: Fix array bounds checkingHarald Welte2011-07-161-1/+1
| | | | | | | | | | Found by Smatch: calypso/irq.c +200 irq_register_handler(5) error: buffer overflow 'irq_handlers' 32 <= 32
* | settings.h: IMSI is 15 bytes +1 \0 maximumHarald Welte2011-07-161-2/+2
| | | | | | | | | | | | | | | | If we use a larger field to store the IMSI, we can create overflows when copying the imsi to other structures that are only 16 bytes in size. Detected by Smatch: src/host/layer23/src/mobile/subscriber.c +195 gsm_subscr_testcard(39) error: strcpy() 'set->test_imsi' too large for 'subscr->imsi' (20 vs 16)
* | sysinfo.h: ARFCN can be 0..1024, so we need an array of 1025 entriesHarald Welte2011-07-161-1/+1
| | | | | | | | | | Detected by Smatch: src/host/layer23/src/mobile/gsm48_rr.c +1658 gsm48_new_sysinfo(23) warn: buffer overflow 's->freq' 1024 <= 1024
* | gsm48_rr: Don't overflow array boundaryHarald Welte2011-07-161-1/+1
| | | | | | | | | | | | Detected by Smatch: src/host/layer23/src/mobile/gsm48_rr.c +3021 gsm48_rr_render_ma(89) warn: buffer overflow 'cd->freq_seq_lv' 10 <= 10 src/host/layer23/src/mobile/gsm48_rr.c +3023 gsm48_rr_render_ma(91) error: buffer overflow 'cd->freq_seq_lv' 10 <= 10
* | osmocon: if we ignore a return value, we don't need to assign it to a variableHarald Welte2011-07-161-3/+1Star
| |
* | osmocon: get rid of some Smash warningsHarald Welte2011-07-161-6/+6
| |
* | misc: Fix crash in cell_log due missing l1_prim_cbHolger Hans Peter Freyther2011-07-161-0/+1
| | | | | | | | | | | | Commit 3538c38835b9120d7cf062fa533f7657768bf0d3 introduced the l1_prim_cb but the init of the misc apps were not updated, make it us the generic callback that should restore the previous behavior
* | lapdm: fix use-after-freeHarald Welte2011-06-271-1/+4
| | | | | | | | We cannot msgb_free() the msgb and then later reference msg->l2h!
* | Merge commit '2a68c7c8cd2eca65c58c0898d0e1716e9d4c3ecd'Sylvain Munaut2011-06-262-0/+43
|\|
| * gsm/utils: Adding conversion of "mobile power class" to dBmAndreas Eversberg2011-06-261-0/+41
| | | | | | | | | | Written-by: Andreas Eversberg <jolly@eversberg.eu> Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* | fw/l1a: Add a message to safely count the length of a txqueueAndreas Eversberg2011-06-252-0/+18
| | | | | | | | | | | | | | (that is by locking) Written-by: Andreas Eversberg <jolly@eversberg.eu> Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* | fw/sercomm: Additional locking needed in drv_pullSylvain Munaut2011-06-251-3/+11
| | | | | | | | | | | | | | Credits to Andreas Eversberg for finding this bug after countless hours of debug and providing initial patch :) Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* | fw/sercomm: Fix up the locking using an 'abstraction' layerSylvain Munaut2011-06-251-17/+29
| | | | | | | | | | | | | | Not _that_ abstract but a long is enough to store a ptr if need be :p Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* | fw/comm/msgb: Protect allocation routine with proper lockingSylvain Munaut2011-06-251-0/+6
| | | | | | | | | | | | | | | | Credits to Andreas Eversberg for finding this bug after countless hours of debug :) Written-by: Andreas Eversberg <jolly@eversberg.eu> Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* | fw/comm/msgb: Really panic (i.e. lockup) if we run out of msgbSylvain Munaut2011-06-251-11/+12
| | | | | | | | | | | | | | | | | | | | Ideally we should only panic in interrupt context. In user context, we could wait ... We could also return NULL and let the calling code deal with it but it's not ready for that yet. Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* | fw/comm: Remove useless include from msgb.cSylvain Munaut2011-06-251-2/+0Star
| | | | | | | | | | | | Left over from the backlight debug code Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* | Merge commit '620f7ab35034f78f894319e027a151568c331eea'Sylvain Munaut2011-06-2513-17/+186
|\|
| * sysinfo: add EXTENDED MEASUREMENT ORDER / MEASUREMENT INFO to SI typesHarald Welte2011-06-251-0/+6
| | | | | | | | | | those two are used in the RSL SACCH FILLING messages and delivered like SI5 / SI6.
| * add value_string definitions for RSL message typesHarald Welte2011-06-231-0/+76
| |
| * socket: add OSMO_SOCK_F_[CONNECT|BIND|NON_BLOCK] flagsPablo Neira Ayuso2011-06-132-12/+32
| | | | | | | | | | | | | | | | This extends the socket infrastructure in libosmocore to allow to create non-blocking sockets. Basically, it replaces the connect0_bind1 parameter by one flags parameter.
| * socket: getaddrinfo(): set AI_PASSIVE if we want to bindHarald Welte2011-05-311-0/+3
| | | | | | | | This will tell getaddrinfo() that we want a INADDR_ANY style socket
* | lapdm: properly set the msg->l3h to the contents of the RSL L3_INFO IEHarald Welte2011-06-251-0/+3
| |
* | lapdm: introduce a new lapdm_phsap_dequeue_prim()Harald Welte2011-06-242-31/+56
| | | | | | | | | | | | This function can be called by a TDMA-driven L1 which will never actually want to receive unsolicited/asynchronous PH-DATA.req primitives, but who will simply directly poll the LAPDm transmit queue by calling the abovementioned function
* | lapdm: Don't try to send data using a PH-RACH.req, use PH-DATA.reqHarald Welte2011-06-241-5/+5
| |
* | lapdm: some more error reporting in case strange primitives arrive from L1Harald Welte2011-06-241-6/+12
| |
* | L1CTL is sending PH-DATA.ind, not PH-DATA.req up to LAPDmHarald Welte2011-06-241-1/+1
| |
* | introduce LAPDM entity flags for PH-EMPTY_FRAME.req and polllingHarald Welte2011-06-242-20/+48
| | | | | | | | | | polling means that we never try to proactively generate a PH-DATA.req unless there was a PH-RTS.ind first.
* | lapdm: Introduce LAPDM_MODE_{BTS,MS} to run on both sidesHarald Welte2011-06-244-37/+137
| | | | | | | | | | | | | | | | We also introduce some related functions like lapdm_{entity,channel}_set_mode() lapdm_{entity,channel}_reset() This is all in preparation for the Osmo-BTS Work.
* | lapdm: implement RSL CHAN RQD generation from PH-RA.indHarald Welte2011-06-242-2/+30
| |
* | lapdm: use msgb_tlv_put instead of manual equivalentHarald Welte2011-06-241-6/+2Star
| |
* | fix some spillage from recent conversionHarald Welte2011-06-242-2/+3
| |
* | lapdm: remove dependency to osmocom_data.hHarald Welte2011-06-241-1/+1
| |
* | lapdm: remove get_rsl_name() and use libosmogsm:gsm_rsl_name() insteadHarald Welte2011-06-233-32/+4Star
| |
* | further decouple lapdm code from osmocom_ms and l1ctlHarald Welte2011-06-2311-54/+239
| | | | | | | | | | we introduce a new primitive layer betwen PH and DL, enabling the use of the LAPDm code in applications that are not based on L1CTL
* | add l1ctl_proto.h #includes to lots of filesHarald Welte2011-06-227-0/+14
| | | | | | | | this is apparently a result of no longer including it indirectly via lapdm.h
* | remove l1ctl data structure form l2_ph_chan_conf()Harald Welte2011-06-223-8/+6Star
| | | | | | | | This brings us one step closer to de-couple LAPDm from L1CTL