diff options
| author | Christian Hopps <chopps@labn.net> | 2025-01-06 07:39:39 -0500 | 
|---|---|---|
| committer | Christian Hopps <chopps@labn.net> | 2025-01-07 05:34:06 -0500 | 
| commit | 30777991c0771d80347c3842a286582260e4598c (patch) | |
| tree | 7caab65ef5a543298e3356e817cfe9099b44d4dc /lib | |
| parent | 86fdf0198cba52a425fcb242872cf9f39f652a24 (diff) | |
lib: add NOTIF message ops (notification, replace, delete, patch)
- needed for supporting backend datastore notifications
Signed-off-by: Christian Hopps <chopps@labn.net>
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/mgmt_be_client.h | 16 | ||||
| -rw-r--r-- | lib/mgmt_msg_native.h | 13 | 
2 files changed, 26 insertions, 3 deletions
diff --git a/lib/mgmt_be_client.h b/lib/mgmt_be_client.h index 6ed8c2a39f..a3e3896d52 100644 --- a/lib/mgmt_be_client.h +++ b/lib/mgmt_be_client.h @@ -112,6 +112,22 @@ extern struct mgmt_be_client *  mgmt_be_client_create(const char *name, struct mgmt_be_client_cbs *cbs,  		      uintptr_t user_data, struct event_loop *event_loop); + +/** + * mgmt_be_send_ds_delete_notification() - Send a datastore delete notification. + */ +extern int mgmt_be_send_ds_delete_notification(const char *path); + +/** + * mgmt_be_send_ds_patch_notification() - Send a datastore YANG patch notification. + */ +extern int mgmt_be_send_ds_patch_notification(const char *path, const struct lyd_node *tree); + +/** + * mgmt_be_send_ds_replace_notification() - Send a datastore replace notification. + */ +extern int mgmt_be_send_ds_replace_notification(const char *path, const struct lyd_node *tree); +  /*   * Initialize library vty (adds debug support).   * diff --git a/lib/mgmt_msg_native.h b/lib/mgmt_msg_native.h index 587a002801..4076977a22 100644 --- a/lib/mgmt_msg_native.h +++ b/lib/mgmt_msg_native.h @@ -323,22 +323,29 @@ _Static_assert(sizeof(struct mgmt_msg_get_data) ==  		       offsetof(struct mgmt_msg_get_data, xpath),  	       "Size mismatch"); + +#define NOTIFY_OP_NOTIFICATION 0 +#define NOTIFY_OP_DS_REPLACE   1 +#define NOTIFY_OP_DS_DELETE    2 +#define NOTIFY_OP_DS_PATCH     3 +  /**   * struct mgmt_msg_notify_data - Message carrying notification data.   *   * @result_type: ``LYD_FORMAT`` for format of the @result value.   * @data: The xpath string of the notification followed by the tree data in   *        @result_type format. + * @op: notify operation type.   */  struct mgmt_msg_notify_data {  	struct mgmt_msg_header;  	uint8_t result_type; -	uint8_t resv2[7]; +	uint8_t op; +	uint8_t resv2[6];  	alignas(8) char data[];  }; -_Static_assert(sizeof(struct mgmt_msg_notify_data) == -		       offsetof(struct mgmt_msg_notify_data, data), +_Static_assert(sizeof(struct mgmt_msg_notify_data) == offsetof(struct mgmt_msg_notify_data, data),  	       "Size mismatch");  #define EDIT_FLAG_IMPLICIT_LOCK	  0x01  | 
