Every data model in TR-069 contains the objects and parameters that represent the functions of a broadband CPE or other device. This includes their addressable name, syntax, data types, and a normative description of how they are to be used.
Let’s look at an actual data model XML document for Device:2. First you’ll see a set of comments. These will name the most recent editors and give you an overview of the updates in each version.
Every data model document starts with the dm:document element. This element describes the namespace that the data model pulls from. In this case, you can see that it is an instance of the cwmp data model schema, and defines the spec name as tr-181-2-10-0.
Next comes a list of complex datatypes. In addition to the simple types provided by XML, this is where types specific to CWMP are built. This includes things like IPv4 and IPv6 addresses, MAC address, etc. Use these to determine any type and pattern restrictions on standard BBF datatypes.
Now let’s look at the model itself. This starts with the model element, giving the name of the model, in this case Device:2.10, and immediately starts with the Root object, “Device”.
Every object contains some or all of several attributes. These attributes are important to understanding the purpose and requirements of the object. These include:
Multi-instance objects also contain a few elements other than parameters. Most notable are the “uniqueKey” elements. Since a multi-instance object can be considered a database table, the data model acts as a schema describing structure of entries in that table and the table itself. Unique Key elements are used to describe which parameters must be unique across the entire table; that is, that uniquely identify the object instance.
There are two kinds of unique keys; “functional” and “non-functional”. A functional unique key is a parameter that serves a purpose necessary to the function of the object, such as IPAddress in the IPv4Address table. A non-functional unique key is a parameter whose purpose is to provide a unique key, such as Name or Alias parameters.
An object’s unique key is the Union of all listed unique keys; for example, an IPAddress object has Alias, IPAddress, and SubnetMask all as unique keys.
Develop your solution even faster with the industry standard in automated, expert testing.