38 #include <xmlstring.h> 110 #define AGT_NOT_MODULE1 (const xmlChar *)"notifications" 113 #define AGT_NOT_MODULE2 (const xmlChar *)"nc-notifications" 127 typedef enum agt_not_subevent_t_ {
143 typedef struct agt_not_msg_t_ {
202 typedef enum agt_not_filtertyp_t_ {
222 typedef enum agt_not_sterr_t_ {
236 typedef enum agt_not_push_change_t_ {
249 typedef enum agt_not_suspend_reason_t_ {
273 typedef enum agt_not_term_reason_t_ {
316 agt_not_subid_t subid,
317 agt_not_filtertyp_t filtyp,
336 boolean kill_pending);
428 agt_not_subevent_t subevent,
614 const xmlChar *eventTime);
771 const xmlChar *stream,
801 #ifdef WITH_YANG_PUSH 810 #endif // WITH_YANG_PUSH 825 agt_not_filtertyp_t filtyp,
846 agt_not_filtertyp_t *filtyp,
906 const xmlChar *stream_filter_name,
909 const xmlChar *stream,
910 const xmlChar *replay_start_time,
911 const xmlChar *stop_time,
913 agt_not_subid_t *subid,
914 agt_not_sterr_t *errnum);
955 agt_not_subid_t subid,
956 const xmlChar *stream_filter_name,
959 const xmlChar *stop_time,
960 agt_not_sterr_t *errnum);
976 agt_not_subid_t subid);
992 #ifdef WITH_YANG_PUSH 1015 const xmlChar *selection_filter_ref,
1016 const xmlChar *stop_time,
1020 agt_not_subid_t *subid,
1021 agt_not_sterr_t *errnum);
1042 agt_not_subid_t cur_subid,
1043 const xmlChar *selection_filter_ref,
1044 const xmlChar *stop_time,
1045 agt_not_sterr_t *errnum);
1101 boolean *subscription_deleted);
1126 const xmlChar *filespec,
1128 boolean *subscription_deleted,
1151 const xmlChar *filespec,
1154 boolean *subscription_deleted);
1167 agt_not_suspend_reason_t reason);
1194 agt_not_term_reason_t term_reason);
1212 boolean *subscription_deleted);
1215 #endif // WITH_YANG_PUSH 1231 #ifdef WITH_YANG_PUSH 1254 #endif // WITH_YANG_PUSH 1266 uint32 eventlog_size);
1278 const xmlChar *name);
1291 const xmlChar *stream_name,
1386 const xmlChar *stream_name,
1387 boolean all_streams,
1410 #ifdef WITH_YCONTROL 1448 const xmlChar *modname,
1449 const xmlChar *stream_name,
1450 boolean all_streams);
1463 const xmlChar *modname);
1530 agt_not_subevent_t subevent,
1531 const xmlChar *modname,
1532 boolean all_streams);
1535 #endif // WITH_YCONTROL active sub-event
Definition: agt_not.h:132
replace edit
Definition: agt_not.h:242
agt_not_suspend_reason_t
Suspend subscription reasons Used internally instead of finding YANG identities.
Definition: agt_not.h:249
not set
Definition: agt_not.h:237
boolean agt_not_event_stream_exists(const xmlChar *stream_name)
Check if the specified event stream is configured.
Definition: agt_not.c:8889
ncx_nmda_filtyp_t
internal enumerations for NMDA filter types used in the /filters container NCX_NMDA_FILTYP_STREAM == ...
Definition: ncxtypes.h:1554
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:8203
dlq provides general double-linked list and queue support:
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:6059
not set
Definition: agt_not.h:129
the filters configuration allows an empty filter to exist that just has a name in it; treat this an v...
Definition: agt_not.h:209
agt_not_term_reason_t
Terminate subscription reasons.
Definition: agt_not.h:273
void agt_not_unload_module(const xmlChar *modname)
Unload any remote stream callbacks when a module is unloaded.
Definition: agt_not.c:9553
move edit
Definition: agt_not.h:241
encoding
Definition: agt_not.h:230
op_filtertyp_t
NETCONF protocol operation PDU filter types.
Definition: op.h:114
NETCONF Server and Client RPC Request/Reply Message Header.
Definition: rpc.h:181
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:6153
not set
Definition: agt_not.h:275
XPath filter.
Definition: agt_not.h:215
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:5060
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:8979
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)
Create a RFC 8641 YANG Push subscription.
Definition: agt_not.c:7969
obj_template_t * agt_not_get_modified_obj(void)
Get subscription-modified object.
Definition: agt_not.c:8676
void(* agt_not_check_push_cbfn_t)(ses_id_t sid)
Check Push Callback.
Definition: agt_not.h:349
One YANG data-def-stmt.
Definition: obj.h:1140
obj_template_t * notobj
notification event object for this message
Definition: agt_not.h:148
NETCONF Session Common definitions module.
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:8276
agt_not_subevent_t
event-stream sub-event types
Definition: agt_not.h:127
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:8801
subtree filter
Definition: agt_not.h:212
datastore not subscribable
Definition: agt_not.h:290
representation of one module or submodule during and after parsing
Definition: ncxtypes.h:1052
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:9139
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:9392
uint32 ses_id_t
Session ID.
Definition: ses.h:306
filter-ref
Definition: agt_not.h:224
one notification message that will be sent to all subscriptions in the stream and kept in the replay ...
Definition: agt_not.h:143
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:8590
no such subscription
Definition: agt_not.h:281
agt_not_push_change_t
PUSH change type enums used by agt_val anf agt_push.
Definition: agt_not.h:236
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:7913
status_t agt_not_kill_dynamic_subscription(agt_not_subid_t subid)
Terminate any session's RFC 8639 subscription.
Definition: agt_not.c:7932
Value Node Basic Support.
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:8149
sync too big
Definition: agt_not.h:266
void agt_not_go_active(void)
Enable active notification subscriptions.
Definition: agt_not.c:6705
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:6102
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:7794
Thread control block (TCB)
Definition: thd.h:176
void(* agt_not_stream_cbfn_t)(const xmlChar *event_stream, agt_not_subevent_t subevent, void *cookie)
Event Stream Callback.
Definition: agt_not.h:427
period unsupported
Definition: agt_not.h:260
status_t agt_not_delete_all_filters(boolean force)
Delete all existing filter entries.
Definition: agt_not.c:7322
filter unavailable
Definition: agt_not.h:278
void agt_not_remove_subscription(ses_id_t sid)
Remove and expire a subscription with the specified session ID.
Definition: agt_not.c:6038
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:9281
agt_not_sterr_t
stream error parameter numbers used internally for error reporting
Definition: agt_not.h:222
YANG module data structures Many internal representations of YANG module constructs.
One YANG Patch Request.
Definition: yang_patch.h:155
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:8338
void agt_not_cleanup(void)
Cleanup the module data structures.
Definition: agt_not.c:5198
status_t res
internal status for making the message to prevent a malformed notification message from being sent to...
Definition: agt_not.h:189
status_t agt_not_init(void)
INIT 1: Initialize the server notification module data structures.
Definition: agt_not.c:4876
agt_not_msg_t * agt_not_new_notification_ex(obj_template_t *eventType, const xmlChar *eventTime)
@ brief Malloc and initialize the fields in an agt_not_msg_t Use provided eventTime (extended) ...
Definition: agt_not.c:6080
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:7089
status_t agt_not_init_yangpush(obj_template_t *streams_obj)
Init the yang-push related streams and data structures.
Definition: agt_not.c:6756
create edit
Definition: agt_not.h:238
unchanging selection
Definition: agt_not.h:293
xpath-filter
Definition: agt_not.h:226
void agt_not_clean_eventlog(void)
Remove any delivered notifications when the replay buffer size is set to zero.
Definition: agt_not.c:6018
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:9434
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:7051
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:8236
one value to match one type
Definition: val.h:870
start-time
Definition: agt_not.h:228
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:6435
#define TSTAMP_MIN_SIZE
normal minimum buffer size for a tstamp buffer
Definition: tstamp.h:67
subtree-filter
Definition: agt_not.h:225
Session Control Block.
Definition: ses.h:542
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:6671
void agt_not_remove_module_filters(const ncx_module_t *mod)
Invoke Module Removed Callback.
Definition: agt_not.c:8643
status_t
global error return code
Definition: status_enum.h:186
void agt_not_cleanup_sil_sa(void)
Cleanup the module data structures.
Definition: agt_not.c:5269
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
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:6460
void agt_not_queue_notification(agt_not_msg_t *notif)
Queue the specified notification in the replay log.
Definition: agt_not.c:6214
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:8468
uint32 agt_not_subid_t
subscription-id parameter
Definition: agt_not.h:123
void agt_not_cancel_subscription(ses_id_t sid)
Cancel any notification subscription for the specified session.
Definition: agt_not.c:6491
Global error messages for status code enumerations.
stream name
Definition: agt_not.h:227
status_t agt_not_init_sil_sa(void)
INIT 1: Initialize the server notification module data structures.
Definition: agt_not.c:5029
inactive sub-event
Definition: agt_not.h:135
update too big
Definition: agt_not.h:263
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:8422
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:315
status_t agt_not_create_event_stream(const xmlChar *name, uint32 eventlog_size)
Create an event-stream from a YANG module interface.
Definition: agt_not.c:8727
status_t agt_not_delete_filter(const xmlChar *name, ncx_nmda_filtyp_t nmda_filtyp)
Delete an existing filter entry.
Definition: agt_not.c:7248
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:8698
unsupported volume
Definition: agt_not.h:257
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:8917
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:9491
stream unavailable
Definition: agt_not.h:284
boolean usemsgid
internal field to use or change msgid
Definition: agt_not.h:183
val_value_t * msg
the /notification element
Definition: agt_not.h:177
status_t agt_not_delete_module_map(const xmlChar *modname)
Delete a module map from a YANG module interface.
Definition: agt_not.c:8859
delete edit
Definition: agt_not.h:239
suspension timeout
Definition: agt_not.h:287
modify only
Definition: agt_not.h:231
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:8548
agt_not_filtertyp_t
server supported filter types
Definition: agt_not.h:202
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:8761
not set
Definition: agt_not.h:203
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:9047
void(* agt_not_delete_subscription_cbfn_t)(agt_not_subid_t subid, boolean kill_pending)
Delete Subscription Callback.
Definition: agt_not.h:335
void agt_not_go_standby(void)
Exit active notification subscription mode and disable notifications.
Definition: agt_not.c:6719
void agt_not_resume_push_subscription(agt_not_subid_t subid)
Resume a YANG Push Subscription.
Definition: agt_not.c:8504
not set
Definition: agt_not.h:251
insert edit
Definition: agt_not.h:240
void(* agt_not_module_removed_cbfn_t)(const ncx_module_t *mod)
Remove Module Callback.
Definition: agt_not.h:361
uint32 msgid
messsage ID assigned to this notification
Definition: agt_not.h:168
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:7724
insufficient resources
Definition: agt_not.h:254
uint32 agt_not_send_notifications(thd_tcb_t *tcb)
Send notifications (PTHREADS VERSION)
Definition: agt_not.c:5864
not set
Definition: agt_not.h:223
val_value_t * event
backptr inside msg for filter for top-level notifications
Definition: agt_not.h:180
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:6180
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:9209
stop-time
Definition: agt_not.h:229