yumapro  24.10-11
YumaPro SDK
Loading...
Searching...
No Matches
obj.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2008 - 2012, Andy Bierman, All Rights Reserved.
3 * Copyright (c) 2012 - 2025, YumaWorks, Inc., All Rights Reserved.
4 *
5 * Unless required by applicable law or agreed to in writing,
6 * software distributed under the License is distributed on an
7 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
8 * KIND, either express or implied. See the License for the
9 * specific language governing permissions and limitations
10 * under the License.
11 */
12#ifndef _H_obj
13#define _H_obj
14
15/* FILE: obj.h
16*********************************************************************
17* *
18* P U R P O S E *
19* *
20*********************************************************************/
21
27/*********************************************************************
28* *
29* C H A N G E H I S T O R Y *
30* *
31*********************************************************************
32
33date init comment
34----------------------------------------------------------------------
3509-dec-07 abb Begun
3621jul08 abb start obj-based rewrite
37
38*/
39
40#include <xmlstring.h>
41#include <xmlregexp.h>
42
43#include "log.h"
44#include "grp.h"
45#include "ncxconst.h"
46#include "ncxtypes.h"
47#include "status.h"
48#include "tk.h"
49#include "rpc.h"
50#include "typ.h"
51#include "xmlns.h"
52#include "xml_util.h"
53
54#ifdef __cplusplus
55extern "C" {
56#endif
57
58/********************************************************************
59* *
60* C O N S T A N T S *
61* *
62*********************************************************************/
63
64/* object pointer inside obj_key_t struct */
65#define OBJ_KEYOBJ(KO) (KO)->keyobj
66
67/* default vaule for config statement */
68#define OBJ_DEF_CONFIG TRUE
69
70/* default vaule for mandatory statement */
71#define OBJ_DEF_MANDATORY FALSE
72
73/* number of static xpath backptrs to have in each object node */
74/*** CHANGED FROM 4 to 2 23oct19 ***/
75#define OBJ_NUM_XPATH_BACKPTRS 2
76
77/* each object can have a SIL callback priority 1..255 */
78#define OBJ_DEF_SIL_PRIORITY 255
79#define OBJ_MIN_SIL_PRIORITY 1
80#define OBJ_MAX_SIL_PRIORITY 255
81
82
83/********* flags field in obj_template_t *************/
84
85/* object is cloned from a grouping, for a uses statement */
86#define OBJ_FL_CLONE bit0
87
88/* def is a CLI text block */
89#define OBJ_FL_CLI_TEXT_BLOCK bit1
90
91/* clone source
92 * == 0 : cloned object from uses
93 * == 1 : cloned object from augment
94 */
95#define OBJ_FL_AUGCLONE bit2
96
97/* object is marked for deletion -- dynamic flag */
98#define OBJ_FL_DELETED bit3
99
100/* object is dirty in the candidate datastore; used by server only */
101#define OBJ_FL_CDIRTY bit4
102
103/* object is a top-level definition within a module or submodule */
104#define OBJ_FL_TOP bit5
105
106/* object was entered with a 'kw name;' format and is
107 * considered empty by the yangdump program
108 */
109#define OBJ_FL_EMPTY bit6
110
111/* object has been visited by the yangdiff program */
112#define OBJ_FL_SEEN bit7
113
114/* bit7 is reused in the server since the 'seen' bit only
115 * applies to the yangdiff-pro program
116 * object is dirty in the running datastore; used by server only
117 */
118#define OBJ_FL_RDIRTY bit7
119
120/* object marked as changed by the yangdiff program */
121#define OBJ_FL_DIFF bit8
122
123/* object is marked as ncx:hidden */
124#define OBJ_FL_HIDDEN bit9
125
126/* object is marked as ncx:root */
127#define OBJ_FL_ROOT bit10
128
129/* object is marked as a password */
130#define OBJ_FL_PASSWD bit11
131
132/* object is marked as a CLI-only node */
133#define OBJ_FL_CLI bit12
134
135/* object is marked as an XSD list data type */
136#define OBJ_FL_XSDLIST bit13
137
138/* OBJ_TYP_LEAF object is being uses as a key */
139#define OBJ_FL_KEY bit14
140
141/* object is marked as abstract: not CLI or config data */
142#define OBJ_FL_ABSTRACT bit15
143
144/* object is marked as config set so OBJ_FL_CONFIG is valid */
145#define OBJ_FL_CONFSET bit16
146
147/* object config value */
148#define OBJ_FL_CONFIG bit17
149
150/* object is marked as mandatory set so OBJ_FL_MANDATORY is valid */
151#define OBJ_FL_MANDSET bit18
152
153/* object mandatory value */
154#define OBJ_FL_MANDATORY bit19
155
156/* object used in a unique-stmt within a list */
157#define OBJ_FL_UNIQUE bit20
158
159/* object data type is an XPath string */
160#define OBJ_FL_XPATH bit21
161
162/* object data type is a QName string */
163#define OBJ_FL_QNAME bit22
164
165/* object data type is a schema-instance string */
166#define OBJ_FL_SCHEMAINST bit23
167
168/* object is tagged ncx:secure */
169#define OBJ_FL_SECURE bit24
170
171/* object is tagged ncx:very-secure */
172#define OBJ_FL_VERY_SECURE bit25
173
174/* object is tagged ncx:default-parm-equals-ok */
175#define OBJ_FL_CLI_EQUALS_OK bit26
176
177/* object is tagged ncx:sil-delete-children-first */
178#define OBJ_FL_SIL_DELETE_CHILDREN_FIRST bit27
179
180/* object is tagged as ncx:user-write with no create access */
181#define OBJ_FL_BLOCK_CREATE bit28
182
183/* object is tagged as ncx:user-write with no update access */
184#define OBJ_FL_BLOCK_UPDATE bit29
185
186/* object is tagged as ncx:user-write with no delete access */
187#define OBJ_FL_BLOCK_DELETE bit30
188
189/* object is tagged as ywx:rpc-root operation container */
190#define OBJ_FL_RPC_ROOT bit31
191
192
193/********* xflags field in obj_template_t *************/
194
195/* object is a default NP-container */
196#define OBJ_FL_DEF_NPCON bit0
197
198/* object has been checked for enabled;
199 * this flag needs to be cleared if dynamic
200 * features are used and the feature becomes disabled!!!
201 */
202#define OBJ_FL_ENABLED_CHK bit1
203
204/* indicates that the object is enabled, which just means
205 * any if-features statements for this object are true
206 */
207#define OBJ_FL_ENABLED bit2
208
209/* indicates that this visible object has a visible sibling
210 * object with the same local-name but from another module
211 */
212#define OBJ_FL_DUP_LOCAL bit3
213
214/* indicates that this object is an RPC operation that is
215 * not allowed to be called concurrently by multiple sessions
216 * at once
217 */
218#define OBJ_FL_EXCLUSIVE_RPC bit4
219
220/* indicates that this object is has the sil-force-replay
221 * flag set
222 */
223#define OBJ_FL_SIL_FORCE_REPLAY bit5
224
225/* indicates that this object is has the sil-force-replay
226 * flag set for a replace operation
227 */
228#define OBJ_FL_SIL_FORCE_REPLACE_REPLAY bit6
229
230/* indicates that this object is an anyxml object that is
231 * really a ywx:datapath node. The object path-expr will
232 * be sent in XML instances of the object.
233 * (Like object Location header)
234 */
235#define OBJ_FL_DATAPATH bit7
236
237/* indicates that is object has get2 callbacks registered
238 * either for 1 or more submodules. This flag is
239 * set and cleared dynamically so do not cache the value
240 */
241#define OBJ_FL_REMOTE_GET2 bit8
242
243/* indicates the 'units' field has been replaced with
244 * a malloced string via deviations, could be a clone
245*/
246#define OBJ_FL_FREE_UNITS bit9
247
248/* indicates the 'typdef' field has been replaced with
249 * a malloced struct via deviations, could be a clone
250*/
251#define OBJ_FL_FREE_TYPDEF bit10
252
253
254/* indicates the object uses the edit2 callback mode */
255#define OBJ_FL_EDIT2_MODE bit11
256
257/* indicates that leafref validation has been disabled for the
258 * object. The leafref will be treated as if it had a
259 * require-instance false; sub-statement
260 */
261#define OBJ_FL_SKIP_LEAFREF bit12
262
263/* indicates that the object yang_hash field contains
264 * the YANG HASH value for the node; hash can be zero
265 * so set this flag to make sure obj->yang_hash field is set
266 */
267#define OBJ_FL_YANG_HASH bit13
268
269/* indicates that the object yang_hash field contains
270 * the rehashed value for the node because of a clash
271 */
272#define OBJ_FL_YANG_REHASH bit14
273
274/* indicates that the cbset (callback set) is malloced
275 * and a simple m__free(cbset) is needed to clean up
276 */
277#define OBJ_FL_CBSET_MALLOCED bit15
278
279/* indicates the object is 1 of the ncx generic templates */
280#define OBJ_FL_GENERIC bit16
281
282/* indicates the object has defaults has been checked */
283/* NOT USED */
284#define OBJ_FL_DEF_DONE bit17
285
286/* indicates the object has defaults (valid if bit17 set) */
287/* NOT USED */
288#define OBJ_FL_DEF bit18
289
290/* indicates the object is an RPC that is OK for library mode */
291#define OBJ_FL_LIBMODE bit19
292
293/* indicates the object contains a smiv2 object identifier */
294#define OBJ_FL_SMIV2_OID bit20
295
296/* indicates object is tagged ywx:no-nvstore */
297#define OBJ_FL_NO_NVSTORE bit21
298
299/* object is tagged ncx:no-sil-delete-children-first */
300#define OBJ_FL_NO_SIL_DELETE_CHILDREN_FIRST bit22
301
302/* object is tagged as a source node in a yangmap nodemap */
303#define OBJ_FL_YANGMAP_SOURCE bit23
304
305/* object is tagged as a target node in a yangmap nodemap */
306#define OBJ_FL_YANGMAP_TARGET bit24
307
308/* object is tagged as a child node in a yangmap nodemap */
309#define OBJ_FL_YANGMAP_CHILD bit25
310
311/* object is tagged as a keymap node in a yangmap nodemap */
312#define OBJ_FL_YANGMAP_KEY bit26
313
314/* indicates that DUP_LOCAL test has been done */
315#define OBJ_FL_DUP_LOCAL_DONE bit27
316
317/* This bit is set in the agt_val_silcall to indicate that the
318 * Transaction Hook is already setup for the object and that
319 * any consecutive attempts to assign the hook to this object
320 * should be skipped
321 */
322#define OBJ_FL_TRANS_HOOK_SET bit29
323
324/* This bit is set to indicate that the sil-test-get-when
325 * override flag is set for the object which is expected
326 * to be an operational data node
327 */
328#define OBJ_FL_GET_WHEN_SET bit30
329
330/* This bit is set to indicate the value of the
331 * override flag and is only used if OBJ_FL_GET_WHEN_SET
332 * bit is set to 1
333 */
334#define OBJ_FL_GET_WHEN bit31
335
336
337/********* xflags2 field in obj_template_t *************/
338 /* xflags2 is a continuation of xflags bits */
339
340/* This bit is set to indicate that the sil-aio-get2
341 * All in One extension flag is set for the object.
342 */
343#define OBJ_FL_AIO_GET2 bit0
344
345/* This flag indicates that this object has All in One children
346 * But itself it does not have this extension setup.
347 * Will be set only if the current object is GET2 object with
348 * GET2 flags setup.
349 *
350 * GET2 object but not All in One object, but a parent of AIO
351 */
352#define OBJ_FL_AIO_PARENT bit1
353
354/* This bit is set to indicate that the sil-aio-get2
355 * All in One extension flag is set for the object and has XML
356 * parameter setup.
357 */
358#define OBJ_FL_AIO_GET2_XML bit2
359
360/* This bit is set to indicate that the sil-aio-get2
361 * All in One extension flag is set for the object and has JSON
362 * parameter setup.
363 */
364#define OBJ_FL_AIO_GET2_JSON bit3
365
366/* This bit is set to check whether the object has Set Default
367 * Hook callback and should invoke it in order to set custom
368 * system default value BUT only if there is no any YANG defaults.
369 */
370#define OBJ_FL_DEF_HOOK bit4
371
372/* This bit indicates that the leaf or leaf-list is really
373 * an openconfig-hashed-value string not a plain string
374 * and not an ncx:password
375 */
376#define OBJ_FL_OC_HASHED_VALUE bit5
377
378/* This bit is set to indicate that the object is NOT OK for nolock-get
379 * Use on config=false nodes that it is not safe to GET in the
380 * PTHREADS build without a rdlock on running
381 */
382#define OBJ_FL_BAN_NOLOCK_GET bit6
383
384/* This bit is set to indicate that the object has Mount Point
385 * TBD: Why is this needed since the rootcb will be set only
386 * if the object is a mount point?
387 */
388#define OBJ_FL_MOUNT_POINT bit7
389
390/* This bit is set if there is a descendant that is a mount point
391 * This is needed so delete or replace operations on the MP or
392 * its ancestor will force SIL and SIL-SA callbacks to be invoked
393 * instead of skipping them.
394 */
395#define OBJ_FL_DESC_MOUNT_POINT bit8
396
397
398/* indicates the object uses the edit3 callback mode */
399#define OBJ_FL_EDIT3_MODE bit9
400
401
402/* This bit is set if the object has the ywx:hidden-from-cli extension
403 * This is only checked by yp-shell and yangcli-pro.
404 * It is ignored by the server.
405 * This is bit9 in 23.10 release train!
406 */
407#define OBJ_FL_HIDDEN_FROM_CLI bit10
408
409
410/* This bit is set if the object has the ywx:confirm-data extension
411 * This is only checked by yp-shell and yangcli-pro.
412 * It is ignored by the server.
413 */
414#define OBJ_FL_CONFIRM_DATA bit11
415
416
417/* indicates the object uses the edit1 callback mode */
418#define OBJ_FL_EDIT1_MODE bit12
419
420
421/********* uflags field in obj_template_t *************/
422
423/* This field represents the user flags and no system bits
424 * are defined for this field. It is used by yang_obj_cb
425 * callback functions to set user-specific flags
426 */
427
428/********* silflags field in obj_template_t *************/
429
430/* This bit is set in agt_rpc to indicate the RPC is
431 * currently being invoked; If another session attempts
432 * to invoke the RPC while busy, and the obj_is_exclusive_rpc
433 * the RPC request will be rejected by the server
434 */
435#define OBJ_FL_SIL_BUSY bit0
436
437#define OBJ_TYPE(OBJ) (OBJ)->objtype
438
439#define OBJ_INDEX(OBJ) (OBJ)->index
440
441/* mark the object as a top object since the yang_obj does
442 * not catch top-level uses from a grouping as a top object
443 */
444#define OBJ_SET_TOP(OBJ) (OBJ)->flags |= OBJ_FL_TOP
445
446#define OBJ_SET_SIL_BUSY(OBJ) (OBJ)->silflags |= OBJ_FL_SIL_BUSY
447
448#define OBJ_CLEAR_SIL_BUSY(OBJ) (OBJ)->silflags &= ~OBJ_FL_SIL_BUSY
449
450#define OBJ_IS_SIL_BUSY(OBJ) ((OBJ)->silflags & OBJ_FL_SIL_BUSY)
451
452#define OBJ_GET_CBSET(OBJ) (OBJ)->cbset
453
454
455/* Get2 support */
456#define OBJ_SET_REMOTE_GET2(OBJ) (OBJ)->xflags |= OBJ_FL_REMOTE_GET2
457
458#define OBJ_CLEAR_REMOTE_GET2(OBJ) (OBJ)->xflags &= ~OBJ_FL_REMOTE_GET2
459
460#define OBJ_HAS_REMOTE_GET2(OBJ) ((OBJ)->xflags & OBJ_FL_REMOTE_GET2)
461
462#define OBJ_SET_GET2CB(OBJ, CB) (OBJ)->get2cb = CB
463
464#define OBJ_GET_GET2CB(OBJ) (getcb_fn2_t)(OBJ)->get2cb
465
466#define OBJ_SET_EDIT2_MODE(OBJ) (OBJ)->xflags |= OBJ_FL_EDIT2_MODE
467#define OBJ_IS_EDIT2_MODE(OBJ) ((OBJ)->xflags & OBJ_FL_EDIT2_MODE)
468#define OBJ_CLEAR_EDIT2_MODE(OBJ) (OBJ)->xflags &= ~OBJ_FL_EDIT2_MODE
469
470
471/* XPath tuning */
472#define OBJ_SET_SKIP_LEAFREF(OBJ) (OBJ)->xflags |= OBJ_FL_SKIP_LEAFREF
473
474#define OBJ_IS_SKIP_LEAFREF(OBJ) ((OBJ)->xflags & OBJ_FL_SKIP_LEAFREF)
475
476
477
478/* Object YANG Hash */
479#define OBJ_SET_YANG_HASH(OBJ) (OBJ)->xflags |= OBJ_FL_YANG_HASH
480
481#define OBJ_IS_YANG_HASH(OBJ) ((OBJ)->xflags & OBJ_FL_YANG_HASH)
482
483
484/* Object Rehash */
485#define OBJ_SET_YANG_REHASH(OBJ) (OBJ)->xflags |= OBJ_FL_YANG_REHASH
486
487#define OBJ_IS_YANG_REHASH(OBJ) ((OBJ)->xflags & OBJ_FL_YANG_REHASH)
488
489
490/* CBSET Malloced */
491#define OBJ_SET_CBSET_MALLOCED(OBJ) (OBJ)->xflags |= OBJ_FL_CBSET_MALLOCED
492
493#define OBJ_IS_CBSET_MALLOCED(OBJ) ((OBJ)->xflags & OBJ_FL_CBSET_MALLOCED)
494
495#define OBJ_CLEAR_CBSET_MALLOCED(OBJ) (OBJ)->xflags &= ~OBJ_FL_CBSET_MALLOCED
496
497/* Object is generic */
498#define OBJ_SET_GENERIC(OBJ) (OBJ)->xflags |= OBJ_FL_GENERIC
499
500#define OBJ_IS_GENERIC(OBJ) ((OBJ)->xflags & OBJ_FL_GENERIC)
501
502
503/* Object or children have a default value */
504/* NOT USED */
505#define OBJ_SET_DEF_DONE(OBJ) (OBJ)->xflags |= OBJ_FL_DEF_DONE
506
507/* NOT USED */
508#define OBJ_IS_DEF_DONE(OBJ) ((OBJ)->xflags & OBJ_FL_DEF_DONE)
509
510/* NOT USED */
511#define OBJ_SET_DEF(OBJ) (OBJ)->xflags |= OBJ_FL_DEF
512
513/* NOT USED */
514#define OBJ_IS_DEF(OBJ) ((OBJ)->xflags & OBJ_FL_DEF)
515
516/* Object is an RPC that is allowed in library mode */
517#define OBJ_SET_LIBMODE(OBJ) (OBJ)->xflags |= OBJ_FL_LIBMODE
518
519#define OBJ_IS_LIBMODE(OBJ) ((OBJ)->xflags & OBJ_FL_LIBMODE)
520
521#define OBJ_USER_FLAGS(OBJ) (OBJ)->uflags
522
523/* get the object pointer in an obj_key_t */
524#define OBJ_KEY_OBJ(K) (K)->keyobj
525
526/* get the current edit transaction id;
527 * -- changed on each transaction this object is tested
528 */
529#define OBJ_EDIT_TXID(OBJ) (OBJ)->edit_txid
530
531#define OBJ_EXTR_MUST_TXID(OBJ) (OBJ)->must_txid
532#define OBJ_EXTR_WHEN_TXID(OBJ) (OBJ)->when_txid
533#define OBJ_EXTR_LEAFREF_TXID(OBJ) (OBJ)->leafref_txid
534#define OBJ_EXTR_DEF_TXID(OBJ) (OBJ)->def_txid
535#define OBJ_EXTR_DEF_WHEN_TXID(OBJ) (OBJ)->def_when_txid
536
537
538/* Object is flagged no-nvstore */
539#define OBJ_SET_NO_NVSTORE(OBJ) (OBJ)->xflags |= OBJ_FL_NO_NVSTORE
540
541#define OBJ_IS_NO_NVSTORE(OBJ) ((OBJ)->xflags & OBJ_FL_NO_NVSTORE)
542
543
544/* Object is flagged yangmap-source */
545#define OBJ_SET_YANGMAP_SOURCE(OBJ) \
546 (OBJ)->xflags |= OBJ_FL_YANGMAP_SOURCE
547
548#define OBJ_IS_YANGMAP_SOURCE(OBJ) \
549 ((OBJ)->xflags & OBJ_FL_YANGMAP_SOURCE)
550
551
552/* Object is flagged yangmap-target */
553#define OBJ_SET_YANGMAP_TARGET(OBJ) \
554 (OBJ)->xflags |= OBJ_FL_YANGMAP_TARGET
555
556#define OBJ_IS_YANGMAP_TARGET(OBJ) \
557 ((OBJ)->xflags & OBJ_FL_YANGMAP_TARGET)
558
559/* Object is flagged yangmap-childmap */
560#define OBJ_SET_YANGMAP_CHILD(OBJ) \
561 (OBJ)->xflags |= OBJ_FL_YANGMAP_CHILD
562
563#define OBJ_IS_YANGMAP_CHILD(OBJ) \
564 ((OBJ)->xflags & OBJ_FL_YANGMAP_CHILD)
565
566/* Object is flagged yangmap-keymap */
567#define OBJ_SET_YANGMAP_KEY(OBJ) \
568 (OBJ)->xflags |= OBJ_FL_YANGMAP_KEY
569
570#define OBJ_IS_YANGMAP_KEY(OBJ) \
571 ((OBJ)->xflags & OBJ_FL_YANGMAP_KEY)
572
573/* if OBJ_IS_YANGMAP_SOURCE : yangmap_cb == nodemap_t
574 * if OBJ_IS_YANGMAP_TARGET : yangmap_cb == nodemap_t
575 * if OBJ_IS_YANGMAP_CHILD : yangmap_cb == childmap_t
576 * if OBJ_IS_YANGMAP_KEY : yangmap_cb == keymap_t
577 */
578#define OBJ_YANGMAP_CB(OBJ) (OBJ)->yangmap_cb
579
580/* Object DUP_LOCAL test has been done */
581#define OBJ_SET_DUP_LOCAL_DONE(OBJ) \
582 (OBJ)->xflags |= OBJ_FL_DUP_LOCAL_DONE
583
584#define OBJ_IS_DUP_LOCAL_DONE(OBJ) \
585 ((OBJ)->xflags & OBJ_FL_DUP_LOCAL_DONE)
586
587
588#define OBJ_RPC_SUPPORTED(OBJ) (OBJ)->def.rpc->supported
589
590
591/* Trans Hook assignment bits */
592#define OBJ_SET_TRANS_HOOK_SET(OBJ) (OBJ)->xflags |= OBJ_FL_TRANS_HOOK_SET
593#define OBJ_IS_TRANS_HOOK_SET(OBJ) ((OBJ)->xflags & OBJ_FL_TRANS_HOOK_SET)
594#define OBJ_CLEAR_TRANS_HOOK_SET(OBJ) (OBJ)->xflags &= ~OBJ_FL_TRANS_HOOK_SET
595
596
597/* All in One assignment bits */
598#define OBJ_SET_AIO_GET2(OBJ) (OBJ)->xflags2 |= OBJ_FL_AIO_GET2
599#define OBJ_IS_AIO_GET2(OBJ) ((OBJ)->xflags2 & OBJ_FL_AIO_GET2)
600#define OBJ_CLEAR_AIO_GET2(OBJ) (OBJ)->xflags2 &= ~ OBJ_FL_AIO_GET2
601
602/* GET2 object but not All in One object, but a parent of AIO */
603#define OBJ_SET_AIO_PARENT(OBJ) (OBJ)->xflags2 |= OBJ_FL_AIO_PARENT
604#define OBJ_IS_AIO_PARENT(OBJ) ((OBJ)->xflags2 & OBJ_FL_AIO_PARENT)
605#define OBJ_CLEAR_AIO_PARENT(OBJ) (OBJ)->xflags2 &= ~ OBJ_FL_AIO_PARENT
606
607/* AIO with XML/JSON support flags*/
608#define OBJ_SET_AIO_GET2_XML(OBJ) (OBJ)->xflags2 |= OBJ_FL_AIO_GET2_XML
609#define OBJ_IS_AIO_GET2_XML(OBJ) ((OBJ)->xflags2 & OBJ_FL_AIO_GET2_XML)
610
611#define OBJ_SET_AIO_GET2_JSON(OBJ) (OBJ)->xflags2 |= OBJ_FL_AIO_GET2_JSON
612#define OBJ_IS_AIO_GET2_JSON(OBJ) ((OBJ)->xflags2 & OBJ_FL_AIO_GET2_JSON)
613
614/* Dynamic Default Hook assignment bits */
615#define OBJ_SET_DEF_HOOK(OBJ) (OBJ)->xflags2 |= OBJ_FL_DEF_HOOK
616#define OBJ_IS_DEF_HOOK(OBJ) ((OBJ)->xflags2 & OBJ_FL_DEF_HOOK)
617#define OBJ_CLEAR_DEF_HOOK(OBJ) (OBJ)->xflags2 &= ~OBJ_FL_DEF_HOOK
618#define OBJ_GET_DEF_HOOK_CB(OBJ) (ncx_def_hook_cbfn_t)(OBJ)->def_hook_cb
619
620/* openconfig-hashed-value bit */
621#define OBJ_SET_OC_HASHED_VALUE(OBJ) (OBJ)->xflags2 |= OBJ_FL_OC_HASHED_VALUE
622#define OBJ_IS_OC_HASHED_VALUE(OBJ) ((OBJ)->xflags2 & OBJ_FL_OC_HASHED_VALUE)
623
624/* Static Ban Nock GET assignment bits */
625#define OBJ_SET_BAN_NOLOCK_GET(OBJ) (OBJ)->xflags2 |= OBJ_FL_BAN_NOLOCK_GET
626#define OBJ_IS_BAN_NOLOCK_GET(OBJ) ((OBJ)->xflags2 & OBJ_FL_BAN_NOLOCK_GET)
627
628/* Mount Point bit */
629#define OBJ_SET_MOUNT_POINT(OBJ) (OBJ)->xflags2 |= OBJ_FL_MOUNT_POINT
630#define OBJ_IS_MOUNT_POINT(OBJ) ((OBJ)->xflags2 & OBJ_FL_MOUNT_POINT)
631
632/* Mount Point Support Utility functions */
633#define OBJ_SET_ROOTCB(OBJ, ROOTCB) (OBJ)->rootcb = ROOTCB
634#define OBJ_GET_ROOTCB(OBJ) (OBJ)->rootcb
635
636/* Mount Point Descendant bit */
637#define OBJ_SET_DESC_MOUNT_POINT(OBJ) (OBJ)->xflags2 |= OBJ_FL_DESC_MOUNT_POINT
638#define OBJ_IS_DESC_MOUNT_POINT(OBJ) ((OBJ)->xflags2 & OBJ_FL_DESC_MOUNT_POINT)
639
641#define OBJ_BOOL_EVAL_CB(OBJ) (OBJ)->bool_eval_cb
642
644#define OBJ_SET_EDIT3_MODE(OBJ) (OBJ)->xflags2 |= OBJ_FL_EDIT3_MODE
645#define OBJ_IS_EDIT3_MODE(OBJ) ((OBJ)->xflags2 & OBJ_FL_EDIT3_MODE)
646#define OBJ_CLEAR_EDIT3_MODE(OBJ) (OBJ)->xflags2 &= ~OBJ_FL_EDIT3_MODE
647
649#define OBJ_SET_HIDDEN_FROM_CLI(OBJ) (OBJ)->xflags2 |= OBJ_FL_HIDDEN_FROM_CLI
650#define OBJ_IS_HIDDEN_FROM_CLI(OBJ) ((OBJ)->xflags2 & OBJ_FL_HIDDEN_FROM_CLI)
651
653#define OBJ_SET_CONFIRM_DATA(OBJ) (OBJ)->xflags2 |= OBJ_FL_CONFIRM_DATA
654#define OBJ_IS_CONFIRM_DATA(OBJ) ((OBJ)->xflags2 & OBJ_FL_CONFIRM_DATA)
655
657#define OBJ_SET_EDIT1_MODE(OBJ) (OBJ)->xflags2 |= OBJ_FL_EDIT1_MODE
658#define OBJ_IS_EDIT1_MODE(OBJ) ((OBJ)->xflags2 & OBJ_FL_EDIT1_MODE)
659#define OBJ_CLEAR_EDIT1_MODE(OBJ) (OBJ)->xflags2 &= ~OBJ_FL_EDIT1_MODE
660
661
662/********************************************************************
663* *
664* T Y P E S *
665* *
666*********************************************************************/
667
668// Header Only
691typedef enum obj_type_t_ {
696
702
705
708
711
717
733
741
752
761
762
778
781
789
790
791#define OBJ_TYP_LAST OBJ_TYP_ACTION
792
798typedef uint16 obj_index_t;
799
800
802typedef enum obj_augtype_t_ {
809
810
812typedef struct obj_key_t_ {
813 dlq_hdr_t qhdr;
814 struct obj_template_t_ *keyobj;
815 boolean seen;
816} YPACK obj_key_t;
817
818
820typedef struct obj_defval_tk_t_ {
821 dlq_hdr_t qhdr;
822 xmlChar *def;
824} YPACK obj_defval_tk_t;
825
826
828typedef struct obj_unique_comp_t_ {
829 dlq_hdr_t qhdr;
830 struct obj_template_t_ *unobj;
831 xmlChar *xpath;
832 boolean isduplicate;
833} YPACK obj_unique_comp_t;
834
835
837typedef struct obj_unique_t_ {
838 dlq_hdr_t qhdr;
839 xmlChar *xpath;
840 dlq_hdr_t compQ;
841 boolean seen;
842 boolean isconfig;
844} YPACK obj_unique_t;
845
846
848typedef struct obj_container_t_ {
850 xmlChar *name;
851
853 xmlChar *descr;
854
856 xmlChar *ref;
857
859 xmlChar *presence;
860 dlq_hdr_t *typedefQ;
861 dlq_hdr_t *groupingQ;
862 dlq_hdr_t *datadefQ;
864 dlq_hdr_t mustQ;
865 struct obj_template_t_ *defaultparm;
866 obj_index_t last_index;
867} YPACK obj_container_t;
868
869
871typedef struct obj_leaf_t_ {
873 xmlChar *name;
874
876 xmlChar *units;
877
879 xmlChar *defval;
880
882 xmlChar *descr;
883
885 xmlChar *ref;
886
889
892
894 uint16 keynum;
895
896 dlq_hdr_t mustQ;
899 dlq_hdr_t leafrefQ;
906 dlq_hdr_t uniqrefQ;
909 struct obj_template_t_ *leafrefobj;
910
911} YPACK obj_leaf_t;
912
913
915typedef struct obj_leaflist_t_ {
917 xmlChar *name;
918
920 xmlChar *units;
921
923 xmlChar *descr;
924
926 xmlChar *ref;
927
930
932 boolean defset;
933 boolean ordersys;
934 boolean minset;
935 uint32 minelems;
936 boolean maxset;
937 uint32 maxelems;
939 dlq_hdr_t mustQ;
940 dlq_hdr_t leafrefQ;
941 dlq_hdr_t defvalQ;
944 struct obj_template_t_ *leafrefobj;
945
947} YPACK obj_leaflist_t;
948
949
951typedef struct obj_list_t_ {
953 xmlChar *name;
954
956 xmlChar *keystr;
957
959 xmlChar *descr;
960
962 xmlChar *ref;
963 dlq_hdr_t *typedefQ;
964 dlq_hdr_t *groupingQ;
965 dlq_hdr_t *datadefQ;
966 dlq_hdr_t keyQ;
967 dlq_hdr_t uniqueQ;
968 boolean ordersys;
969 boolean minset;
970 uint32 minelems;
971 boolean maxset;
972 uint32 maxelems;
974 dlq_hdr_t mustQ;
978
981
983} YPACK obj_list_t;
984
985
987typedef struct obj_choice_t_ {
988 xmlChar *name;
989 xmlChar *defval;
992 xmlChar *descr;
993
995 xmlChar *ref;
996 dlq_hdr_t *caseQ;
997 boolean caseQclone;
999} YPACK obj_choice_t;
1000
1001
1003typedef struct obj_case_t_ {
1004 xmlChar *name;
1007 xmlChar *descr;
1008
1010 xmlChar *ref;
1011
1012 dlq_hdr_t *datadefQ;
1016 boolean nameclone;
1018} YPACK obj_case_t;
1019
1020
1022typedef struct obj_uses_t_ {
1023 xmlChar *prefix;
1024 xmlChar *name;
1027 xmlChar *descr;
1028
1030 xmlChar *ref;
1032 dlq_hdr_t *datadefQ;
1034 boolean expand_done;
1035 boolean refine_done;
1036} YPACK obj_uses_t;
1037
1038
1040typedef struct obj_refine_t_ {
1042 xmlChar *target;
1043
1045 struct obj_template_t_ *targobj;
1046
1048 xmlChar *descr;
1049
1057
1059 xmlChar *ref;
1060
1063
1065 xmlChar *presence;
1066
1069
1070 dlq_hdr_t defval_tkQ;
1074
1077 uint32 minelems;
1079 uint32 maxelems;
1081 dlq_hdr_t mustQ;
1082} YPACK obj_refine_t;
1083
1084
1086typedef struct obj_rpcio_t_ {
1087 xmlChar *name;
1088 dlq_hdr_t *typedefQ;
1089 dlq_hdr_t *groupingQ;
1090 dlq_hdr_t datadefQ;
1091 dlq_hdr_t mustQ;
1096 boolean is_input;
1097
1101 struct obj_template_t_ *defaultparm;
1102} YPACK obj_rpcio_t;
1103
1104
1106typedef struct obj_rpc_t_ {
1108 xmlChar *name;
1109
1111 xmlChar *descr;
1112
1114 xmlChar *ref;
1115
1117 dlq_hdr_t *typedefQ;
1118 dlq_hdr_t *groupingQ;
1119 dlq_hdr_t datadefQ;
1120 boolean is_action;
1124 boolean supported;
1125} YPACK obj_rpc_t;
1126
1127
1129typedef struct obj_augment_t_ {
1131 xmlChar *target;
1132
1134 xmlChar *descr;
1135
1137 xmlChar *ref;
1138
1140 struct obj_template_t_ *targobj;
1141
1145 dlq_hdr_t datadefQ;
1146 uint16 depth;
1147} YPACK obj_augment_t;
1148
1149
1151typedef struct obj_notif_t_ {
1153 xmlChar *name;
1154
1156 xmlChar *descr;
1157
1159 xmlChar *ref;
1161 dlq_hdr_t *typedefQ;
1162 dlq_hdr_t *groupingQ;
1163 dlq_hdr_t datadefQ;
1164 dlq_hdr_t mustQ;
1167 boolean in_data;
1168} YPACK obj_notif_t;
1169
1170
1172typedef struct obj_iffeature_ptr_t_ {
1173 dlq_hdr_t qhdr;
1175} YPACK obj_iffeature_ptr_t;
1176
1177
1179typedef struct obj_errmsg_filter_t_ {
1180 dlq_hdr_t qhdr;
1181 xmlChar *matchstr;
1182 boolean is_errortag;
1183} YPACK obj_errmsg_filter_t;
1184
1185
1187typedef struct obj_errmsg_parm_t_ {
1188 dlq_hdr_t qhdr;
1189 xmlChar *path;
1192 uint32 len;
1193
1195 xmlChar *valstr;
1196} YPACK obj_errmsg_parm_t;
1197
1198
1200typedef struct obj_errmsg_t_ {
1201 dlq_hdr_t qhdr;
1202 xmlChar *basestr;
1203 xmlChar *langstr;
1204 dlq_hdr_t parmQ;
1205 dlq_hdr_t filterQ;
1206} YPACK obj_errmsg_t;
1207
1208
1210typedef unsigned long oid_t;
1211
1218typedef struct obj_oid_t_ {
1219 uint8 cnt;
1221} YPACK obj_oid_t;
1222
1223
1225typedef uint8 obj_testflags_t;
1226
1227
1232typedef struct obj_template_t_ {
1233 dlq_hdr_t qhdr;
1236 uint32 yang_hash;
1238 uint32 flags;
1239 uint32 xflags;
1240 uint32 xflags2;
1242 uint32 uflags;
1243 uint8 silflags;
1255 struct obj_template_t_ *parent;
1256 struct obj_template_t_ *usesobj;
1257 struct obj_template_t_ *augobj;
1259 struct xpath_pcb_t_ *when;
1260 dlq_hdr_t metadataQ;
1261 dlq_hdr_t appinfoQ;
1262 dlq_hdr_t iffeatureQ;
1268
1270 dlq_hdr_t *dataruleQ;
1271
1279 void *cbset;
1280
1282 void *get2cb;
1283
1291 struct ncx_module_t_ *mod;
1292
1295
1297 struct xpath_pcb_t_ *xpath_backptr[OBJ_NUM_XPATH_BACKPTRS];
1298
1300 dlq_hdr_t xpath_backptrQ; // backptr to xpath_pcb_t
1301
1307
1309 dlq_hdr_t *errmsgQ; // Q of obj_errmsg_t
1310
1316
1319
1322
1325
1328
1338
1350
1352 union def_ {
1353 obj_container_t *container;
1354 obj_leaf_t *leaf;
1355 obj_leaflist_t *leaflist;
1356 obj_list_t *list;
1357 obj_choice_t *choic;
1358 obj_case_t *cas;
1359 obj_uses_t *uses;
1360 obj_refine_t *refine;
1361 obj_augment_t *augment;
1362 obj_rpc_t *rpc;
1363 obj_rpcio_t *rpcio;
1364 obj_notif_t *notif;
1365 } def;
1366
1371
1372
1378 void *bool_eval_cb; // xpath_bool_eval_fn_t
1379
1382
1388
1391
1392} YPACK obj_template_t;
1393
1394
1396typedef struct obj_metadata_t_ {
1397 dlq_hdr_t qhdr;
1398 struct obj_template_t_ *parent;
1399 xmlChar *name;
1403 boolean typdef_copy;
1404} YPACK obj_metadata_t;
1405
1406
1408typedef enum obj_deviate_arg_t_ {
1415
1416
1418typedef struct obj_deviate_t_ {
1419 dlq_hdr_t qhdr;
1428
1430 boolean empty;
1431
1434
1437
1440
1443
1445 xmlChar *units;
1446
1449
1451 dlq_hdr_t defval_tkQ;
1452
1454 boolean config;
1455
1458
1460 boolean mandatory;
1461
1464
1466 uint32 minelems;
1470 uint32 maxelems;
1472 dlq_hdr_t mustQ;
1473 dlq_hdr_t uniqueQ;
1474 dlq_hdr_t appinfoQ;
1475} YPACK obj_deviate_t;
1476
1477
1479typedef struct obj_deviation_t_ {
1480 dlq_hdr_t qhdr;
1481 xmlChar *target;
1482 xmlChar *targmodname;
1486 xmlChar *descr;
1487
1489 xmlChar *ref;
1490
1493 xmlChar *devmodname;
1494 boolean empty;
1495 boolean annotation;
1497 dlq_hdr_t deviateQ;
1498 dlq_hdr_t appinfoQ;
1499} YPACK obj_deviation_t;
1500
1501
1512typedef boolean
1514 void *cookie1,
1515 void *cookie2,
1516 boolean nonconfig_warn);
1517
1518
1519#define OBJ_SET_TESTFLAGS(OBJ, FL) (OBJ)->testflags = FL
1520
1521#define OBJ_GET_TESTFLAGS(OBJ) (OBJ)->testflags
1522
1523#define OBJ_SET_DESC_TESTFLAGS(OBJ, FL) (OBJ)->desc_testflags = FL
1524
1525#define OBJ_GET_DESC_TESTFLAGS(OBJ) (OBJ)->desc_testflags
1526
1527#define OBJ_UPDATE_DESC_TESTFLAGS(OBJ, FL) (OBJ)->desc_testflags |= FL
1528
1531/********************************************************************
1532* *
1533* F U N C T I O N S *
1534* *
1535*********************************************************************/
1536
1553extern obj_template_t *
1554 obj_new_template (obj_type_t objtype);
1555
1556
1566extern void
1568
1569
1582extern obj_template_t *
1583 obj_find_template (dlq_hdr_t *que,
1584 const xmlChar *modname,
1585 const xmlChar *objname);
1586
1587
1599extern obj_template_t *
1600 obj_find_schema_template ( dlq_hdr_t *que,
1601 const xmlChar *modname,
1602 const xmlChar *objname );
1603
1604
1616extern const obj_template_t *
1617 obj_find_template_con (dlq_hdr_t *que,
1618 const xmlChar *modname,
1619 const xmlChar *objname);
1620
1621
1633extern obj_template_t *
1634 obj_find_template_test (dlq_hdr_t *que,
1635 const xmlChar *modname,
1636 const xmlChar *objname);
1637
1638
1652extern obj_template_t *
1654 const xmlChar *modname,
1655 const xmlChar *objname);
1656
1657
1673extern obj_template_t *
1675 const xmlChar *modname,
1676 const xmlChar *objname);
1677
1678
1700extern obj_template_t *
1702 const xmlChar *modname,
1703 const xmlChar *objname,
1704 ncx_name_match_t match_names,
1705 boolean alt_names,
1706 boolean dataonly,
1707 status_t *retres);
1708
1709
1723extern obj_template_t *
1725 const xmlChar *modname,
1726 const xmlChar *objname);
1727
1728
1745extern obj_template_t *
1747 const xmlChar *modname,
1748 const xmlChar *objname);
1749
1750
1767extern obj_template_t *
1769 const xmlChar *modname,
1770 const xmlChar *objname);
1771
1772
1789extern obj_template_t *
1791 const xmlChar *modname,
1792 const xmlChar *objname);
1793
1794
1809extern obj_template_t *
1811 xmlns_id_t nsid,
1812 const xmlChar *objname);
1813
1814
1839extern obj_template_t *
1841 const xmlChar *modname,
1842 const xmlChar *objname,
1843 ncx_name_match_t match_names,
1844 boolean alt_names,
1845 boolean dataonly,
1846 status_t *retres);
1847
1848
1859extern obj_template_t *
1861 const xmlChar *modname,
1862 const xmlChar *objname,
1863 uint32 objnamelen);
1864
1865
1887extern obj_template_t *
1889 const xmlChar *modname,
1890 const xmlChar *objname,
1891 uint32 objnamelen,
1892 uint32 *matchcount);
1893
1894
1905extern obj_template_t *
1907
1908
1919extern obj_template_t *
1921
1922
1933extern obj_template_t *
1935
1936
1951extern obj_template_t *
1953
1954
1965extern obj_template_t *
1967
1968
1979extern obj_template_t *
1981
1982
1993extern obj_template_t *
1995
1996
2007extern obj_template_t *
2009
2010
2025extern obj_template_t *
2027
2028
2039extern obj_template_t *
2041
2042
2053extern obj_template_t *
2055
2056
2067extern obj_template_t *
2069
2070
2082extern obj_template_t *
2084
2085
2097extern obj_template_t *
2099
2100
2117extern obj_template_t *
2119 boolean stopnext);
2120
2121
2157extern boolean
2159 obj_walker_fn_t walkerfn,
2160 void *cookie1,
2161 void *cookie2,
2162 obj_template_t *startnode,
2163 const xmlChar *modname,
2164 const xmlChar *childname,
2165 boolean configonly,
2166 boolean textmode,
2167 boolean useroot);
2168
2169
2209extern boolean
2211 obj_walker_fn_t walkerfn,
2212 void *cookie1,
2213 void *cookie2,
2214 obj_template_t *startnode,
2215 const xmlChar *modname,
2216 const xmlChar *name,
2217 boolean configonly,
2218 boolean textmode,
2219 boolean useroot,
2220 boolean orself,
2221 boolean *fncalled);
2222
2223
2263extern boolean
2265 obj_walker_fn_t walkerfn,
2266 void *cookie1,
2267 void *cookie2,
2268 obj_template_t *startnode,
2269 const xmlChar *modname,
2270 const xmlChar *name,
2271 boolean configonly,
2272 boolean textmode,
2273 boolean useroot,
2274 boolean orself,
2275 boolean *fncalled);
2276
2277
2320extern boolean
2322 obj_walker_fn_t walkerfn,
2323 void *cookie1,
2324 void *cookie2,
2325 obj_template_t *startnode,
2326 const xmlChar *modname,
2327 const xmlChar *name,
2328 boolean configonly,
2329 boolean dblslash,
2330 boolean textmode,
2331 boolean useroot,
2332 ncx_xpath_axis_t axis,
2333 boolean *fncalled);
2334
2335
2344extern obj_case_t *
2346 const xmlChar *modname,
2347 const xmlChar *casname);
2348
2349
2350
2361extern obj_template_t *
2363 const xmlChar *name);
2364
2365
2371extern void
2372 obj_clean_datadefQ (dlq_hdr_t *que);
2373
2374
2382extern typ_template_t *
2384 const xmlChar *typname);
2385
2386
2393extern typ_template_t *
2395
2396
2404extern grp_template_t *
2406 const xmlChar *grpname);
2407
2414extern grp_template_t *
2416
2417
2433extern status_t
2434 obj_set_named_type (void *pcb, // yang_pcb_t
2435 tk_chain_t *tkc,
2436 ncx_module_t *mod,
2437 const xmlChar *typname,
2438 typ_def_t *typdef,
2439 obj_template_t *parent,
2440 grp_template_t *grp);
2441
2442
2465extern obj_template_t *
2467 obj_template_t *srcobj,
2468 dlq_hdr_t *mobjQ);
2469
2470
2484extern status_t
2486 obj_template_t *mobj);
2487
2488
2489
2514extern obj_template_t *
2516 obj_template_t *srcobj,
2517 dlq_hdr_t *mobjQ,
2518 boolean sm_clone);
2519
2520
2545extern obj_template_t *
2547 obj_template_t *srcobj,
2548 dlq_hdr_t *mobjQ);
2549
2550
2551/******************** obj_unique_t ********************/
2552
2553
2559extern obj_unique_t *
2560 obj_new_unique (void);
2561
2562
2568extern void
2570
2571
2577extern void
2579
2580
2586extern void
2588
2589
2595extern obj_unique_comp_t *
2596 obj_new_unique_comp (void);
2597
2598
2604extern void
2606
2607
2616extern obj_unique_t *
2617 obj_find_unique (dlq_hdr_t *que,
2618 const xmlChar *xpath);
2619
2620
2627extern obj_unique_t *
2629
2630
2637extern obj_unique_t *
2639
2640
2647extern obj_unique_comp_t *
2649
2650
2657extern obj_unique_comp_t *
2659
2660
2666extern obj_key_t *
2667 obj_new_key (void);
2668
2669
2675extern void
2676 obj_free_key (obj_key_t *key);
2677
2678
2686extern obj_key_t *
2687 obj_find_key (dlq_hdr_t *que,
2688 const xmlChar *keycompname);
2689
2690
2699extern obj_key_t *
2700 obj_find_key2 (dlq_hdr_t *que,
2701 obj_template_t *keyobj);
2702
2703
2710extern obj_key_t *
2712
2713
2720extern obj_key_t *
2722
2723
2730extern const obj_key_t *
2731 obj_first_ckey (const obj_template_t *obj);
2732
2733
2740extern obj_key_t *
2741 obj_next_key (obj_key_t *objkey);
2742
2743
2750extern obj_key_t *
2751 obj_prev_key (obj_key_t *objkey);
2752
2753
2760extern const obj_key_t *
2761 obj_next_ckey (const obj_key_t *objkey);
2762
2763
2770extern uint32
2771 obj_key_count (const obj_template_t *obj);
2772
2773
2781extern uint32
2783
2784
2798extern void
2800 void *cookie1,
2801 void *cookie2,
2802 obj_walker_fn_t walkerfn);
2803
2804
2811extern boolean
2812 obj_any_rpcs (const dlq_hdr_t *datadefQ);
2813
2814
2821extern boolean
2822 obj_any_notifs (const dlq_hdr_t *datadefQ);
2823
2824
2830extern obj_deviate_t *
2831 obj_new_deviate (void);
2832
2833
2839extern void
2841
2842
2849extern const xmlChar *
2851
2852
2858extern obj_deviation_t *
2859 obj_new_deviation (void);
2860
2861
2867extern void
2869
2870
2876extern void
2877 obj_clean_deviationQ (dlq_hdr_t *deviationQ);
2878
2879
2888extern status_t
2890 xmlChar **buff);
2891
2892
2902extern status_t
2903 obj_gen_object_id_prefix (const obj_template_t *obj, xmlChar **buff);
2904
2905
2906
2917extern status_t
2919 xmlChar **buff);
2920
2921
2932extern status_t
2934 const obj_template_t *obj,
2935 xmlChar **buff);
2936
2937
2950extern status_t
2952 xmlChar **buff);
2953
2954
2964 xmlChar **buff);
2965
2966
2977 const obj_template_t *stopobj,
2978 xmlChar **buff);
2979
2980
2993extern status_t
2995 const obj_template_t *obj,
2996 xmlChar **buff);
2997
2998
3014extern status_t
3016 xmlChar *buff,
3017 uint32 bufflen,
3018 uint32 *reallen);
3019
3020
3034extern status_t
3036 xmlChar *buff,
3037 uint32 bufflen,
3038 uint32 *reallen);
3039
3040
3041
3042
3052extern status_t
3054 xmlChar **buff);
3055
3056
3067extern status_t
3069 xmlChar **buff);
3070
3071
3078extern const xmlChar *
3079 obj_get_name (const obj_template_t *obj);
3080
3081
3089extern status_t
3091 const xmlChar *objname);
3092
3093
3106extern boolean
3107 obj_has_name (const obj_template_t *obj);
3108
3109
3118extern boolean
3120
3121
3128extern ncx_status_t
3129 obj_get_status (const obj_template_t *obj);
3130
3131
3138extern const xmlChar *
3140
3141
3151extern const xmlChar *
3153
3154
3162extern const xmlChar *
3164
3165
3173extern const xmlChar *
3175
3176
3183extern const void *
3185
3186
3193extern const xmlChar *
3194 obj_get_reference (const obj_template_t *obj);
3195
3196
3204extern const void *
3206
3207
3208#define obj_is_config obj_get_config_flag_deep
3209
3210
3220extern boolean
3222
3223
3237extern boolean
3239 boolean *setflag);
3240
3241
3249extern ncx_access_t
3251
3252
3259extern dlq_hdr_t *
3261
3262
3269extern dlq_hdr_t *
3270 obj_get_mustQ (const obj_template_t *obj);
3271
3272
3279extern dlq_hdr_t *
3280 obj_get_leafrefQ (const obj_template_t *obj);
3281
3282
3292extern const xmlChar *
3293 obj_get_typestr (const obj_template_t *obj);
3294
3295
3302extern dlq_hdr_t *
3304
3305
3312extern const dlq_hdr_t *
3313 obj_get_cdatadefQ (const obj_template_t *obj);
3314
3315
3326extern const xmlChar *
3327 obj_get_default (const obj_template_t *obj);
3328
3329
3338extern const xmlChar *
3340 ncx_backptr_t **thisdef);
3341
3342
3355extern const xmlChar *
3357 ncx_backptr_t *lastdef,
3358 ncx_backptr_t **thisdef);
3359
3360
3367extern obj_template_t *
3369
3370
3380extern boolean
3382
3383
3393extern boolean
3395
3396
3405extern uint32
3406 obj_get_level (const obj_template_t *obj);
3407
3408
3424extern uint32
3425 obj_get_level_mp (const obj_template_t *obj);
3426
3427
3437extern uint32
3439
3440
3450extern boolean
3451 obj_has_typedefs (const obj_template_t *obj);
3452
3453
3461extern typ_def_t *
3463
3464
3472extern typ_def_t *
3474
3475
3483extern const typ_def_t *
3484 obj_get_ctypdef (const obj_template_t *obj);
3485
3486
3493extern ncx_btype_t
3494 obj_get_basetype (const obj_template_t *obj);
3495
3496
3503extern const xmlChar *
3505
3506
3513extern const xmlChar *
3515
3516
3523extern const xmlChar *
3524 obj_get_mod_name (const obj_template_t *obj);
3525
3526
3533extern ncx_module_t *
3535
3536
3543extern boolean
3545
3546
3554extern ncx_module_t *
3556
3557
3564extern const xmlChar *
3566
3567
3574extern const xmlChar *
3575 obj_get_type_name (const obj_template_t *obj);
3576
3577
3584extern xmlns_id_t
3585 obj_get_nsid (const obj_template_t *obj);
3586
3587
3594extern ncx_sid_t
3595 obj_get_yang_sid (const obj_template_t *obj);
3596
3597
3604extern uint32
3606
3613extern ncx_iqual_t
3615
3616
3624extern ncx_iqual_t
3626 boolean required);
3627
3628
3637extern boolean
3639 uint32 *minelems);
3640
3641
3650extern boolean
3652 uint32 *maxelems);
3653
3654
3661extern const xmlChar *
3663
3664
3671extern obj_template_t *
3673
3674
3682extern const obj_template_t *
3683 obj_get_cparent (const obj_template_t *obj);
3684
3685
3693extern obj_template_t *
3695
3696
3706extern const obj_template_t *
3708
3709
3717extern obj_template_t *
3719
3720
3721
3728extern const xmlChar *
3730
3731
3739extern void *
3741
3742
3769extern status_t
3771 obj_template_t *chobj,
3772 const xml_node_t *curnode,
3773 boolean xmlorder,
3774 dlq_hdr_t *force_modQ,
3775 obj_template_t **rettop,
3776 obj_template_t **retobj);
3777
3778
3785extern uint32
3787
3788
3796extern obj_template_t *
3798
3799
3814extern boolean
3816
3817
3832extern boolean
3834 boolean *ingrp);
3835
3836
3844extern uint8
3846
3847
3855extern const ncx_iffeature_t *
3857
3858
3866extern const ncx_iffeature_t *
3867 obj_get_next_iffeature (const ncx_iffeature_t *iffeature);
3868
3869
3876extern boolean
3877 obj_is_anyxml (const obj_template_t *obj);
3878
3879
3886extern boolean
3887 obj_is_anydata (const obj_template_t *obj);
3888
3889
3897extern boolean
3898 obj_is_any (const obj_template_t *obj);
3899
3900
3907extern boolean
3908 obj_is_leaf (const obj_template_t *obj);
3909
3910
3917extern boolean
3918 obj_is_leaf_list (const obj_template_t *obj);
3919
3920
3927extern boolean
3928 obj_is_list (const obj_template_t *obj);
3929
3930
3937extern boolean obj_in_list (const obj_template_t *obj);
3938
3939
3946extern boolean
3947 obj_is_container (const obj_template_t *obj);
3948
3949
3956extern boolean
3957 obj_is_choice (const obj_template_t *obj);
3958
3959
3966extern boolean
3967 obj_is_case (const obj_template_t *obj);
3968
3969
3976extern boolean
3977 obj_is_uses (const obj_template_t *obj);
3978
3979
3986extern boolean
3987 obj_is_leafy (const obj_template_t *obj);
3988
3989
3996extern boolean obj_is_terminal (const obj_template_t *obj);
3997
3998
4006extern boolean
4008
4009
4020extern boolean
4022 boolean config_only);
4023
4024
4033extern boolean
4035
4036
4045extern boolean
4046 obj_is_cloned (const obj_template_t *obj);
4047
4048
4057extern boolean
4058 obj_is_augclone (const obj_template_t *obj);
4059
4060
4068extern boolean
4069 obj_is_augment (const obj_template_t *obj);
4070
4071
4079extern boolean obj_in_augment (const obj_template_t *obj);
4080
4081
4089extern boolean
4090 obj_is_refine (const obj_template_t *obj);
4091
4092
4101extern boolean
4102 obj_is_data (const obj_template_t *obj);
4103
4104
4114extern boolean
4115 obj_is_data_db (const obj_template_t *obj);
4116
4117
4125extern boolean
4126 obj_is_data_node (const obj_template_t *obj);
4127
4128
4136extern boolean
4137 obj_in_rpc (const obj_template_t *obj);
4138
4139
4146extern boolean
4147 obj_in_rpc_reply (const obj_template_t *obj);
4148
4149
4156extern boolean
4157 obj_in_notif (const obj_template_t *obj);
4158
4159
4166extern boolean
4167 obj_is_rpc (const obj_template_t *obj);
4168
4169
4176extern boolean
4177 obj_is_sm_rpc (const obj_template_t *obj);
4178
4179
4186extern boolean obj_is_rpcio (const obj_template_t *obj);
4187
4188
4195extern boolean obj_is_rpcio_input (const obj_template_t *obj);
4196
4197
4204extern boolean
4205 obj_is_action (const obj_template_t *obj);
4206
4207
4214extern boolean obj_in_action (const obj_template_t *obj);
4215
4216
4223extern boolean
4224 obj_is_notif (const obj_template_t *obj);
4225
4226
4233extern boolean
4234 obj_is_sm_notif (const obj_template_t *obj);
4235
4236
4249extern boolean
4250 obj_is_empty (const obj_template_t *obj);
4251
4252
4260extern boolean
4261 obj_is_match (const obj_template_t *obj1,
4262 const obj_template_t *obj2);
4263
4264
4271extern boolean
4272 obj_is_hidden (const obj_template_t *obj);
4273
4274
4281extern boolean
4283
4284
4291extern boolean
4292 obj_is_root (const obj_template_t *obj);
4293
4294
4300extern void
4302
4303
4310extern boolean
4311 obj_is_rpc_root (const obj_template_t *obj);
4312
4313
4320extern boolean
4321 obj_is_password (const obj_template_t *obj);
4322
4323
4330extern boolean
4331 obj_is_xsdlist (const obj_template_t *obj);
4332
4333
4340extern boolean
4341 obj_is_cli (const obj_template_t *obj);
4342
4343
4352extern boolean obj_is_dirty (const obj_template_t *obj,
4353 ncx_cfg_t cfgid);
4354
4355
4362extern boolean
4363 obj_is_key (const obj_template_t *obj);
4364
4365
4372extern boolean
4373 obj_is_abstract (const obj_template_t *obj);
4374
4375
4383extern boolean obj_in_abstract (const obj_template_t *obj);
4384
4385
4392extern boolean
4393 obj_is_deleted (const obj_template_t *obj);
4394
4395
4404extern boolean
4405 obj_is_deleted_ex (const obj_template_t *obj);
4406
4407
4414extern boolean
4416
4417
4425extern boolean
4427
4428
4435extern boolean
4436 obj_is_secure (const obj_template_t *obj);
4437
4438
4446extern boolean
4448
4449
4457extern boolean
4459
4460
4468extern boolean
4470
4471
4479extern boolean
4481
4482
4491extern boolean
4493
4494
4501extern boolean
4503
4504
4514extern boolean
4516
4517
4525extern boolean
4527
4528
4537extern boolean
4538 obj_is_top (const obj_template_t *obj);
4539
4548extern boolean
4549 obj_in_top_choice (const obj_template_t *obj);
4550
4551
4558extern boolean
4559 obj_is_datapath (const obj_template_t *obj);
4560
4561
4573extern boolean
4575
4576
4584extern boolean
4586
4587
4596extern boolean
4598
4599
4607extern boolean obj_has_ro_descendants (obj_template_t *obj);
4608
4609
4617extern boolean obj_has_rw_children (obj_template_t *obj);
4618
4619
4629extern boolean obj_has_rw_children_ex (obj_template_t *obj,
4630 boolean term_only);
4631
4632
4639extern boolean
4641
4642
4649extern boolean
4651
4652
4661extern boolean
4663
4664
4670extern obj_metadata_t *
4671 obj_new_metadata (void);
4672
4673
4683extern void
4685
4686
4694extern status_t
4696 obj_template_t *obj);
4697
4698
4706extern obj_metadata_t *
4708 const xmlChar *name);
4709
4710
4717extern obj_metadata_t *
4719
4720
4727extern obj_metadata_t *
4728 obj_next_metadata (const obj_metadata_t *meta);
4729
4730
4741extern void
4743
4744
4751extern void
4753
4754
4762extern uint32
4764
4765
4775extern void
4777 dlq_hdr_t *datadefQ,
4778 uint32 startindent,
4779 uint32 indent);
4780
4781
4788extern const xmlChar *
4790
4791
4797extern void
4798 obj_delete_obsolete (dlq_hdr_t *objQ);
4799
4800
4807extern const xmlChar *
4808 obj_get_altname (const obj_template_t *obj);
4809
4810
4818extern obj_template_t *
4820
4821
4829extern obj_template_t *
4831
4832
4840extern const xmlChar *
4842
4843
4850extern boolean
4852
4853
4860extern boolean
4862
4863
4871extern boolean
4873
4874
4882extern boolean
4884
4885
4893extern boolean
4895
4896
4905extern boolean
4907
4908
4915extern void
4917
4918
4927extern boolean
4929
4930
4939extern boolean
4941
4942
4951extern boolean
4953
4954
4961extern obj_iffeature_ptr_t *
4963
4964
4970extern void obj_free_iffeature_ptr (obj_iffeature_ptr_t *iffptr);
4971
4972
4979extern obj_iffeature_ptr_t *
4981
4982
4989extern obj_iffeature_ptr_t *
4991
4992
4999extern ncx_backptr_t *
5001
5002
5009extern ncx_backptr_t *
5011
5012
5020extern boolean
5022 struct xpath_pcb_t_ *xpath);
5023
5024
5032extern struct xpath_pcb_t_ *
5034 struct xpath_pcb_t_ *xpath);
5035
5036
5043extern struct xpath_pcb_t_ *
5045
5046
5047
5058extern status_t
5060 struct xpath_pcb_t_ *xpath);
5061
5062
5072extern void
5074 struct xpath_pcb_t_ *xpath);
5075
5076
5085extern status_t
5087
5088
5097extern void
5099 ncx_cfg_t cfg_id,
5100 boolean flag);
5101
5102
5118extern boolean
5120
5121
5142extern boolean
5144
5145
5153extern boolean
5155
5156
5169extern void
5171 ncx_module_t *mod);
5172
5173
5180extern void
5182
5183
5192extern boolean
5194
5195
5202extern void
5204 uint16 keynum);
5205
5206
5213extern uint16
5215
5216
5224extern boolean
5226
5227
5234extern boolean
5236
5237
5244extern boolean
5246
5247
5254extern void
5256
5257
5264extern boolean obj_notif_enabled (const obj_template_t *obj);
5265
5266
5273extern boolean obj_notif_log_drops (const obj_template_t *obj);
5274
5275
5282extern void obj_set_notif_enabled (obj_template_t *obj,
5283 boolean enabled);
5284
5285
5292extern void obj_set_notif_log_drops (const obj_template_t *obj,
5293 boolean enabled);
5294
5295
5303extern boolean
5304 obj_unload_active (const obj_template_t *obj);
5305
5306
5313extern boolean
5314 obj_is_obsolete (const obj_template_t *obj);
5315
5316
5324extern boolean
5326
5327
5334extern void
5336 uint8 prio);
5337
5338
5345extern uint8
5347
5348
5356extern boolean
5358
5359
5368
5369
5377extern boolean
5379
5380
5387extern boolean
5388 obj_is_crypt_hash (const obj_template_t *obj);
5389
5390
5401extern void
5403
5404
5410extern obj_defval_tk_t *
5411 obj_new_defval_tk (void);
5412
5413
5419extern void
5421
5422
5429extern dlq_hdr_t *
5431
5432
5439extern obj_defval_tk_t *
5440 obj_first_defval_tk (const obj_refine_t *ref);
5441
5442
5449extern obj_defval_tk_t *
5450 obj_next_defval_tk (const obj_defval_tk_t *defval_tk);
5451
5452#define obj_next_dev_defval_tk(D) obj_next_defval_tk(D)
5453
5454
5461extern obj_defval_tk_t *
5463
5464
5471extern boolean
5473
5474
5481extern void
5483 const xmlChar *defval);
5484
5485
5493extern boolean
5495 const xmlChar *find_defval);
5496
5497
5504extern void
5506
5507
5512extern void
5513 obj_enter_xpath_mode (void);
5514
5515
5520extern void
5521 obj_exit_xpath_mode (void);
5522
5523
5531extern obj_key_t *
5533 const xmlChar *keyname);
5534
5535
5542extern ncx_yang_version_t
5544
5545
5555extern boolean
5557
5558
5564extern void
5566
5567
5576extern boolean
5578
5579
5585extern void
5587
5588
5594extern void
5596
5597
5598
5599#if defined(WITH_SNMP) && defined(WITH_RESTCONF)
5606extern const xmlChar *
5608
5609
5620extern obj_oid_t *
5622 boolean *malloced);
5623
5624#endif // WITH_SNMP and WITH_RESTCONF
5625
5626
5635 dlq_hdr_t *keystackQ);
5636
5637
5643extern void obj_dump_keystackQ (dlq_hdr_t *keystackQ);
5644
5645
5652extern void obj_clr_enable_chk (obj_template_t *obj);
5653
5654
5662extern status_t
5664 void *rule);
5665
5666
5673extern void
5675 const void *rule);
5676
5677
5685extern boolean
5687 void *rule);
5688
5689
5699extern status_t
5701 const xmlChar *basestr,
5702 obj_errmsg_t **ret_errmsg);
5703
5704
5712extern status_t
5714 const xmlChar *parmstr);
5715
5716
5725extern status_t
5727 const xmlChar *parmstr,
5728 boolean is_errortag);
5729
5730
5746extern boolean
5748
5749
5757extern boolean
5758 obj_is_singular (const obj_template_t *obj);
5759
5760
5770extern boolean
5772
5773
5780extern boolean
5781 obj_ok_for_nolock (const obj_template_t *obj);
5782
5783
5790extern boolean
5792
5793
5800extern boolean
5802
5803
5810extern boolean obj_get_xpath_oper_ok (const obj_template_t *obj);
5811
5812
5818extern void obj_set_xpath_oper_ok (obj_template_t *obj);
5819
5820
5828extern boolean
5830
5831
5842extern boolean
5844
5845
5852extern obj_template_t *
5854
5855
5862extern boolean
5864
5865
5872extern ncx_module_t *
5874
5875
5883extern obj_template_t *
5885
5886
5897extern boolean
5898 obj_is_ancestor (const obj_template_t *ancestor,
5899 const obj_template_t *obj);
5900
5901
5907extern void
5909
5910
5921extern boolean
5923
5924
5931extern obj_template_t *
5933
5934
5935
5946extern boolean
5948
5949
5950
5961extern boolean
5963
5964
5976extern boolean
5978
5979
5980
5988extern ncx_sm_rootcb_t *
5990
5991
5992
5999extern status_t
6001
6002
6003/*
6004* @brief Object Compare
6005*
6006* @param obj1 object to check
6007* @param obj2 object to check
6008*
6009* @return TRUE if objects match
6010*/
6011extern boolean
6012 obj_match_sm_objs (obj_template_t *obj1,
6013 obj_template_t *obj2);
6014
6023extern boolean
6025
6026
6039extern status_t
6041 const xmlChar *prefix,
6042 const xmlChar *name,
6043 const xmlChar **retval);
6044
6045
6053extern status_t
6055 obj_template_t *listobj);
6056
6057
6065extern obj_template_t *
6067
6068
6077extern obj_template_t *
6079 obj_template_t *curbackptr);
6080
6081
6091extern boolean
6093
6094
6095
6103extern void
6105 ncx_sort_type_t typ);
6106
6107
6115extern ncx_sort_type_t
6116 obj_get_sort_type (const obj_template_t *obj);
6117
6124extern boolean
6126
6127
6137extern grp_template_t *
6138 obj_get_uses_grp (obj_template_t *usesobj);
6139
6140
6150extern obj_template_t *
6151 obj_get_uses_obj (obj_template_t *obj);
6152
6153
6163extern obj_template_t *
6164 obj_get_augment_obj (obj_template_t *obj);
6165
6166
6180extern boolean
6182
6183
6191extern boolean
6193
6194
6198#ifdef __cplusplus
6199} /* end extern 'C' */
6200#endif
6201
6202#endif /* _H_obj */
log_debug_t
The debug level enumerations used in util/log.c.
Definition: log.h:348
status_t
global error return code
Definition: status_enum.h:219
uint16 xmlns_id_t
integer handle for registered namespaces
Definition: xmlns.h:89
ncx_leafref_class_t
Classification for the types of leafref path statements wrt/ how they can be cached.
Definition: ncxtypes.h:1571
ncx_status_t
enumeration for different YANG data-def status values
Definition: ncxtypes.h:583
ncx_sort_type_t
the sort type enumeration used for system-ordered list aand leaf-list objects
Definition: ncxtypes.h:1801
uint32 ncx_sid_t
Standard YANG SID is a 63-bit integer defined as uint64.
Definition: ncxtypes.h:756
ncx_yang_version_t
enumeration for different YANG language versions
Definition: ncxtypes.h:1013
ncx_cfg_t
hardwire the 3 standard configs
Definition: ncxtypes.h:548
uint64 ncx_transaction_id_t
transaction is scoped to single session write operation on a config
Definition: ncxtypes.h:728
ncx_iqual_t
The instance qualifier types are borrowed from ABNF and RelaxNG.
Definition: ncxtypes.h:460
ncx_btype_t
enumeration of the built-in NCX types These types cannot be overridden and cannot be imported
Definition: ncxtypes.h:213
ncx_access_t
NCX Access Control 'max-access' enumeration values Note that access control is applied to the session...
Definition: ncxtypes.h:182
ncx_name_match_t
Node name match modes.
Definition: ncxtypes.h:695
ncx_xpath_axis_t
XPath expression axis types.
Definition: ncxtypes.h:662
obj_metadata_t * obj_find_metadata(const obj_template_t *obj, const xmlChar *name)
Find the object metadata definition in the object.
Definition: obj.c:17242
uint32 obj_get_child_count(const obj_template_t *obj)
Get the number of child nodes the object has.
Definition: obj.c:14694
void obj_set_abstract(obj_template_t *obj)
Set the abstract flag for the yang-data node.
Definition: obj.c:20061
obj_key_t * obj_last_key(obj_template_t *obj)
Get the last key record.
Definition: obj.c:11058
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:13167
boolean obj_is_notif(const obj_template_t *obj)
Check if the object is a notification.
Definition: obj.c:15972
boolean obj_is_external_augment(obj_template_t *obj)
Check if an object is an external augment.
Definition: obj.c:18131
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:17025
const xmlChar * obj_get_description(const obj_template_t *obj)
Get the description field for this obj.
Definition: obj.c:12472
boolean obj_has_name(const obj_template_t *obj)
Check if the specified object type has a name.
Definition: obj.c:12332
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:10564
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:13347
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:21136
obj_key_t * obj_new_key(void)
Alloc and Init a obj_key_t struct.
Definition: obj.c:10912
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:16818
boolean obj_is_case(const obj_template_t *obj)
Check if object is a YANG case.
Definition: obj.c:15240
boolean obj_is_hidden(const obj_template_t *obj)
Check if object is marked as a hidden object.
Definition: obj.c:16059
boolean obj_get_max_elements(obj_template_t *obj, uint32 *maxelems)
Get the max-elements clause for this object, if any.
Definition: obj.c:14350
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:6623
uint32 obj_get_yang_sid_tree(const obj_template_t *obj)
Get the YANG SID Tree ID for this object.
Definition: obj.c:14172
boolean obj_is_cli(const obj_template_t *obj)
Check if object is marked as a CLI object.
Definition: obj.c:16180
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:16034
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:7132
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:16836
boolean obj_is_rpcio(const obj_template_t *obj)
Check if the object is an RPC IO node.
Definition: obj.c:15870
boolean obj_get_leaf_list_defset(const obj_template_t *obj)
Get the defset flag for a leaf-list.
Definition: obj.c:19846
obj_unique_t * obj_first_unique(obj_template_t *listobj)
Get the first unique-stmt for a list.
Definition: obj.c:10814
boolean obj_get_config_flag_check(const obj_template_t *obj, boolean *ingrp)
get config flag during YANG module checking
Definition: obj.c:14878
const void * obj_get_reference_addr(const obj_template_t *obj)
Get the reference field for this obj.
Definition: obj.c:12759
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:11918
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:15538
ncx_module_t * obj_get_mod(obj_template_t *obj)
Get the module pointer for this object.
Definition: obj.c:13967
boolean obj_is_confirm_data(const obj_template_t *obj)
Check if object is marked as a confirm-data object for CLI.
Definition: obj.c:21796
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:19933
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:13478
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:18362
ncx_backptr_t * obj_first_inherit_when_ptr(obj_template_t *obj)
Get first xpath pointer struct.
Definition: obj.c:18440
const xmlChar * obj_get_oid_string(obj_template_t *obj)
Get object OID sting value.
Definition: obj.c:20086
typ_def_t * obj_get_typdef(obj_template_t *obj)
Get the typdef for the leaf or leaf-list.
Definition: obj.c:13732
grp_template_t * obj_first_grouping(obj_template_t *obj)
Get the first local grouping if any.
Definition: obj.c:9871
void obj_delete_obsolete(dlq_hdr_t *objQ)
Delete any obsolete child nodes within the specified object subtree.
Definition: obj.c:17989
boolean obj_is_password(const obj_template_t *obj)
Check if object is marked as a password object.
Definition: obj.c:16145
boolean obj_get_top_config_flag(const obj_template_t *obj)
Get the config flag for the top-level object.
Definition: obj.c:20587
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:9505
void obj_free_defval_tk(obj_defval_tk_t *def)
Delete an object default tk record;.
Definition: obj.c:19752
boolean obj_find_defval(obj_template_t *obj, const xmlChar *find_defval)
Find a default.
Definition: obj.c:19900
obj_template_t * obj_first_unique_backptr(obj_template_t *leafobj)
Get the first unique backptr for a leaf object.
Definition: obj.c:21622
const xmlChar * obj_get_deviate_arg(obj_deviate_arg_t devarg)
Get the deviate-arg string from its enumeration.
Definition: obj.c:11424
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:19399
void * obj_get_presence_string_field(const obj_template_t *obj)
Get the address ot the presence-stmt value, if any.
Definition: obj.c:14618
boolean obj_is_container(const obj_template_t *obj)
Check if object is a YANG container.
Definition: obj.c:15194
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:10960
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:21284
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:20786
obj_unique_comp_t * obj_new_unique_comp(void)
Alloc and Init a obj_unique_comp_t struct.
Definition: obj.c:10729
boolean obj_is_list(const obj_template_t *obj)
Check if object is a YANG list.
Definition: obj.c:15132
const xmlChar * obj_get_augment_target(obj_template_t *obj)
Get the target path string for an augments object.
Definition: obj.c:18110
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:20739
boolean obj_is_anydata(const obj_template_t *obj)
Check if object is an anydata.
Definition: obj.c:15054
const xmlChar * obj_get_altname(const obj_template_t *obj)
Get the alt-name for this object, if any.
Definition: obj.c:18032
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:11216
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:8569
const xmlChar * obj_get_default(const obj_template_t *obj)
Get the default value for the specified object.
Definition: obj.c:13250
status_t obj_set_mp_flags(obj_template_t *obj)
set the Schema Mount flags and create a rootcb if needed
Definition: obj.c:21318
boolean obj_is_p_container(const obj_template_t *obj)
Check if the object is an Presence-container.
Definition: obj.c:16509
status_t obj_refine_template(obj_template_t *srcobj, obj_template_t *mobj)
Refine Template - Late refine support.
Definition: obj.c:10435
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:21764
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:15394
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:17177
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:7921
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:12015
status_t obj_assign_xpath_backptr(obj_template_t *obj, struct xpath_pcb_t_ *xpath)
Set an xpath-expr backptr.
Definition: obj.c:18603
dlq_hdr_t * obj_get_defvalQ(obj_template_t *obj)
Get the leaf-list default Q.
Definition: obj.c:19770
const xmlChar * obj_get_type_name(const obj_template_t *obj)
Get the typename for an object.
Definition: obj.c:14100
void obj_ban_nolock_get(obj_template_t *obj)
Ban nolock-get for the object.
Definition: obj.c:21089
void obj_free_key(obj_key_t *key)
Free a obj_key_t struct.
Definition: obj.c:10935
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:13296
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:11801
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:16532
const void * obj_get_description_addr(const obj_template_t *obj)
Get the address of the description field for this obj.
Definition: obj.c:12645
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:7818
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:21537
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:11573
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:6511
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:14459
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:14994
void obj_init_unique(obj_unique_t *un)
Init a obj_unique_t struct.
Definition: obj.c:10656
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:19046
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:12118
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:17888
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:21024
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:11253
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:7213
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:15584
obj_key_t * obj_next_key(obj_key_t *objkey)
Get the next key record.
Definition: obj.c:11114
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:18216
void obj_clean_datadefQ(dlq_hdr_t *que)
Clean and free all the obj_template_t structs in the specified Q.
Definition: obj.c:9583
typ_def_t * obj_get_base_typdef(obj_template_t *obj)
Get the base typdef for the leaf or leaf-list.
Definition: obj.c:13772
boolean obj_is_xsdlist(const obj_template_t *obj)
Check if object is marked as an XSD list.
Definition: obj.c:16164
void obj_clean_unique(obj_unique_t *un)
Clean a obj_unique_t struct.
Definition: obj.c:10699
boolean obj_edit2_mode_allowed(obj_template_t *obj)
Check if the current object is EDIT2/3 allowed.
Definition: obj.c:21883
obj_key_t * obj_prev_key(obj_key_t *objkey)
Get the previous key record.
Definition: obj.c:11140
boolean obj_in_action(const obj_template_t *obj)
Check if the object is within or is an action method.
Definition: obj.c:15927
void obj_dump_keystackQ(dlq_hdr_t *keystackQ)
Dump a keystackQ with backptrs to obj_template_t for key leafs.
Definition: obj.c:20327
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:16733
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:18234
boolean obj_ok_for_nolock(const obj_template_t *obj)
check an object OK for nolock
Definition: obj.c:20619
boolean obj_has_typedefs(const obj_template_t *obj)
Check if the object has any nested typedefs in it.
Definition: obj.c:13651
void obj_add_child(obj_template_t *child, obj_template_t *parent)
Add a child object to the specified complex node.
Definition: obj.c:18260
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:19291
boolean obj_in_rpc(const obj_template_t *obj)
Check if the object is in an rpc/input section.
Definition: obj.c:15714
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:16960
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:16204
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:18340
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:21055
boolean obj_is_rpcio_input(const obj_template_t *obj)
Check if the object is an RPC IO node.
Definition: obj.c:15887
const xmlChar * obj_get_alt_description(const obj_template_t *obj)
obj_get_alt_description (DEPRECATED)
Definition: obj.c:12531
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:11618
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:8357
void obj_set_xpath_oper_ok(obj_template_t *obj)
Set the object XPath oper OK flag.
Definition: obj.c:20976
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:8488
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:9319
boolean obj_is_datapath(const obj_template_t *obj)
Check if object is marked as a ywx:datapath object.
Definition: obj.c:16861
obj_defval_tk_t * obj_new_defval_tk(void)
Create a new object default tk record;.
Definition: obj.c:19735
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:17102
void obj_free_unique_comp(obj_unique_comp_t *unc)
Free a obj_unique_comp_t struct.
Definition: obj.c:10752
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:19077
boolean obj_is_crypt_hash(const obj_template_t *obj)
Check if the object is a leaf of type crypt-hash.
Definition: obj.c:19676
boolean obj_rpc_has_input(obj_template_t *obj)
Check if the RPC object has any real input children.
Definition: obj.c:17078
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:15567
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:16259
boolean obj_has_get2cb(obj_template_t *obj)
Check if current object has GET2 callback registered.
Definition: obj.c:20492
boolean obj_match_datarule(obj_template_t *obj, void *rule)
Check if the data-rule back-ptr applies to this node.
Definition: obj.c:20433
const xmlChar * obj_get_mod_prefix(const obj_template_t *obj)
Get the module prefix for this object.
Definition: obj.c:13876
ncx_iqual_t obj_get_iqualval(obj_template_t *obj)
Get the instance qualifier for this object.
Definition: obj.c:14194
obj_iffeature_ptr_t * obj_first_iffeature_ptr(obj_template_t *obj)
Get first if-feature pointer.
Definition: obj.c:18398
boolean obj_in_submodule(obj_template_t *obj)
Check if the object is defined in a submodule.
Definition: obj.c:14005
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:16340
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:18156
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:8291
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:13616
boolean obj_get_min_elements(obj_template_t *obj, uint32 *minelems)
Get the min-elements clause for this object, if any.
Definition: obj.c:14308
boolean obj_is_rpc_root(const obj_template_t *obj)
Check if object is marked as an RPC root object.
Definition: obj.c:16128
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:10090
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:9944
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:7710
boolean obj_any_notifs(const dlq_hdr_t *datadefQ)
Check if there are any notifications in the datadefQ.
Definition: obj.c:11338
boolean obj_rpc_has_output(obj_template_t *obj)
Check if the RPC object has any real output children.
Definition: obj.c:17089
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:17207
void obj_free_deviate(obj_deviate_t *deviate)
Clean and free an object deviate statement.
Definition: obj.c:11393
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:13907
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:15499
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:12612
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:10891
xmlns_id_t obj_get_nsid(const obj_template_t *obj)
Get the namespace ID for this object.
Definition: obj.c:14131
obj_key_t * obj_first_key(obj_template_t *obj)
Get the first key record.
Definition: obj.c:11030
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:12883
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:11861
obj_template_t * obj_get_choice_parent(obj_template_t *obj)
Get the OBJ_TYP_CHOICE parent of the current object; skip OBJ_TYP_CASE.
Definition: obj.c:14556
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:18060
obj_metadata_t * obj_new_metadata(void)
Malloc and initialize the fields in a an obj_metadata_t.
Definition: obj.c:17146
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:8728
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:9609
boolean obj_is_rpc(const obj_template_t *obj)
Check if the object is an RPC method.
Definition: obj.c:15830
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:18814
boolean obj_is_xpath_string(const obj_template_t *obj)
Check if object is an XPath string.
Definition: obj.c:16376
obj_unique_t * obj_find_unique(dlq_hdr_t *que, const xmlChar *xpath)
Find a specific unique-stmt.
Definition: obj.c:10780
void obj_force_disabled(obj_template_t *obj)
Force an object to be disabled.
Definition: obj.c:20224
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:8097
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:18315
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:19980
boolean obj_is_anyxml(const obj_template_t *obj)
Check if object is an anyxml.
Definition: obj.c:15038
boolean obj_is_terminal(const obj_template_t *obj)
Check if object is a proper leaf or leaflist or anyxml.
Definition: obj.c:15297
void obj_force_root(obj_template_t *obj)
Set the object as an anydata type of root.
Definition: obj.c:16111
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:12047
typ_template_t * obj_first_typedef(obj_template_t *obj)
Get the first local typedef for this object, if any.
Definition: obj.c:9708
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:9550
void obj_set_notif_enabled(obj_template_t *obj, boolean enabled)
Set the notification object enabled flag.
Definition: obj.c:19346
uint8 obj_get_sil_priority(obj_template_t *obj)
Get the SIL priority field.
Definition: obj.c:19525
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:19270
status_t obj_set_name(obj_template_t *obj, const xmlChar *objname)
Set the name field for this obj.
Definition: obj.c:12240
const xmlChar * obj_get_presence_string(const obj_template_t *obj)
Get the present-stmt value, if any.
Definition: obj.c:14589
void obj_clean_deviationQ(dlq_hdr_t *deviationQ)
Clean and free an Q of object deviation statements.
Definition: obj.c:11506
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:6839
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:10996
boolean obj_ok_for_cli(obj_template_t *obj)
Figure out if the obj is OK for current CLI implementation.
Definition: obj.c:16880
boolean obj_in_list(const obj_template_t *obj)
Check if object is nested within a list.
Definition: obj.c:15148
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:13390
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:8948
ncx_iqual_t obj_get_iqualval_ex(obj_template_t *obj, boolean required)
Get the instance qualifier for this object.
Definition: obj.c:14222
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:12820
boolean obj_is_obsolete(const obj_template_t *obj)
Check if the object has obsolete status.
Definition: obj.c:19422
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:14656
void obj_number_data_object(obj_template_t *obj)
Number the object tree; initial setup.
Definition: obj.c:19713
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:16242
status_t obj_add_unique_backptr(obj_template_t *leafobj, obj_template_t *listobj)
Add a unique backptr to the leaf.
Definition: obj.c:21579
void obj_clear_xpath_backptr(obj_template_t *obj, struct xpath_pcb_t_ *xpath)
Clear an xpath-expr backptr.
Definition: obj.c:18689
boolean obj_get_config_flag_deep(const obj_template_t *obj)
get config flag during augment expand
Definition: obj.c:14790
const xmlChar * obj_get_mod_version(const obj_template_t *obj)
Get the module version for this object.
Definition: obj.c:14076
boolean obj_has_xpath_stmts(obj_template_t *obj)
Check if any must or when stmts in node or all children.
Definition: obj.c:21493
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:13538
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:7883
boolean obj_is_system_ordered(const obj_template_t *obj)
Check if the object is system or user-ordered.
Definition: obj.c:16460
ncx_yang_version_t obj_get_langver(obj_template_t *obj)
Get the YANG version for this object.
Definition: obj.c:20010
boolean obj_is_cli_text_block(const obj_template_t *obj)
Check if object is marked as ywx:cli-text-block.
Definition: obj.c:18199
boolean obj_is_sm_rpc(const obj_template_t *obj)
Check if the object is a schema mounted RPC method.
Definition: obj.c:15847
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:20144
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:11978
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:19372
obj_template_t * obj_get_parent_choice(obj_template_t *obj)
Get the choice parent of the current object;.
Definition: obj.c:21105
ncx_backptr_t * obj_next_inherit_when_ptr(ncx_backptr_t *ptr)
Get the next xpath pointer struct.
Definition: obj.c:18461
boolean obj_is_data_node(const obj_template_t *obj)
Check if the object is a real node type.
Definition: obj.c:15665
boolean obj_is_mp_parent(obj_template_t *child)
Check if the parent of this object is a Mount Pount object.
Definition: obj.c:21222
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:7593
boolean obj_is_sm_notif(const obj_template_t *obj)
Check if the object is a schema-mounted notification.
Definition: obj.c:15989
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:15620
boolean obj_is_short_case(obj_template_t *obj)
Check if the object is a short case statement.
Definition: obj.c:16765
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:6884
boolean obj_is_mounted(obj_template_t *child)
Check if mounted object.
Definition: obj.c:21170
boolean obj_is_abstract_ex(const obj_template_t *obj)
DUPLICATE FUNCTION OF obj_in_abstract()
Definition: obj.c:20042
boolean obj_any_rpcs(const dlq_hdr_t *datadefQ)
Check if there are any RPC methods in the datadefQ.
Definition: obj.c:11305
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:6711
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:18984
ncx_status_t obj_get_status(const obj_template_t *obj)
Get the status field for this obj.
Definition: obj.c:12413
boolean obj_is_leaf_list(const obj_template_t *obj)
Check if object is a proper leaf-list.
Definition: obj.c:15116
obj_template_t * obj_get_augment_targobj(obj_template_t *obj)
Get the target object for an augments object.
Definition: obj.c:18088
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:7308
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:14723
obj_iffeature_ptr_t * obj_next_iffeature_ptr(obj_iffeature_ptr_t *iffptr)
Get the next if-feature pointer.
Definition: obj.c:18419
obj_metadata_t * obj_next_metadata(const obj_metadata_t *meta)
Get the next object metadata definition in the object.
Definition: obj.c:17305
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:20286
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:18544
ncx_leafref_class_t obj_get_leafref_class(obj_template_t *obj)
Get the leafref class for a leafref object.
Definition: obj.c:19636
obj_defval_tk_t * obj_first_defval_tk(const obj_refine_t *ref)
Get the first defval_tk entry.
Definition: obj.c:19789
void obj_set_sil_priority(obj_template_t *obj, uint8 prio)
Set the SIL priority field.
Definition: obj.c:19497
void obj_clear_datarule(obj_template_t *obj, const void *rule)
Clear the datarule back-ptr for this node.
Definition: obj.c:20397
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:13580
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:7044
obj_template_t * obj_new_template(obj_type_t objtype)
Malloc and initialize the fields in a an object template.
Definition: obj.c:6221
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:15077
boolean obj_in_notif(const obj_template_t *obj)
Check if the object is in a notification.
Definition: obj.c:15796
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:8256
boolean obj_find_xpath_backptr(obj_template_t *obj, struct xpath_pcb_t_ *xpath)
Find an xpath-expr backptr.
Definition: obj.c:18486
void obj_enter_xpath_mode(void)
Enter xpath mode and start ignoring obj_is_enabled.
Definition: obj.c:19952
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:6359
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:11699
boolean obj_is_mandatory(obj_template_t *obj)
Figure out if the obj is YANG mandatory or not.
Definition: obj.c:15317
boolean obj_has_children(obj_template_t *obj)
Check if there are any accessible nodes within the object.
Definition: obj.c:16938
boolean obj_is_schema_instance_string(const obj_template_t *obj)
Check if object is a schema-instance string.
Definition: obj.c:16405
ncx_sid_t obj_get_yang_sid(const obj_template_t *obj)
Get the YANG SID for this object.
Definition: obj.c:14156
obj_deviation_t * obj_new_deviation(void)
Malloc and initialize the fields in a an object deviation statement.
Definition: obj.c:11454
uint16 obj_get_key_num(obj_template_t *obj)
Get the key number for the object.
Definition: obj.c:19193
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:16277
void obj_free_iffeature_ptr(obj_iffeature_ptr_t *iffptr)
Free an obj_iffeature_ptr_t struct.
Definition: obj.c:18382
const xmlChar * obj_get_reference(const obj_template_t *obj)
Get the reference field for this obj.
Definition: obj.c:12702
void obj_force_hidden(obj_template_t *obj)
Force an object to be hidden.
Definition: obj.c:20241
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:21652
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:19661
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:10867
void obj_set_key_leaf(obj_template_t *obj, uint16 keynum)
Set the key data for the object.
Definition: obj.c:19169
boolean obj_is_deleted(const obj_template_t *obj)
Check if object has been deleted by a deviate not-supported.
Definition: obj.c:16314
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:6961
uint8 obj_get_fraction_digits(const obj_template_t *obj)
Get the fraction-digits field from the object typdef.
Definition: obj.c:14962
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:11755
obj_defval_tk_t * obj_first_dev_defval_tk(const obj_deviate_t *dev)
Get the first defval_tk entry.
Definition: obj.c:19827
obj_unique_t * obj_new_unique(void)
Alloc and Init a obj_unique_t struct.
Definition: obj.c:10633
dlq_hdr_t * obj_get_leafrefQ(const obj_template_t *obj)
Get the leafrefQ for this obj.
Definition: obj.c:12995
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:19865
boolean obj_has_iffeature(obj_template_t *obj)
Check any if-feature statements exist for the specified object.
Definition: obj.c:16684
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:20257
const xmlChar * obj_get_units(obj_template_t *obj)
Get the units clause for this object, if any.
Definition: obj.c:14388
boolean obj_is_empty(const obj_template_t *obj)
Check if object was entered in empty fashion:
Definition: obj.c:16015
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:19593
boolean obj_in_rpc_reply(const obj_template_t *obj)
Check if the object is in an rpc-reply/output section.
Definition: obj.c:15759
boolean obj_is_action(const obj_template_t *obj)
Check if the object is a YANG 1.1 action.
Definition: obj.c:15910
boolean obj_is_uses(const obj_template_t *obj)
Check if object is a YANG uses-stmt.
Definition: obj.c:15263
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:8436
const xmlChar * obj_get_keystr(obj_template_t *obj)
Get the key string for this list object.
Definition: obj.c:17963
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:12382
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:12857
boolean obj_is_leafy(const obj_template_t *obj)
Check if object is a proper leaf or leaflist.
Definition: obj.c:15279
void obj_exit_xpath_mode(void)
Exit xpath mode and stop ignoring obj_is_enabled.
Definition: obj.c:19961
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:8216
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:13801
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:20901
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:19147
const ncx_iffeature_t * obj_get_next_iffeature(const ncx_iffeature_t *iffeature)
Get the next if-feature clause (if any)
Definition: obj.c:15020
boolean obj_is_mp_with_rootcb(const obj_template_t *obj)
Check if current object is Mount Point object.
Definition: obj.c:21258
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:18924
boolean obj_notif_enabled(const obj_template_t *obj)
Check if the notification object is enabled.
Definition: obj.c:19308
obj_metadata_t * obj_first_metadata(const obj_template_t *obj)
Get the first object metadata definition in the object.
Definition: obj.c:17280
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:7996
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:14521
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:15469
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:8181
dlq_hdr_t * obj_get_mustQ(const obj_template_t *obj)
Get the mustQ for this obj.
Definition: obj.c:12951
dlq_hdr_t * obj_get_datadefQ(obj_template_t *obj)
Get the datadefQ (or caseQ) if this object has one.
Definition: obj.c:13087
const xmlChar * obj_get_mod_name(const obj_template_t *obj)
Get the module name for this object.
Definition: obj.c:13927
boolean obj_notif_log_drops(const obj_template_t *obj)
Check if the event drops for the notification object is enabled.
Definition: obj.c:19327
void obj_set_ncx_flags(obj_template_t *obj)
Check the NCX appinfo extensions and set flags as needed.
Definition: obj.c:17411
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:20671
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:6552
obj_unique_t * obj_next_unique(obj_unique_t *un)
Get the next unique-stmt for a list.
Definition: obj.c:10843
boolean obj_is_secure(const obj_template_t *obj)
Check if object is tagged ncx:secure.
Definition: obj.c:16426
boolean obj_get_xpath_oper_ok(const obj_template_t *obj)
Get the object XPath oper OK flag.
Definition: obj.c:20951
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:8598
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:15482
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:20198
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:21000
uint32 obj_key_count(const obj_template_t *obj)
Get the number of keys for this object.
Definition: obj.c:11188
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:16076
ncx_btype_t obj_get_basetype(const obj_template_t *obj)
Get the NCX base type enum for the object type.
Definition: obj.c:13829
const xmlChar * obj_get_typestr(const obj_template_t *obj)
Get the name of the object type.
Definition: obj.c:13027
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:19248
boolean obj_is_choice(const obj_template_t *obj)
Check if object is a YANG choice.
Definition: obj.c:15217
status_t obj_cache_datarule(obj_template_t *obj, void *rule)
Set the data-rule back-ptr for this node.
Definition: obj.c:20362
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:14484
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:18290
struct xpath_pcb_t_ * obj_first_xpath_backptr(obj_template_t *obj)
Get the first xpath backptr.
Definition: obj.c:18520
dlq_hdr_t * obj_get_appinfoQ(obj_template_t *obj)
Get the appinfoQ for this obj.
Definition: obj.c:12927
obj_template_t * obj_get_parent(obj_template_t *obj)
Get the parent of the current object.
Definition: obj.c:14434
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:9774
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:18182
obj_defval_tk_t * obj_next_defval_tk(const obj_defval_tk_t *defval_tk)
Get the next defval_tk entry.
Definition: obj.c:19808
const xmlChar * obj_get_name(const obj_template_t *obj)
Get the name field for this obj.
Definition: obj.c:12182
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:17043
void obj_free_unique(obj_unique_t *un)
Free a obj_unique_t struct.
Definition: obj.c:10678
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:16989
boolean obj_in_mandatory_choice(const obj_template_t *obj)
Check if the object is the object is a top child within a case that is in a mandatory choice.
Definition: obj.c:21921
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:6667
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:7961
const obj_key_t * obj_next_ckey(const obj_key_t *objkey)
Get the next key record: Const version.
Definition: obj.c:11164
boolean obj_is_np_container(const obj_template_t *obj)
Check if the object is an Non-Presence-container.
Definition: obj.c:16486
void obj_free_deviation(obj_deviation_t *deviation)
Clean and free an object deviation statement.
Definition: obj.c:11478
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:17331
boolean obj_is_augment(const obj_template_t *obj)
Check if the obj is an augment statement.
Definition: obj.c:15522
const obj_key_t * obj_first_ckey(const obj_template_t *obj)
Get the first key record: Const version.
Definition: obj.c:11086
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:11528
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:21691
boolean obj_is_leaf(const obj_template_t *obj)
Check if object is a proper leaf.
Definition: obj.c:15099
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:12578
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:19226
boolean obj_is_root(const obj_template_t *obj)
Check if object is marked as a root object.
Definition: obj.c:16093
boolean obj_is_singular(const obj_template_t *obj)
Check if the object can have only one instance or not.
Definition: obj.c:20548
obj_template_t * obj_get_top_aio_get2(obj_template_t *child)
Find the top AIO object.
Definition: obj.c:20855
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:18764
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:6583
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:21720
obj_deviate_t * obj_new_deviate(void)
Malloc and initialize the fields in a an object deviate statement.
Definition: obj.c:11368
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:9139
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:19123
boolean obj_is_very_secure(const obj_template_t *obj)
Check if object is tagged ncx:very-secure.
Definition: obj.c:16443
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:17842
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:14041
boolean obj_parent_same_module(const obj_template_t *obj)
Check if the object parent object is the same.
Definition: obj.c:19453
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:13439
boolean obj_has_mandatory_children(obj_template_t *obj)
Check if there are any mandatory children.
Definition: obj.c:20705
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:798
obj_augtype_t
enumeration for different YANG augment statement types
Definition: obj.h:802
unsigned long oid_t
data type used in SNMP
Definition: obj.h:1210
uint8 obj_testflags_t
object test flags
Definition: obj.h:1225
obj_deviate_arg_t
type of deviation for each deviate entry
Definition: obj.h:1408
obj_type_t
enumeration for different YANG data def statement types the enum order is significant!...
Definition: obj.h:691
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:1513
@ OBJ_AUGTYP_RPCOUT
rpc output
Definition: obj.h:805
@ OBJ_AUGTYP_NONE
not set
Definition: obj.h:803
@ OBJ_AUGTYP_DATA
within data
Definition: obj.h:807
@ OBJ_AUGTYP_RPCIN
rpc input
Definition: obj.h:804
@ OBJ_AUGTYP_CASE
case
Definition: obj.h:806
@ OBJ_DARG_NONE
not set
Definition: obj.h:1409
@ OBJ_DARG_NOT_SUPPORTED
deviate not-supported
Definition: obj.h:1413
@ OBJ_DARG_DELETE
deviate delete
Definition: obj.h:1411
@ OBJ_DARG_ADD
deviate add
Definition: obj.h:1410
@ OBJ_DARG_REPLACE
deviate replace
Definition: obj.h:1412
@ OBJ_TYP_CASE
This object represents a YANG case schema node.
Definition: obj.h:721
@ OBJ_TYP_ANYXML
This object represents a YANG 1.1 anydata data node.
Definition: obj.h:695
@ OBJ_TYP_CHOICE
This object represents a YANG choice schema node.
Definition: obj.h:716
@ OBJ_TYP_ACTION
This object represents a YANG 1.1 action schema node.
Definition: obj.h:787
@ OBJ_TYP_REFINE
This object represents a YANG refine statement.
Definition: obj.h:740
@ OBJ_TYP_USES
This object represents a YANG uses schema node.
Definition: obj.h:732
@ OBJ_TYP_NOTIF
This object represents a YANG notification statement.
Definition: obj.h:777
@ OBJ_TYP_LEAF_LIST
This object represents a YANG leaf-list data node.
Definition: obj.h:707
@ OBJ_TYP_LEAF
This object represents a YANG leaf data node.
Definition: obj.h:704
@ OBJ_TYP_ANYDATA
This object represents a YANG 1.1 anydata data node.
Definition: obj.h:780
@ OBJ_TYP_NONE
not set
Definition: obj.h:692
@ OBJ_TYP_RPCIO
This object represents a YANG input or output statement.
Definition: obj.h:768
@ OBJ_TYP_RPC
This object represents a YANG rpc statement.
Definition: obj.h:760
@ OBJ_TYP_CONTAINER
This object represents a YANG presence or non-presence container.
Definition: obj.h:701
@ OBJ_TYP_LIST
This object represents a YANG list data node.
Definition: obj.h:710
@ OBJ_TYP_AUGMENT
This object represents a YANG augment statement.
Definition: obj.h:751
YANG Grouping Statement Handler.
NCX System Logging Manager.
Contains NCX constants.
YANG module data structures Many internal representations of YANG module constructs.
NETCONF protocol remote procedure call common definitions.
Global error messages for status code enumerations.
One YANG 'grouping' definition – sibling set template.
Definition: grp.h:87
used with various structs to cache back-ptrs the 'node' pointer may or may not be malloced!...
Definition: ncxtypes.h:1530
struct to remember error info tkc->cur_err will be checked before tkc->cur for error information
Definition: ncxtypes.h:877
YANG if-feature entry.
Definition: ncxtypes.h:953
representation of one module or submodule during and after parsing
Definition: ncxtypes.h:1138
Schema Mount Root Control Block used in the object template.
Definition: ncxtypes.h:1893
One YANG augment statement struct (top-level or in case-stmt.
Definition: obj.h:1129
dlq_hdr_t datadefQ
Q of obj_template_t.
Definition: obj.h:1145
ncx_status_t status
status-stmt
Definition: obj.h:1144
xmlChar * target
Xpath schema-node target to augment.
Definition: obj.h:1131
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:1137
obj_augtype_t augtype
internal augment type enum
Definition: obj.h:1143
uint16 depth
internal nest depth of augment
Definition: obj.h:1146
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:1134
struct obj_template_t_ * targobj
resolved backptr to augmented object
Definition: obj.h:1140
One YANG 'case' definition.
Definition: obj.h:1003
xmlChar * name
case name
Definition: obj.h:1004
ncx_status_t status
status-stmt
Definition: obj.h:1017
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:1010
boolean nameclone
the nameclone flag is set even though the clone bit is also set; this can probably be removed
Definition: obj.h:1016
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:1007
dlq_hdr_t * datadefQ
Q of obj_template_t.
Definition: obj.h:1012
One YANG 'choice' definition.
Definition: obj.h:987
dlq_hdr_t * caseQ
Q of obj_template_t.
Definition: obj.h:996
xmlChar * name
choice name
Definition: obj.h:988
ncx_status_t status
status-stmt
Definition: obj.h:998
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:995
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:992
xmlChar * defval
default case
Definition: obj.h:989
boolean caseQclone
flag caseQ is cloned
Definition: obj.h:997
One YANG 'container' definition.
Definition: obj.h:848
xmlChar * name
name of container
Definition: obj.h:850
ncx_status_t status
status-stmt
Definition: obj.h:863
xmlChar * ref
reference-stmt (not saved by server)
Definition: obj.h:856
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:864
xmlChar * presence
presence-stmt
Definition: obj.h:859
xmlChar * descr
description-stmt (not saved by server)
Definition: obj.h:853
struct obj_template_t_ * defaultparm
default parm for yangcli
Definition: obj.h:865
dlq_hdr_t * typedefQ
Q of typ_template_t.
Definition: obj.h:860
dlq_hdr_t * datadefQ
Q of obj_template_t.
Definition: obj.h:862
dlq_hdr_t * groupingQ
Q of grp_template_t.
Definition: obj.h:861
One YANG 1.1 default stored in a Q for refine and deviate.
Definition: obj.h:820
xmlChar * def
default value string
Definition: obj.h:822
dlq_hdr_t qhdr
queue header
Definition: obj.h:821
ncx_error_t def_tkerr
file and line info for compiler
Definition: obj.h:823
YANG deviate statement struct.
Definition: obj.h:1418
dlq_hdr_t defval_tkQ
Q of obj_defval_tk_t (leaf-list can have multiple default-stmt)
Definition: obj.h:1451
dlq_hdr_t uniqueQ
Q of obj_unique_t.
Definition: obj.h:1473
ncx_error_t tkerr
the error info for each sub-clause is saved because when the deviation-stmt is parsed,...
Definition: obj.h:1427
dlq_hdr_t appinfoQ
Q of ncx_appinfo_t.
Definition: obj.h:1474
ncx_error_t arg_tkerr
same comment as tkerr
Definition: obj.h:1436
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:1472
boolean config
deviating config-stmt
Definition: obj.h:1454
dlq_hdr_t qhdr
queue header
Definition: obj.h:1419
typ_def_t * typdef
typedef if deviating the type
Definition: obj.h:1439
ncx_error_t type_tkerr
same comment as tkerr
Definition: obj.h:1442
uint32 maxelems
deviating max-elements
Definition: obj.h:1470
ncx_error_t config_tkerr
same comment as tkerr
Definition: obj.h:1457
uint32 minelems
deviating min-elements
Definition: obj.h:1466
ncx_error_t minelems_tkerr
also minset
Definition: obj.h:1467
xmlChar * units
units if deviating the units
Definition: obj.h:1445
boolean empty
deviate-stmt is empty
Definition: obj.h:1430
ncx_error_t units_tkerr
same comment as tkerr
Definition: obj.h:1448
ncx_error_t maxelems_tkerr
also maxset
Definition: obj.h:1471
ncx_error_t mandatory_tkerr
same comment as tkerr
Definition: obj.h:1463
obj_deviate_arg_t arg
deviate argument enum
Definition: obj.h:1433
boolean mandatory
deviating mandatory-stmt
Definition: obj.h:1460
YANG deviation statement struct.
Definition: obj.h:1479
ncx_error_t tkerr
file and line info for compiler
Definition: obj.h:1492
dlq_hdr_t appinfoQ
Q of ncx_appinfo_t.
Definition: obj.h:1498
xmlChar * target
schema-node target to deviate
Definition: obj.h:1481
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:1489
xmlChar * devmodname
set if not the targmod
Definition: obj.h:1493
dlq_hdr_t qhdr
queue header
Definition: obj.h:1480
obj_template_t * targobj
target object when resolved
Definition: obj.h:1483
dlq_hdr_t deviateQ
Q of obj_deviate_t.
Definition: obj.h:1497
status_t res
parse status
Definition: obj.h:1496
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:1486
boolean empty
for display in yangdump
Definition: obj.h:1494
boolean annotation
set from annotation
Definition: obj.h:1495
xmlChar * targmodname
target module name
Definition: obj.h:1482
custom error message filter control block
Definition: obj.h:1179
dlq_hdr_t qhdr
queue header
Definition: obj.h:1180
boolean is_errortag
error-tag flag
Definition: obj.h:1182
xmlChar * matchstr
message string to match
Definition: obj.h:1181
custom error message parameter control block
Definition: obj.h:1187
dlq_hdr_t qhdr
queue header
Definition: obj.h:1188
uint32 len
state : length
Definition: obj.h:1192
xmlChar * path
path of replacement data
Definition: obj.h:1189
xmlChar * valstr
state: value string
Definition: obj.h:1195
custom error message control block
Definition: obj.h:1200
xmlChar * langstr
language string
Definition: obj.h:1203
dlq_hdr_t qhdr
queue header
Definition: obj.h:1201
dlq_hdr_t parmQ
Q of obj_errmsg_parm_t.
Definition: obj.h:1204
xmlChar * basestr
base string
Definition: obj.h:1202
dlq_hdr_t filterQ
Q of obj_errmsg_filter_t.
Definition: obj.h:1205
back-pointer to inherited if-feature statements
Definition: obj.h:1172
dlq_hdr_t qhdr
queue heaader
Definition: obj.h:1173
ncx_iffeature_t * iffeature
if-feature back-ptr
Definition: obj.h:1174
One YANG list key component.
Definition: obj.h:812
struct obj_template_t_ * keyobj
backptr to key object
Definition: obj.h:814
dlq_hdr_t qhdr
queue header
Definition: obj.h:813
boolean seen
used by yangdiff
Definition: obj.h:815
One YANG 'leaf' or 'anyxml' or 'anydata' definition.
Definition: obj.h:871
struct obj_template_t_ * leafrefobj
leafref obj backptr only if btyp == NCX_BT_LEAFREF
Definition: obj.h:909
xmlChar * name
name of leaf or anyxml/anydata
Definition: obj.h:873
ncx_status_t status
status-stmt
Definition: obj.h:891
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:885
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:896
typ_def_t * typdef
typedef for the data type (leaf only)
Definition: obj.h:888
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:882
xmlChar * units
units-stmt only in a leaf
Definition: obj.h:876
dlq_hdr_t leafrefQ
used for quick leafref validation on server
Definition: obj.h:899
xmlChar * defval
default-stmt only in a leaf
Definition: obj.h:879
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:906
uint16 keynum
internal key number only for keay leafs
Definition: obj.h:894
One YANG 'leaf-list' definition.
Definition: obj.h:915
ncx_sort_type_t sort_type
sort type applies to system
Definition: obj.h:946
struct obj_template_t_ * leafrefobj
leafref obj backptr only if btyp == NCX_BT_LEAFREF
Definition: obj.h:944
xmlChar * name
leaf-list name
Definition: obj.h:917
ncx_status_t status
status-stmt
Definition: obj.h:938
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:926
boolean minset
min-elements set
Definition: obj.h:934
boolean maxset
max-elements set
Definition: obj.h:936
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:939
typ_def_t * typdef
typedef for the data type
Definition: obj.h:929
uint32 maxelems
max-elements value
Definition: obj.h:937
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:923
uint32 minelems
min-elements value
Definition: obj.h:935
xmlChar * units
units-stmt
Definition: obj.h:920
dlq_hdr_t leafrefQ
Q of ncx_backptr_t to obj_template_t.
Definition: obj.h:940
dlq_hdr_t defvalQ
YANG 1.1, Q of malloced ncx_backptr_t.
Definition: obj.h:941
boolean ordersys
ordered-by system or user
Definition: obj.h:933
boolean defset
T if any defaults specified for this leaf-list.
Definition: obj.h:932
One YANG 'list' definition.
Definition: obj.h:951
dlq_hdr_t uniqueQ
Q of obj_unique_t.
Definition: obj.h:967
ncx_sort_type_t sort_type
sort type applies to system
Definition: obj.h:982
xmlChar * name
list name
Definition: obj.h:953
ncx_status_t status
status-stmt
Definition: obj.h:973
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:962
ncx_error_t keytkerr
saved error info for key-stmt errors
Definition: obj.h:977
boolean minset
min-elements set
Definition: obj.h:969
boolean maxset
max-elements set
Definition: obj.h:971
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:974
xmlChar * keystr
key-stmt (not required if config=false)
Definition: obj.h:956
uint32 maxelems
max-elements value
Definition: obj.h:972
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:959
uint32 minelems
min-elements value
Definition: obj.h:970
obj_index_t last_index
internal numbering data for val_child ordering
Definition: obj.h:980
dlq_hdr_t keyQ
Q of obj_key_t.
Definition: obj.h:966
boolean ordersys
ordered-by system or user
Definition: obj.h:968
dlq_hdr_t * typedefQ
Q of typ_template_t.
Definition: obj.h:963
dlq_hdr_t * datadefQ
Q of obj_template_t.
Definition: obj.h:965
dlq_hdr_t * groupingQ
Q of grp_template_t.
Definition: obj.h:964
One YANG metadata (XML attribute) node.
Definition: obj.h:1396
ncx_error_t tkerr
file and line info for compiler
Definition: obj.h:1402
xmlChar * name
metadata name
Definition: obj.h:1399
dlq_hdr_t qhdr
queue header
Definition: obj.h:1397
typ_def_t * typdef
typedef for metadata
Definition: obj.h:1400
struct obj_template_t_ * parent
obj containing metadata
Definition: obj.h:1398
xmlns_id_t nsid
in case parent == NULL
Definition: obj.h:1401
One YANG 'notification' clause definition.
Definition: obj.h:1151
boolean in_data
defined in data, YANG 1.1 only
Definition: obj.h:1167
boolean notif_enabled
enabled or disabled in server
Definition: obj.h:1165
dlq_hdr_t datadefQ
Q of obj_template_t.
Definition: obj.h:1163
xmlChar * name
notification name
Definition: obj.h:1153
ncx_status_t status
status-stmt
Definition: obj.h:1160
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:1159
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:1164
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:1156
boolean notif_log_drops
log drops for this event type
Definition: obj.h:1166
dlq_hdr_t * typedefQ
Q of typ_template_t.
Definition: obj.h:1161
dlq_hdr_t * groupingQ
Q of gtp_template_t.
Definition: obj.h:1162
defines the snmp oid value, stored as an array of integers for easier comparision when performing AVL...
Definition: obj.h:1218
oid_t * oidc
OID component.
Definition: obj.h:1220
uint8 cnt
amount of Sub-Ids (max 128)
Definition: obj.h:1219
One YANG refine statement struct.
Definition: obj.h:1040
dlq_hdr_t defval_tkQ
Q of obj_defval_tk_t.
Definition: obj.h:1070
xmlChar * target
relative-path of the object to refine
Definition: obj.h:1042
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:1059
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:1081
xmlChar * presence
refining the presence-stmt
Definition: obj.h:1065
uint32 maxelems
max-elements value
Definition: obj.h:1079
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:1048
ncx_error_t ref_tkerr
same comment as descr_tkerr applies here
Definition: obj.h:1062
ncx_error_t config_tkerr
config and confset are in the object flags
Definition: obj.h:1073
uint32 minelems
min-elements value
Definition: obj.h:1077
struct obj_template_t_ * targobj
resolved target object to refine
Definition: obj.h:1045
ncx_error_t minelems_tkerr
also minset
Definition: obj.h:1078
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:1056
ncx_error_t maxelems_tkerr
also maxset
Definition: obj.h:1080
ncx_error_t presence_tkerr
same comment as descr_tkerr applies here
Definition: obj.h:1068
ncx_error_t mandatory_tkerr
mandatory and mandset are in the object flags
Definition: obj.h:1076
One YANG rpc-stmt struct.
Definition: obj.h:1106
dlq_hdr_t datadefQ
Q of obj_template_t.
Definition: obj.h:1119
xmlChar * name
rpc method name
Definition: obj.h:1108
ncx_status_t status
status-stmt
Definition: obj.h:1116
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:1114
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:1111
boolean supported
mod loaded, not implemented
Definition: obj.h:1124
dlq_hdr_t * typedefQ
Q of typ_template_t.
Definition: obj.h:1117
dlq_hdr_t * groupingQ
Q of gtp_template_t.
Definition: obj.h:1118
xmlns_id_t nsid
internal fields for manager and agent
Definition: obj.h:1123
boolean is_action
YANG 1.1 only.
Definition: obj.h:1120
One YANG input-stmt or output-stmt struct.
Definition: obj.h:1086
dlq_hdr_t datadefQ
Q of obj_template_t.
Definition: obj.h:1090
xmlChar * name
input or output
Definition: obj.h:1087
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:1091
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:1096
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:1101
dlq_hdr_t * typedefQ
Q of typ_template_t.
Definition: obj.h:1088
dlq_hdr_t * groupingQ
Q of gtp_template_t.
Definition: obj.h:1089
One YANG data-def-stmt.
Definition: obj.h:1232
ncx_error_t tkerr
file and line info for compiler
Definition: obj.h:1247
ncx_sid_t yang_sid
Each object specific variant has a YANG SID assigned for CBOR encoding.
Definition: obj.h:1387
obj_oid_t * oid
SNMP OID for this object (set if needed)
Definition: obj.h:1251
ncx_transaction_id_t leafref_txid
current edit transaction ID for intermediate leafref processing
Definition: obj.h:1327
uint32 yang_hash
experimental: not used
Definition: obj.h:1236
obj_testflags_t desc_testflags
see AGT_TEST_FL_* definitions
Definition: obj.h:1246
dlq_hdr_t appinfoQ
Q of ncx_appinfo_t.
Definition: obj.h:1261
ncx_transaction_id_t def_when_txid
current edit transaction ID for intermediate default when-stmt nodes processing
Definition: obj.h:1349
dlq_hdr_t iffeatureQ
Q of ncx_iffeature_t.
Definition: obj.h:1262
dlq_hdr_t * errmsgQ
custom error message used if this is the server running
Definition: obj.h:1309
dlq_hdr_t xpath_backptrQ
Q of ncx_back_ptr_t with node == xpath_pcb_t.
Definition: obj.h:1300
void * def_hook_cb
def_hook_cb is ncx_def_hook_cbfn_t callback function for Dynamic Default Hook callback.
Definition: obj.h:1370
uint8 silflags
see OBJ_FL_* definitions
Definition: obj.h:1243
dlq_hdr_t inherited_whenQ
Q of ncx_backptr_t with node == xpath_pcb_t.
Definition: obj.h:1267
struct obj_template_t_ * usesobj
backptr to uses-obj if grouping expand
Definition: obj.h:1256
uint8 sil_priority
picks SIL callback order
Definition: obj.h:1244
ncx_transaction_id_t edit_txid
current edit transaction ID for commit test pruning
Definition: obj.h:1318
ncx_transaction_id_t must_txid
current edit transaction ID for MUST test default nodes pruning
Definition: obj.h:1321
boolean set_snmp_flags
need SNMP flags
Definition: obj.h:1252
ncx_transaction_id_t when_txid
current edit transaction ID for WHEN test default nodes pruning
Definition: obj.h:1324
dlq_hdr_t metadataQ
Q of obj_metadata_t.
Definition: obj.h:1260
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:1315
dlq_hdr_t qhdr
queue header
Definition: obj.h:1233
grp_template_t * grp
non-NULL == in a grp.datadefQ
Definition: obj.h:1248
boolean xpath_oper_ok
object OK for referencing oper-data in XPath
Definition: obj.h:1253
dlq_hdr_t inherited_iffeatureQ
Q of obj_iffeature_ptr_t.
Definition: obj.h:1264
uint32 yang_sid_tree
SID tree assignment if yang_sid is used.
Definition: obj.h:1390
struct xpath_pcb_t_ * when
optional when clause
Definition: obj.h:1259
uint32 flags
see OBJ_FL_* definitions
Definition: obj.h:1238
ncx_sm_rootcb_t * rootcb
Schema Mount Control Block.
Definition: obj.h:1381
ncx_transaction_id_t def_txid
current edit transaction ID for intermediate default nodes processing
Definition: obj.h:1337
uint32 xflags
see OBJ_FL_* definitions
Definition: obj.h:1239
uint32 xflags2
see OBJ_FL_* definitions
Definition: obj.h:1240
obj_index_t index
object index for val_child ordering
Definition: obj.h:1249
struct obj_template_t_ * parent
backptr to parent
Definition: obj.h:1255
obj_type_t objtype
object type (def)
Definition: obj.h:1234
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:1306
uint32 uflags
see OBJ_FL_* definitions
Definition: obj.h:1242
obj_testflags_t testflags
see AGT_TEST_FL_* definitions
Definition: obj.h:1245
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:1378
void * get2cb
get2fn is getcb_fn2_t for local GET2
Definition: obj.h:1282
dlq_hdr_t * dataruleQ
Q obj NACM data-rule backptrs.
Definition: obj.h:1270
void * cbset
cbset is different based on the object type:
Definition: obj.h:1279
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:1291
xmlns_id_t nsid
namespace ID assigned to the object at run-time
Definition: obj.h:1294
struct obj_template_t_ * augobj
backptr to augment-obj if augment expand
Definition: obj.h:1257
One component in a YANG list unique target.
Definition: obj.h:828
boolean isduplicate
T: will be ignored by server.
Definition: obj.h:832
dlq_hdr_t qhdr
queue header
Definition: obj.h:829
xmlChar * xpath
saved unique str for this obj
Definition: obj.h:831
struct obj_template_t_ * unobj
unique object target
Definition: obj.h:830
One component in a YANG list unique target.
Definition: obj.h:837
ncx_error_t tkerr
file and line info for compiler
Definition: obj.h:843
dlq_hdr_t compQ
Q of obj_unique_comp_t.
Definition: obj.h:840
dlq_hdr_t qhdr
queue header
Definition: obj.h:838
xmlChar * xpath
complete saved unique str
Definition: obj.h:839
boolean isconfig
T:constraint is on config.
Definition: obj.h:842
boolean seen
needed by yangdiff
Definition: obj.h:841
One YANG uses statement struct.
Definition: obj.h:1022
boolean expand_done
expand done flag
Definition: obj.h:1034
xmlChar * name
name of grouping to use
Definition: obj.h:1024
ncx_status_t status
status-stmt
Definition: obj.h:1033
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:1030
grp_template_t * grp
const back-ptr to grouping
Definition: obj.h:1031
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:1027
boolean refine_done
refine targobj done flag
Definition: obj.h:1035
xmlChar * prefix
prefix present in uses-stmt
Definition: obj.h:1023
dlq_hdr_t * datadefQ
Q of obj_template_t.
Definition: obj.h:1032
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:1352
XML Utilities.
XML namespace support.