Connman - DHCP client for cellular networks
by Eswaran Vinothkumar (BEG/PJ-IOT-EL)
Hello,
I am currently working on an embedded project where we are using TELIT 910 EUG Modem chip. We are using Yocto as the build system.
Versions Used: Connman:1.34 and Ofono:1.20
To establish the internet connection I am using the python scripts within the ofono/test directory as follows:
/usr/lib/ofono/test/enable-modem
/usr/lib/ofono/test/online-modem
/usr/lib/ofono/test/set-roaming-allowed
/usr/lib/ofono/test/register-auto
/usr/lib/ofono/test/enable-gprs
/usr/lib/ofono/test/create-internet-context web.vodafone.de vodafone vodafone
/activate-context
/process-context-settings
After this I could see that the device gets the IP address, gateway and nameserver as shown below,
ofono_start_gsm.sh[192]: Interface is wwan0
ofono_start_gsm.sh[192]: IP address is 10.249.29.20
ofono_start_gsm.sh[192]: Gateway is 10.249.29.21
ofono_start_gsm.sh[192]: Nameserver is 10.105.144.254
At this point I excepted Connman to connect to the internet but it doesn't. I am seeing the following error message from Connman:
connmand[176]: Online check failed for 0x1ce7c80 Vodafone.
Also ping and wget didn't work. The output of ip route and /etc/resolv.conf are as follows:
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.166.199.10 0.0.0.0 UG 0 0 0 wwan0
10.105.144.254 10.166.199.10 255.255.255.255 UGH 0 0 0 wwan0
10.166.199.8 0.0.0.0 255.255.255.252 U 0 0 0 wwan0
10.166.199.10 0.0.0.0 255.255.255.255 UH 0 0 0 wwan0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.1.255 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
cat /etc/resolv-conf.connman
# Generated by Connection Manager
nameserver ::1
nameserver 127.0.0.1
The contents of ip route and resolv.conf looked strange for me. I looked into Connman documents and the mailing list discussions, it seems like expected behavior from connman.
As a test case, I manually started the DHCP client on wwan0. After that I could see that the device is connected to the internet. I checked with ping and wget. Also have downloaded some files to test the internet connection.
The output of ip route and /etc/resolv.conf are as follows:
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.166.250.1 0.0.0.0 UG 0 0 0 wwan0
10.166.250.0 0.0.0.0 255.255.255.240 U 0 0 0 wwan0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.1.255 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
cat /etc/resolv.conf
nameserver 10.105.16.254
nameserver 10.105.144.254
I have the following question. Is this the expected behavior? Do I need to run dhclient or missing some configuration in Connman? I have read in the mailing list that the connman has internet DHCP client and running another might cause confusion.
After running connmanctl services I could see the connection is listed as AR (Ready state). I expected it to be in AO(online state)
*AR Wired ethernet_0001c01df20b_cable
*AR Vodafone cellular_204046850339628_context1
I tried disconnecting the service and connecting it back.
connmanctl disconnect cellular_204046850339628_context1 --> successfully disconnects the connection
connmanctl connect cellular_204046850339628_context1 --> again the connman fails with the message Online check failed for 0x1ce7c80 Vodafone. Running dhclient manually again fixes this issue.
I am puzzled about the issue here. Let me know if you need some more log messages. Any help on the topic is appreciated.
Mit freundlichen Grüßen / Best regards
Vinothkumar Eswaran
BEG-PT/PJ-IOT1