* Notification event streams enhancements

* Yang 1.1 notification support
  * Event stream discovery support according to RFC 5277 Sec 3.2.5.1 (netconf) and RFC 8040 (restconf)
This commit is contained in:
Olof hagsand 2018-09-18 22:49:29 +02:00
parent f37fdb954f
commit 0631be19cb
16 changed files with 502 additions and 34 deletions

View file

@ -485,6 +485,7 @@ body_stmt : extension_stmt { clicon_debug(2,"body-stmt -> extension-st
| data_def_stmt { clicon_debug(2,"body-stmt -> data-def-stmt");}
| augment_stmt { clicon_debug(2,"body-stmt -> augment-stmt");}
| rpc_stmt { clicon_debug(2,"body-stmt -> rpc-stmt");}
| notification_stmt { clicon_debug(2,"body-stmt -> notification-stmt");}
;
data_def_stmt : container_stmt { clicon_debug(2,"data-def-stmt -> container-stmt");}
@ -521,7 +522,8 @@ container_substmt : when_stmt { clicon_debug(2,"container-substmt -> when-
| reference_stmt { clicon_debug(2,"container-substmt -> reference-stmt"); }
| typedef_stmt { clicon_debug(2,"container-substmt -> typedef-stmt"); }
| grouping_stmt { clicon_debug(2,"container-substmt -> grouping-stmt"); }
| data_def_stmt { clicon_debug(2,"container-substmt -> data-def-stmt");}
| data_def_stmt { clicon_debug(2,"container-substmt -> data-def-stmt");}
| notification_stmt { clicon_debug(2,"container-substmt -> notification-stmt");}
| unknown_stmt { clicon_debug(2,"container-substmt -> unknown-stmt");}
| { clicon_debug(2,"container-substmt ->");}
;
@ -619,6 +621,7 @@ list_substmt : when_stmt { clicon_debug(2,"list-substmt -> when-stmt
| typedef_stmt { clicon_debug(2,"list-substmt -> typedef-stmt"); }
| grouping_stmt { clicon_debug(2,"list-substmt -> grouping-stmt"); }
| data_def_stmt { clicon_debug(2,"list-substmt -> data-def-stmt"); }
| notification_stmt { clicon_debug(2,"list-substmt -> notification-stmt"); }
| unknown_stmt { clicon_debug(2,"list-substmt -> unknown-stmt");}
| { clicon_debug(2,"list-substmt -> "); }
;
@ -792,7 +795,8 @@ augment_substmt : when_stmt { clicon_debug(2,"augment-substmt -> when-s
| description_stmt { clicon_debug(2,"augment-substmt -> description-stmt"); }
| reference_stmt { clicon_debug(2,"augment-substmt -> reference-stmt"); }
| data_def_stmt { clicon_debug(2,"augment-substmt -> data-def-stmt"); }
| case_stmt { clicon_debug(2,"augment-substmt -> case-stmt");}
| case_stmt { clicon_debug(2,"augment-substmt -> case-stmt");}
| notification_stmt { clicon_debug(2,"augment-substmt -> notification-stmt");}
| { clicon_debug(2,"augment-substmt -> "); }
;
@ -875,6 +879,34 @@ output_stmt : K_OUTPUT /* XXX reuse input-substatements since they are same */
;
/* notification */
notification_stmt : K_NOTIFICATION id_arg_str ';'
{ if (ysp_add(_yy, Y_NOTIFICATION, $2, NULL) == NULL) _YYERROR("46");
clicon_debug(2,"notification-stmt -> NOTIFICATION id-arg-str ;"); }
| K_NOTIFICATION id_arg_str
{ if (ysp_add_push(_yy, Y_NOTIFICATION, $2) == NULL) _YYERROR("47"); }
'{' notification_substmts '}'
{ if (ystack_pop(_yy) < 0) _YYERROR("48");
clicon_debug(2,"notification-stmt -> NOTIFICATION id-arg-str { notification-substmts }"); }
;
notification_substmts : notification_substmts notification_substmt
{ clicon_debug(2,"notification-substmts -> notification-substmts notification-substmt"); }
| notification_substmt
{ clicon_debug(2,"notification-substmts -> notification-substmt"); }
;
notification_substmt : if_feature_stmt { clicon_debug(2,"notification-substmt -> if-feature-stmt"); }
| must_stmt { clicon_debug(2,"notification-substmt -> must-stmt"); }
| status_stmt { clicon_debug(2,"notification-substmt -> status-stmt"); }
| description_stmt { clicon_debug(2,"notification-substmt -> description-stmt"); }
| reference_stmt { clicon_debug(2,"notification-substmt -> reference-stmt"); }
| typedef_stmt { clicon_debug(2,"notification-substmt -> typedef-stmt"); }
| grouping_stmt { clicon_debug(2,"notification-substmt -> grouping-stmt"); }
| data_def_stmt { clicon_debug(2,"notification-substmt -> data-def-stmt"); }
| { clicon_debug(2,"notification-substmt -> "); }
;
/* Typedef */
typedef_stmt : K_TYPEDEF id_arg_str
{ if (ysp_add_push(_yy, Y_TYPEDEF, $2) == NULL) _YYERROR("46"); }
@ -964,6 +996,7 @@ grouping_substmt : status_stmt { clicon_debug(2,"grouping-substmt -> st
| typedef_stmt { clicon_debug(2,"grouping-substmt -> typedef-stmt"); }
| grouping_stmt { clicon_debug(2,"grouping-substmt -> grouping-stmt"); }
| data_def_stmt { clicon_debug(2,"grouping-substmt -> data-def-stmt"); }
| notification_stmt { clicon_debug(2,"grouping-substmt -> notification-stmt"); }
| { clicon_debug(2,"grouping-substmt -> "); }
;