Browse Source

[5014] mac-sources, relay-supplied-options added

Tomek Mrugalski 8 years ago
parent
commit
1bfa0d8f25
2 changed files with 22 additions and 0 deletions
  1. 2 0
      src/bin/dhcp6/dhcp6_lexer.ll
  2. 20 0
      src/bin/dhcp6/dhcp6_parser.yy

+ 2 - 0
src/bin/dhcp6/dhcp6_lexer.ll

@@ -130,6 +130,8 @@ JSONString                              \"{JSONStringCharacter}*\"
 \"interface\" { return  isc::dhcp::Dhcp6Parser::make_INTERFACE(loc); }
 \"interface\" { return  isc::dhcp::Dhcp6Parser::make_INTERFACE(loc); }
 \"type\" { return isc::dhcp::Dhcp6Parser::make_TYPE(loc); }
 \"type\" { return isc::dhcp::Dhcp6Parser::make_TYPE(loc); }
 \"code\" { return isc::dhcp::Dhcp6Parser::make_CODE(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); }
 \"Logging\" { return isc::dhcp::Dhcp6Parser::make_LOGGING(loc); }
 \"loggers\" { return isc::dhcp::Dhcp6Parser::make_LOGGERS(loc); }
 \"loggers\" { return isc::dhcp::Dhcp6Parser::make_LOGGERS(loc); }

+ 20 - 0
src/bin/dhcp6/dhcp6_parser.yy

@@ -66,6 +66,8 @@ using namespace std;
   POOL "pool"
   POOL "pool"
   SUBNET "subnet"
   SUBNET "subnet"
   INTERFACE "interface"
   INTERFACE "interface"
+  MAC_SOURCES "mac-sources"
+  RELAY_SUPPLIED_OPTIONS "relay-supplied-options"
 
 
   LOGGING "Logging"
   LOGGING "Logging"
   LOGGERS "loggers"
   LOGGERS "loggers"
@@ -196,6 +198,8 @@ global_param
 | subnet6_list
 | subnet6_list
 | interfaces_config
 | interfaces_config
 | lease_database
 | lease_database
+| mac_sources
+| relay_supplied_options
 ;
 ;
 
 
 preferred_lifetime: PREFERRED_LIFETIME COLON INTEGER {
 preferred_lifetime: PREFERRED_LIFETIME COLON INTEGER {
@@ -253,6 +257,22 @@ lease_database_type: TYPE COLON STRING {
     ctx.stack_.back()->set("type", prf);
     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.
 // This defines subnet6 as a list of maps.
 // "subnet6": [ ... ]
 // "subnet6": [ ... ]
 subnet6_list: SUBNET6 COLON LSQUARE_BRACKET {
 subnet6_list: SUBNET6 COLON LSQUARE_BRACKET {