+ config_get networkid "$cfg" networkid
+ [ -n "$networkid" ] || return 0
+
+ config_get subscriberid "$cfg" subscriberid
+ [ -n "$subscriberid" ] || return 0
+
+ append args "--dhcp-subscrid=$networkid,$subscriberid"
+
+ dhcp_option_add "$cfg" "$networkid"
+}
+
+dhcp_remoteid_add() {
+ local cfg="$1"
+
+ config_get networkid "$cfg" networkid
+ [ -n "$networkid" ] || return 0
+
+ config_get remoteid "$cfg" remoteid
+ [ -n "$remoteid" ] || return 0
+
+ append args "--dhcp-remoteid=$networkid,$remoteid"
+
+ dhcp_option_add "$cfg" "$networkid"
+}
+
+dhcp_circuitid_add() {
+ local cfg="$1"
+
+ config_get networkid "$cfg" networkid
+ [ -n "$networkid" ] || return 0
+
+ config_get circuitid "$cfg" circuitid
+ [ -n "$circuitid" ] || return 0
+
+ append args "--dhcp-circuitid=$networkid,$circuitid"
+
+ dhcp_option_add "$cfg" "$networkid"
+}
+
+dhcp_userclass_add() {
+ local cfg="$1"
+
+ config_get networkid "$cfg" networkid
+ [ -n "$networkid" ] || return 0
+
+ config_get userclass "$cfg" userclass
+ [ -n "$userclass" ] || return 0
+
+ append args "--dhcp-userclass=$networkid,$userclass"
+
+ dhcp_option_add "$cfg" "$networkid"
+}
+
+dhcp_vendorclass_add() {
+ local cfg="$1"
+
+ config_get networkid "$cfg" networkid
+ [ -n "$networkid" ] || return 0
+
+ config_get vendorclass "$cfg" vendorclass
+ [ -n "$vendorclass" ] || return 0
+
+ append args "--dhcp-vendorclass=$networkid,$vendorclass"
+
+ dhcp_option_add "$cfg" "$networkid"
+}
+
+dhcp_host_add() {
+ local cfg="$1"
+
+ config_get name "$cfg" name
+
+ config_get networkid "$cfg" networkid
+ [ -n "$networkid" ] && dhcp_option_add "$cfg" "$networkid"
+
+ config_get ip "$cfg" ip
+ [ -n "$ip" ] || return 0
+
+ macs=""
+ config_get mac "$cfg" mac
+ for m in $mac; do append macs "$m" ","; done
+ [ -n "$macs" ] || return 0
+
+ append args "--dhcp-host=$macs,${networkid:+net:$networkid,}$ip${name:+,$name}"
+}
+
+dhcp_mac_add() {
+ local cfg="$1"
+
+ config_get networkid "$cfg" networkid
+ [ -n "$networkid" ] || return 0
+
+ config_get mac "$cfg" mac
+ [ -n "$mac" ] || return 0
+
+ append args "--dhcp-mac=$networkid,$mac"
+
+ dhcp_option_add "$cfg" "$networkid"
+}
+
+dhcp_boot_add() {
+ local cfg="$1"
+
+ config_get networkid "$cfg" networkid
+
+ config_get filename "$cfg" filename
+ [ -n "$filename" ] || return 0
+
+ config_get servername "$cfg" servername
+ [ -n "$servername" ] || return 0
+
+ config_get serveraddress "$cfg" serveraddress
+ [ -n "$serveraddress" ] || return 0
+
+ append args "--dhcp-boot=${networkid:+net:$networkid,}$filename,$servername,$serveraddress"
+
+ dhcp_option_add "$cfg" "$networkid"
+}
+
+
+dhcp_add() {
+ local cfg="$1"