View Issue Details

IDProjectCategoryView StatusLast Update
0000346easycwmpHelppublic2018-08-10 12:54
Reporterarukona Assigned To 
Status newResolutionopen 
Summary0000346: easycwmp client stuck and not making connection with ACS server

I have cross compiled easycwmp client and all dependencies for
arm-cortexa9-linux-gbueabi. I've followed instruction given here for EasyCwmp install for
other Linux distributions.

I have copied required libraries / binaries etc to hardware box
and started genieacs and easycemp client. The easycwmp client got
stuck and logs on the screen as below.

root@phyFLEX-i:~ /usr/sbin/easycwmpd -f -b
2018-07-19 06:54:12 [easycwmp] NOTICE - add event '0 BOOTSTRAP'
2018-07-19 06:54:12 [easycwmp] NOTICE - external script init
config_init_local(59):: easycwmp.@local[0].interface=eth0
config_init_local(69):: easycwmp.@local[0].port=7547
config_init_local(87):: easycwmp.@local[0].ubus_socket=/var/run/ubus.sock
config_init_local(75):: easycwmp.@local[0].username=easycwmp
config_init_local(81):: easycwmp.@local[0].password=easycwmp
config_init_local(109):: easycwmp.@local[0].authentication=Digest
config_init_local(98):: easycwmp.@local[0].logging_level=3
config_init_acs(174):: easycwmp.@acs[0].url=
config_init_acs(180):: easycwmp.@acs[0].username=easycwmp
config_init_acs(186):: easycwmp.@acs[0].password=easycwmp
config_init_acs(192):: easycwmp.@acs[0].periodic_enable=1
config_init_acs(198):: easycwmp.@acs[0].periodic_interval=100
config_init_acs(205):: easycwmp.@acs[0].periodic_time=0001-01-01T00:00:00Z
2018-07-19 06:54:13 [easycwmp] NOTICE - add event '0 BOOTSTRAP'
2018-07-19 06:54:13 [easycwmp] NOTICE - init periodic inform: reference time = n/a, interval = 100
2018-07-19 06:54:13 [easycwmp] NOTICE - external: execute update_value_change
2018-07-19 06:54:13 [easycwmp] NOTICE - daemon started
2018-07-19 06:54:13 [easycwmp] NOTICE - external: execute inform device_id
cwmp_init_deviceid(642): in device you must define product_class
2018-07-19 06:54:13 [easycwmp] NOTICE - external script exit

After seeing the code it seems the client (easycwmpd) is waiting for
easycwmp --json-input to exit and but it is not and as a result it is in infinite loop

root@phyFLEX-i:~ ps -aef | grep easycwmp
root 4288 4130 0 06:54 pts/4 00:00:00 /usr/sbin/easycwmpd -f -b
root 4289 4288 0 06:54 pts/4 00:00:00 /bin/sh /usr/sbin/easycwmp --json-input
root 4302 4297 0 06:55 pts/6 00:00:00 grep easycwmp

Also some information as below based on similar issue in easycwmp support site

root@phyFLEX-i:~ easycwmp --json-input
{"command": "inform", "class": "device_id"}
easycwmp> (<--------blank no output here)

root@phyFLEX-i:~ easycwmp --json-input
{"command": "get", "class": "value"}
easycwmp> (<--------blank no output here)

Please suggest what I'm missing it to make client communicate with server

Also one information that on my box for dependencies (curl, json-c, libubox, ubus, uci, microxml) the make install is not executed as compilation is done on virtual machine with required toolchain so I copied required libraries and binararies and created softlinks as suggested to install webpage

Please provide valuable feedback / pointer to proceed further.

TagsNo tags attached.
e-mail notification



2018-07-20 11:30

administrator   ~0000889

you have some issue in json package. may be there is some scripts from json package are not installed.

To guaranty that your easycwmp is well installed, you should got output of the following command:

Linux$ easycwmp inform
{ "parameter": "Device.DeviceInfo.SpecVersion", "value": "1.0" }
{ "parameter": "Device.DeviceInfo.ProvisioningCode", "value": "" }
{ "parameter": "Device.DeviceInfo.Manufacturer", "value": "" }
{ "parameter": "Device.DeviceInfo.ManufacturerOUI", "value": "" }
{ "parameter": "Device.DeviceInfo.ProductClass", "value": "" }
{ "parameter": "Device.DeviceInfo.SerialNumber", "value": "" }
{ "parameter": "Device.DeviceInfo.HardwareVersion", "value": "" }
{ "parameter": "Device.DeviceInfo.SoftwareVersion", "value": "" }
{ "parameter": "Device.ManagementServer.ConnectionRequestURL", "value": "" }
{ "parameter": "Device.ManagementServer.ParameterKey", "value": "" }


2018-07-20 12:38

reporter   ~0000890


Thanks for your response.

On the box, I am able to get following output for the command you suggested to execute.

phyFLEX-i.MX6 login: root
root@phyFLEX-i:~ easycwmp inform
{ "parameter": "Device.DeviceInfo.SpecVersion", "value": "1.0" }
{ "parameter": "Device.DeviceInfo.ProvisioningCode", "value": "" }
{ "parameter": "Device.DeviceInfo.Manufacturer", "value": "easycwmp" }
{ "parameter": "Device.DeviceInfo.ManufacturerOUI", "value": "FFFFFF" }
{ "parameter": "Device.DeviceInfo.ProductClass", "value": "easycwmp" }
{ "parameter": "Device.DeviceInfo.SerialNumber", "value": "FFFFFF123456" }
{ "parameter": "Device.DeviceInfo.HardwareVersion", "value": "example_hw_version" }
{ "parameter": "Device.DeviceInfo.SoftwareVersion", "value": "example_sw_version" }
{ "parameter": "Device.ManagementServer.ConnectionRequestURL", "value": "http:\/\/\/" }
{ "parameter": "Device.ManagementServer.ParameterKey", "value": "" }

and there is no connection b/w client and server. Please provide your valuable feedback / pointer


2018-07-20 13:11

administrator   ~0000891

Try now the following command

Linux$ easycwmp --json-input

And then input the following json message:

{"command": "inform"}

you should got the same output you did with "easycwmp inform"


2018-07-20 13:18

reporter   ~0000892

I am not getting any output in this case, it is blank, please refer below

root@phyFLEX-i:~ easycwmp --json-input
{"command": "inform"}

Please advice


2018-07-20 14:54

reporter   ~0000893

This is what json related files on my box, just in case if it helps

root@phyFLEX-i:~ find / -name json*
root@phyFLEX-i:~ find / -name libjson*

and the soft link I created as part of install

root@phyFLEX-i:~ ll /usr/include/json
lrwxrwxrwx 1 root root 19 Jul 12 14:02 /usr/include/json -> /usr/include/json-c


2018-07-20 15:47

administrator   ~0000894

what is your default sh ?

ls -l /bin/sh


2018-07-20 16:36

reporter   ~0000895

Here it is

root@phyFLEX-i:~ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 Jul 20 10:31 /bin/sh -> bash


2018-08-06 07:45

reporter   ~0000896


Request your help in debugging this or let me know some pointer



2018-08-06 16:40

administrator   ~0000897

Last edited: 2018-08-06 17:56

You have some issue with your json installation on your linux
The (from json-c package) seems does not work properly on your linux platform for some reasons.
you have to check that


2018-08-09 09:19

reporter   ~0000899


Since I copied executable and library manually so there was issue with default PATH variable. When I edited it for correct path(s) the tr069 client is able to make connection with genieacs ACS server

HTTP inform sent by client is responded back by server but in keep alive mode when client is trying to send empty http request it results into
* The requested URL returned error: 400

For more detail refer below and let me know any pointer to debug this further.

2018-08-09 07:15:49 [easycwmp] NOTICE - receive InformResponse from the ACS
2018-08-09 07:15:49 [easycwmp] NOTICE - send empty message to the ACS
> POST / HTTP/1.1
User-Agent: easycwmp
Content-Type: text/xml; charset="utf-8"
Content-Length: 0

* The requested URL returned error: 400
2018-08-09 07:15:49 [easycwmp] NOTICE - LibCurl Error: The requested URL returned error: 400
2018-08-09 07:15:49 [easycwmp] NOTICE - sending http message failed
cwmp_handle_messages(351): sending http message failed
cwmp_inform(315): handling xml message failed
2018-08-09 07:15:49 [easycwmp] NOTICE - external: execute apply service
2018-08-09 07:15:49 [easycwmp] NOTICE - external script exit


2018-08-10 08:58

reporter   ~0000900


Let me know some pointer to debug this further as I am not able to understand that why client is not able to send empty http request when he just sent one http request as part of Inform so communication is through b/w client and server.



2018-08-10 09:18

reporter   ~0000901

Last edited: 2018-08-10 12:54

Also I see on successful case (simulated client and server on x86 platform) the logs in geniacs as below. Difference I see in content of InformEvent being

"1 BOOT,2 PERIODIC" - in Success case and "0 BOOTSTRAP,1 BOOT" as in failure case. I hope this is okay?

Success case (client & server on x86 platform)

2018-08-10T05:36:55.194Z [INFO] FFFFFF-easycwmp-FFFFFF123456: Inform; cpeRequestId="1" informEvent="1 BOOT,2 PERIODIC" informRetryCount=0
2018-08-10T05:38:13.019Z [INFO] FFFFFF-easycwmp-FFFFFF123456: Inform; cpeRequestId="2" informEvent="2 PERIODIC" informRetryCount=0

whereas for unsuccessful case (client on ARM based platform)

2018-08-10T05:46:51.750Z [INFO] FFFFFF-easycwmp-FFFFFF123456: Inform; cpeRequestId="1" informEvent="0 BOOTSTRAP,1 BOOT" informRetryCount=0
2018-08-10T05:46:51.765Z [ERROR] FFFFFF-easycwmp-FFFFFF123456: Invalid session
2018-08-10T05:46:59.202Z [INFO] FFFFFF-easycwmp-FFFFFF123456: Inform; cpeRequestId="2" informEvent="" informRetryCount=1
2018-08-10T05:46:59.213Z [ERROR] FFFFFF-easycwmp-FFFFFF123456: Invalid session

One more difference I see on easycwmp client log for success case is the comment starting with "* Found...."

Success case

* Found bundle for host 0x5590c1226020 [can pipeline]
* Re-using existing connection! (#0) with host
* Connected to ( port 7547 (#0)
> POST / HTTP/1.1

and this is not the case in failure case

Failure case

> POST / HTTP/1.1
User-Agent: easycwmp
Content-Type: text/xml; charset="utf-8"
Content-Length: 0

Please provide your input to proceed further

Issue History

Date Modified Username Field Change
2018-07-19 09:26 arukona New Issue
2018-07-20 11:30 mohamed.kallel Note Added: 0000889
2018-07-20 12:38 arukona Note Added: 0000890
2018-07-20 13:11 mohamed.kallel Note Added: 0000891
2018-07-20 13:18 arukona Note Added: 0000892
2018-07-20 14:54 arukona Note Added: 0000893
2018-07-20 15:47 mohamed.kallel Note Added: 0000894
2018-07-20 16:36 arukona Note Added: 0000895
2018-08-06 07:45 arukona Note Added: 0000896
2018-08-06 16:40 mohamed.kallel Note Added: 0000897
2018-08-06 17:56 mohamed.kallel Note Edited: 0000897
2018-08-09 09:19 arukona Note Added: 0000899
2018-08-10 08:58 arukona Note Added: 0000900
2018-08-10 09:18 arukona Note Added: 0000901
2018-08-10 09:18 arukona Note Edited: 0000901
2018-08-10 09:19 arukona Note Edited: 0000901
2018-08-10 09:20 arukona Note Edited: 0000901
2018-08-10 09:20 arukona Note Edited: 0000901
2018-08-10 09:21 arukona Note Edited: 0000901
2018-08-10 12:54 arukona Note Edited: 0000901