MySqlBinding::createString(CLIENT_CLASS_BUF_LENGTH), // pool: client_class
MySqlBinding::createString(REQUIRE_CLIENT_CLASSES_BUF_LENGTH), // pool: require_client_classes
MySqlBinding::createString(USER_CONTEXT_BUF_LENGTH), // pool: user_context
+ MySqlBinding::createInteger<uint8_t>(), // allow_static_leases
MySqlBinding::createString(SERVER_TAG_BUF_LENGTH) // server_tag
};
last_subnet->addRelayAddress(IOAddress(relay_element->get(i)->stringValue()));
}
}
+
// require_client_classes
ElementPtr require_element = out_bindings[14]->getJSON();
if (require_element) {
// pool client_class, require_client_classes and user_context
- // server_tag at 58
+ // allow_static_leases
+ if (!out_bindings[58]->amNull()) {
+ last_subnet->setAllowStaticLeases(out_bindings[58]->getBool());
+ }
+
+ // server_tag at 59
// Subnet ready. Add it to the list.
auto ret = subnets.push_back(last_subnet);
}
// Check for new server tags.
- if (!out_bindings[58]->amNull() &&
- (last_tag != out_bindings[58]->getString())) {
- last_tag = out_bindings[58]->getString();
+ if (!out_bindings[59]->amNull() &&
+ (last_tag != out_bindings[59]->getString())) {
+ last_tag = out_bindings[59]->getString();
if (!last_tag.empty() && !last_subnet->hasServerTag(ServerTag(last_tag))) {
last_subnet->setServerTag(last_tag);
}
MySqlBinding::condCreateBool(subnet->getCalculateTeeTimes(Network::Inheritance::NONE)),
MySqlBinding::condCreateFloat(subnet->getT1Percent(Network::Inheritance::NONE)),
MySqlBinding::condCreateFloat(subnet->getT2Percent(Network::Inheritance::NONE)),
- MySqlBinding::condCreateBool(subnet->getAuthoritative(Network::Inheritance::NONE))
+ MySqlBinding::condCreateBool(subnet->getAuthoritative(Network::Inheritance::NONE)),
+ MySqlBinding::condCreateBool(subnet->getAllowStaticLeases(Network::Inheritance::NONE)),
};
MySqlTransaction transaction(conn_);
MySqlBinding::createString(SERVER_HOSTNAME_BUF_LENGTH), // server_hostname
MySqlBinding::createInteger<uint32_t>(), // min_valid_lifetime
MySqlBinding::createInteger<uint32_t>(), // max_valid_lifetime
+ MySqlBinding::createInteger<uint8_t>(), // allow_static_leases
MySqlBinding::createString(SERVER_TAG_BUF_LENGTH) // server_tag
};
// {min,max}_valid_lifetime
+ // allow_static_leases
+ if (!out_bindings[34]->amNull()) {
+ last_network->setAllowStaticLeases(out_bindings[34]->getBool());
+ }
+
// Add the shared network.
auto ret = shared_networks.push_back(last_network);
}
// Check for new server tags.
- if (!out_bindings[34]->amNull() &&
- (last_tag != out_bindings[34]->getString())) {
- last_tag = out_bindings[34]->getString();
+ if (!out_bindings[35]->amNull() &&
+ (last_tag != out_bindings[35]->getString())) {
+ last_tag = out_bindings[35]->getString();
if (!last_tag.empty() && !last_network->hasServerTag(ServerTag(last_tag))) {
last_network->setServerTag(last_tag);
}
MySqlBinding::condCreateBool(shared_network->getAuthoritative(Network::Inheritance::NONE)),
MySqlBinding::condCreateString(shared_network->getFilename(Network::Inheritance::NONE)),
MySqlBinding::condCreateIPv4Address(shared_network->getSiaddr(Network::Inheritance::NONE)),
- MySqlBinding::condCreateString(shared_network->getSname(Network::Inheritance::NONE))
+ MySqlBinding::condCreateString(shared_network->getSname(Network::Inheritance::NONE)),
+ MySqlBinding::condCreateBool(shared_network->getAllowStaticLeases(Network::Inheritance::NONE))
};
MySqlTransaction transaction(conn_);
" calculate_tee_times,"
" t1_percent,"
" t2_percent,"
- " authoritative"
+ " authoritative,"
+ " allow_static_leases"
") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,"
- "?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)" },
+ "?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)" },
// Insert association of the subnet with a server.
{ MySqlConfigBackendDHCPv4Impl::INSERT_SUBNET4_SERVER,
" authoritative,"
" boot_file_name,"
" next_server,"
- " server_hostname"
+ " server_hostname,"
+ " allow_static_leases"
") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,"
- " ?, ?, ?, ?, ?, ?, ?, ?, ?)" },
+ " ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)" },
// Insert association of the shared network with a server.
{ MySqlConfigBackendDHCPv4Impl::INSERT_SHARED_NETWORK4_SERVER,
" calculate_tee_times = ?,"
" t1_percent = ?,"
" t2_percent = ?,"
- " authoritative = ? "
+ " authoritative = ?,"
+ " allow_static_leases = ? "
"WHERE subnet_id = ? OR subnet_prefix = ?" },
// Update existing shared network.
" authoritative = ?,"
" boot_file_name = ?,"
" next_server = ?,"
- " server_hostname = ? "
+ " server_hostname = ?,"
+ " allow_static_leases = ? "
"WHERE name = ?" },
// Update existing option definition.
MySqlBinding::createString(CLIENT_CLASS_BUF_LENGTH), // pd pool: client_class
MySqlBinding::createString(REQUIRE_CLIENT_CLASSES_BUF_LENGTH), // pd pool: require_client_classes
MySqlBinding::createString(USER_CONTEXT_BUF_LENGTH), // pd pool: user_context
+ MySqlBinding::createInteger<uint8_t>(), // allow_static_leases
MySqlBinding::createString(SERVER_TAG_BUF_LENGTH) // server_tag
};
// 79 is pd pool require_client_classes
// 80 is pd pool user_context
- // server_tag (81 / last)
+ // allow_static_leases (81)
+ if (!out_bindings[81]->amNull()) {
+ last_subnet->setAllowStaticLeases(out_bindings[81]->getBool());
+ }
+
+ // server_tag (82 / last)
// Subnet ready. Add it to the list.
auto ret = subnets.push_back(last_subnet);
}
// Check for new server tags.
- if (!out_bindings[81]->amNull() &&
- (last_tag != out_bindings[81]->getString())) {
- last_tag = out_bindings[81]->getString();
+ if (!out_bindings[82]->amNull() &&
+ (last_tag != out_bindings[82]->getString())) {
+ last_tag = out_bindings[82]->getString();
if (!last_tag.empty() && !last_subnet->hasServerTag(ServerTag(last_tag))) {
last_subnet->setServerTag(last_tag);
}
MySqlBinding::condCreateBool(subnet->getCalculateTeeTimes(Network::Inheritance::NONE)),
MySqlBinding::condCreateFloat(subnet->getT1Percent(Network::Inheritance::NONE)),
MySqlBinding::condCreateFloat(subnet->getT2Percent(Network::Inheritance::NONE)),
+ MySqlBinding::condCreateBool(subnet->getAllowStaticLeases(Network::Inheritance::NONE)),
interface_id_binding
};
MySqlBinding::createInteger<uint32_t>(), // max_preferred_lifetime
MySqlBinding::createInteger<uint32_t>(), // min_valid_lifetime
MySqlBinding::createInteger<uint32_t>(), // max_valid_lifetime
+ MySqlBinding::createInteger<uint8_t>(), // allow_static_leases
MySqlBinding::createString(SERVER_TAG_BUF_LENGTH) // server_tag
};
// {min,max)_valid_lifetime
+ // allow_static_leases
+ if (!out_bindings[35]->amNull()) {
+ last_network->setAllowStaticLeases(out_bindings[35]->getBool());
+ }
+
// Add the shared network.
auto ret = shared_networks.push_back(last_network);
}
// Check for new server tags.
- if (!out_bindings[35]->amNull() &&
- (last_tag != out_bindings[35]->getString())) {
- last_tag = out_bindings[35]->getString();
+ if (!out_bindings[36]->amNull() &&
+ (last_tag != out_bindings[36]->getString())) {
+ last_tag = out_bindings[36]->getString();
if (!last_tag.empty() && !last_network->hasServerTag(ServerTag(last_tag))) {
last_network->setServerTag(last_tag);
}
MySqlBinding::condCreateBool(shared_network->getCalculateTeeTimes(Network::Inheritance::NONE)),
MySqlBinding::condCreateFloat(shared_network->getT1Percent(Network::Inheritance::NONE)),
MySqlBinding::condCreateFloat(shared_network->getT2Percent(Network::Inheritance::NONE)),
+ MySqlBinding::condCreateBool(shared_network->getAllowStaticLeases(Network::Inheritance::NONE)),
interface_id_binding
};
" calculate_tee_times,"
" t1_percent,"
" t2_percent,"
+ " allow_static_leases,"
" interface_id"
") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,"
- " ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)" },
+ " ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)" },
// Insert association of the subnet with a server.
{ MySqlConfigBackendDHCPv6Impl::INSERT_SUBNET6_SERVER,
" calculate_tee_times,"
" t1_percent,"
" t2_percent,"
+ " allow_static_leases,"
" interface_id"
") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,"
- " ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)" },
+ " ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)" },
// Insert association of the shared network with a server.
{ MySqlConfigBackendDHCPv6Impl::INSERT_SHARED_NETWORK6_SERVER,
" calculate_tee_times = ?,"
" t1_percent = ?,"
" t2_percent = ?,"
+ " allow_static_leases = ?,"
" interface_id = ? "
"WHERE subnet_id = ? OR subnet_prefix = ?" },
" calculate_tee_times = ?,"
" t1_percent = ?,"
" t2_percent = ?,"
+ " allow_static_leases = ?,"
" interface_id = ? "
"WHERE name = ?" },
" p.client_class," \
" p.require_client_classes," \
" p.user_context," \
+ " s.allow_static_leases," \
" srv.tag " \
"FROM dhcp4_subnet AS s " \
server_join \
" d.client_class," \
" d.require_client_classes," \
" d.user_context," \
+ " s.allow_static_leases," \
" srv.tag " \
"FROM dhcp6_subnet AS s " \
server_join \
" n.server_hostname," \
" n.min_valid_lifetime," \
" n.max_valid_lifetime," \
+ " n.allow_static_leases," \
" s.tag " \
"FROM dhcp4_shared_network AS n " \
server_join \
" n.max_preferred_lifetime," \
" n.min_valid_lifetime," \
" n.max_valid_lifetime," \
+ " n.allow_static_leases," \
" s.tag " \
"FROM dhcp6_shared_network AS n " \
server_join \