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

Perry, Keith Keith.Perry at sciatl.com
Mon Oct 15 20:32:02 UTC 2007


The option I'm trying to filter on is always placed first by our client
so I'm too concerned with reliability.  I already reviewed the
application section of the dhcp-options MAN page prior to sending out my
initial request.  It is solely about setting sub-options to provide to
the client - nothing about reading sub-options from the client.   I've
tried the 5 variations below with no success.  Conf file passes syntax
check with any of these:  

match if substring (vendor-encapsulated-options, 5, 3) = "ECM";
match if substring (vendor-encapsulated-options, 3, 3) = "ECM";
match if substring (vendor-encapsulated-options, 5, 3) = "45:43:4d";
match if substring (vendor-encapsulated-options, 3, 3) = "45:43:4d";
match if substring (vendor-encapsulated-options, 0, 5) =
"02:03:45:43:4d";

But fails to place the embedded CMs in the pool I have specified below:
********************************************************************
         # Cable Modem Subnet
         subnet 10.5.128.0 netmask 255.255.192.0  {
          pool {
            range 10.5.128.1  10.5.128.250;
            filename "CM.cfg";
            deny members of "embeddedCM";
            deny dynamic bootp clients;
           }
          pool {
            range 10.5.129.1  10.5.129.250;
            filename "embeddedCM.cfg";
            allow members of "embeddedCM";
            deny dynamic bootp clients;
             }
             option subnet-mask 255.255.192.0;
             option routers 10.5.128.254;
             option broadcast-address 10.5.191.255;
             option time-offset 19800;
             option time-servers 10.253.0.10;
             option log-servers 10.253.0.10;
             next-server 10.253.0.10;
             authoritative;
	    }
********************************************************************

I'm beginning to wonder if the server only handles outbound Option 43
info and not inbound ?


Regards,

Keith



-----Original Message-----
From: dhcp-users-bounce at isc.org [mailto:dhcp-users-bounce at isc.org] On
Behalf Of Glenn Satchell
Sent: Friday, October 12, 2007 6:52 PM
To: dhcp-users at isc.org
Subject: Re: Using Option 43 Info FROM a Cable Modem Client to Define a
Class

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


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)





     - - - - - Appended by Scientific Atlanta, a Cisco company - - - - -         
This e-mail and any attachments may contain information which is confidential, 
proprietary, privileged or otherwise protected by law. The information is solely 
intended for the named addressee (or a person responsible for delivering it to 
the addressee). If you are not the intended recipient of this message, you are 
not authorized to read, print, retain, copy or disseminate this message or any 
part of it. If you have received this e-mail in error, please notify the sender 
immediately by return e-mail and delete it from your computer.



More information about the dhcp-users mailing list