Network Connect Error


#1

Hiya,

I’m using the le_data API to request a connection to the network.

After the first cellular network disconnection after a reboot, every time I try a reconnect, I always get the following sequence of errors:

Dec 17 07:36:16 swi-mdm9x28-wp user.info Legato:  INFO | reService[25722]/reComponent T=main | api_network.c _OpenTcpSocket() 690 | Broker: test.server.com Port: 1234
Dec 17 07:36:17 swi-mdm9x28-wp user.info Legato:  INFO | modemDaemon[936]/modemDaemon T=main | le_mrc.c NetworkRejectIndHandler() 1170 | Network Reject Ind Handler called with RAT.8, mcc. and mnc.
Dec 17 07:36:17 swi-mdm9x28-wp user.err Legato: =ERR= | modemDaemon[936]/le_pa T=unknown | pa_mrc_qmi.c EventReportHandler() 1337 | Network Registration failed error code 10
Dec 17 07:36:21 swi-mdm9x28-wp user.warn Legato: -WRN- | reService[25722]/reComponent T=main | api_network.c _OpenTcpSocket() 695 | getaddrinfo: [-3]Temporary failure in name resolution

What does

Network Registration failed error code 10

indicate?

There is definitely something wrong - cm data shows that the network is connected (DNS servers and so on are displayed), but the module is having trouble resolving names.

Platform: WP7702/R9.1/Legato 18.05.1

ciao, Dave


#2

We have seen that when having established an connection, you sometimes manually have to setup a default route. Try using the cm data to see what the GW address is supposed to be and then use the command

route add default gw gw-ip

to set the default route to use the new interface. This makes us able to resolv names (however, we also manually (or using our legato app) populate the nameservers file in /etc).


#3

Hi @andcor,

Ta. I can see what you’re saying and it makes sense.

But … it’s not much good when you’re trying to build a reliable, headless system to put out in the field! The whole idea of using the Legato le_data API is to make all this sort of stuff transparent to the app that requires cellular data connection.

The other issue with manually populating resolv.conf is I’ve seen that it’s sometimes not re-read when it changes by other applications even through they’re not sandboxed (I believe this is a feature of the way that Legato uses chroot jails for security and isolation).

ciao, Dave


#4

I have solved it by adding the route command to an external command legato app in C. I know it is somewhat of a workaround, but we are in a hurry and therefore we will have to add workarounds for the issues we come across instead of waiting for the issue to be adressed in the framework itself.


Modem gets into a state where it thinks it's connected but isn't