TR069 Device Management client for Wimax CPE

TR069 DM client can be implemented on an RTOS like VxWorks OS for wimax CPE device. The approach mentioned in this paper has taken an OS as a platform which supports asynchronous events and standard POSIX complinat multithreading architecture. The DM client framework can be implemented as framework which responds or reacts to various asynchrouns events that occur in the CPE device. A message queue based architecture is well suited for this design as it introduces simplicity into way the various framework entities interacted with each other. However it may have it inherent latencies due to time consumed by extensive OS processing. A sample TR069 Client framework has been shown in Figure 3

Figure 3 Sample TR069 Client Framework

External entities like Periodic Timers, Device Initialization modules, or Web Server post Asynchronous Events to Message Framework, which are processed and sent to remote ACS Server as SOAP RPC request after initiating session. TR069 client Framework implements Event Discard Policy, Session Retry Policy, Secured communication with remote servers using SSL 3.0/TLS 1.0 based secured TCP Connection and Basic/digest Authentication.
Framework also includes gSOAP vNN compliant XML serializer/deserializer modules for generating SOAP-XML based RPC envelopes.

TR069 DM Client – Supported Data Models

TR069 DM Client on Wimax CPE Implemented two data models –

  1. IGD Data Model as per DSL forum’s requirement TR098. This involved building the following Management Objects into the Data model:
    1. InternetGatewayDevice
    2. LANDevice
    3. WANDevice
  2. VoIP Services Data model as per TR104. This data model implemented following high level Management Objects:
    1. VoiceServices object
    2. Capabilities object
    3. VoiceProfiles object
    4. PhyInterfaces object
Both Data Models complied to DSL forum TR106 Data Model requirements.
As DM client implementation was done for the Wimax CPE, the IGD Data model also implemented Wimax Forum requirements as per documents:
  1. NWG_OTA_Provisioning_Specification V0.7 General
  2. 01219_r000_NWG_OTA_Provisioning_Specification V01.41 TR-069.
Wimax forum enhancements to IGD data model involved additional requirement of establishing ‘association’ between some Operator Profile parameters with WAN Device parameters. For example, The ActiveOperator object in the WiMAXInterfaceConfig maintains references to the selected Channel Plan and Network Provider. Likewise, SubscriptionParameters (Primary, OtherSubscriptions) and the list of EAP Profile sub-objects are associated with an instance of a WANConnectionDevice contained within the WAN Device instance. This association was performed by referencing the selected subscription object within the WiMAXLinkConfig object.

TR069 DM Client – Data Model Integration with CPE

TR069 DM Client integration with the device was done through TR069 Service library that implemented all the Access Methods for configuration parameters specified in the Data Model objects. Access methods in most of the cases were wrappers around network stack api’s exposed by stack vendor. However, many access methods required to invoke multiple netstack api’s to generate desired behavior. This has been illustrated in the form of a diagram in Figure 4

Figure 4 Data Model Integration with CPE

TR069 Client Service Library

Service Library is collection of ‘Access Methods’ implemented for each Parameter of the Data Model implemented. For every Configuration Parameter a Get and a Set method is implemented. Each Data Model object holds pointers to both Get and set Access Methods for all configuration parameters it contains. These Access methods also address the following issues
Multiple Instances of some Objects in the Data Model
Some of the Objects can be Multi-Instance. Hence access to them is done using Instance Index. Examples of such Objects are: Operator Profile, and Subscription Parameters. Get and Set Access Methods are passed as argument instance number of the object for which parameter needs to be accessed.

Parameter Attributes
Attribute for each parameter includes type of notification, and Access List associated with each parameter. Parameter Notification can be “Active, Forced, or None”. This value decides whether a notification needs be sent to ACS Server when parameter is changed by any DM entity other than TR069. Access List associated with each parameter governs which entity(s) is able to access/modify the parameter – TR069, CLI, HTTP, or SNMP.
All CPE Configuration Parameters reside in a parameter text file on flash, and are loaded into a global array at device startup that contains the details like Parameter Name, Type, Size along with a List of Parameter Instance values. For multiple instances of the parameter, multiple line values appear in the parameter text file. However, when loaded into global array, all parameter instances are put into a linked list with its head stored in the array entry as shown in Figure 5

Figure 5 Data Structure for Parameter Instances

All Access Methods broadly perform the following operations:

  1. Obtain Attribute value for appropriate instance of parameter to ascertain that TR069 client access is permitted.
  2. From attribute value, also check if parameter notification type is “None”, or not.
  3. Obtain (Get) or Set parameter value into appropriate Instance structure in this global parameter list.
  4. However, for Set operations, incase associated notification type is not “None”, then Access Method also sets “Value Change” Flag. This flag is checked at the end of all Sets to trigger Asynchronous Event Notification “4 Value Change”.
RPCs implemented were:
  1. GetMethodNames
  2. GetParameterNames
  3. GetParameterValues
  4. SetParameterValues
  5. SetParameterAtributes
  6. GetParameterAtributes
  7. AddObject
  8. DeleteObject
  9. Reboot
  10. FactoryReset
  11. Download

Glossary

ACS - Auto Configuration Server
B-NT - Broadband Network Terminal
CLI - Command Line Interface
CPE - Customer Premises Equipment
CWMP - CPE WAN Management Protocol
DM - Data Model
DSL - Digital Subscriber Loop
RPC - Remote Procedure Call
RTOS - Real Time Operating System
SSL - Security Socket Library
XML - Extended Markup Language






Page Information

  • Changed 6 months ago [show history]
  • View page source
  • You're not logged in
  • Spam-like content was removed from this page.
  • No tags yet learn more

Wiki Information

Recent PBwiki Blog Posts