/* * Copyright (c) 2016 Cisco Systems, Inc. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL */ module onf-core-network-module { namespace "urn:onf:core-network-module"; prefix onf-cn; import onf-core-network-types { prefix onf-cnt; } import onf-core-specs { prefix onf-cs; } import network-topology { prefix nt; } revision 2016-06-30 { } container forwarding-constructs { list forwarding-construct { key 'uuid'; leaf uuid { type string; } uses G_ForwardingConstruct; } } grouping G_ForwardingConstruct { leaf layerProtocolName { type onf-cnt:LayerProtocolName; description "The layerProtocol at which the FC enables potential for forwarding."; } leaf-list lowerLevelFc { description "An FC object supports a recursive aggregation relationship such that the internal construction of an FC can be exposed as multiple lower level FC objects (partitioning). Aggregation is used as for the FD to allow changes in hierarchy. "; ordered-by system; type leafref { path '/forwarding-constructs/forwarding-construct/uuid'; } } list fcRoute { description "An FC object can have zero or more routes, each of which is defined as a list of lower level FC objects describing the flow across the network."; key 'uuid'; config true; ordered-by system; uses G_FcRoute; } list fcPort { description "The association of the FC to LTPs is made via FcPorts (essentially the ports of the FC)."; key 'topology node tp'; config true; uses G_FcPort; min-elements 2; } container fcSpec { uses onf-cs:G_FcSpec; description "References the specification that describes the capability and internal structure of of the FC (e.g. The arrangement of switches for a particular instance is described by a referenced FcSpec). The specification allows interpretation of FcPort role and switch configurations etc."; } leaf forwardingDirection { type onf-cnt:ForwardingDirection; description "The directionality of the ForwardingConstruct. Is applicable to simple ForwardingConstructs where all FcPorts are BIDIRECTIONAL (the ForwardingConstruct will be BIDIRECTIONAL) or UNIDIRECTIONAL (the ForwardingConstruct will be UNIDIRECTIONAL). Is not present in more complex cases."; } } grouping G_FcRoute { leaf uuid { type string; } leaf-list fc { description "The list of FCs describing the route of an FC."; ordered-by system; type leafref { path '/onf-cn:forwarding-constructs/onf-cn:forwarding-construct/onf-cn:uuid'; } min-elements 2; } } grouping G_FcPort { uses onf-cs:ltp-ref; leaf role { type onf-cnt:PortRole; description "Each FcPort of the FC has a role (e.g., working, protection, protected, symmetric, hub, spoke, leaf, root) in the context of the FC with respect to the FC function."; } leaf fcPortDirection { type onf-cnt:PortDirection; description "The orientation of defined flow at the FcPort."; } } augment "/nt:network-topology/nt:topology/nt:node/nt:termination-point" { container ltp-attrs { uses G_LogicalTerminationPoint; } } grouping G_LogicalTerminationPoint { list lpList { description "Ordered list of LayerProtocols that this LTP is comprised of where the first entry in the list is the lowest server layer (e.g. physical)"; key 'uuid'; config true; leaf uuid { type string; } uses G_LayerProtocol; } container ltpSpec { uses onf-cs:G_LtpSpec; description "The specification of the LTP defines internal structure of the LTP. The specification allows interpretation of organisation of LPs making up the LTP and also identifies which inter-LTP associations are valid."; } leaf ltpDirection { type onf-cnt:TerminationDirection; description "The overall directionality of the LTP. - A BIDIRECTIONAL LTP must have at least some LPs that are BIDIRECTIONAL but may also have some SINK and/or SOURCE LPs. - A SINK LTP can only contain SINK LPs - A SOURCE LTP can only contain SOURCE LPs"; } } grouping G_LayerProtocol { leaf layerProtocolName { type onf-cnt:LayerProtocolName; description "Indicate the specific layer-protocol described by the LayerProtocol entity."; } container lpSpec { uses onf-cs:G_LayerProtocolSpec; description "The LpSpec identifies the internal structure of the LP explaining internal flexibilities, degree of termination and degree of adaptation on both client and server side."; } leaf configuredClientCapacity { type string; description "Provides a summarized view of the client capacity that is configurable for use. Note the cleint LTP association should provide all necessary detail hence this attribute is questionable."; } leaf lpDirection { type onf-cnt:TerminationDirection; description "The overall directionality of the LP. - A BIDIRECTIONAL LP will have some SINK and/or SOURCE flowss. - A SINK LP can only contain elements with SINK flows or CONTRA_DIRECTION_SOURCE flows - A SOURCE LP can only contain SOURCE flows or CONTRA_DIRECTION_SINK flows"; } leaf terminationState { type string; description "Indicates whether the layer is terminated and if so how."; } } }