yumapro  21.10T-8
YumaPro SDK
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 - 2021, 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 
33 date init comment
34 ----------------------------------------------------------------------
35 30-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
73 extern "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 
123 typedef uint32 agt_not_subid_t;
124 
125 
127 typedef enum agt_not_subevent_t_ {
130 
133 
137 
138 
143 typedef 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 
198 } agt_not_msg_t;
199 
200 
202 typedef enum agt_not_filtertyp_t_ {
210 
213 
217 
218 
222 typedef enum agt_not_sterr_t_ {
233 
234 
236 typedef enum agt_not_push_change_t_ {
244 
245 
249 typedef enum agt_not_suspend_reason_t_ {
252 
255 
258 
261 
264 
268 
269 
273 typedef enum agt_not_term_reason_t_ {
276 
279 
282 
285 
288 
291 
294 
296 
297 
314 typedef void
316  agt_not_subid_t subid,
317  agt_not_filtertyp_t filtyp,
318  const val_value_t *new_filter);
319 
320 
334 typedef void
335  (*agt_not_delete_subscription_cbfn_t) (agt_not_subid_t subid,
336  boolean kill_pending);
337 
338 
339 
348 typedef void
350 
351 
360 typedef void
362 
363 
364 
426 typedef void
427  (*agt_not_stream_cbfn_t) (const xmlChar *event_stream,
428  agt_not_subevent_t subevent,
429  void *cookie);
430 
431 
435 /********************************************************************
436 * *
437 * F U N C T I O N S *
438 * *
439 *********************************************************************/
440 
441 
482 extern status_t
483  agt_not_init (void);
484 
485 
493 extern status_t
494  agt_not_init_sil_sa (void);
495 
496 
504 extern status_t
505  agt_not_init2 (void);
506 
507 
513 extern void
514  agt_not_cleanup (void);
515 
516 
523 extern void
524  agt_not_cleanup_sil_sa (void);
525 
526 
527 
528 #ifdef PTHREADS
529 
547 extern uint32
549 
550 #else
551 
567 extern uint32
569 
570 #endif // PTHREADS
571 
572 
579 extern void
580  agt_not_clean_eventlog (void);
581 
582 
590 extern void
592 
593 
600 extern agt_not_msg_t *
602 
603 
612 extern agt_not_msg_t *
614  const xmlChar *eventTime);
615 
616 
626 extern void
628 
629 
648 extern void
650  val_value_t *val);
651 
652 
653 
672 extern void
674  val_value_t *val);
675 
676 
693 extern void
695 
696 
721 extern void
722  agt_not_queue_notification_stream (const xmlChar *stream_name,
723  agt_not_msg_t *notif);
724 
725 
736 extern boolean
737  agt_not_is_replay_event (const obj_template_t *notifobj);
738 
739 
745 extern void
747 
748 
769 extern status_t
771  const xmlChar *stream,
772  xmlChar *startTime,
773  xmlChar *stopTime,
774  boolean futurestop,
775  op_filtertyp_t filtertype,
776  val_value_t *filterval,
777  val_value_t *selectval);
778 
779 
780 #ifdef WITH_YP_HA
781 
786 extern void
787  agt_not_go_active (void);
788 #endif // WITH_YP_HA
789 
790 #ifdef WITH_YP_HA
791 
796 extern void
797  agt_not_go_standby (void);
798 #endif // WITH_YP_HA
799 
800 
801 #ifdef WITH_YANG_PUSH
802 
808 extern status_t
809  agt_not_init_yangpush (obj_template_t *streams_obj);
810 #endif // WITH_YANG_PUSH
811 
812 
822 extern status_t
823  agt_not_set_filter (const xmlChar *name,
824  ncx_nmda_filtyp_t nmda_filtyp,
825  agt_not_filtertyp_t filtyp,
826  const val_value_t *filval);
827 
828 
829 
843 extern status_t
845  const xmlChar *name,
846  agt_not_filtertyp_t *filtyp,
847  val_value_t **filval);
848 
849 
857 extern status_t
858  agt_not_delete_filter (const xmlChar *name,
859  ncx_nmda_filtyp_t nmda_filtyp);
860 
861 
862 
871 extern status_t
872  agt_not_delete_all_filters (boolean force);
873 
874 
903 extern status_t
905  ses_cb_t *scb,
906  const xmlChar *stream_filter_name,
907  const val_value_t *stream_subtree_filter,
908  const val_value_t *stream_xpath_filter,
909  const xmlChar *stream,
910  const xmlChar *replay_start_time,
911  const xmlChar *stop_time,
912  const val_value_t *encoding,
913  agt_not_subid_t *subid,
914  agt_not_sterr_t *errnum);
915 
916 
952 status_t
954  ses_cb_t *scb,
955  agt_not_subid_t subid,
956  const xmlChar *stream_filter_name,
957  const val_value_t *stream_subtree_filter,
958  const val_value_t *stream_xpath_filter,
959  const xmlChar *stop_time,
960  agt_not_sterr_t *errnum);
961 
962 
974 extern status_t
976  agt_not_subid_t subid);
977 
978 
988 extern status_t
989  agt_not_kill_dynamic_subscription (agt_not_subid_t subid);
990 
991 
992 #ifdef WITH_YANG_PUSH
993 
1012 extern status_t
1014  ses_cb_t *scb,
1015  const xmlChar *selection_filter_ref,
1016  const xmlChar *stop_time,
1017  const val_value_t *encoding,
1018  agt_not_modify_filter_cbfn_t modify_cbfn,
1020  agt_not_subid_t *subid,
1021  agt_not_sterr_t *errnum);
1022 
1023 
1039 extern status_t
1041  ses_id_t sid,
1042  agt_not_subid_t cur_subid,
1043  const xmlChar *selection_filter_ref,
1044  const xmlChar *stop_time,
1045  agt_not_sterr_t *errnum);
1046 
1047 
1055 extern status_t
1058 
1059 
1075 extern status_t
1076  agt_not_register_notif_objs (obj_template_t *replay_completed,
1077  obj_template_t *subscription_completed,
1078  obj_template_t *subscription_modified,
1079  obj_template_t *subscription_resumed,
1080  obj_template_t *subscription_started,
1081  obj_template_t *subscription_suspended,
1082  obj_template_t *subscription_terminated);
1083 
1084 
1096 extern status_t
1097  agt_not_send_periodic_update(agt_not_subid_t subid,
1098  ses_id_t sid,
1099  obj_template_t *notif_obj,
1100  rpc_msg_t *msg,
1101  boolean *subscription_deleted);
1102 
1103 
1123 extern status_t
1124  agt_not_get_simop_update(agt_not_subid_t subid,
1125  ses_id_t sid,
1126  const xmlChar *filespec,
1127  rpc_msg_t *msg,
1128  boolean *subscription_deleted,
1129  uint32 *checksum,
1130  uint32 *bytecnt);
1131 
1132 
1148 extern status_t
1149  agt_not_send_simop_update(agt_not_subid_t subid,
1150  ses_id_t sid,
1151  const xmlChar *filespec,
1152  rpc_msg_t *msg,
1153  obj_template_t *notif_obj,
1154  boolean *subscription_deleted);
1155 
1156 
1165 extern void
1166  agt_not_suspend_push_subscription (agt_not_subid_t subid,
1167  agt_not_suspend_reason_t reason);
1168 
1169 
1170 
1179 extern void
1180  agt_not_resume_push_subscription (agt_not_subid_t subid);
1181 
1182 
1192 extern void
1193  agt_not_kill_push_subscription (agt_not_subid_t subid,
1194  agt_not_term_reason_t term_reason);
1195 
1196 
1207 extern status_t
1208  agt_not_send_onchange_update(agt_not_subid_t subid,
1209  ses_id_t sid,
1210  obj_template_t *notif_obj,
1211  yang_patch_cb_t *pcb,
1212  boolean *subscription_deleted);
1213 
1214 
1215 #endif // WITH_YANG_PUSH
1216 
1217 
1227 extern void
1229 
1230 
1231 #ifdef WITH_YANG_PUSH
1232 
1239 extern obj_template_t *
1240  agt_not_get_modified_obj (void);
1241 
1242 
1250 extern status_t
1251  agt_not_send_push_notif (agt_not_subid_t subid,
1252  agt_not_msg_t *notif);
1253 
1254 #endif // WITH_YANG_PUSH
1255 
1256 
1264 extern status_t
1265  agt_not_create_event_stream (const xmlChar *name,
1266  uint32 eventlog_size);
1267 
1268 
1276 extern status_t
1278  const xmlChar *name);
1279 
1280 
1289 extern status_t
1290  agt_not_edit_module_map (const xmlChar *modname,
1291  const xmlChar *stream_name,
1292  boolean is_create);
1293 
1294 
1301 extern status_t
1302  agt_not_delete_module_map (const xmlChar *modname);
1303 
1304 
1311 extern boolean
1312  agt_not_event_stream_exists (const xmlChar *stream_name);
1313 
1314 
1326 extern status_t
1327  agt_not_clear_event_stream_log (const xmlChar *stream_name);
1328 
1329 
1330 
1384 extern status_t
1385  agt_not_register_stream_cbfn (const xmlChar *modname,
1386  const xmlChar *stream_name,
1387  boolean all_streams,
1388  agt_not_stream_cbfn_t cbfn,
1389  void *cookie);
1390 
1391 
1403 extern void
1404  agt_not_unregister_stream_cbfn (const xmlChar *modname,
1405  agt_not_stream_cbfn_t cbfn);
1406 
1407 
1408 
1409 
1410 #ifdef WITH_YCONTROL
1411 
1446 extern status_t
1447  agt_not_register_stream_cbfn_subsys (const xmlChar *subsys_id,
1448  const xmlChar *modname,
1449  const xmlChar *stream_name,
1450  boolean all_streams);
1451 
1452 
1461 extern void
1462  agt_not_unregister_stream_cbfn_subsys (const xmlChar *subsys_id,
1463  const xmlChar *modname);
1464 
1465 
1466 
1467 
1478 extern status_t
1479  agt_not_check_register_add (const xmlChar *modname,
1480  val_value_t *request_val);
1481 
1482 
1492 extern boolean
1493  agt_not_any_unregistered (const xmlChar *modname);
1494 
1495 
1496 
1507 extern void
1508  agt_not_subsys_gone (const xmlChar *subsys_id);
1509 
1510 
1528 extern status_t
1529  agt_not_stream_callback_subsys (const xmlChar *stream_name,
1530  agt_not_subevent_t subevent,
1531  const xmlChar *modname,
1532  boolean all_streams);
1533 
1534 
1535 #endif // WITH_YCONTROL
1536 
1537 
1538 
1553 extern void
1554  agt_not_unload_module (const xmlChar *modname);
1555 
1556 
1557 
1558 
1562 #ifdef __cplusplus
1563 } /* end extern 'C' */
1564 #endif
1565 
1566 #endif /* _H_agt_not */
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
Data Object Support.
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&#39;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
Timestamp utilities.
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
YANG Patch Media Type.
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