TR069协议编程基础知识
本作品内容为TR069协议编程基础知识,格式为 docx ,大小 3520729 KB ,页数为 61页
('TR069协议编程基础知识TR069协议编程需掌握知识TR0691、TR069协议是由DSL所开发的技术规范,它提供了对网络设备进行管理配置的通用框架和协议,用于从网络侧对网关、FEMTO、路由器等设备进行远程管理。当前在统一网管的实现过程中需要处理TR069协议包数据,为了能够正确的处理设备的请求响应,就必须对TR069协议包数据内容有所了解。协议组成2、协议组成如下图层描述:(1)(2)(3)每个周期上报时间,对应的RPC命令INFORM+"2PERIODIC"(4)可选的ScheduleInform方法被要求,对应RPC命令是的是INFORM+"3SCHEDULED"(5)CPE接收到来自ACS的有效连接请求,对应的RPC命令INFORM+"6CONNECTIONREQUEST"(6)ACS的URL发生变化,对应的RPC命令是对应RPC命令INFORM+"0BOOTSTRAP"(7)CPE的参数发生更改,如CPE的IP地址;(8)CPE的参数值发生变化,并且这个变化不是由ACS引起的,对应对应的RPC命令是INFORM+"4VALUECHANGE"CPE与ACS连接示意图如下:ACS发起连接:ACS向CPE发起连接通过HTTPGET请求;(1)需要注意的是连接使用的必须是HTTP请求而不是HTTPS(2)并且GET通告中不需要包含其它数据,即使有数据也会被CPE忽略。(3)CPE接到GET请求后与ACS建立连接,并在成功建立连接后发送一条INFORM报文。连接建立示意图ACS与CPE之间结束会话:ACS与CPE之间的会话如果要正常结束需要以下条件:(1)CPE不再有请求发给ACS(2)ACS也没有请求发给CPE(3)CPE已经发送完毕ACS的请求响应(4)ACS已经发送完毕CPE的请求响应RPC方法方法列表方法介绍1、Inform信息:由CPE传送到网管,CPE事件通过绑定Inform信息进行上报;事件的EVENT_CODE有(1)"0BOOTSTRAP",表示会话发起的原因是CPE首次安装或者是ACS的URL发生变化。网管接收到后要执行注册流程(2)"1BOOT",表示会话发起的原因是CPE通电启动或者是重置,包括系统首次启动,以及任何原因引起的重启,或者是事件"MReboot"引起的;(3)"2PERIODIC",表示会话发起的原因是因为定时Inform策略引起的。(4)"3SCHEDULED",表示会话发起的原因是因为CPE定时调用了ScheduleInform方法引起的。该EVENT_CODE必须位于"MScheduleInform"中。(5)"4VALUECHANGE",表示会话发起的原因是CPE的一个或者多个参数值发生变化。(6)"5KICKED",表示会话发起的原因是为了Web标识管理(?)(7)"6CONNECTIONREQUEST",表示会话发起的原因是源自ACS的ConnectionRequestNotification(8)"7TRANSFERCOMPLETE",表示会话发起的原因是上传或者下载成功(不管是否真的成功)(9)"8DIAGNOSTICSCOMPLETE",当完成由ACS要求的诊断测试后,重新与ACS建立连接时用(10)"9REQUESTDOWNLOAD",表示会话发起的原因是CPE要求调用RequestDownload方法(11)"10AUTONOMOUSTRANSFERCOMPLETE",表示会话发起的原因是由CPE主动的上传或者下载成功,而不是ACS的请求(11)"MReboot","MScheduleInform","MDownload","MUpload",带有“M“字符说明这个是执行ACS请求方法的结果,里面一般含有其它的EVENT_CODE;如:"MReboot"含有"1BOOT","MScheduleInform"含有"3SCHEDULED"(12)"X_CU_ALARM","X_DISCOVER"厂商自定以规范前者表示告警信息,后者表示发现信息2、GetParameterNames:由ACS发起,用于发现CPE上的可访问参数。涉及到的数据表有命令请求操作处理:CO_RTU,CO_PROTOCOL,CO_CHANEL;回应信息处理:CO_PARAM_LIST,CO_NE_PARAM,CO_CWMP_PARAM_LIST3、GetParameterValues:由ACS发起,用于查找CPE上一个或者多个参数的值。4、SetParameterAttributes:由ACS发起,用于修改CPE上一个或者多个参数的属性。5、SetParameterValues:由ACS发起,用于修改CPE上一个或者多个参数的值。6、AddObject:由ACS发起,用于对一个特定的多实例对象创建一个新的实例。7、DeleteObject:由ACS发起,用于删除一个对象的特定实例8、Reboot:由ACS发起,用于重启指定的CPE终端9、DownLoad:由ACS发起,用于要求CPE终端在指定的位置下载指定的文件10、Upload:由ACS发起,用于要求CPE终端向指定位置上传某一特定文件11、FactoryReset:由ACS发起,用于要求特定的CPE终端恢复出厂设置。12、GetRpcMethods由CPE或者是ACS发起,用于发现另一方所支持的方法集。方法参数详解1INFORM参数内容见下表:参数类型描述DeviceIDDeviceIdStructManufactucer,OUI,ProductClass(用于标识产品或者产品类型),SerialNumberEventEventStruc说明引发会话建立的一t个或者多个事件MaxEnvelopeUnsignedintCPE能够从ACS接受的一个HTTP回复中的最大SOAP信包数目。若为0则说明没有限制CurrentTimedateTimeCPE当前日期时间RetryCountUnsignedint在完成对inform方法的调用前,进行进行了多少次调用尝试,在每次非成功的尝试后增加1。非成功的尝试包括发送Inform报文以及与ACS建立连接,或每次对Inform的报文的不成功调用,如:接收到错误应答或没有接收应答。在已经发送了Inform报文并成功得到应答后该值被重置为0ParameterListParameterValueStructCPE在Inform请求中包含的参数信息表,每次上报必须包含一些参数:硬件版本、软件版本、ManagementServer.ConnectionRequestURL、CommandKey等2GetRpcMethods参数内容见下表参数类型描述该方法没有调用参数3GetRpcMethodsResponse参数参数类型描述MethodListString()[]字符串数组,包含支持的每一个RPC名称。例如:CPE返回方法列表给ACS:“GetRPCMethods”“SetParameterValues”“GetParameterValues”“SetParameterNames”“GetParameterNames”“AddObject”“DeleteObject”“Reboot”4SetParameterValues参数参数类型描述ParameterListParamterValueStruct[]一个Name-Value的键值对数组。对每个Name-ValueCPE会将对应参数到的值设为指定值ParameterKeyString(32)设置ParameterKey的参数值。该值可以用于acs,来识别参数更新,或者让其为空5SetParameterValuesResponse参数参数类型描述Statusint[0:1]对该方法的成功应答返回一个整数型的枚举值定义如下:0=参数的改动已经验证并应用。1=参数的改动已经验证并提交,只是尚未应用(比如,在新的参数值应用前需要进行重新启动)。6ParameterValueStruct定义参数类型描述Namestring(256)参数的名称。Value任意类型需要设置的值7GetParameterNames参数参数类型描述ParameterPathstring(256)包括一个完整参数名或部分路径名的字符串,代表名称层次的一个子集。空字符串代表名称空间的顶层。部分路径名必须在层次中的最后一个节点名称后面以“.”(点)结尾。下面是完整参数名的例子:InternetGatewayDevice.DeviceInfo.SerialNumber下面是部分路径名的一个例子:InternetGatewayDevice.DeviceInfo.NextLevelboolean如果值为false,则CPE响应将列出所有以ParameterPath参数指定字符串开始的参数的完整路径名。如果值为true,则CPE响应只列出指定的ParameterPath下一层的部分路径名。例如,如果ParameterPath是“InternetGatewayDevice.LANDevice.”,响应可能列出“InternetGatewayDevice.LANDevice.1.”和“InternetGatewayDevice.LANDevice.2.”,而不会列出在该层次下面的所有参数。8GetParameterNamesResponse参数参数类型描述ParameterListParameterInfoStruct[]结构数组,每个包含一个参数的名称和其它信息,见下表的定义。当NextLevel是false时,这一方法返回所有名称以ParameterPath参数指定的字符串开头的所有可访问的参数及其信息。如果ParameterPath参数是一个空字符串,则将返回该CPE上所有可访问的参数名称。当NextLevel是true时,这一列表包括以ParameterPath指明路径的下一层的所有部分路径名。9ParameterInfoStruct参数参数类型描述Namestring(256)这是参数的名称或部分路径名。Writableboolean是否该参数值能够用SetParameterValues方法来覆盖。如果因NextLevel值为true,该名称是一个部分路径名,则表明是否AddObject和DeleteObject可以被用于该层次来移除该实例或增加其它的实例。10SetParameterAttributes参数参数类型描述ParameterListSetParameterAttributesStruct[]列出用于更改一组参数的属性改动值。该数组中的每项条目是一个SetParameterAttributesStruct结构,在下表中定义。11SetParameterAttributesStruct参数参数类型描述Namestring(256)这是应用新属性的参数的名称。另一种方式是,该名称可以是一个部分路径名,表明新的属性应当应用于命名层次中该节点下的所有参数。部分路径名必须在层次中的最后一个节点名称后面以“.”(点)结尾。空字符串代表名称空间的顶层。NotificationChangeboolean如果为true,Notification的值将替换该参数或参数组的当前notification的设置。如果是false,则不作任何notification设置的改动。Notificationint[0:2]指定是否CPE应当将指定的该(或多个)参数的变化值放到其Inform报文中,以及是否当指定参数的值发生变化时,CPE应当发起一个到ACS的会话。值的定义如下:0=Notification关闭。CPE不必通过ACS指定参数的变化。1=被动式Notification。当指定的参数值变化时,CPE必须在下一次建立与ACS的会话时,将这一新值包含在Inform报文的ParameterList中。2=主动式Notification。一旦指定参数的值发生变化,CPE必须发起与ACS的会话,将新值包含在相应的Inform报文的ParameterList中。因非零的Notification设置引起发送的Inform报文中参数发生变化,事件代码“4VALUECHANGE”必须包括在事件列表中。如果试图给一个不适合设置notification值的参数(比如一个持续变化的统计值)设置notification值,CPE可以返回一个“notificationrequestrejected”错误。AccessListChangeboolean如果为true,AccessList的值会替换该参数或参数组的当前accesslist值。如果为false,accesslist不作改动。AccessListString(64)[]零个或多个实体的数组,该实体对指定的参数有写权限。如果数组中不包含条目,则只允许ACS有写权限。目前,只定义了一类实体可以包含在该列表中:“Subscriber”指明由LAN上的Subscriber控制的设备拥有写权限。比如通过LAN端的DSLCPE配置协议或通过UPnP。默认情况下,在ACS对accesslist作改动前,上述的所有实体应当被赋予写访问权。12SetParameterAttributesResponse参数参数类型描述-void该方法的应答没有参数。13GetParameterAttributes参数参数类型描述ParameterNamesstring(256)[]字符串数组,每一条对应所请求的参数的名称。如果参数名是以部分路径名的方式出现,则该请求需被解释为请求返回命名层次中共用相同前缀的该分支的所有参数。部分路径名必须在层次的最后一个节点名称后面以“.”(点)结尾。空字符串代表整个层次名称的顶部。下面是完整参数名称的例子:InternetGatewayDevice.DeviceInfo.SerialNumber下面是部分路径名称的例子:InternetGatewayDevice.DeviceInfo.14GetParameterAttributesResponse参数参数类型描述ParameterListParameterAttributeStruct[]列示指定的参数集的accesscontrol信息。该数组中的每一条目是一个ParameterAcessStruct结构,在下表中定义。15ParameterAttributesStruct参数参数类型描述Namestring(256)这是给出属性值的参数名称。Notificationint[0:2]指定是否CPE应当将指定的该(或多个)参数的变化值放到其Inform报文中,以及是否当指定参数的值发生变化时,CPE应当发起一个到ACS的会话。值的定义如下:0=Notification关闭。CPE不必通过ACS指定参数的变化。1=被动式Notification。当指定的参数值变化时,CPE必须在下一次建立与ACS的会话时,将这一新值包含在Inform报文的ParameterList中。2=主动式Notification。一旦指定参数的值发生变化,CPE必须发起与ACS的会话,将新值包含在相应的Inform报文的ParameterList中。AccessListstring(64)[]零个或多个实体的数组,该实体对指定的参数有写权限。如果数组中不包含条目,则只允许ACS有写权限。目前,只定义了一类实体可以包含在该列表中:“Subscriber”指明由LAN上的Subscriber控制的设备拥有写权限。比如通过LAN端的DSLCPE配置协议或通过UPnP。16AddObject参数参数类型描述objectNamestring(256)要建立新实例的对象集合的路径名称。路径名必须在该对象的层次名称的最后节点后加上“.”(点)结尾。ParameterKeystring(32)需要设置的ParameterKey参数的值。该参数由服务器决定,并可以为空。17AddObjectResponse参数参数类型描述InstanceNumberunsignedInt[1:]新建对象的实例号码。在对象建立后,可以在路径名中使用该实例号码来引用该对象的参数或子对象。由CPE指定的实例号码是任意的,并且与后续的AddObject调用分配的号码无需连续。CPE不应当将曾经分配出去的现已删除的对象使用过的号码再分配给新的实例。CPE应当在耗尽某指定对象的整个整数值空间后再重用实例号码。Statusint[0:1]对该方法的成功应答返回一个整数型的枚举值定义如下:0=对象已经建立。1=对象的建立已经验证并提交,只是尚未应用(比如,增加新对象前需要进行重新启动)。18DeleteObject参数参数类型描述objectNamestring(256)欲删除的对象实例的路径名。路径名必须以对象的实例号码后加“.”(点)来结尾。ParameterKeystring(32)需要设置的ParameterKey参数的值。该参数由服务器决定,并可以为空。19DeleteObjectResponse参数参数类型描述Statusint[0:1]对该方法的成功应答返回一个整数型的枚举值定义如下:0=对象已经建立。·1=对象的建立已经验证并提交,只是尚未应用(比如,增加新对象前需要进行重新启动)。20DownLoad参数参数类型描述CommandKeystring(32)CPE用来指向特定下载的字符串。该参数在方法TransferComplete和GetQueuedTransfers中引用。FileTypestring(64)一个整数,其后是一个空格,再其后是一个文件类型说明。目前FileType参数仅定义了以下值:"1FirmwareUpgradeImage""2WebContent""3VendorConfigurationFile"下列格式用于定义唯一的厂商自定义文件类型:"X
提供TR069协议编程基础知识会员下载,编号:1700665802,格式为 docx,文件大小为61页,请使用软件:wps,office word 进行编辑,PPT模板中文字,图片,动画效果均可修改,PPT模板下载后图片无水印,更多精品PPT素材下载尽在某某PPT网。所有作品均是用户自行上传分享并拥有版权或使用权,仅供网友学习交流,未经上传用户书面授权,请勿作他用。若您的权利被侵害,请联系963098962@qq.com进行删除处理。