Help: How to serve multiple CM Config Files from Linux | docsis.org

You are here

Help: How to serve multiple CM Config Files from Linux

2 posts / 0 new
Last post
pasty001
Help: How to serve multiple CM Config Files from Linux

Hi,
Fairly new around here, but I've been performing tests on our mini CMTS for a while, using a linux DHCP/TFTP server.
I need to create some new test scenarios, where I serve different CM config files to the various modems.
I have a batch of Hitron, Motorola and Castlenet Modems on the system, and I want to give them each type a different config file in the dhcp.conf
How do I go about this? I currently use a symbolic link (cm.0) to the CM config file on the TFTP server, which works fine.
essentially, I want to use cm.0, cm.1, cm.2 for the modem groups.

current config file:

#
# DHCP Configuration for Network
# in System Test Laboratory
#

# Lease Times (7 days)
default-lease-time 604800;
max-lease-time 604800;

# Syslog Server
option log-servers 192.168.221.5;

# TOD Server
option time-servers 192.168.221.5;

shared-network Multi_Net {

# Classify DOCSIS Cable Modems
class "cmts_modems" {
match if substring (option vendor-class-identifier, 0, 6) = "docsis";
}

subnet 192.168.0.0 netmask 255.255.0.0 {

# Cable Modem Pool, enough address space for 2540 Modems!
pool {
allow members of "cmts_modems";
range 192.168.10.1 192.168.10.254;
range 192.168.11.1 192.168.11.254;
range 192.168.12.1 192.168.12.254;
range 192.168.13.1 192.168.13.254;
range 192.168.14.1 192.168.14.254;
range 192.168.15.1 192.168.15.254;
range 192.168.16.1 192.168.16.254;
range 192.168.17.1 192.168.17.254;
range 192.168.18.1 192.168.18.254;
range 192.168.19.1 192.168.19.254;
filename "cm.0";
}

# CPE Pool, enough address space for 2540 CPEs!
pool {
range 192.168.20.1 192.168.20.254;
range 192.168.21.1 192.168.21.254;
range 192.168.22.1 192.168.22.254;
range 192.168.23.1 192.168.23.254;
range 192.168.24.1 192.168.24.254;
range 192.168.25.1 192.168.25.254;
range 192.168.26.1 192.168.26.254;
range 192.168.27.1 192.168.27.254;
range 192.168.28.1 192.168.28.254;
range 192.168.29.1 192.168.29.254;
allow unknown-clients;
}
}
}

kwesibrunee
You can try this

I used this method to do something like you described, downside was had to maintain a ton of Modem Configs

# Remember Agent info can't remember if this was necessary or not
stash-agent-options on;

# Map option 43 values for Docsis 1.1+ modems
option space vendorOptions;
option vendorOptions.deviceType code 2 = string;
option vendorOptions.serialNumber code 4 = string;
option vendorOptions.hardwareVersion code 5 = string;
option vendorOptions.softwareVersion code 6 = string;
option vendorOptions.bootRomVersion code 7 = string;
option vendorOptions.oui code 8 = string;
option vendorOptions.modelNumber code 9 = string;
option vendorOptions.docsisVendor code 10 = string;
option vendorOptions-pkt code 43 = encapsulate vendorOptions;

# this will create filenames like CM_docsis1.1_Motor_BroadbandLite.bin or CM_docsis2.0_Arris_BroadbandLite.bin
# or if it is an unknown manufacturer CM_docsis1.0_BroadbandLite.bin
group BroadbandLite {
if exists vendorOptions.docsisVendor and (substring(option vendorOptions.docsisVendor,0,5) = "Arris" or substring(option vendorOptions.docsisVendor,0,5) = "Motor"){
filename = concat("CM_",substring(option vendor-class-identifier,0,9),"_",substring(option vendorOptions.docsisVendor,0,5), "_BroadbandLite.bin");
option bootfile-name = concat("CM_",substring(option vendor-class-identifier,0,9),"_",substring(option vendorOptions.docsisVendor,0,5), "_BroadbandLite.bin");
} else {
filename = concat("CM_",substring(option vendor-class-identifier,0,9),"_BroadbandLite.bin");
option bootfile-name = concat("CM_",substring(option vendor-class-identifier,0,9),"_BroadbandLite.bin");
}
log(info, concat("Filname is:", config-option bootfile-name));
}

Log in or register to post comments