yumapro  23.10T-7
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/********* uflags field in obj_template_t *************/
411
412/* This field represents the user flags and no system bits
413 * are defined for this field. It is used by yang_obj_cb
414 * callback functions to set user-specific flags
415 */
416
417/********* silflags field in obj_template_t *************/
418
419/* This bit is set in agt_rpc to indicate the RPC is
420 * currently being invoked; If another session attempts
421 * to invoke the RPC while busy, and the obj_is_exclusive_rpc
422 * the RPC request will be rejected by the server
423 */
424#define OBJ_FL_SIL_BUSY bit0
425
426#define OBJ_TYPE(OBJ) (OBJ)->objtype
427
428#define OBJ_INDEX(OBJ) (OBJ)->index
429
430/* mark the object as a top object since the yang_obj does
431 * not catch top-level uses from a grouping as a top object
432 */
433#define OBJ_SET_TOP(OBJ) (OBJ)->flags |= OBJ_FL_TOP
434
435#define OBJ_SET_SIL_BUSY(OBJ) (OBJ)->silflags |= OBJ_FL_SIL_BUSY
436
437#define OBJ_CLEAR_SIL_BUSY(OBJ) (OBJ)->silflags &= ~OBJ_FL_SIL_BUSY
438
439#define OBJ_IS_SIL_BUSY(OBJ) ((OBJ)->silflags & OBJ_FL_SIL_BUSY)
440
441#define OBJ_GET_CBSET(OBJ) (OBJ)->cbset
442
443
444/* Get2 support */
445#define OBJ_SET_REMOTE_GET2(OBJ) (OBJ)->xflags |= OBJ_FL_REMOTE_GET2
446
447#define OBJ_CLEAR_REMOTE_GET2(OBJ) (OBJ)->xflags &= ~OBJ_FL_REMOTE_GET2
448
449#define OBJ_HAS_REMOTE_GET2(OBJ) ((OBJ)->xflags & OBJ_FL_REMOTE_GET2)
450
451#define OBJ_SET_GET2CB(OBJ, CB) (OBJ)->get2cb = CB
452
453#define OBJ_GET_GET2CB(OBJ) (getcb_fn2_t)(OBJ)->get2cb
454
455#define OBJ_SET_EDIT2_MODE(OBJ) (OBJ)->xflags |= OBJ_FL_EDIT2_MODE
456
457#define OBJ_IS_EDIT2_MODE(OBJ) ((OBJ)->xflags & OBJ_FL_EDIT2_MODE)
458
459
460/* XPath tuning */
461#define OBJ_SET_SKIP_LEAFREF(OBJ) (OBJ)->xflags |= OBJ_FL_SKIP_LEAFREF
462
463#define OBJ_IS_SKIP_LEAFREF(OBJ) ((OBJ)->xflags & OBJ_FL_SKIP_LEAFREF)
464
465
466
467/* Object YANG Hash */
468#define OBJ_SET_YANG_HASH(OBJ) (OBJ)->xflags |= OBJ_FL_YANG_HASH
469
470#define OBJ_IS_YANG_HASH(OBJ) ((OBJ)->xflags & OBJ_FL_YANG_HASH)
471
472
473/* Object Rehash */
474#define OBJ_SET_YANG_REHASH(OBJ) (OBJ)->xflags |= OBJ_FL_YANG_REHASH
475
476#define OBJ_IS_YANG_REHASH(OBJ) ((OBJ)->xflags & OBJ_FL_YANG_REHASH)
477
478
479/* CBSET Malloced */
480#define OBJ_SET_CBSET_MALLOCED(OBJ) (OBJ)->xflags |= OBJ_FL_CBSET_MALLOCED
481
482#define OBJ_IS_CBSET_MALLOCED(OBJ) ((OBJ)->xflags & OBJ_FL_CBSET_MALLOCED)
483
484#define OBJ_CLEAR_CBSET_MALLOCED(OBJ) (OBJ)->xflags &= ~OBJ_FL_CBSET_MALLOCED
485
486/* Object is generic */
487#define OBJ_SET_GENERIC(OBJ) (OBJ)->xflags |= OBJ_FL_GENERIC
488
489#define OBJ_IS_GENERIC(OBJ) ((OBJ)->xflags & OBJ_FL_GENERIC)
490
491
492/* Object or children have a default value */
493/* NOT USED */
494#define OBJ_SET_DEF_DONE(OBJ) (OBJ)->xflags |= OBJ_FL_DEF_DONE
495
496/* NOT USED */
497#define OBJ_IS_DEF_DONE(OBJ) ((OBJ)->xflags & OBJ_FL_DEF_DONE)
498
499/* NOT USED */
500#define OBJ_SET_DEF(OBJ) (OBJ)->xflags |= OBJ_FL_DEF
501
502/* NOT USED */
503#define OBJ_IS_DEF(OBJ) ((OBJ)->xflags & OBJ_FL_DEF)
504
505/* Object is an RPC that is allowed in library mode */
506#define OBJ_SET_LIBMODE(OBJ) (OBJ)->xflags |= OBJ_FL_LIBMODE
507
508#define OBJ_IS_LIBMODE(OBJ) ((OBJ)->xflags & OBJ_FL_LIBMODE)
509
510#define OBJ_USER_FLAGS(OBJ) (OBJ)->uflags
511
512/* get the object pointer in an obj_key_t */
513#define OBJ_KEY_OBJ(K) (K)->keyobj
514
515/* get the current edit transaction id;
516 * -- changed on each transaction this object is tested
517 */
518#define OBJ_EDIT_TXID(OBJ) (OBJ)->edit_txid
519
520#define OBJ_EXTR_MUST_TXID(OBJ) (OBJ)->must_txid
521#define OBJ_EXTR_WHEN_TXID(OBJ) (OBJ)->when_txid
522#define OBJ_EXTR_LEAFREF_TXID(OBJ) (OBJ)->leafref_txid
523
524
525/* Object is flagged no-nvstore */
526#define OBJ_SET_NO_NVSTORE(OBJ) (OBJ)->xflags |= OBJ_FL_NO_NVSTORE
527
528#define OBJ_IS_NO_NVSTORE(OBJ) ((OBJ)->xflags & OBJ_FL_NO_NVSTORE)
529
530
531/* Object is flagged yangmap-source */
532#define OBJ_SET_YANGMAP_SOURCE(OBJ) \
533 (OBJ)->xflags |= OBJ_FL_YANGMAP_SOURCE
534
535#define OBJ_IS_YANGMAP_SOURCE(OBJ) \
536 ((OBJ)->xflags & OBJ_FL_YANGMAP_SOURCE)
537
538
539/* Object is flagged yangmap-target */
540#define OBJ_SET_YANGMAP_TARGET(OBJ) \
541 (OBJ)->xflags |= OBJ_FL_YANGMAP_TARGET
542
543#define OBJ_IS_YANGMAP_TARGET(OBJ) \
544 ((OBJ)->xflags & OBJ_FL_YANGMAP_TARGET)
545
546/* Object is flagged yangmap-childmap */
547#define OBJ_SET_YANGMAP_CHILD(OBJ) \
548 (OBJ)->xflags |= OBJ_FL_YANGMAP_CHILD
549
550#define OBJ_IS_YANGMAP_CHILD(OBJ) \
551 ((OBJ)->xflags & OBJ_FL_YANGMAP_CHILD)
552
553/* Object is flagged yangmap-keymap */
554#define OBJ_SET_YANGMAP_KEY(OBJ) \
555 (OBJ)->xflags |= OBJ_FL_YANGMAP_KEY
556
557#define OBJ_IS_YANGMAP_KEY(OBJ) \
558 ((OBJ)->xflags & OBJ_FL_YANGMAP_KEY)
559
560/* if OBJ_IS_YANGMAP_SOURCE : yangmap_cb == nodemap_t
561 * if OBJ_IS_YANGMAP_TARGET : yangmap_cb == nodemap_t
562 * if OBJ_IS_YANGMAP_CHILD : yangmap_cb == childmap_t
563 * if OBJ_IS_YANGMAP_KEY : yangmap_cb == keymap_t
564 */
565#define OBJ_YANGMAP_CB(OBJ) (OBJ)->yangmap_cb
566
567/* Object DUP_LOCAL test has been done */
568#define OBJ_SET_DUP_LOCAL_DONE(OBJ) \
569 (OBJ)->xflags |= OBJ_FL_DUP_LOCAL_DONE
570
571#define OBJ_IS_DUP_LOCAL_DONE(OBJ) \
572 ((OBJ)->xflags & OBJ_FL_DUP_LOCAL_DONE)
573
574
575#define OBJ_RPC_SUPPORTED(OBJ) (OBJ)->def.rpc->supported
576
577
578/* Trans Hook assignment bits */
579#define OBJ_SET_TRANS_HOOK_SET(OBJ) (OBJ)->xflags |= OBJ_FL_TRANS_HOOK_SET
580#define OBJ_IS_TRANS_HOOK_SET(OBJ) ((OBJ)->xflags & OBJ_FL_TRANS_HOOK_SET)
581#define OBJ_CLEAR_TRANS_HOOK_SET(OBJ) (OBJ)->xflags &= ~OBJ_FL_TRANS_HOOK_SET
582
583
584/* All in One assignment bits */
585#define OBJ_SET_AIO_GET2(OBJ) (OBJ)->xflags2 |= OBJ_FL_AIO_GET2
586#define OBJ_IS_AIO_GET2(OBJ) ((OBJ)->xflags2 & OBJ_FL_AIO_GET2)
587#define OBJ_CLEAR_AIO_GET2(OBJ) (OBJ)->xflags2 &= ~ OBJ_FL_AIO_GET2
588
589/* GET2 object but not All in One object, but a parent of AIO */
590#define OBJ_SET_AIO_PARENT(OBJ) (OBJ)->xflags2 |= OBJ_FL_AIO_PARENT
591#define OBJ_IS_AIO_PARENT(OBJ) ((OBJ)->xflags2 & OBJ_FL_AIO_PARENT)
592#define OBJ_CLEAR_AIO_PARENT(OBJ) (OBJ)->xflags2 &= ~ OBJ_FL_AIO_PARENT
593
594/* AIO with XML/JSON support flags*/
595#define OBJ_SET_AIO_GET2_XML(OBJ) (OBJ)->xflags2 |= OBJ_FL_AIO_GET2_XML
596#define OBJ_IS_AIO_GET2_XML(OBJ) ((OBJ)->xflags2 & OBJ_FL_AIO_GET2_XML)
597
598#define OBJ_SET_AIO_GET2_JSON(OBJ) (OBJ)->xflags2 |= OBJ_FL_AIO_GET2_JSON
599#define OBJ_IS_AIO_GET2_JSON(OBJ) ((OBJ)->xflags2 & OBJ_FL_AIO_GET2_JSON)
600
601/* Dynamic Default Hook assignment bits */
602#define OBJ_SET_DEF_HOOK(OBJ) (OBJ)->xflags2 |= OBJ_FL_DEF_HOOK
603#define OBJ_IS_DEF_HOOK(OBJ) ((OBJ)->xflags2 & OBJ_FL_DEF_HOOK)
604#define OBJ_CLEAR_DEF_HOOK(OBJ) (OBJ)->xflags2 &= ~OBJ_FL_DEF_HOOK
605#define OBJ_GET_DEF_HOOK_CB(OBJ) (ncx_def_hook_cbfn_t)(OBJ)->def_hook_cb
606
607/* openconfig-hashed-value bit */
608#define OBJ_SET_OC_HASHED_VALUE(OBJ) (OBJ)->xflags2 |= OBJ_FL_OC_HASHED_VALUE
609#define OBJ_IS_OC_HASHED_VALUE(OBJ) ((OBJ)->xflags2 & OBJ_FL_OC_HASHED_VALUE)
610
611/* Static Ban Nock GET assignment bits */
612#define OBJ_SET_BAN_NOLOCK_GET(OBJ) (OBJ)->xflags2 |= OBJ_FL_BAN_NOLOCK_GET
613#define OBJ_IS_BAN_NOLOCK_GET(OBJ) ((OBJ)->xflags2 & OBJ_FL_BAN_NOLOCK_GET)
614
615
616/* Mount Point bit */
617#define OBJ_SET_MOUNT_POINT(OBJ) (OBJ)->xflags2 |= OBJ_FL_MOUNT_POINT
618#define OBJ_IS_MOUNT_POINT(OBJ) ((OBJ)->xflags2 & OBJ_FL_MOUNT_POINT)
619
620/* Mount Point Support Utility functions */
621#define OBJ_SET_ROOTCB(OBJ, ROOTCB) (OBJ)->rootcb = ROOTCB
622#define OBJ_GET_ROOTCB(OBJ) (OBJ)->rootcb
623
624/* Mount Point Descendant bit */
625#define OBJ_SET_DESC_MOUNT_POINT(OBJ) (OBJ)->xflags2 |= OBJ_FL_DESC_MOUNT_POINT
626#define OBJ_IS_DESC_MOUNT_POINT(OBJ) ((OBJ)->xflags2 & OBJ_FL_DESC_MOUNT_POINT)
627
629#define OBJ_BOOL_EVAL_CB(OBJ) (OBJ)->bool_eval_cb
630
632#define OBJ_SET_EDIT3_MODE(OBJ) (OBJ)->xflags2 |= OBJ_FL_EDIT3_MODE
633#define OBJ_IS_EDIT3_MODE(OBJ) ((OBJ)->xflags2 & OBJ_FL_EDIT3_MODE)
634
636#define OBJ_SET_HIDDEN_FROM_CLI(OBJ) (OBJ)->xflags2 |= OBJ_FL_HIDDEN_FROM_CLI
637#define OBJ_IS_HIDDEN_FROM_CLI(OBJ) ((OBJ)->xflags2 & OBJ_FL_HIDDEN_FROM_CLI)
638
639
640/********************************************************************
641* *
642* T Y P E S *
643* *
644*********************************************************************/
645
646// Header Only
669typedef enum obj_type_t_ {
674
680
683
686
689
695
711
719
730
739
740
756
759
767
768
769#define OBJ_TYP_LAST OBJ_TYP_ACTION
770
776typedef uint16 obj_index_t;
777
778
780typedef enum obj_augtype_t_ {
787
788
790typedef struct obj_key_t_ {
791 dlq_hdr_t qhdr;
792 struct obj_template_t_ *keyobj;
793 boolean seen;
794} YPACK obj_key_t;
795
796
798typedef struct obj_defval_tk_t_ {
799 dlq_hdr_t qhdr;
800 xmlChar *def;
802} YPACK obj_defval_tk_t;
803
804
806typedef struct obj_unique_comp_t_ {
807 dlq_hdr_t qhdr;
808 struct obj_template_t_ *unobj;
809 xmlChar *xpath;
810 boolean isduplicate;
811} YPACK obj_unique_comp_t;
812
813
815typedef struct obj_unique_t_ {
816 dlq_hdr_t qhdr;
817 xmlChar *xpath;
818 dlq_hdr_t compQ;
819 boolean seen;
820 boolean isconfig;
822} YPACK obj_unique_t;
823
824
826typedef struct obj_container_t_ {
828 xmlChar *name;
829
831 xmlChar *descr;
832
834 xmlChar *ref;
835
837 xmlChar *presence;
838 dlq_hdr_t *typedefQ;
839 dlq_hdr_t *groupingQ;
840 dlq_hdr_t *datadefQ;
842 dlq_hdr_t mustQ;
843 struct obj_template_t_ *defaultparm;
844 obj_index_t last_index;
845} YPACK obj_container_t;
846
847
849typedef struct obj_leaf_t_ {
851 xmlChar *name;
852
854 xmlChar *units;
855
857 xmlChar *defval;
858
860 xmlChar *descr;
861
863 xmlChar *ref;
864
867
870
872 uint16 keynum;
873
874 dlq_hdr_t mustQ;
877 dlq_hdr_t leafrefQ;
884 dlq_hdr_t uniqrefQ;
887 struct obj_template_t_ *leafrefobj;
888
889} YPACK obj_leaf_t;
890
891
893typedef struct obj_leaflist_t_ {
895 xmlChar *name;
896
898 xmlChar *units;
899
901 xmlChar *descr;
902
904 xmlChar *ref;
905
908
910 boolean defset;
911 boolean ordersys;
912 boolean minset;
913 uint32 minelems;
914 boolean maxset;
915 uint32 maxelems;
917 dlq_hdr_t mustQ;
918 dlq_hdr_t leafrefQ;
919 dlq_hdr_t defvalQ;
922 struct obj_template_t_ *leafrefobj;
923
925} YPACK obj_leaflist_t;
926
927
929typedef struct obj_list_t_ {
931 xmlChar *name;
932
934 xmlChar *keystr;
935
937 xmlChar *descr;
938
940 xmlChar *ref;
941 dlq_hdr_t *typedefQ;
942 dlq_hdr_t *groupingQ;
943 dlq_hdr_t *datadefQ;
944 dlq_hdr_t keyQ;
945 dlq_hdr_t uniqueQ;
946 boolean ordersys;
947 boolean minset;
948 uint32 minelems;
949 boolean maxset;
950 uint32 maxelems;
952 dlq_hdr_t mustQ;
956
959
961} YPACK obj_list_t;
962
963
965typedef struct obj_choice_t_ {
966 xmlChar *name;
967 xmlChar *defval;
970 xmlChar *descr;
971
973 xmlChar *ref;
974 dlq_hdr_t *caseQ;
975 boolean caseQclone;
977} YPACK obj_choice_t;
978
979
981typedef struct obj_case_t_ {
982 xmlChar *name;
985 xmlChar *descr;
986
988 xmlChar *ref;
989
990 dlq_hdr_t *datadefQ;
994 boolean nameclone;
996} YPACK obj_case_t;
997
998
1000typedef struct obj_uses_t_ {
1001 xmlChar *prefix;
1002 xmlChar *name;
1005 xmlChar *descr;
1006
1008 xmlChar *ref;
1010 dlq_hdr_t *datadefQ;
1012 boolean expand_done;
1013} YPACK obj_uses_t;
1014
1015
1017typedef struct obj_refine_t_ {
1019 xmlChar *target;
1020
1022 struct obj_template_t_ *targobj;
1023
1025 xmlChar *descr;
1026
1034
1036 xmlChar *ref;
1037
1040
1042 xmlChar *presence;
1043
1046
1047 dlq_hdr_t defval_tkQ;
1051
1054 uint32 minelems;
1056 uint32 maxelems;
1058 dlq_hdr_t mustQ;
1059} YPACK obj_refine_t;
1060
1061
1063typedef struct obj_rpcio_t_ {
1064 xmlChar *name;
1065 dlq_hdr_t *typedefQ;
1066 dlq_hdr_t *groupingQ;
1067 dlq_hdr_t datadefQ;
1068 dlq_hdr_t mustQ;
1073 boolean is_input;
1074
1078 struct obj_template_t_ *defaultparm;
1079} YPACK obj_rpcio_t;
1080
1081
1083typedef struct obj_rpc_t_ {
1085 xmlChar *name;
1086
1088 xmlChar *descr;
1089
1091 xmlChar *ref;
1092
1094 dlq_hdr_t *typedefQ;
1095 dlq_hdr_t *groupingQ;
1096 dlq_hdr_t datadefQ;
1097 boolean is_action;
1101 boolean supported;
1102} YPACK obj_rpc_t;
1103
1104
1106typedef struct obj_augment_t_ {
1108 xmlChar *target;
1109
1111 xmlChar *descr;
1112
1114 xmlChar *ref;
1115
1117 struct obj_template_t_ *targobj;
1118
1122 dlq_hdr_t datadefQ;
1123 uint16 depth;
1124} YPACK obj_augment_t;
1125
1126
1128typedef struct obj_notif_t_ {
1130 xmlChar *name;
1131
1133 xmlChar *descr;
1134
1136 xmlChar *ref;
1138 dlq_hdr_t *typedefQ;
1139 dlq_hdr_t *groupingQ;
1140 dlq_hdr_t datadefQ;
1141 dlq_hdr_t mustQ;
1144 boolean in_data;
1145} YPACK obj_notif_t;
1146
1147
1149typedef struct obj_iffeature_ptr_t_ {
1150 dlq_hdr_t qhdr;
1152} YPACK obj_iffeature_ptr_t;
1153
1154
1156typedef struct obj_errmsg_filter_t_ {
1157 dlq_hdr_t qhdr;
1158 xmlChar *matchstr;
1159 boolean is_errortag;
1160} YPACK obj_errmsg_filter_t;
1161
1162
1164typedef struct obj_errmsg_parm_t_ {
1165 dlq_hdr_t qhdr;
1166 xmlChar *path;
1169 uint32 len;
1170
1172 xmlChar *valstr;
1173} YPACK obj_errmsg_parm_t;
1174
1175
1177typedef struct obj_errmsg_t_ {
1178 dlq_hdr_t qhdr;
1179 xmlChar *basestr;
1180 xmlChar *langstr;
1181 dlq_hdr_t parmQ;
1182 dlq_hdr_t filterQ;
1183} YPACK obj_errmsg_t;
1184
1185
1187typedef unsigned long oid_t;
1188
1195typedef struct obj_oid_t_ {
1196 uint8 cnt;
1198} YPACK obj_oid_t;
1199
1200
1202typedef uint8 obj_testflags_t;
1203
1204
1209typedef struct obj_template_t_ {
1210 dlq_hdr_t qhdr;
1213 uint32 yang_hash;
1215 uint32 flags;
1216 uint32 xflags;
1217 uint32 xflags2;
1219 uint32 uflags;
1220 uint8 silflags;
1232 struct obj_template_t_ *parent;
1233 struct obj_template_t_ *usesobj;
1234 struct obj_template_t_ *augobj;
1236 struct xpath_pcb_t_ *when;
1237 dlq_hdr_t metadataQ;
1238 dlq_hdr_t appinfoQ;
1239 dlq_hdr_t iffeatureQ;
1245
1247 dlq_hdr_t *dataruleQ;
1248
1256 void *cbset;
1257
1259 void *get2cb;
1260
1268 struct ncx_module_t_ *mod;
1269
1272
1274 struct xpath_pcb_t_ *xpath_backptr[OBJ_NUM_XPATH_BACKPTRS];
1275
1277 dlq_hdr_t xpath_backptrQ; // backptr to xpath_pcb_t
1278
1284
1286 dlq_hdr_t *errmsgQ; // Q of obj_errmsg_t
1287
1293
1296
1299
1302
1305
1307 union def_ {
1308 obj_container_t *container;
1309 obj_leaf_t *leaf;
1310 obj_leaflist_t *leaflist;
1311 obj_list_t *list;
1312 obj_choice_t *choic;
1313 obj_case_t *cas;
1314 obj_uses_t *uses;
1315 obj_refine_t *refine;
1316 obj_augment_t *augment;
1317 obj_rpc_t *rpc;
1318 obj_rpcio_t *rpcio;
1319 obj_notif_t *notif;
1320 } def;
1321
1326
1327
1333 void *bool_eval_cb; // xpath_bool_eval_fn_t
1334
1337
1343
1346
1347} YPACK obj_template_t;
1348
1349
1351typedef struct obj_metadata_t_ {
1352 dlq_hdr_t qhdr;
1353 struct obj_template_t_ *parent;
1354 xmlChar *name;
1358 boolean typdef_copy;
1359} YPACK obj_metadata_t;
1360
1361
1363typedef enum obj_deviate_arg_t_ {
1370
1371
1373typedef struct obj_deviate_t_ {
1374 dlq_hdr_t qhdr;
1383
1385 boolean empty;
1386
1389
1392
1395
1398
1400 xmlChar *units;
1401
1404
1406 dlq_hdr_t defval_tkQ;
1407
1409 boolean config;
1410
1413
1415 boolean mandatory;
1416
1419
1421 uint32 minelems;
1425 uint32 maxelems;
1427 dlq_hdr_t mustQ;
1428 dlq_hdr_t uniqueQ;
1429 dlq_hdr_t appinfoQ;
1430} YPACK obj_deviate_t;
1431
1432
1434typedef struct obj_deviation_t_ {
1435 dlq_hdr_t qhdr;
1436 xmlChar *target;
1437 xmlChar *targmodname;
1441 xmlChar *descr;
1442
1444 xmlChar *ref;
1445
1448 xmlChar *devmodname;
1449 boolean empty;
1450 boolean annotation;
1452 dlq_hdr_t deviateQ;
1453 dlq_hdr_t appinfoQ;
1454} YPACK obj_deviation_t;
1455
1456
1467typedef boolean
1469 void *cookie1,
1470 void *cookie2,
1471 boolean nonconfig_warn);
1472
1473
1474#define OBJ_SET_TESTFLAGS(OBJ, FL) (OBJ)->testflags = FL
1475
1476#define OBJ_GET_TESTFLAGS(OBJ) (OBJ)->testflags
1477
1478#define OBJ_SET_DESC_TESTFLAGS(OBJ, FL) (OBJ)->desc_testflags = FL
1479
1480#define OBJ_GET_DESC_TESTFLAGS(OBJ) (OBJ)->desc_testflags
1481
1482#define OBJ_UPDATE_DESC_TESTFLAGS(OBJ, FL) (OBJ)->desc_testflags |= FL
1483
1486/********************************************************************
1487* *
1488* F U N C T I O N S *
1489* *
1490*********************************************************************/
1491
1508extern obj_template_t *
1509 obj_new_template (obj_type_t objtype);
1510
1511
1521extern void
1523
1524
1537extern obj_template_t *
1538 obj_find_template (dlq_hdr_t *que,
1539 const xmlChar *modname,
1540 const xmlChar *objname);
1541
1542
1554extern obj_template_t *
1555 obj_find_schema_template ( dlq_hdr_t *que,
1556 const xmlChar *modname,
1557 const xmlChar *objname );
1558
1559
1571extern const obj_template_t *
1572 obj_find_template_con (dlq_hdr_t *que,
1573 const xmlChar *modname,
1574 const xmlChar *objname);
1575
1576
1588extern obj_template_t *
1589 obj_find_template_test (dlq_hdr_t *que,
1590 const xmlChar *modname,
1591 const xmlChar *objname);
1592
1593
1607extern obj_template_t *
1609 const xmlChar *modname,
1610 const xmlChar *objname);
1611
1612
1628extern obj_template_t *
1630 const xmlChar *modname,
1631 const xmlChar *objname);
1632
1633
1655extern obj_template_t *
1657 const xmlChar *modname,
1658 const xmlChar *objname,
1659 ncx_name_match_t match_names,
1660 boolean alt_names,
1661 boolean dataonly,
1662 status_t *retres);
1663
1664
1678extern obj_template_t *
1680 const xmlChar *modname,
1681 const xmlChar *objname);
1682
1683
1700extern obj_template_t *
1702 const xmlChar *modname,
1703 const xmlChar *objname);
1704
1705
1722extern obj_template_t *
1724 const xmlChar *modname,
1725 const xmlChar *objname);
1726
1727
1744extern obj_template_t *
1746 const xmlChar *modname,
1747 const xmlChar *objname);
1748
1749
1764extern obj_template_t *
1766 xmlns_id_t nsid,
1767 const xmlChar *objname);
1768
1769
1794extern obj_template_t *
1796 const xmlChar *modname,
1797 const xmlChar *objname,
1798 ncx_name_match_t match_names,
1799 boolean alt_names,
1800 boolean dataonly,
1801 status_t *retres);
1802
1803
1814extern obj_template_t *
1816 const xmlChar *modname,
1817 const xmlChar *objname,
1818 uint32 objnamelen);
1819
1820
1842extern obj_template_t *
1844 const xmlChar *modname,
1845 const xmlChar *objname,
1846 uint32 objnamelen,
1847 uint32 *matchcount);
1848
1849
1860extern obj_template_t *
1862
1863
1874extern obj_template_t *
1876
1877
1888extern obj_template_t *
1890
1891
1906extern obj_template_t *
1908
1909
1920extern obj_template_t *
1922
1923
1934extern obj_template_t *
1936
1937
1948extern obj_template_t *
1950
1951
1962extern obj_template_t *
1964
1965
1980extern obj_template_t *
1982
1983
1994extern obj_template_t *
1996
1997
2008extern obj_template_t *
2010
2011
2022extern obj_template_t *
2024
2025
2037extern obj_template_t *
2039
2040
2052extern obj_template_t *
2054
2055
2072extern obj_template_t *
2074 boolean stopnext);
2075
2076
2112extern boolean
2114 obj_walker_fn_t walkerfn,
2115 void *cookie1,
2116 void *cookie2,
2117 obj_template_t *startnode,
2118 const xmlChar *modname,
2119 const xmlChar *childname,
2120 boolean configonly,
2121 boolean textmode,
2122 boolean useroot);
2123
2124
2164extern boolean
2166 obj_walker_fn_t walkerfn,
2167 void *cookie1,
2168 void *cookie2,
2169 obj_template_t *startnode,
2170 const xmlChar *modname,
2171 const xmlChar *name,
2172 boolean configonly,
2173 boolean textmode,
2174 boolean useroot,
2175 boolean orself,
2176 boolean *fncalled);
2177
2178
2218extern boolean
2220 obj_walker_fn_t walkerfn,
2221 void *cookie1,
2222 void *cookie2,
2223 obj_template_t *startnode,
2224 const xmlChar *modname,
2225 const xmlChar *name,
2226 boolean configonly,
2227 boolean textmode,
2228 boolean useroot,
2229 boolean orself,
2230 boolean *fncalled);
2231
2232
2275extern boolean
2277 obj_walker_fn_t walkerfn,
2278 void *cookie1,
2279 void *cookie2,
2280 obj_template_t *startnode,
2281 const xmlChar *modname,
2282 const xmlChar *name,
2283 boolean configonly,
2284 boolean dblslash,
2285 boolean textmode,
2286 boolean useroot,
2287 ncx_xpath_axis_t axis,
2288 boolean *fncalled);
2289
2290
2299extern obj_case_t *
2301 const xmlChar *modname,
2302 const xmlChar *casname);
2303
2304
2305
2316extern obj_template_t *
2318 const xmlChar *name);
2319
2320
2326extern void
2327 obj_clean_datadefQ (dlq_hdr_t *que);
2328
2329
2337extern typ_template_t *
2339 const xmlChar *typname);
2340
2341
2348extern typ_template_t *
2350
2351
2359extern grp_template_t *
2361 const xmlChar *grpname);
2362
2369extern grp_template_t *
2371
2372
2388extern status_t
2389 obj_set_named_type (void *pcb, // yang_pcb_t
2390 tk_chain_t *tkc,
2391 ncx_module_t *mod,
2392 const xmlChar *typname,
2393 typ_def_t *typdef,
2394 obj_template_t *parent,
2395 grp_template_t *grp);
2396
2397
2420extern obj_template_t *
2422 obj_template_t *srcobj,
2423 dlq_hdr_t *mobjQ);
2424
2425
2450extern obj_template_t *
2452 obj_template_t *srcobj,
2453 dlq_hdr_t *mobjQ,
2454 boolean sm_clone);
2455
2456
2481extern obj_template_t *
2483 obj_template_t *srcobj,
2484 dlq_hdr_t *mobjQ);
2485
2486
2487/******************** obj_unique_t ********************/
2488
2489
2495extern obj_unique_t *
2496 obj_new_unique (void);
2497
2498
2504extern void
2506
2507
2513extern void
2515
2516
2522extern void
2524
2525
2531extern obj_unique_comp_t *
2532 obj_new_unique_comp (void);
2533
2534
2540extern void
2542
2543
2552extern obj_unique_t *
2553 obj_find_unique (dlq_hdr_t *que,
2554 const xmlChar *xpath);
2555
2556
2563extern obj_unique_t *
2565
2566
2573extern obj_unique_t *
2575
2576
2583extern obj_unique_comp_t *
2585
2586
2593extern obj_unique_comp_t *
2595
2596
2602extern obj_key_t *
2603 obj_new_key (void);
2604
2605
2611extern void
2612 obj_free_key (obj_key_t *key);
2613
2614
2622extern obj_key_t *
2623 obj_find_key (dlq_hdr_t *que,
2624 const xmlChar *keycompname);
2625
2626
2635extern obj_key_t *
2636 obj_find_key2 (dlq_hdr_t *que,
2637 obj_template_t *keyobj);
2638
2639
2646extern obj_key_t *
2648
2649
2656extern obj_key_t *
2658
2659
2666extern const obj_key_t *
2667 obj_first_ckey (const obj_template_t *obj);
2668
2669
2676extern obj_key_t *
2677 obj_next_key (obj_key_t *objkey);
2678
2679
2686extern obj_key_t *
2687 obj_prev_key (obj_key_t *objkey);
2688
2689
2696extern const obj_key_t *
2697 obj_next_ckey (const obj_key_t *objkey);
2698
2699
2706extern uint32
2707 obj_key_count (const obj_template_t *obj);
2708
2709
2717extern uint32
2719
2720
2734extern void
2736 void *cookie1,
2737 void *cookie2,
2738 obj_walker_fn_t walkerfn);
2739
2740
2747extern boolean
2748 obj_any_rpcs (const dlq_hdr_t *datadefQ);
2749
2750
2757extern boolean
2758 obj_any_notifs (const dlq_hdr_t *datadefQ);
2759
2760
2766extern obj_deviate_t *
2767 obj_new_deviate (void);
2768
2769
2775extern void
2777
2778
2785extern const xmlChar *
2787
2788
2794extern obj_deviation_t *
2795 obj_new_deviation (void);
2796
2797
2803extern void
2805
2806
2812extern void
2813 obj_clean_deviationQ (dlq_hdr_t *deviationQ);
2814
2815
2824extern status_t
2826 xmlChar **buff);
2827
2828
2838extern status_t
2839 obj_gen_object_id_prefix (const obj_template_t *obj, xmlChar **buff);
2840
2841
2842
2853extern status_t
2855 xmlChar **buff);
2856
2857
2868extern status_t
2870 const obj_template_t *obj,
2871 xmlChar **buff);
2872
2873
2886extern status_t
2888 xmlChar **buff);
2889
2890
2900 xmlChar **buff);
2901
2902
2913 const obj_template_t *stopobj,
2914 xmlChar **buff);
2915
2916
2929extern status_t
2931 const obj_template_t *obj,
2932 xmlChar **buff);
2933
2934
2950extern status_t
2952 xmlChar *buff,
2953 uint32 bufflen,
2954 uint32 *reallen);
2955
2956
2970extern status_t
2972 xmlChar *buff,
2973 uint32 bufflen,
2974 uint32 *reallen);
2975
2976
2977
2978
2988extern status_t
2990 xmlChar **buff);
2991
2992
3003extern status_t
3005 xmlChar **buff);
3006
3007
3014extern const xmlChar *
3015 obj_get_name (const obj_template_t *obj);
3016
3017
3025extern status_t
3027 const xmlChar *objname);
3028
3029
3042extern boolean
3043 obj_has_name (const obj_template_t *obj);
3044
3045
3054extern boolean
3056
3057
3064extern ncx_status_t
3065 obj_get_status (const obj_template_t *obj);
3066
3067
3074extern const xmlChar *
3076
3077
3087extern const xmlChar *
3089
3090
3098extern const xmlChar *
3100
3101
3109extern const xmlChar *
3111
3112
3119extern const void *
3121
3122
3129extern const xmlChar *
3130 obj_get_reference (const obj_template_t *obj);
3131
3132
3140extern const void *
3142
3143
3144#define obj_is_config obj_get_config_flag_deep
3145
3146
3156extern boolean
3158
3159
3173extern boolean
3175 boolean *setflag);
3176
3177
3185extern ncx_access_t
3187
3188
3195extern dlq_hdr_t *
3197
3198
3205extern dlq_hdr_t *
3206 obj_get_mustQ (const obj_template_t *obj);
3207
3208
3215extern dlq_hdr_t *
3216 obj_get_leafrefQ (const obj_template_t *obj);
3217
3218
3228extern const xmlChar *
3229 obj_get_typestr (const obj_template_t *obj);
3230
3231
3238extern dlq_hdr_t *
3240
3241
3248extern const dlq_hdr_t *
3249 obj_get_cdatadefQ (const obj_template_t *obj);
3250
3251
3262extern const xmlChar *
3263 obj_get_default (const obj_template_t *obj);
3264
3265
3274extern const xmlChar *
3276 ncx_backptr_t **thisdef);
3277
3278
3291extern const xmlChar *
3293 ncx_backptr_t *lastdef,
3294 ncx_backptr_t **thisdef);
3295
3296
3303extern obj_template_t *
3305
3306
3316extern boolean
3318
3319
3329extern boolean
3331
3332
3341extern uint32
3342 obj_get_level (const obj_template_t *obj);
3343
3344
3360extern uint32
3361 obj_get_level_mp (const obj_template_t *obj);
3362
3363
3373extern uint32
3375
3376
3386extern boolean
3387 obj_has_typedefs (const obj_template_t *obj);
3388
3389
3397extern typ_def_t *
3399
3400
3408extern typ_def_t *
3410
3411
3419extern const typ_def_t *
3420 obj_get_ctypdef (const obj_template_t *obj);
3421
3422
3429extern ncx_btype_t
3430 obj_get_basetype (const obj_template_t *obj);
3431
3432
3439extern const xmlChar *
3441
3442
3449extern const xmlChar *
3451
3452
3459extern const xmlChar *
3460 obj_get_mod_name (const obj_template_t *obj);
3461
3462
3469extern ncx_module_t *
3471
3472
3479extern boolean
3481
3482
3490extern ncx_module_t *
3492
3493
3500extern const xmlChar *
3502
3503
3510extern const xmlChar *
3511 obj_get_type_name (const obj_template_t *obj);
3512
3513
3520extern xmlns_id_t
3521 obj_get_nsid (const obj_template_t *obj);
3522
3523
3530extern ncx_sid_t
3531 obj_get_yang_sid (const obj_template_t *obj);
3532
3533
3540extern uint32
3542
3549extern ncx_iqual_t
3551
3552
3560extern ncx_iqual_t
3562 boolean required);
3563
3564
3573extern boolean
3575 uint32 *minelems);
3576
3577
3586extern boolean
3588 uint32 *maxelems);
3589
3590
3597extern const xmlChar *
3599
3600
3607extern obj_template_t *
3609
3610
3618extern const obj_template_t *
3619 obj_get_cparent (const obj_template_t *obj);
3620
3621
3629extern obj_template_t *
3631
3632
3642extern const obj_template_t *
3644
3645
3652extern const xmlChar *
3654
3655
3663extern void *
3665
3666
3693extern status_t
3695 obj_template_t *chobj,
3696 const xml_node_t *curnode,
3697 boolean xmlorder,
3698 dlq_hdr_t *force_modQ,
3699 obj_template_t **rettop,
3700 obj_template_t **retobj);
3701
3702
3709extern uint32
3711
3712
3720extern obj_template_t *
3722
3723
3738extern boolean
3740
3741
3756extern boolean
3758 boolean *ingrp);
3759
3760
3768extern uint8
3770
3771
3779extern const ncx_iffeature_t *
3781
3782
3790extern const ncx_iffeature_t *
3791 obj_get_next_iffeature (const ncx_iffeature_t *iffeature);
3792
3793
3800extern boolean
3801 obj_is_anyxml (const obj_template_t *obj);
3802
3803
3810extern boolean
3811 obj_is_anydata (const obj_template_t *obj);
3812
3813
3821extern boolean
3822 obj_is_any (const obj_template_t *obj);
3823
3824
3831extern boolean
3832 obj_is_leaf (const obj_template_t *obj);
3833
3834
3841extern boolean
3842 obj_is_leaf_list (const obj_template_t *obj);
3843
3844
3851extern boolean
3852 obj_is_list (const obj_template_t *obj);
3853
3854
3861extern boolean obj_in_list (const obj_template_t *obj);
3862
3863
3870extern boolean
3871 obj_is_container (const obj_template_t *obj);
3872
3873
3880extern boolean
3881 obj_is_choice (const obj_template_t *obj);
3882
3883
3890extern boolean
3891 obj_is_case (const obj_template_t *obj);
3892
3893
3900extern boolean
3901 obj_is_uses (const obj_template_t *obj);
3902
3903
3910extern boolean
3911 obj_is_leafy (const obj_template_t *obj);
3912
3913
3920extern boolean obj_is_terminal (const obj_template_t *obj);
3921
3922
3930extern boolean
3932
3933
3944extern boolean
3946 boolean config_only);
3947
3948
3957extern boolean
3959
3960
3969extern boolean
3970 obj_is_cloned (const obj_template_t *obj);
3971
3972
3981extern boolean
3982 obj_is_augclone (const obj_template_t *obj);
3983
3984
3992extern boolean
3993 obj_is_augment (const obj_template_t *obj);
3994
3995
4003extern boolean obj_in_augment (const obj_template_t *obj);
4004
4005
4013extern boolean
4014 obj_is_refine (const obj_template_t *obj);
4015
4016
4025extern boolean
4026 obj_is_data (const obj_template_t *obj);
4027
4028
4038extern boolean
4039 obj_is_data_db (const obj_template_t *obj);
4040
4041
4049extern boolean
4050 obj_is_data_node (const obj_template_t *obj);
4051
4052
4060extern boolean
4061 obj_in_rpc (const obj_template_t *obj);
4062
4063
4070extern boolean
4071 obj_in_rpc_reply (const obj_template_t *obj);
4072
4073
4080extern boolean
4081 obj_in_notif (const obj_template_t *obj);
4082
4083
4090extern boolean
4091 obj_is_rpc (const obj_template_t *obj);
4092
4093
4100extern boolean
4101 obj_is_sm_rpc (const obj_template_t *obj);
4102
4103
4110extern boolean obj_is_rpcio (const obj_template_t *obj);
4111
4112
4119extern boolean obj_is_rpcio_input (const obj_template_t *obj);
4120
4121
4128extern boolean
4129 obj_is_action (const obj_template_t *obj);
4130
4131
4138extern boolean obj_in_action (const obj_template_t *obj);
4139
4140
4147extern boolean
4148 obj_is_notif (const obj_template_t *obj);
4149
4150
4157extern boolean
4158 obj_is_sm_notif (const obj_template_t *obj);
4159
4160
4173extern boolean
4174 obj_is_empty (const obj_template_t *obj);
4175
4176
4184extern boolean
4185 obj_is_match (const obj_template_t *obj1,
4186 const obj_template_t *obj2);
4187
4188
4195extern boolean
4196 obj_is_hidden (const obj_template_t *obj);
4197
4198
4205extern boolean
4207
4208
4215extern boolean
4216 obj_is_root (const obj_template_t *obj);
4217
4218
4224extern void
4226
4227
4234extern boolean
4235 obj_is_rpc_root (const obj_template_t *obj);
4236
4237
4244extern boolean
4245 obj_is_password (const obj_template_t *obj);
4246
4247
4254extern boolean
4255 obj_is_xsdlist (const obj_template_t *obj);
4256
4257
4264extern boolean
4265 obj_is_cli (const obj_template_t *obj);
4266
4267
4276extern boolean obj_is_dirty (const obj_template_t *obj,
4277 ncx_cfg_t cfgid);
4278
4279
4286extern boolean
4287 obj_is_key (const obj_template_t *obj);
4288
4289
4296extern boolean
4297 obj_is_abstract (const obj_template_t *obj);
4298
4299
4307extern boolean obj_in_abstract (const obj_template_t *obj);
4308
4309
4316extern boolean
4317 obj_is_deleted (const obj_template_t *obj);
4318
4319
4328extern boolean
4329 obj_is_deleted_ex (const obj_template_t *obj);
4330
4331
4338extern boolean
4340
4341
4349extern boolean
4351
4352
4359extern boolean
4360 obj_is_secure (const obj_template_t *obj);
4361
4362
4370extern boolean
4372
4373
4381extern boolean
4383
4384
4392extern boolean
4394
4395
4403extern boolean
4405
4406
4415extern boolean
4417
4418
4425extern boolean
4427
4428
4438extern boolean
4440
4441
4449extern boolean
4451
4452
4461extern boolean
4462 obj_is_top (const obj_template_t *obj);
4463
4472extern boolean
4473 obj_in_top_choice (const obj_template_t *obj);
4474
4475
4482extern boolean
4483 obj_is_datapath (const obj_template_t *obj);
4484
4485
4497extern boolean
4499
4500
4508extern boolean
4510
4511
4520extern boolean
4522
4523
4531extern boolean obj_has_ro_descendants (obj_template_t *obj);
4532
4533
4541extern boolean obj_has_rw_children (obj_template_t *obj);
4542
4543
4553extern boolean obj_has_rw_children_ex (obj_template_t *obj,
4554 boolean term_only);
4555
4556
4563extern boolean
4565
4566
4573extern boolean
4575
4576
4585extern boolean
4587
4588
4594extern obj_metadata_t *
4595 obj_new_metadata (void);
4596
4597
4607extern void
4609
4610
4618extern status_t
4620 obj_template_t *obj);
4621
4622
4630extern obj_metadata_t *
4632 const xmlChar *name);
4633
4634
4641extern obj_metadata_t *
4643
4644
4651extern obj_metadata_t *
4652 obj_next_metadata (const obj_metadata_t *meta);
4653
4654
4665extern void
4667
4668
4675extern void
4677
4678
4686extern uint32
4688
4689
4699extern void
4701 dlq_hdr_t *datadefQ,
4702 uint32 startindent,
4703 uint32 indent);
4704
4705
4712extern const xmlChar *
4714
4715
4721extern void
4722 obj_delete_obsolete (dlq_hdr_t *objQ);
4723
4724
4731extern const xmlChar *
4732 obj_get_altname (const obj_template_t *obj);
4733
4734
4742extern obj_template_t *
4744
4745
4753extern obj_template_t *
4755
4756
4764extern const xmlChar *
4766
4767
4774extern boolean
4776
4777
4784extern boolean
4786
4787
4795extern boolean
4797
4798
4806extern boolean
4808
4809
4817extern boolean
4819
4820
4829extern boolean
4831
4832
4839extern void
4841
4842
4851extern boolean
4853
4854
4863extern boolean
4865
4866
4875extern boolean
4877
4878
4885extern obj_iffeature_ptr_t *
4887
4888
4894extern void obj_free_iffeature_ptr (obj_iffeature_ptr_t *iffptr);
4895
4896
4903extern obj_iffeature_ptr_t *
4905
4906
4913extern obj_iffeature_ptr_t *
4915
4916
4923extern ncx_backptr_t *
4925
4926
4933extern ncx_backptr_t *
4935
4936
4944extern boolean
4946 struct xpath_pcb_t_ *xpath);
4947
4948
4956extern struct xpath_pcb_t_ *
4958 struct xpath_pcb_t_ *xpath);
4959
4960
4967extern struct xpath_pcb_t_ *
4969
4970
4971
4982extern status_t
4984 struct xpath_pcb_t_ *xpath);
4985
4986
4996extern void
4998 struct xpath_pcb_t_ *xpath);
4999
5000
5009extern status_t
5011
5012
5021extern void
5023 ncx_cfg_t cfg_id,
5024 boolean flag);
5025
5026
5042extern boolean
5044
5045
5066extern boolean
5068
5069
5077extern boolean
5079
5080
5093extern void
5095 ncx_module_t *mod);
5096
5097
5104extern void
5106
5107
5116extern boolean
5118
5119
5126extern void
5128 uint16 keynum);
5129
5130
5137extern uint16
5139
5140
5148extern boolean
5150
5151
5158extern boolean
5160
5161
5168extern boolean
5170
5171
5178extern void
5180
5181
5188extern boolean obj_notif_enabled (const obj_template_t *obj);
5189
5190
5197extern boolean obj_notif_log_drops (const obj_template_t *obj);
5198
5199
5206extern void obj_set_notif_enabled (obj_template_t *obj,
5207 boolean enabled);
5208
5209
5216extern void obj_set_notif_log_drops (const obj_template_t *obj,
5217 boolean enabled);
5218
5219
5227extern boolean
5228 obj_unload_active (const obj_template_t *obj);
5229
5230
5237extern boolean
5238 obj_is_obsolete (const obj_template_t *obj);
5239
5240
5248extern boolean
5250
5251
5258extern void
5260 uint8 prio);
5261
5262
5269extern uint8
5271
5272
5280extern boolean
5282
5283
5292
5293
5301extern boolean
5303
5304
5311extern boolean
5312 obj_is_crypt_hash (const obj_template_t *obj);
5313
5314
5325extern void
5327
5328
5334extern obj_defval_tk_t *
5335 obj_new_defval_tk (void);
5336
5337
5343extern void
5345
5346
5353extern dlq_hdr_t *
5355
5356
5363extern obj_defval_tk_t *
5364 obj_first_defval_tk (const obj_refine_t *ref);
5365
5366
5373extern obj_defval_tk_t *
5374 obj_next_defval_tk (const obj_defval_tk_t *defval_tk);
5375
5376#define obj_next_dev_defval_tk(D) obj_next_defval_tk(D)
5377
5378
5385extern obj_defval_tk_t *
5387
5388
5395extern boolean
5397
5398
5405extern void
5407 const xmlChar *defval);
5408
5409
5417extern boolean
5419 const xmlChar *find_defval);
5420
5421
5428extern void
5430
5431
5436extern void
5437 obj_enter_xpath_mode (void);
5438
5439
5444extern void
5445 obj_exit_xpath_mode (void);
5446
5447
5455extern obj_key_t *
5457 const xmlChar *keyname);
5458
5459
5466extern ncx_yang_version_t
5468
5469
5479extern boolean
5481
5482
5488extern void
5490
5491
5500extern boolean
5502
5503
5509extern void
5511
5512
5513
5514#if defined(WITH_SNMP) && defined(WITH_RESTCONF)
5521extern const xmlChar *
5523
5524
5535extern obj_oid_t *
5537 boolean *malloced);
5538
5539#endif // WITH_SNMP and WITH_RESTCONF
5540
5541
5550 dlq_hdr_t *keystackQ);
5551
5552
5558extern void obj_dump_keystackQ (dlq_hdr_t *keystackQ);
5559
5560
5567extern void obj_clr_enable_chk (obj_template_t *obj);
5568
5569
5577extern status_t
5579 void *rule);
5580
5581
5588extern void
5590 const void *rule);
5591
5592
5600extern boolean
5602 void *rule);
5603
5604
5614extern status_t
5616 const xmlChar *basestr,
5617 obj_errmsg_t **ret_errmsg);
5618
5619
5627extern status_t
5629 const xmlChar *parmstr);
5630
5631
5640extern status_t
5642 const xmlChar *parmstr,
5643 boolean is_errortag);
5644
5645
5661extern boolean
5663
5664
5672extern boolean
5673 obj_is_singular (const obj_template_t *obj);
5674
5675
5685extern boolean
5687
5688
5695extern boolean
5696 obj_ok_for_nolock (const obj_template_t *obj);
5697
5698
5705extern boolean
5707
5708
5715extern boolean
5717
5718
5725extern boolean obj_get_xpath_oper_ok (const obj_template_t *obj);
5726
5727
5733extern void obj_set_xpath_oper_ok (obj_template_t *obj);
5734
5735
5743extern boolean
5745
5746
5757extern boolean
5759
5760
5767extern obj_template_t *
5769
5770
5777extern boolean
5779
5780
5787extern ncx_module_t *
5789
5790
5798extern obj_template_t *
5800
5801
5812extern boolean
5813 obj_is_ancestor (const obj_template_t *ancestor,
5814 const obj_template_t *obj);
5815
5816
5822extern void
5824
5825
5836extern boolean
5838
5839
5846extern obj_template_t *
5848
5849
5850
5861extern boolean
5863
5864
5865
5876extern boolean
5878
5879
5891extern boolean
5893
5894
5895
5903extern ncx_sm_rootcb_t *
5905
5906
5907
5914extern status_t
5916
5917
5918/*
5919* @brief Object Compare
5920*
5921* @param obj1 object to check
5922* @param obj2 object to check
5923*
5924* @return TRUE if objects match
5925*/
5926extern boolean
5927 obj_match_sm_objs (obj_template_t *obj1,
5928 obj_template_t *obj2);
5929
5938extern boolean
5940
5941
5954extern status_t
5956 const xmlChar *prefix,
5957 const xmlChar *name,
5958 const xmlChar **retval);
5959
5960
5968extern status_t
5970 obj_template_t *listobj);
5971
5972
5980extern obj_template_t *
5982
5983
5992extern obj_template_t *
5994 obj_template_t *curbackptr);
5995
5996
6006extern boolean
6008
6009
6010
6018extern void
6020 ncx_sort_type_t typ);
6021
6022
6030extern ncx_sort_type_t
6031 obj_get_sort_type (const obj_template_t *obj);
6032
6033
6037#ifdef __cplusplus
6038} /* end extern 'C' */
6039#endif
6040
6041#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:16533
uint32 obj_get_child_count(const obj_template_t *obj)
Get the number of child nodes the object has.
Definition: obj.c:14038
void obj_set_abstract(obj_template_t *obj)
Set the abstract flag for the yang-data node.
Definition: obj.c:19348
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:15316
boolean obj_is_external_augment(obj_template_t *obj)
Check if an object is an external augment.
Definition: obj.c:17411
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:16316
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:20389
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:16109
boolean obj_is_case(const obj_template_t *obj)
Check if object is a YANG case.
Definition: obj.c:14584
boolean obj_is_hidden(const obj_template_t *obj)
Check if object is marked as a hidden object.
Definition: obj.c:15403
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:15524
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:15378
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:16127
boolean obj_is_rpcio(const obj_template_t *obj)
Check if the object is an RPC IO node.
Definition: obj.c:15214
boolean obj_get_leaf_list_defset(const obj_template_t *obj)
Get the defset flag for a leaf-list.
Definition: obj.c:19129
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:14222
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:14882
ncx_module_t * obj_get_mod(obj_template_t *obj)
Get the module pointer for this object.
Definition: obj.c:13344
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:19216
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:17642
ncx_backptr_t * obj_first_inherit_when_ptr(obj_template_t *obj)
Get first xpath pointer struct.
Definition: obj.c:17720
const xmlChar * obj_get_oid_string(obj_template_t *obj)
Get object OID sting value.
Definition: obj.c:19373
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:17269
boolean obj_is_password(const obj_template_t *obj)
Check if object is marked as a password object.
Definition: obj.c:15489
boolean obj_get_top_config_flag(const obj_template_t *obj)
Get the config flag for the top-level object.
Definition: obj.c:19840
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:19035
boolean obj_find_defval(obj_template_t *obj, const xmlChar *find_defval)
Find a default.
Definition: obj.c:19183
obj_template_t * obj_first_unique_backptr(obj_template_t *leafobj)
Get the first unique backptr for a leaf object.
Definition: obj.c:20875
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:18679
void * obj_get_presence_string_field(const obj_template_t *obj)
Get the address ot the presence-stmt value, if any.
Definition: obj.c:13962
boolean obj_is_container(const obj_template_t *obj)
Check if object is a YANG container.
Definition: obj.c:14538
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:20537
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:20039
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:14476
const xmlChar * obj_get_augment_target(obj_template_t *obj)
Get the target path string for an augments object.
Definition: obj.c:17390
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:19992
boolean obj_is_anydata(const obj_template_t *obj)
Check if object is an anydata.
Definition: obj.c:14398
const xmlChar * obj_get_altname(const obj_template_t *obj)
Get the alt-name for this object, if any.
Definition: obj.c:17312
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:20571
boolean obj_is_p_container(const obj_template_t *obj)
Check if the object is an Presence-container.
Definition: obj.c:15853
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:21017
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:14738
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:16468
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:17883
dlq_hdr_t * obj_get_defvalQ(obj_template_t *obj)
Get the leaf-list default Q.
Definition: obj.c:19053
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:20342
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:15876
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:20790
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:14338
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:18326
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:17170
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:20277
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:14928
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:17496
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:15508
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:15271
void obj_dump_keystackQ(dlq_hdr_t *keystackQ)
Dump a keystackQ with backptrs to obj_template_t for key leafs.
Definition: obj.c:19599
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:16024
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:17514
boolean obj_ok_for_nolock(const obj_template_t *obj)
check an object OK for nolock
Definition: obj.c:19872
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:17540
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:18571
boolean obj_in_rpc(const obj_template_t *obj)
Check if the object is in an rpc/input section.
Definition: obj.c:15058
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:16251
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:15548
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:17620
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:20308
boolean obj_is_rpcio_input(const obj_template_t *obj)
Check if the object is an RPC IO node.
Definition: obj.c:15231
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:20229
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:16152
obj_defval_tk_t * obj_new_defval_tk(void)
Create a new object default tk record;.
Definition: obj.c:19018
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:16393
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:18357
boolean obj_is_crypt_hash(const obj_template_t *obj)
Check if the object is a leaf of type crypt-hash.
Definition: obj.c:18959
boolean obj_rpc_has_input(obj_template_t *obj)
Check if the RPC object has any real input children.
Definition: obj.c:16369
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:14911
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:15603
boolean obj_has_get2cb(obj_template_t *obj)
Check if current object has GET2 callback registered.
Definition: obj.c:19764
boolean obj_match_datarule(obj_template_t *obj, void *rule)
Check if the data-rule back-ptr applies to this node.
Definition: obj.c:19705
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:17678
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:15684
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:17436
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:15472
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
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:16380
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:16498
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:14843
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_leafref_targobj(obj_template_t *obj)
Get the target object for a leafref leaf or leaf-list.
Definition: obj.c:17340
obj_metadata_t * obj_new_metadata(void)
Malloc and initialize the fields in a an obj_metadata_t.
Definition: obj.c:16437
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:15174
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:18094
boolean obj_is_xpath_string(const obj_template_t *obj)
Check if object is an XPath string.
Definition: obj.c:15720
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:19511
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:17595
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:19267
boolean obj_is_anyxml(const obj_template_t *obj)
Check if object is an anyxml.
Definition: obj.c:14382
boolean obj_is_terminal(const obj_template_t *obj)
Check if object is a proper leaf or leaflist or anyxml.
Definition: obj.c:14641
void obj_force_root(obj_template_t *obj)
Set the object as an anydata type of root.
Definition: obj.c:15455
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:18626
uint8 obj_get_sil_priority(obj_template_t *obj)
Get the SIL priority field.
Definition: obj.c:18805
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:18550
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:13933
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:16171
boolean obj_in_list(const obj_template_t *obj)
Check if object is nested within a list.
Definition: obj.c:14492
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:18702
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:14000
void obj_number_data_object(obj_template_t *obj)
Number the object tree; initial setup.
Definition: obj.c:18996
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:15586
status_t obj_add_unique_backptr(obj_template_t *leafobj, obj_template_t *listobj)
Add a unique backptr to the leaf.
Definition: obj.c:20832
void obj_clear_xpath_backptr(obj_template_t *obj, struct xpath_pcb_t_ *xpath)
Clear an xpath-expr backptr.
Definition: obj.c:17969
boolean obj_get_config_flag_deep(const obj_template_t *obj)
get config flag during augment expand
Definition: obj.c:14134
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:20746
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:15804
ncx_yang_version_t obj_get_langver(obj_template_t *obj)
Get the YANG version for this object.
Definition: obj.c:19297
boolean obj_is_cli_text_block(const obj_template_t *obj)
Check if object is marked as ywx:cli-text-block.
Definition: obj.c:17479
boolean obj_is_sm_rpc(const obj_template_t *obj)
Check if the object is a schema mounted RPC method.
Definition: obj.c:15191
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:19431
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:18652
obj_template_t * obj_get_parent_choice(obj_template_t *obj)
Get the choice parent of the current object;.
Definition: obj.c:20358
ncx_backptr_t * obj_next_inherit_when_ptr(ncx_backptr_t *ptr)
Get the next xpath pointer struct.
Definition: obj.c:17741
boolean obj_is_data_node(const obj_template_t *obj)
Check if the object is a real node type.
Definition: obj.c:15009
boolean obj_is_mp_parent(obj_template_t *child)
Check if the parent of this object is a Mount Pount object.
Definition: obj.c:20475
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:15333
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:14964
boolean obj_is_short_case(obj_template_t *obj)
Check if the object is a short case statement.
Definition: obj.c:16056
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:20423
boolean obj_is_abstract_ex(const obj_template_t *obj)
DUPLICATE FUNCTION OF obj_in_abstract()
Definition: obj.c:19329
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:18264
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:14460
obj_template_t * obj_get_augment_targobj(obj_template_t *obj)
Get the target object for an augments object.
Definition: obj.c:17368
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:14067
obj_iffeature_ptr_t * obj_next_iffeature_ptr(obj_iffeature_ptr_t *iffptr)
Get the next if-feature pointer.
Definition: obj.c:17699
obj_metadata_t * obj_next_metadata(const obj_metadata_t *meta)
Get the next object metadata definition in the object.
Definition: obj.c:16596
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:19558
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:17824
ncx_leafref_class_t obj_get_leafref_class(obj_template_t *obj)
Get the leafref class for a leafref object.
Definition: obj.c:18919
obj_defval_tk_t * obj_first_defval_tk(const obj_refine_t *ref)
Get the first defval_tk entry.
Definition: obj.c:19072
void obj_set_sil_priority(obj_template_t *obj, uint8 prio)
Set the SIL priority field.
Definition: obj.c:18777
void obj_clear_datarule(obj_template_t *obj, const void *rule)
Clear the datarule back-ptr for this node.
Definition: obj.c:19669
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:14421
boolean obj_in_notif(const obj_template_t *obj)
Check if the object is in a notification.
Definition: obj.c:15140
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:17766
void obj_enter_xpath_mode(void)
Enter xpath mode and start ignoring obj_is_enabled.
Definition: obj.c:19239
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:14661
boolean obj_has_children(obj_template_t *obj)
Check if there are any accessible nodes within the object.
Definition: obj.c:16229
boolean obj_is_schema_instance_string(const obj_template_t *obj)
Check if object is a schema-instance string.
Definition: obj.c:15749
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:18473
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:15621
void obj_free_iffeature_ptr(obj_iffeature_ptr_t *iffptr)
Free an obj_iffeature_ptr_t struct.
Definition: obj.c:17662
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:20905
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:18944
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
void obj_set_key_leaf(obj_template_t *obj, uint16 keynum)
Set the key data for the object.
Definition: obj.c:18449
boolean obj_is_deleted(const obj_template_t *obj)
Check if object has been deleted by a deviate not-supported.
Definition: obj.c:15658
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:14306
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:19110
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:19148
boolean obj_has_iffeature(obj_template_t *obj)
Check any if-feature statements exist for the specified object.
Definition: obj.c:15975
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:19529
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:15359
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:18873
boolean obj_in_rpc_reply(const obj_template_t *obj)
Check if the object is in an rpc-reply/output section.
Definition: obj.c:15103
boolean obj_is_action(const obj_template_t *obj)
Check if the object is a YANG 1.1 action.
Definition: obj.c:15254
boolean obj_is_uses(const obj_template_t *obj)
Check if object is a YANG uses-stmt.
Definition: obj.c:14607
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:17243
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:14623
void obj_exit_xpath_mode(void)
Exit xpath mode and stop ignoring obj_is_enabled.
Definition: obj.c:19248
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:20154
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:18427
const ncx_iffeature_t * obj_get_next_iffeature(const ncx_iffeature_t *iffeature)
Get the next if-feature clause (if any)
Definition: obj.c:14364
boolean obj_is_mp_with_rootcb(const obj_template_t *obj)
Check if current object is Mount Point object.
Definition: obj.c:20511
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:18204
boolean obj_notif_enabled(const obj_template_t *obj)
Check if the notification object is enabled.
Definition: obj.c:18588
obj_metadata_t * obj_first_metadata(const obj_template_t *obj)
Get the first object metadata definition in the object.
Definition: obj.c:16571
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:14813
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:18607
void obj_set_ncx_flags(obj_template_t *obj)
Check the NCX appinfo extensions and set flags as needed.
Definition: obj.c:16702
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:19924
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:15770
boolean obj_get_xpath_oper_ok(const obj_template_t *obj)
Get the object XPath oper OK flag.
Definition: obj.c:20204
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:14826
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:19485
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:20253
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:15420
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:18528
boolean obj_is_choice(const obj_template_t *obj)
Check if object is a YANG choice.
Definition: obj.c:14561
status_t obj_cache_datarule(obj_template_t *obj, void *rule)
Set the data-rule back-ptr for this node.
Definition: obj.c:19634
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:17570
struct xpath_pcb_t_ * obj_first_xpath_backptr(obj_template_t *obj)
Get the first xpath backptr.
Definition: obj.c:17800
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:17462
obj_defval_tk_t * obj_next_defval_tk(const obj_defval_tk_t *defval_tk)
Get the next defval_tk entry.
Definition: obj.c:19091
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:16334
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:16280
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:15830
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:16622
boolean obj_is_augment(const obj_template_t *obj)
Check if the obj is an augment statement.
Definition: obj.c:14866
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:20944
boolean obj_is_leaf(const obj_template_t *obj)
Check if object is a proper leaf.
Definition: obj.c:14443
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:18506
boolean obj_is_root(const obj_template_t *obj)
Check if object is marked as a root object.
Definition: obj.c:15437
boolean obj_is_singular(const obj_template_t *obj)
Check if the object can have only one instance or not.
Definition: obj.c:19801
obj_template_t * obj_get_top_aio_get2(obj_template_t *child)
Find the top AIO object.
Definition: obj.c:20108
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:18044
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:20973
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:18403
boolean obj_is_very_secure(const obj_template_t *obj)
Check if object is tagged ncx:very-secure.
Definition: obj.c:15787
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:17124
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:18733
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:19958
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:776
obj_augtype_t
enumeration for different YANG augment statement types
Definition: obj.h:780
unsigned long oid_t
data type used in SNMP
Definition: obj.h:1187
uint8 obj_testflags_t
object test flags
Definition: obj.h:1202
obj_deviate_arg_t
type of deviation for each deviate entry
Definition: obj.h:1363
obj_type_t
enumeration for different YANG data def statement types the enum order is significant!...
Definition: obj.h:669
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:1468
@ OBJ_AUGTYP_RPCOUT
rpc output
Definition: obj.h:783
@ OBJ_AUGTYP_NONE
not set
Definition: obj.h:781
@ OBJ_AUGTYP_DATA
within data
Definition: obj.h:785
@ OBJ_AUGTYP_RPCIN
rpc input
Definition: obj.h:782
@ OBJ_AUGTYP_CASE
case
Definition: obj.h:784
@ OBJ_DARG_NONE
not set
Definition: obj.h:1364
@ OBJ_DARG_NOT_SUPPORTED
deviate not-supported
Definition: obj.h:1368
@ OBJ_DARG_DELETE
deviate delete
Definition: obj.h:1366
@ OBJ_DARG_ADD
deviate add
Definition: obj.h:1365
@ OBJ_DARG_REPLACE
deviate replace
Definition: obj.h:1367
@ OBJ_TYP_CASE
This object represents a YANG case schema node.
Definition: obj.h:699
@ OBJ_TYP_ANYXML
This object represents a YANG 1.1 anydata data node.
Definition: obj.h:673
@ OBJ_TYP_CHOICE
This object represents a YANG choice schema node.
Definition: obj.h:694
@ OBJ_TYP_ACTION
This object represents a YANG 1.1 action schema node.
Definition: obj.h:765
@ OBJ_TYP_REFINE
This object represents a YANG refine statement.
Definition: obj.h:718
@ OBJ_TYP_USES
This object represents a YANG uses schema node.
Definition: obj.h:710
@ OBJ_TYP_NOTIF
This object represents a YANG notification statement.
Definition: obj.h:755
@ OBJ_TYP_LEAF_LIST
This object represents a YANG leaf-list data node.
Definition: obj.h:685
@ OBJ_TYP_LEAF
This object represents a YANG leaf data node.
Definition: obj.h:682
@ OBJ_TYP_ANYDATA
This object represents a YANG 1.1 anydata data node.
Definition: obj.h:758
@ OBJ_TYP_NONE
not set
Definition: obj.h:670
@ OBJ_TYP_RPCIO
This object represents a YANG input or output statement.
Definition: obj.h:746
@ OBJ_TYP_RPC
This object represents a YANG rpc statement.
Definition: obj.h:738
@ OBJ_TYP_CONTAINER
This object represents a YANG presence or non-presence container.
Definition: obj.h:679
@ OBJ_TYP_LIST
This object represents a YANG list data node.
Definition: obj.h:688
@ OBJ_TYP_AUGMENT
This object represents a YANG augment statement.
Definition: obj.h:729
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:1106
dlq_hdr_t datadefQ
Q of obj_template_t.
Definition: obj.h:1122
ncx_status_t status
status-stmt
Definition: obj.h:1121
xmlChar * target
Xpath schema-node target to augment.
Definition: obj.h:1108
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:1114
obj_augtype_t augtype
internal augment type enum
Definition: obj.h:1120
uint16 depth
internal nest depth of augment
Definition: obj.h:1123
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:1111
struct obj_template_t_ * targobj
resolved backptr to augmented object
Definition: obj.h:1117
One YANG 'case' definition.
Definition: obj.h:981
xmlChar * name
case name
Definition: obj.h:982
ncx_status_t status
status-stmt
Definition: obj.h:995
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:988
boolean nameclone
the nameclone flag is set even though the clone bit is also set; this can probably be removed
Definition: obj.h:994
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:985
dlq_hdr_t * datadefQ
Q of obj_template_t.
Definition: obj.h:990
One YANG 'choice' definition.
Definition: obj.h:965
dlq_hdr_t * caseQ
Q of obj_template_t.
Definition: obj.h:974
xmlChar * name
choice name
Definition: obj.h:966
ncx_status_t status
status-stmt
Definition: obj.h:976
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:973
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:970
xmlChar * defval
default case
Definition: obj.h:967
boolean caseQclone
flag caseQ is cloned
Definition: obj.h:975
One YANG 'container' definition.
Definition: obj.h:826
xmlChar * name
name of container
Definition: obj.h:828
ncx_status_t status
status-stmt
Definition: obj.h:841
xmlChar * ref
reference-stmt (not saved by server)
Definition: obj.h:834
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:842
xmlChar * presence
presence-stmt
Definition: obj.h:837
xmlChar * descr
description-stmt (not saved by server)
Definition: obj.h:831
struct obj_template_t_ * defaultparm
default parm for yangcli
Definition: obj.h:843
dlq_hdr_t * typedefQ
Q of typ_template_t.
Definition: obj.h:838
dlq_hdr_t * datadefQ
Q of obj_template_t.
Definition: obj.h:840
dlq_hdr_t * groupingQ
Q of grp_template_t.
Definition: obj.h:839
One YANG 1.1 default stored in a Q for refine and deviate.
Definition: obj.h:798
xmlChar * def
default value string
Definition: obj.h:800
dlq_hdr_t qhdr
queue header
Definition: obj.h:799
ncx_error_t def_tkerr
file and line info for compiler
Definition: obj.h:801
YANG deviate statement struct.
Definition: obj.h:1373
dlq_hdr_t defval_tkQ
Q of obj_defval_tk_t (leaf-list can have multiple default-stmt)
Definition: obj.h:1406
dlq_hdr_t uniqueQ
Q of obj_unique_t.
Definition: obj.h:1428
ncx_error_t tkerr
the error info for each sub-clause is saved because when the deviation-stmt is parsed,...
Definition: obj.h:1382
dlq_hdr_t appinfoQ
Q of ncx_appinfo_t.
Definition: obj.h:1429
ncx_error_t arg_tkerr
same comment as tkerr
Definition: obj.h:1391
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:1427
boolean config
deviating config-stmt
Definition: obj.h:1409
dlq_hdr_t qhdr
queue header
Definition: obj.h:1374
typ_def_t * typdef
typedef if deviating the type
Definition: obj.h:1394
ncx_error_t type_tkerr
same comment as tkerr
Definition: obj.h:1397
uint32 maxelems
deviating max-elements
Definition: obj.h:1425
ncx_error_t config_tkerr
same comment as tkerr
Definition: obj.h:1412
uint32 minelems
deviating min-elements
Definition: obj.h:1421
ncx_error_t minelems_tkerr
also minset
Definition: obj.h:1422
xmlChar * units
units if deviating the units
Definition: obj.h:1400
boolean empty
deviate-stmt is empty
Definition: obj.h:1385
ncx_error_t units_tkerr
same comment as tkerr
Definition: obj.h:1403
ncx_error_t maxelems_tkerr
also maxset
Definition: obj.h:1426
ncx_error_t mandatory_tkerr
same comment as tkerr
Definition: obj.h:1418
obj_deviate_arg_t arg
deviate argument enum
Definition: obj.h:1388
boolean mandatory
deviating mandatory-stmt
Definition: obj.h:1415
YANG deviation statement struct.
Definition: obj.h:1434
ncx_error_t tkerr
file and line info for compiler
Definition: obj.h:1447
dlq_hdr_t appinfoQ
Q of ncx_appinfo_t.
Definition: obj.h:1453
xmlChar * target
schema-node target to deviate
Definition: obj.h:1436
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:1444
xmlChar * devmodname
set if not the targmod
Definition: obj.h:1448
dlq_hdr_t qhdr
queue header
Definition: obj.h:1435
obj_template_t * targobj
target object when resolved
Definition: obj.h:1438
dlq_hdr_t deviateQ
Q of obj_deviate_t.
Definition: obj.h:1452
status_t res
parse status
Definition: obj.h:1451
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:1441
boolean empty
for display in yangdump
Definition: obj.h:1449
boolean annotation
set from annotation
Definition: obj.h:1450
xmlChar * targmodname
target module name
Definition: obj.h:1437
custom error message filter control block
Definition: obj.h:1156
dlq_hdr_t qhdr
queue header
Definition: obj.h:1157
boolean is_errortag
error-tag flag
Definition: obj.h:1159
xmlChar * matchstr
message string to match
Definition: obj.h:1158
custom error message parameter control block
Definition: obj.h:1164
dlq_hdr_t qhdr
queue header
Definition: obj.h:1165
uint32 len
state : length
Definition: obj.h:1169
xmlChar * path
path of replacement data
Definition: obj.h:1166
xmlChar * valstr
state: value string
Definition: obj.h:1172
custom error message control block
Definition: obj.h:1177
xmlChar * langstr
language string
Definition: obj.h:1180
dlq_hdr_t qhdr
queue header
Definition: obj.h:1178
dlq_hdr_t parmQ
Q of obj_errmsg_parm_t.
Definition: obj.h:1181
xmlChar * basestr
base string
Definition: obj.h:1179
dlq_hdr_t filterQ
Q of obj_errmsg_filter_t.
Definition: obj.h:1182
back-pointer to inherited if-feature statements
Definition: obj.h:1149
dlq_hdr_t qhdr
queue heaader
Definition: obj.h:1150
ncx_iffeature_t * iffeature
if-feature back-ptr
Definition: obj.h:1151
One YANG list key component.
Definition: obj.h:790
struct obj_template_t_ * keyobj
backptr to key object
Definition: obj.h:792
dlq_hdr_t qhdr
queue header
Definition: obj.h:791
boolean seen
used by yangdiff
Definition: obj.h:793
One YANG 'leaf' or 'anyxml' or 'anydata' definition.
Definition: obj.h:849
struct obj_template_t_ * leafrefobj
leafref obj backptr only if btyp == NCX_BT_LEAFREF
Definition: obj.h:887
xmlChar * name
name of leaf or anyxml/anydata
Definition: obj.h:851
ncx_status_t status
status-stmt
Definition: obj.h:869
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:863
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:874
typ_def_t * typdef
typedef for the data type (leaf only)
Definition: obj.h:866
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:860
xmlChar * units
units-stmt only in a leaf
Definition: obj.h:854
dlq_hdr_t leafrefQ
used for quick leafref validation on server
Definition: obj.h:877
xmlChar * defval
default-stmt only in a leaf
Definition: obj.h:857
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:884
uint16 keynum
internal key number only for keay leafs
Definition: obj.h:872
One YANG 'leaf-list' definition.
Definition: obj.h:893
ncx_sort_type_t sort_type
sort type applies to system
Definition: obj.h:924
struct obj_template_t_ * leafrefobj
leafref obj backptr only if btyp == NCX_BT_LEAFREF
Definition: obj.h:922
xmlChar * name
leaf-list name
Definition: obj.h:895
ncx_status_t status
status-stmt
Definition: obj.h:916
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:904
boolean minset
min-elements set
Definition: obj.h:912
boolean maxset
max-elements set
Definition: obj.h:914
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:917
typ_def_t * typdef
typedef for the data type
Definition: obj.h:907
uint32 maxelems
max-elements value
Definition: obj.h:915
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:901
uint32 minelems
min-elements value
Definition: obj.h:913
xmlChar * units
units-stmt
Definition: obj.h:898
dlq_hdr_t leafrefQ
Q of ncx_backptr_t to obj_template_t.
Definition: obj.h:918
dlq_hdr_t defvalQ
YANG 1.1, Q of malloced ncx_backptr_t.
Definition: obj.h:919
boolean ordersys
ordered-by system or user
Definition: obj.h:911
boolean defset
T if any defaults specified for this leaf-list.
Definition: obj.h:910
One YANG 'list' definition.
Definition: obj.h:929
dlq_hdr_t uniqueQ
Q of obj_unique_t.
Definition: obj.h:945
ncx_sort_type_t sort_type
sort type applies to system
Definition: obj.h:960
xmlChar * name
list name
Definition: obj.h:931
ncx_status_t status
status-stmt
Definition: obj.h:951
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:940
ncx_error_t keytkerr
saved error info for key-stmt errors
Definition: obj.h:955
boolean minset
min-elements set
Definition: obj.h:947
boolean maxset
max-elements set
Definition: obj.h:949
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:952
xmlChar * keystr
key-stmt (not required if config=false)
Definition: obj.h:934
uint32 maxelems
max-elements value
Definition: obj.h:950
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:937
uint32 minelems
min-elements value
Definition: obj.h:948
obj_index_t last_index
internal numbering data for val_child ordering
Definition: obj.h:958
dlq_hdr_t keyQ
Q of obj_key_t.
Definition: obj.h:944
boolean ordersys
ordered-by system or user
Definition: obj.h:946
dlq_hdr_t * typedefQ
Q of typ_template_t.
Definition: obj.h:941
dlq_hdr_t * datadefQ
Q of obj_template_t.
Definition: obj.h:943
dlq_hdr_t * groupingQ
Q of grp_template_t.
Definition: obj.h:942
One YANG metadata (XML attribute) node.
Definition: obj.h:1351
ncx_error_t tkerr
file and line info for compiler
Definition: obj.h:1357
xmlChar * name
metadata name
Definition: obj.h:1354
dlq_hdr_t qhdr
queue header
Definition: obj.h:1352
typ_def_t * typdef
typedef for metadata
Definition: obj.h:1355
struct obj_template_t_ * parent
obj containing metadata
Definition: obj.h:1353
xmlns_id_t nsid
in case parent == NULL
Definition: obj.h:1356
One YANG 'notification' clause definition.
Definition: obj.h:1128
boolean in_data
defined in data, YANG 1.1 only
Definition: obj.h:1144
boolean notif_enabled
enabled or disabled in server
Definition: obj.h:1142
dlq_hdr_t datadefQ
Q of obj_template_t.
Definition: obj.h:1140
xmlChar * name
notification name
Definition: obj.h:1130
ncx_status_t status
status-stmt
Definition: obj.h:1137
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:1136
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:1141
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:1133
boolean notif_log_drops
log drops for this event type
Definition: obj.h:1143
dlq_hdr_t * typedefQ
Q of typ_template_t.
Definition: obj.h:1138
dlq_hdr_t * groupingQ
Q of gtp_template_t.
Definition: obj.h:1139
defines the snmp oid value, stored as an array of integers for easier comparision when performing AVL...
Definition: obj.h:1195
oid_t * oidc
OID component.
Definition: obj.h:1197
uint8 cnt
amount of Sub-Ids (max 128)
Definition: obj.h:1196
One YANG refine statement struct.
Definition: obj.h:1017
dlq_hdr_t defval_tkQ
Q of obj_defval_tk_t.
Definition: obj.h:1047
xmlChar * target
relative-path of the object to refine
Definition: obj.h:1019
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:1036
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:1058
xmlChar * presence
refining the presence-stmt
Definition: obj.h:1042
uint32 maxelems
max-elements value
Definition: obj.h:1056
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:1025
ncx_error_t ref_tkerr
same comment as descr_tkerr applies here
Definition: obj.h:1039
ncx_error_t config_tkerr
config and confset are in the object flags
Definition: obj.h:1050
uint32 minelems
min-elements value
Definition: obj.h:1054
struct obj_template_t_ * targobj
resolved target object to refine
Definition: obj.h:1022
ncx_error_t minelems_tkerr
also minset
Definition: obj.h:1055
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:1033
ncx_error_t maxelems_tkerr
also maxset
Definition: obj.h:1057
ncx_error_t presence_tkerr
same comment as descr_tkerr applies here
Definition: obj.h:1045
ncx_error_t mandatory_tkerr
mandatory and mandset are in the object flags
Definition: obj.h:1053
One YANG rpc-stmt struct.
Definition: obj.h:1083
dlq_hdr_t datadefQ
Q of obj_template_t.
Definition: obj.h:1096
xmlChar * name
rpc method name
Definition: obj.h:1085
ncx_status_t status
status-stmt
Definition: obj.h:1093
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:1091
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:1088
boolean supported
mod loaded, not implemented
Definition: obj.h:1101
dlq_hdr_t * typedefQ
Q of typ_template_t.
Definition: obj.h:1094
dlq_hdr_t * groupingQ
Q of gtp_template_t.
Definition: obj.h:1095
xmlns_id_t nsid
internal fields for manager and agent
Definition: obj.h:1100
boolean is_action
YANG 1.1 only.
Definition: obj.h:1097
One YANG input-stmt or output-stmt struct.
Definition: obj.h:1063
dlq_hdr_t datadefQ
Q of obj_template_t.
Definition: obj.h:1067
xmlChar * name
input or output
Definition: obj.h:1064
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:1068
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:1073
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:1078
dlq_hdr_t * typedefQ
Q of typ_template_t.
Definition: obj.h:1065
dlq_hdr_t * groupingQ
Q of gtp_template_t.
Definition: obj.h:1066
One YANG data-def-stmt.
Definition: obj.h:1209
ncx_error_t tkerr
file and line info for compiler
Definition: obj.h:1224
ncx_sid_t yang_sid
Each object specific variant has a YANG SID assigned for CBOR encoding.
Definition: obj.h:1342
obj_oid_t * oid
SNMP OID for this object (set if needed)
Definition: obj.h:1228
ncx_transaction_id_t leafref_txid
current edit transaction ID for intermediate leafref processing
Definition: obj.h:1304
uint32 yang_hash
experimental: not used
Definition: obj.h:1213
obj_testflags_t desc_testflags
see AGT_TEST_FL_* definitions
Definition: obj.h:1223
dlq_hdr_t appinfoQ
Q of ncx_appinfo_t.
Definition: obj.h:1238
dlq_hdr_t iffeatureQ
Q of ncx_iffeature_t.
Definition: obj.h:1239
dlq_hdr_t * errmsgQ
custom error message used if this is the server running
Definition: obj.h:1286
dlq_hdr_t xpath_backptrQ
Q of ncx_back_ptr_t with node == xpath_pcb_t.
Definition: obj.h:1277
void * def_hook_cb
def_hook_cb is ncx_def_hook_cbfn_t callback function for Dynamic Default Hook callback.
Definition: obj.h:1325
uint8 silflags
see OBJ_FL_* definitions
Definition: obj.h:1220
dlq_hdr_t inherited_whenQ
Q of ncx_backptr_t with node == xpath_pcb_t.
Definition: obj.h:1244
struct obj_template_t_ * usesobj
backptr to uses-obj if grouping expand
Definition: obj.h:1233
uint8 sil_priority
picks SIL callback order
Definition: obj.h:1221
ncx_transaction_id_t edit_txid
current edit transaction ID for commit test pruning
Definition: obj.h:1295
ncx_transaction_id_t must_txid
current edit transaction ID for MUST test default nodes pruning
Definition: obj.h:1298
boolean set_snmp_flags
need SNMP flags
Definition: obj.h:1229
ncx_transaction_id_t when_txid
current edit transaction ID for WHEN test default nodes pruning
Definition: obj.h:1301
dlq_hdr_t metadataQ
Q of obj_metadata_t.
Definition: obj.h:1237
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:1292
dlq_hdr_t qhdr
queue header
Definition: obj.h:1210
grp_template_t * grp
non-NULL == in a grp.datadefQ
Definition: obj.h:1225
boolean xpath_oper_ok
object OK for referencing oper-data in XPath
Definition: obj.h:1230
dlq_hdr_t inherited_iffeatureQ
Q of obj_iffeature_ptr_t.
Definition: obj.h:1241
uint32 yang_sid_tree
SID tree assignment if yang_sid is used.
Definition: obj.h:1345
struct xpath_pcb_t_ * when
optional when clause
Definition: obj.h:1236
uint32 flags
see OBJ_FL_* definitions
Definition: obj.h:1215
ncx_sm_rootcb_t * rootcb
Schema Mount Control Block.
Definition: obj.h:1336
uint32 xflags
see OBJ_FL_* definitions
Definition: obj.h:1216
uint32 xflags2
see OBJ_FL_* definitions
Definition: obj.h:1217
obj_index_t index
object index for val_child ordering
Definition: obj.h:1226
struct obj_template_t_ * parent
backptr to parent
Definition: obj.h:1232
obj_type_t objtype
object type (def)
Definition: obj.h:1211
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:1283
uint32 uflags
see OBJ_FL_* definitions
Definition: obj.h:1219
obj_testflags_t testflags
see AGT_TEST_FL_* definitions
Definition: obj.h:1222
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:1333
void * get2cb
get2fn is getcb_fn2_t for local GET2
Definition: obj.h:1259
dlq_hdr_t * dataruleQ
Q obj NACM data-rule backptrs.
Definition: obj.h:1247
void * cbset
cbset is different based on the object type:
Definition: obj.h:1256
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:1268
xmlns_id_t nsid
namespace ID assigned to the object at run-time
Definition: obj.h:1271
struct obj_template_t_ * augobj
backptr to augment-obj if augment expand
Definition: obj.h:1234
One component in a YANG list unique target.
Definition: obj.h:806
boolean isduplicate
T: will be ignored by server.
Definition: obj.h:810
dlq_hdr_t qhdr
queue header
Definition: obj.h:807
xmlChar * xpath
saved unique str for this obj
Definition: obj.h:809
struct obj_template_t_ * unobj
unique object target
Definition: obj.h:808
One component in a YANG list unique target.
Definition: obj.h:815
ncx_error_t tkerr
file and line info for compiler
Definition: obj.h:821
dlq_hdr_t compQ
Q of obj_unique_comp_t.
Definition: obj.h:818
dlq_hdr_t qhdr
queue header
Definition: obj.h:816
xmlChar * xpath
complete saved unique str
Definition: obj.h:817
boolean isconfig
T:constraint is on config.
Definition: obj.h:820
boolean seen
needed by yangdiff
Definition: obj.h:819
One YANG uses statement struct.
Definition: obj.h:1000
boolean expand_done
expand done flag
Definition: obj.h:1012
xmlChar * name
name of grouping to use
Definition: obj.h:1002
ncx_status_t status
status-stmt
Definition: obj.h:1011
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:1008
grp_template_t * grp
const back-ptr to grouping
Definition: obj.h:1009
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:1005
xmlChar * prefix
prefix present in uses-stmt
Definition: obj.h:1001
dlq_hdr_t * datadefQ
Q of obj_template_t.
Definition: obj.h:1010
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:1307
XML Utilities.
XML namespace support.