EasyCwmp - easycwmp
View Issue Details
0000217easycwmp[All Projects] Helppublic2017-04-24 03:332017-04-27 10:17
andy_yang 
mohamed.kallel 
urgentblockalways
resolvedfixed 
openwrt15openwrt openwrt 15
0000217: The easycwmpd process sends a [FIN,ACK] packet to disconnect with acs after sending post request
My CPE ip is 192.168.20.99
My ITMS(ACS) ip is 192.168.4.11
CPE and ACS have established the TCP connection successfully by three TCP handshake protocols. Then,we meet a issue:
The easycwmpd process sends a [FIN,ACK] packet to disconnect with acs after sending post request.
Please refer to log and captured packet file.
1.config interface and acs url is
    option interface 'eth1.4093'
    option url 'http://192.168.4.11:9090/ACS-server/ACS' [^]
2.start easycwmpd process
    easycwmpd -f
3. Capture packet to analysis
    

   
log message is following:
root@OpenWrt:~# easycwmpd -f
2017-04-24 09:20:10 [easycwmp] NOTICE - add event '0 BOOTSTRAP'
2017-04-24 09:20:10 [easycwmp] NOTICE - external script init
config_init_local(55):: easycwmp.@local[0].interface=eth1.4093
config_init_local(65):: easycwmp.@local[0].port=7547
config_init_local(83):: easycwmp.@local[0].ubus_socket=/var/run/ubus.sock
config_init_local(94):: easycwmp.@local[0].logging_level=3
config_init_acs(159):: easycwmp.@acs[0].url=http://192.168.4.11:9090/ACS-server/ACS [^]
config_init_acs(177):: easycwmp.@acs[0].periodic_enable=1
config_init_acs(190):: easycwmp.@acs[0].periodic_time=0001-01-01T00:00:00Z
config_init_acs(183):: easycwmp.@acs[0].periodic_interval=1800
2017-04-24 09:20:10 [easycwmp] NOTICE - init periodic inform: reference time = n/a, interval = 1800
2017-04-24 09:20:10 [easycwmp] NOTICE - external: execute update_value_change
2017-04-24 09:20:14 [easycwmp] NOTICE - daemon started
2017-04-24 09:20:14 [easycwmp] NOTICE - external: execute inform device_id
2017-04-24 09:20:14 [easycwmp] NOTICE - external script exit
2017-04-24 09:20:14 [easycwmp] NOTICE - interface eth1.4093 has ip 192.168.20.99
+++ HTTP SERVER CONFIGURATION +++
ip: '192.168.20.99'
port: '7547'
--- HTTP SERVER CONFIGURATION ---
2017-04-24 09:20:14 [easycwmp] NOTICE - http server initialized
2017-04-24 09:20:14 [easycwmp] NOTICE - entering main loop
2017-04-24 09:20:14 [easycwmp] NOTICE - start session
+++ HTTP CLIENT CONFIGURATION +++
http_client_init(50):: url: http://192.168.4.11:9090/ACS-server/ACS [^]
http_client_init(56):: ssl_verify: SSL certificate validation disabled.
--- HTTP CLIENT CONFIGURATION ---
2017-04-24 09:20:14 [easycwmp] NOTICE - configured acs url http://192.168.4.11:9090/ACS-server/ACS [^]
2017-04-24 09:20:14 [easycwmp] NOTICE - external script init
2017-04-24 09:20:14 [easycwmp] NOTICE - external: execute inform parameter
2017-04-24 09:20:16 [easycwmp] NOTICE - send Inform
+++ SEND HTTP REQUEST +++
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <soap_env:Envelope
xmlns:soap_env="http://schemas.xmlsoap.org/soap/envelope/" [^]
xmlns:soap_enc="http://schemas.xmlsoap.org/soap/encoding/" [^]
xmlns:xsd="http://www.w3.org/2001/XMLSchema" [^]
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" [^]
xmlns:cwmp="urn:dslforum-org:cwmp-1-2">
  <soap_env:Header>
   <cwmp:ID soap_env:mustUnderstand="1">1</cwmp:ID>
  </soap_env:Header>
  <soap_env:Body>
   <cwmp:Inform>
    <DeviceId>
     <Manufacturer>EBANG</Manufacturer>
     <OUI>8CC7D0</OUI>
     <ProductClass>EB-MIG-1800ZG</ProductClass>
     <SerialNumber>83170311002Y00002</SerialNumber>
    </DeviceId>
    <Event soap_enc:arrayType="cwmp:EventStruct[1]">
     <EventStruct>
      <EventCode>0 BOOTSTRAP</EventCode>
      <CommandKey />
     </EventStruct>
    </Event>
    <MaxEnvelopes>1</MaxEnvelopes>
    <CurrentTime>2017-04-24T09:20:14+00:00</CurrentTime>
    <RetryCount>0</RetryCount>
    <ParameterList soap_enc:arrayType="cwmp:ParameterValueStruct[10]">
     <ParameterValueStruct>
      <Name>Device.DeviceInfo.HardwareVersion</Name>
      <Value xsi:type="xsd:string">10</Value>
     </ParameterValueStruct>
     <ParameterValueStruct>
      <Name>Device.DeviceInfo.Manufacturer</Name>
      <Value xsi:type="xsd:string">EBANG</Value>
     </ParameterValueStruct>
     <ParameterValueStruct>
      <Name>Device.DeviceInfo.ManufacturerOUI</Name>
      <Value xsi:type="xsd:string">8CC7D0</Value>
     </ParameterValueStruct>
     <ParameterValueStruct>
      <Name>Device.DeviceInfo.ProductClass</Name>
      <Value xsi:type="xsd:string">EB-MIG-1800ZG</Value>
     </ParameterValueStruct>
     <ParameterValueStruct>
      <Name>Device.DeviceInfo.ProvisioningCode</Name>
      <Value xsi:type="xsd:string"></Value>
     </ParameterValueStruct>
     <ParameterValueStruct>
      <Name>Device.DeviceInfo.SerialNumber</Name>
      <Value xsi:type="xsd:string">83170311002Y00002</Value>
     </ParameterValueStruct>
     <ParameterValueStruct>
      <Name>Device.DeviceInfo.SoftwareVersion</Name>
      <Value xsi:type="xsd:string">soft_V1.0</Value>
     </ParameterValueStruct>
     <ParameterValueStruct>
      <Name>Device.DeviceInfo.SpecVersion</Name>
      <Value xsi:type="xsd:string">1.0</Value>
     </ParameterValueStruct>
     <ParameterValueStruct>
      <Name>Device.ManagementServer.ConnectionRequestURL</Name>
      <Value xsi:type="xsd:string">http://192.168.20.99:7547/</Value> [^]
     </ParameterValueStruct>
     <ParameterValueStruct>
      <Name>Device.ManagementServer.ParameterKey</Name>
      <Value xsi:type="xsd:string">unsetCommandKey</Value>
     </ParameterValueStruct>
    </ParameterList>
   </cwmp:Inform>
  </soap_env:Body>
 </soap_env:Envelope>
--- SEND HTTP REQUEST ---
> POST /ACS-server/ACS HTTP/1.1
Host: 192.168.4.11:9090
User-Agent: easycwmp
Content-Type: text/xml; charset="utf-8"
SOAPAction:
Content-Length: 2733
Expect: 100-continue

* Operation timed out after 30008 milliseconds with 0 bytes received
2017-04-24 09:20:46 [easycwmp] NOTICE - LibCurl Error: Operation timed out after 30008 milliseconds with 0 bytes received
2017-04-24 09:20:46 [easycwmp] NOTICE - sending http message failed
rpc_inform(218): sending Inform http message failed
2017-04-24 09:20:46 [easycwmp] NOTICE - sending Inform failed
2017-04-24 09:20:46 [easycwmp] NOTICE - external: execute apply service
2017-04-24 09:20:46 [easycwmp] NOTICE - external script exit
2017-04-24 09:20:46 [easycwmp] NOTICE - end session failed
2017-04-24 09:20:46 [easycwmp] NOTICE - retry session in 7 sec, RetryCount = 1
^C2017-04-24 09:20:50 [easycwmp] NOTICE - exiting
No tags attached.
? cpe_connect_error.pcap (3,935) 2017-04-24 03:33
http://support.easycwmp.org/file_download.php?file_id=99&type=bug
? another_CPE_ok_con.pcap (9,377) 2017-04-24 03:54
http://support.easycwmp.org/file_download.php?file_id=100&type=bug
? disable_http_100.pcap (3,421) 2017-04-25 03:09
http://support.easycwmp.org/file_download.php?file_id=101&type=bug
Issue History
2017-04-24 03:33andy_yangNew Issue
2017-04-24 03:33andy_yangFile Added: cpe_connect_error.pcap
2017-04-24 03:54andy_yangNote Added: 0000690
2017-04-24 03:54andy_yangFile Added: another_CPE_ok_con.pcap
2017-04-24 10:49andy_yangNote Added: 0000691
2017-04-24 10:49andy_yangNote Added: 0000692
2017-04-24 13:22mohamed.kallelNote Added: 0000693
2017-04-25 03:08andy_yangNote Added: 0000694
2017-04-25 03:08andy_yangNote Added: 0000695
2017-04-25 03:09andy_yangFile Added: disable_http_100.pcap
2017-04-25 10:40mohamed.kallelNote Added: 0000696
2017-04-27 08:25andy_yangNote Added: 0000697
2017-04-27 10:17mohamed.kallelNote Added: 0000698
2017-04-27 10:17mohamed.kallelStatusnew => resolved
2017-04-27 10:17mohamed.kallelResolutionopen => fixed
2017-04-27 10:17mohamed.kallelAssigned To => mohamed.kallel

Notes
(0000690)
andy_yang   
2017-04-24 03:54   
I use other CPE device with tr069, that can connect with the ITMS(ACS) of HUAWEI.
please refer to captured packet file(another_CPE_ok_con.pcap).

Another CPE device ip is 192.168.20.12
ITMS(ACS) ip addr is 192.168.4.11
(0000691)
andy_yang   
2017-04-24 10:49   
I analysis that the Easycwmp send the post packet with SOAP not supported by my acs or the HTTP packet format envelope error?
(0000692)
andy_yang   
2017-04-24 10:49   
what's your viewpoint?
(0000693)
mohamed.kallel   
2017-04-24 13:22   
try to set the "http100continue_disable" option to 1 in your easycwmp config

uci set easycwmp.@acs[0].http100continue_disable=1
uci commit
(0000694)
andy_yang   
2017-04-25 03:08   
I have try this method,but it's still not OK!!
please refer to packet file disable_http_100.pcap.
(0000695)
andy_yang   
2017-04-25 03:08   
the log is the same as above.
....
....
--- SEND HTTP REQUEST ---
> POST /ACS-server/ACS HTTP/1.1
Host: 192.168.4.11:9090
User-Agent: easycwmp
Content-Type: text/xml; charset="utf-8"
SOAPAction:
Content-Length: 2733

* Operation timed out after 30004 milliseconds with 0 bytes received
2017-04-25 09:06:59 [easycwmp] NOTICE - LibCurl Error: Operation timed out after 30004 milliseconds with 0 bytes received
2017-04-25 09:06:59 [easycwmp] NOTICE - sending http message failed
rpc_inform(218): sending Inform http message failed
2017-04-25 09:06:59 [easycwmp] NOTICE - sending Inform failed
2017-04-25 09:06:59 [easycwmp] NOTICE - external: execute apply service
2017-04-25 09:06:59 [easycwmp] NOTICE - external script exit
2017-04-25 09:06:59 [easycwmp] NOTICE - end session failed
2017-04-25 09:06:59 [easycwmp] NOTICE - retry session in 15 sec, RetryCount = 2
2017-04-25 09:07:14 [easycwmp] NOTICE - start session
+++ HTTP CLIENT CONFIGURATION +++
http_client_init(50):: url: http://192.168.4.11:9090/ACS-server/ACS [^]
http_client_init(56):: ssl_verify: SSL certificate validation disabled.
--- HTTP CLIENT CONFIGURATION ---
2017-04-25 09:07:14 [easycwmp] NOTICE - configured acs url http://192.168.4.11:9090/ACS-server/ACS [^]
2017-04-25 09:07:14 [easycwmp] NOTICE - external script init
2017-04-25 09:07:14 [easycwmp] NOTICE - external: execute inform parameter
2017-04-25 09:07:15 [easycwmp] NOTICE - send Inform
+++ SEND HTTP REQUEST +++
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <soap_env:Envelope
xmlns:soap_env="http://schemas.xmlsoap.org/soap/envelope/" [^]
xmlns:soap_enc="http://schemas.xmlsoap.org/soap/encoding/" [^]
xmlns:xsd="http://www.w3.org/2001/XMLSchema" [^]
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" [^]
xmlns:cwmp="urn:dslforum-org:cwmp-1-2">
  <soap_env:Header>
   <cwmp:ID soap_env:mustUnderstand="1">3</cwmp:ID>
....
....
(0000696)
mohamed.kallel   
2017-04-25 10:40   
some ACSs require that the xml tag attribute should be displayed in the same line.
In the microxml source code, try to change the the new lines by spaces of <sopa_env> attribute.
You can see that the name spaces attributes in the sop_env tag are displayed in new lines. try to replaced by spaces.
(0000697)
andy_yang   
2017-04-27 08:25   
Thanks for your idea. I have fixed my issue.The cause is that xml version the easycwmp use cwmp="urn:dslforum-org:cwmp-1-2" but my acs use cwmp="urn:dslforum-org:cwmp-1-0"
Thank you again!
(0000698)
mohamed.kallel   
2017-04-27 10:17   
Great!