\"Dhcp6\" { return isc::dhcp::Dhcp6Parser::make_DHCP6(loc); }
\"interfaces-config\" { return isc::dhcp::Dhcp6Parser::make_INTERFACES_CONFIG(loc); }
\"interfaces\" { return isc::dhcp::Dhcp6Parser::make_INTERFACES(loc); }
+
\"lease-database\" { return isc::dhcp::Dhcp6Parser::make_LEASE_DATABASE(loc); }
+\"hosts-database\" { return isc::dhcp::Dhcp6Parser::make_HOSTS_DATABASE(loc); }
+\"type\" { return isc::dhcp::Dhcp6Parser::make_TYPE(loc); }
+\"user\" { return isc::dhcp::Dhcp6Parser::make_USER(loc); }
+\"password\" { return isc::dhcp::Dhcp6Parser::make_PASSWORD(loc); }
+\"host\" { return isc::dhcp::Dhcp6Parser::make_HOST(loc); }
+
\"preferred-lifetime\" { return isc::dhcp::Dhcp6Parser::make_PREFERRED_LIFETIME(loc); }
\"valid-lifetime\" { return isc::dhcp::Dhcp6Parser::make_VALID_LIFETIME(loc); }
\"renew-timer\" { return isc::dhcp::Dhcp6Parser::make_RENEW_TIMER(loc); }
\"pool\" { return isc::dhcp::Dhcp6Parser::make_POOL(loc); }
\"subnet\" { return isc::dhcp::Dhcp6Parser::make_SUBNET(loc); }
\"interface\" { return isc::dhcp::Dhcp6Parser::make_INTERFACE(loc); }
-\"type\" { return isc::dhcp::Dhcp6Parser::make_TYPE(loc); }
+\"id\" { return isc::dhcp::Dhcp6Parser::make_ID(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); }
DHCP6 "Dhcp6"
INTERFACES_CONFIG "interfaces-config"
INTERFACES "interfaces"
+
LEASE_DATABASE "lease-database"
+ HOSTS_DATABASE "hosts-database"
TYPE "type"
+ USER "user"
+ PASSWORD "password"
+ HOST "host"
+
PREFERRED_LIFETIME "preferred-lifetime"
VALID_LIFETIME "valid-lifetime"
RENEW_TIMER "renew-timer"
SUBNET "subnet"
INTERFACE "interface"
+ ID "id"
MAC_SOURCES "mac-sources"
RELAY_SUPPLIED_OPTIONS "relay-supplied-options"
| subnet6_list
| interfaces_config
| lease_database
+| hosts_database
| mac_sources
| relay_supplied_options
| host_reservation_identifiers
ctx.stack_.back()->set("lease-database", i);
ctx.stack_.push_back(i);
}
-COLON LCURLY_BRACKET lease_database_map_params {
+COLON LCURLY_BRACKET database_map_params {
ctx.stack_.pop_back();
} RCURLY_BRACKET;
-lease_database_map_params: lease_database_map_param
-| lease_database_map_params COMMA lease_database_map_param;
+hosts_database: HOSTS_DATABASE {
+ ElementPtr i(new MapElement());
+ ctx.stack_.back()->set("hosts-database", i);
+ ctx.stack_.push_back(i);
+}
+COLON LCURLY_BRACKET database_map_params {
+ ctx.stack_.pop_back();
+} RCURLY_BRACKET;
-lease_database_map_param: lease_database_type;
+database_map_params: lease_database_map_param
+| database_map_params COMMA lease_database_map_param;
-lease_database_type: TYPE COLON STRING {
+lease_database_map_param: type
+| user
+| password
+| host
+| name;
+
+type: TYPE COLON STRING {
ElementPtr prf(new StringElement($3));
ctx.stack_.back()->set("type", prf);
};
+user: USER COLON STRING {
+ ElementPtr user(new StringElement($3));
+ ctx.stack_.back()->set("user", user);
+};
+
+password: PASSWORD COLON STRING {
+ ElementPtr pwd(new StringElement($3));
+ ctx.stack_.back()->set("password", pwd);
+};
+
+host: HOST COLON STRING {
+ ElementPtr h(new StringElement($3));
+ ctx.stack_.back()->set("host", h);
+};
+
+name: NAME COLON STRING {
+ ElementPtr n(new StringElement($3));
+ ctx.stack_.back()->set("name", n);
+};
+
mac_sources: MAC_SOURCES {
ElementPtr l(new ListElement());
ctx.stack_.back()->set("mac-sources", l);
| pd_pools_list
| subnet
| interface
+| id
| client_class
| reservations
;
ElementPtr cls(new StringElement($3)); ctx.stack_.back()->set("client-class", cls);
};
+id: ID COLON INTEGER {
+ ElementPtr id(new IntElement($3)); ctx.stack_.back()->set("id", id);
+
+};
// ---- option-data --------------------------