"data": "0xf0"
}
],
- "pools": [ {
- "pool": "192.0.2.10 - 192.0.2.200",
- "option-data": [
- {
- "name": "domain-name-servers",
- "data": "192.0.2.3, 192.0.2.4"
- }
- ]
- } ]
+
+ // Now we define pools. There are two pools here.
+ "pools": [ {
+ // This is the first pool. Nothing spectacular here, just a range
+ // of addresses.
+ "pool": "192.0.2.10 - 192.0.2.100"
+
+ }, {
+ // This second pool is more interesting. Anyone who gets an
+ // address from this pool will also get this specific option
+ // value if asks for DNS servers configuration. This value,
+ // being more specific, overrides any values that were specified
+ // on either global or subnet scope.
+ "pool": "192.0.2.101 - 192.0.2.200",
+ "option-data": [
+ {
+ "name": "domain-name-servers",
+ "data": "192.0.2.3, 192.0.2.4"
+ }
+ ]
+ } ]
} ]
},
testOption(*range.first, 23, foo2_expected, sizeof(foo2_expected));
}
+// This test verifies that it's possible to define different options in
+// different pools and those options are not confused.
TEST_F(Dhcp4ParserTest, optionDataMultiplePools) {
ConstElementPtr x;
string config = "{ " + genIfaceConfig() + ","
// Add 7 options to another option space. The option codes partially overlap
// with option codes that we have added to dhcp4 option space.
for (uint16_t code = 105; code < 112; ++code) {
- OptionPtr option(new Option(Option::V6, code, OptionBuffer(10, 0xFF)));
+ OptionPtr option(new Option(Option::V4, code, OptionBuffer(10, 0xFF)));
ASSERT_NO_THROW(pool->getCfgOption()->add(option, false, "isc"));
}