Hi!
I've updated the system_information branch. The purpose of this branch is to move away from static u_int8_t arrays that are used as templates for the SYSTEM INFORMATION messages. Thise arrays are reminiscent of the old days of bs11_init, where everything had been done this way.
The current head of system_information is now managing to actually do that. The full SI1-SI4 on the BCCH as well as the SI5/SI6 on the SACCH are now created from scratch (see code in system_information.c)
The content of the SI is "phase 1" content, i.e. before rest octets were introduced
I've also written some code to generate the rest octets, as well as a some "rest octet encoding aware" bit vector routines that understand the meaning of 0/1/L/H.
However, those rest octet routines are not yet used. They need some careful testing before use. Testing is actually quite hard, as not even wireshark has dissector for the system information messages (anyone interested in contributing on this? It's needed for airprobe, too)
One interesting bit that stalled development for quite some time: If you send a SACCH FILLing with length > 18 bytes, then the nanoBTS will actually crash somewhere in the layer 2, sending you long error strings with addresses (stack?) as error reports before rebooting :)
Feel free to start testing the system_information branch if you're interested. I'd be happy to hear any "master works for my phone, but system_information branch confuses my phone" kind of reports.
Regards, Harald
Hi,
I've just run that branch and tested with : * iPhone 2G * HTC Magic * Cheap nokia 1661
And I didn't notice any weird behaviors. Each was able to register and place call/send sms without trouble ...
Feel free to start testing the system_information branch if you're interested. I'd be happy to hear any "master works for my phone, but system_information branch confuses my phone" kind of reports.
Nope sorry, it works fine here ...
Sylvain
Hi!
Thanks for testing...
On Sun, Oct 25, 2009 at 06:13:22PM +0100, Sylvain Munaut wrote:
I've just run that branch and tested with :
- iPhone 2G
- HTC Magic
- Cheap nokia 1661
And I didn't notice any weird behaviors. Each was able to register and place call/send sms without trouble ...
Feel free to start testing the system_information branch if you're interested. I'd be happy to hear any "master works for my phone, but system_information branch confuses my phone" kind of reports.
Nope sorry, it works fine here ...
ok, this is good news. Which particular git version did you test? I've activated the code to generate the rest octets now, which might make quite some difference.
I've been testing only a merged gprs + system_information branch, which uses the SI13 [rest octet] generation. That part is definitely broken, I need to research this.
If anyone has some spare time, writing a full System Information dissector for wireshark would be a really cool thing to do.
Regards,
Ok, I tested :
* "main branch": A merge of : - master:ba92587cd5789d74ffa8675179f680232682edf1 - SW activate patch - 16bits len patch
* "SI branch": A merge of - system_information:6a6d4f6361827bad5ab3005520ef47133def51ec - master:ba92587cd5789d74ffa8675179f680232682edf1 - SW activate patch - 16bits len patch
The results :
* iPhone 2G : OK on both * Android HTC Magic: OK on both * Nokia 3310: OK on both * Cheap nokia 1661: OK on both * SE T610: Weird behavior on both branch but repeatably worse on SI. - On the main branch: All is more or less ok except the active call period can only last 15-20 sec, after, it just closes. - On the SI branch, after two rings the call fails, and it seems each RF channel 'collapse' quickly (with no error ... on the MS side, it goes back to the default screen then a few second later, openbsc realize the rf channel is dead ...)
The T610 behavior is really weird ... but I tested and the MS works fine when connected on the 'true' network ... I never tested that MS on openbsc before so I have no other reference point.
Sylvain