@@ -1653,6 +1653,9 @@ lysp_add_internal_ietf_netconf(struct lysp_ctx *pctx, struct lysp_module *mod)
16531653{
16541654 struct lysp_ext_instance * extp , * prev_exts = mod -> exts ;
16551655 struct lysp_stmt * stmt ;
1656+ struct lysp_node_leaf * leaf ;
1657+ struct lysp_node_container * cont ;
1658+ struct lysp_type_enum * enm ;
16561659 struct lysp_import * imp ;
16571660 uint32_t idx ;
16581661
@@ -1806,6 +1809,107 @@ lysp_add_internal_ietf_netconf(struct lysp_ctx *pctx, struct lysp_module *mod)
18061809 pctx -> ext_inst .objs [idx ] = mod -> exts ;
18071810 }
18081811
1812+ /*
1813+ * 4) rpc-error
1814+ */
1815+ LY_LIST_NEW_RET (mod -> mod -> ctx , & mod -> data , cont , next , LY_EMEM );
1816+ cont -> nodetype = LYS_CONTAINER ;
1817+ LY_CHECK_RET (lydict_insert (mod -> mod -> ctx , "rpc-error" , 0 , & cont -> name ));
1818+ LY_CHECK_RET (lydict_insert (mod -> mod -> ctx , "presence" , 0 , & cont -> presence ));
1819+ cont -> flags = LYS_INTERNAL ;
1820+
1821+ LY_LIST_NEW_RET (mod -> mod -> ctx , & cont -> child , leaf , next , LY_EMEM );
1822+ leaf -> nodetype = LYS_LEAF ;
1823+ LY_CHECK_RET (lydict_insert (mod -> mod -> ctx , "error-type" , 0 , & leaf -> name ));
1824+ leaf -> flags = LYS_INTERNAL ;
1825+ LY_CHECK_RET (lydict_insert (mod -> mod -> ctx , "enumeration" , 0 , & leaf -> type .name ));
1826+ leaf -> type .pmod = mod ;
1827+ leaf -> type .flags = LYS_SET_ENUM ;
1828+ LY_ARRAY_NEW_RET (mod -> mod -> ctx , leaf -> type .enums , enm , LY_EMEM );
1829+ LY_CHECK_RET (lydict_insert (mod -> mod -> ctx , "transport" , 0 , & enm -> name ));
1830+ LY_ARRAY_NEW_RET (mod -> mod -> ctx , leaf -> type .enums , enm , LY_EMEM );
1831+ LY_CHECK_RET (lydict_insert (mod -> mod -> ctx , "rpc" , 0 , & enm -> name ));
1832+ LY_ARRAY_NEW_RET (mod -> mod -> ctx , leaf -> type .enums , enm , LY_EMEM );
1833+ LY_CHECK_RET (lydict_insert (mod -> mod -> ctx , "protocol" , 0 , & enm -> name ));
1834+ LY_ARRAY_NEW_RET (mod -> mod -> ctx , leaf -> type .enums , enm , LY_EMEM );
1835+ LY_CHECK_RET (lydict_insert (mod -> mod -> ctx , "application" , 0 , & enm -> name ));
1836+
1837+ LY_LIST_NEW_RET (mod -> mod -> ctx , & cont -> child , leaf , next , LY_EMEM );
1838+ leaf -> nodetype = LYS_LEAF ;
1839+ LY_CHECK_RET (lydict_insert (mod -> mod -> ctx , "error-tag" , 0 , & leaf -> name ));
1840+ leaf -> flags = LYS_INTERNAL ;
1841+ LY_CHECK_RET (lydict_insert (mod -> mod -> ctx , "enumeration" , 0 , & leaf -> type .name ));
1842+ leaf -> type .pmod = mod ;
1843+ leaf -> type .flags = LYS_SET_ENUM ;
1844+ LY_ARRAY_NEW_RET (mod -> mod -> ctx , leaf -> type .enums , enm , LY_EMEM );
1845+ LY_CHECK_RET (lydict_insert (mod -> mod -> ctx , "in-use" , 0 , & enm -> name ));
1846+ LY_ARRAY_NEW_RET (mod -> mod -> ctx , leaf -> type .enums , enm , LY_EMEM );
1847+ LY_CHECK_RET (lydict_insert (mod -> mod -> ctx , "invalid-value" , 0 , & enm -> name ));
1848+ LY_ARRAY_NEW_RET (mod -> mod -> ctx , leaf -> type .enums , enm , LY_EMEM );
1849+ LY_CHECK_RET (lydict_insert (mod -> mod -> ctx , "too-big" , 0 , & enm -> name ));
1850+ LY_ARRAY_NEW_RET (mod -> mod -> ctx , leaf -> type .enums , enm , LY_EMEM );
1851+ LY_CHECK_RET (lydict_insert (mod -> mod -> ctx , "missing-attribute" , 0 , & enm -> name ));
1852+ LY_ARRAY_NEW_RET (mod -> mod -> ctx , leaf -> type .enums , enm , LY_EMEM );
1853+ LY_CHECK_RET (lydict_insert (mod -> mod -> ctx , "bad-attribute" , 0 , & enm -> name ));
1854+ LY_ARRAY_NEW_RET (mod -> mod -> ctx , leaf -> type .enums , enm , LY_EMEM );
1855+ LY_CHECK_RET (lydict_insert (mod -> mod -> ctx , "unknown-attribute" , 0 , & enm -> name ));
1856+ LY_ARRAY_NEW_RET (mod -> mod -> ctx , leaf -> type .enums , enm , LY_EMEM );
1857+ LY_CHECK_RET (lydict_insert (mod -> mod -> ctx , "missing-element" , 0 , & enm -> name ));
1858+ LY_ARRAY_NEW_RET (mod -> mod -> ctx , leaf -> type .enums , enm , LY_EMEM );
1859+ LY_CHECK_RET (lydict_insert (mod -> mod -> ctx , "bad-element" , 0 , & enm -> name ));
1860+ LY_ARRAY_NEW_RET (mod -> mod -> ctx , leaf -> type .enums , enm , LY_EMEM );
1861+ LY_CHECK_RET (lydict_insert (mod -> mod -> ctx , "unknown-element" , 0 , & enm -> name ));
1862+ LY_ARRAY_NEW_RET (mod -> mod -> ctx , leaf -> type .enums , enm , LY_EMEM );
1863+ LY_CHECK_RET (lydict_insert (mod -> mod -> ctx , "unknown-namespace" , 0 , & enm -> name ));
1864+ LY_ARRAY_NEW_RET (mod -> mod -> ctx , leaf -> type .enums , enm , LY_EMEM );
1865+ LY_CHECK_RET (lydict_insert (mod -> mod -> ctx , "access-denied" , 0 , & enm -> name ));
1866+ LY_ARRAY_NEW_RET (mod -> mod -> ctx , leaf -> type .enums , enm , LY_EMEM );
1867+ LY_CHECK_RET (lydict_insert (mod -> mod -> ctx , "lock-denied" , 0 , & enm -> name ));
1868+ LY_ARRAY_NEW_RET (mod -> mod -> ctx , leaf -> type .enums , enm , LY_EMEM );
1869+ LY_CHECK_RET (lydict_insert (mod -> mod -> ctx , "resource-denied" , 0 , & enm -> name ));
1870+ LY_ARRAY_NEW_RET (mod -> mod -> ctx , leaf -> type .enums , enm , LY_EMEM );
1871+ LY_CHECK_RET (lydict_insert (mod -> mod -> ctx , "rollback-failed" , 0 , & enm -> name ));
1872+ LY_ARRAY_NEW_RET (mod -> mod -> ctx , leaf -> type .enums , enm , LY_EMEM );
1873+ LY_CHECK_RET (lydict_insert (mod -> mod -> ctx , "data-exists" , 0 , & enm -> name ));
1874+ LY_ARRAY_NEW_RET (mod -> mod -> ctx , leaf -> type .enums , enm , LY_EMEM );
1875+ LY_CHECK_RET (lydict_insert (mod -> mod -> ctx , "data-missing" , 0 , & enm -> name ));
1876+ LY_ARRAY_NEW_RET (mod -> mod -> ctx , leaf -> type .enums , enm , LY_EMEM );
1877+ LY_CHECK_RET (lydict_insert (mod -> mod -> ctx , "operation-not-supported" , 0 , & enm -> name ));
1878+ LY_ARRAY_NEW_RET (mod -> mod -> ctx , leaf -> type .enums , enm , LY_EMEM );
1879+ LY_CHECK_RET (lydict_insert (mod -> mod -> ctx , "operation-failed" , 0 , & enm -> name ));
1880+ LY_ARRAY_NEW_RET (mod -> mod -> ctx , leaf -> type .enums , enm , LY_EMEM );
1881+ LY_CHECK_RET (lydict_insert (mod -> mod -> ctx , "partial-operation" , 0 , & enm -> name ));
1882+ LY_ARRAY_NEW_RET (mod -> mod -> ctx , leaf -> type .enums , enm , LY_EMEM );
1883+ LY_CHECK_RET (lydict_insert (mod -> mod -> ctx , "malformed-message" , 0 , & enm -> name ));
1884+
1885+ LY_LIST_NEW_RET (mod -> mod -> ctx , & cont -> child , leaf , next , LY_EMEM );
1886+ leaf -> nodetype = LYS_LEAF ;
1887+ LY_CHECK_RET (lydict_insert (mod -> mod -> ctx , "error-severity" , 0 , & leaf -> name ));
1888+ leaf -> flags = LYS_INTERNAL ;
1889+ LY_CHECK_RET (lydict_insert (mod -> mod -> ctx , "enumeration" , 0 , & leaf -> type .name ));
1890+ leaf -> type .pmod = mod ;
1891+ leaf -> type .flags = LYS_SET_ENUM ;
1892+ LY_ARRAY_NEW_RET (mod -> mod -> ctx , leaf -> type .enums , enm , LY_EMEM );
1893+ LY_CHECK_RET (lydict_insert (mod -> mod -> ctx , "error" , 0 , & enm -> name ));
1894+ LY_ARRAY_NEW_RET (mod -> mod -> ctx , leaf -> type .enums , enm , LY_EMEM );
1895+ LY_CHECK_RET (lydict_insert (mod -> mod -> ctx , "warning" , 0 , & enm -> name ));
1896+
1897+ LY_LIST_NEW_RET (mod -> mod -> ctx , & cont -> child , leaf , next , LY_EMEM );
1898+ leaf -> nodetype = LYS_LEAF ;
1899+ LY_CHECK_RET (lydict_insert (mod -> mod -> ctx , "error-app-tag" , 0 , & leaf -> name ));
1900+ leaf -> flags = LYS_INTERNAL ;
1901+ LY_CHECK_RET (lydict_insert (mod -> mod -> ctx , "string" , 0 , & leaf -> type .name ));
1902+ leaf -> type .pmod = mod ;
1903+
1904+ LY_LIST_NEW_RET (mod -> mod -> ctx , & cont -> child , leaf , next , LY_EMEM );
1905+ leaf -> nodetype = LYS_LEAF ;
1906+ LY_CHECK_RET (lydict_insert (mod -> mod -> ctx , "error-path" , 0 , & leaf -> name ));
1907+ leaf -> flags = LYS_INTERNAL ;
1908+ LY_CHECK_RET (lydict_insert (mod -> mod -> ctx , "yang_:xpath1.0" , 0 , & leaf -> type .name ));
1909+ leaf -> type .pmod = mod ;
1910+
1911+ /* the rest are opaque nodes, error-message (because of 'xml:lang' attribute) and error-info (because can be any nodes) */
1912+
18091913 /* create new imports for the used prefixes */
18101914 LY_ARRAY_NEW_RET (mod -> mod -> ctx , mod -> imports , imp , LY_EMEM );
18111915 LY_CHECK_RET (lydict_insert (mod -> mod -> ctx , "ietf-yang-metadata" , 0 , & imp -> name ));
0 commit comments