cwmp part2 测试基础RPC
配置
发出inform报文的CPE端
acsUrl 给出ACS的主机和端口
acsUserName 主动上报Inform时需要向ACS证明自己的合法性提供的账户
acsPassword
conReqUserName 被动连接时需要ACS提供它是合法ACS时用到的账户
conReqPassword
接收inform报文的ACS端配置
acsPort
UserName
Password
Connection Request Username
Connection Request Password
备注:
Tr069协议中指出CPE可以被动接收ACS发起的HTTP Degist认证,也可以主动向ACS发起Inform报文,所以CPE和ACS都分别监听在TCP的某个端口上。所以会有两个监听端口,ACS监听的端口一般是固定的,CPE监听的端口可以自定义,它会在第一次Inform报文中告知ACS自己的监听端口。
GetRPCMethds
ACS请求CPE执行类型为GetRPCMethds的RPC,来获取CPE上支持的RPC list
--------------------CPE 12344321abcd RESULT-------------------------- RPC=GetRPCMethods [RESULT SUCCESS] ==>1:METHOD=GetRPCMethods ==>2:METHOD=Download ==>3:METHOD=Reboot ==>4:METHOD=SetParameterValues ==>5:METHOD=GetParameterValues ==>6:METHOD=GetParameterNames ==>7:METHOD=SetParameterAttributes ==>8:METHOD=GetParameterAttributes ==>9:METHOD=AddObject ==>10:METHOD=DeleteObject ==>11:METHOD=ScheduleInform ==>12:METHOD=Upload ==>13:METHOD=FactoryReset ==>14:METHOD=GetQueuedTransfers ==>15:METHOD=ChangeDUState --------------------END RESULT--------------------------
GetParameterValues
ACS请求CPE执行类型为GetParameterValues的RPC,获取CPE上当前的信息,如下是获取CPE的启动时长。
--------------------CPE 12344321abcd RESULT-------------------------- RPC=GetParameterValues ==>1:PATH=Device.DeviceInfo.UpTime [RESULT SUCCESS] ==>1:NAME=Device.DeviceInfo.UpTime TYPE=unsignedInt VALUE=9255 --------------------END RESULT--------------------------
GetParameterNames
ACS请求CPE执行类型为GetParameterNames的RPC,获取CPE上某些结点的属性,WRITABLE为1表示ACS可读写,为0表示ACS只能读
--------------------CPE 12344321abcd RESULT-------------------------- RPC=GetParameterNames PATH=Device.Time.Enable NEXT LEVEL=0 [RESULT SUCCESS] ==>1:NAME=Device.Time.Enable WRITABLE=1 --------------------END RESULT--------------------------
SetParameterValues
ACS请求CPE执行类型为SetParameterValues的RPC,对于属性WRITABLE为1的结点,可以执行该RPC修改结点的值。CPE处理该请求时,应该按照data model的定义执行相应的动作,比如Device.Time.Enable为0表示CPE应该关掉NTP时间同步功能
--------------------CPE 12344321abcd RESULT-------------------------- RPC=SetParameterValues ==>1:PATH=Device.Time.Enable VALUE=0 [RESULT SUCCESS] ==>STATUS=0 (applied already) --------------------END RESULT--------------------------
SetParameterAttributes
ACS请求CPE执行类型为SetParameterAttributes的RPC,来设置结点的NOTIFY属性,该属性默认为0,也可以设置为1或者2.含义如下
NOTIFY=0 为默认值,表示只有ACS主动下发相应RPC才会获取结点的值
NOTIFY=1 会在结点值变化后, 等到下次因为其他事件需要发送Inform报文时,在Inform报文中增加一个TYPE为4 VALUE CHANGE的Event,同时在ParameterList中给出结点路径和变化后的值。
NOTIFY=2 会在结点值变化时立即主动上报一个Event TYPE为4 VALUE CHANGE的Inform, 并且在Inform报文结构中的ParameterList中给出结点路径和变化后的值
TIPS:
data model中有明确规定不能设置NOTIFY属性为2的结点,比如Device.Optical.Interface.1.Stats.BytesSent
data model中也有明确规定默认NOTIFY属性就为2的结点,比如Device.ManagementServer.ConnectionRequestURL
data model中的其他结点的NOTIFY属性可以通过SetParameterAttributes设置,比如Device.Time.Enable
--------------------CPE 12344321abcd RESULT-------------------------- RPC=SetParameterAttributes ==>1:PATH=Device.Optical.Interface.1.Stats.BytesSent NOTIFY=2 NOTIFY CHANGE=1 ACCESSS LIST: [RESULT FAILED] ==>CPE return code=9009 Notification denied --------------------END RESULT--------------------------
--------------------CPE 12344321abcd RESULT-------------------------- RPC=SetParameterAttributes ==>1:PATH=Device.Time.Enable NOTIFY=1 NOTIFY CHANGE=1 ACCESSS LIST: [RESULT SUCCESS] [RESULT SUCCESS] --------------------END RESULT--------------------------
GetParameterAttributes
ACS请求CPE执行类型为GetParameterAttributes的RPC,来获取结点的NOTIFY属性值
--------------------CPE 12344321abcd RESULT-------------------------- RPC=GetParameterAttributes ==>1:PATH=Device.Time.Enable ==>2:PATH=Device.DeviceInfo.HardwareVersion ==>3:PATH=Device.ManagementServer.ConnectionRequestURL [RESULT SUCCESS] ==>1:NAME=Device.Time.Enable NOTIFICATION=1 ACCESS LIST: Subscriber ==>2:NAME=Device.DeviceInfo.HardwareVersion NOTIFICATION=0 ACCESS LIST: Subscriber ==>3:NAME=Device.ManagementServer.ConnectionRequestURL NOTIFICATION=2 ACCESS LIST: Subscriber --------------------END RESULT--------------------------
AddObject
ACS请求CPE执行类型为AddObject的RPC,来增加某个Object。返回的INSTANCE为i,说明ACS可以通过路径.{i}.来读/写该Object下的结点值。
--------------------CPE 12344321abcd RESULT-------------------------- RPC=AddObject ==>OBJECT=Device.DHCPv4.Server.Pool.1.StaticAddress. [RESULT SUCCESS] ==>INSTANCE=1 ==>STATUS=0(applied already) --------------------END RESULT--------------------------
--------------------CPE 12344321abcd RESULT-------------------------- RPC=GetParameterValues ==>1:PATH=Device.DHCPv4.Server.Pool.1.StaticAddress.1. [RESULT SUCCESS] ==>1:NAME=Device.DHCPv4.Server.Pool.1.StaticAddress.1.Enable TYPE=boolean VALUE=0 ==>2:NAME=Device.DHCPv4.Server.Pool.1.StaticAddress.1.Alias TYPE=string VALUE=cpe-dhcpv4serverpoolstaticaddr-1 ==>3:NAME=Device.DHCPv4.Server.Pool.1.StaticAddress.1.Chaddr TYPE=string VALUE= ==>4:NAME=Device.DHCPv4.Server.Pool.1.StaticAddress.1.Yiaddr TYPE=string VALUE= --------------------END RESULT--------------------------
DeleteObject
ACS请求CPE执行类型为DeleteObject的RPC,来删除某个Object。
--------------------CPE 12344321abcd RESULT-------------------------- RPC=DeleteObject ==>OBJECT=Device.DHCPv4.Server.Pool.1.StaticAddress.1. [RESULT SUCCESS] ==>STATUS=0(applied already) --------------------END RESULT--------------------------
Reboot
ACS请求CPE执行类型为Reboot的RPC,来指定某个CPE做Rebot,CPE在Reboot完成后应该主动上报一个Event Type为1 BOOT的Inform报文
--------------------CPE 12344321abcd RESULT-------------------------- RPC=Reboot ==>COMMAND KEY=d4d83e8befc8b1d7 [RESULT SUCCESS] --------------------END RESULT--------------------------
ScheduleInform
ACS请求CPE执行类型为包含有DelaySeconds值的ScheduleInform的RPC。CPE收到指示会等待指定的DelaySeconds时间,然后上报一个包含有TYPE为3 SCHEDULED和M ScheduleInform的Event的Inform报文
--------------------CPE 12344321abcd RESULT-------------------------- RPC=ScheduleInform ==>COMMAND KEY=4880e503a5704c3b DELAY SECOND=20 [RESULT SUCCESS] --------------------END RESULT--------------------------
FactoryReset
ACS请求CPE执行类型为FactoryReset的RPC,CPE收到RPC后应该执行恢复出厂设置的动作。并在完成出厂后主动上报一个包含TYPE为”0 BOOTSTRAP“和”1 BOOT”的Inform报文。
ConnectionRequest
ACS可以带着认证主动向CPE发起请求,请求CPE上报Inform。认证成功后,CPE会上报一个Event TYPE为” 6 CONNECTION REQUEST”的Inform报文
Download
ACS可以请求CPE执行类型为Download的RPC,该RPC会包含CPE要下载文件的URL,如果URL有认证的话,RPC还要包含认证用的Username和Password。Download RPC中包含的FileType指示了CPE需要下载的文件的类型,类型有下面几种:
FileTYPE为3 Vendor Configuration File,指示CPE完成下载动作后,应该用下载下来的文件进行配置文件升级
FileTYPE为1 Fireware Upgrade Image,指示CPE完成下载动作后,应该用下载下来的文件进行固件升级
CPE完成类型为Download的RPC指定的URL路径的文件下载后,应该主动上报一个Event为7 TRANSFER COMPLETE和M Download的Inform报文。如果CPE应该升级配置文件或升级固件而有了重启动作,则还需要上报一个Event为1 BOOT的Inform报文。
--------------------CPE 12344321abcd RESULT-------------------------- RPC=Download ==>URL=http://192.168.1.100:8090/config.bin ==>File Type =3 Vendor Configuration File ==>Delay=10 ==>Username=alpha ==>Password=alpha [RESULT SUCCESS] ==>Status=0 (null) ==>Start Time=
Upload
ACS可以请求CPE执行类型为Upload的RPC,该RPC会包含HTTP Server的URl和上传的文件名。如果URL有认证的话,RPC还要包含认证用的Username和Password。UploadRPC中包含的FileType指示了CPE需要上传哪种,类型有下面几种:
FileType 1 Vendor Configuration File, 指示CPE应该上传当前的配置文件
FileType 2 Vendor Log File。指示CPE应该上传log日志文件。