yumapro  24.10-11
YumaPro SDK
Loading...
Searching...
No Matches
agt_not.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2008 - 2012, Andy Bierman, All Rights Reserved.
3 * Copyright (c) 2012 - 2025, YumaWorks, Inc., All Rights Reserved.
4 *
5 * Unless required by applicable law or agreed to in writing,
6 * software distributed under the License is distributed on an
7 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
8 * KIND, either express or implied. See the License for the
9 * specific language governing permissions and limitations
10 * under the License.
11 */
12#ifndef _H_agt_not
13#define _H_agt_not
14/* FILE: agt_not.h
15*********************************************************************
16* *
17* P U R P O S E *
18* *
19*********************************************************************/
20
27/*********************************************************************
28* *
29* C H A N G E H I S T O R Y *
30* *
31*********************************************************************
32
33date init comment
34----------------------------------------------------------------------
3530-may-09 abb Begun.
36*/
37
38#include <xmlstring.h>
39
40#ifndef _H_dlq
41#include "dlq.h"
42#endif
43
44#ifndef _H_ncxtypes
45#include "ncxtypes.h"
46#endif
47
48#ifndef _H_obj
49#include "obj.h"
50#endif
51
52#ifndef _H_ses
53#include "ses.h"
54#endif
55
56#ifndef _H_status
57#include "status.h"
58#endif
59
60#ifndef _H_tstamp
61#include "tstamp.h"
62#endif
63
64#ifndef _H_val
65#include "val.h"
66#endif
67
68#ifndef _H_yang_patch
69#include "yang_patch.h"
70#endif
71
72#ifdef __cplusplus
73extern "C" {
74#endif
75
76/* header only */
77
78
103/********************************************************************
104* *
105* C O N S T A N T S *
106* *
107*********************************************************************/
108
110#define AGT_NOT_MODULE1 (const xmlChar *)"notifications"
111
113#define AGT_NOT_MODULE2 (const xmlChar *)"nc-notifications"
114
115
116/********************************************************************
117* *
118* T Y P E S *
119* *
120*********************************************************************/
121
123typedef uint32 agt_not_subid_t;
124
125
127typedef enum agt_not_subevent_t_ {
130
133
137
138
143typedef struct agt_not_msg_t_ {
145 dlq_hdr_t qhdr;
146
149
162 dlq_hdr_t keyQ;
163
164 /* payload set by caller: Q of val_value_t */
165 dlq_hdr_t payloadQ;
166
168 uint32 msgid;
169
171 xmlChar eventTime[TSTAMP_MIN_SIZE];
172
178
181
183 boolean usemsgid;
184
190
197
204
206
207
209typedef enum agt_not_filtertyp_t_ {
217
220
224
225
229typedef enum agt_not_sterr_t_ {
240
241
243typedef enum agt_not_push_change_t_ {
251
252
256typedef enum agt_not_suspend_reason_t_ {
259
262
265
268
271
275
276
280typedef enum agt_not_term_reason_t_ {
283
286
289
292
295
298
301
303
304
321typedef void
323 agt_not_subid_t subid,
324 agt_not_filtertyp_t filtyp,
325 const val_value_t *new_filter);
326
327
341typedef void
343 boolean kill_pending);
344
345
346
355typedef void
357
358
367typedef void
369
370
371
433typedef void
434 (*agt_not_stream_cbfn_t) (const xmlChar *event_stream,
435 agt_not_subevent_t subevent,
436 void *cookie);
437
438
442/********************************************************************
443* *
444* F U N C T I O N S *
445* *
446*********************************************************************/
447
448
489extern status_t
490 agt_not_init (void);
491
492
500extern status_t
501 agt_not_init_sil_sa (void);
502
503
511extern status_t
512 agt_not_init2 (void);
513
514
520extern void
521 agt_not_cleanup (void);
522
523
530extern void
532
533
534
535#ifdef PTHREADS
554extern uint32
556
557#else
558
574extern uint32
576
577#endif // PTHREADS
578
579
580/*
581* @brief Remove any delivered notifications when the replay buffer
582* size is set to zero
583*
584* Called from periodic task or thread
585*
586* Cleanup is now done internally and this function is removed
587*
588* extern void
589* agt_not_clean_eventlog (void);
590*/
591
592
600extern void
602
603
610extern agt_not_msg_t *
612
613
622extern agt_not_msg_t *
624 const xmlChar *eventTime);
625
626
636extern void
638
639
658extern void
660 val_value_t *val);
661
662
663
682extern void
684 val_value_t *val);
685
686
703extern void
705
706
731extern void
732 agt_not_queue_notification_stream (const xmlChar *stream_name,
733 agt_not_msg_t *notif);
734
735
746extern boolean
747 agt_not_is_replay_event (const obj_template_t *notifobj);
748
749
755extern void
757
758
779extern status_t
781 const xmlChar *stream,
782 xmlChar *startTime,
783 xmlChar *stopTime,
784 boolean futurestop,
785 op_filtertyp_t filtertype,
786 val_value_t *filterval,
787 val_value_t *selectval);
788
789
790#ifdef WITH_YP_HA
798extern status_t
799 agt_not_go_active (void);
800#endif // WITH_YP_HA
801
802#ifdef WITH_YP_HA
808extern void
809 agt_not_go_standby (void);
810#endif // WITH_YP_HA
811
812
813#ifdef WITH_YANG_PUSH
820extern status_t
822#endif // WITH_YANG_PUSH
823
824
834extern status_t
835 agt_not_set_filter (const xmlChar *name,
836 ncx_nmda_filtyp_t nmda_filtyp,
837 agt_not_filtertyp_t filtyp,
838 const val_value_t *filval);
839
840
841
855extern status_t
857 const xmlChar *name,
858 agt_not_filtertyp_t *filtyp,
859 val_value_t **filval);
860
861
869extern status_t
870 agt_not_delete_filter (const xmlChar *name,
871 ncx_nmda_filtyp_t nmda_filtyp);
872
873
874
883extern status_t
884 agt_not_delete_all_filters (boolean force);
885
886
915extern status_t
917 ses_cb_t *scb,
918 const xmlChar *stream_filter_name,
919 const val_value_t *stream_subtree_filter,
920 const val_value_t *stream_xpath_filter,
921 const xmlChar *stream,
922 const xmlChar *replay_start_time,
923 const xmlChar *stop_time,
924 const val_value_t *encoding,
925 agt_not_subid_t *subid,
926 agt_not_sterr_t *errnum);
927
928
966 ses_cb_t *scb,
967 agt_not_subid_t subid,
968 const xmlChar *stream_filter_name,
969 const val_value_t *stream_subtree_filter,
970 const val_value_t *stream_xpath_filter,
971 const xmlChar *stop_time,
972 agt_not_sterr_t *errnum);
973
974
986extern status_t
988 agt_not_subid_t subid);
989
990
1000extern status_t
1002
1003
1004#ifdef WITH_YANG_PUSH
1026extern status_t
1028 ses_cb_t *scb,
1029 const xmlChar *selection_filter_ref,
1030 const xmlChar *stop_time,
1031 const val_value_t *encoding,
1032 agt_not_modify_filter_cbfn_t modify_cbfn,
1034 agt_not_subid_t *subid,
1035 agt_not_sterr_t *errnum,
1036 boolean *isbinary);
1037
1038
1054extern status_t
1056 ses_id_t sid,
1057 agt_not_subid_t cur_subid,
1058 const xmlChar *selection_filter_ref,
1059 const xmlChar *stop_time,
1060 agt_not_sterr_t *errnum);
1061
1062
1070extern status_t
1073
1074
1090extern status_t
1092 obj_template_t *subscription_completed,
1093 obj_template_t *subscription_modified,
1094 obj_template_t *subscription_resumed,
1095 obj_template_t *subscription_started,
1096 obj_template_t *subscription_suspended,
1097 obj_template_t *subscription_terminated);
1098
1099
1111extern status_t
1113 ses_id_t sid,
1114 obj_template_t *notif_obj,
1115 rpc_msg_t *msg,
1116 boolean *subscription_deleted);
1117
1118
1138extern status_t
1140 ses_id_t sid,
1141 const xmlChar *filespec,
1142 rpc_msg_t *msg,
1143 boolean *subscription_deleted,
1144 uint32 *checksum,
1145 uint32 *bytecnt);
1146
1147
1163extern status_t
1165 ses_id_t sid,
1166 const xmlChar *filespec,
1167 rpc_msg_t *msg,
1168 obj_template_t *notif_obj,
1169 boolean *subscription_deleted);
1170
1171
1180extern void
1183
1184
1185
1194extern void
1196
1197
1207extern void
1209 agt_not_term_reason_t term_reason);
1210
1211
1222extern status_t
1224 ses_id_t sid,
1225 obj_template_t *notif_obj,
1226 yang_patch_cb_t *pcb,
1227 boolean *subscription_deleted);
1228
1229
1230#endif // WITH_YANG_PUSH
1231
1232
1242extern void
1244
1245
1246#ifdef WITH_YANG_PUSH
1254extern obj_template_t *
1256
1257
1265extern status_t
1267 agt_not_msg_t *notif);
1268
1269#endif // WITH_YANG_PUSH
1270
1271
1281extern status_t
1282 agt_not_create_event_stream (const xmlChar *name,
1283 uint32 eventlog_size,
1284 const xmlChar *description);
1285
1286
1294extern status_t
1296 const xmlChar *name);
1297
1298
1307extern status_t
1308 agt_not_edit_module_map (const xmlChar *modname,
1309 const xmlChar *stream_name,
1310 boolean is_create);
1311
1312
1319extern status_t
1320 agt_not_delete_module_map (const xmlChar *modname);
1321
1322
1329extern boolean
1330 agt_not_event_stream_exists (const xmlChar *stream_name);
1331
1332
1344extern status_t
1345 agt_not_clear_event_stream_log (const xmlChar *stream_name);
1346
1347
1348
1402extern status_t
1403 agt_not_register_stream_cbfn (const xmlChar *modname,
1404 const xmlChar *stream_name,
1405 boolean all_streams,
1407 void *cookie);
1408
1409
1421extern void
1422 agt_not_unregister_stream_cbfn (const xmlChar *modname,
1424
1425
1426
1427
1428#ifdef WITH_YCONTROL
1464extern status_t
1465 agt_not_register_stream_cbfn_subsys (const xmlChar *subsys_id,
1466 const xmlChar *modname,
1467 const xmlChar *stream_name,
1468 boolean all_streams);
1469
1470
1479extern void
1480 agt_not_unregister_stream_cbfn_subsys (const xmlChar *subsys_id,
1481 const xmlChar *modname);
1482
1483
1484
1485
1496extern status_t
1497 agt_not_check_register_add (const xmlChar *modname,
1498 val_value_t *request_val);
1499
1500
1510extern boolean
1511 agt_not_any_unregistered (const xmlChar *modname);
1512
1513
1514
1525extern void
1526 agt_not_subsys_gone (const xmlChar *subsys_id);
1527
1528
1546extern status_t
1547 agt_not_stream_callback_subsys (const xmlChar *stream_name,
1548 agt_not_subevent_t subevent,
1549 const xmlChar *modname,
1550 boolean all_streams);
1551
1552
1553#endif // WITH_YCONTROL
1554
1555
1556
1571extern void
1572 agt_not_unload_module (const xmlChar *modname);
1573
1574
1575
1592extern status_t
1594 const ncx_sm_mpid_t *mpid);
1595
1596
1597#ifdef WITH_RESTCONF
1606extern status_t
1608 obj_template_t *streamobj);
1609
1610#endif // WITH_RESTCONF
1611
1612
1616#ifdef __cplusplus
1617} /* end extern 'C' */
1618#endif
1619
1620#endif /* _H_agt_not */
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.
Data Object Support.
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
Timestamp utilities.
Value Node Basic Support.
YANG Patch Media Type.