You are on page 1of 56

1

TR-69 CPE WAN Management Protocol

Key words

ACS: Automatic Configuration Server CPE: Customer Premises Equipment CWMP: CPE WAN Management Protocol RPC: Remote Procedure Call SNMP: Simple Network Management Protocol STUN: Simple Traversal of UDP through NAT TLS: Transport Layer Security UPnP: Universal Plug and Play

Contents
History TR-69 CPE WAN Management Protocol TR-98 InternetGatewayDevice Data Model TR-104 Provisioning Parameters for VoIP CPE CWMP Related Specifications CWMP Interoperability CWMP ACS Servers Implementation Deployment CLI

History
DSLHome working group started work on DSL CPE/modem autoconfiguration years ago TR-037 DSL CPE Auto-Configuration is an ATM ILMI based autoconfiguration of mainly layer2 (ATM PVCs and their encapsulation) TR-046 Auto-Configuration Architecture & Framework specifies the scope for future auto-configuration work

History
TR-64 LAN-Side DSL CPE Configuration Specification was started because of the need for a standard interface for PC-based (LAN-side) install applications. Based upon the UPnP Device Architecture, extensions where defined to meet the LAN-side CPE configuration requirements. Differences between TR-64 and UPnP: Separate root device and namespace (co-exists independent from UPnP) No support for eventing (GENA) Digest Authentication per SOAP action Optional use of SSL/TLS (Secure Socket Layer/Transport Layer Security) Transactional semaphores to prevent simultaneous configuration by multiple control points Different modeling of some connection models (PPPoE) by LinkType/ConnectionType IGD datamodel extensions for DSL CPE management
6

History
TR-69 CPE WAN Management Protocol specification started at the same time as TR-64. From the start, the technical approach was controversial and heavily discussed. Cisco proposed an SNMP based solution, where as 2Wire contributed their completely proprietary management protocol. SNMP was not selected because of security concerns (SNMPv1 and SNMPv2) lack for standard MIBs for DSL CPE management management<>agent role: manager connects to agents, where for scalability reasons the CPE needed to connect to the server A proprietary protocol was not acceptable, needs to be standards based Data model ideally common/aligned between TR-64 and TR-69

Contents
History TR-69 CPE WAN Management Protocol TR-98 InternetGatewayDevice Data Model TR-104 Provisioning Parameters for VoIP CPE CWMP Related Specifications CWMP Interoperability CWMP ACS Servers Implementation Deployment CLI

What is TR-069
TR-069 is a CPE WAN Management Protocol (CWMP), which was created by the DSL Forum. It provides the communication between CPE and Auto Configuration Servers (ACS). An ACS can manage a device, trouble shoot, configure, upgrade etc. TR-069 is currently the de facto standard for activation of the boxes at their first connection to the network.

TR-69 CPE WAN Management Protocol


Starting from a base set of management functionality requirements: Auto configuration and dynamic service provisioning Software/firmware image management Status and performance monitoring Diagnostics Together with a requirement for using standard protocols/technology While aligning the management data model with TR-64 A decision was taken to use get/set Remote Procedure Calls on a data model instead of functional SOAP actions (like UPnP/TR-64; e.g. AddPortMapping)

10

CWMP Protocols
TCP/IP: Transmission Control Protocol / Internet Protocol

SSL/TLS: Secure Socket Layer version 3.0; Transport Layer Security version 1.0
HTTP: Hypertext Transport Protocol version 1.1; HTTP POST messages SOAP: Simple Object Access Protocol version 1.1

XML RPC: Remote procedure call encoded in SOAP. All messages exchanged between the CPE and ACS are RPCs.

11

TR-69: SOAP
The TR-69 SOAP binding on HTTP is not standard.

The CPE sends a SOAP envelope in HTTP request with RPC to server. Server sends HTTP reply with SOAP envelope containing RPC response CPE sends a HTTP empty POST request Server sends HTTP reply with SOAP envelope containing RPC Standard client/server roles are reversed as server is sending requests (RPCs) within a HTTP reply message
TR-69 is because of this not web services (including WSDL) compatible/compliant and doesnt work with off-the-shelf SOAP or web server libraries

12

RPC
Remote Procedure Calls (RPC) are methods that allow one program to use the services of another program in a remote machine. The calling program sends a message and data to the remote program, which is executed, and results are passed back to the calling program.

13

TR-69: RPCs
Required RPCs Optional RPCs CPE Methods Upload FactoryReset GetQueuedTransfers ScheduleInform SetVoucers GetOptions

CPE Methods
GetRPCMethods SetParameterValues GetParameterValues GetParameterNames SetParameterAttributes GetParameterAttributes AddObject DeleteObject Download Reboot

Server Methods GetRPCMethods Inform TransferComplete

Server Methods RequestDownload Kicked

14

TR-69: Management Sessions


The CPE establishes a connection to the server on a number of occasions: The first time it is installed/connected On startup Periodically When requested by the server Whenever particular parameter values change (via Connection Request) When a file transfer is complete (e.g. after firmware upgrade) When a diagnostics test is complete On each connection establishment, the CPE sends the Inform RPC to the server which contains the reason/event for the connection establishment. The CPE will keep on sending HTTP requests to the server to allow the server to respond with RPCs until both have nothing more to send.
15

TR-69: Example message flow


CPE ACS
Open connection SSL Initiation

Example management session message flow The CPE is responsible for establishing the session to the server

HTTP Post
Inform Request

HTTP Response
InformResponse

The CPE keeps sending HTTP POST requests during the session.
The session is closed as soon as both CPE and ACS have indicated they have nothing more to send (response or new RPC)

HTTP Post

HTTP Response
GetParameterValues Request

HTTP Post
GetParameterValuesResponse

HTTP Response
SetParameterValues Request

HTTP Post
SetParameterValuesResponse

HTTP Response Close connection


16

Contents
History TR-69 CPE WAN Management Protocol TR-98 InternetGatewayDevice Data Model TR-104 Provisioning Parameters for VoIP CPE CWMP Related Specifications CWMP Interoperability CWMP ACS Servers Implementation Deployment CLI

17

TR-98: IGD Data Model


TR-98 Amendment 1 specifies the Internet Gateway Device data model for TR-69 (which specifies the protocol). The data model is based upon the initial UPnP IGD model with a large number of extensions for DSL gateway provisioning. It is a hierarchical tree with dot-separated parameter paths, for example:
InternetGatewayDevice.DeviceInfo.ModelName InternetGatewayDevice.DeviceInfo.SoftwareVersion InternetGatewayDevice.ManagementServer InternetGatewayDevice.Time InternetGatewayDevice.Layer3Forwarding InternetGatewayDevice.Layer2Bridging.Bridge.x.VLANID InternetGatewayDevice.Layer2Bridging.Filter.x.FilterInterface InternetGatewayDevice.LANDevice.x.LANHostConfigManagement.IPInterface.x.IPInterfaceIPAddress InternetGatewayDevice.LANDevice.x.LANEthernetInterfaceConfig InternetGatewayDevice.LANDevice.x.WLANConfiguration InternetGatewayDevice.WANDevice.x.WANConnectionDevice.x.WANIPConnection.x.Enable InternetGatewayDevice.WANDevice.x.WANConnectionDevice.x.WANIPConnection.x.PortMapping InternetGatewayDevice.WANDevice.x.WANConnectionDevice.x.WANPPPConnection.x.Enable InternetGatewayDevice.WANDevice.x.WANConnectionDevice.x.WANPPPConnection.x.Username InternetGatewayDevice.WANDevice.x.WANConnectionDevice.x.WANPPPConnection.x.Password InternetGatewayDevice.WANDevice.x.WANConnectionDevice.x.WANPPPConnection.x.PortMapping InternetGatewayDevice.Services.VoiceService.x.VoiceProfile.x.SIP.ProxyServer InternetGatewayDevice.Services.VoiceService.x.VoiceProfile.x.Line.x.SIP.URI

The data model can be addressed by full parameter paths or partial paths

18

TR-98: IGD Data Model


The following operations/RPCs are supported on the datamodel: GetParameterNames

Retrieve the name of parameters, including object instance numbers


Retrieve the values of one or more parameters Set the values of one or more parameters to a specific value Add a new object/entry and return the new unique instance number Delete an object from the datamodel

GetParameterValues SetParameterValues

AddObject
DeleteObject GetParameterAttributes

Retrieve parameter attributes/meta-data: access rights and event subscriptions


Set parameter attributes: access rights and active/passive event subscriptions

SetParameterAttributes

19

Contents
History TR-69 CPE WAN Management Protocol TR-98 InternetGatewayDevice Data Model TR-104 Provisioning Parameters for VoIP CPE CWMP Related Specifications CWMP Interoperability CWMP ACS Servers Implementation Deployment CLI

20

TR-104: Voice Provisioning


TR-104defines provisioning parameters for VoIP CPE as an extension to TR-069.

It is a hierarchical tree with dot-separated parameter paths, for example:


InternetGatewayDevice.Services.VoiceService.x.VoiceProfile.x.SIP.ProxyServer InternetGatewayDevice.Services.VoiceService.x.VoiceProfile.x.Line.x.SIP.URI InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.1.Enable InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.1.Status InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.1.CallState InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.1.PhyReferenceList InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.1.SIP.AuthUserName InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.1.SIP.AuthPassword

21

TR-104: Voice Provisioning

22

Contents
History TR-69 CPE WAN Management Protocol TR-98 InternetGatewayDevice Data Model TR-104 Provisioning Parameters for VoIP CPE CWMP Related Specifications CWMP Interoperability CWMP ACS Servers Implementation Deployment CLI

23

CWMP Related Specifications

TR-64 LAN CPE Auto-Configuration

WT-131, WT132 ACS Northbound Interface TR-69 CWMP Am.1 TR-98 Am.1 IGD Model TR-104 VoIP Model

TR-111 CWMP for Home Devices WT-135 STB Model TR-106 CWMP Enabled Device Model Template

WT-140 Network Storage Model TR-104 VoIP Model

24

CWMP Related Specifications


TR-104 Provisioning Parameters for VoIP CPE Generic VoiceService data model for VoIP provisioning (of IAD or ATA) TR-106 Data Model Template for TR-069 Enabled Devices Base Device data model for any (non IGD) TR-69 enabled LAN device TR-111 TR-069 Remote Management of Home Networking Device LAN Device <> Gateway association via ID exchange via DHCP option 125 LAN Device connection request through gateway NAT using STUN WT-107 TR-098 Issue 2 (IGD data model v1.3) Extension of IGD model with DHCP Conditional Serving, HPNAv3, MoCA, 802.1X... WT-135 Data Model for a TR-069 Enabled STB Generic IPSTB data model WT-140 Data Model for a TR-069 Enabled Network Attached Storage Generic NAS data model

25

CWMP Related Specifications


WT-131 ACS Northbound Interface Requirements Set of requirements for the ACS northbound interface and integration with the OSS WT-132 Definition for ACS Northbound API Specification of web server based ACS server northbound API WT-142 Framework For TR-069 enabled PON devices Specification of applying TR-69 for PON device management WT-143 Network Service Provider Initiated Throughput Performance Test Specificaiton of data model for throughput tests (FTP, HTTP, NSLookup...)

26

Contents
History TR-69 CPE WAN Management Protocol TR-98 InternetGatewayDevice Data Model TR-104 Provisioning Parameters for VoIP CPE CWMP Related Specifications CWMP Interoperability CWMP ACS Servers Implementation Deployment CLI

27

CWMP Interoperability
DSL-Forum regularly organizes TR-69 Plugfest test events where all participating CPE devices can test against all participating ACS servers Thomson participated in previous Plugfest test events. PD-128 Interoperability Test Plan for TR-069 Plugfests Document with definition of TR-69 tests and their expected outcome Used as plugfest test events as tests to perform De-facto reference for TR-69 testing by customers and ACS vendors Thomson firmware is interoperability tested with and by ACS partners.

28

CWMP Interoperability
Each firmware is interoperability tested with the deployed servers at customers. Main protocol interoperability problems in the past where due: Open HTTP1.1 requirements (e.g. chunked transfer support, number of cookies...) Trial and error with new emerging servers Unsupported PD-128 test cases (parameter attributes...) TR-69 Amendment 1 specification update with new and even changed (e.g. session termination) requirements Data model interoperability problems are occurring due: Hundreds of implemented parameters are not all tested Focus on customer deployment scenarios, not all combinations of parameters

29

Contents
History TR-69 CPE WAN Management Protocol TR-98 InternetGatewayDevice Data Model TR-104 Provisioning Parameters for VoIP CPE CWMP Related Specifications CWMP Interoperability CWMP ACS Servers Implementation Deployment CLI

30

CWMP ACS Servers


2Wire CMS http://www.2wire.com/?p=84 Bowline DragomanACS http://www.bowline.de/technology_products.htm Dimark http://www.dimark.com/products.html SupportSoft ServiceGateway http://www.supportsoft.com/solutions/ServiceGateway.asp Motive/Alcatel Home Device Manager (HDM) http://www.motive.com/solutions/homenetworking/homenetworkingproducts.asp Siemens Tango Subscriber Manager (TSM) http://subscriber.communications.siemens.com/software_tools_family_frame.htm Cisco Broadband Access Centre 3.0 http://www.cisco.com/en/US/products/sw/netmgtsw/ps529/products_administration_guide_chapter09186a0080725563.html Netopia Broadband Server (NBBS) http://www.netopia.com/software/products/nbbs/index.html FinePoint CPE Device Manager http://www.finepoint.com/services-cwmp-tr069.html Friendly Technologies FriendlyTR69 ACS Server http://www.friendly-tech.com/Site/remotemamagment_tr69.htm Axiros CPE Management http://www.axiros.de/mdsl.htm Owera eXtended Automatic Provisioning System http://www.owera.com/index.php?catid=3&id=3 Jungo Jungo.Net http://www.jungo.com/openrg/news/pr061012.html

31

Contents
History TR-69 CPE WAN Management Protocol TR-98 InternetGatewayDevice Data Model TR-104 Provisioning Parameters for VoIP CPE CWMP Related Specifications CWMP Interoperability CWMP ACS Servers Implementation Deployment CLI

32

Implementation: CWMP
CWMP-C CWMP Client application communicating with ACS Handles firmware and configuration file download CWMP state machine
On startup, periodic, value change connection to server Handling all ongoing management actions and reporting completion to server

Data model related RPCs are transferred to MBUS IGD Supports Application based labeling (service manager integration)
CWMP-S CWMP Connection Request Server Listens for connection requests
HTTP authentication On valid connection request, triggers CWMP-C to connect to ACS

33

Implementation: CWMP

CWMP Atomic MBUS client Maps TR-069 Download on FileTransfer plugin handling the file download and application

ATOMIC MBUS

CWMP Atomic MBUS plugin Registers parameters for its own configuration settings (maps to IGD ManagementServer)

IGD MBUS
Connection Request Atomic MBUS client Retrieves connection request settings and sets flag when connection requested (evented to CWMP client)

CWMP IGD MBUS client Maps TR-069 GetParameterNames, Get/SetParameterValues, AddObject, DeleteObject, Get/SetParameterAttributes on IGD MBUS commands

CWMP client

XML Library HTTP client Library

certificates

TLS/SSL TCP/IP

CWMP connection request server

34

Implementation: Data Model


CWMP-C

MBUS

events

Client Interface (function, domain/inet sockets)


Event
Mgr

IGD MBUS
CWMP-C
events

Plug-in Interface (function, domain/inet sockets) IGD/Atomic Mapping Client Interface (function, domain/inet sockets)
Security Mgr Event
Mgr

Module_5
Access Right

ATOMIC MBUS

Config Mgr

Plug-in Interface (function, domain/inet sockets)

Config File

cmd/subsc.

cmd/subsc.

cmd/subsc.

cmd/subsc.

35

Module_1

Module_2

Module_3

Module_4

Basic Implementation: MBUS


MBUS IGD TR-98 IGD data model + vendor specific extensions TR104 Voice Provisioning TR-69 RPC support

GetParameterNames, GetParameterValues, SetParameterValues, AddObject, DeleteObject, GetParameterAttributes, SetParameterAttributes

MBUS Atomic Internal data model close to internal modules and current CLI Superset of data model defined in TR-98 IGD model Internal management interface for CLI, GUI... MBUS IGD<>Atomic Mapping Maps or translates between the IGD and internal (atomic) data models Operations on IGD model are mapped/translated to operations on atomic model

36

Whats New
TR-111 Applying TR-69 to Remote Management of Home Devices Device-Gateway Association
Exchange of IDs via DHCP so ACS learns the association

Connection Request via NAT Gateway


STUN

Support TR-69 capable home network devices (STB, VoIP, NAS...) Improved TR-69 Amendment 1 Interoperability PD-128 Interoperability Test Plan support M event
M Reboot, M Download Inform events

Download Delay
Postpones a file download with a number of seconds

37

Whats New
ScheduleInform RPC
ScheduleInform allows an ACS to schedule the CPE to report back at the right time Eliminates the need for the ACS to initiate connection requests to large numbers of devices Application: Firmware upgrades during a maintenance time window

38

Whats New Forced Inform Notification parameters


Customizable Forced Inform Parameter List configurable parameters

Default:
InternetGatewayDevice.DeviceSummary InternetGatewayDevice.DeviceInfo.SpecVersion InternetGatewayDevice.DeviceInfo.HardwareVersion InternetGatewayDevice.DeviceInfo.SoftwareVersion InternetGatewayDevice.DeviceInfo.ProvisioningCode InternetGatewayDevice.ManagementServer.ConnectionRequestURL InternetGatewayDevice.ManagementServer.ParameterKey InternetGatewayDevice.WANDevice.x.WANConnectionDevice.x.WAN*Connection.ExternalIPAddress

39

Whats New
Configurable Amendment 1 Session Termination
NoMoreRequests header element is deprecated
Session considered terminated if the CPE has sent an empty POST before For Compliance : Configurable via CLI original TR-69 TR-69 Amendment 1.
40

Whats New
Upgrade delay on detection of service activity
Postpones the firmware upgrade Detection of (customizable) service activity Application: Postponing firmware upgrade when VoIP calls are ongoing (e.g. up till a maximum of one hour)

No service interruption for end users

41

Whats New

DataModel extension VDSL2 and Ethernet WAN modeling


IGD model WANDevice support for VDSL2 and Ethernet WAN

QueueManagement (TR-098)
QueueManagement QoS classification and queue mapping

IPPingDiagnostics
IP Ping diagnostics test and completion reporting to ACS

42

Whats New
DataModel extension (continued) DSL Statistics
Additional DSL statistics and error counters

Layer2Bridging
VLAN provisioning (VLAN bridging, tagging...)

IPPingDiagnostics
IP Ping diagnostics test and completion reporting to ACS

Connection (proprietary)
Stats on current TCP/UDP connections ALG provisioning

ParentalControl (proprietary)
URL and Content filtering provisioning Walled Garden / Captive Portal intercept configuration
43

Standards Compliance Summary


TR-69 Amendment 1
Partially compliant Session termination needs install base migration scenario ACS support

TR-98 Amendment 1
Partially compliant WANDSLDiagnostics, WANATMF5LoopbackDiagnostics not supported

TR-104
Compliant for SIP, MGCP and H323

TR-111
Compliant

WT-107
Partially compliant Support for DHCPConditionalServing and DHCPOption

44

Contents
History TR-69 CPE WAN Management Protocol TR-98 InternetGatewayDevice Data Model TR-104 Provisioning Parameters for VoIP CPE CWMP Related Specifications CWMP Interoperability CWMP ACS Servers Implementation Deployment CLI

45

Deployment
Thomsons Implementation/Deployment Strategy

Thomson partners with customers on use cases


We have an extended data model No tick-box compliancy of each and every parameter but focus on the use case enabling ones first

Thomson works together with service provider and ACS vendor to


enable use cases (customer driven)
Testing and deploying Assures the right quality and compliancy

Right approach: Service Providers do not roll out all services immediately

46

Deployment - Most important use cases


Autoconfiguration and dynamic service activation The initial CPE configuration runs automatically and remotely Firmware management Remote updates of the firmware of the boxes in the field Status and performance control logfile analysis and dynamic messages diagnostics connectivity and service control Helpdesk support

47

Deployment - Most important use cases


Insight to the home network of the use:
List of active devices, possibility to ping from the modem,

Notifications allow the ISP to receive a message when some environment variable changes at the customer premise Remotely enabling of new / extra features
e.g. a user can move to IPTV and TR-069 will reconfigure the modem to fill the needs

48

Deployment - Example
Zero Touch Provisioning
Joe USER ISP ACS

ANNOUNCE default_user@isp.com password: default RESPONSE: joe_user@isp.com password: *&%$**

DSLAM

Broadband Internet

Connection established

49

Deployment facts
Firmware Upgrade RTEMS <> GoLinux RTEMS: Single <> Dual memory boards DataModel Disadvantage is that all parameters have to be supported on ACS and CPE / order of configuration steps is important Advantage: standard / reading current config and statistics STS Advantage: Is pure CLI cmds and can configure everything. Disadvantage: sts has no knowledge of previous configuration remove and replace required

50

Contents
History TR-69 CPE WAN Management Protocol TR-98 InternetGatewayDevice Data Model TR-104 Provisioning Parameters for VoIP CPE CWMP Related Specifications CWMP Interoperability CWMP ACS Servers Implementation Deployment CLI

51

CLI Configuring CWMP

52

CLI Configuring CWMP

53

CLI IGD via CLI


Registering the client {Administrator}=>mbus client register {Administrator}=>

Dumping the values


{Administrator}=> {Administrator}=>mbus client exec cmd getvalues path *.Line Dumping the Possibilities

{Administrator}=> {Administrator}=>mbus client exec cmd getnames path *.Line


54

Working with CLI


getvalues: retrieve the values of one or more parameters of a specific object. setvalues: write a value to one or more parameters of an object Rollback for this action is supported at client command level. getcount: this action returns the number of parameter/value pairs that would be returned if a getvalues is called with the same arguments. This allows you to determine how much memory needs to be allocated to store all parameters or determine the number of objects of a specific type.

addobject: add an object to the data model.


deleteobject: delete an object from the data model. subscribe: subscribe a client to the MBus event.

unsubscribe: unsubscribe a client from the MBus event.

55

56

You might also like