yumapro  25.10-1
YumaPro SDK
Loading...
Searching...
No Matches
obj.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_obj
13#define _H_obj
14
15/* FILE: obj.h
16*********************************************************************
17* *
18* P U R P O S E *
19* *
20*********************************************************************/
21
27/*********************************************************************
28* *
29* C H A N G E H I S T O R Y *
30* *
31*********************************************************************
32
33date init comment
34----------------------------------------------------------------------
3509-dec-07 abb Begun
3621jul08 abb start obj-based rewrite
37
38*/
39
40#include <xmlstring.h>
41#include <xmlregexp.h>
42
43#include "log.h"
44#include "grp.h"
45#include "ncxconst.h"
46#include "ncxtypes.h"
47#include "status.h"
48#include "tk.h"
49#include "rpc.h"
50#include "typ.h"
51#include "xmlns.h"
52#include "xml_util.h"
53
54#ifdef __cplusplus
55extern "C" {
56#endif
57
58/********************************************************************
59* *
60* C O N S T A N T S *
61* *
62*********************************************************************/
63
64/* object pointer inside obj_key_t struct */
65#define OBJ_KEYOBJ(KO) (KO)->keyobj
66
67/* default vaule for config statement */
68#define OBJ_DEF_CONFIG TRUE
69
70/* default vaule for mandatory statement */
71#define OBJ_DEF_MANDATORY FALSE
72
73/* number of static xpath backptrs to have in each object node */
74/*** CHANGED FROM 4 to 2 23oct19 ***/
75#define OBJ_NUM_XPATH_BACKPTRS 2
76
77/* each object can have a SIL callback priority 1..255 */
78#define OBJ_DEF_SIL_PRIORITY 255
79#define OBJ_MIN_SIL_PRIORITY 1
80#define OBJ_MAX_SIL_PRIORITY 255
81
82
83/********* flags field in obj_template_t *************/
84
85/* object is cloned from a grouping, for a uses statement */
86#define OBJ_FL_CLONE bit0
87
88/* def is a CLI text block */
89#define OBJ_FL_CLI_TEXT_BLOCK bit1
90
91/* clone source
92 * == 0 : cloned object from uses
93 * == 1 : cloned object from augment
94 */
95#define OBJ_FL_AUGCLONE bit2
96
97/* object is marked for deletion -- dynamic flag */
98#define OBJ_FL_DELETED bit3
99
100/* object is dirty in the candidate datastore; used by server only */
101#define OBJ_FL_CDIRTY bit4
102
103/* object is a top-level definition within a module or submodule */
104#define OBJ_FL_TOP bit5
105
106/* object was entered with a 'kw name;' format and is
107 * considered empty by the yangdump program
108 */
109#define OBJ_FL_EMPTY bit6
110
111/* object has been visited by the yangdiff program */
112#define OBJ_FL_SEEN bit7
113
114/* bit7 is reused in the server since the 'seen' bit only
115 * applies to the yangdiff-pro program
116 * object is dirty in the running datastore; used by server only
117 */
118#define OBJ_FL_RDIRTY bit7
119
120/* object marked as changed by the yangdiff program */
121#define OBJ_FL_DIFF bit8
122
123/* object is marked as ncx:hidden */
124#define OBJ_FL_HIDDEN bit9
125
126/* object is marked as ncx:root */
127#define OBJ_FL_ROOT bit10
128
129/* object is marked as a password */
130#define OBJ_FL_PASSWD bit11
131
132/* object is marked as a CLI-only node */
133#define OBJ_FL_CLI bit12
134
135/* object is marked as an XSD list data type */
136#define OBJ_FL_XSDLIST bit13
137
138/* OBJ_TYP_LEAF object is being uses as a key */
139#define OBJ_FL_KEY bit14
140
141/* object is marked as abstract: not CLI or config data */
142#define OBJ_FL_ABSTRACT bit15
143
144/* object is marked as config set so OBJ_FL_CONFIG is valid */
145#define OBJ_FL_CONFSET bit16
146
147/* object config value */
148#define OBJ_FL_CONFIG bit17
149
150/* object is marked as mandatory set so OBJ_FL_MANDATORY is valid */
151#define OBJ_FL_MANDSET bit18
152
153/* object mandatory value */
154#define OBJ_FL_MANDATORY bit19
155
156/* object used in a unique-stmt within a list */
157#define OBJ_FL_UNIQUE bit20
158
159/* object data type is an XPath string */
160#define OBJ_FL_XPATH bit21
161
162/* object data type is a QName string */
163#define OBJ_FL_QNAME bit22
164
165/* object data type is a schema-instance string */
166#define OBJ_FL_SCHEMAINST bit23
167
168/* object is tagged ncx:secure */
169#define OBJ_FL_SECURE bit24
170
171/* object is tagged ncx:very-secure */
172#define OBJ_FL_VERY_SECURE bit25
173
174/* object is tagged ncx:default-parm-equals-ok */
175#define OBJ_FL_CLI_EQUALS_OK bit26
176
177/* object is tagged ncx:sil-delete-children-first */
178#define OBJ_FL_SIL_DELETE_CHILDREN_FIRST bit27
179
180/* object is tagged as ncx:user-write with no create access */
181#define OBJ_FL_BLOCK_CREATE bit28
182
183/* object is tagged as ncx:user-write with no update access */
184#define OBJ_FL_BLOCK_UPDATE bit29
185
186/* object is tagged as ncx:user-write with no delete access */
187#define OBJ_FL_BLOCK_DELETE bit30
188
189/* object is tagged as ywx:rpc-root operation container */
190#define OBJ_FL_RPC_ROOT bit31
191
192
193/********* xflags field in obj_template_t *************/
194
195/* object is a default NP-container */
196#define OBJ_FL_DEF_NPCON bit0
197
198/* object has been checked for enabled;
199 * this flag needs to be cleared if dynamic
200 * features are used and the feature becomes disabled!!!
201 */
202#define OBJ_FL_ENABLED_CHK bit1
203
204/* indicates that the object is enabled, which just means
205 * any if-features statements for this object are true
206 */
207#define OBJ_FL_ENABLED bit2
208
209/* indicates that this visible object has a visible sibling
210 * object with the same local-name but from another module
211 */
212#define OBJ_FL_DUP_LOCAL bit3
213
214/* indicates that this object is an RPC operation that is
215 * not allowed to be called concurrently by multiple sessions
216 * at once
217 */
218#define OBJ_FL_EXCLUSIVE_RPC bit4
219
220/* indicates that this object is has the sil-force-replay
221 * flag set
222 */
223#define OBJ_FL_SIL_FORCE_REPLAY bit5
224
225/* indicates that this object is has the sil-force-replay
226 * flag set for a replace operation
227 */
228#define OBJ_FL_SIL_FORCE_REPLACE_REPLAY bit6
229
230/* indicates that this object is an anyxml object that is
231 * really a ywx:datapath node. The object path-expr will
232 * be sent in XML instances of the object.
233 * (Like object Location header)
234 */
235#define OBJ_FL_DATAPATH bit7
236
237/* indicates that is object has get2 callbacks registered
238 * either for 1 or more submodules. This flag is
239 * set and cleared dynamically so do not cache the value
240 */
241#define OBJ_FL_REMOTE_GET2 bit8
242
243/* indicates the 'units' field has been replaced with
244 * a malloced string via deviations, could be a clone
245*/
246#define OBJ_FL_FREE_UNITS bit9
247
248/* indicates the 'typdef' field has been replaced with
249 * a malloced struct via deviations, could be a clone
250*/
251#define OBJ_FL_FREE_TYPDEF bit10
252
253
254/* indicates the object uses the edit2 callback mode */
255#define OBJ_FL_EDIT2_MODE bit11
256
257/* indicates that leafref validation has been disabled for the
258 * object. The leafref will be treated as if it had a
259 * require-instance false; sub-statement
260 */
261#define OBJ_FL_SKIP_LEAFREF bit12
262
263/* indicates that the object yang_hash field contains
264 * the YANG HASH value for the node; hash can be zero
265 * so set this flag to make sure obj->yang_hash field is set
266 */
267#define OBJ_FL_YANG_HASH bit13
268
269/* indicates that the object yang_hash field contains
270 * the rehashed value for the node because of a clash
271 */
272#define OBJ_FL_YANG_REHASH bit14
273
274/* indicates that the cbset (callback set) is malloced
275 * and a simple m__free(cbset) is needed to clean up
276 */
277#define OBJ_FL_CBSET_MALLOCED bit15
278
279/* indicates the object is 1 of the ncx generic templates */
280#define OBJ_FL_GENERIC bit16
281
282/* indicates the object has defaults has been checked */
283/* NOT USED */
284#define OBJ_FL_DEF_DONE bit17
285
286/* indicates the object has defaults (valid if bit17 set) */
287/* NOT USED */
288#define OBJ_FL_DEF bit18
289
290/* indicates the object is an RPC that is OK for library mode */
291#define OBJ_FL_LIBMODE bit19
292
293/* indicates the object contains a smiv2 object identifier */
294#define OBJ_FL_SMIV2_OID bit20
295
296/* indicates object is tagged ywx:no-nvstore */
297#define OBJ_FL_NO_NVSTORE bit21
298
299/* object is tagged ncx:no-sil-delete-children-first */
300#define OBJ_FL_NO_SIL_DELETE_CHILDREN_FIRST bit22
301
302/* object is tagged as a source node in a yangmap nodemap */
303#define OBJ_FL_YANGMAP_SOURCE bit23
304
305/* object is tagged as a target node in a yangmap nodemap */
306#define OBJ_FL_YANGMAP_TARGET bit24
307
308/* object is tagged as a child node in a yangmap nodemap */
309#define OBJ_FL_YANGMAP_CHILD bit25
310
311/* object is tagged as a keymap node in a yangmap nodemap */
312#define OBJ_FL_YANGMAP_KEY bit26
313
314/* indicates that DUP_LOCAL test has been done */
315#define OBJ_FL_DUP_LOCAL_DONE bit27
316
317/* This bit is set in the agt_val_silcall to indicate that the
318 * Transaction Hook is already setup for the object and that
319 * any consecutive attempts to assign the hook to this object
320 * should be skipped
321 */
322#define OBJ_FL_TRANS_HOOK_SET bit29
323
324/* This bit is set to indicate that the sil-test-get-when
325 * override flag is set for the object which is expected
326 * to be an operational data node
327 */
328#define OBJ_FL_GET_WHEN_SET bit30
329
330/* This bit is set to indicate the value of the
331 * override flag and is only used if OBJ_FL_GET_WHEN_SET
332 * bit is set to 1
333 */
334#define OBJ_FL_GET_WHEN bit31
335
336
337/********* xflags2 field in obj_template_t *************/
338 /* xflags2 is a continuation of xflags bits */
339
340/* This bit is set to indicate that the sil-aio-get2
341 * All in One extension flag is set for the object.
342 */
343#define OBJ_FL_AIO_GET2 bit0
344
345/* This flag indicates that this object has All in One children
346 * But itself it does not have this extension setup.
347 * Will be set only if the current object is GET2 object with
348 * GET2 flags setup.
349 *
350 * GET2 object but not All in One object, but a parent of AIO
351 */
352#define OBJ_FL_AIO_PARENT bit1
353
354/* This bit is set to indicate that the sil-aio-get2
355 * All in One extension flag is set for the object and has XML
356 * parameter setup.
357 */
358#define OBJ_FL_AIO_GET2_XML bit2
359
360/* This bit is set to indicate that the sil-aio-get2
361 * All in One extension flag is set for the object and has JSON
362 * parameter setup.
363 */
364#define OBJ_FL_AIO_GET2_JSON bit3
365
366/* This bit is set to check whether the object has Set Default
367 * Hook callback and should invoke it in order to set custom
368 * system default value BUT only if there is no any YANG defaults.
369 */
370#define OBJ_FL_DEF_HOOK bit4
371
372/* This bit indicates that the leaf or leaf-list is really
373 * an openconfig-hashed-value string not a plain string
374 * and not an ncx:password
375 */
376#define OBJ_FL_OC_HASHED_VALUE bit5
377
378/* This bit is set to indicate that the object is NOT OK for nolock-get
379 * Use on config=false nodes that it is not safe to GET in the
380 * PTHREADS build without a rdlock on running
381 */
382#define OBJ_FL_BAN_NOLOCK_GET bit6
383
384/* This bit is set to indicate that the object has Mount Point
385 * TBD: Why is this needed since the rootcb will be set only
386 * if the object is a mount point?
387 */
388#define OBJ_FL_MOUNT_POINT bit7
389
390/* This bit is set if there is a descendant that is a mount point
391 * This is needed so delete or replace operations on the MP or
392 * its ancestor will force SIL and SIL-SA callbacks to be invoked
393 * instead of skipping them.
394 */
395#define OBJ_FL_DESC_MOUNT_POINT bit8
396
397/* indicates the object uses the edit3 callback mode */
398#define OBJ_FL_EDIT3_MODE bit9
399
400
401/* This bit is set if the object has the ywx:hidden-from-cli extension
402 * This is only checked by yp-shell and yangcli-pro.
403 * It is ignored by the server.
404 * This is bit9 in 23.10 release train!
405 */
406#define OBJ_FL_HIDDEN_FROM_CLI bit10
407
408
409/* This bit is set if the object has the ywx:confirm-data extension
410 * This is only checked by yp-shell and yangcli-pro.
411 * It is ignored by the server.
412 */
413#define OBJ_FL_CONFIRM_DATA bit11
414
415
416/* indicates the object uses the edit1 callback mode */
417#define OBJ_FL_EDIT1_MODE bit12
418
419
420/* This bit is set to indicate that the object has a SIL-SA PUSH callback
421 * Use on <operational> datastore for container and list objects
422 * Requires WITH_YCONTROL=1 and SIL-SA PUSH objects registered
423 */
424#define OBJ_FL_SA_PUSH bit13
425
426
427/* This bit is set to indicate that the current OBJ has
428 * oper data set for the node.
429 */
430#define OBJ_FL_OPER_DATA bit14
431
432
433
434/********* uflags field in obj_template_t *************/
435
436/* This field represents the user flags and no system bits
437 * are defined for this field. It is used by yang_obj_cb
438 * callback functions to set user-specific flags
439 */
440
441/********* silflags field in obj_template_t *************/
442
443/* This bit is set in agt_rpc to indicate the RPC is
444 * currently being invoked; If another session attempts
445 * to invoke the RPC while busy, and the obj_is_exclusive_rpc
446 * the RPC request will be rejected by the server
447 */
448#define OBJ_FL_SIL_BUSY bit0
449
450#define OBJ_TYPE(OBJ) (OBJ)->objtype
451
452#define OBJ_INDEX(OBJ) (OBJ)->index
453
454/* mark the object as a top object since the yang_obj does
455 * not catch top-level uses from a grouping as a top object
456 */
457#define OBJ_SET_TOP(OBJ) (OBJ)->flags |= OBJ_FL_TOP
458
459#define OBJ_SET_SIL_BUSY(OBJ) (OBJ)->silflags |= OBJ_FL_SIL_BUSY
460
461#define OBJ_CLEAR_SIL_BUSY(OBJ) (OBJ)->silflags &= ~OBJ_FL_SIL_BUSY
462
463#define OBJ_IS_SIL_BUSY(OBJ) ((OBJ)->silflags & OBJ_FL_SIL_BUSY)
464
465#define OBJ_GET_CBSET(OBJ) (OBJ)->cbset
466
467
468/* Get2 support */
469#define OBJ_SET_REMOTE_GET2(OBJ) (OBJ)->xflags |= OBJ_FL_REMOTE_GET2
470
471#define OBJ_CLEAR_REMOTE_GET2(OBJ) (OBJ)->xflags &= ~OBJ_FL_REMOTE_GET2
472
473#define OBJ_HAS_REMOTE_GET2(OBJ) ((OBJ)->xflags & OBJ_FL_REMOTE_GET2)
474
475#define OBJ_SET_GET2CB(OBJ, CB) (OBJ)->get2cb = CB
476
477#define OBJ_GET_GET2CB(OBJ) (getcb_fn2_t)(OBJ)->get2cb
478
479#define OBJ_SET_EDIT2_MODE(OBJ) (OBJ)->xflags |= OBJ_FL_EDIT2_MODE
480#define OBJ_IS_EDIT2_MODE(OBJ) ((OBJ)->xflags & OBJ_FL_EDIT2_MODE)
481#define OBJ_CLEAR_EDIT2_MODE(OBJ) (OBJ)->xflags &= ~OBJ_FL_EDIT2_MODE
482
483
484/* XPath tuning */
485#define OBJ_SET_SKIP_LEAFREF(OBJ) (OBJ)->xflags |= OBJ_FL_SKIP_LEAFREF
486
487#define OBJ_IS_SKIP_LEAFREF(OBJ) ((OBJ)->xflags & OBJ_FL_SKIP_LEAFREF)
488
489
490
491/* Object YANG Hash */
492#define OBJ_SET_YANG_HASH(OBJ) (OBJ)->xflags |= OBJ_FL_YANG_HASH
493
494#define OBJ_IS_YANG_HASH(OBJ) ((OBJ)->xflags & OBJ_FL_YANG_HASH)
495
496
497/* Object Rehash */
498#define OBJ_SET_YANG_REHASH(OBJ) (OBJ)->xflags |= OBJ_FL_YANG_REHASH
499
500#define OBJ_IS_YANG_REHASH(OBJ) ((OBJ)->xflags & OBJ_FL_YANG_REHASH)
501
502
503/* CBSET Malloced */
504#define OBJ_SET_CBSET_MALLOCED(OBJ) (OBJ)->xflags |= OBJ_FL_CBSET_MALLOCED
505
506#define OBJ_IS_CBSET_MALLOCED(OBJ) ((OBJ)->xflags & OBJ_FL_CBSET_MALLOCED)
507
508#define OBJ_CLEAR_CBSET_MALLOCED(OBJ) (OBJ)->xflags &= ~OBJ_FL_CBSET_MALLOCED
509
510/* Object is generic */
511#define OBJ_SET_GENERIC(OBJ) (OBJ)->xflags |= OBJ_FL_GENERIC
512
513#define OBJ_IS_GENERIC(OBJ) ((OBJ)->xflags & OBJ_FL_GENERIC)
514
515
516/* Object or children have a default value */
517/* NOT USED */
518#define OBJ_SET_DEF_DONE(OBJ) (OBJ)->xflags |= OBJ_FL_DEF_DONE
519
520/* NOT USED */
521#define OBJ_IS_DEF_DONE(OBJ) ((OBJ)->xflags & OBJ_FL_DEF_DONE)
522
523/* NOT USED */
524#define OBJ_SET_DEF(OBJ) (OBJ)->xflags |= OBJ_FL_DEF
525
526/* NOT USED */
527#define OBJ_IS_DEF(OBJ) ((OBJ)->xflags & OBJ_FL_DEF)
528
529/* Object is an RPC that is allowed in library mode */
530#define OBJ_SET_LIBMODE(OBJ) (OBJ)->xflags |= OBJ_FL_LIBMODE
531
532#define OBJ_IS_LIBMODE(OBJ) ((OBJ)->xflags & OBJ_FL_LIBMODE)
533
534#define OBJ_USER_FLAGS(OBJ) (OBJ)->uflags
535
536/* get the object pointer in an obj_key_t */
537#define OBJ_KEY_OBJ(K) (K)->keyobj
538
539/* get the current edit transaction id;
540 * -- changed on each transaction this object is tested
541 */
542#define OBJ_EDIT_TXID(OBJ) (OBJ)->edit_txid
543
544#define OBJ_EXTR_MUST_TXID(OBJ) (OBJ)->must_txid
545#define OBJ_EXTR_WHEN_TXID(OBJ) (OBJ)->when_txid
546#define OBJ_EXTR_LEAFREF_TXID(OBJ) (OBJ)->leafref_txid
547#define OBJ_EXTR_DEF_TXID(OBJ) (OBJ)->def_txid
548#define OBJ_EXTR_DEF_WHEN_TXID(OBJ) (OBJ)->def_when_txid
549
550
551/* Object is flagged no-nvstore */
552#define OBJ_SET_NO_NVSTORE(OBJ) (OBJ)->xflags |= OBJ_FL_NO_NVSTORE
553
554#define OBJ_IS_NO_NVSTORE(OBJ) ((OBJ)->xflags & OBJ_FL_NO_NVSTORE)
555
556
557/* Object is flagged yangmap-source */
558#define OBJ_SET_YANGMAP_SOURCE(OBJ) \
559 (OBJ)->xflags |= OBJ_FL_YANGMAP_SOURCE
560
561#define OBJ_IS_YANGMAP_SOURCE(OBJ) \
562 ((OBJ)->xflags & OBJ_FL_YANGMAP_SOURCE)
563
564
565/* Object is flagged yangmap-target */
566#define OBJ_SET_YANGMAP_TARGET(OBJ) \
567 (OBJ)->xflags |= OBJ_FL_YANGMAP_TARGET
568
569#define OBJ_IS_YANGMAP_TARGET(OBJ) \
570 ((OBJ)->xflags & OBJ_FL_YANGMAP_TARGET)
571
572/* Object is flagged yangmap-childmap */
573#define OBJ_SET_YANGMAP_CHILD(OBJ) \
574 (OBJ)->xflags |= OBJ_FL_YANGMAP_CHILD
575
576#define OBJ_IS_YANGMAP_CHILD(OBJ) \
577 ((OBJ)->xflags & OBJ_FL_YANGMAP_CHILD)
578
579/* Object is flagged yangmap-keymap */
580#define OBJ_SET_YANGMAP_KEY(OBJ) \
581 (OBJ)->xflags |= OBJ_FL_YANGMAP_KEY
582
583#define OBJ_IS_YANGMAP_KEY(OBJ) \
584 ((OBJ)->xflags & OBJ_FL_YANGMAP_KEY)
585
586/* if OBJ_IS_YANGMAP_SOURCE : yangmap_cb == nodemap_t
587 * if OBJ_IS_YANGMAP_TARGET : yangmap_cb == nodemap_t
588 * if OBJ_IS_YANGMAP_CHILD : yangmap_cb == childmap_t
589 * if OBJ_IS_YANGMAP_KEY : yangmap_cb == keymap_t
590 */
591#define OBJ_YANGMAP_CB(OBJ) (OBJ)->yangmap_cb
592
593/* Object DUP_LOCAL test has been done */
594#define OBJ_SET_DUP_LOCAL_DONE(OBJ) \
595 (OBJ)->xflags |= OBJ_FL_DUP_LOCAL_DONE
596
597#define OBJ_IS_DUP_LOCAL_DONE(OBJ) \
598 ((OBJ)->xflags & OBJ_FL_DUP_LOCAL_DONE)
599
600
601#define OBJ_RPC_SUPPORTED(OBJ) (OBJ)->def.rpc->supported
602
603
604/* Trans Hook assignment bits */
605#define OBJ_SET_TRANS_HOOK_SET(OBJ) (OBJ)->xflags |= OBJ_FL_TRANS_HOOK_SET
606#define OBJ_IS_TRANS_HOOK_SET(OBJ) ((OBJ)->xflags & OBJ_FL_TRANS_HOOK_SET)
607#define OBJ_CLEAR_TRANS_HOOK_SET(OBJ) (OBJ)->xflags &= ~OBJ_FL_TRANS_HOOK_SET
608
609
610/* All in One assignment bits */
611#define OBJ_SET_AIO_GET2(OBJ) (OBJ)->xflags2 |= OBJ_FL_AIO_GET2
612#define OBJ_IS_AIO_GET2(OBJ) ((OBJ)->xflags2 & OBJ_FL_AIO_GET2)
613#define OBJ_CLEAR_AIO_GET2(OBJ) (OBJ)->xflags2 &= ~ OBJ_FL_AIO_GET2
614
615/* GET2 object but not All in One object, but a parent of AIO */
616#define OBJ_SET_AIO_PARENT(OBJ) (OBJ)->xflags2 |= OBJ_FL_AIO_PARENT
617#define OBJ_IS_AIO_PARENT(OBJ) ((OBJ)->xflags2 & OBJ_FL_AIO_PARENT)
618#define OBJ_CLEAR_AIO_PARENT(OBJ) (OBJ)->xflags2 &= ~ OBJ_FL_AIO_PARENT
619
620/* AIO with XML/JSON support flags*/
621#define OBJ_SET_AIO_GET2_XML(OBJ) (OBJ)->xflags2 |= OBJ_FL_AIO_GET2_XML
622#define OBJ_IS_AIO_GET2_XML(OBJ) ((OBJ)->xflags2 & OBJ_FL_AIO_GET2_XML)
623
624#define OBJ_SET_AIO_GET2_JSON(OBJ) (OBJ)->xflags2 |= OBJ_FL_AIO_GET2_JSON
625#define OBJ_IS_AIO_GET2_JSON(OBJ) ((OBJ)->xflags2 & OBJ_FL_AIO_GET2_JSON)
626
627/* Dynamic Default Hook assignment bits */
628#define OBJ_SET_DEF_HOOK(OBJ) (OBJ)->xflags2 |= OBJ_FL_DEF_HOOK
629#define OBJ_IS_DEF_HOOK(OBJ) ((OBJ)->xflags2 & OBJ_FL_DEF_HOOK)
630#define OBJ_CLEAR_DEF_HOOK(OBJ) (OBJ)->xflags2 &= ~OBJ_FL_DEF_HOOK
631#define OBJ_GET_DEF_HOOK_CB(OBJ) (ncx_def_hook_cbfn_t)(OBJ)->def_hook_cb
632
633/* openconfig-hashed-value bit */
634#define OBJ_SET_OC_HASHED_VALUE(OBJ) (OBJ)->xflags2 |= OBJ_FL_OC_HASHED_VALUE
635#define OBJ_IS_OC_HASHED_VALUE(OBJ) ((OBJ)->xflags2 & OBJ_FL_OC_HASHED_VALUE)
636
637/* Static Ban Nock GET assignment bits */
638#define OBJ_SET_BAN_NOLOCK_GET(OBJ) (OBJ)->xflags2 |= OBJ_FL_BAN_NOLOCK_GET
639#define OBJ_IS_BAN_NOLOCK_GET(OBJ) ((OBJ)->xflags2 & OBJ_FL_BAN_NOLOCK_GET)
640
641/* Mount Point bit */
642#define OBJ_SET_MOUNT_POINT(OBJ) (OBJ)->xflags2 |= OBJ_FL_MOUNT_POINT
643#define OBJ_IS_MOUNT_POINT(OBJ) ((OBJ)->xflags2 & OBJ_FL_MOUNT_POINT)
644
645/* Mount Point Support Utility functions */
646#define OBJ_SET_ROOTCB(OBJ, ROOTCB) (OBJ)->rootcb = ROOTCB
647#define OBJ_GET_ROOTCB(OBJ) (OBJ)->rootcb
648
649/* Mount Point Descendant bit */
650#define OBJ_SET_DESC_MOUNT_POINT(OBJ) (OBJ)->xflags2 |= OBJ_FL_DESC_MOUNT_POINT
651#define OBJ_IS_DESC_MOUNT_POINT(OBJ) ((OBJ)->xflags2 & OBJ_FL_DESC_MOUNT_POINT)
652
653/* SIL-SA PUSH Callback Registered */
654#define OBJ_SET_SA_PUSH(OBJ) (OBJ)->xflags2 |= OBJ_FL_SA_PUSH
655#define OBJ_CLEAR_SA_PUSH(OBJ) (OBJ)->xflags2 &= ~OBJ_FL_SA_PUSH
656#define OBJ_IS_SA_PUSH(OBJ) ((OBJ)->xflags2 & OBJ_FL_SA_PUSH)
657
659#define OBJ_BOOL_EVAL_CB(OBJ) (OBJ)->bool_eval_cb
660
662#define OBJ_SET_EDIT3_MODE(OBJ) (OBJ)->xflags2 |= OBJ_FL_EDIT3_MODE
663#define OBJ_IS_EDIT3_MODE(OBJ) ((OBJ)->xflags2 & OBJ_FL_EDIT3_MODE)
664#define OBJ_CLEAR_EDIT3_MODE(OBJ) (OBJ)->xflags2 &= ~OBJ_FL_EDIT3_MODE
665
667#define OBJ_SET_HIDDEN_FROM_CLI(OBJ) (OBJ)->xflags2 |= OBJ_FL_HIDDEN_FROM_CLI
668#define OBJ_IS_HIDDEN_FROM_CLI(OBJ) ((OBJ)->xflags2 & OBJ_FL_HIDDEN_FROM_CLI)
669
671#define OBJ_SET_CONFIRM_DATA(OBJ) (OBJ)->xflags2 |= OBJ_FL_CONFIRM_DATA
672#define OBJ_IS_CONFIRM_DATA(OBJ) ((OBJ)->xflags2 & OBJ_FL_CONFIRM_DATA)
673
675#define OBJ_SET_EDIT1_MODE(OBJ) (OBJ)->xflags2 |= OBJ_FL_EDIT1_MODE
676#define OBJ_IS_EDIT1_MODE(OBJ) ((OBJ)->xflags2 & OBJ_FL_EDIT1_MODE)
677#define OBJ_CLEAR_EDIT1_MODE(OBJ) (OBJ)->xflags2 &= ~OBJ_FL_EDIT1_MODE
678
680#define OBJ_TABPARMS(OBJ) (OBJ)->tabparms
681
682/* OPERATIONAL Data setup */
683#define OBJ_SET_OPER_DATA(OBJ) (OBJ)->xflags2 |= OBJ_FL_OPER_DATA
684#define OBJ_CLEAR_OPER_DATA(OBJ) (OBJ)->xflags2 &= ~OBJ_FL_OPER_DATA
685#define OBJ_IS_OPER_DATA(OBJ) ((OBJ)->xflags2 & OBJ_FL_OPER_DATA)
686
687
688/********************************************************************
689* *
690* T Y P E S *
691* *
692*********************************************************************/
693
694// Header Only
717typedef enum obj_type_t_ {
722
728
731
734
737
743
759
767
778
787
788
804
807
815
816
817#define OBJ_TYP_LAST OBJ_TYP_ACTION
818
824typedef uint16 obj_index_t;
825
826
828typedef enum obj_augtype_t_ {
835
836
838typedef struct obj_key_t_ {
839 dlq_hdr_t qhdr;
840 struct obj_template_t_ *keyobj;
841 boolean seen;
842} YPACK obj_key_t;
843
844
846typedef struct obj_defval_tk_t_ {
847 dlq_hdr_t qhdr;
848 xmlChar *def;
850} YPACK obj_defval_tk_t;
851
852
854typedef struct obj_unique_comp_t_ {
855 dlq_hdr_t qhdr;
856 struct obj_template_t_ *unobj;
857 xmlChar *xpath;
858 boolean isduplicate;
859} YPACK obj_unique_comp_t;
860
861
863typedef struct obj_unique_t_ {
864 dlq_hdr_t qhdr;
865 xmlChar *xpath;
866 dlq_hdr_t compQ;
867 boolean seen;
868 boolean isconfig;
870} YPACK obj_unique_t;
871
872
874typedef struct obj_container_t_ {
876 xmlChar *name;
877
879 xmlChar *descr;
880
882 xmlChar *ref;
883
885 xmlChar *presence;
886 dlq_hdr_t *typedefQ;
887 dlq_hdr_t *groupingQ;
888 dlq_hdr_t *datadefQ;
890 dlq_hdr_t mustQ;
891 struct obj_template_t_ *defaultparm;
892 obj_index_t last_index;
893} YPACK obj_container_t;
894
895
897typedef struct obj_leaf_t_ {
899 xmlChar *name;
900
902 xmlChar *units;
903
905 xmlChar *defval;
906
908 xmlChar *descr;
909
911 xmlChar *ref;
912
915
918
920 uint16 keynum;
921
922 dlq_hdr_t mustQ;
925 dlq_hdr_t leafrefQ;
932 dlq_hdr_t uniqrefQ;
935 struct obj_template_t_ *leafrefobj;
936
937} YPACK obj_leaf_t;
938
939
941typedef struct obj_leaflist_t_ {
943 xmlChar *name;
944
946 xmlChar *units;
947
949 xmlChar *descr;
950
952 xmlChar *ref;
953
956
958 boolean defset;
959 boolean ordersys;
960 boolean minset;
961 uint32 minelems;
962 boolean maxset;
963 uint32 maxelems;
965 dlq_hdr_t mustQ;
966 dlq_hdr_t leafrefQ;
967 dlq_hdr_t defvalQ;
970 struct obj_template_t_ *leafrefobj;
971
973} YPACK obj_leaflist_t;
974
975
977typedef struct obj_list_t_ {
979 xmlChar *name;
980
982 xmlChar *keystr;
983
985 xmlChar *descr;
986
988 xmlChar *ref;
989 dlq_hdr_t *typedefQ;
990 dlq_hdr_t *groupingQ;
991 dlq_hdr_t *datadefQ;
992 dlq_hdr_t keyQ;
993 dlq_hdr_t uniqueQ;
994 boolean ordersys;
995 boolean minset;
996 uint32 minelems;
997 boolean maxset;
998 uint32 maxelems;
1000 dlq_hdr_t mustQ;
1004
1007
1009} YPACK obj_list_t;
1010
1011
1013typedef struct obj_choice_t_ {
1014 xmlChar *name;
1015 xmlChar *defval;
1018 xmlChar *descr;
1019
1021 xmlChar *ref;
1022 dlq_hdr_t *caseQ;
1023 boolean caseQclone;
1025} YPACK obj_choice_t;
1026
1027
1029typedef struct obj_case_t_ {
1030 xmlChar *name;
1033 xmlChar *descr;
1034
1036 xmlChar *ref;
1037
1038 dlq_hdr_t *datadefQ;
1042 boolean nameclone;
1044} YPACK obj_case_t;
1045
1046
1048typedef struct obj_uses_t_ {
1049 xmlChar *prefix;
1050 xmlChar *name;
1053 xmlChar *descr;
1054
1056 xmlChar *ref;
1058 dlq_hdr_t *datadefQ;
1060 boolean expand_done;
1061 boolean refine_done;
1062} YPACK obj_uses_t;
1063
1064
1066typedef struct obj_refine_t_ {
1068 xmlChar *target;
1069
1071 struct obj_template_t_ *targobj;
1072
1074 xmlChar *descr;
1075
1083
1085 xmlChar *ref;
1086
1089
1091 xmlChar *presence;
1092
1095
1096 dlq_hdr_t defval_tkQ;
1100
1103 uint32 minelems;
1105 uint32 maxelems;
1107 dlq_hdr_t mustQ;
1108} YPACK obj_refine_t;
1109
1110
1112typedef struct obj_rpcio_t_ {
1113 xmlChar *name;
1114 dlq_hdr_t *typedefQ;
1115 dlq_hdr_t *groupingQ;
1116 dlq_hdr_t datadefQ;
1117 dlq_hdr_t mustQ;
1122 boolean is_input;
1123
1127 struct obj_template_t_ *defaultparm;
1128} YPACK obj_rpcio_t;
1129
1130
1132typedef struct obj_rpc_t_ {
1134 xmlChar *name;
1135
1137 xmlChar *descr;
1138
1140 xmlChar *ref;
1141
1143 dlq_hdr_t *typedefQ;
1144 dlq_hdr_t *groupingQ;
1145 dlq_hdr_t datadefQ;
1146 boolean is_action;
1150 boolean supported;
1151} YPACK obj_rpc_t;
1152
1153
1155typedef struct obj_augment_t_ {
1157 xmlChar *target;
1158
1160 xmlChar *descr;
1161
1163 xmlChar *ref;
1164
1166 struct obj_template_t_ *targobj;
1167
1171 dlq_hdr_t datadefQ;
1172 uint16 depth;
1173} YPACK obj_augment_t;
1174
1175
1177typedef struct obj_notif_t_ {
1179 xmlChar *name;
1180
1182 xmlChar *descr;
1183
1185 xmlChar *ref;
1187 dlq_hdr_t *typedefQ;
1188 dlq_hdr_t *groupingQ;
1189 dlq_hdr_t datadefQ;
1190 dlq_hdr_t mustQ;
1193 boolean in_data;
1194} YPACK obj_notif_t;
1195
1196
1198typedef struct obj_iffeature_ptr_t_ {
1199 dlq_hdr_t qhdr;
1201} YPACK obj_iffeature_ptr_t;
1202
1203
1205typedef struct obj_errmsg_filter_t_ {
1206 dlq_hdr_t qhdr;
1207 xmlChar *matchstr;
1208 boolean is_errortag;
1209} YPACK obj_errmsg_filter_t;
1210
1211
1213typedef struct obj_errmsg_parm_t_ {
1214 dlq_hdr_t qhdr;
1215 xmlChar *path;
1218 uint32 len;
1219
1221 xmlChar *valstr;
1222} YPACK obj_errmsg_parm_t;
1223
1224
1226typedef struct obj_errmsg_t_ {
1227 dlq_hdr_t qhdr;
1228 xmlChar *basestr;
1229 xmlChar *langstr;
1230 dlq_hdr_t parmQ;
1231 dlq_hdr_t filterQ;
1232} YPACK obj_errmsg_t;
1233
1234
1236typedef unsigned long oid_t;
1237
1244typedef struct obj_oid_t_ {
1245 uint8 cnt;
1247} YPACK obj_oid_t;
1248
1249
1251typedef uint8 obj_testflags_t;
1252
1253
1255typedef struct obj_tabparms_t_ {
1257 xmlChar *label1;
1258
1260 xmlChar *label2;
1261
1263 xmlChar *label3;
1264
1266 uint8 len1;
1267
1269 uint8 len2;
1270
1272 uint8 len3;
1273
1276
1277} YPACK obj_tabparms_t;
1278
1279
1284typedef struct obj_template_t_ {
1285 dlq_hdr_t qhdr;
1288 uint32 yang_hash;
1290 uint32 flags;
1291 uint32 xflags;
1292 uint32 xflags2;
1294 uint32 uflags;
1295 uint8 silflags;
1307 struct obj_template_t_ *parent;
1308 struct obj_template_t_ *usesobj;
1309 struct obj_template_t_ *augobj;
1311 struct xpath_pcb_t_ *when;
1312 dlq_hdr_t metadataQ;
1313 dlq_hdr_t appinfoQ;
1314 dlq_hdr_t iffeatureQ;
1320
1322 dlq_hdr_t *dataruleQ;
1323
1331 void *cbset;
1332
1334 void *get2cb;
1335
1343 struct ncx_module_t_ *mod;
1344
1347
1349 struct xpath_pcb_t_ *xpath_backptr[OBJ_NUM_XPATH_BACKPTRS];
1350
1352 dlq_hdr_t xpath_backptrQ; // backptr to xpath_pcb_t
1353
1359
1361 dlq_hdr_t *errmsgQ; // Q of obj_errmsg_t
1362
1368
1371
1374
1377
1380
1390
1402
1404 union def_ {
1405 obj_container_t *container;
1406 obj_leaf_t *leaf;
1407 obj_leaflist_t *leaflist;
1408 obj_list_t *list;
1409 obj_choice_t *choic;
1410 obj_case_t *cas;
1411 obj_uses_t *uses;
1412 obj_refine_t *refine;
1413 obj_augment_t *augment;
1414 obj_rpc_t *rpc;
1415 obj_rpcio_t *rpcio;
1416 obj_notif_t *notif;
1417 } def;
1418
1423
1424
1430 void *bool_eval_cb; // xpath_bool_eval_fn_t
1431
1434
1439 ncx_sid_t yang_sid;
1440
1443
1446
1447} YPACK obj_template_t;
1448
1449
1451typedef struct obj_metadata_t_ {
1452 dlq_hdr_t qhdr;
1453 struct obj_template_t_ *parent;
1454 xmlChar *name;
1458 boolean typdef_copy;
1459} YPACK obj_metadata_t;
1460
1461
1463typedef enum obj_deviate_arg_t_ {
1470
1471
1473typedef struct obj_deviate_t_ {
1474 dlq_hdr_t qhdr;
1483
1485 boolean empty;
1486
1489
1492
1495
1498
1500 xmlChar *units;
1501
1504
1506 dlq_hdr_t defval_tkQ;
1507
1509 boolean config;
1510
1513
1515 boolean mandatory;
1516
1519
1521 uint32 minelems;
1525 uint32 maxelems;
1527 dlq_hdr_t mustQ;
1528 dlq_hdr_t uniqueQ;
1529 dlq_hdr_t appinfoQ;
1530} YPACK obj_deviate_t;
1531
1532
1534typedef struct obj_deviation_t_ {
1535 dlq_hdr_t qhdr;
1536 xmlChar *target;
1537 xmlChar *targmodname;
1541 xmlChar *descr;
1542
1544 xmlChar *ref;
1545
1548 xmlChar *devmodname;
1549 boolean empty;
1550 boolean annotation;
1552 dlq_hdr_t deviateQ;
1553 dlq_hdr_t appinfoQ;
1554} YPACK obj_deviation_t;
1555
1556
1567typedef boolean
1569 void *cookie1,
1570 void *cookie2,
1571 boolean nonconfig_warn);
1572
1573
1574
1575
1587typedef boolean
1589 const xmlChar *objname,
1590 void *cookie);
1591
1592
1593
1594#define OBJ_SET_TESTFLAGS(OBJ, FL) (OBJ)->testflags = FL
1595
1596#define OBJ_GET_TESTFLAGS(OBJ) (OBJ)->testflags
1597
1598#define OBJ_SET_DESC_TESTFLAGS(OBJ, FL) (OBJ)->desc_testflags = FL
1599
1600#define OBJ_GET_DESC_TESTFLAGS(OBJ) (OBJ)->desc_testflags
1601
1602#define OBJ_UPDATE_DESC_TESTFLAGS(OBJ, FL) (OBJ)->desc_testflags |= FL
1603
1606/********************************************************************
1607* *
1608* F U N C T I O N S *
1609* *
1610*********************************************************************/
1611
1628extern obj_template_t *
1629 obj_new_template (obj_type_t objtype);
1630
1631
1641extern void
1643
1644
1657extern obj_template_t *
1658 obj_find_template (dlq_hdr_t *que,
1659 const xmlChar *modname,
1660 const xmlChar *objname);
1661
1662
1674extern obj_template_t *
1675 obj_find_schema_template ( dlq_hdr_t *que,
1676 const xmlChar *modname,
1677 const xmlChar *objname );
1678
1679
1691extern const obj_template_t *
1692 obj_find_template_con (dlq_hdr_t *que,
1693 const xmlChar *modname,
1694 const xmlChar *objname);
1695
1696
1708extern obj_template_t *
1709 obj_find_template_test (dlq_hdr_t *que,
1710 const xmlChar *modname,
1711 const xmlChar *objname);
1712
1713
1727extern obj_template_t *
1729 const xmlChar *modname,
1730 const xmlChar *objname);
1731
1732
1748extern obj_template_t *
1750 const xmlChar *modname,
1751 const xmlChar *objname);
1752
1753
1775extern obj_template_t *
1777 const xmlChar *modname,
1778 const xmlChar *objname,
1779 ncx_name_match_t match_names,
1780 boolean alt_names,
1781 boolean dataonly,
1782 status_t *retres);
1783
1784
1798extern obj_template_t *
1800 const xmlChar *modname,
1801 const xmlChar *objname);
1802
1803
1817extern obj_template_t *
1819 const xmlChar *objname,
1820 obj_tester_fn_t tester_fn,
1821 void *cookie);
1822
1839extern obj_template_t *
1841 const xmlChar *modname,
1842 const xmlChar *objname);
1843
1844
1861extern obj_template_t *
1863 const xmlChar *modname,
1864 const xmlChar *objname);
1865
1866
1883extern obj_template_t *
1885 const xmlChar *modname,
1886 const xmlChar *objname);
1887
1888
1903extern obj_template_t *
1905 xmlns_id_t nsid,
1906 const xmlChar *objname);
1907
1908
1933extern obj_template_t *
1935 const xmlChar *modname,
1936 const xmlChar *objname,
1937 ncx_name_match_t match_names,
1938 boolean alt_names,
1939 boolean dataonly,
1940 status_t *retres);
1941
1942
1953extern obj_template_t *
1955 const xmlChar *modname,
1956 const xmlChar *objname,
1957 uint32 objnamelen);
1958
1959
1981extern obj_template_t *
1983 const xmlChar *modname,
1984 const xmlChar *objname,
1985 uint32 objnamelen,
1986 uint32 *matchcount);
1987
1988
1999extern obj_template_t *
2001
2002
2013extern obj_template_t *
2015
2016
2027extern obj_template_t *
2029
2030
2045extern obj_template_t *
2047
2048
2059extern obj_template_t *
2061
2062
2073extern obj_template_t *
2075
2076
2087extern obj_template_t *
2089
2090
2101extern obj_template_t *
2103
2104
2119extern obj_template_t *
2121
2122
2133extern obj_template_t *
2135
2136
2147extern obj_template_t *
2149
2150
2161extern obj_template_t *
2163
2164
2176extern obj_template_t *
2178
2179
2191extern obj_template_t *
2193
2194
2211extern obj_template_t *
2213 boolean stopnext);
2214
2215
2251extern boolean
2253 obj_walker_fn_t walkerfn,
2254 void *cookie1,
2255 void *cookie2,
2256 obj_template_t *startnode,
2257 const xmlChar *modname,
2258 const xmlChar *childname,
2259 boolean configonly,
2260 boolean textmode,
2261 boolean useroot);
2262
2263
2303extern boolean
2305 obj_walker_fn_t walkerfn,
2306 void *cookie1,
2307 void *cookie2,
2308 obj_template_t *startnode,
2309 const xmlChar *modname,
2310 const xmlChar *name,
2311 boolean configonly,
2312 boolean textmode,
2313 boolean useroot,
2314 boolean orself,
2315 boolean *fncalled);
2316
2317
2357extern boolean
2359 obj_walker_fn_t walkerfn,
2360 void *cookie1,
2361 void *cookie2,
2362 obj_template_t *startnode,
2363 const xmlChar *modname,
2364 const xmlChar *name,
2365 boolean configonly,
2366 boolean textmode,
2367 boolean useroot,
2368 boolean orself,
2369 boolean *fncalled);
2370
2371
2414extern boolean
2416 obj_walker_fn_t walkerfn,
2417 void *cookie1,
2418 void *cookie2,
2419 obj_template_t *startnode,
2420 const xmlChar *modname,
2421 const xmlChar *name,
2422 boolean configonly,
2423 boolean dblslash,
2424 boolean textmode,
2425 boolean useroot,
2426 ncx_xpath_axis_t axis,
2427 boolean *fncalled);
2428
2429
2438extern obj_case_t *
2440 const xmlChar *modname,
2441 const xmlChar *casname);
2442
2443
2444
2455extern obj_template_t *
2457 const xmlChar *name);
2458
2459
2465extern void
2466 obj_clean_datadefQ (dlq_hdr_t *que);
2467
2468
2476extern typ_template_t *
2478 const xmlChar *typname);
2479
2480
2487extern typ_template_t *
2489
2490
2498extern grp_template_t *
2500 const xmlChar *grpname);
2501
2508extern grp_template_t *
2510
2511
2527extern status_t
2528 obj_set_named_type (void *pcb, // yang_pcb_t
2529 tk_chain_t *tkc,
2530 ncx_module_t *mod,
2531 const xmlChar *typname,
2532 typ_def_t *typdef,
2533 obj_template_t *parent,
2534 grp_template_t *grp);
2535
2536
2559extern obj_template_t *
2561 obj_template_t *srcobj,
2562 dlq_hdr_t *mobjQ);
2563
2564
2578extern status_t
2580 obj_template_t *mobj);
2581
2582
2583
2608extern obj_template_t *
2610 obj_template_t *srcobj,
2611 dlq_hdr_t *mobjQ,
2612 boolean sm_clone);
2613
2614
2639extern obj_template_t *
2641 obj_template_t *srcobj,
2642 dlq_hdr_t *mobjQ);
2643
2644
2645/******************** obj_unique_t ********************/
2646
2647
2653extern obj_unique_t *
2654 obj_new_unique (void);
2655
2656
2662extern void
2664
2665
2671extern void
2673
2674
2680extern void
2682
2683
2689extern obj_unique_comp_t *
2690 obj_new_unique_comp (void);
2691
2692
2698extern void
2700
2701
2710extern obj_unique_t *
2711 obj_find_unique (dlq_hdr_t *que,
2712 const xmlChar *xpath);
2713
2714
2721extern obj_unique_t *
2723
2724
2731extern obj_unique_t *
2733
2734
2741extern obj_unique_comp_t *
2743
2744
2751extern obj_unique_comp_t *
2753
2754
2760extern obj_key_t *
2761 obj_new_key (void);
2762
2763
2769extern void
2770 obj_free_key (obj_key_t *key);
2771
2772
2780extern obj_key_t *
2781 obj_find_key (dlq_hdr_t *que,
2782 const xmlChar *keycompname);
2783
2784
2793extern obj_key_t *
2794 obj_find_key2 (dlq_hdr_t *que,
2795 obj_template_t *keyobj);
2796
2797
2804extern obj_key_t *
2806
2807
2814extern obj_key_t *
2816
2817
2824extern const obj_key_t *
2825 obj_first_ckey (const obj_template_t *obj);
2826
2827
2834extern obj_key_t *
2835 obj_next_key (obj_key_t *objkey);
2836
2837
2844extern obj_key_t *
2845 obj_prev_key (obj_key_t *objkey);
2846
2847
2854extern const obj_key_t *
2855 obj_next_ckey (const obj_key_t *objkey);
2856
2857
2864extern uint32
2865 obj_key_count (const obj_template_t *obj);
2866
2867
2875extern uint32
2877
2878
2892extern void
2894 void *cookie1,
2895 void *cookie2,
2896 obj_walker_fn_t walkerfn);
2897
2898
2905extern boolean
2906 obj_any_rpcs (const dlq_hdr_t *datadefQ);
2907
2908
2915extern boolean
2916 obj_any_notifs (const dlq_hdr_t *datadefQ);
2917
2918
2924extern obj_deviate_t *
2925 obj_new_deviate (void);
2926
2927
2933extern void
2935
2936
2943extern const xmlChar *
2945
2946
2952extern obj_deviation_t *
2953 obj_new_deviation (void);
2954
2955
2961extern void
2963
2964
2970extern void
2971 obj_clean_deviationQ (dlq_hdr_t *deviationQ);
2972
2973
2982extern status_t
2984 xmlChar **buff);
2985
2986
2996extern status_t
2997 obj_gen_object_id_prefix (const obj_template_t *obj, xmlChar **buff);
2998
2999
3000
3011extern status_t
3013 xmlChar **buff);
3014
3015
3026extern status_t
3028 const obj_template_t *obj,
3029 xmlChar **buff);
3030
3031
3044extern status_t
3046 xmlChar **buff);
3047
3048
3058 xmlChar **buff);
3059
3060
3071 const obj_template_t *stopobj,
3072 xmlChar **buff);
3073
3074
3087extern status_t
3089 const obj_template_t *obj,
3090 xmlChar **buff);
3091
3092
3108extern status_t
3110 xmlChar *buff,
3111 uint32 bufflen,
3112 uint32 *reallen);
3113
3114
3128extern status_t
3130 xmlChar *buff,
3131 uint32 bufflen,
3132 uint32 *reallen);
3133
3134
3135
3136
3146extern status_t
3148 xmlChar **buff);
3149
3150
3161extern status_t
3163 xmlChar **buff);
3164
3165
3172extern const xmlChar *
3173 obj_get_name (const obj_template_t *obj);
3174
3175
3183extern status_t
3185 const xmlChar *objname);
3186
3187
3200extern boolean
3201 obj_has_name (const obj_template_t *obj);
3202
3203
3212extern boolean
3214
3215
3222extern ncx_status_t
3223 obj_get_status (const obj_template_t *obj);
3224
3225
3232extern const xmlChar *
3234
3235
3245extern const xmlChar *
3247
3248
3256extern const xmlChar *
3258
3259
3267extern const xmlChar *
3269
3270
3277extern const void *
3279
3280
3287extern const xmlChar *
3288 obj_get_reference (const obj_template_t *obj);
3289
3290
3298extern const void *
3300
3301
3302#define obj_is_config obj_get_config_flag_deep
3303
3304
3314extern boolean
3316
3317
3331extern boolean
3333 boolean *setflag);
3334
3335
3343extern ncx_access_t
3345
3346
3353extern dlq_hdr_t *
3355
3356
3363extern dlq_hdr_t *
3364 obj_get_mustQ (const obj_template_t *obj);
3365
3366
3373extern dlq_hdr_t *
3374 obj_get_leafrefQ (const obj_template_t *obj);
3375
3376
3386extern const xmlChar *
3387 obj_get_typestr (const obj_template_t *obj);
3388
3389
3396extern dlq_hdr_t *
3398
3399
3406extern const dlq_hdr_t *
3407 obj_get_cdatadefQ (const obj_template_t *obj);
3408
3409
3420extern const xmlChar *
3421 obj_get_default (const obj_template_t *obj);
3422
3423
3432extern const xmlChar *
3434 ncx_backptr_t **thisdef);
3435
3436
3449extern const xmlChar *
3451 ncx_backptr_t *lastdef,
3452 ncx_backptr_t **thisdef);
3453
3454
3461extern obj_template_t *
3463
3464
3474extern boolean
3476
3477
3487extern boolean
3489
3490
3499extern uint32
3500 obj_get_level (const obj_template_t *obj);
3501
3502
3518extern uint32
3519 obj_get_level_mp (const obj_template_t *obj);
3520
3521
3531extern uint32
3533
3534
3544extern boolean
3545 obj_has_typedefs (const obj_template_t *obj);
3546
3547
3555extern typ_def_t *
3557
3558
3566extern typ_def_t *
3568
3569
3577extern const typ_def_t *
3578 obj_get_ctypdef (const obj_template_t *obj);
3579
3580
3587extern ncx_btype_t
3588 obj_get_basetype (const obj_template_t *obj);
3589
3590
3597extern const xmlChar *
3599
3600
3607extern const xmlChar *
3609
3610
3617extern const xmlChar *
3618 obj_get_mod_name (const obj_template_t *obj);
3619
3620
3627extern ncx_module_t *
3629
3630
3637extern boolean
3639
3640
3648extern ncx_module_t *
3650
3651
3658extern const xmlChar *
3660
3661
3668extern const xmlChar *
3669 obj_get_type_name (const obj_template_t *obj);
3670
3671
3678extern xmlns_id_t
3679 obj_get_nsid (const obj_template_t *obj);
3680
3681
3688extern ncx_sid_t
3689 obj_get_yang_sid (const obj_template_t *obj);
3690
3691
3698extern uint32
3700
3707extern ncx_iqual_t
3709
3710
3718extern ncx_iqual_t
3720 boolean required);
3721
3722
3731extern boolean
3733 uint32 *minelems);
3734
3735
3744extern boolean
3746 uint32 *maxelems);
3747
3748
3755extern const xmlChar *
3757
3758
3765extern obj_template_t *
3767
3768
3776extern const obj_template_t *
3777 obj_get_cparent (const obj_template_t *obj);
3778
3779
3787extern obj_template_t *
3789
3790
3800extern const obj_template_t *
3802
3803
3811extern obj_template_t *
3813
3814
3815
3822extern const xmlChar *
3824
3825
3833extern void *
3835
3836
3863extern status_t
3865 obj_template_t *chobj,
3866 const xml_node_t *curnode,
3867 boolean xmlorder,
3868 dlq_hdr_t *force_modQ,
3869 obj_template_t **rettop,
3870 obj_template_t **retobj);
3871
3872
3879extern uint32
3881
3882
3890extern obj_template_t *
3892
3893
3908extern boolean
3910
3911
3926extern boolean
3928 boolean *ingrp);
3929
3930
3938extern uint8
3940
3941
3949extern const ncx_iffeature_t *
3951
3952
3960extern const ncx_iffeature_t *
3961 obj_get_next_iffeature (const ncx_iffeature_t *iffeature);
3962
3963
3970extern boolean
3971 obj_is_anyxml (const obj_template_t *obj);
3972
3973
3980extern boolean
3981 obj_is_anydata (const obj_template_t *obj);
3982
3983
3991extern boolean
3992 obj_is_any (const obj_template_t *obj);
3993
3994
4001extern boolean
4002 obj_is_leaf (const obj_template_t *obj);
4003
4004
4011extern boolean
4012 obj_is_leaf_list (const obj_template_t *obj);
4013
4014
4021extern boolean
4022 obj_is_list (const obj_template_t *obj);
4023
4024
4031extern boolean obj_in_list (const obj_template_t *obj);
4032
4033
4040extern boolean
4041 obj_is_container (const obj_template_t *obj);
4042
4043
4050extern boolean
4051 obj_is_choice (const obj_template_t *obj);
4052
4053
4060extern boolean
4061 obj_is_case (const obj_template_t *obj);
4062
4063
4070extern boolean
4071 obj_is_uses (const obj_template_t *obj);
4072
4073
4080extern boolean
4081 obj_is_leafy (const obj_template_t *obj);
4082
4083
4090extern boolean obj_is_terminal (const obj_template_t *obj);
4091
4092
4100extern boolean
4102
4103
4114extern boolean
4116 boolean config_only);
4117
4118
4127extern boolean
4129
4130
4139extern boolean
4140 obj_is_cloned (const obj_template_t *obj);
4141
4142
4151extern boolean
4152 obj_is_augclone (const obj_template_t *obj);
4153
4154
4162extern boolean
4163 obj_is_augment (const obj_template_t *obj);
4164
4165
4173extern boolean obj_in_augment (const obj_template_t *obj);
4174
4175
4183extern boolean
4184 obj_is_refine (const obj_template_t *obj);
4185
4186
4195extern boolean
4196 obj_is_data (const obj_template_t *obj);
4197
4198
4208extern boolean
4209 obj_is_data_db (const obj_template_t *obj);
4210
4211
4219extern boolean
4220 obj_is_data_node (const obj_template_t *obj);
4221
4222
4230extern boolean
4231 obj_in_rpc (const obj_template_t *obj);
4232
4233
4240extern boolean
4241 obj_in_rpc_reply (const obj_template_t *obj);
4242
4243
4250extern boolean
4251 obj_in_notif (const obj_template_t *obj);
4252
4253
4260extern boolean
4261 obj_is_rpc (const obj_template_t *obj);
4262
4263
4270extern boolean
4271 obj_is_sm_rpc (const obj_template_t *obj);
4272
4273
4280extern boolean obj_is_rpcio (const obj_template_t *obj);
4281
4282
4289extern boolean obj_is_rpcio_input (const obj_template_t *obj);
4290
4291
4298extern boolean
4299 obj_is_action (const obj_template_t *obj);
4300
4301
4308extern boolean obj_in_action (const obj_template_t *obj);
4309
4310
4317extern boolean
4318 obj_is_notif (const obj_template_t *obj);
4319
4320
4327extern boolean
4328 obj_is_sm_notif (const obj_template_t *obj);
4329
4330
4343extern boolean
4344 obj_is_empty (const obj_template_t *obj);
4345
4346
4354extern boolean
4355 obj_is_match (const obj_template_t *obj1,
4356 const obj_template_t *obj2);
4357
4358
4365extern boolean
4366 obj_is_hidden (const obj_template_t *obj);
4367
4368
4375extern boolean
4377
4378
4385extern boolean
4386 obj_is_root (const obj_template_t *obj);
4387
4388
4394extern void
4396
4397
4404extern boolean
4405 obj_is_rpc_root (const obj_template_t *obj);
4406
4407
4414extern boolean
4415 obj_is_password (const obj_template_t *obj);
4416
4417
4424extern boolean
4425 obj_is_xsdlist (const obj_template_t *obj);
4426
4427
4434extern boolean
4435 obj_is_cli (const obj_template_t *obj);
4436
4437
4446extern boolean obj_is_dirty (const obj_template_t *obj,
4447 ncx_cfg_t cfgid);
4448
4449
4456extern boolean
4457 obj_is_key (const obj_template_t *obj);
4458
4459
4466extern boolean
4467 obj_is_abstract (const obj_template_t *obj);
4468
4469
4477extern boolean obj_in_abstract (const obj_template_t *obj);
4478
4479
4486extern boolean
4487 obj_is_deleted (const obj_template_t *obj);
4488
4489
4498extern boolean
4499 obj_is_deleted_ex (const obj_template_t *obj);
4500
4501
4508extern boolean
4510
4511
4519extern boolean
4521
4522
4529extern boolean
4530 obj_is_secure (const obj_template_t *obj);
4531
4532
4540extern boolean
4542
4543
4551extern boolean
4553
4554
4562extern boolean
4564
4565
4573extern boolean
4575
4576
4585extern boolean
4587
4588
4595extern boolean
4597
4598
4608extern boolean
4610
4611
4619extern boolean
4621
4622
4631extern boolean
4632 obj_is_top (const obj_template_t *obj);
4633
4642extern boolean
4643 obj_in_top_choice (const obj_template_t *obj);
4644
4645
4652extern boolean
4653 obj_is_datapath (const obj_template_t *obj);
4654
4655
4667extern boolean
4669
4670
4678extern boolean
4680
4681
4690extern boolean
4692
4693
4701extern boolean obj_has_ro_descendants (obj_template_t *obj);
4702
4703
4711extern boolean obj_has_rw_children (obj_template_t *obj);
4712
4713
4723extern boolean obj_has_rw_children_ex (obj_template_t *obj,
4724 boolean term_only);
4725
4726
4733extern boolean
4735
4736
4743extern boolean
4745
4746
4755extern boolean
4757
4758
4764extern obj_metadata_t *
4765 obj_new_metadata (void);
4766
4767
4777extern void
4779
4780
4788extern status_t
4790 obj_template_t *obj);
4791
4792
4800extern obj_metadata_t *
4802 const xmlChar *name);
4803
4804
4811extern obj_metadata_t *
4813
4814
4821extern obj_metadata_t *
4822 obj_next_metadata (const obj_metadata_t *meta);
4823
4824
4835extern void
4837
4838
4845extern void
4847
4848
4856extern uint32
4858
4859
4869extern void
4871 dlq_hdr_t *datadefQ,
4872 uint32 startindent,
4873 uint32 indent);
4874
4875
4882extern const xmlChar *
4884
4885
4891extern void
4892 obj_delete_obsolete (dlq_hdr_t *objQ);
4893
4894
4901extern const xmlChar *
4902 obj_get_altname (const obj_template_t *obj);
4903
4904
4912extern obj_template_t *
4914
4915
4923extern obj_template_t *
4925
4926
4934extern const xmlChar *
4936
4937
4944extern boolean
4946
4947
4954extern boolean
4956
4957
4965extern boolean
4967
4968
4976extern boolean
4978
4979
4987extern boolean
4989
4990
4999extern boolean
5001
5002
5009extern void
5011
5012
5021extern boolean
5023
5024
5033extern boolean
5035
5036
5045extern boolean
5047
5048
5055extern obj_iffeature_ptr_t *
5057
5058
5064extern void obj_free_iffeature_ptr (obj_iffeature_ptr_t *iffptr);
5065
5066
5073extern obj_iffeature_ptr_t *
5075
5076
5083extern obj_iffeature_ptr_t *
5085
5086
5093extern ncx_backptr_t *
5095
5096
5103extern ncx_backptr_t *
5105
5106
5114extern boolean
5116 struct xpath_pcb_t_ *xpath);
5117
5118
5126extern struct xpath_pcb_t_ *
5128 struct xpath_pcb_t_ *xpath);
5129
5130
5137extern struct xpath_pcb_t_ *
5139
5140
5141
5152extern status_t
5154 struct xpath_pcb_t_ *xpath);
5155
5156
5166extern void
5168 struct xpath_pcb_t_ *xpath);
5169
5170
5179extern status_t
5181
5182
5191extern void
5193 ncx_cfg_t cfg_id,
5194 boolean flag);
5195
5196
5212extern boolean
5214
5215
5236extern boolean
5238
5239
5247extern boolean
5249
5250
5263extern void
5265 ncx_module_t *mod);
5266
5267
5274extern void
5276
5277
5286extern boolean
5288
5289
5296extern void
5298 uint16 keynum);
5299
5300
5307extern uint16
5309
5310
5318extern boolean
5320
5321
5328extern boolean
5330
5331
5338extern boolean
5340
5341
5348extern void
5350
5351
5358extern boolean obj_notif_enabled (const obj_template_t *obj);
5359
5360
5367extern boolean obj_notif_log_drops (const obj_template_t *obj);
5368
5369
5376extern void obj_set_notif_enabled (obj_template_t *obj,
5377 boolean enabled);
5378
5379
5386extern void obj_set_notif_log_drops (const obj_template_t *obj,
5387 boolean enabled);
5388
5389
5397extern boolean
5398 obj_unload_active (const obj_template_t *obj);
5399
5400
5407extern boolean
5408 obj_is_obsolete (const obj_template_t *obj);
5409
5410
5418extern boolean
5420
5421
5428extern void
5430 uint8 prio);
5431
5432
5439extern uint8
5441
5442
5450extern boolean
5452
5453
5462
5463
5471extern boolean
5473
5474
5481extern boolean
5482 obj_is_crypt_hash (const obj_template_t *obj);
5483
5484
5495extern void
5497
5498
5504extern obj_defval_tk_t *
5505 obj_new_defval_tk (void);
5506
5507
5513extern void
5515
5516
5523extern dlq_hdr_t *
5525
5526
5533extern obj_defval_tk_t *
5534 obj_first_defval_tk (const obj_refine_t *ref);
5535
5536
5543extern obj_defval_tk_t *
5544 obj_next_defval_tk (const obj_defval_tk_t *defval_tk);
5545
5546#define obj_next_dev_defval_tk(D) obj_next_defval_tk(D)
5547
5548
5555extern obj_defval_tk_t *
5557
5558
5565extern boolean
5567
5568
5575extern void
5577 const xmlChar *defval);
5578
5579
5587extern boolean
5589 const xmlChar *find_defval);
5590
5591
5598extern void
5600
5601
5606extern void
5607 obj_enter_xpath_mode (void);
5608
5609
5614extern void
5615 obj_exit_xpath_mode (void);
5616
5617
5625extern obj_key_t *
5627 const xmlChar *keyname);
5628
5629
5636extern ncx_yang_version_t
5638
5639
5649extern boolean
5651
5652
5658extern void
5660
5661
5670extern boolean
5672
5673
5679extern void
5681
5682
5688extern void
5690
5691
5692
5693#if defined(WITH_SNMP) && defined(WITH_RESTCONF)
5700extern const xmlChar *
5702
5703
5714extern obj_oid_t *
5716 boolean *malloced);
5717
5718#endif // WITH_SNMP and WITH_RESTCONF
5719
5720
5729 dlq_hdr_t *keystackQ);
5730
5731
5737extern void obj_dump_keystackQ (dlq_hdr_t *keystackQ);
5738
5739
5746extern void obj_clr_enable_chk (obj_template_t *obj);
5747
5748
5756extern status_t
5758 void *rule);
5759
5760
5767extern void
5769 const void *rule);
5770
5771
5779extern boolean
5781 void *rule);
5782
5783
5793extern status_t
5795 const xmlChar *basestr,
5796 obj_errmsg_t **ret_errmsg);
5797
5798
5806extern status_t
5808 const xmlChar *parmstr);
5809
5810
5819extern status_t
5821 const xmlChar *parmstr,
5822 boolean is_errortag);
5823
5824
5840extern boolean
5842
5843
5851extern boolean
5852 obj_is_singular (const obj_template_t *obj);
5853
5854
5864extern boolean
5866
5867
5874extern boolean
5875 obj_ok_for_nolock (const obj_template_t *obj);
5876
5877
5884extern boolean
5886
5887
5894extern boolean
5896
5897
5904extern boolean obj_get_xpath_oper_ok (const obj_template_t *obj);
5905
5906
5912extern void obj_set_xpath_oper_ok (obj_template_t *obj);
5913
5914
5922extern boolean
5924
5925
5936extern boolean
5938
5939
5946extern obj_template_t *
5948
5949
5956extern boolean
5958
5959
5966extern ncx_module_t *
5968
5969
5977extern obj_template_t *
5979
5980
5991extern boolean
5992 obj_is_ancestor (const obj_template_t *ancestor,
5993 const obj_template_t *obj);
5994
5995
6001extern void
6003
6004
6015extern boolean
6017
6018
6025extern obj_template_t *
6027
6028
6029
6040extern boolean
6042
6043
6044
6055extern boolean
6057
6058
6070extern boolean
6072
6073
6074
6082extern ncx_sm_rootcb_t *
6084
6085
6086
6093extern status_t
6095
6096
6097/*
6098* @brief Object Compare
6099*
6100* @param obj1 object to check
6101* @param obj2 object to check
6102*
6103* @return TRUE if objects match
6104*/
6105extern boolean
6106 obj_match_sm_objs (obj_template_t *obj1,
6107 obj_template_t *obj2);
6108
6117extern boolean
6119
6120
6133extern status_t
6135 const xmlChar *prefix,
6136 const xmlChar *name,
6137 const xmlChar **retval);
6138
6139
6147extern status_t
6149 obj_template_t *listobj);
6150
6151
6159extern obj_template_t *
6161
6162
6171extern obj_template_t *
6173 obj_template_t *curbackptr);
6174
6175
6185extern boolean
6187
6188
6189
6197extern void
6199 ncx_sort_type_t typ);
6200
6201
6209extern ncx_sort_type_t
6210 obj_get_sort_type (const obj_template_t *obj);
6211
6218extern boolean
6220
6221
6231extern grp_template_t *
6232 obj_get_uses_grp (obj_template_t *usesobj);
6233
6234
6244extern obj_template_t *
6245 obj_get_uses_obj (obj_template_t *obj);
6246
6247
6257extern obj_template_t *
6258 obj_get_augment_obj (obj_template_t *obj);
6259
6260
6274extern boolean
6276
6277
6287extern status_t
6289 boolean toponly,
6290 xmlChar **retbuff);
6291
6292
6293
6294
6303extern status_t
6305 xmlChar **retbuff);
6306
6307
6316extern status_t
6318 xmlChar **retbuff);
6319
6320
6327extern boolean
6328 obj_table_enabled (const obj_template_t *obj);
6329
6330
6338extern boolean
6339 obj_table_forced (const obj_template_t *obj);
6340
6341
6342
6362extern status_t
6364 const xmlChar *label1,
6365 const xmlChar *label2,
6366 const xmlChar *label3,
6367 uint8 hdr_rows);
6368
6376extern boolean
6378
6388extern void
6390
6391
6405extern boolean
6407
6408
6412#ifdef __cplusplus
6413} /* end extern 'C' */
6414#endif
6415
6416#endif /* _H_obj */
log_debug_t
The debug level enumerations used in util/log.c.
Definition: log.h:348
status_t
global error return code
Definition: status_enum.h:219
uint16 xmlns_id_t
integer handle for registered namespaces
Definition: xmlns.h:89
ncx_leafref_class_t
Classification for the types of leafref path statements wrt/ how they can be cached.
Definition: ncxtypes.h:1552
ncx_status_t
enumeration for different YANG data-def status values
Definition: ncxtypes.h:584
ncx_sort_type_t
the sort type enumeration used for system-ordered list aand leaf-list objects
Definition: ncxtypes.h:1782
ncx_yang_version_t
enumeration for different YANG language versions
Definition: ncxtypes.h:993
ncx_cfg_t
hardwire the 3 standard configs
Definition: ncxtypes.h:548
uint64 ncx_transaction_id_t
transaction is scoped to single session write operation on a config
Definition: ncxtypes.h:729
ncx_iqual_t
The instance qualifier types are borrowed from ABNF and RelaxNG.
Definition: ncxtypes.h:460
ncx_btype_t
enumeration of the built-in NCX types These types cannot be overridden and cannot be imported
Definition: ncxtypes.h:213
ncx_access_t
NCX Access Control 'max-access' enumeration values Note that access control is applied to the session...
Definition: ncxtypes.h:182
ncx_name_match_t
Node name match modes.
Definition: ncxtypes.h:696
ncx_xpath_axis_t
XPath expression axis types.
Definition: ncxtypes.h:663
obj_metadata_t * obj_find_metadata(const obj_template_t *obj, const xmlChar *name)
Find the object metadata definition in the object.
Definition: obj.c:17390
uint32 obj_get_child_count(const obj_template_t *obj)
Get the number of child nodes the object has.
Definition: obj.c:14834
void obj_set_abstract(obj_template_t *obj)
Set the abstract flag for the yang-data node.
Definition: obj.c:20219
obj_key_t * obj_last_key(obj_template_t *obj)
Get the last key record.
Definition: obj.c:11173
const dlq_hdr_t * obj_get_cdatadefQ(const obj_template_t *obj)
Get a const pointer to the datadefQ (or caseQ) if this object has one.
Definition: obj.c:13287
boolean obj_is_notif(const obj_template_t *obj)
Check if the object is a notification.
Definition: obj.c:16112
boolean obj_is_external_augment(obj_template_t *obj)
Check if an object is an external augment.
Definition: obj.c:18279
boolean obj_has_rw_children(obj_template_t *obj)
Check if there are any accessible read-write child nodes within the object.
Definition: obj.c:17173
const xmlChar * obj_get_description(const obj_template_t *obj)
Get the description field for this obj.
Definition: obj.c:12587
boolean obj_has_name(const obj_template_t *obj)
Check if the specified object type has a name.
Definition: obj.c:12447
obj_template_t * obj_clone_template_case(ncx_module_t *mod, obj_template_t *srcobj, dlq_hdr_t *mobjQ)
Clone an obj_template_t but make sure it is wrapped in a OBJ_TYP_CASE layer.
Definition: obj.c:10679
const xmlChar * obj_get_next_default(const obj_template_t *obj, ncx_backptr_t *lastdef, ncx_backptr_t **thisdef)
Get the next default value for the specified object.
Definition: obj.c:13467
boolean obj_is_mp_key(obj_template_t *child)
Check if the parent of this object is a Mount Pount object AND THIS OBJECT IS A KEY LEAF IN THE MP LI...
Definition: obj.c:21299
obj_key_t * obj_new_key(void)
Alloc and Init a obj_key_t struct.
Definition: obj.c:11027
boolean obj_is_top(const obj_template_t *obj)
Check if the object is top-level object within the YANG module that defines it.
Definition: obj.c:16966
boolean obj_is_case(const obj_template_t *obj)
Check if object is a YANG case.
Definition: obj.c:15380
boolean obj_is_hidden(const obj_template_t *obj)
Check if object is marked as a hidden object.
Definition: obj.c:16199
boolean obj_get_max_elements(obj_template_t *obj, uint32 *maxelems)
Get the max-elements clause for this object, if any.
Definition: obj.c:14480
obj_template_t * obj_find_template_test(dlq_hdr_t *que, const xmlChar *modname, const xmlChar *objname)
Find an object with the specified name Test version; do not set 'used' flag.
Definition: obj.c:6633
uint32 obj_get_yang_sid_tree(const obj_template_t *obj)
Get the YANG SID Tree ID for this object.
Definition: obj.c:14292
boolean obj_is_cli(const obj_template_t *obj)
Check if object is marked as a CLI object.
Definition: obj.c:16320
obj_template_t * obj_clone_template_sm(ncx_module_t *mod, obj_template_t *srcobj, dlq_hdr_t *mobjQ, boolean sm_clone)
Clone an obj_template_t Copy the pointers from the srcobj into the new obj.
boolean obj_is_match(const obj_template_t *obj1, const obj_template_t *obj2)
Check if one object is a match in identity with another one.
Definition: obj.c:16174
obj_template_t * obj_find_child_choice_case(obj_template_t *obj, const xmlChar *modname, const xmlChar *objname)
Find a child object with the specified Qname.
Definition: obj.c:7247
boolean obj_in_top_choice(const obj_template_t *obj)
Check if the object is in top-level choice the YANG module that defines it.
Definition: obj.c:16984
boolean obj_is_rpcio(const obj_template_t *obj)
Check if the object is an RPC IO node.
Definition: obj.c:16010
boolean obj_get_leaf_list_defset(const obj_template_t *obj)
Get the defset flag for a leaf-list.
Definition: obj.c:20004
obj_unique_t * obj_first_unique(obj_template_t *listobj)
Get the first unique-stmt for a list.
Definition: obj.c:10929
boolean obj_get_config_flag_check(const obj_template_t *obj, boolean *ingrp)
get config flag during YANG module checking
Definition: obj.c:15018
const void * obj_get_reference_addr(const obj_template_t *obj)
Get the reference field for this obj.
Definition: obj.c:12874
status_t obj_gen_object_id_code(ncx_module_t *mod, const obj_template_t *obj, xmlChar **buff)
Malloc and Generate the object ID for an object node for C code usage.
Definition: obj.c:12033
boolean obj_in_augment(const obj_template_t *obj)
Check if object is an augment or inside an augment CHECK ENTIRE TREE UP TO ROOT.
Definition: obj.c:15678
ncx_module_t * obj_get_mod(obj_template_t *obj)
Get the module pointer for this object.
Definition: obj.c:14087
boolean obj_is_confirm_data(const obj_template_t *obj)
Check if object is marked as a confirm-data object for CLI.
Definition: obj.c:21959
void obj_delete_all_defvals(obj_template_t *obj)
Delete all the original defaults for a leaf-list default for deviate replace default foo.
Definition: obj.c:20091
boolean obj_npcon_has_defaults_slow(obj_template_t *obj)
Check if the specified NP container has defaults within it Must be a config object!...
Definition: obj.c:13598
obj_iffeature_ptr_t * obj_new_iffeature_ptr(ncx_iffeature_t *iff)
Malloc and initialize a new obj_iffeature_ptr_t struct.
Definition: obj.c:18510
ncx_backptr_t * obj_first_inherit_when_ptr(obj_template_t *obj)
Get first xpath pointer struct.
Definition: obj.c:18588
const xmlChar * obj_get_oid_string(obj_template_t *obj)
Get object OID sting value.
Definition: obj.c:20244
typ_def_t * obj_get_typdef(obj_template_t *obj)
Get the typdef for the leaf or leaf-list.
Definition: obj.c:13852
grp_template_t * obj_first_grouping(obj_template_t *obj)
Get the first local grouping if any.
Definition: obj.c:9986
void obj_delete_obsolete(dlq_hdr_t *objQ)
Delete any obsolete child nodes within the specified object subtree.
Definition: obj.c:18137
boolean obj_is_password(const obj_template_t *obj)
Check if object is marked as a password object.
Definition: obj.c:16285
boolean obj_get_top_config_flag(const obj_template_t *obj)
Get the config flag for the top-level object.
Definition: obj.c:20750
obj_case_t * obj_find_case(obj_choice_t *choic, const xmlChar *modname, const xmlChar *casname)
Find a specified case arm by name.
Definition: obj.c:9620
void obj_free_defval_tk(obj_defval_tk_t *def)
Delete an object default tk record;.
Definition: obj.c:19910
boolean obj_find_defval(obj_template_t *obj, const xmlChar *find_defval)
Find a default.
Definition: obj.c:20058
obj_template_t * obj_first_unique_backptr(obj_template_t *leafobj)
Get the first unique backptr for a leaf object.
Definition: obj.c:21785
const xmlChar * obj_get_deviate_arg(obj_deviate_arg_t devarg)
Get the deviate-arg string from its enumeration.
Definition: obj.c:11539
boolean obj_unload_active(const obj_template_t *obj)
Check if the module commit tests are disabled because a module unload is in progress.
Definition: obj.c:19557
void * obj_get_presence_string_field(const obj_template_t *obj)
Get the address ot the presence-stmt value, if any.
Definition: obj.c:14758
boolean obj_is_container(const obj_template_t *obj)
Check if object is a YANG container.
Definition: obj.c:15334
obj_key_t * obj_find_key(dlq_hdr_t *que, const xmlChar *keycompname)
Find a specific key component by key leaf identifier name.
Definition: obj.c:11075
ncx_sm_rootcb_t * obj_find_ancestor_rootcb(obj_template_t *obj)
Find an ancestor node or self that has a rootcb.
Definition: obj.c:21447
boolean obj_is_top_aio_get2(obj_template_t *obj)
Check if this object is a really top level holder of extension sil-aio-get2.
Definition: obj.c:20949
obj_unique_comp_t * obj_new_unique_comp(void)
Alloc and Init a obj_unique_comp_t struct.
Definition: obj.c:10844
boolean obj_is_list(const obj_template_t *obj)
Check if object is a YANG list.
Definition: obj.c:15272
const xmlChar * obj_get_augment_target(obj_template_t *obj)
Get the target path string for an augments object.
Definition: obj.c:18258
boolean obj_is_in_aio_get2(obj_template_t *obj)
Check if this object is a child of a node with sil-aio-get2 extension setup or if this object itself ...
Definition: obj.c:20902
boolean obj_is_anydata(const obj_template_t *obj)
Check if object is an anydata.
Definition: obj.c:15194
const xmlChar * obj_get_altname(const obj_template_t *obj)
Get the alt-name for this object, if any.
Definition: obj.c:18180
uint32 obj_key_count_to_root(obj_template_t *obj)
Check ancestor-or-self nodes until root reached Find all lists; Count the number of keys.
Definition: obj.c:11331
obj_template_t * obj_next_child_deep(obj_template_t *obj)
Get the next child object if the specified object has any children.
Definition: obj.c:8684
const xmlChar * obj_get_default(const obj_template_t *obj)
Get the default value for the specified object.
Definition: obj.c:13370
status_t obj_set_mp_flags(obj_template_t *obj)
set the Schema Mount flags and create a rootcb if needed
Definition: obj.c:21481
boolean obj_is_p_container(const obj_template_t *obj)
Check if the object is an Presence-container.
Definition: obj.c:16655
status_t obj_refine_template(obj_template_t *srcobj, obj_template_t *mobj)
Refine Template - Late refine support.
Definition: obj.c:10550
status_t obj_add_errmsg_filter(obj_errmsg_t *errmsg, const xmlChar *parmstr, boolean is_errortag)
Add an errmsg filter for the object.
ncx_sort_type_t obj_get_sort_type(const obj_template_t *obj)
Get the sort type for the object.
Definition: obj.c:21927
boolean obj_is_mandatory_when_ex(obj_template_t *obj, boolean config_only)
Figure out if the obj is YANG mandatory or not Check the when-stmts, not just mandatory-stmt.
Definition: obj.c:15534
void obj_free_metadata(obj_metadata_t *meta)
Scrub the memory in a obj_metadata_t by freeing all the sub-fields and then freeing the entire struct...
Definition: obj.c:17325
obj_template_t * obj_first_terminal_child_nokey(obj_template_t *obj)
Get the first child object if the specified object has any children; MUST BE A TERMINAL NODE!...
Definition: obj.c:8036
status_t obj_copy_object_id_mod(const obj_template_t *obj, xmlChar *buff, uint32 bufflen, uint32 *reallen)
Generate the object ID for an object node and copy to the buffer copy an object ID to a buffer; Use m...
Definition: obj.c:12130
status_t obj_assign_xpath_backptr(obj_template_t *obj, struct xpath_pcb_t_ *xpath)
Set an xpath-expr backptr.
Definition: obj.c:18751
dlq_hdr_t * obj_get_defvalQ(obj_template_t *obj)
Get the leaf-list default Q.
Definition: obj.c:19928
const xmlChar * obj_get_type_name(const obj_template_t *obj)
Get the typename for an object.
Definition: obj.c:14220
void obj_ban_nolock_get(obj_template_t *obj)
Ban nolock-get for the object.
Definition: obj.c:21252
void obj_free_key(obj_key_t *key)
Free a obj_key_t struct.
Definition: obj.c:11050
const xmlChar * obj_get_first_default(const obj_template_t *obj, ncx_backptr_t **thisdef)
Get the first default value for the specified object.
Definition: obj.c:13416
status_t obj_gen_object_id_error(const obj_template_t *obj, xmlChar **buff)
Malloc and Generate the object ID for an object node for errors.
Definition: obj.c:11916
boolean obj_is_enabled(obj_template_t *obj)
Check any if-feature statement that may cause the specified object to be invisible.
Definition: obj.c:16678
const void * obj_get_description_addr(const obj_template_t *obj)
Get the address of the description field for this obj.
Definition: obj.c:12760
obj_template_t * obj_first_child(obj_template_t *obj)
Get the first child object if the specified object has any children.
Definition: obj.c:7933
status_t obj_get_appinfo(obj_template_t *obj, const xmlChar *prefix, const xmlChar *name, const xmlChar **retval)
Get the first (or only) instance of the specified appinfo.
Definition: obj.c:21700
status_t obj_gen_object_id_prefix(const obj_template_t *obj, xmlChar **buff)
Malloc and Generate the object ID for an object node Use the prefix in every node.
Definition: obj.c:11688
obj_template_t * obj_find_template(dlq_hdr_t *que, const xmlChar *modname, const xmlChar *objname)
Find an object with the specified name.
Definition: obj.c:6521
const obj_template_t * obj_get_cparent(const obj_template_t *obj)
Get the parent of the current object CONST POINTER VERSION.
Definition: obj.c:14599
const ncx_iffeature_t * obj_get_first_iffeature(const obj_template_t *obj)
Get the first if-feature clause (if any) for the specified object.
Definition: obj.c:15134
void obj_init_unique(obj_unique_t *un)
Init a obj_unique_t struct.
Definition: obj.c:10771
boolean obj_is_supported(obj_template_t *obj)
Check an RPC node to check if it is supported or not It could be disabled at run-time without removin...
Definition: obj.c:19194
status_t obj_gen_aughook_id(const obj_template_t *obj, xmlChar **buff)
Malloc and Generate the augment hook element name for the specified object.
Definition: obj.c:12233
void obj_dump_child_list(log_debug_t lvl, dlq_hdr_t *datadefQ, uint32 startindent, uint32 indent)
Dump the object names in a datadefQ – just child level uses log_write_level() for writing ....
Definition: obj.c:18036
obj_template_t * obj_get_real_parent_aug(obj_template_t *obj)
Get the parent of the current object; skip OBJ_TYP_AUGMENT and return the actual parent.
Definition: obj.c:21187
status_t obj_add_errmsg_parm(obj_errmsg_t *errmsg, const xmlChar *parmstr)
Add an errmsg parameter for the object.
void obj_traverse_keys(obj_template_t *obj, void *cookie1, void *cookie2, obj_walker_fn_t walkerfn)
Traverse the list keys with a callback function.
Definition: obj.c:11368
obj_template_t * obj_find_child_fast(obj_template_t *obj, xmlns_id_t nsid, const xmlChar *objname)
Find a child object with the specified Qname.
Definition: obj.c:7328
boolean obj_is_data(const obj_template_t *obj)
Check if the object is defined within data or within a notification or RPC instead.
Definition: obj.c:15724
obj_key_t * obj_next_key(obj_key_t *objkey)
Get the next key record.
Definition: obj.c:11229
boolean obj_is_sil_delete_children_first(const obj_template_t *obj)
Check if object is marked as ncx:sil-delete-children-first.
Definition: obj.c:18364
void obj_clean_datadefQ(dlq_hdr_t *que)
Clean and free all the obj_template_t structs in the specified Q.
Definition: obj.c:9698
typ_def_t * obj_get_base_typdef(obj_template_t *obj)
Get the base typdef for the leaf or leaf-list.
Definition: obj.c:13892
boolean obj_is_xsdlist(const obj_template_t *obj)
Check if object is marked as an XSD list.
Definition: obj.c:16304
void obj_clean_unique(obj_unique_t *un)
Clean a obj_unique_t struct.
Definition: obj.c:10814
boolean obj_edit2_mode_allowed(obj_template_t *obj)
Check if the current object is EDIT2/3 allowed.
Definition: obj.c:22046
obj_key_t * obj_prev_key(obj_key_t *objkey)
Get the previous key record.
Definition: obj.c:11255
boolean obj_in_action(const obj_template_t *obj)
Check if the object is within or is an action method.
Definition: obj.c:16067
void obj_dump_keystackQ(dlq_hdr_t *keystackQ)
Dump a keystackQ with backptrs to obj_template_t for key leafs.
Definition: obj.c:20485
boolean obj_is_single_instance(obj_template_t *obj)
Check if the object is a single instance of if it allows multiple instances; check all of the ancesto...
Definition: obj.c:16881
boolean obj_is_no_sil_delete_children_first(const obj_template_t *obj)
Check if object is marked as ypx:no-sil-delete-children-first OR AN ANCESTOR IS MARKED.
Definition: obj.c:18382
boolean obj_ok_for_nolock(const obj_template_t *obj)
check an object OK for nolock
Definition: obj.c:20782
boolean obj_has_typedefs(const obj_template_t *obj)
Check if the object has any nested typedefs in it.
Definition: obj.c:13771
void obj_add_child(obj_template_t *child, obj_template_t *parent)
Add a child object to the specified complex node.
Definition: obj.c:18408
void obj_set_sil_force_replace_replay(obj_template_t *obj)
Set the object OBJ_FL_SIL_FORCE_REPLAY bit Set the object OBJ_FL_SIL_FORCE_REPLACE_REPLAY bit.
Definition: obj.c:19449
boolean obj_in_rpc(const obj_template_t *obj)
Check if the object is in an rpc/input section.
Definition: obj.c:15854
boolean obj_has_ro_children(obj_template_t *obj)
Check if there are any accessible read-only child nodes within the object.
Definition: obj.c:17108
boolean obj_is_dirty(const obj_template_t *obj, ncx_cfg_t cfgid)
Check if object is marked as dirty (edited) for datastore validation purposes.
Definition: obj.c:16344
boolean obj_is_block_user_delete(const obj_template_t *obj)
Check if object is marked as ncx:user-write with delete access disabled.
Definition: obj.c:18488
boolean obj_is_ancestor(const obj_template_t *ancestor, const obj_template_t *obj)
Check if an object is the ancestor of another.
Definition: obj.c:21218
boolean obj_is_rpcio_input(const obj_template_t *obj)
Check if the object is an RPC IO node.
Definition: obj.c:16027
const xmlChar * obj_get_alt_description(const obj_template_t *obj)
obj_get_alt_description (DEPRECATED)
Definition: obj.c:12646
status_t obj_gen_object_id_datapath(const obj_template_t *obj, xmlChar **buff)
Malloc and Generate the object ID for an object node Use the prefix in every node.
Definition: obj.c:11733
obj_template_t * obj_next_child_augok(obj_template_t *obj)
Get the next child object if the specified object has any children; return augment,...
Definition: obj.c:8472
void obj_set_xpath_oper_ok(obj_template_t *obj)
Set the object XPath oper OK flag.
Definition: obj.c:21139
obj_template_t * obj_first_child_deep(obj_template_t *obj)
Get the first child object if the specified object has any children.
Definition: obj.c:8603
boolean obj_find_all_pfaxis(ncx_module_t *exprmod, obj_walker_fn_t walkerfn, void *cookie1, void *cookie2, obj_template_t *startnode, const xmlChar *modname, const xmlChar *name, boolean configonly, boolean dblslash, boolean textmode, boolean useroot, ncx_xpath_axis_t axis, boolean *fncalled)
Find all occurances of the specified preceding or following node(s).
Definition: obj.c:9434
boolean obj_is_datapath(const obj_template_t *obj)
Check if object is marked as a ywx:datapath object.
Definition: obj.c:17009
obj_defval_tk_t * obj_new_defval_tk(void)
Create a new object default tk record;.
Definition: obj.c:19893
boolean obj_has_when_stmts(obj_template_t *obj)
Check if any when-stmts apply to this object Does not check if they are true, just any when-stmts pre...
Definition: obj.c:17250
void obj_free_unique_comp(obj_unique_comp_t *unc)
Free a obj_unique_comp_t struct.
Definition: obj.c:10867
void obj_delete_mod_children(obj_template_t *obj, ncx_module_t *mod)
Check the childQ for the specified object and remove all the objects from the specified module.
Definition: obj.c:19225
boolean obj_is_crypt_hash(const obj_template_t *obj)
Check if the object is a leaf of type crypt-hash.
Definition: obj.c:19834
boolean obj_rpc_has_input(obj_template_t *obj)
Check if the RPC object has any real input children.
Definition: obj.c:17226
boolean obj_is_refine(const obj_template_t *obj)
Figure out if the obj is a refinement object, within a uses-stmt.
Definition: obj.c:15707
boolean obj_is_abstract(const obj_template_t *obj)
Check if object is being used as an object identifier or error-info.
Definition: obj.c:16405
boolean obj_has_get2cb(obj_template_t *obj)
Check if current object has GET2 callback registered.
Definition: obj.c:20650
boolean obj_match_datarule(obj_template_t *obj, void *rule)
Check if the data-rule back-ptr applies to this node.
Definition: obj.c:20591
const xmlChar * obj_get_mod_prefix(const obj_template_t *obj)
Get the module prefix for this object.
Definition: obj.c:13996
ncx_iqual_t obj_get_iqualval(obj_template_t *obj)
Get the instance qualifier for this object.
Definition: obj.c:14314
obj_iffeature_ptr_t * obj_first_iffeature_ptr(obj_template_t *obj)
Get first if-feature pointer.
Definition: obj.c:18546
boolean obj_in_submodule(obj_template_t *obj)
Check if the object is defined in a submodule.
Definition: obj.c:14125
boolean obj_is_deleted_ex(const obj_template_t *obj)
Check if object has been deleted by a deviate not-supported Or if its parent was deleted by deviation...
Definition: obj.c:16486
boolean obj_is_external_data_augment(obj_template_t *obj)
Check if an object is an external augment of a data node.
Definition: obj.c:18304
obj_template_t * obj_first_child_augok(obj_template_t *obj)
Get the first child object if the specified object has any children.
Definition: obj.c:8406
uint32 obj_get_real_level(const obj_template_t *obj)
Get the nest level for the specified object Top-level is '1' Does not count groupings as a level Does...
Definition: obj.c:13736
boolean obj_get_min_elements(obj_template_t *obj, uint32 *minelems)
Get the min-elements clause for this object, if any.
Definition: obj.c:14428
boolean obj_is_rpc_root(const obj_template_t *obj)
Check if object is marked as an RPC root object.
Definition: obj.c:16268
obj_template_t * obj_clone_template(ncx_module_t *mod, obj_template_t *srcobj, dlq_hdr_t *mobjQ)
Clone an obj_template_t Copy the pointers from the srcobj into the new obj.
Definition: obj.c:10205
status_t obj_set_named_type(void *pcb, tk_chain_t *tkc, ncx_module_t *mod, const xmlChar *typname, typ_def_t *typdef, obj_template_t *parent, grp_template_t *grp)
Resolve type test Called during phase 2 of module parsing.
Definition: obj.c:10059
obj_template_t * obj_match_child_str(obj_template_t *obj, const xmlChar *modname, const xmlChar *objname, uint32 objnamelen, uint32 *matchcount)
Match a child object with the specified Qname Find first command that matches all N chars of objname.
Definition: obj.c:7825
boolean obj_any_notifs(const dlq_hdr_t *datadefQ)
Check if there are any notifications in the datadefQ.
Definition: obj.c:11453
boolean obj_rpc_has_output(obj_template_t *obj)
Check if the RPC object has any real output children.
Definition: obj.c:17237
status_t obj_add_metadata(obj_metadata_t *meta, obj_template_t *obj)
Add the filled out object metadata definition to the object.
Definition: obj.c:17355
void obj_free_deviate(obj_deviate_t *deviate)
Clean and free an object deviate statement.
Definition: obj.c:11508
status_t obj_add_errmsg(obj_template_t *obj, const xmlChar *basestr, obj_errmsg_t **ret_errmsg)
Create a new obj_errmsg struct for the object.
const xmlChar * obj_get_mod_xmlprefix(const obj_template_t *obj)
Get the module prefix for this object.
Definition: obj.c:14027
boolean obj_is_augclone(const obj_template_t *obj)
Figure out if the obj is a cloned object, inserted via an augment statement.
Definition: obj.c:15639
const xmlChar * obj_get_info_description(const obj_template_t *obj)
Get the info description field for this obj Check if a 'info' appinfo node is present.
Definition: obj.c:12727
obj_unique_comp_t * obj_next_unique_comp(obj_unique_comp_t *uncomp)
Get the next unique-stmt component for a list.
Definition: obj.c:11006
status_t obj_make_sid_pathstr(obj_template_t *obj, xmlChar **retbuff)
Make a SID schema path string for the object.
Definition: obj.c:22304
xmlns_id_t obj_get_nsid(const obj_template_t *obj)
Get the namespace ID for this object.
Definition: obj.c:14251
obj_key_t * obj_first_key(obj_template_t *obj)
Get the first key record.
Definition: obj.c:11145
ncx_access_t obj_get_max_access(const obj_template_t *obj)
Get the NCX max-access enum for an obj_template_t Return the explicit value or the inherited value.
Definition: obj.c:12998
status_t obj_gen_object_id_unique(const obj_template_t *obj, const obj_template_t *stopobj, xmlChar **buff)
Malloc and Generate the object ID for a unique-stmt test.
Definition: obj.c:11976
obj_template_t * obj_get_choice_parent(obj_template_t *obj)
Get the OBJ_TYP_CHOICE parent of the current object; skip OBJ_TYP_CASE.
Definition: obj.c:14696
obj_template_t * obj_get_leafref_targobj(obj_template_t *obj)
Get the target object for a leafref leaf or leaf-list.
Definition: obj.c:18208
obj_metadata_t * obj_new_metadata(void)
Malloc and initialize the fields in a an obj_metadata_t.
Definition: obj.c:17294
boolean obj_find_all_children(ncx_module_t *exprmod, obj_walker_fn_t walkerfn, void *cookie1, void *cookie2, obj_template_t *startnode, const xmlChar *modname, const xmlChar *childname, boolean configonly, boolean textmode, boolean useroot)
Find all occurances of the specified node(s) within the children of the current node.
Definition: obj.c:8843
typ_template_t * obj_find_type(obj_template_t *obj, const xmlChar *typname)
Check if a typ_template_t in the obj typedefQ hierarchy.
Definition: obj.c:9724
boolean obj_is_rpc(const obj_template_t *obj)
Check if the object is an RPC method.
Definition: obj.c:15970
void obj_flag_xpath_backptrs_dirty(obj_template_t *obj, ncx_cfg_t cfg_id, boolean flag)
Check all the xpath backptr records for this object and set them to dirty or clean,...
Definition: obj.c:18962
boolean obj_is_xpath_string(const obj_template_t *obj)
Check if object is an XPath string.
Definition: obj.c:16522
obj_unique_t * obj_find_unique(dlq_hdr_t *que, const xmlChar *xpath)
Find a specific unique-stmt.
Definition: obj.c:10895
void obj_force_disabled(obj_template_t *obj)
Force an object to be disabled.
Definition: obj.c:20382
obj_template_t * obj_next_child(obj_template_t *obj)
Get the next child object if the specified object has any children.
Definition: obj.c:8212
boolean obj_is_block_user_update(const obj_template_t *obj)
Check if object is marked as ncx:user-write with update access disabled.
Definition: obj.c:18463
obj_key_t * obj_get_key_by_name(obj_template_t *obj, const xmlChar *keyname)
Check the specified list to see if the string is a list key.
Definition: obj.c:20138
boolean obj_is_anyxml(const obj_template_t *obj)
Check if object is an anyxml.
Definition: obj.c:15178
boolean obj_is_terminal(const obj_template_t *obj)
Check if object is a proper leaf or leaflist or anyxml.
Definition: obj.c:15437
void obj_force_root(obj_template_t *obj)
Set the object as an anydata type of root.
Definition: obj.c:16251
status_t obj_gen_object_id_sid(const obj_template_t *obj, xmlChar **buff)
Malloc and Generate the object ID for an object node for SID path usage.
Definition: obj.c:12162
typ_template_t * obj_first_typedef(obj_template_t *obj)
Get the first local typedef for this object, if any.
Definition: obj.c:9823
obj_template_t * obj_new_rpcio(obj_template_t *rpcobj, const xmlChar *name)
Malloc and initialize the fields in a an obj_rpcio_t.
Definition: obj.c:9665
void obj_set_notif_enabled(obj_template_t *obj, boolean enabled)
Set the notification object enabled flag.
Definition: obj.c:19504
uint8 obj_get_sil_priority(obj_template_t *obj)
Get the SIL priority field.
Definition: obj.c:19683
boolean obj_is_sil_force_replace_replay(const obj_template_t *obj)
Check if this object has the OBJ_FL_SIL_FORCE_REPLACE_REPLAY bit set.
Definition: obj.c:19428
status_t obj_set_name(obj_template_t *obj, const xmlChar *objname)
Set the name field for this obj.
Definition: obj.c:12355
const xmlChar * obj_get_presence_string(const obj_template_t *obj)
Get the present-stmt value, if any.
Definition: obj.c:14729
void obj_clean_deviationQ(dlq_hdr_t *deviationQ)
Clean and free an Q of object deviation statements.
Definition: obj.c:11621
obj_template_t * obj_find_template_top_lrcheck(ncx_module_t *mod, const xmlChar *modname, const xmlChar *objname)
Check if an obj_template_t in the mod->datadefQ or any of the include files visible to this module (L...
Definition: obj.c:6848
obj_key_t * obj_find_key2(dlq_hdr_t *que, obj_template_t *keyobj)
Find a specific key component, check for a specific node in case deep keys are supported,...
Definition: obj.c:11111
status_t obj_make_plain_pathstr(obj_template_t *obj, xmlChar **retbuff)
Make a plain path string for the object with no prefixes.
Definition: obj.c:22249
boolean obj_ok_for_cli(obj_template_t *obj)
Figure out if the obj is OK for current CLI implementation.
Definition: obj.c:17028
boolean obj_in_list(const obj_template_t *obj)
Check if object is nested within a list.
Definition: obj.c:15288
obj_template_t * obj_get_default_case(obj_template_t *obj)
Get the default case for the specified OBJ_TYP_CHOICE object.
Definition: obj.c:13510
boolean obj_find_all_ancestors(ncx_module_t *exprmod, obj_walker_fn_t walkerfn, void *cookie1, void *cookie2, obj_template_t *startnode, const xmlChar *modname, const xmlChar *name, boolean configonly, boolean textmode, boolean useroot, boolean orself, boolean *fncalled)
Find all occurances of the specified node(s) within the ancestors of the current node.
Definition: obj.c:9063
ncx_iqual_t obj_get_iqualval_ex(obj_template_t *obj, boolean required)
Get the instance qualifier for this object.
Definition: obj.c:14342
boolean obj_get_config_flag(const obj_template_t *obj)
Get the config flag for an obj_template_t Return the explicit value or the inherited value Also retur...
Definition: obj.c:12935
boolean obj_is_obsolete(const obj_template_t *obj)
Check if the object has obsolete status.
Definition: obj.c:19580
status_t obj_get_child_node(obj_template_t *obj, obj_template_t *chobj, const xml_node_t *curnode, boolean xmlorder, dlq_hdr_t *force_modQ, obj_template_t **rettop, obj_template_t **retobj)
Get the correct child node for the specified parent and current XML node.
Definition: obj.c:14796
void obj_number_data_object(obj_template_t *obj)
Number the object tree; initial setup.
Definition: obj.c:19871
boolean obj_is_key(const obj_template_t *obj)
Check if object is being used as a key leaf within a list.
Definition: obj.c:16388
status_t obj_add_unique_backptr(obj_template_t *leafobj, obj_template_t *listobj)
Add a unique backptr to the leaf.
Definition: obj.c:21742
void obj_clear_xpath_backptr(obj_template_t *obj, struct xpath_pcb_t_ *xpath)
Clear an xpath-expr backptr.
Definition: obj.c:18837
boolean obj_get_config_flag_deep(const obj_template_t *obj)
get config flag during augment expand
Definition: obj.c:14930
const xmlChar * obj_get_mod_version(const obj_template_t *obj)
Get the module version for this object.
Definition: obj.c:14196
boolean obj_has_xpath_stmts(obj_template_t *obj)
Check if any must or when stmts in node or all children.
Definition: obj.c:21656
obj_template_t * obj_find_template_callback(ncx_module_t *mod, const xmlChar *objname, obj_tester_fn_t tester_fn, void *cookie)
Check if an obj_template_t in the mod->datadefQ or any of the include files used within the entire ma...
Definition: obj.c:7015
uint32 obj_get_level(const obj_template_t *obj)
Get the nest level for the specified object Top-level is '1' Does not count groupings as a level.
Definition: obj.c:13658
obj_template_t * obj_first_terminal_child(obj_template_t *obj)
Get the first child object if the specified object has any children; MUST BE A TERMINAL NODE!...
Definition: obj.c:7998
boolean obj_is_system_ordered(const obj_template_t *obj)
Check if the object is system or user-ordered.
Definition: obj.c:16606
ncx_yang_version_t obj_get_langver(obj_template_t *obj)
Get the YANG version for this object.
Definition: obj.c:20168
boolean obj_is_cli_text_block(const obj_template_t *obj)
Check if object is marked as ywx:cli-text-block.
Definition: obj.c:18347
boolean obj_is_sm_rpc(const obj_template_t *obj)
Check if the object is a schema mounted RPC method.
Definition: obj.c:15987
obj_oid_t * obj_get_oid_struct(obj_template_t *obj, boolean *malloced)
Get malloced object OID structure that contains OID string and OID count.
Definition: obj.c:20302
status_t obj_copy_object_id(const obj_template_t *obj, xmlChar *buff, uint32 bufflen, uint32 *reallen)
Generate the object ID for an object node and copy to the buffer copy an object ID to a buffer.
Definition: obj.c:12093
void obj_set_notif_log_drops(const obj_template_t *obj, boolean enabled)
Set the event drops enabled flag for the notification object.
Definition: obj.c:19530
obj_template_t * obj_get_parent_choice(obj_template_t *obj)
Get the choice parent of the current object;.
Definition: obj.c:21268
ncx_backptr_t * obj_next_inherit_when_ptr(ncx_backptr_t *ptr)
Get the next xpath pointer struct.
Definition: obj.c:18609
boolean obj_is_data_node(const obj_template_t *obj)
Check if the object is a real node type.
Definition: obj.c:15805
boolean obj_is_mp_parent(obj_template_t *child)
Check if the parent of this object is a Mount Pount object.
Definition: obj.c:21385
obj_template_t * obj_find_child_str(obj_template_t *obj, const xmlChar *modname, const xmlChar *objname, uint32 objnamelen)
Find a child object with the specified Qname.
Definition: obj.c:7708
boolean obj_is_sm_notif(const obj_template_t *obj)
Check if the object is a schema-mounted notification.
Definition: obj.c:16129
boolean obj_is_data_db(const obj_template_t *obj)
Check if the object is some sort of data Constrained to only check the config DB objects,...
Definition: obj.c:15760
boolean obj_is_short_case(obj_template_t *obj)
Check if the object is a short case statement.
Definition: obj.c:16913
obj_template_t * obj_find_template_all(ncx_module_t *mod, const xmlChar *modname, const xmlChar *objname)
Check if an obj_template_t in the mod->datadefQ or any of the include files used within the entire ma...
Definition: obj.c:6893
boolean obj_is_mounted(obj_template_t *child)
Check if mounted object.
Definition: obj.c:21333
boolean obj_is_abstract_ex(const obj_template_t *obj)
DUPLICATE FUNCTION OF obj_in_abstract()
Definition: obj.c:20200
boolean obj_any_rpcs(const dlq_hdr_t *datadefQ)
Check if there are any RPC methods in the datadefQ.
Definition: obj.c:11420
obj_template_t * obj_find_template_top_ex(ncx_module_t *mod, const xmlChar *modname, const xmlChar *objname, ncx_name_match_t match_names, boolean alt_names, boolean dataonly, status_t *retres)
Check if an obj_template_t in the mod->datadefQ or any of the include files visible to this module.
Definition: obj.c:6721
boolean obj_maybe_target_template(obj_template_t *obj)
Check a data node and its descendants match the template for NETCONF configuration sources Allow extr...
Definition: obj.c:19132
ncx_status_t obj_get_status(const obj_template_t *obj)
Get the status field for this obj.
Definition: obj.c:12528
boolean obj_is_leaf_list(const obj_template_t *obj)
Check if object is a proper leaf-list.
Definition: obj.c:15256
obj_template_t * obj_get_augment_targobj(obj_template_t *obj)
Get the target object for an augments object.
Definition: obj.c:18236
status_t obj_set_tabparms(obj_template_t *obj, const xmlChar *label1, const xmlChar *label2, const xmlChar *label3, uint8 hdr_rows)
Set the table header parameters for the object.
Definition: obj.c:22499
obj_template_t * obj_find_child_ex(obj_template_t *obj, const xmlChar *modname, const xmlChar *objname, ncx_name_match_t match_names, boolean alt_names, boolean dataonly, status_t *retres)
Find a child object with the specified Qname extended match modes.
Definition: obj.c:7423
obj_template_t * obj_get_default_parm(obj_template_t *obj)
Get the ncx:default-parm object for this object Only supported for OBJ_TYP_CONTAINER and OBJ_TYP_RPCI...
Definition: obj.c:14863
obj_iffeature_ptr_t * obj_next_iffeature_ptr(obj_iffeature_ptr_t *iffptr)
Get the next if-feature pointer.
Definition: obj.c:18567
obj_metadata_t * obj_next_metadata(const obj_metadata_t *meta)
Get the next object metadata definition in the object.
Definition: obj.c:17453
status_t obj_fill_keystackQ(obj_template_t *obj, dlq_hdr_t *keystackQ)
Fill a keystackQ with backptrs to obj_template_t for key leafs.
Definition: obj.c:20444
struct xpath_pcb_t_ * obj_next_xpath_backptr(obj_template_t *obj, struct xpath_pcb_t_ *xpath)
Get the next XPath backptr.
Definition: obj.c:18692
ncx_leafref_class_t obj_get_leafref_class(obj_template_t *obj)
Get the leafref class for a leafref object.
Definition: obj.c:19794
obj_defval_tk_t * obj_first_defval_tk(const obj_refine_t *ref)
Get the first defval_tk entry.
Definition: obj.c:19947
void obj_set_sil_priority(obj_template_t *obj, uint8 prio)
Set the SIL priority field.
Definition: obj.c:19655
void obj_clear_datarule(obj_template_t *obj, const void *rule)
Clear the datarule back-ptr for this node.
Definition: obj.c:20555
boolean obj_table_enabled(const obj_template_t *obj)
Check if CLI table output is enabled for the object.
Definition: obj.c:22382
uint32 obj_get_level_mp(const obj_template_t *obj)
Get the nest level for the specified object Top-level is '1' Does not count groupings as a level.
Definition: obj.c:13700
obj_template_t * obj_find_child_lrcheck(obj_template_t *obj, const xmlChar *modname, const xmlChar *objname)
Find a child object with the specified Qname LeafRef Check VERSION.
Definition: obj.c:7159
obj_template_t * obj_new_template(obj_type_t objtype)
Malloc and initialize the fields in a an object template.
Definition: obj.c:6226
boolean obj_is_any(const obj_template_t *obj)
Get the config flag for the top-level object Check the specified object all the way to root.
Definition: obj.c:15217
boolean obj_in_notif(const obj_template_t *obj)
Check if the object is in a notification.
Definition: obj.c:15936
obj_template_t * obj_next_terminal_child_nokey_nochoice(obj_template_t *obj)
Get the next child object if the specified object has any children.
Definition: obj.c:8371
boolean obj_find_xpath_backptr(obj_template_t *obj, struct xpath_pcb_t_ *xpath)
Find an xpath-expr backptr.
Definition: obj.c:18634
void obj_enter_xpath_mode(void)
Enter xpath mode and start ignoring obj_is_enabled.
Definition: obj.c:20110
void obj_free_template(obj_template_t *obj)
Scrub the memory in a obj_template_t by freeing all the sub-fields and then freeing the entire struct...
Definition: obj.c:6364
status_t obj_gen_object_id_oid(ncx_module_t *mod, const obj_template_t *obj, xmlChar **buff)
Malloc and Generate the object ID for an object node Used for canonical ID string comparison to gener...
Definition: obj.c:11814
boolean obj_is_mandatory(obj_template_t *obj)
Figure out if the obj is YANG mandatory or not.
Definition: obj.c:15457
boolean obj_has_children(obj_template_t *obj)
Check if there are any accessible nodes within the object.
Definition: obj.c:17086
boolean obj_is_schema_instance_string(const obj_template_t *obj)
Check if object is a schema-instance string.
Definition: obj.c:16551
ncx_sid_t obj_get_yang_sid(const obj_template_t *obj)
Get the YANG SID for this object.
Definition: obj.c:14276
obj_deviation_t * obj_new_deviation(void)
Malloc and initialize the fields in a an object deviation statement.
Definition: obj.c:11569
uint16 obj_get_key_num(obj_template_t *obj)
Get the key number for the object.
Definition: obj.c:19351
boolean obj_in_abstract(const obj_template_t *obj)
Check if object is being used as an object identifier or error-info CHECK ENTIRE TREE UP TO ROOT.
Definition: obj.c:16423
void obj_free_iffeature_ptr(obj_iffeature_ptr_t *iffptr)
Free an obj_iffeature_ptr_t struct.
Definition: obj.c:18530
const xmlChar * obj_get_reference(const obj_template_t *obj)
Get the reference field for this obj.
Definition: obj.c:12817
void obj_force_hidden(obj_template_t *obj)
Force an object to be hidden.
Definition: obj.c:20399
obj_template_t * obj_next_unique_backptr(obj_template_t *leafobj, obj_template_t *curbackptr)
Get the next unique backptr for a leaf object.
Definition: obj.c:21815
boolean obj_delete_all_supported(obj_template_t *obj)
Check if the object supports a direct delete-all or remove-all operation.
Definition: obj.c:19819
obj_unique_comp_t * obj_first_unique_comp(obj_unique_t *un)
Get the first identifier in a unique-stmt for a list.
Definition: obj.c:10982
void obj_set_key_leaf(obj_template_t *obj, uint16 keynum)
Set the key data for the object.
Definition: obj.c:19327
boolean obj_is_deleted(const obj_template_t *obj)
Check if object has been deleted by a deviate not-supported.
Definition: obj.c:16460
boolean obj_table_forced(const obj_template_t *obj)
Check if CLI table output is forced for the object.
Definition: obj.c:22404
obj_template_t * obj_find_child(obj_template_t *obj, const xmlChar *modname, const xmlChar *objname)
Find a child object with the specified Qname.
Definition: obj.c:7076
uint8 obj_get_fraction_digits(const obj_template_t *obj)
Get the fraction-digits field from the object typdef.
Definition: obj.c:15102
status_t obj_gen_object_id_xpath(const obj_template_t *obj, xmlChar **buff)
Malloc and Generate the object ID for an object node.
Definition: obj.c:11870
obj_defval_tk_t * obj_first_dev_defval_tk(const obj_deviate_t *dev)
Get the first defval_tk entry.
Definition: obj.c:19985
obj_unique_t * obj_new_unique(void)
Alloc and Init a obj_unique_t struct.
Definition: obj.c:10748
dlq_hdr_t * obj_get_leafrefQ(const obj_template_t *obj)
Get the leafrefQ for this obj.
Definition: obj.c:13115
void obj_find_delete_defval(obj_template_t *obj, const xmlChar *defval)
Find and delete a leaf-list default for deviate delete default foo.
Definition: obj.c:20023
boolean obj_has_iffeature(obj_template_t *obj)
Check any if-feature statements exist for the specified object.
Definition: obj.c:16832
void obj_clr_enable_chk(obj_template_t *obj)
Force an object to re-evaluate the enable check Will call for all children.
Definition: obj.c:20415
const xmlChar * obj_get_units(obj_template_t *obj)
Get the units clause for this object, if any.
Definition: obj.c:14528
boolean obj_is_empty(const obj_template_t *obj)
Check if object was entered in empty fashion:
Definition: obj.c:16155
boolean obj_in_edit2_mode(obj_template_t *obj)
Check if the object is an edit2 or edit3 container or list or terminal node child in an edit2 or edit...
Definition: obj.c:19751
boolean obj_is_in_oper_data(obj_template_t *obj)
Set the oper data parameters for the object.
Definition: obj.c:22559
boolean obj_in_rpc_reply(const obj_template_t *obj)
Check if the object is in an rpc-reply/output section.
Definition: obj.c:15899
boolean obj_is_action(const obj_template_t *obj)
Check if the object is a YANG 1.1 action.
Definition: obj.c:16050
boolean obj_is_uses(const obj_template_t *obj)
Check if object is a YANG uses-stmt.
Definition: obj.c:15403
obj_template_t * obj_previous_child(obj_template_t *obj)
Get the previous child object if the specified object has any children.
Definition: obj.c:8551
const xmlChar * obj_get_keystr(obj_template_t *obj)
Get the key string for this list object.
Definition: obj.c:18111
boolean obj_has_text_content(const obj_template_t *obj)
Check if the specified object type has a text content for XPath purposes.
Definition: obj.c:12497
boolean obj_get_config_flag2(const obj_template_t *obj, boolean *setflag)
Get the config flag for an obj_template_t Return the explicit value or the inherited value Also retur...
Definition: obj.c:12972
boolean obj_is_leafy(const obj_template_t *obj)
Check if object is a proper leaf or leaflist.
Definition: obj.c:15419
void obj_exit_xpath_mode(void)
Exit xpath mode and stop ignoring obj_is_enabled.
Definition: obj.c:20119
obj_template_t * obj_next_terminal_child_nokey(obj_template_t *obj)
Get the next child object if the specified object has any children; MUST BE TERMINAL NODE!...
Definition: obj.c:8331
const typ_def_t * obj_get_ctypdef(const obj_template_t *obj)
Get the typdef for the leaf or leaf-list : Const version.
Definition: obj.c:13921
boolean obj_has_aio_list(obj_template_t *obj)
Check is AIO object is a list or if its parent is a list object.
Definition: obj.c:21064
boolean obj_is_dup_local(obj_template_t *obj)
Check if this object is one that has a duplicate sibling with the same local-name and different modul...
Definition: obj.c:19305
const ncx_iffeature_t * obj_get_next_iffeature(const ncx_iffeature_t *iffeature)
Get the next if-feature clause (if any)
Definition: obj.c:15160
boolean obj_is_mp_with_rootcb(const obj_template_t *obj)
Check if current object is Mount Point object.
Definition: obj.c:21421
boolean obj_is_target_template(obj_template_t *obj)
Check a data node and its descendants match the template for NETCONF configuration sources.
Definition: obj.c:19072
boolean obj_notif_enabled(const obj_template_t *obj)
Check if the notification object is enabled.
Definition: obj.c:19466
obj_metadata_t * obj_first_metadata(const obj_template_t *obj)
Get the first object metadata definition in the object.
Definition: obj.c:17428
obj_template_t * obj_last_child(obj_template_t *obj)
Get the last child object if the specified object has any children.
Definition: obj.c:8111
const obj_template_t * obj_get_real_cparent(const obj_template_t *obj)
Get the parent of the current object; skip OBJ_TYP_CHOICE and OBJ_TYP_CASE.
Definition: obj.c:14661
boolean obj_is_mandatory_when(obj_template_t *obj)
Figure out if the obj is YANG mandatory or not Check the when-stmts, not just mandatory-stmt.
Definition: obj.c:15609
obj_template_t * obj_next_terminal_child(obj_template_t *obj)
Get the next child object if the specified object has any children; MUST BE TERMINAL NODE!...
Definition: obj.c:8296
dlq_hdr_t * obj_get_mustQ(const obj_template_t *obj)
Get the mustQ for this obj.
Definition: obj.c:13071
dlq_hdr_t * obj_get_datadefQ(obj_template_t *obj)
Get the datadefQ (or caseQ) if this object has one.
Definition: obj.c:13207
const xmlChar * obj_get_mod_name(const obj_template_t *obj)
Get the module name for this object.
Definition: obj.c:14047
boolean obj_notif_log_drops(const obj_template_t *obj)
Check if the event drops for the notification object is enabled.
Definition: obj.c:19485
void obj_set_ncx_flags(obj_template_t *obj)
Check the NCX appinfo extensions and set flags as needed.
Definition: obj.c:17559
boolean obj_use_get_when_check(const obj_template_t *obj)
check an object needs to use a when-check for GET processing
Definition: obj.c:20834
obj_template_t * obj_find_schema_template(dlq_hdr_t *que, const xmlChar *modname, const xmlChar *objname)
Find an object with the specified name For YANG schema-nodeid so NEVER lookdeep.
Definition: obj.c:6562
obj_unique_t * obj_next_unique(obj_unique_t *un)
Get the next unique-stmt for a list.
Definition: obj.c:10958
boolean obj_is_secure(const obj_template_t *obj)
Check if object is tagged ncx:secure.
Definition: obj.c:16572
boolean obj_get_xpath_oper_ok(const obj_template_t *obj)
Get the object XPath oper OK flag.
Definition: obj.c:21114
obj_template_t * obj_next_child_deep_ex(obj_template_t *obj, boolean stopnext)
Get the next child object if the specified object has any children.
Definition: obj.c:8713
boolean obj_is_cloned(const obj_template_t *obj)
Figure out if the obj is a cloned object, inserted via uses or augment statements.
Definition: obj.c:15622
boolean obj_is_final(obj_template_t *obj)
Check if the object template represents a fully expanded template or if it is inside a grouping.
Definition: obj.c:20356
ncx_module_t * obj_get_real_mod(obj_template_t *obj)
Get the module struct for the submodule or main module with this object.
Definition: obj.c:21163
uint32 obj_key_count(const obj_template_t *obj)
Get the number of keys for this object.
Definition: obj.c:11303
boolean obj_is_hidden_from_cli(const obj_template_t *obj)
Check if object is marked as a hidden object from CLI.
Definition: obj.c:16216
ncx_btype_t obj_get_basetype(const obj_template_t *obj)
Get the NCX base type enum for the object type.
Definition: obj.c:13949
const xmlChar * obj_get_typestr(const obj_template_t *obj)
Get the name of the object type.
Definition: obj.c:13147
boolean obj_is_sil_force_replay(const obj_template_t *obj)
Check if this object has the OBJ_FL_SIL_FORCE_REPLAY bit set.
Definition: obj.c:19406
boolean obj_is_choice(const obj_template_t *obj)
Check if object is a YANG choice.
Definition: obj.c:15357
status_t obj_cache_datarule(obj_template_t *obj, void *rule)
Set the data-rule back-ptr for this node.
Definition: obj.c:20520
obj_template_t * obj_get_real_parent(obj_template_t *obj)
Get the parent of the current object; skip OBJ_TYP_CHOICE and OBJ_TYP_CASE.
Definition: obj.c:14624
boolean obj_is_block_user_create(const obj_template_t *obj)
Check if object is marked as ncx:user-write with create access disabled.
Definition: obj.c:18438
struct xpath_pcb_t_ * obj_first_xpath_backptr(obj_template_t *obj)
Get the first xpath backptr.
Definition: obj.c:18668
dlq_hdr_t * obj_get_appinfoQ(obj_template_t *obj)
Get the appinfoQ for this obj.
Definition: obj.c:13047
obj_template_t * obj_get_parent(obj_template_t *obj)
Get the parent of the current object.
Definition: obj.c:14574
grp_template_t * obj_find_grouping(obj_template_t *obj, const xmlChar *grpname)
Check if a grp_template_t in the obj groupingQ hierarchy.
Definition: obj.c:9889
boolean obj_is_cli_equals_ok(const obj_template_t *obj)
Check if object is marked as ncx:default-parm-equals-ok.
Definition: obj.c:18330
obj_defval_tk_t * obj_next_defval_tk(const obj_defval_tk_t *defval_tk)
Get the next defval_tk entry.
Definition: obj.c:19966
const xmlChar * obj_get_name(const obj_template_t *obj)
Get the name field for this obj.
Definition: obj.c:12297
boolean obj_has_rw_children_ex(obj_template_t *obj, boolean term_only)
Check if there are any accessible read-write child nodes within the object.
Definition: obj.c:17191
void obj_set_oper_data_flags(obj_template_t *obj)
Set the oper data parameters for the object.
Definition: obj.c:22532
void obj_free_unique(obj_unique_t *un)
Free a obj_unique_t struct.
Definition: obj.c:10793
boolean obj_has_ro_descendants(obj_template_t *obj)
Check if there are any accessible read-only descendant nodes within the object.
Definition: obj.c:17137
boolean obj_in_mandatory_choice(const obj_template_t *obj)
Check if the object is the object is a top child within a case that is in a mandatory choice.
Definition: obj.c:22597
obj_template_t * obj_find_template_top(ncx_module_t *mod, const xmlChar *modname, const xmlChar *objname)
Check if an obj_template_t in the mod->datadefQ or any of the include files visible to this module.
Definition: obj.c:6677
obj_template_t * obj_first_terminal_child_nokey_nochoice(obj_template_t *obj)
Get the first child object if the specified object has any children.
Definition: obj.c:8076
const obj_key_t * obj_next_ckey(const obj_key_t *objkey)
Get the next key record: Const version.
Definition: obj.c:11279
boolean obj_is_np_container(const obj_template_t *obj)
Check if the object is an Non-Presence-container.
Definition: obj.c:16632
void obj_free_deviation(obj_deviation_t *deviation)
Clean and free an object deviation statement.
Definition: obj.c:11593
void obj_sort_children(obj_template_t *obj)
Check all the child nodes of the specified object and rearrange them into alphabetical order,...
Definition: obj.c:17479
boolean obj_is_augment(const obj_template_t *obj)
Check if the obj is an augment statement.
Definition: obj.c:15662
const obj_key_t * obj_first_ckey(const obj_template_t *obj)
Get the first key record: Const version.
Definition: obj.c:11201
status_t obj_gen_object_id(const obj_template_t *obj, xmlChar **buff)
Malloc and Generate the object ID for an object node.
Definition: obj.c:11643
status_t obj_make_restconf_pathstr(obj_template_t *obj, boolean toponly, xmlChar **retbuff)
Make a RESTCONF path string for the object.
Definition: obj.c:22193
boolean obj_is_create_np_ro(obj_template_t *obj)
Check if this is an empty read-only NP-container that should be created as an empty NP container.
Definition: obj.c:21854
boolean obj_is_leaf(const obj_template_t *obj)
Check if object is a proper leaf.
Definition: obj.c:15239
const xmlChar * obj_get_help_description(const obj_template_t *obj)
Get the help description field for this obj Check if a 'help' appinfo node is present.
Definition: obj.c:12693
boolean obj_is_exclusive_rpc(const obj_template_t *obj)
Check if this object has the OBJ_FL_EXCLUSIVE_WRITE bit set.
Definition: obj.c:19384
boolean obj_is_root(const obj_template_t *obj)
Check if object is marked as a root object.
Definition: obj.c:16233
boolean obj_is_singular(const obj_template_t *obj)
Check if the object can have only one instance or not.
Definition: obj.c:20711
obj_template_t * obj_get_top_aio_get2(obj_template_t *child)
Find the top AIO object.
Definition: obj.c:21018
status_t obj_set_xpath_backptrs(obj_template_t *obj)
Check a top-level data node and all its descendants to see if they have any XPath expressions that ne...
Definition: obj.c:18912
const obj_template_t * obj_find_template_con(dlq_hdr_t *que, const xmlChar *modname, const xmlChar *objname)
Find an object with the specified name Return a const pointer; used by yangdump.
Definition: obj.c:6593
void obj_set_sort_type(obj_template_t *obj, ncx_sort_type_t typ)
Set the sort type for the object if OK Otherwise this function call has no affect.
Definition: obj.c:21883
obj_deviate_t * obj_new_deviate(void)
Malloc and initialize the fields in a an object deviate statement.
Definition: obj.c:11483
boolean obj_find_all_descendants(ncx_module_t *exprmod, obj_walker_fn_t walkerfn, void *cookie1, void *cookie2, obj_template_t *startnode, const xmlChar *modname, const xmlChar *name, boolean configonly, boolean textmode, boolean useroot, boolean orself, boolean *fncalled)
Find all occurances of the specified node(s) within the descendants of the current node.
Definition: obj.c:9254
void obj_set_dup_local(obj_template_t *obj)
Flag the object as one that has a duplicate sibling with the same local-name and different module nam...
Definition: obj.c:19271
boolean obj_is_very_secure(const obj_template_t *obj)
Check if object is tagged ncx:very-secure.
Definition: obj.c:16589
uint32 obj_enabled_child_count(obj_template_t *obj)
Get the count of the number of enabled child nodes for the object template.
Definition: obj.c:17990
ncx_module_t * obj_get_mod_for_dump(obj_template_t *obj)
Get the module pointer for this object Use for sub-module !!! Used by yangdump-pro!...
Definition: obj.c:14161
boolean obj_parent_same_module(const obj_template_t *obj)
Check if the object parent object is the same.
Definition: obj.c:19611
boolean obj_npcon_has_defaults(obj_template_t *obj)
Check if the specified NP container has defaults within it Must be a config object!...
Definition: obj.c:13559
boolean obj_has_mandatory_children(obj_template_t *obj)
Check if there are any mandatory children.
Definition: obj.c:20868
uint16 obj_index_t
object index only applies to child nodes; this is assigned at runtime and any augments loaded at run-...
Definition: obj.h:824
obj_augtype_t
enumeration for different YANG augment statement types
Definition: obj.h:828
unsigned long oid_t
data type used in SNMP
Definition: obj.h:1236
boolean(* obj_tester_fn_t)(obj_template_t *obj, const xmlChar *objname, void *cookie)
find template object test callback function
Definition: obj.h:1588
uint8 obj_testflags_t
object test flags
Definition: obj.h:1251
obj_deviate_arg_t
type of deviation for each deviate entry
Definition: obj.h:1463
obj_type_t
enumeration for different YANG data def statement types the enum order is significant!...
Definition: obj.h:717
boolean(* obj_walker_fn_t)(obj_template_t *obj, void *cookie1, void *cookie2, boolean nonconfig_warn)
child or descendant node search walker function
Definition: obj.h:1568
@ OBJ_AUGTYP_RPCOUT
rpc output
Definition: obj.h:831
@ OBJ_AUGTYP_NONE
not set
Definition: obj.h:829
@ OBJ_AUGTYP_DATA
within data
Definition: obj.h:833
@ OBJ_AUGTYP_RPCIN
rpc input
Definition: obj.h:830
@ OBJ_AUGTYP_CASE
case
Definition: obj.h:832
@ OBJ_DARG_NONE
not set
Definition: obj.h:1464
@ OBJ_DARG_NOT_SUPPORTED
deviate not-supported
Definition: obj.h:1468
@ OBJ_DARG_DELETE
deviate delete
Definition: obj.h:1466
@ OBJ_DARG_ADD
deviate add
Definition: obj.h:1465
@ OBJ_DARG_REPLACE
deviate replace
Definition: obj.h:1467
@ OBJ_TYP_CASE
This object represents a YANG case schema node.
Definition: obj.h:747
@ OBJ_TYP_ANYXML
This object represents a YANG 1.1 anydata data node.
Definition: obj.h:721
@ OBJ_TYP_CHOICE
This object represents a YANG choice schema node.
Definition: obj.h:742
@ OBJ_TYP_ACTION
This object represents a YANG 1.1 action schema node.
Definition: obj.h:813
@ OBJ_TYP_REFINE
This object represents a YANG refine statement.
Definition: obj.h:766
@ OBJ_TYP_USES
This object represents a YANG uses schema node.
Definition: obj.h:758
@ OBJ_TYP_NOTIF
This object represents a YANG notification statement.
Definition: obj.h:803
@ OBJ_TYP_LEAF_LIST
This object represents a YANG leaf-list data node.
Definition: obj.h:733
@ OBJ_TYP_LEAF
This object represents a YANG leaf data node.
Definition: obj.h:730
@ OBJ_TYP_ANYDATA
This object represents a YANG 1.1 anydata data node.
Definition: obj.h:806
@ OBJ_TYP_NONE
not set
Definition: obj.h:718
@ OBJ_TYP_RPCIO
This object represents a YANG input or output statement.
Definition: obj.h:794
@ OBJ_TYP_RPC
This object represents a YANG rpc statement.
Definition: obj.h:786
@ OBJ_TYP_CONTAINER
This object represents a YANG presence or non-presence container.
Definition: obj.h:727
@ OBJ_TYP_LIST
This object represents a YANG list data node.
Definition: obj.h:736
@ OBJ_TYP_AUGMENT
This object represents a YANG augment statement.
Definition: obj.h:777
YANG Grouping Statement Handler.
NCX System Logging Manager.
Contains NCX constants.
YANG module data structures Many internal representations of YANG module constructs.
NETCONF protocol remote procedure call common definitions.
Global error messages for status code enumerations.
One YANG 'grouping' definition – sibling set template.
Definition: grp.h:87
used with various structs to cache back-ptrs the 'node' pointer may or may not be malloced!...
Definition: ncxtypes.h:1511
struct to remember error info tkc->cur_err will be checked before tkc->cur for error information
Definition: ncxtypes.h:856
YANG if-feature entry.
Definition: ncxtypes.h:932
representation of one module or submodule during and after parsing
Definition: ncxtypes.h:1118
Schema Mount Root Control Block used in the object template.
Definition: ncxtypes.h:1874
One YANG augment statement struct (top-level or in case-stmt.
Definition: obj.h:1155
dlq_hdr_t datadefQ
Q of obj_template_t.
Definition: obj.h:1171
ncx_status_t status
status-stmt
Definition: obj.h:1170
xmlChar * target
Xpath schema-node target to augment.
Definition: obj.h:1157
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:1163
obj_augtype_t augtype
internal augment type enum
Definition: obj.h:1169
uint16 depth
internal nest depth of augment
Definition: obj.h:1172
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:1160
struct obj_template_t_ * targobj
resolved backptr to augmented object
Definition: obj.h:1166
One YANG 'case' definition.
Definition: obj.h:1029
xmlChar * name
case name
Definition: obj.h:1030
ncx_status_t status
status-stmt
Definition: obj.h:1043
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:1036
boolean nameclone
the nameclone flag is set even though the clone bit is also set; this can probably be removed
Definition: obj.h:1042
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:1033
dlq_hdr_t * datadefQ
Q of obj_template_t.
Definition: obj.h:1038
One YANG 'choice' definition.
Definition: obj.h:1013
dlq_hdr_t * caseQ
Q of obj_template_t.
Definition: obj.h:1022
xmlChar * name
choice name
Definition: obj.h:1014
ncx_status_t status
status-stmt
Definition: obj.h:1024
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:1021
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:1018
xmlChar * defval
default case
Definition: obj.h:1015
boolean caseQclone
flag caseQ is cloned
Definition: obj.h:1023
One YANG 'container' definition.
Definition: obj.h:874
xmlChar * name
name of container
Definition: obj.h:876
ncx_status_t status
status-stmt
Definition: obj.h:889
xmlChar * ref
reference-stmt (not saved by server)
Definition: obj.h:882
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:890
xmlChar * presence
presence-stmt
Definition: obj.h:885
xmlChar * descr
description-stmt (not saved by server)
Definition: obj.h:879
struct obj_template_t_ * defaultparm
default parm for yangcli
Definition: obj.h:891
dlq_hdr_t * typedefQ
Q of typ_template_t.
Definition: obj.h:886
dlq_hdr_t * datadefQ
Q of obj_template_t.
Definition: obj.h:888
dlq_hdr_t * groupingQ
Q of grp_template_t.
Definition: obj.h:887
One YANG 1.1 default stored in a Q for refine and deviate.
Definition: obj.h:846
xmlChar * def
default value string
Definition: obj.h:848
dlq_hdr_t qhdr
queue header
Definition: obj.h:847
ncx_error_t def_tkerr
file and line info for compiler
Definition: obj.h:849
YANG deviate statement struct.
Definition: obj.h:1473
dlq_hdr_t defval_tkQ
Q of obj_defval_tk_t (leaf-list can have multiple default-stmt)
Definition: obj.h:1506
dlq_hdr_t uniqueQ
Q of obj_unique_t.
Definition: obj.h:1528
ncx_error_t tkerr
the error info for each sub-clause is saved because when the deviation-stmt is parsed,...
Definition: obj.h:1482
dlq_hdr_t appinfoQ
Q of ncx_appinfo_t.
Definition: obj.h:1529
ncx_error_t arg_tkerr
same comment as tkerr
Definition: obj.h:1491
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:1527
boolean config
deviating config-stmt
Definition: obj.h:1509
dlq_hdr_t qhdr
queue header
Definition: obj.h:1474
typ_def_t * typdef
typedef if deviating the type
Definition: obj.h:1494
ncx_error_t type_tkerr
same comment as tkerr
Definition: obj.h:1497
uint32 maxelems
deviating max-elements
Definition: obj.h:1525
ncx_error_t config_tkerr
same comment as tkerr
Definition: obj.h:1512
uint32 minelems
deviating min-elements
Definition: obj.h:1521
ncx_error_t minelems_tkerr
also minset
Definition: obj.h:1522
xmlChar * units
units if deviating the units
Definition: obj.h:1500
boolean empty
deviate-stmt is empty
Definition: obj.h:1485
ncx_error_t units_tkerr
same comment as tkerr
Definition: obj.h:1503
ncx_error_t maxelems_tkerr
also maxset
Definition: obj.h:1526
ncx_error_t mandatory_tkerr
same comment as tkerr
Definition: obj.h:1518
obj_deviate_arg_t arg
deviate argument enum
Definition: obj.h:1488
boolean mandatory
deviating mandatory-stmt
Definition: obj.h:1515
YANG deviation statement struct.
Definition: obj.h:1534
ncx_error_t tkerr
file and line info for compiler
Definition: obj.h:1547
dlq_hdr_t appinfoQ
Q of ncx_appinfo_t.
Definition: obj.h:1553
xmlChar * target
schema-node target to deviate
Definition: obj.h:1536
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:1544
xmlChar * devmodname
set if not the targmod
Definition: obj.h:1548
dlq_hdr_t qhdr
queue header
Definition: obj.h:1535
obj_template_t * targobj
target object when resolved
Definition: obj.h:1538
dlq_hdr_t deviateQ
Q of obj_deviate_t.
Definition: obj.h:1552
status_t res
parse status
Definition: obj.h:1551
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:1541
boolean empty
for display in yangdump
Definition: obj.h:1549
boolean annotation
set from annotation
Definition: obj.h:1550
xmlChar * targmodname
target module name
Definition: obj.h:1537
custom error message filter control block
Definition: obj.h:1205
dlq_hdr_t qhdr
queue header
Definition: obj.h:1206
boolean is_errortag
error-tag flag
Definition: obj.h:1208
xmlChar * matchstr
message string to match
Definition: obj.h:1207
custom error message parameter control block
Definition: obj.h:1213
dlq_hdr_t qhdr
queue header
Definition: obj.h:1214
uint32 len
state : length
Definition: obj.h:1218
xmlChar * path
path of replacement data
Definition: obj.h:1215
xmlChar * valstr
state: value string
Definition: obj.h:1221
custom error message control block
Definition: obj.h:1226
xmlChar * langstr
language string
Definition: obj.h:1229
dlq_hdr_t qhdr
queue header
Definition: obj.h:1227
dlq_hdr_t parmQ
Q of obj_errmsg_parm_t.
Definition: obj.h:1230
xmlChar * basestr
base string
Definition: obj.h:1228
dlq_hdr_t filterQ
Q of obj_errmsg_filter_t.
Definition: obj.h:1231
back-pointer to inherited if-feature statements
Definition: obj.h:1198
dlq_hdr_t qhdr
queue heaader
Definition: obj.h:1199
ncx_iffeature_t * iffeature
if-feature back-ptr
Definition: obj.h:1200
One YANG list key component.
Definition: obj.h:838
struct obj_template_t_ * keyobj
backptr to key object
Definition: obj.h:840
dlq_hdr_t qhdr
queue header
Definition: obj.h:839
boolean seen
used by yangdiff
Definition: obj.h:841
One YANG 'leaf' or 'anyxml' or 'anydata' definition.
Definition: obj.h:897
struct obj_template_t_ * leafrefobj
leafref obj backptr only if btyp == NCX_BT_LEAFREF
Definition: obj.h:935
xmlChar * name
name of leaf or anyxml/anydata
Definition: obj.h:899
ncx_status_t status
status-stmt
Definition: obj.h:917
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:911
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:922
typ_def_t * typdef
typedef for the data type (leaf only)
Definition: obj.h:914
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:908
xmlChar * units
units-stmt only in a leaf
Definition: obj.h:902
dlq_hdr_t leafrefQ
used for quick leafref validation on server
Definition: obj.h:925
xmlChar * defval
default-stmt only in a leaf
Definition: obj.h:905
dlq_hdr_t uniqrefQ
used for quick unique-stmt validation on server A leaf can be the target of a unique stmt component f...
Definition: obj.h:932
uint16 keynum
internal key number only for keay leafs
Definition: obj.h:920
One YANG 'leaf-list' definition.
Definition: obj.h:941
ncx_sort_type_t sort_type
sort type applies to system
Definition: obj.h:972
struct obj_template_t_ * leafrefobj
leafref obj backptr only if btyp == NCX_BT_LEAFREF
Definition: obj.h:970
xmlChar * name
leaf-list name
Definition: obj.h:943
ncx_status_t status
status-stmt
Definition: obj.h:964
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:952
boolean minset
min-elements set
Definition: obj.h:960
boolean maxset
max-elements set
Definition: obj.h:962
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:965
typ_def_t * typdef
typedef for the data type
Definition: obj.h:955
uint32 maxelems
max-elements value
Definition: obj.h:963
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:949
uint32 minelems
min-elements value
Definition: obj.h:961
xmlChar * units
units-stmt
Definition: obj.h:946
dlq_hdr_t leafrefQ
Q of ncx_backptr_t to obj_template_t.
Definition: obj.h:966
dlq_hdr_t defvalQ
YANG 1.1, Q of malloced ncx_backptr_t.
Definition: obj.h:967
boolean ordersys
ordered-by system or user
Definition: obj.h:959
boolean defset
T if any defaults specified for this leaf-list.
Definition: obj.h:958
One YANG 'list' definition.
Definition: obj.h:977
dlq_hdr_t uniqueQ
Q of obj_unique_t.
Definition: obj.h:993
ncx_sort_type_t sort_type
sort type applies to system
Definition: obj.h:1008
xmlChar * name
list name
Definition: obj.h:979
ncx_status_t status
status-stmt
Definition: obj.h:999
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:988
ncx_error_t keytkerr
saved error info for key-stmt errors
Definition: obj.h:1003
boolean minset
min-elements set
Definition: obj.h:995
boolean maxset
max-elements set
Definition: obj.h:997
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:1000
xmlChar * keystr
key-stmt (not required if config=false)
Definition: obj.h:982
uint32 maxelems
max-elements value
Definition: obj.h:998
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:985
uint32 minelems
min-elements value
Definition: obj.h:996
obj_index_t last_index
internal numbering data for val_child ordering
Definition: obj.h:1006
dlq_hdr_t keyQ
Q of obj_key_t.
Definition: obj.h:992
boolean ordersys
ordered-by system or user
Definition: obj.h:994
dlq_hdr_t * typedefQ
Q of typ_template_t.
Definition: obj.h:989
dlq_hdr_t * datadefQ
Q of obj_template_t.
Definition: obj.h:991
dlq_hdr_t * groupingQ
Q of grp_template_t.
Definition: obj.h:990
One YANG metadata (XML attribute) node.
Definition: obj.h:1451
ncx_error_t tkerr
file and line info for compiler
Definition: obj.h:1457
xmlChar * name
metadata name
Definition: obj.h:1454
dlq_hdr_t qhdr
queue header
Definition: obj.h:1452
typ_def_t * typdef
typedef for metadata
Definition: obj.h:1455
struct obj_template_t_ * parent
obj containing metadata
Definition: obj.h:1453
xmlns_id_t nsid
in case parent == NULL
Definition: obj.h:1456
One YANG 'notification' clause definition.
Definition: obj.h:1177
boolean in_data
defined in data, YANG 1.1 only
Definition: obj.h:1193
boolean notif_enabled
enabled or disabled in server
Definition: obj.h:1191
dlq_hdr_t datadefQ
Q of obj_template_t.
Definition: obj.h:1189
xmlChar * name
notification name
Definition: obj.h:1179
ncx_status_t status
status-stmt
Definition: obj.h:1186
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:1185
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:1190
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:1182
boolean notif_log_drops
log drops for this event type
Definition: obj.h:1192
dlq_hdr_t * typedefQ
Q of typ_template_t.
Definition: obj.h:1187
dlq_hdr_t * groupingQ
Q of gtp_template_t.
Definition: obj.h:1188
defines the snmp oid value, stored as an array of integers for easier comparision when performing AVL...
Definition: obj.h:1244
oid_t * oidc
OID component.
Definition: obj.h:1246
uint8 cnt
amount of Sub-Ids (max 128)
Definition: obj.h:1245
One YANG refine statement struct.
Definition: obj.h:1066
dlq_hdr_t defval_tkQ
Q of obj_defval_tk_t.
Definition: obj.h:1096
xmlChar * target
relative-path of the object to refine
Definition: obj.h:1068
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:1085
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:1107
xmlChar * presence
refining the presence-stmt
Definition: obj.h:1091
uint32 maxelems
max-elements value
Definition: obj.h:1105
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:1074
ncx_error_t ref_tkerr
same comment as descr_tkerr applies here
Definition: obj.h:1088
ncx_error_t config_tkerr
config and confset are in the object flags
Definition: obj.h:1099
uint32 minelems
min-elements value
Definition: obj.h:1103
struct obj_template_t_ * targobj
resolved target object to refine
Definition: obj.h:1071
ncx_error_t minelems_tkerr
also minset
Definition: obj.h:1104
ncx_error_t descr_tkerr
the token for each sub-clause is saved because when the refine-stmt is parsed, the target is not know...
Definition: obj.h:1082
ncx_error_t maxelems_tkerr
also maxset
Definition: obj.h:1106
ncx_error_t presence_tkerr
same comment as descr_tkerr applies here
Definition: obj.h:1094
ncx_error_t mandatory_tkerr
mandatory and mandset are in the object flags
Definition: obj.h:1102
One YANG rpc-stmt struct.
Definition: obj.h:1132
dlq_hdr_t datadefQ
Q of obj_template_t.
Definition: obj.h:1145
xmlChar * name
rpc method name
Definition: obj.h:1134
ncx_status_t status
status-stmt
Definition: obj.h:1142
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:1140
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:1137
boolean supported
mod loaded, not implemented
Definition: obj.h:1150
dlq_hdr_t * typedefQ
Q of typ_template_t.
Definition: obj.h:1143
dlq_hdr_t * groupingQ
Q of gtp_template_t.
Definition: obj.h:1144
xmlns_id_t nsid
internal fields for manager and agent
Definition: obj.h:1149
boolean is_action
YANG 1.1 only.
Definition: obj.h:1146
One YANG input-stmt or output-stmt struct.
Definition: obj.h:1112
dlq_hdr_t datadefQ
Q of obj_template_t.
Definition: obj.h:1116
xmlChar * name
input or output
Definition: obj.h:1113
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:1117
boolean is_input
YPW-1406: the name can be changed temporarily in XPath validation so need a flag to tell if input or ...
Definition: obj.h:1122
struct obj_template_t_ * defaultparm
the defaultparm is only used by yangcli-pro to allow 1 parameter in a command to be entered without a...
Definition: obj.h:1127
dlq_hdr_t * typedefQ
Q of typ_template_t.
Definition: obj.h:1114
dlq_hdr_t * groupingQ
Q of gtp_template_t.
Definition: obj.h:1115
table display parameter block
Definition: obj.h:1255
xmlChar * label2
label-2 for the column header
Definition: obj.h:1260
xmlChar * label3
label-3 for the column header
Definition: obj.h:1263
uint8 len1
length of label1
Definition: obj.h:1266
uint8 hdr_rows
number of header rows needed
Definition: obj.h:1275
xmlChar * label1
label-1 for the column header
Definition: obj.h:1257
uint8 len3
length of label3
Definition: obj.h:1272
uint8 len2
length of label2
Definition: obj.h:1269
One YANG data-def-stmt.
Definition: obj.h:1284
ncx_error_t tkerr
file and line info for compiler
Definition: obj.h:1299
ncx_sid_t yang_sid
Each object specific variant has a YANG SID assigned for CBOR encoding.
Definition: obj.h:1439
obj_tabparms_t * tabparms
table display parameters may be set by client
Definition: obj.h:1445
obj_oid_t * oid
SNMP OID for this object (set if needed)
Definition: obj.h:1303
ncx_transaction_id_t leafref_txid
current edit transaction ID for intermediate leafref processing
Definition: obj.h:1379
uint32 yang_hash
experimental: not used
Definition: obj.h:1288
obj_testflags_t desc_testflags
see AGT_TEST_FL_* definitions
Definition: obj.h:1298
dlq_hdr_t appinfoQ
Q of ncx_appinfo_t.
Definition: obj.h:1313
ncx_transaction_id_t def_when_txid
current edit transaction ID for intermediate default when-stmt nodes processing
Definition: obj.h:1401
dlq_hdr_t iffeatureQ
Q of ncx_iffeature_t.
Definition: obj.h:1314
dlq_hdr_t * errmsgQ
custom error message used if this is the server running
Definition: obj.h:1361
dlq_hdr_t xpath_backptrQ
Q of ncx_back_ptr_t with node == xpath_pcb_t.
Definition: obj.h:1352
void * def_hook_cb
def_hook_cb is ncx_def_hook_cbfn_t callback function for Dynamic Default Hook callback.
Definition: obj.h:1422
uint8 silflags
see OBJ_FL_* definitions
Definition: obj.h:1295
dlq_hdr_t inherited_whenQ
Q of ncx_backptr_t with node == xpath_pcb_t.
Definition: obj.h:1319
struct obj_template_t_ * usesobj
backptr to uses-obj if grouping expand
Definition: obj.h:1308
uint8 sil_priority
picks SIL callback order
Definition: obj.h:1296
ncx_transaction_id_t edit_txid
current edit transaction ID for commit test pruning
Definition: obj.h:1370
ncx_transaction_id_t must_txid
current edit transaction ID for MUST test default nodes pruning
Definition: obj.h:1373
boolean set_snmp_flags
need SNMP flags
Definition: obj.h:1304
ncx_transaction_id_t when_txid
current edit transaction ID for WHEN test default nodes pruning
Definition: obj.h:1376
dlq_hdr_t metadataQ
Q of obj_metadata_t.
Definition: obj.h:1312
void * yangmap_cb
if set, backptr to the nodemap in a YANG model mapping OBJ_IS_YANGMAP_SOURCE() indicates this is the ...
Definition: obj.h:1367
dlq_hdr_t qhdr
queue header
Definition: obj.h:1285
grp_template_t * grp
non-NULL == in a grp.datadefQ
Definition: obj.h:1300
boolean xpath_oper_ok
object OK for referencing oper-data in XPath
Definition: obj.h:1305
dlq_hdr_t inherited_iffeatureQ
Q of obj_iffeature_ptr_t.
Definition: obj.h:1316
uint32 yang_sid_tree
SID tree assignment if yang_sid is used.
Definition: obj.h:1442
struct xpath_pcb_t_ * when
optional when clause
Definition: obj.h:1311
uint32 flags
see OBJ_FL_* definitions
Definition: obj.h:1290
ncx_sm_rootcb_t * rootcb
Schema Mount Control Block.
Definition: obj.h:1433
ncx_transaction_id_t def_txid
current edit transaction ID for intermediate default nodes processing
Definition: obj.h:1389
uint32 xflags
see OBJ_FL_* definitions
Definition: obj.h:1291
uint32 xflags2
see OBJ_FL_* definitions
Definition: obj.h:1292
obj_index_t index
object index for val_child ordering
Definition: obj.h:1301
struct obj_template_t_ * parent
backptr to parent
Definition: obj.h:1307
obj_type_t objtype
object type (def)
Definition: obj.h:1286
void * commit_test_cb
backptr to the commit_test record for this object which will only exist if this object has 'must' or ...
Definition: obj.h:1358
uint32 uflags
see OBJ_FL_* definitions
Definition: obj.h:1294
obj_testflags_t testflags
see AGT_TEST_FL_* definitions
Definition: obj.h:1297
void * bool_eval_cb
The bool_eval_cb callback function may be set to allow XPath eval to be done by the callback instead ...
Definition: obj.h:1430
void * get2cb
get2fn is getcb_fn2_t for local GET2
Definition: obj.h:1334
dlq_hdr_t * dataruleQ
Q obj NACM data-rule backptrs.
Definition: obj.h:1322
void * cbset
cbset is different based on the object type:
Definition: obj.h:1331
struct ncx_module_t_ * mod
object module and namespace ID assigned at runtime this can be changed over and over as a uses statem...
Definition: obj.h:1343
xmlns_id_t nsid
namespace ID assigned to the object at run-time
Definition: obj.h:1346
struct obj_template_t_ * augobj
backptr to augment-obj if augment expand
Definition: obj.h:1309
One component in a YANG list unique target.
Definition: obj.h:854
boolean isduplicate
T: will be ignored by server.
Definition: obj.h:858
dlq_hdr_t qhdr
queue header
Definition: obj.h:855
xmlChar * xpath
saved unique str for this obj
Definition: obj.h:857
struct obj_template_t_ * unobj
unique object target
Definition: obj.h:856
One component in a YANG list unique target.
Definition: obj.h:863
ncx_error_t tkerr
file and line info for compiler
Definition: obj.h:869
dlq_hdr_t compQ
Q of obj_unique_comp_t.
Definition: obj.h:866
dlq_hdr_t qhdr
queue header
Definition: obj.h:864
xmlChar * xpath
complete saved unique str
Definition: obj.h:865
boolean isconfig
T:constraint is on config.
Definition: obj.h:868
boolean seen
needed by yangdiff
Definition: obj.h:867
One YANG uses statement struct.
Definition: obj.h:1048
boolean expand_done
expand done flag
Definition: obj.h:1060
xmlChar * name
name of grouping to use
Definition: obj.h:1050
ncx_status_t status
status-stmt
Definition: obj.h:1059
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:1056
grp_template_t * grp
const back-ptr to grouping
Definition: obj.h:1057
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:1053
boolean refine_done
refine targobj done flag
Definition: obj.h:1061
xmlChar * prefix
prefix present in uses-stmt
Definition: obj.h:1049
dlq_hdr_t * datadefQ
Q of obj_template_t.
Definition: obj.h:1058
token parsing chain (main parser control block)
Definition: tk.h:415
Discriminated union for all data typedefs.
Definition: typ.h:458
One YANG 'typedef' definition – top-level type template.
Definition: typ.h:477
gather node data into a simple struct.
Definition: xml_util.h:207
NCX Syntax Token Handler.
Parameter Type Handler.
object specific variants
Definition: obj.h:1404
XML Utilities.
XML namespace support.