TR-069 is a technical specification that defines an application layer protocol for remote management of end-user devices. It was published by the Broadband Forum and was entitled CPE WAN Management Protocol (CWMP). It provides the communication between CPE and Auto Configuration Servers (ACS). An ACS can manage a device, trouble shoot, configure, upgrade etc. TR-69 uses common web protocols such as HTTP, TCP-IP, SOAP, XML-RPCs to exchange information.
The CPE is responsible for establishing the session to the server. The CPE keeps sending HTTP POST requests during the session. The session is closed as soon as both CPE & GenieACS have indicated that they have nothing more to send (response or new RPC).
Ensure the GenieACS Server Setup is launched and running to establish the Client-Server communication
GenieACS server home page:

Client BPIR4 set-up
Steps to be followed:
1) Flash the RDK-Broadband image where the Tr069 Protocol Agent is enabled.
root@Filogic-GW:/lib/systemd/system# systemctl status CcspTr069PaSsp.service
● CcspTr069PaSsp.service - CcspTr069PaSsp service
Loaded: loaded (/lib/systemd/system/CcspTr069PaSsp.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2022-04-28 17:43:08 UTC; 2 years 6 months ago
Process: 3809 ExecStartPre=/bin/sh -c val=`syscfg get EnableTR69Binary`; if [ "$val" == "false" ]; then `systemctl stop CcspTr069PaSsp`; fi (code=exited, status=0/SUCCESS)
Process: 3834 ExecStart=/usr/bin/CcspTr069PaSsp -subsys $Subsys (code=exited, status=0/SUCCESS)
Main PID: 3856 (CcspTr069PaSsp)
Tasks: 17 (limit: 4713)
Memory: 9.2M
CGroup: /system.slice/CcspTr069PaSsp.service
└─ 3856 /usr/bin/CcspTr069PaSsp -subsys eRT. |
2) Check for the CcspTr069PaSsp is active and listening to port 7547

3)Then, set the parameters for connecting CPE with ACS server.
$ dmcli eRT setv Device.ManagementServer.EnableCWMP bool true $ dmcli eRT setv Device.ManagementServer.URL string http://192.168.2.165:7547/ $ dmcli eRT setv Device.DeviceInfo.X_RDKCENTRAL-COM_Syndication.TR69CertLocation string "/etc/cacert.pem" |
5) Now, from the GenieACS Server try to fetch the Connected Devices details.
1) Visit the GenieACS Server page
2) Click on "Devices" that displays the connected devices information and the device parameters available

3) Force Inform Parameters
The following parameters must be supported for Forced Inform: Device.DeviceInfo.HardwareVersion Device.DeviceInfo.SoftwareVersion Device.DeviceInfo.ProvisioningCode Device.ManagementServer.ParameterKey Device.ManagementServer.ConnectionRequestURL |
4) Download Message
The Download message contains:
As mentioned in logs.
241029-12:43:20.427125 [mod=TR69, lvl=INFO] [tid=155207] ACS Request now at: 1730205800 241029-12:43:20.453079 [mod=TR69, lvl=INFO] [tid=155207] ACS Request has completed with status code 0, at 1730205800 241029-12:48:20.271983 [mod=TR69, lvl=WARN] [tid=46956] CcspManagementServer_GetURL -#- ManagementServerURLID_PSM: http://192.168.2.165:7547/ 241029-12:48:20.273168 [mod=TR69, lvl=INFO] [tid=46956] rbus.c:5739 Method_InvokeInternal success response with returnCode:0 241029-12:48:20.273247 [mod=TR69, lvl=WARN] [tid=46956] bInitialContact switched to <TRUE> as MgmtCRPwdID was missing 241029-12:48:20.273272 [mod=TR69, lvl=WARN] [tid=46956] Manufacturer: Mediatek Inc. , OUI : 0xFFFFFFFE, ProductClass: XB3, SerialNumber: d273d53ac48e, ProvisionCode: d273d53ac48e 241029-12:38:45.572348 [mod=TR69, lvl=WARN] [tid=46956] CcspTr069PaSsp_DeviceDefaultUsernameGenerate -- default username is '0xFFFFFFFE-XB3-d273d53ac48e' 241029-12:38:45.572396 [mod=TR69, lvl=WARN] [tid=46956] CcspManagementServer_GetUsername -- default username generation Success 0xFFFFFFFE-XB3-d273d53ac48e 241029-12:38:45.572537 [mod=TR69, lvl=WARN] [tid=46956] CcspTr069PaSsp_retrieveSharedKey -- Plain Shared Key Available 241029-12:38:45.578569 [mod=TR69, lvl=WARN] [tid=46956] CcspTr069PaSsp_DeviceDefaultPasswordGenerate -- default password is '0e3d901efd6fcd9221c2f4f6789a771b50fb8c8d555be6f3e6e4159e0400e28b', hashLength = 0 |
-Setting data-model value from ACS server and retrieving the data-model info from CPE, Updating mentioning data model . "Device.X_CISCO_COM_DeviceControl.LanManagementEntry.1.LanMode"
1)Refresh "Device.X_CISCO_COM_DeviceControl" by scrolling in ACS page.
2) After refreshing all paramaters wrt "Device.X_CISCO_COM_DeviceControl" will be updated in acs server as mentioned below.
From the image we can see that
"Device.X_CISCO_COM_DeviceControl.LanManagementEntry.1.LanMode" value is router. so now we will change this value to "bridge-static".
3)From cpe side also we can see that LanMode is router.
4)From ACS server side change Lanmode paratmetor to bridge-state from router mode using edit option, edit option which will be visible at right side to the specified datamodel.

5)Then select commit option which will be populated at right corner to confirm the changes to be modified.

6) After selecting commit button, we can see Lanmode paramator data will be update.
7)Modified datamodel info from CPE device(BPIR4).
root@Filogic-GW:~# dmcli eRT getv Device.X_CISCO_COM_DeviceControl.LanManagementEntry.1.LanMode
CR component name is: eRT.com.cisco.spvtg.ccsp.CR
subsystem_prefix eRT.
Execution succeed.
Parameter 1 name: Device.X_CISCO_COM_DeviceControl.LanManagementEntry.1.LanMode
type: string, value: bridge-static |
1) Jira for TR069 support in BPIR4:
2)More Info with respect to tr69 validation in bpir4:
Acs server is taking time to update all the parameters at initial .
Jira for this bug: