Dune HD STB - DHCP SETTINGS


The following information is applicable to Dune players based on
864x/865x/867x chipsets. Older models don't support all of the settings
described below.

DHCP client on Dune players provides the following information to DHCP
server (with code in parenthesis):

    * Host name (12), string, always "DUNE" without quotes.

    * Vendor class identifier (60), string, always "DUNEHD" without quotes.

    * Client identifier (61), binary, 7 bytes, byte 01 followed by 6 bytes
    of MAC address, e.g. 010016e8660e86.

    * Vendor specific information (43). Encapsulated list of options:

        - product id (1), string, e.g. "hdtv_101";

        - firmware version (2), string, e.g. "120420_1450_js_stb".

DHCP client on Dune players requests the following information from DHCP
server (with code in parenthesis):

    * Subnet mask (1).

    * Time offset (2).

    * Routers (3).

    * DNS server (6).

    * Host name (12).

    * Domain name (15).

    * Broadcast address (28).

    * NTP servers (42).

    * Vendor specific information (43).

Vendor specific information supported by Dune players is as follows (with
code in parenthesis):

    * (1) -- reserved, not implemented.

    * Firmware upgrade version (2), string, version of firmware, available
    for upgrade.
      NOTE: This parameter is intended to be accessed and handled by custom
      STB application using Dune STB API, and does not have any effect on
      its own.

    * Firmware upgrade URL (3), string, URL of firmware image available for
    upgrade.
      NOTE: This parameter is intended to be accessed and handled by custom
      STB application using Dune STB API, and does not have any effect on
      its own.

    * Time zone (4), string, is used for setting time zone on player
    including daylight savings.
      NOTE: This parameter is handled by Dune firmware itself.

    * Home page URL (5), string, can be used by Dune player with STB
    firmware to load initial HTML page on start of device.
      NOTE: This parameter is intended to be accessed and handled by custom
      STB application using Dune STB API, and does not have any effect on
      its own.

Only first NTP server is used from the list returned by DHCP server.

Dune player uses NTP server information from DHCP server only if player's
NTP server setting is unset (i.e. is set to empty string). Otherwise, NTP
server specified in player's setup menu is used. If player's NTP server
setting is unset, and NTP server information is not provided by DHCP
server, then the default value "pool.ntp.org" is used. In custom firmware
builds, it is possible to force the use of NTP server information from DHCP
server, see "prefer_dhcp_ntp_server.flag" here for more information:
   http://files.dune-hd.com/sdk/doc/html/dune_custom_firmware.html

Dune player uses time offset and time zone information from DHCP server
only if player's time zone setting is "Auto". Time zone from DHCP server,
if supplied, is used as is. If time zone is not supplied player uses time
offset without interpretation of daylight savings. If nor time zone,
neither time offset are supplied by DHCP server default value GMT00:00 with
daylight savings is used. In custom firmware, it is possible to specify
another default value, see "default_dhcp_time_zone" here for more
information:
   http://files.dune-hd.com/sdk/doc/html/dune_custom_firmware.html

Dune player does not perform any handling of firmware upgrade version,
firmware upgrade URL and home page URL parameters from DHCP server by
default, unless Dune player is configured to automatically launch certain
custom application which explicitly uses this information (via API provided
by Dune player). The main purpose of these parameters is their usage by
custom applications (e.g. index.html page implementing bootloader for an
HTML middleware) embedded into custom firmware builds.

Note, DHCP packets are limited in size. Current implementation restricts
overall options size to 308 bytes. Every option must not exceed 127 bytes.

Example configuration of DHCP server

The following example code can be used to configure DHCP server to provide
standard and vendor specific information to Dune players. The code tested
with ISC DHCP 3.1.3 server on Ubuntu 10.10.

    option space DUNEHD code width 1 length width 1;
    option DUNEHD.dune_fw_upgrade_version code 2 = text;
    option DUNEHD.dune_fw_upgrade_url code 3 = text;
    option DUNEHD.dune_time_zone code 4 = text;
    option DUNEHD.dune_home_page_url code 5 = text;

    option DUNEHD.dune_time_zone "GMT-03:00MSD-4:00,M3.5.0/02:00:00,M10.5.0/03:00:00";
    option DUNEHD.dune_home_page_url "http://10.0.0.1/dune_home.html";

    class "dune-hd" {
      match if substring(option vendor-class-identifier, 0, 6) = "DUNEHD";
      vendor-option-space DUNEHD;
    }

    class "dune-hd hdtv_101" {
      match if (substring(option vendor-class-identifier, 0, 6) = "DUNEHD" and substring(option vendor-encapsulated-options, 2, 8) = "hdtv_101");
      vendor-option-space DUNEHD;
      option DUNEHD.dune_fw_upgrade_url "igmp://239.255.0.222:5500";
      option DUNEHD.dune_fw_upgrade_version "120423_2114_js_stb";
    }

    option ntp-servers 131.234.137.24, 212.18.3.19, 131.188.3.220;
    option time-offset -3600;