Parcourir la source

[5017] 4o6-interface-id support implemented

Tomek Mrugalski il y a 8 ans
Parent
commit
9fccdbf54c
2 fichiers modifiés avec 21 ajouts et 0 suppressions
  1. 9 0
      src/bin/dhcp4/dhcp4_lexer.ll
  2. 12 0
      src/bin/dhcp4/dhcp4_parser.yy

+ 9 - 0
src/bin/dhcp4/dhcp4_lexer.ll

@@ -842,6 +842,15 @@ ControlCharacterFill            [^"\\]|\\{JSONEscapeSequence}
     }
 }
 
+\"4o6-interface-id\" {
+    switch(driver.ctx_) {
+    case isc::dhcp::Parser4Context::SUBNET4:
+        return isc::dhcp::Dhcp4Parser::make_SUBNET_4O6_INTERFACE_ID(driver.loc_);
+    default:
+        return isc::dhcp::Dhcp4Parser::make_STRING("4o6-interface-id", driver.loc_);
+    }
+}
+
 \"4o6-subnet\" {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:

+ 12 - 0
src/bin/dhcp4/dhcp4_parser.yy

@@ -75,6 +75,7 @@ using namespace std;
   DECLINE_PROBATION_PERIOD "decline-probation-period"
   SUBNET4 "subnet4"
   SUBNET_4O6_INTERFACE "4o6-interface"
+  SUBNET_4O6_INTERFACE_ID "4o6-interface-id"
   SUBNET_4O6_SUBNET "4o6-subnet"
   OPTION_DEF "option-def"
   OPTION_DATA "option-data"
@@ -726,7 +727,10 @@ subnet4_param: valid_lifetime
              | reservations
              | reservation_mode
              | relay
+             | match_client_id
+             | next_server
              | subnet_4o6_interface
+             | subnet_4o6_interface_id
              | subnet_4o6_subnet
              | unknown_map_entry
              ;
@@ -747,6 +751,14 @@ subnet_4o6_interface: SUBNET_4O6_INTERFACE {
     ctx.leave();
 };
 
+subnet_4o6_interface_id: SUBNET_4O6_INTERFACE_ID {
+    ctx.enter(ctx.NO_KEYWORD);
+} COLON STRING {
+    ElementPtr iface(new StringElement($4, ctx.loc2pos(@4)));
+    ctx.stack_.back()->set("4o6-interface-id", iface);
+    ctx.leave();
+};
+
 subnet_4o6_subnet: SUBNET_4O6_SUBNET {
     ctx.enter(ctx.NO_KEYWORD);
 } COLON STRING {