yumapro  20.10-12
YumaPro SDK
obj.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2008 - 2012, Andy Bierman, All Rights Reserved.
3  * Copyright (c) 2012 - 2021, 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 
33 date init comment
34 ----------------------------------------------------------------------
35 09-dec-07 abb Begun
36 21jul08 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
55 extern "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 #define OBJ_FL_DEF_DONE bit17
284 
285 /* indicates the object has defaults (valid if bit17 set) */
286 #define OBJ_FL_DEF bit18
287 
288 /* indicates the object is an RPC that is OK for library mode */
289 #define OBJ_FL_LIBMODE bit19
290 
291 /* indicates the object contains a smiv2 object identifier */
292 #define OBJ_FL_SMIV2_OID bit20
293 
294 /* indicates object is tagged ywx:no-nvstore */
295 #define OBJ_FL_NO_NVSTORE bit21
296 
297 /* object is tagged ncx:no-sil-delete-children-first */
298 #define OBJ_FL_NO_SIL_DELETE_CHILDREN_FIRST bit22
299 
300 /* object is tagged as a source node in a yangmap nodemap */
301 #define OBJ_FL_YANGMAP_SOURCE bit23
302 
303 /* object is tagged as a target node in a yangmap nodemap */
304 #define OBJ_FL_YANGMAP_TARGET bit24
305 
306 /* object is tagged as a child node in a yangmap nodemap */
307 #define OBJ_FL_YANGMAP_CHILD bit25
308 
309 /* object is tagged as a keymap node in a yangmap nodemap */
310 #define OBJ_FL_YANGMAP_KEY bit26
311 
312 /* indicates that DUP_LOCAL test has been done */
313 #define OBJ_FL_DUP_LOCAL_DONE bit27
314 
315 /* This bit is set in the agt_val_silcall to indicate that the
316  * Transaction Hook is already setup for the object and that
317  * any consecutive attempts to assign the hook to this object
318  * should be skipped
319  */
320 #define OBJ_FL_TRANS_HOOK_SET bit29
321 
322 /* This bit is set to indicate that the sil-test-get-when
323  * override flag is set for the object which is expected
324  * to be an operational data node
325  */
326 #define OBJ_FL_GET_WHEN_SET bit30
327 
328 /* This bit is set to indicate the value of the
329  * override flag and is only used if OBJ_FL_GET_WHEN_SET
330  * bit is set to 1
331  */
332 #define OBJ_FL_GET_WHEN bit31
333 
334 
335 /********* xflags2 field in obj_template_t *************/
336  /* xflags2 is a continuation of xflags bits */
337 
338 /* This bit is set to indicate that the sil-aio-get2
339  * All in One extension flag is set for the object.
340  */
341 #define OBJ_FL_AIO_GET2 bit0
342 
343 /* This flag indicates that this object has All in One children
344  * But itself it does not have this extension setup.
345  * Will be set only if the current object is GET2 object with
346  * GET2 flags setup.
347  *
348  * GET2 object but not All in One object, but a parent of AIO
349  */
350 #define OBJ_FL_AIO_PARENT bit1
351 
352 /* This bit is set to indicate that the sil-aio-get2
353  * All in One extension flag is set for the object and has XML
354  * parameter setup.
355  */
356 #define OBJ_FL_AIO_GET2_XML bit2
357 
358 /* This bit is set to indicate that the sil-aio-get2
359  * All in One extension flag is set for the object and has JSON
360  * parameter setup.
361  */
362 #define OBJ_FL_AIO_GET2_JSON bit3
363 
364 /* This bit is set to check whether the object has Set Default
365  * Hook callback and should invoke it in order to set custom
366  * system default value BUT only if there is no any YANG defaults.
367  */
368 #define OBJ_FL_DEF_HOOK bit4
369 
370 /* This bit indicates that the leaf or leaf-list is really
371  * an openconfig-hashed-value string not a plain string
372  * and not an ncx:password
373  */
374 #define OBJ_FL_OC_HASHED_VALUE bit5
375 
376 /* This bit is set to indicate that the object is NOT OK for nolock-get
377  * Use on config=false nodes that it is not safe to GET in the
378  * PTHREADS build without a rdlock on running
379  */
380 #define OBJ_FL_BAN_NOLOCK_GET bit6
381 
382 
383 /********* uflags field in obj_template_t *************/
384 
385 /* This field represents the user flags and no system bits
386  * are defined for this field. It is used by yang_obj_cb
387  * callback functions to set user-specific flags
388  */
389 
390 /********* silflags field in obj_template_t *************/
391 
392 /* This bit is set in agt_rpc to indicate the RPC is
393  * currently being invoked; If another session attempts
394  * to invoke the RPC while busy, and the obj_is_exclusive_rpc
395  * the RPC request will be rejected by the server
396  */
397 #define OBJ_FL_SIL_BUSY bit0
398 
399 #define OBJ_TYPE(OBJ) (OBJ)->objtype
400 
401 #define OBJ_INDEX(OBJ) (OBJ)->index
402 
403 /* mark the object as a top object since the yang_obj does
404  * not catch top-level uses from a grouping as a top object
405  */
406 #define OBJ_SET_TOP(OBJ) (OBJ)->flags |= OBJ_FL_TOP
407 
408 #define OBJ_SET_SIL_BUSY(OBJ) (OBJ)->silflags |= OBJ_FL_SIL_BUSY
409 
410 #define OBJ_CLEAR_SIL_BUSY(OBJ) (OBJ)->silflags &= ~OBJ_FL_SIL_BUSY
411 
412 #define OBJ_IS_SIL_BUSY(OBJ) ((OBJ)->silflags & OBJ_FL_SIL_BUSY)
413 
414 #define OBJ_GET_CBSET(OBJ) (OBJ)->cbset
415 
416 
417 /* Get2 support */
418 #define OBJ_SET_REMOTE_GET2(OBJ) (OBJ)->xflags |= OBJ_FL_REMOTE_GET2
419 
420 #define OBJ_CLEAR_REMOTE_GET2(OBJ) (OBJ)->xflags &= ~OBJ_FL_REMOTE_GET2
421 
422 #define OBJ_HAS_REMOTE_GET2(OBJ) ((OBJ)->xflags & OBJ_FL_REMOTE_GET2)
423 
424 #define OBJ_SET_GET2CB(OBJ, CB) (OBJ)->get2cb = CB
425 
426 #define OBJ_GET_GET2CB(OBJ) (getcb_fn2_t)(OBJ)->get2cb
427 
428 #define OBJ_SET_EDIT2_MODE(OBJ) (OBJ)->xflags |= OBJ_FL_EDIT2_MODE
429 
430 #define OBJ_IS_EDIT2_MODE(OBJ) ((OBJ)->xflags & OBJ_FL_EDIT2_MODE)
431 
432 
433 /* XPath tuning */
434 #define OBJ_SET_SKIP_LEAFREF(OBJ) (OBJ)->xflags |= OBJ_FL_SKIP_LEAFREF
435 
436 #define OBJ_IS_SKIP_LEAFREF(OBJ) ((OBJ)->xflags & OBJ_FL_SKIP_LEAFREF)
437 
438 
439 
440 /* Object YANG Hash */
441 #define OBJ_SET_YANG_HASH(OBJ) (OBJ)->xflags |= OBJ_FL_YANG_HASH
442 
443 #define OBJ_IS_YANG_HASH(OBJ) ((OBJ)->xflags & OBJ_FL_YANG_HASH)
444 
445 
446 /* Object Rehash */
447 #define OBJ_SET_YANG_REHASH(OBJ) (OBJ)->xflags |= OBJ_FL_YANG_REHASH
448 
449 #define OBJ_IS_YANG_REHASH(OBJ) ((OBJ)->xflags & OBJ_FL_YANG_REHASH)
450 
451 
452 /* CBSET Malloced */
453 #define OBJ_SET_CBSET_MALLOCED(OBJ) (OBJ)->xflags |= OBJ_FL_CBSET_MALLOCED
454 
455 #define OBJ_IS_CBSET_MALLOCED(OBJ) ((OBJ)->xflags & OBJ_FL_CBSET_MALLOCED)
456 
457 #define OBJ_CLEAR_CBSET_MALLOCED(OBJ) (OBJ)->xflags &= ~OBJ_FL_CBSET_MALLOCED
458 
459 /* Object is generic */
460 #define OBJ_SET_GENERIC(OBJ) (OBJ)->xflags |= OBJ_FL_GENERIC
461 
462 #define OBJ_IS_GENERIC(OBJ) ((OBJ)->xflags & OBJ_FL_GENERIC)
463 
464 
465 /* Object or children have a default value */
466 #define OBJ_SET_DEF_DONE(OBJ) (OBJ)->xflags |= OBJ_FL_DEF_DONE
467 
468 #define OBJ_IS_DEF_DONE(OBJ) ((OBJ)->xflags & OBJ_FL_DEF_DONE)
469 
470 #define OBJ_SET_DEF(OBJ) (OBJ)->xflags |= OBJ_FL_DEF
471 
472 #define OBJ_IS_DEF(OBJ) ((OBJ)->xflags & OBJ_FL_DEF)
473 
474 /* Object is an RPC that is allowed in library mode */
475 #define OBJ_SET_LIBMODE(OBJ) (OBJ)->xflags |= OBJ_FL_LIBMODE
476 
477 #define OBJ_IS_LIBMODE(OBJ) ((OBJ)->xflags & OBJ_FL_LIBMODE)
478 
479 #define OBJ_USER_FLAGS(OBJ) (OBJ)->uflags
480 
481 /* get the object pointer in an obj_key_t */
482 #define OBJ_KEY_OBJ(K) (K)->keyobj
483 
484 /* get the current edit transaction id;
485  * -- changed on each transaction this object is tested
486  */
487 #define OBJ_EDIT_TXID(OBJ) (OBJ)->edit_txid
488 
489 #define OBJ_EXTR_MUST_TXID(OBJ) (OBJ)->must_txid
490 #define OBJ_EXTR_WHEN_TXID(OBJ) (OBJ)->when_txid
491 
492 
493 /* Object is flagged no-nvstore */
494 #define OBJ_SET_NO_NVSTORE(OBJ) (OBJ)->xflags |= OBJ_FL_NO_NVSTORE
495 
496 #define OBJ_IS_NO_NVSTORE(OBJ) ((OBJ)->xflags & OBJ_FL_NO_NVSTORE)
497 
498 
499 /* Object is flagged yangmap-source */
500 #define OBJ_SET_YANGMAP_SOURCE(OBJ) \
501  (OBJ)->xflags |= OBJ_FL_YANGMAP_SOURCE
502 
503 #define OBJ_IS_YANGMAP_SOURCE(OBJ) \
504  ((OBJ)->xflags & OBJ_FL_YANGMAP_SOURCE)
505 
506 
507 /* Object is flagged yangmap-target */
508 #define OBJ_SET_YANGMAP_TARGET(OBJ) \
509  (OBJ)->xflags |= OBJ_FL_YANGMAP_TARGET
510 
511 #define OBJ_IS_YANGMAP_TARGET(OBJ) \
512  ((OBJ)->xflags & OBJ_FL_YANGMAP_TARGET)
513 
514 /* Object is flagged yangmap-childmap */
515 #define OBJ_SET_YANGMAP_CHILD(OBJ) \
516  (OBJ)->xflags |= OBJ_FL_YANGMAP_CHILD
517 
518 #define OBJ_IS_YANGMAP_CHILD(OBJ) \
519  ((OBJ)->xflags & OBJ_FL_YANGMAP_CHILD)
520 
521 /* Object is flagged yangmap-keymap */
522 #define OBJ_SET_YANGMAP_KEY(OBJ) \
523  (OBJ)->xflags |= OBJ_FL_YANGMAP_KEY
524 
525 #define OBJ_IS_YANGMAP_KEY(OBJ) \
526  ((OBJ)->xflags & OBJ_FL_YANGMAP_KEY)
527 
528 /* if OBJ_IS_YANGMAP_SOURCE : yangmap_cb == nodemap_t
529  * if OBJ_IS_YANGMAP_TARGET : yangmap_cb == nodemap_t
530  * if OBJ_IS_YANGMAP_CHILD : yangmap_cb == childmap_t
531  * if OBJ_IS_YANGMAP_KEY : yangmap_cb == keymap_t
532  */
533 #define OBJ_YANGMAP_CB(OBJ) (OBJ)->yangmap_cb
534 
535 /* Object DUP_LOCAL test has been done */
536 #define OBJ_SET_DUP_LOCAL_DONE(OBJ) \
537  (OBJ)->xflags |= OBJ_FL_DUP_LOCAL_DONE
538 
539 #define OBJ_IS_DUP_LOCAL_DONE(OBJ) \
540  ((OBJ)->xflags & OBJ_FL_DUP_LOCAL_DONE)
541 
542 
543 #define OBJ_RPC_SUPPORTED(OBJ) (OBJ)->def.rpc->supported
544 
545 
546 /* Trans Hook assignment bits */
547 #define OBJ_SET_TRANS_HOOK_SET(OBJ) (OBJ)->xflags |= OBJ_FL_TRANS_HOOK_SET
548 #define OBJ_IS_TRANS_HOOK_SET(OBJ) ((OBJ)->xflags & OBJ_FL_TRANS_HOOK_SET)
549 #define OBJ_CLEAR_TRANS_HOOK_SET(OBJ) (OBJ)->xflags &= ~OBJ_FL_TRANS_HOOK_SET
550 
551 
552 /* All in One assignment bits */
553 #define OBJ_SET_AIO_GET2(OBJ) (OBJ)->xflags2 |= OBJ_FL_AIO_GET2
554 #define OBJ_IS_AIO_GET2(OBJ) ((OBJ)->xflags2 & OBJ_FL_AIO_GET2)
555 
556 /* GET2 object but not All in One object, but a parent of AIO */
557 #define OBJ_SET_AIO_PARENT(OBJ) (OBJ)->xflags2 |= OBJ_FL_AIO_PARENT
558 #define OBJ_IS_AIO_PARENT(OBJ) ((OBJ)->xflags2 & OBJ_FL_AIO_PARENT)
559 
560 /* AIO with XML/JSON support flags*/
561 #define OBJ_SET_AIO_GET2_XML(OBJ) (OBJ)->xflags2 |= OBJ_FL_AIO_GET2_XML
562 #define OBJ_IS_AIO_GET2_XML(OBJ) ((OBJ)->xflags2 & OBJ_FL_AIO_GET2_XML)
563 
564 #define OBJ_SET_AIO_GET2_JSON(OBJ) (OBJ)->xflags2 |= OBJ_FL_AIO_GET2_JSON
565 #define OBJ_IS_AIO_GET2_JSON(OBJ) ((OBJ)->xflags2 & OBJ_FL_AIO_GET2_JSON)
566 
567 /* Dynamic Default Hook assignment bits */
568 #define OBJ_SET_DEF_HOOK(OBJ) (OBJ)->xflags2 |= OBJ_FL_DEF_HOOK
569 #define OBJ_IS_DEF_HOOK(OBJ) ((OBJ)->xflags2 & OBJ_FL_DEF_HOOK)
570 #define OBJ_CLEAR_DEF_HOOK(OBJ) (OBJ)->xflags2 &= ~OBJ_FL_DEF_HOOK
571 #define OBJ_GET_DEF_HOOK_CB(OBJ) (ncx_def_hook_cbfn_t)(OBJ)->def_hook_cb
572 
573 /* openconfig-hashed-value bit */
574 #define OBJ_SET_OC_HASHED_VALUE(OBJ) (OBJ)->xflags2 |= OBJ_FL_OC_HASHED_VALUE
575 #define OBJ_IS_OC_HASHED_VALUE(OBJ) ((OBJ)->xflags2 & OBJ_FL_OC_HASHED_VALUE)
576 
577 /* Static Ban Nock GET assignment bits */
578 #define OBJ_SET_BAN_NOLOCK_GET(OBJ) (OBJ)->xflags2 |= OBJ_FL_BAN_NOLOCK_GET
579 #define OBJ_IS_BAN_NOLOCK_GET(OBJ) ((OBJ)->xflags2 & OBJ_FL_BAN_NOLOCK_GET)
580 
581 
582 /********************************************************************
583 * *
584 * T Y P E S *
585 * *
586 *********************************************************************/
587 
588 // Header Only
611 typedef enum obj_type_t_ {
628 } YPACK obj_type_t;
629 
630 
631 #define OBJ_TYP_LAST OBJ_TYP_ACTION
632 
638 typedef uint16 obj_index_t;
639 
640 
642 typedef enum obj_augtype_t_ {
648 } obj_augtype_t;
649 
650 
652 typedef struct obj_key_t_ {
653  dlq_hdr_t qhdr;
655  boolean seen;
656 } YPACK obj_key_t;
657 
658 
660 typedef struct obj_defval_tk_t_ {
661  dlq_hdr_t qhdr;
662  xmlChar *def;
663  ncx_error_t def_tkerr;
664 } YPACK obj_defval_tk_t;
665 
666 
668 typedef struct obj_unique_comp_t_ {
669  dlq_hdr_t qhdr;
671  xmlChar *xpath;
672  boolean isduplicate;
673 } YPACK obj_unique_comp_t;
674 
675 
677 typedef struct obj_unique_t_ {
678  dlq_hdr_t qhdr;
679  xmlChar *xpath;
680  dlq_hdr_t compQ;
681  boolean seen;
682  boolean isconfig;
683  ncx_error_t tkerr;
684 } YPACK obj_unique_t;
685 
686 
688 typedef struct obj_container_t_ {
690  xmlChar *name;
691 
693  xmlChar *descr;
694 
696  xmlChar *ref;
697 
699  xmlChar *presence;
700  dlq_hdr_t *typedefQ;
701  dlq_hdr_t *groupingQ;
702  dlq_hdr_t *datadefQ;
703  ncx_status_t status;
704  dlq_hdr_t mustQ;
706  obj_index_t last_index;
707 } YPACK obj_container_t;
708 
709 
711 typedef struct obj_leaf_t_ {
713  xmlChar *name;
714 
716  xmlChar *units;
717 
719  xmlChar *defval;
720 
722  xmlChar *descr;
723 
725  xmlChar *ref;
726 
728  typ_def_t *typdef;
729 
731  ncx_status_t status;
732 
734  uint16 keynum;
735 
736  dlq_hdr_t mustQ;
739  dlq_hdr_t leafrefQ;
743 } YPACK obj_leaf_t;
744 
745 
747 typedef struct obj_leaflist_t_ {
749  xmlChar *name;
750 
752  xmlChar *units;
753 
755  xmlChar *descr;
756 
758  xmlChar *ref;
759 
761  typ_def_t *typdef;
762 
764  boolean defset;
765  boolean ordersys;
766  boolean minset;
767  uint32 minelems;
768  boolean maxset;
769  uint32 maxelems;
770  ncx_status_t status;
771  dlq_hdr_t mustQ;
772  dlq_hdr_t leafrefQ;
773  dlq_hdr_t defvalQ;
777 } YPACK obj_leaflist_t;
778 
779 
781 typedef struct obj_list_t_ {
783  xmlChar *name;
784 
786  xmlChar *keystr;
787 
789  xmlChar *descr;
790 
792  xmlChar *ref;
793  dlq_hdr_t *typedefQ;
794  dlq_hdr_t *groupingQ;
795  dlq_hdr_t *datadefQ;
796  dlq_hdr_t keyQ;
797  dlq_hdr_t uniqueQ;
798  boolean ordersys;
799  boolean minset;
800  uint32 minelems;
801  boolean maxset;
802  uint32 maxelems;
803  ncx_status_t status;
804  dlq_hdr_t mustQ;
807  ncx_error_t keytkerr;
808 
811 } YPACK obj_list_t;
812 
813 
815 typedef struct obj_choice_t_ {
816  xmlChar *name;
817  xmlChar *defval;
820  xmlChar *descr;
821 
823  xmlChar *ref;
824  dlq_hdr_t *caseQ;
825  boolean caseQclone;
826  ncx_status_t status;
827 } YPACK obj_choice_t;
828 
829 
831 typedef struct obj_case_t_ {
832  xmlChar *name;
835  xmlChar *descr;
836 
838  xmlChar *ref;
839 
840  dlq_hdr_t *datadefQ;
844  boolean nameclone;
845  ncx_status_t status;
846 } YPACK obj_case_t;
847 
848 
850 typedef struct obj_uses_t_ {
851  xmlChar *prefix;
852  xmlChar *name;
855  xmlChar *descr;
856 
858  xmlChar *ref;
859  grp_template_t *grp;
860  dlq_hdr_t *datadefQ;
861  ncx_status_t status;
862  boolean expand_done;
863 } YPACK obj_uses_t;
864 
865 
867 typedef struct obj_refine_t_ {
869  xmlChar *target;
870 
873 
875  xmlChar *descr;
876 
883  ncx_error_t descr_tkerr;
884 
886  xmlChar *ref;
887 
889  ncx_error_t ref_tkerr;
890 
892  xmlChar *presence;
893 
895  ncx_error_t presence_tkerr;
896 
897  dlq_hdr_t defval_tkQ;
900  ncx_error_t config_tkerr;
901 
903  ncx_error_t mandatory_tkerr;
904  uint32 minelems;
905  ncx_error_t minelems_tkerr;
906  uint32 maxelems;
907  ncx_error_t maxelems_tkerr;
908  dlq_hdr_t mustQ;
909 } YPACK obj_refine_t;
910 
911 
913 typedef struct obj_rpcio_t_ {
914  xmlChar *name;
915  dlq_hdr_t *typedefQ;
916  dlq_hdr_t *groupingQ;
917  dlq_hdr_t datadefQ;
918  dlq_hdr_t mustQ;
923  boolean is_input;
924 
929 } YPACK obj_rpcio_t;
930 
931 
933 typedef struct obj_rpc_t_ {
935  xmlChar *name;
936 
938  xmlChar *descr;
939 
941  xmlChar *ref;
942 
943  ncx_status_t status;
944  dlq_hdr_t *typedefQ;
945  dlq_hdr_t *groupingQ;
946  dlq_hdr_t datadefQ;
947  boolean is_action;
951  boolean supported;
952 } YPACK obj_rpc_t;
953 
954 
956 typedef struct obj_augment_t_ {
958  xmlChar *target;
959 
961  xmlChar *descr;
962 
964  xmlChar *ref;
965 
968 
970  obj_augtype_t augtype;
971  ncx_status_t status;
972  dlq_hdr_t datadefQ;
973  uint16 depth;
974 } YPACK obj_augment_t;
975 
976 
978 typedef struct obj_notif_t_ {
980  xmlChar *name;
981 
983  xmlChar *descr;
984 
986  xmlChar *ref;
987  ncx_status_t status;
988  dlq_hdr_t *typedefQ;
989  dlq_hdr_t *groupingQ;
990  dlq_hdr_t datadefQ;
991  dlq_hdr_t mustQ;
992  boolean notif_enabled;
993  boolean notif_log_drops;
994  boolean in_data;
995 } YPACK obj_notif_t;
996 
997 
999 typedef struct obj_iffeature_ptr_t_ {
1000  dlq_hdr_t qhdr;
1001  ncx_iffeature_t *iffeature;
1002 } YPACK obj_iffeature_ptr_t;
1003 
1004 
1006 typedef struct obj_errmsg_filter_t_ {
1007  dlq_hdr_t qhdr;
1008  xmlChar *matchstr;
1009  boolean is_errortag;
1010 } YPACK obj_errmsg_filter_t;
1011 
1012 
1014 typedef struct obj_errmsg_parm_t_ {
1015  dlq_hdr_t qhdr;
1016  xmlChar *path;
1019  uint32 len;
1020 
1022  xmlChar *valstr;
1023 } YPACK obj_errmsg_parm_t;
1024 
1025 
1027 typedef struct obj_errmsg_t_ {
1028  dlq_hdr_t qhdr;
1029  xmlChar *basestr;
1030  xmlChar *langstr;
1031  dlq_hdr_t parmQ;
1032  dlq_hdr_t filterQ;
1033 } YPACK obj_errmsg_t;
1034 
1035 
1037 typedef unsigned long oid_t;
1038 
1045 typedef struct obj_oid_t_ {
1046  uint8 cnt;
1048 } YPACK obj_oid_t;
1049 
1050 
1052 typedef uint8 obj_testflags_t;
1053 
1054 
1056 typedef struct obj_template_t_ {
1057  dlq_hdr_t qhdr;
1058  obj_type_t objtype;
1060  uint32 yang_hash;
1062  uint32 flags;
1063  uint32 xflags;
1064  uint32 xflags2;
1066  uint32 uflags;
1067  uint8 silflags;
1071  ncx_error_t tkerr;
1072  grp_template_t *grp;
1075  obj_oid_t *oid;
1076  boolean set_snmp_flags;
1077  boolean xpath_oper_ok;
1083  struct xpath_pcb_t_ *when;
1084  dlq_hdr_t metadataQ;
1085  dlq_hdr_t appinfoQ;
1086  dlq_hdr_t iffeatureQ;
1091  dlq_hdr_t inherited_whenQ;
1092 
1094  dlq_hdr_t *dataruleQ;
1095 
1103  void *cbset;
1104 
1106  void *get2cb;
1107 
1116 
1119 
1121  struct xpath_pcb_t_ *xpath_backptr[OBJ_NUM_XPATH_BACKPTRS];
1122 
1124  dlq_hdr_t xpath_backptrQ; // backptr to xpath_pcb_t
1125 
1131 
1133  dlq_hdr_t *errmsgQ; // Q of obj_errmsg_t
1134 
1139  void *yangmap_cb;
1140 
1143 
1146 
1149 
1151  union def_ {
1152  obj_container_t *container;
1153  obj_leaf_t *leaf;
1154  obj_leaflist_t *leaflist;
1155  obj_list_t *list;
1156  obj_choice_t *choic;
1157  obj_case_t *cas;
1158  obj_uses_t *uses;
1159  obj_refine_t *refine;
1160  obj_augment_t *augment;
1161  obj_rpc_t *rpc;
1162  obj_rpcio_t *rpcio;
1163  obj_notif_t *notif;
1164  } def;
1165 
1170 
1171 } YPACK obj_template_t;
1172 
1173 
1175 typedef struct obj_metadata_t_ {
1176  dlq_hdr_t qhdr;
1178  xmlChar *name;
1179  typ_def_t *typdef;
1181  ncx_error_t tkerr;
1182  boolean typdef_copy;
1183 } YPACK obj_metadata_t;
1184 
1185 
1187 typedef enum obj_deviate_arg_t_ {
1193 } YPACK obj_deviate_arg_t;
1194 
1195 
1197 typedef struct obj_deviate_t_ {
1198  dlq_hdr_t qhdr;
1206  ncx_error_t tkerr;
1207 
1209  boolean empty;
1210 
1212  obj_deviate_arg_t arg;
1213 
1215  ncx_error_t arg_tkerr;
1216 
1218  typ_def_t *typdef;
1219 
1221  ncx_error_t type_tkerr;
1222 
1224  xmlChar *units;
1225 
1227  ncx_error_t units_tkerr;
1228 
1230  dlq_hdr_t defval_tkQ;
1231 
1233  boolean config;
1234 
1236  ncx_error_t config_tkerr;
1237 
1239  boolean mandatory;
1240 
1242  ncx_error_t mandatory_tkerr;
1243 
1245  uint32 minelems;
1246  ncx_error_t minelems_tkerr;
1249  uint32 maxelems;
1250  ncx_error_t maxelems_tkerr;
1251  dlq_hdr_t mustQ;
1252  dlq_hdr_t uniqueQ;
1253  dlq_hdr_t appinfoQ;
1254 } YPACK obj_deviate_t;
1255 
1256 
1258 typedef struct obj_deviation_t_ {
1259  dlq_hdr_t qhdr;
1260  xmlChar *target;
1261  xmlChar *targmodname;
1262  obj_template_t *targobj;
1265  xmlChar *descr;
1266 
1268  xmlChar *ref;
1269 
1271  ncx_error_t tkerr;
1272  xmlChar *devmodname;
1273  boolean empty;
1274  boolean annotation;
1275  status_t res;
1276  dlq_hdr_t deviateQ;
1277  dlq_hdr_t appinfoQ;
1278 } YPACK obj_deviation_t;
1279 
1280 
1291 typedef boolean
1292  (*obj_walker_fn_t) (obj_template_t *obj,
1293  void *cookie1,
1294  void *cookie2,
1295  boolean nonconfig_warn);
1296 
1297 
1298 #define OBJ_SET_TESTFLAGS(OBJ, FL) (OBJ)->testflags = FL
1299 
1300 #define OBJ_GET_TESTFLAGS(OBJ) (OBJ)->testflags
1301 
1302 #define OBJ_SET_DESC_TESTFLAGS(OBJ, FL) (OBJ)->desc_testflags = FL
1303 
1304 #define OBJ_GET_DESC_TESTFLAGS(OBJ) (OBJ)->desc_testflags
1305 
1306 #define OBJ_UPDATE_DESC_TESTFLAGS(OBJ, FL) (OBJ)->desc_testflags |= FL
1307 
1310 /********************************************************************
1311 * *
1312 * F U N C T I O N S *
1313 * *
1314 *********************************************************************/
1315 
1332 extern obj_template_t *
1333  obj_new_template (obj_type_t objtype);
1334 
1335 
1345 extern void
1346  obj_free_template (obj_template_t *obj);
1347 
1348 
1361 extern obj_template_t *
1362  obj_find_template (dlq_hdr_t *que,
1363  const xmlChar *modname,
1364  const xmlChar *objname);
1365 
1366 
1378 extern obj_template_t *
1379  obj_find_schema_template ( dlq_hdr_t *que,
1380  const xmlChar *modname,
1381  const xmlChar *objname );
1382 
1383 
1395 extern const obj_template_t *
1396  obj_find_template_con (dlq_hdr_t *que,
1397  const xmlChar *modname,
1398  const xmlChar *objname);
1399 
1400 
1412 extern obj_template_t *
1413  obj_find_template_test (dlq_hdr_t *que,
1414  const xmlChar *modname,
1415  const xmlChar *objname);
1416 
1417 
1431 extern obj_template_t *
1432  obj_find_template_top (ncx_module_t *mod,
1433  const xmlChar *modname,
1434  const xmlChar *objname);
1435 
1436 
1452 extern obj_template_t *
1453  obj_find_template_top_lrcheck (ncx_module_t *mod,
1454  const xmlChar *modname,
1455  const xmlChar *objname);
1456 
1457 
1479 extern obj_template_t *
1480  obj_find_template_top_ex (ncx_module_t *mod,
1481  const xmlChar *modname,
1482  const xmlChar *objname,
1483  ncx_name_match_t match_names,
1484  boolean alt_names,
1485  boolean dataonly,
1486  status_t *retres);
1487 
1488 
1502 extern obj_template_t *
1503  obj_find_template_all (ncx_module_t *mod,
1504  const xmlChar *modname,
1505  const xmlChar *objname);
1506 
1507 
1524 extern obj_template_t *
1525  obj_find_child (obj_template_t *obj,
1526  const xmlChar *modname,
1527  const xmlChar *objname);
1528 
1529 
1546 extern obj_template_t *
1547  obj_find_child_lrcheck (obj_template_t *obj,
1548  const xmlChar *modname,
1549  const xmlChar *objname);
1550 
1551 
1568 extern obj_template_t *
1569  obj_find_child_choice_case (obj_template_t *obj,
1570  const xmlChar *modname,
1571  const xmlChar *objname);
1572 
1573 
1588 extern obj_template_t *
1589  obj_find_child_fast (obj_template_t *obj,
1590  xmlns_id_t nsid,
1591  const xmlChar *objname);
1592 
1593 
1618 extern obj_template_t *
1619  obj_find_child_ex (obj_template_t *obj,
1620  const xmlChar *modname,
1621  const xmlChar *objname,
1622  ncx_name_match_t match_names,
1623  boolean alt_names,
1624  boolean dataonly,
1625  status_t *retres);
1626 
1627 
1638 extern obj_template_t *
1639  obj_find_child_str (obj_template_t *obj,
1640  const xmlChar *modname,
1641  const xmlChar *objname,
1642  uint32 objnamelen);
1643 
1644 
1666 extern obj_template_t *
1667  obj_match_child_str (obj_template_t *obj,
1668  const xmlChar *modname,
1669  const xmlChar *objname,
1670  uint32 objnamelen,
1671  uint32 *matchcount);
1672 
1673 
1684 extern obj_template_t *
1685  obj_first_child (obj_template_t *obj);
1686 
1687 
1698 extern obj_template_t *
1699  obj_first_terminal_child (obj_template_t *obj);
1700 
1701 
1712 extern obj_template_t *
1713  obj_first_terminal_child_nokey (obj_template_t *obj);
1714 
1715 
1726 extern obj_template_t *
1727  obj_last_child (obj_template_t *obj);
1728 
1729 
1740 extern obj_template_t *
1741  obj_next_child (obj_template_t *obj);
1742 
1743 
1754 extern obj_template_t *
1755  obj_next_terminal_child (obj_template_t *obj);
1756 
1757 
1768 extern obj_template_t *
1769  obj_next_terminal_child_nokey (obj_template_t *obj);
1770 
1771 
1782 extern obj_template_t *
1783  obj_first_child_augok (obj_template_t *obj);
1784 
1785 
1796 extern obj_template_t *
1797  obj_next_child_augok (obj_template_t *obj);
1798 
1799 
1810 extern obj_template_t *
1811  obj_previous_child (obj_template_t *obj);
1812 
1813 
1825 extern obj_template_t *
1826  obj_first_child_deep (obj_template_t *obj);
1827 
1828 
1840 extern obj_template_t *
1841  obj_next_child_deep (obj_template_t *obj);
1842 
1843 
1860 extern obj_template_t *
1861  obj_next_child_deep_ex (obj_template_t *obj,
1862  boolean stopnext);
1863 
1864 
1900 extern boolean
1901  obj_find_all_children (ncx_module_t *exprmod,
1902  obj_walker_fn_t walkerfn,
1903  void *cookie1,
1904  void *cookie2,
1905  obj_template_t *startnode,
1906  const xmlChar *modname,
1907  const xmlChar *childname,
1908  boolean configonly,
1909  boolean textmode,
1910  boolean useroot);
1911 
1912 
1952 extern boolean
1953  obj_find_all_ancestors (ncx_module_t *exprmod,
1954  obj_walker_fn_t walkerfn,
1955  void *cookie1,
1956  void *cookie2,
1957  obj_template_t *startnode,
1958  const xmlChar *modname,
1959  const xmlChar *name,
1960  boolean configonly,
1961  boolean textmode,
1962  boolean useroot,
1963  boolean orself,
1964  boolean *fncalled);
1965 
1966 
2006 extern boolean
2007  obj_find_all_descendants (ncx_module_t *exprmod,
2008  obj_walker_fn_t walkerfn,
2009  void *cookie1,
2010  void *cookie2,
2011  obj_template_t *startnode,
2012  const xmlChar *modname,
2013  const xmlChar *name,
2014  boolean configonly,
2015  boolean textmode,
2016  boolean useroot,
2017  boolean orself,
2018  boolean *fncalled);
2019 
2020 
2063 extern boolean
2064  obj_find_all_pfaxis (ncx_module_t *exprmod,
2065  obj_walker_fn_t walkerfn,
2066  void *cookie1,
2067  void *cookie2,
2068  obj_template_t *startnode,
2069  const xmlChar *modname,
2070  const xmlChar *name,
2071  boolean configonly,
2072  boolean dblslash,
2073  boolean textmode,
2074  boolean useroot,
2075  ncx_xpath_axis_t axis,
2076  boolean *fncalled);
2077 
2078 
2087 extern obj_case_t *
2088  obj_find_case (obj_choice_t *choic,
2089  const xmlChar *modname,
2090  const xmlChar *casname);
2091 
2092 
2093 
2104 extern obj_template_t *
2105  obj_new_rpcio (obj_template_t *rpcobj,
2106  const xmlChar *name);
2107 
2108 
2114 extern void
2115  obj_clean_datadefQ (dlq_hdr_t *que);
2116 
2117 
2125 extern typ_template_t *
2126  obj_find_type (obj_template_t *obj,
2127  const xmlChar *typname);
2128 
2129 
2136 extern typ_template_t *
2137  obj_first_typedef (obj_template_t *obj);
2138 
2139 
2147 extern grp_template_t *
2148  obj_find_grouping (obj_template_t *obj,
2149  const xmlChar *grpname);
2150 
2157 extern grp_template_t *
2158  obj_first_grouping (obj_template_t *obj);
2159 
2160 
2176 extern status_t
2177  obj_set_named_type (void *pcb, // yang_pcb_t
2178  tk_chain_t *tkc,
2179  ncx_module_t *mod,
2180  const xmlChar *typname,
2181  typ_def_t *typdef,
2182  obj_template_t *parent,
2183  grp_template_t *grp);
2184 
2185 
2208 extern obj_template_t *
2209  obj_clone_template (ncx_module_t *mod,
2210  obj_template_t *srcobj,
2211  dlq_hdr_t *mobjQ);
2212 
2213 
2238 extern obj_template_t *
2239  obj_clone_template_case (ncx_module_t *mod,
2240  obj_template_t *srcobj,
2241  dlq_hdr_t *mobjQ);
2242 
2243 
2244 /******************** obj_unique_t ********************/
2245 
2246 
2252 extern obj_unique_t *
2253  obj_new_unique (void);
2254 
2255 
2261 extern void
2262  obj_init_unique (obj_unique_t *un);
2263 
2264 
2270 extern void
2271  obj_free_unique (obj_unique_t *un);
2272 
2273 
2279 extern void
2280  obj_clean_unique (obj_unique_t *un);
2281 
2282 
2288 extern obj_unique_comp_t *
2289  obj_new_unique_comp (void);
2290 
2291 
2297 extern void
2298  obj_free_unique_comp (obj_unique_comp_t *unc);
2299 
2300 
2309 extern obj_unique_t *
2310  obj_find_unique (dlq_hdr_t *que,
2311  const xmlChar *xpath);
2312 
2313 
2320 extern obj_unique_t *
2321  obj_first_unique (obj_template_t *listobj);
2322 
2323 
2330 extern obj_unique_t *
2331  obj_next_unique (obj_unique_t *un);
2332 
2333 
2340 extern obj_unique_comp_t *
2341  obj_first_unique_comp (obj_unique_t *un);
2342 
2343 
2350 extern obj_unique_comp_t *
2351  obj_next_unique_comp (obj_unique_comp_t *uncomp);
2352 
2353 
2359 extern obj_key_t *
2360  obj_new_key (void);
2361 
2362 
2368 extern void
2369  obj_free_key (obj_key_t *key);
2370 
2371 
2379 extern obj_key_t *
2380  obj_find_key (dlq_hdr_t *que,
2381  const xmlChar *keycompname);
2382 
2383 
2392 extern obj_key_t *
2393  obj_find_key2 (dlq_hdr_t *que,
2394  obj_template_t *keyobj);
2395 
2396 
2403 extern obj_key_t *
2404  obj_first_key (obj_template_t *obj);
2405 
2406 
2413 extern obj_key_t *
2414  obj_last_key (obj_template_t *obj);
2415 
2416 
2423 extern const obj_key_t *
2424  obj_first_ckey (const obj_template_t *obj);
2425 
2426 
2433 extern obj_key_t *
2434  obj_next_key (obj_key_t *objkey);
2435 
2436 
2443 extern obj_key_t *
2444  obj_prev_key (obj_key_t *objkey);
2445 
2446 
2453 extern const obj_key_t *
2454  obj_next_ckey (const obj_key_t *objkey);
2455 
2456 
2463 extern uint32
2464  obj_key_count (const obj_template_t *obj);
2465 
2466 
2474 extern uint32
2475  obj_key_count_to_root (obj_template_t *obj);
2476 
2477 
2492 extern void
2493  obj_traverse_keys (obj_template_t *obj,
2494  void *cookie1,
2495  void *cookie2,
2496  obj_walker_fn_t walkerfn);
2497 
2498 
2505 extern boolean
2506  obj_any_rpcs (const dlq_hdr_t *datadefQ);
2507 
2508 
2515 extern boolean
2516  obj_any_notifs (const dlq_hdr_t *datadefQ);
2517 
2518 
2524 extern obj_deviate_t *
2525  obj_new_deviate (void);
2526 
2527 
2533 extern void
2534  obj_free_deviate (obj_deviate_t *deviate);
2535 
2536 
2543 extern const xmlChar *
2544  obj_get_deviate_arg (obj_deviate_arg_t devarg);
2545 
2546 
2552 extern obj_deviation_t *
2553  obj_new_deviation (void);
2554 
2555 
2561 extern void
2562  obj_free_deviation (obj_deviation_t *deviation);
2563 
2564 
2570 extern void
2571  obj_clean_deviationQ (dlq_hdr_t *deviationQ);
2572 
2573 
2582 extern status_t
2583  obj_gen_object_id (const obj_template_t *obj,
2584  xmlChar **buff);
2585 
2586 
2596 extern status_t
2597  obj_gen_object_id_prefix (const obj_template_t *obj, xmlChar **buff);
2598 
2599 
2610 extern status_t
2611  obj_gen_object_id_oid (ncx_module_t *mod,
2612  const obj_template_t *obj,
2613  xmlChar **buff);
2614 
2615 
2628 extern status_t
2629  obj_gen_object_id_xpath (const obj_template_t *obj,
2630  xmlChar **buff);
2631 
2632 
2641 extern status_t obj_gen_object_id_error (const obj_template_t *obj,
2642  xmlChar **buff);
2643 
2644 
2654 extern status_t obj_gen_object_id_unique (const obj_template_t *obj,
2655  const obj_template_t *stopobj,
2656  xmlChar **buff);
2657 
2658 
2670 extern status_t
2671  obj_gen_object_id_code (ncx_module_t *mod,
2672  const obj_template_t *obj,
2673  xmlChar **buff);
2674 
2675 
2689 extern status_t
2690  obj_copy_object_id (const obj_template_t *obj,
2691  xmlChar *buff,
2692  uint32 bufflen,
2693  uint32 *reallen);
2694 
2695 
2709 extern status_t
2710  obj_copy_object_id_mod (const obj_template_t *obj,
2711  xmlChar *buff,
2712  uint32 bufflen,
2713  uint32 *reallen);
2714 
2715 
2726 extern status_t
2727  obj_gen_aughook_id (const obj_template_t *obj,
2728  xmlChar **buff);
2729 
2730 
2737 extern const xmlChar *
2738  obj_get_name (const obj_template_t *obj);
2739 
2740 
2748 extern status_t
2749  obj_set_name (obj_template_t *obj,
2750  const xmlChar *objname);
2751 
2752 
2765 extern boolean
2766  obj_has_name (const obj_template_t *obj);
2767 
2768 
2777 extern boolean
2778  obj_has_text_content (const obj_template_t *obj);
2779 
2780 
2787 extern ncx_status_t
2788  obj_get_status (const obj_template_t *obj);
2789 
2790 
2797 extern const xmlChar *
2798  obj_get_description (const obj_template_t *obj);
2799 
2800 
2810 extern const xmlChar *
2811  obj_get_alt_description (const obj_template_t *obj);
2812 
2813 
2821 extern const xmlChar *
2822  obj_get_help_description (const obj_template_t *obj);
2823 
2824 
2832 extern const xmlChar *
2833  obj_get_info_description (const obj_template_t *obj);
2834 
2835 
2842 extern const void *
2843  obj_get_description_addr (const obj_template_t *obj);
2844 
2845 
2852 extern const xmlChar *
2853  obj_get_reference (const obj_template_t *obj);
2854 
2855 
2863 extern const void *
2864  obj_get_reference_addr (const obj_template_t *obj);
2865 
2866 
2867 #define obj_is_config obj_get_config_flag_deep
2868 
2869 
2879 extern boolean
2880  obj_get_config_flag (const obj_template_t *obj);
2881 
2882 
2896 extern boolean
2897  obj_get_config_flag2 (const obj_template_t *obj,
2898  boolean *setflag);
2899 
2900 
2908 extern ncx_access_t
2909  obj_get_max_access (const obj_template_t *obj);
2910 
2911 
2918 extern dlq_hdr_t *
2919  obj_get_appinfoQ (obj_template_t *obj);
2920 
2921 
2928 extern dlq_hdr_t *
2929  obj_get_mustQ (const obj_template_t *obj);
2930 
2931 
2938 extern dlq_hdr_t *
2939  obj_get_leafrefQ (const obj_template_t *obj);
2940 
2941 
2951 extern const xmlChar *
2952  obj_get_typestr (const obj_template_t *obj);
2953 
2954 
2961 extern dlq_hdr_t *
2962  obj_get_datadefQ (obj_template_t *obj);
2963 
2964 
2971 extern const dlq_hdr_t *
2972  obj_get_cdatadefQ (const obj_template_t *obj);
2973 
2974 
2985 extern const xmlChar *
2986  obj_get_default (const obj_template_t *obj);
2987 
2988 
2997 extern const xmlChar *
2998  obj_get_first_default (const obj_template_t *obj,
2999  ncx_backptr_t **thisdef);
3000 
3001 
3014 extern const xmlChar *
3015  obj_get_next_default (const obj_template_t *obj,
3016  ncx_backptr_t *lastdef,
3017  ncx_backptr_t **thisdef);
3018 
3019 
3026 extern obj_template_t *
3027  obj_get_default_case (obj_template_t *obj);
3028 
3029 
3039 extern boolean
3040  obj_npcon_has_defaults (obj_template_t *obj);
3041 
3042 
3052 extern boolean
3053  obj_npcon_has_defaults_slow (obj_template_t *obj);
3054 
3055 
3064 extern uint32
3065  obj_get_level (const obj_template_t *obj);
3066 
3067 
3077 extern uint32
3078  obj_get_real_level (const obj_template_t *obj);
3079 
3080 
3090 extern boolean
3091  obj_has_typedefs (const obj_template_t *obj);
3092 
3093 
3101 extern typ_def_t *
3102  obj_get_typdef (obj_template_t *obj);
3103 
3104 
3112 extern typ_def_t *
3113  obj_get_base_typdef (obj_template_t *obj);
3114 
3115 
3123 extern const typ_def_t *
3124  obj_get_ctypdef (const obj_template_t *obj);
3125 
3126 
3133 extern ncx_btype_t
3134  obj_get_basetype (const obj_template_t *obj);
3135 
3136 
3143 extern const xmlChar *
3144  obj_get_mod_prefix (const obj_template_t *obj);
3145 
3146 
3153 extern const xmlChar *
3154  obj_get_mod_xmlprefix (const obj_template_t *obj);
3155 
3156 
3163 extern const xmlChar *
3164  obj_get_mod_name (const obj_template_t *obj);
3165 
3166 
3173 extern ncx_module_t *
3174  obj_get_mod (obj_template_t *obj);
3175 
3176 
3183 extern boolean
3184  obj_in_submodule (obj_template_t *obj);
3185 
3186 
3194 extern ncx_module_t *
3195  obj_get_mod_for_dump (obj_template_t *obj);
3196 
3197 
3204 extern const xmlChar *
3205  obj_get_mod_version (const obj_template_t *obj);
3206 
3207 
3214 extern const xmlChar *
3215  obj_get_type_name (const obj_template_t *obj);
3216 
3217 
3224 extern xmlns_id_t
3225  obj_get_nsid (const obj_template_t *obj);
3226 
3227 
3234 extern ncx_iqual_t
3235  obj_get_iqualval (obj_template_t *obj);
3236 
3237 
3245 extern ncx_iqual_t
3246  obj_get_iqualval_ex (obj_template_t *obj,
3247  boolean required);
3248 
3249 
3258 extern boolean
3259  obj_get_min_elements (obj_template_t *obj,
3260  uint32 *minelems);
3261 
3262 
3271 extern boolean
3272  obj_get_max_elements (obj_template_t *obj,
3273  uint32 *maxelems);
3274 
3275 
3282 extern const xmlChar *
3283  obj_get_units (obj_template_t *obj);
3284 
3285 
3292 extern obj_template_t *
3293  obj_get_parent (obj_template_t *obj);
3294 
3295 
3303 extern const obj_template_t *
3304  obj_get_cparent (const obj_template_t *obj);
3305 
3306 
3314 extern obj_template_t *
3315  obj_get_real_parent (obj_template_t *obj);
3316 
3317 
3327 extern const obj_template_t *
3328  obj_get_real_cparent (const obj_template_t *obj);
3329 
3330 
3337 extern const xmlChar *
3338  obj_get_presence_string (const obj_template_t *obj);
3339 
3340 
3348 extern void *
3349  obj_get_presence_string_field (const obj_template_t *obj);
3350 
3351 
3378 extern status_t
3379  obj_get_child_node (obj_template_t *obj,
3380  obj_template_t *chobj,
3381  const xml_node_t *curnode,
3382  boolean xmlorder,
3383  dlq_hdr_t *force_modQ,
3384  obj_template_t **rettop,
3385  obj_template_t **retobj);
3386 
3387 
3394 extern uint32
3395  obj_get_child_count (const obj_template_t *obj);
3396 
3397 
3405 extern obj_template_t *
3406  obj_get_default_parm (obj_template_t *obj);
3407 
3408 
3423 extern boolean
3424  obj_get_config_flag_deep (const obj_template_t *obj);
3425 
3426 
3441 extern boolean
3442  obj_get_config_flag_check (const obj_template_t *obj,
3443  boolean *ingrp);
3444 
3445 
3453 extern uint8
3454  obj_get_fraction_digits (const obj_template_t *obj);
3455 
3456 
3464 extern const ncx_iffeature_t *
3465  obj_get_first_iffeature (const obj_template_t *obj);
3466 
3467 
3475 extern const ncx_iffeature_t *
3476  obj_get_next_iffeature (const ncx_iffeature_t *iffeature);
3477 
3478 
3485 extern boolean
3486  obj_is_anyxml (const obj_template_t *obj);
3487 
3488 
3495 extern boolean
3496  obj_is_anydata (const obj_template_t *obj);
3497 
3498 
3506 extern boolean
3507  obj_is_any (const obj_template_t *obj);
3508 
3509 
3516 extern boolean
3517  obj_is_leaf (const obj_template_t *obj);
3518 
3519 
3526 extern boolean
3527  obj_is_leaf_list (const obj_template_t *obj);
3528 
3529 
3536 extern boolean
3537  obj_is_list (const obj_template_t *obj);
3538 
3539 
3546 extern boolean obj_in_list (const obj_template_t *obj);
3547 
3548 
3555 extern boolean
3556  obj_is_container (const obj_template_t *obj);
3557 
3558 
3565 extern boolean
3566  obj_is_choice (const obj_template_t *obj);
3567 
3568 
3575 extern boolean
3576  obj_is_case (const obj_template_t *obj);
3577 
3578 
3585 extern boolean
3586  obj_is_uses (const obj_template_t *obj);
3587 
3588 
3595 extern boolean
3596  obj_is_leafy (const obj_template_t *obj);
3597 
3598 
3605 extern boolean obj_is_terminal (const obj_template_t *obj);
3606 
3607 
3615 extern boolean
3616  obj_is_mandatory (obj_template_t *obj);
3617 
3618 
3629 extern boolean
3630  obj_is_mandatory_when_ex (obj_template_t *obj,
3631  boolean config_only);
3632 
3633 
3642 extern boolean
3643  obj_is_mandatory_when (obj_template_t *obj);
3644 
3645 
3654 extern boolean
3655  obj_is_cloned (const obj_template_t *obj);
3656 
3657 
3666 extern boolean
3667  obj_is_augclone (const obj_template_t *obj);
3668 
3669 
3677 extern boolean
3678  obj_is_augment (const obj_template_t *obj);
3679 
3680 
3688 extern boolean obj_in_augment (const obj_template_t *obj);
3689 
3690 
3698 extern boolean
3699  obj_is_refine (const obj_template_t *obj);
3700 
3701 
3710 extern boolean
3711  obj_is_data (const obj_template_t *obj);
3712 
3713 
3723 extern boolean
3724  obj_is_data_db (const obj_template_t *obj);
3725 
3726 
3734 extern boolean
3735  obj_is_data_node (const obj_template_t *obj);
3736 
3737 
3745 extern boolean
3746  obj_in_rpc (const obj_template_t *obj);
3747 
3748 
3755 extern boolean
3756  obj_in_rpc_reply (const obj_template_t *obj);
3757 
3758 
3765 extern boolean
3766  obj_in_notif (const obj_template_t *obj);
3767 
3768 
3775 extern boolean
3776  obj_is_rpc (const obj_template_t *obj);
3777 
3778 
3785 extern boolean obj_is_rpcio (const obj_template_t *obj);
3786 
3787 
3794 extern boolean obj_is_rpcio_input (const obj_template_t *obj);
3795 
3796 
3803 extern boolean
3804  obj_is_action (const obj_template_t *obj);
3805 
3806 
3813 extern boolean obj_in_action (const obj_template_t *obj);
3814 
3815 
3822 extern boolean
3823  obj_is_notif (const obj_template_t *obj);
3824 
3825 
3838 extern boolean
3839  obj_is_empty (const obj_template_t *obj);
3840 
3841 
3849 extern boolean
3850  obj_is_match (const obj_template_t *obj1,
3851  const obj_template_t *obj2);
3852 
3853 
3860 extern boolean
3861  obj_is_hidden (const obj_template_t *obj);
3862 
3863 
3870 extern boolean
3871  obj_is_root (const obj_template_t *obj);
3872 
3873 
3879 extern void
3880  obj_force_root (obj_template_t *obj);
3881 
3882 
3889 extern boolean
3890  obj_is_rpc_root (const obj_template_t *obj);
3891 
3892 
3899 extern boolean
3900  obj_is_password (const obj_template_t *obj);
3901 
3902 
3909 extern boolean
3910  obj_is_xsdlist (const obj_template_t *obj);
3911 
3912 
3919 extern boolean
3920  obj_is_cli (const obj_template_t *obj);
3921 
3922 
3931 extern boolean obj_is_dirty (const obj_template_t *obj,
3932  ncx_cfg_t cfgid);
3933 
3934 
3941 extern boolean
3942  obj_is_key (const obj_template_t *obj);
3943 
3944 
3951 extern boolean
3952  obj_is_abstract (const obj_template_t *obj);
3953 
3954 
3962 extern boolean obj_in_abstract (const obj_template_t *obj);
3963 
3964 
3971 extern boolean
3972  obj_is_deleted (const obj_template_t *obj);
3973 
3974 
3983 extern boolean
3984  obj_is_deleted_ex (const obj_template_t *obj);
3985 
3986 
3993 extern boolean
3994  obj_is_xpath_string (const obj_template_t *obj);
3995 
3996 
4004 extern boolean
4005  obj_is_schema_instance_string (const obj_template_t *obj);
4006 
4007 
4014 extern boolean
4015  obj_is_secure (const obj_template_t *obj);
4016 
4017 
4025 extern boolean
4026  obj_is_very_secure (const obj_template_t *obj);
4027 
4028 
4036 extern boolean
4037  obj_is_system_ordered (const obj_template_t *obj);
4038 
4039 
4047 extern boolean
4048  obj_is_np_container (const obj_template_t *obj);
4049 
4050 
4058 extern boolean
4059  obj_is_p_container (const obj_template_t *obj);
4060 
4061 
4070 extern boolean
4071  obj_is_enabled (obj_template_t *obj);
4072 
4073 
4080 extern boolean
4081  obj_has_iffeature (obj_template_t *obj);
4082 
4083 
4093 extern boolean
4094  obj_is_single_instance (obj_template_t *obj);
4095 
4096 
4104 extern boolean
4105  obj_is_short_case (obj_template_t *obj);
4106 
4107 
4116 extern boolean
4117  obj_is_top (const obj_template_t *obj);
4118 
4119 
4126 extern boolean
4127  obj_is_datapath (const obj_template_t *obj);
4128 
4129 
4141 extern boolean
4142  obj_ok_for_cli (obj_template_t *obj);
4143 
4144 
4152 extern boolean
4153  obj_has_children (obj_template_t *obj);
4154 
4155 
4164 extern boolean
4165  obj_has_ro_children (obj_template_t *obj);
4166 
4167 
4175 extern boolean obj_has_ro_descendants (obj_template_t *obj);
4176 
4177 
4185 extern boolean obj_has_rw_children (obj_template_t *obj);
4186 
4187 
4197 extern boolean obj_has_rw_children_ex (obj_template_t *obj,
4198  boolean term_only);
4199 
4200 
4207 extern boolean
4208  obj_rpc_has_input (obj_template_t *obj);
4209 
4210 
4217 extern boolean
4218  obj_rpc_has_output (obj_template_t *obj);
4219 
4220 
4229 extern boolean
4230  obj_has_when_stmts (obj_template_t *obj);
4231 
4232 
4238 extern obj_metadata_t *
4239  obj_new_metadata (void);
4240 
4241 
4251 extern void
4252  obj_free_metadata (obj_metadata_t *meta);
4253 
4254 
4262 extern status_t
4263  obj_add_metadata (obj_metadata_t *meta,
4264  obj_template_t *obj);
4265 
4266 
4274 extern obj_metadata_t *
4275  obj_find_metadata (const obj_template_t *obj,
4276  const xmlChar *name);
4277 
4278 
4285 extern obj_metadata_t *
4286  obj_first_metadata (const obj_template_t *obj);
4287 
4288 
4295 extern obj_metadata_t *
4296  obj_next_metadata (const obj_metadata_t *meta);
4297 
4298 
4309 extern void
4310  obj_sort_children (obj_template_t *obj);
4311 
4312 
4319 extern void
4320  obj_set_ncx_flags (obj_template_t *obj);
4321 
4322 
4330 extern uint32
4331  obj_enabled_child_count (obj_template_t *obj);
4332 
4333 
4343 extern void
4344  obj_dump_child_list (log_debug_t lvl,
4345  dlq_hdr_t *datadefQ,
4346  uint32 startindent,
4347  uint32 indent);
4348 
4349 
4356 extern const xmlChar *
4357  obj_get_keystr (obj_template_t *obj);
4358 
4359 
4365 extern void
4366  obj_delete_obsolete (dlq_hdr_t *objQ);
4367 
4368 
4375 extern const xmlChar *
4376  obj_get_altname (const obj_template_t *obj);
4377 
4378 
4386 extern obj_template_t *
4387  obj_get_leafref_targobj (obj_template_t *obj);
4388 
4389 
4397 extern obj_template_t *
4398  obj_get_augment_targobj (obj_template_t *obj);
4399 
4400 
4408 extern const xmlChar *
4409  obj_get_augment_target (obj_template_t *obj);
4410 
4411 
4418 extern boolean
4419  obj_is_external_augment (obj_template_t *obj);
4420 
4421 
4428 extern boolean
4429  obj_is_external_data_augment (obj_template_t *obj);
4430 
4431 
4439 extern boolean
4440  obj_is_cli_equals_ok (const obj_template_t *obj);
4441 
4442 
4450 extern boolean
4451  obj_is_cli_text_block (const obj_template_t *obj);
4452 
4453 
4461 extern boolean
4462  obj_is_sil_delete_children_first (const obj_template_t *obj);
4463 
4464 
4473 extern boolean
4474  obj_is_no_sil_delete_children_first (const obj_template_t *obj);
4475 
4476 
4483 extern void
4484  obj_add_child (obj_template_t *child, obj_template_t *parent);
4485 
4486 
4495 extern boolean
4496  obj_is_block_user_create (const obj_template_t *obj);
4497 
4498 
4507 extern boolean
4508  obj_is_block_user_update (const obj_template_t *obj);
4509 
4510 
4519 extern boolean
4520  obj_is_block_user_delete (const obj_template_t *obj);
4521 
4522 
4529 extern obj_iffeature_ptr_t *
4530  obj_new_iffeature_ptr (ncx_iffeature_t *iff);
4531 
4532 
4538 extern void obj_free_iffeature_ptr (obj_iffeature_ptr_t *iffptr);
4539 
4540 
4547 extern obj_iffeature_ptr_t *
4548  obj_first_iffeature_ptr (obj_template_t *obj);
4549 
4550 
4557 extern obj_iffeature_ptr_t *
4558  obj_next_iffeature_ptr (obj_iffeature_ptr_t *iffptr);
4559 
4560 
4567 extern ncx_backptr_t *
4568  obj_first_inherit_when_ptr (obj_template_t *obj);
4569 
4570 
4577 extern ncx_backptr_t *
4578  obj_next_inherit_when_ptr (ncx_backptr_t *ptr);
4579 
4580 
4588 extern boolean
4589  obj_find_xpath_backptr (obj_template_t *obj,
4590  struct xpath_pcb_t_ *xpath);
4591 
4592 
4600 extern struct xpath_pcb_t_ *
4601  obj_next_xpath_backptr (obj_template_t *obj,
4602  struct xpath_pcb_t_ *xpath);
4603 
4604 
4611 extern struct xpath_pcb_t_ *
4612  obj_first_xpath_backptr (obj_template_t *obj);
4613 
4614 
4615 
4626 extern status_t
4627  obj_assign_xpath_backptr (obj_template_t *obj,
4628  struct xpath_pcb_t_ *xpath);
4629 
4630 
4640 extern void
4641  obj_clear_xpath_backptr (obj_template_t *obj,
4642  struct xpath_pcb_t_ *xpath);
4643 
4644 
4653 extern status_t
4654  obj_set_xpath_backptrs (obj_template_t *obj);
4655 
4656 
4665 extern void
4666  obj_flag_xpath_backptrs_dirty (obj_template_t *obj,
4667  ncx_cfg_t cfg_id,
4668  boolean flag);
4669 
4670 
4686 extern boolean
4687  obj_is_target_template (obj_template_t *obj);
4688 
4689 
4710 extern boolean
4711  obj_maybe_target_template (obj_template_t *obj);
4712 
4713 
4721 extern boolean
4722  obj_is_supported (obj_template_t *obj);
4723 
4724 
4737 extern void
4738  obj_delete_mod_children (obj_template_t *obj,
4739  ncx_module_t *mod);
4740 
4741 
4748 extern void
4749  obj_set_dup_local (obj_template_t *obj);
4750 
4751 
4760 extern boolean
4761  obj_is_dup_local (obj_template_t *obj);
4762 
4763 
4770 extern void
4771  obj_set_key_leaf (obj_template_t *obj,
4772  uint16 keynum);
4773 
4774 
4781 extern uint16
4782  obj_get_key_num (obj_template_t *obj);
4783 
4784 
4792 extern boolean
4793  obj_is_exclusive_rpc (const obj_template_t *obj);
4794 
4795 
4802 extern boolean
4803  obj_is_sil_force_replay (const obj_template_t *obj);
4804 
4805 
4812 extern boolean
4813  obj_is_sil_force_replace_replay (const obj_template_t *obj);
4814 
4815 
4822 extern void
4823  obj_set_sil_force_replace_replay (obj_template_t *obj);
4824 
4825 
4832 extern boolean obj_notif_enabled (const obj_template_t *obj);
4833 
4834 
4841 extern boolean obj_notif_log_drops (const obj_template_t *obj);
4842 
4843 
4850 extern void obj_set_notif_enabled (obj_template_t *obj,
4851  boolean enabled);
4852 
4853 
4860 extern void obj_set_notif_log_drops (const obj_template_t *obj,
4861  boolean enabled);
4862 
4863 
4871 extern boolean
4872  obj_unload_active (const obj_template_t *obj);
4873 
4874 
4881 extern boolean
4882  obj_is_obsolete (const obj_template_t *obj);
4883 
4884 
4892 extern boolean
4893  obj_parent_same_module (const obj_template_t *obj);
4894 
4895 
4902 extern void
4903  obj_set_sil_priority (obj_template_t *obj,
4904  uint8 prio);
4905 
4906 
4913 extern uint8
4914  obj_get_sil_priority (obj_template_t *obj);
4915 
4916 
4924 extern boolean
4925  obj_in_edit2_mode (obj_template_t *obj);
4926 
4927 
4934 extern ncx_leafref_class_t
4935  obj_get_leafref_class (obj_template_t *obj);
4936 
4937 
4945 extern boolean
4946  obj_delete_all_supported (obj_template_t *obj);
4947 
4948 
4955 extern boolean
4956  obj_is_crypt_hash (const obj_template_t *obj);
4957 
4958 
4969 extern void
4970  obj_number_data_object (obj_template_t *obj);
4971 
4972 
4978 extern obj_defval_tk_t *
4979  obj_new_defval_tk (void);
4980 
4981 
4987 extern void
4988  obj_free_defval_tk (obj_defval_tk_t *def);
4989 
4990 
4997 extern dlq_hdr_t *
4998  obj_get_defvalQ (obj_template_t *obj);
4999 
5000 
5007 extern obj_defval_tk_t *
5008  obj_first_defval_tk (const obj_refine_t *ref);
5009 
5010 
5017 extern obj_defval_tk_t *
5018  obj_next_defval_tk (const obj_defval_tk_t *defval_tk);
5019 
5020 #define obj_next_dev_defval_tk(D) obj_next_defval_tk(D)
5021 
5022 
5029 extern obj_defval_tk_t *
5030  obj_first_dev_defval_tk (const obj_deviate_t *dev);
5031 
5032 
5039 extern boolean
5040  obj_get_leaf_list_defset (const obj_template_t *obj);
5041 
5042 
5049 extern void
5050  obj_find_delete_defval (obj_template_t *obj,
5051  const xmlChar *defval);
5052 
5053 
5061 extern boolean
5062  obj_find_defval (obj_template_t *obj,
5063  const xmlChar *find_defval);
5064 
5065 
5072 extern void
5073  obj_delete_all_defvals (obj_template_t *obj);
5074 
5075 
5080 extern void
5081  obj_enter_xpath_mode (void);
5082 
5083 
5088 extern void
5089  obj_exit_xpath_mode (void);
5090 
5091 
5099 extern obj_key_t *
5100  obj_get_key_by_name (obj_template_t *obj,
5101  const xmlChar *keyname);
5102 
5103 
5110 extern ncx_yang_version_t
5111  obj_get_langver (obj_template_t *obj);
5112 
5113 
5123 extern boolean
5124  obj_is_abstract_ex (const obj_template_t *obj);
5125 
5126 
5132 extern void
5133  obj_set_abstract (obj_template_t *obj);
5134 
5135 
5144 extern boolean
5145  obj_is_final (obj_template_t *obj);
5146 
5147 
5153 extern void
5154  obj_force_disabled (obj_template_t *obj);
5155 
5156 
5157 
5158 #if defined(WITH_SNMP) && defined(WITH_RESTCONF)
5159 
5165 extern const xmlChar *
5166  obj_get_oid_string (obj_template_t *obj);
5167 
5168 
5179 extern obj_oid_t *
5180  obj_get_oid_struct (obj_template_t *obj,
5181  boolean *malloced);
5182 
5183 #endif // WITH_SNMP and WITH_RESTCONF
5184 
5185 
5193 extern status_t obj_fill_keystackQ (obj_template_t *obj,
5194  dlq_hdr_t *keystackQ);
5195 
5196 
5202 extern void obj_dump_keystackQ (dlq_hdr_t *keystackQ);
5203 
5204 
5211 extern void obj_clr_enable_chk (obj_template_t *obj);
5212 
5213 
5221 extern status_t
5222  obj_cache_datarule (obj_template_t *obj,
5223  void *rule);
5224 
5225 
5232 extern void
5233  obj_clear_datarule (obj_template_t *obj,
5234  const void *rule);
5235 
5236 
5244 extern boolean
5245  obj_match_datarule (obj_template_t *obj,
5246  void *rule);
5247 
5248 
5258 extern status_t
5259  obj_add_errmsg (obj_template_t *obj,
5260  const xmlChar *basestr,
5261  obj_errmsg_t **ret_errmsg);
5262 
5263 
5271 extern status_t
5272  obj_add_errmsg_parm (obj_errmsg_t *errmsg,
5273  const xmlChar *parmstr);
5274 
5275 
5284 extern status_t
5285  obj_add_errmsg_filter (obj_errmsg_t *errmsg,
5286  const xmlChar *parmstr,
5287  boolean is_errortag);
5288 
5289 
5305 extern boolean
5306  obj_has_get2cb (obj_template_t *obj);
5307 
5308 
5316 extern boolean
5317  obj_is_singular (const obj_template_t *obj);
5318 
5319 
5329 extern boolean
5330  obj_get_top_config_flag (const obj_template_t *obj);
5331 
5332 
5339 extern boolean
5340  obj_ok_for_nolock (const obj_template_t *obj);
5341 
5342 
5349 extern boolean
5350  obj_use_get_when_check (const obj_template_t *obj);
5351 
5352 
5359 extern boolean
5360  obj_has_mandatory_children (obj_template_t *obj);
5361 
5362 
5369 extern boolean obj_get_xpath_oper_ok (const obj_template_t *obj);
5370 
5371 
5377 extern void obj_set_xpath_oper_ok (obj_template_t *obj);
5378 
5379 
5387 extern boolean
5388  obj_is_in_aio_get2 (obj_template_t *obj);
5389 
5390 
5401 extern boolean
5402  obj_is_top_aio_get2 (obj_template_t *obj);
5403 
5404 
5411 extern obj_template_t *
5412  obj_get_top_aio_get2 (obj_template_t *child);
5413 
5414 
5421 extern boolean
5422  obj_has_aio_list (obj_template_t *obj);
5423 
5424 
5431 extern ncx_module_t *
5432  obj_get_real_mod (obj_template_t *obj);
5433 
5434 
5442 extern obj_template_t *
5443  obj_get_real_parent_aug (obj_template_t *obj);
5444 
5445 
5456 extern boolean
5457  obj_is_ancestor (const obj_template_t *ancestor,
5458  const obj_template_t *obj);
5459 
5460 
5466 extern void
5467  obj_ban_nolock_get (obj_template_t *obj);
5468 
5469 
5473 #ifdef __cplusplus
5474 } /* end extern 'C' */
5475 #endif
5476 
5477 #endif /* _H_obj */
yang_feature_eval_iffeature
boolean yang_feature_eval_iffeature(ncx_module_t *mod, ncx_iffeature_t *iff)
Evaluate the if-feature expression.
Definition: yang_feature.c:1649
obj_get_top_aio_get2
obj_template_t * obj_get_top_aio_get2(obj_template_t *child)
Find the top AIO object.
Definition: obj.c:18415
OBJ_TYP_AUGMENT
@ OBJ_TYP_AUGMENT
augment, used at top or inside obj
Definition: obj.h:622
obj_is_short_case
boolean obj_is_short_case(obj_template_t *obj)
Check if the object is a short case statement.
Definition: obj.c:14698
obj_is_hidden
boolean obj_is_hidden(const obj_template_t *obj)
Check if object is marked as a hidden object.
Definition: obj.c:14139
obj_first_child
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:6687
obj_next_xpath_backptr
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:16301
obj_template_t_::yangmap_cb
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:1139
obj_augment_t_::ref
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:964
obj_template_t_::def_hook_cb
void * def_hook_cb
def_hook_cb is ncx_def_hook_cbfn_t callback function for Dynamic Default Hook callback.
Definition: obj.h:1169
typ_get_basetype
ncx_btype_t typ_get_basetype(const typ_def_t *typdef)
Get the final base type of the specified typ_def_t.
Definition: typ.c:1764
obj_leaflist_t_::ordersys
boolean ordersys
ordered-by system or user
Definition: obj.h:765
obj_gen_object_id
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:9987
obj_defval_tk_t_::def_tkerr
ncx_error_t def_tkerr
file and line info for compiler
Definition: obj.h:663
ERR_NCX_SKIPPED
@ ERR_NCX_SKIPPED
2001
Definition: status_enum.h:551
NCX_MATCH_EXACT_NOCASE
@ NCX_MATCH_EXACT_NOCASE
exact but case-insensitive
Definition: ncxtypes.h:524
OBJ_TYP_NONE
@ OBJ_TYP_NONE
not set
Definition: obj.h:612
NCX_MATCH_EXACT
@ NCX_MATCH_EXACT
exact (default)
Definition: ncxtypes.h:523
obj_get_cdatadefQ
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:11511
xml_strlen
uint32 xml_strlen(const xmlChar *str)
Get the String len for xmlChar.
Definition: xml_util.c:1406
obj_get_default_case
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:11703
obj_first_metadata
obj_metadata_t * obj_first_metadata(const obj_template_t *obj)
Get the first object metadata definition in the object.
Definition: obj.c:15159
ncx_set_sil_priority_used
void ncx_set_sil_priority_used(void)
Flag that an object set a non-default SIL priority.
Definition: ncx.c:12952
obj_has_iffeature
boolean obj_has_iffeature(obj_template_t *obj)
Check any if-feature statements exist for the specified object.
Definition: obj.c:14623
obj_find_key
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:9398
obj_is_uses
boolean obj_is_uses(const obj_template_t *obj)
Check if object is a YANG uses-stmt.
Definition: obj.c:13465
obj_get_defvalQ
dlq_hdr_t * obj_get_defvalQ(obj_template_t *obj)
Get the leaf-list default Q.
Definition: obj.c:17420
obj_next_defval_tk
obj_defval_tk_t * obj_next_defval_tk(const obj_defval_tk_t *defval_tk)
Get the next defval_tk entry.
Definition: obj.c:17458
obj_set_ncx_flags
void obj_set_ncx_flags(obj_template_t *obj)
Check the NCX appinfo extensions and set flags as needed.
Definition: obj.c:15295
obj_get_cparent
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:12706
obj_deviate_t_::tkerr
ncx_error_t tkerr
the error info for each sub-clause is saved because when the deviation-stmt is parsed,...
Definition: obj.h:1206
obj_template_t_::xpath_backptrQ
dlq_hdr_t xpath_backptrQ
Q of ncx_back_ptr_t with node == xpath_pcb_t.
Definition: obj.h:1124
cfg.h
obj_case_t_::nameclone
boolean nameclone
the nameclone flag is set even though the clone bit is also set; this can probably be removed
Definition: obj.h:844
ncx_feature.h
NCX Module Library YANG Feature Utility Functions.
NCX_XPATH_TYPE_MUST
@ NCX_XPATH_TYPE_MUST
must=stmt
Definition: ncxtypes.h:1021
ncx_get_first_data_object
obj_template_t * ncx_get_first_data_object(ncx_module_t *mod)
Get the first datastore object in the module.
Definition: ncx.c:5169
OBJ_DARG_NOT_SUPPORTED
@ OBJ_DARG_NOT_SUPPORTED
deviate not-supported
Definition: obj.h:1192
obj_find_all_descendants
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:7700
ncx_appinfo.h
NCX Module Library Extension (Application Info) Utility Functions.
obj_errmsg_filter_t_::matchstr
xmlChar * matchstr
message string to match
Definition: obj.h:1008
obj_clone_template
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:8663
xpath_free_pcb
void xpath_free_pcb(xpath_pcb_t *pcb)
Free a malloced XPath parser control block.
Definition: xpath.c:2963
dlq_block_enque
void dlq_block_enque(dlq_hdrT *srcP, dlq_hdrT *dstP)
add all the queue entries in the srcP queue list to the end of the dstP queue list
Definition: dlq.c:731
xml_strncpy
uint32 xml_strncpy(xmlChar *copyTo, const xmlChar *copyFrom, uint32 maxlen)
String copy for xmlChar – checks for buffer overflow.
Definition: xml_util.c:1518
obj_next_ckey
const obj_key_t * obj_next_ckey(const obj_key_t *objkey)
Get the next key record: Const version.
Definition: obj.c:9611
obj_leaf_t_::typdef
typ_def_t * typdef
typedef for the data type (leaf only)
Definition: obj.h:728
obj_leaflist_t_
One YANG 'leaf-list' definition.
Definition: obj.h:747
NCX_BT_CASE
@ NCX_BT_CASE
internal, not a real type
Definition: ncxtypes.h:227
OBJ_TYP_LIST
@ OBJ_TYP_LIST
list: last real database object
Definition: obj.h:617
obj_is_p_container
boolean obj_is_p_container(const obj_template_t *obj)
Check if the object is an Presence-container.
Definition: obj.c:14507
dlq_insertAfter
void dlq_insertAfter(void *newP, void *nodeP)
insert the new queue entry after the current entry
Definition: dlq.c:482
obj_choice_t_::status
ncx_status_t status
status-stmt
Definition: obj.h:826
obj_choice_t_::caseQclone
boolean caseQclone
flag caseQ is cloned
Definition: obj.h:825
obj_get_iqualval_ex
ncx_iqual_t obj_get_iqualval_ex(obj_template_t *obj, boolean required)
Get the instance qualifier for this object.
Definition: obj.c:12457
obj_errmsg_parm_t_::len
uint32 len
state : length
Definition: obj.h:1019
NCX_IQUAL_1MORE
@ NCX_IQUAL_1MORE
'+' == 1 or more
Definition: ncxtypes.h:299
run_subsystem
int run_subsystem(proto_id_t protocol_id, int trace_level, int argc, char **argv)
Run the subsystem : entry point.
Definition: subsystem.c:1035
obj_get_leafref_class
ncx_leafref_class_t obj_get_leafref_class(obj_template_t *obj)
Get the leafref class for a leafref object.
Definition: obj.c:17293
obj_is_singular
boolean obj_is_singular(const obj_template_t *obj)
Check if the object can have only one instance or not.
Definition: obj.c:18129
obj_get_typdef
typ_def_t * obj_get_typdef(obj_template_t *obj)
Get the typdef for the leaf or leaf-list.
Definition: obj.c:11991
obj_refine_t_::presence
xmlChar * presence
refining the presence-stmt
Definition: obj.h:892
obj_clr_enable_chk
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:17875
obj_notif_t_::ref
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:986
obj_unique_comp_t_::xpath
xmlChar * xpath
saved unique str for this obj
Definition: obj.h:671
obj_find_grouping
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:8343
typ_is_xpath_string
boolean typ_is_xpath_string(const typ_def_t *typdef)
Find the ncx:xpath extension within the specified typdef chain.
Definition: typ.c:2686
obj_notif_t_::descr
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:983
obj_find_defval
boolean obj_find_defval(obj_template_t *obj, const xmlChar *find_defval)
Find a default.
Definition: obj.c:17547
obj_rpcio_t_::mustQ
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:918
obj_add_metadata
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:15082
xml_strdup
xmlChar * xml_strdup(const xmlChar *copyFrom)
String duplicate for xmlChar.
Definition: xml_util.c:1553
obj_deviate_t_::mandatory
boolean mandatory
deviating mandatory-stmt
Definition: obj.h:1239
ncx_library_mode_ok
boolean ncx_library_mode_ok(const xmlChar *modname, const xmlChar *rpcname)
Check if RPC OK to use in library mode.
Definition: ncx.c:13165
obj_get_real_parent_aug
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:18573
ncx_decode_num
status_t ncx_decode_num(const xmlChar *numstr, ncx_btype_t btyp, ncx_num_t *retnum)
Handle some sort of number string.
Definition: ncx_num.c:1288
obj_is_abstract
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:14291
obj_errmsg_t_
custom error message control block
Definition: obj.h:1027
obj_has_ro_descendants
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:14876
obj_is_mandatory
boolean obj_is_mandatory(obj_template_t *obj)
Figure out if the obj is YANG mandatory or not.
Definition: obj.c:13510
obj_previous_child
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:7043
ncx_get_mod_xmlprefix
const xmlChar * ncx_get_mod_xmlprefix(const ncx_module_t *mod)
Get the module XML prefix for the specified module.
Definition: ncx.c:8929
ncx_get_mod_prefix
const xmlChar * ncx_get_mod_prefix(const ncx_module_t *mod)
Get the module prefix for the specified module.
Definition: ncx.c:8908
XP_AX_PRECEDING_SIBLING
@ XP_AX_PRECEDING_SIBLING
preceding-sibling axis (not allowed in YANG)
Definition: ncxtypes.h:513
obj_container_t_::name
xmlChar * name
name of container
Definition: obj.h:690
obj_unload_active
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:17074
NCX_IQUAL_ONE
@ NCX_IQUAL_ONE
no iqual == 1
Definition: ncxtypes.h:297
ncx_find_backptr
ncx_backptr_t * ncx_find_backptr(const dlq_hdr_t *que, void *node)
Find the specified back pointer struct.
Definition: ncx.c:11609
obj_deviate_t_::maxelems
uint32 maxelems
deviating max-elements
Definition: obj.h:1249
obj_find_template_test
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:5784
obj_template_t_::must_txid
ncx_transaction_id_t must_txid
current edit transaction ID for MUST test default nodes pruning
Definition: obj.h:1145
obj_uses_t_::ref
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:858
ncx_get_mod_nsid
xmlns_id_t ncx_get_mod_nsid(const ncx_module_t *mod)
Get the main module namespace ID.
Definition: ncx.c:4850
obj_iffeature_ptr_t_
back-pointer to inherited if-feature statements
Definition: obj.h:999
obj_get_units
const xmlChar * obj_get_units(obj_template_t *obj)
Get the units clause for this object, if any.
Definition: obj.c:12631
obj_list_t_::datadefQ
dlq_hdr_t * datadefQ
Q of obj_template_t.
Definition: obj.h:795
obj_get_mod_for_dump
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:12297
obj_first_child_augok
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:6969
obj_is_terminal
boolean obj_is_terminal(const obj_template_t *obj)
Check if object is a proper leaf or leaflist or anyxml.
Definition: obj.c:13493
NCX_MATCH_FIRST_NOCASE
@ NCX_MATCH_FIRST_NOCASE
match all chars case-insensitive, return first match
Definition: ncxtypes.h:534
obj_get_base_typdef
typ_def_t * obj_get_base_typdef(obj_template_t *obj)
Get the base typdef for the leaf or leaf-list.
Definition: obj.c:12020
obj_unique_t_::tkerr
ncx_error_t tkerr
file and line info for compiler
Definition: obj.h:683
obj_is_in_aio_get2
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:18305
obj_template_t_::xflags2
uint32 xflags2
see OBJ_FL_* definitions
Definition: obj.h:1064
NCX_PREFIX
#define NCX_PREFIX
default prefix to use for NCX namespace
Definition: ncxconst.h:244
obj_metadata_t_::nsid
xmlns_id_t nsid
in case parent == NULL
Definition: obj.h:1180
obj_new_template
obj_template_t * obj_new_template(obj_type_t objtype)
Malloc and initialize the fields in a an object template.
Definition: obj.c:5393
obj_leaf_t_::mustQ
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:736
ncx_get_next_session_module
ncx_module_t * ncx_get_next_session_module(const ncx_module_t *mod)
Get the next module in the ncx_sesmodQ.
Definition: ncx.c:4816
ERR_NCX_DEF_NOT_FOUND
@ ERR_NCX_DEF_NOT_FOUND
250
Definition: status_enum.h:289
obj_enabled_child_count
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:15663
obj_has_aio_list
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:18458
obj_errmsg_t_::langstr
xmlChar * langstr
language string
Definition: obj.h:1030
smioid_new_object_oid
obj_oid_t * smioid_new_object_oid(void)
Malloc and init a new obj_oid_t control block.
Definition: smioid_tree.c:288
log_error
void log_error(const char *fstr,...) __attribute__((format(printf
Generate a new LOG_DEBUG_ERROR log entry.
obj_augment_t_
One YANG augment statement struct (top-level or in case-stmt.
Definition: obj.h:956
obj_get_leafrefQ
dlq_hdr_t * obj_get_leafrefQ(const obj_template_t *obj)
Get the leafrefQ for this obj.
Definition: obj.c:11358
OBJ_TYP_NOTIF
@ OBJ_TYP_NOTIF
notification
Definition: obj.h:625
obj_is_rpc
boolean obj_is_rpc(const obj_template_t *obj)
Check if the object is an RPC method.
Definition: obj.c:13983
obj_is_supported
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:16762
yang_feature.h
YANG feature statement support.
obj_unique_t_::xpath
xmlChar * xpath
complete saved unique str
Definition: obj.h:679
obj_find_template_top_ex
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:5870
obj_refine_t_::maxelems_tkerr
ncx_error_t maxelems_tkerr
also maxset
Definition: obj.h:907
obj_in_augment
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:13716
obj_has_mandatory_children
boolean obj_has_mandatory_children(obj_template_t *obj)
Check if there are any mandatory children.
Definition: obj.c:18274
obj_is_leaf_list
boolean obj_is_leaf_list(const obj_template_t *obj)
Check if object is a proper leaf-list.
Definition: obj.c:13336
obj_metadata_t_::parent
struct obj_template_t_ * parent
obj containing metadata
Definition: obj.h:1177
ncx_get_modname
const xmlChar * ncx_get_modname(const ncx_module_t *mod)
Get the main module name.
Definition: ncx.c:4834
obj_is_external_data_augment
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:15964
obj_any_rpcs
boolean obj_any_rpcs(const dlq_hdr_t *datadefQ)
Check if there are any RPC methods in the datadefQ.
Definition: obj.c:9760
val.h
Value Node Basic Support.
obj_refine_t_
One YANG refine statement struct.
Definition: obj.h:867
OBJ_AUGTYP_NONE
@ OBJ_AUGTYP_NONE
not set
Definition: obj.h:643
NCX_BT_INSTANCE_ID
@ NCX_BT_INSTANCE_ID
instance-identifier
Definition: ncxtypes.h:219
smioid_tree_insert
void smioid_tree_insert(obj_template_t *obj, obj_oid_t *oid_obj)
Add a list entry to the oid tree.
Definition: smioid_tree.c:427
obj_has_text_content
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:10719
obj_find_all_children
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:7296
OBJ_TYP_CHOICE
@ OBJ_TYP_CHOICE
choice
Definition: obj.h:618
obj_get_mustQ
dlq_hdr_t * obj_get_mustQ(const obj_template_t *obj)
Get the mustQ for this obj.
Definition: obj.c:11312
obj_rpcio_t_::is_input
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:923
xml_util.h
XML Utilities.
obj_choice_t_
One YANG 'choice' definition.
Definition: obj.h:815
obj_deviate_arg_t_
obj_deviate_arg_t_
type of deviation for each deviate entry
Definition: obj.h:1187
ncx_get_first_module
ncx_module_t * ncx_get_first_module(void)
Get the first module in the ncx_modQ.
Definition: ncx.c:4729
XP_AX_FOLLOWING
@ XP_AX_FOLLOWING
following axis (not allowed in YANG)
Definition: ncxtypes.h:498
obj_defval_tk_t_::def
xmlChar * def
default value string
Definition: obj.h:662
obj_errmsg_t_::qhdr
dlq_hdr_t qhdr
queue header
Definition: obj.h:1028
obj_find_template_top_lrcheck
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:5998
obj_is_cli_equals_ok
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:15987
obj_container_t_::ref
xmlChar * ref
reference-stmt (not saved by server)
Definition: obj.h:696
obj_is_rpcio_input
boolean obj_is_rpcio_input(const obj_template_t *obj)
Check if the object is an RPC IO node.
Definition: obj.c:14009
obj_unique_comp_t_::isduplicate
boolean isduplicate
T: will be ignored by server.
Definition: obj.h:672
obj_find_all_ancestors
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:7507
obj_get_leafref_targobj
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:15884
obj_get_parent
obj_template_t * obj_get_parent(obj_template_t *obj)
Get the parent of the current object.
Definition: obj.c:12679
obj_in_abstract
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:14305
obj_next_key
obj_key_t * obj_next_key(obj_key_t *objkey)
Get the next key record.
Definition: obj.c:9559
obj_refine_t_::defval_tkQ
dlq_hdr_t defval_tkQ
Q of obj_defval_tk_t.
Definition: obj.h:897
ncx_clean_appinfoQ
void ncx_clean_appinfoQ(dlq_hdr_t *appinfoQ)
Check an initialized appinfoQ for any entries Remove them from the queue and delete them.
Definition: ncx_appinfo.c:723
obj_case_t_::descr
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:835
obj_uses_t_::descr
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:855
obj_clean_unique
void obj_clean_unique(obj_unique_t *un)
Clean a obj_unique_t struct.
Definition: obj.c:9122
obj_free_iffeature_ptr
void obj_free_iffeature_ptr(obj_iffeature_ptr_t *iffptr)
Free an obj_iffeature_ptr_t struct.
Definition: obj.c:16158
obj_container_t_
One YANG 'container' definition.
Definition: obj.h:688
obj_first_key
obj_key_t * obj_first_key(obj_template_t *obj)
Get the first key record.
Definition: obj.c:9472
obj_testflags_t
uint8 obj_testflags_t
object test flags
Definition: obj.h:1052
obj_list_t_::descr
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:789
obj_in_edit2_mode
boolean obj_in_edit2_mode(obj_template_t *obj)
Check if the object is an edit2 container or list or terminal node child in an edit2 container or lis...
Definition: obj.c:17260
obj_template_t_::errmsgQ
dlq_hdr_t * errmsgQ
custom error message used if this is the server running
Definition: obj.h:1133
ERR_NCX_MULTIPLE_MATCHES
@ ERR_NCX_MULTIPLE_MATCHES
381
Definition: status_enum.h:424
ncx_clean_backptrQ
void ncx_clean_backptrQ(dlq_hdr_t *backptrQ)
Clean an entire Q of ncx_backptr_t structs.
Definition: ncx.c:11470
obj_is_rpc_root
boolean obj_is_rpc_root(const obj_template_t *obj)
Check if object is marked as an RPC root object.
Definition: obj.c:14182
ncx_find_const_appinfo
const ncx_appinfo_t * ncx_find_const_appinfo(const dlq_hdr_t *appinfoQ, const xmlChar *prefix, const xmlChar *varname)
Find an appinfo entry by name (First match is returned) The entry returned is not removed from the Q ...
Definition: ncx_appinfo.c:544
obj_get_mod
ncx_module_t * obj_get_mod(obj_template_t *obj)
Get the module pointer for this object.
Definition: obj.c:12218
obj_refine_t_::config_tkerr
ncx_error_t config_tkerr
config and confset are in the object flags
Definition: obj.h:900
tk.h
NCX Syntax Token Handler.
obj_free_deviate
void obj_free_deviate(obj_deviate_t *deviate)
Clean and free an object deviate statement.
Definition: obj.c:9852
obj_leaf_t_
One YANG 'leaf' or 'anyxml' or 'anydata' definition.
Definition: obj.h:711
obj_deviation_t_::descr
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:1265
log_debug3
void void void void void void void void void void void log_debug3(const char *fstr,...) __attribute__((format(printf
Generate a new LOG_DEBUG_DEBUG3 log entry.
obj_iffeature_ptr_t_::qhdr
dlq_hdr_t qhdr
queue heaader
Definition: obj.h:1000
obj_next_child_deep
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:7138
obj_notif_t_::notif_log_drops
boolean notif_log_drops
log drops for this event type
Definition: obj.h:993
obj_deviate_t_::qhdr
dlq_hdr_t qhdr
queue header
Definition: obj.h:1198
obj_get_ctypdef
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:12049
ncx_num.h
NCX Module Library Number Utility Functions.
obj_template_t_::tkerr
ncx_error_t tkerr
file and line info for compiler
Definition: obj.h:1071
xpath_pcb_t_::obj
obj_template_t * obj
these parms are used by leafref and XPath1 parsing obj is a bptr to start object
Definition: xpath.h:734
obj_notif_t_::groupingQ
dlq_hdr_t * groupingQ
Q of gtp_template_t.
Definition: obj.h:989
NCX_MATCH_FIRST
@ NCX_MATCH_FIRST
match all chars case-insensitive, return first match
Definition: ncxtypes.h:531
typ_get_named_type_modname
const xmlChar * typ_get_named_type_modname(const typ_def_t *typdef)
Get the module name of the named typ.
Definition: typ.c:604
obj_new_iffeature_ptr
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:16138
obj_choice_t_::caseQ
dlq_hdr_t * caseQ
Q of obj_template_t.
Definition: obj.h:824
SMIV2_PREFIX
#define SMIV2_PREFIX
default prefix to SMI V2 Extention namespace, ietf-yang-smiv2.yang
Definition: ncxconst.h:282
ncx_find_type_que
typ_template_t * ncx_find_type_que(const dlq_hdr_t *typeQ, const xmlChar *typname)
ncx_find_type_que
Definition: ncx.c:3620
NCX_NT_TYP
@ NCX_NT_TYP
typ_template_t
Definition: ncxtypes.h:274
obj_uses_t_::expand_done
boolean expand_done
expand done flag
Definition: obj.h:862
obj_errmsg_filter_t_
custom error message filter control block
Definition: obj.h:1006
obj_refine_t_::minelems
uint32 minelems
min-elements value
Definition: obj.h:904
obj_errmsg_t_::parmQ
dlq_hdr_t parmQ
Q of obj_errmsg_parm_t.
Definition: obj.h:1031
obj_npcon_has_defaults_slow
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:11776
obj_unique_t_::compQ
dlq_hdr_t compQ
Q of obj_unique_comp_t.
Definition: obj.h:680
ncx_clean_iffeatureQ
void ncx_clean_iffeatureQ(dlq_hdr_t *iffeatureQ)
Clean a Q of malloced ncx_iffeature_t struct.
Definition: ncx_feature.c:720
obj_leaflist_t_::name
xmlChar * name
leaf-list name
Definition: obj.h:749
xml_strnicmp
int xml_strnicmp(const xmlChar *s1, const xmlChar *s2, uint32 maxlen)
Case insensitive string compare for xmlChar for at most 'maxlen' xmlChars.
Definition: xml_util.c:1865
OBJ_AUGTYP_DATA
@ OBJ_AUGTYP_DATA
within data
Definition: obj.h:647
ncx_find_type
typ_template_t * ncx_find_type(ncx_module_t *mod, const xmlChar *typname, boolean useall)
Check if a typ_template_t in the mod->typeQ.
Definition: ncx.c:3522
obj_leaf_t_::ref
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:725
obj_first_unique
obj_unique_t * obj_first_unique(obj_template_t *listobj)
Get the first unique-stmt for a list.
Definition: obj.c:9242
obj_in_submodule
boolean obj_in_submodule(obj_template_t *obj)
Check if the object is defined in a submodule.
Definition: obj.c:12259
obj_template_t_::commit_test_cb
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:1130
obj_get_first_iffeature
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:13221
obj_key_t_::keyobj
struct obj_template_t_ * keyobj
backptr to key object
Definition: obj.h:654
obj_is_very_secure
boolean obj_is_very_secure(const obj_template_t *obj)
Check if object is tagged ncx:very-secure.
Definition: obj.c:14451
obj_defval_tk_t_::qhdr
dlq_hdr_t qhdr
queue header
Definition: obj.h:661
obj_new_key
obj_key_t * obj_new_key(void)
Alloc and Init a obj_key_t struct.
Definition: obj.c:9350
obj_dump_child_list
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:15711
ncx_clean_mbackptrQ
void ncx_clean_mbackptrQ(dlq_hdr_t *backptrQ)
Clean an entire Q of ncx_backptr_t structs Use ncx_free_mbackptr to free node pointers.
Definition: ncx.c:11492
obj_template_t_::testflags
obj_testflags_t testflags
see AGT_TEST_FL_* definitions
Definition: obj.h:1069
obj_leaflist_t_::defvalQ
dlq_hdr_t defvalQ
YANG 1.1, Q of malloced ncx_backptr_t.
Definition: obj.h:773
ncx_next_backptr
ncx_backptr_t * ncx_next_backptr(ncx_backptr_t *curptr)
Get next back pointer struct.
Definition: ncx.c:11545
obj_is_external_augment
boolean obj_is_external_augment(obj_template_t *obj)
Check if an object is an external augment.
Definition: obj.c:15942
obj_augment_t_::datadefQ
dlq_hdr_t datadefQ
Q of obj_template_t.
Definition: obj.h:972
obj_unique_t_::isconfig
boolean isconfig
T:constraint is on config.
Definition: obj.h:682
obj_is_cli_text_block
boolean obj_is_cli_text_block(const obj_template_t *obj)
Check if object is marked as ywx:cli-text-block.
Definition: obj.c:16000
obj_first_unique_comp
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:9300
obj_is_key
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:14278
obj_gen_object_id_unique
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:10253
ncx_get_first_session_module
ncx_module_t * ncx_get_first_session_module(void)
Get the first module in the ncx_sesmodQ.
Definition: ncx.c:4796
ncx_init_num
void ncx_init_num(ncx_num_t *num)
Init a ncx_num_t struct.
Definition: ncx_num.c:162
NCX_BT_ANYDATA
@ NCX_BT_ANYDATA
YANG 1.1 anydata.
Definition: ncxtypes.h:229
obj_rpc_t_::nsid
xmlns_id_t nsid
internal fields for manager and agent
Definition: obj.h:950
obj_deviate_t_::empty
boolean empty
deviate-stmt is empty
Definition: obj.h:1209
obj_template_t_::get2cb
void * get2cb
get2fn is getcb_fn2_t for local GET2
Definition: obj.h:1106
dlq_lastEntry
#define dlq_lastEntry(listP)
get the last entry in the queue list
Definition: dlq.h:352
obj_free_unique
void obj_free_unique(obj_unique_t *un)
Free a obj_unique_t struct.
Definition: obj.c:9101
obj_dict_remove_object
boolean obj_dict_remove_object(obj_template_t *obj)
Remove an object from the object dictionary.
Definition: obj_dict.c:325
obj_is_any
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:13304
NCX_IQUAL_NONE
@ NCX_IQUAL_NONE
value not set
Definition: ncxtypes.h:296
obj_rpc_t_::ref
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:941
obj_force_disabled
void obj_force_disabled(obj_template_t *obj)
Force an object to be disabled.
Definition: obj.c:17860
obj_get_config_flag_deep
boolean obj_get_config_flag_deep(const obj_template_t *obj)
get config flag during augment expand
Definition: obj.c:13010
obj_get_child_node
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:12875
obj_template_t_::yang_hash
uint32 yang_hash
experimental: not used
Definition: obj.h:1060
xmlns_ncn_id
xmlns_id_t xmlns_ncn_id(void)
Get the ID for the NETCONF Notifications namespace or 0 if it doesn't exist.
Definition: xmlns.c:999
ncxconst.h
Contains NCX constants.
ncxmod.h
NCX Module Load Manager.
obj_deviate_t_::typdef
typ_def_t * typdef
typedef if deviating the type
Definition: obj.h:1218
obj_list_t_::maxset
boolean maxset
max-elements set
Definition: obj.h:801
PROTO_ID_NETCONF
@ PROTO_ID_NETCONF
NETCONF.
Definition: subsystem.h:126
obj_notif_log_drops
boolean obj_notif_log_drops(const obj_template_t *obj)
Check if the event drops for the notification object is enabled.
Definition: obj.c:17011
obj_deviate_t_::arg
obj_deviate_arg_t arg
deviate argument enum
Definition: obj.h:1212
obj_is_augclone
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:13683
obj_rpcio_t_::defaultparm
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:928
grp_clean_groupingQ
void grp_clean_groupingQ(dlq_hdr_t *que)
Clean a queue of grp_template_t structs.
Definition: grp.c:164
obj_deviation_t_::deviateQ
dlq_hdr_t deviateQ
Q of obj_deviate_t.
Definition: obj.h:1276
obj_get_top_config_flag
boolean obj_get_top_config_flag(const obj_template_t *obj)
Get the config flag for the top-level object.
Definition: obj.c:18165
obj_get_mod_prefix
const xmlChar * obj_get_mod_prefix(const obj_template_t *obj)
Get the module prefix for this object.
Definition: obj.c:12125
xml_stricmp
int xml_stricmp(const xmlChar *s1, const xmlChar *s2)
Case insensitive string compare for xmlChar.
Definition: xml_util.c:1785
obj_errmsg_t_::filterQ
dlq_hdr_t filterQ
Q of obj_errmsg_filter_t.
Definition: obj.h:1032
obj_template_t_::nsid
xmlns_id_t nsid
namespace ID assigned to the object at run-time
Definition: obj.h:1118
obj_is_obsolete
boolean obj_is_obsolete(const obj_template_t *obj)
Check if the object has obsolete status.
Definition: obj.c:17094
obj_deviate_t_::uniqueQ
dlq_hdr_t uniqueQ
Q of obj_unique_t.
Definition: obj.h:1252
NCX_IQUAL_ZMORE
@ NCX_IQUAL_ZMORE
'*' == 0 or more
Definition: ncxtypes.h:300
OBJ_TYP_CONTAINER
@ OBJ_TYP_CONTAINER
container
Definition: obj.h:614
obj_leaflist_t_::status
ncx_status_t status
status-stmt
Definition: obj.h:770
obj_container_t_::mustQ
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:704
obj_find_delete_defval
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:17515
obj_first_inherit_when_ptr
ncx_backptr_t * obj_first_inherit_when_ptr(obj_template_t *obj)
Get first xpath pointer struct.
Definition: obj.c:16210
NCX_BT_UINT8
@ NCX_BT_UINT8
uint8
Definition: ncxtypes.h:211
obj_rpc_t_::status
ncx_status_t status
status-stmt
Definition: obj.h:943
obj_is_list
boolean obj_is_list(const obj_template_t *obj)
Check if object is a YANG list.
Definition: obj.c:13349
obj_is_action
boolean obj_is_action(const obj_template_t *obj)
Check if the object is a YANG 1.1 action.
Definition: obj.c:14028
dlq_insertAhead
void dlq_insertAhead(void *newP, void *nodeP)
insert the new queue entry before the current entry
Definition: dlq.c:447
obj_list_t_::name
xmlChar * name
list name
Definition: obj.h:783
obj_leaflist_t_::minset
boolean minset
min-elements set
Definition: obj.h:766
obj_augment_t_::targobj
struct obj_template_t_ * targobj
resolved backptr to augmented object
Definition: obj.h:967
obj_is_xsdlist
boolean obj_is_xsdlist(const obj_template_t *obj)
Check if object is marked as an XSD list.
Definition: obj.c:14210
obj_exit_xpath_mode
void obj_exit_xpath_mode(void)
Exit xpath mode and stop ignoring obj_is_enabled.
Definition: obj.c:17608
xmlns_get_module
const xmlChar * xmlns_get_module(xmlns_id_t nsid)
get the module name of the namespace ID
Definition: xmlns.c:1126
obj_errmsg.h
Handles errmsg data structures.
xmlns_id_t
uint16 xmlns_id_t
integer handle for registered namespaces
Definition: xmlns.h:89
obj_rpc_t_
One YANG rpc-stmt struct.
Definition: obj.h:933
ERR_NCX_ENTRY_EXISTS
@ ERR_NCX_ENTRY_EXISTS
223
Definition: status_enum.h:262
obj_unique_comp_t_::qhdr
dlq_hdr_t qhdr
queue header
Definition: obj.h:669
ncx_get_appinfo_value
const xmlChar * ncx_get_appinfo_value(const ncx_appinfo_t *appinfo)
Get the value string from an appinfo struct.
Definition: ncx_appinfo.c:1051
obj_find_schema_template
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:5717
obj_deviate_t_::type_tkerr
ncx_error_t type_tkerr
same comment as tkerr
Definition: obj.h:1221
obj_new_rpcio
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:8117
obj_is_data
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:13755
NCX_ACCESS_RC
@ NCX_ACCESS_RC
read-create (all access)
Definition: ncxtypes.h:178
smioid_tree_remove
boolean smioid_tree_remove(obj_template_t *obj)
Remove a entity from the specified tree.
Definition: smioid_tree.c:488
ncx_import_match_mod
boolean ncx_import_match_mod(const ncx_import_t *imp, const xmlChar *module, const xmlChar *revision)
Check if the import matches the specified module.
Definition: ncx.c:5696
smioid_free_object_oid
void smioid_free_object_oid(obj_oid_t *oid)
Clean and free a malloced get2 control block.
Definition: smioid_tree.c:358
ncx_locate_modqual_import
void * ncx_locate_modqual_import(yang_pcb_t *pcb, ncx_import_t *imp, const xmlChar *defname, ncx_node_t *deftyp)
Search the specific module for the specified definition name.
Definition: ncx.c:5748
obj_deviation_t_::target
xmlChar * target
schema-node target to deviate
Definition: obj.h:1260
obj_key_t_
One YANG list key component.
Definition: obj.h:652
obj_deviate_t_::config_tkerr
ncx_error_t config_tkerr
same comment as tkerr
Definition: obj.h:1236
obj_template_t_::metadataQ
dlq_hdr_t metadataQ
Q of obj_metadata_t.
Definition: obj.h:1084
log_debug2
void void void void void void void void void log_debug2(const char *fstr,...) __attribute__((format(printf
Generate a new LOG_DEBUG_DEBUG2 log entry.
obj_is_notif
boolean obj_is_notif(const obj_template_t *obj)
Check if the object is a notification.
Definition: obj.c:14083
obj_get_key_by_name
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:17627
obj_rpc_t_::datadefQ
dlq_hdr_t datadefQ
Q of obj_template_t.
Definition: obj.h:946
obj_oid_t_::oidc
oid_t * oidc
OID component.
Definition: obj.h:1047
obj_gen_aughook_id
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:10446
xpath1.h
XPath 1.0 expression support.
obj_is_empty
boolean obj_is_empty(const obj_template_t *obj)
Check if object was entered in empty fashion:
Definition: obj.c:14099
obj_is_leafy
boolean obj_is_leafy(const obj_template_t *obj)
Check if object is a proper leaf or leaflist.
Definition: obj.c:13478
obj_errmsg_filter_t_::qhdr
dlq_hdr_t qhdr
queue header
Definition: obj.h:1007
obj_in_action
boolean obj_in_action(const obj_template_t *obj)
Check if the object is within or is an action method.
Definition: obj.c:14041
obj_find_child_ex
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:6296
obj_container_t_::defaultparm
struct obj_template_t_ * defaultparm
default parm for yangcli
Definition: obj.h:705
obj_in_list
boolean obj_in_list(const obj_template_t *obj)
Check if object is nested within a list.
Definition: obj.c:13362
obj_notif_t_::mustQ
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:991
obj_is_exclusive_rpc
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:16925
obj_find_key2
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:9436
NO_ERR
@ NO_ERR
000
Definition: status_enum.h:188
obj_use_get_when_check
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:18243
obj_metadata_t_::typdef
typ_def_t * typdef
typedef for metadata
Definition: obj.h:1179
xpath.h
Schema and data model Xpath search support.
NCX_BT_LIST
@ NCX_BT_LIST
internal, YANG list
Definition: ncxtypes.h:228
obj_list_t_::keytkerr
ncx_error_t keytkerr
saved error info for key-stmt errors
Definition: obj.h:807
ncx_clean_list
void ncx_clean_list(ncx_list_t *list)
Scrub the memory of a ncx_list_t but do not delete it.
Definition: ncx_list.c:139
obj_get_real_level
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:11871
obj_container_t_::groupingQ
dlq_hdr_t * groupingQ
Q of grp_template_t.
Definition: obj.h:701
obj_get_description
const xmlChar * obj_get_description(const obj_template_t *obj)
Get the description field for this obj.
Definition: obj.c:10812
obj_free_unique_comp
void obj_free_unique_comp(obj_unique_comp_t *unc)
Free a obj_unique_comp_t struct.
Definition: obj.c:9178
NCX_MATCH_ONE
@ NCX_MATCH_ONE
match all chars if only 1 match
Definition: ncxtypes.h:525
obj_next_unique_comp
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:9327
obj_force_root
void obj_force_root(obj_template_t *obj)
Set the object as an anydata type of root.
Definition: obj.c:14168
obj_rpc_t_::groupingQ
dlq_hdr_t * groupingQ
Q of gtp_template_t.
Definition: obj.h:945
obj_deviation_t_
YANG deviation statement struct.
Definition: obj.h:1258
obj_template_t_::set_snmp_flags
boolean set_snmp_flags
need SNMP flags
Definition: obj.h:1076
obj_deviation_t_::targmodname
xmlChar * targmodname
target module name
Definition: obj.h:1261
obj_choice_t_::ref
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:823
NCX_MAX_NLEN
#define NCX_MAX_NLEN
all name fields in YANG can be 1 to N bytes set a limit based on likely malloc failure CHANGE TO MATC...
Definition: ncxconst.h:149
obj_next_inherit_when_ptr
ncx_backptr_t * obj_next_inherit_when_ptr(ncx_backptr_t *ptr)
Get the next xpath pointer struct.
Definition: obj.c:16228
obj_rpcio_t_::groupingQ
dlq_hdr_t * groupingQ
Q of gtp_template_t.
Definition: obj.h:916
dlq_createQue
dlq_hdrT * dlq_createQue(void)
create a dynamic queue header
Definition: dlq.c:146
obj_in_notif
boolean obj_in_notif(const obj_template_t *obj)
Check if the object is in a notification.
Definition: obj.c:13952
obj_is_block_user_update
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:16099
typ_get_fraction_digits
uint8 typ_get_fraction_digits(const typ_def_t *typdef)
Get the fraction-digits field from the typdef chain typdef must be an NCX_BT_DECIMAL64 or 0 will be r...
Definition: typ.c:5253
obj_unique_t_::qhdr
dlq_hdr_t qhdr
queue header
Definition: obj.h:678
YWX_PREFIX
#define YWX_PREFIX
default prefix to use for YumaWorks Extensions namespace
Definition: ncxconst.h:250
log_debug4
void void void void void void void void void void void void void log_debug4(const char *fstr,...) __attribute__((format(printf
Generate a new LOG_DEBUG_DEBUG4 log entry.
obj_get_name
const xmlChar * obj_get_name(const obj_template_t *obj)
Get the name field for this obj.
Definition: obj.c:10511
ncx_find_grouping_que
grp_template_t * ncx_find_grouping_que(const dlq_hdr_t *groupingQ, const xmlChar *grpname)
Check if a grp_template_t in the specified Q.
Definition: ncx.c:3746
ERR_NCX_OPERATION_FAILED
@ ERR_NCX_OPERATION_FAILED
274
Definition: status_enum.h:315
obj_prev_key
obj_key_t * obj_prev_key(obj_key_t *objkey)
Get the previous key record.
Definition: obj.c:9585
obj_get_child_count
uint32 obj_get_child_count(const obj_template_t *obj)
Get the number of child nodes the object has.
Definition: obj.c:12914
obj_first_dev_defval_tk
obj_defval_tk_t * obj_first_dev_defval_tk(const obj_deviate_t *dev)
Get the first defval_tk entry.
Definition: obj.c:17477
obj_ban_nolock_get
void obj_ban_nolock_get(obj_template_t *obj)
Ban nolock-get for the object.
Definition: obj.c:18640
obj_leaf_t_::units
xmlChar * units
units-stmt only in a leaf
Definition: obj.h:716
obj_deviation_t_::appinfoQ
dlq_hdr_t appinfoQ
Q of ncx_appinfo_t.
Definition: obj.h:1277
ncx_find_object
obj_template_t * ncx_find_object(ncx_module_t *mod, const xmlChar *objname)
Find a top level module object.
Definition: ncx.c:4345
LOGDEBUG2
#define LOGDEBUG2
Check if at least log-level=debug2.
Definition: log.h:292
obj_defval_tk_t_
One YANG 1.1 default stored in a Q for refine and deviate.
Definition: obj.h:660
obj_unique_t_::seen
boolean seen
needed by yangdiff
Definition: obj.h:681
obj_template_t_::oid
obj_oid_t * oid
SNMP OID for this object (set if needed)
Definition: obj.h:1075
ncx_get_allincQ
dlq_hdr_t * ncx_get_allincQ(ncx_module_t *mod)
Find the correct Q of yang_node_t for all include files that have the same 'belongs-to' value.
Definition: ncx.c:9945
obj_deviate_t_::config
boolean config
deviating config-stmt
Definition: obj.h:1233
obj_is_datapath
boolean obj_is_datapath(const obj_template_t *obj)
Check if object is marked as a ywx:datapath object.
Definition: obj.c:14761
dlq_createSQue
void dlq_createSQue(dlq_hdrT *queAddr)
create a static queue header
Definition: dlq.c:177
obj_is_target_template
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:16646
ERR_INTERNAL_VAL
@ ERR_INTERNAL_VAL
004
Definition: status_enum.h:194
NCX_ACCESS_NONE
@ NCX_ACCESS_NONE
enum not explicitly set
Definition: ncxtypes.h:175
obj_has_children
boolean obj_has_children(obj_template_t *obj)
Check if there are any accessible nodes within the object.
Definition: obj.c:14831
obj_has_typedefs
boolean obj_has_typedefs(const obj_template_t *obj)
Check if the object has any nested typedefs in it.
Definition: obj.c:11908
obj_set_named_type
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:8517
xmlns_find_ns_by_module
xmlns_id_t xmlns_find_ns_by_module(const xmlChar *modname)
Find the NS ID from its module name that registered it.
Definition: xmlns.c:712
obj_parent_same_module
boolean obj_parent_same_module(const obj_template_t *obj)
Check if the object parent object is the same.
Definition: obj.c:17125
dlq_remove
void dlq_remove(void *nodeP)
remove the queue entry from its queue list entry MUST have been enqueued somehow before this function...
Definition: dlq.c:519
obj_set_dup_local
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:16833
obj_oid_t_
defines the snmp oid value, stored as an array of integers for easier comparision when performing AVL...
Definition: obj.h:1045
obj_augment_t_::augtype
obj_augtype_t augtype
internal augment type enum
Definition: obj.h:970
obj_errmsg_filter_t_::is_errortag
boolean is_errortag
error-tag flag
Definition: obj.h:1009
OBJ_AUGTYP_RPCOUT
@ OBJ_AUGTYP_RPCOUT
rpc output
Definition: obj.h:645
ncx_find_module_que_nsid
ncx_module_t * ncx_find_module_que_nsid(dlq_hdr_t *modQ, xmlns_id_t nsid)
Find a ncx_module_t in the specified Q by namespace ID.
Definition: ncx.c:3397
ncx_clone_iffeature
ncx_iffeature_t * ncx_clone_iffeature(ncx_iffeature_t *srciff)
Clone a new ncx_iffeature_t struct.
Definition: ncx_feature.c:639
obj_template_t_::parent
struct obj_template_t_ * parent
backptr to parent
Definition: obj.h:1079
obj_deviation_t_::devmodname
xmlChar * devmodname
set if not the targmod
Definition: obj.h:1272
ERR_NCX_UNKNOWN_TYPE
@ ERR_NCX_UNKNOWN_TYPE
299
Definition: status_enum.h:342
obj_choice_t_::descr
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:820
OBJ_AUGTYP_RPCIN
@ OBJ_AUGTYP_RPCIN
rpc input
Definition: obj.h:644
obj_metadata_t_::tkerr
ncx_error_t tkerr
file and line info for compiler
Definition: obj.h:1181
obj_next_child_augok
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:7007
obj_leaf_t_::defval
xmlChar * defval
default-stmt only in a leaf
Definition: obj.h:719
obj_is_top
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:14748
typ_get_name
const xmlChar * typ_get_name(const typ_def_t *typdef)
Get the name for the specified typdef.
Definition: typ.c:1871
obj_rpcio_t_::name
xmlChar * name
input or output
Definition: obj.h:914
obj_is_deleted
boolean obj_is_deleted(const obj_template_t *obj)
Check if object has been deleted by a deviate not-supported.
Definition: obj.c:14339
OBJ_TYP_ANYDATA
@ OBJ_TYP_ANYDATA
anydata: YANG 1.1 only
Definition: obj.h:626
obj_get_type_name
const xmlChar * obj_get_type_name(const obj_template_t *obj)
Get the typename for an object.
Definition: obj.c:12360
obj_is_rpcio
boolean obj_is_rpcio(const obj_template_t *obj)
Check if the object is an RPC IO node.
Definition: obj.c:13996
obj_notif_t_::name
xmlChar * name
notification name
Definition: obj.h:980
obj_gen_object_id_error
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:10191
obj_maybe_target_template
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:16703
obj_refine_t_::minelems_tkerr
ncx_error_t minelems_tkerr
also minset
Definition: obj.h:905
obj_template_t_::xflags
uint32 xflags
see OBJ_FL_* definitions
Definition: obj.h:1063
NCX_CFGID_CANDIDATE
@ NCX_CFGID_CANDIDATE
candidate datastore
Definition: ncxtypes.h:385
obj_new_deviate
obj_deviate_t * obj_new_deviate(void)
Malloc and initialize the fields in a an object deviate statement.
Definition: obj.c:9827
obj_is_data_node
boolean obj_is_data_node(const obj_template_t *obj)
Check if the object is a real node type.
Definition: obj.c:13830
xpath_check_manual_clear
boolean xpath_check_manual_clear(xpath_pcb_t *pcb)
Check the backptrs_dirty flag in the PCB is clearly manually only.
Definition: xpath.c:4526
obj_refine_t_::target
xmlChar * target
relative-path of the object to refine
Definition: obj.h:869
NCX_CFGID_STARTUP
@ NCX_CFGID_STARTUP
startup datastore
Definition: ncxtypes.h:386
obj_next_child
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:6860
obj_augment_t_::depth
uint16 depth
internal nest depth of augment
Definition: obj.h:973
obj_enter_xpath_mode
void obj_enter_xpath_mode(void)
Enter xpath mode and start ignoring obj_is_enabled.
Definition: obj.c:17599
obj_in_rpc_reply
boolean obj_in_rpc_reply(const obj_template_t *obj)
Check if the object is in an rpc-reply/output section.
Definition: obj.c:13918
obj_deviate_t_::units
xmlChar * units
units if deviating the units
Definition: obj.h:1224
obj_gen_object_id_oid
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:10085
obj_choice_t_::defval
xmlChar * defval
default case
Definition: obj.h:817
obj_is_sil_force_replace_replay
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:16963
obj_deviation_t_::empty
boolean empty
for display in yangdump
Definition: obj.h:1273
obj_template_t_::grp
grp_template_t * grp
non-NULL == in a grp.datadefQ
Definition: obj.h:1072
typ_is_qname_string
boolean typ_is_qname_string(const typ_def_t *typdef)
Find the ncx:qname extension within the specified typdef chain.
Definition: typ.c:2744
obj_free_template
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:5531
obj_leaflist_t_::defset
boolean defset
T if any defaults specified for this leaf-list.
Definition: obj.h:764
NCX_BT_EMPTY
@ NCX_BT_EMPTY
empty
Definition: ncxtypes.h:205
obj_refine_t_::descr
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:875
rpc.h
NETCONF protocol remote procedure call common definitions.
obj_rpc_t_::descr
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:938
obj_add_errmsg_parm
status_t obj_add_errmsg_parm(obj_errmsg_t *errmsg, const xmlChar *parmstr)
Add an errmsg parameter for the object.
obj_walker_fn_t
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:1292
obj_container_t_::status
ncx_status_t status
status-stmt
Definition: obj.h:703
obj_next_child_deep_ex
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:7164
obj_get_first_default
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:11613
ERR_INTERNAL_MEM
@ ERR_INTERNAL_MEM
003
Definition: status_enum.h:193
obj_get_info_description
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:10958
obj_get_oid_string
const xmlChar * obj_get_oid_string(obj_template_t *obj)
Get object OID sting value.
Definition: obj.c:17725
obj_is_sil_force_replay
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:16944
xml_strncmp
int xml_strncmp(const xmlChar *s1, const xmlChar *s2, uint32 maxlen)
String compare for xmlChar for at most 'maxlen' xmlChars.
Definition: xml_util.c:1824
obj_template_t_::dataruleQ
dlq_hdr_t * dataruleQ
Q obj NACM data-rule backptrs.
Definition: obj.h:1094
obj_leaflist_t_::mustQ
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:771
obj_refine_t_::descr_tkerr
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:883
obj_is_dup_local
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:16854
obj_free_defval_tk
void obj_free_defval_tk(obj_defval_tk_t *def)
Delete an object default tk record;.
Definition: obj.c:17402
obj_container_t_::presence
xmlChar * presence
presence-stmt
Definition: obj.h:699
obj_index_t
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:638
XML_NT_NONE
@ XML_NT_NONE
not set
Definition: xml_util.h:190
obj_new_unique
obj_unique_t * obj_new_unique(void)
Alloc and Init a obj_unique_t struct.
Definition: obj.c:9055
val_child.h
Value Node Child Access Support.
obj_gen_object_id_xpath
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:10143
obj_leaflist_t_::maxset
boolean maxset
max-elements set
Definition: obj.h:768
obj_list_t_::maxelems
uint32 maxelems
max-elements value
Definition: obj.h:802
obj_get_max_access
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:11240
get_error_string
const char * get_error_string(status_t res)
Get the error message for a specific internal error.
Definition: status.c:239
obj_find_template_con
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:5746
obj_rpc_has_input
boolean obj_rpc_has_input(obj_template_t *obj)
Check if the RPC object has any real input children.
Definition: obj.c:14956
OBJ_TYP_REFINE
@ OBJ_TYP_REFINE
refine, child of uses only
Definition: obj.h:621
obj_template_t_::inherited_iffeatureQ
dlq_hdr_t inherited_iffeatureQ
Q of obj_iffeature_ptr_t.
Definition: obj.h:1088
obj_is_single_instance
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:14669
ERR_INTERNAL_PTR
@ ERR_INTERNAL_PTR
002
Definition: status_enum.h:192
obj_refine_t_::presence_tkerr
ncx_error_t presence_tkerr
same comment as descr_tkerr applies here
Definition: obj.h:895
yang.h
YANG Module parser utilities.
obj_sort_children
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:15216
NCX_BT_CONTAINER
@ NCX_BT_CONTAINER
internal container
Definition: ncxtypes.h:225
log_debug
void void void void void void void log_debug(const char *fstr,...) __attribute__((format(printf
Generate a new LOG_DEBUG_DEBUG log entry.
XP_AX_NONE
@ XP_AX_NONE
not set
Definition: ncxtypes.h:489
xpath1_validate_expr_ex
status_t xpath1_validate_expr_ex(ncx_module_t *mod, obj_template_t *obj, xpath_pcb_t *pcb, boolean missing_is_error, boolean set_backptrs, ncx_xpath_type_t backptr_type)
Validate the previously parsed expression string.
Definition: xpath1.c:4975
obj_get_presence_string_field
void * obj_get_presence_string_field(const obj_template_t *obj)
Get the address ot the presence-stmt value, if any.
Definition: obj.c:12840
typ.h
Parameter Type Handler.
obj_case_t_
One YANG 'case' definition.
Definition: obj.h:831
xmlns_get_ns_prefix
const xmlChar * xmlns_get_ns_prefix(xmlns_id_t ns_id)
Get the prefix for the specified namespace.
Definition: xmlns.c:669
dlq_count
unsigned int dlq_count(const dlq_hdrT *listP)
get the number of queue entries in the listP queue list
Definition: dlq.c:994
obj_get_keystr
const xmlChar * obj_get_keystr(obj_template_t *obj)
Get the key string for this list object.
Definition: obj.c:15786
NCX_CFGID_RUNNING
@ NCX_CFGID_RUNNING
running datastore (no value for not set!)
Definition: ncxtypes.h:384
obj_get_real_parent
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:12733
obj_unique_comp_t_::unobj
struct obj_template_t_ * unobj
unique object target
Definition: obj.h:670
obj_add_child
void obj_add_child(obj_template_t *child, obj_template_t *parent)
Add a child object to the specified complex node.
Definition: obj.c:16050
obj_set_xpath_backptrs
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:16491
obj_list_t_::minelems
uint32 minelems
min-elements value
Definition: obj.h:800
smioid_extract_integers
boolean smioid_extract_integers(const xmlChar *oid, obj_oid_t *oid_obj)
Split SMI oid string into integers using '.
Definition: smioid_tree.c:209
obj_free_metadata
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:15052
obj_next_iffeature_ptr
obj_iffeature_ptr_t * obj_next_iffeature_ptr(obj_iffeature_ptr_t *iffptr)
Get the next if-feature pointer.
Definition: obj.c:16192
obj_is_abstract_ex
boolean obj_is_abstract_ex(const obj_template_t *obj)
DUPLICATE FUNCTION OF obj_in_abstract()
Definition: obj.c:17684
obj_template_t_::inherited_whenQ
dlq_hdr_t inherited_whenQ
Q of ncx_backptr_t with node == xpath_pcb_t.
Definition: obj.h:1091
yangconst.h
Contains YANG constants separated to prevent H file include loops.
obj_get_config_flag
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:11174
obj_refine_t_::maxelems
uint32 maxelems
max-elements value
Definition: obj.h:906
obj_rpcio_t_::datadefQ
dlq_hdr_t datadefQ
Q of obj_template_t.
Definition: obj.h:917
ncx_is_with_snmp
boolean ncx_is_with_snmp(void)
Get the with_snmp value.
Definition: ncx.c:13958
obj_list_t_::groupingQ
dlq_hdr_t * groupingQ
Q of grp_template_t.
Definition: obj.h:794
obj_template_t_::xpath_oper_ok
boolean xpath_oper_ok
object OK for referencing oper-data in XPath
Definition: obj.h:1077
obj_is_anydata
boolean obj_is_anydata(const obj_template_t *obj)
Check if object is an anydata.
Definition: obj.c:13284
obj_container_t_::datadefQ
dlq_hdr_t * datadefQ
Q of obj_template_t.
Definition: obj.h:702
obj_uses_t_::name
xmlChar * name
name of grouping to use
Definition: obj.h:852
log_write
void void void log_write(const char *fstr,...) __attribute__((format(printf
Write a new entry to the main log.
obj_refine_t_::mustQ
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:908
obj_is_case
boolean obj_is_case(const obj_template_t *obj)
Check if object is a YANG case.
Definition: obj.c:13445
ncx_set_list
status_t ncx_set_list(ncx_btype_t btyp, const xmlChar *strval, ncx_list_t *list)
consume a generic string list with base type checking Parse the XML input as an NCX_BT_SLIST
Definition: ncx_list.c:751
dlq_prevEntry
#define dlq_prevEntry(nodeP)
get the previous queue entry before the current entry
Definition: dlq.h:280
obj_uses_t_
One YANG uses statement struct.
Definition: obj.h:850
obj_notif_enabled
boolean obj_notif_enabled(const obj_template_t *obj)
Check if the notification object is enabled.
Definition: obj.c:16995
obj_get_alt_description
const xmlChar * obj_get_alt_description(const obj_template_t *obj)
obj_get_alt_description (DEPRECATED)
Definition: obj.c:10873
obj_template_t_::appinfoQ
dlq_hdr_t appinfoQ
Q of ncx_appinfo_t.
Definition: obj.h:1085
obj_set_sil_force_replace_replay
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:16981
obj_find_child_lrcheck
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:6156
obj_delete_obsolete
void obj_delete_obsolete(dlq_hdr_t *objQ)
Delete any obsolete child nodes within the specified object subtree.
Definition: obj.c:15814
oid_t
unsigned long oid_t
data type used in SNMP
Definition: obj.h:1037
NCX_STATUS_CURRENT
@ NCX_STATUS_CURRENT
current (default)
Definition: ncxtypes.h:420
OBJ_TYP_CASE
@ OBJ_TYP_CASE
case: last named database object
Definition: obj.h:619
obj_find_template_top
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:5826
obj_leaf_t_::name
xmlChar * name
name of leaf or anyxml/anydata
Definition: obj.h:713
YANG_K_ACTION
#define YANG_K_ACTION
YANG keyword/YIN element names.
Definition: yangconst.h:108
dlq_nextEntry
#define dlq_nextEntry(nodeP)
get the next queue entry after the current entry
Definition: dlq.h:265
obj_augment_t_::target
xmlChar * target
Xpath schema-node target to augment.
Definition: obj.h:958
obj_get_key_num
uint16 obj_get_key_num(obj_template_t *obj)
Get the key number for the object.
Definition: obj.c:16895
obj_template_t_::desc_testflags
obj_testflags_t desc_testflags
see AGT_TEST_FL_* definitions
Definition: obj.h:1070
obj_set_sil_priority
void obj_set_sil_priority(obj_template_t *obj, uint8 prio)
Set the SIL priority field.
Definition: obj.c:17169
obj_get_altname
const xmlChar * obj_get_altname(const obj_template_t *obj)
Get the alt-name for this object, if any.
Definition: obj.c:15859
obj_get_fraction_digits
uint8 obj_get_fraction_digits(const obj_template_t *obj)
Get the fraction-digits field from the object typdef.
Definition: obj.c:13187
yang_find_node
yang_node_t * yang_find_node(const dlq_hdr_t *que, const xmlChar *name, const xmlChar *revision)
Find a YANG parser node in the specified Q.
Definition: yang.c:2778
ncx_find_any_object_que
obj_template_t * ncx_find_any_object_que(dlq_hdr_t *modQ, const xmlChar *objname)
Find any top-level YANG object in a module in the modQ.
Definition: ncx.c:4313
obj_clean_datadefQ
void obj_clean_datadefQ(dlq_hdr_t *que)
Clean and free all the obj_template_t structs in the specified Q.
Definition: obj.c:8148
obj_find_all_pfaxis
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:7882
obj_case_t_::name
xmlChar * name
case name
Definition: obj.h:832
obj_refine_t_::mandatory_tkerr
ncx_error_t mandatory_tkerr
mandatory and mandset are in the object flags
Definition: obj.h:903
obj_is_system_ordered
boolean obj_is_system_ordered(const obj_template_t *obj)
Check if the object is system or user-ordered.
Definition: obj.c:14464
obj_key_t_::qhdr
dlq_hdr_t qhdr
queue header
Definition: obj.h:653
obj_template_t_::silflags
uint8 silflags
see OBJ_FL_* definitions
Definition: obj.h:1067
obj_get_description_addr
const void * obj_get_description_addr(const obj_template_t *obj)
Get the address of the description field for this obj.
Definition: obj.c:10993
NCX_XPATH_TYPE_WHEN
@ NCX_XPATH_TYPE_WHEN
when-stmt
Definition: ncxtypes.h:1022
obj_find_template
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:5678
obj_deviation_t_::res
status_t res
parse status
Definition: obj.h:1275
obj_get_leaf_list_defset
boolean obj_get_leaf_list_defset(const obj_template_t *obj)
Get the defset flag for a leaf-list.
Definition: obj.c:17496
obj_uses_t_::grp
grp_template_t * grp
const back-ptr to grouping
Definition: obj.h:859
obj_next_unique
obj_unique_t * obj_next_unique(obj_unique_t *un)
Get the next unique-stmt for a list.
Definition: obj.c:9274
obj_list_t_::ordersys
boolean ordersys
ordered-by system or user
Definition: obj.h:798
obj_template_t_::cbset
void * cbset
cbset is different based on the object type:
Definition: obj.h:1103
obj_get_appinfoQ
dlq_hdr_t * obj_get_appinfoQ(obj_template_t *obj)
Get the appinfoQ for this obj.
Definition: obj.c:11286
obj_iffeature_ptr_t_::iffeature
ncx_iffeature_t * iffeature
if-feature back-ptr
Definition: obj.h:1001
OBJ_TYP_LEAF_LIST
@ OBJ_TYP_LEAF_LIST
leaf-list
Definition: obj.h:616
obj_leaf_t_::leafrefQ
dlq_hdr_t leafrefQ
used for quick validation on server
Definition: obj.h:739
obj_gen_object_id_prefix
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:10034
obj_list_t_::mustQ
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:804
ncx_set_error
void ncx_set_error(ncx_error_t *tkerr, ncx_module_t *mod, uint32 linenum, uint32 linepos)
Set the fields in an ncx_error_t struct.
Definition: ncx.c:9746
obj_clear_xpath_backptr
void obj_clear_xpath_backptr(obj_template_t *obj, struct xpath_pcb_t_ *xpath)
Clear an xpath-expr backptr.
Definition: obj.c:16418
obj_is_np_container
boolean obj_is_np_container(const obj_template_t *obj)
Check if the object is an Non-Presence-container.
Definition: obj.c:14487
obj_choice_t_::name
xmlChar * name
choice name
Definition: obj.h:816
obj_leaflist_t_::leafrefobj
struct obj_template_t_ * leafrefobj
leafref obj backptr only if btyp == NCX_BT_LEAFREF
Definition: obj.h:776
OBJ_TYP_RPC
@ OBJ_TYP_RPC
rpc-stmt
Definition: obj.h:623
obj_deviate_t_::mustQ
dlq_hdr_t mustQ
Q of xpath_pcb_t.
Definition: obj.h:1251
obj_new_defval_tk
obj_defval_tk_t * obj_new_defval_tk(void)
Create a new object default tk record;.
Definition: obj.c:17385
obj_get_status
ncx_status_t obj_get_status(const obj_template_t *obj)
Get the status field for this obj.
Definition: obj.c:10752
obj_first_terminal_child
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:6729
obj_deviate_t_::minelems
uint32 minelems
deviating min-elements
Definition: obj.h:1245
obj_notif_t_::status
ncx_status_t status
status-stmt
Definition: obj.h:987
obj_traverse_keys
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:9706
obj_set_notif_log_drops
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:17050
obj_match_datarule
boolean obj_match_datarule(obj_template_t *obj, void *rule)
Check if the data-rule back-ptr applies to this node.
Definition: obj.c:18042
obj_template_t_::flags
uint32 flags
see OBJ_FL_* definitions
Definition: obj.h:1062
obj_list_t_::ref
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:792
obj_is_anyxml
boolean obj_is_anyxml(const obj_template_t *obj)
Check if object is an anyxml.
Definition: obj.c:13271
obj_find_child_str
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:6559
obj_rpcio_t_
One YANG input-stmt or output-stmt struct.
Definition: obj.h:913
obj_rpc_has_output
boolean obj_rpc_has_output(obj_template_t *obj)
Check if the RPC object has any real output children.
Definition: obj.c:14967
obj_has_rw_children_ex
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:14924
obj_leaflist_t_::typdef
typ_def_t * typdef
typedef for the data type
Definition: obj.h:761
obj_template_t_::mod
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:1115
obj_deviation_t_::annotation
boolean annotation
set from annotation
Definition: obj.h:1274
obj_leaflist_t_::ref
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:758
obj_free_deviation
void obj_free_deviation(obj_deviation_t *deviation)
Clean and free an object deviation statement.
Definition: obj.c:9937
subsystem.h
Thin client IO handler for YumaPro server.
obj_find_xpath_backptr
boolean obj_find_xpath_backptr(obj_template_t *obj, struct xpath_pcb_t_ *xpath)
Find an xpath-expr backptr.
Definition: obj.c:16249
obj_template_t_::iffeatureQ
dlq_hdr_t iffeatureQ
Q of ncx_iffeature_t.
Definition: obj.h:1086
ncx_first_backptr
ncx_backptr_t * ncx_first_backptr(dlq_hdr_t *que)
Get first back pointer struct.
Definition: ncx.c:11513
obj_get_xpath_oper_ok
boolean obj_get_xpath_oper_ok(const obj_template_t *obj)
Get the object XPath oper OK flag.
Definition: obj.c:18505
obj_is_container
boolean obj_is_container(const obj_template_t *obj)
Check if object is a YANG container.
Definition: obj.c:13405
XP_AX_PRECEDING
@ XP_AX_PRECEDING
preceding axis (not allowed in YANG)
Definition: ncxtypes.h:510
OBJ_TYP_ANYXML
@ OBJ_TYP_ANYXML
anyxml
Definition: obj.h:613
ncx_module_t_
representation of one module or submodule during and after parsing
Definition: ncxtypes.h:900
NCX_ACCESS_RO
@ NCX_ACCESS_RO
read-only
Definition: ncxtypes.h:176
obj_get_oid_struct
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:17783
obj_get_mod_name
const xmlChar * obj_get_mod_name(const obj_template_t *obj)
Get the module name for this object.
Definition: obj.c:12176
xpath_set_backptrs_dirty
void xpath_set_backptrs_dirty(xpath_pcb_t *pcb, ncx_cfg_t cfg_id, boolean dirty)
Set the backptrs_dirty flag in the PCB.
Definition: xpath.c:4439
obj_find_child_fast
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:6239
obj_uses_t_::datadefQ
dlq_hdr_t * datadefQ
Q of obj_template_t.
Definition: obj.h:860
obj_get_datadefQ
dlq_hdr_t * obj_get_datadefQ(obj_template_t *obj)
Get the datadefQ (or caseQ) if this object has one.
Definition: obj.c:11455
obj_deviation_t_::targobj
obj_template_t * targobj
target object when resolved
Definition: obj.h:1262
obj_new_unique_comp
obj_unique_comp_t * obj_new_unique_comp(void)
Alloc and Init a obj_unique_comp_t struct.
Definition: obj.c:9155
ncx_clean_num
void ncx_clean_num(ncx_btype_t btyp, ncx_num_t *num)
Scrub the memory in a ncx_num_t by freeing all the sub-fields.
Definition: ncx_num.c:189
obj_in_rpc
boolean obj_in_rpc(const obj_template_t *obj)
Check if the object is in an rpc/input section.
Definition: obj.c:13876
NCX_BT_ANY
@ NCX_BT_ANY
anyxml
Definition: ncxtypes.h:202
obj_deviate_t_::mandatory_tkerr
ncx_error_t mandatory_tkerr
same comment as tkerr
Definition: obj.h:1242
EMPTY_STRING
#define EMPTY_STRING
empty string used to get const xmlChar * cast
Definition: ncxconst.h:289
obj_find_child
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:6116
obj_metadata_t_::qhdr
dlq_hdr_t qhdr
queue header
Definition: obj.h:1176
obj_get_min_elements
boolean obj_get_min_elements(obj_template_t *obj, uint32 *minelems)
Get the min-elements clause for this object, if any.
Definition: obj.c:12545
ncx_find_any_object
obj_template_t * ncx_find_any_object(const xmlChar *objname)
Find any top-level object in any YANG module.
Definition: ncx.c:4025
obj_gen_object_id_code
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 generate a unique name for C co...
Definition: obj.c:10312
obj_rpcio_t_::typedefQ
dlq_hdr_t * typedefQ
Q of typ_template_t.
Definition: obj.h:915
obj_errmsg_t_::basestr
xmlChar * basestr
base string
Definition: obj.h:1029
obj_is_cloned
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:13669
obj_last_child
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:6818
typ_is_schema_instance_string
boolean typ_is_schema_instance_string(const typ_def_t *typdef)
Find the ncx:schema-instance extension within the specified typdef chain.
Definition: typ.c:2789
ncx_netconfd_running
boolean ncx_netconfd_running(void)
Check if netconfd running.
Definition: ncx.c:11805
xml_strcmp
int xml_strcmp(const xmlChar *s1, const xmlChar *s2)
String compare for xmlChar.
Definition: xml_util.c:1746
obj_leaf_t_::descr
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:722
obj_new_deviation
obj_deviation_t * obj_new_deviation(void)
Malloc and initialize the fields in a an object deviation statement.
Definition: obj.c:9913
obj_is_ancestor
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:18606
obj_rpc_t_::name
xmlChar * name
rpc method name
Definition: obj.h:935
ncx_base_schema_set
boolean ncx_base_schema_set(void)
Check if the base schema features have been set yet.
Definition: ncx.c:13133
obj_has_when_stmts
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:14980
obj_ok_for_nolock
boolean obj_ok_for_nolock(const obj_template_t *obj)
check an object OK for nolock
Definition: obj.c:18194
typ_get_leafref_class
ncx_leafref_class_t typ_get_leafref_class(typ_def_t *typdef)
Get the leafref class for the leafref type.
Definition: typ.c:4826
ncx_use_get_when_check
boolean ncx_use_get_when_check(void)
Check server get retrievals to test for false when-stmt during retrieval operations on YANG data.
Definition: ncx.c:14629
obj_is_choice
boolean obj_is_choice(const obj_template_t *obj)
Check if object is a YANG choice.
Definition: obj.c:13425
LOGDEBUG4
#define LOGDEBUG4
Check if at least log-level=debug4.
Definition: log.h:302
log.h
NCX System Logging Manager.
obj_leaf_t_::keynum
uint16 keynum
internal key number only for keay leafs
Definition: obj.h:734
obj_clear_datarule
void obj_clear_datarule(obj_template_t *obj, const void *rule)
Clear the datarule back-ptr for this node.
Definition: obj.c:18008
obj_template_t_::edit_txid
ncx_transaction_id_t edit_txid
current edit transaction ID for commit test pruning
Definition: obj.h:1142
obj_first_ckey
const obj_key_t * obj_first_ckey(const obj_template_t *obj)
Get the first key record: Const version.
Definition: obj.c:9530
obj_is_block_user_delete
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:16120
obj_first_typedef
typ_template_t * obj_first_typedef(obj_template_t *obj)
Get the first local typedef for this object, if any.
Definition: obj.c:8275
obj_free_key
void obj_free_key(obj_key_t *key)
Free a obj_key_t struct.
Definition: obj.c:9373
obj_is_final
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:17837
obj_template_t_::qhdr
dlq_hdr_t qhdr
queue header
Definition: obj.h:1057
obj_set_abstract
void obj_set_abstract(obj_template_t *obj)
Set the abstract flag for the yang-data node.
Definition: obj.c:17703
ERR_BUFF_OVFL
@ ERR_BUFF_OVFL
106
Definition: status_enum.h:218
obj_set_notif_enabled
void obj_set_notif_enabled(obj_template_t *obj, boolean enabled)
Set the notification object enabled flag.
Definition: obj.c:17027
ncxtypes.h
YANG module data structures Many internal representations of YANG module constructs.
obj_add_errmsg
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.
obj_template_t_::objtype
obj_type_t objtype
object type (def)
Definition: obj.h:1058
obj_template_t_::xpath_backptr
struct xpath_pcb_t_ * xpath_backptr[OBJ_NUM_XPATH_BACKPTRS]
xpath backptr caching support
Definition: obj.h:1121
obj_is_leaf
boolean obj_is_leaf(const obj_template_t *obj)
Check if object is a proper leaf.
Definition: obj.c:13323
obj_template_t_::when
struct xpath_pcb_t_ * when
optional when clause
Definition: obj.h:1083
obj_list_t_
One YANG 'list' definition.
Definition: obj.h:781
OBJ_TYP_RPCIO
@ OBJ_TYP_RPCIO
rpc input or output
Definition: obj.h:624
obj_is_mandatory_when_ex
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:13584
NCX_CL_BASE
@ NCX_CL_BASE
a built-in base type
Definition: ncxtypes.h:244
OBJ_DARG_NONE
@ OBJ_DARG_NONE
not set
Definition: obj.h:1188
xmlns_nc_id
xmlns_id_t xmlns_nc_id(void)
Get the ID for the NETCONF namespace or 0 if it doesn't exist.
Definition: xmlns.c:880
ncx_remove_backptr
void ncx_remove_backptr(ncx_backptr_t *ptr)
Remove the specified backptr for deletion.
Definition: ncx.c:11592
ncx_feature_enabled
boolean ncx_feature_enabled(ncx_feature_t *feature)
Check if the specified feature and any referenced if-features are enabled.
Definition: ncx_feature.c:1181
obj_get_mod_version
const xmlChar * obj_get_mod_version(const obj_template_t *obj)
Get the module version for this object.
Definition: obj.c:12334
obj_leaflist_t_::minelems
uint32 minelems
min-elements value
Definition: obj.h:767
LOGDEBUG
#define LOGDEBUG
Check if at least log-level=debug.
Definition: log.h:287
obj_delete_mod_children
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:16789
obj_is_augment
boolean obj_is_augment(const obj_template_t *obj)
Check if the obj is an augment statement.
Definition: obj.c:13703
obj_copy_object_id
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:10374
OBJ_TYP_USES
@ OBJ_TYP_USES
uses-stmt has no name
Definition: obj.h:620
obj_is_schema_instance_string
boolean obj_is_schema_instance_string(const obj_template_t *obj)
Check if object is a schema-instance string.
Definition: obj.c:14420
xpath_clone_pcb
xpath_pcb_t * xpath_clone_pcb(const xpath_pcb_t *srcpcb)
Clone an XPath PCB.
Definition: xpath.c:2822
obj_first_xpath_backptr
struct xpath_pcb_t_ * obj_first_xpath_backptr(obj_template_t *obj)
Get the first xpath backptr.
Definition: obj.c:16281
xpath_pcb_t_
XPath parser control block.
Definition: xpath.h:668
obj_errmsg_parm_t_::qhdr
dlq_hdr_t qhdr
queue header
Definition: obj.h:1015
obj_get_reference_addr
const void * obj_get_reference_addr(const obj_template_t *obj)
Get the reference field for this obj.
Definition: obj.c:11111
obj_is_match
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:14114
ncx_free_mbackptr
void ncx_free_mbackptr(ncx_backptr_t *ptr)
Free an ncx_backptr_t struct; Free the 'node' pointer first.
Definition: ncx.c:11451
obj_get_real_mod
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:18549
obj_get_langver
ncx_yang_version_t obj_get_langver(obj_template_t *obj)
Get the YANG version for this object.
Definition: obj.c:17655
typ_get_base_typdef
typ_def_t * typ_get_base_typdef(typ_def_t *typdef)
Get the base typ_def_t in a chain – for NCX_CL_NAMED chained typed.
Definition: typ.c:2227
obj_find_case
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:8070
obj_is_top_aio_get2
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:18349
obj_template_t_::usesobj
struct obj_template_t_ * usesobj
backptr to uses-obj if grouping expand
Definition: obj.h:1080
ncx_list.h
NCX Module Library List Utility Functions.
obj_leaflist_t_::units
xmlChar * units
units-stmt
Definition: obj.h:752
dlq_deque
void * dlq_deque(dlq_hdrT *listP)
remove the first queue node from the queue list
Definition: dlq.c:286
NCX_STATUS_OBSOLETE
@ NCX_STATUS_OBSOLETE
obsolete removed from tree
Definition: ncxtypes.h:422
obj_has_ro_children
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:14850
obj_find_template_all
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:6041
obj_is_cli
boolean obj_is_cli(const obj_template_t *obj)
Check if object is marked as a CLI object.
Definition: obj.c:14222
obj_rpc_t_::supported
boolean supported
mod loaded, not implemented
Definition: obj.h:951
obj_first_terminal_child_nokey
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:6773
OBJ_DARG_REPLACE
@ OBJ_DARG_REPLACE
deviate replace
Definition: obj.h:1191
obj_list_t_::keystr
xmlChar * keystr
key-stmt (not required if config=false)
Definition: obj.h:786
obj_get_next_default
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:11662
dlq_empty
#define dlq_empty(listP)
check if queue list is empty
Definition: dlq.h:367
obj_first_defval_tk
obj_defval_tk_t * obj_first_defval_tk(const obj_refine_t *ref)
Get the first defval_tk entry.
Definition: obj.c:17439
XP_AX_FOLLOWING_SIBLING
@ XP_AX_FOLLOWING_SIBLING
following-sibling axis (not allowed in YANG)
Definition: ncxtypes.h:501
typ_new_typdef
typ_def_t * typ_new_typdef(void)
Malloc and initialize the fields in a typ_def_t.
Definition: typ.c:354
obj_container_t_::typedefQ
dlq_hdr_t * typedefQ
Q of typ_template_t.
Definition: obj.h:700
xml_strcpy
uint32 xml_strcpy(xmlChar *copyTo, const xmlChar *copyFrom)
String copy for xmlChar.
Definition: xml_util.c:1486
obj_set_xpath_oper_ok
void obj_set_xpath_oper_ok(obj_template_t *obj)
Set the object XPath oper OK flag.
Definition: obj.c:18527
xmlns_get_modptr
void * xmlns_get_modptr(xmlns_id_t nsid)
get the module pointer for the namespace ID
Definition: xmlns.c:1151
obj_add_errmsg_filter
status_t obj_add_errmsg_filter(obj_errmsg_t *errmsg, const xmlChar *parmstr, boolean is_errortag)
Add an errmsg filter for the object.
obj_metadata_t_
One YANG metadata (XML attribute) node.
Definition: obj.h:1175
obj_find_metadata
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:15119
NACM_PREFIX
#define NACM_PREFIX
source of secure and very-secure extensions!
Definition: ncxconst.h:94
obj_get_default_parm
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:12941
obj_rpc_t_::is_action
boolean is_action
YANG 1.1 only.
Definition: obj.h:947
NCX_STATUS_NONE
@ NCX_STATUS_NONE
not set
Definition: ncxtypes.h:419
obj_is_crypt_hash
boolean obj_is_crypt_hash(const obj_template_t *obj)
Check if the object is a leaf of type crypt-hash.
Definition: obj.c:17331
obj_init_unique
void obj_init_unique(obj_unique_t *un)
Init a obj_unique_t struct.
Definition: obj.c:9078
obj_first_iffeature_ptr
obj_iffeature_ptr_t * obj_first_iffeature_ptr(obj_template_t *obj)
Get first if-feature pointer.
Definition: obj.c:16174
obj_set_key_leaf
void obj_set_key_leaf(obj_template_t *obj, uint16 keynum)
Set the key data for the object.
Definition: obj.c:16872
obj_refine_t_::ref_tkerr
ncx_error_t ref_tkerr
same comment as descr_tkerr applies here
Definition: obj.h:889
obj_template_t_::index
obj_index_t index
object index for val_child ordering
Definition: obj.h:1073
obj_list_t_::uniqueQ
dlq_hdr_t uniqueQ
Q of obj_unique_t.
Definition: obj.h:797
obj_last_key
obj_key_t * obj_last_key(obj_template_t *obj)
Get the last key record.
Definition: obj.c:9501
obj_leaflist_t_::maxelems
uint32 maxelems
max-elements value
Definition: obj.h:769
obj_get_basetype
ncx_btype_t obj_get_basetype(const obj_template_t *obj)
Get the NCX base type enum for the object type.
Definition: obj.c:12077
obj_npcon_has_defaults
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:11752
obj_is_enabled
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:14527
obj_uses_t_::status
ncx_status_t status
status-stmt
Definition: obj.h:861
NCX_IQUAL_OPT
@ NCX_IQUAL_OPT
'?' == 0 or 1
Definition: ncxtypes.h:298
obj_first_child_deep
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:7084
ncx_get_backptr_node
void * ncx_get_backptr_node(ncx_backptr_t *backptr)
Get the back pointer node pointer.
Definition: ncx.c:11577
dlq_firstEntry
#define dlq_firstEntry(listP)
get the first entry in the queue list
Definition: dlq.h:337
obj_cache_datarule
status_t obj_cache_datarule(obj_template_t *obj, void *rule)
Set the data-rule back-ptr for this node.
Definition: obj.c:17973
obj_get_default
const xmlChar * obj_get_default(const obj_template_t *obj)
Get the default value for the specified object.
Definition: obj.c:11570
obj_is_secure
boolean obj_is_secure(const obj_template_t *obj)
Check if object is tagged ncx:secure.
Definition: obj.c:14438
obj_ok_for_cli
boolean obj_ok_for_cli(obj_template_t *obj)
Figure out if the obj is OK for current CLI implementation.
Definition: obj.c:14776
obj_list_t_::last_index
obj_index_t last_index
internal numbering data for val_child ordering
Definition: obj.h:810
obj_flag_xpath_backptrs_dirty
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:16539
obj_get_augment_target
const xmlChar * obj_get_augment_target(obj_template_t *obj)
Get the target path string for an augments object.
Definition: obj.c:15924
ncx.h
YANG module utility functions.
NCX_MATCH_ONE_NOCASE
@ NCX_MATCH_ONE_NOCASE
match all chars case-insensitive if only 1 match
Definition: ncxtypes.h:528
obj_first_grouping
grp_template_t * obj_first_grouping(obj_template_t *obj)
Get the first local grouping if any.
Definition: obj.c:8442
obj_deviate_t_::units_tkerr
ncx_error_t units_tkerr
same comment as tkerr
Definition: obj.h:1227
obj_notif_t_::typedefQ
dlq_hdr_t * typedefQ
Q of typ_template_t.
Definition: obj.h:988
obj_template_t_::augobj
struct obj_template_t_ * augobj
backptr to augment-obj if augment expand
Definition: obj.h:1081
obj_template_t_::sil_priority
uint8 sil_priority
picks SIL callback order
Definition: obj.h:1068
obj_get_level
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:11833
obj.h
Data Object Support.
obj_leaf_t_::leafrefobj
struct obj_template_t_ * leafrefobj
leafref obj backptr only if btyp == NCX_BT_LEAFREF
Definition: obj.h:742
obj_deviation_t_::tkerr
ncx_error_t tkerr
file and line info for compiler
Definition: obj.h:1271
obj_next_metadata
obj_metadata_t * obj_next_metadata(const obj_metadata_t *meta)
Get the next object metadata definition in the object.
Definition: obj.c:15187
obj_errmsg_parm_t_
custom error message parameter control block
Definition: obj.h:1014
obj_notif_t_::notif_enabled
boolean notif_enabled
enabled or disabled in server
Definition: obj.h:992
obj_is_block_user_create
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:16078
obj_get_next_iffeature
const ncx_iffeature_t * obj_get_next_iffeature(const ncx_iffeature_t *iffeature)
Get the next if-feature clause (if any)
Definition: obj.c:13250
obj_leaf_t_::status
ncx_status_t status
status-stmt
Definition: obj.h:731
ERR_NCX_DEF_LOOP
@ ERR_NCX_DEF_LOOP
325
Definition: status_enum.h:368
obj_get_sil_priority
uint8 obj_get_sil_priority(obj_template_t *obj)
Get the SIL priority field.
Definition: obj.c:17194
grp.h
YANG Grouping Statement Handler.
obj_rpc_t_::typedefQ
dlq_hdr_t * typedefQ
Q of typ_template_t.
Definition: obj.h:944
obj_dump_keystackQ
void obj_dump_keystackQ(dlq_hdr_t *keystackQ)
Dump a keystackQ with backptrs to obj_template_t for key leafs.
Definition: obj.c:17941
xmlns_ids_equal
boolean xmlns_ids_equal(xmlns_id_t ns1, xmlns_id_t ns2)
compare 2 namespace IDs only if they are both non-zero and return TRUE if they are equal
Definition: xmlns.c:1363
typ_clean_typeQ
void typ_clean_typeQ(dlq_hdr_t *que)
Clean a queue of typ_template_t structs.
Definition: typ.c:4477
obj_fill_keystackQ
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:17901
obj_unique_comp_t_
One component in a YANG list unique target.
Definition: obj.h:668
grp_has_typedefs
boolean grp_has_typedefs(const grp_template_t *grp)
Check if the grouping contains any typedefs.
Definition: grp.c:190
obj_get_max_elements
boolean obj_get_max_elements(obj_template_t *obj, uint32 *maxelems)
Get the max-elements clause for this object, if any.
Definition: obj.c:12590
obj_deviate_t_::defval_tkQ
dlq_hdr_t defval_tkQ
Q of obj_defval_tk_t (leaf-list can have multiple default-stmt)
Definition: obj.h:1230
ncx_init_list
void ncx_init_list(ncx_list_t *list, ncx_btype_t btyp)
Initialize an allocated ncx_list_t.
Definition: ncx_list.c:113
obj_dict.h
Object Dictionary utilities (NOT USED) The YANG Hash for the object identifier is used as the hash ke...
OBJ_TYP_ACTION
@ OBJ_TYP_ACTION
not really data, YANG 1.1 only
Definition: obj.h:627
ncx_string_in_list
boolean ncx_string_in_list(const xmlChar *str, const ncx_list_t *list)
Check if the string value is in the list List type must be string based, or an enum.
Definition: ncx_list.c:343
obj_list_t_::typedefQ
dlq_hdr_t * typedefQ
Q of typ_template_t.
Definition: obj.h:793
obj_delete_all_defvals
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:17578
obj_is_sil_delete_children_first
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:16013
obj_is_no_sil_delete_children_first
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:16027
obj_get_mod_xmlprefix
const xmlChar * obj_get_mod_xmlprefix(const obj_template_t *obj)
Get the module prefix for this object.
Definition: obj.c:12156
obj_key_count
uint32 obj_key_count(const obj_template_t *obj)
Get the number of keys for this object.
Definition: obj.c:9637
obj_delete_all_supported
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:17316
obj_errmsg_parm_t_::path
xmlChar * path
path of replacement data
Definition: obj.h:1016
obj_augment_t_::status
ncx_status_t status
status-stmt
Definition: obj.h:971
obj_any_notifs
boolean obj_any_notifs(const dlq_hdr_t *datadefQ)
Check if there are any notifications in the datadefQ.
Definition: obj.c:9795
obj_next_terminal_child
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:6895
OBJ_AUGTYP_CASE
@ OBJ_AUGTYP_CASE
case
Definition: obj.h:646
dlq_enque
void dlq_enque(REG void *newP, REG dlq_hdrT *listP)
add a queue node to the end of a queue list Add newP to listP
Definition: dlq.c:246
obj_list_t_::minset
boolean minset
min-elements set
Definition: obj.h:799
OBJ_DARG_ADD
@ OBJ_DARG_ADD
deviate add
Definition: obj.h:1189
obj_notif_t_
One YANG 'notification' clause definition.
Definition: obj.h:978
obj_find_unique
obj_unique_t * obj_find_unique(dlq_hdr_t *que, const xmlChar *xpath)
Find a specific unique-stmt.
Definition: obj.c:9206
ncx_find_pre_import
ncx_import_t * ncx_find_pre_import(const ncx_module_t *mod, const xmlChar *prefix)
Search the importQ for a specified prefix value.
Definition: ncx.c:5619
obj_container_t_::descr
xmlChar * descr
description-stmt (not saved by server)
Definition: obj.h:693
obj_type_t_
obj_type_t_
enumeration for different YANG data def statement types the enum order is significant!...
Definition: obj.h:611
obj_is_data_db
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:13788
obj_is_dirty
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:14243
obj_get_deviate_arg
const xmlChar * obj_get_deviate_arg(obj_deviate_arg_t devarg)
Get the deviate-arg string from its enumeration.
Definition: obj.c:9883
OC_EXT_PREFIX
#define OC_EXT_PREFIX
default prefix to use for OpenConfig Extensions namespace
Definition: ncxconst.h:256
obj_list_t_::keyQ
dlq_hdr_t keyQ
Q of obj_key_t.
Definition: obj.h:796
obj_augtype_t_
obj_augtype_t_
enumeration for different YANG augment statement types
Definition: obj.h:642
obj_leaflist_t_::leafrefQ
dlq_hdr_t leafrefQ
Q of ncx_backptr_t to obj_template_t.
Definition: obj.h:772
obj_next_terminal_child_nokey
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:6931
obj_get_config_flag2
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:11213
obj_get_reference
const xmlChar * obj_get_reference(const obj_template_t *obj)
Get the reference field for this obj.
Definition: obj.c:11052
ncx_get_next_module
ncx_module_t * ncx_get_next_module(const ncx_module_t *mod)
Get the next module in the ncx_modQ.
Definition: ncx.c:4751
obj_is_mandatory_when
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:13656
obj_template_t_::uflags
uint32 uflags
see OBJ_FL_* definitions
Definition: obj.h:1066
smioid_tree.h
AVL Tree storage of SMI OID data.
obj_new_metadata
obj_metadata_t * obj_new_metadata(void)
Malloc and initialize the fields in a an obj_metadata_t.
Definition: obj.c:15021
obj_deviation_t_::ref
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:1268
SET_ERROR
#define SET_ERROR(E)
macro SET_ERROR
Definition: status_enum.h:103
obj_deviate_t_::minelems_tkerr
ncx_error_t minelems_tkerr
also minset
Definition: obj.h:1246
obj_refine_t_::targobj
struct obj_template_t_ * targobj
resolved target object to refine
Definition: obj.h:872
obj_uses_t_::prefix
xmlChar * prefix
prefix present in uses-stmt
Definition: obj.h:851
NCX_CL_NAMED
@ NCX_CL_NAMED
a restriction of a named type
Definition: ncxtypes.h:247
obj_refine_t_::ref
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:886
obj_has_name
boolean obj_has_name(const obj_template_t *obj)
Check if the specified object type has a name.
Definition: obj.c:10667
xmlns_ncx_id
xmlns_id_t xmlns_ncx_id(void)
Get the ID for the NETCONF Extensions namespace or 0 if it doesn't exist.
Definition: xmlns.c:897
obj_deviation_t_::qhdr
dlq_hdr_t qhdr
queue header
Definition: obj.h:1259
obj_template_t_::when_txid
ncx_transaction_id_t when_txid
current edit transaction ID for WHEN test default nodes pruning
Definition: obj.h:1148
obj_notif_t_::in_data
boolean in_data
defined in data, YANG 1.1 only
Definition: obj.h:994
obj_is_xpath_string
boolean obj_is_xpath_string(const obj_template_t *obj)
Check if object is an XPath string.
Definition: obj.c:14394
NCX_BT_CHOICE
@ NCX_BT_CHOICE
internal choice, not really used
Definition: ncxtypes.h:226
obj_clean_deviationQ
void obj_clean_deviationQ(dlq_hdr_t *deviationQ)
Clean and free an Q of object deviation statements.
Definition: obj.c:9965
OBJ_TYP_LEAF
@ OBJ_TYP_LEAF
leaf
Definition: obj.h:615
obj_assign_xpath_backptr
status_t obj_assign_xpath_backptr(obj_template_t *obj, struct xpath_pcb_t_ *xpath)
Set an xpath-expr backptr.
Definition: obj.c:16358
NCX_BT_STRING
@ NCX_BT_STRING
string
Definition: ncxtypes.h:217
obj_key_count_to_root
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:9667
obj_errmsg_clean
void obj_errmsg_clean(obj_template_t *obj)
Clean the error messages within an object template.
Definition: obj_errmsg.c:431
obj_unique_t_
One component in a YANG list unique target.
Definition: obj.h:677
obj_deviate_t_
YANG deviate statement struct.
Definition: obj.h:1197
ncx_get_next_data_object
obj_template_t * ncx_get_next_data_object(ncx_module_t *mod, obj_template_t *curobj)
Get the next database object in the specified module.
Definition: ncx.c:5238
ncx_free_backptr
void ncx_free_backptr(ncx_backptr_t *ptr)
Free an ncx_backptr_t struct.
Definition: ncx.c:11433
obj_match_child_str
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:6628
obj_case_t_::datadefQ
dlq_hdr_t * datadefQ
Q of obj_template_t.
Definition: obj.h:840
obj_get_real_cparent
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:12772
typ_free_typdef
void typ_free_typdef(typ_def_t *typdef)
Scrub the memory in a typ_def_t by freeing all Then free the typdef itself.
Definition: typ.c:467
obj_has_rw_children
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:14909
obj_is_refine
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:13742
obj_notif_t_::datadefQ
dlq_hdr_t datadefQ
Q of obj_template_t.
Definition: obj.h:990
obj_augment_t_::descr
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:961
xmlns.h
XML namespace support.
obj_copy_object_id_mod
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:10412
obj_number_data_object
void obj_number_data_object(obj_template_t *obj)
Number the object tree; initial setup.
Definition: obj.c:17366
obj_get_typestr
const xmlChar * obj_get_typestr(const obj_template_t *obj)
Get the name of the object type.
Definition: obj.c:11392
obj_leaflist_t_::descr
xmlChar * descr
description-stmt (not saved on server)
Definition: obj.h:755
obj_deviate_t_::maxelems_tkerr
ncx_error_t maxelems_tkerr
also maxset
Definition: obj.h:1250
ncx_get_parent_mod
ncx_module_t * ncx_get_parent_mod(ncx_module_t *mod)
Find the correct module by checking mod->parent nodes.
Definition: ncx.c:9995
obj_errmsg_parm_t_::valstr
xmlChar * valstr
state: value string
Definition: obj.h:1022
obj_is_deleted_ex
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:14361
obj_is_root
boolean obj_is_root(const obj_template_t *obj)
Check if object is marked as a root object.
Definition: obj.c:14152
obj_get_config_flag_check
boolean obj_get_config_flag_check(const obj_template_t *obj, boolean *ingrp)
get config flag during YANG module checking
Definition: obj.c:13101
obj_key_t_::seen
boolean seen
used by yangdiff
Definition: obj.h:655
dlq_destroyQue
void dlq_destroyQue(dlq_hdrT *listP)
free a dynamic queue header previously allocated with dlq_createQue
Definition: dlq.c:206
obj_get_iqualval
ncx_iqual_t obj_get_iqualval(obj_template_t *obj)
Get the instance qualifier for this object.
Definition: obj.c:12427
OBJ_DARG_DELETE
@ OBJ_DARG_DELETE
deviate delete
Definition: obj.h:1190
status.h
Global error messages for status code enumerations.
obj_clone_template_case
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:8984
NCX_BT_NONE
@ NCX_BT_NONE
base type not set
Definition: ncxtypes.h:201
obj_get_help_description
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:10922
obj_deviate_t_::arg_tkerr
ncx_error_t arg_tkerr
same comment as tkerr
Definition: obj.h:1215
obj_get_presence_string
const xmlChar * obj_get_presence_string(const obj_template_t *obj)
Get the present-stmt value, if any.
Definition: obj.c:12809
obj_metadata_t_::name
xmlChar * name
metadata name
Definition: obj.h:1178
obj_is_password
boolean obj_is_password(const obj_template_t *obj)
Check if object is marked as a password object.
Definition: obj.c:14195
SMI_PREFIX
#define SMI_PREFIX
default prefix to SMI V1 Extention namespace.
Definition: ncxconst.h:279
obj_find_type
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:8174
obj_get_nsid
xmlns_id_t obj_get_nsid(const obj_template_t *obj)
Get the namespace ID for this object.
Definition: obj.c:12395
obj_set_name
status_t obj_set_name(obj_template_t *obj, const xmlChar *objname)
Set the name field for this obj.
Definition: obj.c:10574
dlq.h
dlq provides general double-linked list and queue support:
obj_has_get2cb
boolean obj_has_get2cb(obj_template_t *obj)
Check if current object has GET2 callback registered.
Definition: obj.c:18099
obj_case_t_::status
ncx_status_t status
status-stmt
Definition: obj.h:845
ncx_clone_appinfo
ncx_appinfo_t * ncx_clone_appinfo(ncx_appinfo_t *appinfo)
Clone an appinfo value.
Definition: ncx_appinfo.c:688
obj_find_child_choice_case
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:6201
obj_deviate_t_::appinfoQ
dlq_hdr_t appinfoQ
Q of ncx_appinfo_t.
Definition: obj.h:1253
ncx_new_backptr
ncx_backptr_t * ncx_new_backptr(void *node)
Malloc and initialize a new ncx_backptr_t struct.
Definition: ncx.c:11412
xml_node_match
status_t xml_node_match(const xml_node_t *node, xmlns_id_t nsid, const xmlChar *elname, xml_nodetyp_t nodetyp)
check if a specific node is the proper owner, name, and type
Definition: xml_util.c:545
obj_get_augment_targobj
obj_template_t * obj_get_augment_targobj(obj_template_t *obj)
Get the target object for an augments object.
Definition: obj.c:15905
obj_oid_t_::cnt
uint8 cnt
amount of Sub-Ids (max 128)
Definition: obj.h:1046
LOGDEBUG3
#define LOGDEBUG3
Check if at least log-level=debug3.
Definition: log.h:297
obj_case_t_::ref
xmlChar * ref
reference-stmt (not saved on server)
Definition: obj.h:838
typ_get_default
const xmlChar * typ_get_default(const typ_def_t *typdef)
Check if this typdef has a default value defined get default from typdef.
Definition: typ.c:2878
typ_get_units_from_typdef
const xmlChar * typ_get_units_from_typdef(const typ_def_t *typdef)
Find the units string for the specified typdef template.
Definition: typ.c:3013
obj_list_t_::status
ncx_status_t status
status-stmt
Definition: obj.h:803
obj_template_t_
One YANG data-def-stmt.
Definition: obj.h:1056
ncx_transaction_id_t
uint64 ncx_transaction_id_t
transaction is scoped to single session write operation on a config
Definition: ncxtypes.h:548
obj_template_t_::def_
object specific variants
Definition: obj.h:1151