Hi Max,

I am reluctant to post my actual config files. However, your config files seem nearly identical to mine.  Below, I will describe the differences:

In your ggsn.conf file, your listen parameter is set to 127.0.0.1.  What I did was make an alias, eth0:1, to a different IP address (192.168.10.60) and used it for this parameter. (Actually, my main IP address used for OpenBSC is also an alias since I was trying to match the subnet that the BTS came from which is different from the machine I am using. We didn't want to reconfigure the BTS from its settings just so I could play with it. So, I made an alias, eth0:0, which on your machine would be treated as eth0 -  192.168.10.53.  In your case, you would probably not need to make the eth0:0 alias, but if your BTS is configured to a different subnet from 192.168.10.X, then you might have to.) Anyway, you might want to make an alias to 192,168.10.60 (or whatever address is available on your network) and use that address for your listen parameter.

Also, in ggsn.conf, I used the IP address of my DNS server for both of the pcodns parameters.  Also, I set the apn parameter to epc.tmobile.com which is the access point for T-Mobile (which is the kind of SIMs I am using).  I don't know if there is an apn that could be used for the 001 01 test network.  Perhaps that has been discussed on the list previously.  In any event, the apn parameter is experimental, so you may have different results.

Finally in ggsn.conf, I set the net and dynip parameters to 192.168.100.0/24, and then made a tunnel to it after starting the ggsn executable (but before starting osmo-sgsn) with the following command:
    sudo route add -net 192.168.100.0 netmask 255.255.255.0 gw 192.168.100.1
How did we come up with 192.168.100.1 for the gateway address? Well, after starting ggsn, the ifconfig command will show the IP address of the tunnel endpoint (tun0) that is created by the ggsn. In our case (and probably all cases), this was 192.168.100.1.

Make sure you have followed the instructions on the OpenBSC_GPRS page about setting the iptables

In the osmo_sgsn.cfg, I set the gtp local-ip to the eth0:0 alias or 192.168.10.53 (which you probably have correct in your file - assuming your BTS is configured for the same subnet of your machine), and the ggsn 0 remote-ip parameter to the eth0:1 alias (192.168.10.60).

In the openbsc.cfg file, the only difference I see is the NCC and MNC (because I am using T-Mobile SIMs) and I made timeslot 7 a PDCH channel instead of a TCH/F.

A critical issue is setting up the tunnel between osmo_sgsn and ggsn, before starting osmo_sgsn.  I also start the osmo-nitb executable last, after the other two executables are up and running.

Finally, at the suggestion of one of the list members, I tried a different phone that doesn't use the original Nokia baseband.  I tried a Nokia Lumia phone (which uses the Microsoft Mobile OS) and it works *much* better.

I hope that this information helps. Good Luck!
John

On Wed, Sep 19, 2012 at 5:14 AM, ☎ <Max.Suraev@fairwaves.ru> wrote:
Hello.

I have similar setup although in my case it doesn't work at all.

Could you share your configs so I can check that I hadn't missed something obvious.
Here are mine. Note that I run everything on a single machine 192.168.10.53
nanoBTS is configured and successfully connected to openbsc (green light on bts).

/etc/ggsn.conf:

listen 127.0.0.1
dynip 10.0.0.0/24
pcodns1 8.8.8.8
pcodns2 208.67.220.220

/etc/osmo_sgsn.cfg:
!
line vty

 no login

!

sgsn

 gtp local-ip 192.168.10.53
 ggsn 0 remote-ip 127.0.0.1
 ggsn 0 gtp-version 1

!

ns

 timer tns-block 3
 timer tns-block-retries 3
 timer tns-reset 3
 timer tns-reset-retries 3
 timer tns-test 30
 timer tns-alive 3
 timer tns-alive-retries 10
 encapsulation udp local-ip 192.168.10.53
 encapsulation udp local-port 23000
 encapsulation framerelay-gre enabled 0
!

bssgp
!

/etc/openbsc.cfg:
!   !

password foo

!

line vty

 no login
!

e1_input

 e1_line 0 driver ipa
network

 network country code 1
 mobile network code 1
 short name OpenBSC

 long name OpenBSC

 auth policy accept-all

 location updating reject cause 13
 encryption a5 0
 neci 1
 rrlp mode none

 mm info 1
 handover 0
 handover window rxlev averaging 10
 handover window rxqual averaging 1
 handover window rxlev neighbor averaging 10
 handover power budget interval 6
 handover power budget hysteresis 3
 handover maximum distance 9999
 timer t3101 10
 timer t3103 0
 timer t3105 0
 timer t3107 0
 timer t3109 0
 timer t3111 0
 timer t3113 60
 timer t3115 0
 timer t3117 0
 timer t3119 0
 timer t3141 0
 bts 0
  type nanobts
  band DCS1800
  cell_identity 0
  location_area_code 1
  training_sequence_code 7
  base_station_id_code 63
  ms max power 15
  cell reselection hysteresis 4
  rxlev access min 0
  channel allocator ascending
  rach tx integer 9
  rach max transmission 7
  ip.access unit_id 1801 0
  oml ip.access stream_id 255 line 0
  gprs mode gprs
  gprs routing area 0
  gprs cell bvci 2
  gprs nsei 101
  gprs nsvc 0 nsvci 101
  gprs nsvc 0 local udp port 23000
  gprs nsvc 0 remote udp port 23000
  gprs nsvc 0 remote ip 192.168.10.53
  trx 0
   rf_locked 0
   arfcn 514
   nominal power 23
   max_power_red 20
   rsl e1 tei 0
    timeslot 0
     phys_chan_config CCCH+SDCCH4
    timeslot 1
     phys_chan_config SDCCH8
    timeslot 2
     phys_chan_config TCH/F
    timeslot 3
     phys_chan_config TCH/F
    timeslot 4
     phys_chan_config TCH/F
    timeslot 5
     phys_chan_config PDCH
    timeslot 6
     phys_chan_config PDCH
    timeslot 7
     phys_chan_config TCH/F

--
best regards,
Max, http://fairwaves.ru