--- /dev/null
+module o-ran-mplane-int {
+ yang-version 1.1;
+ namespace "urn:o-ran:mplane-interfaces:1.0";
+ prefix "o-ran-mplane-int";
+
+ import ietf-inet-types {
+ prefix "inet";
+ }
+
+ import ietf-interfaces {
+ prefix "if";
+ }
+
+ import o-ran-interfaces {
+ prefix "o-ran-int";
+ }
+
+ organization "O-RAN Alliance";
+
+ contact
+ "www.o-ran.org";
+
+ description
+ "This module defines the YANG definitions for managing the O-RAN Radio Unit
+ management plane interface.
+
+ Copyright 2021 the O-RAN Alliance.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the above disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the above disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ * Neither the Members of the O-RAN Alliance nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.";
+
+ revision "2021-12-01" {
+ description
+ "version 7.1.0
+
+ 1) typographical corrections";
+
+ reference "ORAN-WG4.M.0-v07.00";
+ }
+
+ revision "2021-07-26" {
+ description
+ "version 7.0.0
+
+ 1) new leaf for recommended scan interval ";
+
+ reference "ORAN-WG4.M.0-v07.00";
+ }
+
+ revision "2021-03-22" {
+ description
+ "version 6.0.0
+
+ 1) typographical corrections in descriptions.
+ 2) new functionality to report TLS information ";
+
+ reference "ORAN-WG4.M.0-v06.00";
+ }
+
+ revision "2019-07-03" {
+ description
+ "version 1.1.0
+
+ 1) enabling NETCONF clients to be configured.
+ 2) shifting new container to correct position
+ 3) backward compatible changes to introduce groupings";
+
+ reference "ORAN-WG4.M.0-v01.00";
+ }
+
+ revision "2019-02-04" {
+ description
+ "version 1.0.0
+
+ 1) imported model from xRAN
+ 2) changed namespace and reference from xran to o-ran";
+
+ reference "ORAN-WG4.M.0-v01.00";
+ }
+
+
+ typedef vlan-id {
+ type uint16 {
+ range 1..4094;
+ }
+ description
+ "Type definition representing a single-tagged VLAN";
+ }
+
+ // Groupings
+
+ grouping mplane-group {
+ description "mplane grouping";
+ container searchable-mplane-access-vlans-info {
+ description
+ "These parameters shall be stored by the equipment in reset persistent memory
+ to enable it to be re-used to optimize VLAN discovery procedures.";
+ leaf-list searchable-access-vlans {
+ type vlan-id;
+ description
+ "A list of access VLANs that may be operational on the transport
+ network. Can be used by the equipment to optimize its VLAN searching - for
+ M-plane operations.";
+ }
+ container vlan-range {
+ description "the range of VLAN IDs that may be configured for M-Plane";
+ leaf lowest-vlan-id {
+ type vlan-id;
+ description
+ "Value of this parameter informs equipment about lowest VID to be used
+ in VLAN scan procedure";
+ }
+ leaf highest-vlan-id {
+ type vlan-id;
+ description
+ "Value of this parameter informs about highest VID to be used
+ in VLAN scan procedure";
+ }
+ }
+ leaf scan-interval {
+ type uint16;
+ units seconds;
+ default 60;
+ description
+ "The O-RU should repeatedly search using untagged frames and previously configured
+ VLANs whenever it searches across the full range of VLAN IDs.The O-RU controller is
+ able to recommend the maximum interval between repeatedly scanning for M-Plane connectivity
+ on the untagged and configured VLANs using this timer schema node.
+
+ The O-RU shall store this schem-node in reset persistent memory.";
+ }
+ }
+
+ container m-plane-interfaces {
+ description "information concerning m-plane interfaces";
+ list m-plane-sub-interfaces {
+ key "interface-name sub-interface";
+ description "list of m-plane information";
+ leaf interface-name {
+ type leafref {
+ path "/if:interfaces/if:interface/if:name";
+ }
+ description "the name of the interface";
+ }
+ leaf sub-interface {
+ type leafref {
+ path "/if:interfaces/if:interface[if:name = current()/../interface-name]/o-ran-int:vlan-id";
+ }
+ description
+ "vlans used to communicate with management plane servers.";
+ }
+ container client-info {
+ config false;
+ description
+ "the NETCONF client information, discovered by DHCP or manually
+ configured during installation.";
+ list mplane-ipv4-info {
+ key mplane-ipv4;
+ description "list of IPv4 NETCONF clients";
+ leaf mplane-ipv4 {
+ type inet:ipv4-address;
+ description "The IPv4 address of M-Plane client discovered by the O-RU
+ or manually configured.";
+ }
+ leaf port {
+ type inet:port-number;
+ description
+ "The call home port number discovered or manually configured.";
+ }
+ }
+ list mplane-ipv6-info {
+ key mplane-ipv6;
+ description "list of IPv6 NETCONF clients";
+ leaf mplane-ipv6 {
+ type inet:ipv6-address;
+ description "The IPv6 address of M-Plane client discovered by the O-RU
+ or manually configured.";
+ }
+ leaf port {
+ type inet:port-number;
+ description
+ "The call home port number discovered or manually configured.";
+ }
+ }
+ leaf-list mplane-fqdn {
+ type inet:domain-name;
+ description "The discovered FQDN(s) of M-Plane client(s).";
+ }
+ }
+ }
+
+ container m-plane-ssh-ports {
+ description "leafs for managing SSH ports";
+ leaf call-home-ssh-port {
+ type inet:port-number;
+ default 4334;
+ description "The configured call home server port number";
+ }
+ leaf server-ssh-port {
+ type inet:port-number;
+ default 830;
+ description "The configured SSH server port number";
+ }
+ }
+ container m-plane-tls-ports {
+ description "leafs for managing TLS ports";
+ leaf call-home-tls-port {
+ type inet:port-number;
+ default 4335;
+ description "The configured call home server port number";
+ }
+ leaf server-tls-port {
+ type inet:port-number;
+ default 6513;
+ description "The configured TLS server port number";
+ }
+ }
+ }
+ container configured-client-info {
+ description
+ "the NETCONF client information that may be configured by another
+ NETCONF client. These clients are reported independently from clients
+ manually configured or discovered using DHCP.";
+ list mplane-ipv4-info {
+ key mplane-ipv4;
+ description "list of IPv4 NETCONF clients";
+ leaf mplane-ipv4 {
+ type inet:ipv4-address;
+ description "The IPv4 address of configured M-Plane client.";
+ }
+ leaf port {
+ type inet:port-number;
+ description
+ "The configured call home port number.";
+ }
+ }
+ list mplane-ipv6-info {
+ key mplane-ipv6;
+ description "list of IPv6 NETCONF clients";
+ leaf mplane-ipv6 {
+ type inet:ipv6-address;
+ description "The IPv6 address of configured M-Plane client..";
+ }
+ leaf port {
+ type inet:port-number;
+ description
+ "The configured call home port number.";
+ }
+ }
+ leaf-list mplane-fqdn {
+ type inet:domain-name;
+ description "The configured FQDN(s) of M-Plane client(s).";
+ }
+ }
+ }
+
+
+ // Top Level Container
+
+ container mplane-info {
+ description "top-level container for management plane information";
+
+ uses mplane-group;
+ }
+}