CWMP ACS TR-69 Provisioning DHCP Option


CWMP ACS TR-69 Provisioning

Technical Report 069 (TR-069) is a technical specification of the Broadband Forum that defines an application layer protocol for remote management of customer-premises equipment (CPE) connected to an Internet Protocol (IP) network. TR-069 uses the CPE WAN Management Protocol (CWMP) which provides support functions for auto-configuration, software or firmware image management, software module management, status and performance managements, and diagnostics..

The TR-069 protocol allows DHCP servers to send one or more vendor-specific parameters to the client router. A CWMP configuration requires the following parameters for the URL to the auto-configuration server (ACS) for provisioning via ISC-DHCPD:

subnet netmask
        option routers;
        append dhcp-parameter-request-list 43;
        option vendor-encapsulated-options 01:12:68:74:74:70:3a:2f:2f:61:63:73:2e:69:73:70:2e:6f:72:67;

Example ACS URL

The option vendor-encapsulated-options must be specified as an encoded sequence of identical syntax with code, length and value field to the DHCP option.

The code for this option is 43 and its minimum length is 1.
Code Len Vendor-specific information
|  43 |  n |  i1 |  i2 | ...

When encapsulated vendor-specific extensions are used, the
information bytes 1-n have the following format:

Code Len Data item Code Len Data item Code
|  T1 |  n |  d1 |  d2 | ... |  T2 |  n |  D1 |  D2 | ... | ... |

Section: IETF rfc2132 – DHCP Options and BOOTP Vendor Extensions


For the conversion is the following bash script, which can run as follows ./url2hex

if [[ -z $1 ]]; then
  echo "Argument missing! Use: url2hex url"
  exit 1
echo ""
echo -e "[[[ URL2HEX Converter ]]]\nTR-069 CWMP request ACS URL provisioning on ISC-DHCPD option vendor-encapsulated-options"
echo "URL:$1"
wcount=`echo $1 | wc -m`
tcount=`echo ${wcount}-1 | bc`
length=`printf '%x\n' ${tcount}`
hexurl=`echo -n $1 | xxd -ps | sed 's/[[:xdigit:]]\{2\}/\:&/g'`
echo -e "URL-length:${tcount} HEX:${length}\n\nvalues for CWMP provisioning in dhcpd.conf:\n"
echo "append dhcp-parameter-request-list 43;"
echo "option vendor-encapsulated-options 01:${length}${hexurl};"

Save the code lines to a file url2hex and make them executable.

$ chmod u+x url2hex

The string input is converted to HEX, after which the values are hung together, starting from 0x01 for the value of the CWMP option to ACS URL.

The output can then look like this:

[[[ URL2HEX Converter ]]]
TR-069 CWMP request ACS URL provisioning on ISC-DHCPD option vendor-encapsulated-options
URL-length:19 HEX:13

values for CWMP provisioning in dhcpd.conf:

append dhcp-parameter-request-list 43;
option vendor-encapsulated-options 01:13:68:74:74:70:73:3a:2f:2f:61:63:73:2e:69:73:70:2e:6f:72:67;

The last two rows can be added in dhcpd.conf.


TR-069 Boadband Forum, art. „3.1 ACS Discovery“
RFC2132 – DHCP Options and BOOTP Vendor Extensions, art. „8.4. Vendor Specific Information“.

Wie hilfreich war dieser Beitrag?

Klicke auf die Sterne um zu bewerten!

Durchschnittliche Bewertung 5 / 5. Anzahl Bewertungen: 1

Bisher keine Bewertungen! Sei der Erste, der diesen Beitrag bewertet.

3 Gedanken zu „CWMP ACS TR-69 Provisioning DHCP Option“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert