ydk-gen icon indicating copy to clipboard operation
ydk-gen copied to clipboard

Libyang Error: not able to find lsps

Open psykokwak4 opened this issue 8 years ago • 0 comments

CRUD create operation failed for test snippet below:

auto mpls = std::make_unique<openconfig_mpls::Mpls>();
mpls->lsps->unconstrained_path->path_setup_protocol->ldp = std::make_unique<openconfig_mpls::Mpls::Lsps::UnconstrainedPath::PathSetupProtocol::Ldp>();
auto mpls_lsps_unconstrainedpath_pathsetupprotocol_ldp_tunnel_p2plsp_fec_address = R"(10.0.0.1/32)";
mpls->lsps->unconstrained_path->path_setup_protocol->ldp->tunnel->p2p_lsp->fec_address.append(std::move(mpls_lsps_unconstrainedpath_pathsetupprotocol_ldp_tunnel_p2plsp_fec_address));
auto mpls_lsps_unconstrainedpath_pathsetupprotocol_ldp = std::make_unique<openconfig_mpls::Mpls::Lsps::UnconstrainedPath::PathSetupProtocol::Ldp>();
auto mpls = std::make_unique<openconfig_mpls::Mpls>();
mpls->lsps->unconstrained_path->path_setup_protocol->ldp = std::move(mpls_lsps_unconstrainedpath_pathsetupprotocol_ldp);
mpls->lsps->unconstrained_path->path_setup_protocol->ldp->tunnel->ldp_type = openconfig_mpls::Mpls::Lsps::UnconstrainedPath::PathSetupProtocol::Ldp::Tunnel::LdpTypeEnum::TARGETED;
mpls->lsps->unconstrained_path->path_setup_protocol->ldp->tunnel->tunnel_type = openconfig_mpls_types::TunnelTypeEnum::P2P;

Trace back:

[2016-12-16 15:46:02.613159] [0x00007fffc30cf3c0] [trace]   Looking at child 'lsps': lsps
[2016-12-16 15:46:02.613176] [0x00007fffc30cf3c0] [trace]   Current path: /openconfig-mpls:mpls-top/mpls
[2016-12-16 15:46:02.613180] [0x00007fffc30cf3c0] [trace]   Top container path: openconfig-mpls:mpls
[2016-12-16 15:46:02.631717] [0x00007fffc30cf3c0] [trace]   Getting child schema with path 'lsps' in mpls
[2016-12-16 15:46:02.631734] [0x00007fffc30cf3c0] [trace]   Getting data nodes with path 'lsps'
[2016-12-16 15:46:02.631753] [0x00007fffc30cf3c0] [trace]   Creating new data path 'lsps', with value '' in 'mpls'
[2016-12-16 15:46:02.631769] [0x00007fffc30cf3c0] [trace]   Leaf count: 0
[2016-12-16 15:46:02.631778] [0x00007fffc30cf3c0] [trace]   Children count for: lsps: 3
[2016-12-16 15:46:02.631783] [0x00007fffc30cf3c0] [trace]   ==================

[2016-12-16 15:46:02.631790] [0x00007fffc30cf3c0] [trace]   Looking at child 'constrained-path': constrained-path
[2016-12-16 15:46:02.631795] [0x00007fffc30cf3c0] [trace]   Child has no data and no operations
[2016-12-16 15:46:02.631799] [0x00007fffc30cf3c0] [trace]   ==================

[2016-12-16 15:46:02.631805] [0x00007fffc30cf3c0] [trace]   Looking at child 'static-lsps': static-lsps
[2016-12-16 15:46:02.631809] [0x00007fffc30cf3c0] [trace]   Child has no data and no operations
[2016-12-16 15:46:02.631812] [0x00007fffc30cf3c0] [trace]   ==================

[2016-12-16 15:46:02.631821] [0x00007fffc30cf3c0] [trace]   Looking at child 'unconstrained-path': unconstrained-path
[2016-12-16 15:46:02.631836] [0x00007fffc30cf3c0] [trace]   Current path: /openconfig-mpls:mpls-top/mpls/lsps
[2016-12-16 15:46:02.631841] [0x00007fffc30cf3c0] [trace]   Top container path: openconfig-mpls:mpls
[2016-12-16 15:46:02.631846] [0x00007fffc30cf3c0] [trace]   Getting child schema with path 'unconstrained-path' in lsps
[2016-12-16 15:46:02.631851] [0x00007fffc30cf3c0] [trace]   Getting data nodes with path 'unconstrained-path'
[2016-12-16 15:46:02.631860] [0x00007fffc30cf3c0] [trace]   Creating new data path 'unconstrained-path', with value '' in 'lsps'
[2016-12-16 15:46:02.631867] [0x00007fffc30cf3c0] [trace]   Leaf count: 0
[2016-12-16 15:46:02.631874] [0x00007fffc30cf3c0] [trace]   Children count for: unconstrained-path: 1
[2016-12-16 15:46:02.631878] [0x00007fffc30cf3c0] [trace]   ==================

[2016-12-16 15:46:02.631884] [0x00007fffc30cf3c0] [trace]   Looking at child 'path-setup-protocol': path-setup-protocol
[2016-12-16 15:46:02.631894] [0x00007fffc30cf3c0] [trace]   Current path: /openconfig-mpls:mpls-top/mpls/lsps/unconstrained-path
[2016-12-16 15:46:02.631899] [0x00007fffc30cf3c0] [trace]   Top container path: openconfig-mpls:mpls
[2016-12-16 15:46:02.631903] [0x00007fffc30cf3c0] [trace]   Getting child schema with path 'path-setup-protocol' in unconstrained-path
[2016-12-16 15:46:02.631908] [0x00007fffc30cf3c0] [trace]   Getting data nodes with path 'path-setup-protocol'
[2016-12-16 15:46:02.631916] [0x00007fffc30cf3c0] [trace]   Creating new data path 'path-setup-protocol', with value '' in 'unconstrained-path'
[2016-12-16 15:46:02.631923] [0x00007fffc30cf3c0] [trace]   Leaf count: 0
[2016-12-16 15:46:02.631930] [0x00007fffc30cf3c0] [trace]   Children count for: path-setup-protocol: 2
[2016-12-16 15:46:02.631935] [0x00007fffc30cf3c0] [trace]   ==================

[2016-12-16 15:46:02.631943] [0x00007fffc30cf3c0] [trace]   Looking at child 'ldp': openconfig-mpls:mpls/lsps/unconstrained-path/path-setup-protocol/ldp
[2016-12-16 15:46:02.631962] [0x00007fffc30cf3c0] [trace]   Current path: /openconfig-mpls:mpls-top/mpls/lsps/unconstrained-path/igp-lsp-setup/path-setup-protocol
[2016-12-16 15:46:02.631967] [0x00007fffc30cf3c0] [trace]   Top container path: openconfig-mpls:mpls
[2016-12-16 15:46:02.631972] [0x00007fffc30cf3c0] [trace]   Skipping segment same as openconfig-mpls:mpls
[2016-12-16 15:46:02.631976] [0x00007fffc30cf3c0] [trace]   Getting child schema with path 'lsps' in path-setup-protocol
[2016-12-16 15:46:02.632005] [0x00007fffc30cf3c0] [error]   Libyang ERROR: Schema node not found. Path: 'lsps'
[2016-12-16 15:46:02.632013] [0x00007fffc30cf3c0] [trace]   Skipping segment same as openconfig-mpls:mpls
[2016-12-16 15:46:02.632017] [0x00007fffc30cf3c0] [trace]   Creating new data path 'lsps' in 'path-setup-protocol'
[2016-12-16 15:46:02.632027] [0x00007fffc30cf3c0] [error]   Libyang ERROR: Schema node not found. Path: 'lsps'
[2016-12-16 15:46:02.632032] [0x00007fffc30cf3c0] [error]   Invalid path: lsps
[2016-12-16 15:46:02.632192] [0x00007fffc30cf3c0] [debug]   Disconnected from device
/Users/saber/Cisco/cisco-devnet/gen-api/cpp/ydk/src/path/data_node.cpp:220: fatal error: in "virtual ydk::path::DataNode *ydk::path::DataNodeImpl::create_helper(const std::string &, const std::string &, bool)": boost::exception_detail::clone_impl<ydk::YCPPModelError>: Invalid path: lsps
/Users/saber/Cisco/cisco-devnet/gen-api/cpp/openconfig-bundle/ydk/tests/test_openconfig_mpls.cpp:983: last checkpoint: "mpls_lsps_unconstrainedpath_pathsetupprotocol_ldp_tunnel_test" entry.

Init ConfD config:

<config xmlns="http://tail-f.com/ns/config/1.0">
  <interfaces xmlns="http://openconfig.net/yang/interfaces">
    <interface>
      <name>interface name</name>
      <config>
        <description>hard code interface name</description>
        <enabled>true</enabled>
        <name>interface name</name>
        <type xmlns:idx="urn:ietf:params:xml:ns:yang:iana-if-type">idx:aluELP</type>
      </config>
    </interface>
  </interfaces>
</config>

ConfD Makefile:


usage:
	@echo "See README files for more instructions"
	@echo "make all     Build all example files"
	@echo "make clean   Remove all built and intermediary files"
	@echo "make start   Start CONFD daemon and example agent"
	@echo "make stop    Stop any CONFD daemon and example agent"

######################################################################
# Where is ConfD installed? Make sure CONFD_DIR points it out
CONFD_DIR ?= ../../../..

# Include standard ConfD build definitions and rules
include $(CONFD_DIR)/src/confd/build/include.mk

# In case CONFD_DIR is not set (correctly), this rule will trigger
$(CONFD_DIR)/src/confd/build/include.mk:
	@echo 'Where is ConfD installed? Set $$CONFD_DIR to point it out!'
	@echo ''

######################################################################
# Example specific definitions and rules

CONFD_FLAGS = --addloadpath $(CONFD_DIR)/etc/confd --addloadpath $(CONFD_DIR)/src/confd/yang
START_FLAGS ?=

$(info VAR="$(CDB_DIR)")

all: openconfig-bgp.fxs openconfig-bgp-policy.fxs openconfig-routing-policy.fxs openconfig-policy-types.fxs\
	openconfig-bgp-types.fxs openconfig-types.fxs openconfig-bgp-operational.fxs openconfig-bgp-multiprotocol.fxs\
	openconfig-if-ethernet.fxs openconfig-interfaces.fxs iana-if-type.fxs ietf-interfaces.fxs openconfig-mpls.fxs\
	openconfig-mpls-types.fxs openconfig-mpls-sr.fxs openconfig-mpls-rsvp.fxs openconfig-mpls-ldp.fxs openconfig-vlan.fxs\
	openconfig-vlan-types.fxs openconfig-if-aggregate.fxs openconfig-telemetry.fxs openconfig-transport-types.fxs\
	openconfig-platform-types.fxs\
		$(CDB_DIR) $(CDB_DIR)/init.xml ssh-keydir
	@echo "Build complete"

openconfig-bgp.yang: openconfig-bgp-multiprotocol.yang openconfig-routing-policy.yang openconfig-bgp-operational.yang\
				openconfig-bgp-types.yang openconfig-extensions.yang openconfig-types.yang openconfig-policy-types.yang
	cp /<path-to>/[email protected]/openconfig-bgp.yang openconfig-bgp.yang

openconfig-bgp-multiprotocol.yang:
	cp /<path-to>/[email protected]/openconfig-bgp-multiprotocol.yang openconfig-bgp-multiprotocol.yang

openconfig-bgp-operational.yang:
	cp /<path-to>/[email protected]/openconfig-bgp-operational.yang openconfig-bgp-operational.yang

openconfig-bgp-policy.yang:
	cp /<path-to>/[email protected]/openconfig-bgp-policy.yang openconfig-bgp-policy.yang

openconfig-bgp-types.yang:
	cp /<path-to>/[email protected]/openconfig-bgp-types.yang openconfig-bgp-types.yang

openconfig-extensions.yang:
	cp /<path-to>/[email protected]/openconfig-extensions.yang openconfig-extensions.yang

openconfig-if-aggregate.yang: openconfig-interfaces.yang openconfig-if-ethernet.yang iana-if-type.yang ietf-interfaces.yang
	cp /<path-to>/[email protected]/openconfig-if-aggregate.yang openconfig-if-aggregate.yang

openconfig-if-ethernet.yang: openconfig-interfaces.yang iana-if-type.yang
	cp /<path-to>/[email protected]/openconfig-if-ethernet.yang openconfig-if-ethernet.yang

openconfig-if-ip.yang:
	cp /<path-to>/[email protected]/openconfig-if-ip.yang openconfig-if-ip.yang

openconfig-interfaces.yang: ietf-interfaces.yang
	cp /<path-to>/[email protected]/openconfig-interfaces.yang openconfig-interfaces.yang

openconfig-mpls-igp.yang:
	cp /<path-to>/[email protected]/openconfig-mpls-igp.yang openconfig-mpls-igp.yang

openconfig-mpls-ldp.yang:
	cp /<path-to>/[email protected]/openconfig-mpls-ldp.yang openconfig-mpls-ldp.yang

openconfig-mpls-rsvp.yang:
	cp /<path-to>/[email protected]/openconfig-mpls-rsvp.yang openconfig-mpls-rsvp.yang

openconfig-mpls-sr.yang:
	cp /<path-to>/[email protected]/openconfig-mpls-sr.yang openconfig-mpls-sr.yang

openconfig-mpls-static.yang:
	cp /<path-to>/[email protected]/openconfig-mpls-static.yang openconfig-mpls-static.yang

openconfig-mpls-te.yang:
	cp /<path-to>/[email protected]/openconfig-mpls-te.yang openconfig-mpls-te.yang

openconfig-mpls-types.yang:
	cp /<path-to>/[email protected]/openconfig-mpls-types.yang openconfig-mpls-types.yang

openconfig-mpls.yang: openconfig-mpls-types.yang openconfig-mpls-static.yang openconfig-mpls-sr.yang openconfig-mpls-rsvp.yang \
		openconfig-mpls-ldp.yang openconfig-mpls-igp.yang openconfig-mpls-te.yang
	cp /<path-to>/[email protected]/openconfig-mpls.yang openconfig-mpls.yang

openconfig-platform-transceiver.yang:
	cp /<path-to>/[email protected]/openconfig-platform-transceiver.yang openconfig-platform-transceiver.yang

openconfig-platform-types.yang:
	cp /<path-to>/[email protected]/openconfig-platform-types.yang openconfig-platform-types.yang

openconfig-platform.yang:
	cp /<path-to>/[email protected]/openconfig-platform-types.yang openconfig-platform-types.yang

openconfig-policy-types.yang:
	cp /<path-to>/[email protected]/openconfig-policy-types.yang openconfig-policy-types.yang

openconfig-routing-policy.yang:
	cp /<path-to>/[email protected]/openconfig-routing-policy.yang openconfig-routing-policy.yang

openconfig-telemetry.yang:
	cp /<path-to>/[email protected]/openconfig-telemetry.yang openconfig-telemetry.yang

openconfig-transport-types.yang: openconfig-platform-types.yang
	cp /<path-to>/[email protected]/openconfig-transport-types.yang openconfig-transport-types.yang

openconfig-types.yang:
	cp /<path-to>/[email protected]/openconfig-types.yang openconfig-types.yang

openconfig-vlan.yang: openconfig-vlan-types.yang openconfig-if-aggregate.yang
	cp /<path-to>/[email protected]/openconfig-vlan.yang openconfig-vlan.yang

openconfig-vlan-types.yang:
	cp /<path-to>/[email protected]/openconfig-vlan-types.yang openconfig-vlan-types.yang

iana-if-type.yang:
	cp /<path-to>/[email protected]/iana-if-type.yang iana-if-type.yang

ietf-interfaces.yang:
	cp /<path-to>/[email protected]/ietf-interfaces.yang ietf-interfaces.yang

######################################################################
clean:	iclean
	-rm -rf *_ns.py *.pyc *.yang 2> /dev/null || true

######################################################################
start:  stop start_confd

start_confd:
	$(CONFD) -c confd.conf $(CONFD_FLAGS)


######################################################################

$(CDB_DIR)/%.xml: %.xml
	rm -f $@ ; cp $< $@

######################################################################
stop:
	### Killing any confd daemon or DHCP confd agents
	$(CONFD) --stop &> /dev/null   || true

cli:
	$(CONFD_DIR)/bin/confd_cli --user=admin --groups=admin \
		--interactive || echo Exit

######################################################################

models under [email protected] could be found here, models under [email protected] came from ietf bundle.

psykokwak4 avatar Dec 17 '16 00:12 psykokwak4