Introduction
This guide provides information to set up a DHCP server so that STB preloaded with the Enable software stack (a.k.a. Enable STB) could boot with the configuration settings downloaded from the server.
There are various brands of DHCP servers on the market and in this document, we will demonstrate how this can be done on a commonly available and open-source ISC (Internet Systems Consortium) DHCP server.
Prerequisites
This article assumes that you have an Enable STB.
Summary
Basic Concept
In addition to the IP address, the DHCP server can provide devices with boot settings through DHCP option 43.
Inside a typical Enable STB DHCP request, STB broadcasts its MAC address over Ethernet protocol and VCI class tag over DHCP option 60. (Vendor Class Identifier a.k.a. VCI)
Enable STB expects to receive its boot settings from the DHCP server reply through DHCP option 43. (Vendor Specific Information a.k.a. VSI)
Therefore if the DHCP server is properly configured to detect that MAC address and/or the VCI class of the Enable STB, it could deliver VSI to the STB accordingly.
Setting up an ISC DHCP server to work with Enable STB
For the ISC DHCP server, the default location of its configuration file is found in /etc/dhcp/dhcpd.conf.
In the following steps, we will add the necessary settings to dhcpd. conf so that the ISC DHCP server can serve to Enable STB in its network.
Defining the VSI fields used by Enable STB
1. Define option space AMINO to have the DHCP server to generate a vendor-specific option buffer for Enable STB.
e.g.
option space AMINO;
2. Define the vendor option AMINO.AMINOINI which is a text string field. This contains a URL of a file and the file contains the INI options required by Enable STB to boot.
e.g.
AMINO.AMINOINI code 106 = text;
Serving VSI by VCI class
1. Define the VCI class of the Enable STB to use. Since Enable STB by design can boot up with a BBL (bootloader) or an APP (application). It is necessary to define both the VCI of the BBL and the APP for each STB model.
e.g. Aria 7
class "AMINO-BBL-082"{
match if substring (option vendor-class-identifier, 0, 13)="AMINO-BBL-082";
}
class "AMINO-APP-082"{
match if substring (option vendor-class-identifier, 0, 13)="AMINO-APP-082";
}
Detail information of Enable STB VCI can be found in the article Enable STB DHCP/VCI Strings
2. Include in each of the VCI classes, the declaration vendor-option-space AMINO and option AMINO.AMINOINI. Extending the example in the last step now it becomes,
e.g. Aria 7
class "AMINO-BBL-082"{
match if substring (option vendor-class-identifier, 0, 13)="AMINO-BBL-082";
vendor-option-space AMINO;
option AMINO.AMINOINI "http://10.0.32.26/amino/amino_boot_aria7.ini";
}
class "AMINO-APP-082"{
match if substring (option vendor-class-identifier, 0, 13)="AMINO-APP-082";
vendor-option-space AMINO;
option AMINO.AMINOINI "http://10.0.32.26/amino/amino_boot_aria7.ini";
}
3. Save the changes made and restart the DHCP server.
Now, STB with the VCI tag "AMINO-BBL-082" or "AMINO-APP-082" could receive the URL of the INI file through DHCP option 43 embedded in the DHCP server's reply to its DHCP request.
Serving VSI by MAC address
1. Define a group that consists of devices with their MAC address.
e.g.
group aria7_group{
host STB_A { hardware ethernet 00:03:E6:37:5A:2C; }
host STB_B { hardware ethernet 00:03:E6:B3:E4:F0; }
}
2. Include in each of the groups created, the declaration vendor-option-space AMINO and option AMINO.AMINOINI. Extending the example in the last step now it becomes,
group aria7_group{
vendor-option-space AMINO;
option AMINO.AMINOINI "http://10.0.32.26/amino/amino_boot_aria7.ini";
host STB_A { hardware ethernet 00:03:E6:37:5A:2C; }
host STB_B { hardware ethernet 00:03:E6:B3:E4:F0; }
}
3. Save the changes made and restart the DHCP server.
Now, STB with the MAC address "00:03:E6:37:5A:2C" or "00:03:E6:B3:E4:F0" could receive the URL of the INI file through DHCP option 43 embedded in the DHCP server's reply to it's DHCP request.
Reference
None.