module ietf-otn-topology { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-otn-topology"; prefix "otntopo"; import ietf-network { prefix "nd"; } import ietf-network-topology { prefix "lnk"; } import ietf-te-topology { prefix "tet"; } import ietf-transport-types { prefix "tran-types"; } organization "Internet Engineering Task Force (IETF) CCAMP WG"; contact " WG List: ID-draft editor: Haomian Zheng (zhenghaomian@huawei.com); Zheyu Fan (fanzheyu2@huawei.com); Anurag Sharma (ansha@google.com); Xufeng Liu (Xufeng_Liu@jabil.com) "; description "This module defines a protocol independent Layer 1/ODU topology data model."; revision 2017-04-25 { description "Revision 0.3"; reference "draft-zhang-ccamp-l1-topo-yang-07.txt"; } /* typedef */ typedef adaptation-type { type enumeration { enum CBR { description "Constant Bit Rate."; } enum ATMvp { description "ATM VP."; } enum GFP { description "Generic Framing Procedure."; } enum NULL { description "NULL"; } enum PRBS { description "Pseudo Random Binary Sequence"; } enum RSn { description "SDH/SONET section"; } enum ODUj-21 { description "ODU payload type 21"; } enum ETHERNET_PP-OS { description "ETHERNET_PP-OS, for ODU 2 only"; } enum CBRx { description "CBRx(0.. 1.25G), for ODU0 only"; } enum ODU { description "Optical Data Unit"; } } description "Defines a type representing the adaptation type on the termination point."; } /* Groupings */ grouping otn-topology-type { container otn-topology { presence "indicates a topology type of Optical Transport Network (OTN)-electrical layer."; description "otn topology type"; } description "otn-topology-type"; } grouping otn-topology-attributes { leaf name { type string; description "the topology name"; } description "name attribute for otn topology"; } grouping otn-node-attributes { description "otn-node-attributes"; leaf name { type string; description "a name for this node."; } } grouping otn-link-attributes { description "otn link attributes"; list available-odu-info{ key "priority"; max-elements "8"; description "List of ODU type and number on this link"; leaf priority { type uint8 { range "0..7"; } description "priority"; } list odulist { key "odu-type"; description "the list of available ODUs per priority level"; leaf odu-type { type identityref{ base tran-types:tributary-protocol-type; } description "the type of ODU"; } leaf number { type uint16; description "the number of odu type supported"; } } } leaf distance { type uint32; description "distance in the unit of kilometers"; } } grouping otn-tp-attributes { description "otn-tp-attributes"; leaf client-facing { type empty; description "if present, it means this tp is a client-facing tp. adding/dropping client signal flow."; } leaf tpn { type uint16 { range "0..4095"; } description "Tributary Port Number. Applicable in case of mux services."; reference "RFC7139: GMPLS Signaling Extensions for Control of Evolving G.709 Optical Transport Networks."; } leaf tsg { type identityref { base tran-types:tributary-slot-granularity; } description "Tributary slot granularity."; reference "G.709/Y.1331, February 2012: Interfaces for the Optical Transport Network (OTN)"; } leaf protocol-type { type identityref { base tran-types:tributary-protocol-type; } description "Protocol type for the Termination Point."; } leaf adaptation-type { type adaptation-type; description "This attribute indicates the type of the supported adaptation function at the termination point."; reference "G.874.1, January 2002: Optical transport network (OTN): Protocol-neutral management information model for the network element view."; } leaf sink-adapt-active { type boolean; description "This attribute allows for activation or deactivation of the sink adaptation function. The value of TRUE means active."; reference "G.874.1, January 2002: Optical transport network (OTN): Protocol-neutral management information model for the network element view "; } leaf source-adapt-active { type boolean; description "This attribute allows for activation or deactivation of the sink adaptation function. The value of TRUE means active."; reference "G.874.1, January 2002: Optical transport network (OTN): Protocol-neutral management information model for the network element view "; } container tributary-slots { description "A list of tributary slots used by the ODU Termination Point."; leaf-list values { type uint8; description "Tributary slot value."; reference "G.709/Y.1331, February 2012: Interfaces for the Optical Transport Network (OTN)"; } } list supported-payload-types{ key "index"; description "supported payload types of a TP"; leaf index { type uint16; description "payload type index"; } leaf payload-type { type string; description "the payload type supported by this client tp"; reference "http://www.iana.org/assignments/gmpls-sig-parameters /gmpls-sig-parameters.xhtml not: the payload type is defined as the generalized PIDs in GMPLS."; } } } /* * Data nodes */ augment "/nd:networks/nd:network/nd:network-types/tet:te-topology" { uses otn-topology-type; description "augment network types to include otn newtork"; } augment "/nd:networks/nd:network" { when "nd:network-types/tet:te-topology/otn-topology" { description "Augment only for otn network"; } uses otn-topology-attributes; description "Augment network configuration"; } augment "/nd:networks/nd:network/nd:node" { when "../nd:network-types/tet:te-topology/otn-topology" { description "Augment only for otn network"; } description "Augment node configuration"; uses otn-node-attributes; } augment "/nd:networks/nd:network/lnk:link/tet:te" { when "../../../nd:network-types/tet:te-topology/otn-topology" { description "Augment only for otn network."; } description "Augment link configuration"; uses otn-link-attributes; } augment "/nd:networks/nd:network/nd:node/" +"lnk:termination-point/tet:te" { when "../../../../nd:network-types/tet:te-topology/otn-topology" { description "Augment only for otn network"; } description "OTN TP attributes config in a ODU topology."; uses otn-tp-attributes; } }