+++ /dev/null
-module o-ran-interfaces {
- yang-version 1.1;
- namespace "urn:o-ran:interfaces:1.0";
- prefix "o-ran-int";
-
-
- import ietf-inet-types {
- prefix "inet";
- }
-
- import iana-if-type {
- prefix "ianaift";
- }
-
- import ietf-interfaces {
- prefix "if";
- }
-
- import ietf-ip {
- prefix "ip";
- }
-
- import ietf-hardware {
- prefix "hw";
- }
-
- import ietf-yang-types {
- prefix "yang";
- }
-
- import iana-hardware {
- prefix "ianahw";
- }
-
- organization "O-RAN Alliance";
-
- contact
- "www.o-ran.org";
-
- description
- "This module defines the YANG definitions for managng the O-RAN
- interfaces.
-
- Copyright 2019 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 "2019-07-03" {
- description
- "version 1.1.0
-
- 1) increasing max elements for user plane DSCP markings to 64
- 2) re-organizing layout to facilitate cross-WG adoption, whilst ensuring
- nodes are syntactically and semantically equivalent";
-
- 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";
- }
-
- feature UDPIP-BASED-CU-PLANE {
- description
- "This feature indicates that the RU supports the UDP/IP based transport
- for the CU plane.";
- }
-
- feature ALIASMAC-BASED-CU-PLANE {
- description
- "This feature indicates that the RU supports the alias MAC address
- based transport for the CU plane.";
- }
-
-
- typedef pcp {
- type uint8 {
- range "0..7";
- }
- description
- "Priority Code Point. PCP is a 3-bit field that refers to the
- class of service applied to a VLAN tagged frame. The
- field specifies a priority value between 0 and 7, these values
- can be used by quality of service (QoS) to prioritize
- different classes of traffic.";
- reference
- "IEEE 802.1Q-2014: Virtual Bridged Local Area Networks";
- }
-
- grouping cos-marking {
- description
- "Configuration data for CU Plane ethernet CoS marking";
- container class-of-service {
- description
- "CoS Configuration";
- leaf u-plane-marking {
- type pcp;
- default 7;
- description
- "Marking used for default u-plane flows.
- 7 represents highest priority for u-plane marking";
- }
- leaf c-plane-marking {
- type pcp;
- default 7;
- description "7 represents highest priority for c-plane marking";
- }
- leaf m-plane-marking {
- type pcp;
- default 2;
- description "2 represents highest excellent effort for m-plane marking";
- }
- leaf s-plane-marking {
- type pcp;
- default 7;
- description "7 represents highest priority for s-plane marking";
- }
- leaf other-marking {
- type pcp;
- default 1;
- description "1 represents best effort for other marking";
- }
- list enhanced-uplane-markings{
- key "up-marking-name";
- max-elements 4;
- description
- "list of mappings for enhanced (non-default) u-plane markings";
- leaf up-marking-name {
- type string;
- description "The name of the marking";
- }
- leaf enhanced-marking {
- type pcp;
- description "the enhanced u-plane marking";
- }
- }
- }
- }
-
- grouping dscp-marking {
- description
- "Configuration data for CU Plane DSCP marking";
- container diffserv-markings {
- description
- "DSCP Configuration";
- leaf u-plane-marking {
- type inet:dscp;
- default 46;
- description
- "Marking used for default u-plane flows.
- 46 represents expedited forwarding";
- }
- leaf c-plane-marking {
- type inet:dscp;
- default 46;
- description "46 represents expedited forwarding";
- }
- leaf s-plane-marking {
- type inet:dscp;
- default 46;
- description "46 represents expedited forwarding";
- }
- leaf other-marking {
- type inet:dscp;
- default 0;
- description "0 represents best effort forwarding";
- }
- list enhanced-uplane-markings{
- key up-marking-name;
- max-elements 64;
- description
- "list of mappings for enhanced (non-default) u-plane markings";
- leaf up-marking-name {
- type string;
- description "The name of the marking";
- }
- leaf enhanced-marking {
- type inet:dscp;
- description "the enhanced u-plane marking";
- }
- }
- }
- }
-
-// Cross Working Group Augmentations Follow
-
-// Cross Working Group augmentations for basic Ethernet leafs
-
- augment "/if:interfaces/if:interface" {
- when "if:type = 'ianaift:ethernetCsmacd'" {
- description "Applies to Ethernet interfaces";
- }
- description
- "Augment the interface model with parameters for
- base Ethernet interface";
-
- leaf l2-mtu {
- type uint16 {
- range "64 .. 65535";
- }
- units bytes;
- default 1500;
- description
- "The maximum size of layer 2 frames that may be transmitted
- or received on the interface (excluding any FCS overhead).
- For Ethernet interfaces it also excludes the
- 4-8 byte overhead of any known (i.e. explicitly matched by
- a child sub-interface) 801.1Q VLAN tags.";
- }
- leaf vlan-tagging {
- type boolean;
- default true;
- description
- "Indicates if VLAN tagging is used.
- Default true is used to enable equipment to auonomously discover that it is
- connected to a trunk port.";
- }
- uses cos-marking;
- }
-
-// Cross Working Group augmentation for l2vlan interfaces for VLAN definition
-
- augment "/if:interfaces/if:interface" {
- when "if:type = 'ianaift:l2vlan'";
- description "augments for VLAN definition";
- leaf base-interface {
- type if:interface-ref;
- must "/if:interfaces/if:interface[if:name = current()]"
- + "/o-ran-int:vlan-tagging = 'true'" {
- description
- "The base interface must have VLAN tagging enabled.";
- }
- description
- "The base interface for the VLAN sub-interafce.";
- }
- leaf vlan-id {
- type uint16 {
- range "1..4094";
- }
- description
- "The VLAN-ID.";
- }
- }
-
-// Cross Working Group augmention for both ethernetCsmacd and l2vlan interfaces
-
- augment "/if:interfaces/if:interface" {
- when "(if:type = 'ianaift:ethernetCsmacd') or
- (if:type = 'ianaift:l2vlan')" {
- description "Applies to ethernetCsmacd and l2vlan interfaces";
- }
- description
- "Augment the interface model with parameters for all
- both ethernetCsmacd and l2vlan interfaces.";
- leaf last-cleared {
- type yang:date-and-time;
- config false;
- description
- "Timestamp of the last time the interface counters were
- cleared.";
- }
- }
-
-// Cross Working Group augmention to ietf-ip covering DSCP for M-Plane
-
-augment "/if:interfaces/if:interface/ip:ipv4" {
- description "augments for IPv4 based M-Plane transport";
- leaf m-plane-marking {
- type inet:dscp;
- default 18;
- description "18 represents AF21 or 'immediate traffic'";
- }
-}
-augment "/if:interfaces/if:interface/ip:ipv6" {
- description "augments for IPv6 based M-Plane transport";
- leaf m-plane-marking {
- type inet:dscp;
- default 18;
- description "18 represents AF21 or 'immediate traffic'";
- }
-}
-
-// WG4 Specific Augmentations Follow
-
-// WG4 Augmentation for basic Ethernet leafs
-
- augment "/if:interfaces/if:interface" {
- if-feature ALIASMAC-BASED-CU-PLANE;
- when "if:type = 'ianaift:ethernetCsmacd'" {
- description
- "Applies to WG4 Ethernet interfaces for alias MAC based CU-Plane";
- }
- description
- "Augment the interface model with parameters for
- base Ethernet interface";
-
- leaf-list alias-macs {
- type yang:mac-address;
- description
- "Augments interfaces with range of alias MAC addresses.";
- }
- }
-
-// WG4 Augmention for both ethernetCsmacd and l2vlan interfaces
-
- augment "/if:interfaces/if:interface" {
- when "(if:type = 'ianaift:ethernetCsmacd') or
- (if:type = 'ianaift:l2vlan')" {
- description "Applies to ethernetCsmacd and l2vlan interfaces";
- }
- description
- "Augment the interface model with parameters for all
- both ethernetCsmacd and l2vlan interfaces.";
- leaf mac-address {
- type yang:mac-address;
- description
- "The MAC address of the interface.";
- }
- container port-reference {
- description
- "a port reference used by other O-RAN modules";
- leaf port-name {
- type leafref {
- path '/hw:hardware/hw:component/hw:name';
- }
- must "derived-from-or-self(deref(current())/../hw:class, 'ianahw:port')";
-// TAKE NOTE - depending on version of pyang, this may generate various
-// warnings, e.g., warning: XPath for "port-name" does not exist
- description
- "O-RAN interfaces use a reference to a physical port component.
-
- In this case, the component name referenced must be of class type
- port, i.e., when /hw:hardware/hw:component/hw:class is derived from
- ianahw:port";
- }
- leaf port-number {
- type uint8;
- description
- "A number allocated by the server which identifies a port.
- Port number value is 0 to N-1 where N is number of ports
- in the device.
-
- This value is fixed for the lifetime of the equipment, i.e., cannot be
- changed during equipment reboots.";
- }
- }
- }
-
-// WG4 specific augmention to ietf-ip covering DSCP for CUS Plane
-
- augment "/if:interfaces/if:interface/ip:ipv4" {
- if-feature UDPIP-BASED-CU-PLANE;
- description "augments for IPv4 based CUS transport";
- uses dscp-marking;
- }
- augment "/if:interfaces/if:interface/ip:ipv6" {
- if-feature UDPIP-BASED-CU-PLANE;
- description "augments for IPv6 based CUS transport";
- uses dscp-marking;
- }
-
-// Other Working Group Specific Augmentations Follow Here
-
-
- rpc reset-interface-counters {
- description
- "Management plane triggered restart of the interface counters.";
- }
-}