yumapro  23.10T-8
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/********* uflags field in obj_template_t *************/
418
419/* This field represents the user flags and no system bits
420 * are defined for this field. It is used by yang_obj_cb
421 * callback functions to set user-specific flags
422 */
423
424/********* silflags field in obj_template_t *************/
425
426/* This bit is set in agt_rpc to indicate the RPC is
427 * currently being invoked; If another session attempts
428 * to invoke the RPC while busy, and the obj_is_exclusive_rpc
429 * the RPC request will be rejected by the server
430 */
431#define OBJ_FL_SIL_BUSY bit0
432
433#define OBJ_TYPE(OBJ) (OBJ)->objtype
434
435#define OBJ_INDEX(OBJ) (OBJ)->index
436
437/* mark the object as a top object since the yang_obj does
438 * not catch top-level uses from a grouping as a top object
439 */
440#define OBJ_SET_TOP(OBJ) (OBJ)->flags |= OBJ_FL_TOP
441
442#define OBJ_SET_SIL_BUSY(OBJ) (OBJ)->silflags |= OBJ_FL_SIL_BUSY
443
444#define OBJ_CLEAR_SIL_BUSY(OBJ) (OBJ)->silflags &= ~OBJ_FL_SIL_BUSY
445
446#define OBJ_IS_SIL_BUSY(OBJ) ((OBJ)->silflags & OBJ_FL_SIL_BUSY)
447
448#define OBJ_GET_CBSET(OBJ) (OBJ)->cbset
449
450
451/* Get2 support */
452#define OBJ_SET_REMOTE_GET2(OBJ) (OBJ)->xflags |= OBJ_FL_REMOTE_GET2
453
454#define OBJ_CLEAR_REMOTE_GET2(OBJ) (OBJ)->xflags &= ~OBJ_FL_REMOTE_GET2
455
456#define OBJ_HAS_REMOTE_GET2(OBJ) ((OBJ)->xflags & OBJ_FL_REMOTE_GET2)
457
458#define OBJ_SET_GET2CB(OBJ, CB) (OBJ)->get2cb = CB
459
460#define OBJ_GET_GET2CB(OBJ) (getcb_fn2_t)(OBJ)->get2cb
461
462#define OBJ_SET_EDIT2_MODE(OBJ) (OBJ)->xflags |= OBJ_FL_EDIT2_MODE
463
464#define OBJ_IS_EDIT2_MODE(OBJ) ((OBJ)->xflags & OBJ_FL_EDIT2_MODE)
465
466
467/* XPath tuning */
468#define OBJ_SET_SKIP_LEAFREF(OBJ) (OBJ)->xflags |= OBJ_FL_SKIP_LEAFREF
469
470#define OBJ_IS_SKIP_LEAFREF(OBJ) ((OBJ)->xflags & OBJ_FL_SKIP_LEAFREF)
471
472
473
474/* Object YANG Hash */
475#define OBJ_SET_YANG_HASH(OBJ) (OBJ)->xflags |= OBJ_FL_YANG_HASH
476
477#define OBJ_IS_YANG_HASH(OBJ) ((OBJ)->xflags & OBJ_FL_YANG_HASH)
478
479
480/* Object Rehash */
481#define OBJ_SET_YANG_REHASH(OBJ) (OBJ)->xflags |= OBJ_FL_YANG_REHASH
482
483#define OBJ_IS_YANG_REHASH(OBJ) ((OBJ)->xflags & OBJ_FL_YANG_REHASH)
484
485
486/* CBSET Malloced */
487#define OBJ_SET_CBSET_MALLOCED(OBJ) (OBJ)->xflags |= OBJ_FL_CBSET_MALLOCED
488
489#define OBJ_IS_CBSET_MALLOCED(OBJ) ((OBJ)->xflags & OBJ_FL_CBSET_MALLOCED)
490
491#define OBJ_CLEAR_CBSET_MALLOCED(OBJ) (OBJ)->xflags &= ~OBJ_FL_CBSET_MALLOCED
492
493/* Object is generic */
494#define OBJ_SET_GENERIC(OBJ) (OBJ)->xflags |= OBJ_FL_GENERIC
495
496#define OBJ_IS_GENERIC(OBJ) ((OBJ)->xflags & OBJ_FL_GENERIC)
497
498
499/* Object or children have a default value */
500/* NOT USED */
501#define OBJ_SET_DEF_DONE(OBJ) (OBJ)->xflags |= OBJ_FL_DEF_DONE
502
503/* NOT USED */
504#define OBJ_IS_DEF_DONE(OBJ) ((OBJ)->xflags & OBJ_FL_DEF_DONE)
505
506/* NOT USED */
507#define OBJ_SET_DEF(OBJ) (OBJ)->xflags |= OBJ_FL_DEF
508
509/* NOT USED */
510#define OBJ_IS_DEF(OBJ) ((OBJ)->xflags & OBJ_FL_DEF)
511
512/* Object is an RPC that is allowed in library mode */
513#define OBJ_SET_LIBMODE(OBJ) (OBJ)->xflags |= OBJ_FL_LIBMODE
514
515#define OBJ_IS_LIBMODE(OBJ) ((OBJ)->xflags & OBJ_FL_LIBMODE)
516
517#define OBJ_USER_FLAGS(OBJ) (OBJ)->uflags
518
519/* get the object pointer in an obj_key_t */
520#define OBJ_KEY_OBJ(K) (K)->keyobj
521
522/* get the current edit transaction id;
523 * -- changed on each transaction this object is tested
524 */
525#define OBJ_EDIT_TXID(OBJ) (OBJ)->edit_txid
526
527#define OBJ_EXTR_MUST_TXID(OBJ) (OBJ)->must_txid
528#define OBJ_EXTR_WHEN_TXID(OBJ) (OBJ)->when_txid
529#define OBJ_EXTR_LEAFREF_TXID(OBJ) (OBJ)->leafref_txid
530
531
532/* Object is flagged no-nvstore */
533#define OBJ_SET_NO_NVSTORE(OBJ) (OBJ)->xflags |= OBJ_FL_NO_NVSTORE
534
535#define OBJ_IS_NO_NVSTORE(OBJ) ((OBJ)->xflags & OBJ_FL_NO_NVSTORE)
536
537
538/* Object is flagged yangmap-source */
539#define OBJ_SET_YANGMAP_SOURCE(OBJ) \
540 (OBJ)->xflags |= OBJ_FL_YANGMAP_SOURCE
541
542#define OBJ_IS_YANGMAP_SOURCE(OBJ) \
543 ((OBJ)->xflags & OBJ_FL_YANGMAP_SOURCE)
544
545
546/* Object is flagged yangmap-target */
547#define OBJ_SET_YANGMAP_TARGET(OBJ) \
548 (OBJ)->xflags |= OBJ_FL_YANGMAP_TARGET
549
550#define OBJ_IS_YANGMAP_TARGET(OBJ) \
551 ((OBJ)->xflags & OBJ_FL_YANGMAP_TARGET)
552
553/* Object is flagged yangmap-childmap */
554#define OBJ_SET_YANGMAP_CHILD(OBJ) \
555 (OBJ)->xflags |= OBJ_FL_YANGMAP_CHILD
556
557#define OBJ_IS_YANGMAP_CHILD(OBJ) \
558 ((OBJ)->xflags & OBJ_FL_YANGMAP_CHILD)
559
560/* Object is flagged yangmap-keymap */
561#define OBJ_SET_YANGMAP_KEY(OBJ) \
562 (OBJ)->xflags |= OBJ_FL_YANGMAP_KEY
563
564#define OBJ_IS_YANGMAP_KEY(OBJ) \
565 ((OBJ)->xflags & OBJ_FL_YANGMAP_KEY)
566
567/* if OBJ_IS_YANGMAP_SOURCE : yangmap_cb == nodemap_t
568 * if OBJ_IS_YANGMAP_TARGET : yangmap_cb == nodemap_t
569 * if OBJ_IS_YANGMAP_CHILD : yangmap_cb == childmap_t
570 * if OBJ_IS_YANGMAP_KEY : yangmap_cb == keymap_t
571 */
572#define OBJ_YANGMAP_CB(OBJ) (OBJ)->yangmap_cb
573
574/* Object DUP_LOCAL test has been done */
575#define OBJ_SET_DUP_LOCAL_DONE(OBJ) \
576 (OBJ)->xflags |= OBJ_FL_DUP_LOCAL_DONE
577
578#define OBJ_IS_DUP_LOCAL_DONE(OBJ) \
579 ((OBJ)->xflags & OBJ_FL_DUP_LOCAL_DONE)
580
581
582#define OBJ_RPC_SUPPORTED(OBJ) (OBJ)->def.rpc->supported
583
584
585/* Trans Hook assignment bits */
586#define OBJ_SET_TRANS_HOOK_SET(OBJ) (OBJ)->xflags |= OBJ_FL_TRANS_HOOK_SET
587#define OBJ_IS_TRANS_HOOK_SET(OBJ) ((OBJ)->xflags & OBJ_FL_TRANS_HOOK_SET)
588#define OBJ_CLEAR_TRANS_HOOK_SET(OBJ) (OBJ)->xflags &= ~OBJ_FL_TRANS_HOOK_SET
589
590
591/* All in One assignment bits */
592#define OBJ_SET_AIO_GET2(OBJ) (OBJ)->xflags2 |= OBJ_FL_AIO_GET2
593#define OBJ_IS_AIO_GET2(OBJ) ((OBJ)->xflags2 & OBJ_FL_AIO_GET2)
594#define OBJ_CLEAR_AIO_GET2(OBJ) (OBJ)->xflags2 &= ~ OBJ_FL_AIO_GET2
595
596/* GET2 object but not All in One object, but a parent of AIO */
597#define OBJ_SET_AIO_PARENT(OBJ) (OBJ)->xflags2 |= OBJ_FL_AIO_PARENT
598#define OBJ_IS_AIO_PARENT(OBJ) ((OBJ)->xflags2 & OBJ_FL_AIO_PARENT)
599#define OBJ_CLEAR_AIO_PARENT(OBJ) (OBJ)->xflags2 &= ~ OBJ_FL_AIO_PARENT
600
601/* AIO with XML/JSON support flags*/
602#define OBJ_SET_AIO_GET2_XML(OBJ) (OBJ)->xflags2 |= OBJ_FL_AIO_GET2_XML
603#define OBJ_IS_AIO_GET2_XML(OBJ) ((OBJ)->xflags2 & OBJ_FL_AIO_GET2_XML)
604
605#define OBJ_SET_AIO_GET2_JSON(OBJ) (OBJ)->xflags2 |= OBJ_FL_AIO_GET2_JSON
606#define OBJ_IS_AIO_GET2_JSON(OBJ) ((OBJ)->xflags2 & OBJ_FL_AIO_GET2_JSON)
607
608/* Dynamic Default Hook assignment bits */
609#define OBJ_SET_DEF_HOOK(OBJ) (OBJ)->xflags2 |= OBJ_FL_DEF_HOOK
610#define OBJ_IS_DEF_HOOK(OBJ) ((OBJ)->xflags2 & OBJ_FL_DEF_HOOK)
611#define OBJ_CLEAR_DEF_HOOK(OBJ) (OBJ)->xflags2 &= ~OBJ_FL_DEF_HOOK
612#define OBJ_GET_DEF_HOOK_CB(OBJ) (ncx_def_hook_cbfn_t)(OBJ)->def_hook_cb
613
614/* openconfig-hashed-value bit */
615#define OBJ_SET_OC_HASHED_VALUE(OBJ) (OBJ)->xflags2 |= OBJ_FL_OC_HASHED_VALUE
616#define OBJ_IS_OC_HASHED_VALUE(OBJ) ((OBJ)->xflags2 & OBJ_FL_OC_HASHED_VALUE)
617
618/* Static Ban Nock GET assignment bits */
619#define OBJ_SET_BAN_NOLOCK_GET(OBJ) (OBJ)->xflags2 |= OBJ_FL_BAN_NOLOCK_GET
620#define OBJ_IS_BAN_NOLOCK_GET(OBJ) ((OBJ)->xflags2 & OBJ_FL_BAN_NOLOCK_GET)
621
622/* Mount Point bit */
623#define OBJ_SET_MOUNT_POINT(OBJ) (OBJ)->xflags2 |= OBJ_FL_MOUNT_POINT
624#define OBJ_IS_MOUNT_POINT(OBJ) ((OBJ)->xflags2 & OBJ_FL_MOUNT_POINT)
625
626/* Mount Point Support Utility functions */
627#define OBJ_SET_ROOTCB(OBJ, ROOTCB) (OBJ)->rootcb = ROOTCB
628#define OBJ_GET_ROOTCB(OBJ) (OBJ)->rootcb
629
630/* Mount Point Descendant bit */
631#define OBJ_SET_DESC_MOUNT_POINT(OBJ) (OBJ)->xflags2 |= OBJ_FL_DESC_MOUNT_POINT
632#define OBJ_IS_DESC_MOUNT_POINT(OBJ) ((OBJ)->xflags2 & OBJ_FL_DESC_MOUNT_POINT)
633
635#define OBJ_BOOL_EVAL_CB(OBJ) (OBJ)->bool_eval_cb
636
638#define OBJ_SET_EDIT3_MODE(OBJ) (OBJ)->xflags2 |= OBJ_FL_EDIT3_MODE
639#define OBJ_IS_EDIT3_MODE(OBJ) ((OBJ)->xflags2 & OBJ_FL_EDIT3_MODE)
640
642#define OBJ_SET_HIDDEN_FROM_CLI(OBJ) (OBJ)->xflags2 |= OBJ_FL_HIDDEN_FROM_CLI
643#define OBJ_IS_HIDDEN_FROM_CLI(OBJ) ((OBJ)->xflags2 & OBJ_FL_HIDDEN_FROM_CLI)
644
645
647#define OBJ_SET_CONFIRM_DATA(OBJ) (OBJ)->xflags2 |= OBJ_FL_CONFIRM_DATA
648#define OBJ_IS_CONFIRM_DATA(OBJ) ((OBJ)->xflags2 & OBJ_FL_CONFIRM_DATA)
649
650
651/********************************************************************
652* *
653* T Y P E S *
654* *
655*********************************************************************/
656
657// Header Only
680typedef enum obj_type_t_ {
685
691
694
697
700
706
722
730
741
750
751
767
770
778
779
780#define OBJ_TYP_LAST OBJ_TYP_ACTION
781
787typedef uint16 obj_index_t;
788
789
791typedef enum obj_augtype_t_ {
798
799
801typedef struct obj_key_t_ {
802 dlq_hdr_t qhdr;
803 struct obj_template_t_ *keyobj;
804 boolean seen;
805} YPACK obj_key_t;
806
807
809typedef struct obj_defval_tk_t_ {
810 dlq_hdr_t qhdr;
811 xmlChar *def;
813} YPACK obj_defval_tk_t;
814
815
817typedef struct obj_unique_comp_t_ {
818 dlq_hdr_t qhdr;
819 struct obj_template_t_ *unobj;
820 xmlChar *xpath;
821 boolean isduplicate;
822} YPACK obj_unique_comp_t;
823
824
826typedef struct obj_unique_t_ {
827 dlq_hdr_t qhdr;
828 xmlChar *xpath;
829 dlq_hdr_t compQ;
830 boolean seen;
831 boolean isconfig;
833} YPACK obj_unique_t;
834
835
837typedef struct obj_container_t_ {
839 xmlChar *name;
840
842 xmlChar *descr;
843
845 xmlChar *ref;
846
848 xmlChar *presence;
849 dlq_hdr_t *typedefQ;
850 dlq_hdr_t *groupingQ;
851 dlq_hdr_t *datadefQ;
853 dlq_hdr_t mustQ;
854 struct obj_template_t_ *defaultparm;
855 obj_index_t last_index;
856} YPACK obj_container_t;
857
858
860typedef struct obj_leaf_t_ {
862 xmlChar *name;
863
865 xmlChar *units;
866
868 xmlChar *defval;
869
871 xmlChar *descr;
872
874 xmlChar *ref;
875
878
881
883 uint16 keynum;
884
885 dlq_hdr_t mustQ;
888 dlq_hdr_t leafrefQ;
895 dlq_hdr_t uniqrefQ;
898 struct obj_template_t_ *leafrefobj;
899
900} YPACK obj_leaf_t;
901
902
904typedef struct obj_leaflist_t_ {
906 xmlChar *name;
907
909 xmlChar *units;
910
912 xmlChar *descr;
913
915 xmlChar *ref;
916
919
921 boolean defset;
922 boolean ordersys;
923 boolean minset;
924 uint32 minelems;
925 boolean maxset;
926 uint32 maxelems;
928 dlq_hdr_t mustQ;
929 dlq_hdr_t leafrefQ;
930 dlq_hdr_t defvalQ;
933 struct obj_template_t_ *leafrefobj;
934
936} YPACK obj_leaflist_t;
937
938
940typedef struct obj_list_t_ {
942 xmlChar *name;
943
945 xmlChar *keystr;
946
948 xmlChar *descr;
949
951 xmlChar *ref;
952 dlq_hdr_t *typedefQ;
953 dlq_hdr_t *groupingQ;
954 dlq_hdr_t *datadefQ;
955 dlq_hdr_t keyQ;
956 dlq_hdr_t uniqueQ;
957 boolean ordersys;
958 boolean minset;
959 uint32 minelems;
960 boolean maxset;
961 uint32 maxelems;
963 dlq_hdr_t mustQ;
967
970
972} YPACK obj_list_t;
973
974
976typedef struct obj_choice_t_ {
977 xmlChar *name;
978 xmlChar *defval;
981 xmlChar *descr;
982
984 xmlChar *ref;
985 dlq_hdr_t *caseQ;
986 boolean caseQclone;
988} YPACK obj_choice_t;
989
990
992typedef struct obj_case_t_ {
993 xmlChar *name;
996 xmlChar *descr;
997
999 xmlChar *ref;
1000
1001 dlq_hdr_t *datadefQ;
1005 boolean nameclone;
1007} YPACK obj_case_t;
1008
1009
1011typedef struct obj_uses_t_ {
1012 xmlChar *prefix;
1013 xmlChar *name;
1016 xmlChar *descr;
1017
1019 xmlChar *ref;
1021 dlq_hdr_t *datadefQ;
1023 boolean expand_done;
1024} YPACK obj_uses_t;
1025
1026
1028typedef struct obj_refine_t_ {
1030 xmlChar *target;
1031
1033 struct obj_template_t_ *targobj;
1034
1036 xmlChar *descr;
1037
1045
1047 xmlChar *ref;
1048
1051
1053 xmlChar *presence;
1054
1057
1058 dlq_hdr_t defval_tkQ;
1062
1065 uint32 minelems;
1067 uint32 maxelems;
1069 dlq_hdr_t mustQ;
1070} YPACK obj_refine_t;
1071
1072
1074typedef struct obj_rpcio_t_ {
1075 xmlChar *name;
1076 dlq_hdr_t *typedefQ;
1077 dlq_hdr_t *groupingQ;
1078 dlq_hdr_t datadefQ;
1079 dlq_hdr_t mustQ;
1084 boolean is_input;
1085
1089 struct obj_template_t_ *defaultparm;
1090} YPACK obj_rpcio_t;
1091
1092
1094typedef struct obj_rpc_t_ {
1096 xmlChar *name;
1097
1099 xmlChar *descr;
1100
1102 xmlChar *ref;
1103
1105 dlq_hdr_t *typedefQ;
1106 dlq_hdr_t *groupingQ;
1107 dlq_hdr_t datadefQ;
1108 boolean is_action;
1112 boolean supported;
1113} YPACK obj_rpc_t;
1114
1115
1117typedef struct obj_augment_t_ {
1119 xmlChar *target;
1120
1122 xmlChar *descr;
1123
1125 xmlChar *ref;
1126
1128 struct obj_template_t_ *targobj;
1129
1133 dlq_hdr_t datadefQ;
1134 uint16 depth;
1135} YPACK obj_augment_t;
1136
1137
1139typedef struct obj_notif_t_ {
1141 xmlChar *name;
1142
1144 xmlChar *descr;
1145
1147 xmlChar *ref;
1149 dlq_hdr_t *typedefQ;
1150 dlq_hdr_t *groupingQ;
1151 dlq_hdr_t datadefQ;
1152 dlq_hdr_t mustQ;
1155 boolean in_data;
1156} YPACK obj_notif_t;
1157
1158
1160typedef struct obj_iffeature_ptr_t_ {
1161 dlq_hdr_t qhdr;
1163} YPACK obj_iffeature_ptr_t;
1164
1165
1167typedef struct obj_errmsg_filter_t_ {
1168 dlq_hdr_t qhdr;
1169 xmlChar *matchstr;
1170 boolean is_errortag;
1171} YPACK obj_errmsg_filter_t;
1172
1173
1175typedef struct obj_errmsg_parm_t_ {
1176 dlq_hdr_t qhdr;
1177 xmlChar *path;
1180 uint32 len;
1181
1183 xmlChar *valstr;
1184} YPACK obj_errmsg_parm_t;
1185
1186
1188typedef struct obj_errmsg_t_ {
1189 dlq_hdr_t qhdr;
1190 xmlChar *basestr;
1191 xmlChar *langstr;
1192 dlq_hdr_t parmQ;
1193 dlq_hdr_t filterQ;
1194} YPACK obj_errmsg_t;
1195
1196
1198typedef unsigned long oid_t;
1199
1206typedef struct obj_oid_t_ {
1207 uint8 cnt;
1209} YPACK obj_oid_t;
1210
1211
1213typedef uint8 obj_testflags_t;
1214
1215
1220typedef struct obj_template_t_ {
1221 dlq_hdr_t qhdr;
1224 uint32 yang_hash;
1226 uint32 flags;
1227 uint32 xflags;
1228 uint32 xflags2;
1230 uint32 uflags;
1231 uint8 silflags;
1243 struct obj_template_t_ *parent;
1244 struct obj_template_t_ *usesobj;
1245 struct obj_template_t_ *augobj;
1247 struct xpath_pcb_t_ *when;
1248 dlq_hdr_t metadataQ;
1249 dlq_hdr_t appinfoQ;
1250 dlq_hdr_t iffeatureQ;
1256
1258 dlq_hdr_t *dataruleQ;
1259
1267 void *cbset;
1268
1270 void *get2cb;
1271
1279 struct ncx_module_t_ *mod;
1280
1283
1285 struct xpath_pcb_t_ *xpath_backptr[OBJ_NUM_XPATH_BACKPTRS];
1286
1288 dlq_hdr_t xpath_backptrQ; // backptr to xpath_pcb_t
1289
1295
1297 dlq_hdr_t *errmsgQ; // Q of obj_errmsg_t
1298
1304
1307
1310
1313
1316
1318 union def_ {
1319 obj_container_t *container;
1320 obj_leaf_t *leaf;
1321 obj_leaflist_t *leaflist;
1322 obj_list_t *list;
1323 obj_choice_t *choic;
1324 obj_case_t *cas;
1325 obj_uses_t *uses;
1326 obj_refine_t *refine;
1327 obj_augment_t *augment;
1328 obj_rpc_t *rpc;
1329 obj_rpcio_t *rpcio;
1330 obj_notif_t *notif;
1331 } def;
1332
1337
1338
1344 void *bool_eval_cb; // xpath_bool_eval_fn_t
1345
1348
1354
1357
1358} YPACK obj_template_t;
1359
1360
1362typedef struct obj_metadata_t_ {
1363 dlq_hdr_t qhdr;
1364 struct obj_template_t_ *parent;
1365 xmlChar *name;
1369 boolean typdef_copy;
1370} YPACK obj_metadata_t;
1371
1372
1374typedef enum obj_deviate_arg_t_ {
1381
1382
1384typedef struct obj_deviate_t_ {
1385 dlq_hdr_t qhdr;
1394
1396 boolean empty;
1397
1400
1403
1406
1409
1411 xmlChar *units;
1412
1415
1417 dlq_hdr_t defval_tkQ;
1418
1420 boolean config;
1421
1424
1426 boolean mandatory;
1427
1430
1432 uint32 minelems;
1436 uint32 maxelems;
1438 dlq_hdr_t mustQ;
1439 dlq_hdr_t uniqueQ;
1440 dlq_hdr_t appinfoQ;
1441} YPACK obj_deviate_t;
1442
1443
1445typedef struct obj_deviation_t_ {
1446 dlq_hdr_t qhdr;
1447 xmlChar *target;
1448 xmlChar *targmodname;
1452 xmlChar *descr;
1453
1455 xmlChar *ref;
1456
1459 xmlChar *devmodname;
1460 boolean empty;
1461 boolean annotation;
1463 dlq_hdr_t deviateQ;
1464 dlq_hdr_t appinfoQ;
1465} YPACK obj_deviation_t;
1466
1467
1478typedef boolean
1480 void *cookie1,
1481 void *cookie2,
1482 boolean nonconfig_warn);
1483
1484
1485#define OBJ_SET_TESTFLAGS(OBJ, FL) (OBJ)->testflags = FL
1486
1487#define OBJ_GET_TESTFLAGS(OBJ) (OBJ)->testflags
1488
1489#define OBJ_SET_DESC_TESTFLAGS(OBJ, FL) (OBJ)->desc_testflags = FL
1490
1491#define OBJ_GET_DESC_TESTFLAGS(OBJ) (OBJ)->desc_testflags
1492
1493#define OBJ_UPDATE_DESC_TESTFLAGS(OBJ, FL) (OBJ)->desc_testflags |= FL
1494
1497/********************************************************************
1498* *
1499* F U N C T I O N S *
1500* *
1501*********************************************************************/
1502
1519extern obj_template_t *
1520 obj_new_template (obj_type_t objtype);
1521
1522
1532extern void
1534
1535
1548extern obj_template_t *
1549 obj_find_template (dlq_hdr_t *que,
1550 const xmlChar *modname,
1551 const xmlChar *objname);
1552
1553
1565extern obj_template_t *
1566 obj_find_schema_template ( dlq_hdr_t *que,
1567 const xmlChar *modname,
1568 const xmlChar *objname );
1569
1570
1582extern const obj_template_t *
1583 obj_find_template_con (dlq_hdr_t *que,
1584 const xmlChar *modname,
1585 const xmlChar *objname);
1586
1587
1599extern obj_template_t *
1600 obj_find_template_test (dlq_hdr_t *que,
1601 const xmlChar *modname,
1602 const xmlChar *objname);
1603
1604
1618extern obj_template_t *
1620 const xmlChar *modname,
1621 const xmlChar *objname);
1622
1623
1639extern obj_template_t *
1641 const xmlChar *modname,
1642 const xmlChar *objname);
1643
1644
1666extern obj_template_t *
1668 const xmlChar *modname,
1669 const xmlChar *objname,
1670 ncx_name_match_t match_names,
1671 boolean alt_names,
1672 boolean dataonly,
1673 status_t *retres);
1674
1675
1689extern obj_template_t *
1691 const xmlChar *modname,
1692 const xmlChar *objname);
1693
1694
1711extern obj_template_t *
1713 const xmlChar *modname,
1714 const xmlChar *objname);
1715
1716
1733extern obj_template_t *
1735 const xmlChar *modname,
1736 const xmlChar *objname);
1737
1738
1755extern obj_template_t *
1757 const xmlChar *modname,
1758 const xmlChar *objname);
1759
1760
1775extern obj_template_t *
1777 xmlns_id_t nsid,
1778 const xmlChar *objname);
1779
1780
1805extern obj_template_t *
1807 const xmlChar *modname,
1808 const xmlChar *objname,
1809 ncx_name_match_t match_names,
1810 boolean alt_names,
1811 boolean dataonly,
1812 status_t *retres);
1813
1814
1825extern obj_template_t *
1827 const xmlChar *modname,
1828 const xmlChar *objname,
1829 uint32 objnamelen);
1830
1831
1853extern obj_template_t *
1855 const xmlChar *modname,
1856 const xmlChar *objname,
1857 uint32 objnamelen,
1858 uint32 *matchcount);
1859
1860
1871extern obj_template_t *
1873
1874
1885extern obj_template_t *
1887
1888
1899extern obj_template_t *
1901
1902
1917extern obj_template_t *
1919
1920
1931extern obj_template_t *
1933
1934
1945extern obj_template_t *
1947
1948
1959extern obj_template_t *
1961
1962
1973extern obj_template_t *
1975
1976
1991extern obj_template_t *
1993
1994
2005extern obj_template_t *
2007
2008
2019extern obj_template_t *
2021
2022
2033extern obj_template_t *
2035
2036
2048extern obj_template_t *
2050
2051
2063extern obj_template_t *
2065
2066
2083extern obj_template_t *
2085 boolean stopnext);
2086
2087
2123extern boolean
2125 obj_walker_fn_t walkerfn,
2126 void *cookie1,
2127 void *cookie2,
2128 obj_template_t *startnode,
2129 const xmlChar *modname,
2130 const xmlChar *childname,
2131 boolean configonly,
2132 boolean textmode,
2133 boolean useroot);
2134
2135
2175extern boolean
2177 obj_walker_fn_t walkerfn,
2178 void *cookie1,
2179 void *cookie2,
2180 obj_template_t *startnode,
2181 const xmlChar *modname,
2182 const xmlChar *name,
2183 boolean configonly,
2184 boolean textmode,
2185 boolean useroot,
2186 boolean orself,
2187 boolean *fncalled);
2188
2189
2229extern boolean
2231 obj_walker_fn_t walkerfn,
2232 void *cookie1,
2233 void *cookie2,
2234 obj_template_t *startnode,
2235 const xmlChar *modname,
2236 const xmlChar *name,
2237 boolean configonly,
2238 boolean textmode,
2239 boolean useroot,
2240 boolean orself,
2241 boolean *fncalled);
2242
2243
2286extern boolean
2288 obj_walker_fn_t walkerfn,
2289 void *cookie1,
2290 void *cookie2,
2291 obj_template_t *startnode,
2292 const xmlChar *modname,
2293 const xmlChar *name,
2294 boolean configonly,
2295 boolean dblslash,
2296 boolean textmode,
2297 boolean useroot,
2298 ncx_xpath_axis_t axis,
2299 boolean *fncalled);
2300
2301
2310extern obj_case_t *
2312 const xmlChar *modname,
2313 const xmlChar *casname);
2314
2315
2316
2327extern obj_template_t *
2329 const xmlChar *name);
2330
2331
2337extern void
2338 obj_clean_datadefQ (dlq_hdr_t *que);
2339
2340
2348extern typ_template_t *
2350 const xmlChar *typname);
2351
2352
2359extern typ_template_t *
2361
2362
2370extern grp_template_t *
2372 const xmlChar *grpname);
2373
2380extern grp_template_t *
2382
2383
2399extern status_t
2400 obj_set_named_type (void *pcb, // yang_pcb_t
2401 tk_chain_t *tkc,
2402 ncx_module_t *mod,
2403 const xmlChar *typname,
2404 typ_def_t *typdef,
2405 obj_template_t *parent,
2406 grp_template_t *grp);
2407
2408
2431extern obj_template_t *
2433 obj_template_t *srcobj,
2434 dlq_hdr_t *mobjQ);
2435
2436
2461extern obj_template_t *
2463 obj_template_t *srcobj,
2464 dlq_hdr_t *mobjQ,
2465 boolean sm_clone);
2466
2467
2492extern obj_template_t *
2494 obj_template_t *srcobj,
2495 dlq_hdr_t *mobjQ);
2496
2497
2498/******************** obj_unique_t ********************/
2499
2500
2506extern obj_unique_t *
2507 obj_new_unique (void);
2508
2509
2515extern void
2517
2518
2524extern void
2526
2527
2533extern void
2535
2536
2542extern obj_unique_comp_t *
2543 obj_new_unique_comp (void);
2544
2545
2551extern void
2553
2554
2563extern obj_unique_t *
2564 obj_find_unique (dlq_hdr_t *que,
2565 const xmlChar *xpath);
2566
2567
2574extern obj_unique_t *
2576
2577
2584extern obj_unique_t *
2586
2587
2594extern obj_unique_comp_t *
2596
2597
2604extern obj_unique_comp_t *
2606
2607
2613extern obj_key_t *
2614 obj_new_key (void);
2615
2616
2622extern void
2623 obj_free_key (obj_key_t *key);
2624
2625
2633extern obj_key_t *
2634 obj_find_key (dlq_hdr_t *que,
2635 const xmlChar *keycompname);
2636
2637
2646extern obj_key_t *
2647 obj_find_key2 (dlq_hdr_t *que,
2648 obj_template_t *keyobj);
2649
2650
2657extern obj_key_t *
2659
2660
2667extern obj_key_t *
2669
2670
2677extern const obj_key_t *
2678 obj_first_ckey (const obj_template_t *obj);
2679
2680
2687extern obj_key_t *
2688 obj_next_key (obj_key_t *objkey);
2689
2690
2697extern obj_key_t *
2698 obj_prev_key (obj_key_t *objkey);
2699
2700
2707extern const obj_key_t *
2708 obj_next_ckey (const obj_key_t *objkey);
2709
2710
2717extern uint32
2718 obj_key_count (const obj_template_t *obj);
2719
2720
2728extern uint32
2730
2731
2745extern void
2747 void *cookie1,
2748 void *cookie2,
2749 obj_walker_fn_t walkerfn);
2750
2751
2758extern boolean
2759 obj_any_rpcs (const dlq_hdr_t *datadefQ);
2760
2761
2768extern boolean
2769 obj_any_notifs (const dlq_hdr_t *datadefQ);
2770
2771
2777extern obj_deviate_t *
2778 obj_new_deviate (void);
2779
2780
2786extern void
2788
2789
2796extern const xmlChar *
2798
2799
2805extern obj_deviation_t *
2806 obj_new_deviation (void);
2807
2808
2814extern void
2816
2817
2823extern void
2824 obj_clean_deviationQ (dlq_hdr_t *deviationQ);
2825
2826
2835extern status_t
2837 xmlChar **buff);
2838
2839
2849extern status_t
2850 obj_gen_object_id_prefix (const obj_template_t *obj, xmlChar **buff);
2851
2852
2853
2864extern status_t
2866 xmlChar **buff);
2867
2868
2879extern status_t
2881 const obj_template_t *obj,
2882 xmlChar **buff);
2883
2884
2897extern status_t
2899 xmlChar **buff);
2900
2901
2911 xmlChar **buff);
2912
2913
2924 const obj_template_t *stopobj,
2925 xmlChar **buff);
2926
2927
2940extern status_t
2942 const obj_template_t *obj,
2943 xmlChar **buff);
2944
2945
2961extern status_t
2963 xmlChar *buff,
2964 uint32 bufflen,
2965 uint32 *reallen);
2966
2967
2981extern status_t
2983 xmlChar *buff,
2984 uint32 bufflen,
2985 uint32 *reallen);
2986
2987
2988
2989
2999extern status_t
3001 xmlChar **buff);
3002
3003
3014extern status_t
3016 xmlChar **buff);
3017
3018
3025extern const xmlChar *
3026 obj_get_name (const obj_template_t *obj);
3027
3028
3036extern status_t
3038 const xmlChar *objname);
3039
3040
3053extern boolean
3054 obj_has_name (const obj_template_t *obj);
3055
3056
3065extern boolean
3067
3068
3075extern ncx_status_t
3076 obj_get_status (const obj_template_t *obj);
3077
3078
3085extern const xmlChar *
3087
3088
3098extern const xmlChar *
3100
3101
3109extern const xmlChar *
3111
3112
3120extern const xmlChar *
3122
3123
3130extern const void *
3132
3133
3140extern const xmlChar *
3141 obj_get_reference (const obj_template_t *obj);
3142
3143
3151extern const void *
3153
3154
3155#define obj_is_config obj_get_config_flag_deep
3156
3157
3167extern boolean
3169
3170
3184extern boolean
3186 boolean *setflag);
3187
3188
3196extern ncx_access_t
3198
3199
3206extern dlq_hdr_t *
3208
3209
3216extern dlq_hdr_t *
3217 obj_get_mustQ (const obj_template_t *obj);
3218
3219
3226extern dlq_hdr_t *
3227 obj_get_leafrefQ (const obj_template_t *obj);
3228
3229
3239extern const xmlChar *
3240 obj_get_typestr (const obj_template_t *obj);
3241
3242
3249extern dlq_hdr_t *
3251
3252
3259extern const dlq_hdr_t *
3260 obj_get_cdatadefQ (const obj_template_t *obj);
3261
3262
3273extern const xmlChar *
3274 obj_get_default (const obj_template_t *obj);
3275
3276
3285extern const xmlChar *
3287 ncx_backptr_t **thisdef);
3288
3289
3302extern const xmlChar *
3304 ncx_backptr_t *lastdef,
3305 ncx_backptr_t **thisdef);
3306
3307
3314extern obj_template_t *
3316
3317
3327extern boolean
3329
3330
3340extern boolean
3342
3343
3352extern uint32
3353 obj_get_level (const obj_template_t *obj);
3354
3355
3371extern uint32
3372 obj_get_level_mp (const obj_template_t *obj);
3373
3374
3384extern uint32
3386
3387
3397extern boolean
3398 obj_has_typedefs (const obj_template_t *obj);
3399
3400
3408extern typ_def_t *
3410
3411
3419extern typ_def_t *
3421
3422
3430extern const typ_def_t *
3431 obj_get_ctypdef (const obj_template_t *obj);
3432
3433
3440extern ncx_btype_t
3441 obj_get_basetype (const obj_template_t *obj);
3442
3443
3450extern const xmlChar *
3452
3453
3460extern const xmlChar *
3462
3463
3470extern const xmlChar *
3471 obj_get_mod_name (const obj_template_t *obj);
3472
3473
3480extern ncx_module_t *
3482
3483
3490extern boolean
3492
3493
3501extern ncx_module_t *
3503
3504
3511extern const xmlChar *
3513
3514
3521extern const xmlChar *
3522 obj_get_type_name (const obj_template_t *obj);
3523
3524
3531extern xmlns_id_t
3532 obj_get_nsid (const obj_template_t *obj);
3533
3534
3541extern ncx_sid_t
3542 obj_get_yang_sid (const obj_template_t *obj);
3543
3544
3551extern uint32
3553
3560extern ncx_iqual_t
3562
3563
3571extern ncx_iqual_t
3573 boolean required);
3574
3575
3584extern boolean
3586 uint32 *minelems);
3587
3588
3597extern boolean
3599 uint32 *maxelems);
3600
3601
3608extern const xmlChar *
3610
3611
3618extern obj_template_t *
3620
3621
3629extern const obj_template_t *
3630 obj_get_cparent (const obj_template_t *obj);
3631
3632
3640extern obj_template_t *
3642
3643
3653extern const obj_template_t *
3655
3656
3664extern obj_template_t *
3666
3667
3668
3675extern const xmlChar *
3677
3678
3686extern void *
3688
3689
3716extern status_t
3718 obj_template_t *chobj,
3719 const xml_node_t *curnode,
3720 boolean xmlorder,
3721 dlq_hdr_t *force_modQ,
3722 obj_template_t **rettop,
3723 obj_template_t **retobj);
3724
3725
3732extern uint32
3734
3735
3743extern obj_template_t *
3745
3746
3761extern boolean
3763
3764
3779extern boolean
3781 boolean *ingrp);
3782
3783
3791extern uint8
3793
3794
3802extern const ncx_iffeature_t *
3804
3805
3813extern const ncx_iffeature_t *
3814 obj_get_next_iffeature (const ncx_iffeature_t *iffeature);
3815
3816
3823extern boolean
3824 obj_is_anyxml (const obj_template_t *obj);
3825
3826
3833extern boolean
3834 obj_is_anydata (const obj_template_t *obj);
3835
3836
3844extern boolean
3845 obj_is_any (const obj_template_t *obj);
3846
3847
3854extern boolean
3855 obj_is_leaf (const obj_template_t *obj);
3856
3857
3864extern boolean
3865 obj_is_leaf_list (const obj_template_t *obj);
3866
3867
3874extern boolean
3875 obj_is_list (const obj_template_t *obj);
3876
3877
3884extern boolean obj_in_list (const obj_template_t *obj);
3885
3886
3893extern boolean
3894 obj_is_container (const obj_template_t *obj);
3895
3896
3903extern boolean
3904 obj_is_choice (const obj_template_t *obj);
3905
3906
3913extern boolean
3914 obj_is_case (const obj_template_t *obj);
3915
3916
3923extern boolean
3924 obj_is_uses (const obj_template_t *obj);
3925
3926
3933extern boolean
3934 obj_is_leafy (const obj_template_t *obj);
3935
3936
3943extern boolean obj_is_terminal (const obj_template_t *obj);
3944
3945
3953extern boolean
3955
3956
3967extern boolean
3969 boolean config_only);
3970
3971
3980extern boolean
3982
3983
3992extern boolean
3993 obj_is_cloned (const obj_template_t *obj);
3994
3995
4004extern boolean
4005 obj_is_augclone (const obj_template_t *obj);
4006
4007
4015extern boolean
4016 obj_is_augment (const obj_template_t *obj);
4017
4018
4026extern boolean obj_in_augment (const obj_template_t *obj);
4027
4028
4036extern boolean
4037 obj_is_refine (const obj_template_t *obj);
4038
4039
4048extern boolean
4049 obj_is_data (const obj_template_t *obj);
4050
4051
4061extern boolean
4062 obj_is_data_db (const obj_template_t *obj);
4063
4064
4072extern boolean
4073 obj_is_data_node (const obj_template_t *obj);
4074
4075
4083extern boolean
4084 obj_in_rpc (const obj_template_t *obj);
4085
4086
4093extern boolean
4094 obj_in_rpc_reply (const obj_template_t *obj);
4095
4096
4103extern boolean
4104 obj_in_notif (const obj_template_t *obj);
4105
4106
4113extern boolean
4114 obj_is_rpc (const obj_template_t *obj);
4115
4116
4123extern boolean
4124 obj_is_sm_rpc (const obj_template_t *obj);
4125
4126
4133extern boolean obj_is_rpcio (const obj_template_t *obj);
4134
4135
4142extern boolean obj_is_rpcio_input (const obj_template_t *obj);
4143
4144
4151extern boolean
4152 obj_is_action (const obj_template_t *obj);
4153
4154
4161extern boolean obj_in_action (const obj_template_t *obj);
4162
4163
4170extern boolean
4171 obj_is_notif (const obj_template_t *obj);
4172
4173
4180extern boolean
4181 obj_is_sm_notif (const obj_template_t *obj);
4182
4183
4196extern boolean
4197 obj_is_empty (const obj_template_t *obj);
4198
4199
4207extern boolean
4208 obj_is_match (const obj_template_t *obj1,
4209 const obj_template_t *obj2);
4210
4211
4218extern boolean
4219 obj_is_hidden (const obj_template_t *obj);
4220
4221
4228extern boolean
4230
4231
4238extern boolean
4239 obj_is_root (const obj_template_t *obj);
4240
4241
4247extern void
4249
4250
4257extern boolean
4258 obj_is_rpc_root (const obj_template_t *obj);
4259
4260
4267extern boolean
4268 obj_is_password (const obj_template_t *obj);
4269
4270
4277extern boolean
4278 obj_is_xsdlist (const obj_template_t *obj);
4279
4280
4287extern boolean
4288 obj_is_cli (const obj_template_t *obj);
4289
4290
4299extern boolean obj_is_dirty (const obj_template_t *obj,
4300 ncx_cfg_t cfgid);
4301
4302
4309extern boolean
4310 obj_is_key (const obj_template_t *obj);
4311
4312
4319extern boolean
4320 obj_is_abstract (const obj_template_t *obj);
4321
4322
4330extern boolean obj_in_abstract (const obj_template_t *obj);
4331
4332
4339extern boolean
4340 obj_is_deleted (const obj_template_t *obj);
4341
4342
4351extern boolean
4352 obj_is_deleted_ex (const obj_template_t *obj);
4353
4354
4361extern boolean
4363
4364
4372extern boolean
4374
4375
4382extern boolean
4383 obj_is_secure (const obj_template_t *obj);
4384
4385
4393extern boolean
4395
4396
4404extern boolean
4406
4407
4415extern boolean
4417
4418
4426extern boolean
4428
4429
4438extern boolean
4440
4441
4448extern boolean
4450
4451
4461extern boolean
4463
4464
4472extern boolean
4474
4475
4484extern boolean
4485 obj_is_top (const obj_template_t *obj);
4486
4495extern boolean
4496 obj_in_top_choice (const obj_template_t *obj);
4497
4498
4505extern boolean
4506 obj_is_datapath (const obj_template_t *obj);
4507
4508
4520extern boolean
4522
4523
4531extern boolean
4533
4534
4543extern boolean
4545
4546
4554extern boolean obj_has_ro_descendants (obj_template_t *obj);
4555
4556
4564extern boolean obj_has_rw_children (obj_template_t *obj);
4565
4566
4576extern boolean obj_has_rw_children_ex (obj_template_t *obj,
4577 boolean term_only);
4578
4579
4586extern boolean
4588
4589
4596extern boolean
4598
4599
4608extern boolean
4610
4611
4617extern obj_metadata_t *
4618 obj_new_metadata (void);
4619
4620
4630extern void
4632
4633
4641extern status_t
4643 obj_template_t *obj);
4644
4645
4653extern obj_metadata_t *
4655 const xmlChar *name);
4656
4657
4664extern obj_metadata_t *
4666
4667
4674extern obj_metadata_t *
4675 obj_next_metadata (const obj_metadata_t *meta);
4676
4677
4688extern void
4690
4691
4698extern void
4700
4701
4709extern uint32
4711
4712
4722extern void
4724 dlq_hdr_t *datadefQ,
4725 uint32 startindent,
4726 uint32 indent);
4727
4728
4735extern const xmlChar *
4737
4738
4744extern void
4745 obj_delete_obsolete (dlq_hdr_t *objQ);
4746
4747
4754extern const xmlChar *
4755 obj_get_altname (const obj_template_t *obj);
4756
4757
4765extern obj_template_t *
4767
4768
4776extern obj_template_t *
4778
4779
4787extern const xmlChar *
4789
4790
4797extern boolean
4799
4800
4807extern boolean
4809
4810
4818extern boolean
4820
4821
4829extern boolean
4831
4832
4840extern boolean
4842
4843
4852extern boolean
4854
4855
4862extern void
4864
4865
4874extern boolean
4876
4877
4886extern boolean
4888
4889
4898extern boolean
4900
4901
4908extern obj_iffeature_ptr_t *
4910
4911
4917extern void obj_free_iffeature_ptr (obj_iffeature_ptr_t *iffptr);
4918
4919
4926extern obj_iffeature_ptr_t *
4928
4929
4936extern obj_iffeature_ptr_t *
4938
4939
4946extern ncx_backptr_t *
4948
4949
4956extern ncx_backptr_t *
4958
4959
4967extern boolean
4969 struct xpath_pcb_t_ *xpath);
4970
4971
4979extern struct xpath_pcb_t_ *
4981 struct xpath_pcb_t_ *xpath);
4982
4983
4990extern struct xpath_pcb_t_ *
4992
4993
4994
5005extern status_t
5007 struct xpath_pcb_t_ *xpath);
5008
5009
5019extern void
5021 struct xpath_pcb_t_ *xpath);
5022
5023
5032extern status_t
5034
5035
5044extern void
5046 ncx_cfg_t cfg_id,
5047 boolean flag);
5048
5049
5065extern boolean
5067
5068
5089extern boolean
5091
5092
5100extern boolean
5102
5103
5116extern void
5118 ncx_module_t *mod);
5119
5120
5127extern void
5129
5130
5139extern boolean
5141
5142
5149extern void
5151 uint16 keynum);
5152
5153
5160extern uint16
5162
5163
5171extern boolean
5173
5174
5181extern boolean
5183
5184
5191extern boolean
5193
5194
5201extern void
5203
5204
5211extern boolean obj_notif_enabled (const obj_template_t *obj);
5212
5213
5220extern boolean obj_notif_log_drops (const obj_template_t *obj);
5221
5222
5229extern void obj_set_notif_enabled (obj_template_t *obj,
5230 boolean enabled);
5231
5232
5239extern void obj_set_notif_log_drops (const obj_template_t *obj,
5240 boolean enabled);
5241
5242
5250extern boolean
5251 obj_unload_active (const obj_template_t *obj);
5252
5253
5260extern boolean
5261 obj_is_obsolete (const obj_template_t *obj);
5262
5263
5271extern boolean
5273
5274
5281extern void
5283 uint8 prio);
5284
5285
5292extern uint8
5294
5295
5303extern boolean
5305
5306
5315
5316
5324extern boolean
5326
5327
5334extern boolean
5335 obj_is_crypt_hash (const obj_template_t *obj);
5336
5337
5348extern void
5350
5351
5357extern obj_defval_tk_t *
5358 obj_new_defval_tk (void);
5359
5360
5366extern void
5368
5369
5376extern dlq_hdr_t *
5378
5379
5386extern obj_defval_tk_t *
5387 obj_first_defval_tk (const obj_refine_t *ref);
5388
5389
5396extern obj_defval_tk_t *
5397 obj_next_defval_tk (const obj_defval_tk_t *defval_tk);
5398
5399#define obj_next_dev_defval_tk(D) obj_next_defval_tk(D)
5400
5401
5408extern obj_defval_tk_t *
5410
5411
5418extern boolean
5420
5421
5428extern void
5430 const xmlChar *defval);
5431
5432
5440extern boolean
5442 const xmlChar *find_defval);
5443
5444
5451extern void
5453
5454
5459extern void
5460 obj_enter_xpath_mode (void);
5461
5462
5467extern void
5468 obj_exit_xpath_mode (void);
5469
5470
5478extern obj_key_t *
5480 const xmlChar *keyname);
5481
5482
5489extern ncx_yang_version_t
5491
5492
5502extern boolean
5504
5505
5511extern void
5513
5514
5523extern boolean
5525
5526
5532extern void
5534
5535
5536
5537#if defined(WITH_SNMP) && defined(WITH_RESTCONF)
5544extern const xmlChar *
5546
5547
5558extern obj_oid_t *
5560 boolean *malloced);
5561
5562#endif // WITH_SNMP and WITH_RESTCONF
5563
5564
5573 dlq_hdr_t *keystackQ);
5574
5575
5581extern void obj_dump_keystackQ (dlq_hdr_t *keystackQ);
5582
5583
5590extern void obj_clr_enable_chk (obj_template_t *obj);
5591
5592
5600extern status_t
5602 void *rule);
5603
5604
5611extern void
5613 const void *rule);
5614
5615
5623extern boolean
5625 void *rule);
5626
5627
5637extern status_t
5639 const xmlChar *basestr,
5640 obj_errmsg_t **ret_errmsg);
5641
5642
5650extern status_t
5652 const xmlChar *parmstr);
5653
5654
5663extern status_t
5665 const xmlChar *parmstr,
5666 boolean is_errortag);
5667
5668
5684extern boolean
5686
5687
5695extern boolean
5696 obj_is_singular (const obj_template_t *obj);
5697
5698
5708extern boolean
5710
5711
5718extern boolean
5719 obj_ok_for_nolock (const obj_template_t *obj);
5720
5721
5728extern boolean
5730
5731
5738extern boolean
5740
5741
5748extern boolean obj_get_xpath_oper_ok (const obj_template_t *obj);
5749
5750
5756extern void obj_set_xpath_oper_ok (obj_template_t *obj);
5757
5758
5766extern boolean
5768
5769
5780extern boolean
5782
5783
5790extern obj_template_t *
5792
5793
5800extern boolean
5802
5803
5810extern ncx_module_t *
5812
5813
5821extern obj_template_t *
5823
5824
5835extern boolean
5836 obj_is_ancestor (const obj_template_t *ancestor,
5837 const obj_template_t *obj);
5838
5839
5845extern void
5847
5848
5859extern boolean
5861
5862
5869extern obj_template_t *
5871
5872
5873
5884extern boolean
5886
5887
5888
5899extern boolean
5901
5902
5914extern boolean
5916
5917
5918
5926extern ncx_sm_rootcb_t *
5928
5929
5930
5937extern status_t
5939
5940
5941/*
5942* @brief Object Compare
5943*
5944* @param obj1 object to check
5945* @param obj2 object to check
5946*
5947* @return TRUE if objects match
5948*/
5949extern boolean
5950 obj_match_sm_objs (obj_template_t *obj1,
5951 obj_template_t *obj2);
5952
5961extern boolean
5963
5964
5977extern status_t
5979 const xmlChar *prefix,
5980 const xmlChar *name,
5981 const xmlChar **retval);
5982
5983
5991extern status_t
5993 obj_template_t *listobj);
5994
5995
6003extern obj_template_t *
6005
6006
6015extern obj_template_t *
6017 obj_template_t *curbackptr);
6018
6019
6029extern boolean
6031
6032
6033
6041extern void
6043 ncx_sort_type_t typ);
6044
6045
6053extern ncx_sort_type_t
6054 obj_get_sort_type (const obj_template_t *obj);
6055
6062extern boolean
6064
6065
6074extern grp_template_t *
6076
6077
6086extern obj_template_t *
6088
6089
6098extern obj_template_t *
6100
6101
6105#ifdef __cplusplus
6106} /* end extern 'C' */
6107#endif
6108
6109#endif /* _H_obj */
log_debug_t
The debug level enumerations used in util/log.c.
Definition: log.h:343
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:1567
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:1796
uint32 ncx_sid_t
Standard YANG SID is a 63-bit integer defined as uint64.
Definition: ncxtypes.h:752
ncx_yang_version_t
enumeration for different YANG language versions
Definition: ncxtypes.h:1009
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:724
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:16566
uint32 obj_get_child_count(const obj_template_t *obj)
Get the number of child nodes the object has.
Definition: obj.c:14071
void obj_set_abstract(obj_template_t *obj)
Set the abstract flag for the yang-data node.
Definition: obj.c:19390
obj_key_t * obj_last_key(obj_template_t *obj)
Get the last key record.
Definition: obj.c:10448
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:12556
boolean obj_is_notif(const obj_template_t *obj)
Check if the object is a notification.
Definition: obj.c:15349
boolean obj_is_external_augment(obj_template_t *obj)
Check if an object is an external augment.
Definition: obj.c:17453
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:16349
const xmlChar * obj_get_description(const obj_template_t *obj)
Get the description field for this obj.
Definition: obj.c:11861
boolean obj_has_name(const obj_template_t *obj)
Check if the specified object type has a name.
Definition: obj.c:11722
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:9954
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:12736
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:20452
obj_key_t * obj_new_key(void)
Alloc and Init a obj_key_t struct.
Definition: obj.c:10302
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:16142
boolean obj_is_case(const obj_template_t *obj)
Check if object is a YANG case.
Definition: obj.c:14617
boolean obj_is_hidden(const obj_template_t *obj)
Check if object is marked as a hidden object.
Definition: obj.c:15436
boolean obj_get_max_elements(obj_template_t *obj, uint32 *maxelems)
Get the max-elements clause for this object, if any.
Definition: obj.c:13727
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:6145
uint32 obj_get_yang_sid_tree(const obj_template_t *obj)
Get the YANG SID Tree ID for this object.
Definition: obj.c:13549
boolean obj_is_cli(const obj_template_t *obj)
Check if object is marked as a CLI object.
Definition: obj.c:15557
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:15411
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:6655
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:16160
boolean obj_is_rpcio(const obj_template_t *obj)
Check if the object is an RPC IO node.
Definition: obj.c:15247
boolean obj_get_leaf_list_defset(const obj_template_t *obj)
Get the defset flag for a leaf-list.
Definition: obj.c:19171
obj_unique_t * obj_first_unique(obj_template_t *listobj)
Get the first unique-stmt for a list.
Definition: obj.c:10204
boolean obj_get_config_flag_check(const obj_template_t *obj, boolean *ingrp)
get config flag during YANG module checking
Definition: obj.c:14255
const void * obj_get_reference_addr(const obj_template_t *obj)
Get the reference field for this obj.
Definition: obj.c:12148
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:11308
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:14915
ncx_module_t * obj_get_mod(obj_template_t *obj)
Get the module pointer for this object.
Definition: obj.c:13344
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:21112
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:19258
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:12855
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:17684
ncx_backptr_t * obj_first_inherit_when_ptr(obj_template_t *obj)
Get first xpath pointer struct.
Definition: obj.c:17762
const xmlChar * obj_get_oid_string(obj_template_t *obj)
Get object OID sting value.
Definition: obj.c:19415
typ_def_t * obj_get_typdef(obj_template_t *obj)
Get the typdef for the leaf or leaf-list.
Definition: obj.c:13109
grp_template_t * obj_first_grouping(obj_template_t *obj)
Get the first local grouping if any.
Definition: obj.c:9394
void obj_delete_obsolete(dlq_hdr_t *objQ)
Delete any obsolete child nodes within the specified object subtree.
Definition: obj.c:17311
boolean obj_is_password(const obj_template_t *obj)
Check if object is marked as a password object.
Definition: obj.c:15522
boolean obj_get_top_config_flag(const obj_template_t *obj)
Get the config flag for the top-level object.
Definition: obj.c:19903
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:9028
void obj_free_defval_tk(obj_defval_tk_t *def)
Delete an object default tk record;.
Definition: obj.c:19077
boolean obj_find_defval(obj_template_t *obj, const xmlChar *find_defval)
Find a default.
Definition: obj.c:19225
obj_template_t * obj_first_unique_backptr(obj_template_t *leafobj)
Get the first unique backptr for a leaf object.
Definition: obj.c:20938
const xmlChar * obj_get_deviate_arg(obj_deviate_arg_t devarg)
Get the deviate-arg string from its enumeration.
Definition: obj.c:10814
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:18721
void * obj_get_presence_string_field(const obj_template_t *obj)
Get the address ot the presence-stmt value, if any.
Definition: obj.c:13995
boolean obj_is_container(const obj_template_t *obj)
Check if object is a YANG container.
Definition: obj.c:14571
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:10350
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:20600
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:20102
obj_unique_comp_t * obj_new_unique_comp(void)
Alloc and Init a obj_unique_comp_t struct.
Definition: obj.c:10119
boolean obj_is_list(const obj_template_t *obj)
Check if object is a YANG list.
Definition: obj.c:14509
const xmlChar * obj_get_augment_target(obj_template_t *obj)
Get the target path string for an augments object.
Definition: obj.c:17432
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:20055
boolean obj_is_anydata(const obj_template_t *obj)
Check if object is an anydata.
Definition: obj.c:14431
const xmlChar * obj_get_altname(const obj_template_t *obj)
Get the alt-name for this object, if any.
Definition: obj.c:17354
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:10606
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:8092
const xmlChar * obj_get_default(const obj_template_t *obj)
Get the default value for the specified object.
Definition: obj.c:12639
status_t obj_set_mp_flags(obj_template_t *obj)
set the Schema Mount flags and create a rootcb if needed
Definition: obj.c:20634
boolean obj_is_p_container(const obj_template_t *obj)
Check if the object is an Presence-container.
Definition: obj.c:15886
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:21080
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:14771
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:16501
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:7444
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:11405
status_t obj_assign_xpath_backptr(obj_template_t *obj, struct xpath_pcb_t_ *xpath)
Set an xpath-expr backptr.
Definition: obj.c:17925
dlq_hdr_t * obj_get_defvalQ(obj_template_t *obj)
Get the leaf-list default Q.
Definition: obj.c:19095
const xmlChar * obj_get_type_name(const obj_template_t *obj)
Get the typename for an object.
Definition: obj.c:13477
void obj_ban_nolock_get(obj_template_t *obj)
Ban nolock-get for the object.
Definition: obj.c:20405
void obj_free_key(obj_key_t *key)
Free a obj_key_t struct.
Definition: obj.c:10325
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:12685
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:11191
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:15909
const void * obj_get_description_addr(const obj_template_t *obj)
Get the address of the description field for this obj.
Definition: obj.c:12034
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:7341
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:20853
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:10963
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:6033
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:13836
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:14371
void obj_init_unique(obj_unique_t *un)
Init a obj_unique_t struct.
Definition: obj.c:10046
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:18368
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:11508
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:17212
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:20340
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:10643
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:6736
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:14961
obj_key_t * obj_next_key(obj_key_t *objkey)
Get the next key record.
Definition: obj.c:10504
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:17538
void obj_clean_datadefQ(dlq_hdr_t *que)
Clean and free all the obj_template_t structs in the specified Q.
Definition: obj.c:9106
typ_def_t * obj_get_base_typdef(obj_template_t *obj)
Get the base typdef for the leaf or leaf-list.
Definition: obj.c:13149
boolean obj_is_xsdlist(const obj_template_t *obj)
Check if object is marked as an XSD list.
Definition: obj.c:15541
void obj_clean_unique(obj_unique_t *un)
Clean a obj_unique_t struct.
Definition: obj.c:10089
obj_key_t * obj_prev_key(obj_key_t *objkey)
Get the previous key record.
Definition: obj.c:10530
boolean obj_in_action(const obj_template_t *obj)
Check if the object is within or is an action method.
Definition: obj.c:15304
void obj_dump_keystackQ(dlq_hdr_t *keystackQ)
Dump a keystackQ with backptrs to obj_template_t for key leafs.
Definition: obj.c:19641
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:16057
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:17556
boolean obj_ok_for_nolock(const obj_template_t *obj)
check an object OK for nolock
Definition: obj.c:19935
boolean obj_has_typedefs(const obj_template_t *obj)
Check if the object has any nested typedefs in it.
Definition: obj.c:13028
void obj_add_child(obj_template_t *child, obj_template_t *parent)
Add a child object to the specified complex node.
Definition: obj.c:17582
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:18613
boolean obj_in_rpc(const obj_template_t *obj)
Check if the object is in an rpc/input section.
Definition: obj.c:15091
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:16284
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:15581
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:17662
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:20371
boolean obj_is_rpcio_input(const obj_template_t *obj)
Check if the object is an RPC IO node.
Definition: obj.c:15264
const xmlChar * obj_get_alt_description(const obj_template_t *obj)
obj_get_alt_description (DEPRECATED)
Definition: obj.c:11920
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:11008
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:7880
void obj_set_xpath_oper_ok(obj_template_t *obj)
Set the object XPath oper OK flag.
Definition: obj.c:20292
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:8011
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:8842
boolean obj_is_datapath(const obj_template_t *obj)
Check if object is marked as a ywx:datapath object.
Definition: obj.c:16185
obj_defval_tk_t * obj_new_defval_tk(void)
Create a new object default tk record;.
Definition: obj.c:19060
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:16426
void obj_free_unique_comp(obj_unique_comp_t *unc)
Free a obj_unique_comp_t struct.
Definition: obj.c:10142
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:18399
boolean obj_is_crypt_hash(const obj_template_t *obj)
Check if the object is a leaf of type crypt-hash.
Definition: obj.c:19001
boolean obj_rpc_has_input(obj_template_t *obj)
Check if the RPC object has any real input children.
Definition: obj.c:16402
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:14944
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:15636
boolean obj_has_get2cb(obj_template_t *obj)
Check if current object has GET2 callback registered.
Definition: obj.c:19806
boolean obj_match_datarule(obj_template_t *obj, void *rule)
Check if the data-rule back-ptr applies to this node.
Definition: obj.c:19747
const xmlChar * obj_get_mod_prefix(const obj_template_t *obj)
Get the module prefix for this object.
Definition: obj.c:13253
ncx_iqual_t obj_get_iqualval(obj_template_t *obj)
Get the instance qualifier for this object.
Definition: obj.c:13571
obj_iffeature_ptr_t * obj_first_iffeature_ptr(obj_template_t *obj)
Get first if-feature pointer.
Definition: obj.c:17720
boolean obj_in_submodule(obj_template_t *obj)
Check if the object is defined in a submodule.
Definition: obj.c:13382
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:15717
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:17478
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:7814
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:12993
boolean obj_get_min_elements(obj_template_t *obj, uint32 *minelems)
Get the min-elements clause for this object, if any.
Definition: obj.c:13685
boolean obj_is_rpc_root(const obj_template_t *obj)
Check if object is marked as an RPC root object.
Definition: obj.c:15505
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:9613
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:9467
grp_template_t * obj_get_uses_grp(obj_template_t *usesobj)
Get the grp template from the uses object pointer.
Definition: obj.c:21129
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:7233
boolean obj_any_notifs(const dlq_hdr_t *datadefQ)
Check if there are any notifications in the datadefQ.
Definition: obj.c:10728
boolean obj_rpc_has_output(obj_template_t *obj)
Check if the RPC object has any real output children.
Definition: obj.c:16413
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:16531
void obj_free_deviate(obj_deviate_t *deviate)
Clean and free an object deviate statement.
Definition: obj.c:10783
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:13284
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:14876
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:12001
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:10281
xmlns_id_t obj_get_nsid(const obj_template_t *obj)
Get the namespace ID for this object.
Definition: obj.c:13508
obj_key_t * obj_first_key(obj_template_t *obj)
Get the first key record.
Definition: obj.c:10420
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:12272
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:11251
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:13933
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:17382
obj_metadata_t * obj_new_metadata(void)
Malloc and initialize the fields in a an obj_metadata_t.
Definition: obj.c:16470
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:8251
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:9132
boolean obj_is_rpc(const obj_template_t *obj)
Check if the object is an RPC method.
Definition: obj.c:15207
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:18136
boolean obj_is_xpath_string(const obj_template_t *obj)
Check if object is an XPath string.
Definition: obj.c:15753
obj_unique_t * obj_find_unique(dlq_hdr_t *que, const xmlChar *xpath)
Find a specific unique-stmt.
Definition: obj.c:10170
void obj_force_disabled(obj_template_t *obj)
Force an object to be disabled.
Definition: obj.c:19553
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:7620
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:17637
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:19309
boolean obj_is_anyxml(const obj_template_t *obj)
Check if object is an anyxml.
Definition: obj.c:14415
boolean obj_is_terminal(const obj_template_t *obj)
Check if object is a proper leaf or leaflist or anyxml.
Definition: obj.c:14674
void obj_force_root(obj_template_t *obj)
Set the object as an anydata type of root.
Definition: obj.c:15488
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:11437
typ_template_t * obj_first_typedef(obj_template_t *obj)
Get the first local typedef for this object, if any.
Definition: obj.c:9231
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:9073
void obj_set_notif_enabled(obj_template_t *obj, boolean enabled)
Set the notification object enabled flag.
Definition: obj.c:18668
uint8 obj_get_sil_priority(obj_template_t *obj)
Get the SIL priority field.
Definition: obj.c:18847
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:18592
status_t obj_set_name(obj_template_t *obj, const xmlChar *objname)
Set the name field for this obj.
Definition: obj.c:11630
const xmlChar * obj_get_presence_string(const obj_template_t *obj)
Get the present-stmt value, if any.
Definition: obj.c:13966
void obj_clean_deviationQ(dlq_hdr_t *deviationQ)
Clean and free an Q of object deviation statements.
Definition: obj.c:10896
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:6362
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:10386
boolean obj_ok_for_cli(obj_template_t *obj)
Figure out if the obj is OK for current CLI implementation.
Definition: obj.c:16204
boolean obj_in_list(const obj_template_t *obj)
Check if object is nested within a list.
Definition: obj.c:14525
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:12779
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:8471
ncx_iqual_t obj_get_iqualval_ex(obj_template_t *obj, boolean required)
Get the instance qualifier for this object.
Definition: obj.c:13599
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:12209
boolean obj_is_obsolete(const obj_template_t *obj)
Check if the object has obsolete status.
Definition: obj.c:18744
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:14033
void obj_number_data_object(obj_template_t *obj)
Number the object tree; initial setup.
Definition: obj.c:19038
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:15619
status_t obj_add_unique_backptr(obj_template_t *leafobj, obj_template_t *listobj)
Add a unique backptr to the leaf.
Definition: obj.c:20895
void obj_clear_xpath_backptr(obj_template_t *obj, struct xpath_pcb_t_ *xpath)
Clear an xpath-expr backptr.
Definition: obj.c:18011
boolean obj_get_config_flag_deep(const obj_template_t *obj)
get config flag during augment expand
Definition: obj.c:14167
const xmlChar * obj_get_mod_version(const obj_template_t *obj)
Get the module version for this object.
Definition: obj.c:13453
boolean obj_has_xpath_stmts(obj_template_t *obj)
Check if any must or when stmts in node or all children.
Definition: obj.c:20809
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:12915
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:7406
boolean obj_is_system_ordered(const obj_template_t *obj)
Check if the object is system or user-ordered.
Definition: obj.c:15837
ncx_yang_version_t obj_get_langver(obj_template_t *obj)
Get the YANG version for this object.
Definition: obj.c:19339
boolean obj_is_cli_text_block(const obj_template_t *obj)
Check if object is marked as ywx:cli-text-block.
Definition: obj.c:17521
boolean obj_is_sm_rpc(const obj_template_t *obj)
Check if the object is a schema mounted RPC method.
Definition: obj.c:15224
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:19473
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:11368
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:18694
obj_template_t * obj_get_parent_choice(obj_template_t *obj)
Get the choice parent of the current object;.
Definition: obj.c:20421
ncx_backptr_t * obj_next_inherit_when_ptr(ncx_backptr_t *ptr)
Get the next xpath pointer struct.
Definition: obj.c:17783
boolean obj_is_data_node(const obj_template_t *obj)
Check if the object is a real node type.
Definition: obj.c:15042
boolean obj_is_mp_parent(obj_template_t *child)
Check if the parent of this object is a Mount Pount object.
Definition: obj.c:20538
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:7116
boolean obj_is_sm_notif(const obj_template_t *obj)
Check if the object is a schema-mounted notification.
Definition: obj.c:15366
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:14997
boolean obj_is_short_case(obj_template_t *obj)
Check if the object is a short case statement.
Definition: obj.c:16089
obj_template_t * obj_get_augment_obj(obj_template_t *obj)
Get the augobj template from the object pointer.
Definition: obj.c:21173
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:6407
boolean obj_is_mounted(obj_template_t *child)
Check if mounted object.
Definition: obj.c:20486
boolean obj_is_abstract_ex(const obj_template_t *obj)
DUPLICATE FUNCTION OF obj_in_abstract()
Definition: obj.c:19371
boolean obj_any_rpcs(const dlq_hdr_t *datadefQ)
Check if there are any RPC methods in the datadefQ.
Definition: obj.c:10695
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:6233
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:18306
ncx_status_t obj_get_status(const obj_template_t *obj)
Get the status field for this obj.
Definition: obj.c:11803
boolean obj_is_leaf_list(const obj_template_t *obj)
Check if object is a proper leaf-list.
Definition: obj.c:14493
obj_template_t * obj_get_augment_targobj(obj_template_t *obj)
Get the target object for an augments object.
Definition: obj.c:17410
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:6831
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:14100
obj_iffeature_ptr_t * obj_next_iffeature_ptr(obj_iffeature_ptr_t *iffptr)
Get the next if-feature pointer.
Definition: obj.c:17741
obj_metadata_t * obj_next_metadata(const obj_metadata_t *meta)
Get the next object metadata definition in the object.
Definition: obj.c:16629
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:19600
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:17866
ncx_leafref_class_t obj_get_leafref_class(obj_template_t *obj)
Get the leafref class for a leafref object.
Definition: obj.c:18961
obj_defval_tk_t * obj_first_defval_tk(const obj_refine_t *ref)
Get the first defval_tk entry.
Definition: obj.c:19114
void obj_set_sil_priority(obj_template_t *obj, uint8 prio)
Set the SIL priority field.
Definition: obj.c:18819
void obj_clear_datarule(obj_template_t *obj, const void *rule)
Clear the datarule back-ptr for this node.
Definition: obj.c:19711
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:12957
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:6567
obj_template_t * obj_new_template(obj_type_t objtype)
Malloc and initialize the fields in a an object template.
Definition: obj.c:5743
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:14454
boolean obj_in_notif(const obj_template_t *obj)
Check if the object is in a notification.
Definition: obj.c:15173
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:7779
boolean obj_find_xpath_backptr(obj_template_t *obj, struct xpath_pcb_t_ *xpath)
Find an xpath-expr backptr.
Definition: obj.c:17808
void obj_enter_xpath_mode(void)
Enter xpath mode and start ignoring obj_is_enabled.
Definition: obj.c:19281
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:5881
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:11089
boolean obj_is_mandatory(obj_template_t *obj)
Figure out if the obj is YANG mandatory or not.
Definition: obj.c:14694
boolean obj_has_children(obj_template_t *obj)
Check if there are any accessible nodes within the object.
Definition: obj.c:16262
boolean obj_is_schema_instance_string(const obj_template_t *obj)
Check if object is a schema-instance string.
Definition: obj.c:15782
ncx_sid_t obj_get_yang_sid(const obj_template_t *obj)
Get the YANG SID for this object.
Definition: obj.c:13533
obj_deviation_t * obj_new_deviation(void)
Malloc and initialize the fields in a an object deviation statement.
Definition: obj.c:10844
uint16 obj_get_key_num(obj_template_t *obj)
Get the key number for the object.
Definition: obj.c:18515
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:15654
void obj_free_iffeature_ptr(obj_iffeature_ptr_t *iffptr)
Free an obj_iffeature_ptr_t struct.
Definition: obj.c:17704
const xmlChar * obj_get_reference(const obj_template_t *obj)
Get the reference field for this obj.
Definition: obj.c:12091
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:20968
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:18986
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:10257
obj_template_t * obj_get_uses_obj(obj_template_t *obj)
Get the usesobj template from the object pointer.
Definition: obj.c:21154
void obj_set_key_leaf(obj_template_t *obj, uint16 keynum)
Set the key data for the object.
Definition: obj.c:18491
boolean obj_is_deleted(const obj_template_t *obj)
Check if object has been deleted by a deviate not-supported.
Definition: obj.c:15691
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:6484
uint8 obj_get_fraction_digits(const obj_template_t *obj)
Get the fraction-digits field from the object typdef.
Definition: obj.c:14339
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:11145
obj_defval_tk_t * obj_first_dev_defval_tk(const obj_deviate_t *dev)
Get the first defval_tk entry.
Definition: obj.c:19152
obj_unique_t * obj_new_unique(void)
Alloc and Init a obj_unique_t struct.
Definition: obj.c:10023
dlq_hdr_t * obj_get_leafrefQ(const obj_template_t *obj)
Get the leafrefQ for this obj.
Definition: obj.c:12384
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:19190
boolean obj_has_iffeature(obj_template_t *obj)
Check any if-feature statements exist for the specified object.
Definition: obj.c:16008
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:19571
const xmlChar * obj_get_units(obj_template_t *obj)
Get the units clause for this object, if any.
Definition: obj.c:13765
boolean obj_is_empty(const obj_template_t *obj)
Check if object was entered in empty fashion:
Definition: obj.c:15392
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:18915
boolean obj_in_rpc_reply(const obj_template_t *obj)
Check if the object is in an rpc-reply/output section.
Definition: obj.c:15136
boolean obj_is_action(const obj_template_t *obj)
Check if the object is a YANG 1.1 action.
Definition: obj.c:15287
boolean obj_is_uses(const obj_template_t *obj)
Check if object is a YANG uses-stmt.
Definition: obj.c:14640
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:7959
const xmlChar * obj_get_keystr(obj_template_t *obj)
Get the key string for this list object.
Definition: obj.c:17285
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:11772
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:12246
boolean obj_is_leafy(const obj_template_t *obj)
Check if object is a proper leaf or leaflist.
Definition: obj.c:14656
void obj_exit_xpath_mode(void)
Exit xpath mode and stop ignoring obj_is_enabled.
Definition: obj.c:19290
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:7739
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:13178
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:20217
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:18469
const ncx_iffeature_t * obj_get_next_iffeature(const ncx_iffeature_t *iffeature)
Get the next if-feature clause (if any)
Definition: obj.c:14397
boolean obj_is_mp_with_rootcb(const obj_template_t *obj)
Check if current object is Mount Point object.
Definition: obj.c:20574
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:18246
boolean obj_notif_enabled(const obj_template_t *obj)
Check if the notification object is enabled.
Definition: obj.c:18630
obj_metadata_t * obj_first_metadata(const obj_template_t *obj)
Get the first object metadata definition in the object.
Definition: obj.c:16604
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:7519
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:13898
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:14846
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:7704
dlq_hdr_t * obj_get_mustQ(const obj_template_t *obj)
Get the mustQ for this obj.
Definition: obj.c:12340
dlq_hdr_t * obj_get_datadefQ(obj_template_t *obj)
Get the datadefQ (or caseQ) if this object has one.
Definition: obj.c:12476
const xmlChar * obj_get_mod_name(const obj_template_t *obj)
Get the module name for this object.
Definition: obj.c:13304
boolean obj_notif_log_drops(const obj_template_t *obj)
Check if the event drops for the notification object is enabled.
Definition: obj.c:18649
void obj_set_ncx_flags(obj_template_t *obj)
Check the NCX appinfo extensions and set flags as needed.
Definition: obj.c:16735
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:19987
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:6074
obj_unique_t * obj_next_unique(obj_unique_t *un)
Get the next unique-stmt for a list.
Definition: obj.c:10233
boolean obj_is_secure(const obj_template_t *obj)
Check if object is tagged ncx:secure.
Definition: obj.c:15803
boolean obj_get_xpath_oper_ok(const obj_template_t *obj)
Get the object XPath oper OK flag.
Definition: obj.c:20267
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:8121
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:14859
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:19527
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:20316
uint32 obj_key_count(const obj_template_t *obj)
Get the number of keys for this object.
Definition: obj.c:10578
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:15453
ncx_btype_t obj_get_basetype(const obj_template_t *obj)
Get the NCX base type enum for the object type.
Definition: obj.c:13206
const xmlChar * obj_get_typestr(const obj_template_t *obj)
Get the name of the object type.
Definition: obj.c:12416
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:18570
boolean obj_is_choice(const obj_template_t *obj)
Check if object is a YANG choice.
Definition: obj.c:14594
status_t obj_cache_datarule(obj_template_t *obj, void *rule)
Set the data-rule back-ptr for this node.
Definition: obj.c:19676
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:13861
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:17612
struct xpath_pcb_t_ * obj_first_xpath_backptr(obj_template_t *obj)
Get the first xpath backptr.
Definition: obj.c:17842
dlq_hdr_t * obj_get_appinfoQ(obj_template_t *obj)
Get the appinfoQ for this obj.
Definition: obj.c:12316
obj_template_t * obj_get_parent(obj_template_t *obj)
Get the parent of the current object.
Definition: obj.c:13811
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:9297
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:17504
obj_defval_tk_t * obj_next_defval_tk(const obj_defval_tk_t *defval_tk)
Get the next defval_tk entry.
Definition: obj.c:19133
const xmlChar * obj_get_name(const obj_template_t *obj)
Get the name field for this obj.
Definition: obj.c:11572
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:16367
void obj_free_unique(obj_unique_t *un)
Free a obj_unique_t struct.
Definition: obj.c:10068
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:16313
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:6189
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:7484
const obj_key_t * obj_next_ckey(const obj_key_t *objkey)
Get the next key record: Const version.
Definition: obj.c:10554
boolean obj_is_np_container(const obj_template_t *obj)
Check if the object is an Non-Presence-container.
Definition: obj.c:15863
void obj_free_deviation(obj_deviation_t *deviation)
Clean and free an object deviation statement.
Definition: obj.c:10868
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:16655
boolean obj_is_augment(const obj_template_t *obj)
Check if the obj is an augment statement.
Definition: obj.c:14899
const obj_key_t * obj_first_ckey(const obj_template_t *obj)
Get the first key record: Const version.
Definition: obj.c:10476
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:10918
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:21007
boolean obj_is_leaf(const obj_template_t *obj)
Check if object is a proper leaf.
Definition: obj.c:14476
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:11967
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:18548
boolean obj_is_root(const obj_template_t *obj)
Check if object is marked as a root object.
Definition: obj.c:15470
boolean obj_is_singular(const obj_template_t *obj)
Check if the object can have only one instance or not.
Definition: obj.c:19864
obj_template_t * obj_get_top_aio_get2(obj_template_t *child)
Find the top AIO object.
Definition: obj.c:20171
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:18086
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:6105
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:21036
obj_deviate_t * obj_new_deviate(void)
Malloc and initialize the fields in a an object deviate statement.
Definition: obj.c:10758
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:8662
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:18445
boolean obj_is_very_secure(const obj_template_t *obj)
Check if object is tagged ncx:very-secure.
Definition: obj.c:15820
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:17166
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:13418
boolean obj_parent_same_module(const obj_template_t *obj)
Check if the object parent object is the same.
Definition: obj.c:18775
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:12828
boolean obj_has_mandatory_children(obj_template_t *obj)
Check if there are any mandatory children.
Definition: obj.c:20021
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:787
obj_augtype_t
enumeration for different YANG augment statement types
Definition: obj.h:791
unsigned long oid_t
data type used in SNMP
Definition: obj.h:1198
uint8 obj_testflags_t
object test flags
Definition: obj.h:1213
obj_deviate_arg_t
type of deviation for each deviate entry
Definition: obj.h:1374
obj_type_t
enumeration for different YANG data def statement types the enum order is significant!...
Definition: obj.h:680
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:1479
@ OBJ_AUGTYP_RPCOUT
rpc output
Definition: obj.h:794
@ OBJ_AUGTYP_NONE
not set
Definition: obj.h:792
@ OBJ_AUGTYP_DATA
within data
Definition: obj.h:796
@ OBJ_AUGTYP_RPCIN
rpc input
Definition: obj.h:793
@ OBJ_AUGTYP_CASE
case
Definition: obj.h:795
@ OBJ_DARG_NONE
not set
Definition: obj.h:1375
@ OBJ_DARG_NOT_SUPPORTED
deviate not-supported
Definition: obj.h:1379
@ OBJ_DARG_DELETE
deviate delete
Definition: obj.h:1377
@ OBJ_DARG_ADD
deviate add
Definition: obj.h:1376
@ OBJ_DARG_REPLACE
deviate replace
Definition: obj.h:1378
@ OBJ_TYP_CASE
This object represents a YANG case schema node.
Definition: obj.h:710
@ OBJ_TYP_ANYXML
This object represents a YANG 1.1 anydata data node.
Definition: obj.h:684
@ OBJ_TYP_CHOICE
This object represents a YANG choice schema node.
Definition: obj.h:705
@ OBJ_TYP_ACTION
This object represents a YANG 1.1 action schema node.
Definition: obj.h:776
@ OBJ_TYP_REFINE
This object represents a YANG refine statement.
Definition: obj.h:729
@ OBJ_TYP_USES
This object represents a YANG uses schema node.
Definition: obj.h:721
@ OBJ_TYP_NOTIF
This object represents a YANG notification statement.
Definition: obj.h:766
@ OBJ_TYP_LEAF_LIST
This object represents a YANG leaf-list data node.
Definition: obj.h:696
@ OBJ_TYP_LEAF
This object represents a YANG leaf data node.
Definition: obj.h:693
@ OBJ_TYP_ANYDATA
This object represents a YANG 1.1 anydata data node.
Definition: obj.h:769
@ OBJ_TYP_NONE
not set
Definition: obj.h:681
@ OBJ_TYP_RPCIO
This object represents a YANG input or output statement.
Definition: obj.h:757
@ OBJ_TYP_RPC
This object represents a YANG rpc statement.
Definition: obj.h:749
@ OBJ_TYP_CONTAINER
This object represents a YANG presence or non-presence container.
Definition: obj.h:690
@ OBJ_TYP_LIST
This object represents a YANG list data node.
Definition: obj.h:699
@ OBJ_TYP_AUGMENT
This object represents a YANG augment statement.
Definition: obj.h:740
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:1526
struct to remember error info tkc->cur_err will be checked before tkc->cur for error information
Definition: ncxtypes.h:873
YANG if-feature entry.
Definition: ncxtypes.h:949
representation of one module or submodule during and after parsing
Definition: ncxtypes.h:1134
Schema Mount Root Control Block used in the object template.
Definition: ncxtypes.h:1888
One YANG augment statement struct (top-level or in case-stmt.
Definition: obj.h:1117
dlq_hdr_t datadefQ
Q of obj_template_t.
Definition: obj.h:1133
ncx_status_t status
status-stmt
Definition: obj.h:1132
xmlChar * target
Xpath schema-node target to augment.
Definition: obj.h:1119
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:1125
obj_augtype_t augtype
internal augment type enum
Definition: obj.h:1131
uint16 depth
internal nest depth of augment
Definition: obj.h:1134
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:1122
struct obj_template_t_ * targobj
resolved backptr to augmented object
Definition: obj.h:1128
One YANG 'case' definition.
Definition: obj.h:992
xmlChar * name
case name
Definition: obj.h:993
ncx_status_t status
status-stmt
Definition: obj.h:1006
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:999
boolean nameclone
the nameclone flag is set even though the clone bit is also set; this can probably be removed
Definition: obj.h:1005
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:996
dlq_hdr_t * datadefQ
Q of obj_template_t.
Definition: obj.h:1001
One YANG 'choice' definition.
Definition: obj.h:976
dlq_hdr_t * caseQ
Q of obj_template_t.
Definition: obj.h:985
xmlChar * name
choice name
Definition: obj.h:977
ncx_status_t status
status-stmt
Definition: obj.h:987
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:984
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:981
xmlChar * defval
default case
Definition: obj.h:978
boolean caseQclone
flag caseQ is cloned
Definition: obj.h:986
One YANG 'container' definition.
Definition: obj.h:837
xmlChar * name
name of container
Definition: obj.h:839
ncx_status_t status
status-stmt
Definition: obj.h:852
xmlChar * ref
reference-stmt (not saved by server)
Definition: obj.h:845
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:853
xmlChar * presence
presence-stmt
Definition: obj.h:848
xmlChar * descr
description-stmt (not saved by server)
Definition: obj.h:842
struct obj_template_t_ * defaultparm
default parm for yangcli
Definition: obj.h:854
dlq_hdr_t * typedefQ
Q of typ_template_t.
Definition: obj.h:849
dlq_hdr_t * datadefQ
Q of obj_template_t.
Definition: obj.h:851
dlq_hdr_t * groupingQ
Q of grp_template_t.
Definition: obj.h:850
One YANG 1.1 default stored in a Q for refine and deviate.
Definition: obj.h:809
xmlChar * def
default value string
Definition: obj.h:811
dlq_hdr_t qhdr
queue header
Definition: obj.h:810
ncx_error_t def_tkerr
file and line info for compiler
Definition: obj.h:812
YANG deviate statement struct.
Definition: obj.h:1384
dlq_hdr_t defval_tkQ
Q of obj_defval_tk_t (leaf-list can have multiple default-stmt)
Definition: obj.h:1417
dlq_hdr_t uniqueQ
Q of obj_unique_t.
Definition: obj.h:1439
ncx_error_t tkerr
the error info for each sub-clause is saved because when the deviation-stmt is parsed,...
Definition: obj.h:1393
dlq_hdr_t appinfoQ
Q of ncx_appinfo_t.
Definition: obj.h:1440
ncx_error_t arg_tkerr
same comment as tkerr
Definition: obj.h:1402
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:1438
boolean config
deviating config-stmt
Definition: obj.h:1420
dlq_hdr_t qhdr
queue header
Definition: obj.h:1385
typ_def_t * typdef
typedef if deviating the type
Definition: obj.h:1405
ncx_error_t type_tkerr
same comment as tkerr
Definition: obj.h:1408
uint32 maxelems
deviating max-elements
Definition: obj.h:1436
ncx_error_t config_tkerr
same comment as tkerr
Definition: obj.h:1423
uint32 minelems
deviating min-elements
Definition: obj.h:1432
ncx_error_t minelems_tkerr
also minset
Definition: obj.h:1433
xmlChar * units
units if deviating the units
Definition: obj.h:1411
boolean empty
deviate-stmt is empty
Definition: obj.h:1396
ncx_error_t units_tkerr
same comment as tkerr
Definition: obj.h:1414
ncx_error_t maxelems_tkerr
also maxset
Definition: obj.h:1437
ncx_error_t mandatory_tkerr
same comment as tkerr
Definition: obj.h:1429
obj_deviate_arg_t arg
deviate argument enum
Definition: obj.h:1399
boolean mandatory
deviating mandatory-stmt
Definition: obj.h:1426
YANG deviation statement struct.
Definition: obj.h:1445
ncx_error_t tkerr
file and line info for compiler
Definition: obj.h:1458
dlq_hdr_t appinfoQ
Q of ncx_appinfo_t.
Definition: obj.h:1464
xmlChar * target
schema-node target to deviate
Definition: obj.h:1447
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:1455
xmlChar * devmodname
set if not the targmod
Definition: obj.h:1459
dlq_hdr_t qhdr
queue header
Definition: obj.h:1446
obj_template_t * targobj
target object when resolved
Definition: obj.h:1449
dlq_hdr_t deviateQ
Q of obj_deviate_t.
Definition: obj.h:1463
status_t res
parse status
Definition: obj.h:1462
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:1452
boolean empty
for display in yangdump
Definition: obj.h:1460
boolean annotation
set from annotation
Definition: obj.h:1461
xmlChar * targmodname
target module name
Definition: obj.h:1448
custom error message filter control block
Definition: obj.h:1167
dlq_hdr_t qhdr
queue header
Definition: obj.h:1168
boolean is_errortag
error-tag flag
Definition: obj.h:1170
xmlChar * matchstr
message string to match
Definition: obj.h:1169
custom error message parameter control block
Definition: obj.h:1175
dlq_hdr_t qhdr
queue header
Definition: obj.h:1176
uint32 len
state : length
Definition: obj.h:1180
xmlChar * path
path of replacement data
Definition: obj.h:1177
xmlChar * valstr
state: value string
Definition: obj.h:1183
custom error message control block
Definition: obj.h:1188
xmlChar * langstr
language string
Definition: obj.h:1191
dlq_hdr_t qhdr
queue header
Definition: obj.h:1189
dlq_hdr_t parmQ
Q of obj_errmsg_parm_t.
Definition: obj.h:1192
xmlChar * basestr
base string
Definition: obj.h:1190
dlq_hdr_t filterQ
Q of obj_errmsg_filter_t.
Definition: obj.h:1193
back-pointer to inherited if-feature statements
Definition: obj.h:1160
dlq_hdr_t qhdr
queue heaader
Definition: obj.h:1161
ncx_iffeature_t * iffeature
if-feature back-ptr
Definition: obj.h:1162
One YANG list key component.
Definition: obj.h:801
struct obj_template_t_ * keyobj
backptr to key object
Definition: obj.h:803
dlq_hdr_t qhdr
queue header
Definition: obj.h:802
boolean seen
used by yangdiff
Definition: obj.h:804
One YANG 'leaf' or 'anyxml' or 'anydata' definition.
Definition: obj.h:860
struct obj_template_t_ * leafrefobj
leafref obj backptr only if btyp == NCX_BT_LEAFREF
Definition: obj.h:898
xmlChar * name
name of leaf or anyxml/anydata
Definition: obj.h:862
ncx_status_t status
status-stmt
Definition: obj.h:880
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:874
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:885
typ_def_t * typdef
typedef for the data type (leaf only)
Definition: obj.h:877
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:871
xmlChar * units
units-stmt only in a leaf
Definition: obj.h:865
dlq_hdr_t leafrefQ
used for quick leafref validation on server
Definition: obj.h:888
xmlChar * defval
default-stmt only in a leaf
Definition: obj.h:868
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:895
uint16 keynum
internal key number only for keay leafs
Definition: obj.h:883
One YANG 'leaf-list' definition.
Definition: obj.h:904
ncx_sort_type_t sort_type
sort type applies to system
Definition: obj.h:935
struct obj_template_t_ * leafrefobj
leafref obj backptr only if btyp == NCX_BT_LEAFREF
Definition: obj.h:933
xmlChar * name
leaf-list name
Definition: obj.h:906
ncx_status_t status
status-stmt
Definition: obj.h:927
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:915
boolean minset
min-elements set
Definition: obj.h:923
boolean maxset
max-elements set
Definition: obj.h:925
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:928
typ_def_t * typdef
typedef for the data type
Definition: obj.h:918
uint32 maxelems
max-elements value
Definition: obj.h:926
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:912
uint32 minelems
min-elements value
Definition: obj.h:924
xmlChar * units
units-stmt
Definition: obj.h:909
dlq_hdr_t leafrefQ
Q of ncx_backptr_t to obj_template_t.
Definition: obj.h:929
dlq_hdr_t defvalQ
YANG 1.1, Q of malloced ncx_backptr_t.
Definition: obj.h:930
boolean ordersys
ordered-by system or user
Definition: obj.h:922
boolean defset
T if any defaults specified for this leaf-list.
Definition: obj.h:921
One YANG 'list' definition.
Definition: obj.h:940
dlq_hdr_t uniqueQ
Q of obj_unique_t.
Definition: obj.h:956
ncx_sort_type_t sort_type
sort type applies to system
Definition: obj.h:971
xmlChar * name
list name
Definition: obj.h:942
ncx_status_t status
status-stmt
Definition: obj.h:962
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:951
ncx_error_t keytkerr
saved error info for key-stmt errors
Definition: obj.h:966
boolean minset
min-elements set
Definition: obj.h:958
boolean maxset
max-elements set
Definition: obj.h:960
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:963
xmlChar * keystr
key-stmt (not required if config=false)
Definition: obj.h:945
uint32 maxelems
max-elements value
Definition: obj.h:961
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:948
uint32 minelems
min-elements value
Definition: obj.h:959
obj_index_t last_index
internal numbering data for val_child ordering
Definition: obj.h:969
dlq_hdr_t keyQ
Q of obj_key_t.
Definition: obj.h:955
boolean ordersys
ordered-by system or user
Definition: obj.h:957
dlq_hdr_t * typedefQ
Q of typ_template_t.
Definition: obj.h:952
dlq_hdr_t * datadefQ
Q of obj_template_t.
Definition: obj.h:954
dlq_hdr_t * groupingQ
Q of grp_template_t.
Definition: obj.h:953
One YANG metadata (XML attribute) node.
Definition: obj.h:1362
ncx_error_t tkerr
file and line info for compiler
Definition: obj.h:1368
xmlChar * name
metadata name
Definition: obj.h:1365
dlq_hdr_t qhdr
queue header
Definition: obj.h:1363
typ_def_t * typdef
typedef for metadata
Definition: obj.h:1366
struct obj_template_t_ * parent
obj containing metadata
Definition: obj.h:1364
xmlns_id_t nsid
in case parent == NULL
Definition: obj.h:1367
One YANG 'notification' clause definition.
Definition: obj.h:1139
boolean in_data
defined in data, YANG 1.1 only
Definition: obj.h:1155
boolean notif_enabled
enabled or disabled in server
Definition: obj.h:1153
dlq_hdr_t datadefQ
Q of obj_template_t.
Definition: obj.h:1151
xmlChar * name
notification name
Definition: obj.h:1141
ncx_status_t status
status-stmt
Definition: obj.h:1148
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:1147
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:1152
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:1144
boolean notif_log_drops
log drops for this event type
Definition: obj.h:1154
dlq_hdr_t * typedefQ
Q of typ_template_t.
Definition: obj.h:1149
dlq_hdr_t * groupingQ
Q of gtp_template_t.
Definition: obj.h:1150
defines the snmp oid value, stored as an array of integers for easier comparision when performing AVL...
Definition: obj.h:1206
oid_t * oidc
OID component.
Definition: obj.h:1208
uint8 cnt
amount of Sub-Ids (max 128)
Definition: obj.h:1207
One YANG refine statement struct.
Definition: obj.h:1028
dlq_hdr_t defval_tkQ
Q of obj_defval_tk_t.
Definition: obj.h:1058
xmlChar * target
relative-path of the object to refine
Definition: obj.h:1030
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:1047
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:1069
xmlChar * presence
refining the presence-stmt
Definition: obj.h:1053
uint32 maxelems
max-elements value
Definition: obj.h:1067
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:1036
ncx_error_t ref_tkerr
same comment as descr_tkerr applies here
Definition: obj.h:1050
ncx_error_t config_tkerr
config and confset are in the object flags
Definition: obj.h:1061
uint32 minelems
min-elements value
Definition: obj.h:1065
struct obj_template_t_ * targobj
resolved target object to refine
Definition: obj.h:1033
ncx_error_t minelems_tkerr
also minset
Definition: obj.h:1066
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:1044
ncx_error_t maxelems_tkerr
also maxset
Definition: obj.h:1068
ncx_error_t presence_tkerr
same comment as descr_tkerr applies here
Definition: obj.h:1056
ncx_error_t mandatory_tkerr
mandatory and mandset are in the object flags
Definition: obj.h:1064
One YANG rpc-stmt struct.
Definition: obj.h:1094
dlq_hdr_t datadefQ
Q of obj_template_t.
Definition: obj.h:1107
xmlChar * name
rpc method name
Definition: obj.h:1096
ncx_status_t status
status-stmt
Definition: obj.h:1104
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:1102
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:1099
boolean supported
mod loaded, not implemented
Definition: obj.h:1112
dlq_hdr_t * typedefQ
Q of typ_template_t.
Definition: obj.h:1105
dlq_hdr_t * groupingQ
Q of gtp_template_t.
Definition: obj.h:1106
xmlns_id_t nsid
internal fields for manager and agent
Definition: obj.h:1111
boolean is_action
YANG 1.1 only.
Definition: obj.h:1108
One YANG input-stmt or output-stmt struct.
Definition: obj.h:1074
dlq_hdr_t datadefQ
Q of obj_template_t.
Definition: obj.h:1078
xmlChar * name
input or output
Definition: obj.h:1075
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:1079
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:1084
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:1089
dlq_hdr_t * typedefQ
Q of typ_template_t.
Definition: obj.h:1076
dlq_hdr_t * groupingQ
Q of gtp_template_t.
Definition: obj.h:1077
One YANG data-def-stmt.
Definition: obj.h:1220
ncx_error_t tkerr
file and line info for compiler
Definition: obj.h:1235
ncx_sid_t yang_sid
Each object specific variant has a YANG SID assigned for CBOR encoding.
Definition: obj.h:1353
obj_oid_t * oid
SNMP OID for this object (set if needed)
Definition: obj.h:1239
ncx_transaction_id_t leafref_txid
current edit transaction ID for intermediate leafref processing
Definition: obj.h:1315
uint32 yang_hash
experimental: not used
Definition: obj.h:1224
obj_testflags_t desc_testflags
see AGT_TEST_FL_* definitions
Definition: obj.h:1234
dlq_hdr_t appinfoQ
Q of ncx_appinfo_t.
Definition: obj.h:1249
dlq_hdr_t iffeatureQ
Q of ncx_iffeature_t.
Definition: obj.h:1250
dlq_hdr_t * errmsgQ
custom error message used if this is the server running
Definition: obj.h:1297
dlq_hdr_t xpath_backptrQ
Q of ncx_back_ptr_t with node == xpath_pcb_t.
Definition: obj.h:1288
void * def_hook_cb
def_hook_cb is ncx_def_hook_cbfn_t callback function for Dynamic Default Hook callback.
Definition: obj.h:1336
uint8 silflags
see OBJ_FL_* definitions
Definition: obj.h:1231
dlq_hdr_t inherited_whenQ
Q of ncx_backptr_t with node == xpath_pcb_t.
Definition: obj.h:1255
struct obj_template_t_ * usesobj
backptr to uses-obj if grouping expand
Definition: obj.h:1244
uint8 sil_priority
picks SIL callback order
Definition: obj.h:1232
ncx_transaction_id_t edit_txid
current edit transaction ID for commit test pruning
Definition: obj.h:1306
ncx_transaction_id_t must_txid
current edit transaction ID for MUST test default nodes pruning
Definition: obj.h:1309
boolean set_snmp_flags
need SNMP flags
Definition: obj.h:1240
ncx_transaction_id_t when_txid
current edit transaction ID for WHEN test default nodes pruning
Definition: obj.h:1312
dlq_hdr_t metadataQ
Q of obj_metadata_t.
Definition: obj.h:1248
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:1303
dlq_hdr_t qhdr
queue header
Definition: obj.h:1221
grp_template_t * grp
non-NULL == in a grp.datadefQ
Definition: obj.h:1236
boolean xpath_oper_ok
object OK for referencing oper-data in XPath
Definition: obj.h:1241
dlq_hdr_t inherited_iffeatureQ
Q of obj_iffeature_ptr_t.
Definition: obj.h:1252
uint32 yang_sid_tree
SID tree assignment if yang_sid is used.
Definition: obj.h:1356
struct xpath_pcb_t_ * when
optional when clause
Definition: obj.h:1247
uint32 flags
see OBJ_FL_* definitions
Definition: obj.h:1226
ncx_sm_rootcb_t * rootcb
Schema Mount Control Block.
Definition: obj.h:1347
uint32 xflags
see OBJ_FL_* definitions
Definition: obj.h:1227
uint32 xflags2
see OBJ_FL_* definitions
Definition: obj.h:1228
obj_index_t index
object index for val_child ordering
Definition: obj.h:1237
struct obj_template_t_ * parent
backptr to parent
Definition: obj.h:1243
obj_type_t objtype
object type (def)
Definition: obj.h:1222
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:1294
uint32 uflags
see OBJ_FL_* definitions
Definition: obj.h:1230
obj_testflags_t testflags
see AGT_TEST_FL_* definitions
Definition: obj.h:1233
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:1344
void * get2cb
get2fn is getcb_fn2_t for local GET2
Definition: obj.h:1270
dlq_hdr_t * dataruleQ
Q obj NACM data-rule backptrs.
Definition: obj.h:1258
void * cbset
cbset is different based on the object type:
Definition: obj.h:1267
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:1279
xmlns_id_t nsid
namespace ID assigned to the object at run-time
Definition: obj.h:1282
struct obj_template_t_ * augobj
backptr to augment-obj if augment expand
Definition: obj.h:1245
One component in a YANG list unique target.
Definition: obj.h:817
boolean isduplicate
T: will be ignored by server.
Definition: obj.h:821
dlq_hdr_t qhdr
queue header
Definition: obj.h:818
xmlChar * xpath
saved unique str for this obj
Definition: obj.h:820
struct obj_template_t_ * unobj
unique object target
Definition: obj.h:819
One component in a YANG list unique target.
Definition: obj.h:826
ncx_error_t tkerr
file and line info for compiler
Definition: obj.h:832
dlq_hdr_t compQ
Q of obj_unique_comp_t.
Definition: obj.h:829
dlq_hdr_t qhdr
queue header
Definition: obj.h:827
xmlChar * xpath
complete saved unique str
Definition: obj.h:828
boolean isconfig
T:constraint is on config.
Definition: obj.h:831
boolean seen
needed by yangdiff
Definition: obj.h:830
One YANG uses statement struct.
Definition: obj.h:1011
boolean expand_done
expand done flag
Definition: obj.h:1023
xmlChar * name
name of grouping to use
Definition: obj.h:1013
ncx_status_t status
status-stmt
Definition: obj.h:1022
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:1019
grp_template_t * grp
const back-ptr to grouping
Definition: obj.h:1020
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:1016
xmlChar * prefix
prefix present in uses-stmt
Definition: obj.h:1012
dlq_hdr_t * datadefQ
Q of obj_template_t.
Definition: obj.h:1021
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:1318
XML Utilities.
XML namespace support.