710 likes | 2.51k Views
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
E N D
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 auto-configuration years ago • TR-037 “DSL CPE Auto-Configuration” is an ATM ILMI based auto-configuration 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
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”)
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.
TR-69: SOAP • The TR-69 SOAP binding on HTTP is not standard. • The CPE sends a SOAP envelope in HTTP request with RPCto 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 doesn’t work with off-the-shelf SOAP or web server libraries
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.
TR-69: RPCs • Optional RPC’s • CPE Methods • Upload • FactoryReset • GetQueuedTransfers • ScheduleInform • SetVoucers • GetOptions Server Methods • RequestDownload • Kicked • Required RPC’s • CPE Methods • GetRPCMethods • SetParameterValues • GetParameterValues • GetParameterNames • SetParameterAttributes • GetParameterAttributes • AddObject • DeleteObject • Download • Reboot • Server Methods • GetRPCMethods • Inform • TransferComplete
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.
TR-69: Example message flow • Example management sessionmessage flow • The CPE is responsible for establishing the session to the server • 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)
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
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.ModelNameInternetGatewayDevice.DeviceInfo.SoftwareVersionInternetGatewayDevice.ManagementServerInternetGatewayDevice.TimeInternetGatewayDevice.Layer3ForwardingInternetGatewayDevice.Layer2Bridging.Bridge.x.VLANIDInternetGatewayDevice.Layer2Bridging.Filter.x.FilterInterfaceInternetGatewayDevice.LANDevice.x.LANHostConfigManagement.IPInterface.x.IPInterfaceIPAddressInternetGatewayDevice.LANDevice.x.LANEthernetInterfaceConfigInternetGatewayDevice.LANDevice.x.WLANConfigurationInternetGatewayDevice.WANDevice.x.WANConnectionDevice.x.WANIPConnection.x.EnableInternetGatewayDevice.WANDevice.x.WANConnectionDevice.x.WANIPConnection.x.PortMappingInternetGatewayDevice.WANDevice.x.WANConnectionDevice.x.WANPPPConnection.x.EnableInternetGatewayDevice.WANDevice.x.WANConnectionDevice.x.WANPPPConnection.x.UsernameInternetGatewayDevice.WANDevice.x.WANConnectionDevice.x.WANPPPConnection.x.PasswordInternetGatewayDevice.WANDevice.x.WANConnectionDevice.x.WANPPPConnection.x.PortMappingInternetGatewayDevice.Services.VoiceService.x.VoiceProfile.x.SIP.ProxyServerInternetGatewayDevice.Services.VoiceService.x.VoiceProfile.x.Line.x.SIP.URI • The data model can be addressed by full parameter paths or partial paths
TR-98: IGD Data Model • The following operations/RPC’s are supported on the datamodel: • GetParameterNames • Retrieve the name of parameters, including object instance numbers • GetParameterValues • Retrieve the values of one or more parameters • SetParameterValues • Set the values of one or more parameters to a specific value • AddObject • Add a new object/entry and return the new unique instance number • DeleteObject • Delete an object from the datamodel • GetParameterAttributes • Retrieve parameter attributes/meta-data: access rights and event subscriptions • SetParameterAttributes • Set parameter attributes: access rights and active/passive event subscriptions
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
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.ProxyServerInternetGatewayDevice.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
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
CWMP Related Specifications TR-64 LAN CPE Auto-Configuration WT-131, WT132 ACS Northbound Interface TR-111 CWMP for Home Devices WT-135 STB Model TR-69 CWMP Am.1 TR-106 CWMP Enabled Device Model Template TR-98 Am.1IGD Model TR-104 VoIP Model WT-140 Network Storage Model TR-104 VoIP Model
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
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...)
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
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.
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
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
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
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
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 RPC’s 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
Implementation: CWMP CWMP Atomic MBUS clientMaps TR-069 Download on FileTransfer plugin handling the file download and application CWMP Atomic MBUS pluginRegisters parameters for it’s own configuration settings (maps to IGD ManagementServer) ATOMIC MBUS IGD MBUS Connection Request Atomic MBUS clientRetrieves connection request settings and sets flag when connection requested (evented to CWMP client) CWMP IGD MBUS clientMaps TR-069 GetParameterNames, Get/SetParameterValues, AddObject, DeleteObject, Get/SetParameterAttributes on IGD MBUS commands CWMP client XML Library HTTP client Library CWMP connection request server certificates TLS/SSL TCP/IP
events events Client Interface (function, domain/inet sockets) Client Interface (function, domain/inet sockets) Import Import ATOMIC MBUS IGD MBUS EventMgr EventMgr Export Export Plug-in Interface (function, domain/inet sockets) Plug-in Interface (function, domain/inet sockets) ConfigFile AccessRight cmd/subsc. cmd/subsc. cmd/subsc. cmd/subsc. Module_1 Module_2 Module_3 Module_4 Implementation: Data Model CWMP-C • MBUS CWMP-C IGD/Atomic Mapping Module_5 Security Mgr Config Mgr
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
What’s New • TR-111 “Applying TR-69 to Remote Management of Home Devices” • Device-Gateway Association • Exchange of ID’s 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
ScheduleInform RPC What’s New • 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
Forced Inform Notification parameters What’s New • 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
Configurable Amendment 1 Session Termination What’s New • 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.
Upgrade delay on detection of service activity What’s New • 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
What’s 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
What’s 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
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
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
Deployment Thomson’s 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
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
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
Joe USER ISP ACS ANNOUNCE default_user@isp.com password: default Broadband Internet DSLAM Deployment - Example Zero Touch Provisioning RESPONSE: joe_user@isp.com password: *&%$£** Connection established
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 cmd’s and can configure everything. • Disadvantage: sts has no knowledge of previous configuration remove and replace required