\"interface\" { return isc::dhcp::Dhcp6Parser::make_INTERFACE(loc); }
\"type\" { return isc::dhcp::Dhcp6Parser::make_TYPE(loc); }
\"code\" { return isc::dhcp::Dhcp6Parser::make_CODE(loc); }
+\"mac-sources\" { return isc::dhcp::Dhcp6Parser::make_MAC_SOURCES(loc); }
+\"relay-supplied-options\" { return isc::dhcp::Dhcp6Parser::make_RELAY_SUPPLIED_OPTIONS(loc); }
\"Logging\" { return isc::dhcp::Dhcp6Parser::make_LOGGING(loc); }
\"loggers\" { return isc::dhcp::Dhcp6Parser::make_LOGGERS(loc); }
POOL "pool"
SUBNET "subnet"
INTERFACE "interface"
+ MAC_SOURCES "mac-sources"
+ RELAY_SUPPLIED_OPTIONS "relay-supplied-options"
LOGGING "Logging"
LOGGERS "loggers"
| subnet6_list
| interfaces_config
| lease_database
+| mac_sources
+| relay_supplied_options
;
preferred_lifetime: PREFERRED_LIFETIME COLON INTEGER {
ctx.stack_.back()->set("type", prf);
};
+mac_sources: MAC_SOURCES {
+ ElementPtr l(new ListElement());
+ ctx.stack_.back()->set("mac-sources", l);
+ ctx.stack_.push_back(l);
+} COLON list {
+ ctx.stack_.pop_back();
+};
+
+relay_supplied_options: RELAY_SUPPLIED_OPTIONS {
+ ElementPtr l(new ListElement());
+ ctx.stack_.back()->set("relay-supplied-options", l);
+ ctx.stack_.push_back(l);
+} COLON list {
+ ctx.stack_.pop_back();
+};
+
// This defines subnet6 as a list of maps.
// "subnet6": [ ... ]
subnet6_list: SUBNET6 COLON LSQUARE_BRACKET {