-/* Copyright (C) 2016 Internet Systems Consortium, Inc. ("ISC")
+/* Copyright (C) 2016-2017 Internet Systems Consortium, Inc. ("ISC")
This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
}
}
+\"LLT\" {
+ switch(driver.ctx_) {
+ case isc::dhcp::Parser6Context::DUID_TYPE:
+ return isc::dhcp::Dhcp6Parser::make_LLT(driver.loc_);
+ default:
+ return isc::dhcp::Dhcp6Parser::make_STRING("LLT", driver.loc_);
+ }
+}
+
+\"EN\" {
+ switch(driver.ctx_) {
+ case isc::dhcp::Parser6Context::DUID_TYPE:
+ return isc::dhcp::Dhcp6Parser::make_EN(driver.loc_);
+ default:
+ return isc::dhcp::Dhcp6Parser::make_STRING("EN", driver.loc_);
+ }
+}
+
+\"LL\" {
+ switch(driver.ctx_) {
+ case isc::dhcp::Parser6Context::DUID_TYPE:
+ return isc::dhcp::Dhcp6Parser::make_LL(driver.loc_);
+ default:
+ return isc::dhcp::Dhcp6Parser::make_STRING("LL", driver.loc_);
+ }
+}
+
\"identifier\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::SERVER_ID:
-/* Copyright (C) 2016 Internet Systems Consortium, Inc. ("ISC")
+/* Copyright (C) 2016-2017 Internet Systems Consortium, Inc. ("ISC")
This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
EXPIRED_LEASES_PROCESSING "expired-leases-processing"
SERVER_ID "server-id"
+ LLT "LLT"
+ EN "EN"
+ LL "LL"
IDENTIFIER "identifier"
HTYPE "htype"
TIME "time"
%token <bool> BOOLEAN "boolean"
%type <ElementPtr> value
+%type <ElementPtr> duid_type
%printer { yyoutput << $$; } <*>;
| database_map_params COMMA database_map_param
;
-database_map_param: type
+database_map_param: database_type
| user
| password
| host
| unknown_map_entry
;
-type: TYPE {
+database_type: TYPE {
ctx.enter(ctx.NO_KEYWORD);
} COLON STRING {
ElementPtr prf(new StringElement($4, ctx.loc2pos(@4)));
option_def_code: code;
-option_def_type: type;
+option_def_type: TYPE {
+ ctx.enter(ctx.NO_KEYWORD);
+} COLON STRING {
+ ElementPtr prf(new StringElement($4, ctx.loc2pos(@4)));
+ ctx.stack_.back()->set("type", prf);
+ ctx.leave();
+};
option_def_record_types: RECORD_TYPES {
ctx.enter(ctx.NO_KEYWORD);
| server_id_params COMMA server_id_param
;
-server_id_param: type
+server_id_param: server_id_type
| identifier
| time
| htype
| unknown_map_entry
;
+server_id_type: TYPE {
+ ctx.enter(ctx.DUID_TYPE);
+} COLON duid_type {
+ ctx.stack_.back()->set("type", $4);
+ ctx.leave();
+};
+
+duid_type: LLT { $$ = ElementPtr(new StringElement("LLT", ctx.loc2pos(@1))); }
+ | EN { $$ = ElementPtr(new StringElement("EN", ctx.loc2pos(@1))); }
+ | LL { $$ = ElementPtr(new StringElement("LL", ctx.loc2pos(@1))); }
+ ;
+
htype: HTYPE COLON INTEGER {
ElementPtr htype(new IntElement($3, ctx.loc2pos(@3)));
ctx.stack_.back()->set("htype", htype);
-// Copyright (C) 2016 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2016-2017 Internet Systems Consortium, Inc. ("ISC")
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
return ("client-classes");
case SERVER_ID:
return ("server-id");
+ case DUID_TYPE:
+ return ("duid-type");
case CONTROL_SOCKET:
return ("control-socket");
case POOLS:
-// Copyright (C) 2015-2016 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2015-2017 Internet Systems Consortium, Inc. ("ISC")
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
/// Used while parsing Dhcp6/server-id structures.
SERVER_ID,
+ /// Used while parsing Dhcp6/server-id/type structures.
+ DUID_TYPE,
+
/// Used while parsing Dhcp6/control-socket structures.
CONTROL_SOCKET,