RFC 3495 PROPOSED STANDARD DHCP · CABLE · PROVISIONING

DHCP CableLabs option: Dynamic Host Configuration Protocol (DHCP) Option for CableLabs Client Configuration

A DHCP option that tells cable voice adapters which servers, realm and timers to use when they start up.

On rfc-editor.org ↗
PUBLISHED
March 2003
AUTHORS
B. Beser, P. Duffy
STREAM
IETF
DHCP OPTION CODE
122
LEGACY OPTION CODE
177 (0xB1)
DEFINED SUB-OPTIONS
1 to 8
RESERVED SUB-OPTIONS
9 to 255
LONG OPTION SPLIT
Over 255 octets
PROVISIONING TIMER
0 to 255 minutes
DOI
10.17487/RFC3495
ERRATA
Reported errata

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                           B. Beser
Request for Comments: 3495                              Juniper Networks
Category: Standards Track                                  P. Duffy, Ed.
                                                           Cisco Systems
                                                              March 2003


           Dynamic Host Configuration Protocol (DHCP) Option
                  for CableLabs Client Configuration

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the "Internet
   Official Protocol Standards" (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (2003).  All Rights Reserved.

Abstract

   This document defines a Dynamic Host Configuration Protocol (DHCP)
   option that will be used to configure various devices deployed within
   CableLabs architectures.  Specifically, the document describes DHCP
   option content that will be used to configure one class of CableLabs
   client device: a PacketCable Media Terminal Adapter (MTA).  The
   option content defined within this document will be extended as
   future CableLabs client devices are developed.

Table of Contents

   1.  Conventions used in this document............................  2
   2.  Terminology..................................................  2
   3.  Introduction.................................................  3
   4.  CableLabs Client Configuration Option Format.................  4
   5.  CableLabs Client Configuration Option: Sub-Option Definitions  5
       5.1.  TSP's DHCP Server Address Sub-Options..................  5
       5.2.  TSP's Provisioning Server Address Sub-Option...........  6
       5.3.  TSP's AS-REQ/AS-REP Backoff and Retry..................  6
       5.4.  TSP's AP-REQ/AP-REP Backoff and Retry..................  7
       5.5.  TSP's Kerberos Realm Name Sub-Option...................  8
       5.6.  TSP's Ticket Granting Server Utilization Sub-Option....  8
       5.7.  TSP's Provisioning Timer Sub-Option....................  8
   6.  Informational Description of CCC Option Usage................  9
   7.  IANA Considerations..........................................  9
   8.  Legacy Use Information.......................................  9
   9.  Procedure for Adding Additional Sub-options..................  9
   10. Security Considerations...................................... 10
   11. References................................................... 10
       11.1. Normative References................................... 10
       11.2. Informative References................................. 11
   12. Acknowledgments.............................................. 11
   13. Authors' Addresses........................................... 12
   14. Full Copyright Statement..................................... 13

1.  Conventions used in this document

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in BCP 14, RFC 2119 [1].

2.  Terminology

   Definitions of terms used throughout this document:

      *  "Telephony Service Provider" or "TSP"

   The business entity from which a subscriber receives telephony
   service.

   See RFC 2131 [6] for additional DHCP terminology.

3.  Introduction

   Cable Television Laboratories, Inc. (CableLabs) is a non-profit
   research and development consortium that serves the cable television
   industry via design and specification of new and emerging broadband
   service architectures.  Several CableLabs initiatives define DHCP
   clients that have specific DHCP configuration requirements.  One such
   initiative is the PacketCable project.

   The PacketCable project is aimed at architecting, qualifying, and
   supporting Internet-based multimedia services over cable-based packet
   networks.  These new multimedia services will include telephony and
   videoconferencing, delivered using the basic Internet Protocol (IP)
   technology that is used to send data via the Internet.

   PacketCable 1.0 provides Voice over IP (VoIP) service delivery.  The
   VoIP service is supported at the customer site by two key components:
   a Cable Modem (CM) and a Media Terminal Adapter (MTA).  The CM
   converts the cable RF signals to/from various IP voice protocols,
   while the MTA converts the VoIP protocols into analog telephony
   compatible with a common telephone.

   The CM and MTA may be packaged together or separately.  If packaged
   together, the unit is referred to as an Embedded-MTA (EMTA - depicted
   in Figure 1).  If packaged separately, the MTA is referred to as a
   Standalone MTA (SMTA).

             |----------------------------------------------|
             |                                              |
             |   |-----------|           |-------------|    |
             |   |           |           |             |    |
   Telephony |   |  Media    | internal  |   Cable     |    | RF Link
   ----------|---| Terminal  |===========|   Modem     |----|-------
   Link      |   | Adapter   | connection|             |    |
             |   |-----------|           |-------------|    |
             |                                              |
             |----------------------------------------------|

                  Figure 1. PacketCable 1.0 Embedded-MTA

   The CM and MTA are distinct IP devices: each has its own MAC address
   and IP configuration.  The CM and MTA utilize the DHCP protocol to
   obtain IP configuration.  It is assumed that the CM and MTA may be
   administered by different business entities.  The CM communicates
   with and is configured by the Data Access Provider's (DAP's) DHCP
   servers.  Likewise, the MTA communicates with and is configured by
   the Telephony Service Provider's (TSP's) DHCP servers.

   The PacketCable architecture requires that the business entity
   controlling the configuration of the CM also determines which
   business entities control the configuration of the MTA.  This is
   similar to the example found in the PSTN system: individuals can pick
   their long distance carriers even though the ultimate control of
   their telephone remains with the local carrier.

   Due to specific needs of the MTA configuration process (described in
   [7]), a new CableLabs Client Configuration (CCC) option is needed for
   the DHCP protocol.  Both CM and MTA DHCP clients will request this
   option.  When requested, both the DAP and TSP DHCP servers will
   populate this option into DHCP responses.  See section 6 for further
   operational details.

   It should be noted that, although the CCC option will be initially
   deployed to support PacketCable VOIP applications, the CCC option
   will also be used to support various non VOIP applications.  Use of
   the CCC option does not necessarily mean that the service provider is
   a TSP.

4.  CableLabs Client Configuration Option Format

   The option begins with a tag octet containing the option code (code
   122).  A length octet follows the tag octet.  The value of the length
   octet does not include itself or the tag octet.  The length octet is
   followed by "length" octets of sub-option content (total length, not
   sub-option count).  The option layout is depicted below:

      +------+--------+--------------+--------------+---+--------------+
      | 122  | Length | Sub-option 1 | Sub-option 2 |...| Sub-option n |
      +------+--------+--------------+--------------+---+--------------+

   When the total length of a CCC option exceeds 255 octets, the
   procedure outlined in [4] MUST be employed to split the option into
   multiple, smaller options.

   A sub-option begins with a tag octet containing the sub-option code.
   A length octet follows the tag octet.  The value of the length octet
   does not include itself or the tag octet.  The length octet is
   followed by "length" octets of sub-option information.  The sub-
   option layout is depicted below:

      +-------------------+--------+------------------------+
      | Sub-option Code   | Length | Sub-option information |
      +-------------------+--------+------------------------+
   The sub-option codes are summarized below.

      +---------+---------+--------------------------------------------+
      |  Sub-   | Sent to | Description                                |
      | option  |         |                                            |
      |  Code   |         |                                            |
      +===================+============================================+
      |    1    |  CM     | TSP's Primary DHCP Server Address          |
      +---------+---------+--------------------------------------------+
      |    2    |  CM     | TSP's Secondary DHCP Server Address        |
      +---------+---------+--------------------------------------------+
      |    3    |  MTA    | TSP's Provisioning Server Address          |
      +---------+---------+--------------------------------------------+
      |    4    |  MTA    | TSP's AS-REQ/AS-REP Backoff and Retry      |
      +---------+---------+--------------------------------------------+
      |    5    |  MTA    | TSP's AP-REQ/AP-REP Backoff and Retry      |
      +---------+---------+--------------------------------------------+
      |    6    |  MTA    | TSP's Kerberos Realm Name                  |
      +---------+---------+--------------------------------------------+
      |    7    |  MTA    | TSP's Ticket Granting Server Utilization   |
      +---------+---------+--------------------------------------------+
      |    8    |  MTA    | TSP's Provisioning Timer Value             |
      +---------+---------+--------------------------------------------+
      | 9 - 255 |         | Reserved for future extensions             |
      +---------+---------+--------------------------------------------+

5.  CableLabs Client Configuration Option: Sub-Option Definitions

   The following sections provide detailed descriptions of each sub-
   option.  There are a few general formatting rules:

   -  Fully Qualified Domain Names (FQDNs) MUST be encoded per RFC 1035
      [3] section 3.1.  Note that a terminating 0 is required.  Also
      note that compression, as described in RFC 1035 [3] section 4.1.4,
      MUST NOT be applied.

   -  IPv4 addresses MUST be encoded as 4 binary octets in network
      byte-order (high order byte first).

   -  All multi-octet quantities MUST be encoded per network byte-
      ordering.

5.1. TSP's DHCP Server Address Sub-Options

   The TSP DHCP Server Address sub-options identify the DHCP servers
   from which an MTA is permitted to accept a DHCP OFFER.  Sub-option 1
   is the address of the TSP's primary DHCP server.  Sub-option 2 is the
   address of the TSP's secondary DHCP server.

   The sub-option length MUST be 4 and the sub-option MUST include the
   DHCP server's IPv4 address as follows:

        Code  Len          Address
      +-----+-----+-----+-----+-----+-----+
      | 1/2 |  4  |  a1 |  a2 |  a3 |  a4 |
      +-----+-----+-----+-----+-----+-----+

5.2. TSP's Provisioning Server Address Sub-Option

   This option contains the address of the TSP's Provisioning server.
   MTAs communicate with the Provisioning server at various stages in
   their provisioning process.

   The address can be configured as either an IPv4 address or as an
   FQDN.  The encoding of sub-option 3 will adhere to one of 2 formats.

   1. IPv4 address.  The sub-option length MUST be 5.  The length octet
      MUST be followed by a single octet that indicates the specific
      address type that follows.  This type octet MUST be set to 1 to
      indicate an IPv4 address.  The type octet MUST be followed by 4
      octets of IPv4 address:

       Code   Len   Type        Address
      +-----+-----+-----+-----+-----+-----+-----+
      |  3  |  5  |  1  |  a1 |  a2 |  a3 |  a4 |
      +-----+-----+-----+-----+-----+-----+-----+

   2. FQDN.  The length octet MUST be followed by a single octet that
      indicates the specific address type that follows.  This type octet
      MUST be set to 0 to indicate an FQDN.  The type octet MUST be
      followed by the encoded FQDN:

       Code   Len   Type            FQDN
      +-----+-----+-----+-----+-----+   +-----+
      |  3  | n+1 |  0  |  f1 |  f2 |...|  fn |
      +-----+-----+-----+-----+-----+   +-----+

   It is not anticipated that additional type codes, beyond IPv4 (1) and
   FQDN (0), will be required.  Thus, IANA will not be required to
   maintain a registry of type codes.

5.3. TSP's AS-REQ/AS-REP Backoff and Retry

   This sub-option configures an MTA's Kerberos AS-REQ/AS-REP timeout,
   backoff, and retry mechanism.

   RFC 1510 [5] does not define a backoff/retry mechanism to be employed
   when an AS-REQ/AS-REP message exchange fails.  This sub-option
   contains parameters required by the backoff/retry mechanism outlined
   in [8].

   The encoding of this sub-option is depicted below:

      Code Len   Nom Timeout     Max Timeout     Max Retries
      +---+---+---+---+---+---+---+---+---+---+---+---+---+---+
      | 4 |12 |n1 |n2 |n3 |n4 |m1 |m2 |m3 |m4 |r1 |r2 |r3 |r4 |
      +---+---+---+---+---+---+---+---+---+---+---+---+---+---+

   The length octet of this sub-option MUST contain the value 12.

   The length octet MUST be followed by 4 octets containing the AS-
   REQ/AS-REP nominal (initial) timeout value.  This value is a 32 bit
   unsigned quantity in units of milliseconds.

   The next 4 octets MUST contain the AS-REQ/AS-REP maximum timeout
   value.  This value is a 32 bit unsigned quantity in units of seconds.

   The final 4 octets MUST contain the AS-REQ/AS-REP maximum retry
   count.  This value is a 32 bit unsigned quantity.

5.4. TSP's AP-REQ/AP-REP Backoff and Retry

   This sub-option configures an MTA's Kerberos AP-REQ/AP-REP timeout,
   backoff, and retry mechanism.

   RFC 1510 [5] does not define a backoff/retry mechanism to be employed
   when an AP-REQ/AP-REP message exchange fails.  This sub-option
   contains parameters required by the backoff/retry mechanism outlined
   in [8].

   The encoding of this sub-option is depicted below:

      Code Len   Nom Timeout     Max Timeout     Max Retries
      +---+---+---+---+---+---+---+---+---+---+---+---+---+---+
      | 5 |12 |n1 |n2 |n3 |n4 |m1 |m2 |m3 |m4 |r1 |r2 |r3 |r4 |
      +---+---+---+---+---+---+---+---+---+---+---+---+---+---+

   The length octet of this sub-option MUST contain the value 12.

   The length octet MUST be followed by 4 octets containing the AP-
   REQ/AP-REP nominal (initial) timeout value.  This value is a 32 bit
   unsigned quantity in units of seconds.

   The next 4 octets MUST contain the AP-REQ/AP-REP maximum timeout
   value.  This value is a 32 bit unsigned quantity in units of seconds.

   The final 4 octets MUST contain the AP-REQ/AP-REP maximum retry
   count.  This value is a 32 bit unsigned quantity.

5.5. TSP's Kerberos Realm Name Sub-Option

   The PacketCable architecture requires an MTA to authenticate itself
   to the TSP's network via the Kerberos protocol.  A Kerberos Realm
   name is required at the MTA to permit a DNS lookup for the address of
   the TSP's Kerberos Key Distribution Center (KDC) entity.

   The Kerberos Realm name MUST be encoded per the domain style realm
   name described in RFC 1510 [5].  This realm name MUST be all capital
   letters and conform to the syntax described in RFC 1035 [3] section
   3.1.  The sub-option is encoded as follows:

       Code   Len   Kerberos Realm Name
      +-----+-----+-----+-----+   +-----+
      |  6  |  n  |  k1 |  k2 |...|  kn |
      +-----+-----+-----+-----+   +-----+

5.6. TSP's Ticket Granting Server Utilization Sub-Option

   This sub-option encodes a boolean value which indicates whether an
   MTA should or should not utilize a TGT (Ticket Granting Ticket) when
   obtaining a service ticket for one of the PacketCable application
   servers.  The encoding is as follows:

       Code   Len   Value
      +-----+-----+-----+
      |  7  |  1  | 1/0 |
      +-----+-----+-----+

   The length MUST be 1.  The last octet contains a Boolean value which
   MUST be either 0 or 1.  A value of 1 MUST be interpreted as true.  A
   value of 0 MUST be interpreted as false.

5.7. TSP's Provisioning Timer Sub-Option

   The provisioning timer defines the maximum time allowed for the MTA
   provisioning process to complete.  If this timer expires before the
   MTA has completed the provisioning process, the MTA should reset the
   timer and re-start its provisioning process from the beginning.

   The sub-option length MUST be 1.  The value octet specifies 0 to 255
   minutes.  A value of 0 means the timer MUST be disabled.

       Code   Len    Value
      +-----+-----+---------+
      |  8  |  1  | (0..255)|
      +-----+-----+---------+

6.  Informational Description of CCC Option Usage.

   Cablelabs client devices issue DHCP requests that include DHCP
   options 55 (Parameter Request List) and 60 (Vendor Class Identifier).
   Option 55 will request the CCC option from the DHCP server.  Option
   60 will indicate the specific Cablelabs client device type, thus
   directing the DHCP server to populate specific CCC sub-option content
   in its responses.  The details of which CCC sub-options are populated
   for each specific client type are specified in various Cablelabs
   project specifications.  For example, specific usage of the CCC
   option for the PacketCable project is described in [7].

   Note that client devices never populate the CCC option in their DHCP
   requests.

7.  IANA Considerations

   IANA has assigned a value of 122 for the DHCP option code described
   in this document.

8.  Legacy Use Information

   The CableLabs Client Configuration option initially used the site-
   specific option value of 177 (0xB1).  The use of the site-specific
   option is to be deprecated now that IANA has issued an official
   option number.

9.  Procedure for Adding Additional Sub-options

   IANA is requested to maintain a new number space of "CableLabs Client
   Configuration Sub-options", located in the BOOTP-DHCP Parameters
   Registry (http://www.iana.org/assignments/bootp-dhcp-parameters).
   The initial sub-option codes are described in section 4 of this
   document.

   IANA is requested to register codes for future CableLabs Client
   Configuration Sub-options via an "IETF Consensus" approval policy as
   described in RFC 2434 [2].

10.  Security Considerations

   Potential exposures to attack in the DHCP protocol are discussed in
   section 7 of the DHCP protocol specification [6] and in
   Authentication for DHCP Messages [9].

   The CCC option can be used to misdirect network traffic by providing
   incorrect DHCP server addresses, incorrect provisioning server
   addresses, and incorrect Kerberos realm names to a Cablelabs client
   device.  This misdirection can lead to several threat scenarios.  A
   Denial of Service (DoS) attack can result from address information
   being simply invalid.  A man-in-the-middle attack can be mounted by
   providing addresses to a potential snooper.  A malicious TSP can
   steal customers from the customer selected TSP, by altering the
   Kerberos realm designation.

   These threats are mitigated by several factors.

   Within the cable delivery architecture required by PacketCable, the
   DHCP client is connected to a network through a cable modem and the
   CMTS (head-end).  The CMTS is explicitly configured with a set of
   DHCP servers to which DHCP requests are forwarded.  Further, a
   correctly configured CMTS will only allow downstream traffic from
   specific IP addresses/ranges.

   Assuming that server addresses and Kerberos realm name were
   successfully spoofed to the point that a malicious client device was
   able to contact a KDC, the client device must still present valid
   certificates to the KDC before being service enabled.  Given the
   computational overhead of the certificate validation process, this
   situation could present a DoS opportunity.

   Finally, it is possible for a malicious (although certified) TSP to
   redirect a customer from the customer's selected TSP.  It is assumed
   that all TSP's permitted onto an access providers network are trusted
   entities that will cooperate to insure peaceful coexistence.  If a
   TSP is found to be redirecting customers, this should be handled as
   an administrative matter between the access provider and the TSP.

11.  References

11.1. Normative References

   [1] Bradner, S., "Key words for use in RFCs to Indicate Requirement
       Levels", BCP 14, RFC 2119, March 1997.

   [2] Narten, N. and H. Alvestrand, "Guidelines for Writing an IANA
       Considerations Section in RFCs", BCP 26, RFC 2434, October 1998.

   [3] Mockapetris, P., "Domain Names - Implementation and
       Specification", STD 13, RFC 1035, November 1987.

   [4] Lemon, T. and S. Cheshire, "Encoding Long Options in the Dynamic
       Host Configuration Protocol (DHCPv4)", RFC 3396, November 2002.

   [5] Kohl, J. and C. Neuman, "The Kerberos Network Authentication
       Service (V5)", RFC 1510, September 1993.

   [6] Droms, R., "Dynamic Host Configuration Protocol", RFC 2131, March
       1997.

11.2. Informative References

   [7] "PacketCable MTA Device Provisioning Specification", PKT-SP-
       PROV-I05-021127.  http://www.packetcable.com/specifications.html

   [8] "PacketCable Security Specification", PKT-SP-SEC-I07-021127,
       http://www.packetcable.com/specifications.html

   [9] Droms, R. and W. Arbaugh, "Authentication for DHCP Messages", RFC
       3118, June 2001

12.  Acknowledgments

   The authors would like to extend a heartfelt thanks to all those who
   contributed to the development of the PacketCable Provisioning
   specifications:

   Sumanth Channabasappa (Alopa Networks); Angela Lyda, Rick Morris,
   Rodney Osborne (Arris Interactive); Steven Bellovin and Chris Melle
   (AT&T); Eugene Nechamkin (Broadcom); John Berg, Maria Stachelek, Matt
   Osman (CableLabs); Klaus Hermanns, Azita Kia, Michael Thomas, Paul
   Duffy (Cisco); Deepak Patil (Com21); Jeff Ollis, Rick Vetter (General
   Instrument/Motorola); Roger Loots, David Walters (Lucent); Peter
   Bates (Telcordia); Patrick Meehan (Tellabs); Satish Kumar, Itay
   Sherman, Roy Spitzer (Telogy/TI), Aviv Goren (Terayon); Prithivraj
   Narayanan (Wipro).

   The authors would also like to extend a special "thank you" to Rich
   Woundy (Comcast) for his thoughtful inputs.

13.  Authors' Addresses

   Burcak Beser
   Juniper Networks
   1194 North Matilda Avenue
   Sunnyvale, CA, 94089

   EMail: burcak@juniper.net


   Paul Duffy
   Cisco Systems
   300 Apollo Drive
   Chelmsford, MA, 01824

   EMail: paduffy@cisco.com

14.  Full Copyright Statement

   Copyright (C) The Internet Society (2003).  All Rights Reserved.

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works.  However, this
   document itself may not be modified in any way, such as by removing
   the copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of
   developing Internet standards in which case the procedures for
   copyrights defined in the Internet Standards process must be
   followed, or as required to translate it into languages other than
   English.

   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assigns.

   This document and the information contained herein is provided on an
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Acknowledgement

   Funding for the RFC Editor function is currently provided by the
   Internet Society.

AI ELI5

On this page
PROBLEMPacketCable voice adapters (MTAs) and their cable modems may be run by different companies, and the MTA needs special settings such as server addresses and a Kerberos realm that ordinary DHCP options do not carry.
MECHANISMRFC 3495 defines DHCP option 122, the CableLabs Client Configuration (CCC) option, which holds numbered sub-options for DHCP servers, the provisioning server, Kerberos retry timers, the realm name, ticket use and a provisioning timer.
WHY IT MATTERSThe option is a Proposed Standard with a sub-option number space kept by IANA, so other CableLabs devices can add sub-options later.

§3Why a CableLabs Option Is Needed

CableLabs is a non-profit consortium that specifies broadband architectures for the cable industry. Its PacketCable project covers Voice over IP, supported at the customer site by a Cable Modem (CM) and a Media Terminal Adapter (MTA). The MTA turns VoIP protocols into analog telephony for an ordinary phone.

The CM and MTA are separate IP devices. Each has its own MAC address and IP configuration and each uses DHCP. The RFC assumes they may be administered by different business entities: the CM is configured by the Data Access Provider's DHCP servers, and the MTA by the Telephony Service Provider's (TSP's) DHCP servers.

Because of the MTA's special configuration needs, a new CableLabs Client Configuration (CCC) option is defined. Both CM and MTA request it, and both the DAP and TSP servers fill it in. The RFC adds that the option will also support non-VoIP uses, so using it does not mean the provider is a TSP.

Your cable box and your phone adapter can be looked after by different companies. Each needs its own instructions, so a new kind of note is added to the DHCP message.

§4The CCC Option and Sub-Option Format

The option starts with a tag octet holding the option code, 122, then a length octet, then the sub-options. The length does not count the tag or length octets themselves, and it is the total length in octets, not the number of sub-options. If the total exceeds 255 octets, the long-option procedure in RFC 3396 MUST be used to split it into several smaller options.

Each sub-option has the same shape: a sub-option code, a length octet and that many octets of information. Sub-option codes 1 to 8 are defined, and 9 to 255 are reserved for future extensions. Codes 1 and 2 are sent to the cable modem; codes 3 to 8 are sent to the MTA.

Three general encoding rules apply. Domain names MUST be encoded as in RFC 1035 section 3.1, with a terminating 0, and name compression MUST NOT be used. IPv4 addresses are 4 octets in network byte order. All multi-octet quantities use network byte order.

Each instruction is a little labelled box: a number saying what kind it is, a size, and then the contents. Many boxes sit inside one bigger box.

CCC SUB-OPTION CODES (RFC 3495)
  • 1Primary DHCP server — TSP's primary DHCP server address, sent to the CM.
  • 2Secondary DHCP server — TSP's secondary DHCP server address, sent to the CM.
  • 3Provisioning server — IPv4 address or FQDN, sent to the MTA.
  • 4AS-REQ/AS-REP backoff — Timeout and retry values for Kerberos AS exchange.
  • 5AP-REQ/AP-REP backoff — Timeout and retry values for Kerberos AP exchange.
  • 6Kerberos realm — Realm name used to find the KDC.
  • 7TGS utilization — Boolean: whether to use a TGT for service tickets.
  • 8Provisioning timer — 0 to 255 minutes; 0 disables the timer.

§5The Eight Sub-Options

Sub-options 1 and 2 give the TSP's primary and secondary DHCP server addresses, the servers from which an MTA is permitted to accept a DHCP OFFER. Length MUST be 4, followed by an IPv4 address.

Sub-option 3 gives the TSP's provisioning server, as either an IPv4 address or an FQDN. A type octet comes first: 1 means IPv4 (length 5) and 0 means FQDN (length n+1).

Sub-options 4 and 5 configure the backoff and retry behaviour of the MTA's Kerberos AS-REQ/AS-REP and AP-REQ/AP-REP exchanges, which RFC 1510 does not define. Each has length 12: a nominal timeout, a maximum timeout and a maximum retry count, each a 32-bit unsigned value. For AS-REQ the nominal timeout is in milliseconds; for AP-REQ it is in seconds. Both maximum timeouts are in seconds.

Sub-option 6 carries the Kerberos realm name, in all capital letters, so the MTA can use DNS to find the TSP's Key Distribution Center. Sub-option 7 is a one-octet boolean (0 or 1) saying whether the MTA should use a Ticket Granting Ticket when getting service tickets. Sub-option 8 is the provisioning timer, one octet from 0 to 255 minutes. If it expires before provisioning completes, the MTA should reset it and restart provisioning from the beginning. A value of 0 means the timer MUST be disabled.

The eight boxes tell the phone adapter which servers to talk to, how long to wait and how many times to retry, which login realm to use, and how long it may take to get set up.

§6How Clients and Servers Use the Option

CableLabs client devices send DHCP requests that include option 55 (Parameter Request List) and option 60 (Vendor Class Identifier). Option 55 asks the server for the CCC option. Option 60 names the device type, which tells the server which CCC sub-options to fill in. The exact sub-options for each device type are set in CableLabs project specifications, such as the PacketCable provisioning specification.

Client devices never put the CCC option in their own DHCP requests. Only servers populate it.

The device asks for the instruction note and says what kind of gadget it is. The server then writes the right instructions for that gadget.

§7IANA Assignments and Legacy Use

IANA assigned option code 122. Before that, the CCC option used the site-specific option value 177 (0xB1), and that use is to be deprecated now that an official number exists.

IANA is also asked to maintain a new number space, CableLabs Client Configuration Sub-options, in the BOOTP-DHCP Parameters registry. New sub-option codes are registered under the IETF Consensus policy of RFC 2434. No registry is needed for the provisioning-server type codes (IPv4 and FQDN) because no more are expected.

The official number for this note was reserved so nobody else uses it. A list of sub-box numbers is kept so new ones can be added in an orderly way.

§10Misdirection Risks and Mitigations

The CCC option can steer a device to the wrong place by giving it incorrect DHCP server addresses, provisioning server addresses or Kerberos realm names. The RFC lists three threats: a denial of service from invalid addresses, a man-in-the-middle attack by pointing at a snooper, and a malicious TSP stealing customers by changing the realm.

It lists mitigations. The CMTS (head-end) is configured with specific DHCP servers and a correctly configured CMTS only allows downstream traffic from specific IP addresses or ranges. A device that reaches a KDC must still present valid certificates, though the cost of validating them could itself be a DoS opportunity. A TSP found redirecting customers is treated as an administrative matter between the access provider and the TSP. The RFC also points to the DHCP specification and DHCP authentication (RFC 3118).

If someone gave the phone adapter wrong directions, it could get lost or end up talking to the wrong company. The cable network has several locks to make that hard.

§7References