|
@@ -88,6 +88,7 @@ using namespace std;
|
|
|
EXCLUDED_PREFIX "excluded-prefix"
|
|
|
EXCLUDED_PREFIX_LEN "excluded-prefix-len"
|
|
|
DELEGATED_LEN "delegated-len"
|
|
|
+ USER_CONTEXT "user-context"
|
|
|
|
|
|
SUBNET "subnet"
|
|
|
INTERFACE "interface"
|
|
@@ -194,6 +195,7 @@ using namespace std;
|
|
|
%token <bool> BOOLEAN "boolean"
|
|
|
|
|
|
%type <ElementPtr> value
|
|
|
+%type <ElementPtr> map_value
|
|
|
%type <ElementPtr> duid_type
|
|
|
|
|
|
%printer { yyoutput << $$; } <*>;
|
|
@@ -248,6 +250,8 @@ map2: LCURLY_BRACKET {
|
|
|
// for it.
|
|
|
};
|
|
|
|
|
|
+map_value: map2 { $$ = ctx.stack_.back(); ctx.stack_.pop_back(); };
|
|
|
+
|
|
|
// Assignments rule
|
|
|
map_content: %empty // empty map
|
|
|
| not_empty_map
|
|
@@ -1083,6 +1087,7 @@ pool_params: pool_param
|
|
|
|
|
|
pool_param: pool_entry
|
|
|
| option_data_list
|
|
|
+ | user_context
|
|
|
| unknown_map_entry
|
|
|
;
|
|
|
|
|
@@ -1094,6 +1099,13 @@ pool_entry: POOL {
|
|
|
ctx.leave();
|
|
|
};
|
|
|
|
|
|
+user_context: USER_CONTEXT {
|
|
|
+ ctx.enter(ctx.NO_KEYWORD);
|
|
|
+} COLON map_value {
|
|
|
+ ctx.stack_.back()->set("user-context", $4);
|
|
|
+ ctx.leave();
|
|
|
+};
|
|
|
+
|
|
|
// --- end of pools definition -------------------------------
|
|
|
|
|
|
// --- pd-pools ----------------------------------------------
|
|
@@ -1143,6 +1155,7 @@ pd_pool_param: pd_prefix
|
|
|
| option_data_list
|
|
|
| excluded_prefix
|
|
|
| excluded_prefix_len
|
|
|
+ | user_context
|
|
|
| unknown_map_entry
|
|
|
;
|
|
|
|