No description
Find a file
2012-11-23 15:59:50 +00:00
docs copy 2012-11-22 13:29:17 +00:00
src <empty commit message> 2012-11-23 15:59:50 +00:00
Makefile <empty commit message> 2012-11-23 10:15:49 +00:00
README copy 2012-11-22 13:29:17 +00:00

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

1)Build
    Requirements :
	librairies:
	- libuci.so
	- libexpat.so
	- libcurl.so
	- libpthread.so
	- libopenssl.so
	- libz.so
	- libcrypto.so
	the librairies should be present in the "staging_dir/target-i386_uClibc-0.9.30.1/usr/lib/"  or "staging_dir/toolchain-mips_gcc-4.3.3+cs_uClibc-0.9.30.1/usr/lib"
	
	header files and folders:
	- expat.h
	- expat_external.h
	- uci.h
	- uci_config.h
	- zlib.h
	- curl folder
	- openssl folder
	the header files and folders should be present in the staging_dir/target-i386_uClibc-0.9.30.1/usr/include/ or staging_dir/toolchain-i386_gcc-4.1.2_uClibc-0.9.30.1/usr/include/


if a librairie doesn't exist:
 	a- run make menuconfig and select the librarie
	b- build the librarie package

2) Build

this software is composed of 3 packages:
- cwmpd package:  contains cwmpd daemon
- cwmp lib package: contains cwmplib and contains cwmp_value_change binary. They could be used by other user space applications in order to notify the cwmp daemon when paramter changes
- cwmp kernel package: contains cwmp kernel module. This module could be used by other kernel modules to notify the cwmpd daemon  when kernel parameter changes

The three packages should be selected in the make menu config in order to get the three packages compiled.
To compile the three packages: $ make package/cwmpd/compile 

3) OpenWRT settings
in the  OpenWRT, Add the following lines in the /usr/share/udhcpc/default.script file:
 uci_set_state provisioning iup tr069url "$url"
 uci_set_state provisioning iup provisioningcode "$provisioningcode"

4) Run
    Requirements:
	- libuci package should be installed
	- libexpat package should be installed
	- libcurl package should be installed
	- libpthread package should be installed
	- libopenssl package should be installed
	- libz package should be installed
	- libcrypto package should be installed
    
    Configure the acs url in the /etc/config/cwmp
    and then start the cwmpd service: /etc/init.d/cwmpd start
    for the help: /etc/init.d/cwmpd

5) Value Change

5.1) value change for user space applications (using the libcwmp)

Before using the libcwmp, we should check that the libcwmp package is selected in "make menu config". and we should check that the package is compiled.
The libcwmp should be installed uin the OpenWRT firmware

example of using libcwmp
in myapplication.c

#...
#include <cwmp_lib.h>
#...

int anyfunction ()
{
   .....
   /* parameter change here  */
   /* so we inform the cwmp: */
   lib_api_cwmp_value_change_call (3, "InternetGatewayDevice.LANDevice.{i}.LANHostConfigManagement.IPInterface.{i}.IPInterfaceIPAddress","lan2","3");
   .....
/*
Description of lib_api_cwmp_value_change_call input parameters
 parameter 1 : is the number of input string in the function lib_api_cwmp_value_change_call
 parameter 2 : is the parameter path
 parameter 3 : is the first correspondence related to the first indice
 parameter 4 : is the second correspondence related to the second indice
   .
   .
   .
 parameter n : is the (n-2) correspondence related to the (n-2) indice
*/

}

5.2) value change for user space applications (using the cwmp_value_change CLI)

Before using the libcwmp, we should check that the libcwmp package is selected in "make menu config". and we should check that the package is compiled.
The libcwmp should be installed uin the OpenWRT firmware

in OpenWRT:

root@OpenWrt:~# cwmp_value_change InternetGatewayDevice.LANDevice.{i}.LANHostConfigManagement.IPInterface.{i}.IPInterfaceIPAddress "lan2" "3"

in this case the command will force cwmp client to send a notification to the ACS (if and only if the parameter path as configured as active or as passive parameter using the setAttributeParameter method)

5.3) value change for kernel space modules
Before using the cwmp kernel module for value change, we should check that the kernel module package is selected in "make menu config". and we should check that the package is compiled.
The kernel module should be installed uin the OpenWRT firmware and should be insert before all other kernel modules

example of using cwmp kernel module
in mykernelmodule.c

#...
#include <linux/cwmp_kernel.h>
#...

int anykernelfunction ()
{
   .....
   /* parameter change here  */
   /* so we inform the cwmp: */
   kernel_api_cwmp_value_change_call (3, "InternetGatewayDevice.LANDevice.{i}.LANHostConfigManagement.IPInterface.{i}.IPInterfaceIPAddress","lan2","3");
   .....
/*
Description of lib_api_cwmp_value_change_call input parameters
 parameter 1 : is the number of input string in the function lib_api_cwmp_value_change_call
 parameter 2 : is the parameter path
 parameter 3 : is the first correspondence related to the first indice
 parameter 4 : is the second correspondence related to the second indice
   .
   .
   .
 parameter n : is the (n-2) correspondence related to the (n-2) indice
*/

}