110#define AGT_NOT_MODULE1 (const xmlChar *)"notifications"
113#define AGT_NOT_MODULE2 (const xmlChar *)"nc-notifications"
127typedef enum agt_not_subevent_t_ {
143typedef struct agt_not_msg_t_ {
209typedef enum agt_not_filtertyp_t_ {
229typedef enum agt_not_sterr_t_ {
243typedef enum agt_not_push_change_t_ {
256typedef enum agt_not_suspend_reason_t_ {
280typedef enum agt_not_term_reason_t_ {
343 boolean kill_pending);
624 const xmlChar *eventTime);
781 const xmlChar *stream,
918 const xmlChar *stream_filter_name,
921 const xmlChar *stream,
922 const xmlChar *replay_start_time,
923 const xmlChar *stop_time,
968 const xmlChar *stream_filter_name,
971 const xmlChar *stop_time,
1004#ifdef WITH_YANG_PUSH
1029 const xmlChar *selection_filter_ref,
1030 const xmlChar *stop_time,
1058 const xmlChar *selection_filter_ref,
1059 const xmlChar *stop_time,
1116 boolean *subscription_deleted);
1141 const xmlChar *filespec,
1143 boolean *subscription_deleted,
1166 const xmlChar *filespec,
1169 boolean *subscription_deleted);
1227 boolean *subscription_deleted);
1246#ifdef WITH_YANG_PUSH
1283 uint32 eventlog_size,
1284 const xmlChar *description);
1296 const xmlChar *name);
1309 const xmlChar *stream_name,
1404 const xmlChar *stream_name,
1405 boolean all_streams,
1466 const xmlChar *modname,
1467 const xmlChar *stream_name,
1468 boolean all_streams);
1481 const xmlChar *modname);
1549 const xmlChar *modname,
1550 boolean all_streams);
dlq provides general double-linked list and queue support:
void agt_not_suspend_push_subscription(agt_not_subid_t subid, agt_not_suspend_reason_t reason)
Suspend a subscription and stop sending notifications to it.
Definition: agt_not.c:9154
void agt_not_add_key(agt_not_msg_t *notif, val_value_t *val)
Queue the specified value node into the keyQ for the specified notification.
Definition: agt_not.c:6738
status_t agt_not_register_stream_cbfn(const xmlChar *modname, const xmlChar *stream_name, boolean all_streams, agt_not_stream_cbfn_t cbfn, void *cookie)
Register a SIL event-stream callback function.
Definition: agt_not.c:9673
status_t agt_not_create_event_stream(const xmlChar *name, uint32 eventlog_size, const xmlChar *description)
Create an event-stream from a YANG module interface.
Definition: agt_not.c:9412
void agt_not_queue_notification_stream(const xmlChar *stream_name, agt_not_msg_t *notif)
Queue the specified notification in the replay log.
Definition: agt_not.c:7035
status_t agt_not_set_notif_mpid(agt_not_msg_t *msg, const ncx_sm_mpid_t *mpid)
Set the MPID to use for sending the schema-mounted notification.
Definition: agt_not.c:10307
status_t agt_not_establish_subscription(ses_cb_t *scb, const xmlChar *stream_filter_name, const val_value_t *stream_subtree_filter, const val_value_t *stream_xpath_filter, const xmlChar *stream, const xmlChar *replay_start_time, const xmlChar *stop_time, const val_value_t *encoding, agt_not_subid_t *subid, agt_not_sterr_t *errnum)
Create a RFC 8639 stream subscription.
Definition: agt_not.c:8387
agt_not_msg_t * agt_not_new_notification_ex(obj_template_t *eventType, const xmlChar *eventTime)
Malloc and initialize the fields in an agt_not_msg_t Use provided eventTime (extended)
Definition: agt_not.c:6635
status_t agt_not_modify_subscription(ses_cb_t *scb, agt_not_subid_t subid, const xmlChar *stream_filter_name, const val_value_t *stream_subtree_filter, const val_value_t *stream_xpath_filter, const xmlChar *stop_time, agt_not_sterr_t *errnum)
Modify a RFC 8639 stream subscription.
Definition: agt_not.c:8457
status_t agt_not_init2(void)
INIT 2: Initialize the monitoring data structures This must be done after the <running> config is loa...
Definition: agt_not.c:5651
agt_not_msg_t * agt_not_new_notification(obj_template_t *eventType)
Malloc and initialize the fields in an agt_not_msg_t.
Definition: agt_not.c:6611
status_t agt_not_init(void)
INIT 1: Initialize the server notification module data structures.
Definition: agt_not.c:5461
void agt_not_queue_notification(agt_not_msg_t *notif)
Queue the specified notification in the replay log.
Definition: agt_not.c:6770
boolean agt_not_any_unregistered(const xmlChar *modname)
Check if any entries are still unregistered for a subsystem building a register-request.
Definition: agt_not.c:10091
status_t agt_not_delete_all_filters(boolean force)
Delete all existing filter entries.
Definition: agt_not.c:7974
status_t agt_not_setup_push_subscription(ses_cb_t *scb, const xmlChar *selection_filter_ref, const xmlChar *stop_time, const val_value_t *encoding, agt_not_modify_filter_cbfn_t modify_cbfn, agt_not_delete_subscription_cbfn_t delete_cbfn, agt_not_subid_t *subid, agt_not_sterr_t *errnum, boolean *isbinary)
Create a RFC 8641 YANG Push subscription.
Definition: agt_not.c:8638
void agt_not_kill_push_subscription(agt_not_subid_t subid, agt_not_term_reason_t term_reason)
Kill a YANG Push Subscription.
Definition: agt_not.c:9234
status_t agt_not_register_yang_push(agt_not_check_push_cbfn_t cbfn, agt_not_module_removed_cbfn_t mod_cbfn)
Used by YANG Push to check periodic and simulated operational.
Definition: agt_not.c:8882
status_t agt_not_kill_dynamic_subscription(agt_not_subid_t subid)
Terminate any session's RFC 8639 subscription.
Definition: agt_not.c:8600
void agt_not_cleanup_sil_sa(void)
Cleanup the module data structures.
Definition: agt_not.c:5860
void agt_not_remove_module_filters(const ncx_module_t *mod)
Invoke Module Removed Callback.
Definition: agt_not.c:9323
status_t agt_not_modify_push_subscription(ses_id_t sid, agt_not_subid_t cur_subid, const xmlChar *selection_filter_ref, const xmlChar *stop_time, agt_not_sterr_t *errnum)
Modify a RFC 8641 YANG Push subscription.
Definition: agt_not.c:8828
status_t agt_not_delete_dynamic_subscription(ses_id_t sid, agt_not_subid_t subid)
Terminate your own RFC 8639 subscription.
Definition: agt_not.c:8581
status_t agt_not_send_onchange_update(agt_not_subid_t subid, ses_id_t sid, obj_template_t *notif_obj, yang_patch_cb_t *pcb, boolean *subscription_deleted)
Used by YANG Push to send an on-change update to 1 session.
Definition: agt_not.c:9276
boolean agt_not_event_stream_exists(const xmlChar *stream_name)
Check if the specified event stream is configured.
Definition: agt_not.c:9582
void agt_not_remove_subscription(ses_id_t sid)
Remove and expire a subscription with the specified session ID.
Definition: agt_not.c:6590
status_t agt_not_init_restconf_streams(val_value_t *streamsval, obj_template_t *streamobj)
Initialize the monitoring data structures for restconf This must be done after the <running> config i...
Definition: agt_not.c:10562
status_t agt_not_delete_filter(const xmlChar *name, ncx_nmda_filtyp_t nmda_filtyp)
Delete an existing filter entry.
Definition: agt_not.c:7898
void agt_not_cancel_subscription(ses_id_t sid)
Cancel any notification subscription for the specified session.
Definition: agt_not.c:7096
status_t agt_not_init_sil_sa(void)
INIT 1: Initialize the server notification module data structures.
Definition: agt_not.c:5616
status_t agt_not_delete_module_map(const xmlChar *modname)
Delete a module map from a YANG module interface.
Definition: agt_not.c:9550
uint32 agt_not_send_notifications(thd_tcb_t *tcb)
Send notifications (PTHREADS VERSION)
Definition: agt_not.c:6465
status_t agt_not_edit_module_map(const xmlChar *modname, const xmlChar *stream_name, boolean is_create)
Create or modify a module map from a YANG module interface.
Definition: agt_not.c:9492
void agt_not_unregister_stream_cbfn(const xmlChar *modname, agt_not_stream_cbfn_t cbfn)
Unregister a SIL event-stream callback function.
Definition: agt_not.c:9743
obj_template_t * agt_not_get_modified_obj(void)
Get subscription-modified object.
Definition: agt_not.c:9356
void agt_not_free_notification(agt_not_msg_t *notif)
Scrub the memory in an agt_not_template_t by freeing all the sub-fields and then freeing the entire s...
Definition: agt_not.c:6660
status_t agt_not_delete_event_stream(ses_cb_t *scb, const xmlChar *name)
Delete an event-stream from a YANG module interface.
Definition: agt_not.c:9450
status_t agt_not_init_yangpush(obj_template_t *streams_obj)
Init the yang-push related streams and data structures.
Definition: agt_not.c:7397
status_t agt_not_register_stream_cbfn_subsys(const xmlChar *subsys_id, const xmlChar *modname, const xmlChar *stream_name, boolean all_streams)
Register a SIL event-stream callback function.
Definition: agt_not.c:9835
status_t agt_not_send_periodic_update(agt_not_subid_t subid, ses_id_t sid, obj_template_t *notif_obj, rpc_msg_t *msg, boolean *subscription_deleted)
Used by YANG Push to send a periodic update to 1 session.
Definition: agt_not.c:8963
void agt_not_cleanup(void)
Cleanup the module data structures.
Definition: agt_not.c:5789
status_t agt_not_go_active(void)
Enable active notification subscriptions.
Definition: agt_not.c:7324
status_t agt_not_get_simop_update(agt_not_subid_t subid, ses_id_t sid, const xmlChar *filespec, rpc_msg_t *msg, boolean *subscription_deleted, uint32 *checksum, uint32 *bytecnt)
Used by YANG Push to get the candidate Simuated Operational On-Change subscription.
Definition: agt_not.c:9016
void agt_not_add_to_payload(agt_not_msg_t *notif, val_value_t *val)
Queue the specified value node into the payloadQ for the specified notification.
Definition: agt_not.c:6713
void agt_not_unregister_stream_cbfn_subsys(const xmlChar *subsys_id, const xmlChar *modname)
Unregister a SIL event-stream callback function.
Definition: agt_not.c:9906
status_t agt_not_send_push_notif(agt_not_subid_t subid, agt_not_msg_t *notif)
Send the notification directly to the specified push subscription ID.
Definition: agt_not.c:9378
status_t agt_not_set_filter(const xmlChar *name, ncx_nmda_filtyp_t nmda_filtyp, agt_not_filtertyp_t filtyp, const val_value_t *filval)
Add or Modify a filter entry.
Definition: agt_not.c:7700
status_t agt_not_clone_filter(ncx_nmda_filtyp_t nmda_filtyp, const xmlChar *name, agt_not_filtertyp_t *filtyp, val_value_t **filval)
Find a filter entry and clone it.
Definition: agt_not.c:7740
status_t agt_not_start_subscription(ses_cb_t *scb, const xmlChar *stream, xmlChar *startTime, xmlChar *stopTime, boolean futurestop, op_filtertyp_t filtertype, val_value_t *filterval, val_value_t *selectval)
Malloc and fill in a new subscription control block.
Definition: agt_not.c:7278
void agt_not_subsys_gone(const xmlChar *subsys_id)
Unload any remote stream callbacks when a subsystem session is lost and subsys-gone event handled.
Definition: agt_not.c:10133
boolean agt_not_is_replay_event(const obj_template_t *notifobj)
Check if the specified notfication is the replayComplete or notificationComplete notification events.
Definition: agt_not.c:7060
status_t agt_not_send_simop_update(agt_not_subid_t subid, ses_id_t sid, const xmlChar *filespec, rpc_msg_t *msg, obj_template_t *notif_obj, boolean *subscription_deleted)
Use the file contents to send an Simulated Operational on-change update to the client session.
Definition: agt_not.c:9109
void agt_not_resume_push_subscription(agt_not_subid_t subid)
Resume a YANG Push Subscription.
Definition: agt_not.c:9190
status_t agt_not_stream_callback_subsys(const xmlChar *stream_name, agt_not_subevent_t subevent, const xmlChar *modname, boolean all_streams)
Invoke a stream callback function on the SIL-SA subsystem.
Definition: agt_not.c:10190
void agt_not_unload_module(const xmlChar *modname)
Unload any remote stream callbacks when a module is unloaded.
Definition: agt_not.c:10255
status_t agt_not_register_notif_objs(obj_template_t *replay_completed, obj_template_t *subscription_completed, obj_template_t *subscription_modified, obj_template_t *subscription_resumed, obj_template_t *subscription_started, obj_template_t *subscription_suspended, obj_template_t *subscription_terminated)
Register Notification Objects.
Definition: agt_not.c:8919
status_t agt_not_clear_event_stream_log(const xmlChar *stream_name)
Remove all the stored notifications in the eventlog for the specified event stream.
Definition: agt_not.c:9612
void agt_not_go_standby(void)
Exit active notification subscription mode and disable notifications.
Definition: agt_not.c:7360
status_t agt_not_check_register_add(const xmlChar *modname, val_value_t *request_val)
Check if a "<stream-callback>" container needs to be added to the "<register>" list entry.
Definition: agt_not.c:9978
agt_not_term_reason_t
Terminate subscription reasons.
Definition: agt_not.h:280
void(* agt_not_check_push_cbfn_t)(ses_id_t sid)
Check Push Callback.
Definition: agt_not.h:356
agt_not_sterr_t
stream error parameter numbers used internally for error reporting
Definition: agt_not.h:229
void(* agt_not_modify_filter_cbfn_t)(ses_cb_t *scb, agt_not_subid_t subid, agt_not_filtertyp_t filtyp, const val_value_t *new_filter)
Modify Filter Callback.
Definition: agt_not.h:322
agt_not_filtertyp_t
server supported filter types
Definition: agt_not.h:209
agt_not_push_change_t
PUSH change type enums used by agt_val anf agt_push.
Definition: agt_not.h:243
agt_not_suspend_reason_t
Suspend subscription reasons Used internally instead of finding YANG identities.
Definition: agt_not.h:256
void(* agt_not_delete_subscription_cbfn_t)(agt_not_subid_t subid, boolean kill_pending)
Delete Subscription Callback.
Definition: agt_not.h:342
void(* agt_not_module_removed_cbfn_t)(const ncx_module_t *mod)
Remove Module Callback.
Definition: agt_not.h:368
uint32 agt_not_subid_t
subscription-id parameter
Definition: agt_not.h:123
agt_not_subevent_t
event-stream sub-event types
Definition: agt_not.h:127
void(* agt_not_stream_cbfn_t)(const xmlChar *event_stream, agt_not_subevent_t subevent, void *cookie)
Event Stream Callback.
Definition: agt_not.h:434
@ AGT_NOT_TERM_SUSPENSION_TIMEOUT
suspension timeout
Definition: agt_not.h:294
@ AGT_NOT_TERM_FILTER_UNAVAILABLE
filter unavailable
Definition: agt_not.h:285
@ AGT_NOT_TERM_STREAM_UNAVAILABLE
stream unavailable
Definition: agt_not.h:291
@ AGT_NOT_TERM_DATASTORE_NOT_SUBSCRIBABLE
datastore not subscribable
Definition: agt_not.h:297
@ AGT_NOT_TERM_NO_SUCH_SUBSCRIPTION
no such subscription
Definition: agt_not.h:288
@ AGT_NOT_TERM_NONE
not set
Definition: agt_not.h:282
@ AGT_NOT_TERM_UNCHANGING_SELECTION
unchanging selection
Definition: agt_not.h:300
@ AGT_NOT_STERR_XPATH_FILTER
xpath-filter
Definition: agt_not.h:233
@ AGT_NOT_STERR_STREAM
stream name
Definition: agt_not.h:234
@ AGT_NOT_STERR_SUBTREE_FILTER
subtree-filter
Definition: agt_not.h:232
@ AGT_NOT_STERR_NONE
not set
Definition: agt_not.h:230
@ AGT_NOT_STERR_START_TIME
start-time
Definition: agt_not.h:235
@ AGT_NOT_STERR_ID
modify only
Definition: agt_not.h:238
@ AGT_NOT_STERR_FILTER_REF
filter-ref
Definition: agt_not.h:231
@ AGT_NOT_STERR_ENCODING
encoding
Definition: agt_not.h:237
@ AGT_NOT_STERR_STOP_TIME
stop-time
Definition: agt_not.h:236
@ AGT_NOT_FILTER_SUBTREE
subtree filter
Definition: agt_not.h:219
@ AGT_NOT_FILTER_XPATH
XPath filter.
Definition: agt_not.h:222
@ AGT_NOT_FILTER_NONE
not set
Definition: agt_not.h:210
@ AGT_NOT_FILTER_EMPTY
the filters configuration allows an empty filter to exist that just has a name in it; treat this an v...
Definition: agt_not.h:216
@ AGT_NOT_PUSH_CHANGE_REPLACE
replace edit
Definition: agt_not.h:249
@ AGT_NOT_PUSH_CHANGE_DELETE
delete edit
Definition: agt_not.h:246
@ AGT_NOT_PUSH_CHANGE_INSERT
insert edit
Definition: agt_not.h:247
@ AGT_NOT_PUSH_CHANGE_CREATE
create edit
Definition: agt_not.h:245
@ AGT_NOT_PUSH_CHANGE_NONE
not set
Definition: agt_not.h:244
@ AGT_NOT_PUSH_CHANGE_MOVE
move edit
Definition: agt_not.h:248
@ AGT_NOT_SUSPEND_UNSUPPORTABLE_VOLUME
unsupported volume
Definition: agt_not.h:264
@ AGT_NOT_SUSPEND_NONE
not set
Definition: agt_not.h:258
@ AGT_NOT_SUSPEND_UPDATE_TOO_BIG
update too big
Definition: agt_not.h:270
@ AGT_NOT_SUSPEND_PERIOD_UNSUPPORTED
period unsupported
Definition: agt_not.h:267
@ AGT_NOT_SUSPEND_INSUFFICIENT_RESOURCES
insufficient resources
Definition: agt_not.h:261
@ AGT_NOT_SUSPEND_SYNC_TOO_BIG
sync too big
Definition: agt_not.h:273
@ AGT_NOT_SUBEV_INACTIVE
inactive sub-event
Definition: agt_not.h:135
@ AGT_NOT_SUBEV_ACTIVE
active sub-event
Definition: agt_not.h:132
@ AGT_NOT_SUBEV_NONE
not set
Definition: agt_not.h:129
op_filtertyp_t
NETCONF protocol operation PDU filter types.
Definition: op.h:114
status_t
global error return code
Definition: status_enum.h:219
uint32 ses_id_t
Session ID.
Definition: ses.h:335
#define TSTAMP_MIN_SIZE
normal minimum buffer size for a tstamp buffer
Definition: tstamp.h:71
ncx_nmda_filtyp_t
internal enumerations for NMDA filter types used in the /filters container NCX_NMDA_FILTYP_STREAM == ...
Definition: ncxtypes.h:1695
YANG module data structures Many internal representations of YANG module constructs.
NETCONF Session Common definitions module.
Global error messages for status code enumerations.
one notification message that will be sent to all subscriptions in the stream and kept in the replay ...
Definition: agt_not.h:143
boolean usemsgid
internal field to use or change msgid
Definition: agt_not.h:183
dlq_hdr_t qhdr
queue header
Definition: agt_not.h:145
status_t res
internal status for making the message to prevent a malformed notification message from being sent to...
Definition: agt_not.h:189
uint32 msgid
message ID assigned to this notification
Definition: agt_not.h:168
val_value_t * msg
the /notification element
Definition: agt_not.h:177
obj_template_t * notobj
notification event object for this message
Definition: agt_not.h:148
val_value_t * event
backptr inside msg for filter for top-level notifications
Definition: agt_not.h:180
val_value_t * treetop
internal backptr to the top of the instance hierarchy if this is a nested notification; YANG 1....
Definition: agt_not.h:196
dlq_hdr_t keyQ
notification ancestor keyQ if this is a YANG 1.1 nested notification.
Definition: agt_not.h:162
ncx_sm_mpid_t * sm_mpid
clone of the MPID to use if this is a schema-mounted notification.
Definition: agt_not.h:203
representation of one module or submodule during and after parsing
Definition: ncxtypes.h:1138
Moint Point Instance This struct lives in a val_value_t.val_extra struct.
Definition: ncxtypes.h:1815
One YANG data-def-stmt.
Definition: obj.h:1232
NETCONF Server and Client RPC Request/Reply Message Header.
Definition: rpc.h:185
Session Control Block.
Definition: ses.h:573
Thread control block (TCB)
Definition: thd.h:175
one value to match one type
Definition: val.h:912
One YANG Patch Request.
Definition: yang_patch.h:155
Value Node Basic Support.