-
Notifications
You must be signed in to change notification settings - Fork 333
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GGSN PDP Context Activation without PCO #28
Comments
Hi Daniel ... In my country, no signal is Tx on the 1800 band so I configure my cellphone to work on that one and also OpenBTS to Tx on Band 1800 and ARFCN 512 to avoid any noise from other cellphone .. but no ... GPRS still working intermitently ... cellphone attaches to network, PDP context gets on (gprs list shows a change from Idle to Transfer state) ... and one can see the packet flow on the /tmp/GGSN.log but suddenly after some minutes (it can take several or less) it stops ... I wonder why ... Can anybody give some ideas what to troubleshoot? Thanks |
I meant that the whole application crashes (SIGSEGV = segmentation fault / access violation). |
The protocol configuration options (PCO) sent by the MS in the ACTIVATE PDP CONTEXT REQUEST message is optional according to GSM 24.008 9.5.1.
In Ggsn.cpp setPco() we assume, that pcoReq is set. No check is performed to prove that this holds true. OpenBTS simple crashes with a SIGSEGV if pcoReq is empty.
The same is done in L3SmMsgActivatePdpContextAccept::smWriteBody() when writing out the ACTIVATE PDP CONTEXT ACCEPT message as defined in GSM 24.008 9.5.2 (PCO is optional here too).
A simple workaround would be to early out setPco() if pcoReq.size() is 0 and only output PCO in smWriteBody() if mPco.size() is >0.
This, however, would leave the MS without a DNS. setPco() could build a PCO if none was received.
The text was updated successfully, but these errors were encountered: