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报文中增加一个TYPE4 VALUE CHANGEEvent,同时在ParameterList中给出结点路径和变化后的值。

NOTIFY=2 会在结点值变化时立即主动上报一个Event TYPE4 VALUE CHANGEInform, 并且在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 SCHEDULEDM 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执行类型为DownloadRPC,该RPC会包含CPE要下载文件的URL,如果URL有认证的话,RPC还要包含认证用的UsernamePasswordDownload RPC中包含的FileType指示了CPE需要下载的文件的类型,类型有下面几种:

FileTYPE3 Vendor Configuration File,指示CPE完成下载动作后,应该用下载下来的文件进行配置文件升级

FileTYPE1 Fireware Upgrade Image,指示CPE完成下载动作后,应该用下载下来的文件进行固件升级

CPE完成类型为DownloadRPC指定的URL路径的文件下载后,应该主动上报一个Event7 TRANSFER COMPLETEM DownloadInform报文。如果CPE应该升级配置文件或升级固件而有了重启动作,则还需要上报一个Event1 BOOTInform报文。

 

--------------------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执行类型为UploadRPC,该RPC会包含HTTP ServerURl和上传的文件名。如果URL有认证的话,RPC还要包含认证用的UsernamePasswordUploadRPC中包含的FileType指示了CPE需要上传哪种,类型有下面几种:

FileType 1 Vendor Configuration File, 指示CPE应该上传当前的配置文件

FileType 2 Vendor Log File。指示CPE应该上传log日志文件。

 

posted on 2020-08-28 19:29  LiveWithACat  阅读(480)  评论(0编辑  收藏  举报