Using Option 43 Info FROM a Cable Modem Client to Define a Class

Glenn Satchell Glenn.Satchell at uniq.com.au
Fri Oct 12 22:52:27 UTC 2007


>Subject: Using Option 43 Info FROM a Cable Modem Client to Define a Class
>Date: Fri, 12 Oct 2007 13:05:01 -0400
>From: "Perry, Keith" <Keith.Perry at sciatl.com>
>
>I have digital settop boxes with embedded cable modems which I'm trying
>to differentiate from plain old stand alone cable modems so I can
>provide different cable modem configuration files to each.  Both use the
>same Vendor Class Identifier (Option 60) so that is not an option.  The
>embedded cable modem DHCP Discover includes a device type "ECM" in sub
>option 2 of option 43 which I should be able to use.  I already use
>Option 60 to create CPE classes so I'm familiar with the syntax for it.
>Below is one of the class definitions  I'm defining with Option 60:
>
>    
>class "DSG-DHCT"  {
>     match if option vendor-class-identifier = "DSG1.0";
>}
>
>This looks at the entire Option 60 string.  The embedded cable modem
>places 128 bytes of info into Option 43 using 9 seperate sub options as
>shown below:
>
>*********************************************************************
>Option: (t=43,l=128) Vendor-Specific Information (CableLabs)
>        Option: (43) Vendor-Specific Information
>        Length: 128
>        Value: 020345434D030845434D3A4553544204095341424A4E425A...
>        Suboption 2: Device Type = "ECM"
>        Suboption 3: eSAFE Types = "ECM:ESTB"
>        Suboption 4: Serial Number = "SABJNBZTR"
>        Suboption 5: Hardware Version = "HW_REV: 1.2; "
>        Suboption 6: Software Version = "SW_REV: 2.23.15 build 1
>Release"
>        Suboption 7: Boot ROM version = "ROM:049d0106"
>        Suboption 8: OUI = "000F21"
>        Suboption 9: Model Number = "8300"
>        Suboption 10: Vendor Name = "Scientific-Atlanta, Inc."
>
>0140  2e 30 2b 80 02 03 45 43 4d 03 08 45 43 4d 3a 45   .0+...ECM..ECM:E
>0150  53 54 42 04 09 53 41 42 4a 4e 42 5a 54 52 05 0d   STB..SABJNBZTR..
>0160  48 57 5f 52 45 56 3a 20 31 2e 32 3b 20 06 1f 53   HW_REV: 1.2; ..S
>0170  57 5f 52 45 56 3a 20 32 2e 32 33 2e 31 35 20 62   W_REV: 2.23.15 b
>0180  75 69 6c 64 20 31 20 52 65 6c 65 61 73 65 07 0c   uild 1 Release..
>0190  52 4f 4d 3a 30 34 39 64 30 31 30 36 08 06 30 30   ROM:049d0106..00
>01a0  30 46 32 31 09 04 38 33 30 30 0a 18 53 63 69 65   0F21..8300..Scie
>01b0  6e 74 69 66 69 63 2d 41 74 6c 61 6e 74 61 2c 20   ntific-Atlanta, 
>01c0  49 6e 63 2e ff 00 00 00 00 00 00 00 00 00 00 00   Inc.............
>*********************************************************************
>I'm only interested in the sub option 2:
>
>HEX:  2b 80 02 03 [45 43 4d]    
>DEC:  Option 43| Length 128 | SubOption 2 | Length 3 | [ECM]
>
>I'm not sure how isolate on this sub option.  Would something like this
>work?
>
>class "eCM" {
>     match if substring (vendor-encapsulated-options, 3, 3) = "ECM";
>}
>
>Or should I include the 43 header in the offset?
>
>class "eCM" {
>     match if substring (vendor-encapsulated-options, 5, 3) = "ECM";
>}
>
>
>I'm open to sugestions.  I running Version 3.1 on Solaris, have read the
>Man Pages and have a copy of the Teds "DHCP Handbook".
>
>
>Regards,
>
>Keith Perry
>Sr. Staff Systems Engineer
>WAN/LAN Integration R&D
>Scientific Atlanta
>770-236-3957 (Office)
>770-236-1098 (Lab) 
>

Hi Keith

You may not find the substring function reliable in this situation as
the device is allowed to include the sub-options in any order. The
dhcp-options man page has a section titled "VENDOR ENCAPSULATED
OPTIONS". This is mostly about setting the sub-options, but should give
you the information needed to decode them as well. It describes the
format, which is the sub-option number, length, and value.

regards,
-glenn


More information about the dhcp-users mailing list