CPE WAN Management Protocol v1.1 TR-069 Issue 1 Amendment 2
December 2007
© 2007 DSL Forum. All rights reserved. 19
This mechanism relies on the CPE having an IP address that is routable from the ACS. If the CPE is
behind a firewall or NAT device lying between the ACS and CPE, the ACS might not be able to access the
CPE at all. Annex G defines a mechanism that allows an ACS to contact a CPE connected via a NAT
device.
The Connection Request mechanism is defined as follows:
• The Connection Request MUST use an HTTP 1.1 GET to a specific URL designated by the CPE. The
URL value is available as read-only Parameter on the CPE. The path of this URL value SHOULD be
randomly generated by the CPE so that it is unique per CPE.
• The Connection Request MUST make use of HTTP, not HTTPS. The associated URL MUST be an
HTTP URL.
• No data is conveyed in the Connection Request HTTP GET. Any data that might be contained
SHOULD be ignored by the CPE.
• The CPE MUST use digest-authentication to authenticate the ACS before proceeding—the CPE
MUST NOT initiate a connection to the ACS due to an unsuccessfully authenticated request.
• The CPE MUST accept Connection Requests from any source that has the correct authentication
parameters for the target CPE.
• The CPE’s response to a successfully authenticated Connection Request MUST use either a “200
(OK)” or a “204 (No Content)” HTTP status code. The CPE MUST send this response immediately
upon successful authentication, prior to it initiating the resulting session. The length of the message-
body in the HTTP response MUST be zero.
• The CPE SHOULD restrict the number of Connection Requests it accepts during a given period of
time in order to further reduce the possibility of a denial of service attack. If the CPE chooses to reject
a Connection Request for this reason, the CPE MUST respond to that Connection Request with an
HTTP 503 status code (Service Unavailable). In this case, the CPE SHOULD NOT include the HTTP
Retry-After header in the response.
• If the CPE successfully authenticates and responds to a Connection Request as described above, and if
it is not already in a session, then it MUST, within 30 seconds of sending the response, attempt to
establish a session with the pre-determined ACS address (see section 3.1) in which it includes the
“6 CONNECTION REQUEST” EventCode in the Inform.
Note – in practice there might be exceptional circumstances that would cause a CPE to fail to
meet this requirement on rare occasions.
• If the ACS receives a successful response to a Connection Request but after at least 30 seconds the
CPE has not successfully established a session that includes the “6 CONNECTION REQUEST”
EventCode in the Inform, the ACS MAY retry the Connection Request to that CPE.
• If, once the CPE successfully authenticates and responds to a Connection Request, but before it
establishes a session to the ACS, it receives one or more successfully authenticated Connection
Requests, the CPE MUST return a successful response for each of those Connection Requests, but
MUST NOT initiate any additional sessions as a result of these additional Connection Requests,
regardless of how many it receives during this time.
• If the CPE is already in a session with the ACS when it receives one or more Connection Requests, it
MUST NOT terminate that session prematurely as a result. The CPE MUST instead take one of the
following alternative actions:
• Reject each Connection Request by responding with an HTTP 503 status code (Service
Unavailable). In this case, the CPE SHOULD NOT include the HTTP Retry-After header in the
response.
•
Following the completion of the session, initiate exactly one new session (regardless of how many
Connection Requests had been received during the previous session) in which it includes the