Support of WG4 OpenFronthaul Management-Plane VES
[scp/oam/modeling.git] / data-model / yang / published / o-ran / ru-fh / o-ran-mplane-int@2021-12-01.yang
1 module o-ran-mplane-int {
2   yang-version 1.1;
3   namespace "urn:o-ran:mplane-interfaces:1.0";
4   prefix "o-ran-mplane-int";
5
6   import ietf-inet-types {
7     prefix "inet";
8   }
9
10   import ietf-interfaces {
11     prefix "if";
12   }
13
14   import o-ran-interfaces {
15     prefix "o-ran-int";
16   }
17
18   organization "O-RAN Alliance";
19
20   contact
21     "www.o-ran.org";
22
23   description
24     "This module defines the YANG definitions for managing the O-RAN Radio Unit
25      management plane interface.
26
27      Copyright 2021 the O-RAN Alliance.
28
29      THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'
30      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
31      IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
32      ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
33      LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
34      CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
35      SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
36      INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
37      CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
38      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
39      POSSIBILITY OF SUCH DAMAGE.
40
41      Redistribution and use in source and binary forms, with or without
42      modification, are permitted provided that the following conditions are met:
43
44      * Redistributions of source code must retain the above copyright notice,
45      this list of conditions and the above disclaimer.
46      * Redistributions in binary form must reproduce the above copyright notice,
47      this list of conditions and the above disclaimer in the documentation
48      and/or other materials provided with the distribution.
49      * Neither the Members of the O-RAN Alliance nor the names of its
50      contributors may be used to endorse or promote products derived from
51      this software without specific prior written permission.";
52
53    revision "2021-12-01" {
54      description
55        "version 7.1.0
56
57           1) typographical corrections";
58
59      reference "ORAN-WG4.M.0-v07.00";
60    }
61
62   revision "2021-07-26" {
63     description
64       "version 7.0.0
65
66          1) new leaf for recommended scan interval  ";
67
68     reference "ORAN-WG4.M.0-v07.00";
69   }
70
71   revision "2021-03-22" {
72         description
73           "version 6.0.0
74
75           1) typographical corrections in descriptions.
76           2) new functionality to report TLS information ";
77
78         reference "ORAN-WG4.M.0-v06.00";
79   }
80
81   revision "2019-07-03" {
82        description
83          "version 1.1.0
84
85          1) enabling NETCONF clients to be configured.
86          2) shifting new container to correct position
87          3) backward compatible changes to introduce groupings";
88
89        reference "ORAN-WG4.M.0-v01.00";
90   }
91
92   revision "2019-02-04" {
93     description
94       "version 1.0.0
95
96       1) imported model from xRAN
97       2) changed namespace and reference from xran to o-ran";
98
99     reference "ORAN-WG4.M.0-v01.00";
100   }
101
102
103   typedef vlan-id {
104     type uint16 {
105       range 1..4094;
106     }
107     description
108       "Type definition representing a single-tagged VLAN";
109   }
110
111   // Groupings
112
113   grouping mplane-group {
114     description "mplane grouping";
115     container searchable-mplane-access-vlans-info {
116       description
117         "These parameters shall be stored by the equipment in reset persistent memory
118         to enable it to be re-used to optimize VLAN discovery procedures.";
119       leaf-list searchable-access-vlans {
120         type vlan-id;
121         description
122           "A list of access VLANs that may be operational on the transport
123           network. Can be used by the equipment to optimize its VLAN searching - for
124           M-plane operations.";
125       }
126       container vlan-range {
127         description "the range of VLAN IDs that may be configured for M-Plane";
128         leaf lowest-vlan-id {
129           type vlan-id;
130           description
131             "Value of this parameter informs equipment about lowest VID to be used
132             in VLAN scan procedure";
133         }
134         leaf highest-vlan-id {
135           type vlan-id;
136           description
137             "Value of this parameter informs about highest VID to be used
138             in VLAN scan procedure";
139         }
140       }
141       leaf scan-interval {
142           type uint16;
143           units seconds;
144           default 60;
145           description
146             "The O-RU should repeatedly search using untagged frames and previously configured
147             VLANs whenever it searches across the full range of VLAN IDs.The O-RU controller is
148             able to recommend the maximum interval between repeatedly scanning for M-Plane connectivity
149             on the untagged and configured VLANs using this timer schema node.
150
151             The O-RU shall store this schem-node in reset persistent memory.";
152       }
153     }
154
155     container m-plane-interfaces {
156       description "information concerning m-plane interfaces";
157       list m-plane-sub-interfaces {
158         key "interface-name sub-interface";
159         description "list of m-plane information";
160         leaf interface-name {
161           type leafref {
162             path "/if:interfaces/if:interface/if:name";
163           }
164           description "the name of the interface";
165         }
166         leaf sub-interface {
167           type leafref {
168             path "/if:interfaces/if:interface[if:name = current()/../interface-name]/o-ran-int:vlan-id";
169           }
170           description
171             "vlans used to communicate with management plane servers.";
172         }
173         container client-info {
174           config false;
175           description
176             "the NETCONF client information, discovered by DHCP or manually
177              configured during installation.";
178           list mplane-ipv4-info {
179             key mplane-ipv4;
180             description "list of IPv4 NETCONF clients";
181             leaf mplane-ipv4 {
182               type inet:ipv4-address;
183               description "The IPv4 address of M-Plane client discovered by the O-RU
184               or manually configured.";
185             }
186             leaf port {
187               type inet:port-number;
188               description
189                 "The call home port number discovered or manually configured.";
190             }
191           }
192           list mplane-ipv6-info {
193             key mplane-ipv6;
194             description "list of IPv6 NETCONF clients";
195             leaf mplane-ipv6 {
196               type inet:ipv6-address;
197               description "The IPv6 address of M-Plane client discovered by the O-RU
198               or manually configured.";
199             }
200             leaf port {
201               type inet:port-number;
202               description
203                 "The call home port number discovered or manually configured.";
204             }
205           }
206           leaf-list mplane-fqdn {
207             type inet:domain-name;
208             description "The discovered FQDN(s) of M-Plane client(s).";
209           }
210         }
211       }
212
213       container m-plane-ssh-ports {
214         description "leafs for managing SSH ports";
215         leaf call-home-ssh-port {
216           type inet:port-number;
217           default 4334;
218           description "The configured call home server port number";
219         }
220         leaf server-ssh-port {
221           type inet:port-number;
222           default 830;
223           description "The configured SSH server port number";
224         }
225       }
226       container m-plane-tls-ports {
227         description "leafs for managing TLS ports";
228         leaf call-home-tls-port {
229           type inet:port-number;
230           default 4335;
231           description "The configured call home server port number";
232         }
233         leaf server-tls-port {
234           type inet:port-number;
235           default 6513;
236           description "The configured TLS server port number";
237         }
238       }
239     }
240     container configured-client-info {
241       description
242         "the NETCONF client information that may be configured by another
243         NETCONF client. These clients are reported independently from clients
244         manually configured or discovered using DHCP.";
245       list mplane-ipv4-info {
246         key mplane-ipv4;
247         description "list of IPv4 NETCONF clients";
248         leaf mplane-ipv4 {
249           type inet:ipv4-address;
250           description "The IPv4 address of configured M-Plane client.";
251         }
252         leaf port {
253           type inet:port-number;
254           description
255             "The configured call home port number.";
256         }
257       }
258       list mplane-ipv6-info {
259         key mplane-ipv6;
260         description "list of IPv6 NETCONF clients";
261         leaf mplane-ipv6 {
262           type inet:ipv6-address;
263           description "The IPv6 address of configured M-Plane client..";
264         }
265         leaf port {
266           type inet:port-number;
267           description
268             "The configured call home port number.";
269         }
270       }
271       leaf-list mplane-fqdn {
272         type inet:domain-name;
273         description "The configured FQDN(s) of M-Plane client(s).";
274       }
275     }
276   }
277
278
279   // Top Level Container
280
281   container mplane-info {
282     description "top-level container for management plane information";
283
284     uses mplane-group;
285   }
286 }