This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/OpenBSC@lists.osmocom.org/.
Michal Grznár mihal.grznar at gmail.comHi, I am sorry for my previous bad post format. There are the right diff files. And the problem was as I said in Imsi attach procedure new TLLI == new allocated P-tmsi, and there was a problem that the function gprs_tmsi2tlli() function there was not called and so I had to mask the upper bits in function where the p-tmsi is allocated, there is also a pcap trace where you can see it. thanks, regards Michal 2014-05-17 13:50 GMT+02:00 Harald Welte <laforge at gnumonks.org>: > Hi Michal, > > thanks a lot for reporting back on your experience. > > Hoewever, it is customary to post changes as unified diff ('diff -u' > format here on this list for review. I have a hard time understanding > the format that you posted. Can you pleaes re-post your changes? > Either with diff -u created manually, or with 'git diff' or similar. > > On Mon, May 05, 2014 at 11:13:37PM +0200, Michal Grznár wrote: > > Hi, I am using OsmoSGSN in topology with OpenGGSN and proprietary > simulator > > and the problem is that in IP-subnetwork, which I am using there is no > > use for RESET or UNBLOCK procedure, so I had to do a PATCH in > > gprs_ns.c, which was needed to complete succesful connection between > > sim-bss and OsmoSGSN: > > If you would like to see such code merged, please extend osmo-sgsn so > that the type of BSS can be configured via vty, and make the code > conditional. At that point you could simply have a different config > file for your sim-bss than we have. > > > another PATCH I needed to do was to change a little bit procedure for > > allocation of P-TMSI in procedure uint32_t sgsn_alloc_ptmsi(void) in > > gprs_sgsn.c > > > > uint32_t sgsn_alloc_ptmsi(void) > > { > > struct sgsn_mm_ctx *mm; > > uint32_t ptmsi; > > > > restart: > > +++ ptmsi = rand() | 0xc0000000; /*because of GPRS IMSI > > ATTACH*/ > > llist_for_each_entry(mm, &sgsn_mm_ctxts, list) { > > if (mm->p_tmsi == ptmsi) > > goto restart; > > } > > return ptmsi; > > } > > > > because in GPRS IMSI ATTACH in message ATTACH COMPLETE (3GPP 24.008, > > 23.003, 48.018) there is new TLLI==new allocated P-TMSI and I need local > > TLLI, so I had to do it this way > > This is most certainly not the right way to fix the problem. The TLLI > is generated at a different layer than the P-TMSI. The P-TMSI should be > completely random, and the TLLI derived from that should mask the upper > bits, using the gprs_tmsi2tlli() function. > > Can you please explain more what the actual problem was and how it > manifested iself? If possible, include pcap traces for further > illustration. > > Thanks, > Harald > > -- > - Harald Welte <laforge at gnumonks.org> > http://laforge.gnumonks.org/ > > ============================================================================ > "Privacy in residential applications is a desirable marketing option." > (ETSI EN 300 175-7 Ch. > A6) > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/openbsc/attachments/20140523/d6637cec/attachment.htm> -------------- next part -------------- --- gprs_ns_before_patch.c 2014-05-23 10:36:09.041829000 +0200 +++ gprs_ns_patch.c 2014-05-23 10:34:17.101829001 +0200 @@ -1217,16 +1217,14 @@ switch (nsh->pdu_type) { case NS_PDUT_ALIVE: - /* If we're dead and blocked and suddenly receive a - * NS-ALIVE out of the blue, we might have been re-started - * and should send a NS-RESET to make sure everything recovers - * fine. */ - -LOGP(DNS, LOGL_INFO, "Rx NS ALIVE\n"); -if ((*nsvc)->state == NSE_S_BLOCKED) - rc = gprs_ns_tx_reset((*nsvc), NS_CAUSE_PDU_INCOMP_PSTATE); - else - rc = gprs_ns_tx_alive_ack(*nsvc); + LOGP(DNS, LOGL_INFO, "Rx NS ALIVE\n"); + rc = gprs_ns_tx_alive_ack(*nsvc); + /*mark NS-VC as unblocked and active*/ + (*nsvc)->state = NSE_S_ALIVE; + (*nsvc)->remote_state = NSE_S_ALIVE; + /*Initiate TEST proc.: Send ALIVE_ACK and start timer*/ + rc = gprs_ns_tx_simple((*nsvc), NS_PDUT_ALIVE_ACK); + nsvc_start_timer((*nsvc), NSVC_TIMER_TNS_TEST); break; case NS_PDUT_ALIVE_ACK: /* stop Tns-alive and start Tns-test */ -------------- next part -------------- A non-text attachment was scrubbed... Name: pcap_trace_wireshark.pcap Type: application/octet-stream Size: 3675 bytes Desc: not available URL: <http://lists.osmocom.org/pipermail/openbsc/attachments/20140523/d6637cec/attachment.obj> -------------- next part -------------- --- gprs_sgsn_before_patch.c 2014-05-23 11:14:48.121829000 +0200 +++ gprs_sgsn_patch.c 2014-05-23 11:15:48.229829001 +0200 @@ -361,7 +361,7 @@ uint32_t ptmsi; restart: - ptmsi = rand(); + ptmsi = rand() | 0xc0000000; //because of GPRS IMSI ATTACH llist_for_each_entry(mm, &sgsn_mm_ctxts, list) { if (mm->p_tmsi == ptmsi) goto restart;