yumapro  24.10-3
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 - 2024, YumaWorks, Inc., All Rights Reserved.
4 *
5 * Unless required by applicable law or agreed to in writing,
6 * software distributed under the License is distributed on an
7 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
8 * KIND, either express or implied. See the License for the
9 * specific language governing permissions and limitations
10 * under the License.
11 */
12#ifndef _H_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
398/* indicates the object uses the edit3 callback mode */
399#define OBJ_FL_EDIT3_MODE bit9
400
401
402/* This bit is set if the object has the ywx:hidden-from-cli extension
403 * This is only checked by yp-shell and yangcli-pro.
404 * It is ignored by the server.
405 * This is bit9 in 23.10 release train!
406 */
407#define OBJ_FL_HIDDEN_FROM_CLI bit10
408
409
410/* This bit is set if the object has the ywx:confirm-data extension
411 * This is only checked by yp-shell and yangcli-pro.
412 * It is ignored by the server.
413 */
414#define OBJ_FL_CONFIRM_DATA bit11
415
416
417/* indicates the object uses the edit1 callback mode */
418#define OBJ_FL_EDIT1_MODE bit12
419
420
421/********* uflags field in obj_template_t *************/
422
423/* This field represents the user flags and no system bits
424 * are defined for this field. It is used by yang_obj_cb
425 * callback functions to set user-specific flags
426 */
427
428/********* silflags field in obj_template_t *************/
429
430/* This bit is set in agt_rpc to indicate the RPC is
431 * currently being invoked; If another session attempts
432 * to invoke the RPC while busy, and the obj_is_exclusive_rpc
433 * the RPC request will be rejected by the server
434 */
435#define OBJ_FL_SIL_BUSY bit0
436
437#define OBJ_TYPE(OBJ) (OBJ)->objtype
438
439#define OBJ_INDEX(OBJ) (OBJ)->index
440
441/* mark the object as a top object since the yang_obj does
442 * not catch top-level uses from a grouping as a top object
443 */
444#define OBJ_SET_TOP(OBJ) (OBJ)->flags |= OBJ_FL_TOP
445
446#define OBJ_SET_SIL_BUSY(OBJ) (OBJ)->silflags |= OBJ_FL_SIL_BUSY
447
448#define OBJ_CLEAR_SIL_BUSY(OBJ) (OBJ)->silflags &= ~OBJ_FL_SIL_BUSY
449
450#define OBJ_IS_SIL_BUSY(OBJ) ((OBJ)->silflags & OBJ_FL_SIL_BUSY)
451
452#define OBJ_GET_CBSET(OBJ) (OBJ)->cbset
453
454
455/* Get2 support */
456#define OBJ_SET_REMOTE_GET2(OBJ) (OBJ)->xflags |= OBJ_FL_REMOTE_GET2
457
458#define OBJ_CLEAR_REMOTE_GET2(OBJ) (OBJ)->xflags &= ~OBJ_FL_REMOTE_GET2
459
460#define OBJ_HAS_REMOTE_GET2(OBJ) ((OBJ)->xflags & OBJ_FL_REMOTE_GET2)
461
462#define OBJ_SET_GET2CB(OBJ, CB) (OBJ)->get2cb = CB
463
464#define OBJ_GET_GET2CB(OBJ) (getcb_fn2_t)(OBJ)->get2cb
465
466#define OBJ_SET_EDIT2_MODE(OBJ) (OBJ)->xflags |= OBJ_FL_EDIT2_MODE
467#define OBJ_IS_EDIT2_MODE(OBJ) ((OBJ)->xflags & OBJ_FL_EDIT2_MODE)
468#define OBJ_CLEAR_EDIT2_MODE(OBJ) (OBJ)->xflags &= ~OBJ_FL_EDIT2_MODE
469
470
471/* XPath tuning */
472#define OBJ_SET_SKIP_LEAFREF(OBJ) (OBJ)->xflags |= OBJ_FL_SKIP_LEAFREF
473
474#define OBJ_IS_SKIP_LEAFREF(OBJ) ((OBJ)->xflags & OBJ_FL_SKIP_LEAFREF)
475
476
477
478/* Object YANG Hash */
479#define OBJ_SET_YANG_HASH(OBJ) (OBJ)->xflags |= OBJ_FL_YANG_HASH
480
481#define OBJ_IS_YANG_HASH(OBJ) ((OBJ)->xflags & OBJ_FL_YANG_HASH)
482
483
484/* Object Rehash */
485#define OBJ_SET_YANG_REHASH(OBJ) (OBJ)->xflags |= OBJ_FL_YANG_REHASH
486
487#define OBJ_IS_YANG_REHASH(OBJ) ((OBJ)->xflags & OBJ_FL_YANG_REHASH)
488
489
490/* CBSET Malloced */
491#define OBJ_SET_CBSET_MALLOCED(OBJ) (OBJ)->xflags |= OBJ_FL_CBSET_MALLOCED
492
493#define OBJ_IS_CBSET_MALLOCED(OBJ) ((OBJ)->xflags & OBJ_FL_CBSET_MALLOCED)
494
495#define OBJ_CLEAR_CBSET_MALLOCED(OBJ) (OBJ)->xflags &= ~OBJ_FL_CBSET_MALLOCED
496
497/* Object is generic */
498#define OBJ_SET_GENERIC(OBJ) (OBJ)->xflags |= OBJ_FL_GENERIC
499
500#define OBJ_IS_GENERIC(OBJ) ((OBJ)->xflags & OBJ_FL_GENERIC)
501
502
503/* Object or children have a default value */
504/* NOT USED */
505#define OBJ_SET_DEF_DONE(OBJ) (OBJ)->xflags |= OBJ_FL_DEF_DONE
506
507/* NOT USED */
508#define OBJ_IS_DEF_DONE(OBJ) ((OBJ)->xflags & OBJ_FL_DEF_DONE)
509
510/* NOT USED */
511#define OBJ_SET_DEF(OBJ) (OBJ)->xflags |= OBJ_FL_DEF
512
513/* NOT USED */
514#define OBJ_IS_DEF(OBJ) ((OBJ)->xflags & OBJ_FL_DEF)
515
516/* Object is an RPC that is allowed in library mode */
517#define OBJ_SET_LIBMODE(OBJ) (OBJ)->xflags |= OBJ_FL_LIBMODE
518
519#define OBJ_IS_LIBMODE(OBJ) ((OBJ)->xflags & OBJ_FL_LIBMODE)
520
521#define OBJ_USER_FLAGS(OBJ) (OBJ)->uflags
522
523/* get the object pointer in an obj_key_t */
524#define OBJ_KEY_OBJ(K) (K)->keyobj
525
526/* get the current edit transaction id;
527 * -- changed on each transaction this object is tested
528 */
529#define OBJ_EDIT_TXID(OBJ) (OBJ)->edit_txid
530
531#define OBJ_EXTR_MUST_TXID(OBJ) (OBJ)->must_txid
532#define OBJ_EXTR_WHEN_TXID(OBJ) (OBJ)->when_txid
533#define OBJ_EXTR_LEAFREF_TXID(OBJ) (OBJ)->leafref_txid
534
535
536/* Object is flagged no-nvstore */
537#define OBJ_SET_NO_NVSTORE(OBJ) (OBJ)->xflags |= OBJ_FL_NO_NVSTORE
538
539#define OBJ_IS_NO_NVSTORE(OBJ) ((OBJ)->xflags & OBJ_FL_NO_NVSTORE)
540
541
542/* Object is flagged yangmap-source */
543#define OBJ_SET_YANGMAP_SOURCE(OBJ) \
544 (OBJ)->xflags |= OBJ_FL_YANGMAP_SOURCE
545
546#define OBJ_IS_YANGMAP_SOURCE(OBJ) \
547 ((OBJ)->xflags & OBJ_FL_YANGMAP_SOURCE)
548
549
550/* Object is flagged yangmap-target */
551#define OBJ_SET_YANGMAP_TARGET(OBJ) \
552 (OBJ)->xflags |= OBJ_FL_YANGMAP_TARGET
553
554#define OBJ_IS_YANGMAP_TARGET(OBJ) \
555 ((OBJ)->xflags & OBJ_FL_YANGMAP_TARGET)
556
557/* Object is flagged yangmap-childmap */
558#define OBJ_SET_YANGMAP_CHILD(OBJ) \
559 (OBJ)->xflags |= OBJ_FL_YANGMAP_CHILD
560
561#define OBJ_IS_YANGMAP_CHILD(OBJ) \
562 ((OBJ)->xflags & OBJ_FL_YANGMAP_CHILD)
563
564/* Object is flagged yangmap-keymap */
565#define OBJ_SET_YANGMAP_KEY(OBJ) \
566 (OBJ)->xflags |= OBJ_FL_YANGMAP_KEY
567
568#define OBJ_IS_YANGMAP_KEY(OBJ) \
569 ((OBJ)->xflags & OBJ_FL_YANGMAP_KEY)
570
571/* if OBJ_IS_YANGMAP_SOURCE : yangmap_cb == nodemap_t
572 * if OBJ_IS_YANGMAP_TARGET : yangmap_cb == nodemap_t
573 * if OBJ_IS_YANGMAP_CHILD : yangmap_cb == childmap_t
574 * if OBJ_IS_YANGMAP_KEY : yangmap_cb == keymap_t
575 */
576#define OBJ_YANGMAP_CB(OBJ) (OBJ)->yangmap_cb
577
578/* Object DUP_LOCAL test has been done */
579#define OBJ_SET_DUP_LOCAL_DONE(OBJ) \
580 (OBJ)->xflags |= OBJ_FL_DUP_LOCAL_DONE
581
582#define OBJ_IS_DUP_LOCAL_DONE(OBJ) \
583 ((OBJ)->xflags & OBJ_FL_DUP_LOCAL_DONE)
584
585
586#define OBJ_RPC_SUPPORTED(OBJ) (OBJ)->def.rpc->supported
587
588
589/* Trans Hook assignment bits */
590#define OBJ_SET_TRANS_HOOK_SET(OBJ) (OBJ)->xflags |= OBJ_FL_TRANS_HOOK_SET
591#define OBJ_IS_TRANS_HOOK_SET(OBJ) ((OBJ)->xflags & OBJ_FL_TRANS_HOOK_SET)
592#define OBJ_CLEAR_TRANS_HOOK_SET(OBJ) (OBJ)->xflags &= ~OBJ_FL_TRANS_HOOK_SET
593
594
595/* All in One assignment bits */
596#define OBJ_SET_AIO_GET2(OBJ) (OBJ)->xflags2 |= OBJ_FL_AIO_GET2
597#define OBJ_IS_AIO_GET2(OBJ) ((OBJ)->xflags2 & OBJ_FL_AIO_GET2)
598#define OBJ_CLEAR_AIO_GET2(OBJ) (OBJ)->xflags2 &= ~ OBJ_FL_AIO_GET2
599
600/* GET2 object but not All in One object, but a parent of AIO */
601#define OBJ_SET_AIO_PARENT(OBJ) (OBJ)->xflags2 |= OBJ_FL_AIO_PARENT
602#define OBJ_IS_AIO_PARENT(OBJ) ((OBJ)->xflags2 & OBJ_FL_AIO_PARENT)
603#define OBJ_CLEAR_AIO_PARENT(OBJ) (OBJ)->xflags2 &= ~ OBJ_FL_AIO_PARENT
604
605/* AIO with XML/JSON support flags*/
606#define OBJ_SET_AIO_GET2_XML(OBJ) (OBJ)->xflags2 |= OBJ_FL_AIO_GET2_XML
607#define OBJ_IS_AIO_GET2_XML(OBJ) ((OBJ)->xflags2 & OBJ_FL_AIO_GET2_XML)
608
609#define OBJ_SET_AIO_GET2_JSON(OBJ) (OBJ)->xflags2 |= OBJ_FL_AIO_GET2_JSON
610#define OBJ_IS_AIO_GET2_JSON(OBJ) ((OBJ)->xflags2 & OBJ_FL_AIO_GET2_JSON)
611
612/* Dynamic Default Hook assignment bits */
613#define OBJ_SET_DEF_HOOK(OBJ) (OBJ)->xflags2 |= OBJ_FL_DEF_HOOK
614#define OBJ_IS_DEF_HOOK(OBJ) ((OBJ)->xflags2 & OBJ_FL_DEF_HOOK)
615#define OBJ_CLEAR_DEF_HOOK(OBJ) (OBJ)->xflags2 &= ~OBJ_FL_DEF_HOOK
616#define OBJ_GET_DEF_HOOK_CB(OBJ) (ncx_def_hook_cbfn_t)(OBJ)->def_hook_cb
617
618/* openconfig-hashed-value bit */
619#define OBJ_SET_OC_HASHED_VALUE(OBJ) (OBJ)->xflags2 |= OBJ_FL_OC_HASHED_VALUE
620#define OBJ_IS_OC_HASHED_VALUE(OBJ) ((OBJ)->xflags2 & OBJ_FL_OC_HASHED_VALUE)
621
622/* Static Ban Nock GET assignment bits */
623#define OBJ_SET_BAN_NOLOCK_GET(OBJ) (OBJ)->xflags2 |= OBJ_FL_BAN_NOLOCK_GET
624#define OBJ_IS_BAN_NOLOCK_GET(OBJ) ((OBJ)->xflags2 & OBJ_FL_BAN_NOLOCK_GET)
625
626/* Mount Point bit */
627#define OBJ_SET_MOUNT_POINT(OBJ) (OBJ)->xflags2 |= OBJ_FL_MOUNT_POINT
628#define OBJ_IS_MOUNT_POINT(OBJ) ((OBJ)->xflags2 & OBJ_FL_MOUNT_POINT)
629
630/* Mount Point Support Utility functions */
631#define OBJ_SET_ROOTCB(OBJ, ROOTCB) (OBJ)->rootcb = ROOTCB
632#define OBJ_GET_ROOTCB(OBJ) (OBJ)->rootcb
633
634/* Mount Point Descendant bit */
635#define OBJ_SET_DESC_MOUNT_POINT(OBJ) (OBJ)->xflags2 |= OBJ_FL_DESC_MOUNT_POINT
636#define OBJ_IS_DESC_MOUNT_POINT(OBJ) ((OBJ)->xflags2 & OBJ_FL_DESC_MOUNT_POINT)
637
639#define OBJ_BOOL_EVAL_CB(OBJ) (OBJ)->bool_eval_cb
640
642#define OBJ_SET_EDIT3_MODE(OBJ) (OBJ)->xflags2 |= OBJ_FL_EDIT3_MODE
643#define OBJ_IS_EDIT3_MODE(OBJ) ((OBJ)->xflags2 & OBJ_FL_EDIT3_MODE)
644#define OBJ_CLEAR_EDIT3_MODE(OBJ) (OBJ)->xflags2 &= ~OBJ_FL_EDIT3_MODE
645
647#define OBJ_SET_HIDDEN_FROM_CLI(OBJ) (OBJ)->xflags2 |= OBJ_FL_HIDDEN_FROM_CLI
648#define OBJ_IS_HIDDEN_FROM_CLI(OBJ) ((OBJ)->xflags2 & OBJ_FL_HIDDEN_FROM_CLI)
649
651#define OBJ_SET_CONFIRM_DATA(OBJ) (OBJ)->xflags2 |= OBJ_FL_CONFIRM_DATA
652#define OBJ_IS_CONFIRM_DATA(OBJ) ((OBJ)->xflags2 & OBJ_FL_CONFIRM_DATA)
653
655#define OBJ_SET_EDIT1_MODE(OBJ) (OBJ)->xflags2 |= OBJ_FL_EDIT1_MODE
656#define OBJ_IS_EDIT1_MODE(OBJ) ((OBJ)->xflags2 & OBJ_FL_EDIT1_MODE)
657#define OBJ_CLEAR_EDIT1_MODE(OBJ) (OBJ)->xflags2 &= ~OBJ_FL_EDIT1_MODE
658
659
660/********************************************************************
661* *
662* T Y P E S *
663* *
664*********************************************************************/
665
666// Header Only
689typedef enum obj_type_t_ {
694
700
703
706
709
715
731
739
750
759
760
776
779
787
788
789#define OBJ_TYP_LAST OBJ_TYP_ACTION
790
796typedef uint16 obj_index_t;
797
798
800typedef enum obj_augtype_t_ {
807
808
810typedef struct obj_key_t_ {
811 dlq_hdr_t qhdr;
812 struct obj_template_t_ *keyobj;
813 boolean seen;
814} YPACK obj_key_t;
815
816
818typedef struct obj_defval_tk_t_ {
819 dlq_hdr_t qhdr;
820 xmlChar *def;
822} YPACK obj_defval_tk_t;
823
824
826typedef struct obj_unique_comp_t_ {
827 dlq_hdr_t qhdr;
828 struct obj_template_t_ *unobj;
829 xmlChar *xpath;
830 boolean isduplicate;
831} YPACK obj_unique_comp_t;
832
833
835typedef struct obj_unique_t_ {
836 dlq_hdr_t qhdr;
837 xmlChar *xpath;
838 dlq_hdr_t compQ;
839 boolean seen;
840 boolean isconfig;
842} YPACK obj_unique_t;
843
844
846typedef struct obj_container_t_ {
848 xmlChar *name;
849
851 xmlChar *descr;
852
854 xmlChar *ref;
855
857 xmlChar *presence;
858 dlq_hdr_t *typedefQ;
859 dlq_hdr_t *groupingQ;
860 dlq_hdr_t *datadefQ;
862 dlq_hdr_t mustQ;
863 struct obj_template_t_ *defaultparm;
864 obj_index_t last_index;
865} YPACK obj_container_t;
866
867
869typedef struct obj_leaf_t_ {
871 xmlChar *name;
872
874 xmlChar *units;
875
877 xmlChar *defval;
878
880 xmlChar *descr;
881
883 xmlChar *ref;
884
887
890
892 uint16 keynum;
893
894 dlq_hdr_t mustQ;
897 dlq_hdr_t leafrefQ;
904 dlq_hdr_t uniqrefQ;
907 struct obj_template_t_ *leafrefobj;
908
909} YPACK obj_leaf_t;
910
911
913typedef struct obj_leaflist_t_ {
915 xmlChar *name;
916
918 xmlChar *units;
919
921 xmlChar *descr;
922
924 xmlChar *ref;
925
928
930 boolean defset;
931 boolean ordersys;
932 boolean minset;
933 uint32 minelems;
934 boolean maxset;
935 uint32 maxelems;
937 dlq_hdr_t mustQ;
938 dlq_hdr_t leafrefQ;
939 dlq_hdr_t defvalQ;
942 struct obj_template_t_ *leafrefobj;
943
945} YPACK obj_leaflist_t;
946
947
949typedef struct obj_list_t_ {
951 xmlChar *name;
952
954 xmlChar *keystr;
955
957 xmlChar *descr;
958
960 xmlChar *ref;
961 dlq_hdr_t *typedefQ;
962 dlq_hdr_t *groupingQ;
963 dlq_hdr_t *datadefQ;
964 dlq_hdr_t keyQ;
965 dlq_hdr_t uniqueQ;
966 boolean ordersys;
967 boolean minset;
968 uint32 minelems;
969 boolean maxset;
970 uint32 maxelems;
972 dlq_hdr_t mustQ;
976
979
981} YPACK obj_list_t;
982
983
985typedef struct obj_choice_t_ {
986 xmlChar *name;
987 xmlChar *defval;
990 xmlChar *descr;
991
993 xmlChar *ref;
994 dlq_hdr_t *caseQ;
995 boolean caseQclone;
997} YPACK obj_choice_t;
998
999
1001typedef struct obj_case_t_ {
1002 xmlChar *name;
1005 xmlChar *descr;
1006
1008 xmlChar *ref;
1009
1010 dlq_hdr_t *datadefQ;
1014 boolean nameclone;
1016} YPACK obj_case_t;
1017
1018
1020typedef struct obj_uses_t_ {
1021 xmlChar *prefix;
1022 xmlChar *name;
1025 xmlChar *descr;
1026
1028 xmlChar *ref;
1030 dlq_hdr_t *datadefQ;
1032 boolean expand_done;
1033} YPACK obj_uses_t;
1034
1035
1037typedef struct obj_refine_t_ {
1039 xmlChar *target;
1040
1042 struct obj_template_t_ *targobj;
1043
1045 xmlChar *descr;
1046
1054
1056 xmlChar *ref;
1057
1060
1062 xmlChar *presence;
1063
1066
1067 dlq_hdr_t defval_tkQ;
1071
1074 uint32 minelems;
1076 uint32 maxelems;
1078 dlq_hdr_t mustQ;
1079} YPACK obj_refine_t;
1080
1081
1083typedef struct obj_rpcio_t_ {
1084 xmlChar *name;
1085 dlq_hdr_t *typedefQ;
1086 dlq_hdr_t *groupingQ;
1087 dlq_hdr_t datadefQ;
1088 dlq_hdr_t mustQ;
1093 boolean is_input;
1094
1098 struct obj_template_t_ *defaultparm;
1099} YPACK obj_rpcio_t;
1100
1101
1103typedef struct obj_rpc_t_ {
1105 xmlChar *name;
1106
1108 xmlChar *descr;
1109
1111 xmlChar *ref;
1112
1114 dlq_hdr_t *typedefQ;
1115 dlq_hdr_t *groupingQ;
1116 dlq_hdr_t datadefQ;
1117 boolean is_action;
1121 boolean supported;
1122} YPACK obj_rpc_t;
1123
1124
1126typedef struct obj_augment_t_ {
1128 xmlChar *target;
1129
1131 xmlChar *descr;
1132
1134 xmlChar *ref;
1135
1137 struct obj_template_t_ *targobj;
1138
1142 dlq_hdr_t datadefQ;
1143 uint16 depth;
1144} YPACK obj_augment_t;
1145
1146
1148typedef struct obj_notif_t_ {
1150 xmlChar *name;
1151
1153 xmlChar *descr;
1154
1156 xmlChar *ref;
1158 dlq_hdr_t *typedefQ;
1159 dlq_hdr_t *groupingQ;
1160 dlq_hdr_t datadefQ;
1161 dlq_hdr_t mustQ;
1164 boolean in_data;
1165} YPACK obj_notif_t;
1166
1167
1169typedef struct obj_iffeature_ptr_t_ {
1170 dlq_hdr_t qhdr;
1172} YPACK obj_iffeature_ptr_t;
1173
1174
1176typedef struct obj_errmsg_filter_t_ {
1177 dlq_hdr_t qhdr;
1178 xmlChar *matchstr;
1179 boolean is_errortag;
1180} YPACK obj_errmsg_filter_t;
1181
1182
1184typedef struct obj_errmsg_parm_t_ {
1185 dlq_hdr_t qhdr;
1186 xmlChar *path;
1189 uint32 len;
1190
1192 xmlChar *valstr;
1193} YPACK obj_errmsg_parm_t;
1194
1195
1197typedef struct obj_errmsg_t_ {
1198 dlq_hdr_t qhdr;
1199 xmlChar *basestr;
1200 xmlChar *langstr;
1201 dlq_hdr_t parmQ;
1202 dlq_hdr_t filterQ;
1203} YPACK obj_errmsg_t;
1204
1205
1207typedef unsigned long oid_t;
1208
1215typedef struct obj_oid_t_ {
1216 uint8 cnt;
1218} YPACK obj_oid_t;
1219
1220
1222typedef uint8 obj_testflags_t;
1223
1224
1229typedef struct obj_template_t_ {
1230 dlq_hdr_t qhdr;
1233 uint32 yang_hash;
1235 uint32 flags;
1236 uint32 xflags;
1237 uint32 xflags2;
1239 uint32 uflags;
1240 uint8 silflags;
1252 struct obj_template_t_ *parent;
1253 struct obj_template_t_ *usesobj;
1254 struct obj_template_t_ *augobj;
1256 struct xpath_pcb_t_ *when;
1257 dlq_hdr_t metadataQ;
1258 dlq_hdr_t appinfoQ;
1259 dlq_hdr_t iffeatureQ;
1265
1267 dlq_hdr_t *dataruleQ;
1268
1276 void *cbset;
1277
1279 void *get2cb;
1280
1288 struct ncx_module_t_ *mod;
1289
1292
1294 struct xpath_pcb_t_ *xpath_backptr[OBJ_NUM_XPATH_BACKPTRS];
1295
1297 dlq_hdr_t xpath_backptrQ; // backptr to xpath_pcb_t
1298
1304
1306 dlq_hdr_t *errmsgQ; // Q of obj_errmsg_t
1307
1313
1316
1319
1322
1325
1327 union def_ {
1328 obj_container_t *container;
1329 obj_leaf_t *leaf;
1330 obj_leaflist_t *leaflist;
1331 obj_list_t *list;
1332 obj_choice_t *choic;
1333 obj_case_t *cas;
1334 obj_uses_t *uses;
1335 obj_refine_t *refine;
1336 obj_augment_t *augment;
1337 obj_rpc_t *rpc;
1338 obj_rpcio_t *rpcio;
1339 obj_notif_t *notif;
1340 } def;
1341
1346
1347
1353 void *bool_eval_cb; // xpath_bool_eval_fn_t
1354
1357
1363
1366
1367} YPACK obj_template_t;
1368
1369
1371typedef struct obj_metadata_t_ {
1372 dlq_hdr_t qhdr;
1373 struct obj_template_t_ *parent;
1374 xmlChar *name;
1378 boolean typdef_copy;
1379} YPACK obj_metadata_t;
1380
1381
1383typedef enum obj_deviate_arg_t_ {
1390
1391
1393typedef struct obj_deviate_t_ {
1394 dlq_hdr_t qhdr;
1403
1405 boolean empty;
1406
1409
1412
1415
1418
1420 xmlChar *units;
1421
1424
1426 dlq_hdr_t defval_tkQ;
1427
1429 boolean config;
1430
1433
1435 boolean mandatory;
1436
1439
1441 uint32 minelems;
1445 uint32 maxelems;
1447 dlq_hdr_t mustQ;
1448 dlq_hdr_t uniqueQ;
1449 dlq_hdr_t appinfoQ;
1450} YPACK obj_deviate_t;
1451
1452
1454typedef struct obj_deviation_t_ {
1455 dlq_hdr_t qhdr;
1456 xmlChar *target;
1457 xmlChar *targmodname;
1461 xmlChar *descr;
1462
1464 xmlChar *ref;
1465
1468 xmlChar *devmodname;
1469 boolean empty;
1470 boolean annotation;
1472 dlq_hdr_t deviateQ;
1473 dlq_hdr_t appinfoQ;
1474} YPACK obj_deviation_t;
1475
1476
1487typedef boolean
1489 void *cookie1,
1490 void *cookie2,
1491 boolean nonconfig_warn);
1492
1493
1494#define OBJ_SET_TESTFLAGS(OBJ, FL) (OBJ)->testflags = FL
1495
1496#define OBJ_GET_TESTFLAGS(OBJ) (OBJ)->testflags
1497
1498#define OBJ_SET_DESC_TESTFLAGS(OBJ, FL) (OBJ)->desc_testflags = FL
1499
1500#define OBJ_GET_DESC_TESTFLAGS(OBJ) (OBJ)->desc_testflags
1501
1502#define OBJ_UPDATE_DESC_TESTFLAGS(OBJ, FL) (OBJ)->desc_testflags |= FL
1503
1506/********************************************************************
1507* *
1508* F U N C T I O N S *
1509* *
1510*********************************************************************/
1511
1528extern obj_template_t *
1529 obj_new_template (obj_type_t objtype);
1530
1531
1541extern void
1543
1544
1557extern obj_template_t *
1558 obj_find_template (dlq_hdr_t *que,
1559 const xmlChar *modname,
1560 const xmlChar *objname);
1561
1562
1574extern obj_template_t *
1575 obj_find_schema_template ( dlq_hdr_t *que,
1576 const xmlChar *modname,
1577 const xmlChar *objname );
1578
1579
1591extern const obj_template_t *
1592 obj_find_template_con (dlq_hdr_t *que,
1593 const xmlChar *modname,
1594 const xmlChar *objname);
1595
1596
1608extern obj_template_t *
1609 obj_find_template_test (dlq_hdr_t *que,
1610 const xmlChar *modname,
1611 const xmlChar *objname);
1612
1613
1627extern obj_template_t *
1629 const xmlChar *modname,
1630 const xmlChar *objname);
1631
1632
1648extern obj_template_t *
1650 const xmlChar *modname,
1651 const xmlChar *objname);
1652
1653
1675extern obj_template_t *
1677 const xmlChar *modname,
1678 const xmlChar *objname,
1679 ncx_name_match_t match_names,
1680 boolean alt_names,
1681 boolean dataonly,
1682 status_t *retres);
1683
1684
1698extern obj_template_t *
1700 const xmlChar *modname,
1701 const xmlChar *objname);
1702
1703
1720extern obj_template_t *
1722 const xmlChar *modname,
1723 const xmlChar *objname);
1724
1725
1742extern obj_template_t *
1744 const xmlChar *modname,
1745 const xmlChar *objname);
1746
1747
1764extern obj_template_t *
1766 const xmlChar *modname,
1767 const xmlChar *objname);
1768
1769
1784extern obj_template_t *
1786 xmlns_id_t nsid,
1787 const xmlChar *objname);
1788
1789
1814extern obj_template_t *
1816 const xmlChar *modname,
1817 const xmlChar *objname,
1818 ncx_name_match_t match_names,
1819 boolean alt_names,
1820 boolean dataonly,
1821 status_t *retres);
1822
1823
1834extern obj_template_t *
1836 const xmlChar *modname,
1837 const xmlChar *objname,
1838 uint32 objnamelen);
1839
1840
1862extern obj_template_t *
1864 const xmlChar *modname,
1865 const xmlChar *objname,
1866 uint32 objnamelen,
1867 uint32 *matchcount);
1868
1869
1880extern obj_template_t *
1882
1883
1894extern obj_template_t *
1896
1897
1908extern obj_template_t *
1910
1911
1926extern obj_template_t *
1928
1929
1940extern obj_template_t *
1942
1943
1954extern obj_template_t *
1956
1957
1968extern obj_template_t *
1970
1971
1982extern obj_template_t *
1984
1985
2000extern obj_template_t *
2002
2003
2014extern obj_template_t *
2016
2017
2028extern obj_template_t *
2030
2031
2042extern obj_template_t *
2044
2045
2057extern obj_template_t *
2059
2060
2072extern obj_template_t *
2074
2075
2092extern obj_template_t *
2094 boolean stopnext);
2095
2096
2132extern boolean
2134 obj_walker_fn_t walkerfn,
2135 void *cookie1,
2136 void *cookie2,
2137 obj_template_t *startnode,
2138 const xmlChar *modname,
2139 const xmlChar *childname,
2140 boolean configonly,
2141 boolean textmode,
2142 boolean useroot);
2143
2144
2184extern boolean
2186 obj_walker_fn_t walkerfn,
2187 void *cookie1,
2188 void *cookie2,
2189 obj_template_t *startnode,
2190 const xmlChar *modname,
2191 const xmlChar *name,
2192 boolean configonly,
2193 boolean textmode,
2194 boolean useroot,
2195 boolean orself,
2196 boolean *fncalled);
2197
2198
2238extern boolean
2240 obj_walker_fn_t walkerfn,
2241 void *cookie1,
2242 void *cookie2,
2243 obj_template_t *startnode,
2244 const xmlChar *modname,
2245 const xmlChar *name,
2246 boolean configonly,
2247 boolean textmode,
2248 boolean useroot,
2249 boolean orself,
2250 boolean *fncalled);
2251
2252
2295extern boolean
2297 obj_walker_fn_t walkerfn,
2298 void *cookie1,
2299 void *cookie2,
2300 obj_template_t *startnode,
2301 const xmlChar *modname,
2302 const xmlChar *name,
2303 boolean configonly,
2304 boolean dblslash,
2305 boolean textmode,
2306 boolean useroot,
2307 ncx_xpath_axis_t axis,
2308 boolean *fncalled);
2309
2310
2319extern obj_case_t *
2321 const xmlChar *modname,
2322 const xmlChar *casname);
2323
2324
2325
2336extern obj_template_t *
2338 const xmlChar *name);
2339
2340
2346extern void
2347 obj_clean_datadefQ (dlq_hdr_t *que);
2348
2349
2357extern typ_template_t *
2359 const xmlChar *typname);
2360
2361
2368extern typ_template_t *
2370
2371
2379extern grp_template_t *
2381 const xmlChar *grpname);
2382
2389extern grp_template_t *
2391
2392
2408extern status_t
2409 obj_set_named_type (void *pcb, // yang_pcb_t
2410 tk_chain_t *tkc,
2411 ncx_module_t *mod,
2412 const xmlChar *typname,
2413 typ_def_t *typdef,
2414 obj_template_t *parent,
2415 grp_template_t *grp);
2416
2417
2440extern obj_template_t *
2442 obj_template_t *srcobj,
2443 dlq_hdr_t *mobjQ);
2444
2445
2470extern obj_template_t *
2472 obj_template_t *srcobj,
2473 dlq_hdr_t *mobjQ,
2474 boolean sm_clone);
2475
2476
2501extern obj_template_t *
2503 obj_template_t *srcobj,
2504 dlq_hdr_t *mobjQ);
2505
2506
2507/******************** obj_unique_t ********************/
2508
2509
2515extern obj_unique_t *
2516 obj_new_unique (void);
2517
2518
2524extern void
2526
2527
2533extern void
2535
2536
2542extern void
2544
2545
2551extern obj_unique_comp_t *
2552 obj_new_unique_comp (void);
2553
2554
2560extern void
2562
2563
2572extern obj_unique_t *
2573 obj_find_unique (dlq_hdr_t *que,
2574 const xmlChar *xpath);
2575
2576
2583extern obj_unique_t *
2585
2586
2593extern obj_unique_t *
2595
2596
2603extern obj_unique_comp_t *
2605
2606
2613extern obj_unique_comp_t *
2615
2616
2622extern obj_key_t *
2623 obj_new_key (void);
2624
2625
2631extern void
2632 obj_free_key (obj_key_t *key);
2633
2634
2642extern obj_key_t *
2643 obj_find_key (dlq_hdr_t *que,
2644 const xmlChar *keycompname);
2645
2646
2655extern obj_key_t *
2656 obj_find_key2 (dlq_hdr_t *que,
2657 obj_template_t *keyobj);
2658
2659
2666extern obj_key_t *
2668
2669
2676extern obj_key_t *
2678
2679
2686extern const obj_key_t *
2687 obj_first_ckey (const obj_template_t *obj);
2688
2689
2696extern obj_key_t *
2697 obj_next_key (obj_key_t *objkey);
2698
2699
2706extern obj_key_t *
2707 obj_prev_key (obj_key_t *objkey);
2708
2709
2716extern const obj_key_t *
2717 obj_next_ckey (const obj_key_t *objkey);
2718
2719
2726extern uint32
2727 obj_key_count (const obj_template_t *obj);
2728
2729
2737extern uint32
2739
2740
2754extern void
2756 void *cookie1,
2757 void *cookie2,
2758 obj_walker_fn_t walkerfn);
2759
2760
2767extern boolean
2768 obj_any_rpcs (const dlq_hdr_t *datadefQ);
2769
2770
2777extern boolean
2778 obj_any_notifs (const dlq_hdr_t *datadefQ);
2779
2780
2786extern obj_deviate_t *
2787 obj_new_deviate (void);
2788
2789
2795extern void
2797
2798
2805extern const xmlChar *
2807
2808
2814extern obj_deviation_t *
2815 obj_new_deviation (void);
2816
2817
2823extern void
2825
2826
2832extern void
2833 obj_clean_deviationQ (dlq_hdr_t *deviationQ);
2834
2835
2844extern status_t
2846 xmlChar **buff);
2847
2848
2858extern status_t
2859 obj_gen_object_id_prefix (const obj_template_t *obj, xmlChar **buff);
2860
2861
2862
2873extern status_t
2875 xmlChar **buff);
2876
2877
2888extern status_t
2890 const obj_template_t *obj,
2891 xmlChar **buff);
2892
2893
2906extern status_t
2908 xmlChar **buff);
2909
2910
2920 xmlChar **buff);
2921
2922
2933 const obj_template_t *stopobj,
2934 xmlChar **buff);
2935
2936
2949extern status_t
2951 const obj_template_t *obj,
2952 xmlChar **buff);
2953
2954
2970extern status_t
2972 xmlChar *buff,
2973 uint32 bufflen,
2974 uint32 *reallen);
2975
2976
2990extern status_t
2992 xmlChar *buff,
2993 uint32 bufflen,
2994 uint32 *reallen);
2995
2996
2997
2998
3008extern status_t
3010 xmlChar **buff);
3011
3012
3023extern status_t
3025 xmlChar **buff);
3026
3027
3034extern const xmlChar *
3035 obj_get_name (const obj_template_t *obj);
3036
3037
3045extern status_t
3047 const xmlChar *objname);
3048
3049
3062extern boolean
3063 obj_has_name (const obj_template_t *obj);
3064
3065
3074extern boolean
3076
3077
3084extern ncx_status_t
3085 obj_get_status (const obj_template_t *obj);
3086
3087
3094extern const xmlChar *
3096
3097
3107extern const xmlChar *
3109
3110
3118extern const xmlChar *
3120
3121
3129extern const xmlChar *
3131
3132
3139extern const void *
3141
3142
3149extern const xmlChar *
3150 obj_get_reference (const obj_template_t *obj);
3151
3152
3160extern const void *
3162
3163
3164#define obj_is_config obj_get_config_flag_deep
3165
3166
3176extern boolean
3178
3179
3193extern boolean
3195 boolean *setflag);
3196
3197
3205extern ncx_access_t
3207
3208
3215extern dlq_hdr_t *
3217
3218
3225extern dlq_hdr_t *
3226 obj_get_mustQ (const obj_template_t *obj);
3227
3228
3235extern dlq_hdr_t *
3236 obj_get_leafrefQ (const obj_template_t *obj);
3237
3238
3248extern const xmlChar *
3249 obj_get_typestr (const obj_template_t *obj);
3250
3251
3258extern dlq_hdr_t *
3260
3261
3268extern const dlq_hdr_t *
3269 obj_get_cdatadefQ (const obj_template_t *obj);
3270
3271
3282extern const xmlChar *
3283 obj_get_default (const obj_template_t *obj);
3284
3285
3294extern const xmlChar *
3296 ncx_backptr_t **thisdef);
3297
3298
3311extern const xmlChar *
3313 ncx_backptr_t *lastdef,
3314 ncx_backptr_t **thisdef);
3315
3316
3323extern obj_template_t *
3325
3326
3336extern boolean
3338
3339
3349extern boolean
3351
3352
3361extern uint32
3362 obj_get_level (const obj_template_t *obj);
3363
3364
3380extern uint32
3381 obj_get_level_mp (const obj_template_t *obj);
3382
3383
3393extern uint32
3395
3396
3406extern boolean
3407 obj_has_typedefs (const obj_template_t *obj);
3408
3409
3417extern typ_def_t *
3419
3420
3428extern typ_def_t *
3430
3431
3439extern const typ_def_t *
3440 obj_get_ctypdef (const obj_template_t *obj);
3441
3442
3449extern ncx_btype_t
3450 obj_get_basetype (const obj_template_t *obj);
3451
3452
3459extern const xmlChar *
3461
3462
3469extern const xmlChar *
3471
3472
3479extern const xmlChar *
3480 obj_get_mod_name (const obj_template_t *obj);
3481
3482
3489extern ncx_module_t *
3491
3492
3499extern boolean
3501
3502
3510extern ncx_module_t *
3512
3513
3520extern const xmlChar *
3522
3523
3530extern const xmlChar *
3531 obj_get_type_name (const obj_template_t *obj);
3532
3533
3540extern xmlns_id_t
3541 obj_get_nsid (const obj_template_t *obj);
3542
3543
3550extern ncx_sid_t
3551 obj_get_yang_sid (const obj_template_t *obj);
3552
3553
3560extern uint32
3562
3569extern ncx_iqual_t
3571
3572
3580extern ncx_iqual_t
3582 boolean required);
3583
3584
3593extern boolean
3595 uint32 *minelems);
3596
3597
3606extern boolean
3608 uint32 *maxelems);
3609
3610
3617extern const xmlChar *
3619
3620
3627extern obj_template_t *
3629
3630
3638extern const obj_template_t *
3639 obj_get_cparent (const obj_template_t *obj);
3640
3641
3649extern obj_template_t *
3651
3652
3662extern const obj_template_t *
3664
3665
3673extern obj_template_t *
3675
3676
3677
3684extern const xmlChar *
3686
3687
3695extern void *
3697
3698
3725extern status_t
3727 obj_template_t *chobj,
3728 const xml_node_t *curnode,
3729 boolean xmlorder,
3730 dlq_hdr_t *force_modQ,
3731 obj_template_t **rettop,
3732 obj_template_t **retobj);
3733
3734
3741extern uint32
3743
3744
3752extern obj_template_t *
3754
3755
3770extern boolean
3772
3773
3788extern boolean
3790 boolean *ingrp);
3791
3792
3800extern uint8
3802
3803
3811extern const ncx_iffeature_t *
3813
3814
3822extern const ncx_iffeature_t *
3823 obj_get_next_iffeature (const ncx_iffeature_t *iffeature);
3824
3825
3832extern boolean
3833 obj_is_anyxml (const obj_template_t *obj);
3834
3835
3842extern boolean
3843 obj_is_anydata (const obj_template_t *obj);
3844
3845
3853extern boolean
3854 obj_is_any (const obj_template_t *obj);
3855
3856
3863extern boolean
3864 obj_is_leaf (const obj_template_t *obj);
3865
3866
3873extern boolean
3874 obj_is_leaf_list (const obj_template_t *obj);
3875
3876
3883extern boolean
3884 obj_is_list (const obj_template_t *obj);
3885
3886
3893extern boolean obj_in_list (const obj_template_t *obj);
3894
3895
3902extern boolean
3903 obj_is_container (const obj_template_t *obj);
3904
3905
3912extern boolean
3913 obj_is_choice (const obj_template_t *obj);
3914
3915
3922extern boolean
3923 obj_is_case (const obj_template_t *obj);
3924
3925
3932extern boolean
3933 obj_is_uses (const obj_template_t *obj);
3934
3935
3942extern boolean
3943 obj_is_leafy (const obj_template_t *obj);
3944
3945
3952extern boolean obj_is_terminal (const obj_template_t *obj);
3953
3954
3962extern boolean
3964
3965
3976extern boolean
3978 boolean config_only);
3979
3980
3989extern boolean
3991
3992
4001extern boolean
4002 obj_is_cloned (const obj_template_t *obj);
4003
4004
4013extern boolean
4014 obj_is_augclone (const obj_template_t *obj);
4015
4016
4024extern boolean
4025 obj_is_augment (const obj_template_t *obj);
4026
4027
4035extern boolean obj_in_augment (const obj_template_t *obj);
4036
4037
4045extern boolean
4046 obj_is_refine (const obj_template_t *obj);
4047
4048
4057extern boolean
4058 obj_is_data (const obj_template_t *obj);
4059
4060
4070extern boolean
4071 obj_is_data_db (const obj_template_t *obj);
4072
4073
4081extern boolean
4082 obj_is_data_node (const obj_template_t *obj);
4083
4084
4092extern boolean
4093 obj_in_rpc (const obj_template_t *obj);
4094
4095
4102extern boolean
4103 obj_in_rpc_reply (const obj_template_t *obj);
4104
4105
4112extern boolean
4113 obj_in_notif (const obj_template_t *obj);
4114
4115
4122extern boolean
4123 obj_is_rpc (const obj_template_t *obj);
4124
4125
4132extern boolean
4133 obj_is_sm_rpc (const obj_template_t *obj);
4134
4135
4142extern boolean obj_is_rpcio (const obj_template_t *obj);
4143
4144
4151extern boolean obj_is_rpcio_input (const obj_template_t *obj);
4152
4153
4160extern boolean
4161 obj_is_action (const obj_template_t *obj);
4162
4163
4170extern boolean obj_in_action (const obj_template_t *obj);
4171
4172
4179extern boolean
4180 obj_is_notif (const obj_template_t *obj);
4181
4182
4189extern boolean
4190 obj_is_sm_notif (const obj_template_t *obj);
4191
4192
4205extern boolean
4206 obj_is_empty (const obj_template_t *obj);
4207
4208
4216extern boolean
4217 obj_is_match (const obj_template_t *obj1,
4218 const obj_template_t *obj2);
4219
4220
4227extern boolean
4228 obj_is_hidden (const obj_template_t *obj);
4229
4230
4237extern boolean
4239
4240
4247extern boolean
4248 obj_is_root (const obj_template_t *obj);
4249
4250
4256extern void
4258
4259
4266extern boolean
4267 obj_is_rpc_root (const obj_template_t *obj);
4268
4269
4276extern boolean
4277 obj_is_password (const obj_template_t *obj);
4278
4279
4286extern boolean
4287 obj_is_xsdlist (const obj_template_t *obj);
4288
4289
4296extern boolean
4297 obj_is_cli (const obj_template_t *obj);
4298
4299
4308extern boolean obj_is_dirty (const obj_template_t *obj,
4309 ncx_cfg_t cfgid);
4310
4311
4318extern boolean
4319 obj_is_key (const obj_template_t *obj);
4320
4321
4328extern boolean
4329 obj_is_abstract (const obj_template_t *obj);
4330
4331
4339extern boolean obj_in_abstract (const obj_template_t *obj);
4340
4341
4348extern boolean
4349 obj_is_deleted (const obj_template_t *obj);
4350
4351
4360extern boolean
4361 obj_is_deleted_ex (const obj_template_t *obj);
4362
4363
4370extern boolean
4372
4373
4381extern boolean
4383
4384
4391extern boolean
4392 obj_is_secure (const obj_template_t *obj);
4393
4394
4402extern boolean
4404
4405
4413extern boolean
4415
4416
4424extern boolean
4426
4427
4435extern boolean
4437
4438
4447extern boolean
4449
4450
4457extern boolean
4459
4460
4470extern boolean
4472
4473
4481extern boolean
4483
4484
4493extern boolean
4494 obj_is_top (const obj_template_t *obj);
4495
4504extern boolean
4505 obj_in_top_choice (const obj_template_t *obj);
4506
4507
4514extern boolean
4515 obj_is_datapath (const obj_template_t *obj);
4516
4517
4529extern boolean
4531
4532
4540extern boolean
4542
4543
4552extern boolean
4554
4555
4563extern boolean obj_has_ro_descendants (obj_template_t *obj);
4564
4565
4573extern boolean obj_has_rw_children (obj_template_t *obj);
4574
4575
4585extern boolean obj_has_rw_children_ex (obj_template_t *obj,
4586 boolean term_only);
4587
4588
4595extern boolean
4597
4598
4605extern boolean
4607
4608
4617extern boolean
4619
4620
4626extern obj_metadata_t *
4627 obj_new_metadata (void);
4628
4629
4639extern void
4641
4642
4650extern status_t
4652 obj_template_t *obj);
4653
4654
4662extern obj_metadata_t *
4664 const xmlChar *name);
4665
4666
4673extern obj_metadata_t *
4675
4676
4683extern obj_metadata_t *
4684 obj_next_metadata (const obj_metadata_t *meta);
4685
4686
4697extern void
4699
4700
4707extern void
4709
4710
4718extern uint32
4720
4721
4731extern void
4733 dlq_hdr_t *datadefQ,
4734 uint32 startindent,
4735 uint32 indent);
4736
4737
4744extern const xmlChar *
4746
4747
4753extern void
4754 obj_delete_obsolete (dlq_hdr_t *objQ);
4755
4756
4763extern const xmlChar *
4764 obj_get_altname (const obj_template_t *obj);
4765
4766
4774extern obj_template_t *
4776
4777
4785extern obj_template_t *
4787
4788
4796extern const xmlChar *
4798
4799
4806extern boolean
4808
4809
4816extern boolean
4818
4819
4827extern boolean
4829
4830
4838extern boolean
4840
4841
4849extern boolean
4851
4852
4861extern boolean
4863
4864
4871extern void
4873
4874
4883extern boolean
4885
4886
4895extern boolean
4897
4898
4907extern boolean
4909
4910
4917extern obj_iffeature_ptr_t *
4919
4920
4926extern void obj_free_iffeature_ptr (obj_iffeature_ptr_t *iffptr);
4927
4928
4935extern obj_iffeature_ptr_t *
4937
4938
4945extern obj_iffeature_ptr_t *
4947
4948
4955extern ncx_backptr_t *
4957
4958
4965extern ncx_backptr_t *
4967
4968
4976extern boolean
4978 struct xpath_pcb_t_ *xpath);
4979
4980
4988extern struct xpath_pcb_t_ *
4990 struct xpath_pcb_t_ *xpath);
4991
4992
4999extern struct xpath_pcb_t_ *
5001
5002
5003
5014extern status_t
5016 struct xpath_pcb_t_ *xpath);
5017
5018
5028extern void
5030 struct xpath_pcb_t_ *xpath);
5031
5032
5041extern status_t
5043
5044
5053extern void
5055 ncx_cfg_t cfg_id,
5056 boolean flag);
5057
5058
5074extern boolean
5076
5077
5098extern boolean
5100
5101
5109extern boolean
5111
5112
5125extern void
5127 ncx_module_t *mod);
5128
5129
5136extern void
5138
5139
5148extern boolean
5150
5151
5158extern void
5160 uint16 keynum);
5161
5162
5169extern uint16
5171
5172
5180extern boolean
5182
5183
5190extern boolean
5192
5193
5200extern boolean
5202
5203
5210extern void
5212
5213
5220extern boolean obj_notif_enabled (const obj_template_t *obj);
5221
5222
5229extern boolean obj_notif_log_drops (const obj_template_t *obj);
5230
5231
5238extern void obj_set_notif_enabled (obj_template_t *obj,
5239 boolean enabled);
5240
5241
5248extern void obj_set_notif_log_drops (const obj_template_t *obj,
5249 boolean enabled);
5250
5251
5259extern boolean
5260 obj_unload_active (const obj_template_t *obj);
5261
5262
5269extern boolean
5270 obj_is_obsolete (const obj_template_t *obj);
5271
5272
5280extern boolean
5282
5283
5290extern void
5292 uint8 prio);
5293
5294
5301extern uint8
5303
5304
5312extern boolean
5314
5315
5324
5325
5333extern boolean
5335
5336
5343extern boolean
5344 obj_is_crypt_hash (const obj_template_t *obj);
5345
5346
5357extern void
5359
5360
5366extern obj_defval_tk_t *
5367 obj_new_defval_tk (void);
5368
5369
5375extern void
5377
5378
5385extern dlq_hdr_t *
5387
5388
5395extern obj_defval_tk_t *
5396 obj_first_defval_tk (const obj_refine_t *ref);
5397
5398
5405extern obj_defval_tk_t *
5406 obj_next_defval_tk (const obj_defval_tk_t *defval_tk);
5407
5408#define obj_next_dev_defval_tk(D) obj_next_defval_tk(D)
5409
5410
5417extern obj_defval_tk_t *
5419
5420
5427extern boolean
5429
5430
5437extern void
5439 const xmlChar *defval);
5440
5441
5449extern boolean
5451 const xmlChar *find_defval);
5452
5453
5460extern void
5462
5463
5468extern void
5469 obj_enter_xpath_mode (void);
5470
5471
5476extern void
5477 obj_exit_xpath_mode (void);
5478
5479
5487extern obj_key_t *
5489 const xmlChar *keyname);
5490
5491
5498extern ncx_yang_version_t
5500
5501
5511extern boolean
5513
5514
5520extern void
5522
5523
5532extern boolean
5534
5535
5541extern void
5543
5544
5550extern void
5552
5553
5554
5555#if defined(WITH_SNMP) && defined(WITH_RESTCONF)
5562extern const xmlChar *
5564
5565
5576extern obj_oid_t *
5578 boolean *malloced);
5579
5580#endif // WITH_SNMP and WITH_RESTCONF
5581
5582
5591 dlq_hdr_t *keystackQ);
5592
5593
5599extern void obj_dump_keystackQ (dlq_hdr_t *keystackQ);
5600
5601
5608extern void obj_clr_enable_chk (obj_template_t *obj);
5609
5610
5618extern status_t
5620 void *rule);
5621
5622
5629extern void
5631 const void *rule);
5632
5633
5641extern boolean
5643 void *rule);
5644
5645
5655extern status_t
5657 const xmlChar *basestr,
5658 obj_errmsg_t **ret_errmsg);
5659
5660
5668extern status_t
5670 const xmlChar *parmstr);
5671
5672
5681extern status_t
5683 const xmlChar *parmstr,
5684 boolean is_errortag);
5685
5686
5702extern boolean
5704
5705
5713extern boolean
5714 obj_is_singular (const obj_template_t *obj);
5715
5716
5726extern boolean
5728
5729
5736extern boolean
5737 obj_ok_for_nolock (const obj_template_t *obj);
5738
5739
5746extern boolean
5748
5749
5756extern boolean
5758
5759
5766extern boolean obj_get_xpath_oper_ok (const obj_template_t *obj);
5767
5768
5774extern void obj_set_xpath_oper_ok (obj_template_t *obj);
5775
5776
5784extern boolean
5786
5787
5798extern boolean
5800
5801
5808extern obj_template_t *
5810
5811
5818extern boolean
5820
5821
5828extern ncx_module_t *
5830
5831
5839extern obj_template_t *
5841
5842
5853extern boolean
5854 obj_is_ancestor (const obj_template_t *ancestor,
5855 const obj_template_t *obj);
5856
5857
5863extern void
5865
5866
5877extern boolean
5879
5880
5887extern obj_template_t *
5889
5890
5891
5902extern boolean
5904
5905
5906
5917extern boolean
5919
5920
5932extern boolean
5934
5935
5936
5944extern ncx_sm_rootcb_t *
5946
5947
5948
5955extern status_t
5957
5958
5959/*
5960* @brief Object Compare
5961*
5962* @param obj1 object to check
5963* @param obj2 object to check
5964*
5965* @return TRUE if objects match
5966*/
5967extern boolean
5968 obj_match_sm_objs (obj_template_t *obj1,
5969 obj_template_t *obj2);
5970
5979extern boolean
5981
5982
5995extern status_t
5997 const xmlChar *prefix,
5998 const xmlChar *name,
5999 const xmlChar **retval);
6000
6001
6009extern status_t
6011 obj_template_t *listobj);
6012
6013
6021extern obj_template_t *
6023
6024
6033extern obj_template_t *
6035 obj_template_t *curbackptr);
6036
6037
6047extern boolean
6049
6050
6051
6059extern void
6061 ncx_sort_type_t typ);
6062
6063
6071extern ncx_sort_type_t
6072 obj_get_sort_type (const obj_template_t *obj);
6073
6080extern boolean
6082
6083
6092extern grp_template_t *
6094
6095
6104extern obj_template_t *
6106
6107
6116extern obj_template_t *
6118
6119
6133extern boolean
6135
6136
6140#ifdef __cplusplus
6141} /* end extern 'C' */
6142#endif
6143
6144#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:210
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:1571
ncx_status_t
enumeration for different YANG data-def status values
Definition: ncxtypes.h:583
ncx_sort_type_t
the sort type enumeration used for system-ordered list aand leaf-list objects
Definition: ncxtypes.h:1801
uint32 ncx_sid_t
Standard YANG SID is a 63-bit integer defined as uint64.
Definition: ncxtypes.h:756
ncx_yang_version_t
enumeration for different YANG language versions
Definition: ncxtypes.h:1013
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:728
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:695
ncx_xpath_axis_t
XPath expression axis types.
Definition: ncxtypes.h:662
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:16587
uint32 obj_get_child_count(const obj_template_t *obj)
Get the number of child nodes the object has.
Definition: obj.c:14078
void obj_set_abstract(obj_template_t *obj)
Set the abstract flag for the yang-data node.
Definition: obj.c:19408
obj_key_t * obj_last_key(obj_template_t *obj)
Get the last key record.
Definition: obj.c:10442
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:12551
boolean obj_is_notif(const obj_template_t *obj)
Check if the object is a notification.
Definition: obj.c:15356
boolean obj_is_external_augment(obj_template_t *obj)
Check if an object is an external augment.
Definition: obj.c:17474
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:16370
const xmlChar * obj_get_description(const obj_template_t *obj)
Get the description field for this obj.
Definition: obj.c:11856
boolean obj_has_name(const obj_template_t *obj)
Check if the specified object type has a name.
Definition: obj.c:11716
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:9948
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:12731
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:20483
obj_key_t * obj_new_key(void)
Alloc and Init a obj_key_t struct.
Definition: obj.c:10296
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:16163
boolean obj_is_case(const obj_template_t *obj)
Check if object is a YANG case.
Definition: obj.c:14624
boolean obj_is_hidden(const obj_template_t *obj)
Check if object is marked as a hidden object.
Definition: obj.c:15443
boolean obj_get_max_elements(obj_template_t *obj, uint32 *maxelems)
Get the max-elements clause for this object, if any.
Definition: obj.c:13734
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:6156
uint32 obj_get_yang_sid_tree(const obj_template_t *obj)
Get the YANG SID Tree ID for this object.
Definition: obj.c:13556
boolean obj_is_cli(const obj_template_t *obj)
Check if object is marked as a CLI object.
Definition: obj.c:15564
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:15418
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:6649
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:16181
boolean obj_is_rpcio(const obj_template_t *obj)
Check if the object is an RPC IO node.
Definition: obj.c:15254
boolean obj_get_leaf_list_defset(const obj_template_t *obj)
Get the defset flag for a leaf-list.
Definition: obj.c:19189
obj_unique_t * obj_first_unique(obj_template_t *listobj)
Get the first unique-stmt for a list.
Definition: obj.c:10198
boolean obj_get_config_flag_check(const obj_template_t *obj, boolean *ingrp)
get config flag during YANG module checking
Definition: obj.c:14262
const void * obj_get_reference_addr(const obj_template_t *obj)
Get the reference field for this obj.
Definition: obj.c:12143
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:11302
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:14922
ncx_module_t * obj_get_mod(obj_template_t *obj)
Get the module pointer for this object.
Definition: obj.c:13351
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:21143
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:19276
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:12862
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:17705
ncx_backptr_t * obj_first_inherit_when_ptr(obj_template_t *obj)
Get first xpath pointer struct.
Definition: obj.c:17783
const xmlChar * obj_get_oid_string(obj_template_t *obj)
Get object OID sting value.
Definition: obj.c:19433
typ_def_t * obj_get_typdef(obj_template_t *obj)
Get the typdef for the leaf or leaf-list.
Definition: obj.c:13116
grp_template_t * obj_first_grouping(obj_template_t *obj)
Get the first local grouping if any.
Definition: obj.c:9388
void obj_delete_obsolete(dlq_hdr_t *objQ)
Delete any obsolete child nodes within the specified object subtree.
Definition: obj.c:17332
boolean obj_is_password(const obj_template_t *obj)
Check if object is marked as a password object.
Definition: obj.c:15529
boolean obj_get_top_config_flag(const obj_template_t *obj)
Get the config flag for the top-level object.
Definition: obj.c:19934
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:9022
void obj_free_defval_tk(obj_defval_tk_t *def)
Delete an object default tk record;.
Definition: obj.c:19095
boolean obj_find_defval(obj_template_t *obj, const xmlChar *find_defval)
Find a default.
Definition: obj.c:19243
obj_template_t * obj_first_unique_backptr(obj_template_t *leafobj)
Get the first unique backptr for a leaf object.
Definition: obj.c:20969
const xmlChar * obj_get_deviate_arg(obj_deviate_arg_t devarg)
Get the deviate-arg string from its enumeration.
Definition: obj.c:10808
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:18742
void * obj_get_presence_string_field(const obj_template_t *obj)
Get the address ot the presence-stmt value, if any.
Definition: obj.c:14002
boolean obj_is_container(const obj_template_t *obj)
Check if object is a YANG container.
Definition: obj.c:14578
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:10344
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:20631
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:20133
obj_unique_comp_t * obj_new_unique_comp(void)
Alloc and Init a obj_unique_comp_t struct.
Definition: obj.c:10113
boolean obj_is_list(const obj_template_t *obj)
Check if object is a YANG list.
Definition: obj.c:14516
const xmlChar * obj_get_augment_target(obj_template_t *obj)
Get the target path string for an augments object.
Definition: obj.c:17453
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:20086
boolean obj_is_anydata(const obj_template_t *obj)
Check if object is an anydata.
Definition: obj.c:14438
const xmlChar * obj_get_altname(const obj_template_t *obj)
Get the alt-name for this object, if any.
Definition: obj.c:17375
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:10600
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:8086
const xmlChar * obj_get_default(const obj_template_t *obj)
Get the default value for the specified object.
Definition: obj.c:12634
status_t obj_set_mp_flags(obj_template_t *obj)
set the Schema Mount flags and create a rootcb if needed
Definition: obj.c:20665
boolean obj_is_p_container(const obj_template_t *obj)
Check if the object is an Presence-container.
Definition: obj.c:15893
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:21111
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:14778
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:16522
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:7438
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:11399
status_t obj_assign_xpath_backptr(obj_template_t *obj, struct xpath_pcb_t_ *xpath)
Set an xpath-expr backptr.
Definition: obj.c:17946
dlq_hdr_t * obj_get_defvalQ(obj_template_t *obj)
Get the leaf-list default Q.
Definition: obj.c:19113
const xmlChar * obj_get_type_name(const obj_template_t *obj)
Get the typename for an object.
Definition: obj.c:13484
void obj_ban_nolock_get(obj_template_t *obj)
Ban nolock-get for the object.
Definition: obj.c:20436
void obj_free_key(obj_key_t *key)
Free a obj_key_t struct.
Definition: obj.c:10319
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:12680
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:11185
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:15916
const void * obj_get_description_addr(const obj_template_t *obj)
Get the address of the description field for this obj.
Definition: obj.c:12029
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:7335
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:20884
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:10957
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:6044
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:13843
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:14378
void obj_init_unique(obj_unique_t *un)
Init a obj_unique_t struct.
Definition: obj.c:10040
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:18389
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:11502
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:17233
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:20371
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:10637
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:6730
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:14968
obj_key_t * obj_next_key(obj_key_t *objkey)
Get the next key record.
Definition: obj.c:10498
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:17559
void obj_clean_datadefQ(dlq_hdr_t *que)
Clean and free all the obj_template_t structs in the specified Q.
Definition: obj.c:9100
typ_def_t * obj_get_base_typdef(obj_template_t *obj)
Get the base typdef for the leaf or leaf-list.
Definition: obj.c:13156
boolean obj_is_xsdlist(const obj_template_t *obj)
Check if object is marked as an XSD list.
Definition: obj.c:15548
void obj_clean_unique(obj_unique_t *un)
Clean a obj_unique_t struct.
Definition: obj.c:10083
boolean obj_edit2_mode_allowed(obj_template_t *obj)
Check if the current object is EDIT2/3 allowed.
Definition: obj.c:21230
obj_key_t * obj_prev_key(obj_key_t *objkey)
Get the previous key record.
Definition: obj.c:10524
boolean obj_in_action(const obj_template_t *obj)
Check if the object is within or is an action method.
Definition: obj.c:15311
void obj_dump_keystackQ(dlq_hdr_t *keystackQ)
Dump a keystackQ with backptrs to obj_template_t for key leafs.
Definition: obj.c:19674
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:16078
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:17577
boolean obj_ok_for_nolock(const obj_template_t *obj)
check an object OK for nolock
Definition: obj.c:19966
boolean obj_has_typedefs(const obj_template_t *obj)
Check if the object has any nested typedefs in it.
Definition: obj.c:13035
void obj_add_child(obj_template_t *child, obj_template_t *parent)
Add a child object to the specified complex node.
Definition: obj.c:17603
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:18634
boolean obj_in_rpc(const obj_template_t *obj)
Check if the object is in an rpc/input section.
Definition: obj.c:15098
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:16305
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:15588
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:17683
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:20402
boolean obj_is_rpcio_input(const obj_template_t *obj)
Check if the object is an RPC IO node.
Definition: obj.c:15271
const xmlChar * obj_get_alt_description(const obj_template_t *obj)
obj_get_alt_description (DEPRECATED)
Definition: obj.c:11915
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:11002
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:7874
void obj_set_xpath_oper_ok(obj_template_t *obj)
Set the object XPath oper OK flag.
Definition: obj.c:20323
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:8005
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:8836
boolean obj_is_datapath(const obj_template_t *obj)
Check if object is marked as a ywx:datapath object.
Definition: obj.c:16206
obj_defval_tk_t * obj_new_defval_tk(void)
Create a new object default tk record;.
Definition: obj.c:19078
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:16447
void obj_free_unique_comp(obj_unique_comp_t *unc)
Free a obj_unique_comp_t struct.
Definition: obj.c:10136
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:18420
boolean obj_is_crypt_hash(const obj_template_t *obj)
Check if the object is a leaf of type crypt-hash.
Definition: obj.c:19019
boolean obj_rpc_has_input(obj_template_t *obj)
Check if the RPC object has any real input children.
Definition: obj.c:16423
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:14951
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:15643
boolean obj_has_get2cb(obj_template_t *obj)
Check if current object has GET2 callback registered.
Definition: obj.c:19839
boolean obj_match_datarule(obj_template_t *obj, void *rule)
Check if the data-rule back-ptr applies to this node.
Definition: obj.c:19780
const xmlChar * obj_get_mod_prefix(const obj_template_t *obj)
Get the module prefix for this object.
Definition: obj.c:13260
ncx_iqual_t obj_get_iqualval(obj_template_t *obj)
Get the instance qualifier for this object.
Definition: obj.c:13578
obj_iffeature_ptr_t * obj_first_iffeature_ptr(obj_template_t *obj)
Get first if-feature pointer.
Definition: obj.c:17741
boolean obj_in_submodule(obj_template_t *obj)
Check if the object is defined in a submodule.
Definition: obj.c:13389
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:15724
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:17499
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:7808
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:13000
boolean obj_get_min_elements(obj_template_t *obj, uint32 *minelems)
Get the min-elements clause for this object, if any.
Definition: obj.c:13692
boolean obj_is_rpc_root(const obj_template_t *obj)
Check if object is marked as an RPC root object.
Definition: obj.c:15512
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:9607
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:9461
grp_template_t * obj_get_uses_grp(obj_template_t *usesobj)
Get the grp template from the uses object pointer.
Definition: obj.c:21160
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:7227
boolean obj_any_notifs(const dlq_hdr_t *datadefQ)
Check if there are any notifications in the datadefQ.
Definition: obj.c:10722
boolean obj_rpc_has_output(obj_template_t *obj)
Check if the RPC object has any real output children.
Definition: obj.c:16434
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:16552
void obj_free_deviate(obj_deviate_t *deviate)
Clean and free an object deviate statement.
Definition: obj.c:10777
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:13291
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:14883
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:11996
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:10275
xmlns_id_t obj_get_nsid(const obj_template_t *obj)
Get the namespace ID for this object.
Definition: obj.c:13515
obj_key_t * obj_first_key(obj_template_t *obj)
Get the first key record.
Definition: obj.c:10414
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:12267
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:11245
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:13940
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:17403
obj_metadata_t * obj_new_metadata(void)
Malloc and initialize the fields in a an obj_metadata_t.
Definition: obj.c:16491
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:8245
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:9126
boolean obj_is_rpc(const obj_template_t *obj)
Check if the object is an RPC method.
Definition: obj.c:15214
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:18157
boolean obj_is_xpath_string(const obj_template_t *obj)
Check if object is an XPath string.
Definition: obj.c:15760
obj_unique_t * obj_find_unique(dlq_hdr_t *que, const xmlChar *xpath)
Find a specific unique-stmt.
Definition: obj.c:10164
void obj_force_disabled(obj_template_t *obj)
Force an object to be disabled.
Definition: obj.c:19571
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:7614
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:17658
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:19327
boolean obj_is_anyxml(const obj_template_t *obj)
Check if object is an anyxml.
Definition: obj.c:14422
boolean obj_is_terminal(const obj_template_t *obj)
Check if object is a proper leaf or leaflist or anyxml.
Definition: obj.c:14681
void obj_force_root(obj_template_t *obj)
Set the object as an anydata type of root.
Definition: obj.c:15495
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:11431
typ_template_t * obj_first_typedef(obj_template_t *obj)
Get the first local typedef for this object, if any.
Definition: obj.c:9225
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:9067
void obj_set_notif_enabled(obj_template_t *obj, boolean enabled)
Set the notification object enabled flag.
Definition: obj.c:18689
uint8 obj_get_sil_priority(obj_template_t *obj)
Get the SIL priority field.
Definition: obj.c:18868
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:18613
status_t obj_set_name(obj_template_t *obj, const xmlChar *objname)
Set the name field for this obj.
Definition: obj.c:11624
const xmlChar * obj_get_presence_string(const obj_template_t *obj)
Get the present-stmt value, if any.
Definition: obj.c:13973
void obj_clean_deviationQ(dlq_hdr_t *deviationQ)
Clean and free an Q of object deviation statements.
Definition: obj.c:10890
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:6356
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:10380
boolean obj_ok_for_cli(obj_template_t *obj)
Figure out if the obj is OK for current CLI implementation.
Definition: obj.c:16225
boolean obj_in_list(const obj_template_t *obj)
Check if object is nested within a list.
Definition: obj.c:14532
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:12774
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:8465
ncx_iqual_t obj_get_iqualval_ex(obj_template_t *obj, boolean required)
Get the instance qualifier for this object.
Definition: obj.c:13606
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:12204
boolean obj_is_obsolete(const obj_template_t *obj)
Check if the object has obsolete status.
Definition: obj.c:18765
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:14040
void obj_number_data_object(obj_template_t *obj)
Number the object tree; initial setup.
Definition: obj.c:19056
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:15626
status_t obj_add_unique_backptr(obj_template_t *leafobj, obj_template_t *listobj)
Add a unique backptr to the leaf.
Definition: obj.c:20926
void obj_clear_xpath_backptr(obj_template_t *obj, struct xpath_pcb_t_ *xpath)
Clear an xpath-expr backptr.
Definition: obj.c:18032
boolean obj_get_config_flag_deep(const obj_template_t *obj)
get config flag during augment expand
Definition: obj.c:14174
const xmlChar * obj_get_mod_version(const obj_template_t *obj)
Get the module version for this object.
Definition: obj.c:13460
boolean obj_has_xpath_stmts(obj_template_t *obj)
Check if any must or when stmts in node or all children.
Definition: obj.c:20840
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:12922
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:7400
boolean obj_is_system_ordered(const obj_template_t *obj)
Check if the object is system or user-ordered.
Definition: obj.c:15844
ncx_yang_version_t obj_get_langver(obj_template_t *obj)
Get the YANG version for this object.
Definition: obj.c:19357
boolean obj_is_cli_text_block(const obj_template_t *obj)
Check if object is marked as ywx:cli-text-block.
Definition: obj.c:17542
boolean obj_is_sm_rpc(const obj_template_t *obj)
Check if the object is a schema mounted RPC method.
Definition: obj.c:15231
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:19491
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:11362
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:18715
obj_template_t * obj_get_parent_choice(obj_template_t *obj)
Get the choice parent of the current object;.
Definition: obj.c:20452
ncx_backptr_t * obj_next_inherit_when_ptr(ncx_backptr_t *ptr)
Get the next xpath pointer struct.
Definition: obj.c:17804
boolean obj_is_data_node(const obj_template_t *obj)
Check if the object is a real node type.
Definition: obj.c:15049
boolean obj_is_mp_parent(obj_template_t *child)
Check if the parent of this object is a Mount Pount object.
Definition: obj.c:20569
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:7110
boolean obj_is_sm_notif(const obj_template_t *obj)
Check if the object is a schema-mounted notification.
Definition: obj.c:15373
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:15004
boolean obj_is_short_case(obj_template_t *obj)
Check if the object is a short case statement.
Definition: obj.c:16110
obj_template_t * obj_get_augment_obj(obj_template_t *obj)
Get the augobj template from the object pointer.
Definition: obj.c:21203
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:6401
boolean obj_is_mounted(obj_template_t *child)
Check if mounted object.
Definition: obj.c:20517
boolean obj_is_abstract_ex(const obj_template_t *obj)
DUPLICATE FUNCTION OF obj_in_abstract()
Definition: obj.c:19389
boolean obj_any_rpcs(const dlq_hdr_t *datadefQ)
Check if there are any RPC methods in the datadefQ.
Definition: obj.c:10689
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:6244
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:18327
ncx_status_t obj_get_status(const obj_template_t *obj)
Get the status field for this obj.
Definition: obj.c:11797
boolean obj_is_leaf_list(const obj_template_t *obj)
Check if object is a proper leaf-list.
Definition: obj.c:14500
obj_template_t * obj_get_augment_targobj(obj_template_t *obj)
Get the target object for an augments object.
Definition: obj.c:17431
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:6825
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:14107
obj_iffeature_ptr_t * obj_next_iffeature_ptr(obj_iffeature_ptr_t *iffptr)
Get the next if-feature pointer.
Definition: obj.c:17762
obj_metadata_t * obj_next_metadata(const obj_metadata_t *meta)
Get the next object metadata definition in the object.
Definition: obj.c:16650
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:19633
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:17887
ncx_leafref_class_t obj_get_leafref_class(obj_template_t *obj)
Get the leafref class for a leafref object.
Definition: obj.c:18979
obj_defval_tk_t * obj_first_defval_tk(const obj_refine_t *ref)
Get the first defval_tk entry.
Definition: obj.c:19132
void obj_set_sil_priority(obj_template_t *obj, uint8 prio)
Set the SIL priority field.
Definition: obj.c:18840
void obj_clear_datarule(obj_template_t *obj, const void *rule)
Clear the datarule back-ptr for this node.
Definition: obj.c:19744
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:12964
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:6561
obj_template_t * obj_new_template(obj_type_t objtype)
Malloc and initialize the fields in a an object template.
Definition: obj.c:5754
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:14461
boolean obj_in_notif(const obj_template_t *obj)
Check if the object is in a notification.
Definition: obj.c:15180
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:7773
boolean obj_find_xpath_backptr(obj_template_t *obj, struct xpath_pcb_t_ *xpath)
Find an xpath-expr backptr.
Definition: obj.c:17829
void obj_enter_xpath_mode(void)
Enter xpath mode and start ignoring obj_is_enabled.
Definition: obj.c:19299
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:5892
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:11083
boolean obj_is_mandatory(obj_template_t *obj)
Figure out if the obj is YANG mandatory or not.
Definition: obj.c:14701
boolean obj_has_children(obj_template_t *obj)
Check if there are any accessible nodes within the object.
Definition: obj.c:16283
boolean obj_is_schema_instance_string(const obj_template_t *obj)
Check if object is a schema-instance string.
Definition: obj.c:15789
ncx_sid_t obj_get_yang_sid(const obj_template_t *obj)
Get the YANG SID for this object.
Definition: obj.c:13540
obj_deviation_t * obj_new_deviation(void)
Malloc and initialize the fields in a an object deviation statement.
Definition: obj.c:10838
uint16 obj_get_key_num(obj_template_t *obj)
Get the key number for the object.
Definition: obj.c:18536
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:15661
void obj_free_iffeature_ptr(obj_iffeature_ptr_t *iffptr)
Free an obj_iffeature_ptr_t struct.
Definition: obj.c:17725
const xmlChar * obj_get_reference(const obj_template_t *obj)
Get the reference field for this obj.
Definition: obj.c:12086
void obj_force_hidden(obj_template_t *obj)
Force an object to be hidden.
Definition: obj.c:19588
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:20999
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:19004
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:10251
obj_template_t * obj_get_uses_obj(obj_template_t *obj)
Get the usesobj template from the object pointer.
Definition: obj.c:21185
void obj_set_key_leaf(obj_template_t *obj, uint16 keynum)
Set the key data for the object.
Definition: obj.c:18512
boolean obj_is_deleted(const obj_template_t *obj)
Check if object has been deleted by a deviate not-supported.
Definition: obj.c:15698
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:6478
uint8 obj_get_fraction_digits(const obj_template_t *obj)
Get the fraction-digits field from the object typdef.
Definition: obj.c:14346
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:11139
obj_defval_tk_t * obj_first_dev_defval_tk(const obj_deviate_t *dev)
Get the first defval_tk entry.
Definition: obj.c:19170
obj_unique_t * obj_new_unique(void)
Alloc and Init a obj_unique_t struct.
Definition: obj.c:10017
dlq_hdr_t * obj_get_leafrefQ(const obj_template_t *obj)
Get the leafrefQ for this obj.
Definition: obj.c:12379
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:19208
boolean obj_has_iffeature(obj_template_t *obj)
Check any if-feature statements exist for the specified object.
Definition: obj.c:16029
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:19604
const xmlChar * obj_get_units(obj_template_t *obj)
Get the units clause for this object, if any.
Definition: obj.c:13772
boolean obj_is_empty(const obj_template_t *obj)
Check if object was entered in empty fashion:
Definition: obj.c:15399
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:18936
boolean obj_in_rpc_reply(const obj_template_t *obj)
Check if the object is in an rpc-reply/output section.
Definition: obj.c:15143
boolean obj_is_action(const obj_template_t *obj)
Check if the object is a YANG 1.1 action.
Definition: obj.c:15294
boolean obj_is_uses(const obj_template_t *obj)
Check if object is a YANG uses-stmt.
Definition: obj.c:14647
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:7953
const xmlChar * obj_get_keystr(obj_template_t *obj)
Get the key string for this list object.
Definition: obj.c:17306
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:11766
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:12241
boolean obj_is_leafy(const obj_template_t *obj)
Check if object is a proper leaf or leaflist.
Definition: obj.c:14663
void obj_exit_xpath_mode(void)
Exit xpath mode and stop ignoring obj_is_enabled.
Definition: obj.c:19308
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:7733
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:13185
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:20248
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:18490
const ncx_iffeature_t * obj_get_next_iffeature(const ncx_iffeature_t *iffeature)
Get the next if-feature clause (if any)
Definition: obj.c:14404
boolean obj_is_mp_with_rootcb(const obj_template_t *obj)
Check if current object is Mount Point object.
Definition: obj.c:20605
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:18267
boolean obj_notif_enabled(const obj_template_t *obj)
Check if the notification object is enabled.
Definition: obj.c:18651
obj_metadata_t * obj_first_metadata(const obj_template_t *obj)
Get the first object metadata definition in the object.
Definition: obj.c:16625
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:7513
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:13905
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:14853
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:7698
dlq_hdr_t * obj_get_mustQ(const obj_template_t *obj)
Get the mustQ for this obj.
Definition: obj.c:12335
dlq_hdr_t * obj_get_datadefQ(obj_template_t *obj)
Get the datadefQ (or caseQ) if this object has one.
Definition: obj.c:12471
const xmlChar * obj_get_mod_name(const obj_template_t *obj)
Get the module name for this object.
Definition: obj.c:13311
boolean obj_notif_log_drops(const obj_template_t *obj)
Check if the event drops for the notification object is enabled.
Definition: obj.c:18670
void obj_set_ncx_flags(obj_template_t *obj)
Check the NCX appinfo extensions and set flags as needed.
Definition: obj.c:16756
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:20018
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:6085
obj_unique_t * obj_next_unique(obj_unique_t *un)
Get the next unique-stmt for a list.
Definition: obj.c:10227
boolean obj_is_secure(const obj_template_t *obj)
Check if object is tagged ncx:secure.
Definition: obj.c:15810
boolean obj_get_xpath_oper_ok(const obj_template_t *obj)
Get the object XPath oper OK flag.
Definition: obj.c:20298
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:8115
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:14866
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:19545
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:20347
uint32 obj_key_count(const obj_template_t *obj)
Get the number of keys for this object.
Definition: obj.c:10572
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:15460
ncx_btype_t obj_get_basetype(const obj_template_t *obj)
Get the NCX base type enum for the object type.
Definition: obj.c:13213
const xmlChar * obj_get_typestr(const obj_template_t *obj)
Get the name of the object type.
Definition: obj.c:12411
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:18591
boolean obj_is_choice(const obj_template_t *obj)
Check if object is a YANG choice.
Definition: obj.c:14601
status_t obj_cache_datarule(obj_template_t *obj, void *rule)
Set the data-rule back-ptr for this node.
Definition: obj.c:19709
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:13868
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:17633
struct xpath_pcb_t_ * obj_first_xpath_backptr(obj_template_t *obj)
Get the first xpath backptr.
Definition: obj.c:17863
dlq_hdr_t * obj_get_appinfoQ(obj_template_t *obj)
Get the appinfoQ for this obj.
Definition: obj.c:12311
obj_template_t * obj_get_parent(obj_template_t *obj)
Get the parent of the current object.
Definition: obj.c:13818
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:9291
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:17525
obj_defval_tk_t * obj_next_defval_tk(const obj_defval_tk_t *defval_tk)
Get the next defval_tk entry.
Definition: obj.c:19151
const xmlChar * obj_get_name(const obj_template_t *obj)
Get the name field for this obj.
Definition: obj.c:11566
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:16388
void obj_free_unique(obj_unique_t *un)
Free a obj_unique_t struct.
Definition: obj.c:10062
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:16334
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:6200
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:7478
const obj_key_t * obj_next_ckey(const obj_key_t *objkey)
Get the next key record: Const version.
Definition: obj.c:10548
boolean obj_is_np_container(const obj_template_t *obj)
Check if the object is an Non-Presence-container.
Definition: obj.c:15870
void obj_free_deviation(obj_deviation_t *deviation)
Clean and free an object deviation statement.
Definition: obj.c:10862
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:16676
boolean obj_is_augment(const obj_template_t *obj)
Check if the obj is an augment statement.
Definition: obj.c:14906
const obj_key_t * obj_first_ckey(const obj_template_t *obj)
Get the first key record: Const version.
Definition: obj.c:10470
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:10912
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:21038
boolean obj_is_leaf(const obj_template_t *obj)
Check if object is a proper leaf.
Definition: obj.c:14483
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:11962
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:18569
boolean obj_is_root(const obj_template_t *obj)
Check if object is marked as a root object.
Definition: obj.c:15477
boolean obj_is_singular(const obj_template_t *obj)
Check if the object can have only one instance or not.
Definition: obj.c:19895
obj_template_t * obj_get_top_aio_get2(obj_template_t *child)
Find the top AIO object.
Definition: obj.c:20202
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:18107
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:6116
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:21067
obj_deviate_t * obj_new_deviate(void)
Malloc and initialize the fields in a an object deviate statement.
Definition: obj.c:10752
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:8656
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:18466
boolean obj_is_very_secure(const obj_template_t *obj)
Check if object is tagged ncx:very-secure.
Definition: obj.c:15827
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:17187
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:13425
boolean obj_parent_same_module(const obj_template_t *obj)
Check if the object parent object is the same.
Definition: obj.c:18796
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:12823
boolean obj_has_mandatory_children(obj_template_t *obj)
Check if there are any mandatory children.
Definition: obj.c:20052
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:796
obj_augtype_t
enumeration for different YANG augment statement types
Definition: obj.h:800
unsigned long oid_t
data type used in SNMP
Definition: obj.h:1207
uint8 obj_testflags_t
object test flags
Definition: obj.h:1222
obj_deviate_arg_t
type of deviation for each deviate entry
Definition: obj.h:1383
obj_type_t
enumeration for different YANG data def statement types the enum order is significant!...
Definition: obj.h:689
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:1488
@ OBJ_AUGTYP_RPCOUT
rpc output
Definition: obj.h:803
@ OBJ_AUGTYP_NONE
not set
Definition: obj.h:801
@ OBJ_AUGTYP_DATA
within data
Definition: obj.h:805
@ OBJ_AUGTYP_RPCIN
rpc input
Definition: obj.h:802
@ OBJ_AUGTYP_CASE
case
Definition: obj.h:804
@ OBJ_DARG_NONE
not set
Definition: obj.h:1384
@ OBJ_DARG_NOT_SUPPORTED
deviate not-supported
Definition: obj.h:1388
@ OBJ_DARG_DELETE
deviate delete
Definition: obj.h:1386
@ OBJ_DARG_ADD
deviate add
Definition: obj.h:1385
@ OBJ_DARG_REPLACE
deviate replace
Definition: obj.h:1387
@ OBJ_TYP_CASE
This object represents a YANG case schema node.
Definition: obj.h:719
@ OBJ_TYP_ANYXML
This object represents a YANG 1.1 anydata data node.
Definition: obj.h:693
@ OBJ_TYP_CHOICE
This object represents a YANG choice schema node.
Definition: obj.h:714
@ OBJ_TYP_ACTION
This object represents a YANG 1.1 action schema node.
Definition: obj.h:785
@ OBJ_TYP_REFINE
This object represents a YANG refine statement.
Definition: obj.h:738
@ OBJ_TYP_USES
This object represents a YANG uses schema node.
Definition: obj.h:730
@ OBJ_TYP_NOTIF
This object represents a YANG notification statement.
Definition: obj.h:775
@ OBJ_TYP_LEAF_LIST
This object represents a YANG leaf-list data node.
Definition: obj.h:705
@ OBJ_TYP_LEAF
This object represents a YANG leaf data node.
Definition: obj.h:702
@ OBJ_TYP_ANYDATA
This object represents a YANG 1.1 anydata data node.
Definition: obj.h:778
@ OBJ_TYP_NONE
not set
Definition: obj.h:690
@ OBJ_TYP_RPCIO
This object represents a YANG input or output statement.
Definition: obj.h:766
@ OBJ_TYP_RPC
This object represents a YANG rpc statement.
Definition: obj.h:758
@ OBJ_TYP_CONTAINER
This object represents a YANG presence or non-presence container.
Definition: obj.h:699
@ OBJ_TYP_LIST
This object represents a YANG list data node.
Definition: obj.h:708
@ OBJ_TYP_AUGMENT
This object represents a YANG augment statement.
Definition: obj.h:749
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:1530
struct to remember error info tkc->cur_err will be checked before tkc->cur for error information
Definition: ncxtypes.h:877
YANG if-feature entry.
Definition: ncxtypes.h:953
representation of one module or submodule during and after parsing
Definition: ncxtypes.h:1138
Schema Mount Root Control Block used in the object template.
Definition: ncxtypes.h:1893
One YANG augment statement struct (top-level or in case-stmt.
Definition: obj.h:1126
dlq_hdr_t datadefQ
Q of obj_template_t.
Definition: obj.h:1142
ncx_status_t status
status-stmt
Definition: obj.h:1141
xmlChar * target
Xpath schema-node target to augment.
Definition: obj.h:1128
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:1134
obj_augtype_t augtype
internal augment type enum
Definition: obj.h:1140
uint16 depth
internal nest depth of augment
Definition: obj.h:1143
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:1131
struct obj_template_t_ * targobj
resolved backptr to augmented object
Definition: obj.h:1137
One YANG 'case' definition.
Definition: obj.h:1001
xmlChar * name
case name
Definition: obj.h:1002
ncx_status_t status
status-stmt
Definition: obj.h:1015
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:1008
boolean nameclone
the nameclone flag is set even though the clone bit is also set; this can probably be removed
Definition: obj.h:1014
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:1005
dlq_hdr_t * datadefQ
Q of obj_template_t.
Definition: obj.h:1010
One YANG 'choice' definition.
Definition: obj.h:985
dlq_hdr_t * caseQ
Q of obj_template_t.
Definition: obj.h:994
xmlChar * name
choice name
Definition: obj.h:986
ncx_status_t status
status-stmt
Definition: obj.h:996
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:993
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:990
xmlChar * defval
default case
Definition: obj.h:987
boolean caseQclone
flag caseQ is cloned
Definition: obj.h:995
One YANG 'container' definition.
Definition: obj.h:846
xmlChar * name
name of container
Definition: obj.h:848
ncx_status_t status
status-stmt
Definition: obj.h:861
xmlChar * ref
reference-stmt (not saved by server)
Definition: obj.h:854
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:862
xmlChar * presence
presence-stmt
Definition: obj.h:857
xmlChar * descr
description-stmt (not saved by server)
Definition: obj.h:851
struct obj_template_t_ * defaultparm
default parm for yangcli
Definition: obj.h:863
dlq_hdr_t * typedefQ
Q of typ_template_t.
Definition: obj.h:858
dlq_hdr_t * datadefQ
Q of obj_template_t.
Definition: obj.h:860
dlq_hdr_t * groupingQ
Q of grp_template_t.
Definition: obj.h:859
One YANG 1.1 default stored in a Q for refine and deviate.
Definition: obj.h:818
xmlChar * def
default value string
Definition: obj.h:820
dlq_hdr_t qhdr
queue header
Definition: obj.h:819
ncx_error_t def_tkerr
file and line info for compiler
Definition: obj.h:821
YANG deviate statement struct.
Definition: obj.h:1393
dlq_hdr_t defval_tkQ
Q of obj_defval_tk_t (leaf-list can have multiple default-stmt)
Definition: obj.h:1426
dlq_hdr_t uniqueQ
Q of obj_unique_t.
Definition: obj.h:1448
ncx_error_t tkerr
the error info for each sub-clause is saved because when the deviation-stmt is parsed,...
Definition: obj.h:1402
dlq_hdr_t appinfoQ
Q of ncx_appinfo_t.
Definition: obj.h:1449
ncx_error_t arg_tkerr
same comment as tkerr
Definition: obj.h:1411
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:1447
boolean config
deviating config-stmt
Definition: obj.h:1429
dlq_hdr_t qhdr
queue header
Definition: obj.h:1394
typ_def_t * typdef
typedef if deviating the type
Definition: obj.h:1414
ncx_error_t type_tkerr
same comment as tkerr
Definition: obj.h:1417
uint32 maxelems
deviating max-elements
Definition: obj.h:1445
ncx_error_t config_tkerr
same comment as tkerr
Definition: obj.h:1432
uint32 minelems
deviating min-elements
Definition: obj.h:1441
ncx_error_t minelems_tkerr
also minset
Definition: obj.h:1442
xmlChar * units
units if deviating the units
Definition: obj.h:1420
boolean empty
deviate-stmt is empty
Definition: obj.h:1405
ncx_error_t units_tkerr
same comment as tkerr
Definition: obj.h:1423
ncx_error_t maxelems_tkerr
also maxset
Definition: obj.h:1446
ncx_error_t mandatory_tkerr
same comment as tkerr
Definition: obj.h:1438
obj_deviate_arg_t arg
deviate argument enum
Definition: obj.h:1408
boolean mandatory
deviating mandatory-stmt
Definition: obj.h:1435
YANG deviation statement struct.
Definition: obj.h:1454
ncx_error_t tkerr
file and line info for compiler
Definition: obj.h:1467
dlq_hdr_t appinfoQ
Q of ncx_appinfo_t.
Definition: obj.h:1473
xmlChar * target
schema-node target to deviate
Definition: obj.h:1456
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:1464
xmlChar * devmodname
set if not the targmod
Definition: obj.h:1468
dlq_hdr_t qhdr
queue header
Definition: obj.h:1455
obj_template_t * targobj
target object when resolved
Definition: obj.h:1458
dlq_hdr_t deviateQ
Q of obj_deviate_t.
Definition: obj.h:1472
status_t res
parse status
Definition: obj.h:1471
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:1461
boolean empty
for display in yangdump
Definition: obj.h:1469
boolean annotation
set from annotation
Definition: obj.h:1470
xmlChar * targmodname
target module name
Definition: obj.h:1457
custom error message filter control block
Definition: obj.h:1176
dlq_hdr_t qhdr
queue header
Definition: obj.h:1177
boolean is_errortag
error-tag flag
Definition: obj.h:1179
xmlChar * matchstr
message string to match
Definition: obj.h:1178
custom error message parameter control block
Definition: obj.h:1184
dlq_hdr_t qhdr
queue header
Definition: obj.h:1185
uint32 len
state : length
Definition: obj.h:1189
xmlChar * path
path of replacement data
Definition: obj.h:1186
xmlChar * valstr
state: value string
Definition: obj.h:1192
custom error message control block
Definition: obj.h:1197
xmlChar * langstr
language string
Definition: obj.h:1200
dlq_hdr_t qhdr
queue header
Definition: obj.h:1198
dlq_hdr_t parmQ
Q of obj_errmsg_parm_t.
Definition: obj.h:1201
xmlChar * basestr
base string
Definition: obj.h:1199
dlq_hdr_t filterQ
Q of obj_errmsg_filter_t.
Definition: obj.h:1202
back-pointer to inherited if-feature statements
Definition: obj.h:1169
dlq_hdr_t qhdr
queue heaader
Definition: obj.h:1170
ncx_iffeature_t * iffeature
if-feature back-ptr
Definition: obj.h:1171
One YANG list key component.
Definition: obj.h:810
struct obj_template_t_ * keyobj
backptr to key object
Definition: obj.h:812
dlq_hdr_t qhdr
queue header
Definition: obj.h:811
boolean seen
used by yangdiff
Definition: obj.h:813
One YANG 'leaf' or 'anyxml' or 'anydata' definition.
Definition: obj.h:869
struct obj_template_t_ * leafrefobj
leafref obj backptr only if btyp == NCX_BT_LEAFREF
Definition: obj.h:907
xmlChar * name
name of leaf or anyxml/anydata
Definition: obj.h:871
ncx_status_t status
status-stmt
Definition: obj.h:889
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:883
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:894
typ_def_t * typdef
typedef for the data type (leaf only)
Definition: obj.h:886
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:880
xmlChar * units
units-stmt only in a leaf
Definition: obj.h:874
dlq_hdr_t leafrefQ
used for quick leafref validation on server
Definition: obj.h:897
xmlChar * defval
default-stmt only in a leaf
Definition: obj.h:877
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:904
uint16 keynum
internal key number only for keay leafs
Definition: obj.h:892
One YANG 'leaf-list' definition.
Definition: obj.h:913
ncx_sort_type_t sort_type
sort type applies to system
Definition: obj.h:944
struct obj_template_t_ * leafrefobj
leafref obj backptr only if btyp == NCX_BT_LEAFREF
Definition: obj.h:942
xmlChar * name
leaf-list name
Definition: obj.h:915
ncx_status_t status
status-stmt
Definition: obj.h:936
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:924
boolean minset
min-elements set
Definition: obj.h:932
boolean maxset
max-elements set
Definition: obj.h:934
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:937
typ_def_t * typdef
typedef for the data type
Definition: obj.h:927
uint32 maxelems
max-elements value
Definition: obj.h:935
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:921
uint32 minelems
min-elements value
Definition: obj.h:933
xmlChar * units
units-stmt
Definition: obj.h:918
dlq_hdr_t leafrefQ
Q of ncx_backptr_t to obj_template_t.
Definition: obj.h:938
dlq_hdr_t defvalQ
YANG 1.1, Q of malloced ncx_backptr_t.
Definition: obj.h:939
boolean ordersys
ordered-by system or user
Definition: obj.h:931
boolean defset
T if any defaults specified for this leaf-list.
Definition: obj.h:930
One YANG 'list' definition.
Definition: obj.h:949
dlq_hdr_t uniqueQ
Q of obj_unique_t.
Definition: obj.h:965
ncx_sort_type_t sort_type
sort type applies to system
Definition: obj.h:980
xmlChar * name
list name
Definition: obj.h:951
ncx_status_t status
status-stmt
Definition: obj.h:971
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:960
ncx_error_t keytkerr
saved error info for key-stmt errors
Definition: obj.h:975
boolean minset
min-elements set
Definition: obj.h:967
boolean maxset
max-elements set
Definition: obj.h:969
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:972
xmlChar * keystr
key-stmt (not required if config=false)
Definition: obj.h:954
uint32 maxelems
max-elements value
Definition: obj.h:970
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:957
uint32 minelems
min-elements value
Definition: obj.h:968
obj_index_t last_index
internal numbering data for val_child ordering
Definition: obj.h:978
dlq_hdr_t keyQ
Q of obj_key_t.
Definition: obj.h:964
boolean ordersys
ordered-by system or user
Definition: obj.h:966
dlq_hdr_t * typedefQ
Q of typ_template_t.
Definition: obj.h:961
dlq_hdr_t * datadefQ
Q of obj_template_t.
Definition: obj.h:963
dlq_hdr_t * groupingQ
Q of grp_template_t.
Definition: obj.h:962
One YANG metadata (XML attribute) node.
Definition: obj.h:1371
ncx_error_t tkerr
file and line info for compiler
Definition: obj.h:1377
xmlChar * name
metadata name
Definition: obj.h:1374
dlq_hdr_t qhdr
queue header
Definition: obj.h:1372
typ_def_t * typdef
typedef for metadata
Definition: obj.h:1375
struct obj_template_t_ * parent
obj containing metadata
Definition: obj.h:1373
xmlns_id_t nsid
in case parent == NULL
Definition: obj.h:1376
One YANG 'notification' clause definition.
Definition: obj.h:1148
boolean in_data
defined in data, YANG 1.1 only
Definition: obj.h:1164
boolean notif_enabled
enabled or disabled in server
Definition: obj.h:1162
dlq_hdr_t datadefQ
Q of obj_template_t.
Definition: obj.h:1160
xmlChar * name
notification name
Definition: obj.h:1150
ncx_status_t status
status-stmt
Definition: obj.h:1157
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:1156
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:1161
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:1153
boolean notif_log_drops
log drops for this event type
Definition: obj.h:1163
dlq_hdr_t * typedefQ
Q of typ_template_t.
Definition: obj.h:1158
dlq_hdr_t * groupingQ
Q of gtp_template_t.
Definition: obj.h:1159
defines the snmp oid value, stored as an array of integers for easier comparision when performing AVL...
Definition: obj.h:1215
oid_t * oidc
OID component.
Definition: obj.h:1217
uint8 cnt
amount of Sub-Ids (max 128)
Definition: obj.h:1216
One YANG refine statement struct.
Definition: obj.h:1037
dlq_hdr_t defval_tkQ
Q of obj_defval_tk_t.
Definition: obj.h:1067
xmlChar * target
relative-path of the object to refine
Definition: obj.h:1039
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:1056
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:1078
xmlChar * presence
refining the presence-stmt
Definition: obj.h:1062
uint32 maxelems
max-elements value
Definition: obj.h:1076
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:1045
ncx_error_t ref_tkerr
same comment as descr_tkerr applies here
Definition: obj.h:1059
ncx_error_t config_tkerr
config and confset are in the object flags
Definition: obj.h:1070
uint32 minelems
min-elements value
Definition: obj.h:1074
struct obj_template_t_ * targobj
resolved target object to refine
Definition: obj.h:1042
ncx_error_t minelems_tkerr
also minset
Definition: obj.h:1075
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:1053
ncx_error_t maxelems_tkerr
also maxset
Definition: obj.h:1077
ncx_error_t presence_tkerr
same comment as descr_tkerr applies here
Definition: obj.h:1065
ncx_error_t mandatory_tkerr
mandatory and mandset are in the object flags
Definition: obj.h:1073
One YANG rpc-stmt struct.
Definition: obj.h:1103
dlq_hdr_t datadefQ
Q of obj_template_t.
Definition: obj.h:1116
xmlChar * name
rpc method name
Definition: obj.h:1105
ncx_status_t status
status-stmt
Definition: obj.h:1113
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:1111
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:1108
boolean supported
mod loaded, not implemented
Definition: obj.h:1121
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
xmlns_id_t nsid
internal fields for manager and agent
Definition: obj.h:1120
boolean is_action
YANG 1.1 only.
Definition: obj.h:1117
One YANG input-stmt or output-stmt struct.
Definition: obj.h:1083
dlq_hdr_t datadefQ
Q of obj_template_t.
Definition: obj.h:1087
xmlChar * name
input or output
Definition: obj.h:1084
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:1088
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:1093
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:1098
dlq_hdr_t * typedefQ
Q of typ_template_t.
Definition: obj.h:1085
dlq_hdr_t * groupingQ
Q of gtp_template_t.
Definition: obj.h:1086
One YANG data-def-stmt.
Definition: obj.h:1229
ncx_error_t tkerr
file and line info for compiler
Definition: obj.h:1244
ncx_sid_t yang_sid
Each object specific variant has a YANG SID assigned for CBOR encoding.
Definition: obj.h:1362
obj_oid_t * oid
SNMP OID for this object (set if needed)
Definition: obj.h:1248
ncx_transaction_id_t leafref_txid
current edit transaction ID for intermediate leafref processing
Definition: obj.h:1324
uint32 yang_hash
experimental: not used
Definition: obj.h:1233
obj_testflags_t desc_testflags
see AGT_TEST_FL_* definitions
Definition: obj.h:1243
dlq_hdr_t appinfoQ
Q of ncx_appinfo_t.
Definition: obj.h:1258
dlq_hdr_t iffeatureQ
Q of ncx_iffeature_t.
Definition: obj.h:1259
dlq_hdr_t * errmsgQ
custom error message used if this is the server running
Definition: obj.h:1306
dlq_hdr_t xpath_backptrQ
Q of ncx_back_ptr_t with node == xpath_pcb_t.
Definition: obj.h:1297
void * def_hook_cb
def_hook_cb is ncx_def_hook_cbfn_t callback function for Dynamic Default Hook callback.
Definition: obj.h:1345
uint8 silflags
see OBJ_FL_* definitions
Definition: obj.h:1240
dlq_hdr_t inherited_whenQ
Q of ncx_backptr_t with node == xpath_pcb_t.
Definition: obj.h:1264
struct obj_template_t_ * usesobj
backptr to uses-obj if grouping expand
Definition: obj.h:1253
uint8 sil_priority
picks SIL callback order
Definition: obj.h:1241
ncx_transaction_id_t edit_txid
current edit transaction ID for commit test pruning
Definition: obj.h:1315
ncx_transaction_id_t must_txid
current edit transaction ID for MUST test default nodes pruning
Definition: obj.h:1318
boolean set_snmp_flags
need SNMP flags
Definition: obj.h:1249
ncx_transaction_id_t when_txid
current edit transaction ID for WHEN test default nodes pruning
Definition: obj.h:1321
dlq_hdr_t metadataQ
Q of obj_metadata_t.
Definition: obj.h:1257
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:1312
dlq_hdr_t qhdr
queue header
Definition: obj.h:1230
grp_template_t * grp
non-NULL == in a grp.datadefQ
Definition: obj.h:1245
boolean xpath_oper_ok
object OK for referencing oper-data in XPath
Definition: obj.h:1250
dlq_hdr_t inherited_iffeatureQ
Q of obj_iffeature_ptr_t.
Definition: obj.h:1261
uint32 yang_sid_tree
SID tree assignment if yang_sid is used.
Definition: obj.h:1365
struct xpath_pcb_t_ * when
optional when clause
Definition: obj.h:1256
uint32 flags
see OBJ_FL_* definitions
Definition: obj.h:1235
ncx_sm_rootcb_t * rootcb
Schema Mount Control Block.
Definition: obj.h:1356
uint32 xflags
see OBJ_FL_* definitions
Definition: obj.h:1236
uint32 xflags2
see OBJ_FL_* definitions
Definition: obj.h:1237
obj_index_t index
object index for val_child ordering
Definition: obj.h:1246
struct obj_template_t_ * parent
backptr to parent
Definition: obj.h:1252
obj_type_t objtype
object type (def)
Definition: obj.h:1231
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:1303
uint32 uflags
see OBJ_FL_* definitions
Definition: obj.h:1239
obj_testflags_t testflags
see AGT_TEST_FL_* definitions
Definition: obj.h:1242
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:1353
void * get2cb
get2fn is getcb_fn2_t for local GET2
Definition: obj.h:1279
dlq_hdr_t * dataruleQ
Q obj NACM data-rule backptrs.
Definition: obj.h:1267
void * cbset
cbset is different based on the object type:
Definition: obj.h:1276
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:1288
xmlns_id_t nsid
namespace ID assigned to the object at run-time
Definition: obj.h:1291
struct obj_template_t_ * augobj
backptr to augment-obj if augment expand
Definition: obj.h:1254
One component in a YANG list unique target.
Definition: obj.h:826
boolean isduplicate
T: will be ignored by server.
Definition: obj.h:830
dlq_hdr_t qhdr
queue header
Definition: obj.h:827
xmlChar * xpath
saved unique str for this obj
Definition: obj.h:829
struct obj_template_t_ * unobj
unique object target
Definition: obj.h:828
One component in a YANG list unique target.
Definition: obj.h:835
ncx_error_t tkerr
file and line info for compiler
Definition: obj.h:841
dlq_hdr_t compQ
Q of obj_unique_comp_t.
Definition: obj.h:838
dlq_hdr_t qhdr
queue header
Definition: obj.h:836
xmlChar * xpath
complete saved unique str
Definition: obj.h:837
boolean isconfig
T:constraint is on config.
Definition: obj.h:840
boolean seen
needed by yangdiff
Definition: obj.h:839
One YANG uses statement struct.
Definition: obj.h:1020
boolean expand_done
expand done flag
Definition: obj.h:1032
xmlChar * name
name of grouping to use
Definition: obj.h:1022
ncx_status_t status
status-stmt
Definition: obj.h:1031
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:1028
grp_template_t * grp
const back-ptr to grouping
Definition: obj.h:1029
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:1025
xmlChar * prefix
prefix present in uses-stmt
Definition: obj.h:1021
dlq_hdr_t * datadefQ
Q of obj_template_t.
Definition: obj.h:1030
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:1327
XML Utilities.
XML namespace support.