yumapro  24.10-1
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 - 2024, 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
796extern void
797 agt_not_go_active (void);
798#endif // WITH_YP_HA
799
800#ifdef WITH_YP_HA
806extern void
807 agt_not_go_standby (void);
808#endif // WITH_YP_HA
809
810
811#ifdef WITH_YANG_PUSH
818extern status_t
820#endif // WITH_YANG_PUSH
821
822
832extern status_t
833 agt_not_set_filter (const xmlChar *name,
834 ncx_nmda_filtyp_t nmda_filtyp,
835 agt_not_filtertyp_t filtyp,
836 const val_value_t *filval);
837
838
839
853extern status_t
855 const xmlChar *name,
856 agt_not_filtertyp_t *filtyp,
857 val_value_t **filval);
858
859
867extern status_t
868 agt_not_delete_filter (const xmlChar *name,
869 ncx_nmda_filtyp_t nmda_filtyp);
870
871
872
881extern status_t
882 agt_not_delete_all_filters (boolean force);
883
884
913extern status_t
915 ses_cb_t *scb,
916 const xmlChar *stream_filter_name,
917 const val_value_t *stream_subtree_filter,
918 const val_value_t *stream_xpath_filter,
919 const xmlChar *stream,
920 const xmlChar *replay_start_time,
921 const xmlChar *stop_time,
922 const val_value_t *encoding,
923 agt_not_subid_t *subid,
924 agt_not_sterr_t *errnum);
925
926
964 ses_cb_t *scb,
965 agt_not_subid_t subid,
966 const xmlChar *stream_filter_name,
967 const val_value_t *stream_subtree_filter,
968 const val_value_t *stream_xpath_filter,
969 const xmlChar *stop_time,
970 agt_not_sterr_t *errnum);
971
972
984extern status_t
986 agt_not_subid_t subid);
987
988
998extern status_t
1000
1001
1002#ifdef WITH_YANG_PUSH
1024extern status_t
1026 ses_cb_t *scb,
1027 const xmlChar *selection_filter_ref,
1028 const xmlChar *stop_time,
1029 const val_value_t *encoding,
1030 agt_not_modify_filter_cbfn_t modify_cbfn,
1032 agt_not_subid_t *subid,
1033 agt_not_sterr_t *errnum,
1034 boolean *isbinary);
1035
1036
1052extern status_t
1054 ses_id_t sid,
1055 agt_not_subid_t cur_subid,
1056 const xmlChar *selection_filter_ref,
1057 const xmlChar *stop_time,
1058 agt_not_sterr_t *errnum);
1059
1060
1068extern status_t
1071
1072
1088extern status_t
1090 obj_template_t *subscription_completed,
1091 obj_template_t *subscription_modified,
1092 obj_template_t *subscription_resumed,
1093 obj_template_t *subscription_started,
1094 obj_template_t *subscription_suspended,
1095 obj_template_t *subscription_terminated);
1096
1097
1109extern status_t
1111 ses_id_t sid,
1112 obj_template_t *notif_obj,
1113 rpc_msg_t *msg,
1114 boolean *subscription_deleted);
1115
1116
1136extern status_t
1138 ses_id_t sid,
1139 const xmlChar *filespec,
1140 rpc_msg_t *msg,
1141 boolean *subscription_deleted,
1142 uint32 *checksum,
1143 uint32 *bytecnt);
1144
1145
1161extern status_t
1163 ses_id_t sid,
1164 const xmlChar *filespec,
1165 rpc_msg_t *msg,
1166 obj_template_t *notif_obj,
1167 boolean *subscription_deleted);
1168
1169
1178extern void
1181
1182
1183
1192extern void
1194
1195
1205extern void
1207 agt_not_term_reason_t term_reason);
1208
1209
1220extern status_t
1222 ses_id_t sid,
1223 obj_template_t *notif_obj,
1224 yang_patch_cb_t *pcb,
1225 boolean *subscription_deleted);
1226
1227
1228#endif // WITH_YANG_PUSH
1229
1230
1240extern void
1242
1243
1244#ifdef WITH_YANG_PUSH
1252extern obj_template_t *
1254
1255
1263extern status_t
1265 agt_not_msg_t *notif);
1266
1267#endif // WITH_YANG_PUSH
1268
1269
1279extern status_t
1280 agt_not_create_event_stream (const xmlChar *name,
1281 uint32 eventlog_size,
1282 const xmlChar *description);
1283
1284
1292extern status_t
1294 const xmlChar *name);
1295
1296
1305extern status_t
1306 agt_not_edit_module_map (const xmlChar *modname,
1307 const xmlChar *stream_name,
1308 boolean is_create);
1309
1310
1317extern status_t
1318 agt_not_delete_module_map (const xmlChar *modname);
1319
1320
1327extern boolean
1328 agt_not_event_stream_exists (const xmlChar *stream_name);
1329
1330
1342extern status_t
1343 agt_not_clear_event_stream_log (const xmlChar *stream_name);
1344
1345
1346
1400extern status_t
1401 agt_not_register_stream_cbfn (const xmlChar *modname,
1402 const xmlChar *stream_name,
1403 boolean all_streams,
1405 void *cookie);
1406
1407
1419extern void
1420 agt_not_unregister_stream_cbfn (const xmlChar *modname,
1422
1423
1424
1425
1426#ifdef WITH_YCONTROL
1462extern status_t
1463 agt_not_register_stream_cbfn_subsys (const xmlChar *subsys_id,
1464 const xmlChar *modname,
1465 const xmlChar *stream_name,
1466 boolean all_streams);
1467
1468
1477extern void
1478 agt_not_unregister_stream_cbfn_subsys (const xmlChar *subsys_id,
1479 const xmlChar *modname);
1480
1481
1482
1483
1494extern status_t
1495 agt_not_check_register_add (const xmlChar *modname,
1496 val_value_t *request_val);
1497
1498
1508extern boolean
1509 agt_not_any_unregistered (const xmlChar *modname);
1510
1511
1512
1523extern void
1524 agt_not_subsys_gone (const xmlChar *subsys_id);
1525
1526
1544extern status_t
1545 agt_not_stream_callback_subsys (const xmlChar *stream_name,
1546 agt_not_subevent_t subevent,
1547 const xmlChar *modname,
1548 boolean all_streams);
1549
1550
1551#endif // WITH_YCONTROL
1552
1553
1554
1569extern void
1570 agt_not_unload_module (const xmlChar *modname);
1571
1572
1573
1590extern status_t
1592 const ncx_sm_mpid_t *mpid);
1593
1594
1595#ifdef WITH_RESTCONF
1604extern status_t
1606 obj_template_t *streamobj);
1607
1608#endif // WITH_RESTCONF
1609
1610
1614#ifdef __cplusplus
1615} /* end extern 'C' */
1616#endif
1617
1618#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:9106
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:6734
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:9621
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:9360
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:7028
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:10247
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:8347
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:6631
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:8417
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:5647
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:6607
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:6766
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:10034
status_t agt_not_delete_all_filters(boolean force)
Delete all existing filter entries.
Definition: agt_not.c:7934
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:8598
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:9186
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:8842
status_t agt_not_kill_dynamic_subscription(agt_not_subid_t subid)
Terminate any session's RFC 8639 subscription.
Definition: agt_not.c:8560
void agt_not_cleanup_sil_sa(void)
Cleanup the module data structures.
Definition: agt_not.c:5856
void agt_not_remove_module_filters(const ncx_module_t *mod)
Invoke Module Removed Callback.
Definition: agt_not.c:9275
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:8788
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:8541
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:9228
boolean agt_not_event_stream_exists(const xmlChar *stream_name)
Check if the specified event stream is configured.
Definition: agt_not.c:9530
void agt_not_remove_subscription(ses_id_t sid)
Remove and expire a subscription with the specified session ID.
Definition: agt_not.c:6586
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:10502
status_t agt_not_delete_filter(const xmlChar *name, ncx_nmda_filtyp_t nmda_filtyp)
Delete an existing filter entry.
Definition: agt_not.c:7858
void agt_not_cancel_subscription(ses_id_t sid)
Cancel any notification subscription for the specified session.
Definition: agt_not.c:7086
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:9498
uint32 agt_not_send_notifications(thd_tcb_t *tcb)
Send notifications (PTHREADS VERSION)
Definition: agt_not.c:6461
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:9440
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:9689
obj_template_t * agt_not_get_modified_obj(void)
Get subscription-modified object.
Definition: agt_not.c:9308
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:6656
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:9398
status_t agt_not_init_yangpush(obj_template_t *streams_obj)
Init the yang-push related streams and data structures.
Definition: agt_not.c:7365
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:9781
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:8915
void agt_not_cleanup(void)
Cleanup the module data structures.
Definition: agt_not.c:5785
void agt_not_go_active(void)
Enable active notification subscriptions.
Definition: agt_not.c:7314
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:8968
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:6709
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:9851
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:9330
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:7660
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:7700
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:7268
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:10076
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:7053
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:9061
void agt_not_resume_push_subscription(agt_not_subid_t subid)
Resume a YANG Push Subscription.
Definition: agt_not.c:9142
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:10133
void agt_not_unload_module(const xmlChar *modname)
Unload any remote stream callbacks when a module is unloaded.
Definition: agt_not.c:10195
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:8875
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:9560
void agt_not_go_standby(void)
Exit active notification subscription mode and disable notifications.
Definition: agt_not.c:7328
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:9923
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:210
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:1229
NETCONF Server and Client RPC Request/Reply Message Header.
Definition: rpc.h:181
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.