TR 181 2 14 0
TR 181 2 14 0
TR-181
Device Data Model
Issue: 2 Amendment 14
Issue Date: November 2020
Notice
The Broadband Forum is a non-profit corporation organized to create guidelines for broadband
network system development and deployment. This Technical Report has been approved by
members of the Forum. This Technical Report is subject to change. This Technical Report is
owned and copyrighted by the Broadband Forum, and all rights are reserved. Portions of this
Technical Report may be owned and/or copyrighted by Broadband Forum members.
Intellectual Property
Recipients of this Technical Report are requested to submit, with their comments, notification of
any relevant patent claims or other intellectual property rights of which they may be aware that
might be infringed by any implementation of this Technical Report, or use of any software code
normatively referenced in this Technical Report, and to provide supporting documentation.
Terms of Use
1. License
Broadband Forum hereby grants you the right, without charge, on a perpetual, non-exclusive and
worldwide basis, to utilize the Technical Report for the purpose of developing, making, having
made, using, marketing, importing, offering to sell or license, and selling or licensing, and to
otherwise distribute, products complying with the Technical Report, in all cases subject to the
conditions set forth in this notice and any relevant patent and other intellectual property rights of
third parties (which may include members of Broadband Forum). This license grant does not
include the right to sublicense, modify or create derivative works based upon the Technical
Report except to the extent this Technical Report includes text implementable in computer code,
in which case your right under this License to create and modify derivative works is limited to
modifying and creating derivative works of such code. For the avoidance of doubt, except as
qualified by the preceding sentence, products implementing this Technical Report are not
deemed to be derivative works of the Technical Report.
2. NO WARRANTIES
THIS TECHNICAL REPORT IS BEING OFFERED WITHOUT ANY WARRANTY
WHATSOEVER, AND IN PARTICULAR, ANY WARRANTY OF NONINFRINGEMENT
AND ANY IMPLIED WARRANTIES ARE EXPRESSLY DISCLAIMED. ANY USE OF
THIS TECHNICAL REPORT SHALL BE MADE ENTIRELY AT THE USER’S OR
IMPLEMENTER'S OWN RISK, AND NEITHER THE BROADBAND FORUM, NOR ANY
OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER
TO ANY USER, IMPLEMENTER, OR THIRD PARTY FOR ANY DAMAGES OF ANY
NATURE WHATSOEVER, DIRECTLY OR INDIRECTLY, ARISING FROM THE USE OF
THIS TECHNICAL REPORT, INCLUDING BUT NOT LIMITED TO, ANY
CONSEQUENTIAL, SPECIAL, PUNITIVE, INCIDENTAL, AND INDIRECT DAMAGES.
All copies of this Technical Report (or any portion hereof) must include the notices, legends, and
other provisions set forth on this page.
TR Issue History
Issue 2 18 July 2016 12 August Klaus Wich, Added G.fast data model
Amendment 11 2016 Axiros (including theory of
Mark Tabry, operation).
Google
Data model additions:
- LED status model
- Layer 2 tunnel support for IP
diagnostics model
- DSL G.fast model
- Management Frame
Protection support for WiFi
model
- WPS 2.0 support for WiFi
model
- User interface toggle
- User interface messaging
model
- ConnectionRequest HTTP
service toggle
- DNS fallback support for
XMPP connections
Issue 2 16 March 9 May 2018 Steve Nicolai, Added Appendix I, II, IV from
Amendment 12 2018 Arris TR-157a10 as Appendix XVII,
XVIII and XIX.
Added Appendix XX
BASAPM and LMAP Theory
of Operations
Added Annex H from TR-
069a5 as Annex C.
Comments or questions about this Broadband Forum Technical Report should be directed to
info@broadband-forum.org.
Table of Contents
Executive Summary ................................................................................................................16
1 Purpose and Scope...........................................................................................................17
1.1 Purpose .......................................................................................................................17
1.2 Scope ..........................................................................................................................17
1.2.1 Detailed structure for common elements ..............................................................20
1.2.2 Detailed structure for CWMP specific elements ...................................................23
1.2.3 Detailed structure for USP specific elements........................................................24
2 References and Terminology...........................................................................................25
2.1 Conventions ................................................................................................................25
2.2 References ..................................................................................................................25
2.3 Definitions ..................................................................................................................29
2.4 Abbreviations ..............................................................................................................31
3 Technical Report Impact.................................................................................................33
3.1 Energy Efficiency .......................................................................................................33
3.2 IPv6 ............................................................................................................................33
3.3 Security.......................................................................................................................33
3.4 Privacy........................................................................................................................33
4 Architecture .....................................................................................................................34
4.1 Interface Layers ..........................................................................................................34
4.2 Interface objects ..........................................................................................................35
4.2.1 Lower Layers .......................................................................................................37
4.2.2 Administrative and Operational Status .................................................................38
4.2.3 Stacking and Operational Status ..........................................................................39
4.2.4 Vendor-specific Interface Objects ........................................................................40
4.3 InterfaceStack Table ...................................................................................................40
5 Parameter Definitions .....................................................................................................45
Annex A Bridging and Queuing........................................................................................46
A.1 Queuing and Bridging Model ......................................................................................46
A.1.1 Packet Classification............................................................................................46
A.1.1.1 Classification Order .........................................................................................47
A.1.1.2 Dynamic Application Specific Classification.....................................................48
A.1.1.3 Classification Outcome.....................................................................................48
A.1.2 Policing ...............................................................................................................49
A.1.3 Queuing and Scheduling ......................................................................................49
A.1.4 Bridging...............................................................................................................50
A.1.4.1 Filtering ...........................................................................................................50
A.1.4.2 Filter Order ......................................................................................................51
A.2 Default Layer 2/3 QoS Mapping .................................................................................52
A.3 URN Definitions for App and Flow Tables .................................................................53
A.3.1 App ProtocolIdentifier .........................................................................................53
List of Figures
List of Tables
Executive Summary
TR-181 Issue 2 defines version 2 of the Device data model (Device:2). The Device:2 data model
applies to all types of TR-069 or USP enabled devices, including End Devices, Residential
Gateways, and other Network Infrastructure Devices.
The Device:2 data model defined in this Technical Report consists of a set of data objects
covering things like basic device information, time-of-day configuration, network interface and
protocol stack configuration, routing and bridging management, throughput statistics, and
diagnostic tests. It also defines a baseline profile that specifies a minimum level of data model
support.
The cornerstone of the Device:2 data model is the interface stacking mechanism. Network
interfaces and protocol layers are modeled as independent data objects that can be stacked, one
on top of the other, into whatever configuration a device might support.
1.2 Scope
The Device:2 data model defined in this Technical Report consists of a set of data objects
covering things like basic device information, time-of-day configuration, network interface and
protocol stack configuration, routing and bridging management, throughput statistics, and
diagnostic tests. It also defines a baseline profile that specifies a minimum level of data model
support.
The cornerstone of the Device:2 data model is the interface stacking mechanism. Network
interfaces and protocol layers are modeled as independent data objects (a.k.a. interface objects)
that can be stacked, one on top of the other, into whatever configuration a device might support.
Because the Device:2 data model can be used with either the USP or the CWMP (TR-069)
protocol, it contains some objects and parameters which only apply if the specific protocol is
used.
Figure 1 illustrates the top-level Device:2 data model structure for CWMP, Figure 2 the top-level
Device:2 data model structure for USP.
Figure 4 – Device:2 Data Model Structure – Common Interface Stack and Networking
Technologies
MUST This word, or the term “REQUIRED”, means that the definition is an
absolute requirement of the specification.
MUST NOT This phrase means that the definition is an absolute prohibition of the
specification.
SHOULD This word, or the term “RECOMMENDED”, means that there could exist
valid reasons in particular circumstances to ignore this item, but the full
implications need to be understood and carefully weighed before choosing a
different course.
SHOULD NOT This phrase, or the phrase “NOT RECOMMENDED” means that there could
exist valid reasons in particular circumstances when the particular behavior
is acceptable or even useful, but the full implications need to be understood
and the case carefully weighed before implementing any behavior described
with this label.
MAY This word, or the term “OPTIONAL”, means that this item is one of an
allowed set of alternatives. An implementation that does not include this
option MUST be prepared to inter-operate with another implementation that
does include the option.
The key words “DEPRECATED” and “OBSOLETED” in this Technical Report are to be
interpreted as defined in TR-106 [3].
2.2 References
The following references are of relevance to this Technical Report. At the time of publication,
the editions indicated were valid. All references are subject to revision; users of this Technical
Report are therefore encouraged to investigate the possibility of applying the most recent edition
of the references listed below.
[1] RFC 2119, Key words for use in RFCs to Indicate Requirement Levels, IETF, 1997
[2] TR-069 Amendment 6, CPE WAN Management Protocol, Broadband Forum, 2018
[3] TR-106 Amendment 8, Data Model Template for CWMP Endpoints and USP Agents,
Broadband Forum, 2018
[4] RFC 3986, Uniform Resource Identifier (URI): Generic Syntax, IETF, 2005
[33] ICSA Baseline Modular Firewall Certification Criteria, Baseline module – version 4.1,
ICSA Labs, 2008
[34] ICSA Residential Modular Firewall Certification Criteria, Required Services Security
Policy – Residential Category module – version 4.1, ICSA Labs, 2008
[35] RFC 4301, Security Architecture for the Internet Protocol, IETF, 2005
[36] RFC 4302, IP Authentication Header (AH), IETF, 2005.
[37] RFC 4303, IP Encapsulating Security Payload (ESP), IETF, 2005
[38] RFC 5996, Internet Key Exchange Protocol Version 2 (IKEv2), IETF, 2010
[39] ETSI TS 102 690 v1.2.1, Machine-to-Machine Communications (M2M Functional
Architecture), ETSI, 2013
[40] ETSI TS 102 921 v1.3.1, M2M mIa, dIa and mId Interfaces, ETSI, 2014
[41] ETSI TS 103 093 v1.2.1, Machine to Machine (M2M); BBF TR-069 Compatible Data
Model for ETSI M2M, ETSI, 2012
[42] ZigBee-2007, ZigBee Specification, The ZigBee Alliance, 2007
[43] RFC 6887, Port Control Protocol (PCP), IETF, 2013
[44] RFC 6970, Universal Plug and Play (UPnP) Internet Gateway Device – Port Control
Protocol Interworking Function (IGD-PCP IWF), IETF, 2013
[45] RFC 7291, DHCP Options for the Port Control Protocol (PCP), IETF, 2014
[46] RFC 7648, Port Control Protocol (PCP) Proxy Function, IETF, 2015
[47] RFC 7488, PCP Server Selection, IETF, 2014
[48] draft-boucadair-pcp-flow-examples, Port Control Protocol (PCP) Flow Examples, IETF,
2013
[49] RFC 2661, Layer Two Tunneling Protocol “L2TP”, IETF, 1999
[50] RFC 2784, Generic Routing Encapsulation (GRE), IETF, 2000
[51] RFC 2890, Key and Sequence Number Extensions to GRE, IETF, 2000
[52] RFC 7597, Mapping of Address and Port with Encapsulation (MAP), IETF, 2014
[53] RFC 7598, DHCPv6 Options for configuration of Softwire Address and Port Mapped
Clients, IETF, 2014
[54] RFC 7599, Mapping of Address and Port using Translation (MAP-T), IETF, 2014
[55] TR-059, DSL Evolution - Architecture Requirements for the Support of QoS-Enabled IP
Services, Broadband Forum, 2013
[56] RFC 4119, A Presence-based GEOPRIV Location Object Format, IETF, 2005
[57] RFC 5491, GEOPRIV Presence Information Data Format Location Object (PIDF-LO)
Usage Clarification, Considerations, and Recommendation, IETF, 2009
[58] RFC 5139, Revised Civic Location Format for Presence Information Data Format Location
Object (PIDF-LO), IETF, 2008
2.3 Definitions
The following terminology is used throughout this Technical Report.
Event An indication that something of interest has happened that requires the Agent to
notify the Controller.
Fixed Network A CPE connecting a home LAN to the WAN, which does not exchange N1 signaling
Residential with the 5GC.
Gateway
Interface Object A type of Object that models a network interface or protocol layer. Commonly
referred to as an interface. They can be stacked, one on top of the other, using Path
References in order to dynamically define the relationships between interfaces.
N1 Reference point between the 5G-RG and the AMF and between the AGF and
AMF in case of FN-RG.
N2 Reference point between W-5GAN and AMF. On the W-5GAN side, the termination
point is the AGF-CP.
N3 Reference point between W-5GAN and UPF. On the W-5GAN side, the termination
point is the AGF-UP.
Object An internal node in the name hierarchy, i.e., a node that can have Object, Parameter,
Command and/or Event children. An Object name is a Path Name.
Parameter A name-value pair that represents part of a CPE or USP Agent’s configuration or
status. A Parameter name is a Path Name.
Path Name A name that has a hierarchical structure similar to files in a directory, with each level
separated by a “.” (dot). References an Object, Parameter, Command or Event.
Path Reference Describes how a parameter can reference another parameter or object via its path
name (Section A.2.3.4/TR-106 [3]). Such a reference can be weak or strong (Section
A.2.3.6/TR-106 [3]).
Upstream A physical interface object whose Upstream parameter is set to true, or an interface
Interface that is associated with such a physical interface via the InterfaceStack. For example,
an upstream IP Interface is an IP.Interface object that is associated with an
Upstream=true physical layer interface.
USP User Services Platform. Defined in TR-369 [66], USP is an evolution of CWMP that
allows applications to manipulate Service Elements in a network of Controllers and
Agents.
USP Agent A USP Agent is a USP Endpoint that exposes Service Elements to one or more USP
Controllers.
USP Controller A USP Controller is a USP Endpoint that manipulates Service Elements through one
or more USP Agents.
USP Endpoint A USP Endpoint is a termination point for a USP message.
Wireline 5G This is a wireline AN that can connect to a 5G core via the AGF. The egress
Access Network interfaces of a W-5GAN form the border between access and core. The interfaces
are N2 for the control plane and N3 for the user plane.
2.4 Abbreviations
This Technical Report uses the following abbreviations:
3.2 IPv6
TR-181 Issue 2 Amendment 14 defines IPv6 extensions 1 to the Device:2 data model.
3.3 Security
TR-181 Issue 2 Amendment 14 has no impact on Security.
3.4 Privacy
TR-181 Issue 2 Amendment 14 has no impact on Privacy.
1
Introduced in Issue 2 Amendment 2
4 Architecture
4.1 Interface Layers
This Technical Report models network interfaces and protocol layers as independent data
objects, generally referred to as interface objects (or interfaces). Interface objects can be stacked,
one on top of the other, using path references in order to dynamically define the relationships
between interfaces.
The interface object and interface stack are concepts inspired by RFC 2863 [6].
Within the Device:2 data model, interface objects are arbitrarily restricted to definitions that
operate at or below the IP network layer (i.e., layers 1 through 3 of the OSI model [7]). However,
vendor-specific interface objects MAY be defined which fall outside this restricted scope.
Figure 10 lists the interface objects defined in the Device:2 data model. The indicated OSI layer
is non-normative; it serves as a guide only, illustrating at what level in the stack an interface
object is expected to appear. However, a CPE need not support or use all interfaces, which
means that the figure does not reflect all possible stacking combinations and restrictions. For
example, one CPE stack might exclude DSL Bonding, while another CPE stack might include
DSL Bonding but exclude Bridging, while still another might include VLANTermination under
PPP, or VLANTermination under IP with no PPP, or even Ethernet Link under IP with no
VLANTermination and no PPP.
NOTE – Throughout this Technical Report, object names are often abbreviated in order to improve
readability. For example, Device.Ethernet.VLANTermination.{i}. is the full name of a Device:2
object, but might casually be referred to as Ethernet.VLANTermination.{i} or
VLANTermination.{i} or VLANTermination, just so long as the abbreviation is unambiguous
(with respect to similarly named objects defined elsewhere within the data model).
Each interface object contains a core set of parameters and objects, which serves as the template
for defining interface objects within the data model. Interface objects can also contain other
parameters and sub-objects specific to the type of interface.
2
Note that, because new minor versions of the Device:2 data model can be defined without re-publishing
this document, the figure is not necessarily up-to-date.
3
The Bridge.{i}.Port.{i} object models both management (upwards facing) Bridge Ports and non-
management (downwards facing) Bridge Ports, where each instance is configured as one or the other.
Management Bridge Ports are stacked above non-management Bridge Ports.
Also, a core set of statistics parameters is contained within a Stats sub-object. The definition of
these parameters MAY be customized for each interface type. The core set of parameters within
the Stats sub-object consists of:
• BytesSent The total number of bytes transmitted out of the interface,
including framing characters.
• BytesReceived The total number of bytes received on the interface,
including framing characters.
• PacketsSent The total number of packets transmitted out of the
interface.
• PacketsReceived The total number of packets received on the interface.
• ErrorsSent The total number of outbound packets that could not be
transmitted because of errors.
• ErrorsReceived The total number of inbound packets that contained errors
preventing them from being delivered to a higher-layer
protocol.
• UnicastPacketsSent The total number of packets requested for transmission,
which were not addressed to a multicast or broadcast
address at this layer, including those that were discarded
or not sent.
• UnicastPacketsReceived The total number of received packets, delivered by this
layer to a higher layer, which were not addressed to a
multicast or broadcast address at this layer.
• DiscardPacketsSent The total number of outbound packets, which were chosen
to be discarded even though no errors had been detected
to prevent their being transmitted.
NOTE – The CPE MUST reset an interface's Stats parameters (unless otherwise stated in individual
object or parameter descriptions) either when the interface becomes operationally down due to a
previous administrative down (i.e., the interface's Status parameter transitions to a down state
after the interface is disabled) or when the interface becomes administratively up (i.e., the
interface's Enable parameter transitions from false to true). Administrative and operational
status is discussed in Section 4.2.2.
These relationships between interface objects can either be set by management action, in order to
specify new interface configurations, or be pre-configured within the CPE.
A CPE MUST reject any attempt to set LowerLayers values that would result in an invalid or
unsupported configuration. The corresponding fault response from the CPE MUST indicate this,
using the appropriate protocol response.
The lowest layer in a fully configured and operational stack is generally the physical interface
(e.g., DSL Line instance representing a DSL physical link). Within these physical interface
objects the LowerLayers parameter will be an empty list, unless some lower layer vendor-
specific interface objects are defined and present. Higher layer interface objects MAY operate
without a physical layer being modeled, however this is a local matter to the CPE.
Figure 11 illustrates the use of the LowerLayers parameter. A, B, C, and D represent interface
objects. Interface A’s LowerLayers parameter references interfaces B and C. Interface B’s
LowerLayers parameter references interface D. Interfaces C and D have no interface references
specified in their LowerLayers parameters. In this way, a multi-layered interface stack is
configured. If the Controller were to delete interface B, then the CPE would update interface A’s
LowerLayers parameter to no longer reference interface B (and interface D would be stranded,
no longer referenced by the now deleted interface B).
B C
D
Figure 11 – Interface LowerLayers
An interface object’s Enable and Status parameters specify the current administrative and
operational status of the interface, respectively. Valid values for the Status parameter are: Up,
Down, Unknown, Dormant, NotPresent, LowerLayerDown, and Error.
The CPE MUST do everything possible in order to follow the operational state transitions as
described below. In some cases, these requirements are defined as SHOULD; this is not an
indication that they are optional. These transitions, and the relationship between the Enable
parameter and the Status parameter, are required behavior – it is simply the timing of how long
these state transitions take that is implementation specific.
When the Enable parameter is false the Status parameter SHOULD normally be Down (or
NotPresent or Error if there is a fault condition on the interface). Note that when the Enable
parameter transitions to false, it is possible that the Status parameter’s transition to Down might
occur after a small time lag if the CPE needs to first complete certain operations (e.g., finish
transmitting a packet).
When the Enable parameter is changed to true, the Status SHOULD do one of the following:
• Change to Up if and only if the interface is able to transmit and receive network traffic.
• Change to Dormant if and only if the interface is operable, but is waiting for external
actions before it can transmit and receive network traffic.
• Change to LowerLayerDown if and only if the interface is prevented from entering the
Up state because one or more of the interfaces beneath it is down.
• Remain in the Error state if there is an error or other fault condition detected on the
interface.
• Remain in the NotPresent state if the interface has missing (typically hardware)
components.
• Change to Unknown if the state of the interface cannot be determined for some reason.
The Dormant state indicates that the interface is operable, but it is waiting for external events to
occur before it can transmit/receive traffic. When such events occur, and the interface is then
able to transmit/receive traffic, the Status SHOULD change to the Up state. Note that both the
Up and Dormant states are considered healthy states.
The Down, NotPresent, LowerLayerDown, and Error states all indicate that the interface is
down. The NotPresent state indicates that the interface is down specifically because of a missing
(typically hardware) component. The LowerLayerDown state indicates that the interface is
stacked on top of one or more other interfaces, and that this interface is down specifically
because one or more of these lower-layer interfaces is down.
The Error state indicates that the interface is down because an error or other fault condition was
detected on the interface.
When an interface object is stacked on top of lower-layer interfaces (i.e., is not a bottommost
layer in the stack), then:
• The interface SHOULD be Up if it is able to transmit/receive traffic due to one or more
interfaces lower down in the stack being Up, irrespective of whether other interfaces
below it are in a non-Up state (i.e., the interface is functioning in conjunction with at least
some of its lower-layered interfaces).
• The interface MAY be Up or Dormant if one or more interfaces lower down in the stack
are Dormant and all other interfaces below it are in a non-Up state.
• The interface is expected to be LowerLayerDown while all interfaces lower down in the
stack are either Down, NotPresent, LowerLayerDown, or Error.
Figure 12 illustrates a stacked vendor-specific interface object being bypassed by the Controller,
where there is just one object below the vendor-specific object.
IP.Interface.1 IP.Interface.1
X_00256D_AB.
Interface.1
Ethernet.Link.1 Ethernet.Link.1
Figure 13 illustrates a stacked vendor-specific interface object being bypassed by the Controller,
where there are multiple objects below the vendor-specific object.
Bridging.Bridge.1 Bridging.Bridge.1
.Port.1 .Port.1
[ManagementPort=true] [ManagementPort=true]
X_00256D_AB.
Bridge.1
The InterfaceStack table is a Device:2 data model object, namely Device.InterfaceStack.{i}. This
is a read-only table whose rows are auto-generated by the CPE based on the current relationships
that are configured between interface objects (via each interface instance’s LowerLayers
parameter). Each table row represents a “link” between a higher-layer interface object
(referenced by its HigherLayer parameter) and a lower-layer interface object (referenced by its
LowerLayer parameter). This means that an InterfaceStack table row’s HigherLayer and
LowerLayer parameters will always both be non-null.
NOTE – As a consequence, interface instances that have been stranded will not be represented within the
InterfaceStack table 4. It is also likely that multiple, disjoint groups of stacked interface objects
will coexist within the table (for example, each IP interface will be the root of a disjoint group;
unused “fragments”, e.g., a secondary DSL channel with a configured ATM PVC that isn’t
attached to anything above, will linger if they remain interconnected; and finally, partially
configured “fragments” can be present when an interface stack is being set up).
A CPE MUST autonomously add or remove rows in the InterfaceStack table in response to the
following circumstances:
• An interface’s LowerLayers parameter was updated to remove a reference to another
interface (i.e., a “link” is being removed from the stack).
• An interface’s LowerLayers parameter was updated to add a reference to another
interface (i.e., a “link” is being added to the stack).
• An interface was deleted that had referenced, or been referenced by, one other interface
(i.e., a “link” is being removed from the stack).
• An interface was deleted that had referenced, or been referenced by, multiple interfaces
(i.e., multiple “links” are being removed from the stack).
Once the CPE issues the response to the Controller request, all autonomous InterfaceStack table
changes associated with the corresponding request (as described in the preceding paragraph)
MUST be available for subsequent commands to operate on, regardless of whether or not these
changes have been applied by the CPE.
4
An interface instance is considered stranded when it has no lower layer references to or from
other interface instances. Stranded interface instances will be omitted from the InterfaceStack
table until such time as they are stacked, above or below another interface instance, via a
LowerLayers parameter reference.
By looking at the rows from the example InterfaceStack table as a whole, we can visualize the
overall stack configuration. Figure 14 shows how this information can be pictured. Interface
instances are represented by colored boxes, while InterfaceStack instances are represented by
numbered circles.
InterfaceStack
n entry
L3 IP.Interface.1 IP.Interface.2 IP.Interface.3
L2+ PPP.Interface.1
2 6 9
10
Bridging.Bridge.1.Port.1
[ManagementPort=true]
L2 11 13 15
4 8 17
Ethernet.Interface.1 Ethernet.Interface.2
DSL.Channel.1 [Upstream=false] [Upstream=false]
L1 5 WiFi.Radio.1
[Upstream=false]
DSL.Line.1
[Upstream=true]
Finally, Table 2 completes the example by listing each interface instance and its corresponding
LowerLayers parameter value.
5 Parameter Definitions
The normative definition of the Device:2 data model is provided in XML DM Instance
documents, as defined by TR-106 [3] Annex A.
For a given revision of the data model, the corresponding TR-181 Issue 2 XML document
defines the Device:2 model itself and imports additional components from the other XML
documents listed.
Each TR-181 Issue 2 HTML document is a report generated from the XML files, and lists a
consolidated view of the Device:2 data model in human-readable form.
For use with CWMP the corresponding Device:2 data model is published at https://cwmp-data-
models.broadband-forum.org, and for use with USP the data model is published at https://usp-
data-models.broadband-forum.org.
Default
Egress
Scheduler /Shaper
Interface/
Connection Interface/
Class 3 Policer 2
Connection
Layer2Bridging
Layer2Bridging
Routing (Layer3Forwarding)
Class 4 AF
.
.
.
Queue 3 for connection 1
Class N App protocol
handler 1 BE
Class X
Flow Type 1
Class Y Policer 1
Flow Type 2
Class Z
Default Flow
Other Other
Non-bridgeable Non-bridgeable
Ingress Egress
Interfaces Interfaces
Each entry in the Classification table includes a series of parameters, each indicated to be a
Classification Criterion. Each classification criterion can be set to a specified value, or can be set
to a value that indicates that criterion is not to be used. A packet is defined to match the
classification criteria for that table entry only if the packet matches all of the specified criteria.
That is, a logical AND operation is applied across all classification criteria within a given
Classification table entry.
NOTE – to apply a logical OR to sets of classification criteria, multiple entries in the Classification table
can be created that specify the same resulting queuing behavior.
For each classification criterion, the Classification table also includes a corresponding “exclude”
flag. This flag can be used to invert the sense of the associated classification criterion. That is, if
this flag is false for a given criterion, the classifier is to include only packets that meet the
specified criterion (as well as all others). If this flag is true for a given criterion, the classifier is
to include all packets except those that meet the associated criterion (in addition to meeting all
other criteria).
For a given entry in the Classification table, the classification is to apply only to the interface
specified by the Interface parameter. This parameter can specify a particular ingress interface or
all sources. Depending on the particular interface, not all classification criteria will be applicable.
For example, Ethernet layer classification criteria would not apply to packets arriving on a non-
bridged ATM VC.
Packet classification is modeled to include all ingress packets regardless of whether they
ultimately will be bridged or routed through the device.
Classification rules are sensitive to the order in which they are applied because certain traffic
might meet the criteria of more than one Classification table entry. The Order parameter is
responsible for identifying the order in which the Classification entries are to be applied.
The following rules apply to the use and setting of the Order parameter:
o Order goes in order from 1 to n, where n is equal to the number of entries in the
Classification table. 1 is the highest precedence, and n the lowest. For example, if entries
with Order of 4 and 7 both have rules that match some particular traffic, the traffic will be
classified according to the entry with the 4.
o The CPE is responsible for ensuring that all Order values are unique and sequential.
o If an entry is added (number of entries becomes n+1), and the value specified for Order is
greater than n+1, then the CPE will set Order to n+1.
o If an entry is added (number of entries becomes n+1), and the value specified for Order is
less than n+1, then the CPE will create the entry with that specified value, and increment
the Order value of all existing entries with Order equal to or greater than the specified
value.
o If an entry is deleted, the CPE will decrement the Order value of all remaining entries
with Order greater than the value of the deleted entry.
o If the Order value of an entry is changed, then the value will also be changed for other
entries greater than or equal to the lower of the old and new values, and less than the
larger of the old and new values. If the new value is less than the old, then these other
entries will all have Order incremented. If the new value is greater than the old, then the
other entries will have Order decremented and the changed entry will be given a value of
<new value>-1. For example, an entry is changed from 8 to 5. The existing 5 goes to 6, 6
to 7, and 7 to 8. If the entry goes from 5 to 8, then 6 goes to 5, 7 to 6, and the changed
entry is 7. This is consistent with the behavior that would occur if the change were
considered to be an Add of a new entry with the new value, followed by a Delete of the
entry with the old value.
Each entry in the App table is associated with an application-specific protocol handler, identified
by the ProtocolIdentifier, which contains a URN. For a particular CPE, the AvailableAppList
parameter indicates which protocol handlers that CPE is capable of supporting, if any. A list of
standard protocol handlers and their associated URNs is specified in Section A.3, though a CPE
can also support vendor-specific protocol handlers as well. Multiple App table entries can refer
to the same ProtocolIdentifier.
The role of the protocol handler is to identify and classify flows based on application awareness.
For example, a SIP protocol handler might identify a call-control flow, an audio flow, and a
video flow. The App and Flow tables are used to specify the classification outcome associated
with each such flow.
For each App table entry there can be one or more associated Flow table entries. Each flow table
entry identifies a type of flow associated with the protocol handler. The Type parameter is used
to identify the specific type of flow associated with each entry. For example, a Flow table entry
for a SIP protocol handler might refer only to the audio flows associated with that protocol
handler. A list of standard flow type values is given in Section A.3, though a CPE can also
support vendor-specific flow types.
A protocol handler can be defined as being fed from the output of a Classification table entry.
That is, a Classification entry can be used to single out control traffic to be passed to the protocol
handler, which then subsequently identifies associated flows. Doing so allows more than one
instance of a protocol handler associated with distinct traffic. For example, one could define two
App table entries associated with SIP protocol handlers. If the classifier distinguished control
traffic to feed into each handler based on the destination IP address of the SIP server, this could
be used to separately classify traffic for different SIP service providers. In this case, each
instance of the protocol handler would identify only those flows associated with a given service.
Note that the Classification table entry that feeds each protocol handler wouldn’t encompass all
of the flows; only the traffic needed by the protocol handler to determine the flows—typically
only the control traffic.
If a packet does not match any Classification table entry, the DefaultTrafficClass, DefaultPolicer,
default markings, and default ForwardingPolicy are used.
A.1.2 Policing
The Policer table defines the policing parameters for ingress packets identified by either a
Classification table entry (or the default classification) or a dynamic flow identified by a protocol
handler identified in the App table.
Each Policer table entry specifies the packet handling characteristics, including the rate
requirements and behavior when these requirements are exceeded.
The model defined here is not intended to restrict where the queuing is implemented in an actual
implementation. In particular, it is up to the particular implementation to determine at what
protocol layer it is most appropriate to implement the queuing behavior (IP layer, Ethernet MAC
layer, ATM layer, etc.). In some cases, however, the QoS configuration would restrict the choice
of layer where queuing can be implemented. For example, if a queue is specified to carry traffic
that is bridged, then it could not be implemented as an IP-layer queue.
NOTE – care needs to be taken to avoid having multiple priority queues multiplexed onto a single
connection that is rate shaped. In such cases, the possibility exists that high priority traffic can
be held back due to rate limits of the overall connection exceeded by lower priority traffic.
Where possible, each priority queue will be shaped independently using the shaping parameters
in the Queue and Shaping table.
The scheduling parameters defined in the Queue table apply to the first level of what might be a
more general scheduling hierarchy. This specification does not specify the rules that an
implementation needs to apply to determine the most appropriate scheduling hierarchy given the
scheduling parameters defined in the Queue table.
As an example, take a situation where the output of four distinct queues is to be multiplexed into
a single connection, and two entries share one set of scheduling parameters while the other two
entries share a different set of scheduling parameters. In this case, it might be appropriate to
implement this as a scheduling hierarchy with the first two queues multiplexed with a scheduler
defined by the first pair, and the second two queues being multiplexed with a scheduler defined
by the second pair. The lower layers of this scheduling hierarchy cannot be directly determined
from the content of the Queue table.
A.1.4 Bridging
NOTE – from the point of view of a bridge, packets arriving into the bridge from the local router (either
upstream or downstream) are treated as ingress packets, even though the same packets, which
just left the router, are treated as egress from the point of view of the router. For example, a
Filter table entry might admit packets on ingress to the bridge from a particular IP interface,
which means that it admits packets on their way out of the router over this layer 3 connection.
For each interface, the output of the classifier is modeled to feed a set of 802.1D [8] or 802.1Q
[9] layer 2 bridges as specified by the Bridging object. Each bridge specifies layer 2 connectivity
between one or more layer 2 downstream and/or upstream interfaces, and optionally one or more
layer 3 connections to the local router.
Each bridge corresponds to a single entry in the Bridge table of the Bridging object. The Bridge
table contains the following sub-tables:
Port table: models the Bridge ports, which are either management ports (modeling layer 3
connections to the local router) or non-management ports (modeling connections to layer 2
interfaces). Bridge ports are stackable interface objects (see Section 4.2).
VLAN table: models the Bridge VLANs (relevant only to 802.1Q bridges).
VLANPort table: for each VLAN, defines the ports that comprise its member set (relevant only
to 802.1Q bridges).
A.1.4.1 Filtering
Traffic from a given interface (or set of interfaces) can be selectively admitted to a given Bridge,
rather than bridging all traffic from that interface. Each entry in the Filter table includes a series
of classification criteria. Each classification criterion can be set to a specified value, or can be set
to a value that indicates that criterion is not to be used. A packet is admitted to the Bridge only if
the packet matches all of the specified criteria. That is, a logical AND operation is applied across
all classification criteria within a given Filter table entry.
NOTE – to apply a logical OR to sets of classification criteria, multiple entries in the Filter table can be
created that refer to the same interfaces and the same Bridge table entry.
NOTE – a consequence of the above rule is that, if a packet does not match the criteria of any of the
enabled Filter table entries, then it will not be admitted to any bridges, i.e., it will be dropped.
As a specific example of this, if none of the enabled Filter table entries reference a given
interface, then all packets arriving on that interface will be dropped.
For each classification criterion, the Filter table also includes a corresponding “exclude” flag.
This flag can be used to invert the sense of the associated classification criterion. That is, if this
flag is false for a given criterion, the Bridge will admit only packets that meet the specified
criterion (as well as all other criteria). If this flag is true for a given criterion, the Bridge will
admit all packets except those that meet the associated criterion (in addition to meeting all other
criteria).
Note that because the classification criteria are based on layer 2 packet information, if the
selected port for a given Filter table entry is a layer 3 connection from the local router, the layer
2 classification criteria do not apply.
The following rules apply to the use and setting of the Order parameter:
The Order goes in order from 1 to n, where n is equal to the number of filters. 1 is the highest
precedence, and n the lowest.
The CPE is responsible for ensuring that all Order values among filters are unique and
sequential.
If a filter is added (number of filters becomes n+1), and the value specified for Order is greater
than n+1, then the CPE will set Order to n+1.
If a filter is added (number of entries becomes n+1, and the value specified for Order is less than
n+1, then the CPE will create the entry with that specified value, and increment the Order value
of all existing filters with Order equal to or greater than the specified value.
If a filter is deleted, the CPE will decrement the Order value of all remaining filters with Order
greater than the value of the deleted entry.
If the Order value of a filter is changed, then the value will also be changed for other filters
greater than or equal to the lower of the old and new values, and less than the larger of the old
and new values. If the new value is less than the old, then these other entries will all have Order
incremented. If the new value is greater than the old, then the other entries will have Order
decremented and the changed entry will be given a value of <new value>-1. For example, an
entry is changed from 8 to 5. The existing 5 goes to 6, 6 to 7, and 7 to 8. If the entry goes from 5
to 8, then 6 goes to 5, 7 to 6, and the changed entry is 7. This is consistent with the behavior that
would occur if the change were considered to be an Add of a new filter with the new value,
followed by a Delete of the filter with the old value.
Automatic marking of DSCP or Ethernet Priority is likely only in the following cases:
WAN LAN: to map DSCP (layer 3) to Ethernet Priority (layer 2)
LAN WAN: to map Ethernet Priority (layer 2) to DSCP (layer 3)
Automatic marking in the LAN LAN case is unlikely, since LAN QoS is likely to be
supported only at layer 2, and LAN DSCP values, if used, will probably be a direct
representation of Ethernet Priority, e.g., Ethernet Priority shifted left by three bits.
In the table, grayed and bolded items are added to allow two-way mapping between layer 2 and
layer 3 QoS (where the mapping is ambiguous, the grayed values SHOULD be ignored and the
bolded values SHOULD be used). If, when mapping from layer 3 to layer 2 QoS, the DSCP
value is not present in the table, the mapping SHOULD be based only on the first three bits of
the DSCP value, i.e., on DSCP & 111000.
Table 3 – Default Layer 2/3 QoS Mapping
Layer 2 Layer 3
[MediaType] corresponds to the “media” sub-field of the “m” field of an SDP session
description.
[Transport] corresponds to the “transport” sub-field of the “m” field of an SDP session
description.
Non-alphanumeric characters in either field are removed (e.g., “rtp/avp” becomes “rtpavp”).
For example, the following would be valid URNs referring to SDP flows:
urn:dslforum-org:sdp-audio-rtpavp
urn:dslforum-org:sdp-video-rtpavp
urn:dslforum-org:sdp-data-udp
For flow type URNs following this convention, there is no defined use for TypeParameters,
which SHOULD be left empty.
For the ProtocolIdentifier urn:dslforum-org:pppoe, a single flow type is defined referring to the
entire PPPoE session. The URL for this flow type is:
urn:dslforum-org:pppoe
Annex B Tunneling
B.1 Overview
Consider a device that provides a layer 3 tunnel endpoint. Some packets will need to be en-
tunneled and then will leave the device in the tunnel. Other packets will arrive at the device in
the tunnel and will need to be de-tunneled. This is illustrated in Figure 16, in which green
indicates application traffic, yellow indicates an IP interface, and pink indicates a tunnel
(carrying green application traffic).
This egress interface decision is just a normal forwarding decision. By separately modeling the
Tunnel interface and the Tunnel, the Device:2 data model is able to present the en-tunnel
decision as also being a forwarding decision. The de-tunnel decision is not really a decision at
all, because it happens automatically as a result of normal packet processing.
This modeling approach imposes no restrictions on the device implementation; it is just how the
en-tunnel and de-tunnel decisions are modeled.
• Each Tunnel instance models a tunnel and has one or more Tunnel interface children,
each of which models a flow / session within that tunnel. These Tunnel interface children
are stackable interface objects.
NOTE – a Tunnel is not a stackable interface object, because it breaks the layering order and can be
regarded as separating two different protocol stacks, one of which acts as a carrier for the
other. This is clearly illustrated in Figure 20 and the other interface stack Figures.
NOTE – even though a Tunnel is not an interface, it can be referenced by QoS classification rules. Traffic
arriving on a Tunnel instance, i.e., packets that have just been encapsulated, is conceptually
similar to locally-generated traffic.
NOTE – the existing 6rd, DS-Lite and IPsec data models use a less flexible approach in which the Tunnel
interfaces are not explicitly modeled, and a separate non-stackable Tunnel table references
auto-created Tunnel/Tunneled IP interface pairs. See B.2 for further details.
NOTE – the Tunnel interface and Tunnel approach is more flexible because (a) it supports multiple flows
/ sessions with a tunnel (e.g., GRE traffic flows or L2TP sessions), (b) it supports additional
encapsulation layers between the Tunnel IP interface and the Tunnel interface (e.g., PPP for
L2TP), and (c) it supports layer 2 tunneling use cases (traffic is bridged directly to the Tunnel
interface and there is no Tunnel IP interface). See B.2 for further details.
Figure 18 and Figure 19 show upstream and downstream examples of how the Tunnel interface
and Tunnel instances are used to describe the traffic path through the device for both untunneled
and tunneled packets.
The less flexible (Tunnel,Tunneled) IP interface mechanism is used in the following three cases:
• IPv6rd (Appendix VI) Device.IPv6rd.
• DS-Lite (Appendix VII) Device.DSLite.
• IPsec (Appendix IX) Device.IPsec.
The flexible Tunnel interface and Tunnel mechanism is used for the following two cases and will
be used for modeling all future tunneling scenarios:
• GRE (Appendix XIV) Device.GRE.
• MAP (Appendix XV) Device.MAP.
B.2 Details
Figure 20 shows the interface stack for a general layer 3 tunneling scenario. Compare with
Figure 21, which is derived from Figure 17. It can be seen that each Figure presents a different
view of the same thing.
Some tunneling technologies support layer 2 tunnels, in which the tunnel payload is a layer 2
packet. Figure 23 shows the interface stack for a general layer 2 tunneling scenario. This is
conceptually similar to the layer 3 case, but a bridge port rather than an IP interface is stacked
above the Tunnel interface.
encoding MUST be used to replace any other characters (i.e., a ‘%’ character followed by the
ASCII hex value of the replaced character). For example, a Deployment Unit Name of
“sample.1” would be converted to “sample%2e1”.
An example of a Version 5 UUID looks like:
76183ed7-6a38-3890-66ef-a6488efb6690
The queuing and scheduling discipline envisioned upstream for the RG is shown in Figure 24,
taken from the description of TR-059 [55].
There are multiple access sessions supported in this model, however, all traffic is classified and
scheduled in a monolithic system. So, while it might appear at first that the Diffserv queuing and
scheduling might apply only to IP-aware access – in fact all access, IP, Ethernet, or PPP is
managed by the same system that adheres to the Diffserv model.
For example, at the bottom of the figure, BE treatment is given to the non-IP-aware access
sessions (PPPoE started behind the RG or delivered to an L2TP tunnel delivery model). This
queue might be repeated several times in order to support fairness among multiple PPPoE
accesses – or it can be a monolithic queue with separate rate limiters applied to the various
access sessions.
The PTA access is a single block of queues. This is done because NSP access typically works
with a single default route to the NSP, and managing more than one simultaneously at the RG
would be perilous. The ∑ rate limiter would limit the overall access traffic for a service provider.
Rate limiters are also shown within the EF and AF service classes because the definition of those
Diffserv types is based on treating the traffic differently when it falls into various rates.
Finally, at the top of the diagram is the ASP access block of queues. In phase 1A, these queues
are provisioned and provide aggregate treatment of traffic mapped to them. In phase 1B, it will
become possible to assign AF queues to applications to give them specific treatment instead of
aggregate treatment. The EF service class can also require a high degree of coordination among
the applications that make use of it so that its maximum value is not exceeded.
Notable in this architecture is that all the outputs of the EF, AF, and BE queues are sent to a
scheduler (S) that pulls traffic from them in a strict priority fashion. In this configuration EF
traffic is, obviously, given highest precedence and BE is given the lowest. The AF service
classes fall in-between.
Note that there is significant interest in being able to provide a service arrangement that would
allow general Internet access to have priority over other (bulk rate) services. 5 Such an
arrangement would be accomplished by assigning the bulk rate service class to BE and by
assigning the default service class (Internet access) as AF with little or no committed information
rate.
Given this arrangement, the precedence of traffic shown in the figure is arranged as:
a. EF – red dotted line
5
This “bulk rate” service class would typically be used for background downloads and potentially for
peer-to-peer applications as an alternative to blocking them entirely.
b. AF – blue dashed line (with various precedence among AF classes as described in RFC
2597 [10])
c. BE – black solid line
AF1
ASP AF2 as per RFC 2597
RL
Access AF3
AF4
BE
Data In Classifier EF RL
AF1
PTA AF2 ∑
S Data Out
Access RL
AF3 RL
(es)
AF4
BE
In the case of an Ethernet upstream Interface or a VDSL2 upstream Interface based on PTM-
EFM, 802.1Q Tagging can be used to tag egress traffic. This choice enables a multi-VLAN
architecture in order to deploy a multi-service configuration (high speed Internet, VoIP, Video
Phone, IPTV, etc.), where one VLAN or a group of VLANs are associated with each service. If
802.1Q tagging on the upstream interface is used, it is necessary to have a way to associate
incoming upstream 802.1Q tagged or untagged traffic or internally generated traffic (PPPoE,
IPoE connections) to the egress (and vice-versa). The solution is to apply coherent bridging
rules.
Regarding different traffic bridging rules, the possible cases are characterized as follows:
• Tagged LAN to tagged WAN traffic (pure VLAN bridging), with VLAN ID translation
as a special case
• Untagged LAN to tagged WAN traffic
• Internally generated to tagged WAN traffic
To better understand the different cases, refer to Figure 25 and to the following examples.
WAN LAN
VLANID = j
VLAN Termination # 1
PPPoE
To achieve this, an interface-based bridge would be created using the Bridging object. A Bridge
table entry would be created with entries for Ethernet port 1 and the upstream interface and for
the VLAN ID x associated with VoIP.
The Bridging model is depicted in Figure 26, while the configuration rules for this situation are
summarized in Table 6.
Bridging.Bridge.1.Port.1
[ManagementPort=true]
Bridging.Bridge.1 Bridging.Bridge.1
.Port.2 .Port.3
[ManagementPort=false]
[ManagementPort=false]
Ethernet.Interface.1 Ethernet.Interface.2
[Upstream=true] [Upstream=false]
WAN LAN 1
Figure 26 – Bridge 1 model
Device.Bridging.Bridge.1.VLAN.1 -
Name VLANx
VLANID X
[Define Ingress Port2-3 – Create an entry for the upstream and downstream
port]:
Device.Bridging. Bridge.1.Port.2 -
PVID x
Name Port2
AcceptableFrameTypes AdmitOnlyVLANTagged
Device.Bridging. Bridge.1.Port.3 -
PVID x
Bridge between WAN and LAN 1
interfaces with VLANID=x Name Port3
AcceptableFrameTypes AdmitOnlyVLANTagged
[Associate Egress Port2-3 to VLANx - Create an entry for the upstream and
downstream port]
Device.Bridging.Bridge.1.VLANPort.1 -
VLAN VLANx
Port Port2
Untagged false
Device.Bridging.Bridge.1.VLANPort.2 -
VLAN VLANx
Port Port3
Untagged false
II.2 Tagged LAN to Tagged WAN Traffic (Special Case with VLAN ID
Translation)
Ethernet port 2 (instance Device.Ethernet.Interface.3) might be dedicated to Video Phone
service, receiving VLAN ID y tagged traffic from a Video phone, and this port would be
included in the same bridge dedicated to Video Phone service on the upstream interface (instance
Device.Ethernet.Interface.1), identified by a different VLAN ID (VLAN ID z). In this case a
VLAN translation needs to be performed.
To achieve this, a bridge would be created using the Bridging object. A Bridge table entry would
be created along with two associated Filter object entries for {Ethernet port 2/VLAN ID z} and
{upstream interface/VLAN ID y}. The Filter identifies the ingress interface and causes the
ingress frames to be bridged to the egress VLAN, permitting VLAN-ID translation.
The Bridging model is depicted in Figure 27, while the configuration rules for this situation are
summarized in Table 7.
Bridging.Bridge.2.Port.1
[ManagementPort=true]
Bridging.Bridge.2 Bridging.Bridge.2
.Port.2 .Port.3
[ManagementPort=false]
[ManagementPort=false]
Ethernet.Interface.1 Ethernet.Interface.3
[Upstream=true] [Upstream=false]
WAN LAN 2
Figure 27 – Bridge 2 model
Device.Bridging.Bridge.2.VLAN.2
Name VLANz
VLANID z
To achieve this, an interface-based bridge would be created using the Bridging object. A Bridge
table entry would be created, associating in the same bridge untagged frames on Ethernet port 3
with tagged frames on the upstream interface.
The Bridging model is depicted in Figure 28, while the configuration rules for this situation are
summarized in Table 8.
Bridging.Bridge.3.Port.1
[ManagementPort=true]
Bridging.Bridge.3 Bridging.Bridge.3
.Port.2 .Port.3
[ManagementPort=false]
[ManagementPort=false]
Ethernet.Interface.1 Ethernet.Interface.4
[Upstream=true] [Upstream=false]
WAN LAN 3
Figure 28 – Bridge 3 model
To achieve this, instead of using a bridging object, a VLAN Termination interface would be
created (Device.Ethernet.VLANTermination.1). The Bridging model is depicted in Figure 29,
while the configuration rules for this situation are summarized in Table 9.
device
IP.Interface.1
PPP.Interface.1
Ethernet.VLANTermination.1
Ethernet.Link.1
Ethernet.Interface.1
[Upstream=true]
WAN
Figure 29 – VLAN Termination model
Device.Ethernet.VLANTermination.1
Internal to tagged WAN (VLAN-
ID=j) traffic VLANID j
LowerLayers Ethernet.Link.1
To achieve this, new entries need to be added for interface Eth-3 and Eth-4. The Bridging model
is depicted in Figure 30, while the configuration rules for this situation are summarized in Table
6 and Table 10.
Bridging.Bridge.1.Port.1
[ManagementPort=true]
Device.Bridging. Bridge.1.Port.4 -
PVID x
Name Port4
AcceptableFrameTypes AdmitOnlyVLANTagged
Device.Bridging. Bridge.1.Port.5 -
PVID x
Name Port5
Bridge between WAN and LAN AcceptableFrameTypes AdmitOnlyVLANTagged
2/LAN 3 interfaces with
VLANID=x
[Associate Egress Port4-5 to VLANx - Create an entry for the downstream
(Configuration to be added to
ports]
Table 6)
Device.Bridging.Bridge.1.VLANPort.3 -
VLAN VLANx
Port Port4
Untagged false
Device.Bridging.Bridge.1.VLANPort.4 -
VLAN VLANx
Port Port5
Untagged false
rules for marking egress traffic on the upstream interface are summarized in Table 11. Compare
it with Table 6.
802.1D (re-)marking
Remark all WAN egress traffic [In case of ingress untagged frames, for more complex classification, QoS
object are referred. In this case remark with 0]
Device.Bridging. Bridge.1. Port.2.
PriorityTagging true
II.5.3 More than one VLAN ID Tag Admitted on the Same Downstream
Interface
Another scenario that can be further detailed is the case of more than one VLAN ID tag admitted
on the same downstream interface. A practical example would be a 2 box scenario, with a User
Device generating traffic segregated in multiple VLANs (e.g., a router offering services to the
customer), and a Residential Gateway, providing upstream connectivity to the Access Network,
with the connection between the two pieces of equipment using an Ethernet interface.
In this case, we assume the User Device is able to tag the different traffic flows, segregating the
different services (Voice, Video, …) into different VLANs. The Residential Gateway needs, on
the same downstream interface, to be able to receive different VLAN ID and correctly forward or
translate to the upstream interface (and vice versa). To achieve this, appropriate Bridging objects
need to be configured.
WAN LAN
VLANID = x VLANID = x
Bridge # 1
VLANID = k VLANID = z
Bridge # 3
Referring to
Figure 31 as an example, assume the case of three VLANs (VLAN ID=x,y,z) offered by a User
Device to the Residential Gateway on the same downstream interface (Eth #1). The Residential
Gateway bridges two of them (VLAN ID=x,y) and translates the other one (VLAN ID=z) to the
upstream interface (VLAN ID=k).
On the Residential Gateway, this can be achieved using a combination of the Bridging objects
detailed in the preceding sections, with 3 bridge entries and their related entries. Refer to Figure
32 for the Bridging model and Table 12 for the global configuration.
Ethernet.Interface.1 Ethernet.Interface.2
[Upstream=true] [Upstream=false]
WAN LAN 1
Table 12 – More than one VLAN ID tag admitted on the same Downstream interface
This section discusses the theory of operations for various technologies in the Wi-Fi domain
found within the Device:2 data model.
The following sections clarify when multiple WiFi.Radio instances are needed, and the impact
on their underlying parameters in the case of multi-radio and/or multi-band devices.
III.2 Definitions
Each physical radio allows the transmission and reception of data on a single Wi-Fi channel at a
given time. A single-radio device is able to transmit/receive a packet at a given time only on one
Wi-Fi channel. Similarly, a dual-radio device is able to simultaneously transmit/receive data on
two Wi-Fi channels. In general, a device with N radios is able to simultaneously transmit/receive
data on N Wi-Fi channels.
An important point is that Wi-Fi can operate at two different frequency bands, 2.4 GHz and 5
GHz, as follows:
• Wi-Fi technologies based on IEEE 802.11b/g standard operate on the 2.4 GHz frequency
band.
• Wi-Fi technologies based on IEEE 802.11a/ac standard operate on the 5 GHz frequency
band.
• Wi-Fi technologies based on IEEE 802.11n standard operate on both the 2.4 and 5 GHz
frequency bands.
Radios that operate at a single frequency band (e.g., 2.4 GHz only 802.11b/g devices) are called
single-band radios. Radios that can operate at both 2.4 and 5 GHz frequency bands (e.g.,
802.11a/b/g/n/ac devices) are called dual-band radios.
A dual-band device can be a single-radio device if it can be configured to operate at 2.4 or 5 GHz
frequency bands. However, only a single frequency band is used to transmit/receive at a given
time. In such a case the device has a single physical radio that is dual-band.
Also, a dual-radio single-band device can exist (although uncommon) if both radios are single-
band.
Each WiFi.Radio instance is configured separately and is, in general, completely independent of
other instances.
The OperatingFrequencyBand parameter specifies which frequency band is currently being used
by a dual-band radio (i.e., set to one of the two items listed in the SupportedFrequencyBands
parameter). For single-band radios, OperatingFrequencyBand always has the same value as
SupportedFrequencyBands (since only one frequency band is supported).
The Channel parameter has to be changed, since channels for the 2.4 GHz frequency band are in
the range 1-14, while channels for the 5 GHz frequency band can be in the range of 36-165 (for
example). The expected behavior is that, upon modifying the OperatingFrequencyBand
parameter, the device automatically selects a new channel that is valid for the new frequency
band (according to some vendor-specific selection procedure).
Other related parameters of significance for the Channel properties are AutoChannelEnable,
OperatingChannelBandwidth and CurrentOperatingChannelBandwidth.
Persistence of the Channel parameter value for the previous frequency band is not required. For
example, if OperatingFrequencyBand is later changed back to 5GHz, a new valid value for the
Channel parameter is automatically selected by the device, but this value need not be the same as
was selected the last time OperatingFrequencyBand was set to 5GHz.
Other parameters whose values can be impacted when the OperatingFrequencyBand changes,
include: ExtensionChannel, PossibleChannels, SupportedStandards, OperatingStandards,
IEEE80211hSupported, and IEEE80211hEnabled. If the current value is no longer valid, the
device will automatically select a valid new value according to some vendor-specific procedure,
and the old value need not persist.
For dual-band radios, the OperatingFrequencyBand parameter is used for switching the operating
frequency band. For this reason SupportedStandards only includes those values corresponding to
operation in the frequency band indicated by the OperatingFrequencyBand parameter. For
example, for dual-band 802.11a/b/g/n devices, SupportedStandards can be b, g, n when
OperatingFrequencyBand is 2.4GHz and a, n, ac when OperatingFrequencyBand is 5GHz.
The MAC Service Data Unit (MSDU) is the service data unit that is received from the logical
link control (LLC) sub-layer which lies above the medium access control (MAC) sub-layer in the
protocol stack.
The MAC protocol data unit (MPDU) is a message exchanged between MAC entities in a
communication system. “WiFi frames” refer to MPDUs and WiFi counters are counts of
MPDUs.
The Physical Layer Convergence Procedure (PLCP) protocol data unit (PPDU) corresponds with
the bits that are actually transmitted across the physical layer.
The MSDU is the frame that interfaces to higher layers, while the MPDU is the frame that is
actually transmitted through the wireless medium, excluding the physical layer overhead. The
MPDU is the MSDU plus MAC layer overhead (header, FCS, etc.). The PPDU is the MPDU
plus physical layer overhead (preamble, PHY header, etc.).
The number of errored MPDUs is the number of MPDUs without corresponding ACKs. In most
cases, the number of MSDUs is the same as the number of MPDUs. However, if fragmentation is
enabled, then one MSDU can become multiple MPDUs, and there is one ACK per MPDU, hence
multiple ACKs for one MSDU.
With frame aggregation in 802.11n, multiple MPDUs become one aggregated MPDU (A-
MPDU). There is usually one block ACK for each A-MPDU, and only the errored MPDU(s) can
be retransmitted selectively. In this case the WiFi counters will count the original MPDUs and
not the A-MPDUs.
To avoid confusion that may be caused by fragmentation or frame aggregation, “WiFi frames” or
packets are all considered here to be MPDUs and WiFi counters refer to MPDUs.
Figure 33 explains the process of the MSDU/MPDU flow structure through the MAC layer of
the WiFi receiver.
LLC/SNAP
Replay detection (Optional) MSDU
Receive processing
PacketsOtherReceived: This counter is used to catch those MPDUs that are not addressed to this
radio. This can be assessed by checking if the ‘Address 1’ field of the 802.11 MAC header
contains a MAC address that is associated with this radio, if not then ‘PacketsOtherReceived’ is
incremented.
After this step, the AP can also discard duplicate frames or fragments among the frames
addressed to it, to simplify higher-level processing.
The ErrorsReceived count is the sum of the PLCPErrorCount plus the FCSErrorCount plus the
InvalidMACCount.
This section presents a number of management-related use cases that correspond to typical
Controller activities.
In order to determine if the device terminates a WAN connection, the Controller might look for
an interface object with a technology that is by definition WAN (such as DSL) or for a
technology that could be a WAN termination technology (such as Ethernet or MoCA).
In order to determine if the device is responsible for providing addresses to other devices in the
home, the Controller could check for the existence of the DHCP Server object. The existence of
the Host table also indicates that the device is aware of Hosts, by whatever means they’re
addressed.
For CWMP managed CPEs, the existence of the ManageableDevice table within the
ManagementServer object also indicates that the device serves as the DHCP server for the TR-
069 managed device exchange defined in TR-069 [2] Annex F, which is also often an indication
of “gateway” functionality.
In order to determine if the device provides functionality such as NAT or a router, the Controller
would check for the existence of an enabled NAT or Routing.Router object.
If the operator is interested in UPnP devices in the home network, the UPnP.Discovery tables
(RootDevice, Device, and Service) provide that information in addition to the Host table entries
that correspond to a particular UPnP Root Device, Device, or Service.
Finally for CWMP enabled CPEs, the ManageableDevice table within the ManagementServer
object provides information about the CWMP managed devices that the CPE has learned about
through the DHCP message exchange defined in TR-069 [2] Annex F.
In the Device:2 data model managed with CWMP, it would work this way:
1. The ACS would issue a GetParameterValues for the InterfaceStack table. This table
would provide a list of all the Interface connections. The ACS could use this table to
build up the general picture of the Interfaces that are part of the current configuration.
2. If the ACS is interested in the specifics of an individual interface, it can then go and issue
GetParameterNames or GetParameterValues for the interfaces of interest.
4. The Controller configures the new WiFi.AccessPoint object, including enabling it and
sets the value of its SSIDReference parameter to reference the WiFi.SSID object.
5. The CPE updates the InterfaceStack table automatically.
6. Note that the Controller might also want to update other related objects; also, if there
were no appropriate existing bridge port to which to connect the SSID, the Controller
might need to create that object as well.
The ACME devices are remotely managed, so the Controller will also configure the DHCP
clients on those devices and the DHCP server on the gateway.
The ACME devices are quite simple. Each has a single wired Ethernet port and a single IP
interface.
DHCPv4.Client.1.Enable true
DHCPv4.Client.1.Interface Device.IP.Interface.1
DHCPv4.Client.1.SentOption.1.Enable true
DHCPv4.Client.1.SentOption.1.Tag 60
DHCPv4.Client.1.SentOption.1.Value “ACME Widget” (as hexBinary)
DHCPv4.Server.Enable true
DHCPv4.Relay.Enable true
DHCPv4.Relay.Forwarding.1.Enable true
DHCPv4.Relay.Forwarding.1.Interface Device.IP.Interface.1
DHCPv4.Relay.Forwarding.1.VendorClassID “ACME”
DHCPv4.Relay.Forwarding.1.VendorClassIDMode “Prefix”
DHCPv4.Relay.Forwarding.1.LocallyServed false
DHCPv4.Relay.Forwarding.1.DHCPServerIPAddress 1.2.3.4
DHCPv4.Server.Pool.1.Enable true
DHCPv4.Server.Pool.1.Interface Device.IP.Interface.1
DHCPv4.Server.Pool.1.MinAddress 192.168.1.64
DHCPv4.Server.Pool.1.MaxAddress 192.168.1.254
DHCPv4.Server.Pool.1.ReservedAddresses 192.168.1.128, 192.168.1.129
DHCPv4.Server.Pool.1.SubnetMask 255.255.255.0
If a DHCP request includes an option 60 value that begins with “ACME”, the request is
forwarded to the DHCP server at 1.2.3.4. All other requests are served locally from the pool
192.168.1.64 - 192.168.1.254 (excluding 192.168.1.128 and 192.168.1.129).
After the CWMP Session is completed and the CPE commits the configuration, the upstream
side will look like:
IP.Interface.1 Ethernet.Link.1 Ethernet.Interface.1
Figure 34 depicts a message sequence scenario where a configuration is backed up from the
Device to the ACS using CWMP.
ACS Device
1: GPV(Device.DeviceInfo.VendorConfigFile., Device.DeviceInfo.
Device.SoftwareModules.DeploymentUnit.)
3: TransferComplete
Step 1a: The parameters returned by the Device in the GetParameterValuesResponse are used to
create a “snapshot” of the Device. The definition of what is needed to create a snapshot and how
a snapshot is administered in an ACS is implementation specific.
Step 2: Backup each configuration file defined by the Device in the VendorConfigFile table with
the UseForBackupRestore parameter set to the value “true” using the Upload RPC with a File
Type “3 Vendor Configuration File x” where “x” is the instance number of the file in the
VendorConfigFile table.
NOTE – An ACS can also have additional information, outside step 1, to discern which configuration files
are necessary to restore a Device, as well as the order in which the configuration files need to be
restored where dependencies exist between the configuration files within the potential snapshot.
Step 3, 3a: Upon completion of the transfer for each file via the Transfer Complete event, the
ACS will update the state of the snapshot. The lifecycle and state management of the snapshot by
an ACS is implementation specific.
At this point a Device snapshot exists that can be used to restore a Device to this point in time.
Figure 35 depicts a message sequence scenario where a configuration is restored to the Device
from the ACS
ACS Device
3a: TransferComplete
Step 1: For each user configuration file in the snapshot, retrieve the information for the location
of the configuration file.
Step 2, 2a: Download the configuration using the File Type “3 Vendor Configuration File” and
the location of the configuration file.
NOTE – Other elements (e.g., credentials) might be required but are outside the scope of this sequence.
When downloaded, a VendorConfigFile instance with the same value for Name or Alias (if
supported and present) will update the corresponding instance in the VendorConfigFile table
and will not create a new entry within the table.
Step 3, 3a: The Device performs the download of each configuration file and responds with a
Transfer Complete event.
The Broadband Forum has published several Technical Reports describing IPv6 architectures
and device requirements. Specifically, TR-124 Issue 2 [30] includes IPv6 requirements for
Residential Gateways (RGs), TR-177 [31] describes migration to IPv6 in the context of TR-101
[29], and TR-187 [32] describes an architecture for IPv6 for PPP Broadband Access. The
Device:2 IPv6 Data Model is intended to ensure that TR-069 [2] or USP [66] managed End
Devices, RGs, and other Network Infrastructure Devices can be managed and configured,
consistent with the requirements listed in these documents.
The basic elements of IPv6 data modeling involve information on IPv6 capabilities, and enabling
those capabilities on devices and device interfaces (see Section V.3), configuring addresses,
prefixes , and configuration protocols on upstream and downstream interfaces (see Sections V.4
and V.5), interacting with other devices on the Local Area Network (LAN) (see Section V.6),
and configuring IPv6 routing and forwarding information (see Section V.7).
Configuration protocols include Neighbor Discovery (ND; RFC 4861 [22]) and DHCPv6 (RFC
3315 [18]). Neighbor Discovery includes several messages that are important to configuration,
including Router Solicitation (RS) [sent by devices looking for routers], Router Advertisement
(RA) [sent by routers to other devices on the LAN], Neighbor Solicitation (NS) [used to identify
if any other device on the LAN is using the same IPv6 address, and used to see if previously
detected devices are still present; the latter is called Neighbor Unreachability Detection (NUD)],
and Neighbor Advertisement (NA) [used to respond to a NS sent to one of the device’s IPv6
addresses]. These messages are central to the stateless address autoconfiguration (SLAAC)
mechanism described in RFC 4862 [23]. SLAAC is expected to be the primary means of IPv6
address configuration for devices inside a home network. RFC 4191 [20] extended the RA
message to support a RouteInformation option. RFC 6106 [26] extended the RA message to
support sending Recursive DNS Servers (RDNSS) information for DNS configuration.
6
Introduced in Amendment 2
DHCPv6 can also be used for IPv6 address provisioning, through its IA_NA option. DHCPv6
was extended by RFC 3633 [19] to provide the IA_PD option for delegating IPv6 prefixes to
routers (that the routers can then use to provide IPv6 addresses to other devices on the LAN, or
to further sub-delegate to other routers inside the LAN). Both IA_NA and IA_PD require the
DHCPv6 server to maintain state for these assignments (since they have lifetimes, can expire,
and require renewal). DHCPv6 can also supply a variety of stateless configuration options,
including recursive DNS server information. RGs can have both DHCPv6 client and server, and
it may be desirable for some of the stateless options to be passed through from the client to the
server.
Interfaces that support IPv6 will have more than one IPv6 address. IPv6 interfaces are always
required to have a link-local address (described in RFC 4862 [23]). Other IPv6 addresses may be
acquired through SLAAC, DHCPv6 IA_NA, or they may be statically configured. Routers may
acquire prefixes (for use with address assignment in the LAN) from DHCPv6 IA_PD, static
configuration, or by generating their own Unique Local Address (ULA) prefixes from a self-
generated ULA Global ID (RFC 4193 [21]).
Because of the various IPv6 addresses that devices can have, maintaining good routing table and
IPv6 forwarding information is critical. Route information can be obtained from received RA
messages (both by noting that the sending device is a router, and from the RouteInformation
option) as well as other protocols.
• IP
o IP.Interface
IP.Interface.IPv6Address
IP.Interface.IPv6Prefix
• PPP.Interface
• Routing.Router
o Routing.Router.IPv6Forwarding
o Routing.RouteInformation.InterfaceSetting
• NeighborDiscovery.InterfaceSetting
• RouterAdvertisement.InterfaceSetting
o RouterAdvertisement.InterfaceSetting.Option
• Hosts.Host
• DHCPv6
o DHCPv6.Client
DHCPv6.Client.Server
DHCPv6.Client.SentOption
DHCPv6.Client.ReceivedOption
o DHCPv6.Server
DHCPv6.Server.Pool
• DHCPv6.Server.Pool.Client
o DHCPv6.Server.Pool.Client.IPv6Address
o DHCPv6.Server.Pool.Client.IPv6Prefix
o DHCPv6.Server.Pool.Client.Option
• DHCPv6.Server.Pool.Option
Note that the following tables have separate theories of operation, and are not described again
here:
• IPv6rd.InterfaceSetting
• DSLite.InterfaceSetting
Firewall includes some IPv6 elements that are not described, since it does not interact with tables
other than an association with IP.Interface. As such, its IPv6 usage is considered straightforward,
and explanation is considered unnecessary.
Use of DHCPv6 elements of Bridging.Filter are also not described, as there is no conceptual
difference between how they are used and how DHCPv4 elements are used.
Figure 36 shows the relationship of IPv6 configuration messages to devices and the tables used
to configure the protocol messages and store the responses.
Figure 37 shows internal relationships of parts of the data model involved in IPv6 addresses and
IPv6 prefixes. The following sections describe in greater detail how these various tables are
populated.
Per TR-124 Issue 2 [30], the upstream interface can be configured to establish an IPv6
connection either over PPP (PPPoA or PPPoE) or directly over Ethernet. Both mechanisms
require an IP.Interface instance with IPv6Enable set to true. When using PPP, a PPP.Interface
instance must have IPv6CPEnable set to true (which can only occur if PPP.SupportedNCPs
includes IPv6CP in its list of Network Control Protocols (NCPs)).
Enabling IPv6 on specific downstream or upstream interfaces requires that IP.Interface instances
have IPv6Enable set to true.
• A device that is configured to send DHCPv6 client requests out an upstream IP interface
will have a DHCPv6.Client instance whose Interface is the related upstream IP.Interface,
and with Enable=true. RequestAddresses indicates whether IA_NA is to be requested,
RequestPrefixes indicates whether IA_PD is to be requested, and RequestedOptions
identifies which other options are to be requested. DHCPv6.Client.Server,
DHCPv6.Client.SentOption, and DHCPv6.Client.ReceivedOption are populated as
appropriate, as described in the data model.
PrefixDelegation prefixes and Static prefixes are not directly used on the upstream IP interface.
They are prefixes that are intended to be sub-divided for use on the device’s downstream
interfaces, either by the DHCPv6 server for IA_NA or IA_PD, sent in RA messages (as on-link
and/or autonomous prefixes), or used to self-assign addresses to other interfaces on the device.
Non IA_PD prefixes received in DHCPv6 options are not stored with the upstream IP interface.
Prefixes for static routes are entered directly into Routing.Router.IPv6Forwarding and do not
need to also have upstream IP interface IPv6Prefix entries.
It is often desirable to configure information about delegated prefixes before they have been
delegated (for example, that a particular /64 of that prefix is to be used on the downstream
interface for address assignment). In order to allow for the referencing of not-yet-existing-but-
expected delegated prefixes, an Origin=Static IPv6Prefix entry is created of
Type=PrefixDelegation. When a device receives a delegated prefix, it is expected to first look for
such Static entries and populate them with the delegated prefix information, instead of creating a
new IPv6Prefix instance of Origin=PrefixDelegation. How these references are configured on
downstream interfaces is discussed in Section V.5.1.
IPv6 addresses that are created via stateless address autoconfiguration (SLAAC), as defined in
RFC 4862 (from received RA messages that contain prefix(es) with Autonomous=true) cause the
device to create a IP.Interface.IPv6Address instance with Origin of AutoConfigured. IPv6
addresses assigned via DHCPv6 IA_NA cause the device to create a IP.Interface.IPv6Address
instance with Origin of DHCPv6. Statically created IPv6 addresses will have Origin of Static. If
any of these addresses are Global Unicast Addresses (GUA), they can be used to originate and
terminate traffic to/from either the downstream or the upstream, independent of which physical
interface they are associated with.
The device can have a Unique Local Address (ULA) /48 prefix defined in IP.ULAPrefix. In
general, the device will generate its own ULA /48 prefix, although this value could be configured
directly by the user or through TR-069 [2] or USP [66]. If ULA addressing is to be supported on
a downstream interface, then IP.Interface.ULAEnable must be true. The ULA /48 prefix can be
associated with any downstream IP interface, and can be sub-divided to provide ULA prefixes on
multiple downstream IP interfaces (by assigning longer prefixes from the ULA /48 prefix to
these downstream IP interfaces). When the device creates a ULA prefix on a downstream
interface, it creates an IPv6Prefix instance with Origin=AutoConfigured.
RGs that are configured to act as routers need to know which prefixes to include in their sent
Router Advertisement (RA) messages and to be used in DHCPv6 server pools. These prefixes
need to be associated with the downstream IP interface for those
RouterAdvertisement.InterfaceSetting and DHCPv6.Server.Pool instances. These prefixes can be
statically configured on the downstream IP interface, or they can be automatically generated
from prefixes on an upstream IP interface with Origin of PrefixDelegation or Static, or they can
be generated from the ULA /48 prefix (as described in the previous paragraph). Prefixes that are
automatically (by internal code) derived from prefixes on an upstream IP interface with Origin of
PrefixDelegation or Static, will point to that upstream IP interface in ParentPrefix and have
Origin of Child.
November 2020 © The Broadband Forum. All rights reserved 100 of 204
Device Data Model TR-181 Issue 2 Amendment 14
If the device has a Unique Local Address (ULA) prefix that it is advertising and/or sub-
delegating to devices on the LAN, then it needs to have at least one address from this prefix
assigned to downstream IP interfaces that expect to support usage of the ULA.
If the device did not receive an address on its upstream IP interface (from DHCPv6 or SLAAC),
but it was delegated a prefix (DHCPv6 IA_PD), then it is expected to assign an address from a
prefix (Origin=Child or Type=Child) derived from that delegated prefix to one of its non-
upstream interfaces. This IPv6Address instance will have Origin of AutoConfigured. This
address can be used for originating and terminating messages to and from either the downstream
or the upstream interfaces.
November 2020 © The Broadband Forum. All rights reserved 101 of 204
Device Data Model TR-181 Issue 2 Amendment 14
There is some flexibility in the modeling of ULA IA_PD prefixes. It is not required to model the
ULA /48 prefix in an IPv6Prefix instance. If the ULA /48 is not represented in an IPv6Prefix
instance and ULAEnable is true for a downstream interface and IAPDEnable is true for a
DHCPv6.Server.Pool instance, then it can be assumed that the device will sub-delegate prefixes
from the ULA /48 prefix. Alternately, the ULA /48 can be included as an AutoConfigured prefix
in a downstream interface, and that IPv6Prefix instance can be referenced in IAPDPrefixes in the
DHCPv6.Server.Pool instance. It is also possible to manually create a Static longer-than-/48
prefix from the ULA prefix in a downstream interface. This Static prefix can then be referenced
in IAPDManualPrefix for a DHCPv6.Server.Pool instance for that interface.
For IA_PD, there is one additional parameter: IAPDAddLength. This parameter is configured to
recommend how many bits should be added to an IAPDPrefixes prefix to create a delegated
prefix offer.
V.6.2 Monitoring
All devices can monitor and record information from messages sent by other devices.
November 2020 © The Broadband Forum. All rights reserved 102 of 204
Device Data Model TR-181 Issue 2 Amendment 14
• In order to actively solicit information from other devices on the LAN, the device can
have a NeighborDiscovery.InterfaceSetting instance whose Interface is the related
downstream IP.Interface, and with NUDEnable=true. To determine whether there are
other routers connected to the LAN that are behaving like IPv6 routers to this same LAN
segment, this InterfaceSetting can also have RSEnable=true. However, it is not
recommended that routers do this until there is better guidance available for routers that
co-exist in a peered environment on the same LAN.
November 2020 © The Broadband Forum. All rights reserved 103 of 204
Device Data Model TR-181 Issue 2 Amendment 14
# IP
IP.
November 2020 © The Broadband Forum. All rights reserved 104 of 204
Device Data Model TR-181 Issue 2 Amendment 14
IPv6Capable = true
IPv6Enable = true
IPv6Status = "Enabled"
ULAPrefix = fd01:2345:6789::/48 # typically generated by CPE
# Upstream IP interface
# - Assumes DHCPv6 IA_PD will be 1080:0:0:800::/56 (this is NOT known at
# configuration time).
# - Assumes RA(PI) will be 2001:0DB8::/64 (this is NOT known at configuration
# time)
# - Assumes link-layer address is 55:44:33:22:11:00
# [Section 4/RFC 2464[17]],[Section 4.1/RFC 5072[24]]
IP.Interface.1
Enable = true
IPv6Enable = true
# Downstream IP interface
# - Assumes link-layer address is 00:11:22:33:44:55 [Section 4/RFC 2464[17]]
IP.Interface.2
Enable = true
IPv6Enable = true
ULAEnable = true
November 2020 © The Broadband Forum. All rights reserved 105 of 204
Device Data Model TR-181 Issue 2 Amendment 14
November 2020 © The Broadband Forum. All rights reserved 106 of 204
Device Data Model TR-181 Issue 2 Amendment 14
DHCPv6.Server.
Enable = true
Pool.1
Enable = true
Interface = IP.Interface.2
<filter criteria>
IANAManualPrefixes = IP.Interface.2.IPv6Prefix.1
IAPDManualPrefixes = IP.Interface.1.IPv6Prefix.1,
IP.Interface.2.IPv6Prefix.2
IAPDADDLength = 4
November 2020 © The Broadband Forum. All rights reserved 107 of 204
Device Data Model TR-181 Issue 2 Amendment 14
Note that while RFC 5969 allows for multiple Border Relay (BR) IPv4 addresses, it does not
describe how a device selects from among these. The device will need to have internal logic to
handle this case, but service providers might wish to ensure that they know what the behavior
will be, if they intend to supply multiple BR addresses.
November 2020 © The Broadband Forum. All rights reserved 108 of 204
Device Data Model TR-181 Issue 2 Amendment 14
If this parameter is not present, or if it is an empty string, the device will use internal logic to
determine the source IPv4 address. In cases where there is a single upstream interface with an
assigned (e.g., DHCPv4, IPCP, static) IPv4 address, that is the address that will be used.
Note that service providers need to be careful when using alternate addresses. If the alternate
address does not have the same higher order IPv4 bits as other devices that will be supported by
the same 6rd prefix, then the IPv4 mask will need to be zero. Masked IPv4 bits will be the same
for all IPv4 addresses within a 6rd domain, per RFC 5969 [25].
For example, if
• the IPv6 destination address is 2001:db8:64c8:200:x:x:x:x [note 64 hex = 100 decimal, c8
hex = 200 decimal, leading zeroes between colons are not shown]
• the SPIPv6Prefix is 2001:db8::/32
• the device’s WAN IPv4 address is 10.100.100.1
• IPv4MaskLength is 8
• advertised-to-LAN SLAAC prefix of 2001:db8:6464:100::/64
…then the encapsulation destination IPv4 address becomes the first 8 bits of the device’s WAN
IPv4 address (10 for an address of 10.100.200.2), plus the next 24 bits (32-8=24) after the
SPIPv6Prefix (next 24 bits are 64c802 hex = 100.200.2 binary). The source encapsulating IPv4
address is 10.100.100.1. The source IPv6 address begins with the prefix 2001:db8:6464:100::/64.
However, if AllTrafficToBorderRelay is True, then all external-bound IPv6 traffic is sent to the
border relay.
November 2020 © The Broadband Forum. All rights reserved 109 of 204
Device Data Model TR-181 Issue 2 Amendment 14
This Boolean field is reflected in the routing table. If the value is False (default behavior), then
the IPv6 routing table for this example (with a border relay IPv4 address of 10.0.0.1) would
include the following entries:
If the AllTrafficToBorderRelay field is true, then the 2nd entry above does not exist
The IPv6Forwarding entries (which correspond to the routing table entries mentioned above) will
route traffic between the downstream IPv6 interfaces and the 6rd IPv6 interface. IPv4Forwarding
entries are unaffected.
Figure 38 shows the flow of tunneled 6rd traffic through the downstream, upstream, and the
logical tunnel interfaces. Noted in the figure are sample values for the various IP.Interface
entries that would be needed.
November 2020 © The Broadband Forum. All rights reserved 110 of 204
Device Data Model TR-181 Issue 2 Amendment 14
November 2020 © The Broadband Forum. All rights reserved 111 of 204
Device Data Model TR-181 Issue 2 Amendment 14
RFC 6333 [27] describes the general operation of the dual-stack lite (DS-Lite) technology and
configuration of external parameters needed to do the protocol. RFC 6334 [28] defines an AFTR
(Address Family Transition Router) name DHCPv6 option that maps to an EndpointName
parameter in the Device:2 data model7.
EndpointName is a variable length field, containing a Fully Qualified Domain Name that refers
to the AFTR the client is requested to establish a connection with. EndpointName can be
assigned statically (e.g., present in the factory default configuration or set by the Controller) or
dynamically (via DHCPv6). If both statically and dynamically assigned, then the
EndpointAssignmentPrecedence parameter indicates whether it is the static configuration or the
DHCPv6 configuration that is actually applied to EndpointName.
EndpointAddress is a 128 bit field, containing one IPv6 address. The tunnel EndpointAddress
specifies the location of the remote tunnel endpoint, expected to be located at an AFTR.
EndpointAddress can be assigned statically (e.g., present in the factory default configuration or
set by the Controller) or dynamically (via DNS lookup when EndpointName is set). If both
statically and dynamically assigned, then the EndpointAssignmentPrecedence parameter
indicates whether it is the static configuration or the DHCPv6-derived configuration that is
actually applied to EndpointAddress.
When EndpointName is assigned, the name is looked up (resolved) and the corresponding IPv6
address is set in EndpointAddress.
When DS-Lite is running in the CPE, the NAT function is disabled between the LAN and
DSLite interface.
The IPv4Forwarding entries will route traffic between the downstream IPv4 interfaces and the
DS-Lite IPv4 interface. IPv6Forwarding entries are unaffected.
7
Introduced in Amendment 2
November 2020 © The Broadband Forum. All rights reserved 112 of 204
Device Data Model TR-181 Issue 2 Amendment 14
Figure 39 shows the flow of tunneled DS-Lite traffic through the downstream, upstream, and
logical tunnel interfaces. Noted in the figure are sample values for the various IP.Interface
entries that would be needed.
November 2020 © The Broadband Forum. All rights reserved 113 of 204
Device Data Model TR-181 Issue 2 Amendment 14
• High: The firewall implements the “Traffic Denied Inbound” and “Minimally Permit
Common Services Outbound” components of the ICSA residential certification's
Required Services Security Policy [34]. If DoS and vulnerability protections are
implemented [33], these are enabled.
• Low: All Outbound traffic and pinhole-defined Inbound traffic is allowed. If DoS and
vulnerability protections are implemented [33], these are enabled.
Firewall.
Enable = true
Config = "Advanced"
AdvancedLevel = Firewall.Level.1
Type = "Stateful"
Firewall.Level.1.
Name = "High"
Description = "Deny Inbound and minimally permit Outbound"
Order = 1
Chain = Firewall.Chain.1
DefaultPolicy = "Drop"
Firewall.Level.2.
Name = "Low"
Description = "Allow all Outbound and pinhole-defined Inbound"
Order = 2
Chain = Firewall.Chain.2
DefaultPolicy = "Drop"
Firewall.Chain.1.
Name = "High (Deny Inbound and minimally permit Outbound)"
Creator = "Defaults"
Rule.1.
Order = 1
Description = "Telnet"
Target = "Accept"
DestInterface = IP.Interface.1 # upstream facing IP interface
Protocol = 6 # TCP
DestPort = 23
Rule.2.
Order = 2
Description = "FTP"
Target = "Accept"
DestInterface = IP.Interface.1 # upstream facing IP interface
Protocol = 6 # TCP
DestPort = 21
Rule.3.
Order = 3
Description = "HTTP"
Target = "Accept"
November 2020 © The Broadband Forum. All rights reserved 114 of 204
Device Data Model TR-181 Issue 2 Amendment 14
Firewall.Chain.2.
Name = "Low (Allow all Outbound and pinhole-defined Inbound)"
Creator = "Defaults"
Rule.1.
Order = 1
Description = "Outbound"
Target = "Accept"
DestInterface = IP.Interface.1 # upstream facing IP interface
Rule.2.
Order = 2
Description = "Allow IPsec AH"
Target = "Accept"
SourceInterface = IP.Interface.1 # upstream facing IP interface
IPVersion = 6 # IPv6
Protocol = 51 # AH
Rule.3.
November 2020 © The Broadband Forum. All rights reserved 115 of 204
Device Data Model TR-181 Issue 2 Amendment 14
Order = 3
Description = "Allow IPsec ESP"
Target = "Accept"
SourceInterface = IP.Interface.1 # upstream facing IP interface
IPVersion = 6 # IPv6
Protocol = 50 # ESP
Rule.4.
Order = 4
Description = "Allow IPsec key exchange"
Target = "Accept"
SourceInterface = IP.Interface.1 # upstream facing IP interface
IPVersion = 6 # IPv6
Protocol = 17 # UDP
DestPort = 500
Rule.5.
Order = 5
Description = "UPnP Port Mapping"
Target = "TargetChain"
TargetChain = Firewall.Chain.3
SourceInterface = IP.Interface.1 # upstream facing IP interface
Rule.6.
Order = 6
Description = "UPnP IPv6 Firewall"
Target = "TargetChain"
TargetChain = Firewall.Chain.4
SourceInterface = IP.Interface.1 # upstream facing IP interface
Rule.7.
Order = 7
Description = "User Interface"
Target = "TargetChain"
TargetChain = Firewall.Chain.5
SourceInterface = IP.Interface.1 # upstream facing IP interface
Firewall.Chain.3.
Name = "UPnP Port Mapping (dynamic rules)"
Creator = "PortMapping"
Rule.1.
Order = 1
Description = "SSH"
Target = "Accept"
SourceInterface = IP.Interface.1 # upstream facing IP interface
IPVersion = 4 # IPv4
Protocol = 6 # TCP
DestPort = 22
Firewall.Chain.4.
Name = "UPnP IPv6 Firewall (dynamic rules)"
Creator = "WANIPv6FirewallControl"
Rule.1.
Order = 1
Description = "HTTP"
Target = "Accept"
SourceInterface = IP.Interface.1 # upstream facing IP interface
IPVersion = 6 # IPv6
Protocol = 6 # TCP
DestIP = 1080:0:0:800::1
DestPort = 80
November 2020 © The Broadband Forum. All rights reserved 116 of 204
Device Data Model TR-181 Issue 2 Amendment 14
Firewall.Chain.5.
Name = "User Interface"
Creator = "UserInterface"
Rule.1.
Order = 1
Description = "SMTP server"
Target = "Accept"
SourceInterface = IP.Interface.1 # upstream facing IP interface
IPVersion = 4 # IPv4
Protocol = 6 # TCP
DestIP = 192.168.1.4
DestPort = 25
Rule.2.
Order = 2
Description = "DMZ"
Target = "Accept"
SourceInterface = IP.Interface.1 # upstream facing IP interface
IPVersion = 4 # IPv4
DestIP = "192.168.1.5" # IPv4 address of LAN device that recvs
# all unsolicited inbound IPv4 traffic
November 2020 © The Broadband Forum. All rights reserved 117 of 204
Device Data Model TR-181 Issue 2 Amendment 14
The Device:2 data model includes an IPsec (RFC 4301 [35]) object that supports the
configuration of Encapsulating Security Payload (ESP; RFC 4303 [37]) and Authentication
Header (AH; RFC 4302 [36]) in tunnel mode (Section 3.2/RFC 4301). Use of IKEv2 (RFC 5996
[38]) is assumed. The IPsec object does not currently support static configuration of tunnels and
child Security Associations (SAs).
In the Figure, instances of the colored objects (Filter.{i} and Profile.{i}) are created and
populated by the Controller. Instances of all other objects are handled by the CPE as IPsec
tunnels are created and deleted. References between objects are shown:
• Solid lines indicate references that are populated by the Controller, and dashed lines
indicate references that are handled by the CPE.
• A reference marked “(U)” is a unique key, which implies a 1-1 relationship, e.g., only one
Tunnel instance can reference a given (Tunnel,Tunneled) IP.Interface pair.
November 2020 © The Broadband Forum. All rights reserved 118 of 204
Device Data Model TR-181 Issue 2 Amendment 14
• Other references imply n-1 relationships, e.g., multiple Filter instances can reference a
given Profile instance.
The remainder of this Appendix consists of a brief summary of the various IPsec data model
objects.
IX.1 IPsec
The top-level object has an Enable parameter that enables and disables the IPsec sub-system,
various capability parameters, e.g., supported encryption algorithms, and global IPsec statistics.
IX.2 IPsec.Filter
The Filter table models IPsec Security Policy Database (SPD) selection criteria. Refer to Section
4.4.1/RFC 4301 [35] for further details.
November 2020 © The Broadband Forum. All rights reserved 119 of 204
Device Data Model TR-181 Issue 2 Amendment 14
SPD filtering is performed for all packets that might need to cross the IPsec boundary. Refer to
Section 3.1/RFC4301 for further details. Given that IPsec operates at the IP level, this means that
SPD filtering conceptually occurs after bridging and before routing.
This table is conceptually quite similar to the QoS Classification table in that entries are ordered,
associated with an ingress interface, include selection criteria, and specify the action to be taken
for matching packets.
Instances of the Filter table can be created statically by the CPE, or can be created and deleted
by the Controller as needed. Each instance includes the following (this is not a complete list):
• Enable: to enable and disable the entry.
• Status: to indicate the status of the entry.
• Order: to control and indicate the order of the entry.
• Interface, AllInterfaces: to control and indicate with which interfaces the entry is
associated.
• DestIP: to select packets by destination IP address.
• SourceIP: to select packets by source IP address.
• Protocol: to select packets by IP protocol.
• DestPort: to select packets by destination port.
• SourcePort: to select packets by source port.
• Discard: whether to discard matching packets.
• Profile: the Profile instance that governs how non-discarded matching packets will be
treated.
IX.3 IPsec.Profile
The Profile table models IPsec Security Policy Database (SPD) processing info. Refer to Section
4.4.1/RFC 4301 [35] for further details. Each Filter instance references a Profile instance. It
would be possible to include the processing info directly in each Filter instance, but use of a
separate table allows Profile entries to be shared between Filter instances.
Instances of the Profile table can be created statically by the CPE, or can be created and deleted
by the Controller as needed. Each instance includes the following (this is not a complete list):
• MaxChildSAs: the maximum number of Child SAs per IKEv2 session (and therefore per
IPsec tunnel); this provides a simple way of controlling the extent to which existing
tunnels can be re-used.
• RemoteEndpoints: an ordered list of remote tunnel endpoints that are to be used when
establishing an IPsec tunnel corresponding to this Profile instance.
• ForwardingPolicy: an opaque (Controller-chosen) value that provides a feed-forward
mechanism that allows the SPD filtering decision to affect the forwarding decision. QoS
classification uses the same mechanism.
• Protocol: the “child” security protocol, i.e., AH or ESP.
• IKEv2AuthenticationMethod: a reference to a CPE certificate or other CPE credentials.
November 2020 © The Broadband Forum. All rights reserved 120 of 204
Device Data Model TR-181 Issue 2 Amendment 14
IX.4 IPsec.Tunnel
The Tunnel table that models IPsec tunnels. Instances are created and deleted by the CPE as
needed. A (Tunnel,Tunneled) IP Interface pair 8 is always created at the same time as an IPsec
Tunnel instance and has the same lifetime; the Tunnel IP Interface contains generic IP interface
settings, e.g., Enable, Status and generic Stats, and the IPSec Tunnel instance contains IPsec-
specific settings, e.g., additional Stats.
IX.5 IPsec.IKEv2SA
Each entry in the IKEv2SA table models a single IKEv2 SA pair and uniquely references a
Tunnel instance. Unlike Tunnel instances, which exist regardless of whether the tunnel is active,
IKEv2SA instances exist only when the IKEv2 SA pair exists, i.e., they exist only when the
tunnel is active.
IX.6 IPsec.IKEv2SA.ChildSA
The ChildSA table models child SA pairs. It is a child of the corresponding IKEv2SA instance
and so exists only when the IKEv2SA instance exists.
8
i.e., an IP Interface instance with Type = “Tunnel”, and another IP Interface instance with Type =
“Tunneled”.
November 2020 © The Broadband Forum. All rights reserved 121 of 204
Device Data Model TR-181 Issue 2 Amendment 14
Figure 41 below depicts the high level ETSI M2M functional architecture defined in section 4 of
ETSI TS 102 690 [39]. The Data Models defined [41] are used within CWMP enabled Devices
and Gateways within the Device and Gateway domain.
M2M Applications
M2M
Management
M2M Service Capabilities Functions
Network
Management
Functions
Access Network
M2M
Applications
M2MService
Capabilities
M2M Gateway
November 2020 © The Broadband Forum. All rights reserved 122 of 204
Device Data Model TR-181 Issue 2 Amendment 14
Within the Device and Gateway Domain, the M2M Device and Gateway contains 2 functional
components as defined in the ETSI M2M Functional Architecture [39]:
• M2M Service Capabilities: M2M functions that are to be shared by different M2M
Applications.
• M2M Applications: Applications that run the service logic and use M2M Service
Capabilities.
Interactions between components within the ETSI architecture are defined using reference
points. Figure 42 below illustrates the Service Capability Layer (SCL) mId reference point that is
of interest. A full explanation of the SCL reference points is provided in section 5 of the ETSI
M2M Functional Architecture [39].
mId
Communication modules
Core Network Connection
The M2M Device or Gateway SCL provides capabilities (functionality) for the following areas:
• Application Enablement (xAE)
• Generic Communication (xGC)
• Reachability, Addressing and Repository (xRAR)
• Communication Selection (xCS)
• Remote Entity Management (xREM)
• SECurity (xSEC)
• History and Data Retention (xHDR)
• Transaction Management (xTM)
• Compensation Broker (xCB)
• Telco Operator Exposure (xTOE)
• Interworking Proxy (xIP)
NOTE - The « x » designates a capability is used in the context of the Device (D) or Gateway (G).
November 2020 © The Broadband Forum. All rights reserved 123 of 204
Device Data Model TR-181 Issue 2 Amendment 14
The Data Model in [40] reflects the device management objects and parameters necessary to
implement xREM functionality across the mId reference point as defined in Annex E of the ETSI
Functional Architecture [39] is depicted in Figure 43. In this instance, the Device Mgmt Client is
considered a CWMP endpoint interface and the Device Mgmt Server is considered the ACS
interface. In most situations, these endpoints and servers have an interface between the native
Device, Gateway or Server environment and the SCL. In addition, the dIa reference point, using
RESTful procedures, is used to discover M2M D’ Devices and M2M Applications as well as
proxy selected xREM management functions.
NOTE - The mId reference point in this scenario would support CWMP for the exchange of “mgmtObjs”
using the xREM procedures between SCLs while continuing to support the ETSI RESTful
procedures (e.g., container management) for the exchange of other resources across the mId
reference point.
Within the ESTI M2M Functional Architecture, the xREM is responsible for the following
management functions:
• General Management: Provides retrieval of information related to the M2M Device or
Gateway that hosts the ETSI M2M Service Capability Layer (SCL).
• Configuration Management: Provides configuration of the M2M Device or Gateway’s
capabilities in order to support ETSI M2M Services and Applications.
• Diagnostics and Monitoring Management: Provides diagnostic tests and
retrieves/receives alerts associated with the M2M Device or Gateway that hosts the SCL.
• Software Management: Maintains software associated with the SCL and M2M services.
• Firmware Management: Maintain firmware associated with the M2M Device or Gateway
that hosts the SCL.
• Area Network Management: Maintains devices on the M2M Area Network associated
with the SCL.
• SCL Administration: Provides administration capabilities in order to configure and
maintain a SCL within the M2M Device or Gateway.
November 2020 © The Broadband Forum. All rights reserved 124 of 204
Device Data Model TR-181 Issue 2 Amendment 14
Within the customer premises, equipment is categorized within the ETSI M2M framework as a:
• M2M Gateway: A Gateway that runs M2M Application(s) using M2M Service
Capabilities.
• M2M Device: A Device that runs applications using M2M capabilities and network
domain functions. Depending on M2M capabilities of the M2M Device, the M2M Device
is defined as a:
o Device (D): provides M2M Service Capabilities (DSCL) that communicates to an
NSCL using the mId reference point and to DA using the dIa reference point
o Device' (D'): hosts a Device Application (DA) that communicates to a GSCL
using the dIa reference point. D' does not implement ETSI M2M Service
Capabilities
• Non-ETSI M2M complaint device (d): A device that connects to a SCL through the
SCL’s Interworking Proxy capability.
November 2020 © The Broadband Forum. All rights reserved 125 of 204
Device Data Model TR-181 Issue 2 Amendment 14
X.2 Device:2 Data Model and Functionality for ETSI M2M REM
Annex B of the ETSI M2M Functional Architecture [39] provides a cross reference between the
xREM management functions and the object instances and RPCs required to implement the
management functionality. The following is a summary of the objects, services, components,
RPCs and optional TR-069 functionality required by the ETSI M2M xREM solution.
The ETSI M2M xREM solution in Annex E of the ETSI M2M Managed Objects [40] defines a
cross reference of the following ETSI resources to the existing Device:2 Data Model objects.
These ETSI resources are:
• etsiDeviceInfo
• etsiDeviceCapability
• etsiMemory
• etsiTrapEvent
• etsiPerformanceLog
• etsiFirmware
• etsiSoftware
• etsiReboot
The implementation of these resources the use of the following objects from the data model:
• DeviceInfo.
• WiFi.
• SmartCardReaders.
• USB.
• HomePlug.
• MoCa.
• UPA.
• UPnP.
• Hosts.
• SoftwareModules.
• FaultMgmt. (Use for etsiTrapEvent)
• SelfTestDiagnostics.
• DeviceInfo.VendorLogFile. (Use for etsiPerformanceLog)
• ManagementServer.EmbeddedDevice.
• ManagementServer.VirtualDevice.
November 2020 © The Broadband Forum. All rights reserved 126 of 204
Device Data Model TR-181 Issue 2 Amendment 14
X.3 Device:2 Data Model and Functionality for ETSI M2M REM
In addition to reusing objects and parameters, the ETSI M2M xREM solution defines extensions
to the resource model for the following ETSI resources by defining extensions to the data model
for the following ETSI resources:
• etsiSclMo
• etsiAreaNwkInfo
• etsiAreaNwkDeviceInfo
These resources provide administration of the SCL in order for the SCL in the Device or
Gateway to communicate with SCLs in the network. In addition, these resources provide
administration of the SCL for M2M Devices within the local M2M area network attached to a
Device or Gateway in order to communicate with associated network SCLs.
The ETSI M2M Services Device model defines the ETSIM2M service in support of the xREM
functionality.
November 2020 © The Broadband Forum. All rights reserved 127 of 204
Device Data Model TR-181 Issue 2 Amendment 14
NOTE - As a SCL instance within a M2M Device or Gateway is associated with one M2M service
provider, the M2M Device or Gateway is capable of maintaining multiple SCL instances.
The M2M Service Bootstrap and Service Connection procedures are defined in section 8.2 of the
ETSI M2M Functional Architecture [39] and describe how some of the credentials are shared
and obtained in order to establish a connections (e.g, HTTP TLS-PSK) during the exchange of
RESTFul information over the mId reference point.
November 2020 © The Broadband Forum. All rights reserved 128 of 204
Device Data Model TR-181 Issue 2 Amendment 14
In addition to the logical representation of a M2M Node, the following are constraints of a M2M
Node that reflect on why a M2M Device or Gateway would instantiate multiple SCL instances:
• A M2M Node is owned by one M2M Service Provider.
• A M2M Node is instantiated upon M2M Bootstrap procedure or pre-provisioning the
M2M Device or Gateway with a M2M Service Provider.
• Multiple M2M Nodes MAY be instantiated on the same M2M Device or Gateway by
performing multiple M2M Bootstrap procedures either with the same M2M Service
Provider or with different M2M Service Providers.
When a M2M Device or Gateway SCL registers with a NSCL, the NSCL maintains the
following information in its resource tree for the SCL that allows the NSCL to identify and
contact the M2M Device or Gateway SCL:
• SCL-ID that globally unique and MAY be the same as the M2M-Node-ID.
• M2MPoCs contactInfo of the M2M Device or Gateway SCL – This MAY be the FQDN,
IP Address and port information or it MAY be other information that the M2M Service
Provider can use to ask the network access provider for an IP Address.
November 2020 © The Broadband Forum. All rights reserved 129 of 204
Device Data Model TR-181 Issue 2 Amendment 14
Architecture [39] describes this procedure. The M2M Device or Gateway MAY be provisioned
through the TR-069 interface to either limit the number of URIs discovered by the device or
define the maximum size allowed for a discovery result.
The SAF policies are organized into instances of Policy sets. The selection of which Policy sets
are used by the M2M Device or Gateway SCL is determined by the PolicyScope attribute of the
Policy set.
Section 9.3.1.5 of the ETSI M2M Functional Architecture [39] describes this procedure. These
policies are maintained through the TR-069 interface.
November 2020 © The Broadband Forum. All rights reserved 130 of 204
Device Data Model TR-181 Issue 2 Amendment 14
NOTE - An Access Network Provider SAF is identified from the Access Network Provider name
parameter.
November 2020 © The Broadband Forum. All rights reserved 131 of 204
Device Data Model TR-181 Issue 2 Amendment 14
In Figure 45, an M2M Gateway has two (2) SCL instances that manage three (3) M2M Devices.
Each M2M Device is represented in the Root Data Model’s Hosts.Host table. The M2M Devices
are represented by the AreaNwkDeviceInfoInstance object that was discovered within a context
of an AreaNwkInstance of a SCL. As a M2M Device is capable of being discovered through
multiple M2M Area Networks, different instances of the AreaNwkDeviceInfoInstance could
reference the same or different Host table entry.
November 2020 © The Broadband Forum. All rights reserved 132 of 204
Device Data Model TR-181 Issue 2 Amendment 14
In the scenario where a M2M Device (D’, d) is discovered as part of an Embedded or Virtual
Device, the AreaNwkDeviceInfoInstance is maintained as an item in the
DiscoveryProtocolReference parameter of the Embedded or Virtual Device using one or more of
the protocols listed in the DiscoveryProtocol parameter. Figure 46 describes the scenario where
the M2M Devices are discovered using the ETSI-M2M protocols.
November 2020 © The Broadband Forum. All rights reserved 133 of 204
Device Data Model TR-181 Issue 2 Amendment 14
SCL.{1}.
Enable = true
However for deployments where the SCL will transfer messages between M2M Applications and
the NSCL, each SCL must have:
An enabled SCL
An enabled default SAFPolicySet
At least 1 enabled ANPPolicy with an enabled Schedule for each of the enabled
RequestCategory. There is one enabled RequestCategory instance for each possible
RCAT value (e.g., 8 possible values in ETSI release 1.0)
Within the M2MSPPolicy, there is one enabled RequestCategory instance for each possible
RCAT value (e.g., 8 possible values in ETSI release 1.0)
November 2020 © The Broadband Forum. All rights reserved 134 of 204
Device Data Model TR-181 Issue 2 Amendment 14
SCL.{1}.
Enable = true
SCL.{1}.SAFPolicySet.{1}.
Enable = true
PolicyScope= default
SCL.{1}.SAFPolicySet.{1}.ANPPolicy.{1}.
Enable = true
ANName = AccessNetworkProviderName
SCL.{1}.SAFPolicySet.{1}.ANPPolicy.{1}.RequestCategory.{1}.
Enable = true
RCAT = RCAT1
SCL.{1}.SAFPolicySet.{1}.ANPPolicy.{1}.RequestCategory.{1}.Schedule.{1}.
Enable = true
Schedules = * * * * *
.
.
SCL.{1}.SAFPolicySet.{1}.ANPPolicy.{1}.RequestCategory.{7}.
Enable = true
RCAT = RCAT7
SCL.{1}.SAFPolicySet.{1}.ANPPolicy.{1}.RequestCategory.{7}.Schedule.{1}.
Enable = true
Schedules = * * * * *
SCL.{1}.SAFPolicySet.{1}.M2MSPPolicy.RequestCategory.{1}.
Enable = true
RCAT = RCAT7
RankedANList = AccessNetworkProviderName
.
.
SCL.{1}.SAFPolicySet.{1}.M2MSPPolicy.RequestCategory.{7}.
Enable = true
RCAT = RCAT7
RankedANList = AccessNetworkProviderName
November 2020 © The Broadband Forum. All rights reserved 135 of 204
Device Data Model TR-181 Issue 2 Amendment 14
Regarding different traffic bridging rules for Provider Bridges, the possible cases are
characterized as follows:
• Provider Edge Bridge as a pure VLAN Bridge
• Stacked VLAN termination in a routed environment
• Internally generated to tagged WAN traffic as a S-VLAN Termination
November 2020 © The Broadband Forum. All rights reserved 136 of 204
Device Data Model TR-181 Issue 2 Amendment 14
DSL
VLAN
Termination
S-VLANx
VLAN
C-VLANa
Termination
S-VLANu
Router
Wi-Fi
Ethernet
Interface
In order to model the traffic scenarios in Figure 48, the use of the VLANTermination and
Bridging Objects are used.
November 2020 © The Broadband Forum. All rights reserved 137 of 204
Device Data Model TR-181 Issue 2 Amendment 14
VLAN(u) DSL_PTM_EthernetLink
CE – Customer Edge
CN – Customer Network VLAN(x,a)
PN – Provider Network
VLANTermination: CVLAN
VLANa
CE CE
Port_Eth Port_SSIDa Port_SSIDb Port_SSIDc
Pvid a Pvid a
November 2020 © The Broadband Forum. All rights reserved 138 of 204
Device Data Model TR-181 Issue 2 Amendment 14
• VLANTermination object (S-TAG): The S-TAG is applied and removed for traffic from
and to the C-VLAN termination object.
When configuring the components of a Provider Bridge, the Bridge instance associated with the
SVLAN component will have its Device.Bridging.Bridge.{i}.Port.{i}. objects provisioned as
either ProviderNetworkPort or a CustomerNetworkPort. Likewise, the CVLAN component(s)
will have its Device.Bridging.Bridge.{i}.Port.{i}. objects provisioned as CustomerEdgePorts.
November 2020 © The Broadband Forum. All rights reserved 139 of 204
Device Data Model TR-181 Issue 2 Amendment 14
November 2020 © The Broadband Forum. All rights reserved 140 of 204
Device Data Model TR-181 Issue 2 Amendment 14
The ZigBee devices reside behind a CPE proxy and communicate with the ACS via this CPE
proxy. The CPE proxy normally resides in a device such as a broadband router, i.e., a home
gateway or an enterprise gateway, and it has a proxy function to translate CWMP messages to
ZDO (ZigBee Device Object) function invocations based on the ZigBee data model. The proxy
function translates the messages by using a mapping of ZigBee data model objects and CWMP
methods to ZDO functions and their parameters. A ZigBee management example using is shown
in Figure 50.
Figure 50 – Usage of the data model to manage ZigBee devices with TR-069
November 2020 © The Broadband Forum. All rights reserved 141 of 204
Device Data Model TR-181 Issue 2 Amendment 14
This example shows how the ACS gets the network address of a ZigBee device by using TR-069
communication based on the ZigBee data model. The ACS performs a “GetParameterValues”
CWMP method call containing the parameter “Device.ZigBee.ZDO.{i}.NetworkAddress” of the
ZigBee data model, which refers to the ZigBee network address. The proxy function in the CPE
proxy changes the received message to a ZDO message that calls some ZDO function on the
ZigBee Coordinator. The ZigBee Coordinator manages the ZigBee devices according to the
called ZDO function and sends the result (the searched network address, in this case) to the
proxy. The proxy function changes the ZDO management result to a CWMP message which is
denoted in Figure 51 as “GetParameterValuesResponse”. The parameter name inside the
parameter list is “Device.ZigBee.ZDO.{i}.NetworkAddress” and the corresponding value is
“0x0fE3” (network address instance).
November 2020 © The Broadband Forum. All rights reserved 142 of 204
Device Data Model TR-181 Issue 2 Amendment 14
However, the following example explains how the main needs of the proxying mechanisms have
been taken into account and are covered by the designed data model.
Imagine, for example, a ZigBee coordinator that controls a network which contains, among
others, a ZigBee device that is used in a home automation system, i.e., implements the Home
Automation Application Profile (0104). Then, the instantiation of the data model for the CPE
contains, among others, the following two parameter values (note that “ZC” stands for ZigBee
coordinator):
Device.ZigBee.ZDO.1.NodeDescriptor.LogicalType = “ZC”
Device.ZigBee.ZDO.2.ApplicationEndpoint.1.ApplicationProfileId = “0104”
In order to reference and manage these devices with the EmbeddedDevice mechanism, the CPE
instance would simply also include, among others, the following entries:
Device.ManagementServer.EmbeddedDevice.1.Reference
(pointing to) Device.DeviceInfo.TemperatureStatus.TemperatureSensor.2
Device.ManagementServer.EmbeddedDevice.1.ProtocolReference
(pointing to) Device.ZigBee.ZDO.2.ApplicationEndpoint.1
Device.ManagementServer.EmbeddedDevice.2.DiscoveryReference
(pointing to) Device.ZigBee.ZDO.1
For setting the temperature for TemperatureSensor.2, for example, the TR-069 proxy would send
a request through the ZigBee coordinator to the Application endpoint referenced by the
ProxyReference parameter on the EmbeddedDevice instance. As indicated by the value of
Device.ManagementServer.EmbeddedDevice.1.Reference in the above example, multiple
sensors integrated in the same ZigBee device (i.e., same ZDO instance) can be modeled as
different Embedded or Virtual devices while referring to the same ZDO object.
According to the ZigBee protocol, the discovery of ZigBee devices is the responsibility of the
ZigBee coordinator. Thus, a ZDO instance that has a LogicalType=“ZC” can be made a
DiscoveryReference of the various EmbeddedDevice and VirtualDevice instances.
November 2020 © The Broadband Forum. All rights reserved 143 of 204
Device Data Model TR-181 Issue 2 Amendment 14
When a PCP client is embedded in a device, the PCP client can be invoked by:
- Applications running on the device itself (remote access, VoIP…),
- The device GUI,
- The Controller,
- Interworking functions [44] and the PCP proxy that allow applications running on other
end-devices connected to the device to manage the PCP-controlled device.
RG
Web UI
Internal app. PCP PCP
Client
CWMP PCP-Controlled
client CGN
CWMP
ACS
November 2020 © The Broadband Forum. All rights reserved 144 of 204
Device Data Model TR-181 Issue 2 Amendment 14
Device PCP
Client
RG
PCP Proxy
PCP PCP
Client
CWMP PCP-Controlled
client
CGN
CWMP
ACS
Figure 53 – Example of a PCP Client embedded in a device using CWMP, with PCP Proxy
in the RG
Defining a PCP data model allows the Controller to remotely manage the PCP client including:
- Configuration and monitoring of the PCP client itself,
- Configuration and monitoring of the PCP servers interacting with the client,
- Monitoring PCP Interworking Functions,
- Monitoring and setting rules in the PCP-controlled device from the PCP client.
Whereas the description of objects themselves is enough to understand how to proceed, some
operations need further explanation about the way to manage the objects.
The data model allows for more than one PCP client, but those clients operate independently.
Therefore, the text below considers only one PCP client.
November 2020 © The Broadband Forum. All rights reserved 145 of 204
Device Data Model TR-181 Issue 2 Amendment 14
Based on these server definitions, the PCP client follows the procedures specified in [47] to
determine the IP Address to be used for each configured PCP server.
- While the PCP client is trying to connect to a PCP server on a given IP address, the
PCP.Client.{i}.Server object’s ServerAddressInUse holds that IP address and its Status is
“Connecting”.
- When the PCP client has successfully received a response from a server, Status becomes
“Enabled” and server-discovered properties (CurrentVersion, Capabilities…) are stored
in the corresponding parameters.
- If the PCP client fails to connect to a given PCP server, ServerAddressInUse remains the
last IP address tried and Status reflects the appropriate error condition.
No conflict or doubt can arise between DHCP and static configurations, because they are
represented in separate PCP.Client.{i}.Server instances, with Origin to record the origin of the
configuration. ServerNameOrAddress is writable by the Controller only if Origin is “Static”.
November 2020 © The Broadband Forum. All rights reserved 146 of 204
Device Data Model TR-181 Issue 2 Amendment 14
Outbound Mapping
An outbound mapping is defined by an instance of the PCP.Client.{i}.Server.{i}.Outbound-
Mapping table. It is created by a PCP request with the PEER OpCode, as described in Section 12
of [43]. This is allowed only if PCP.Client.{i}.PEEREnable is “true”.
It is possible to define a mapping on behalf of another device. The PCP request uses the
THIRD_PARTY option to create the mapping, as described in Section 13.1 of [43]. This is
allowed only if PCP.Client.{i}.THIRDPARTYStatus is “Enabled”.
These operations can be requested by the device itself (embedded applications, GUI, CWMP…)
or by another device through the UPnP IGD interworking function [44] (if PCP.Client.{i}.UPnP-
IWF.Status is “Enabled”) or the PCP Proxy [46] (if PCP.Client.{i}.PCPProxy.Status is
“Enabled”).
[48] provides a set of examples to illustrate PCP operations. These operations can be monitored
by getting PCP.Client.{i}.Server.{i}.InboundMapping and PCP.Client.{i}.Server.{i}.Outbound-
Mapping objects. The parameters sent by the PCP client in MAP or PEER requests are
represented in corresponding parameters (Lifetime, SuggestedExternalIPAddress, Suggested-
ExternalPort, SuggestedExternalPortEndRange, ProtocolNumber, InternalPort…) of
PCP.Client.Server.{i}.InboundMapping and PCP.Client.Server.{i}.OutboundMapping. The
Origin parameter denotes which mechanism triggered the request:
- “Internal” for an embedded application,
- “Static” for a request issued from the GUI or set using CWMP (see next paragraph),
- “UPnP_IWF” for a UPnP IGD device,
- “PCP_Proxy” for a PCP device.
The parameters received when the PCP-controlled device has processed the request are
represented in corresponding parameters (Lifetime, AssignedExternalIPAddress,
AssignedExternalPort, AssignedExternalPortEndRange…) of PCP.Client.{i}.Server.{i}.In-
boundMapping and PCP.Client.{i}.Server.{i}.OutboundMapping.
To remotely create rules using CWMP or USP, the Controller configures the request to be sent
by the PCP Client. To do so the Controller creates the necessary objects and sets, depending on
the operation, the Lifetime, SuggestedExternalIPAddress, SuggestedExternalPort,
SuggestedExternalPortEndRange, ProtocolNumber, InternalPort parameters of
PCP.Client.{i}.Server.{i}.InboundMapping or of PCP.Client.{i}.Server.{i}.OutboundMapping.
To monitor the result, the Controller will get PCP.Client.{i}.Server.{i}.InboundMapping and
PCP.Client.{i}.Server.{i}.OutboundMapping objects to retrieve the parameters received from the
PCP-controlled device.
November 2020 © The Broadband Forum. All rights reserved 147 of 204
Device Data Model TR-181 Issue 2 Amendment 14
RFC 2784 [50] defines a generic mechanism to encapsulate a packet of protocol A (known as the
payload protocol) in a GRE packet. The resulting GRE packet is then encapsulated into a
protocol B (known as the delivery protocol). The result of this operation is a payload packet that
is encapsulated in a GRE tunnel delivered via protocol B. RFC 2890 [51] extends the GRE
header with two optional fields. The Key field provides an identifier to identify flows within the
GRE tunnel. The Sequence Number field is used to maintain the sequence of packets within the
GRE tunnel.
Device:2 models a GRE tunnel using the GRE.Tunnel object. Multiple GRE flows to the same
remote endpoint are possible by defining multiple GRE.Tunnel.{i}.Interface instances within the
same GRE.Tunnel instance.
This Appendix describes the usage of GRE for two scenarios: L2 payload over GRE and L3
payload over GRE.
A GRE tunnel is used to preserve the VLAN tagging at the edge to further interconnect the other
VLAN segments. In this scenario, as the remote endpoint is the same in both cases, the VLANs
are modeled as two flows within a single instance of the GRE.Tunnel.{i} object.
In addition, the DSCPMarkPolicy parameter can be used to assign DSCP values to each GRE.-
Tunnel.{i}.Interface instance for QoS treatment in the access network and towards the GRE
concentrator.
Access network
TR-069 CPE
GRE Tunnel Headend
Interface 1 DSCP 1
Ethernet Interface 2
(vlan1)
(vlan1)
Ethernet Interface 3
GRE Tunnel
(vlan2)
GRE Tunnel 1 Interface 2 DSCP 2
(vlan2)
Figure 54 – VLAN Traffic over GRE
November 2020 © The Broadband Forum. All rights reserved 148 of 204
Device Data Model TR-181 Issue 2 Amendment 14
The configuration for this scenario assumes that the WAN Ethernet interface, Ethernet Link and
IP interface objects have been previously configured; likewise the LAN Ethernet and Bridging
objects have been previously configured. This section focuses on the association and
configuration of the GRE tunnel with the WAN IP interface and the Bridge Ports.
The example configuration uses the RFC 2890 [51] Key field to determine the GRE tunnel
interface to which the GRE tunnel will forward packets.
GRE Tunnel
Device.GRE.Tunnel.1.Enable = True
Device.GRE.Tunnel.1.RemoteEndPoints = GRE-IPAddress
Device.GRE.Tunnel.1.DeliveryHeaderProtocol = IPv4
November 2020 © The Broadband Forum. All rights reserved 149 of 204
Device Data Model TR-181 Issue 2 Amendment 14
Device.GRE.Tunnel.1.Interface.1.KeyIdentifier = 1
Assign the DSCP value to each GRE Tunnel Interface using the GRE.Filter
Device.GRE.Filter.1
Device.GRE.Filter.1.Enable = True
Device.GRE.Filter.1.Order = 1
Device.GRE.Filter.1.Interface = Device.GRE.Tunnel.1.Interface.1
Device.GRE.Filter.1.DSCPMarkPolicy = DSCP1
Device.GRE.Filter.2
Device.GRE.Filter.2.Enable = True
Device.GRE.Filter.2.Order = 2
Device.GRE.Filter.2.Interface = Device.GRE.Tunnel.1.Interface.2
Device.GRE.Filter.2.DSCPMarkPolicy = DSCP2
November 2020 © The Broadband Forum. All rights reserved 150 of 204
Device Data Model TR-181 Issue 2 Amendment 14
Figure 56 shows the scenario where an IPv4 LAN network is tunneled in an IPv6 GRE tunnel
that uses IPv6 global addresses.
The GRE tunnels use the default IPv6 WAN interface of the CPE.
Access network
TR-069 CPE
Headend
Ethernet Interface 2
GRE Tunnel 1
(IPv4)
IPv6 delivery packets
IPv4 payload packets
Figure 56 – IP over IP GRE Encapsulation
Figure 57 shows the configuration of a GRE tunnel for an IPv4 Private network attached to a
LAN interface that is encapsulated in the IPv6 packet.
November 2020 © The Broadband Forum. All rights reserved 151 of 204
Device Data Model TR-181 Issue 2 Amendment 14
The configuration for this scenario assumes that the WAN and LAN Ethernet interface, Ethernet
Link and IP interface objects have been previously configured. This section focuses on the
association and configuration of the GRE tunnel with the WAN and Tunnel IP interfaces.
GRE Tunnel
Device.GRE.Tunnel.1.Enable = True
Device.GRE.Tunnel.1.RemoteEndPoints = GRE-IPAddress
Device.GRE.Tunnel.1.DeliveryHeaderProtocol = IPv6
November 2020 © The Broadband Forum. All rights reserved 152 of 204
Device Data Model TR-181 Issue 2 Amendment 14
MAP (Mapping of Address and Port) is a mechanism for transporting IPv4 packets across an
IPv6 network, and a generic mechanism for mapping between IPv6 addresses and IPv4 addresses
and ports. There are two mutually exclusive MAP transport modes, both of which use NAPT44
(modified to use a restricted port range):
• MAP-E (Encapsulation) [52] uses an IPv4-in-IPv6 tunnel.
• MAP-T (Translation) [54] uses stateless NAT64.
Many aspects of the MAP configuration are the same for both MAP-E and MAP-T. [53] defines
DHCPv6 options for configuring MAP parameters, and the Device:2 data model parameters
correspond closely to these parameters.
November 2020 © The Broadband Forum. All rights reserved 153 of 204
Device Data Model TR-181 Issue 2 Amendment 14
The Device:2 data model models each MAP domain as an instance of the corresponding
MAP.Domain table. The most important domain parameters are:
• TransportMode: “Encapsulation” (MAP-E) or “Translation” (MAP-T).
• WANInterface: the WAN IP interface through which all MAP traffic will flow.
• IPv6Prefix: end-user IPv6 prefix; one of this interface’s prefixes, typically assigned via
DHCPv6 Prefix Delegation.
• BRIPv6Prefix: the Border Router IPv6 prefix (MAP-T mode) or IPv6 address (MAP-E
mode).
• DSCPMarkPolicy: governs DSCP selection when encapsulating / translating.
• PSIDOffset etc: parameters defining Port-sets ([52] Section 5.1).
Each domain has a set of mapping rules ([52] Section 5) with each rule having the following
parameters:
• IPv6Prefix: the IPv6 prefix for this rule.
• IPv4Prefix: the IPv4 prefix for this rule.
• EABitsLength: the length of the EA (Embedded Address) bits for this rule.
• IsFMR: whether this rule is an FMR (Forwarding Mapping Rule).
The mapping rule with the longest match between its IPv6Prefix and the end-user IPv6 prefix is
the BMR (Basic Mapping Rule). This is used to determine the MAP IPv6 address, which is one
of Interface’s addresses and is used for all MAP traffic.
Figure 59 shows the flow of MAP traffic through the various interfaces. Noted in the figure are
sample values for the various IP.Interface entries that would be needed.
November 2020 © The Broadband Forum. All rights reserved 154 of 204
Device Data Model TR-181 Issue 2 Amendment 14
November 2020 © The Broadband Forum. All rights reserved 155 of 204
Device Data Model TR-181 Issue 2 Amendment 14
November 2020 © The Broadband Forum. All rights reserved 156 of 204
Device Data Model TR-181 Issue 2 Amendment 14
Devices that support both DSL and FAST (both interfaces’ objects are administratively Enabled)
have the capability to switch from one mode to another. If the device is connected in xDSL mode
(DSL.Line.{i}.status is “Up”), FAST interface is down (FAST.Line.{i}.status is “Not Present” or
“Down”). The InterfaceStack Table needs to reflect the relationship between the PTM interface
and DSL interface as seen in Figure 61. The PTM’s LowerLayers points to DSL.Channel
instance whose status is “Up”.
November 2020 © The Broadband Forum. All rights reserved 157 of 204
Device Data Model TR-181 Issue 2 Amendment 14
In the case when the device is connected in FAST mode, the DSL line is down. The
InterfaceStack Table needs to show that the PTM’s LowerLayers points to the FAST.Line
interface as below:
November 2020 © The Broadband Forum. All rights reserved 158 of 204
Device Data Model TR-181 Issue 2 Amendment 14
The same fall back mechanism applies to the bonding of FAST and DSL interfaces. PTM’s
interface is to be stacked on two bonding groups as they are both administrative “Enable”.
However, in the InterfaceStack Table, the PTM interface’s LowerLayers points to the bonding
group that has Operational Status “Up”. In the diagram below, PTM’s LowerLayers points to the
bonding group of FAST.Line, which is currently “Up”. The DSL bonding group instance
corresponding to DSL channels is “Down”.
In the case where DSL Bonding group is “Up” for non-FAST mode lines, the diagram below
shows PTM’s LowerLayers pointing to the bonding group of DSL.Channel, which is currently
“Up”. The DSL bonding group instance corresponding to FAST Lines is “Down” here.
November 2020 © The Broadband Forum. All rights reserved 159 of 204
Device Data Model TR-181 Issue 2 Amendment 14
November 2020 © The Broadband Forum. All rights reserved 160 of 204
Device Data Model TR-181 Issue 2 Amendment 14
There are a number of use cases for adding a USB Host and connected devices to a CWMP data
model. One example is retrieving the exact product identity of the connected device in the event
of service issues such as printer or file sharing problems. Another example is notifying the user
that a newly-connected device is not supported, e.g., due to a missing driver. Or the detection of
the connection of a particular USB device could mean additional services for this device could
be offered to the subscriber.
The data model contains the number of devices connected to each host controller. For each
device, the main properties of the USB device descriptors as well as interface descriptors are
represented. The latter is to support devices that only indicate class/subclass (and therefore
device type) at the interface level.
External
CPE Hub DeviceA1
Host Root
Controller Hub
DeviceB
DeviceC
All USB devices attach to a USB Host through a port on a USB entity known as a hub. Hubs
have status bits that are used to report the attachment or removal of a USB device on one of its
ports. The USB Host queries the hub to retrieve these status bits. In the case of an attachment,
the USB Host enables the port and addresses the USB device through the device’s control pipe at
the default address. Figure 65 depicts both a Root Hub and an External Hub that provide this
service.
The USB Host assigns a unique USB address to the device and then determines if the newly
attached USB device is a hub or function. The USB Host establishes its end of the control pipe
for the USB using the assigned USB address and endpoint number zero. This is reflected in the
data model by adding a new USBHosts.Host.{i}.Device.{i}. instance.
November 2020 © The Broadband Forum. All rights reserved 161 of 204
Device Data Model TR-181 Issue 2 Amendment 14
If the attached USB device is a hub and USB devices are attached to its ports, then the above
procedure is followed for each of the attached USB devices.
If the attached USB device is a function, then attachment notifications will be handled by the
USB Host software that is appropriate for the function.
November 2020 © The Broadband Forum. All rights reserved 162 of 204
Device Data Model TR-181 Issue 2 Amendment 14
XVIII.1 Overview
The Location object defined in this document is a multi-instance object that can be used by any
device that needs to be able to acquire and/or express its "location."
This Location object is a multi instance object to account for the fact that a Device can acquire
location information in more than one way. Location info can be acquired by:
• GPS/A-GPS, i.e., provided by specific on-board circuitry such as GPS or A-GPS;
• Manual, i.e., manually configured via the Device local GUI
• External, i.e., remotely configured via a number of protocols, including e.g., TR-069
Location objects can be created autonomously by the device, based on the location information it
receives by CWMP or USP. When the Location object is created autonomously by the device,
the device itself will fill the DataObject parameter with location data coming from GPS/AGPS,
local GUI or an external protocol (not CWMP). When created by CWMP or USP, it is up to the
CWMP or USP protocol to configure the DataObject parameter. Regardless of how a Location
object is created, the device is responsible for populating the values of all of the location
metadata (i.e., all parameters except the DataObject that contains the location information and
the AcquiredTime) not writable by any external mechanism.
When a Location object is updated, the object can only be updated through the same mechanism
that created it. The device will update the AcquiredTime as necessary and place the updated
location data in the DataObject.
When a Location object is deleted, the object can only be deleted through the same mechanism
that created it.
Devices that need to make use of location data will need to have rules around how to deal with
multiple instances of location data. These rules are out of scope for CWMP or USP and the
Device:2 data model. These rules may need to be specific to a particular application. For
example, if a VoIP device chooses to send location data in a SIP message, the device can include
all of the instances of DataObject in that message, order the Locations Objects according to the
acquisition date and time (parameter AcquiredDateTime, most recent is first) or order the
Location objects according to some sort of protocol preference, such as GPS, A-GPS, DHCP,
HELD, CWMP, USP, and then all others according to acquisition date and time.
A Femtocell Access Point (FAP) with multiple sources of location can also need rules for use of
the Location object. If it must make decisions locally based on location, the FAP will need rules
to determine the preferred location. If the FAP must send its location elsewhere, the FAP will
November 2020 © The Broadband Forum. All rights reserved 163 of 204
Device Data Model TR-181 Issue 2 Amendment 14
need rules to determine whether the FAP sends all of its location data, or selects certain locations
based on specific criteria.
Location information in these IETF RFCs is specified within the IETF framework of presence
information. While these IETF RFCs specify presence information different from the Location
component model assumed in the TR-069 framework, the IETF data format is adopted by BBF
independent of these higher level differences.
IETF defines its XML syntax for geographical information as a subset of presence information
(<presence> object in the XML example below), generally related to a device (<device> object)
or a user (<user> object). IETF location information is represented using a Presence Information
Data Format Location Object (PIDF-LO). This is represented as the <geopriv> object in the
XML example below.
<presence xmlns="urn:ietf:params:xml:ns:pidf"
xmlns:dm="urn:ietf:params:xml:ns:pidf:data-model"
xmlns:gp="urn:ietf:params:xml:ns:pidf:geopriv10"
xmlns:gml="http://www.opengis.net/gml"
xmlns:cl="urn:ietf:params:xml:ns:pidf:geopriv10:civicAddr"
entity=" ">
<dm:device id=" FFFFFF-FAP-123456789 ">
<gp:geopriv>
<gp:location-info>
<gml:Point srsName="urn:ogc:def:crs:EPSG::4326">
<gml:pos>-43.5723 153.21760</gml:pos>
</gml:Point>
<cl:civicAddress>
November 2020 © The Broadband Forum. All rights reserved 164 of 204
Device Data Model TR-181 Issue 2 Amendment 14
<cl:FLR>2</cl:FLR>
</cl:civicAddress>
</gp:location-info>
<gp:usage-rules/>
<gp:method>Wiremap</gp:method>
</gp:geopriv>
<dm:deviceID>mac:8asd7d7d70</dm:deviceID>
<dm:timestamp>2007-06-22T20:57:29Z</dm:timestamp>
</dm:device>
</presence>
November 2020 © The Broadband Forum. All rights reserved 165 of 204
Device Data Model TR-181 Issue 2 Amendment 14
November 2020 © The Broadband Forum. All rights reserved 166 of 204
Device Data Model TR-181 Issue 2 Amendment 14
o <retransmission-allowed>
Note that this field is not intended as instruction to the device whose
location this is. Rather, it is intended to provide instruction to other
systems that the device sends its location to (via SIP or other mechanisms).
Therefore, the device will need to maintain its own policy (no standardized
TR-069 data model is provided for this) as to when and where to send its
location to others, and how to set this parameter when transmitting this
location information. The device can choose to set this parameter to "yes"
or to "no" when sending its location to others. RFC4119 [56] specifies that
this element’s default value is "no".
c. <method> If this location object is being created by the device as a result of GPS,
A-GPS, or Manual mechanisms, the <method> parameter will be populated with
"GPS", "A-GPS", or "Manual", respectively. If the location object is being created
by External:CWMP, then this parameter will not be used or populated by the
Controller.
4. <deviceID> It contains a globally unique identifier, in the form of a URN, for each of the
presentity devices (RFC4479 [59]).
5. <timestamp> is optional. The device (GPS, A-GPS, Manual), ACS (External:CWMP) or
USP-Controller (External:USP) can set this to the time the location was set or acquired.
November 2020 © The Broadband Forum. All rights reserved 167 of 204
Device Data Model TR-181 Issue 2 Amendment 14
XIX.1 Overview
There are four types of alarm event handling:
Expedited Event Alarm event is immediately notified to the Controller with the use of
Active Notification mechanism
Queued Event Alarm event is notified to the Controller at the next opportunity with the
use of Passive Notification mechanism
Logged Event The CPE stores the alarm event locally but does not notify the
Controller
Disabled Event The CPE ignores the alarm event and takes no action
Note that all Fault Management tables are cleared when the device reboots.
Table 14 shows the multi-instance objects for FM to manage the alarm events.
November 2020 © The Broadband Forum. All rights reserved 168 of 204
Device Data Model TR-181 Issue 2 Amendment 14
November 2020 © The Broadband Forum. All rights reserved 169 of 204
Device Data Model TR-181 Issue 2 Amendment 14
November 2020 © The Broadband Forum. All rights reserved 170 of 204
Device Data Model TR-181 Issue 2 Amendment 14
The IETF (LMAP) and BBF (TR-304) use a similar framework for diagnostics where each
framework consists of a Measurement Controller, Data Collector and Measurement Agent.
While there are differences between TR-304 and LMAP elements in various deployment
scenarios, in residential scenarios the behavior of Measurement Agent in the home is consistent
between the IETF LMAP and BBF TR-304 frameworks.
Mgmt Server
(TR-069 ACS)
Access Provider Network
External Data Measurement Customer
Collector Controller
Network Premises
Network
RG Laptop
TR -304 Agent 1 TR -304 Agent 2
Measurement Measurement
function function
November 2020 © The Broadband Forum. All rights reserved 171 of 204
Device Data Model TR-181 Issue 2 Amendment 14
Pre-configuration Reporting
Measurement Agent
In the IETF LMAP and TR-304 frameworks, CWMP can be used to pre-configure the
Measurement Agent; where the Controller and Data Collector could use other protocols (e.g.,
IETF LMAP protocol).
November 2020 © The Broadband Forum. All rights reserved 172 of 204
Device Data Model TR-181 Issue 2 Amendment 14
ACS1
Controller Data Collector
Management Server
Pre-configuration
Configuration Status Logging Instruction
(CWMP)
Reporting
Note that in the TR-304 framework the Status and Logging functions have not been explicitly
identified as capabilities of the Controller.
In the IETF LMAP and TR-304 frameworks, CWMP can be used to pre-configure the
Measurement Agent and manage/schedule the tests. Likewise the IPDR protocol can be used to
report the test results. In this scenario, the ACS would act as the Management Server and
Measurement Controller. This scenario would place a constraint on the IETF LMAP framework
in that there would be allowed only 1 Measurement Controller per Measurement Agent. See
Section XX.3 for additional information on use of the BulkData.Profile object in the context of
LMAP.
November 2020 © The Broadband Forum. All rights reserved 173 of 204
Device Data Model TR-181 Issue 2 Amendment 14
ACS1
Management Server Data Collector
Controller
Pre-configuration
Configuration
Status
Logging
Instruction
(CWMP)
Reporting
IPDR
Preconfig
Configuration
CWMP Agent Status Measurement Agent
Logging
Instruction
In scenarios where Measurement Agent does not have connectivity with the Measurement
Controller, CWMP can be used to act as a proxy between the Measurement Controller and
Measurement Agent. In this scenario, if the CWMP Proxy is an Embedded Device then both
Measurement Agents are associated with the same ACS. If the Measurement Agents need to be
associated with different Measurement Controllers then the CWMP Virtual Device mechanism is
to be used.
November 2020 © The Broadband Forum. All rights reserved 174 of 204
Device Data Model TR-181 Issue 2 Amendment 14
ACS1
Management Server Data Collector
Controller
Pre-configuration
Configuration
Status
Logging
Instruction
(CWMP)
RG Reporting
IPDR
CWMP Proxier
Preconfig
Configuration Measurement Agent1
Status
CWMP Agent Logging
Instruction
EmbeddedMA
Reporting
IPDR
Laptop
Preconfig
Configuration
Status
Measurement Agent2
Logging
Instruction
In the IETF LMAP framework, the Measurement Agent could interact with different elements
that implement the functionality of the Management Server and Measurement Controller. In
addition, the IETF LMAP framework also permits the functionality of the Measurement
Controller to be implemented in multiple elements.
For a CWMP framework, this would require a different CWMP Agent for each application. As
such this type of scenario is not realistically supported by CWMP.
November 2020 © The Broadband Forum. All rights reserved 175 of 204
Device Data Model TR-181 Issue 2 Amendment 14
ACS1 ACS2
Data Collector
Management Server Controller
Configuration
Status
Pre-configuration
Logging
(CWMP)
Instruction
(CWMP)
Configuration
Preconfig Reporting
Status
Logging
Measurement Agent Instruction
XX.2.1 Device.BASAPM
XX.2.2 Device.LMAP.MeasurementAgent
The Device.LMAP objects and parameters are mostly described in the IETF LMAP information
model [65]. That document serves as the primary vehicle for describing theory of operations for
Device.LMAP.MeasurementAgent.
November 2020 © The Broadband Forum. All rights reserved 176 of 204
Device Data Model TR-181 Issue 2 Amendment 14
All of the other IETF LMAP information model parameters can be readily mapped to objects and
parameters in Device.LMAP.MeasurementAgent.{i}.
When integrating the test results of the Device:2 data model (i.e., LMAP.Report object instance)
into the bulk data objects and parameters provided by the Device:2 data model, the
LMAP.Report object instance becomes the referenced parameter of the Bulk Data Profile
(BulkData.Profile object instance). In addition, there is a linkage needed within the LMAP data
model to identify the BulkData.Profile object instance. This is done through the reference of the
BulkData.Profile object instance from the LMAP data model's Communication Channel for a
Scheduled Action.
November 2020 © The Broadband Forum. All rights reserved 177 of 204
Device Data Model TR-181 Issue 2 Amendment 14
November 2020 © The Broadband Forum. All rights reserved 178 of 204
Device Data Model TR-181 Issue 2 Amendment 14
XXI.1 Overview
A 5G-RG brings with it a completely different way of operation. This is a direct consequence of
features such as:
• Control User Plane Separation (CUPS)
• Multiple IP sessions over a PHY
• 5G QoS
• Hybrid Access (Fixed and Cellular)
• Network Slicing
The above features are supported by the TR-181 data model using new data model elements
comprising:
• Interface stack layer to support 5G Fixed Encapsulation (5WE)
• Objects to describe registration and session management.
• Integration with existing TR-181 elements
XXI.2 Architecture
The 5G converged core represents a significant departure from the TR-101 [29] based
architecture currently used to support residential gateway access. Most noteworthy is the
alignment with 3GPP architectural principles. It is important to understand the two deployment
scenarios for the 5G core—Integration and Interworking.
Integration - All wireline traffic transits the AGF (Access Gateway Function) before entering
the 3GPP–defined 5G core. Both 5G-RGs and FN-RGs may use the AGF natively. In the case of
a 5G-RG, the AGF will support 5G NAS and PDU (multiple IP sessions) transport. Whilst a FN-
RG is limited to TR-101 and the NAS and PDU (single IP session) is emulated by the AGF on
behalf of the FN-RG, RGs may use wireline, wireless or both access networks. However, in the
case of multiple access networks, all must use 5G NAS + PDU if ATSSS is to be supported.
Interworking - All wireline traffic uses the current TR-101–based solutions (BNG + AAA). The
FMIF emulates all the TR-101 control plane functions needed by the BNG and converts to 5G
NAS. Current thinking is that user plane traffic will continue to be handled by the BNG. Note: A
5G-RG reverts to FN-RG mode when connected to a BNG. The interworking scenario is based
around a standard FN-RG and has zero impact on the TR-181 data model
In the diagram below the elements in green, namely 5G-RG, AGF and FMIF, are BBF–defined.
November 2020 © The Broadband Forum. All rights reserved 179 of 204
Device Data Model TR-181 Issue 2 Amendment 14
The complete 5G architecture is documented in the 3GPP 23.501 [71] standard. BBF has
produced TR-470 [68] documenting the Wireline Wireless Convergence architecture. Shown
below is a simplified architecture with the network functions and interfaces relevant to
supporting a 5G-RG.
Figure 74 - 5G Architecture
XXI.2.1 Network Functions
November 2020 © The Broadband Forum. All rights reserved 180 of 204
Device Data Model TR-181 Issue 2 Amendment 14
AUSF: Control Support the AMF authentication function by making the actual
Authentication authentication decisions.
Server Function
AMF: Access and Control Can be considered to be the entry point to the control plane.
Mobility From the perspective of a 5G-RG, the AMF processes all N1
Management traffic and thus is the frontend for authentication and the
Function establishment of PDU sessions.
NSSF: Network Control Selects the network slice instance servicing the 5G-RG. The
Slice Selection AGF will use the NSSF to choose an AMF at the time of
Function registration.
PCF: Policy Control Responsible for control plane policy rules. In particular,
Control Function supports the AMF to provide policy rules as part of
registration.
SMF: Session Control The SMF acts as a controller for the UPF. Major
Management responsibilities include DHCP (server or relay), QoS handling
Function and user plane policy enforcement (downstream traffic
shaping).
UDM: Unified Data Control Responsible for subscription data used by other network
Management functions to authenticate and provide subscription-based
policy.
UPF: User Plane User Provides the packet routing and forwarding to the data
Function network. Other necessary functions include usage, QoS
management, user plane policy and being the anchor point for
multipath traffic.
XXI.3 Concepts
November 2020 © The Broadband Forum. All rights reserved 181 of 204
Device Data Model TR-181 Issue 2 Amendment 14
Section 5.2 [68] whilst TS 23.501 [69] details the architectural elements. From the perspective of
a 5G-RG, CUPS has the following impacts:
• Control plane communications move from transient (DHCP and PPP LCP ) to persistent (NAS).
As a result, the operator can now modify a customer session at any time rather than at the point of
authorization.
• Traffic for control and user planes uses separate sessions over a common PHY.
• DHCP and DHCPv6 technically move from the control to the user plane (UPF responsibility).
However, both protocols can and need to be used to deliver configuration via their options.
XXI.3.2 Policy
One of the new design principles brought by 5G to the residential gateway is that of policy.
Previous generations of mobile devices have been users of policy but 5G takes it to a new level.
Policy and the role of the PCF are documented in TS 23.503 [70].
How is it delivered?
Policy is managed by the Policy Control Function (PCF), which provides policy in two distinct
phases. At the time of registration, a routing policy table (URSP) is provided upon successful
authentication. When a PDU session is created, URSP provides the necessary network slice and
data network information. The second phase of policy is learnt upon successful PDU creation,
where a set of QoS rules is provided.
XXI.3.3 Multiple PDU sessions
One of the more significant features of a 5G-RG is the support of multiple PDU sessions. Each
PDU can be considered to be a virtual circuit between a 5G-RG and a UPF instance. A PDU
instance can be assigned IP addresses, QoS rules and even guaranteed bit rates. This leads to
applications requiring:
• Separate IP sessions.
• Preferential data paths within the operator’s network.
• Traffic separation for security.
• Guaranteed bit rates for a given application.
TR-470 Section 6.2 [68] provides examples of multiple PDU scenarios for a 5G-RG.
XXI.3.4 5G QoS
Unlike the more familiar QoS markings such as DSCP or Ethernet priority, 5G QoS marking is
merely a label called a QoS Flow Indicator (QFI). End-to-end QoS as documented in TR-470
Section 5.1 [68] is a key outcome of policy. As part of PDU establishment, a set of QoS rules is
supplied specific to that PDU. Consequently, the access network specifies not only the supported
QFI labels but also the properties of the QoS profile. A QoS profile consists of the following
properties:
November 2020 © The Broadband Forum. All rights reserved 182 of 204
Device Data Model TR-181 Issue 2 Amendment 14
• 5G QoS Identifier (5QI). Unlike a QFI, 5QI does have a defined set of properties such as priority
and whether its bit rate is guaranteed.
• Allocation and Retention Policy (ARP).
• For Guaranteed Bit Rate (GBR) profiles the guaranteed and maximum upload and download bit
rates.
• GBR profiles may also specify a maximum packet loss.
XXI.3.5 Data Network Name (DNN)
One of the benefits of multiple PDU sessions is the ability to have preferred data paths within the
network. A 5G core achieves this using DNNs mapped to dedicated UPFs. A DNN is always
specified when establishing a PDU and the 5G-RG learns the preferred DNN through URSP
policy.
XXI.3.6 Multiple Access Networks
Whilst FN-RGs are perfectly capable of supporting multiple access networks, each access
network operates independently with separate IP addresses and an inability to seamlessly switch
traffic between them. A 5G-RG can modify a PDU and switch traffic to another supported access
network and maintain all the PDU properties including IP addresses. An operator can optimize
its network usage by sending policy rules to a 5G-RG, indicating the preferred access and data
networks. TR-470 Section 4.4 [68] provides a more in-depth description of hybrid access.
XXI.3.7 Network Slicing
An operator may choose to partition their network infrastructure for the purposes of resiliency or
merely to optimize for a particular function such as IoT. Each instance of the partitioned network
is called a network slice. Operators will provide slice information as part of URSP policy rules.
Every PDU at the time of establishment must specify a network slice. Slicing is further
documented in TS 23.501 Clause 5.15 [69]
The OSI layer model (see Figure 10 – OSI Layers and Interface Objects ) now has 5WE
(Device.FWE.Link in the model) at ‘L2---' and the previous ‘L2--' pushed down to ‘L2---'
November 2020 © The Broadband Forum. All rights reserved 183 of 204
Device Data Model TR-181 Issue 2 Amendment 14
November 2020 © The Broadband Forum. All rights reserved 184 of 204
Device Data Model TR-181 Issue 2 Amendment 14
November 2020 © The Broadband Forum. All rights reserved 185 of 204
Device Data Model TR-181 Issue 2 Amendment 14
XXI.4.2.1 Device.WWC
The relationship between a 5G-RG and the available access networks is represented by the
Device.WWC object tree. All objects are read only and are intended for service assurance
purposes.
Table 16 - Device.WWC objects
Object Description
Device.WWC Base object for Wireline Wireless Convergence. The controller can
use this object to learn the supported 5G features and whether the
5G-RG is operating in 5G mode
Device.WWC.AccessNetwork Each table entry describes a single access network. The entire table
is built by the 5G-RG upon startup. The primary purpose is to show
the registration and connectivity status of each access network.
November 2020 © The Broadband Forum. All rights reserved 186 of 204
Device Data Model TR-181 Issue 2 Amendment 14
Object Description
Device.WWC.URSP.{i}.TrafficDescriptor A set of rules for a given precedence that must be matched in order
to select a router in the form of data network and slice. Selection
criteria range from destination IP addresses to connection
capabilities
Device.WWC.URSP.{i}.TrafficDescriptor.{i Provides a table of data networks and network slices used in PDU
}.RouteSelectionDescriptor establishment. Table entries are used in precedence order until a
successful PDU session is established. See TS 23.503 Annex A
[70] for an example URSP rule traversal
November 2020 © The Broadband Forum. All rights reserved 187 of 204
Device Data Model TR-181 Issue 2 Amendment 14
XXI.4.2.2 Device.PDU
The logical connection between the 5G-RG and data network is the Protocol Data Unit (PDU).
The Device.PDU subtree describes each PDU session’s properties together with the QoS rules
specific to that PDU session.
Table 17 - Device.PDU objects
Object Description
November 2020 © The Broadband Forum. All rights reserved 188 of 204
Device Data Model TR-181 Issue 2 Amendment 14
Object Description
Device.PDU.Session.{i}.QoSRule.{i} Set of rules used to select the QFI label for a given
packet.
November 2020 © The Broadband Forum. All rights reserved 189 of 204
Device Data Model TR-181 Issue 2 Amendment 14
XXI.4.2.3 Device.FWE
5G Wireless Wireline Convergence User Plane Encapsulation [74] is used to separate each PDU
session when multiplexed over a PHY. A Device.FWE.Link object is inserted into the interface
stack, providing PDU session id as well as 5G QoS markings (QFI, RQI). This is also the level at
which fixed QoS rules are applied in order to traverse access networks that do not natively
support 5G QoS (QFI) markings. An instance of this object will be created by a 5G-RG
whenever a PDU is established.
Table 18 - Device.FWE objects
Object Description
Device.FWE.Link.{i} 5WE link layer table describing the link layer supporting the 5WE protocol.
November 2020 © The Broadband Forum. All rights reserved 190 of 204
Device Data Model TR-181 Issue 2 Amendment 14
XXI.4.3 Examples
Each example shows a 5G-RG with two PDU sessions. The first is for general purpose internet
traffic and the second for IMS VoIP. Each PDU session has a default QoS rule matching the
intended use. The general internet PDU also has rule to mark VoWiFi traffic with the same QFI
as IMS traffic.
XXI.4.3.1 Scenario #1 - Fixed access network only
Device.WWC.
Capabilities = "FN-RG,5G-RG,W-5GAN"
Mode = "5G-RG"
Status = "5G-RG"
AccessNetworkNumberOfEntries = 1
URSPNumberOfEntries = 2
Device.WWC.AccessNetwork.1.
Alias = "cpe-fixed"
Name = "fixed"
Interface = Device.Ethernet.5
RegistrationStatus = "RM-REGISTERED"
ConnectionStatus = "CM_CONNECTED"
AccessNetworkType = "W-5GAN"
Device.WWC.AccessNetwork.1.GUTI
PLMN = 50501
AMFid = 65601
TMSI = 60340039
November 2020 © The Broadband Forum. All rights reserved 191 of 204
Device Data Model TR-181 Issue 2 Amendment 14
Device.WWC.URSP.1.TrafficDescriptor.1.
Alias = "cpe-ursp11"
Type = 1 # Match all traffic
Value = ""
RouteSelectionDescriptorNumberOfEntries = 1
Device.WWC.URSP.1.TrafficDescriptor.1.RouteSelectionDescriptor.1.
Alias = "cpe-ursp111"
Precedence = 100
SSC = 1
DNN = "provider.internet"
PDUSessionType = "IPv4v6"
AccessType = "Non-3GPP access"
Device.WWC.URSP.1.TrafficDescriptor.1.RouteSelectionDescriptor.1.NetworkSlice
SliceServiceType = "eMBB"
Device.WWC.URSP.2.TrafficDescriptor.1.
Alias = "cpe-ursp21"
Type = 144 # Connection Capability Type
Value = "1" # IMS
RouteSelectionDescriptorNumberOfEntries = 1
Device.WWC.URSP.2.TrafficDescriptor.1.RouteSelectionDescriptor.1.
Alias = "cpe-ursp211"
Precedence = 100
SSC = 1
DNN = "provider.ims"
PDUSessionType = "IPv6"
AccessType = "Non-3GPP access"
Device.WWC.URSP.2.TrafficDescriptor.1.RouteSelectionDescriptor.1.NetworkSlice
SliceServiceType = "eMBB"
Device.PDU.
SessionNumberOfEntries = 2
Device.PDU.Session.1.
Alias = "cpe-pdu1"
Interface = Device.IP.Interface.1
SessionId = 1
PTI = 63
SSC = 1
SessionAMBRDownlink = 100000000
SessionAMBRUplink = 40000000
DNN = "provider.internet"
November 2020 © The Broadband Forum. All rights reserved 192 of 204
Device Data Model TR-181 Issue 2 Amendment 14
QoSRuleNumberOfEntries = 2
QoSFlowNumberOfEntries = 2
Device.PDU.Session.1.PCO
IPv6DNS = "2001:db8::1,2001:db8::2"
IPv4DNS = "203.0.113.1,203.0.113.2"
Device.PDU.Session.1.NetworkSlice
SliceServiceType = "eMBB"
SliceDifferentiator = 4
Device.PDU.Session.1.QoSRule.1.
Alias = "cpe-pdu11"
Identifier = 1
Precedence = 100
Segregation = false
QFI = 1
DQR = true
FilterNumberOfEntries = 1
Device.PDU.Session.1.QoSRule.1.Filter.1.
Alias = "cpe-pdu111"
Direction = "bidirectional"
Type = 1 # Match all
Device.PDU.Session.1.QoSRule.2.
Alias = "cpe-pdu12"
Identifier = 2
Precedence = 10
Segregation = false
QFI = 32
DQR = true
FilterNumberOfEntries = 1
Device.PDU.Session.1.QoSRule.2.Filter.1.
Alias = "cpe-pdu121"
Direction = "bidirectional"
Type = 33 # Destination IPv6
Value = "2001:db8::2:1" # VoWiFi ePDG
Device.PDU.Session.1.QoSFlow.1.
Alias = "cpe-pdu11"
QFI = 1
FiveQI = 8
Device.PDU.Session.1.QoSFlow.2.
Alias = "cpe-pdu11"
QFI = 32
FiveQI = 1
GFBRUplink = 150000
GFBRDownlink = 150000
Device.PDU.Session.2.
Alias = "cpe-pdu2"
Interface = Device.IP.Interface.2
SessionId = 6
PTI = 34
SSC = 1
November 2020 © The Broadband Forum. All rights reserved 193 of 204
Device Data Model TR-181 Issue 2 Amendment 14
SessionAMBRDownlink = 150000
SessionAMBRUplink = 150000
DNN = "provider.ims"
QoSRuleNumberOfEntries = 2
QoSFlowNumberOfEntries = 1
Device.PDU.Session.2.PCO
IPv6PCSCF = "2001:db8::1:1"
IPv6DNS = "2001:db8::1,2001:db8::2"
IPv4DNS = "203.0.113.1,203.0.113.2"
IPv4PCSCF = "203.0.113.100"
Device.PDU.Session.2.NetworkSlice
SliceServiceType = "eMBB"
SliceDifferentiator = 4
Device.PDU.Session.2.QoSRule.1.
Alias = "cpe-pdu21"
Identifier = 1
Precedence = 100
Segregation = false
QFI = 32
DQR = true
FilterNumberOfEntries = 1
Device.PDU.Session.2.QoSRule.1.Filter.1.
Alias = "cpe-pdu211"
Direction = "bidirectional"
Type = 1 # Match all
Device.PDU.Session.2.QoSFlow.1.
Alias = "cpe-pdu21"
QFI = 32
FiveQI = 1
GFBRUplink = 150000
GFBRDownlink = 150000
Device.FWE.
LinkNumberOfEntries
Device.FWE.Link.1.
Alias = "cpe-fwe1"
Name = "cpe-fwe1"
Status = "Up"
LowerLayers = "Device.Ethernet.5"
Device.FWE.Link,1,Stats
BytesSent = 478945789
BytesReceived = 589545478
Device.WWC.
Capabilities = "FN-RG,5G-RG,NG-RAN,E-UTRAN"
Mode = "5G-RG"
November 2020 © The Broadband Forum. All rights reserved 194 of 204
Device Data Model TR-181 Issue 2 Amendment 14
Status = "5G-RG"
AccessNetworkNumberOfEntries = 1
URSPNumberOfEntries = 2
Device.WWC.AccessNetwork.1.
Alias = "cpe-cellular"
Name = "cellular"
Interface = Device.Cellular.Interface.1
RegistrationStatus = "RM-REGISTERED"
ConnectionStatus = "CM_CONNECTED"
AccessNetworkType = "NG-RAN"
Device.WWC.AccessNetwork.1.GUTI
PLMN = 50501
AMFid = 131137
TMSI = 54678959
Device.WWC.URSP.1.TrafficDescriptor.1.
Alias = "cpe-ursp11"
Type = 1 # Match all traffic
Value = ""
RouteSelectionDescriptorNumberOfEntries = 1
Device.WWC.URSP.1.TrafficDescriptor.1.RouteSelectionDescriptor.1.
Alias = "cpe-ursp111"
Precedence = 100
SSC = 1
DNN = "provider.internet"
PDUSessionType = "IPv4v6"
AccessType = "3GPP access"
Device.WWC.URSP.1.TrafficDescriptor.1.RouteSelectionDescriptor.1.NetworkSlice
SliceServiceType = "eMBB"
Device.WWC.URSP.2.TrafficDescriptor.1.
Alias = "cpe-ursp21"
Type = 144 # Connection Capability Type
Value = "1" # IMS
RouteSelectionDescriptorNumberOfEntries = 1
Device.WWC.URSP.2.TrafficDescriptor.1.RouteSelectionDescriptor.1.
Alias = "cpe-ursp211"
Precedence = 100
SSC = 1
DNN = "provider.ims"
PDUSessionType = "IPv6"
AccessType = "3GPP access"
November 2020 © The Broadband Forum. All rights reserved 195 of 204
Device Data Model TR-181 Issue 2 Amendment 14
Device.WWC.URSP.2.TrafficDescriptor.1.RouteSelectionDescriptor.1.NetworkSlice
SliceServiceType = "eMBB"
Device.PDU.
SessionNumberOfEntries = 2
Device.PDU.Session.1.
Alias = "cpe-pdu1"
Interface = Device.IP.Interface.1
SessionId = 1
PTI = 63
SSC = 1
SessionAMBRDownlink = 100000000
SessionAMBRUplink = 40000000
DNN = "provider.internet"
QoSRuleNumberOfEntries = 2
QoSFlowNumberOfEntries = 2
Device.PDU.Session.1.PCO
IPv6DNS = "2001:db8::1,2001:db8::2"
IPv4DNS = "203.0.113.1,203.0.113.2"
Device.PDU.Session.1.NetworkSlice
SliceServiceType = "eMBB"
SliceDifferentiator = 4
Device.PDU.Session.1.QoSRule.1.
Alias = "cpe-pdu11"
Identifier = 1
Precedence = 100
Segregation = false
QFI = 1
DQR = true
FilterNumberOfEntries = 1
Device.PDU.Session.1.QoSRule.1.Filter.1.
Alias = "cpe-pdu111"
Direction = "bidirectional"
Type = 1 # Match all
Device.PDU.Session.1.QoSRule.2.
Alias = "cpe-pdu12"
Identifier = 2
Precedence = 10
Segregation = false
QFI = 32
DQR = true
FilterNumberOfEntries = 1
Device.PDU.Session.1.QoSRule.2.Filter.1.
Alias = "cpe-pdu121"
Direction = "bidirectional"
Type = 33 # Destination IPv6
Value = "2001:db8::2:1" # VoWiFi ePDG
Device.PDU.Session.1.QoSFlow.1.
November 2020 © The Broadband Forum. All rights reserved 196 of 204
Device Data Model TR-181 Issue 2 Amendment 14
Alias = "cpe-pdu11"
QFI = 1
FiveQI = 8
Device.PDU.Session.1.QoSFlow.2.
Alias = "cpe-pdu11"
QFI = 32
FiveQI = 1
GFBRUplink = 150000
GFBRDownlink = 150000
Device.PDU.Session.2.
Alias = "cpe-pdu2"
Interface = Device.IP.Interface.2
SessionId = 6
PTI = 34
SSC = 1
SessionAMBRDownlink = 150000
SessionAMBRUplink = 150000
DNN = "provider.ims"
QoSRuleNumberOfEntries = 2
QoSFlowNumberOfEntries = 1
Device.PDU.Session.2.PCO
IPv6PCSCF = "2001:db8::1:1"
IPv6DNS = "2001:db8::1,2001:db8::2"
IPv4DNS = "203.0.113.1,203.0.113.2"
IPv4PCSCF = "203.0.113.100"
Device.PDU.Session.2.NetworkSlice
SliceServiceType = "eMBB"
SliceDifferentiator = 4
Device.PDU.Session.2.QoSRule.1.
Alias = "cpe-pdu21"
Identifier = 1
Precedence = 100
Segregation = false
QFI = 32
DQR = true
FilterNumberOfEntries = 1
Device.PDU.Session.2.QoSRule.1.Filter.1.
Alias = "cpe-pdu211"
Direction = "bidirectional"
Type = 1 # Match all
Device.PDU.Session.2.QoSFlow.1.
Alias = "cpe-pdu21"
QFI = 32
FiveQI = 1
GFBRUplink = 150000
GFBRDownlink = 150000
November 2020 © The Broadband Forum. All rights reserved 197 of 204
Device Data Model TR-181 Issue 2 Amendment 14
Device.WWC.
Capabilities = "FN-RG,5G-RG,W-5GAN"
Mode = "5G-RG"
Status = "5G-RG"
AccessNetworkNumberOfEntries = 2
URSPNumberOfEntries = 2
Device.WWC.AccessNetwork.1.
Alias = "cpe-fixed"
Name = "fixed"
Interface = Device.Ethernet.5
RegistrationStatus = "RM-REGISTERED"
ConnectionStatus = "CM_CONNECTED"
AccessNetworkType = "W-5GAN"
Device.WWC.AccessNetwork.1.GUTI
PLMN = 50501
AMFid = 65601
TMSI = 60340039
Device.WWC.AccessNetwork.2.
Alias = "cpe-cellular"
Name = "cellular"
Interface = Device.Cellular.Interface.1
RegistrationStatus = "RM-REGISTERED"
ConnectionStatus = "CM_CONNECTED"
AccessNetworkType = "NG-RAN"
Device.WWC.AccessNetwork.2.GUTI
PLMN = 50501
AMFid = 131137
TMSI = 54678959
Device.WWC.URSP.1.TrafficDescriptor.1.
Alias = "cpe-ursp11"
Type = 1 # Match all traffic
Value = ""
RouteSelectionDescriptorNumberOfEntries = 1
Device.WWC.URSP.1.TrafficDescriptor.1.RouteSelectionDescriptor.1.
Alias = "cpe-ursp111"
Precedence = 100
SSC = 1
DNN = "provider.internet"
PDUSessionType = "IPv4v6"
AccessType = "Non-3GPP access"
November 2020 © The Broadband Forum. All rights reserved 198 of 204
Device Data Model TR-181 Issue 2 Amendment 14
Device.WWC.URSP.1.TrafficDescriptor.1.RouteSelectionDescriptor.1.NetworkSlice
SliceServiceType = "eMBB"
Device.WWC.URSP.2.TrafficDescriptor.1.
Alias = "cpe-ursp21"
Type = 144 # Connection Capability Type
Value = "1" # IMS
RouteSelectionDescriptorNumberOfEntries = 1
Device.WWC.URSP.2.TrafficDescriptor.1.RouteSelectionDescriptor.1.
Alias = "cpe-ursp211"
Precedence = 100
SSC = 1
DNN = "provider.ims"
PDUSessionType = "IPv6"
AccessType = "Non-3GPP access"
Device.WWC.URSP.2.TrafficDescriptor.1.RouteSelectionDescriptor.1.NetworkSlice
SliceServiceType = "eMBB"
Device.PDU.
SessionNumberOfEntries = 2
Device.PDU.Session.1.
Alias = "cpe-pdu1"
Interface = Device.IP.Interface.1
SessionId = 1
PTI = 63
SSC = 1
SessionAMBRDownlink = 100000000
SessionAMBRUplink = 40000000
DNN = "provider.internet"
QoSRuleNumberOfEntries = 2
QoSFlowNumberOfEntries = 2
Device.PDU.Session.1.PCO
IPv6DNS = "2001:db8::1,2001:db8::2"
IPv4DNS = "203.0.113.1,203.0.113.2"
Device.PDU.Session.1.NetworkSlice
SliceServiceType = "eMBB"
SliceDifferentiator = 4
Device.PDU.Session.1.QoSRule.1.
Alias = "cpe-pdu11"
Identifier = 1
Precedence = 100
Segregation = false
QFI = 1
DQR = true
FilterNumberOfEntries = 1
November 2020 © The Broadband Forum. All rights reserved 199 of 204
Device Data Model TR-181 Issue 2 Amendment 14
Device.PDU.Session.1.QoSRule.1.Filter.1.
Alias = "cpe-pdu111"
Direction = "bidirectional"
Type = 1 # Match all
Device.PDU.Session.1.QoSRule.2.
Alias = "cpe-pdu12"
Identifier = 2
Precedence = 10
Segregation = false
QFI = 32
DQR = true
FilterNumberOfEntries = 1
Device.PDU.Session.1.QoSRule.2.Filter.1.
Alias = "cpe-pdu121"
Direction = "bidirectional"
Type = 33 # Destination IPv6
Value = "2001:db8::2:1" # VoWiFi ePDG
Device.PDU.Session.1.QoSFlow.1.
Alias = "cpe-pdu11"
QFI = 1
FiveQI = 8
Device.PDU.Session.1.QoSFlow.2.
Alias = "cpe-pdu11"
QFI = 32
FiveQI = 1
GFBRUplink = 150000
GFBRDownlink = 150000
Device.PDU.Session.2.
Alias = "cpe-pdu2"
Interface = Device.IP.Interface.2
SessionId = 6
PTI = 34
SSC = 1
SessionAMBRDownlink = 150000
SessionAMBRUplink = 150000
DNN = "provider.ims"
QoSRuleNumberOfEntries = 2
QoSFlowNumberOfEntries = 1
Device.PDU.Session.2.PCO
IPv6PCSCF = "2001:db8::1:1"
IPv6DNS = "2001:db8::1,2001:db8::2"
IPv4DNS = "203.0.113.1,203.0.113.2"
IPv4PCSCF = "203.0.113.100"
Device.PDU.Session.2.NetworkSlice
SliceServiceType = "eMBB"
SliceDifferentiator = 4
Device.PDU.Session.2.QoSRule.1.
Alias = "cpe-pdu21"
Identifier = 1
November 2020 © The Broadband Forum. All rights reserved 200 of 204
Device Data Model TR-181 Issue 2 Amendment 14
Precedence = 100
Segregation = false
QFI = 32
DQR = true
FilterNumberOfEntries = 1
Device.PDU.Session.2.QoSRule.1.Filter.1.
Alias = "cpe-pdu211"
Direction = "bidirectional"
Type = 1 # Match all
Device.PDU.Session.2.QoSFlow.1.
Alias = "cpe-pdu21"
QFI = 32
FiveQI = 1
GFBRUplink = 150000
GFBRDownlink = 150000
Device.FWE.
LinkNumberOfEntries
Device.FWE.Link.1.
Alias = "cpe-fwe1"
Name = "cpe-fwe1"
Status = "Up"
LowerLayers = Device.Ethernet.5
Device.FWE.Link,1,Stats
BytesSent = 478945789
BytesReceived = 589545478
November 2020 © The Broadband Forum. All rights reserved 201 of 204
Device Data Model TR-181 Issue 2 Amendment 14
Whatever source is used to acquire the data, the data will be represented according to the DE
specification [73].
For the initial mapping (included in Release 13), the names of YANG grouping nodes were used
for the TR-181 object names, instead of the names of the lists and containers that used these
groupings. This was done because the names of the groupings were consistent with TR-181
naming conventions and there was a one-to-one mapping of grouping to a list or a container. For
subsequent mapping, the names of containers and lists will be used, and not groupings.
Data Elements objects and parameters will be added according to the following rules when WFA
defines new nodes:
• YANG “container” and “list” nodes will be mapped to TR-181 “object” elements within
the DataElements object hierarchy.
o If the YANG name of the container or list complies with TR-181 naming
conventions specified in [3] section 3.1, the exact name will be used for the TR-
181 object name. If the name does not comply, the container or list cannot be
automatically added, and an appropriate compliant name will need to be
identified.
o The YANG container or list description can be used “as is” for an automated
mapping to the object description, but BBF may modify it slightly for grammar
preferences, to include bibliographic references, or to add other useful
information when the new object is included in a published revision of TR-181.
November 2020 © The Broadband Forum. All rights reserved 202 of 204
Device Data Model TR-181 Issue 2 Amendment 14
BBF may also use the grouping description used by the container or list, if this is
more descriptive.
o If the YANG “config true” statement is present, the object will be
‘access=”readWrite”’. Otherwise, the object will be ‘access="readOnly"’.
o For all multi-instance objects, the TR-181 model will include a parameter named
“<object name>NumberOfEntries” of type unsignedInt in the parent object.
• YANG “leaf” nodes will be mapped to TR-181 “parameter” elements within the
DataElements. hierarchy.
o Put under the “object” that corresponds to the YANG container or list
o If the YANG name of the leaf complies with TR-181 naming conventions
specified in [3] section 3.1, the exact name will be used for the TR-181 parameter
name. If the name does not comply, the leaf cannot be automatically added, and
an appropriate compliant name will need to be identified.
o The YANG leaf description can be used “as is” for an automated mapping to the
parameter description, but BBF may modify it slightly for grammar preferences,
to include bibliographic references, or to add other useful information when the
new parameter is included in a published revision of TR-181. Descriptions from
DE-custom data type definitions are also mapped into the parameter description.
o “NumberOf<grouping>” leaf nodes are not mapped. See final bullet of above
mapping for containers and lists for inclusion of “<object
name>NumberOfEntries” parameter in the TR-181 data model.
o Data Types are mapped as follows:
zero-based-counter32 (and any DE-custom data types based on this, such
as bytecounter_t, packetcounter_t) to StatsCounter64 [Note that the TR-
181 convention is to use StatsCounter64 for all counters.]
uint8 (and any DE-custom data types based on this, such as rssi_t,
noisepower_t, operatingclass_t, channel_t, utilization_t) to unsignedInt
with range indicated by minInclusive and maxInclusive, if identified
uint16 (and any DE-custom data types based on this, such as
reasoncode_t, statuscode_t, vlanid_t, pcp_t) to unsignedInt with range
indicated by minInclusive and maxInclusive, if identified
uint32 to unsignedInt with range indicated by minInclusive and
maxInclusive, if identified
gauge32 (and any DE-custom data types based on this, such as phyrate_t,
macrate_t) to unsignedInt
int8 (and any DE-custom data types based on this, such as txpower_t) to
int with ranges, if identified (e.g., int[-127:127] for txpower_t)
string to string with length indicated by maxLength, if identified
mac-address to MACAddress
binary to base64
boolean to boolean
ipv4-address to IPv4Address
ipv6-address to IPv6Address
additional mappings for data types not listed may be defined by WFA or
BBF
November 2020 © The Broadband Forum. All rights reserved 203 of 204
Device Data Model TR-181 Issue 2 Amendment 14
• YANG “leaf-list” nodes are mapped like “leaf” elements for name and description with
syntax of “<list/>”. The data type is mapped as described above for leaf nodes.
November 2020 © The Broadband Forum. All rights reserved 204 of 204