/*
- *
+ *
* Copyright 2016 RIFT.IO Inc
*
* Licensed under the Apache License, Version 2.0 (the "License");
}
leaf parameter-pool {
- description "NSD Parameter pool name to use for this paramter";
+ description "NSD parameter pool name to use for this parameter";
type string;
}
}
}
leaf short-name {
- description "NSD short name.";
+ description "Short name to appear as label in the UI";
type string;
}
leaf logo {
description
- "File path for the vendor specific logo. For example icons/mylogo.png.
- The logo should be part of the network service";
+ "File path for the vendor-specific logo. For example, icons/mylogo.png.
+ The logo should be part of the network service";
type string;
}
list connection-point {
description
"List for external connection points.
- Each NS has one or more external connection
- points. As the name implies that external
- connection points are used for connecting
- the NS to other NS or to external networks.
- Each NS exposes these connection points to
- the orchestrator. The orchestrator can
- construct network service chains by
- connecting the connection points between
- different NS.";
-
+ Each network service (NS) has one or more external connection
+ points that connect the NS to other NSs or to external networks.
+ Each NS exposes connection points to the orchestrator, which can
+ construct network service chains by connecting the connection
+ points between different NSs.";
key "name";
leaf name {
description
}
}
- /* Still having issues modelling this,
+ /* Model Limitations,
see the comments under vnfd-connection-point-ref
*/
list vld {
description
- "List of Virtual Link Descriptors.";
+ "List of Virtual Link Descriptors (VLDs).";
key "id";
leaf short-name {
description
- "Short name for VLD for UI";
+ "Short name to appear as label in the UI";
type string;
}
list vnfd-connection-point-ref {
description
"A list of references to connection points.";
- key "member-vnf-index-ref";
+ key "member-vnf-index-ref vnfd-connection-point-ref";
leaf member-vnf-index-ref {
description "Reference to member-vnf within constituent-vnfds";
leaf vnfd-id-ref {
description
- "A reference to a vnfd. This is a
- leafref to path:
- ../../nsd:constituent-vnfd
- + [nsd:id = current()/../nsd:id-ref]
- + /nsd:vnfd-id-ref
- NOTE: An issue with confd is preventing the
- use of xpath. Seems to be an issue with leafref
- to leafref, whose target is in a different module.
- Once that is resovled this will switched to use
- leafref";
- type string;
+ "A reference to a VNFD";
+ type leafref {
+ path "../../../constituent-vnfd" +
+ "[member-vnf-index = current()/../member-vnf-index-ref]" +
+ "/vnfd-id-ref";
+ }
}
leaf vnfd-connection-point-ref {
uses manotypes:provider-network;
leaf mgmt-network {
- description "Flag indicating whether this network is a VIM management network";
+ description "Flag indicating whether this network is a VIM management network";
type boolean;
default false;
}
case vim-network-profile {
leaf ip-profile-ref {
description "Named reference to IP-profile object";
- type string;
- }
+ type leafref {
+ path "../../ip-profiles/name";
+ }
+ }
}
-
}
}
leaf member-vnf-index {
description
"Identifier/index for the VNFD. This separate id
- is required to ensure that multiple VNFs can be
- part of single NS";
+ is required so that multiple VNFs can be part of
+ single NS";
type uint64;
}
list scaling-group-descriptor {
description
- "scaling group descriptor within this network service.
+ "Scaling group descriptor within this network service.
The scaling group defines a group of VNFs,
and the ratio of VNFs in the network service
that is used as target for scaling action";
leaf scale-in-operation-type {
description
- "Operation to be applied to check between scaling criterias to
+ "Operation to be applied to check between scaling criterias to
check if the scale in threshold condition has been met.
Defaults to AND";
type scaling-criteria-operation;
leaf scale-out-operation-type {
description
- "Operation to be applied to check between scaling criterias to
+ "Operation to be applied to check between scaling criterias to
check if the scale out threshold condition has been met.
- Defauls to OR";
+ Defaults to OR";
type scaling-criteria-operation;
default OR;
}
leaf cooldown-time {
description
"The duration after a scaling-in/scaling-out action has been
- triggered, for which there will be no further optional";
+ triggered, for which there will be no further scaling activity";
type uint32;
mandatory true;
}
key "name";
leaf name {
+ description "Name of the scaling criteria";
type string;
}
leaf scale-in-threshold {
description
- "Value below which scale-in requests are generated";
+ "Value below which scale-in requests are generated
+ (depends on monitoring parameters)";
type uint64;
}
leaf scale-out-threshold {
description
- "Value above which scale-out requests are generated";
+ "Value above which scale-out requests are generated
+ (depends on monitoring parameters)";
type uint64;
}
leaf ns-monitoring-param-ref {
- description
+ description
"Reference to the NS level monitoring parameter
that is aggregated";
type leafref {
key "member-vnf-index-ref";
leaf member-vnf-index-ref {
- description "member VNF index of this member VNF";
+ description "Member VNF index of this member VNF";
type leafref {
path "../../../constituent-vnfd/member-vnf-index";
}
leaf count {
description
- "count of this member VNF within this scaling group.
- The count allows to define the number of instances
- when a scaling action targets this scaling group";
+ "Count of this member VNF within this scaling group.
+ The count defines the number of instances when a
+ scaling action targets this scaling group.";
type uint32;
default 1;
}
leaf min-instance-count {
description
- "Minimum instances of the scaling group which are allowed.
- These instances are created by default when the network service
- is instantiated.";
+ "Minimum number of instances of the scaling group that
+ are allowed in a single network service. These instances
+ are created by default when the network service is
+ instantiated.";
type uint32;
default 0;
}
leaf max-instance-count {
description
- "Maximum instances of this scaling group that are allowed
- in a single network service. The network service scaling
- will fail, when the number of service group instances
- exceed the max-instance-count specified.";
+ "Maximum number of instances of this scaling group that
+ are allowed in a single network service. The network
+ service scaling fails when the number of service group
+ instances exceeds the max-instance-count specified.";
type uint32;
default 10;
}
key "trigger";
leaf trigger {
- description "scaling trigger";
+ description "Scaling trigger";
type scaling-trigger;
}
key "member-vnf-index-ref";
leaf member-vnf-index-ref {
- description "member VNF index of this member VNF";
+ description "Member VNF index of this member VNF";
type leafref {
path "../../../constituent-vnfd/member-vnf-index";
}
description
"Identifier for the VNFD.";
type leafref {
- path "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:id";
+ path "../../../constituent-vnfd" +
+ "[member-vnf-index = current()/../member-vnf-index-ref]" +
+ "/vnfd-id-ref";
}
}
}
key vnf-source-ref;
leaf vnf-source-ref {
type leafref {
- path "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:id";
+ path "../../constituent-vnfd/vnfd-id-ref";
}
}
leaf vnf-depends-on-ref {
description
- "Reference to VNF that sorce VNF depends.";
+ "Reference to VNF on which the source VNF depends.";
type leafref {
- path "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:id";
+ path "../../constituent-vnfd/vnfd-id-ref";
}
}
}
leaf short-name {
description
- "Short name for VNFFGD for UI";
+ "Short name to appear as label in the UI";
type string;
}
leaf vnfd-id-ref {
description
- "A reference to a vnfd. This is a
- leafref to path:
- ../../../../nsd:constituent-vnfd
- + [nsd:id = current()/../nsd:id-ref]
- + /nsd:vnfd-id-ref
- NOTE: An issue with confd is preventing the
- use of xpath. Seems to be an issue with leafref
- to leafref, whose target is in a different module.
- Once that is resovled this will switched to use
- leafref";
- type string;
+ "A reference to a vnfd";
+ type leafref {
+ path "../../../../constituent-vnfd" +
+ "[member-vnf-index = current()/../member-vnf-index-ref]" +
+ "/vnfd-id-ref";
+ }
}
leaf vnfd-connection-point-ref {
description
- "A reference to a connection point name
- in a vnfd. This is a leafref to path:
- /vnfd:vnfd-catalog/vnfd:vnfd
- + [vnfd:id = current()/../nsd:vnfd-id-ref]
- + /vnfd:connection-point/vnfd:name
- NOTE: An issue with confd is preventing the
- use of xpath. Seems to be an issue with leafref
- to leafref, whose target is in a different module.
- Once that is resovled this will switched to use
- leafref";
- type string;
+ "A reference to a connection point name";
+ type leafref {
+ path "/vnfd:vnfd-catalog/vnfd:vnfd" +
+ "[vnfd:id = current()/../vnfd-id-ref]/" +
+ "vnfd:connection-point/vnfd:name";
+ }
}
}
} //rsp
leaf vnfd-id-ref {
description
- "A reference to a vnfd. This is a
- leafref to path:
- ../../../nsd:constituent-vnfd
- + [nsd:id = current()/../nsd:id-ref]
- + /nsd:vnfd-id-ref
- NOTE: An issue with confd is preventing the
- use of xpath. Seems to be an issue with leafref
- to leafref, whose target is in a different module.
- Once that is resovled this will switched to use
- leafref";
- type string;
+ "A reference to a VNFD";
+ type leafref {
+ path "../../../constituent-vnfd" +
+ "[member-vnf-index = current()/../member-vnf-index-ref]" +
+ "/vnfd-id-ref";
+ }
}
leaf vnfd-connection-point-ref {
description
- "A reference to a connection point name
- in a vnfd. This is a leafref to path:
- /vnfd:vnfd-catalog/vnfd:vnfd
- + [vnfd:id = current()/../nsd:vnfd-id-ref]
- + /vnfd:connection-point/vnfd:name
- NOTE: An issue with confd is preventing the
- use of xpath. Seems to be an issue with leafref
- to leafref, whose target is in a different module.
- Once that is resovled this will switched to use
- leafref";
- type string;
+ "A reference to a connection point name";
+ type leafref {
+ path "/vnfd:vnfd-catalog/vnfd:vnfd" +
+ "[vnfd:id = current()/../vnfd-id-ref]/" +
+ "vnfd:connection-point/vnfd:name";
+ }
}
list match-attributes {
leaf ip-proto {
description
- "IP Protocol.";
+ "Internet Protocol.";
type uint8;
}
"Destination port number.";
type inet:port-number;
}
- //TODO: Add more match criteria
} //match-attributes
} // classifier
} // vnffgd
list monitoring-param {
description
- "List of monitoring parameters from VNF's that should be
+ "List of monitoring parameters from VNFs that should be
propogated up into NSR";
key "id";
leaf id {
+ description "Identifier for a monitoring parameter";
type string;
}
leaf name {
+ description "Name of the monitoring parameter";
type string;
}
list vnfd-monitoring-param {
description "A list of VNFD monitoring params";
- key "vnfd-id-ref vnfd-monitoring-param-ref";
+ key "member-vnf-index-ref vnfd-monitoring-param-ref";
leaf vnfd-id-ref {
description
- "A reference to a vnfd. This is a
- leafref to path:
- ../../../../nsd:constituent-vnfd
- + [nsd:id = current()/../nsd:id-ref]
- + /nsd:vnfd-id-ref
- NOTE: An issue with confd is preventing the
- use of xpath. Seems to be an issue with leafref
- to leafref, whose target is in a different module.
- Once that is resolved this will switched to use
- leafref";
+ "A reference to a VNFD. This is a leafref";
- type yang:uuid;
+ type leafref {
+ path "../../../constituent-vnfd" +
+ "[member-vnf-index = current()/../member-vnf-index-ref]" +
+ "/vnfd-id-ref";
+ }
}
leaf vnfd-monitoring-param-ref {
}
}
- leaf-list member-vnf-index-ref {
- description
- "Optional reference to member-vnf within constituent-vnfds";
- type uint64;
+ leaf member-vnf-index-ref {
+ description
+ "Mandatory reference to member-vnf within constituent-vnfds";
+ type leafref {
+ path "../../../constituent-vnfd/member-vnf-index";
+ }
}
}
}
list parameter-pool {
description
- "Pool of parameter values which must be
- pulled from during configuration";
+ "Pool of parameter values from which to choose during
+ configuration.";
key "name";
leaf name {
container range {
description
- "Create a range of values to populate the pool with";
+ "Create a range of values from which to populate the pool with";
leaf start-value {
description
}
}
- uses manotypes:ns-service-primitive;
+ list service-primitive {
+ description
+ "Network service level service primitives.";
+
+ key "name";
+
+ leaf name {
+ description
+ "Name of the service primitive.";
+ type string;
+ }
+
+ list parameter {
+ description
+ "List of parameters for the service primitive.";
+
+ key "name";
+ uses manotypes:primitive-parameter;
+ }
+
+ uses manotypes:ui-primitive-group;
+
+ list vnf-primitive-group {
+ description
+ "List of service primitives grouped by VNF.";
+
+ key "member-vnf-index-ref";
+ leaf member-vnf-index-ref {
+ description
+ "Reference to member-vnf within constituent-vnfds";
+ type leafref {
+ path "../../../constituent-vnfd/member-vnf-index";
+ }
+ }
+
+ leaf vnfd-id-ref {
+ description
+ "A reference to a VNFD. This is a leafref";
+
+ type leafref {
+ path "../../../constituent-vnfd" +
+ "[member-vnf-index = current()/../member-vnf-index-ref]" + "/vnfd-id-ref";
+ }
+ }
+
+ leaf vnfd-name {
+ description
+ "Name of the VNFD";
+ type leafref {
+ path "/vnfd:vnfd-catalog/vnfd:vnfd"
+ + "[vnfd:id = current()/../vnfd-id-ref]"
+ + "/vnfd:name";
+ }
+ }
+
+ list primitive {
+ key "index";
+
+ leaf index {
+ description "Index of this primitive";
+ type uint32;
+ }
+
+ leaf name {
+ description "Name of the primitive in the VNF primitive ";
+ type string;
+ }
+ }
+ }
+
+ leaf user-defined-script {
+ description
+ "A user defined script.";
+ type string;
+ }
+ }
list initial-config-primitive {
rwpb:msg-new NsdInitialConfigPrimitive;
list key-pair {
key "name";
description "Used to configure the list of public keys to be injected as part
- of ns instantiation";
+ of NS instantiation";
leaf name {
description "Name of this key pair";
list key-pair {
key "name";
description "Used to configure the list of public keys to be injected as part
- of ns instantiation";
+ of NS instantiation";
leaf name {
description "Name of this key pair";