Project

General

Profile

Bug #3063

OsmoBSC + nanoBTS 165AU (DCS1800): smartphone Samsung 4mini 5 unable to register (it can on osmo-nitb)

Added by pespin 9 months ago. Updated 22 days ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
-
Target version:
-
Start date:
03/13/2018
Due date:
% Done:

100%

Spec Reference:

Description

I have been having issues to successfully register my Samsung 4mini 5 with a nanoBTS 165AU (DCS1800) connected to a osmocom (split components) network running latest master as of today.

nanoBTS is correctly connected and I see it being configured and it can be seen by all mobiles phones. IMPORTANT: If I try with an old samsung feature phone, it can register correctly. I see the CHANnel ReQuireD packet received from the nanoBTS and all the channel allocation works successfully. However, if I do the same with any of my 2 Samsung 4mini 5, no CHANnel ReQuireD packet is received and the phone keeps in a while with the "Registering to network XYZ" before giving up, and not being able to register. So basically my BSC sees no related event.

However, we just tested with roh's old osmo-nitb setup, and in there both mobile phones (the old feature phone and the smart phone) can connect successfully, so there's seems to be some kind of regression from osmo-nitb->osmo-bsc here.

I changed my config to be very similar to roh's osmo-nitb one, but still same result. I attach both configs here for comparison.

I also attach a pcap trace showing the BTS<->BSC link in operation (after initial OML setup, sorry) while I try to register both the feature phone and the smart phone. Only the Location Update from the feature phone can be seen (and it's rejected because I don't have the IMSI in my HLR, but that's not important here, because at least the LU is received).

osmo-bsc-nanobts.cfg osmo-bsc-nanobts.cfg 3.44 KB pespin, 03/13/2018 06:38 PM
osmo-nitb.cfg osmo-nitb.cfg 1.39 KB pespin, 03/13/2018 06:39 PM
only-feature-phone-registers.pcapng only-feature-phone-registers.pcapng 107 KB pespin, 03/13/2018 06:47 PM
osmo-bsc-oml-setup.pcapng osmo-bsc-oml-setup.pcapng 30.7 KB pespin, 03/13/2018 06:52 PM
nanobts_bsc-oml-setup_nitb_roh.pcap nanobts_bsc-oml-setup_nitb_roh.pcap 42.2 KB roh, 03/14/2018 03:58 PM
ccch_scan_with_neigbhor_list.pcapng ccch_scan_with_neigbhor_list.pcapng 108 KB pespin, 11/05/2018 07:55 PM

Related issues

Related to OsmoBSC - Bug #3707: nanoBTS fails to startFeedback2018-11-26

History

#2 Updated by pespin 9 months ago

I attach the osmo-bsc OML seutp of nanoBTS with the previously provided config.

#3 Updated by laforge 9 months ago

  • Assignee set to pespin
I would suggest comparing the detailed contents of the following messages:
  • "SET [BTS/TRX] ATTRIBUTES" in OML
  • BCCH FILL in RSL

I suspect there's some difference that makes the phones refuse to consider the cell as eligible. This can be an encoding mistake of SI rest octets, for example.

Also check if all access control classes (part of SI) are enabled, as that's something we've touched recently.

#4 Updated by pespin 9 months ago

  • Assignee changed from pespin to roh

ASsigned to roh, I gave him back the nanoBTS to take a pcap trace while configuring it with his NITB setup. Once he has provided it, let's have a look at the differences.

#5 Updated by roh 9 months ago

i did a tcpdump with the said bts against my very old nitb and attached it here.

#6 Updated by pespin 9 months ago

  • Assignee changed from roh to pespin

#7 Updated by pespin 9 months ago

Differences found:

SET BTS ATTributes:
field nitb bsc
RACH Busy Threshold 0a 5a
BTS Air Timer 80 64
IP CGI 00:f1:10:00:01:00:00 32:f4:07:00:05:00:00

After that one, I see osmo-nitb sends a "OML Radio Carrier(00,00,ff) Set Radio Carrier Attributes" before setting up every channel. On the other hand, osmo-bsc sends that message AFTER setting all the 0-7 channels. The message looks the same in both traces (same content), but the order in which it is sent differs.

All (0-7) "Set Channel Attributes" from both traces are the same, no difference here.

BCCH INFOrmation (System Information Type 1) looks the same for both nitb and bsc.

"SACCH FILLing" messages can be found in nitb frame 184 and bsc frame 193:
- SI Type 2 is the same in both.
- The osmo-bsc messages contains more information Between SI Type 2 and SI Type3 that the nitb doesn't have:
-- IPA header + RSL with IE SI 2bis
-- IPA header + RSL with IE SI 2ter + Layer3 SI Type 2ter.
-- IPA header + RSL with IE SI 2quater
- SI Type 3 differences:
-- In Control Channel Description, osmo-bsc has MSCR=1 (MSC is Release'99 onwards) while nitb has MSCR=0 (MSC is RElease'98 or older).
-- Cell Selection Parameters: osmo-bsc has NECI=0, osmo-nitb NECI=1
-- SI 3 Rest OCtets: difference is osmo-bsc correclty marks SI Type 2ter as available, and osmo-nitb correctly marks it's not available.
- SI Type 4 differences: NECI=1 vs NECI=0
- SI Type 5 is the same in both.
- osmo-bsc sends SI 5bis, and osmo-nitb does not.
- osmo-bsc sends SI 5ter, and osmo-nitb does not.
- SI Type 6: Content of L3 message is different (not parsed by wireshark, only shown as hex).

#8 Updated by laforge 9 months ago

On Thu, Mar 15, 2018 at 11:57:45AM +0000, pespin [REDMINE] wrote:

Issue #3063 has been updated by pespin.

Differences found:

RACH Busy Threshold 0a 5a

this should only affect at how reports in CCCH Load Indication are structured

BTS Air Timer 80 64
IP CGI 00:f1:10:00:01:00:00 32:f4:07:00:05:00:00

Are you sure you're running the same MCC/MNC/LAC/RAC/CI on both setups? If not, then
of course the CGI will be different between the cells, as it includes all the above values.

If they are identical in both setups, then there appears to be an encoding bug.

After that one, I see osmo-nitb sends a "OML Radio Carrier(00,00,ff) Set Radio Carrier Attributes" before setting up every channel. On the other hand, osmo-bsc sends that message AFTER setting all the 0-7 channels. The message looks the same in both traces (same content), but the order in which it is sent differs.

It shouldn't make a difference, just as long as the attributes are set before bringing the channel into
operation. (opstart?)

"SACCH FILLing" messages can be found in nitb frame 184 and bsc frame 193:
- SI Type 2 is the same in both.

SI2 is BCCH. U presume you're refering to BCCH here...

- The osmo-bsc messages contains more information Between SI Type 2 and SI Type3 that the nitb doesn't have:
-- IPA header + RSL with IE SI 2bis
-- IPA header + RSL with IE SI 2ter + Layer3 SI Type 2ter.
-- IPA header + RSL with IE SI 2quater

those should all be empty. a zero-length SACCH/BCCH filling asks the BTS to disable transmitting the given
type. On a newly-started BTS it should be a no-op. You can trace on the radio interface (e.g. osmocomBB)
what is actually being broadcast, if you have doubts here

- SI Type 3 differences:
-- In Control Channel Description, osmo-bsc has MSCR=1 (MSC is Release'99 onwards) while nitb has MSCR=0 (MSC is RElease'98 or older).

this is true (OsmoMSC can e.g. do UMTS AKA, OsmoNITB cannot). But it may of course behave MS behaviour.

-- Cell Selection Parameters: osmo-bsc has NECI=0, osmo-nitb NECI=1

Every setup should run with NECI=1. NECI=0 is an ancient legacy setting. I suppose the osmo-bsc.cfg
is not set corectly then.

-- SI 3 Rest OCtets: difference is osmo-bsc correclty marks SI Type 2ter as available, and osmo-nitb correctly marks it's not available.

That's odd. Why is SI 2ter available? If you have no 3G neighbors configured, then osmo-bsc should
generate none and the BCCH INFO for 2ter should be an empty message.

- SI Type 4 differences: NECI=1 vs NECI=0

see above.

- SI Type 5 is the same in both.
- osmo-bsc sends SI 5bis, and osmo-nitb does not.
- osmo-bsc sends SI 5ter, and osmo-nitb does not.

Are you sure it's not again empty messages to disable any 5bis/5ter which the BTS has cached?

- SI Type 6: Content of L3 message is different (not parsed by wireshark, only shown as hex).

this is probably due to the l2_plen bug. Is the content shifted by one byte? The fix has been merged
very recently, to both osmo-nitb/openbsc.git ad well as osmo-bsc.git

#9 Updated by pespin 9 months ago

IP CGI 00:f1:10:00:01:00:00 32:f4:07:00:05:00:00

Are you sure you're running the same MCC/MNC/LAC/RAC/CI on both setups? If not, then
of course the CGI will be different between the cells, as it includes all the above values.

If they are identical in both setups, then there appears to be an encoding bug.

I am running different MCC/MNC/LAC, but I omited it in the report since I presumed it was not the issue. I didn't know this CGI field was related to those values, but then it makes it's different.

SI2 is BCCH. U presume you're refering to BCCH here...

Yes it's in BCCH but still the frame in wireshark is labeled as "SACCH FILLing". I couldn't find a "BCCH FILL" in any of the 2 traces as you suggested first.

- The osmo-bsc messages contains more information Between SI Type 2 and SI Type3 that the nitb doesn't have:
-- IPA header + RSL with IE SI 2bis
-- IPA header + RSL with IE SI 2ter + Layer3 SI Type 2ter.
-- IPA header + RSL with IE SI 2quater

those should all be empty. a zero-length SACCH/BCCH filling asks the BTS to disable transmitting the given
type. On a newly-started BTS it should be a no-op. You can trace on the radio interface (e.g. osmocomBB)
what is actually being broadcast, if you have doubts here

The 2ter one is not empty. It's actually sending a list of ARFCNS 100 and 200, which probably comes from the config I'm using and I think I should remove them:
neighbor-list mode manual-si5
neighbor-list add arfcn 100
neighbor-list add arfcn 200
si5 neighbor-list add arfcn 10
si5 neighbor-list add arfcn 20

- SI Type 3 differences:
-- In Control Channel Description, osmo-bsc has MSCR=1 (MSC is Release'99 onwards) while nitb has MSCR=0 (MSC is RElease'98 or older).

this is true (OsmoMSC can e.g. do UMTS AKA, OsmoNITB cannot). But it may of course behave MS behaviour.

Ok, I'll keep it as a pointer for future tests.

-- Cell Selection Parameters: osmo-bsc has NECI=0, osmo-nitb NECI=1

Every setup should run with NECI=1. NECI=0 is an ancient legacy setting. I suppose the osmo-bsc.cfg
is not set corectly then.

Hm yes after reading info about NECI it makes sense to set it to 1. I'll try if this makes a difference with the failing MS.

-- SI 3 Rest OCtets: difference is osmo-bsc correclty marks SI Type 2ter as available, and osmo-nitb correctly marks it's not available.

That's odd. Why is SI 2ter available? If you have no 3G neighbors configured, then osmo-bsc should
generate none and the BCCH INFO for 2ter should be an empty message.

It's probably related to the osmo-bsc config lines which have been probably there since I started using osmo-bsc. I'll remove them as they should not be there.

- SI Type 5 is the same in both.
- osmo-bsc sends SI 5bis, and osmo-nitb does not.
- osmo-bsc sends SI 5ter, and osmo-nitb does not.

Are you sure it's not again empty messages to disable any 5bis/5ter which the BTS has cached?

5bis is empty, but 5ter contains an L3 information of 19 bytes: 49 06 06 9e 05 00 20 00 00 00 00 00 00 00 00 00 00 00 00

- SI Type 6: Content of L3 message is different (not parsed by wireshark, only shown as hex).

this is probably due to the l2_plen bug. Is the content shifted by one byte? The fix has been merged
very recently, to both osmo-nitb/openbsc.git ad well as osmo-bsc.git

osmo-bsc: Len = 13 (0x000d) -> Message: 2d 06 1e 00 00 32 f4 07 00 05 27 ff 2b
osmo-nitb: Len = 12 (0x000c) -> Message: 2d 06 1e 00 00 00 f1 10 00 01 27 ff

So yes, it looks related to the bug you mention. However, as you said if the fix was applied I'd expect the len (2b?) to be in first place and then all other values after it and not this way. I'm actually not sure if I took the traces with osmo-bsc having the fix on it. I'll retry later and check this part better.

#10 Updated by fixeria 9 months ago

Hi Harald,

Every setup should run with NECI=1.
NECI=0 is an ancient legacy setting.
I suppose the osmo-bsc.cfg is not set corectly then.

Please see: https://gerrit.osmocom.org/7304
I am not sure about OsmoNiTB, where NECI=1 is used almost
everywhere, excluding both rbs2308 and sysmobts config examples.

#11 Updated by pespin 9 months ago

pespin wrote:

The 2ter one is not empty. It's actually sending a list of ARFCNS 100 and 200, which probably comes from the config I'm using and I think I should remove them:
neighbor-list mode manual-si5
neighbor-list add arfcn 100
neighbor-list add arfcn 200
si5 neighbor-list add arfcn 10
si5 neighbor-list add arfcn 20

This seems to be the actual issue. If I remove those lines, the MS can register without problems. If I put them back, then the MS cannot register anymore.
The config is indeed wrong as those neighbors doesn't actually exist, but I fail to see how can that extra SI 2ter information can prevent the MS from registering.

I tested with NECI=1/0 variations and it doesn't affect. It can register with both values when the neighbor related lines are removed.

#12 Updated by laforge 9 months ago

On Fri, Mar 16, 2018 at 05:11:11PM +0000, pespin [REDMINE] wrote:

neighbor-list add arfcn 100
neighbor-list add arfcn 200

This seems to be the actual issue. If I remove those lines, the MS can register without problems. If I put them back, then the MS cannot register anymore.
The config is indeed wrong as those neighbors doesn't actually exist, but I fail to see how can that extra SI 2ter information can prevent the MS from registering.

I think its most likely that the phone somehow "objects" to the encoding of the si2ter.

It certainly makes sense to look at the radio interface and not just at RSL. Maybe the nanoBTS
does something wrong [or different] when broadcatsing SI2ter.

"ccch_scan -a $ARFCN -i 127.0.0.1" is all you need with an osmocom-bb phone to get a dump of the BCCH/CCCH
messages on the ARFCN your cell is broadcasting them.

Also, make sure you look at the decoded output on a TEMS phone/tablet.

I'm sure something is wrong and the phone simply ignores the cell for that reason.

#13 Updated by laforge 2 months ago

ping? 7 months?

#14 Updated by pespin about 1 month ago

I can still reproduce this issue in my current setup. If I add following configs to my osmo-bsc.cfg:

neighbor-list mode manual-si5
neighbor-list add arfcn 100
neighbor-list add arfcn 200
si5 neighbor-list add arfcn 10
si5 neighbor-list add arfcn 20

Then an ZTE phone can still register, but another Alctatel one cannot.

I'll try to get some traces using osmocombb

#15 Updated by pespin about 1 month ago

Attached GSMTAP pcap file obtained with ccch_scan while the Alcatel tries to register to the network and fails with "Failed to register to Network, Please try to connect later" kind of message.

#16 Updated by pespin 28 days ago

I see no "System information type 5" in the pcap trace, which seems to be the related to the config bits that produce the issue. However, reading specs it seems it is sent over downlink SACCH, so afaiu only sent when the MS has a dedicated channel with the network, and so it makes sense I see none because the MS never tries to register with the cell...

#17 Updated by pespin 28 days ago

I removed problematic lines from default example files in osmo-bsc, since anyway they are incorrect/invalid for the network setup.
https://gerrit.osmocom.org/#/c/osmo-bsc/+/11774 examples: Remove neighbor-list invalid for default setup

#18 Updated by pespin 27 days ago

Ok, I think I found the issue.

Minimal set of cfg lines to make some MS not register:

  neighbor-list mode manual-si5
  neighbor-list add arfcn 100

Second line "neighbor-list add arfcn 100" cannot be set and not used if first line is not used. If only first line "neighbor-list mode manual-si5" is used, then MS can configure correctly.

If I use this set (I'm using ARFCN 872 for my BTS in 1800 band), then it works:

  neighbor-list mode manual-si5
  neighbor-list add arfcn 870

So it turns out arfcn 100 is not a valid arfcn in DCS1800, and probably that's why some MS don't register to a network advertising those values (http://niviuk.free.fr/gsm_arfcn.php).

We should check whether the configured value is a valid arfcn for given band.

#19 Updated by pespin 27 days ago

I tried with:
  • "neighbor-list add arfcn 140" (band GSM850) -> FAIL
  • "neighbor-list add arfcn516 (band DCS1800) -> SUCCESS

#20 Updated by pespin 27 days ago

  • Status changed from New to In Progress
Tested with more ARFCNs in neighbor-list:
  • 4 (GSM900) -> FAIL
  • 104 (GSM850) -> FAIL
  • 500 (invalid) -> FAIL
  • 511 (invalid) -> FAIL
  • 512 (first DCS1800) -> SUCCESS
  • 516 (DCS1800) -> SUCCESS
  • 885 (last in DCS1800) -> SUCCESS
  • 886 (invalid) -> SUCCESS
  • 890 (invalid) -> SUCCESS
  • 900 (invalid) -> SUCCESS
  • 950 (invalid) -> SUCCESS
  • 952 (invalid) -> SUCCESS
  • 953 (invalid) -> SUCCESS
  • 954 (invalid) -> SUCCESS
  • 955 (invalid) -> FAIL
  • 960 (invalid) -> FAIL
  • 970 (invalid) -> FAIL
  • 990 (invalid) -> FAIL

Interestingly, we see different logging line when MS can connect and when it cannot:

FAIL --> osmo-bsc/src/osmo-bsc/system_information.c:691 Neighbour cells in different band: XYZ
SUCCESS --> osmo-bsc/srcosmo-bsc/system_information.c:691 SI2 Neighbour cells in same band: XYZ

For instance, 511 (invalid) vs 512 (first valid in DCS1800):

511 (invalid):
20181115180254754 DRSL <0003> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/osmo_bsc_main.c:283 bootstrapping RSL for BTS/TRX (0/0) on ARFCN 872 using MCC-MNC 234-70 LAC=5 CID=0 BSIC=63
20181115180254755 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/system_information.c:691 Serving cell: 872
20181115180254755 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/system_information.c:691 Neighbour cells in different band: 511
20181115180254756 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/system_information.c:916 SI 2ter is included.
20181115180254756 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI1: 55 06 19 8f b4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e5 04 00 2b
20181115180254756 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI2: 59 06 1a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff e5 04 00
20181115180254756 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:83 SI2bis: OFF
20181115180254756 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI2ter: 59 06 03 8e ff 80 00 00 00 00 00 00 00 00 00 00 00 00 00 2b 2b 2b 2b
20181115180254756 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:83 SI2quater: OFF
20181115180254756 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI3: 49 06 1b 00 00 32 f4 07 00 05 c9 03 05 27 47 40 e5 04 00 1c 2b 2b 2b
20181115180254756 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI4: 31 06 1c 32 f4 07 00 05 47 40 e5 04 00 01 2b 2b 2b 2b 2b 2b 2b 2b 2b
20181115180254756 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI13: 01 06 00 90 00 19 5a 6f c9 f2 35 01 08 21 2b 2b 2b 2b 2b 2b 2b 2b 2b
20181115180254757 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI5: 49 06 1d 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2b 2b 2b 2b
20181115180254757 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:83 SI5bis: OFF
20181115180254757 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:83 SI5ter: OFF
20181115180254757 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI6: 2d 06 1e 00 00 32 f4 07 00 05 27 ff 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b

vs

512 (valid):
20181115180101129 DRSL <0003> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/osmo_bsc_main.c:283 bootstrapping RSL for BTS/TRX (0/0) on ARFCN 872 using MCC-MNC 234-70 LAC=5 CID=0 BSIC=63
20181115180101129 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/system_information.c:691 Serving cell: 872
20181115180101130 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/system_information.c:691 SI2 Neighbour cells in same band: 512
20181115180101131 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI1: 55 06 19 8f b4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e5 04 00 2b
20181115180101131 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI2: 59 06 1a 8f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff e5 04 00
20181115180101131 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:83 SI2bis: OFF
20181115180101131 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:83 SI2ter: OFF
20181115180101131 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:83 SI2quater: OFF
20181115180101131 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI3: 49 06 1b 00 00 32 f4 07 00 05 c9 03 05 27 47 40 e5 04 00 3c 2b 2b 2b
20181115180101131 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI4: 31 06 1c 32 f4 07 00 05 47 40 e5 04 00 01 2b 2b 2b 2b 2b 2b 2b 2b 2b
20181115180101131 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI13: 01 06 00 90 00 19 5a 6f c9 f2 35 01 08 21 2b 2b 2b 2b 2b 2b 2b 2b 2b
20181115180101131 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI5: 49 06 1d 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2b 2b 2b 2b
20181115180101131 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:83 SI5bis: OFF
20181115180101131 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:83 SI5ter: OFF
20181115180101131 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI6: 2d 06 1e 00 00 32 f4 07 00 05 27 ff 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b

Interestingly, according to http://niviuk.free.fr/gsm_arfcn.php ARFCNs in DCS1800 end in 885, but according to our code w find the boundary in 954->955:

954:
20181115175203205 DRSL <0003> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/osmo_bsc_main.c:283 bootstrapping RSL for BTS/TRX (0/0) on ARFCN 872 using MCC-MNC 234-70 LAC=5 CID=0 BSIC=63
20181115175203205 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/system_information.c:691 Serving cell: 872
20181115175203205 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/system_information.c:691 SI2 Neighbour cells in same band: 954
20181115175203205 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI1: 55 06 19 8f b4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e5 04 00 2b
20181115175203205 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI2: 59 06 1a 8f dd 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff e5 04 00
20181115175203205 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:83 SI2bis: OFF
20181115175203205 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:83 SI2ter: OFF
20181115175203205 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:83 SI2quater: OFF
20181115175203205 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI3: 49 06 1b 00 00 32 f4 07 00 05 c9 03 05 27 47 40 e5 04 00 3c 2b 2b 2b
20181115175203206 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI4: 31 06 1c 32 f4 07 00 05 47 40 e5 04 00 01 2b 2b 2b 2b 2b 2b 2b 2b 2b
20181115175203206 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI13: 01 06 00 90 00 19 5a 6f c9 f2 35 01 08 21 2b 2b 2b 2b 2b 2b 2b 2b 2b
20181115175203206 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI5: 49 06 1d 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2b 2b 2b 2b
20181115175203206 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:83 SI5bis: OFF
20181115175203206 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:83 SI5ter: OFF
20181115175203206 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI6: 2d 06 1e 00 00 32 f4 07 00 05 27 ff 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b

vs

955:
20181115175405688 DRSL <0003> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/osmo_bsc_main.c:283 bootstrapping RSL for BTS/TRX (0/0) on ARFCN 872 using MCC-MNC 234-70 LAC=5 CID=0 BSIC=63
20181115175405689 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/system_information.c:691 Serving cell: 872
20181115175405689 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/system_information.c:691 Neighbour cells in different band: 955
20181115175405689 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/system_information.c:916 SI 2ter is included.
20181115175405690 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI1: 55 06 19 8f b4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e5 04 00 2b
20181115175405690 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI2: 59 06 1a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff e5 04 00
20181115175405690 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:83 SI2bis: OFF
20181115175405690 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI2ter: 59 06 03 8f dd 80 00 00 00 00 00 00 00 00 00 00 00 00 00 2b 2b 2b 2b
20181115175405690 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:83 SI2quater: OFF
20181115175405690 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI3: 49 06 1b 00 00 32 f4 07 00 05 c9 03 05 27 47 40 e5 04 00 1c 2b 2b 2b
20181115175405690 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI4: 31 06 1c 32 f4 07 00 05 47 40 e5 04 00 01 2b 2b 2b 2b 2b 2b 2b 2b 2b
20181115175405690 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI13: 01 06 00 90 00 19 5a 6f c9 f2 35 01 08 21 2b 2b 2b 2b 2b 2b 2b 2b 2b
20181115175405690 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI5: 49 06 1d 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2b 2b 2b 2b
20181115175405690 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:83 SI5bis: OFF
20181115175405690 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:83 SI5ter: OFF
20181115175405690 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI6: 2d 06 1e 00 00 32 f4 07 00 05 27 ff 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b

So there's 2 things to check here:
  • See whether our code is correct and up to 954 correspon to DCS1800, or check wheter the web page I used is correct and DCS ends up at 885.
  • See the difference in code were Neighbour cells are in same band and in different band, and see if announcing arfcn from different bands is actually allowed.

#21 Updated by pespin 27 days ago

  • After quick look to Wikipedia it seems to agree with DCS finishing in 885, so it seems we have an issue in our code.
  • I started looking at related code, but it's not well documented and seems complex
  • Neighbor lists are also related to SI2, which is broadcasted in BCCH.

#22 Updated by pespin 26 days ago

I submitted this patch to notify users they are passing wrong values to the gsm_arfcn2band API:
https://gerrit.osmocom.org/#/c/libosmocore/+/11789 gsm: Deprecate buggy gsm_arfcn2band API and introduce gsm_arfcn2band_rc

In previous implementations, invalid ARFCNs (not belonging to any band) were handled as being DCS1800. That's why it would succeed up to 954 instead of 855.
Next steps:
  • Use gsm_arfcn2band_rc in osmo-bsc VTY to check for invalid arfcns in config
  • It's now clear MS fails to register when arfcns from bands different than the one operating (or different than DCS1800) is announced, let's find why.

#23 Updated by pespin 26 days ago

Submitted:
https://gerrit.osmocom.org/#/c/osmo-bsc/+/11790 bsc: band_compatible: Return band non-compatible for invalid arfcn
https://gerrit.osmocom.org/#/c/osmo-bsc/+/11791 bsc: vty: Verify and warn on invalid arfcn passed

This way we don't send invalid arfcn 855-954 as being from same band when operating in DCS1800, and next commit warns about wrong arfcns being passed during VTY parsing.

TODO:
  • Submit same check for arfcn in VTY in osmo-bts (let's do this once libosmocore patch is merged).
  • It's now clear MS fails to register when arfcns from bands different than the one operating (or different than DCS1800) is announced, let's find why.

#24 Updated by pespin 23 days ago

This patch/topic seems related to this issue: https://lists.osmocom.org/pipermail/openbsc/2014-January/006774.html

#25 Updated by pespin 23 days ago

After looking at how code behaves, it seems we use SI2, SI2bis and SI2ter to announce different arfcns:
  • SI2: arfcns in same band
  • SI2bis: arfcns in same band, but outside P-GSM range
  • SI2ter: arfcns in different band.

Strangely enough, in current setup (ARFCN 872, DCS1800), neeighbor list 880 is added to SI2 and not to SI2bis, not sure why and if that's expected/correct.
neighbor 114 (GSM900) is added to SI2ter correctly.

More tests:

890 (invalid):
20181119130307214 DRSL <0003> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/osmo_bsc_main.c:283 bootstrapping RSL for BTS/TRX (0/0) on ARFCN 872 using MCC-MNC 234-70 LAC=5 CID=0 BSIC=63
20181119130307215 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/system_information.c:696 Serving cell: 872
20181119130307216 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI1: 55 06 19 8f b4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e5 04 00 2b
20181119130307216 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI2: 59 06 1a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff e5 04 00
20181119130307217 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:83 SI2bis: OFF
20181119130307217 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:83 SI2ter: OFF
20181119130307217 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:83 SI2quater: OFF
20181119130307217 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI3: 49 06 1b 00 00 32 f4 07 00 05 c9 03 05 27 47 40 e5 04 00 3c 2b 2b 2b
20181119130307217 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI4: 31 06 1c 32 f4 07 00 05 47 40 e5 04 00 01 2b 2b 2b 2b 2b 2b 2b 2b 2b
20181119130307217 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI13: 01 06 00 90 00 19 5a 6f c9 f2 35 01 08 21 2b 2b 2b 2b 2b 2b 2b 2b 2b
20181119130307217 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI5: 49 06 1d 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2b 2b 2b 2b
20181119130307217 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:83 SI5bis: OFF
20181119130307217 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:83 SI5ter: OFF
20181119130307217 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI6: 2d 06 1e 00 00 32 f4 07 00 05 27 ff 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b

880 (success):
20181119131037634 DRSL <0003> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/osmo_bsc_main.c:283 bootstrapping RSL for BTS/TRX (0/0) on ARFCN 872 using MCC-MNC 234-70 LAC=5 CID=0 BSIC=63
20181119131037635 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/system_information.c:696 Serving cell: 872
20181119131037636 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/system_information.c:696 SI2 Neighbour cells in same band: 880
20181119131037637 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI1: 55 06 19 8f b4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e5 04 00 2b
20181119131037637 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI2: 59 06 1a 8f b8 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff e5 04 00
20181119131037637 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:83 SI2bis: OFF
20181119131037637 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:83 SI2ter: OFF
20181119131037637 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:83 SI2quater: OFF
20181119131037637 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI3: 49 06 1b 00 00 32 f4 07 00 05 c9 03 05 27 47 40 e5 04 00 3c 2b 2b 2b
20181119131037637 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI4: 31 06 1c 32 f4 07 00 05 47 40 e5 04 00 01 2b 2b 2b 2b 2b 2b 2b 2b 2b
20181119131037637 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI13: 01 06 00 90 00 19 5a 6f c9 f2 35 01 08 21 2b 2b 2b 2b 2b 2b 2b 2b 2b
20181119131037637 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI5: 49 06 1d 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2b 2b 2b 2b
20181119131037637 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:83 SI5bis: OFF
20181119131037637 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:83 SI5ter: OFF
20181119131037638 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI6: 2d 06 1e 00 00 32 f4 07 00 05 27 ff 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b

880+114 (fail):
20181119131244166 DRSL <0003> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/osmo_bsc_main.c:283 bootstrapping RSL for BTS/TRX (0/0) on ARFCN 872 using MCC-MNC 234-70 LAC=5 CID=0 BSIC=63
20181119131244167 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/system_information.c:696 Serving cell: 872
20181119131244167 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/system_information.c:696 SI2 Neighbour cells in same band: 880
20181119131244168 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/system_information.c:696 SI2ter Neighbour cells in different band: 114
20181119131244168 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/system_information.c:921 SI 2ter is included.
20181119131244168 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI1: 55 06 19 8f b4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e5 04 00 2b
20181119131244169 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI2: 59 06 1a 8f b8 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff e5 04 00
20181119131244169 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:83 SI2bis: OFF
20181119131244169 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI2ter: 59 06 03 8e 39 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2b 2b 2b 2b
20181119131244169 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:83 SI2quater: OFF
20181119131244169 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI3: 49 06 1b 00 00 32 f4 07 00 05 c9 03 05 27 47 40 e5 04 00 1c 2b 2b 2b
20181119131244169 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI4: 31 06 1c 32 f4 07 00 05 47 40 e5 04 00 01 2b 2b 2b 2b 2b 2b 2b 2b 2b
20181119131244169 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI13: 01 06 00 90 00 19 5a 6f c9 f2 35 01 08 21 2b 2b 2b 2b 2b 2b 2b 2b 2b
20181119131244169 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI5: 49 06 1d 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2b 2b 2b 2b
20181119131244169 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:83 SI5bis: OFF
20181119131244169 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:83 SI5ter: OFF
20181119131244169 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI6: 2d 06 1e 00 00 32 f4 07 00 05 27 ff 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b

880+114 + force-combined-si (success):
20181119132024970 DRSL <0003> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/osmo_bsc_main.c:283 bootstrapping RSL for BTS/TRX (0/0) on ARFCN 872 using MCC-MNC 234-70 LAC=5 CID=0 BSIC=63
20181119132024971 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/system_information.c:696 Serving cell: 872
20181119132024971 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:218 k=1, wk_len=10, offs=0:6, level=0, lvl_left=1
20181119132024971 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:232  wk_left=10, cur_bits=2, offs=0:6
20181119132024971 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:261  wk=72, slice=00/03, cl=00
20181119132024971 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:232  wk_left=8, cur_bits=8, offs=1:0
20181119132024971 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:261  wk=72, slice=72/ff, cl=72
20181119132024971 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:218 k=2, wk_len=9, offs=2:0, level=1, lvl_left=2
20181119132024971 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:232  wk_left=9, cur_bits=8, offs=2:0
20181119132024971 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:261  wk=ff, slice=7f/ff, cl=7f
20181119132024971 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:232  wk_left=1, cur_bits=1, offs=3:0
20181119132024971 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:261  wk=ff, slice=01/01, cl=80
20181119132024971 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:218 k=3, wk_len=9, offs=3:1, level=1, lvl_left=1
20181119132024971 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:232  wk_left=9, cur_bits=7, offs=3:1
20181119132024971 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:261  wk=00, slice=00/7f, cl=00
20181119132024971 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:232  wk_left=2, cur_bits=2, offs=4:0
20181119132024971 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:261  wk=00, slice=00/03, cl=00
20181119132024971 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:218 k=4, wk_len=8, offs=4:2, level=2, lvl_left=4
20181119132024971 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:232  wk_left=8, cur_bits=6, offs=4:2
20181119132024971 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:261  wk=00, slice=00/3f, cl=00
20181119132024971 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:232  wk_left=2, cur_bits=2, offs=5:0
20181119132024971 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:261  wk=00, slice=00/03, cl=00
20181119132024971 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:218 k=5, wk_len=8, offs=5:2, level=2, lvl_left=3
20181119132024972 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:232  wk_left=8, cur_bits=6, offs=5:2
20181119132024972 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:261  wk=00, slice=00/3f, cl=00
20181119132024972 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:232  wk_left=2, cur_bits=2, offs=6:0
20181119132024972 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:261  wk=00, slice=00/03, cl=00
20181119132024972 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:218 k=6, wk_len=8, offs=6:2, level=2, lvl_left=2
20181119132024972 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:232  wk_left=8, cur_bits=6, offs=6:2
20181119132024972 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:261  wk=00, slice=00/3f, cl=00
20181119132024972 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:232  wk_left=2, cur_bits=2, offs=7:0
20181119132024972 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:261  wk=00, slice=00/03, cl=00
20181119132024972 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:218 k=7, wk_len=8, offs=7:2, level=2, lvl_left=1
20181119132024972 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:232  wk_left=8, cur_bits=6, offs=7:2
20181119132024972 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:261  wk=00, slice=00/3f, cl=00
20181119132024972 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:232  wk_left=2, cur_bits=2, offs=8:0
20181119132024972 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:261  wk=00, slice=00/03, cl=00
20181119132024972 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:218 k=8, wk_len=7, offs=8:2, level=3, lvl_left=8
20181119132024972 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:232  wk_left=7, cur_bits=6, offs=8:2
20181119132024972 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:261  wk=00, slice=00/3f, cl=00
20181119132024972 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:232  wk_left=1, cur_bits=1, offs=9:0
20181119132024972 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:261  wk=00, slice=00/01, cl=00
20181119132024972 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:218 k=9, wk_len=7, offs=9:1, level=3, lvl_left=7
20181119132024972 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:232  wk_left=7, cur_bits=7, offs=9:1
20181119132024972 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:261  wk=00, slice=00/7f, cl=00
20181119132024972 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:218 k=10, wk_len=7, offs=10:0, level=3, lvl_left=6
20181119132024972 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:232  wk_left=7, cur_bits=7, offs=10:0
20181119132024972 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:261  wk=00, slice=00/7f, cl=00
20181119132024972 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:218 k=11, wk_len=7, offs=10:7, level=3, lvl_left=5
20181119132024972 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:232  wk_left=7, cur_bits=1, offs=10:7
20181119132024972 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:261  wk=00, slice=00/01, cl=00
20181119132024972 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:232  wk_left=6, cur_bits=6, offs=11:0
20181119132024972 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:261  wk=00, slice=00/3f, cl=00
20181119132024972 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:218 k=12, wk_len=7, offs=11:6, level=3, lvl_left=4
20181119132024972 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:232  wk_left=7, cur_bits=2, offs=11:6
20181119132024972 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:261  wk=00, slice=00/03, cl=00
20181119132024972 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:232  wk_left=5, cur_bits=5, offs=12:0
20181119132024972 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:261  wk=00, slice=00/1f, cl=00
20181119132024972 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:218 k=13, wk_len=7, offs=12:5, level=3, lvl_left=3
20181119132024972 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:232  wk_left=7, cur_bits=3, offs=12:5
20181119132024972 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:261  wk=00, slice=00/07, cl=00
20181119132024972 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:232  wk_left=4, cur_bits=4, offs=13:0
20181119132024972 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:261  wk=00, slice=00/0f, cl=00
20181119132024972 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:218 k=14, wk_len=7, offs=13:4, level=3, lvl_left=2
20181119132024972 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:232  wk_left=7, cur_bits=4, offs=13:4
20181119132024972 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:261  wk=00, slice=00/0f, cl=00
20181119132024972 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:232  wk_left=3, cur_bits=3, offs=14:0
20181119132024972 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:261  wk=00, slice=00/07, cl=00
20181119132024973 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:218 k=15, wk_len=7, offs=14:3, level=3, lvl_left=1
20181119132024973 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:232  wk_left=7, cur_bits=5, offs=14:3
20181119132024973 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:261  wk=00, slice=00/1f, cl=00
20181119132024973 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:232  wk_left=2, cur_bits=2, offs=15:0
20181119132024973 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:261  wk=00, slice=00/03, cl=00
20181119132024973 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:218 k=16, wk_len=6, offs=15:2, level=4, lvl_left=16
20181119132024973 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:232  wk_left=6, cur_bits=6, offs=15:2
20181119132024973 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/arfcn_range_encode.c:261  wk=00, slice=00/3f, cl=00
20181119132024973 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/system_information.c:696 SI2 Neighbour cells in same band: 114 880
20181119132024973 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI1: 55 06 19 8f b4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e5 04 00 2b
20181119132024974 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI2: 59 06 1a 80 72 7f 80 00 00 00 00 00 00 00 00 00 00 00 00 ff e5 04 00
20181119132024974 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:83 SI2bis: OFF
20181119132024974 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:83 SI2ter: OFF
20181119132024974 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:83 SI2quater: OFF
20181119132024974 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI3: 49 06 1b 00 00 32 f4 07 00 05 c9 03 05 27 47 40 e5 04 00 3c 2b 2b 2b
20181119132024974 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI4: 31 06 1c 32 f4 07 00 05 47 40 e5 04 00 01 2b 2b 2b 2b 2b 2b 2b 2b 2b
20181119132024974 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI13: 01 06 00 90 00 19 5a 6f c9 f2 35 01 08 21 2b 2b 2b 2b 2b 2b 2b 2b 2b
20181119132024974 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI5: 49 06 1d 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2b 2b 2b 2b
20181119132024974 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:83 SI5bis: OFF
20181119132024974 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:83 SI5ter: OFF
20181119132024974 DRR <0002> /home/pespin/dev/sysmocom/git/osmo-bsc/src/osmo-bsc/bsc_init.c:81 SI6: 2d 06 1e 00 00 32 f4 07 00 05 27 ff 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b

So it seems the problem appears as soon as we enable SI2ter (to send arfcns from different band). If we use force-combined-si, then it works fine because all arfcs are put into SI2 instead of using SI2ter.

So there's 3 possibilites here:
  • We encode SI2ter incorrectly (or bits somewhere else announcing it is going to be transmitted)
  • nanoBTS doesn't support it and behaves strangely when it is configured to use it.
  • some modems are broken and don't like SI2ter. However, I think from ccch_scan pcap trace that SI2ter is never sent, so it could be modems failing to register are actually correct and expecting a message that never arrives, and modems registering don't care at all about that.

#26 Updated by pespin 23 days ago

Also related: https://lists.osmocom.org/pipermail/openbsc/2018-April/011874.html

And commit in osmo-bsc from ml link from previous post:

commit 65d114fe434ec4fff9b9abfedade05ce21da994e
Author: Jacob Erlbeck <jerlbeck@sysmocom.de>
Date:   Thu Jan 16 11:02:14 2014 +0100

    si: Add a config option to disable SI2ter/SI2bis/SI5ter/SI5bis messages

    The iPhone5 (US) appears to have some issues with the SIs generated,
    or the nanoBTS is not sending them correctly.

    Add a configurable hack to put all bands into the SI2/SI5 message.
    It is enabled by the bts VTY command 'force-combined-si'.

    This is a quick change without much reflection and watching for side
    effects. I have verfied that a network with ARFCN 134 and neighbors
    ARFCN 130 and 512 do not get generate the SI2ter and announce everything
    inside the SI2.

    This patch is conceptually based on 'si: Add a hack to disable
    SI2ter/SI2bis/SI5ter/SI5bis messages' (692daaf2d2).

    Ticket: OW#1062
    Sponsored-by: On-Waves ehf

#27 Updated by pespin 23 days ago

Some more patches submitted improving some stuff but not fixing the actual issue:
remote: https://gerrit.osmocom.org/#/c/osmo-bsc/+/11828 bsc: Prefix log string with related SI type during call to list_arfcn
remote: https://gerrit.osmocom.org/#/c/osmo-bsc/+/11829 bsc: si: Fix SI2bis L2 pseudo length
remote: https://gerrit.osmocom.org/#/c/osmo-bsc/+/11830 bsc: si: Fix SI2ter L2 pseudo length

#28 Updated by pespin 23 days ago

SI2ter use indication is signalled in SI3 "SI 3 Rest Octets", 1 bit stating whether it is available or not. It's specified in 04.08 "10.5.2.34
SI 3 Rest Octets".

In osmo-bsc, we set it in rest_octets_si3() based on bool si2ter_indicator.

In observed ccch_scan pcap file, the 2ter indication in SI3 is marked as "available", but no SI2ter is ever sent.

Furthermore, 05.02 sec 6.3.4 "Mapping of BCCH data" states:

 TC = (FN DIV 51) mod (8)

iii)
System  information  type  2  bis  or  2  ter  messages  are  sent  when  needed,  as  determined  by  the
system  operator.  If  only  one  of  them  is  needed,  it  is  sent  when  TC=5.  If  both  are  needed,  2bis  is
sent when TC=5 and 2ter when TC=4. A SI 2 message will always be sent.

in the ccch_scan pcap file, we can see fr29 si2 being TC=4, which is fine because 2bis is not used. However, fr 33 in the pcap file (fn=2596769) equals TC=5, and we see a regular SI2 (no SI2ter) there, so now it's clear there's a misconfiguration that some MS don't like.

So far it seems nanoBTS doesn't indeed support SI2ter, and force-combined-si must be used.

#29 Updated by pespin 23 days ago

  • Status changed from In Progress to Feedback
  • % Done changed from 0 to 90

I submitted following patch to disable sending SI2ter by default with nanoBTS unless explicitly requested through VTY cmd:
https://gerrit.osmocom.org/#/c/osmo-bsc/+/11834 bsc: Enable force-combined-si on nanoBTS by default

With this patch and other arfcn2band patches waiting for review, this task should be done.

#30 Updated by pespin 22 days ago

  • Status changed from Feedback to Resolved
  • % Done changed from 90 to 100

All commits merged, closing.

#31 Updated by pespin 16 days ago

  • Related to Bug #3707: nanoBTS fails to start added

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 48.8 MB)