sysmobts: Add a magic number to the hLayer2 to differentiate it
The DSP/FPGA appears to report bogus PhDataInd with hlayer2 == 0. Currently this would match the TRX==0,TS==0 and SS=0 and then we report bad measurement reports. Add a magic number to the lower eight bit of the hLayer2 to differentiate valid numbers. Addresses: <0004> measurement.c:97 (bts=0,trx=0,ts=0,ss=0) measurement during state: NONE <0004> measurement.c:102 (bts=0,trx=0,ts=0,ss=0) no space for uplink measurement
This commit is contained in:
parent
3e317ea4f0
commit
fb067905d5
|
@ -704,17 +704,24 @@ err:
|
||||||
|
|
||||||
uint32_t l1if_lchan_to_hLayer(struct gsm_lchan *lchan)
|
uint32_t l1if_lchan_to_hLayer(struct gsm_lchan *lchan)
|
||||||
{
|
{
|
||||||
return (lchan->nr << 8) | (lchan->ts->nr << 16) | (lchan->ts->trx->nr << 24);
|
return 0xBB
|
||||||
|
| (lchan->nr << 8)
|
||||||
|
| (lchan->ts->nr << 16)
|
||||||
|
| (lchan->ts->trx->nr << 24);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* obtain a ptr to the lapdm_channel for a given hLayer */
|
/* obtain a ptr to the lapdm_channel for a given hLayer */
|
||||||
struct gsm_lchan *
|
struct gsm_lchan *
|
||||||
l1if_hLayer_to_lchan(struct gsm_bts_trx *trx, uint32_t hLayer2)
|
l1if_hLayer_to_lchan(struct gsm_bts_trx *trx, uint32_t hLayer2)
|
||||||
{
|
{
|
||||||
|
uint8_t magic = hLayer2 & 0xff;
|
||||||
uint8_t ts_nr = (hLayer2 >> 16) & 0xff;
|
uint8_t ts_nr = (hLayer2 >> 16) & 0xff;
|
||||||
uint8_t lchan_nr = (hLayer2 >> 8)& 0xff;
|
uint8_t lchan_nr = (hLayer2 >> 8)& 0xff;
|
||||||
struct gsm_bts_trx_ts *ts;
|
struct gsm_bts_trx_ts *ts;
|
||||||
|
|
||||||
|
if (magic != 0xBB)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
/* FIXME: if we actually run on the BTS, the 32bit field is large
|
/* FIXME: if we actually run on the BTS, the 32bit field is large
|
||||||
* enough to simply put a pointer inside. */
|
* enough to simply put a pointer inside. */
|
||||||
if (ts_nr >= ARRAY_SIZE(trx->ts))
|
if (ts_nr >= ARRAY_SIZE(trx->ts))
|
||||||
|
|
Loading…
Reference in New Issue