Closed msuryarao2011 closed 3 months ago
**
<mount-point>
<module>_3gpp-common-subnetwork</module>
<label>children-of-SubNetwork</label>
<config>true</config>
<inline></inline>
<shared-schema>
<parent-reference>/data/SubNetwork/ExternalGNBCUCPFunction/id</parent-reference>
</shared-schema>
</mount-point>
** Also tried loading only schema > edit-config --target candidate --config=/root/package//mount-schema.xml ERROR type: application tag: operation-failed severity: error message: List "parent-reference" with duplicate instances allowed found without required metadata.
type: application
tag: operation-failed
severity: error
message: User callback failed. <schema-mounts xmlns="urn:ietf:params:xml:ns:yang:ietf-yang-schema-mount">
<namespace>
<prefix>subnet3gpp</prefix>
<uri>urn:3gpp:sa5:_3gpp-common-subnetwork</uri>
</namespace>
<mount-point>
<module>_3gpp-common-subnetwork</module>
<label>children-of-SubNetwork</label>
<config>true</config>
<inline></inline>
<shared-schema>
<parent-reference>/subnet3gpp:SubNetwork/ExternalGNBCUCPFunction</parent-reference>
</shared-schema>
</mount-point>
This bugreport is impossible to read, sorry:
ietf-yang-schema-mount
is a standard model, so do not modify it and do not paste its content to the bugreport. For the 3GPP model, providing a link is a much better option (and if it needs some additional modules, they should be also referenced).Hi ,
I am using libyang-3.1.10 and netopeer2-2.2.28 , sysrepo 2.10.1
I have loaded required yang files for 3GPP model and urn:3gpp:sa5:_3gpp-common-subnetwork.yang which uses ietf-yang-schema-mount as mount-point .
Prepared XML data having the mount-point with shared-schema in the single XML .
Tried performing edit-config operation using netopeer2-cli
edit-config --target candidate --config=/root/package/vinay/config-mount.xml nc ERROR: Unable to parse mounted data, no operational schema-mounts data received from the server. ERROR type: application tag: operation-failed severity: error message: Ext plugin "ly2 schema mount v1": Callback for getting ext data failed.
Prepared only mount point xml and tried edit-config using netopeer2-cli
edit-config --target candidate--config=/root/package/netopeer2-2.2.28/build/sample/xml/schema-mount.xml ERROR type: application tag: operation-failed severity: error message: List "parent-reference" with duplicate instances allowed found without required metadata.
type: application
tag: operation-failed
severity: error
message: User callback failed.
Tried adding the deviation to the mount-point using deviation "/yangmnt:schema-mounts" { deviate not-supported;
ly ERROR: Not found node "schema-mounts" in path. (/ietf-yang-library:yang-library)
As per this https://github.com/sysrepo/sysrepo/issues/2842 there was fix added to support the same . Can i perform edit-config operation for the same if not can i use the deviation to the schema mount to pass the XML in the edit config without using schema mount
You cannot use the NETCONF protocol to edit the YANG schema mounts. That's an operation which would affect the validation rules of the "layout" of the data, and in the RFC which defined schema mounts these data are clearly marked as read-only. This is not a limitation of the software, it's a design feature.
The data which are required for working with schema mounts are set via a command-line argument to netopeer2-server
. See the output of netopeer2-server --help
for details. Similarly, if you wanted to play along with YANG datastores directly from a CLI, yanglint
has a similar option. There's no support for ietf-schema-mount
in yang-cli
/sysrepo-cli
/netconf-cli
.
Thanks for your support will try to explore the suggestions mentioned.
[ERR]: SR: No "ietf-yang-schema-mount" operational data set needed for parsing mounted data. [ERR]: LY: Ext plugin "ly2 schema mount v1": Callback for getting ext data failed. [INF]: NP: Session 8: thread 1 event bad RPC. [INF]: NP: Session 8: thread 1 event reply error. [ERR]: SR: No "ietf-yang-schema-mount" operational data set needed for parsing mounted data. [ERR]: LY: Ext plugin "ly2 schema mount v1": Callback for getting ext data failed. [INF]: NP: Session 8: thread 1 event bad RPC. [INF]: NP: Session 8: thread 1 event reply error.
module _3gpp-common-subnetwork { yang-version 1.1; namespace "urn:3gpp:sa5:_3gpp-common-subnetwork"; prefix "subnet3gpp";
import _3gpp-common-yang-types { prefix types3gpp; } import _3gpp-common-top { prefix top3gpp; } import _3gpp-common-measurements { prefix meas3gpp; } import _3gpp-common-subscription-control { prefix subscr3gpp; } import _3gpp-common-fm { prefix fm3gpp; } import _3gpp-common-trace { prefix trace3gpp; } import ietf-yang-schema-mount { prefix yangmnt; } import _3gpp-common-files { prefix files3gpp; } import _3gpp-5gc-nrm-configurable5qiset { prefix fiveqi3gpp; } import _3gpp-5gc-nrm-ecmconnectioninfo { prefix econn3gpp ; }
organization "3GPP SA5"; contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464";
description "Defines basic SubNetwork which will be augmented by other IOCs Copyright 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved."; reference "3GPP TS 28.623 Generic Network Resource Model (NRM) Integration Reference Point (IRP); Solution Set (SS) definitions
revision 2024-01-30 { reference CR-0328 ; } revision 2023-11-14 { reference CR-0305 ; } revision 2023-09-18 { reference CR-0271 ; } revision 2023-08-10 { reference CR-0257; } revision 2023-04-26 { reference CR-0250; } revision 2023-02-14 { reference CR-0234; } revision 2022-09-30 { reference CR-0191 ; } revision 2021-01-16 { reference "CR-0120"; }
revision 2020-08-06 { reference "CR-0102"; }
revision 2020-06-08 { reference "CR-0092"; }
revision 2020-05-08 { reference "S5-203316"; }
revision 2020-03-11 { description "Added KPIs and corrections"; reference "S5-201365, S5-201581, SP-200229"; }
revision 2020-02-24 { reference "S5-201365"; }
revision 2019-06-17 { reference "Initial revision"; }
feature EcmConnectionInfoUnderSubNetwork { description "The EcmConnectionInfo shall be contained under Subnetwork"; }
feature Configurable5QISetUnderSubNetwork { description "The Configurable5QISet shall be contained under Subnetwork"; }
feature FilesUnderSubNetwork { description "Files shall be contained under Subnetwork"; }
feature ExternalsUnderSubNetwork { description "Classes representing external entities like EUtranFrequency, ExternalGNBCUCPFunction, ExternalENBFunction are contained under a Subnetwork list/class."; }
feature MeasurementsUnderSubNetwork { description "The MeasurementSubtree shall be contained under SubNetwork"; }
feature SubscriptionControlUnderSubNetwork { description "The SubscriptionControlSubtree shall be contained under SubNetwork"; }
feature SupportedNotificationsUnderSubNetwork { description "The SupportedNotificationsSubtree shall be contained under SubNetwork"; }
feature FmUnderSubNetwork { description "The FmSubtree shall be contained under SubNetwork"; }
feature TraceUnderSubNetwork { description "The TraceSubtree shall be contained under SubNetwork"; }
feature DESManagementFunction { description "Class representing Distributed SON or Domain-Centralized SON Energy Saving feature. The DESManagementFunction shall be contained under SubNetwork."; }
feature DMROFunction { description "Class representing D-SON function of MRO feature. The DMROFunction shall be contained under SubNetwork."; }
feature DRACHOptimizationFunction { description "Class representing D-SON function of RACH optimization feature. The DRACHOptimizationFunction shall be contained under SubNetwork."; }
feature DPCIConfigurationFunction { description "Class representing Distributed SON or Domain-Centralized SON function of PCI configuration feature. The DPCIConfigurationFunction shall be contained under SubNetwork."; }
feature CPCIConfigurationFunction { description "Class representing Cross Domain-Centralized SON function of PCI configuration feature. The CPCIConfigurationFunction shall be contained under SubNetwork."; }
feature CESManagementFunction { description "Class representing Cross Domain-Centralized SON Energy Saving feature. The CESManagementFunction shall be contained under SubNetwork."; }
grouping Domain_Grp { description "A domain is a partition of instances of managed entities such that :
With common characteristics";
leaf dnPrefix { type types3gpp:DistinguishedName; reference "Annex C of 32.300 "; }
leaf userLabel { type string; description "A user-friendly (and user assignable) name of this object."; }
leaf userDefinedNetworkType { type string; description "Textual information indicating network type, e.g. 'UTRAN'."; }
}
grouping SubNetworkGrp { uses Domain_Grp;
leaf-list setOfMcc { description "Set of Mobile Country Code (MCC). The MCC uniquely identifies the country of domicile of the mobile subscriber. MCC is part of the IMSI (3GPP TS 23.003)
type types3gpp:Mcc; }
leaf priorityLabel { mandatory true; type uint32; }
uses meas3gpp:SupportedPerfMetricGroupGrp;
leaf-list supportedTraceMetrics { type string; config false; description "List of trace metrics. When this attribute is contained in a managed object it defines the trace metrics supported for this object and all descendant objects.
} }
list SubNetwork { key id; description "Represents a set of managed entities";
uses top3gpp:Top_Grp; container attributes {
uses SubNetworkGrp; leaf-list parents { description "Reference to all containg SubNetwork instances in strict order from the root subnetwork down to the immediate parent subnetwork. If subnetworks form a containment hierarchy this is modeled using references between the child SubNetwork and the parent SubNetworks. This reference MUST NOT be present for the top level SubNetwork and MUST be present for other SubNetworks."; type leafref { path "../../../SubNetwork/id";
} }
leaf-list containedChildren{ description "Reference to all directly contained SubNetwork instances. If subnetworks form a containment hierarchy this is modeled using references between the child SubNetwork and the parent SubNetwork."; type leafref { path "../../../SubNetwork/id";
} } }
uses meas3gpp:MeasurementSubtree { if-feature MeasurementsUnderSubNetwork; }
uses subscr3gpp:SubscriptionControlSubtree { if-feature SubscriptionControlUnderSubNetwork; }
uses subscr3gpp:SupportedNotificationsSubtree { if-feature SupportedNotificationsUnderSubNetwork; }
uses fm3gpp:FmSubtree { if-feature FmUnderSubNetwork; }
uses trace3gpp:TraceSubtree { if-feature TraceUnderSubNetwork; }
uses files3gpp:FilesSubtree { if-feature FilesUnderSubNetwork; }
uses fiveqi3gpp:Configurable5QISetSubtree { if-feature Configurable5QISetUnderSubNetwork; }
uses econn3gpp:EcmConnectionInfoSubtree { if-feature EcmConnectionInfoUnderSubNetwork; }
yangmnt:mount-point children-of-SubNetwork { description "Mountpoint for ManagedElement"; reference "RFC8528 YANG Schema Mount"; }
// augment external parts here } }
shared mount yang file
module ietf-yang-schema-mount { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-yang-schema-mount"; prefix yangmnt;
import ietf-inet-types { prefix inet; reference "RFC 6991: Common YANG Data Types"; }
import ietf-yang-types { prefix yang; reference "RFC 6991: Common YANG Data Types"; }
organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group";
contact "WG Web: https://datatracker.ietf.org/wg/netmod/ WG List: mailto:netmod@ietf.org
description "This module defines a YANG extension statement that can be used to incorporate data models defined in other YANG modules in a module. It also defines operational state data that specify the overall structure of the data model.
revision 2019-01-14 { description "Initial revision."; reference "RFC 8528: YANG Schema Mount"; }
/*
Extensions */
extension mount-point { argument label; description "The argument 'label' is a YANG identifier, i.e., it is of the type 'yang:yang-identifier'.
The 'mount-point' statement MUST NOT be used in a YANG version 1 module, neither explicitly nor via a 'uses' statement. The 'mount-point' statement MAY be present as a substatement of 'container' and 'list' and MUST NOT be present elsewhere. There MUST NOT be more than one 'mount-point' statement in a given 'container' or 'list' statement.
If a mount point is defined within a grouping, its label is bound to the module where the grouping is used.
A mount point defines a place in the node hierarchy where other data models may be attached. A server that implements a module with a mount point populates the '/schema-mounts/mount-point' list with detailed information on which data models are mounted at each mount point.
Note that the 'mount-point' statement does not define a new data node."; }
/*
State data nodes */
container schema-mounts { config false; description "Contains information about the structure of the overall mounted data model implemented in the server."; list namespace { key "prefix"; description "This list provides a mapping of namespace prefixes that are used in XPath expressions of 'parent-reference' leafs to the corresponding namespace URI references."; leaf prefix { type yang:yang-identifier; description "Namespace prefix."; } leaf uri { type inet:uri; description "Namespace URI reference."; } } list mount-point { key "module label";
description "Each entry of this list specifies a schema for a particular mount point.
leaf module { type yang:yang-identifier; description "Name of a module containing the mount point."; } leaf label { type yang:yang-identifier; description "Label of the mount point defined using the 'mount-point' extension."; } leaf config { type boolean; default "true"; description "If this leaf is set to 'false', then all data nodes in the mounted schema are read-only ('config false'), regardless of their 'config' property."; } choice schema-ref { mandatory true; description "Alternatives for specifying the schema."; container inline { presence "A complete self-contained schema is mounted at the mount point."; description "This node indicates that the server has mounted at least the module 'ietf-yang-library' at the mount point, and its instantiation provides the information about the mounted schema.
} } } }