zoukankan      html  css  js  c++  java
  • 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日志文件。

  • 相关阅读:
    餐巾计划问题 zwk费用流解法
    Subsequence Count 2017ccpc网络赛 1006 dp+线段树维护矩阵
    smarty之缓存机制
    mysql中 where in 用法详解
    sql语句中left join、inner join中的on与where的区别
    PHP表单数组的具体使用方法介绍
    document.body.scrollTop值为0的解决方法[转]
    left join on and和left join on where条件的困惑[转]
    Uedit32_17.00 修改某一语言背景色-修改后续名后语法着色及某语言的大括号{}对齐
    CSS 针对谷歌浏览器(Chrome) safari的webkit核心浏览器CSS hack
  • 原文地址:https://www.cnblogs.com/aimmiao/p/13579609.html
Copyright © 2011-2022 走看看